From 587c43ef8f13e83e70ca39a711e858a1a9a7583f Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Fri, 4 Sep 2026 11:12:34 +0200 Subject: [PATCH] ui : group discover and selector components into folders Move the ModelsDiscover components into ModelsDiscoverList/ and ModelsDiscoverDetails/ subfolders (with ModelsDiscoverDetailsDownloadOptions/ nested inside), and the model selector components into a ModelsSelector/ subfolder. Rename ModelsDiscoverModelDetails* to ModelsDiscoverDetails* for consistency, add per-folder index.ts barrels, and keep shared leaves (ModelId, ModelBadge, ModelLoadHighlight, ModelsDiscoverAvatar, DownloadProgressBar) at their folder roots. --- .../ModelsSelectorDownloadItem.svelte | 4 +- .../ModelsSelectorDropdown.svelte | 2 +- .../ModelsSelectorList.svelte | 0 .../ModelsSelectorOption.svelte | 4 +- .../ModelsSelectorReasoningPanel.svelte | 0 .../ModelsSelectorSheet.svelte | 2 +- .../app/models/ModelsSelector/index.ts | 95 ++++++++++++++ .../app/models/discover/ModelsDiscover.svelte | 6 +- .../ModelsDiscoverChatTemplateDialog.svelte | 0 .../ModelsDiscoverDetails.svelte} | 20 +-- ...delsDiscoverDetailsDownloadOptions.svelte} | 12 +- ...ailsDownloadOptionsDownloadCommand.svelte} | 0 ...DownloadOptionsQuantDownloadButton.svelte} | 2 +- ...sDiscoverDetailsDownloadOptionsRow.svelte} | 4 +- .../download-options.utils.ts | 2 +- .../index.ts | 40 ++++++ .../ModelsDiscoverDetailsHeader.svelte} | 6 +- .../ModelsDiscoverDetailsMetadata.svelte} | 10 +- .../ModelsDiscoverDetailsMetadataItem.svelte} | 0 .../ModelsDiscoverDetailsReadme.svelte} | 0 .../ModelsDiscoverDetailsSkeleton.svelte} | 2 +- .../discover/ModelsDiscoverDetails/index.ts | 64 +++++++++ .../ModelsDiscoverList.svelte | 0 .../ModelsDiscoverListItem.svelte | 4 +- .../ModelsDiscoverListItemSkeleton.svelte | 0 .../ModelsDiscoverListSearch.svelte | 0 .../discover/ModelsDiscoverList/index.ts | 38 ++++++ .../components/app/models/discover/index.ts | 123 ++---------------- .../ui/src/lib/components/app/models/index.ts | 87 +------------ .../src/lib/stores/models-hub/index.svelte.ts | 2 +- ...e => ModelsDiscoverDetails.stories.svelte} | 26 ++-- .../stories/ModelsDiscoverList.stories.svelte | 4 +- .../stories/ModelsSelector.stories.svelte | 4 +- 33 files changed, 310 insertions(+), 253 deletions(-) rename tools/ui/src/lib/components/app/models/{ => ModelsSelector}/ModelsSelectorDownloadItem.svelte (97%) rename tools/ui/src/lib/components/app/models/{ => ModelsSelector}/ModelsSelectorDropdown.svelte (99%) rename tools/ui/src/lib/components/app/models/{ => ModelsSelector}/ModelsSelectorList.svelte (100%) rename tools/ui/src/lib/components/app/models/{ => ModelsSelector}/ModelsSelectorOption.svelte (98%) rename tools/ui/src/lib/components/app/models/{ => ModelsSelector}/ModelsSelectorReasoningPanel.svelte (100%) rename tools/ui/src/lib/components/app/models/{ => ModelsSelector}/ModelsSelectorSheet.svelte (99%) create mode 100644 tools/ui/src/lib/components/app/models/ModelsSelector/index.ts rename tools/ui/src/lib/components/app/models/discover/{ => ModelsDiscoverDetails}/ModelsDiscoverChatTemplateDialog.svelte (100%) rename tools/ui/src/lib/components/app/models/discover/{ModelsDiscoverModelDetails.svelte => ModelsDiscoverDetails/ModelsDiscoverDetails.svelte} (81%) rename tools/ui/src/lib/components/app/models/discover/{ModelsDiscoverModelDetailsDownloadOptions.svelte => ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptions.svelte} (89%) rename tools/ui/src/lib/components/app/models/discover/{ModelsDiscoverModelDetailsDownloadOptionsDownloadCommand.svelte => ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptionsDownloadCommand.svelte} (100%) rename tools/ui/src/lib/components/app/models/discover/{ModelsDiscoverModelDetailsDownloadOptionsQuantDownloadButton.svelte => ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptionsQuantDownloadButton.svelte} (99%) rename tools/ui/src/lib/components/app/models/discover/{ModelsDiscoverModelDetailsDownloadOptionsRow.svelte => ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptionsRow.svelte} (83%) rename tools/ui/src/lib/components/app/models/discover/{ => ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions}/download-options.utils.ts (100%) create mode 100644 tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/index.ts rename tools/ui/src/lib/components/app/models/discover/{ModelsDiscoverModelDetailsHeader.svelte => ModelsDiscoverDetails/ModelsDiscoverDetailsHeader.svelte} (94%) rename tools/ui/src/lib/components/app/models/discover/{ModelsDiscoverModelDetailsMetadata.svelte => ModelsDiscoverDetails/ModelsDiscoverDetailsMetadata.svelte} (84%) rename tools/ui/src/lib/components/app/models/discover/{ModelsDiscoverModelDetailsMetadataItem.svelte => ModelsDiscoverDetails/ModelsDiscoverDetailsMetadataItem.svelte} (100%) rename tools/ui/src/lib/components/app/models/discover/{ModelsDiscoverModelDetailsReadme.svelte => ModelsDiscoverDetails/ModelsDiscoverDetailsReadme.svelte} (100%) rename tools/ui/src/lib/components/app/models/discover/{ModelsDiscoverModelDetailsSkeleton.svelte => ModelsDiscoverDetails/ModelsDiscoverDetailsSkeleton.svelte} (95%) create mode 100644 tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/index.ts rename tools/ui/src/lib/components/app/models/discover/{ => ModelsDiscoverList}/ModelsDiscoverList.svelte (100%) rename tools/ui/src/lib/components/app/models/discover/{ => ModelsDiscoverList}/ModelsDiscoverListItem.svelte (97%) rename tools/ui/src/lib/components/app/models/discover/{ => ModelsDiscoverList}/ModelsDiscoverListItemSkeleton.svelte (100%) rename tools/ui/src/lib/components/app/models/discover/{ => ModelsDiscoverList}/ModelsDiscoverListSearch.svelte (100%) create mode 100644 tools/ui/src/lib/components/app/models/discover/ModelsDiscoverList/index.ts rename tools/ui/tests/stories/{ModelsDiscoverModelDetails.stories.svelte => ModelsDiscoverDetails.stories.svelte} (79%) diff --git a/tools/ui/src/lib/components/app/models/ModelsSelectorDownloadItem.svelte b/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorDownloadItem.svelte similarity index 97% rename from tools/ui/src/lib/components/app/models/ModelsSelectorDownloadItem.svelte rename to tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorDownloadItem.svelte index 6a31787829..963c380937 100644 --- a/tools/ui/src/lib/components/app/models/ModelsSelectorDownloadItem.svelte +++ b/tools/ui/src/lib/components/app/models/ModelsSelector/ModelsSelectorDownloadItem.svelte @@ -1,6 +1,6 @@ {#if loading} - + {:else if error}

{error}

{:else if details}
- - + - +
{/if} diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverModelDetailsDownloadOptions.svelte b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptions.svelte similarity index 89% rename from tools/ui/src/lib/components/app/models/discover/ModelsDiscoverModelDetailsDownloadOptions.svelte rename to tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptions.svelte index db6955b598..0e934033c4 100644 --- a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverModelDetailsDownloadOptions.svelte +++ b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptions.svelte @@ -7,8 +7,8 @@ type QuantOption, type SelectableFile } from './download-options.utils'; - import ModelsDiscoverModelDetailsDownloadOptionsDownloadCommand from './ModelsDiscoverModelDetailsDownloadOptionsDownloadCommand.svelte'; - import ModelsDiscoverModelDetailsDownloadOptionsRow from './ModelsDiscoverModelDetailsDownloadOptionsRow.svelte'; + import ModelsDiscoverDetailsDownloadOptionsDownloadCommand from './ModelsDiscoverDetailsDownloadOptionsDownloadCommand.svelte'; + import ModelsDiscoverDetailsDownloadOptionsRow from './ModelsDiscoverDetailsDownloadOptionsRow.svelte'; import { HuggingFaceService, ModelsService } from '$lib/services'; import { modelsStore } from '$lib/stores'; @@ -120,17 +120,13 @@ lifecycle state; nothing here selects anything. -->
{#each rows as row (row.bitDepth)} - + {/each}
- +
{/if} diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverModelDetailsDownloadOptionsDownloadCommand.svelte b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptionsDownloadCommand.svelte similarity index 100% rename from tools/ui/src/lib/components/app/models/discover/ModelsDiscoverModelDetailsDownloadOptionsDownloadCommand.svelte rename to tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptionsDownloadCommand.svelte diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverModelDetailsDownloadOptionsQuantDownloadButton.svelte b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptionsQuantDownloadButton.svelte similarity index 99% rename from tools/ui/src/lib/components/app/models/discover/ModelsDiscoverModelDetailsDownloadOptionsQuantDownloadButton.svelte rename to tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptionsQuantDownloadButton.svelte index bf78af4075..2bc96e63ed 100644 --- a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverModelDetailsDownloadOptionsQuantDownloadButton.svelte +++ b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptionsQuantDownloadButton.svelte @@ -1,6 +1,6 @@ - +
diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/index.ts b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/index.ts new file mode 100644 index 0000000000..165070ae83 --- /dev/null +++ b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/index.ts @@ -0,0 +1,64 @@ +/** + * + * MODELS DISCOVER — DETAILS + * + * The right-hand detail pane of the hub: header (avatar, name, stats, metadata + * chips, capability badges), the download options area and the model-card README. + * + */ + +/** + * **ModelsDiscoverDetails** - Model detail view + * + * Detail pane for the selected model. Loads its own data (details + GGUF file + * list) from HuggingFaceService based on the `modelId` route param. + */ +export { default as ModelsDiscoverDetails } from './ModelsDiscoverDetails.svelte'; + +/** + * **ModelsDiscoverDetailsHeader** - Detail view header + * + * Shows the model avatar (base org + quant org corner badge), name, base model + * info, stats, metadata chips and capability badges. + */ +export { default as ModelsDiscoverDetailsHeader } from './ModelsDiscoverDetailsHeader.svelte'; + +/** + * **ModelsDiscoverDetailsSkeleton** - Detail view loading skeleton + * + * Static placeholder matching the detail layout: header with avatar and name, + * metadata chips, the download options box and readme text lines. + */ +export { default as ModelsDiscoverDetailsSkeleton } from './ModelsDiscoverDetailsSkeleton.svelte'; + +/** + * **ModelsDiscoverDetailsReadme** - Detail view README + * + * Renders the model card README as markdown. + */ +export { default as ModelsDiscoverDetailsReadme } from './ModelsDiscoverDetailsReadme.svelte'; + +/** + * **ModelsDiscoverDetailsMetadata** - Detail view metadata row + * + * The detail view's metadata chips (model size, context, architecture, license, + * chat template). + */ +export { default as ModelsDiscoverDetailsMetadata } from './ModelsDiscoverDetailsMetadata.svelte'; + +/** + * **ModelsDiscoverDetailsMetadataItem** - Single metadata chip + * + * One label | value chip of the detail view's metadata row (model size, + * context, architecture, license). + */ +export { default as ModelsDiscoverDetailsMetadataItem } from './ModelsDiscoverDetailsMetadataItem.svelte'; + +/** + * **ModelsDiscoverChatTemplateDialog** - Chat template viewer + * + * Shows the model's chat template in a scrollable dialog with a copy button. + */ +export { default as ModelsDiscoverChatTemplateDialog } from './ModelsDiscoverChatTemplateDialog.svelte'; + +export * from './ModelsDiscoverDetailsDownloadOptions'; diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverList.svelte b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverList/ModelsDiscoverList.svelte similarity index 100% rename from tools/ui/src/lib/components/app/models/discover/ModelsDiscoverList.svelte rename to tools/ui/src/lib/components/app/models/discover/ModelsDiscoverList/ModelsDiscoverList.svelte diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverListItem.svelte b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverList/ModelsDiscoverListItem.svelte similarity index 97% rename from tools/ui/src/lib/components/app/models/discover/ModelsDiscoverListItem.svelte rename to tools/ui/src/lib/components/app/models/discover/ModelsDiscoverList/ModelsDiscoverListItem.svelte index b83978f69e..d26333eaff 100644 --- a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverListItem.svelte +++ b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverList/ModelsDiscoverListItem.svelte @@ -1,6 +1,6 @@