diff --git a/src/platform/assets/components/AssetBadgeGroup.vue b/src/platform/assets/components/AssetBadgeGroup.vue index 73194743d..fbefc93d6 100644 --- a/src/platform/assets/components/AssetBadgeGroup.vue +++ b/src/platform/assets/components/AssetBadgeGroup.vue @@ -5,7 +5,7 @@ :key="badge.label" :class=" cn( - 'px-2 py-1 rounded text-[10px] font-medium uppercase tracking-wider text-white', + 'px-2 py-1 rounded text-xs font-medium uppercase tracking-wider text-white', getBadgeColor(badge.type) ) " diff --git a/src/platform/assets/components/AssetBrowserModal.vue b/src/platform/assets/components/AssetBrowserModal.vue index 188daaee3..0ddbd85b1 100644 --- a/src/platform/assets/components/AssetBrowserModal.vue +++ b/src/platform/assets/components/AssetBrowserModal.vue @@ -1,7 +1,7 @@ @@ -80,14 +80,7 @@ const { // Compute whether to show left panel const shouldShowLeftPanel = computed(() => { - // If explicitly set to false, don't show - if (props.showLeftPanel === false) return false - - // If explicitly set to true, always show - if (props.showLeftPanel === true) return true - - // Auto-hide if only one unique asset category (excluding "All Models") - return availableCategories.value.length >= 3 + return props.showLeftPanel ?? availableCategories.value.length >= 3 }) // Handle close button - call both the prop callback and emit the event diff --git a/src/platform/assets/components/AssetCard.stories.ts b/src/platform/assets/components/AssetCard.stories.ts index ffce30d55..f4cd9f063 100644 --- a/src/platform/assets/components/AssetCard.stories.ts +++ b/src/platform/assets/components/AssetCard.stories.ts @@ -46,7 +46,8 @@ type Story = StoryObj // Default story with all data provided export const Default: Story = { args: { - asset: createAssetData() + asset: createAssetData(), + interactive: true }, parameters: { docs: { @@ -58,6 +59,22 @@ export const Default: Story = { } } +// Non-interactive story +export const NonInteractive: Story = { + args: { + asset: createAssetData(), + interactive: false + }, + parameters: { + docs: { + description: { + story: + 'AssetCard in non-interactive mode - renders as div without button semantics.' + } + } + } +} + // Story with all edge cases in a grid layout export const EdgeCases: Story = { render: () => ({ @@ -139,6 +156,7 @@ export const EdgeCases: Story = { v-for="asset in edgeCases" :key="asset.id" :asset="asset" + :interactive="true" @select="(asset) => console.log('Selected:', asset)" /> diff --git a/src/platform/assets/components/AssetCard.vue b/src/platform/assets/components/AssetCard.vue index 3a2458954..89621b8ac 100644 --- a/src/platform/assets/components/AssetCard.vue +++ b/src/platform/assets/components/AssetCard.vue @@ -1,23 +1,31 @@