@viax.io/uxm 4.36.0 → 4.37.0

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.
Files changed (133) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +74 -31
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.ts +3 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/previews/index.cjs +3 -0
  7. package/dist/previews/index.cjs.map +1 -1
  8. package/dist/previews/index.d.ts +3 -2
  9. package/dist/previews/index.d.ts.map +1 -1
  10. package/dist/previews/index.js +2 -0
  11. package/dist/previews/index.js.map +1 -1
  12. package/dist/studio/index.cjs.map +1 -1
  13. package/dist/studio/index.d.ts +2 -2
  14. package/dist/studio/index.js.map +1 -1
  15. package/dist/studio/lib/registry/app.cjs +52 -0
  16. package/dist/studio/lib/registry/app.cjs.map +1 -1
  17. package/dist/studio/lib/registry/app.d.ts.map +1 -1
  18. package/dist/studio/lib/registry/app.js +52 -0
  19. package/dist/studio/lib/registry/app.js.map +1 -1
  20. package/dist/studio/lib/registry/buttons.cjs +2 -2
  21. package/dist/studio/lib/registry/buttons.cjs.map +1 -1
  22. package/dist/studio/lib/registry/buttons.js +2 -2
  23. package/dist/studio/lib/registry/buttons.js.map +1 -1
  24. package/dist/studio/lib/registry/composite.cjs +1 -1
  25. package/dist/studio/lib/registry/composite.cjs.map +1 -1
  26. package/dist/studio/lib/registry/composite.js +1 -1
  27. package/dist/studio/lib/registry/composite.js.map +1 -1
  28. package/dist/studio/lib/registry/diagram.cjs +1 -1
  29. package/dist/studio/lib/registry/diagram.cjs.map +1 -1
  30. package/dist/studio/lib/registry/diagram.js +1 -1
  31. package/dist/studio/lib/registry/diagram.js.map +1 -1
  32. package/dist/studio/lib/registry/display.cjs +2 -2
  33. package/dist/studio/lib/registry/display.cjs.map +1 -1
  34. package/dist/studio/lib/registry/display.js +2 -2
  35. package/dist/studio/lib/registry/display.js.map +1 -1
  36. package/dist/studio/lib/registry/feedback.cjs +3 -3
  37. package/dist/studio/lib/registry/feedback.cjs.map +1 -1
  38. package/dist/studio/lib/registry/feedback.js +3 -3
  39. package/dist/studio/lib/registry/feedback.js.map +1 -1
  40. package/dist/studio/lib/registry/inputs.cjs +12 -12
  41. package/dist/studio/lib/registry/inputs.cjs.map +1 -1
  42. package/dist/studio/lib/registry/inputs.js +12 -12
  43. package/dist/studio/lib/registry/inputs.js.map +1 -1
  44. package/dist/studio/lib/types.cjs.map +1 -1
  45. package/dist/studio/persistence/generate-css.cjs +15 -0
  46. package/dist/studio/persistence/generate-css.cjs.map +1 -1
  47. package/dist/studio/persistence/generate-css.d.ts.map +1 -1
  48. package/dist/studio/persistence/generate-css.js +15 -0
  49. package/dist/studio/persistence/generate-css.js.map +1 -1
  50. package/dist/studio/shell/canvas.cjs +1 -0
  51. package/dist/studio/shell/canvas.cjs.map +1 -1
  52. package/dist/studio/shell/canvas.d.ts.map +1 -1
  53. package/dist/studio/shell/canvas.js +2 -0
  54. package/dist/studio/shell/canvas.js.map +1 -1
  55. package/dist/ui/calendar/calendar.cjs +3 -1
  56. package/dist/ui/calendar/calendar.cjs.map +1 -1
  57. package/dist/ui/calendar/calendar.d.ts +6 -2
  58. package/dist/ui/calendar/calendar.d.ts.map +1 -1
  59. package/dist/ui/calendar/calendar.js +3 -1
  60. package/dist/ui/calendar/calendar.js.map +1 -1
  61. package/dist/ui/currency-input/currency-input.cjs +3 -1
  62. package/dist/ui/currency-input/currency-input.cjs.map +1 -1
  63. package/dist/ui/currency-input/currency-input.d.ts +4 -2
  64. package/dist/ui/currency-input/currency-input.d.ts.map +1 -1
  65. package/dist/ui/currency-input/currency-input.js +3 -1
  66. package/dist/ui/currency-input/currency-input.js.map +1 -1
  67. package/dist/ui/date-input/date-input.cjs +2 -1
  68. package/dist/ui/date-input/date-input.cjs.map +1 -1
  69. package/dist/ui/date-input/date-input.d.ts +11 -1
  70. package/dist/ui/date-input/date-input.d.ts.map +1 -1
  71. package/dist/ui/date-input/date-input.js +2 -1
  72. package/dist/ui/date-input/date-input.js.map +1 -1
  73. package/dist/ui/editable-cell/editable-cell.cjs +20 -6
  74. package/dist/ui/editable-cell/editable-cell.cjs.map +1 -1
  75. package/dist/ui/editable-cell/editable-cell.d.ts +24 -1
  76. package/dist/ui/editable-cell/editable-cell.d.ts.map +1 -1
  77. package/dist/ui/editable-cell/editable-cell.js +20 -6
  78. package/dist/ui/editable-cell/editable-cell.js.map +1 -1
  79. package/dist/ui/file-upload/file-upload.cjs +36 -9
  80. package/dist/ui/file-upload/file-upload.cjs.map +1 -1
  81. package/dist/ui/file-upload/file-upload.d.ts +46 -4
  82. package/dist/ui/file-upload/file-upload.d.ts.map +1 -1
  83. package/dist/ui/file-upload/file-upload.js +36 -9
  84. package/dist/ui/file-upload/file-upload.js.map +1 -1
  85. package/dist/ui/index.cjs +12 -2
  86. package/dist/ui/index.cjs.map +1 -1
  87. package/dist/ui/index.d.ts +5 -1
  88. package/dist/ui/index.d.ts.map +1 -1
  89. package/dist/ui/index.js +7 -1
  90. package/dist/ui/index.js.map +1 -1
  91. package/dist/ui/language-switcher/index.cjs +29 -0
  92. package/dist/ui/language-switcher/index.cjs.map +1 -0
  93. package/dist/ui/language-switcher/index.d.ts +3 -0
  94. package/dist/ui/language-switcher/index.d.ts.map +1 -0
  95. package/dist/ui/language-switcher/index.js +5 -0
  96. package/dist/ui/language-switcher/index.js.map +1 -0
  97. package/dist/ui/language-switcher/language-switcher-preview.cjs +137 -0
  98. package/dist/ui/language-switcher/language-switcher-preview.cjs.map +1 -0
  99. package/dist/ui/language-switcher/language-switcher-preview.d.ts +3 -0
  100. package/dist/ui/language-switcher/language-switcher-preview.d.ts.map +1 -0
  101. package/dist/ui/language-switcher/language-switcher-preview.js +113 -0
  102. package/dist/ui/language-switcher/language-switcher-preview.js.map +1 -0
  103. package/dist/ui/language-switcher/language-switcher.cjs +127 -0
  104. package/dist/ui/language-switcher/language-switcher.cjs.map +1 -0
  105. package/dist/ui/language-switcher/language-switcher.css +95 -0
  106. package/dist/ui/language-switcher/language-switcher.d.ts +73 -0
  107. package/dist/ui/language-switcher/language-switcher.d.ts.map +1 -0
  108. package/dist/ui/language-switcher/language-switcher.js +103 -0
  109. package/dist/ui/language-switcher/language-switcher.js.map +1 -0
  110. package/dist/ui/locale/index.cjs +33 -0
  111. package/dist/ui/locale/index.cjs.map +1 -0
  112. package/dist/ui/locale/index.d.ts +3 -0
  113. package/dist/ui/locale/index.d.ts.map +1 -0
  114. package/dist/ui/locale/index.js +7 -0
  115. package/dist/ui/locale/index.js.map +1 -0
  116. package/dist/ui/locale/locale.cjs +43 -0
  117. package/dist/ui/locale/locale.cjs.map +1 -0
  118. package/dist/ui/locale/locale.d.ts +49 -0
  119. package/dist/ui/locale/locale.d.ts.map +1 -0
  120. package/dist/ui/locale/locale.js +17 -0
  121. package/dist/ui/locale/locale.js.map +1 -0
  122. package/dist/ui/page-shell/page-shell.cjs.map +1 -1
  123. package/dist/ui/page-shell/page-shell.d.ts +1 -1
  124. package/dist/ui/page-shell/page-shell.d.ts.map +1 -1
  125. package/dist/ui/page-shell/page-shell.js.map +1 -1
  126. package/dist/ui/range-slider/range-slider.cjs +7 -3
  127. package/dist/ui/range-slider/range-slider.cjs.map +1 -1
  128. package/dist/ui/range-slider/range-slider.d.ts +17 -1
  129. package/dist/ui/range-slider/range-slider.d.ts.map +1 -1
  130. package/dist/ui/range-slider/range-slider.js +7 -3
  131. package/dist/ui/range-slider/range-slider.js.map +1 -1
  132. package/dist/ui/styles.css +2 -1
  133. package/package.json +4 -5
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [4.37.0](https://gitlab.viax.tech/services-viax/uxm/compare/v4.36.0...v4.37.0) (2026-09-07)
2
+
3
+
4
+ ### Features
5
+
6
+ * **locale:** add locale sensitivity, resolve static component data from the parent ([eed5b79](https://gitlab.viax.tech/services-viax/uxm/commit/eed5b79c95e98fa230f4e6a12612d7679ab927d0))
7
+
1
8
  # [4.36.0](https://gitlab.viax.tech/services-viax/uxm/compare/v4.35.0...v4.36.0) (2026-09-04)
2
9
 
3
10
 
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @viax.io/uxm
1
+ # @viax/uxm
2
2
 
3
3
  **React 19 UI primitives, design tokens, and theming previews — packaged as a standalone library.**
4
4
 
@@ -8,20 +8,20 @@ The package ships **no `"use client"` / `"use server"` directives** by design: c
8
8
 
9
9
  ## What's in this package
10
10
 
11
- - **UI primitives** (`@viax.io/uxm/ui`) — BEM-classed React 19 components.
12
- - **Icon registry** (`@viax.io/uxm/ui`) — `ICONS`, `ICON_OPTIONS`, `getIcon`, `IconDef` for tooling that enumerates the bundled icon set.
13
- - **Design tokens** (`@viax.io/uxm/tokens`) — the canonical `themeTokens` array plus helpers (`findToken`, `resolveHex`, `isTokenValue`) and the `ThemeToken` type.
14
- - **Themable previews** (`@viax.io/uxm/previews`) — preview components (one per atom, plus composite previews) used by host shells like MODO's brand-settings editor to render live, knob-driven theme exploration.
15
- - **WCAG / contrast helpers** (`@viax.io/uxm`) — `contrastRatio`, `parseColor`, `rgbToHex`, `suggestAccessibleColor`, `suggestAccessibleToken`, `wcagLevel`, plus `RGB` and `TokenCandidate` types.
16
- - **Default stylesheets** — `@viax.io/uxm/ui.css` (component primitive defaults) and `@viax.io/uxm/tokens.css` (token declarations).
11
+ - **UI primitives** (`@viax/uxm/ui`) — BEM-classed React 19 components.
12
+ - **Icon registry** (`@viax/uxm/ui`) — `ICONS`, `ICON_OPTIONS`, `getIcon`, `IconDef` for tooling that enumerates the bundled icon set.
13
+ - **Design tokens** (`@viax/uxm/tokens`) — the canonical `themeTokens` array plus helpers (`findToken`, `resolveHex`, `isTokenValue`) and the `ThemeToken` type.
14
+ - **Themable previews** (`@viax/uxm/previews`) — preview components (one per atom, plus composite previews) used by host shells like MODO's brand-settings editor to render live, knob-driven theme exploration.
15
+ - **WCAG / contrast helpers** (`@viax/uxm`) — `contrastRatio`, `parseColor`, `rgbToHex`, `suggestAccessibleColor`, `suggestAccessibleToken`, `wcagLevel`, plus `RGB` and `TokenCandidate` types.
16
+ - **Default stylesheets** — `@viax/uxm/ui.css` (component primitive defaults) and `@viax/uxm/tokens.css` (token declarations).
17
17
 
18
18
  ## Install
19
19
 
20
20
  ```bash
21
- npm install @viax.io/uxm
21
+ npm install @viax/uxm
22
22
  ```
23
23
 
24
- Peer deps: `react@^19`, `react-dom@^19`. Node `>=22.14.0` for local dev.
24
+ Peer deps: `react@^19`, `react-dom@^19`. Node `>=20` for local dev.
25
25
 
26
26
  The package is published to the private Viax Nexus npm registry; see [Configure the registry](#configure-the-registry) below.
27
27
 
@@ -31,14 +31,14 @@ Import both stylesheets once, at your application entry point:
31
31
 
32
32
  ```ts
33
33
  // e.g. src/main.tsx
34
- import '@viax.io/uxm/tokens.css';
35
- import '@viax.io/uxm/ui.css';
34
+ import '@viax/uxm/tokens.css';
35
+ import '@viax/uxm/ui.css';
36
36
  ```
37
37
 
38
38
  Then use the primitives anywhere:
39
39
 
40
40
  ```tsx
41
- import { ButtonPrimary, Icon } from '@viax.io/uxm/ui';
41
+ import { ButtonPrimary, Icon } from '@viax/uxm/ui';
42
42
 
43
43
  export function Page() {
44
44
  return (
@@ -52,7 +52,7 @@ export function Page() {
52
52
  Consume tokens programmatically:
53
53
 
54
54
  ```ts
55
- import { themeTokens, findToken, resolveHex } from '@viax.io/uxm/tokens';
55
+ import { themeTokens, findToken, resolveHex } from '@viax/uxm/tokens';
56
56
 
57
57
  const accent = findToken('--color-accent-bold');
58
58
  const hex = resolveHex(accent?.cssVar ?? '#000');
@@ -61,19 +61,19 @@ const hex = resolveHex(accent?.cssVar ?? '#000');
61
61
  Both primary entry points are also re-exported from the root:
62
62
 
63
63
  ```ts
64
- import { ButtonPrimary, themeTokens } from '@viax.io/uxm';
64
+ import { ButtonPrimary, themeTokens } from '@viax/uxm';
65
65
  ```
66
66
 
67
67
  ## Subpath exports
68
68
 
69
69
  | Entry | Purpose |
70
70
  |-------|---------|
71
- | `@viax.io/uxm` | Root barrel — re-exports `ui` + `tokens` + WCAG helpers. |
72
- | `@viax.io/uxm/ui` | All UI primitives + icon registry. Tree-shake-friendly per-component imports. |
73
- | `@viax.io/uxm/ui.css` | Compiled component stylesheet — required for visual output. |
74
- | `@viax.io/uxm/tokens` | `themeTokens` array + `findToken` / `resolveHex` / `isTokenValue` + `ThemeToken` type. |
75
- | `@viax.io/uxm/tokens.css` | `--color-*` declarations on `:root`. |
76
- | `@viax.io/uxm/previews` | Preview components for host shells building theme editors. **No preview symbol leaks into `/ui`** — see the tree-shake guarantee below. |
71
+ | `@viax/uxm` | Root barrel — re-exports `ui` + `tokens` + WCAG helpers. |
72
+ | `@viax/uxm/ui` | All UI primitives + icon registry. Tree-shake-friendly per-component imports. |
73
+ | `@viax/uxm/ui.css` | Compiled component stylesheet — required for visual output. |
74
+ | `@viax/uxm/tokens` | `themeTokens` array + `findToken` / `resolveHex` / `isTokenValue` + `ThemeToken` type. |
75
+ | `@viax/uxm/tokens.css` | `--color-*` declarations on `:root`. |
76
+ | `@viax/uxm/previews` | Preview components for host shells building theme editors. **No preview symbol leaks into `/ui`** — see the tree-shake guarantee below. |
77
77
 
78
78
  ## Component catalog
79
79
 
@@ -105,6 +105,9 @@ Every component folder ships a `README.md` documenting props, CSS variables, MOD
105
105
  ### Configuration editor
106
106
  [`component-row`](src/ui/component-row/README.md) · [`config-component-row`](src/ui/config-component-row/README.md) · [`config-segment-item`](src/ui/config-segment-item/README.md) · [`explorer-list-item`](src/ui/explorer-list-item/README.md) · [`explorer-section`](src/ui/explorer-section/README.md) · [`segment-card`](src/ui/segment-card/README.md) · [`segment-row`](src/ui/segment-row/README.md)
107
107
 
108
+ ### Localisation
109
+ [`language-switcher`](src/ui/language-switcher/README.md) · [`locale`](src/ui/locale/README.md) (UxmLocaleProvider + `useUxmLocale`)
110
+
108
111
  ### Lifecycle diagrams
109
112
  [`lifecycle-connector`](src/ui/lifecycle-connector/README.md) · [`lifecycle-drop-slot`](src/ui/lifecycle-drop-slot/README.md) · [`lifecycle-edge-label`](src/ui/lifecycle-edge-label/README.md) · [`lifecycle-group-box`](src/ui/lifecycle-group-box/README.md) · [`lifecycle-minimap`](src/ui/lifecycle-minimap/README.md) · [`lifecycle-node-card`](src/ui/lifecycle-node-card/README.md) · [`lifecycle-terminal`](src/ui/lifecycle-terminal/README.md) · [`lifecycle-zoom-control`](src/ui/lifecycle-zoom-control/README.md)
110
113
 
@@ -123,7 +126,7 @@ The canonical token catalogue lives in `src/tokens/index.ts` as the `themeTokens
123
126
  - `group` — one of `surfaces` · `text` · `borders` · `accent` · `highlights` · `categories` · `semantic`
124
127
 
125
128
  ```ts
126
- import { themeTokens, findToken } from '@viax.io/uxm/tokens';
129
+ import { themeTokens, findToken } from '@viax/uxm/tokens';
127
130
 
128
131
  themeTokens.forEach((t) => {
129
132
  console.log(`${t.group}/${t.name} → ${t.cssVar} = ${t.hex} (dark: ${t.darkHex})`);
@@ -135,16 +138,53 @@ const accent = findToken('--color-accent-bold');
135
138
 
136
139
  Each component README's **Design tokens (MODO-configurable)** section names every token the component reads, paired with its `Group / Name` from `themeTokens` — making it straightforward to look up "if I edit X in MODO, what re-tints?"
137
140
 
141
+ ## Localisation
142
+
143
+ **The library formats; you translate.** `@viax/uxm` ships no i18n engine — no message catalogue, no translation runtime — because a primitives library that owns translation forces its choice of engine onto every consuming app. Localisation splits in two:
144
+
145
+ **Copy is yours, and arrives as props.** Every user-visible string a component can render or announce has a prop with an English default — `clearLabel`, `closeLabel`, `emptyState`, `requiredMessage`, `placeholder`, or a grouped `labels={{ … }}` object where a component owns several. Translate in your app and pass the result down. A string you cannot reach from props is a bug — [open an issue](#contributing).
146
+
147
+ **Formatting is ours, and follows one locale.** Month names, decimal separators, and byte units come from `Intl` and can't be expressed as a prop string, so the components that need them read a locale instead. Mount [`UxmLocaleProvider`](src/ui/locale/README.md) once at the app root:
148
+
149
+ ```tsx
150
+ import { UxmLocaleProvider } from '@viax/uxm';
151
+
152
+ <UxmLocaleProvider locale="uk-UA">
153
+ <App />
154
+ </UxmLocaleProvider>;
155
+ ```
156
+
157
+ `Calendar`, `DateInput`, `EditableCell`, `CurrencyInput`, and `FileUpload` pick it up automatically. Each still takes a `locale` prop that wins locally, so one always-USD amount can opt out. Without a provider everything falls back to `en-US`, exactly as before.
158
+
159
+ To let the user *change* the language, use [`LanguageSwitcher`](src/ui/language-switcher/README.md) — the one control the library owns. It takes the locale list rather than fetching it, and disappears entirely (no wrapper, no disabled control) when only one locale is configured:
160
+
161
+ ```tsx
162
+ <LanguageSwitcher locales={supportedLocales} value={locale} onChange={setLocale} label={t('language')} />
163
+ ```
164
+
165
+ Labels that interpolate a value take a **function**, not a prefix — `removeFile(name)`, `uploadProgress(percent, size)`, `countLabel(count)` — because word order and pluralisation around the value are language-specific:
166
+
167
+ ```tsx
168
+ <FileUpload
169
+ files={files}
170
+ titleText={t('upload.title')}
171
+ labels={{
172
+ uploading: t('upload.busy'),
173
+ removeFile: (name) => t('upload.remove', { name }),
174
+ }}
175
+ />
176
+ ```
177
+
138
178
  ## Previews
139
179
 
140
- Previews live under `@viax.io/uxm/previews` and are designed for **host shells building theme editors**. Each preview:
180
+ Previews live under `@viax/uxm/previews` and are designed for **host shells building theme editors**. Each preview:
141
181
 
142
182
  - Accepts a uniform `PreviewProps = { componentId, styles, variants, shell? }` signature.
143
183
  - Reads `styles` (slider/colorpicker knob values) and projects them as inline CSS variables on the component instance, exercising the production CSS path so what designers see is what consumers ship.
144
184
  - Optionally reads `shell` (host-provided context: brand, theme, `uploadAsset`) to integrate with the editor's broader state — e.g. `LoginPagePreview` and `BrandSettingsPreview` use `shell.uploadAsset` for logo uploads.
145
185
 
146
186
  ```tsx
147
- import { ButtonPreview, type PreviewShellContext } from '@viax.io/uxm/previews';
187
+ import { ButtonPreview, type PreviewShellContext } from '@viax/uxm/previews';
148
188
 
149
189
  <ButtonPreview
150
190
  componentId="button-primary"
@@ -154,40 +194,43 @@ import { ButtonPreview, type PreviewShellContext } from '@viax.io/uxm/previews';
154
194
  />;
155
195
  ```
156
196
 
157
- **Tree-shake guarantee**: no preview symbols leak into `@viax.io/uxm/ui`, so consumers that only import primitives never pay for preview code. This is **upheld by convention, not enforced by the build** — nothing fails if a barrel breaks it. When you touch `src/ui/index.ts` or any `src/ui/*/index.ts`, check by hand that no `*-preview` module is re-exported; after a build, `grep "Preview" dist/ui/index.js` should return nothing.
197
+ **Tree-shake guarantee**: no preview symbols leak into `@viax/uxm/ui`, so consumers that only import primitives never pay for preview code. This is **upheld by convention, not enforced by the build** — nothing fails if a barrel breaks it. When you touch `src/ui/index.ts` or any `src/ui/*/index.ts`, check by hand that no `*-preview` module is re-exported; after a build, `grep "Preview" dist/ui/index.js` should return nothing.
158
198
 
159
199
  ## Architecture
160
200
 
161
201
  ```
162
202
  ┌─────────────────────────────────────────────────┐
163
- │ @viax.io/uxm/previews │ ← host editors (MODO brand-settings)
203
+ │ @viax/uxm/previews │ ← host editors (MODO brand-settings)
164
204
  │ themable, shell-aware preview components │
165
205
  └────────────────┬────────────────────────────────┘
166
206
  │ consumes
167
207
 
168
208
  ┌─────────────────────────────────────────────────┐
169
- │ @viax.io/uxm/ui │ ← application code
209
+ │ @viax/uxm/ui │ ← application code
170
210
  │ BEM-classed React components │
171
211
  │ + Icon registry (ICONS, getIcon, …) │
172
212
  └────────────────┬────────────────────────────────┘
173
213
  │ reads fallbacks
174
214
 
175
215
  ┌─────────────────────────────────────────────────┐
176
- │ @viax.io/uxm/tokens (+ tokens.css) │ ← MODO brand-settings edits this
216
+ │ @viax/uxm/tokens (+ tokens.css) │ ← MODO brand-settings edits this
177
217
  │ themeTokens array + --color-* declarations │
178
218
  └─────────────────────────────────────────────────┘
179
219
  ```
180
220
 
181
221
  Every layer is independently importable; every layer has its own type declarations and own CSS bundle.
182
222
 
183
- ## Install
223
+ ## Configure the registry
184
224
 
185
- Published publicly on npm — no registry configuration and no VPN required:
225
+ This package is private and hosted on the Viax **Nexus** npm registry not on public npm and not on GitLab Packages. Point npm at it in your project's `.npmrc` or `~/.npmrc`:
186
226
 
187
- ```bash
188
- npm install @viax.io/uxm
227
+ ```ini
228
+ registry=https://nexus.viax.tech/repository/viax-npm/
229
+ //nexus.viax.tech/repository/viax-npm/:_auth=<BASE64_NEXUS_TOKEN>
189
230
  ```
190
231
 
232
+ Two Nexus repositories are involved: CI **publishes** to `npm-private` (see `publishConfig` in `package.json`), while `viax-npm` is the registry both CI and this repo's own `.npmrc` **install** from. Authenticate against whichever you need — CI authenticates against both.
233
+
191
234
  ## Build & develop
192
235
 
193
236
  ```bash
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @viax.io/uxm — public entry.\n *\n * Re-exports the UI primitive barrel and the design-token API so consumers\n * can do `import { Button } from \"@viax.io/uxm\"` for convenience, while the\n * subpath entries (`@viax.io/uxm/ui`, `@viax.io/uxm/tokens`) remain available for\n * tree-shaking-friendly, granular consumption.\n */\nexport * from './ui';\nexport * from './tokens';\n// WCAG/contrast helpers — useful for tooling that needs to audit token pairs.\nexport * from './lib/contrast';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAQA,0BAAc,iBARd;AASA,0BAAc,qBATd;AAWA,0BAAc,2BAXd;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @viax/uxm — public entry.\n *\n * Re-exports the UI primitive barrel and the design-token API so consumers\n * can do `import { Button } from \"@viax/uxm\"` for convenience, while the\n * subpath entries (`@viax/uxm/ui`, `@viax/uxm/tokens`) remain available for\n * tree-shaking-friendly, granular consumption.\n */\nexport * from './ui';\nexport * from './tokens';\n// WCAG/contrast helpers — useful for tooling that needs to audit token pairs.\nexport * from './lib/contrast';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAQA,0BAAc,iBARd;AASA,0BAAc,qBATd;AAWA,0BAAc,2BAXd;","names":[]}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
- * @viax.io/uxm — public entry.
2
+ * @viax/uxm — public entry.
3
3
  *
4
4
  * Re-exports the UI primitive barrel and the design-token API so consumers
5
- * can do `import { Button } from "@viax.io/uxm"` for convenience, while the
6
- * subpath entries (`@viax.io/uxm/ui`, `@viax.io/uxm/tokens`) remain available for
5
+ * can do `import { Button } from "@viax/uxm"` for convenience, while the
6
+ * subpath entries (`@viax/uxm/ui`, `@viax/uxm/tokens`) remain available for
7
7
  * tree-shaking-friendly, granular consumption.
8
8
  */
9
9
  export * from './ui/index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @viax.io/uxm — public entry.\n *\n * Re-exports the UI primitive barrel and the design-token API so consumers\n * can do `import { Button } from \"@viax.io/uxm\"` for convenience, while the\n * subpath entries (`@viax.io/uxm/ui`, `@viax.io/uxm/tokens`) remain available for\n * tree-shaking-friendly, granular consumption.\n */\nexport * from './ui';\nexport * from './tokens';\n// WCAG/contrast helpers — useful for tooling that needs to audit token pairs.\nexport * from './lib/contrast';\n"],"mappings":"AAQA,cAAc;AACd,cAAc;AAEd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @viax/uxm — public entry.\n *\n * Re-exports the UI primitive barrel and the design-token API so consumers\n * can do `import { Button } from \"@viax/uxm\"` for convenience, while the\n * subpath entries (`@viax/uxm/ui`, `@viax/uxm/tokens`) remain available for\n * tree-shaking-friendly, granular consumption.\n */\nexport * from './ui';\nexport * from './tokens';\n// WCAG/contrast helpers — useful for tooling that needs to audit token pairs.\nexport * from './lib/contrast';\n"],"mappings":"AAQA,cAAc;AACd,cAAc;AAEd,cAAc;","names":[]}
@@ -63,6 +63,7 @@ __export(previews_exports, {
63
63
  InlineFilterPreview: () => import_inline_filter_preview.InlineFilterPreview,
64
64
  InputPreview: () => import_input_preview.InputPreview,
65
65
  InputWithIconPreview: () => import_input_with_icon_preview.InputWithIconPreview,
66
+ LanguageSwitcherPreview: () => import_language_switcher_preview.LanguageSwitcherPreview,
66
67
  LifecycleActionRowPreview: () => import_lifecycle_action_row_preview.LifecycleActionRowPreview,
67
68
  LifecycleConnectorKnobsPreview: () => import_lifecycle_connector_knobs_preview.LifecycleConnectorKnobsPreview,
68
69
  LifecycleConnectorPreview: () => import_lifecycle_connector_preview.LifecycleConnectorPreview,
@@ -164,6 +165,7 @@ var import_inline_action_preview = require("../ui/inline-action/inline-action-pr
164
165
  var import_inline_filter_preview = require("../ui/inline-filter/inline-filter-preview.cjs");
165
166
  var import_input_preview = require("../ui/input/input-preview.cjs");
166
167
  var import_input_with_icon_preview = require("../ui/input-with-icon/input-with-icon-preview.cjs");
168
+ var import_language_switcher_preview = require("../ui/language-switcher/language-switcher-preview.cjs");
167
169
  var import_lifecycle_connector_preview = require("../ui/lifecycle-connector/lifecycle-connector-preview.cjs");
168
170
  var import_lifecycle_drop_slot_preview = require("../ui/lifecycle-drop-slot/lifecycle-drop-slot-preview.cjs");
169
171
  var import_lifecycle_edge_label_preview = require("../ui/lifecycle-edge-label/lifecycle-edge-label-preview.cjs");
@@ -269,6 +271,7 @@ var import_multirow_form_preview = require("../previews/composite/multirow-form-
269
271
  InlineFilterPreview,
270
272
  InputPreview,
271
273
  InputWithIconPreview,
274
+ LanguageSwitcherPreview,
272
275
  LifecycleActionRowPreview,
273
276
  LifecycleConnectorKnobsPreview,
274
277
  LifecycleConnectorPreview,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/previews/index.ts"],"sourcesContent":["/**\n * Public barrel for @viax.io/uxm/previews.\n *\n * Re-exports every canvas preview component, plus the shared preview-side\n * types. Imported by the modo uxm-shell to render the registry-driven\n * editor canvas. Tree-shakable: hosts that import only `@viax.io/uxm/ui` do\n * not pull preview code through this entry.\n */\n\n// ── Atom + sub-component previews (live next to their component) ──\nexport { AppSidebarPreview } from '@/ui/app-sidebar/app-sidebar-preview';\nexport { AppTopBarPreview } from '@/ui/app-top-bar/app-top-bar-preview';\nexport { AvatarPreview } from '@/ui/avatar/avatar-preview';\nexport { BackLinkPreview } from '@/ui/back-link/back-link-preview';\nexport { BadgePreview } from '@/ui/badge/badge-preview';\nexport { BannerPreview } from '@/ui/banner/banner-preview';\nexport { BreadcrumbPreview } from '@/ui/breadcrumb/breadcrumb-preview';\nexport { BulkActionBarPreview } from '@/ui/bulk-action-bar/bulk-action-bar-preview';\nexport { ButtonPreview } from '@/ui/button/button-preview';\nexport { ButtonGroupPreview } from '@/ui/button-group/button-group-preview';\nexport { ButtonWithIconPreview } from '@/ui/button-with-icon/button-with-icon-preview';\nexport { CalendarPreview } from '@/ui/calendar/calendar-preview';\nexport { CardPreview } from '@/ui/card/card-preview';\nexport { CheckboxPreview } from '@/ui/checkbox/checkbox-preview';\nexport { ChipPreview } from '@/ui/chip/chip-preview';\nexport { ClusterPreview } from '@/ui/cluster/cluster-preview';\nexport { CodeEditorPreview } from '@/ui/code-editor/code-editor-preview';\nexport { ColorInputPreview } from '@/ui/color-input/color-input-preview';\nexport { ComponentRowPreview } from '@/ui/component-row/component-row-preview';\nexport { ConfigComponentRowPreview } from '@/ui/config-component-row/config-component-row-preview';\nexport { ConfigSegmentItemPreview } from '@/ui/config-segment-item/config-segment-item-preview';\nexport { ContentTooltipPreview } from '@/ui/tooltip/content-tooltip-preview';\nexport { CurrencyInputPreview } from '@/ui/currency-input/currency-input-preview';\nexport { DataTablePreview } from '@/ui/data-table/data-table-preview';\nexport { DateInputPreview } from '@/ui/date-input/date-input-preview';\nexport { DetailSectionPreview } from '@/ui/detail-section/detail-section-preview';\nexport { DisclosurePreview } from '@/ui/disclosure/disclosure-preview';\nexport { DividerPreview } from '@/ui/divider/divider-preview';\nexport { EditableCellPreview } from '@/ui/editable-cell/editable-cell-preview';\nexport { EmptyStatePreview } from '@/ui/empty-state/empty-state-preview';\nexport { ErrorPagePreview } from '@/ui/error-page/error-page-preview';\nexport { ExplorerListItemPreview } from '@/ui/explorer-list-item/explorer-list-item-preview';\nexport { ExplorerSectionPreview } from '@/ui/explorer-section/explorer-section-preview';\nexport { FileUploadPreview } from '@/ui/file-upload/file-upload-preview';\nexport { FilterTabsPreview } from '@/ui/filter-tabs/filter-tabs-preview';\nexport { FormFieldPreview } from '@/ui/form-field/form-field-preview';\nexport { IconPreview } from '@/ui/icon/icon-preview';\nexport { IconButtonPreview } from '@/ui/icon-button/icon-button-preview';\nexport { IconTilePreview } from '@/ui/icon-tile/icon-tile-preview';\nexport { InlineActionPreview } from '@/ui/inline-action/inline-action-preview';\nexport { InlineFilterPreview } from '@/ui/inline-filter/inline-filter-preview';\nexport { InputPreview } from '@/ui/input/input-preview';\nexport { InputWithIconPreview } from '@/ui/input-with-icon/input-with-icon-preview';\nexport { LifecycleConnectorPreview } from '@/ui/lifecycle-connector/lifecycle-connector-preview';\nexport { LifecycleDropSlotPreview } from '@/ui/lifecycle-drop-slot/lifecycle-drop-slot-preview';\nexport { LifecycleEdgeLabelPreview } from '@/ui/lifecycle-edge-label/lifecycle-edge-label-preview';\nexport { LifecycleGroupBoxPreview } from '@/ui/lifecycle-group-box/lifecycle-group-box-preview';\nexport { LifecycleMinimapPreview } from '@/ui/lifecycle-minimap/lifecycle-minimap-preview';\nexport { LifecycleNodeCardPreview } from '@/ui/lifecycle-node-card/lifecycle-node-card-preview';\nexport { LifecycleTerminalPreview } from '@/ui/lifecycle-terminal/lifecycle-terminal-preview';\nexport { LifecycleZoomControlPreview } from '@/ui/lifecycle-zoom-control/lifecycle-zoom-control-preview';\nexport { LinkPreview } from '@/ui/link/link-preview';\nexport { ListItemPreview } from '@/ui/list/list-item-preview';\nexport { ListboxPreview } from '@/ui/listbox/listbox-preview';\nexport { LoaderPreview } from '@/ui/loader/loader-preview';\nexport { MenuPreview } from '@/ui/menu/menu-preview';\nexport { MetaRowPreview } from '@/ui/meta-row/meta-row-preview';\nexport { ModalPreview } from '@/ui/modal/modal-preview';\nexport { NumberStepperPreview } from '@/ui/number-stepper/number-stepper-preview';\nexport { NumberInputPreview } from '@/ui/number-input/number-input-preview';\nexport { OptionListPreview } from '@/ui/option-list/option-list-preview';\nexport { PageHeaderPreview } from '@/ui/page-header/page-header-preview';\nexport { PageShellPreview } from '@/ui/page-shell/page-shell-preview';\nexport { PasswordInputPreview } from '@/ui/password-input/password-input-preview';\nexport { PhoneInputPreview } from '@/ui/phone-input/phone-input-preview';\nexport { PillSelectPreview } from '@/ui/pill-select/pill-select-preview';\nexport { ProgressBarPreview } from '@/ui/progress-bar/progress-bar-preview';\nexport { PropertyFieldPreview } from '@/ui/property-field/property-field-preview';\nexport { PropertyGridPreview } from '@/ui/property-field/property-grid-preview';\nexport { RadioGroupPreview } from '@/ui/radio-group/radio-group-preview';\nexport { ResponsiveGridPreview } from '@/ui/responsive-grid/responsive-grid-preview';\nexport { SearchDropdownPreview } from '@/ui/search-dropdown/search-dropdown-preview';\nexport { SectionHeaderPreview } from '@/ui/section-header/section-header-preview';\nexport { SegmentCardPreview } from '@/ui/segment-card/segment-card-preview';\nexport { SegmentRowPreview } from '@/ui/segment-row/segment-row-preview';\nexport { SelectPreview } from '@/ui/input/select-preview';\nexport { SideFlexpanePreview } from '@/ui/side-flexpane/side-flexpane-preview';\nexport { SidebarNavItemPreview } from '@/ui/sidebar-nav-item/sidebar-nav-item-preview';\nexport { SidebarNavTriggerPreview } from '@/ui/sidebar-nav-trigger/sidebar-nav-trigger-preview';\nexport { SliderPreview } from '@/ui/slider/slider-preview';\nexport { StackPreview } from '@/ui/stack/stack-preview';\nexport { StatCardPreview } from '@/ui/stat-card/stat-card-preview';\nexport { TabsPreview } from '@/ui/tabs/tabs-preview';\nexport { TabsUnderlinePreview } from '@/ui/tabs-underline/tabs-underline-preview';\nexport { TagPreview } from '@/ui/tag/tag-preview';\nexport { TextareaPreview } from '@/ui/input/textarea-preview';\nexport { ThumbnailPreview } from '@/ui/thumbnail/thumbnail-preview';\nexport { TimeInputPreview } from '@/ui/time-input/time-input-preview';\nexport { TimelineEntryPreview } from '@/ui/timeline-entry/timeline-entry-preview';\nexport { ToastPreview } from '@/ui/toast/toast-preview';\nexport { TogglePreview } from '@/ui/toggle-switch/toggle-preview';\nexport { TooltipPreview } from '@/ui/tooltip/tooltip-preview';\nexport { TypeOverviewCardPreview } from '@/ui/type-overview-card/type-overview-card-preview';\nexport { ViewSwitcherPreview } from '@/ui/view-switcher/view-switcher-preview';\n\n// ── Composite / showcase previews (no 1:1 component) ──\nexport { BrandSettingsPreview } from '@/previews/composite/brand-settings-preview';\nexport { FormPreview } from '@/previews/composite/form-preview';\nexport { LifecycleActionRowPreview } from '@/previews/composite/lifecycle-action-row-preview';\nexport { LifecycleConnectorKnobsPreview } from '@/previews/composite/lifecycle-connector-knobs-preview';\nexport { LifecyclePlusButtonPreview } from '@/previews/composite/lifecycle-plus-button-preview';\nexport { LoginPagePreview } from '@/previews/composite/login-page-preview';\nexport { MultirowFormPreview } from '@/previews/composite/multirow-form-preview';\n\n// ── Shared preview-side types ──\nexport type { PreviewProps, PreviewShellContext, Theme } from './types';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,iCAAkC;AAClC,iCAAiC;AACjC,4BAA8B;AAC9B,+BAAgC;AAChC,2BAA6B;AAC7B,4BAA8B;AAC9B,gCAAkC;AAClC,qCAAqC;AACrC,4BAA8B;AAC9B,kCAAmC;AACnC,sCAAsC;AACtC,8BAAgC;AAChC,0BAA4B;AAC5B,8BAAgC;AAChC,0BAA4B;AAC5B,6BAA+B;AAC/B,iCAAkC;AAClC,iCAAkC;AAClC,mCAAoC;AACpC,0CAA0C;AAC1C,yCAAyC;AACzC,qCAAsC;AACtC,oCAAqC;AACrC,gCAAiC;AACjC,gCAAiC;AACjC,oCAAqC;AACrC,gCAAkC;AAClC,6BAA+B;AAC/B,mCAAoC;AACpC,iCAAkC;AAClC,gCAAiC;AACjC,wCAAwC;AACxC,sCAAuC;AACvC,iCAAkC;AAClC,iCAAkC;AAClC,gCAAiC;AACjC,0BAA4B;AAC5B,iCAAkC;AAClC,+BAAgC;AAChC,mCAAoC;AACpC,mCAAoC;AACpC,2BAA6B;AAC7B,qCAAqC;AACrC,yCAA0C;AAC1C,yCAAyC;AACzC,0CAA0C;AAC1C,yCAAyC;AACzC,uCAAwC;AACxC,yCAAyC;AACzC,wCAAyC;AACzC,4CAA4C;AAC5C,0BAA4B;AAC5B,+BAAgC;AAChC,6BAA+B;AAC/B,4BAA8B;AAC9B,0BAA4B;AAC5B,8BAA+B;AAC/B,2BAA6B;AAC7B,oCAAqC;AACrC,kCAAmC;AACnC,iCAAkC;AAClC,iCAAkC;AAClC,gCAAiC;AACjC,oCAAqC;AACrC,iCAAkC;AAClC,iCAAkC;AAClC,kCAAmC;AACnC,oCAAqC;AACrC,mCAAoC;AACpC,iCAAkC;AAClC,qCAAsC;AACtC,qCAAsC;AACtC,oCAAqC;AACrC,kCAAmC;AACnC,iCAAkC;AAClC,4BAA8B;AAC9B,mCAAoC;AACpC,sCAAsC;AACtC,yCAAyC;AACzC,4BAA8B;AAC9B,2BAA6B;AAC7B,+BAAgC;AAChC,0BAA4B;AAC5B,oCAAqC;AACrC,yBAA2B;AAC3B,8BAAgC;AAChC,+BAAiC;AACjC,gCAAiC;AACjC,oCAAqC;AACrC,2BAA6B;AAC7B,4BAA8B;AAC9B,6BAA+B;AAC/B,wCAAwC;AACxC,mCAAoC;AAGpC,oCAAqC;AACrC,0BAA4B;AAC5B,0CAA0C;AAC1C,+CAA+C;AAC/C,2CAA2C;AAC3C,gCAAiC;AACjC,mCAAoC;","names":[]}
1
+ {"version":3,"sources":["../../src/previews/index.ts"],"sourcesContent":["/**\n * Public barrel for @viax/uxm/previews.\n *\n * Re-exports every canvas preview component, plus the shared preview-side\n * types. Imported by the modo uxm-shell to render the registry-driven\n * editor canvas. Tree-shakable: hosts that import only `@viax/uxm/ui` do\n * not pull preview code through this entry.\n */\n\n// ── Atom + sub-component previews (live next to their component) ──\nexport { AppSidebarPreview } from '@/ui/app-sidebar/app-sidebar-preview';\nexport { AppTopBarPreview } from '@/ui/app-top-bar/app-top-bar-preview';\nexport { AvatarPreview } from '@/ui/avatar/avatar-preview';\nexport { BackLinkPreview } from '@/ui/back-link/back-link-preview';\nexport { BadgePreview } from '@/ui/badge/badge-preview';\nexport { BannerPreview } from '@/ui/banner/banner-preview';\nexport { BreadcrumbPreview } from '@/ui/breadcrumb/breadcrumb-preview';\nexport { BulkActionBarPreview } from '@/ui/bulk-action-bar/bulk-action-bar-preview';\nexport { ButtonPreview } from '@/ui/button/button-preview';\nexport { ButtonGroupPreview } from '@/ui/button-group/button-group-preview';\nexport { ButtonWithIconPreview } from '@/ui/button-with-icon/button-with-icon-preview';\nexport { CalendarPreview } from '@/ui/calendar/calendar-preview';\nexport { CardPreview } from '@/ui/card/card-preview';\nexport { CheckboxPreview } from '@/ui/checkbox/checkbox-preview';\nexport { ChipPreview } from '@/ui/chip/chip-preview';\nexport { ClusterPreview } from '@/ui/cluster/cluster-preview';\nexport { CodeEditorPreview } from '@/ui/code-editor/code-editor-preview';\nexport { ColorInputPreview } from '@/ui/color-input/color-input-preview';\nexport { ComponentRowPreview } from '@/ui/component-row/component-row-preview';\nexport { ConfigComponentRowPreview } from '@/ui/config-component-row/config-component-row-preview';\nexport { ConfigSegmentItemPreview } from '@/ui/config-segment-item/config-segment-item-preview';\nexport { ContentTooltipPreview } from '@/ui/tooltip/content-tooltip-preview';\nexport { CurrencyInputPreview } from '@/ui/currency-input/currency-input-preview';\nexport { DataTablePreview } from '@/ui/data-table/data-table-preview';\nexport { DateInputPreview } from '@/ui/date-input/date-input-preview';\nexport { DetailSectionPreview } from '@/ui/detail-section/detail-section-preview';\nexport { DisclosurePreview } from '@/ui/disclosure/disclosure-preview';\nexport { DividerPreview } from '@/ui/divider/divider-preview';\nexport { EditableCellPreview } from '@/ui/editable-cell/editable-cell-preview';\nexport { EmptyStatePreview } from '@/ui/empty-state/empty-state-preview';\nexport { ErrorPagePreview } from '@/ui/error-page/error-page-preview';\nexport { ExplorerListItemPreview } from '@/ui/explorer-list-item/explorer-list-item-preview';\nexport { ExplorerSectionPreview } from '@/ui/explorer-section/explorer-section-preview';\nexport { FileUploadPreview } from '@/ui/file-upload/file-upload-preview';\nexport { FilterTabsPreview } from '@/ui/filter-tabs/filter-tabs-preview';\nexport { FormFieldPreview } from '@/ui/form-field/form-field-preview';\nexport { IconPreview } from '@/ui/icon/icon-preview';\nexport { IconButtonPreview } from '@/ui/icon-button/icon-button-preview';\nexport { IconTilePreview } from '@/ui/icon-tile/icon-tile-preview';\nexport { InlineActionPreview } from '@/ui/inline-action/inline-action-preview';\nexport { InlineFilterPreview } from '@/ui/inline-filter/inline-filter-preview';\nexport { InputPreview } from '@/ui/input/input-preview';\nexport { InputWithIconPreview } from '@/ui/input-with-icon/input-with-icon-preview';\nexport { LanguageSwitcherPreview } from '@/ui/language-switcher/language-switcher-preview';\nexport { LifecycleConnectorPreview } from '@/ui/lifecycle-connector/lifecycle-connector-preview';\nexport { LifecycleDropSlotPreview } from '@/ui/lifecycle-drop-slot/lifecycle-drop-slot-preview';\nexport { LifecycleEdgeLabelPreview } from '@/ui/lifecycle-edge-label/lifecycle-edge-label-preview';\nexport { LifecycleGroupBoxPreview } from '@/ui/lifecycle-group-box/lifecycle-group-box-preview';\nexport { LifecycleMinimapPreview } from '@/ui/lifecycle-minimap/lifecycle-minimap-preview';\nexport { LifecycleNodeCardPreview } from '@/ui/lifecycle-node-card/lifecycle-node-card-preview';\nexport { LifecycleTerminalPreview } from '@/ui/lifecycle-terminal/lifecycle-terminal-preview';\nexport { LifecycleZoomControlPreview } from '@/ui/lifecycle-zoom-control/lifecycle-zoom-control-preview';\nexport { LinkPreview } from '@/ui/link/link-preview';\nexport { ListItemPreview } from '@/ui/list/list-item-preview';\nexport { ListboxPreview } from '@/ui/listbox/listbox-preview';\nexport { LoaderPreview } from '@/ui/loader/loader-preview';\nexport { MenuPreview } from '@/ui/menu/menu-preview';\nexport { MetaRowPreview } from '@/ui/meta-row/meta-row-preview';\nexport { ModalPreview } from '@/ui/modal/modal-preview';\nexport { NumberStepperPreview } from '@/ui/number-stepper/number-stepper-preview';\nexport { NumberInputPreview } from '@/ui/number-input/number-input-preview';\nexport { OptionListPreview } from '@/ui/option-list/option-list-preview';\nexport { PageHeaderPreview } from '@/ui/page-header/page-header-preview';\nexport { PageShellPreview } from '@/ui/page-shell/page-shell-preview';\nexport { PasswordInputPreview } from '@/ui/password-input/password-input-preview';\nexport { PhoneInputPreview } from '@/ui/phone-input/phone-input-preview';\nexport { PillSelectPreview } from '@/ui/pill-select/pill-select-preview';\nexport { ProgressBarPreview } from '@/ui/progress-bar/progress-bar-preview';\nexport { PropertyFieldPreview } from '@/ui/property-field/property-field-preview';\nexport { PropertyGridPreview } from '@/ui/property-field/property-grid-preview';\nexport { RadioGroupPreview } from '@/ui/radio-group/radio-group-preview';\nexport { ResponsiveGridPreview } from '@/ui/responsive-grid/responsive-grid-preview';\nexport { SearchDropdownPreview } from '@/ui/search-dropdown/search-dropdown-preview';\nexport { SectionHeaderPreview } from '@/ui/section-header/section-header-preview';\nexport { SegmentCardPreview } from '@/ui/segment-card/segment-card-preview';\nexport { SegmentRowPreview } from '@/ui/segment-row/segment-row-preview';\nexport { SelectPreview } from '@/ui/input/select-preview';\nexport { SideFlexpanePreview } from '@/ui/side-flexpane/side-flexpane-preview';\nexport { SidebarNavItemPreview } from '@/ui/sidebar-nav-item/sidebar-nav-item-preview';\nexport { SidebarNavTriggerPreview } from '@/ui/sidebar-nav-trigger/sidebar-nav-trigger-preview';\nexport { SliderPreview } from '@/ui/slider/slider-preview';\nexport { StackPreview } from '@/ui/stack/stack-preview';\nexport { StatCardPreview } from '@/ui/stat-card/stat-card-preview';\nexport { TabsPreview } from '@/ui/tabs/tabs-preview';\nexport { TabsUnderlinePreview } from '@/ui/tabs-underline/tabs-underline-preview';\nexport { TagPreview } from '@/ui/tag/tag-preview';\nexport { TextareaPreview } from '@/ui/input/textarea-preview';\nexport { ThumbnailPreview } from '@/ui/thumbnail/thumbnail-preview';\nexport { TimeInputPreview } from '@/ui/time-input/time-input-preview';\nexport { TimelineEntryPreview } from '@/ui/timeline-entry/timeline-entry-preview';\nexport { ToastPreview } from '@/ui/toast/toast-preview';\nexport { TogglePreview } from '@/ui/toggle-switch/toggle-preview';\nexport { TooltipPreview } from '@/ui/tooltip/tooltip-preview';\nexport { TypeOverviewCardPreview } from '@/ui/type-overview-card/type-overview-card-preview';\nexport { ViewSwitcherPreview } from '@/ui/view-switcher/view-switcher-preview';\n\n// ── Composite / showcase previews (no 1:1 component) ──\nexport { BrandSettingsPreview } from '@/previews/composite/brand-settings-preview';\nexport { FormPreview } from '@/previews/composite/form-preview';\nexport { LifecycleActionRowPreview } from '@/previews/composite/lifecycle-action-row-preview';\nexport { LifecycleConnectorKnobsPreview } from '@/previews/composite/lifecycle-connector-knobs-preview';\nexport { LifecyclePlusButtonPreview } from '@/previews/composite/lifecycle-plus-button-preview';\nexport { LoginPagePreview } from '@/previews/composite/login-page-preview';\nexport { MultirowFormPreview } from '@/previews/composite/multirow-form-preview';\n\n// ── Shared preview-side types ──\nexport type { PreviewProps, PreviewShellContext, Theme } from './types';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,iCAAkC;AAClC,iCAAiC;AACjC,4BAA8B;AAC9B,+BAAgC;AAChC,2BAA6B;AAC7B,4BAA8B;AAC9B,gCAAkC;AAClC,qCAAqC;AACrC,4BAA8B;AAC9B,kCAAmC;AACnC,sCAAsC;AACtC,8BAAgC;AAChC,0BAA4B;AAC5B,8BAAgC;AAChC,0BAA4B;AAC5B,6BAA+B;AAC/B,iCAAkC;AAClC,iCAAkC;AAClC,mCAAoC;AACpC,0CAA0C;AAC1C,yCAAyC;AACzC,qCAAsC;AACtC,oCAAqC;AACrC,gCAAiC;AACjC,gCAAiC;AACjC,oCAAqC;AACrC,gCAAkC;AAClC,6BAA+B;AAC/B,mCAAoC;AACpC,iCAAkC;AAClC,gCAAiC;AACjC,wCAAwC;AACxC,sCAAuC;AACvC,iCAAkC;AAClC,iCAAkC;AAClC,gCAAiC;AACjC,0BAA4B;AAC5B,iCAAkC;AAClC,+BAAgC;AAChC,mCAAoC;AACpC,mCAAoC;AACpC,2BAA6B;AAC7B,qCAAqC;AACrC,uCAAwC;AACxC,yCAA0C;AAC1C,yCAAyC;AACzC,0CAA0C;AAC1C,yCAAyC;AACzC,uCAAwC;AACxC,yCAAyC;AACzC,wCAAyC;AACzC,4CAA4C;AAC5C,0BAA4B;AAC5B,+BAAgC;AAChC,6BAA+B;AAC/B,4BAA8B;AAC9B,0BAA4B;AAC5B,8BAA+B;AAC/B,2BAA6B;AAC7B,oCAAqC;AACrC,kCAAmC;AACnC,iCAAkC;AAClC,iCAAkC;AAClC,gCAAiC;AACjC,oCAAqC;AACrC,iCAAkC;AAClC,iCAAkC;AAClC,kCAAmC;AACnC,oCAAqC;AACrC,mCAAoC;AACpC,iCAAkC;AAClC,qCAAsC;AACtC,qCAAsC;AACtC,oCAAqC;AACrC,kCAAmC;AACnC,iCAAkC;AAClC,4BAA8B;AAC9B,mCAAoC;AACpC,sCAAsC;AACtC,yCAAyC;AACzC,4BAA8B;AAC9B,2BAA6B;AAC7B,+BAAgC;AAChC,0BAA4B;AAC5B,oCAAqC;AACrC,yBAA2B;AAC3B,8BAAgC;AAChC,+BAAiC;AACjC,gCAAiC;AACjC,oCAAqC;AACrC,2BAA6B;AAC7B,4BAA8B;AAC9B,6BAA+B;AAC/B,wCAAwC;AACxC,mCAAoC;AAGpC,oCAAqC;AACrC,0BAA4B;AAC5B,0CAA0C;AAC1C,+CAA+C;AAC/C,2CAA2C;AAC3C,gCAAiC;AACjC,mCAAoC;","names":[]}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Public barrel for @viax.io/uxm/previews.
2
+ * Public barrel for @viax/uxm/previews.
3
3
  *
4
4
  * Re-exports every canvas preview component, plus the shared preview-side
5
5
  * types. Imported by the modo uxm-shell to render the registry-driven
6
- * editor canvas. Tree-shakable: hosts that import only `@viax.io/uxm/ui` do
6
+ * editor canvas. Tree-shakable: hosts that import only `@viax/uxm/ui` do
7
7
  * not pull preview code through this entry.
8
8
  */
9
9
  export { AppSidebarPreview } from '../ui/app-sidebar/app-sidebar-preview.js';
@@ -49,6 +49,7 @@ export { InlineActionPreview } from '../ui/inline-action/inline-action-preview.j
49
49
  export { InlineFilterPreview } from '../ui/inline-filter/inline-filter-preview.js';
50
50
  export { InputPreview } from '../ui/input/input-preview.js';
51
51
  export { InputWithIconPreview } from '../ui/input-with-icon/input-with-icon-preview.js';
52
+ export { LanguageSwitcherPreview } from '../ui/language-switcher/language-switcher-preview.js';
52
53
  export { LifecycleConnectorPreview } from '../ui/lifecycle-connector/lifecycle-connector-preview.js';
53
54
  export { LifecycleDropSlotPreview } from '../ui/lifecycle-drop-slot/lifecycle-drop-slot-preview.js';
54
55
  export { LifecycleEdgeLabelPreview } from '../ui/lifecycle-edge-label/lifecycle-edge-label-preview.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/previews/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/previews/index.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ import { InlineActionPreview } from "../ui/inline-action/inline-action-preview.j
41
41
  import { InlineFilterPreview } from "../ui/inline-filter/inline-filter-preview.js";
42
42
  import { InputPreview } from "../ui/input/input-preview.js";
43
43
  import { InputWithIconPreview } from "../ui/input-with-icon/input-with-icon-preview.js";
44
+ import { LanguageSwitcherPreview } from "../ui/language-switcher/language-switcher-preview.js";
44
45
  import { LifecycleConnectorPreview } from "../ui/lifecycle-connector/lifecycle-connector-preview.js";
45
46
  import { LifecycleDropSlotPreview } from "../ui/lifecycle-drop-slot/lifecycle-drop-slot-preview.js";
46
47
  import { LifecycleEdgeLabelPreview } from "../ui/lifecycle-edge-label/lifecycle-edge-label-preview.js";
@@ -145,6 +146,7 @@ export {
145
146
  InlineFilterPreview,
146
147
  InputPreview,
147
148
  InputWithIconPreview,
149
+ LanguageSwitcherPreview,
148
150
  LifecycleActionRowPreview,
149
151
  LifecycleConnectorKnobsPreview,
150
152
  LifecycleConnectorPreview,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/previews/index.ts"],"sourcesContent":["/**\n * Public barrel for @viax.io/uxm/previews.\n *\n * Re-exports every canvas preview component, plus the shared preview-side\n * types. Imported by the modo uxm-shell to render the registry-driven\n * editor canvas. Tree-shakable: hosts that import only `@viax.io/uxm/ui` do\n * not pull preview code through this entry.\n */\n\n// ── Atom + sub-component previews (live next to their component) ──\nexport { AppSidebarPreview } from '@/ui/app-sidebar/app-sidebar-preview';\nexport { AppTopBarPreview } from '@/ui/app-top-bar/app-top-bar-preview';\nexport { AvatarPreview } from '@/ui/avatar/avatar-preview';\nexport { BackLinkPreview } from '@/ui/back-link/back-link-preview';\nexport { BadgePreview } from '@/ui/badge/badge-preview';\nexport { BannerPreview } from '@/ui/banner/banner-preview';\nexport { BreadcrumbPreview } from '@/ui/breadcrumb/breadcrumb-preview';\nexport { BulkActionBarPreview } from '@/ui/bulk-action-bar/bulk-action-bar-preview';\nexport { ButtonPreview } from '@/ui/button/button-preview';\nexport { ButtonGroupPreview } from '@/ui/button-group/button-group-preview';\nexport { ButtonWithIconPreview } from '@/ui/button-with-icon/button-with-icon-preview';\nexport { CalendarPreview } from '@/ui/calendar/calendar-preview';\nexport { CardPreview } from '@/ui/card/card-preview';\nexport { CheckboxPreview } from '@/ui/checkbox/checkbox-preview';\nexport { ChipPreview } from '@/ui/chip/chip-preview';\nexport { ClusterPreview } from '@/ui/cluster/cluster-preview';\nexport { CodeEditorPreview } from '@/ui/code-editor/code-editor-preview';\nexport { ColorInputPreview } from '@/ui/color-input/color-input-preview';\nexport { ComponentRowPreview } from '@/ui/component-row/component-row-preview';\nexport { ConfigComponentRowPreview } from '@/ui/config-component-row/config-component-row-preview';\nexport { ConfigSegmentItemPreview } from '@/ui/config-segment-item/config-segment-item-preview';\nexport { ContentTooltipPreview } from '@/ui/tooltip/content-tooltip-preview';\nexport { CurrencyInputPreview } from '@/ui/currency-input/currency-input-preview';\nexport { DataTablePreview } from '@/ui/data-table/data-table-preview';\nexport { DateInputPreview } from '@/ui/date-input/date-input-preview';\nexport { DetailSectionPreview } from '@/ui/detail-section/detail-section-preview';\nexport { DisclosurePreview } from '@/ui/disclosure/disclosure-preview';\nexport { DividerPreview } from '@/ui/divider/divider-preview';\nexport { EditableCellPreview } from '@/ui/editable-cell/editable-cell-preview';\nexport { EmptyStatePreview } from '@/ui/empty-state/empty-state-preview';\nexport { ErrorPagePreview } from '@/ui/error-page/error-page-preview';\nexport { ExplorerListItemPreview } from '@/ui/explorer-list-item/explorer-list-item-preview';\nexport { ExplorerSectionPreview } from '@/ui/explorer-section/explorer-section-preview';\nexport { FileUploadPreview } from '@/ui/file-upload/file-upload-preview';\nexport { FilterTabsPreview } from '@/ui/filter-tabs/filter-tabs-preview';\nexport { FormFieldPreview } from '@/ui/form-field/form-field-preview';\nexport { IconPreview } from '@/ui/icon/icon-preview';\nexport { IconButtonPreview } from '@/ui/icon-button/icon-button-preview';\nexport { IconTilePreview } from '@/ui/icon-tile/icon-tile-preview';\nexport { InlineActionPreview } from '@/ui/inline-action/inline-action-preview';\nexport { InlineFilterPreview } from '@/ui/inline-filter/inline-filter-preview';\nexport { InputPreview } from '@/ui/input/input-preview';\nexport { InputWithIconPreview } from '@/ui/input-with-icon/input-with-icon-preview';\nexport { LifecycleConnectorPreview } from '@/ui/lifecycle-connector/lifecycle-connector-preview';\nexport { LifecycleDropSlotPreview } from '@/ui/lifecycle-drop-slot/lifecycle-drop-slot-preview';\nexport { LifecycleEdgeLabelPreview } from '@/ui/lifecycle-edge-label/lifecycle-edge-label-preview';\nexport { LifecycleGroupBoxPreview } from '@/ui/lifecycle-group-box/lifecycle-group-box-preview';\nexport { LifecycleMinimapPreview } from '@/ui/lifecycle-minimap/lifecycle-minimap-preview';\nexport { LifecycleNodeCardPreview } from '@/ui/lifecycle-node-card/lifecycle-node-card-preview';\nexport { LifecycleTerminalPreview } from '@/ui/lifecycle-terminal/lifecycle-terminal-preview';\nexport { LifecycleZoomControlPreview } from '@/ui/lifecycle-zoom-control/lifecycle-zoom-control-preview';\nexport { LinkPreview } from '@/ui/link/link-preview';\nexport { ListItemPreview } from '@/ui/list/list-item-preview';\nexport { ListboxPreview } from '@/ui/listbox/listbox-preview';\nexport { LoaderPreview } from '@/ui/loader/loader-preview';\nexport { MenuPreview } from '@/ui/menu/menu-preview';\nexport { MetaRowPreview } from '@/ui/meta-row/meta-row-preview';\nexport { ModalPreview } from '@/ui/modal/modal-preview';\nexport { NumberStepperPreview } from '@/ui/number-stepper/number-stepper-preview';\nexport { NumberInputPreview } from '@/ui/number-input/number-input-preview';\nexport { OptionListPreview } from '@/ui/option-list/option-list-preview';\nexport { PageHeaderPreview } from '@/ui/page-header/page-header-preview';\nexport { PageShellPreview } from '@/ui/page-shell/page-shell-preview';\nexport { PasswordInputPreview } from '@/ui/password-input/password-input-preview';\nexport { PhoneInputPreview } from '@/ui/phone-input/phone-input-preview';\nexport { PillSelectPreview } from '@/ui/pill-select/pill-select-preview';\nexport { ProgressBarPreview } from '@/ui/progress-bar/progress-bar-preview';\nexport { PropertyFieldPreview } from '@/ui/property-field/property-field-preview';\nexport { PropertyGridPreview } from '@/ui/property-field/property-grid-preview';\nexport { RadioGroupPreview } from '@/ui/radio-group/radio-group-preview';\nexport { ResponsiveGridPreview } from '@/ui/responsive-grid/responsive-grid-preview';\nexport { SearchDropdownPreview } from '@/ui/search-dropdown/search-dropdown-preview';\nexport { SectionHeaderPreview } from '@/ui/section-header/section-header-preview';\nexport { SegmentCardPreview } from '@/ui/segment-card/segment-card-preview';\nexport { SegmentRowPreview } from '@/ui/segment-row/segment-row-preview';\nexport { SelectPreview } from '@/ui/input/select-preview';\nexport { SideFlexpanePreview } from '@/ui/side-flexpane/side-flexpane-preview';\nexport { SidebarNavItemPreview } from '@/ui/sidebar-nav-item/sidebar-nav-item-preview';\nexport { SidebarNavTriggerPreview } from '@/ui/sidebar-nav-trigger/sidebar-nav-trigger-preview';\nexport { SliderPreview } from '@/ui/slider/slider-preview';\nexport { StackPreview } from '@/ui/stack/stack-preview';\nexport { StatCardPreview } from '@/ui/stat-card/stat-card-preview';\nexport { TabsPreview } from '@/ui/tabs/tabs-preview';\nexport { TabsUnderlinePreview } from '@/ui/tabs-underline/tabs-underline-preview';\nexport { TagPreview } from '@/ui/tag/tag-preview';\nexport { TextareaPreview } from '@/ui/input/textarea-preview';\nexport { ThumbnailPreview } from '@/ui/thumbnail/thumbnail-preview';\nexport { TimeInputPreview } from '@/ui/time-input/time-input-preview';\nexport { TimelineEntryPreview } from '@/ui/timeline-entry/timeline-entry-preview';\nexport { ToastPreview } from '@/ui/toast/toast-preview';\nexport { TogglePreview } from '@/ui/toggle-switch/toggle-preview';\nexport { TooltipPreview } from '@/ui/tooltip/tooltip-preview';\nexport { TypeOverviewCardPreview } from '@/ui/type-overview-card/type-overview-card-preview';\nexport { ViewSwitcherPreview } from '@/ui/view-switcher/view-switcher-preview';\n\n// ── Composite / showcase previews (no 1:1 component) ──\nexport { BrandSettingsPreview } from '@/previews/composite/brand-settings-preview';\nexport { FormPreview } from '@/previews/composite/form-preview';\nexport { LifecycleActionRowPreview } from '@/previews/composite/lifecycle-action-row-preview';\nexport { LifecycleConnectorKnobsPreview } from '@/previews/composite/lifecycle-connector-knobs-preview';\nexport { LifecyclePlusButtonPreview } from '@/previews/composite/lifecycle-plus-button-preview';\nexport { LoginPagePreview } from '@/previews/composite/login-page-preview';\nexport { MultirowFormPreview } from '@/previews/composite/multirow-form-preview';\n\n// ── Shared preview-side types ──\nexport type { PreviewProps, PreviewShellContext, Theme } from './types';\n"],"mappings":"AAUA,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,qBAAqB;AAC9B,SAAS,0BAA0B;AACnC,SAAS,6BAA6B;AACtC,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AACpC,SAAS,iCAAiC;AAC1C,SAAS,gCAAgC;AACzC,SAAS,6BAA6B;AACtC,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,4BAA4B;AACrC,SAAS,yBAAyB;AAClC,SAAS,sBAAsB;AAC/B,SAAS,2BAA2B;AACpC,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,+BAA+B;AACxC,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AACpC,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AACrC,SAAS,iCAAiC;AAC1C,SAAS,gCAAgC;AACzC,SAAS,iCAAiC;AAC1C,SAAS,gCAAgC;AACzC,SAAS,+BAA+B;AACxC,SAAS,gCAAgC;AACzC,SAAS,gCAAgC;AACzC,SAAS,mCAAmC;AAC5C,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AACrC,SAAS,0BAA0B;AACnC,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,4BAA4B;AACrC,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC,SAAS,4BAA4B;AACrC,SAAS,2BAA2B;AACpC,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AACtC,SAAS,6BAA6B;AACtC,SAAS,4BAA4B;AACrC,SAAS,0BAA0B;AACnC,SAAS,yBAAyB;AAClC,SAAS,qBAAqB;AAC9B,SAAS,2BAA2B;AACpC,SAAS,6BAA6B;AACtC,SAAS,gCAAgC;AACzC,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AACrC,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,+BAA+B;AACxC,SAAS,2BAA2B;AAGpC,SAAS,4BAA4B;AACrC,SAAS,mBAAmB;AAC5B,SAAS,iCAAiC;AAC1C,SAAS,sCAAsC;AAC/C,SAAS,kCAAkC;AAC3C,SAAS,wBAAwB;AACjC,SAAS,2BAA2B;","names":[]}
1
+ {"version":3,"sources":["../../src/previews/index.ts"],"sourcesContent":["/**\n * Public barrel for @viax/uxm/previews.\n *\n * Re-exports every canvas preview component, plus the shared preview-side\n * types. Imported by the modo uxm-shell to render the registry-driven\n * editor canvas. Tree-shakable: hosts that import only `@viax/uxm/ui` do\n * not pull preview code through this entry.\n */\n\n// ── Atom + sub-component previews (live next to their component) ──\nexport { AppSidebarPreview } from '@/ui/app-sidebar/app-sidebar-preview';\nexport { AppTopBarPreview } from '@/ui/app-top-bar/app-top-bar-preview';\nexport { AvatarPreview } from '@/ui/avatar/avatar-preview';\nexport { BackLinkPreview } from '@/ui/back-link/back-link-preview';\nexport { BadgePreview } from '@/ui/badge/badge-preview';\nexport { BannerPreview } from '@/ui/banner/banner-preview';\nexport { BreadcrumbPreview } from '@/ui/breadcrumb/breadcrumb-preview';\nexport { BulkActionBarPreview } from '@/ui/bulk-action-bar/bulk-action-bar-preview';\nexport { ButtonPreview } from '@/ui/button/button-preview';\nexport { ButtonGroupPreview } from '@/ui/button-group/button-group-preview';\nexport { ButtonWithIconPreview } from '@/ui/button-with-icon/button-with-icon-preview';\nexport { CalendarPreview } from '@/ui/calendar/calendar-preview';\nexport { CardPreview } from '@/ui/card/card-preview';\nexport { CheckboxPreview } from '@/ui/checkbox/checkbox-preview';\nexport { ChipPreview } from '@/ui/chip/chip-preview';\nexport { ClusterPreview } from '@/ui/cluster/cluster-preview';\nexport { CodeEditorPreview } from '@/ui/code-editor/code-editor-preview';\nexport { ColorInputPreview } from '@/ui/color-input/color-input-preview';\nexport { ComponentRowPreview } from '@/ui/component-row/component-row-preview';\nexport { ConfigComponentRowPreview } from '@/ui/config-component-row/config-component-row-preview';\nexport { ConfigSegmentItemPreview } from '@/ui/config-segment-item/config-segment-item-preview';\nexport { ContentTooltipPreview } from '@/ui/tooltip/content-tooltip-preview';\nexport { CurrencyInputPreview } from '@/ui/currency-input/currency-input-preview';\nexport { DataTablePreview } from '@/ui/data-table/data-table-preview';\nexport { DateInputPreview } from '@/ui/date-input/date-input-preview';\nexport { DetailSectionPreview } from '@/ui/detail-section/detail-section-preview';\nexport { DisclosurePreview } from '@/ui/disclosure/disclosure-preview';\nexport { DividerPreview } from '@/ui/divider/divider-preview';\nexport { EditableCellPreview } from '@/ui/editable-cell/editable-cell-preview';\nexport { EmptyStatePreview } from '@/ui/empty-state/empty-state-preview';\nexport { ErrorPagePreview } from '@/ui/error-page/error-page-preview';\nexport { ExplorerListItemPreview } from '@/ui/explorer-list-item/explorer-list-item-preview';\nexport { ExplorerSectionPreview } from '@/ui/explorer-section/explorer-section-preview';\nexport { FileUploadPreview } from '@/ui/file-upload/file-upload-preview';\nexport { FilterTabsPreview } from '@/ui/filter-tabs/filter-tabs-preview';\nexport { FormFieldPreview } from '@/ui/form-field/form-field-preview';\nexport { IconPreview } from '@/ui/icon/icon-preview';\nexport { IconButtonPreview } from '@/ui/icon-button/icon-button-preview';\nexport { IconTilePreview } from '@/ui/icon-tile/icon-tile-preview';\nexport { InlineActionPreview } from '@/ui/inline-action/inline-action-preview';\nexport { InlineFilterPreview } from '@/ui/inline-filter/inline-filter-preview';\nexport { InputPreview } from '@/ui/input/input-preview';\nexport { InputWithIconPreview } from '@/ui/input-with-icon/input-with-icon-preview';\nexport { LanguageSwitcherPreview } from '@/ui/language-switcher/language-switcher-preview';\nexport { LifecycleConnectorPreview } from '@/ui/lifecycle-connector/lifecycle-connector-preview';\nexport { LifecycleDropSlotPreview } from '@/ui/lifecycle-drop-slot/lifecycle-drop-slot-preview';\nexport { LifecycleEdgeLabelPreview } from '@/ui/lifecycle-edge-label/lifecycle-edge-label-preview';\nexport { LifecycleGroupBoxPreview } from '@/ui/lifecycle-group-box/lifecycle-group-box-preview';\nexport { LifecycleMinimapPreview } from '@/ui/lifecycle-minimap/lifecycle-minimap-preview';\nexport { LifecycleNodeCardPreview } from '@/ui/lifecycle-node-card/lifecycle-node-card-preview';\nexport { LifecycleTerminalPreview } from '@/ui/lifecycle-terminal/lifecycle-terminal-preview';\nexport { LifecycleZoomControlPreview } from '@/ui/lifecycle-zoom-control/lifecycle-zoom-control-preview';\nexport { LinkPreview } from '@/ui/link/link-preview';\nexport { ListItemPreview } from '@/ui/list/list-item-preview';\nexport { ListboxPreview } from '@/ui/listbox/listbox-preview';\nexport { LoaderPreview } from '@/ui/loader/loader-preview';\nexport { MenuPreview } from '@/ui/menu/menu-preview';\nexport { MetaRowPreview } from '@/ui/meta-row/meta-row-preview';\nexport { ModalPreview } from '@/ui/modal/modal-preview';\nexport { NumberStepperPreview } from '@/ui/number-stepper/number-stepper-preview';\nexport { NumberInputPreview } from '@/ui/number-input/number-input-preview';\nexport { OptionListPreview } from '@/ui/option-list/option-list-preview';\nexport { PageHeaderPreview } from '@/ui/page-header/page-header-preview';\nexport { PageShellPreview } from '@/ui/page-shell/page-shell-preview';\nexport { PasswordInputPreview } from '@/ui/password-input/password-input-preview';\nexport { PhoneInputPreview } from '@/ui/phone-input/phone-input-preview';\nexport { PillSelectPreview } from '@/ui/pill-select/pill-select-preview';\nexport { ProgressBarPreview } from '@/ui/progress-bar/progress-bar-preview';\nexport { PropertyFieldPreview } from '@/ui/property-field/property-field-preview';\nexport { PropertyGridPreview } from '@/ui/property-field/property-grid-preview';\nexport { RadioGroupPreview } from '@/ui/radio-group/radio-group-preview';\nexport { ResponsiveGridPreview } from '@/ui/responsive-grid/responsive-grid-preview';\nexport { SearchDropdownPreview } from '@/ui/search-dropdown/search-dropdown-preview';\nexport { SectionHeaderPreview } from '@/ui/section-header/section-header-preview';\nexport { SegmentCardPreview } from '@/ui/segment-card/segment-card-preview';\nexport { SegmentRowPreview } from '@/ui/segment-row/segment-row-preview';\nexport { SelectPreview } from '@/ui/input/select-preview';\nexport { SideFlexpanePreview } from '@/ui/side-flexpane/side-flexpane-preview';\nexport { SidebarNavItemPreview } from '@/ui/sidebar-nav-item/sidebar-nav-item-preview';\nexport { SidebarNavTriggerPreview } from '@/ui/sidebar-nav-trigger/sidebar-nav-trigger-preview';\nexport { SliderPreview } from '@/ui/slider/slider-preview';\nexport { StackPreview } from '@/ui/stack/stack-preview';\nexport { StatCardPreview } from '@/ui/stat-card/stat-card-preview';\nexport { TabsPreview } from '@/ui/tabs/tabs-preview';\nexport { TabsUnderlinePreview } from '@/ui/tabs-underline/tabs-underline-preview';\nexport { TagPreview } from '@/ui/tag/tag-preview';\nexport { TextareaPreview } from '@/ui/input/textarea-preview';\nexport { ThumbnailPreview } from '@/ui/thumbnail/thumbnail-preview';\nexport { TimeInputPreview } from '@/ui/time-input/time-input-preview';\nexport { TimelineEntryPreview } from '@/ui/timeline-entry/timeline-entry-preview';\nexport { ToastPreview } from '@/ui/toast/toast-preview';\nexport { TogglePreview } from '@/ui/toggle-switch/toggle-preview';\nexport { TooltipPreview } from '@/ui/tooltip/tooltip-preview';\nexport { TypeOverviewCardPreview } from '@/ui/type-overview-card/type-overview-card-preview';\nexport { ViewSwitcherPreview } from '@/ui/view-switcher/view-switcher-preview';\n\n// ── Composite / showcase previews (no 1:1 component) ──\nexport { BrandSettingsPreview } from '@/previews/composite/brand-settings-preview';\nexport { FormPreview } from '@/previews/composite/form-preview';\nexport { LifecycleActionRowPreview } from '@/previews/composite/lifecycle-action-row-preview';\nexport { LifecycleConnectorKnobsPreview } from '@/previews/composite/lifecycle-connector-knobs-preview';\nexport { LifecyclePlusButtonPreview } from '@/previews/composite/lifecycle-plus-button-preview';\nexport { LoginPagePreview } from '@/previews/composite/login-page-preview';\nexport { MultirowFormPreview } from '@/previews/composite/multirow-form-preview';\n\n// ── Shared preview-side types ──\nexport type { PreviewProps, PreviewShellContext, Theme } from './types';\n"],"mappings":"AAUA,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,qBAAqB;AAC9B,SAAS,0BAA0B;AACnC,SAAS,6BAA6B;AACtC,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AACpC,SAAS,iCAAiC;AAC1C,SAAS,gCAAgC;AACzC,SAAS,6BAA6B;AACtC,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,4BAA4B;AACrC,SAAS,yBAAyB;AAClC,SAAS,sBAAsB;AAC/B,SAAS,2BAA2B;AACpC,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,+BAA+B;AACxC,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AACpC,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AACrC,SAAS,+BAA+B;AACxC,SAAS,iCAAiC;AAC1C,SAAS,gCAAgC;AACzC,SAAS,iCAAiC;AAC1C,SAAS,gCAAgC;AACzC,SAAS,+BAA+B;AACxC,SAAS,gCAAgC;AACzC,SAAS,gCAAgC;AACzC,SAAS,mCAAmC;AAC5C,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AACrC,SAAS,0BAA0B;AACnC,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,4BAA4B;AACrC,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC,SAAS,4BAA4B;AACrC,SAAS,2BAA2B;AACpC,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AACtC,SAAS,6BAA6B;AACtC,SAAS,4BAA4B;AACrC,SAAS,0BAA0B;AACnC,SAAS,yBAAyB;AAClC,SAAS,qBAAqB;AAC9B,SAAS,2BAA2B;AACpC,SAAS,6BAA6B;AACtC,SAAS,gCAAgC;AACzC,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AACrC,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,+BAA+B;AACxC,SAAS,2BAA2B;AAGpC,SAAS,4BAA4B;AACrC,SAAS,mBAAmB;AAC5B,SAAS,iCAAiC;AAC1C,SAAS,sCAAsC;AAC/C,SAAS,kCAAkC;AAC3C,SAAS,wBAAwB;AACjC,SAAS,2BAA2B;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/studio/index.ts"],"sourcesContent":["/**\n * @viax.io/uxm/studio — the UXM design workbench (sidebar + canvas + properties\n * panel + previews + editors), the same portal shipped at modo's `/uxm` route.\n *\n * Decoupled from any specific backend via `StudioPersistence`: inject\n * `createHttpPersistence()` to read/write against a Hono API, or\n * `createReadOnlyPersistence()` for a static portal (live-preview only).\n *\n * Styles ship separately as `@viax.io/uxm/studio.css` — import it once in the\n * host; it bundles tokens + UI atom CSS + the Tailwind utilities the shell\n * uses, so no host Tailwind config is required.\n */\nexport { UxmApp } from './uxm-app';\nexport type { UxmAppProps } from './uxm-app';\nexport { UxmProvider, useUxm } from './lib/context';\nexport { registry, getComponentDef, categoryColors } from './lib/registry';\nexport type {\n BrandConfig,\n BrandTokens,\n Category,\n ComponentDef,\n EditorControlType,\n LayoutVariant,\n PreviewProps,\n StyleOverrides,\n StyleProperty,\n} from './lib/types';\n\n// Persistence contract + adapters + the single CSS generator (R5/R7).\nexport {\n createReadOnlyPersistence,\n createClientPersistence,\n createHttpPersistence,\n generateOverridesCss,\n} from './persistence';\nexport type {\n StudioPersistence,\n StudioState,\n AllOverrides,\n} from './persistence';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,qBAAuB;AAEvB,qBAAoC;AACpC,sBAA0D;AAc1D,yBAKO;","names":[]}
1
+ {"version":3,"sources":["../../src/studio/index.ts"],"sourcesContent":["/**\n * @viax/uxm/studio — the UXM design workbench (sidebar + canvas + properties\n * panel + previews + editors), the same portal shipped at modo's `/uxm` route.\n *\n * Decoupled from any specific backend via `StudioPersistence`: inject\n * `createHttpPersistence()` to read/write against a Hono API, or\n * `createReadOnlyPersistence()` for a static portal (live-preview only).\n *\n * Styles ship separately as `@viax/uxm/studio.css` — import it once in the\n * host; it bundles tokens + UI atom CSS + the Tailwind utilities the shell\n * uses, so no host Tailwind config is required.\n */\nexport { UxmApp } from './uxm-app';\nexport type { UxmAppProps } from './uxm-app';\nexport { UxmProvider, useUxm } from './lib/context';\nexport { registry, getComponentDef, categoryColors } from './lib/registry';\nexport type {\n BrandConfig,\n BrandTokens,\n Category,\n ComponentDef,\n EditorControlType,\n LayoutVariant,\n PreviewProps,\n StyleOverrides,\n StyleProperty,\n} from './lib/types';\n\n// Persistence contract + adapters + the single CSS generator (R5/R7).\nexport {\n createReadOnlyPersistence,\n createClientPersistence,\n createHttpPersistence,\n generateOverridesCss,\n} from './persistence';\nexport type {\n StudioPersistence,\n StudioState,\n AllOverrides,\n} from './persistence';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,qBAAuB;AAEvB,qBAAoC;AACpC,sBAA0D;AAc1D,yBAKO;","names":[]}
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @viax.io/uxm/studio — the UXM design workbench (sidebar + canvas + properties
2
+ * @viax/uxm/studio — the UXM design workbench (sidebar + canvas + properties
3
3
  * panel + previews + editors), the same portal shipped at modo's `/uxm` route.
4
4
  *
5
5
  * Decoupled from any specific backend via `StudioPersistence`: inject
6
6
  * `createHttpPersistence()` to read/write against a Hono API, or
7
7
  * `createReadOnlyPersistence()` for a static portal (live-preview only).
8
8
  *
9
- * Styles ship separately as `@viax.io/uxm/studio.css` — import it once in the
9
+ * Styles ship separately as `@viax/uxm/studio.css` — import it once in the
10
10
  * host; it bundles tokens + UI atom CSS + the Tailwind utilities the shell
11
11
  * uses, so no host Tailwind config is required.
12
12
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/studio/index.ts"],"sourcesContent":["/**\n * @viax.io/uxm/studio — the UXM design workbench (sidebar + canvas + properties\n * panel + previews + editors), the same portal shipped at modo's `/uxm` route.\n *\n * Decoupled from any specific backend via `StudioPersistence`: inject\n * `createHttpPersistence()` to read/write against a Hono API, or\n * `createReadOnlyPersistence()` for a static portal (live-preview only).\n *\n * Styles ship separately as `@viax.io/uxm/studio.css` — import it once in the\n * host; it bundles tokens + UI atom CSS + the Tailwind utilities the shell\n * uses, so no host Tailwind config is required.\n */\nexport { UxmApp } from './uxm-app';\nexport type { UxmAppProps } from './uxm-app';\nexport { UxmProvider, useUxm } from './lib/context';\nexport { registry, getComponentDef, categoryColors } from './lib/registry';\nexport type {\n BrandConfig,\n BrandTokens,\n Category,\n ComponentDef,\n EditorControlType,\n LayoutVariant,\n PreviewProps,\n StyleOverrides,\n StyleProperty,\n} from './lib/types';\n\n// Persistence contract + adapters + the single CSS generator (R5/R7).\nexport {\n createReadOnlyPersistence,\n createClientPersistence,\n createHttpPersistence,\n generateOverridesCss,\n} from './persistence';\nexport type {\n StudioPersistence,\n StudioState,\n AllOverrides,\n} from './persistence';\n"],"mappings":"AAYA,SAAS,cAAc;AAEvB,SAAS,aAAa,cAAc;AACpC,SAAS,UAAU,iBAAiB,sBAAsB;AAc1D;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
1
+ {"version":3,"sources":["../../src/studio/index.ts"],"sourcesContent":["/**\n * @viax/uxm/studio — the UXM design workbench (sidebar + canvas + properties\n * panel + previews + editors), the same portal shipped at modo's `/uxm` route.\n *\n * Decoupled from any specific backend via `StudioPersistence`: inject\n * `createHttpPersistence()` to read/write against a Hono API, or\n * `createReadOnlyPersistence()` for a static portal (live-preview only).\n *\n * Styles ship separately as `@viax/uxm/studio.css` — import it once in the\n * host; it bundles tokens + UI atom CSS + the Tailwind utilities the shell\n * uses, so no host Tailwind config is required.\n */\nexport { UxmApp } from './uxm-app';\nexport type { UxmAppProps } from './uxm-app';\nexport { UxmProvider, useUxm } from './lib/context';\nexport { registry, getComponentDef, categoryColors } from './lib/registry';\nexport type {\n BrandConfig,\n BrandTokens,\n Category,\n ComponentDef,\n EditorControlType,\n LayoutVariant,\n PreviewProps,\n StyleOverrides,\n StyleProperty,\n} from './lib/types';\n\n// Persistence contract + adapters + the single CSS generator (R5/R7).\nexport {\n createReadOnlyPersistence,\n createClientPersistence,\n createHttpPersistence,\n generateOverridesCss,\n} from './persistence';\nexport type {\n StudioPersistence,\n StudioState,\n AllOverrides,\n} from './persistence';\n"],"mappings":"AAYA,SAAS,cAAc;AAEvB,SAAS,aAAa,cAAc;AACpC,SAAS,UAAU,iBAAiB,sBAAsB;AAc1D;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
@@ -122,6 +122,58 @@ const appDefs = [
122
122
  { key: "searchMaxWidth", label: "Search Max Width", control: "number", defaultValue: 320, min: 160, max: 480, step: 8, unit: "px" }
123
123
  ],
124
124
  layoutVariants: []
125
+ },
126
+ {
127
+ id: "language-switcher",
128
+ name: "Language Switcher",
129
+ category: "App",
130
+ 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.",
131
+ styleProperties: [
132
+ // Defaults mirror the atom's own `--uxm-language-switcher-*` fallbacks,
133
+ // so an untouched studio equals the shipped look. The PANEL is absent
134
+ // here on purpose: it inherits the shared `--uxm-listbox-*` surface, so
135
+ // its knobs live on the Listbox def and theming it there themes every
136
+ // picker at once.
137
+ { key: "bg", label: "Background", control: "color", defaultValue: "transparent", section: "states", showWhen: { state: "default" } },
138
+ { key: "color", label: "Text Color", control: "color", defaultValue: "var(--color-text)", section: "states", showWhen: { state: "default" } },
139
+ { key: "borderColor", label: "Border Color", control: "color", defaultValue: "var(--color-border)", section: "states", showWhen: { state: "default" } },
140
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-surface)", section: "states", showWhen: { state: "hover" } },
141
+ { key: "hoverBorderColor", label: "Border Color", control: "color", defaultValue: "var(--color-border-strong, var(--color-border))", section: "states", showWhen: { state: "hover" } },
142
+ { key: "openBg", label: "Background", control: "color", defaultValue: "var(--color-surface)", section: "states", showWhen: { state: "open" } },
143
+ { key: "openBorderColor", label: "Border Color", control: "color", defaultValue: "var(--color-accent)", section: "states", showWhen: { state: "open" } },
144
+ { key: "focusRing", label: "Ring Color", control: "color", defaultValue: "var(--color-accent)", section: "states", showWhen: { state: "focus" } },
145
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: "states", showWhen: { state: "disabled" } },
146
+ // Shared style — always visible.
147
+ { key: "caretColor", label: "Caret Color", control: "color", defaultValue: "var(--color-text-muted)" },
148
+ { key: "radius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 24, step: 1, unit: "px" },
149
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 10, min: 4, max: 32, step: 1, unit: "px" },
150
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 7, min: 2, max: 20, step: 1, unit: "px" },
151
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 13, min: 10, max: 20, step: 1, unit: "px" },
152
+ { key: "gap", label: "Gap", control: "number", defaultValue: 6, min: 0, max: 16, step: 1, unit: "px" }
153
+ ],
154
+ layoutVariants: [
155
+ {
156
+ key: "variant",
157
+ label: "Variant",
158
+ defaultValue: "full",
159
+ options: [
160
+ { value: "full", label: "Full" },
161
+ { value: "compact", label: "Compact" }
162
+ ]
163
+ },
164
+ {
165
+ key: "state",
166
+ label: "State",
167
+ defaultValue: "default",
168
+ options: [
169
+ { value: "default", label: "Default" },
170
+ { value: "hover", label: "Hover" },
171
+ { value: "open", label: "Open" },
172
+ { value: "focus", label: "Focus" },
173
+ { value: "disabled", label: "Disabled" }
174
+ ]
175
+ }
176
+ ]
125
177
  }
126
178
  ];
127
179
  // Annotate the CommonJS export names for ESM import in node: