@viax.io/uxm 4.36.0 → 4.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +74 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js.map +1 -1
- package/dist/previews/index.cjs +3 -0
- package/dist/previews/index.cjs.map +1 -1
- package/dist/previews/index.d.ts +3 -2
- package/dist/previews/index.d.ts.map +1 -1
- package/dist/previews/index.js +2 -0
- package/dist/previews/index.js.map +1 -1
- package/dist/studio/index.cjs.map +1 -1
- package/dist/studio/index.d.ts +2 -2
- package/dist/studio/index.js.map +1 -1
- package/dist/studio/lib/registry/app.cjs +52 -0
- package/dist/studio/lib/registry/app.cjs.map +1 -1
- package/dist/studio/lib/registry/app.d.ts.map +1 -1
- package/dist/studio/lib/registry/app.js +52 -0
- package/dist/studio/lib/registry/app.js.map +1 -1
- package/dist/studio/lib/registry/buttons.cjs +2 -2
- package/dist/studio/lib/registry/buttons.cjs.map +1 -1
- package/dist/studio/lib/registry/buttons.js +2 -2
- package/dist/studio/lib/registry/buttons.js.map +1 -1
- package/dist/studio/lib/registry/composite.cjs +1 -1
- package/dist/studio/lib/registry/composite.cjs.map +1 -1
- package/dist/studio/lib/registry/composite.js +1 -1
- package/dist/studio/lib/registry/composite.js.map +1 -1
- package/dist/studio/lib/registry/diagram.cjs +1 -1
- package/dist/studio/lib/registry/diagram.cjs.map +1 -1
- package/dist/studio/lib/registry/diagram.js +1 -1
- package/dist/studio/lib/registry/diagram.js.map +1 -1
- package/dist/studio/lib/registry/display.cjs +2 -2
- package/dist/studio/lib/registry/display.cjs.map +1 -1
- package/dist/studio/lib/registry/display.js +2 -2
- package/dist/studio/lib/registry/display.js.map +1 -1
- package/dist/studio/lib/registry/feedback.cjs +3 -3
- package/dist/studio/lib/registry/feedback.cjs.map +1 -1
- package/dist/studio/lib/registry/feedback.js +3 -3
- package/dist/studio/lib/registry/feedback.js.map +1 -1
- package/dist/studio/lib/registry/inputs.cjs +12 -12
- package/dist/studio/lib/registry/inputs.cjs.map +1 -1
- package/dist/studio/lib/registry/inputs.js +12 -12
- package/dist/studio/lib/registry/inputs.js.map +1 -1
- package/dist/studio/lib/types.cjs.map +1 -1
- package/dist/studio/persistence/generate-css.cjs +15 -0
- package/dist/studio/persistence/generate-css.cjs.map +1 -1
- package/dist/studio/persistence/generate-css.d.ts.map +1 -1
- package/dist/studio/persistence/generate-css.js +15 -0
- package/dist/studio/persistence/generate-css.js.map +1 -1
- package/dist/studio/shell/canvas.cjs +1 -0
- package/dist/studio/shell/canvas.cjs.map +1 -1
- package/dist/studio/shell/canvas.d.ts.map +1 -1
- package/dist/studio/shell/canvas.js +2 -0
- package/dist/studio/shell/canvas.js.map +1 -1
- package/dist/ui/bulk-action-bar/bulk-action-bar.css +3 -0
- package/dist/ui/calendar/calendar.cjs +3 -1
- package/dist/ui/calendar/calendar.cjs.map +1 -1
- package/dist/ui/calendar/calendar.css +2 -1
- package/dist/ui/calendar/calendar.d.ts +6 -2
- package/dist/ui/calendar/calendar.d.ts.map +1 -1
- package/dist/ui/calendar/calendar.js +3 -1
- package/dist/ui/calendar/calendar.js.map +1 -1
- package/dist/ui/currency-input/currency-input.cjs +3 -1
- package/dist/ui/currency-input/currency-input.cjs.map +1 -1
- package/dist/ui/currency-input/currency-input.d.ts +4 -2
- package/dist/ui/currency-input/currency-input.d.ts.map +1 -1
- package/dist/ui/currency-input/currency-input.js +3 -1
- package/dist/ui/currency-input/currency-input.js.map +1 -1
- package/dist/ui/date-input/date-input.cjs +2 -1
- package/dist/ui/date-input/date-input.cjs.map +1 -1
- package/dist/ui/date-input/date-input.css +1 -1
- package/dist/ui/date-input/date-input.d.ts +11 -1
- package/dist/ui/date-input/date-input.d.ts.map +1 -1
- package/dist/ui/date-input/date-input.js +2 -1
- package/dist/ui/date-input/date-input.js.map +1 -1
- package/dist/ui/editable-cell/editable-cell.cjs +20 -6
- package/dist/ui/editable-cell/editable-cell.cjs.map +1 -1
- package/dist/ui/editable-cell/editable-cell.d.ts +24 -1
- package/dist/ui/editable-cell/editable-cell.d.ts.map +1 -1
- package/dist/ui/editable-cell/editable-cell.js +20 -6
- package/dist/ui/editable-cell/editable-cell.js.map +1 -1
- package/dist/ui/file-upload/file-upload.cjs +36 -9
- package/dist/ui/file-upload/file-upload.cjs.map +1 -1
- package/dist/ui/file-upload/file-upload.d.ts +46 -4
- package/dist/ui/file-upload/file-upload.d.ts.map +1 -1
- package/dist/ui/file-upload/file-upload.js +36 -9
- package/dist/ui/file-upload/file-upload.js.map +1 -1
- package/dist/ui/index.cjs +12 -2
- package/dist/ui/index.cjs.map +1 -1
- package/dist/ui/index.d.ts +5 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +7 -1
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/input/input.cjs +8 -4
- package/dist/ui/input/input.cjs.map +1 -1
- package/dist/ui/input/input.css +4 -0
- package/dist/ui/input/input.d.ts.map +1 -1
- package/dist/ui/input/input.js +8 -4
- package/dist/ui/input/input.js.map +1 -1
- package/dist/ui/language-switcher/index.cjs +29 -0
- package/dist/ui/language-switcher/index.cjs.map +1 -0
- package/dist/ui/language-switcher/index.d.ts +3 -0
- package/dist/ui/language-switcher/index.d.ts.map +1 -0
- package/dist/ui/language-switcher/index.js +5 -0
- package/dist/ui/language-switcher/index.js.map +1 -0
- package/dist/ui/language-switcher/language-switcher-preview.cjs +137 -0
- package/dist/ui/language-switcher/language-switcher-preview.cjs.map +1 -0
- package/dist/ui/language-switcher/language-switcher-preview.d.ts +3 -0
- package/dist/ui/language-switcher/language-switcher-preview.d.ts.map +1 -0
- package/dist/ui/language-switcher/language-switcher-preview.js +113 -0
- package/dist/ui/language-switcher/language-switcher-preview.js.map +1 -0
- package/dist/ui/language-switcher/language-switcher.cjs +127 -0
- package/dist/ui/language-switcher/language-switcher.cjs.map +1 -0
- package/dist/ui/language-switcher/language-switcher.css +95 -0
- package/dist/ui/language-switcher/language-switcher.d.ts +73 -0
- package/dist/ui/language-switcher/language-switcher.d.ts.map +1 -0
- package/dist/ui/language-switcher/language-switcher.js +103 -0
- package/dist/ui/language-switcher/language-switcher.js.map +1 -0
- package/dist/ui/locale/index.cjs +33 -0
- package/dist/ui/locale/index.cjs.map +1 -0
- package/dist/ui/locale/index.d.ts +3 -0
- package/dist/ui/locale/index.d.ts.map +1 -0
- package/dist/ui/locale/index.js +7 -0
- package/dist/ui/locale/index.js.map +1 -0
- package/dist/ui/locale/locale.cjs +43 -0
- package/dist/ui/locale/locale.cjs.map +1 -0
- package/dist/ui/locale/locale.d.ts +49 -0
- package/dist/ui/locale/locale.d.ts.map +1 -0
- package/dist/ui/locale/locale.js +17 -0
- package/dist/ui/locale/locale.js.map +1 -0
- package/dist/ui/page-shell/page-shell.cjs.map +1 -1
- package/dist/ui/page-shell/page-shell.d.ts +1 -1
- package/dist/ui/page-shell/page-shell.d.ts.map +1 -1
- package/dist/ui/page-shell/page-shell.js.map +1 -1
- package/dist/ui/range-slider/range-slider.cjs +7 -3
- package/dist/ui/range-slider/range-slider.cjs.map +1 -1
- package/dist/ui/range-slider/range-slider.d.ts +17 -1
- package/dist/ui/range-slider/range-slider.d.ts.map +1 -1
- package/dist/ui/range-slider/range-slider.js +7 -3
- package/dist/ui/range-slider/range-slider.js.map +1 -1
- package/dist/ui/stat-card/stat-card.cjs +1 -1
- package/dist/ui/stat-card/stat-card.cjs.map +1 -1
- package/dist/ui/stat-card/stat-card.css +4 -0
- package/dist/ui/stat-card/stat-card.js +1 -1
- package/dist/ui/stat-card/stat-card.js.map +1 -1
- package/dist/ui/styles.css +2 -1
- package/dist/ui/toast/toast.css +3 -1
- package/package.json +4 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/studio/lib/registry/app.ts"],"sourcesContent":["import type { ComponentDef } from '../types';\n\nexport const appDefs: ComponentDef[] = [\n // ── App ──\n {\n id: 'brand-settings',\n name: 'Brand Settings',\n category: 'App',\n description: 'Configure the Modo logo, sidebar icon, and primary font.',\n styleProperties: [],\n layoutVariants: [],\n canvasBackground: false,\n },\n {\n id: 'app-sidebar',\n name: 'App Sidebar',\n category: 'App',\n description:\n 'Left navigation: brand row, an optional header slot at the head of the rail, sectioned nav items, an optional footer slot, expand/collapse. Both slots survive collapse.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'expandedWidth', label: 'Expanded Width', control: 'number', defaultValue: 256, min: 200, max: 320, step: 4, unit: 'px' },\n { key: 'collapsedWidth', label: 'Collapsed Width', control: 'number', defaultValue: 64, min: 48, max: 96, step: 4, unit: 'px' },\n { key: 'headingColor', label: 'Section Heading', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'footerColor', label: 'Footer Text', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n // Both slots align to `__nav`'s 8px, so a control in either lines its text\n // up with the nav rows (8 + the child's own 12 = 20px, where a nav label\n // starts). The footer used to carry a 24px caption inset, which put a\n // control at 36px and cost it 32px of width — an address ellipsised for no\n // reason. The knobs stay so a caption can take the deeper inset back.\n //\n // Each sits in its OWN section rather than beside the width knobs. The\n // panel derives a section's subtitle from the union of `showWhen` keys\n // across every knob inside it, so a gated knob dropped in with the\n // ungated widths made the whole section read \"Per Header Slot x Footer\n // Slot\" — a claim that is false for Expanded/Collapsed Width. Same rule\n // the `avatar` entry states: a section is either all-shared or all-gated.\n // One key per section also keeps the subtitle to \"Per Header Slot - On\"\n // instead of an \"A x B\" that implies each knob depends on both.\n { key: 'leadPadding', label: 'Padding', control: 'number', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px', section: 'headerSlot', showWhen: { headerSlot: 'on' } },\n { key: 'footerPadding', label: 'Padding', control: 'number', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px', section: 'footerSlot', showWhen: { footerSlot: 'on' } },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'expanded', label: 'Expanded' },\n { value: 'collapsed', label: 'Collapsed' },\n ],\n defaultValue: 'expanded',\n },\n {\n // The head slot is off in plenty of shells (a single-tenant app has no\n // switcher), so it is a picker rather than always-on content — and with\n // it off you can still see that the sidebar reserves nothing for it.\n key: 'headerSlot',\n label: 'Header Slot',\n options: [\n { value: 'on', label: 'On' },\n { value: 'off', label: 'Off' },\n ],\n defaultValue: 'on',\n },\n {\n // Both slots are optional, so both get a picker. One without the other\n // would imply the footer is structural — and with either off you can see\n // that the sidebar reserves no space for a slot it was not given.\n key: 'footerSlot',\n label: 'Footer Slot',\n options: [\n { value: 'on', label: 'On' },\n { value: 'off', label: 'Off' },\n ],\n defaultValue: 'on',\n },\n {\n // Auto-assign a distinct icon colour per item from a categorical\n // palette (cycling) for scannability, vs the monochromatic default.\n key: 'autoIconColors',\n label: 'Auto Icon Colors',\n options: [\n { value: 'off', label: 'Off' },\n { value: 'on', label: 'On' },\n ],\n defaultValue: 'off',\n },\n ],\n },\n {\n id: 'app-top-bar',\n name: 'App Top Bar',\n category: 'App',\n description: 'Top header: search, mobile menu trigger, primary action, theme toggle, avatar slot.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-surface-alt) 50%, transparent)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'height', label: 'Height', control: 'number', defaultValue: 64, min: 48, max: 96, step: 4, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 16, min: 8, max: 32, step: 2, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'searchMaxWidth', label: 'Search Max Width', control: 'number', defaultValue: 320, min: 160, max: 480, step: 8, unit: 'px' },\n ],\n layoutVariants: [],\n },\n];\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/studio/lib/registry/app.ts"],"sourcesContent":["import type { ComponentDef } from '../types';\n\nexport const appDefs: ComponentDef[] = [\n // ── App ──\n {\n id: 'brand-settings',\n name: 'Brand Settings',\n category: 'App',\n description: 'Configure the Modo logo, sidebar icon, and primary font.',\n styleProperties: [],\n layoutVariants: [],\n canvasBackground: false,\n },\n {\n id: 'app-sidebar',\n name: 'App Sidebar',\n category: 'App',\n description:\n 'Left navigation: brand row, an optional header slot at the head of the rail, sectioned nav items, an optional footer slot, expand/collapse. Both slots survive collapse.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'expandedWidth', label: 'Expanded Width', control: 'number', defaultValue: 256, min: 200, max: 320, step: 4, unit: 'px' },\n { key: 'collapsedWidth', label: 'Collapsed Width', control: 'number', defaultValue: 64, min: 48, max: 96, step: 4, unit: 'px' },\n { key: 'headingColor', label: 'Section Heading', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'footerColor', label: 'Footer Text', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n // Both slots align to `__nav`'s 8px, so a control in either lines its text\n // up with the nav rows (8 + the child's own 12 = 20px, where a nav label\n // starts). The footer used to carry a 24px caption inset, which put a\n // control at 36px and cost it 32px of width — an address ellipsised for no\n // reason. The knobs stay so a caption can take the deeper inset back.\n //\n // Each sits in its OWN section rather than beside the width knobs. The\n // panel derives a section's subtitle from the union of `showWhen` keys\n // across every knob inside it, so a gated knob dropped in with the\n // ungated widths made the whole section read \"Per Header Slot x Footer\n // Slot\" — a claim that is false for Expanded/Collapsed Width. Same rule\n // the `avatar` entry states: a section is either all-shared or all-gated.\n // One key per section also keeps the subtitle to \"Per Header Slot - On\"\n // instead of an \"A x B\" that implies each knob depends on both.\n { key: 'leadPadding', label: 'Padding', control: 'number', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px', section: 'headerSlot', showWhen: { headerSlot: 'on' } },\n { key: 'footerPadding', label: 'Padding', control: 'number', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px', section: 'footerSlot', showWhen: { footerSlot: 'on' } },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'expanded', label: 'Expanded' },\n { value: 'collapsed', label: 'Collapsed' },\n ],\n defaultValue: 'expanded',\n },\n {\n // The head slot is off in plenty of shells (a single-tenant app has no\n // switcher), so it is a picker rather than always-on content — and with\n // it off you can still see that the sidebar reserves nothing for it.\n key: 'headerSlot',\n label: 'Header Slot',\n options: [\n { value: 'on', label: 'On' },\n { value: 'off', label: 'Off' },\n ],\n defaultValue: 'on',\n },\n {\n // Both slots are optional, so both get a picker. One without the other\n // would imply the footer is structural — and with either off you can see\n // that the sidebar reserves no space for a slot it was not given.\n key: 'footerSlot',\n label: 'Footer Slot',\n options: [\n { value: 'on', label: 'On' },\n { value: 'off', label: 'Off' },\n ],\n defaultValue: 'on',\n },\n {\n // Auto-assign a distinct icon colour per item from a categorical\n // palette (cycling) for scannability, vs the monochromatic default.\n key: 'autoIconColors',\n label: 'Auto Icon Colors',\n options: [\n { value: 'off', label: 'Off' },\n { value: 'on', label: 'On' },\n ],\n defaultValue: 'off',\n },\n ],\n },\n {\n id: 'app-top-bar',\n name: 'App Top Bar',\n category: 'App',\n description: 'Top header: search, mobile menu trigger, primary action, theme toggle, avatar slot.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-surface-alt) 50%, transparent)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'height', label: 'Height', control: 'number', defaultValue: 64, min: 48, max: 96, step: 4, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 16, min: 8, max: 32, step: 2, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'searchMaxWidth', label: 'Search Max Width', control: 'number', defaultValue: 320, min: 160, max: 480, step: 8, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'language-switcher',\n name: 'Language Switcher',\n category: 'App',\n description:\n 'The library-owned language control: globe + the current language\\'s endonym, opening the shared Listbox panel. Data-free — the locale list, value and change handler all come from the consumer. Renders nothing at all when one locale is configured.',\n styleProperties: [\n // Defaults mirror the atom's own `--uxm-language-switcher-*` fallbacks,\n // so an untouched studio equals the shipped look. The PANEL is absent\n // here on purpose: it inherits the shared `--uxm-listbox-*` surface, so\n // its knobs live on the Listbox def and theming it there themes every\n // picker at once.\n { key: 'bg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'default' } },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border-strong, var(--color-border))', section: 'states', showWhen: { state: 'hover' } },\n { key: 'openBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: 'open' } },\n { key: 'openBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'open' } },\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n // Shared style — always visible.\n { key: 'caretColor', label: 'Caret Color', control: 'color', defaultValue: 'var(--color-text-muted)' },\n { key: 'radius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 10, min: 4, max: 32, step: 1, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 7, min: 2, max: 20, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 20, step: 1, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 6, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'variant',\n label: 'Variant',\n defaultValue: 'full',\n options: [\n { value: 'full', label: 'Full' },\n { value: 'compact', label: 'Compact' },\n ],\n },\n {\n key: 'state',\n label: 'State',\n defaultValue: 'default',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'open', label: 'Open' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n },\n ],\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../src/studio/lib/registry/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../src/studio/lib/registry/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,OAAO,EAAE,YAAY,EA4JjC,CAAC"}
|
|
@@ -99,6 +99,58 @@ const appDefs = [
|
|
|
99
99
|
{ key: "searchMaxWidth", label: "Search Max Width", control: "number", defaultValue: 320, min: 160, max: 480, step: 8, unit: "px" }
|
|
100
100
|
],
|
|
101
101
|
layoutVariants: []
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: "language-switcher",
|
|
105
|
+
name: "Language Switcher",
|
|
106
|
+
category: "App",
|
|
107
|
+
description: "The library-owned language control: globe + the current language's endonym, opening the shared Listbox panel. Data-free \u2014 the locale list, value and change handler all come from the consumer. Renders nothing at all when one locale is configured.",
|
|
108
|
+
styleProperties: [
|
|
109
|
+
// Defaults mirror the atom's own `--uxm-language-switcher-*` fallbacks,
|
|
110
|
+
// so an untouched studio equals the shipped look. The PANEL is absent
|
|
111
|
+
// here on purpose: it inherits the shared `--uxm-listbox-*` surface, so
|
|
112
|
+
// its knobs live on the Listbox def and theming it there themes every
|
|
113
|
+
// picker at once.
|
|
114
|
+
{ key: "bg", label: "Background", control: "color", defaultValue: "transparent", section: "states", showWhen: { state: "default" } },
|
|
115
|
+
{ key: "color", label: "Text Color", control: "color", defaultValue: "var(--color-text)", section: "states", showWhen: { state: "default" } },
|
|
116
|
+
{ key: "borderColor", label: "Border Color", control: "color", defaultValue: "var(--color-border)", section: "states", showWhen: { state: "default" } },
|
|
117
|
+
{ key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-surface)", section: "states", showWhen: { state: "hover" } },
|
|
118
|
+
{ key: "hoverBorderColor", label: "Border Color", control: "color", defaultValue: "var(--color-border-strong, var(--color-border))", section: "states", showWhen: { state: "hover" } },
|
|
119
|
+
{ key: "openBg", label: "Background", control: "color", defaultValue: "var(--color-surface)", section: "states", showWhen: { state: "open" } },
|
|
120
|
+
{ key: "openBorderColor", label: "Border Color", control: "color", defaultValue: "var(--color-accent)", section: "states", showWhen: { state: "open" } },
|
|
121
|
+
{ key: "focusRing", label: "Ring Color", control: "color", defaultValue: "var(--color-accent)", section: "states", showWhen: { state: "focus" } },
|
|
122
|
+
{ key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: "states", showWhen: { state: "disabled" } },
|
|
123
|
+
// Shared style — always visible.
|
|
124
|
+
{ key: "caretColor", label: "Caret Color", control: "color", defaultValue: "var(--color-text-muted)" },
|
|
125
|
+
{ key: "radius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 24, step: 1, unit: "px" },
|
|
126
|
+
{ key: "paddingX", label: "Padding X", control: "number", defaultValue: 10, min: 4, max: 32, step: 1, unit: "px" },
|
|
127
|
+
{ key: "paddingY", label: "Padding Y", control: "number", defaultValue: 7, min: 2, max: 20, step: 1, unit: "px" },
|
|
128
|
+
{ key: "fontSize", label: "Font Size", control: "number", defaultValue: 13, min: 10, max: 20, step: 1, unit: "px" },
|
|
129
|
+
{ key: "gap", label: "Gap", control: "number", defaultValue: 6, min: 0, max: 16, step: 1, unit: "px" }
|
|
130
|
+
],
|
|
131
|
+
layoutVariants: [
|
|
132
|
+
{
|
|
133
|
+
key: "variant",
|
|
134
|
+
label: "Variant",
|
|
135
|
+
defaultValue: "full",
|
|
136
|
+
options: [
|
|
137
|
+
{ value: "full", label: "Full" },
|
|
138
|
+
{ value: "compact", label: "Compact" }
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
key: "state",
|
|
143
|
+
label: "State",
|
|
144
|
+
defaultValue: "default",
|
|
145
|
+
options: [
|
|
146
|
+
{ value: "default", label: "Default" },
|
|
147
|
+
{ value: "hover", label: "Hover" },
|
|
148
|
+
{ value: "open", label: "Open" },
|
|
149
|
+
{ value: "focus", label: "Focus" },
|
|
150
|
+
{ value: "disabled", label: "Disabled" }
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
]
|
|
102
154
|
}
|
|
103
155
|
];
|
|
104
156
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/studio/lib/registry/app.ts"],"sourcesContent":["import type { ComponentDef } from '../types';\n\nexport const appDefs: ComponentDef[] = [\n // ── App ──\n {\n id: 'brand-settings',\n name: 'Brand Settings',\n category: 'App',\n description: 'Configure the Modo logo, sidebar icon, and primary font.',\n styleProperties: [],\n layoutVariants: [],\n canvasBackground: false,\n },\n {\n id: 'app-sidebar',\n name: 'App Sidebar',\n category: 'App',\n description:\n 'Left navigation: brand row, an optional header slot at the head of the rail, sectioned nav items, an optional footer slot, expand/collapse. Both slots survive collapse.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'expandedWidth', label: 'Expanded Width', control: 'number', defaultValue: 256, min: 200, max: 320, step: 4, unit: 'px' },\n { key: 'collapsedWidth', label: 'Collapsed Width', control: 'number', defaultValue: 64, min: 48, max: 96, step: 4, unit: 'px' },\n { key: 'headingColor', label: 'Section Heading', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'footerColor', label: 'Footer Text', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n // Both slots align to `__nav`'s 8px, so a control in either lines its text\n // up with the nav rows (8 + the child's own 12 = 20px, where a nav label\n // starts). The footer used to carry a 24px caption inset, which put a\n // control at 36px and cost it 32px of width — an address ellipsised for no\n // reason. The knobs stay so a caption can take the deeper inset back.\n //\n // Each sits in its OWN section rather than beside the width knobs. The\n // panel derives a section's subtitle from the union of `showWhen` keys\n // across every knob inside it, so a gated knob dropped in with the\n // ungated widths made the whole section read \"Per Header Slot x Footer\n // Slot\" — a claim that is false for Expanded/Collapsed Width. Same rule\n // the `avatar` entry states: a section is either all-shared or all-gated.\n // One key per section also keeps the subtitle to \"Per Header Slot - On\"\n // instead of an \"A x B\" that implies each knob depends on both.\n { key: 'leadPadding', label: 'Padding', control: 'number', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px', section: 'headerSlot', showWhen: { headerSlot: 'on' } },\n { key: 'footerPadding', label: 'Padding', control: 'number', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px', section: 'footerSlot', showWhen: { footerSlot: 'on' } },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'expanded', label: 'Expanded' },\n { value: 'collapsed', label: 'Collapsed' },\n ],\n defaultValue: 'expanded',\n },\n {\n // The head slot is off in plenty of shells (a single-tenant app has no\n // switcher), so it is a picker rather than always-on content — and with\n // it off you can still see that the sidebar reserves nothing for it.\n key: 'headerSlot',\n label: 'Header Slot',\n options: [\n { value: 'on', label: 'On' },\n { value: 'off', label: 'Off' },\n ],\n defaultValue: 'on',\n },\n {\n // Both slots are optional, so both get a picker. One without the other\n // would imply the footer is structural — and with either off you can see\n // that the sidebar reserves no space for a slot it was not given.\n key: 'footerSlot',\n label: 'Footer Slot',\n options: [\n { value: 'on', label: 'On' },\n { value: 'off', label: 'Off' },\n ],\n defaultValue: 'on',\n },\n {\n // Auto-assign a distinct icon colour per item from a categorical\n // palette (cycling) for scannability, vs the monochromatic default.\n key: 'autoIconColors',\n label: 'Auto Icon Colors',\n options: [\n { value: 'off', label: 'Off' },\n { value: 'on', label: 'On' },\n ],\n defaultValue: 'off',\n },\n ],\n },\n {\n id: 'app-top-bar',\n name: 'App Top Bar',\n category: 'App',\n description: 'Top header: search, mobile menu trigger, primary action, theme toggle, avatar slot.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-surface-alt) 50%, transparent)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'height', label: 'Height', control: 'number', defaultValue: 64, min: 48, max: 96, step: 4, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 16, min: 8, max: 32, step: 2, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'searchMaxWidth', label: 'Search Max Width', control: 'number', defaultValue: 320, min: 160, max: 480, step: 8, unit: 'px' },\n ],\n layoutVariants: [],\n },\n];\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/studio/lib/registry/app.ts"],"sourcesContent":["import type { ComponentDef } from '../types';\n\nexport const appDefs: ComponentDef[] = [\n // ── App ──\n {\n id: 'brand-settings',\n name: 'Brand Settings',\n category: 'App',\n description: 'Configure the Modo logo, sidebar icon, and primary font.',\n styleProperties: [],\n layoutVariants: [],\n canvasBackground: false,\n },\n {\n id: 'app-sidebar',\n name: 'App Sidebar',\n category: 'App',\n description:\n 'Left navigation: brand row, an optional header slot at the head of the rail, sectioned nav items, an optional footer slot, expand/collapse. Both slots survive collapse.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'expandedWidth', label: 'Expanded Width', control: 'number', defaultValue: 256, min: 200, max: 320, step: 4, unit: 'px' },\n { key: 'collapsedWidth', label: 'Collapsed Width', control: 'number', defaultValue: 64, min: 48, max: 96, step: 4, unit: 'px' },\n { key: 'headingColor', label: 'Section Heading', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'footerColor', label: 'Footer Text', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n // Both slots align to `__nav`'s 8px, so a control in either lines its text\n // up with the nav rows (8 + the child's own 12 = 20px, where a nav label\n // starts). The footer used to carry a 24px caption inset, which put a\n // control at 36px and cost it 32px of width — an address ellipsised for no\n // reason. The knobs stay so a caption can take the deeper inset back.\n //\n // Each sits in its OWN section rather than beside the width knobs. The\n // panel derives a section's subtitle from the union of `showWhen` keys\n // across every knob inside it, so a gated knob dropped in with the\n // ungated widths made the whole section read \"Per Header Slot x Footer\n // Slot\" — a claim that is false for Expanded/Collapsed Width. Same rule\n // the `avatar` entry states: a section is either all-shared or all-gated.\n // One key per section also keeps the subtitle to \"Per Header Slot - On\"\n // instead of an \"A x B\" that implies each knob depends on both.\n { key: 'leadPadding', label: 'Padding', control: 'number', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px', section: 'headerSlot', showWhen: { headerSlot: 'on' } },\n { key: 'footerPadding', label: 'Padding', control: 'number', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px', section: 'footerSlot', showWhen: { footerSlot: 'on' } },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'expanded', label: 'Expanded' },\n { value: 'collapsed', label: 'Collapsed' },\n ],\n defaultValue: 'expanded',\n },\n {\n // The head slot is off in plenty of shells (a single-tenant app has no\n // switcher), so it is a picker rather than always-on content — and with\n // it off you can still see that the sidebar reserves nothing for it.\n key: 'headerSlot',\n label: 'Header Slot',\n options: [\n { value: 'on', label: 'On' },\n { value: 'off', label: 'Off' },\n ],\n defaultValue: 'on',\n },\n {\n // Both slots are optional, so both get a picker. One without the other\n // would imply the footer is structural — and with either off you can see\n // that the sidebar reserves no space for a slot it was not given.\n key: 'footerSlot',\n label: 'Footer Slot',\n options: [\n { value: 'on', label: 'On' },\n { value: 'off', label: 'Off' },\n ],\n defaultValue: 'on',\n },\n {\n // Auto-assign a distinct icon colour per item from a categorical\n // palette (cycling) for scannability, vs the monochromatic default.\n key: 'autoIconColors',\n label: 'Auto Icon Colors',\n options: [\n { value: 'off', label: 'Off' },\n { value: 'on', label: 'On' },\n ],\n defaultValue: 'off',\n },\n ],\n },\n {\n id: 'app-top-bar',\n name: 'App Top Bar',\n category: 'App',\n description: 'Top header: search, mobile menu trigger, primary action, theme toggle, avatar slot.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-surface-alt) 50%, transparent)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'height', label: 'Height', control: 'number', defaultValue: 64, min: 48, max: 96, step: 4, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 16, min: 8, max: 32, step: 2, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'searchMaxWidth', label: 'Search Max Width', control: 'number', defaultValue: 320, min: 160, max: 480, step: 8, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'language-switcher',\n name: 'Language Switcher',\n category: 'App',\n description:\n 'The library-owned language control: globe + the current language\\'s endonym, opening the shared Listbox panel. Data-free — the locale list, value and change handler all come from the consumer. Renders nothing at all when one locale is configured.',\n styleProperties: [\n // Defaults mirror the atom's own `--uxm-language-switcher-*` fallbacks,\n // so an untouched studio equals the shipped look. The PANEL is absent\n // here on purpose: it inherits the shared `--uxm-listbox-*` surface, so\n // its knobs live on the Listbox def and theming it there themes every\n // picker at once.\n { key: 'bg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'default' } },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border-strong, var(--color-border))', section: 'states', showWhen: { state: 'hover' } },\n { key: 'openBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: 'open' } },\n { key: 'openBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'open' } },\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n // Shared style — always visible.\n { key: 'caretColor', label: 'Caret Color', control: 'color', defaultValue: 'var(--color-text-muted)' },\n { key: 'radius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 10, min: 4, max: 32, step: 1, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 7, min: 2, max: 20, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 20, step: 1, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 6, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'variant',\n label: 'Variant',\n defaultValue: 'full',\n options: [\n { value: 'full', label: 'Full' },\n { value: 'compact', label: 'Compact' },\n ],\n },\n {\n key: 'state',\n label: 'State',\n defaultValue: 'default',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'open', label: 'Open' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n },\n ],\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -73,7 +73,7 @@ const buttonsDefs = [
|
|
|
73
73
|
{ name: "onBlur", description: "Fires when the button loses keyboard focus.", payload: "FocusEvent" }
|
|
74
74
|
],
|
|
75
75
|
api: {
|
|
76
|
-
importPath: "@viax
|
|
76
|
+
importPath: "@viax/uxm/ui",
|
|
77
77
|
importNames: "ButtonPrimary",
|
|
78
78
|
props: [
|
|
79
79
|
{ name: "children", type: "ReactNode", description: "Button label \u2014 text, icon, or both." },
|
|
@@ -290,7 +290,7 @@ const buttonsDefs = [
|
|
|
290
290
|
{ name: "onBlur", description: "Fires when the button loses keyboard focus.", payload: "FocusEvent" }
|
|
291
291
|
],
|
|
292
292
|
api: {
|
|
293
|
-
importPath: "@viax
|
|
293
|
+
importPath: "@viax/uxm/ui",
|
|
294
294
|
importNames: "ButtonDanger",
|
|
295
295
|
props: [
|
|
296
296
|
{ name: "children", type: "ReactNode", description: 'Button label \u2014 text, icon, or both. Prefer an explicit verb ("Delete", "Remove").' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/studio/lib/registry/buttons.ts"],"sourcesContent":["import { ICON_OPTIONS } from '@/ui';\n\nimport type { ComponentDef } from '../types';\n\nexport const buttonsDefs: ComponentDef[] = [\n // ── Buttons ──\n {\n id: 'button-primary',\n name: 'Button — Primary',\n category: 'Buttons',\n description: 'Primary call-to-action button with solid background.',\n styleProperties: [\n // State-scoped colors — Tag-style filter via showWhen. Designers tune\n // background + text per state. Hover shades accent-bold slightly toward\n // text (contrast-safe with white text — a brighter accent would fail);\n // active returns to bold. Matches the atom's `--uxm-button-primary-*`\n // fallbacks so the studio default equals the shipped default.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-accent-bold) 88%, var(--color-text))', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'active' } },\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style — always visible.\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 4, max: 48, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 2, max: 24, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 10, max: 24, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['400', '500', '600', '700'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n api: {\n importPath: '@viax.io/uxm/ui',\n importNames: 'ButtonPrimary',\n props: [\n { name: 'children', type: 'ReactNode', description: 'Button label — text, icon, or both.' },\n { name: 'onClick', type: '(e: MouseEvent<HTMLButtonElement>) => void', description: 'Click handler.' },\n { name: 'disabled', type: 'boolean', defaultValue: 'false', description: 'Disables the button and prevents interaction.' },\n { name: 'type', type: '\"button\" | \"submit\" | \"reset\"', defaultValue: '\"button\"', description: \"Native button type. Defaults to 'button' to avoid accidental form submits.\" },\n { name: 'className', type: 'string', description: \"Extra classes appended after the atom's own `uxm-button-primary`.\" },\n { name: '...rest', type: 'ButtonHTMLAttributes<HTMLButtonElement>', description: 'All other native button attributes (aria-label, tabIndex, etc.) pass through to the underlying <button>.' },\n ],\n },\n },\n {\n id: 'button-secondary',\n name: 'Button — Secondary',\n category: 'Buttons',\n description: 'Secondary button with border outline.',\n styleProperties: [\n // Default\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'default' } },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'default' } },\n // Hover\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'hover' } },\n // Pressed\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'active' } },\n // Focus\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'focus' } },\n // Disabled\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 4, max: 48, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 2, max: 24, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 10, max: 24, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['400', '500', '600', '700'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n },\n {\n id: 'button-tertiary',\n name: 'Button — Tertiary',\n category: 'Buttons',\n description: 'Neutral outlined button for Cancel-style and supporting actions.',\n styleProperties: [\n // Default\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'default' } },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'states', showWhen: { state: 'default' } },\n // Hover\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'states', showWhen: { state: 'hover' } },\n // Pressed\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'active' } },\n // Focus\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n // Disabled\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 4, max: 48, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 2, max: 24, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 10, max: 24, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['400', '500', '600', '700'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n },\n {\n id: 'button-ghost',\n name: 'Button — Ghost',\n category: 'Buttons',\n description: 'Transparent button with text-only styling.',\n styleProperties: [\n // Default — no bg fill, text only.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'default' } },\n // Hover — get a subtle surface fill to telegraph interactivity.\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'hover' } },\n // Pressed\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'active' } },\n // Focus\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'focus' } },\n // Disabled\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 4, max: 48, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 2, max: 24, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 10, max: 24, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n },\n {\n id: 'button-danger',\n name: 'Button — Destructive',\n category: 'Buttons',\n description: 'Destructive (danger) action button for irreversible operations — Delete, Remove, Discard. Outlined/subtle by default (danger-tinted surface + danger text + danger border); pressing deepens to a solid danger fill so the commit-to-destroy moment reads clearly. Reuses the semantic danger token trio — no new palette tokens. Reserve for genuinely destructive actions; everything else uses the primary/secondary/tertiary family.',\n styleProperties: [\n // Default — danger-tinted surface, danger text + border.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-danger-bg)', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'default' } },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-danger-border)', section: 'states', showWhen: { state: 'default' } },\n // Hover — deepen the tint toward the danger text colour.\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-danger-border)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'hover' } },\n // Pressed — solid danger fill, inverse text.\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'active' } },\n // Focus\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'focus' } },\n // Disabled\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 4, max: 48, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 2, max: 24, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 10, max: 24, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['400', '500', '600', '700'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n api: {\n importPath: '@viax.io/uxm/ui',\n importNames: 'ButtonDanger',\n props: [\n { name: 'children', type: 'ReactNode', description: 'Button label — text, icon, or both. Prefer an explicit verb (\"Delete\", \"Remove\").' },\n { name: 'onClick', type: '(e: MouseEvent<HTMLButtonElement>) => void', description: 'Click handler. For irreversible actions, confirm before committing.' },\n { name: 'disabled', type: 'boolean', defaultValue: 'false', description: 'Disables the button and prevents interaction.' },\n { name: 'type', type: '\"button\" | \"submit\" | \"reset\"', defaultValue: '\"button\"', description: \"Native button type. Defaults to 'button' to avoid accidental form submits.\" },\n { name: 'className', type: 'string', description: \"Extra classes appended after the atom's own `uxm-button-danger`.\" },\n { name: '...rest', type: 'ButtonHTMLAttributes<HTMLButtonElement>', description: 'All other native button attributes (aria-label, tabIndex, etc.) pass through to the underlying <button>.' },\n ],\n },\n },\n {\n id: 'button-with-icon',\n name: 'Button — With Icon',\n category: 'Buttons',\n description: 'Labelled button with a leading icon; outline/secondary styling.',\n styleProperties: [\n // Default — text-muted border (a step darker than tertiary's\n // `--color-border`) gives this atom a more visible outline without\n // the accent shout. Tertiary stays softer with the lightest grey border.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'states', showWhen: { state: 'default' } },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n // Hover — a faint accent-subtle wash (like button-secondary), border to\n // accent and text to `--color-text`. Defaults mirror the atom's\n // `--uxm-button-with-icon-hover-*` fallbacks so the studio default equals\n // the shipped default.\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'hover' } },\n // Active — pressing settles back to the resting card fill (like the rest\n // of the family), keeping the hover border/text. Mirrors the atom's\n // `--uxm-button-with-icon-active-*` fallbacks.\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'active' } },\n // Focus\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n // Disabled\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 32, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 8, min: 2, max: 16, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 16, min: 12, max: 24, step: 1, unit: 'px' },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 8, min: 2, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n },\n {\n id: 'button-icon',\n name: 'Button — Icon',\n category: 'Buttons',\n description: 'Standalone icon-only action button (e.g. \"add\", \"create new\"). Icon variant of the primary button family.',\n styleProperties: [\n // State-scoped knobs — one \"States\" section, filtered to the\n // currently-selected State variant via showWhen. Matches the Tag\n // convention (colors per type). Every state owns both background\n // and icon color so designers can tune contrast independently\n // (e.g. inverse icon on a bold pressed bg).\n // Default\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'default' } },\n // Hover\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n // Pressed\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'active' } },\n // Focus\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n // Disabled\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Always-visible sizing — shared across all states.\n { key: 'size', label: 'Size', control: 'number', defaultValue: 40, min: 24, max: 64, step: 4, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 32, step: 1, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 18, min: 12, max: 32, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'glyph',\n label: 'Glyph',\n options: ICON_OPTIONS,\n defaultValue: 'plus',\n },\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n },\n];\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/studio/lib/registry/buttons.ts"],"sourcesContent":["import { ICON_OPTIONS } from '@/ui';\n\nimport type { ComponentDef } from '../types';\n\nexport const buttonsDefs: ComponentDef[] = [\n // ── Buttons ──\n {\n id: 'button-primary',\n name: 'Button — Primary',\n category: 'Buttons',\n description: 'Primary call-to-action button with solid background.',\n styleProperties: [\n // State-scoped colors — Tag-style filter via showWhen. Designers tune\n // background + text per state. Hover shades accent-bold slightly toward\n // text (contrast-safe with white text — a brighter accent would fail);\n // active returns to bold. Matches the atom's `--uxm-button-primary-*`\n // fallbacks so the studio default equals the shipped default.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-accent-bold) 88%, var(--color-text))', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'active' } },\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style — always visible.\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 4, max: 48, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 2, max: 24, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 10, max: 24, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['400', '500', '600', '700'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n api: {\n importPath: '@viax/uxm/ui',\n importNames: 'ButtonPrimary',\n props: [\n { name: 'children', type: 'ReactNode', description: 'Button label — text, icon, or both.' },\n { name: 'onClick', type: '(e: MouseEvent<HTMLButtonElement>) => void', description: 'Click handler.' },\n { name: 'disabled', type: 'boolean', defaultValue: 'false', description: 'Disables the button and prevents interaction.' },\n { name: 'type', type: '\"button\" | \"submit\" | \"reset\"', defaultValue: '\"button\"', description: \"Native button type. Defaults to 'button' to avoid accidental form submits.\" },\n { name: 'className', type: 'string', description: \"Extra classes appended after the atom's own `uxm-button-primary`.\" },\n { name: '...rest', type: 'ButtonHTMLAttributes<HTMLButtonElement>', description: 'All other native button attributes (aria-label, tabIndex, etc.) pass through to the underlying <button>.' },\n ],\n },\n },\n {\n id: 'button-secondary',\n name: 'Button — Secondary',\n category: 'Buttons',\n description: 'Secondary button with border outline.',\n styleProperties: [\n // Default\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'default' } },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'default' } },\n // Hover\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'hover' } },\n // Pressed\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'active' } },\n // Focus\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'focus' } },\n // Disabled\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 4, max: 48, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 2, max: 24, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 10, max: 24, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['400', '500', '600', '700'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n },\n {\n id: 'button-tertiary',\n name: 'Button — Tertiary',\n category: 'Buttons',\n description: 'Neutral outlined button for Cancel-style and supporting actions.',\n styleProperties: [\n // Default\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'default' } },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'states', showWhen: { state: 'default' } },\n // Hover\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'states', showWhen: { state: 'hover' } },\n // Pressed\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'active' } },\n // Focus\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n // Disabled\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 4, max: 48, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 2, max: 24, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 10, max: 24, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['400', '500', '600', '700'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n },\n {\n id: 'button-ghost',\n name: 'Button — Ghost',\n category: 'Buttons',\n description: 'Transparent button with text-only styling.',\n styleProperties: [\n // Default — no bg fill, text only.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'default' } },\n // Hover — get a subtle surface fill to telegraph interactivity.\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'hover' } },\n // Pressed\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'active' } },\n // Focus\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'focus' } },\n // Disabled\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 4, max: 48, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 2, max: 24, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 10, max: 24, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n },\n {\n id: 'button-danger',\n name: 'Button — Destructive',\n category: 'Buttons',\n description: 'Destructive (danger) action button for irreversible operations — Delete, Remove, Discard. Outlined/subtle by default (danger-tinted surface + danger text + danger border); pressing deepens to a solid danger fill so the commit-to-destroy moment reads clearly. Reuses the semantic danger token trio — no new palette tokens. Reserve for genuinely destructive actions; everything else uses the primary/secondary/tertiary family.',\n styleProperties: [\n // Default — danger-tinted surface, danger text + border.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-danger-bg)', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'default' } },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-danger-border)', section: 'states', showWhen: { state: 'default' } },\n // Hover — deepen the tint toward the danger text colour.\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-danger-border)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'hover' } },\n // Pressed — solid danger fill, inverse text.\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'active' } },\n // Focus\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'focus' } },\n // Disabled\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 4, max: 48, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 2, max: 24, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 10, max: 24, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['400', '500', '600', '700'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n api: {\n importPath: '@viax/uxm/ui',\n importNames: 'ButtonDanger',\n props: [\n { name: 'children', type: 'ReactNode', description: 'Button label — text, icon, or both. Prefer an explicit verb (\"Delete\", \"Remove\").' },\n { name: 'onClick', type: '(e: MouseEvent<HTMLButtonElement>) => void', description: 'Click handler. For irreversible actions, confirm before committing.' },\n { name: 'disabled', type: 'boolean', defaultValue: 'false', description: 'Disables the button and prevents interaction.' },\n { name: 'type', type: '\"button\" | \"submit\" | \"reset\"', defaultValue: '\"button\"', description: \"Native button type. Defaults to 'button' to avoid accidental form submits.\" },\n { name: 'className', type: 'string', description: \"Extra classes appended after the atom's own `uxm-button-danger`.\" },\n { name: '...rest', type: 'ButtonHTMLAttributes<HTMLButtonElement>', description: 'All other native button attributes (aria-label, tabIndex, etc.) pass through to the underlying <button>.' },\n ],\n },\n },\n {\n id: 'button-with-icon',\n name: 'Button — With Icon',\n category: 'Buttons',\n description: 'Labelled button with a leading icon; outline/secondary styling.',\n styleProperties: [\n // Default — text-muted border (a step darker than tertiary's\n // `--color-border`) gives this atom a more visible outline without\n // the accent shout. Tertiary stays softer with the lightest grey border.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'states', showWhen: { state: 'default' } },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n // Hover — a faint accent-subtle wash (like button-secondary), border to\n // accent and text to `--color-text`. Defaults mirror the atom's\n // `--uxm-button-with-icon-hover-*` fallbacks so the studio default equals\n // the shipped default.\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'hover' } },\n // Active — pressing settles back to the resting card fill (like the rest\n // of the family), keeping the hover border/text. Mirrors the atom's\n // `--uxm-button-with-icon-active-*` fallbacks.\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeBorderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'active' } },\n // Focus\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n // Disabled\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 32, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 8, min: 2, max: 16, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 16, min: 12, max: 24, step: 1, unit: 'px' },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 8, min: 2, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n },\n {\n id: 'button-icon',\n name: 'Button — Icon',\n category: 'Buttons',\n description: 'Standalone icon-only action button (e.g. \"add\", \"create new\"). Icon variant of the primary button family.',\n styleProperties: [\n // State-scoped knobs — one \"States\" section, filtered to the\n // currently-selected State variant via showWhen. Matches the Tag\n // convention (colors per type). Every state owns both background\n // and icon color so designers can tune contrast independently\n // (e.g. inverse icon on a bold pressed bg).\n // Default\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'default' } },\n { key: 'color', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'default' } },\n // Hover\n { key: 'hoverBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n // Pressed\n { key: 'activeBackgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'states', showWhen: { state: 'active' } },\n // Focus\n { key: 'focusRingColor', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'focusColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n // Disabled\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Always-visible sizing — shared across all states.\n { key: 'size', label: 'Size', control: 'number', defaultValue: 40, min: 24, max: 64, step: 4, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 32, step: 1, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 18, min: 12, max: 32, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'glyph',\n label: 'Glyph',\n options: ICON_OPTIONS,\n defaultValue: 'plus',\n },\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'active', label: 'Pressed' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires on mouse click or Enter/Space activation while focused.', payload: 'MouseEvent<HTMLButtonElement>' },\n { name: 'onFocus', description: 'Fires when the button receives keyboard focus.', payload: 'FocusEvent' },\n { name: 'onBlur', description: 'Fires when the button loses keyboard focus.', payload: 'FocusEvent' },\n ],\n },\n];\n"],"mappings":"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","names":[]}
|
|
@@ -50,7 +50,7 @@ const buttonsDefs = [
|
|
|
50
50
|
{ name: "onBlur", description: "Fires when the button loses keyboard focus.", payload: "FocusEvent" }
|
|
51
51
|
],
|
|
52
52
|
api: {
|
|
53
|
-
importPath: "@viax
|
|
53
|
+
importPath: "@viax/uxm/ui",
|
|
54
54
|
importNames: "ButtonPrimary",
|
|
55
55
|
props: [
|
|
56
56
|
{ name: "children", type: "ReactNode", description: "Button label \u2014 text, icon, or both." },
|
|
@@ -267,7 +267,7 @@ const buttonsDefs = [
|
|
|
267
267
|
{ name: "onBlur", description: "Fires when the button loses keyboard focus.", payload: "FocusEvent" }
|
|
268
268
|
],
|
|
269
269
|
api: {
|
|
270
|
-
importPath: "@viax
|
|
270
|
+
importPath: "@viax/uxm/ui",
|
|
271
271
|
importNames: "ButtonDanger",
|
|
272
272
|
props: [
|
|
273
273
|
{ name: "children", type: "ReactNode", description: 'Button label \u2014 text, icon, or both. Prefer an explicit verb ("Delete", "Remove").' },
|