@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.
Files changed (148) hide show
  1. package/CHANGELOG.md +14 -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/bulk-action-bar/bulk-action-bar.css +3 -0
  56. package/dist/ui/calendar/calendar.cjs +3 -1
  57. package/dist/ui/calendar/calendar.cjs.map +1 -1
  58. package/dist/ui/calendar/calendar.css +2 -1
  59. package/dist/ui/calendar/calendar.d.ts +6 -2
  60. package/dist/ui/calendar/calendar.d.ts.map +1 -1
  61. package/dist/ui/calendar/calendar.js +3 -1
  62. package/dist/ui/calendar/calendar.js.map +1 -1
  63. package/dist/ui/currency-input/currency-input.cjs +3 -1
  64. package/dist/ui/currency-input/currency-input.cjs.map +1 -1
  65. package/dist/ui/currency-input/currency-input.d.ts +4 -2
  66. package/dist/ui/currency-input/currency-input.d.ts.map +1 -1
  67. package/dist/ui/currency-input/currency-input.js +3 -1
  68. package/dist/ui/currency-input/currency-input.js.map +1 -1
  69. package/dist/ui/date-input/date-input.cjs +2 -1
  70. package/dist/ui/date-input/date-input.cjs.map +1 -1
  71. package/dist/ui/date-input/date-input.css +1 -1
  72. package/dist/ui/date-input/date-input.d.ts +11 -1
  73. package/dist/ui/date-input/date-input.d.ts.map +1 -1
  74. package/dist/ui/date-input/date-input.js +2 -1
  75. package/dist/ui/date-input/date-input.js.map +1 -1
  76. package/dist/ui/editable-cell/editable-cell.cjs +20 -6
  77. package/dist/ui/editable-cell/editable-cell.cjs.map +1 -1
  78. package/dist/ui/editable-cell/editable-cell.d.ts +24 -1
  79. package/dist/ui/editable-cell/editable-cell.d.ts.map +1 -1
  80. package/dist/ui/editable-cell/editable-cell.js +20 -6
  81. package/dist/ui/editable-cell/editable-cell.js.map +1 -1
  82. package/dist/ui/file-upload/file-upload.cjs +36 -9
  83. package/dist/ui/file-upload/file-upload.cjs.map +1 -1
  84. package/dist/ui/file-upload/file-upload.d.ts +46 -4
  85. package/dist/ui/file-upload/file-upload.d.ts.map +1 -1
  86. package/dist/ui/file-upload/file-upload.js +36 -9
  87. package/dist/ui/file-upload/file-upload.js.map +1 -1
  88. package/dist/ui/index.cjs +12 -2
  89. package/dist/ui/index.cjs.map +1 -1
  90. package/dist/ui/index.d.ts +5 -1
  91. package/dist/ui/index.d.ts.map +1 -1
  92. package/dist/ui/index.js +7 -1
  93. package/dist/ui/index.js.map +1 -1
  94. package/dist/ui/input/input.cjs +8 -4
  95. package/dist/ui/input/input.cjs.map +1 -1
  96. package/dist/ui/input/input.css +4 -0
  97. package/dist/ui/input/input.d.ts.map +1 -1
  98. package/dist/ui/input/input.js +8 -4
  99. package/dist/ui/input/input.js.map +1 -1
  100. package/dist/ui/language-switcher/index.cjs +29 -0
  101. package/dist/ui/language-switcher/index.cjs.map +1 -0
  102. package/dist/ui/language-switcher/index.d.ts +3 -0
  103. package/dist/ui/language-switcher/index.d.ts.map +1 -0
  104. package/dist/ui/language-switcher/index.js +5 -0
  105. package/dist/ui/language-switcher/index.js.map +1 -0
  106. package/dist/ui/language-switcher/language-switcher-preview.cjs +137 -0
  107. package/dist/ui/language-switcher/language-switcher-preview.cjs.map +1 -0
  108. package/dist/ui/language-switcher/language-switcher-preview.d.ts +3 -0
  109. package/dist/ui/language-switcher/language-switcher-preview.d.ts.map +1 -0
  110. package/dist/ui/language-switcher/language-switcher-preview.js +113 -0
  111. package/dist/ui/language-switcher/language-switcher-preview.js.map +1 -0
  112. package/dist/ui/language-switcher/language-switcher.cjs +127 -0
  113. package/dist/ui/language-switcher/language-switcher.cjs.map +1 -0
  114. package/dist/ui/language-switcher/language-switcher.css +95 -0
  115. package/dist/ui/language-switcher/language-switcher.d.ts +73 -0
  116. package/dist/ui/language-switcher/language-switcher.d.ts.map +1 -0
  117. package/dist/ui/language-switcher/language-switcher.js +103 -0
  118. package/dist/ui/language-switcher/language-switcher.js.map +1 -0
  119. package/dist/ui/locale/index.cjs +33 -0
  120. package/dist/ui/locale/index.cjs.map +1 -0
  121. package/dist/ui/locale/index.d.ts +3 -0
  122. package/dist/ui/locale/index.d.ts.map +1 -0
  123. package/dist/ui/locale/index.js +7 -0
  124. package/dist/ui/locale/index.js.map +1 -0
  125. package/dist/ui/locale/locale.cjs +43 -0
  126. package/dist/ui/locale/locale.cjs.map +1 -0
  127. package/dist/ui/locale/locale.d.ts +49 -0
  128. package/dist/ui/locale/locale.d.ts.map +1 -0
  129. package/dist/ui/locale/locale.js +17 -0
  130. package/dist/ui/locale/locale.js.map +1 -0
  131. package/dist/ui/page-shell/page-shell.cjs.map +1 -1
  132. package/dist/ui/page-shell/page-shell.d.ts +1 -1
  133. package/dist/ui/page-shell/page-shell.d.ts.map +1 -1
  134. package/dist/ui/page-shell/page-shell.js.map +1 -1
  135. package/dist/ui/range-slider/range-slider.cjs +7 -3
  136. package/dist/ui/range-slider/range-slider.cjs.map +1 -1
  137. package/dist/ui/range-slider/range-slider.d.ts +17 -1
  138. package/dist/ui/range-slider/range-slider.d.ts.map +1 -1
  139. package/dist/ui/range-slider/range-slider.js +7 -3
  140. package/dist/ui/range-slider/range-slider.js.map +1 -1
  141. package/dist/ui/stat-card/stat-card.cjs +1 -1
  142. package/dist/ui/stat-card/stat-card.cjs.map +1 -1
  143. package/dist/ui/stat-card/stat-card.css +4 -0
  144. package/dist/ui/stat-card/stat-card.js +1 -1
  145. package/dist/ui/stat-card/stat-card.js.map +1 -1
  146. package/dist/ui/styles.css +2 -1
  147. package/dist/ui/toast/toast.css +3 -1
  148. package/package.json +4 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/studio/lib/registry/composite.ts"],"sourcesContent":["import type { ComponentDef } from '../types';\n\nexport const compositeDefs: ComponentDef[] = [\n // ── Composite ──\n {\n id: 'pill-select',\n name: 'Pill Select',\n category: 'Composite',\n description: \"Multi-select tag input. Selected values render as <Chip mode=\\\"input\\\"> (chip theming lives on the Chip atom's registry). This shell owns the field shape and state visuals — default / hover / focus / disabled — matching the input-text / input-with-icon family.\",\n styleProperties: [\n // Field colors (per state). The visible field is `.uxm-pill-select__\n // field` — an inner div on the layout-only `.uxm-pill-select` root.\n // `backgroundColor` and `borderColor` are REAL_CSS_PROPS so they're\n // routed through `--uxm-pill-select-{bg,border-color}` via\n // PER_COMPONENT_MAPPING in save/route.ts (otherwise saves would land\n // on the layout wrapper and silently no-op). The per-state keys\n // (hoverBg, focusBorder, …) are custom names that route through the\n // kebab fallback path correctly.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors', showWhen: { state: 'default' } },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors', showWhen: { state: 'default' } },\n { key: 'placeholderColor', label: 'Placeholder', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors', showWhen: { state: 'hover' } },\n { key: 'hoverBorder', label: 'Border', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors', showWhen: { state: 'hover' } },\n { key: 'focusBorder', label: 'Border', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors', showWhen: { state: 'focus' } },\n { key: 'focusRing', label: 'Ring', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n // Disabled defaults intentionally match the default state — the\n // visible \"disabled\" signal comes from the chips inside (which\n // receive the forwarded `disabled` prop and render the Chip atom's\n // own muted palette) plus `cursor: not-allowed` and the field\n // being skipped in the tab order. Stacking an opacity dim on the\n // wrapper would double-dim the already-muted chips and ruin\n // readability, so opacity defaults to 1 — exposed as a knob if the\n // brand really wants a dimmed disabled treatment.\n { key: 'disabledBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors', showWhen: { state: 'disabled' } },\n { key: 'disabledBorder', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors', showWhen: { state: 'disabled' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 1, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // Error state — field-style atom (constrained picker), so it gets\n // the standard error surface: red border + bg on the inner `__field`,\n // plus the shared message knobs. errorBg / errorBorder paint the\n // field; errorColor + errorMessageSize theme the `__error-message`\n // below it. The latter two share keys with the rest of the input\n // family so the editor's \"Match in N Inputs\" sync links them. All\n // four kebab through the fallback path to `--uxm-pill-select-error-*`\n // (declared on the root, cascade down to `__field`). `colors` section\n // for bg/border matches the other per-state field colors above.\n { key: 'errorBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors', showWhen: { state: 'error' } },\n { key: 'errorBorder', label: 'Border', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'colors', showWhen: { state: 'error' } },\n { key: 'errorColor', label: 'Label + Message', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'errorState', showWhen: { state: 'error' } },\n { key: 'errorMessageSize', label: 'Message Size', control: 'number', defaultValue: 12, min: 10, max: 16, step: 1, unit: 'px', section: 'errorState', showWhen: { state: 'error' } },\n // Shape (universal, no showWhen). Keys `radius` and `chipGap` are\n // deliberately NOT named `borderRadius` / `gap` (which would land\n // in REAL_CSS_PROPS and emit plain CSS on the root); the field-\n // radius lives on the inner `__field`, and `chipGap` is the field's\n // flex gap. `paddingX` / `paddingY` ARE REAL_CSS_PROPS — routed via\n // PER_COMPONENT_MAPPING so they land on `__field`, not the root.\n { key: 'radius', label: 'Field Radius', control: 'slider', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'chipGap', label: 'Chip Gap', control: 'number', defaultValue: 6, min: 2, max: 12, step: 2, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 10, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 8, min: 4, max: 20, step: 2, unit: 'px' },\n // Label rendering is the consumer's responsibility — the atom\n // doesn't own a `<label>` element. Preview-only label knobs\n // (labelColor, labelSize) were removed pending a project-wide\n // decision on label theming has now landed: FormField is the sole\n // owner. Wrap pill-select in `<FormField>` to add a label; this\n // atom is just the multi-select field. labelPosition variant was\n // removed here for the same reason — labels are FormField's concern.\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n { value: 'error', label: 'Error' },\n ],\n defaultValue: 'default',\n },\n // Chip layout variant — `inside` keeps chips inline within the\n // trigger (tag-input pattern); `below` puts them in a separate row\n // beneath the trigger (filter-bar pattern). Default `below` —\n // modern default, trigger stays a constant height. Consumers\n // wanting the classic compact \"To:\" tag-input switch to `inside`.\n {\n key: 'chipsPosition',\n label: 'Chips Position',\n options: [\n { value: 'below', label: 'Below' },\n { value: 'inside', label: 'Inside' },\n ],\n defaultValue: 'below',\n },\n ],\n },\n {\n id: 'inline-filter',\n name: 'Inline Filters',\n category: 'Composite',\n description: \"Horizontal filter bar — three slots (search / filters / trailing). The filters slot accepts <Chip mode=\\\"filter\\\"> from the consumer; chip theming lives on the Chip atom's registry, not here. This shell is layout-only.\",\n styleProperties: [\n // Layout-only. The chip-shape knobs that used to live here\n // (chipBg, chipActiveBg, chipText, chipActiveText, plus\n // borderRadius / fontSize / paddingX / paddingY) have moved to\n // the Chip atom — the shell shouldn't claim theming responsibility\n // for what its consumers slot in.\n { key: 'gap', label: 'Slot Gap', control: 'number', defaultValue: 12, min: 4, max: 32, step: 2, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'content-tooltip',\n name: 'Content Tooltip',\n category: 'Composite',\n description: 'Rich tooltip with title, description, and action.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 12, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 16, min: 8, max: 32, step: 4, unit: 'px' },\n { key: 'shadow', label: 'Shadow', control: 'toggle', defaultValue: true },\n { key: 'maxWidth', label: 'Max Width', control: 'number', defaultValue: 280, min: 180, max: 400, step: 20, unit: 'px' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 14, min: 11, max: 18, step: 1, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'form-multirow',\n name: 'Multi-Row Form',\n category: 'Composite',\n description: \"Multi-section form with two-column rows. Composes FormField + TextInput / Select / Textarea; input theming flows through the input atoms' registries, label theming through FormField's. Always renders top labels — side labels + multi-section is a cramped combination and adds no signal worth exposing.\",\n styleProperties: [\n // Form card shape + section/field spacing only. `inputRadius` is\n // gone (TextInput owns its own border-radius); `borderColor` is\n // now exclusively the form card outline.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 12, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 32, min: 16, max: 48, step: 4, unit: 'px' },\n { key: 'fieldGap', label: 'Field Gap', control: 'number', defaultValue: 20, min: 8, max: 40, step: 4, unit: 'px' },\n { key: 'sectionGap', label: 'Section Gap', control: 'number', defaultValue: 32, min: 16, max: 48, step: 4, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'columns',\n label: 'Columns',\n options: [\n { value: '1', label: 'Single' },\n { value: '2', label: 'Two Column' },\n ],\n defaultValue: '2',\n },\n ],\n },\n {\n id: 'data-table',\n name: 'Data Table',\n category: 'Composite',\n description: 'Sortable data table with header, rows, and actions.',\n styleProperties: [\n { key: 'headerBg', label: 'Header Bg', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'headerText', label: 'Header Text', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'rowBg', label: 'Row Bg', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'rowHoverBg', label: 'Row Hover Bg', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 11, max: 16, step: 1, unit: 'px' },\n { key: 'cellPaddingX', label: 'Cell Padding X', control: 'number', defaultValue: 12, min: 8, max: 24, step: 2, unit: 'px' },\n { key: 'cellPaddingY', label: 'Cell Padding Y', control: 'number', defaultValue: 12, min: 6, max: 20, step: 2, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'density',\n label: 'Density',\n options: [\n { value: 'compact', label: 'Compact' },\n { value: 'default', label: 'Default' },\n { value: 'relaxed', label: 'Relaxed' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onRowClick', description: 'Fires when the user clicks a row (not bubbled from clicks inside the row-actions cell).', payload: '{ row: T }' },\n { name: 'onCommit', description: 'Fires when an editable cell commits a new value — Enter or blur.', payload: '{ row: T, value: EditableCellValue }' },\n ],\n },\n {\n id: 'view-switcher',\n name: 'View Switcher',\n category: 'Composite',\n description: 'Compact icon-only segmented control for toggling grid / list view. State knobs cover default / hover / focus / active / disabled across the individual icon button — the track surface is shared.',\n styleProperties: [\n // ── Track surface (shared across all states)\n { key: 'trackBg', label: 'Track Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'track' },\n { key: 'trackBorder', label: 'Track Border', control: 'color', defaultValue: 'var(--color-border)', section: 'track' },\n { key: 'trackRadius', label: 'Track Radius', control: 'slider', defaultValue: 8, min: 0, max: 99, step: 1, unit: 'px', section: 'track' },\n { key: 'trackPadding', label: 'Track Padding', control: 'number', defaultValue: 2, min: 0, max: 8, step: 1, unit: 'px', section: 'track' },\n { key: 'gap', label: 'Button Gap', control: 'number', defaultValue: 0, min: 0, max: 8, step: 1, unit: 'px', section: 'track' },\n // ── Per-state colors (filtered by State variant). Icon-only atom,\n // so the foreground knob is the icon color (CSS `color` driving\n // `currentColor` in the icon SVG).\n { key: 'inactiveIcon', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverIcon', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusIcon', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeIcon', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledIcon', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared sizing (applies to every button state)\n { key: 'buttonSize', label: 'Button Size', control: 'number', defaultValue: 28, min: 20, max: 44, step: 2, unit: 'px' },\n { key: 'buttonRadius', label: 'Button Radius', control: 'slider', defaultValue: 6, min: 0, max: 99, step: 1, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 16, min: 12, max: 24, 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: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onChange', description: 'Fires when the user picks a different view.', payload: '{ value: string }' },\n ],\n },\n {\n id: 'tabs',\n name: 'Tabs',\n category: 'Composite',\n description: 'Horizontal tab strip with icon + label, splitting the width between tabs. State knobs cover default / hover / focus / active / disabled across the individual tab item — the track surface is shared.',\n styleProperties: [\n // ── Track surface (shared across all tab states)\n { key: 'trackBg', label: 'Track Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'track' },\n { key: 'trackBorder', label: 'Track Border', control: 'color', defaultValue: 'var(--color-border)', section: 'track' },\n { key: 'trackRadius', label: 'Track Radius', control: 'slider', defaultValue: 8, min: 0, max: 99, step: 1, unit: 'px', section: 'track' },\n { key: 'trackPadding', label: 'Track Padding', control: 'number', defaultValue: 2, min: 0, max: 8, step: 1, unit: 'px', section: 'track' },\n { key: 'gap', label: 'Tab Gap', control: 'number', defaultValue: 0, min: 0, max: 8, step: 1, unit: 'px', section: 'track' },\n // ── Per-state tab colors. Mirrors the button family: each state owns\n // its own bg/text knobs, filtered into a single \"States\" section by\n // the State variant. Default is the resting inactive tab; active is\n // the currently-selected tab's appearance.\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity each live in their own section — they\n // sit semantically next to the state-scoped color knobs but are\n // standalone treatments (ring outline / dimming) rather than\n // foreground/background colors.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared sizing (applies to every tab state)\n { key: 'tabRadius', label: 'Tab Radius', control: 'slider', defaultValue: 6, min: 0, max: 99, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Tab Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Tab Padding Y', control: 'number', defaultValue: 6, min: 2, max: 14, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 10, max: 16, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Inactive Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'] },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 12, min: 10, max: 20, step: 1, unit: 'px' },\n { key: 'iconGap', label: 'Icon Gap', control: 'number', defaultValue: 6, min: 2, max: 12, 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: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onChange', description: 'Fires when the user picks a different tab.', payload: '{ value: string }' },\n ],\n },\n {\n id: 'tabs-underline',\n name: 'Tabs — Underline',\n category: 'Composite',\n description: 'Page-nav tab strip — text labels with an animated underline bar under the active tab. State knobs cover default / hover / focus / active / disabled across the individual tab item — the track bottom rule and bar shape are shared.',\n styleProperties: [\n // ── Track surface (shared — just the bottom rule + tab spacing)\n { key: 'trackBorderColor', label: 'Track Border', control: 'color', defaultValue: 'var(--color-border)', section: 'track' },\n { key: 'trackBorderWidth', label: 'Track Border Width', control: 'number', defaultValue: 1, min: 0, max: 6, step: 1, unit: 'px', section: 'track' },\n { key: 'gap', label: 'Tab Gap', control: 'number', defaultValue: 4, min: 0, max: 16, step: 1, unit: 'px', section: 'track' },\n // ── Per-state tab colors. Mirrors the tabs atom shape: each state\n // owns its own text color, filtered into a single \"States\" section\n // by the State variant. Active also owns the underline bar color —\n // the bar is the active-state's defining visual.\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'barColor', label: 'Bar Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections — standalone\n // treatments (ring outline / dimming) rather than fg/bg colors.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Bar shape (structural — always defines what the bar looks like\n // when an active tab is rendered, so shared across states)\n { key: 'barHeight', label: 'Bar Height', control: 'number', defaultValue: 2, min: 1, max: 6, step: 1, unit: 'px' },\n { key: 'barRadius', label: 'Bar Radius', control: 'slider', defaultValue: 2, min: 0, max: 4, step: 1, unit: 'px' },\n // ── Shared sizing (applies to every tab state)\n { key: 'paddingX', label: 'Tab Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Tab Padding Y', control: 'number', defaultValue: 8, min: 4, max: 16, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 11, max: 16, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Inactive Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'] },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 14, min: 10, max: 20, step: 1, unit: 'px' },\n { key: 'iconGap', label: 'Icon Gap', control: 'number', defaultValue: 6, min: 2, max: 12, 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: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onChange', description: 'Fires when the user picks a different tab.', payload: '{ value: string }' },\n ],\n },\n {\n id: 'filter-tabs',\n name: 'Filter Tabs',\n category: 'Composite',\n description: 'Segmented tab strip used for status filters like All / Active / Draft. State knobs cover default / hover / focus / active / disabled across the individual filter chip — the track surface is shared.',\n styleProperties: [\n // ── Track surface (shared across all states)\n { key: 'trackBg', label: 'Track Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'track' },\n { key: 'trackBorder', label: 'Track Border', control: 'color', defaultValue: 'var(--color-border)', section: 'track' },\n { key: 'trackRadius', label: 'Track Radius', control: 'slider', defaultValue: 8, min: 0, max: 99, step: 1, unit: 'px', section: 'track' },\n { key: 'trackPadding', label: 'Track Padding', control: 'number', defaultValue: 2, min: 0, max: 8, step: 1, unit: 'px', section: 'track' },\n { key: 'gap', label: 'Tab Gap', control: 'number', defaultValue: 0, min: 0, max: 8, step: 1, unit: 'px', section: 'track' },\n // ── Per-state colors (filtered by State variant)\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections — standalone\n // treatments (ring outline / dimming) rather than fg/bg colors.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared sizing (applies to every chip state)\n { key: 'tabRadius', label: 'Tab Radius', control: 'slider', defaultValue: 6, min: 0, max: 99, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Tab Padding X', control: 'number', defaultValue: 12, min: 6, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Tab Padding Y', control: 'number', defaultValue: 6, min: 2, max: 14, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 10, max: 16, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Inactive Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'] },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onChange', description: 'Fires when the user picks a different filter.', payload: '{ value: string }' },\n ],\n },\n {\n id: 'button-group',\n name: 'Button Group',\n category: 'Composite',\n description: 'Segmented button group with connected buttons. State knobs cover default / hover / focus / active / disabled across the individual button — the connecting border and outer frame are shared.',\n styleProperties: [\n // ── Frame (shared across all states — the connecting borders and\n // outer rounded frame define the group as a single unit)\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'frame' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 20, step: 1, unit: 'px', section: 'frame' },\n // ── Per-state colors (filtered by State variant). Unlike the other\n // segmented atoms, each button has its own non-transparent bg so\n // every state owns both bg and text.\n { key: 'inactiveBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'default' } },\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared sizing (applies to every button state)\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 16, min: 8, max: 32, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 8, min: 4, max: 16, step: 2, 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: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onChange', description: 'Fires when the user picks a different option.', payload: '{ value: string }' },\n ],\n },\n {\n id: 'side-flexpane',\n name: 'Side Flexpane',\n category: 'Composite',\n description: 'Right-sliding edit panel with header, scrollable body, and footer actions.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 0, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 380, min: 280, max: 520, step: 20, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 24, min: 12, max: 40, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 16, min: 8, max: 32, step: 2, unit: 'px' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 16, min: 13, max: 22, step: 1, unit: 'px' },\n { key: 'labelColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n ],\n layoutVariants: [],\n events: [\n { name: 'onClose', description: 'Fires when the user dismisses the flexpane via the close affordance or backdrop click.', payload: 'void' },\n { name: 'onResize', description: 'Fires while the user drags the left-edge handle to resize. Final width on drag end.', payload: '{ width: number }' },\n { name: 'onBack', description: 'Fires when the user clicks the back-link bar (rendered only when `onBack` is set).', payload: 'void' },\n { name: 'onExpandedChange', description: 'Fires with the next expanded state when the maximize toggle is clicked (`expandable`).', payload: '{ expanded: boolean }' },\n ],\n },\n {\n id: 'page-header',\n name: 'Page Header',\n category: 'Composite',\n description: 'Icon + title + meta text with trailing action buttons.',\n styleProperties: [\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 22, min: 16, max: 32, step: 1, unit: 'px' },\n { key: 'metaColor', label: 'Meta Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'metaSize', label: 'Meta Size', control: 'number', defaultValue: 13, min: 11, max: 18, step: 1, unit: 'px' },\n { key: 'iconBg', label: 'Icon Bg', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 40, min: 24, max: 64, step: 4, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 16, min: 6, max: 32, step: 2, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 0, min: 0, max: 40, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 0, min: 0, max: 32, step: 2, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'divider',\n name: 'Divider',\n category: 'Display',\n description: 'Horizontal rule, optionally with a centred label.',\n styleProperties: [\n { key: 'color', label: 'Line Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'thickness', label: 'Thickness', control: 'slider', defaultValue: 1, min: 1, max: 4, step: 1, unit: 'px' },\n { key: 'showLabel', label: 'Show Label', control: 'toggle', defaultValue: false },\n { key: 'labelColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'labelSize', label: 'Label Size', control: 'number', defaultValue: 10, min: 9, max: 14, step: 1, unit: 'px' },\n { key: 'gap', label: 'Label Gap', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'login-page',\n name: 'Login Page',\n category: 'Composite',\n description: 'Sign-in screen with a centered form card on a configurable background — solid, pattern, or image.',\n styleProperties: [\n { key: 'bgColor', label: 'Background Color', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'patternColor', label: 'Pattern Color', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-text) 8%, transparent)', section: 'colors' },\n { key: 'patternSize', label: 'Pattern Size', control: 'number', defaultValue: 18, min: 6, max: 48, step: 2, unit: 'px' },\n { key: 'imageUrl', label: 'Image URL', control: 'text', defaultValue: '' },\n { key: 'imageFit', label: 'Image Fit', control: 'select', defaultValue: 'cover', options: ['cover', 'contain', 'repeat'] },\n { key: 'cardBg', label: 'Card Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'cardBorderColor', label: 'Card Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'cardBorderWidth', label: 'Card Border Width', control: 'number', defaultValue: 1, min: 0, max: 3, step: 1, unit: 'px' },\n { key: 'cardRadius', label: 'Card Radius', control: 'slider', defaultValue: 12, min: 0, max: 32, step: 1, unit: 'px' },\n { key: 'cardShadow', label: 'Card Shadow', control: 'toggle', defaultValue: true },\n { key: 'cardMaxWidth', label: 'Card Max Width', control: 'number', defaultValue: 360, min: 240, max: 560, step: 8, unit: 'px' },\n { key: 'cardPadding', label: 'Card Padding', control: 'number', defaultValue: 32, min: 16, max: 64, step: 4, unit: 'px' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 22, min: 14, max: 36, step: 1, unit: 'px' },\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'subtitleSize', label: 'Subtitle Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'subtitleColor', label: 'Subtitle Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'logoSize', label: 'Logo Size', control: 'number', defaultValue: 36, min: 16, max: 80, step: 2, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'background',\n label: 'Background',\n options: [\n { value: 'solid', label: 'Solid' },\n { value: 'dots', label: 'Dot Grid' },\n { value: 'stripes', label: 'Diagonal Stripes' },\n { value: 'image', label: 'Image' },\n ],\n defaultValue: 'solid',\n },\n ],\n },\n {\n id: 'error-page',\n name: 'Error Page',\n category: 'Composite',\n description: 'Centered error / not-found layout — code, title, message, and action buttons.',\n styleProperties: [\n { key: 'codeSize', label: 'Code Size', control: 'number', defaultValue: 88, min: 48, max: 160, step: 4, unit: 'px' },\n { key: 'codeColor', label: 'Code Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'colors' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 24, min: 16, max: 40, step: 1, unit: 'px' },\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'messageSize', label: 'Message Size', control: 'number', defaultValue: 14, min: 11, max: 20, step: 1, unit: 'px' },\n { key: 'messageColor', label: 'Message Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'iconBg', label: 'Icon Tile Bg', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Tile Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'iconSize', label: 'Icon Tile Size', control: 'number', defaultValue: 56, min: 32, max: 96, step: 4, unit: 'px' },\n { key: 'messageMaxWidth', label: 'Message Max Width', control: 'number', defaultValue: 448, min: 240, max: 720, step: 8, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'variant',\n label: 'Variant',\n options: [\n { value: '404', label: '404 — Not Found' },\n { value: '500', label: '500 — Server Error' },\n { value: 'empty', label: 'Empty / Generic' },\n ],\n defaultValue: '404',\n },\n ],\n },\n {\n id: 'sidebar-nav-item',\n name: 'Sidebar Nav Item',\n category: 'Composite',\n description: 'Icon + label row used in the left navigation. State knobs cover default / hover / focus / active / disabled across the row — the active state is the currently-selected nav item (renders with `aria-current=\"page\"`). Icon tile and sizing are shared across every state.',\n styleProperties: [\n // ── Per-state row colors. Filtered into a single \"States\" section\n // by the State variant. Each state owns both bg and text knobs\n // (the row is opaque enough that bg matters). Focus is the\n // exception — text knob plus the standalone ring.\n { key: 'inactiveBg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-surface) 60%, transparent)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledBg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared sizing (applies to every state)\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 4, max: 16, step: 1, unit: 'px' },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 10, min: 4, max: 20, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 11, max: 18, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n // ── Icon tile (sub-element, shared across every state)\n { key: 'iconBg', label: 'Icon Tile Bg', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'icon' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'icon' },\n { key: 'iconBoxSize', label: 'Icon Tile Size', control: 'number', defaultValue: 24, min: 16, max: 36, step: 2, unit: 'px', section: 'icon' },\n { key: 'iconRadius', label: 'Icon Tile Radius', control: 'slider', defaultValue: 6, min: 0, max: 12, step: 1, unit: 'px', section: 'icon' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 14, min: 10, max: 24, step: 1, unit: 'px', section: 'icon' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n {\n // Persistent badge slot demo — the preview renders a sample marker\n // (a checkmark or a count pill) in the always-visible `badge` slot so\n // its look can be verified next to the hover-reveal trailing slot.\n key: 'badge',\n label: 'Badge',\n options: [\n { value: 'off', label: 'Off' },\n { value: 'check', label: 'Checkmark' },\n { value: 'count', label: 'Count' },\n ],\n defaultValue: 'off',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires when the user clicks the nav item (or activates it via Enter).', payload: 'MouseEvent' },\n ],\n },\n {\n id: 'explorer-list-item',\n name: 'Explorer List Item',\n category: 'Composite',\n description: \"Component-explorer / file-tree row. State knobs cover default / hover / focus / active / disabled — the active state is the selected entry and shows a left rail (an accent bar) instead of a filled tile, distinguishing it from SidebarNavItem's icon-tile style.\",\n styleProperties: [\n // ── Per-state row colors. Filtered into a single \"States\" section\n // by the State variant. Each state owns bg + text where relevant;\n // focus is the exception (text knob + standalone ring).\n { key: 'inactiveBg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-surface) 60%, transparent)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledBg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // Rail — the visual treatment of the active state. Scoped to the\n // active state so the knobs sit next to activeBg / activeText.\n { key: 'railColor', label: 'Rail Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'rail', showWhen: { state: 'active' } },\n { key: 'railWidth', label: 'Rail Width', control: 'number', defaultValue: 2, min: 1, max: 6, step: 1, unit: 'px', section: 'rail', showWhen: { state: 'active' } },\n { key: 'railHeight', label: 'Rail Height', control: 'number', defaultValue: 16, min: 8, max: 24, step: 2, unit: 'px', section: 'rail', showWhen: { state: 'active' } },\n { key: 'railRadius', label: 'Rail Radius', control: 'slider', defaultValue: 999, min: 0, max: 999, step: 1, unit: 'px', section: 'rail', showWhen: { state: 'active' } },\n // Trailing slot — shared across every state (always visible).\n { key: 'trailingColor', label: 'Trailing Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'trailing' },\n { key: 'trailingSize', label: 'Trailing Size', control: 'number', defaultValue: 10, min: 8, max: 14, step: 1, unit: 'px', section: 'trailing' },\n // ── Shared sizing (applies to every state)\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 8, min: 4, max: 16, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 11, max: 16, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'] },\n { key: 'gap', label: '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: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires when the user clicks the row (selection or navigation).', payload: 'MouseEvent' },\n ],\n },\n {\n id: 'sidebar-nav-trigger',\n name: 'Sidebar Nav Trigger',\n category: 'Composite',\n description:\n \"A rail row that OPENS something rather than navigating to it — a workspace switcher, an account menu, an environment picker. A <button> extending ButtonHTMLAttributes, so a Menu's or Listbox's `triggerProps` spread straight onto it, ref and ARIA included. Four optional slots: icon (a bare Icon in a switcher, an Avatar in the account row), caption (the small line beside the value; captionPlacement 'above' | 'below', default above — above LABELS the level this control changes, below QUALIFIES the value), children (the value) and trailing (the chevron — shown as soon as it is passed; no hover-reveal, unlike Sidebar Nav Item's trailing slot. The Trailing picker here decides whether the showcase PASSES the slot at all, exactly like Mark and Caption — it is not a visibility gate in the component). The atom draws NO tile behind the icon: it reserves the slot, sizes it, aligns it, and paints nothing. And it reserves nothing it was not given — no icon and the text starts at the padding edge, no caption and the value centres, no trailing and there is no gap where a chevron would have been. Sibling of Sidebar Nav Item rather than a variant of it: that one renders an <a>, hides trailing until hover, paints an icon tile and has a single-line label. `collapsed` renders it for a 64px rail: a 46px tile, the chevron dropped, and caption + value clipped but kept in the DOM so the accessible name survives. Pair it with a 32px mark. See the collapsed prop below for the reasoning.\",\n styleProperties: [\n // ── Per-state surface. Hover and open paint the SAME thing in both\n // variants, so they share one knob — a second one would only let a\n // designer make them disagree, and they mean the same thing to the eye.\n // Open has no prop: it is read from [aria-expanded=\"true\"], which Menu\n // and Listbox already set through triggerProps.\n { key: 'bg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: ['hover', 'open'] } },\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n // Dimmed, not recoloured — a disabled `outlined` trigger has to stay the\n // same box. One opacity covers both variants, so there is nothing to keep\n // in sync between them.\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.45, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n\n // ── The outlined variant's resting chrome. The border is deliberately\n // NOT per-state: it holds through hover and open, because a border that\n // moved too would be a second signal for a fact the surface carries.\n { key: 'outlinedBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'outlined', showWhen: { variant: 'outlined' } },\n { key: 'outlinedBorder', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'outlined', showWhen: { variant: 'outlined' } },\n\n // ── The value.\n // Gated on `collapsed: no` — the collapsed row clips its text away, so\n // every type knob below is a slider with no visible effect there. Same\n // reasoning for the caption group, the trailing colour, and padding/gap.\n { key: 'valueColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text)', section: 'value', showWhen: { collapsed: 'no' } },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 11, max: 18, step: 1, unit: 'px', section: 'value', showWhen: { collapsed: 'no' } },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'], section: 'value', showWhen: { collapsed: 'no' } },\n\n // ── The caption. Muted is under the AA text floor on the card surface\n // (2.54:1), which is acceptable here ONLY because a caption names the\n // control rather than carrying content — the value beneath it is the\n // content. Swap to --color-text-strong if that ever stops being true.\n { key: 'captionColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'caption', showWhen: { withCaption: 'yes', collapsed: 'no' } },\n { key: 'captionFontSize', label: 'Font Size', control: 'number', defaultValue: 10, min: 8, max: 14, step: 1, unit: 'px', section: 'caption', showWhen: { withCaption: 'yes', collapsed: 'no' } },\n { key: 'captionFontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'], section: 'caption', showWhen: { withCaption: 'yes', collapsed: 'no' } },\n // Uppercase is the DEFAULT, not the definition — an eyebrow in most rails,\n // but a sentence-case caption under an address is the same slot read\n // differently, and a brand font may not carry caps well. Paired knob: the\n // tracking below exists to open up caps, so turning this off usually means\n // turning that down too.\n { key: 'captionTextTransform', label: 'Text Transform', control: 'select', defaultValue: 'uppercase', options: ['uppercase', 'none', 'capitalize', 'lowercase'], section: 'caption', showWhen: { withCaption: 'yes', collapsed: 'no' } },\n // A number in `em`, not a free-text CSS length: the unit is fixed, so the\n // only thing a text field adds is the chance to type `6px` (catastrophic\n // tracking at a 10px caption) or a bare `0.06`, which is invalid CSS the\n // browser drops in silence. `em` and not `px` so the tracking scales with\n // the caption's own size — and with the brand font, which Brand Settings\n // can change under it.\n { key: 'captionLetterSpacing', label: 'Letter Spacing', control: 'number', defaultValue: 0.06, min: 0, max: 0.2, step: 0.01, unit: 'em', section: 'caption', showWhen: { withCaption: 'yes', collapsed: 'no' } },\n { key: 'captionGap', label: 'Row Gap', control: 'number', defaultValue: 2, min: 0, max: 8, step: 1, unit: 'px', section: 'caption', showWhen: { withCaption: 'yes', collapsed: 'no' } },\n\n // ── The mark. `iconSize` is a MIN box, not a fixed one: it reserves and\n // aligns without squeezing a child that brings its own size (an Avatar).\n // Gated to the Icon mark alone. Being a FLOOR, it does nothing while it\n // sits below the mark's own size — measured, a 32px `Avatar size='small'`\n // in a 28px slot yields a 32px slot, and Avatar's 40px default is further\n // out still. Exposed for Avatar it was a knob a designer drags through its\n // whole default range for no visible effect, waking up only past 32. The\n // lever that actually sizes an avatar is Avatar's own `size` preset; two\n // knobs competing to answer \"how big is the mark\" is worse than one.\n { key: 'iconSize', label: 'Slot Size', control: 'number', defaultValue: 28, min: 16, max: 44, step: 2, unit: 'px', section: 'icon', showWhen: { mark: 'icon' } },\n // Only the Icon mark inherits this colour — an Avatar paints itself.\n { key: 'iconColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'icon', showWhen: { mark: 'icon' } },\n\n { key: 'trailingColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'trailing', showWhen: { withTrailing: 'yes', collapsed: 'no' } },\n\n // ── Shared sizing. Padding and gap are the two that STOP applying when\n // collapsed (the tile sets `padding: 0` and has one in-flow child left),\n // so they are gated; radius still paints the 32x32 box and stays.\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 1, unit: 'px', showWhen: { collapsed: 'no' } },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 8, min: 4, max: 16, step: 1, unit: 'px', showWhen: { collapsed: 'no' } },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 10, min: 2, max: 20, step: 1, unit: 'px', showWhen: { collapsed: 'no' } },\n { key: 'borderRadius', label: 'Radius', control: 'slider', defaultValue: 8, min: 0, max: 20, step: 1, unit: 'px' },\n // The collapsed tile's own footprint — a MINIMUM, so a mark larger than it\n // (an `Avatar`) grows the row rather than being clipped. 46px deliberately\n // differs from the 32px `app-sidebar` gives its collapsed nav items: a\n // trigger has lost its chevron and its text at rail width, so footprint is\n // the only thing left saying it opens something rather than navigating.\n // It is also a composition choice: the tile is a surface AROUND the mark,\n // so a 32px mark (`Avatar size=\"small\"`) sits with ~7px on every side,\n // mirroring `sidebar-nav-item`'s 32px tile around a smaller icon.\n { key: 'collapsedSize', label: 'Tile Size', control: 'number', defaultValue: 46, min: 24, max: 64, step: 2, unit: 'px', showWhen: { collapsed: 'yes' } },\n ],\n layoutVariants: [\n {\n key: 'variant',\n label: 'Variant',\n options: [\n { value: 'outlined', label: 'Outlined' },\n { value: 'plain', label: 'Plain' },\n ],\n defaultValue: 'outlined',\n },\n {\n // `open` and `disabled` are not classes the showcase fakes — it applies\n // the real `aria-expanded=\"true\"` and the real `disabled` attribute,\n // which ARE the atom's selectors for those states, so the picker\n // exercises the production mechanism. Only `hover` / `focus` need the\n // kit's `--state-*` forced classes (a pointer and the tab ring cannot be\n // parked on demand); those share a declaration block with the real\n // pseudo-selectors and so cannot drift from them.\n key: 'state',\n label: 'State',\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 defaultValue: 'default',\n },\n {\n // The mark slot takes either kind of child, and `Avatar` is the case\n // worth being able to see: it proves the slot paints no tile and does\n // not squeeze a child that brings its own size. `None` is here for the\n // same reason as the other two slot pickers — to show what the atom\n // does NOT reserve: turn a slot off and the row closes up rather than\n // leaving a hole. The showcase's caption and value follow this pick,\n // since an avatar beside a workspace name would misrepresent the atom.\n key: 'mark',\n label: 'Mark',\n options: [\n { value: 'icon', label: 'Icon' },\n { value: 'avatar', label: 'Avatar' },\n { value: 'none', label: 'None' },\n ],\n defaultValue: 'icon',\n },\n {\n // The 64px rail. Its own picker rather than a value on `state`, because\n // it is orthogonal to every state — a collapsed row still hovers, opens\n // and disables, and folding the two would make five of those\n // combinations unreachable.\n key: 'collapsed',\n label: 'Rail',\n options: [\n { value: 'no', label: 'Expanded' },\n { value: 'yes', label: 'Collapsed' },\n ],\n defaultValue: 'no',\n },\n {\n key: 'withCaption',\n label: 'Caption',\n options: [\n { value: 'yes', label: 'On' },\n { value: 'no', label: 'Off' },\n ],\n defaultValue: 'yes',\n // Collapsed clips the caption and drops the chevron, so both slot\n // toggles (and the placement picker) would be no-ops there — they\n // disappear rather than sit dead, per the list-item precedent.\n showWhen: { collapsed: 'no' },\n },\n {\n // Above the value the caption LABELS the level (\"Workspace\"); below it,\n // it QUALIFIES the value (\"Tenant owner\" under an address). Swapped in\n // the markup, not with `column-reverse` — reversing visually while the\n // DOM stays put would split reading order from visual order (WCAG\n // 1.3.2) and keep announcing the pair the wrong way round.\n key: 'captionPlacement',\n label: 'Caption Position',\n options: [\n { value: 'above', label: 'Above' },\n { value: 'below', label: 'Below' },\n ],\n defaultValue: 'above',\n showWhen: { withCaption: 'yes', collapsed: 'no' },\n },\n {\n key: 'withTrailing',\n label: 'Trailing',\n options: [\n { value: 'yes', label: 'On' },\n { value: 'no', label: 'Off' },\n ],\n defaultValue: 'yes',\n showWhen: { collapsed: 'no' },\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires when the row is activated. Wired for you when the trigger is spread with a Menu/Listbox `triggerProps` — do not add your own on top, it would override theirs.', payload: 'MouseEvent' },\n ],\n api: {\n importPath: '@viax.io/uxm/ui',\n importNames: 'SidebarNavTrigger',\n props: [\n { name: 'icon', type: 'ReactNode', description: 'The mark on the left — a bare Icon in a switcher, an Avatar in an account row. No tile is drawn behind it: the slot is reserved, sized and aligned, and paints nothing.' },\n { name: 'caption', type: 'ReactNode', description: 'The small line beside the value. It sits inside the button, so it joins the accessible name — pass an explicit aria-label if a pairing reads badly.' },\n { name: 'captionPlacement', type: '\"above\" | \"below\"', defaultValue: '\"above\"', description: 'Which side of the value the caption sits on. Above it LABELS the level this control changes (a switcher\\'s \"Workspace\"); below it QUALIFIES the value (an account row\\'s \"Tenant owner\" under the address). Swapped in the markup rather than with flex-direction: column-reverse, so reading order keeps matching visual order (WCAG 1.3.2) and the accessible name follows the row.' },\n { name: 'children', type: 'ReactNode', description: 'The value — the workspace name, the signed-in address.' },\n { name: 'trailing', type: 'ReactNode', description: 'The chevron. Visible at rest, with no reveal-on-hover behaviour: a control that opens something has to advertise it before you point at it.' },\n { name: 'variant', type: '\"plain\" | \"outlined\"', defaultValue: '\"plain\"', description: 'plain — nothing at rest, for the account row at the foot of the rail. outlined — a hairline plus the card surface, for the switcher, which stands in a box because it names the level everything below it belongs to.' },\n { name: 'collapsed', type: 'boolean', defaultValue: 'false', description: 'Render for a 64px rail: a 46px tile (--uxm-sidebar-nav-trigger-collapsed-size, a MINIMUM rather than a clamp — a mark larger than it grows the row instead of being clipped), the trailing chevron dropped, and caption + value kept in the DOM but visually hidden — so the button announces identically collapsed and expanded rather than becoming a nameless icon. 46 deliberately differs from the 32px AppSidebar gives its collapsed nav items: a trigger has lost both chevron and text at this width, so footprint is the only signal left that it opens something. The tile is a surface AROUND the mark rather than a frame hugging it — pair it with Avatar size=\"small\" (32px) for ~7px on every side. outlined keeps its border at this size, since the box is then the only thing distinguishing a switcher from a plain account row. Pass title as well: with the chevron gone, only position and the mark still say the row opens something.' },\n ],\n },\n },\n {\n id: 'explorer-section',\n name: 'Explorer Section',\n category: 'Composite',\n description: 'Disclosure-style section header for grouping rows in a navigation list. Chevron rotates with the open state; indicator slot is for category color dots etc. State knobs cover default / hover / focus / disabled. `active` is intentionally omitted — section headers have no selection concept; toggling drives the orthogonal `open` variant.',\n styleProperties: [\n // ── Per-state row colors. Filtered into the \"States\" section by\n // the State variant. The header is always a button, so all state\n // rules fire on the root selector. Disabled is a visual treatment\n // (dimmed, muted), not strictly an interaction state.\n { key: 'inactiveBg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-surface) 40%, transparent)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'disabledBg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared sizing (applies to every state)\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 12, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 8, min: 0, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['500', '600', '700'] },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 8, min: 2, max: 16, step: 1, unit: 'px' },\n // ── Chevron sub-element (shared across every state)\n { key: 'chevronColor', label: 'Chevron Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'chevron' },\n { key: 'chevronSize', label: 'Chevron Size', control: 'number', defaultValue: 12, min: 8, max: 18, step: 1, unit: 'px', section: 'chevron' },\n // ── Trailing sub-element (shared)\n { key: 'trailingColor', label: 'Trailing Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'trailing' },\n { key: 'trailingSize', label: 'Trailing Size', control: 'number', defaultValue: 10, min: 8, max: 14, step: 1, unit: 'px', section: 'trailing' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n {\n // `open` is orthogonal to interaction state — drives the\n // chevron rotation and `aria-expanded` on the atom.\n key: 'open',\n label: 'Open',\n options: [\n { value: 'true', label: 'Expanded' },\n { value: 'false', label: 'Collapsed' },\n ],\n defaultValue: 'true',\n },\n ],\n events: [\n { name: 'onToggle', description: 'Fires when the user clicks the section header to expand or collapse children.', payload: '{ open: boolean }' },\n ],\n },\n {\n id: 'inline-action',\n name: 'Inline Action',\n category: 'Buttons',\n description: 'Tertiary text-with-optional-icon button for dense UI — \"Reset section,\" \"Match in N other,\" \"Edit.\" Muted by default; transitions to accent on hover. Smaller and less prominent than ButtonGhost; used inline in section headers and field rows.',\n styleProperties: [\n // Text-only button: only icon color (well, text color) changes per state.\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent)', 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-accent-bold)', 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-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 10, min: 9, max: 14, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 4, min: 2, max: 8, step: 1, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 10, min: 8, 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.', payload: 'MouseEvent<HTMLButtonElement>' },\n ],\n },\n {\n id: 'section-header',\n name: 'Section Header',\n category: 'Display',\n description: 'Small uppercase label for grouping fields in dense settings panels — the \"VARIANT\" / \"COLORS\" / \"STYLE\" labels above grouped form rows. Distinct from PageHeader (page-level) and DetailSection (bordered card).',\n styleProperties: [\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'colors' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px' },\n { key: 'titleWeight', label: 'Title Weight', control: 'select', defaultValue: '600', options: ['500', '600', '700'] },\n { key: 'subtitleColor', label: 'Subtitle Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'subtitleSize', label: 'Subtitle Size', control: 'number', defaultValue: 10, min: 9, max: 14, step: 1, unit: 'px' },\n { key: 'gap', label: 'Title-Subtitle Gap', control: 'number', defaultValue: 2, min: 0, max: 12, step: 1, unit: 'px' },\n { key: 'marginBottom', label: 'Margin Bottom', control: 'number', defaultValue: 12, min: 0, max: 32, step: 2, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'detail-section',\n name: 'Detail Section',\n category: 'Display',\n description: 'Card-like section with icon header, title/subtitle, and an accent rail.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 4, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 20, min: 8, max: 40, step: 2, unit: 'px' },\n { key: 'iconBg', label: 'Icon Bg', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 15, min: 12, max: 22, step: 1, unit: 'px' },\n { key: 'subtitleColor', label: 'Subtitle Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'accentWidth', label: 'Accent Rail Width', control: 'slider', defaultValue: 3, min: 0, max: 8, step: 1, unit: 'px' },\n { key: 'accentColor', label: 'Accent Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n ],\n layoutVariants: [],\n },\n {\n id: 'breadcrumb',\n name: 'Breadcrumb',\n category: 'Composite',\n description: 'Path navigation — clickable link crumbs leading to the current page, with configurable separators (chevron / slash / dot / dash). State knobs cover default / hover / focus / active / disabled. The `active` state is the current page styling — the trailing non-clickable crumb that marks where the user is. Clicking a link crumb truncates the path so that crumb becomes the new active.',\n styleProperties: [\n // ── Per-state link crumb colors. Filtered into a single \"States\"\n // section by the State variant. Links are transparent in every state\n // (the breadcrumb itself has no background) — just text colors plus\n // the standalone focus ring, disabled opacity, and the active-state\n // font weight (the current page is traditionally bolder).\n { key: 'inactiveText', label: 'Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverText', label: 'Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeText', label: 'Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeFontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['400', '500', '600', '700'], section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledText', label: 'Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Separator (between crumbs)\n { key: 'separatorColor', label: 'Separator Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'separator' },\n { key: 'separatorSize', label: 'Separator Size', control: 'number', defaultValue: 13, min: 8, max: 20, step: 1, unit: 'px', section: 'separator' },\n // ── Shared sizing + underline (applies across every state)\n { key: 'linkWeight', label: 'Link Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 6, min: 2, max: 16, step: 1, unit: 'px' },\n { key: 'underlineOffset', label: 'Underline Offset', control: 'number', defaultValue: 3, min: 1, max: 8, step: 1, unit: 'px' },\n { key: 'underlineThickness', label: 'Underline Thickness', control: 'number', defaultValue: 1, min: 1, max: 3, 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: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n {\n key: 'separator',\n label: 'Separator',\n options: [\n { value: 'chevron', label: 'Chevron' },\n { value: 'slash', label: 'Slash' },\n { value: 'dot', label: 'Dot' },\n { value: 'dash', label: 'Dash' },\n ],\n defaultValue: 'chevron',\n },\n ],\n },\n {\n id: 'link',\n name: 'Link',\n category: 'Display',\n description: \"Generic inline text link — three underline modes plus an optional external indicator. State knobs cover default / hover / focus / disabled on the anchor. `:active` is intentionally omitted — for a plain anchor it's the transient mouse-down pseudo and overlaps with hover semantically.\",\n styleProperties: [\n // ── Per-state colors. Filtered into a single \"States\" section by\n // the State variant. Link is transparent in every state — no bg\n // knobs, just text colors plus the standalone focus ring and\n // disabled opacity.\n { key: 'inactiveText', label: 'Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverText', label: 'Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'disabledText', label: 'Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared typography + underline knobs (apply across every state)\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 10, max: 20, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'] },\n { key: 'underlineOffset', label: 'Underline Offset', control: 'number', defaultValue: 3, min: 1, max: 8, step: 1, unit: 'px' },\n { key: 'underlineThickness', label: 'Underline Thickness', control: 'number', defaultValue: 1, min: 1, max: 3, step: 1, unit: 'px' },\n { key: 'externalIconSize', label: 'External Icon Size', control: 'number', defaultValue: 12, min: 8, max: 18, step: 1, unit: 'px' },\n { key: 'externalIconGap', label: 'External Icon Gap', control: 'number', defaultValue: 4, min: 0, max: 12, 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: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n {\n key: 'underline',\n label: 'Underline',\n options: [\n { value: 'none', label: 'None' },\n { value: 'hover', label: 'On Hover' },\n { value: 'always', label: 'Always' },\n ],\n defaultValue: 'hover',\n },\n {\n key: 'external',\n label: 'External',\n options: [\n { value: 'false', label: 'Internal' },\n { value: 'true', label: 'External' },\n ],\n defaultValue: 'false',\n },\n ],\n events: [\n { name: 'onClick', description: \"Fires on click. The consumer's router or `href` handles the navigation.\", payload: 'MouseEvent<HTMLAnchorElement>' },\n ],\n },\n {\n id: 'back-link',\n name: 'Back Link',\n category: 'Display',\n description: 'Inline text link with leading arrow for breadcrumb navigation.',\n styleProperties: [\n // Text-only navigation link — text color changes per state.\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', 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)', 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-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\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'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 6, 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 click. The consumer's router or `href` handles the navigation.\", payload: 'MouseEvent<HTMLAnchorElement>' },\n ],\n },\n {\n id: 'badge',\n name: 'Badge',\n category: 'Display',\n description: 'Notification indicator. Dot mode shows a colored circle with an optional label; count mode shows a small pill with a number that clamps to 99+.',\n styleProperties: [\n // Per-tone colors. `bg` paints the badge; `text` only matters in count\n // mode (dot has no children). Gated by the `tone` variant so the\n // properties panel only shows the active tone's knobs.\n // Count mode reuses Tag's tonal vocabulary (soft `${type}-bg` paired\n // with bold `${type}-text`) so adjacent Badge counts and Tags read\n // as the same status family. Dot mode uses a single solid hue knob\n // (`${type}DotColor`) so the indicator stays a strong color blob —\n // splitting per-mode lets each default to the right token without\n // forcing one shared bg compromise.\n { key: 'accentBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'colors', showWhen: { type: 'accent', mode: 'count' } },\n { key: 'accentText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors', showWhen: { type: 'accent', mode: 'count' } },\n { key: 'accentDotColor', label: 'Dot Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors', showWhen: { type: 'accent', mode: 'dot' } },\n { key: 'successBg', label: 'Background', control: 'color', defaultValue: 'var(--color-success-bg)', section: 'colors', showWhen: { type: 'success', mode: 'count' } },\n { key: 'successText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-success-text)', section: 'colors', showWhen: { type: 'success', mode: 'count' } },\n { key: 'successDotColor', label: 'Dot Color', control: 'color', defaultValue: 'var(--color-success-text)', section: 'colors', showWhen: { type: 'success', mode: 'dot' } },\n { key: 'warningBg', label: 'Background', control: 'color', defaultValue: 'var(--color-warning-bg)', section: 'colors', showWhen: { type: 'warning', mode: 'count' } },\n { key: 'warningText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-warning-text)', section: 'colors', showWhen: { type: 'warning', mode: 'count' } },\n { key: 'warningDotColor', label: 'Dot Color', control: 'color', defaultValue: 'var(--color-warning-text)', section: 'colors', showWhen: { type: 'warning', mode: 'dot' } },\n { key: 'dangerBg', label: 'Background', control: 'color', defaultValue: 'var(--color-danger-bg)', section: 'colors', showWhen: { type: 'danger', mode: 'count' } },\n { key: 'dangerText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'colors', showWhen: { type: 'danger', mode: 'count' } },\n { key: 'dangerDotColor', label: 'Dot Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'colors', showWhen: { type: 'danger', mode: 'dot' } },\n { key: 'infoBg', label: 'Background', control: 'color', defaultValue: 'var(--color-info-bg)', section: 'colors', showWhen: { type: 'info', mode: 'count' } },\n { key: 'infoText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-info-text)', section: 'colors', showWhen: { type: 'info', mode: 'count' } },\n { key: 'infoDotColor', label: 'Dot Color', control: 'color', defaultValue: 'var(--color-info-text)', section: 'colors', showWhen: { type: 'info', mode: 'dot' } },\n { key: 'neutralBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors', showWhen: { type: 'neutral', mode: 'count' } },\n { key: 'neutralText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'colors', showWhen: { type: 'neutral', mode: 'count' } },\n { key: 'neutralDotColor', label: 'Dot Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors', showWhen: { type: 'neutral', mode: 'dot' } },\n // Dot mode — circle (always 50% radius) plus optional label knobs.\n // The dot is the `__dot` inner span; tone paints it. When children\n // are provided, the root becomes a flex row containing dot + label.\n { key: 'dotSize', label: 'Dot Size', control: 'number', defaultValue: 8, min: 4, max: 16, step: 1, unit: 'px', showWhen: { mode: 'dot' } },\n { key: 'labelFontSize', label: 'Label Font Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px', showWhen: { mode: 'dot' } },\n { key: 'labelFontWeight', label: 'Label Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'], showWhen: { mode: 'dot' } },\n { key: 'labelColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors', showWhen: { mode: 'dot' } },\n { key: 'labelGap', label: 'Label Gap', control: 'number', defaultValue: 8, min: 2, max: 16, step: 1, unit: 'px', showWhen: { mode: 'dot' } },\n // Count mode — pill with min-width so single digits stay round.\n { key: 'countPaddingX', label: 'Padding X', control: 'number', defaultValue: 6, min: 2, max: 16, step: 1, unit: 'px', showWhen: { mode: 'count' } },\n { key: 'countPaddingY', label: 'Padding Y', control: 'number', defaultValue: 1, min: 0, max: 8, step: 1, unit: 'px', showWhen: { mode: 'count' } },\n { key: 'countMinWidth', label: 'Min Width', control: 'number', defaultValue: 18, min: 12, max: 36, step: 1, unit: 'px', showWhen: { mode: 'count' } },\n { key: 'countFontSize', label: 'Font Size', control: 'number', defaultValue: 11, min: 9, max: 16, step: 1, unit: 'px', showWhen: { mode: 'count' } },\n { key: 'countFontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['400', '500', '600', '700'], showWhen: { mode: 'count' } },\n { key: 'countBorderRadius', label: 'Border Radius', control: 'number', defaultValue: 999, min: 0, max: 999, step: 1, unit: 'px', showWhen: { mode: 'count' } },\n ],\n layoutVariants: [\n {\n key: 'mode',\n label: 'Mode',\n options: [\n { value: 'dot', label: 'Dot' },\n { value: 'count', label: 'Count' },\n ],\n defaultValue: 'count',\n },\n {\n key: 'type',\n label: 'Type',\n options: [\n { value: 'accent', label: 'Accent' },\n { value: 'success', label: 'Success' },\n { value: 'warning', label: 'Warning' },\n { value: 'danger', label: 'Danger' },\n { value: 'info', label: 'Info' },\n { value: 'neutral', label: 'Neutral' },\n ],\n defaultValue: 'danger',\n },\n ],\n },\n {\n id: 'thumbnail',\n name: 'Thumbnail',\n category: 'Display',\n description: 'Bounded image frame for product photos, file previews, and entity logos. Falls back to a placeholder icon when no image is provided.',\n styleProperties: [\n { key: 'size', label: 'Size', control: 'number', defaultValue: 48, min: 24, max: 120, step: 4, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 12, min: 0, max: 60, step: 1, unit: 'px', section: 'colors' },\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 2, min: 0, max: 4, step: 1, unit: 'px' },\n { key: 'placeholderColor', label: 'Placeholder Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'colors' },\n ],\n layoutVariants: [\n {\n key: 'fit',\n label: 'Fit',\n options: [\n { value: 'cover', label: 'Cover' },\n { value: 'contain', label: 'Contain' },\n ],\n defaultValue: 'cover',\n },\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'image', label: 'With Image' },\n { value: 'placeholder', label: 'Placeholder' },\n ],\n defaultValue: 'image',\n },\n ],\n },\n {\n id: 'calendar',\n name: 'Calendar',\n category: 'Display',\n description: \"Month-view calendar. Selects today on mount; click a day to move the selection. Today's outline stays put regardless of selection. Light-touch atom — selection state internal (overridable), no library binding.\",\n styleProperties: [\n // ── Frame: the outer container's surface, border, corners, padding.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'frame' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'frame' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 12, min: 0, max: 24, step: 1, unit: 'px', section: 'frame' },\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 16, min: 4, max: 32, step: 2, unit: 'px', section: 'frame' },\n // Elevation — on by default (the floating-surface look), tunable rather\n // than a bare on/off: the box-shadow is built from these three vars.\n // (Code can still drop it entirely with the `shadow={false}` prop.)\n { key: 'shadowColor', label: 'Color', control: 'color', defaultValue: 'rgba(0, 0, 0, 0.12)', section: 'shadow' },\n { key: 'shadowBlur', label: 'Blur', control: 'slider', defaultValue: 20, min: 0, max: 48, step: 1, unit: 'px', section: 'shadow' },\n { key: 'shadowOffsetY', label: 'Offset Y', control: 'slider', defaultValue: 6, min: 0, max: 24, step: 1, unit: 'px', section: 'shadow' },\n\n // ── Header: month / year label + prev/next nav buttons.\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text)', section: 'header' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 14, min: 12, max: 20, step: 1, unit: 'px', section: 'header' },\n { key: 'navColor', label: 'Nav Button Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'header' },\n\n // ── Weekday row: the \"Sun Mon Tue...\" labels above the day grid.\n { key: 'weekdayColor', label: 'Weekday Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'weekday' },\n { key: 'weekdaySize', label: 'Weekday Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px', section: 'weekday' },\n\n // ── Shared States: state colors that apply across day, month, and\n // year cells. Tuning these once changes all three cell types in the\n // matching state. Section appears only for the four states whose\n // knobs live here (default / today / selected / hover). Listed before\n // per-cell-type sections so designers tune cross-cutting concerns first.\n { key: 'defaultColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'shared-states', showWhen: { cellState: 'default' } },\n { key: 'todayBorderColor', label: 'Outline Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'shared-states', showWhen: { cellState: 'today' } },\n { key: 'todayColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'shared-states', showWhen: { cellState: 'today' } },\n { key: 'selectedBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'shared-states', showWhen: { cellState: 'selected' } },\n { key: 'selectedColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'shared-states', showWhen: { cellState: 'selected' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-text) 6%, transparent)', section: 'shared-states', showWhen: { cellState: 'hover' } },\n\n // ── Date Cell: dimensions + day-only state colors. In-range / range\n // edges / outside-month / disabled only exist on day cells, so their\n // color knobs live here gated by `cellState`. (Today, selected, hover,\n // and default text color are shared across all cell types — those\n // live in \"Shared States\" above.)\n { key: 'cellSize', label: 'Cell Size', control: 'number', defaultValue: 36, min: 28, max: 48, step: 2, unit: 'px', section: 'day-cell' },\n { key: 'cellFontSize', label: 'Cell Font Size', control: 'number', defaultValue: 13, min: 11, max: 18, step: 1, unit: 'px', section: 'day-cell' },\n { key: 'cellRadius', label: 'Cell Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px', section: 'day-cell' },\n { key: 'inRangeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'day-cell', showWhen: { cellState: 'in-range' } },\n { key: 'inRangeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'day-cell', showWhen: { cellState: 'in-range' } },\n { key: 'rangeStartBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'day-cell', showWhen: { cellState: 'range-start' } },\n { key: 'rangeStartColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'day-cell', showWhen: { cellState: 'range-start' } },\n { key: 'rangeEndBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'day-cell', showWhen: { cellState: 'range-end' } },\n { key: 'rangeEndColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'day-cell', showWhen: { cellState: 'range-end' } },\n { key: 'outsideColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'day-cell', showWhen: { cellState: 'outside' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'day-cell', showWhen: { cellState: 'disabled' } },\n\n // ── Month & Year Cells: drill-up navigation surfaces. One Cell Size\n // knob drives both dimensions (square cells, same pattern as Date Cell)\n // and is shared between month and year cells — they live in the same\n // 4-col grid with the same visual role, so one set of knobs is enough.\n // Knob keeps the `monthCell` prefix; CSS for both `.uxm-calendar__month`\n // and `.uxm-calendar__year` reads it.\n { key: 'monthCellSize', label: 'Cell Size', control: 'number', defaultValue: 64, min: 40, max: 120, step: 4, unit: 'px', section: 'month-year-cells' },\n { key: 'monthCellFontSize', label: 'Cell Font Size', control: 'number', defaultValue: 13, min: 11, max: 18, step: 1, unit: 'px', section: 'month-year-cells' },\n\n // ── Today button: the footer action that jumps the view back to the\n // current month. Its own knobs (not the today-CELL ones above).\n { key: 'todayButtonColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'todayButton' },\n { key: 'todayButtonHoverBg', label: 'Hover Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-accent) 12%, transparent)', section: 'todayButton' },\n { key: 'todayButtonSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 11, max: 18, step: 1, unit: 'px', section: 'todayButton' },\n ],\n layoutVariants: [\n {\n key: 'cellState',\n label: 'Cell State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'today', label: 'Today' },\n { value: 'selected', label: 'Selected' },\n { value: 'in-range', label: 'In Range' },\n { value: 'range-start', label: 'Range Start' },\n { value: 'range-end', label: 'Range End' },\n { value: 'outside', label: 'Outside Month' },\n { value: 'disabled', label: 'Disabled' },\n { value: 'hover', label: 'Hover' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onChange', description: 'Fires when the user picks a date cell.', payload: '{ value: Date }' },\n { name: 'onMonthChange', description: 'Fires when the user navigates to a different month via the prev/next chevrons or by tapping the header.', payload: '{ year: number, month: number }' },\n ],\n },\n {\n id: 'icon-tile',\n name: 'Icon Tile',\n category: 'Display',\n description: 'Small rounded square wrapping an icon with a colored background — the accent chip in front of row cards / list items / type entries.',\n styleProperties: [\n { key: 'size', label: 'Tile Size', control: 'number', defaultValue: 28, min: 16, max: 56, step: 2, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'iconBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 14, min: 10, max: 28, step: 1, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'meta-row',\n name: 'Meta Row',\n category: 'Display',\n description: 'Dot-separated metadata strip — \"v1.2 · 3 days ago · Sarah\" — used in card footers and list rows.',\n styleProperties: [\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 10, max: 16, step: 1, unit: 'px' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'gap', label: 'Item Gap', control: 'number', defaultValue: 12, min: 4, max: 24, step: 1, unit: 'px' },\n { key: 'dotSize', label: 'Dot Size', control: 'number', defaultValue: 4, min: 2, max: 10, step: 1, unit: 'px' },\n { key: 'dotColor', label: 'Dot Color', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-text) 20%, transparent)', section: 'colors' },\n ],\n layoutVariants: [],\n },\n {\n id: 'form-field',\n name: 'Form Field',\n category: 'Forms',\n description: 'Sole owner of label theming for the form family. Pairs a label with any UXM input (TextInput, Select, ToggleSwitch, etc.); optional hint line below. `labelPosition` flips between top (column stack) and side (grid layout).',\n styleProperties: [\n // Per-tint label colours — the Label Tint VARIANT (below) picks which\n // tint a field uses; these knobs define what each tint looks like.\n // One knob per tint, gated to the active tint so the panel reads\n // \"Per Label Tint · <value>\". Tints apply to both label variants\n // (default + overline) — the variant owns typography, the tint colour.\n { key: 'tintStrongColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'colors', showWhen: { labelTint: 'strong' } },\n { key: 'tintDefaultColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors', showWhen: { labelTint: 'default' } },\n { key: 'tintMutedColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors', showWhen: { labelTint: 'muted' } },\n // Typography — per label variant. The overline variant owns only its\n // size here (weight/letter-spacing stay token-level).\n { key: 'labelSize', label: 'Label Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px', showWhen: { labelVariant: 'default' } },\n { key: 'labelWeight', label: 'Label Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'], showWhen: { labelVariant: 'default' } },\n { key: 'overlineSize', label: 'Label Size', control: 'number', defaultValue: 11, min: 9, max: 16, step: 1, unit: 'px', showWhen: { labelVariant: 'overline' } },\n // Hint — its own section, shared across every variant/tint (no showWhen\n // anywhere in it, so the panel labels it \"Shared\").\n { key: 'hintColor', label: 'Hint Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'hint' },\n { key: 'hintSize', label: 'Hint Size', control: 'number', defaultValue: 12, min: 10, max: 16, step: 1, unit: 'px', section: 'hint' },\n // Label Gap — top-layout-specific. Lives in its own `topLayout`\n // section parallel to `sideLayout`, so the default STYLE section\n // contains only truly-shared knobs (labelSize, weight, hintSize,\n // hintGap) instead of getting polluted with a per-position knob.\n // Top and side layouts use the gap for visually different\n // distances (vertical vs horizontal), so each owns its own value.\n { key: 'gap', label: 'Label Gap', control: 'number', defaultValue: 8, min: 2, max: 32, step: 1, unit: 'px', section: 'topLayout', showWhen: { labelPosition: 'top' } },\n { key: 'hintGap', label: 'Hint Gap', control: 'number', defaultValue: 2, min: 0, max: 12, step: 1, unit: 'px', section: 'hint' },\n // Side-layout only: width of the label column. Gated on\n // labelPosition=side because it has no effect in top layout.\n { key: 'sideLabelWidth', label: 'Side Label Width', control: 'number', defaultValue: 120, min: 60, max: 240, step: 4, unit: 'px', section: 'sideLayout', showWhen: { labelPosition: 'side' } },\n // Side-layout only: horizontal gap between the label column and\n // the input column. Separate from the top-layout `gap` knob since\n // horizontal label-input distance is visually different from\n // vertical (and brands often want different values for each).\n { key: 'sideGap', label: 'Label Gap', control: 'number', defaultValue: 16, min: 2, max: 48, step: 1, unit: 'px', section: 'sideLayout', showWhen: { labelPosition: 'side' } },\n // Side-layout only: alignment of the label text within the label\n // column. Default \"start\" (left in LTR) puts label text at the\n // column's left edge — reads naturally with the eye flowing\n // left-to-right into the input. \"end\" (right) is the alternative\n // for projects that prefer labels flush against the input.\n { key: 'sideLabelAlign', label: 'Side Label Align', control: 'select', defaultValue: 'start', options: ['start', 'end'], section: 'sideLayout', showWhen: { labelPosition: 'side' } },\n // Vertical alignment of the label within its grid cell. Default \"center\"\n // matches the grid's `align-items: center`; \"start\" top-aligns the label\n // next to a tall control (radio group / checkbox list).\n { key: 'sideLabelValign', label: 'Side Label V-Align', control: 'select', defaultValue: 'center', options: ['center', 'start', 'end'], section: 'sideLayout', showWhen: { labelPosition: 'side' } },\n ],\n layoutVariants: [\n // Local labelPosition variant (top / side). Floating is intentionally\n // omitted — it requires absolute positioning + state-driven CSS\n // (:has(:not(:placeholder-shown))) that doesn't work with non-input\n // children like Select or PillSelect. Top + side cover the layout\n // shapes that work uniformly with every input atom.\n {\n key: 'labelPosition',\n label: 'Label Position',\n options: [\n { value: 'top', label: 'Top' },\n { value: 'side', label: 'Side' },\n ],\n defaultValue: 'top',\n },\n // Label typography variant. `overline` is the caps \"eyebrow\" style —\n // typography only; colour comes from the Label Tint below.\n {\n key: 'labelVariant',\n label: 'Label Variant',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'overline', label: 'Overline' },\n ],\n defaultValue: 'default',\n },\n // Label Tint — which semantic colour preset the field uses. Applies to\n // both label variants; each tint's colour is a knob gated to the active\n // tint (\"Per Label Tint · <value>\").\n {\n key: 'labelTint',\n label: 'Label Tint',\n options: [\n { value: 'strong', label: 'Strong' },\n { value: 'default', label: 'Default' },\n { value: 'muted', label: 'Muted' },\n ],\n defaultValue: 'strong',\n },\n ],\n },\n {\n id: 'property-field',\n name: 'Property Field',\n category: 'Display',\n description: 'Single label + monospace value pair used for metadata readouts. The grid layout that arranges multiple PropertyFields is a separate atom (`property-grid`).',\n styleProperties: [\n { key: 'labelColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'labelSize', label: 'Label Size', control: 'number', defaultValue: 10, min: 9, max: 14, step: 1, unit: 'px' },\n { key: 'valueColor', label: 'Value Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'valueSize', label: 'Value Size', control: 'number', defaultValue: 13, min: 11, max: 18, step: 1, unit: 'px' },\n { key: 'gap', label: 'Label/Value Gap', control: 'number', defaultValue: 4, min: 2, max: 12, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n // Label case + value font as guided presets. The preview maps each to the\n // `--uxm-property-field-label-transform` / `-label-tracking` / `-value-font`\n // vars: uppercase carries 0.06em tracking (the \"eyebrow\" look), sentence\n // drops both to none/normal; monospace is the data look, proportional is\n // the body typeface (for prose grids). Defaults reproduce today.\n {\n key: 'labelCase',\n label: 'Label Case',\n options: [\n { value: 'uppercase', label: 'Uppercase' },\n { value: 'sentence', label: 'Sentence' },\n ],\n defaultValue: 'uppercase',\n },\n {\n key: 'valueFont',\n label: 'Value Font',\n options: [\n { value: 'monospace', label: 'Monospace' },\n { value: 'proportional', label: 'Proportional' },\n ],\n defaultValue: 'monospace',\n },\n ],\n },\n {\n id: 'property-grid',\n name: 'Property Grid',\n category: 'Display',\n description: \"Auto-fill grid wrapper that lays out PropertyField pairs. Layout-only — chip / field theming flows through the PropertyField atom's own registry.\",\n styleProperties: [\n { key: 'rowGap', label: 'Row Gap', control: 'number', defaultValue: 16, min: 4, max: 32, step: 2, unit: 'px' },\n { key: 'columnGap', label: 'Column Gap', control: 'number', defaultValue: 32, min: 12, max: 64, step: 4, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'list-item',\n name: 'List Item',\n category: 'Composite',\n description: \"Row with icon, title, and optional trailing slot — used in stacked lists. Renders as `<div>` (static) or `<button>` / `<a>` (interactive) depending on the atom's `interactive` / `href` props. State knobs gate on `mode` rather than trailing — trailing is purely a visual choice and the two are orthogonal: an interactive row can have any trailing, a static row can have a chevron decoration without being tappable.\",\n styleProperties: [\n // ── Per-state row colors. Filtered into the \"States\" section by\n // the State variant. Default-state knobs (`inactiveBg`,\n // `inactiveText`) gate on `state: \"default\"` only — so the bg /\n // text are editable in both static and interactive modes. The\n // interactive-only state knobs (hover / focus / active)\n // additionally gate on `mode: \"interactive\"` so they hide\n // entirely when the row is rendered as a display-only `<div>`.\n // `disabled` is a visual treatment, not an interaction state, so\n // its knobs are NOT mode-gated.\n { key: 'inactiveBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'default' } },\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover', mode: 'interactive' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover', mode: 'interactive' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus', mode: 'interactive' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'states', showWhen: { state: 'active', mode: 'interactive' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'active', mode: 'interactive' } },\n { key: 'disabledBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus', mode: 'interactive' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Container (List wrapper)\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'container' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px', section: 'container' },\n // ── Shared sizing (applies to every state)\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 16, min: 8, max: 32, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 11, max: 18, step: 1, unit: 'px' },\n // ── Sub-elements (shared across every state)\n { key: 'valueColor', label: 'Value Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'value', showWhen: { value: 'shown' } },\n { key: 'valueSize', label: 'Value Size', control: 'number', defaultValue: 12, min: 10, max: 16, step: 1, unit: 'px', section: 'value', showWhen: { value: 'shown' } },\n // Trailing slot is purely composable — the consumer passes whatever\n // ReactNode they want. The preview demos the canonical pattern per\n // mode (chevron for interactive nav rows, Tag for static status\n // rows), so a single Chevron Color knob covers the interactive\n // example. Other trailing decorations (Tag, Badge, Avatar, etc.)\n // bring their own styling via their respective atoms.\n { key: 'chevronColor', label: 'Chevron Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'trailing', showWhen: { mode: 'interactive' } },\n // High-contrast icon \"stamp\" — bright accent tile with a card-coloured\n // glyph inside. Keeps the icon visually distinct from the row bg in\n // every state (default / hover / active / disabled), so the shared\n // icon knobs don't need to vary per-state.\n { key: 'iconBg', label: 'Icon Bg', control: 'color', defaultValue: 'var(--color-accent)', section: 'icon' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-card)', section: 'icon' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 24, min: 16, max: 40, step: 2, unit: 'px', section: 'icon' },\n { key: 'iconRadius', label: 'Icon Radius', control: 'slider', defaultValue: 6, min: 0, max: 16, step: 1, unit: 'px', section: 'icon' },\n ],\n layoutVariants: [\n {\n key: 'mode',\n label: 'Mode',\n options: [\n // `static` → renders as `<div>`; no hover / focus / active\n // styling. `interactive` → renders as `<button>` (or `<a>`\n // when href is passed); full state styling. Mode is\n // orthogonal to trailing: any trailing can sit in either mode.\n { value: 'static', label: 'Static' },\n { value: 'interactive', label: 'Interactive' },\n ],\n defaultValue: 'interactive',\n },\n {\n key: 'state',\n label: 'State',\n options: [\n // `default` and `disabled` are always available — every row\n // has a resting state, and `disabled` is a visual treatment\n // (dimmed, muted) that applies regardless of mode. The CSS\n // rule includes a bare `.uxm-list-item[aria-disabled]`\n // selector that fires on `<div>` as well as `<button>` /\n // `<a>`. The interactive-only states (hover / focus / active)\n // are option-level-gated to `mode: \"interactive\"`: when the\n // row is static, the picker collapses to \"Default\" +\n // \"Disabled\", which self-explains as \"this row only has\n // visual states\" without the picker disappearing.\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover', showWhen: { mode: 'interactive' } },\n { value: 'focus', label: 'Focus', showWhen: { mode: 'interactive' } },\n { value: 'active', label: 'Active', showWhen: { mode: 'interactive' } },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n {\n key: 'value',\n label: 'Value Text',\n options: [\n { value: 'shown', label: 'Shown' },\n { value: 'hidden', label: 'Hidden' },\n ],\n defaultValue: 'shown',\n },\n // No `trailing` variant — the preview chooses what to show in\n // the trailing slot based on `mode` (chevron for interactive,\n // Tag for static). Real consumers pass any ReactNode via the\n // atom's `trailing` prop; the editor preview demos the\n // canonical patterns only.\n ],\n },\n {\n id: 'stat-card',\n name: 'Stat Card',\n category: 'Composite',\n description: 'Metric card with value, label, and trend indicator.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 24, min: 12, max: 40, step: 4, unit: 'px' },\n { key: 'valueSize', label: 'Value Size', control: 'number', defaultValue: 28, min: 18, max: 48, step: 2, unit: 'px' },\n { key: 'labelSize', label: 'Label Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'trendUpColor', label: 'Trend Up', control: 'color', defaultValue: 'var(--color-success-text)', section: 'colors' },\n { key: 'trendDownColor', label: 'Trend Down', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'colors' },\n ],\n layoutVariants: [],\n },\n {\n id: 'page-shell',\n name: 'Page Shell',\n category: 'Composite',\n description:\n 'Top-level page layout — sidebar + (optional) top bar + content. Two variants drive the chrome: standard (full chrome, padded content) and canvas (no top bar, full-bleed content for diagrams/lifecycle).',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'colors' },\n { key: 'contentPadding', label: 'Content Padding', control: 'number', defaultValue: 32, min: 0, max: 64, step: 4, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'variant',\n label: 'Variant',\n options: [\n { value: 'standard', label: 'Standard' },\n { value: 'canvas', label: 'Canvas' },\n ],\n defaultValue: 'standard',\n },\n ],\n },\n {\n id: 'type-overview-card',\n name: 'Type Overview Card',\n category: 'Composite',\n description: 'Dashboard summary tile — accent stripe, icon tile, label, count, hover affordance.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 4, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 20, min: 12, max: 40, step: 2, unit: 'px' },\n { key: 'accentColor', label: 'Accent Stripe', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'accentWidth', label: 'Accent Width', control: 'number', defaultValue: 4, min: 2, max: 12, step: 1, unit: 'px' },\n { key: 'iconBg', label: 'Icon Tile Bg', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'iconBoxSize', label: 'Icon Tile Size', control: 'number', defaultValue: 32, min: 24, max: 48, step: 2, unit: 'px' },\n { key: 'iconRadius', label: 'Icon Tile Radius', control: 'slider', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'labelSize', label: 'Label Size', control: 'number', defaultValue: 14, min: 11, max: 18, step: 1, unit: 'px' },\n { key: 'labelColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'colors' },\n { key: 'valueSize', label: 'Value Size', control: 'number', defaultValue: 30, min: 20, max: 48, step: 2, unit: 'px' },\n { key: 'valueColor', label: 'Value Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n ],\n layoutVariants: [],\n },\n];\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/studio/lib/registry/composite.ts"],"sourcesContent":["import type { ComponentDef } from '../types';\n\nexport const compositeDefs: ComponentDef[] = [\n // ── Composite ──\n {\n id: 'pill-select',\n name: 'Pill Select',\n category: 'Composite',\n description: \"Multi-select tag input. Selected values render as <Chip mode=\\\"input\\\"> (chip theming lives on the Chip atom's registry). This shell owns the field shape and state visuals — default / hover / focus / disabled — matching the input-text / input-with-icon family.\",\n styleProperties: [\n // Field colors (per state). The visible field is `.uxm-pill-select__\n // field` — an inner div on the layout-only `.uxm-pill-select` root.\n // `backgroundColor` and `borderColor` are REAL_CSS_PROPS so they're\n // routed through `--uxm-pill-select-{bg,border-color}` via\n // PER_COMPONENT_MAPPING in save/route.ts (otherwise saves would land\n // on the layout wrapper and silently no-op). The per-state keys\n // (hoverBg, focusBorder, …) are custom names that route through the\n // kebab fallback path correctly.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors', showWhen: { state: 'default' } },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors', showWhen: { state: 'default' } },\n { key: 'placeholderColor', label: 'Placeholder', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors', showWhen: { state: 'hover' } },\n { key: 'hoverBorder', label: 'Border', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors', showWhen: { state: 'hover' } },\n { key: 'focusBorder', label: 'Border', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors', showWhen: { state: 'focus' } },\n { key: 'focusRing', label: 'Ring', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n // Disabled defaults intentionally match the default state — the\n // visible \"disabled\" signal comes from the chips inside (which\n // receive the forwarded `disabled` prop and render the Chip atom's\n // own muted palette) plus `cursor: not-allowed` and the field\n // being skipped in the tab order. Stacking an opacity dim on the\n // wrapper would double-dim the already-muted chips and ruin\n // readability, so opacity defaults to 1 — exposed as a knob if the\n // brand really wants a dimmed disabled treatment.\n { key: 'disabledBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors', showWhen: { state: 'disabled' } },\n { key: 'disabledBorder', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors', showWhen: { state: 'disabled' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 1, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // Error state — field-style atom (constrained picker), so it gets\n // the standard error surface: red border + bg on the inner `__field`,\n // plus the shared message knobs. errorBg / errorBorder paint the\n // field; errorColor + errorMessageSize theme the `__error-message`\n // below it. The latter two share keys with the rest of the input\n // family so the editor's \"Match in N Inputs\" sync links them. All\n // four kebab through the fallback path to `--uxm-pill-select-error-*`\n // (declared on the root, cascade down to `__field`). `colors` section\n // for bg/border matches the other per-state field colors above.\n { key: 'errorBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors', showWhen: { state: 'error' } },\n { key: 'errorBorder', label: 'Border', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'colors', showWhen: { state: 'error' } },\n { key: 'errorColor', label: 'Label + Message', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'errorState', showWhen: { state: 'error' } },\n { key: 'errorMessageSize', label: 'Message Size', control: 'number', defaultValue: 12, min: 10, max: 16, step: 1, unit: 'px', section: 'errorState', showWhen: { state: 'error' } },\n // Shape (universal, no showWhen). Keys `radius` and `chipGap` are\n // deliberately NOT named `borderRadius` / `gap` (which would land\n // in REAL_CSS_PROPS and emit plain CSS on the root); the field-\n // radius lives on the inner `__field`, and `chipGap` is the field's\n // flex gap. `paddingX` / `paddingY` ARE REAL_CSS_PROPS — routed via\n // PER_COMPONENT_MAPPING so they land on `__field`, not the root.\n { key: 'radius', label: 'Field Radius', control: 'slider', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'chipGap', label: 'Chip Gap', control: 'number', defaultValue: 6, min: 2, max: 12, step: 2, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 10, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 8, min: 4, max: 20, step: 2, unit: 'px' },\n // Label rendering is the consumer's responsibility — the atom\n // doesn't own a `<label>` element. Preview-only label knobs\n // (labelColor, labelSize) were removed pending a project-wide\n // decision on label theming has now landed: FormField is the sole\n // owner. Wrap pill-select in `<FormField>` to add a label; this\n // atom is just the multi-select field. labelPosition variant was\n // removed here for the same reason — labels are FormField's concern.\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n { value: 'error', label: 'Error' },\n ],\n defaultValue: 'default',\n },\n // Chip layout variant — `inside` keeps chips inline within the\n // trigger (tag-input pattern); `below` puts them in a separate row\n // beneath the trigger (filter-bar pattern). Default `below` —\n // modern default, trigger stays a constant height. Consumers\n // wanting the classic compact \"To:\" tag-input switch to `inside`.\n {\n key: 'chipsPosition',\n label: 'Chips Position',\n options: [\n { value: 'below', label: 'Below' },\n { value: 'inside', label: 'Inside' },\n ],\n defaultValue: 'below',\n },\n ],\n },\n {\n id: 'inline-filter',\n name: 'Inline Filters',\n category: 'Composite',\n description: \"Horizontal filter bar — three slots (search / filters / trailing). The filters slot accepts <Chip mode=\\\"filter\\\"> from the consumer; chip theming lives on the Chip atom's registry, not here. This shell is layout-only.\",\n styleProperties: [\n // Layout-only. The chip-shape knobs that used to live here\n // (chipBg, chipActiveBg, chipText, chipActiveText, plus\n // borderRadius / fontSize / paddingX / paddingY) have moved to\n // the Chip atom — the shell shouldn't claim theming responsibility\n // for what its consumers slot in.\n { key: 'gap', label: 'Slot Gap', control: 'number', defaultValue: 12, min: 4, max: 32, step: 2, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'content-tooltip',\n name: 'Content Tooltip',\n category: 'Composite',\n description: 'Rich tooltip with title, description, and action.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 12, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 16, min: 8, max: 32, step: 4, unit: 'px' },\n { key: 'shadow', label: 'Shadow', control: 'toggle', defaultValue: true },\n { key: 'maxWidth', label: 'Max Width', control: 'number', defaultValue: 280, min: 180, max: 400, step: 20, unit: 'px' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 14, min: 11, max: 18, step: 1, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'form-multirow',\n name: 'Multi-Row Form',\n category: 'Composite',\n description: \"Multi-section form with two-column rows. Composes FormField + TextInput / Select / Textarea; input theming flows through the input atoms' registries, label theming through FormField's. Always renders top labels — side labels + multi-section is a cramped combination and adds no signal worth exposing.\",\n styleProperties: [\n // Form card shape + section/field spacing only. `inputRadius` is\n // gone (TextInput owns its own border-radius); `borderColor` is\n // now exclusively the form card outline.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 12, min: 0, max: 24, step: 1, unit: 'px' },\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 32, min: 16, max: 48, step: 4, unit: 'px' },\n { key: 'fieldGap', label: 'Field Gap', control: 'number', defaultValue: 20, min: 8, max: 40, step: 4, unit: 'px' },\n { key: 'sectionGap', label: 'Section Gap', control: 'number', defaultValue: 32, min: 16, max: 48, step: 4, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'columns',\n label: 'Columns',\n options: [\n { value: '1', label: 'Single' },\n { value: '2', label: 'Two Column' },\n ],\n defaultValue: '2',\n },\n ],\n },\n {\n id: 'data-table',\n name: 'Data Table',\n category: 'Composite',\n description: 'Sortable data table with header, rows, and actions.',\n styleProperties: [\n { key: 'headerBg', label: 'Header Bg', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'headerText', label: 'Header Text', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'rowBg', label: 'Row Bg', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'rowHoverBg', label: 'Row Hover Bg', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 11, max: 16, step: 1, unit: 'px' },\n { key: 'cellPaddingX', label: 'Cell Padding X', control: 'number', defaultValue: 12, min: 8, max: 24, step: 2, unit: 'px' },\n { key: 'cellPaddingY', label: 'Cell Padding Y', control: 'number', defaultValue: 12, min: 6, max: 20, step: 2, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'density',\n label: 'Density',\n options: [\n { value: 'compact', label: 'Compact' },\n { value: 'default', label: 'Default' },\n { value: 'relaxed', label: 'Relaxed' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onRowClick', description: 'Fires when the user clicks a row (not bubbled from clicks inside the row-actions cell).', payload: '{ row: T }' },\n { name: 'onCommit', description: 'Fires when an editable cell commits a new value — Enter or blur.', payload: '{ row: T, value: EditableCellValue }' },\n ],\n },\n {\n id: 'view-switcher',\n name: 'View Switcher',\n category: 'Composite',\n description: 'Compact icon-only segmented control for toggling grid / list view. State knobs cover default / hover / focus / active / disabled across the individual icon button — the track surface is shared.',\n styleProperties: [\n // ── Track surface (shared across all states)\n { key: 'trackBg', label: 'Track Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'track' },\n { key: 'trackBorder', label: 'Track Border', control: 'color', defaultValue: 'var(--color-border)', section: 'track' },\n { key: 'trackRadius', label: 'Track Radius', control: 'slider', defaultValue: 8, min: 0, max: 99, step: 1, unit: 'px', section: 'track' },\n { key: 'trackPadding', label: 'Track Padding', control: 'number', defaultValue: 2, min: 0, max: 8, step: 1, unit: 'px', section: 'track' },\n { key: 'gap', label: 'Button Gap', control: 'number', defaultValue: 0, min: 0, max: 8, step: 1, unit: 'px', section: 'track' },\n // ── Per-state colors (filtered by State variant). Icon-only atom,\n // so the foreground knob is the icon color (CSS `color` driving\n // `currentColor` in the icon SVG).\n { key: 'inactiveIcon', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverIcon', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusIcon', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeIcon', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledIcon', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared sizing (applies to every button state)\n { key: 'buttonSize', label: 'Button Size', control: 'number', defaultValue: 28, min: 20, max: 44, step: 2, unit: 'px' },\n { key: 'buttonRadius', label: 'Button Radius', control: 'slider', defaultValue: 6, min: 0, max: 99, step: 1, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 16, min: 12, max: 24, 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: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onChange', description: 'Fires when the user picks a different view.', payload: '{ value: string }' },\n ],\n },\n {\n id: 'tabs',\n name: 'Tabs',\n category: 'Composite',\n description: 'Horizontal tab strip with icon + label, splitting the width between tabs. State knobs cover default / hover / focus / active / disabled across the individual tab item — the track surface is shared.',\n styleProperties: [\n // ── Track surface (shared across all tab states)\n { key: 'trackBg', label: 'Track Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'track' },\n { key: 'trackBorder', label: 'Track Border', control: 'color', defaultValue: 'var(--color-border)', section: 'track' },\n { key: 'trackRadius', label: 'Track Radius', control: 'slider', defaultValue: 8, min: 0, max: 99, step: 1, unit: 'px', section: 'track' },\n { key: 'trackPadding', label: 'Track Padding', control: 'number', defaultValue: 2, min: 0, max: 8, step: 1, unit: 'px', section: 'track' },\n { key: 'gap', label: 'Tab Gap', control: 'number', defaultValue: 0, min: 0, max: 8, step: 1, unit: 'px', section: 'track' },\n // ── Per-state tab colors. Mirrors the button family: each state owns\n // its own bg/text knobs, filtered into a single \"States\" section by\n // the State variant. Default is the resting inactive tab; active is\n // the currently-selected tab's appearance.\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity each live in their own section — they\n // sit semantically next to the state-scoped color knobs but are\n // standalone treatments (ring outline / dimming) rather than\n // foreground/background colors.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared sizing (applies to every tab state)\n { key: 'tabRadius', label: 'Tab Radius', control: 'slider', defaultValue: 6, min: 0, max: 99, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Tab Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Tab Padding Y', control: 'number', defaultValue: 6, min: 2, max: 14, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 10, max: 16, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Inactive Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'] },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 12, min: 10, max: 20, step: 1, unit: 'px' },\n { key: 'iconGap', label: 'Icon Gap', control: 'number', defaultValue: 6, min: 2, max: 12, 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: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onChange', description: 'Fires when the user picks a different tab.', payload: '{ value: string }' },\n ],\n },\n {\n id: 'tabs-underline',\n name: 'Tabs — Underline',\n category: 'Composite',\n description: 'Page-nav tab strip — text labels with an animated underline bar under the active tab. State knobs cover default / hover / focus / active / disabled across the individual tab item — the track bottom rule and bar shape are shared.',\n styleProperties: [\n // ── Track surface (shared — just the bottom rule + tab spacing)\n { key: 'trackBorderColor', label: 'Track Border', control: 'color', defaultValue: 'var(--color-border)', section: 'track' },\n { key: 'trackBorderWidth', label: 'Track Border Width', control: 'number', defaultValue: 1, min: 0, max: 6, step: 1, unit: 'px', section: 'track' },\n { key: 'gap', label: 'Tab Gap', control: 'number', defaultValue: 4, min: 0, max: 16, step: 1, unit: 'px', section: 'track' },\n // ── Per-state tab colors. Mirrors the tabs atom shape: each state\n // owns its own text color, filtered into a single \"States\" section\n // by the State variant. Active also owns the underline bar color —\n // the bar is the active-state's defining visual.\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'barColor', label: 'Bar Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections — standalone\n // treatments (ring outline / dimming) rather than fg/bg colors.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Bar shape (structural — always defines what the bar looks like\n // when an active tab is rendered, so shared across states)\n { key: 'barHeight', label: 'Bar Height', control: 'number', defaultValue: 2, min: 1, max: 6, step: 1, unit: 'px' },\n { key: 'barRadius', label: 'Bar Radius', control: 'slider', defaultValue: 2, min: 0, max: 4, step: 1, unit: 'px' },\n // ── Shared sizing (applies to every tab state)\n { key: 'paddingX', label: 'Tab Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Tab Padding Y', control: 'number', defaultValue: 8, min: 4, max: 16, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 11, max: 16, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Inactive Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'] },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 14, min: 10, max: 20, step: 1, unit: 'px' },\n { key: 'iconGap', label: 'Icon Gap', control: 'number', defaultValue: 6, min: 2, max: 12, 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: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onChange', description: 'Fires when the user picks a different tab.', payload: '{ value: string }' },\n ],\n },\n {\n id: 'filter-tabs',\n name: 'Filter Tabs',\n category: 'Composite',\n description: 'Segmented tab strip used for status filters like All / Active / Draft. State knobs cover default / hover / focus / active / disabled across the individual filter chip — the track surface is shared.',\n styleProperties: [\n // ── Track surface (shared across all states)\n { key: 'trackBg', label: 'Track Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'track' },\n { key: 'trackBorder', label: 'Track Border', control: 'color', defaultValue: 'var(--color-border)', section: 'track' },\n { key: 'trackRadius', label: 'Track Radius', control: 'slider', defaultValue: 8, min: 0, max: 99, step: 1, unit: 'px', section: 'track' },\n { key: 'trackPadding', label: 'Track Padding', control: 'number', defaultValue: 2, min: 0, max: 8, step: 1, unit: 'px', section: 'track' },\n { key: 'gap', label: 'Tab Gap', control: 'number', defaultValue: 0, min: 0, max: 8, step: 1, unit: 'px', section: 'track' },\n // ── Per-state colors (filtered by State variant)\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections — standalone\n // treatments (ring outline / dimming) rather than fg/bg colors.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared sizing (applies to every chip state)\n { key: 'tabRadius', label: 'Tab Radius', control: 'slider', defaultValue: 6, min: 0, max: 99, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Tab Padding X', control: 'number', defaultValue: 12, min: 6, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Tab Padding Y', control: 'number', defaultValue: 6, min: 2, max: 14, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 10, max: 16, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Inactive Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'] },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onChange', description: 'Fires when the user picks a different filter.', payload: '{ value: string }' },\n ],\n },\n {\n id: 'button-group',\n name: 'Button Group',\n category: 'Composite',\n description: 'Segmented button group with connected buttons. State knobs cover default / hover / focus / active / disabled across the individual button — the connecting border and outer frame are shared.',\n styleProperties: [\n // ── Frame (shared across all states — the connecting borders and\n // outer rounded frame define the group as a single unit)\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'frame' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 20, step: 1, unit: 'px', section: 'frame' },\n // ── Per-state colors (filtered by State variant). Unlike the other\n // segmented atoms, each button has its own non-transparent bg so\n // every state owns both bg and text.\n { key: 'inactiveBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'default' } },\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared sizing (applies to every button state)\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 16, min: 8, max: 32, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 8, min: 4, max: 16, step: 2, 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: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onChange', description: 'Fires when the user picks a different option.', payload: '{ value: string }' },\n ],\n },\n {\n id: 'side-flexpane',\n name: 'Side Flexpane',\n category: 'Composite',\n description: 'Right-sliding edit panel with header, scrollable body, and footer actions.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 0, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 380, min: 280, max: 520, step: 20, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 24, min: 12, max: 40, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 16, min: 8, max: 32, step: 2, unit: 'px' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 16, min: 13, max: 22, step: 1, unit: 'px' },\n { key: 'labelColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n ],\n layoutVariants: [],\n events: [\n { name: 'onClose', description: 'Fires when the user dismisses the flexpane via the close affordance or backdrop click.', payload: 'void' },\n { name: 'onResize', description: 'Fires while the user drags the left-edge handle to resize. Final width on drag end.', payload: '{ width: number }' },\n { name: 'onBack', description: 'Fires when the user clicks the back-link bar (rendered only when `onBack` is set).', payload: 'void' },\n { name: 'onExpandedChange', description: 'Fires with the next expanded state when the maximize toggle is clicked (`expandable`).', payload: '{ expanded: boolean }' },\n ],\n },\n {\n id: 'page-header',\n name: 'Page Header',\n category: 'Composite',\n description: 'Icon + title + meta text with trailing action buttons.',\n styleProperties: [\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 22, min: 16, max: 32, step: 1, unit: 'px' },\n { key: 'metaColor', label: 'Meta Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'metaSize', label: 'Meta Size', control: 'number', defaultValue: 13, min: 11, max: 18, step: 1, unit: 'px' },\n { key: 'iconBg', label: 'Icon Bg', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 40, min: 24, max: 64, step: 4, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 16, min: 6, max: 32, step: 2, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 0, min: 0, max: 40, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 0, min: 0, max: 32, step: 2, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'divider',\n name: 'Divider',\n category: 'Display',\n description: 'Horizontal rule, optionally with a centred label.',\n styleProperties: [\n { key: 'color', label: 'Line Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'thickness', label: 'Thickness', control: 'slider', defaultValue: 1, min: 1, max: 4, step: 1, unit: 'px' },\n { key: 'showLabel', label: 'Show Label', control: 'toggle', defaultValue: false },\n { key: 'labelColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'labelSize', label: 'Label Size', control: 'number', defaultValue: 10, min: 9, max: 14, step: 1, unit: 'px' },\n { key: 'gap', label: 'Label Gap', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'login-page',\n name: 'Login Page',\n category: 'Composite',\n description: 'Sign-in screen with a centered form card on a configurable background — solid, pattern, or image.',\n styleProperties: [\n { key: 'bgColor', label: 'Background Color', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'patternColor', label: 'Pattern Color', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-text) 8%, transparent)', section: 'colors' },\n { key: 'patternSize', label: 'Pattern Size', control: 'number', defaultValue: 18, min: 6, max: 48, step: 2, unit: 'px' },\n { key: 'imageUrl', label: 'Image URL', control: 'text', defaultValue: '' },\n { key: 'imageFit', label: 'Image Fit', control: 'select', defaultValue: 'cover', options: ['cover', 'contain', 'repeat'] },\n { key: 'cardBg', label: 'Card Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'cardBorderColor', label: 'Card Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'cardBorderWidth', label: 'Card Border Width', control: 'number', defaultValue: 1, min: 0, max: 3, step: 1, unit: 'px' },\n { key: 'cardRadius', label: 'Card Radius', control: 'slider', defaultValue: 12, min: 0, max: 32, step: 1, unit: 'px' },\n { key: 'cardShadow', label: 'Card Shadow', control: 'toggle', defaultValue: true },\n { key: 'cardMaxWidth', label: 'Card Max Width', control: 'number', defaultValue: 360, min: 240, max: 560, step: 8, unit: 'px' },\n { key: 'cardPadding', label: 'Card Padding', control: 'number', defaultValue: 32, min: 16, max: 64, step: 4, unit: 'px' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 22, min: 14, max: 36, step: 1, unit: 'px' },\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'subtitleSize', label: 'Subtitle Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'subtitleColor', label: 'Subtitle Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'logoSize', label: 'Logo Size', control: 'number', defaultValue: 36, min: 16, max: 80, step: 2, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'background',\n label: 'Background',\n options: [\n { value: 'solid', label: 'Solid' },\n { value: 'dots', label: 'Dot Grid' },\n { value: 'stripes', label: 'Diagonal Stripes' },\n { value: 'image', label: 'Image' },\n ],\n defaultValue: 'solid',\n },\n ],\n },\n {\n id: 'error-page',\n name: 'Error Page',\n category: 'Composite',\n description: 'Centered error / not-found layout — code, title, message, and action buttons.',\n styleProperties: [\n { key: 'codeSize', label: 'Code Size', control: 'number', defaultValue: 88, min: 48, max: 160, step: 4, unit: 'px' },\n { key: 'codeColor', label: 'Code Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'colors' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 24, min: 16, max: 40, step: 1, unit: 'px' },\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'messageSize', label: 'Message Size', control: 'number', defaultValue: 14, min: 11, max: 20, step: 1, unit: 'px' },\n { key: 'messageColor', label: 'Message Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'iconBg', label: 'Icon Tile Bg', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Tile Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'iconSize', label: 'Icon Tile Size', control: 'number', defaultValue: 56, min: 32, max: 96, step: 4, unit: 'px' },\n { key: 'messageMaxWidth', label: 'Message Max Width', control: 'number', defaultValue: 448, min: 240, max: 720, step: 8, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'variant',\n label: 'Variant',\n options: [\n { value: '404', label: '404 — Not Found' },\n { value: '500', label: '500 — Server Error' },\n { value: 'empty', label: 'Empty / Generic' },\n ],\n defaultValue: '404',\n },\n ],\n },\n {\n id: 'sidebar-nav-item',\n name: 'Sidebar Nav Item',\n category: 'Composite',\n description: 'Icon + label row used in the left navigation. State knobs cover default / hover / focus / active / disabled across the row — the active state is the currently-selected nav item (renders with `aria-current=\"page\"`). Icon tile and sizing are shared across every state.',\n styleProperties: [\n // ── Per-state row colors. Filtered into a single \"States\" section\n // by the State variant. Each state owns both bg and text knobs\n // (the row is opaque enough that bg matters). Focus is the\n // exception — text knob plus the standalone ring.\n { key: 'inactiveBg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-surface) 60%, transparent)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledBg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared sizing (applies to every state)\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 4, max: 16, step: 1, unit: 'px' },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 10, min: 4, max: 20, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 11, max: 18, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n // ── Icon tile (sub-element, shared across every state)\n { key: 'iconBg', label: 'Icon Tile Bg', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'icon' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text)', section: 'icon' },\n { key: 'iconBoxSize', label: 'Icon Tile Size', control: 'number', defaultValue: 24, min: 16, max: 36, step: 2, unit: 'px', section: 'icon' },\n { key: 'iconRadius', label: 'Icon Tile Radius', control: 'slider', defaultValue: 6, min: 0, max: 12, step: 1, unit: 'px', section: 'icon' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 14, min: 10, max: 24, step: 1, unit: 'px', section: 'icon' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n {\n // Persistent badge slot demo — the preview renders a sample marker\n // (a checkmark or a count pill) in the always-visible `badge` slot so\n // its look can be verified next to the hover-reveal trailing slot.\n key: 'badge',\n label: 'Badge',\n options: [\n { value: 'off', label: 'Off' },\n { value: 'check', label: 'Checkmark' },\n { value: 'count', label: 'Count' },\n ],\n defaultValue: 'off',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires when the user clicks the nav item (or activates it via Enter).', payload: 'MouseEvent' },\n ],\n },\n {\n id: 'explorer-list-item',\n name: 'Explorer List Item',\n category: 'Composite',\n description: \"Component-explorer / file-tree row. State knobs cover default / hover / focus / active / disabled — the active state is the selected entry and shows a left rail (an accent bar) instead of a filled tile, distinguishing it from SidebarNavItem's icon-tile style.\",\n styleProperties: [\n // ── Per-state row colors. Filtered into a single \"States\" section\n // by the State variant. Each state owns bg + text where relevant;\n // focus is the exception (text knob + standalone ring).\n { key: 'inactiveBg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-surface) 60%, transparent)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledBg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // Rail — the visual treatment of the active state. Scoped to the\n // active state so the knobs sit next to activeBg / activeText.\n { key: 'railColor', label: 'Rail Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'rail', showWhen: { state: 'active' } },\n { key: 'railWidth', label: 'Rail Width', control: 'number', defaultValue: 2, min: 1, max: 6, step: 1, unit: 'px', section: 'rail', showWhen: { state: 'active' } },\n { key: 'railHeight', label: 'Rail Height', control: 'number', defaultValue: 16, min: 8, max: 24, step: 2, unit: 'px', section: 'rail', showWhen: { state: 'active' } },\n { key: 'railRadius', label: 'Rail Radius', control: 'slider', defaultValue: 999, min: 0, max: 999, step: 1, unit: 'px', section: 'rail', showWhen: { state: 'active' } },\n // Trailing slot — shared across every state (always visible).\n { key: 'trailingColor', label: 'Trailing Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'trailing' },\n { key: 'trailingSize', label: 'Trailing Size', control: 'number', defaultValue: 10, min: 8, max: 14, step: 1, unit: 'px', section: 'trailing' },\n // ── Shared sizing (applies to every state)\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 8, min: 4, max: 16, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 11, max: 16, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'] },\n { key: 'gap', label: '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: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires when the user clicks the row (selection or navigation).', payload: 'MouseEvent' },\n ],\n },\n {\n id: 'sidebar-nav-trigger',\n name: 'Sidebar Nav Trigger',\n category: 'Composite',\n description:\n \"A rail row that OPENS something rather than navigating to it — a workspace switcher, an account menu, an environment picker. A <button> extending ButtonHTMLAttributes, so a Menu's or Listbox's `triggerProps` spread straight onto it, ref and ARIA included. Four optional slots: icon (a bare Icon in a switcher, an Avatar in the account row), caption (the small line beside the value; captionPlacement 'above' | 'below', default above — above LABELS the level this control changes, below QUALIFIES the value), children (the value) and trailing (the chevron — shown as soon as it is passed; no hover-reveal, unlike Sidebar Nav Item's trailing slot. The Trailing picker here decides whether the showcase PASSES the slot at all, exactly like Mark and Caption — it is not a visibility gate in the component). The atom draws NO tile behind the icon: it reserves the slot, sizes it, aligns it, and paints nothing. And it reserves nothing it was not given — no icon and the text starts at the padding edge, no caption and the value centres, no trailing and there is no gap where a chevron would have been. Sibling of Sidebar Nav Item rather than a variant of it: that one renders an <a>, hides trailing until hover, paints an icon tile and has a single-line label. `collapsed` renders it for a 64px rail: a 46px tile, the chevron dropped, and caption + value clipped but kept in the DOM so the accessible name survives. Pair it with a 32px mark. See the collapsed prop below for the reasoning.\",\n styleProperties: [\n // ── Per-state surface. Hover and open paint the SAME thing in both\n // variants, so they share one knob — a second one would only let a\n // designer make them disagree, and they mean the same thing to the eye.\n // Open has no prop: it is read from [aria-expanded=\"true\"], which Menu\n // and Listbox already set through triggerProps.\n { key: 'bg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'states', showWhen: { state: ['hover', 'open'] } },\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n // Dimmed, not recoloured — a disabled `outlined` trigger has to stay the\n // same box. One opacity covers both variants, so there is nothing to keep\n // in sync between them.\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.45, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n\n // ── The outlined variant's resting chrome. The border is deliberately\n // NOT per-state: it holds through hover and open, because a border that\n // moved too would be a second signal for a fact the surface carries.\n { key: 'outlinedBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'outlined', showWhen: { variant: 'outlined' } },\n { key: 'outlinedBorder', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'outlined', showWhen: { variant: 'outlined' } },\n\n // ── The value.\n // Gated on `collapsed: no` — the collapsed row clips its text away, so\n // every type knob below is a slider with no visible effect there. Same\n // reasoning for the caption group, the trailing colour, and padding/gap.\n { key: 'valueColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text)', section: 'value', showWhen: { collapsed: 'no' } },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 11, max: 18, step: 1, unit: 'px', section: 'value', showWhen: { collapsed: 'no' } },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'], section: 'value', showWhen: { collapsed: 'no' } },\n\n // ── The caption. Muted is under the AA text floor on the card surface\n // (2.54:1), which is acceptable here ONLY because a caption names the\n // control rather than carrying content — the value beneath it is the\n // content. Swap to --color-text-strong if that ever stops being true.\n { key: 'captionColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'caption', showWhen: { withCaption: 'yes', collapsed: 'no' } },\n { key: 'captionFontSize', label: 'Font Size', control: 'number', defaultValue: 10, min: 8, max: 14, step: 1, unit: 'px', section: 'caption', showWhen: { withCaption: 'yes', collapsed: 'no' } },\n { key: 'captionFontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'], section: 'caption', showWhen: { withCaption: 'yes', collapsed: 'no' } },\n // Uppercase is the DEFAULT, not the definition — an eyebrow in most rails,\n // but a sentence-case caption under an address is the same slot read\n // differently, and a brand font may not carry caps well. Paired knob: the\n // tracking below exists to open up caps, so turning this off usually means\n // turning that down too.\n { key: 'captionTextTransform', label: 'Text Transform', control: 'select', defaultValue: 'uppercase', options: ['uppercase', 'none', 'capitalize', 'lowercase'], section: 'caption', showWhen: { withCaption: 'yes', collapsed: 'no' } },\n // A number in `em`, not a free-text CSS length: the unit is fixed, so the\n // only thing a text field adds is the chance to type `6px` (catastrophic\n // tracking at a 10px caption) or a bare `0.06`, which is invalid CSS the\n // browser drops in silence. `em` and not `px` so the tracking scales with\n // the caption's own size — and with the brand font, which Brand Settings\n // can change under it.\n { key: 'captionLetterSpacing', label: 'Letter Spacing', control: 'number', defaultValue: 0.06, min: 0, max: 0.2, step: 0.01, unit: 'em', section: 'caption', showWhen: { withCaption: 'yes', collapsed: 'no' } },\n { key: 'captionGap', label: 'Row Gap', control: 'number', defaultValue: 2, min: 0, max: 8, step: 1, unit: 'px', section: 'caption', showWhen: { withCaption: 'yes', collapsed: 'no' } },\n\n // ── The mark. `iconSize` is a MIN box, not a fixed one: it reserves and\n // aligns without squeezing a child that brings its own size (an Avatar).\n // Gated to the Icon mark alone. Being a FLOOR, it does nothing while it\n // sits below the mark's own size — measured, a 32px `Avatar size='small'`\n // in a 28px slot yields a 32px slot, and Avatar's 40px default is further\n // out still. Exposed for Avatar it was a knob a designer drags through its\n // whole default range for no visible effect, waking up only past 32. The\n // lever that actually sizes an avatar is Avatar's own `size` preset; two\n // knobs competing to answer \"how big is the mark\" is worse than one.\n { key: 'iconSize', label: 'Slot Size', control: 'number', defaultValue: 28, min: 16, max: 44, step: 2, unit: 'px', section: 'icon', showWhen: { mark: 'icon' } },\n // Only the Icon mark inherits this colour — an Avatar paints itself.\n { key: 'iconColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'icon', showWhen: { mark: 'icon' } },\n\n { key: 'trailingColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'trailing', showWhen: { withTrailing: 'yes', collapsed: 'no' } },\n\n // ── Shared sizing. Padding and gap are the two that STOP applying when\n // collapsed (the tile sets `padding: 0` and has one in-flow child left),\n // so they are gated; radius still paints the 32x32 box and stays.\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 1, unit: 'px', showWhen: { collapsed: 'no' } },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 8, min: 4, max: 16, step: 1, unit: 'px', showWhen: { collapsed: 'no' } },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 10, min: 2, max: 20, step: 1, unit: 'px', showWhen: { collapsed: 'no' } },\n { key: 'borderRadius', label: 'Radius', control: 'slider', defaultValue: 8, min: 0, max: 20, step: 1, unit: 'px' },\n // The collapsed tile's own footprint — a MINIMUM, so a mark larger than it\n // (an `Avatar`) grows the row rather than being clipped. 46px deliberately\n // differs from the 32px `app-sidebar` gives its collapsed nav items: a\n // trigger has lost its chevron and its text at rail width, so footprint is\n // the only thing left saying it opens something rather than navigating.\n // It is also a composition choice: the tile is a surface AROUND the mark,\n // so a 32px mark (`Avatar size=\"small\"`) sits with ~7px on every side,\n // mirroring `sidebar-nav-item`'s 32px tile around a smaller icon.\n { key: 'collapsedSize', label: 'Tile Size', control: 'number', defaultValue: 46, min: 24, max: 64, step: 2, unit: 'px', showWhen: { collapsed: 'yes' } },\n ],\n layoutVariants: [\n {\n key: 'variant',\n label: 'Variant',\n options: [\n { value: 'outlined', label: 'Outlined' },\n { value: 'plain', label: 'Plain' },\n ],\n defaultValue: 'outlined',\n },\n {\n // `open` and `disabled` are not classes the showcase fakes — it applies\n // the real `aria-expanded=\"true\"` and the real `disabled` attribute,\n // which ARE the atom's selectors for those states, so the picker\n // exercises the production mechanism. Only `hover` / `focus` need the\n // kit's `--state-*` forced classes (a pointer and the tab ring cannot be\n // parked on demand); those share a declaration block with the real\n // pseudo-selectors and so cannot drift from them.\n key: 'state',\n label: 'State',\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 defaultValue: 'default',\n },\n {\n // The mark slot takes either kind of child, and `Avatar` is the case\n // worth being able to see: it proves the slot paints no tile and does\n // not squeeze a child that brings its own size. `None` is here for the\n // same reason as the other two slot pickers — to show what the atom\n // does NOT reserve: turn a slot off and the row closes up rather than\n // leaving a hole. The showcase's caption and value follow this pick,\n // since an avatar beside a workspace name would misrepresent the atom.\n key: 'mark',\n label: 'Mark',\n options: [\n { value: 'icon', label: 'Icon' },\n { value: 'avatar', label: 'Avatar' },\n { value: 'none', label: 'None' },\n ],\n defaultValue: 'icon',\n },\n {\n // The 64px rail. Its own picker rather than a value on `state`, because\n // it is orthogonal to every state — a collapsed row still hovers, opens\n // and disables, and folding the two would make five of those\n // combinations unreachable.\n key: 'collapsed',\n label: 'Rail',\n options: [\n { value: 'no', label: 'Expanded' },\n { value: 'yes', label: 'Collapsed' },\n ],\n defaultValue: 'no',\n },\n {\n key: 'withCaption',\n label: 'Caption',\n options: [\n { value: 'yes', label: 'On' },\n { value: 'no', label: 'Off' },\n ],\n defaultValue: 'yes',\n // Collapsed clips the caption and drops the chevron, so both slot\n // toggles (and the placement picker) would be no-ops there — they\n // disappear rather than sit dead, per the list-item precedent.\n showWhen: { collapsed: 'no' },\n },\n {\n // Above the value the caption LABELS the level (\"Workspace\"); below it,\n // it QUALIFIES the value (\"Tenant owner\" under an address). Swapped in\n // the markup, not with `column-reverse` — reversing visually while the\n // DOM stays put would split reading order from visual order (WCAG\n // 1.3.2) and keep announcing the pair the wrong way round.\n key: 'captionPlacement',\n label: 'Caption Position',\n options: [\n { value: 'above', label: 'Above' },\n { value: 'below', label: 'Below' },\n ],\n defaultValue: 'above',\n showWhen: { withCaption: 'yes', collapsed: 'no' },\n },\n {\n key: 'withTrailing',\n label: 'Trailing',\n options: [\n { value: 'yes', label: 'On' },\n { value: 'no', label: 'Off' },\n ],\n defaultValue: 'yes',\n showWhen: { collapsed: 'no' },\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires when the row is activated. Wired for you when the trigger is spread with a Menu/Listbox `triggerProps` — do not add your own on top, it would override theirs.', payload: 'MouseEvent' },\n ],\n api: {\n importPath: '@viax/uxm/ui',\n importNames: 'SidebarNavTrigger',\n props: [\n { name: 'icon', type: 'ReactNode', description: 'The mark on the left — a bare Icon in a switcher, an Avatar in an account row. No tile is drawn behind it: the slot is reserved, sized and aligned, and paints nothing.' },\n { name: 'caption', type: 'ReactNode', description: 'The small line beside the value. It sits inside the button, so it joins the accessible name — pass an explicit aria-label if a pairing reads badly.' },\n { name: 'captionPlacement', type: '\"above\" | \"below\"', defaultValue: '\"above\"', description: 'Which side of the value the caption sits on. Above it LABELS the level this control changes (a switcher\\'s \"Workspace\"); below it QUALIFIES the value (an account row\\'s \"Tenant owner\" under the address). Swapped in the markup rather than with flex-direction: column-reverse, so reading order keeps matching visual order (WCAG 1.3.2) and the accessible name follows the row.' },\n { name: 'children', type: 'ReactNode', description: 'The value — the workspace name, the signed-in address.' },\n { name: 'trailing', type: 'ReactNode', description: 'The chevron. Visible at rest, with no reveal-on-hover behaviour: a control that opens something has to advertise it before you point at it.' },\n { name: 'variant', type: '\"plain\" | \"outlined\"', defaultValue: '\"plain\"', description: 'plain — nothing at rest, for the account row at the foot of the rail. outlined — a hairline plus the card surface, for the switcher, which stands in a box because it names the level everything below it belongs to.' },\n { name: 'collapsed', type: 'boolean', defaultValue: 'false', description: 'Render for a 64px rail: a 46px tile (--uxm-sidebar-nav-trigger-collapsed-size, a MINIMUM rather than a clamp — a mark larger than it grows the row instead of being clipped), the trailing chevron dropped, and caption + value kept in the DOM but visually hidden — so the button announces identically collapsed and expanded rather than becoming a nameless icon. 46 deliberately differs from the 32px AppSidebar gives its collapsed nav items: a trigger has lost both chevron and text at this width, so footprint is the only signal left that it opens something. The tile is a surface AROUND the mark rather than a frame hugging it — pair it with Avatar size=\"small\" (32px) for ~7px on every side. outlined keeps its border at this size, since the box is then the only thing distinguishing a switcher from a plain account row. Pass title as well: with the chevron gone, only position and the mark still say the row opens something.' },\n ],\n },\n },\n {\n id: 'explorer-section',\n name: 'Explorer Section',\n category: 'Composite',\n description: 'Disclosure-style section header for grouping rows in a navigation list. Chevron rotates with the open state; indicator slot is for category color dots etc. State knobs cover default / hover / focus / disabled. `active` is intentionally omitted — section headers have no selection concept; toggling drives the orthogonal `open` variant.',\n styleProperties: [\n // ── Per-state row colors. Filtered into the \"States\" section by\n // the State variant. The header is always a button, so all state\n // rules fire on the root selector. Disabled is a visual treatment\n // (dimmed, muted), not strictly an interaction state.\n { key: 'inactiveBg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'default' } },\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-surface) 40%, transparent)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'disabledBg', label: 'Background', control: 'color', defaultValue: 'transparent', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared sizing (applies to every state)\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 12, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 8, min: 0, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['500', '600', '700'] },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 8, min: 2, max: 16, step: 1, unit: 'px' },\n // ── Chevron sub-element (shared across every state)\n { key: 'chevronColor', label: 'Chevron Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'chevron' },\n { key: 'chevronSize', label: 'Chevron Size', control: 'number', defaultValue: 12, min: 8, max: 18, step: 1, unit: 'px', section: 'chevron' },\n // ── Trailing sub-element (shared)\n { key: 'trailingColor', label: 'Trailing Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'trailing' },\n { key: 'trailingSize', label: 'Trailing Size', control: 'number', defaultValue: 10, min: 8, max: 14, step: 1, unit: 'px', section: 'trailing' },\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover' },\n { value: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n {\n // `open` is orthogonal to interaction state — drives the\n // chevron rotation and `aria-expanded` on the atom.\n key: 'open',\n label: 'Open',\n options: [\n { value: 'true', label: 'Expanded' },\n { value: 'false', label: 'Collapsed' },\n ],\n defaultValue: 'true',\n },\n ],\n events: [\n { name: 'onToggle', description: 'Fires when the user clicks the section header to expand or collapse children.', payload: '{ open: boolean }' },\n ],\n },\n {\n id: 'inline-action',\n name: 'Inline Action',\n category: 'Buttons',\n description: 'Tertiary text-with-optional-icon button for dense UI — \"Reset section,\" \"Match in N other,\" \"Edit.\" Muted by default; transitions to accent on hover. Smaller and less prominent than ButtonGhost; used inline in section headers and field rows.',\n styleProperties: [\n // Text-only button: only icon color (well, text color) changes per state.\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent)', 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-accent-bold)', 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-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 10, min: 9, max: 14, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 4, min: 2, max: 8, step: 1, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 10, min: 8, 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.', payload: 'MouseEvent<HTMLButtonElement>' },\n ],\n },\n {\n id: 'section-header',\n name: 'Section Header',\n category: 'Display',\n description: 'Small uppercase label for grouping fields in dense settings panels — the \"VARIANT\" / \"COLORS\" / \"STYLE\" labels above grouped form rows. Distinct from PageHeader (page-level) and DetailSection (bordered card).',\n styleProperties: [\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'colors' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px' },\n { key: 'titleWeight', label: 'Title Weight', control: 'select', defaultValue: '600', options: ['500', '600', '700'] },\n { key: 'subtitleColor', label: 'Subtitle Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'subtitleSize', label: 'Subtitle Size', control: 'number', defaultValue: 10, min: 9, max: 14, step: 1, unit: 'px' },\n { key: 'gap', label: 'Title-Subtitle Gap', control: 'number', defaultValue: 2, min: 0, max: 12, step: 1, unit: 'px' },\n { key: 'marginBottom', label: 'Margin Bottom', control: 'number', defaultValue: 12, min: 0, max: 32, step: 2, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'detail-section',\n name: 'Detail Section',\n category: 'Display',\n description: 'Card-like section with icon header, title/subtitle, and an accent rail.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 4, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 20, min: 8, max: 40, step: 2, unit: 'px' },\n { key: 'iconBg', label: 'Icon Bg', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 15, min: 12, max: 22, step: 1, unit: 'px' },\n { key: 'subtitleColor', label: 'Subtitle Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'accentWidth', label: 'Accent Rail Width', control: 'slider', defaultValue: 3, min: 0, max: 8, step: 1, unit: 'px' },\n { key: 'accentColor', label: 'Accent Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n ],\n layoutVariants: [],\n },\n {\n id: 'breadcrumb',\n name: 'Breadcrumb',\n category: 'Composite',\n description: 'Path navigation — clickable link crumbs leading to the current page, with configurable separators (chevron / slash / dot / dash). State knobs cover default / hover / focus / active / disabled. The `active` state is the current page styling — the trailing non-clickable crumb that marks where the user is. Clicking a link crumb truncates the path so that crumb becomes the new active.',\n styleProperties: [\n // ── Per-state link crumb colors. Filtered into a single \"States\"\n // section by the State variant. Links are transparent in every state\n // (the breadcrumb itself has no background) — just text colors plus\n // the standalone focus ring, disabled opacity, and the active-state\n // font weight (the current page is traditionally bolder).\n { key: 'inactiveText', label: 'Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverText', label: 'Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'activeText', label: 'Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'active' } },\n { key: 'activeFontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['400', '500', '600', '700'], section: 'states', showWhen: { state: 'active' } },\n { key: 'disabledText', label: 'Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Separator (between crumbs)\n { key: 'separatorColor', label: 'Separator Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'separator' },\n { key: 'separatorSize', label: 'Separator Size', control: 'number', defaultValue: 13, min: 8, max: 20, step: 1, unit: 'px', section: 'separator' },\n // ── Shared sizing + underline (applies across every state)\n { key: 'linkWeight', label: 'Link Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 6, min: 2, max: 16, step: 1, unit: 'px' },\n { key: 'underlineOffset', label: 'Underline Offset', control: 'number', defaultValue: 3, min: 1, max: 8, step: 1, unit: 'px' },\n { key: 'underlineThickness', label: 'Underline Thickness', control: 'number', defaultValue: 1, min: 1, max: 3, 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: 'focus', label: 'Focus' },\n { value: 'active', label: 'Active' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n {\n key: 'separator',\n label: 'Separator',\n options: [\n { value: 'chevron', label: 'Chevron' },\n { value: 'slash', label: 'Slash' },\n { value: 'dot', label: 'Dot' },\n { value: 'dash', label: 'Dash' },\n ],\n defaultValue: 'chevron',\n },\n ],\n },\n {\n id: 'link',\n name: 'Link',\n category: 'Display',\n description: \"Generic inline text link — three underline modes plus an optional external indicator. State knobs cover default / hover / focus / disabled on the anchor. `:active` is intentionally omitted — for a plain anchor it's the transient mouse-down pseudo and overlaps with hover semantically.\",\n styleProperties: [\n // ── Per-state colors. Filtered into a single \"States\" section by\n // the State variant. Link is transparent in every state — no bg\n // knobs, just text colors plus the standalone focus ring and\n // disabled opacity.\n { key: 'inactiveText', label: 'Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverText', label: 'Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'focusText', label: 'Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'focus' } },\n { key: 'disabledText', label: 'Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Shared typography + underline knobs (apply across every state)\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 10, max: 20, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'] },\n { key: 'underlineOffset', label: 'Underline Offset', control: 'number', defaultValue: 3, min: 1, max: 8, step: 1, unit: 'px' },\n { key: 'underlineThickness', label: 'Underline Thickness', control: 'number', defaultValue: 1, min: 1, max: 3, step: 1, unit: 'px' },\n { key: 'externalIconSize', label: 'External Icon Size', control: 'number', defaultValue: 12, min: 8, max: 18, step: 1, unit: 'px' },\n { key: 'externalIconGap', label: 'External Icon Gap', control: 'number', defaultValue: 4, min: 0, max: 12, 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: 'focus', label: 'Focus' },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n {\n key: 'underline',\n label: 'Underline',\n options: [\n { value: 'none', label: 'None' },\n { value: 'hover', label: 'On Hover' },\n { value: 'always', label: 'Always' },\n ],\n defaultValue: 'hover',\n },\n {\n key: 'external',\n label: 'External',\n options: [\n { value: 'false', label: 'Internal' },\n { value: 'true', label: 'External' },\n ],\n defaultValue: 'false',\n },\n ],\n events: [\n { name: 'onClick', description: \"Fires on click. The consumer's router or `href` handles the navigation.\", payload: 'MouseEvent<HTMLAnchorElement>' },\n ],\n },\n {\n id: 'back-link',\n name: 'Back Link',\n category: 'Display',\n description: 'Inline text link with leading arrow for breadcrumb navigation.',\n styleProperties: [\n // Text-only navigation link — text color changes per state.\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover' } },\n { key: 'activeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', 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)', 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-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Shared style\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'] },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 6, 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 click. The consumer's router or `href` handles the navigation.\", payload: 'MouseEvent<HTMLAnchorElement>' },\n ],\n },\n {\n id: 'badge',\n name: 'Badge',\n category: 'Display',\n description: 'Notification indicator. Dot mode shows a colored circle with an optional label; count mode shows a small pill with a number that clamps to 99+.',\n styleProperties: [\n // Per-tone colors. `bg` paints the badge; `text` only matters in count\n // mode (dot has no children). Gated by the `tone` variant so the\n // properties panel only shows the active tone's knobs.\n // Count mode reuses Tag's tonal vocabulary (soft `${type}-bg` paired\n // with bold `${type}-text`) so adjacent Badge counts and Tags read\n // as the same status family. Dot mode uses a single solid hue knob\n // (`${type}DotColor`) so the indicator stays a strong color blob —\n // splitting per-mode lets each default to the right token without\n // forcing one shared bg compromise.\n { key: 'accentBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'colors', showWhen: { type: 'accent', mode: 'count' } },\n { key: 'accentText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors', showWhen: { type: 'accent', mode: 'count' } },\n { key: 'accentDotColor', label: 'Dot Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors', showWhen: { type: 'accent', mode: 'dot' } },\n { key: 'successBg', label: 'Background', control: 'color', defaultValue: 'var(--color-success-bg)', section: 'colors', showWhen: { type: 'success', mode: 'count' } },\n { key: 'successText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-success-text)', section: 'colors', showWhen: { type: 'success', mode: 'count' } },\n { key: 'successDotColor', label: 'Dot Color', control: 'color', defaultValue: 'var(--color-success-text)', section: 'colors', showWhen: { type: 'success', mode: 'dot' } },\n { key: 'warningBg', label: 'Background', control: 'color', defaultValue: 'var(--color-warning-bg)', section: 'colors', showWhen: { type: 'warning', mode: 'count' } },\n { key: 'warningText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-warning-text)', section: 'colors', showWhen: { type: 'warning', mode: 'count' } },\n { key: 'warningDotColor', label: 'Dot Color', control: 'color', defaultValue: 'var(--color-warning-text)', section: 'colors', showWhen: { type: 'warning', mode: 'dot' } },\n { key: 'dangerBg', label: 'Background', control: 'color', defaultValue: 'var(--color-danger-bg)', section: 'colors', showWhen: { type: 'danger', mode: 'count' } },\n { key: 'dangerText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'colors', showWhen: { type: 'danger', mode: 'count' } },\n { key: 'dangerDotColor', label: 'Dot Color', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'colors', showWhen: { type: 'danger', mode: 'dot' } },\n { key: 'infoBg', label: 'Background', control: 'color', defaultValue: 'var(--color-info-bg)', section: 'colors', showWhen: { type: 'info', mode: 'count' } },\n { key: 'infoText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-info-text)', section: 'colors', showWhen: { type: 'info', mode: 'count' } },\n { key: 'infoDotColor', label: 'Dot Color', control: 'color', defaultValue: 'var(--color-info-text)', section: 'colors', showWhen: { type: 'info', mode: 'dot' } },\n { key: 'neutralBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors', showWhen: { type: 'neutral', mode: 'count' } },\n { key: 'neutralText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'colors', showWhen: { type: 'neutral', mode: 'count' } },\n { key: 'neutralDotColor', label: 'Dot Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors', showWhen: { type: 'neutral', mode: 'dot' } },\n // Dot mode — circle (always 50% radius) plus optional label knobs.\n // The dot is the `__dot` inner span; tone paints it. When children\n // are provided, the root becomes a flex row containing dot + label.\n { key: 'dotSize', label: 'Dot Size', control: 'number', defaultValue: 8, min: 4, max: 16, step: 1, unit: 'px', showWhen: { mode: 'dot' } },\n { key: 'labelFontSize', label: 'Label Font Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px', showWhen: { mode: 'dot' } },\n { key: 'labelFontWeight', label: 'Label Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'], showWhen: { mode: 'dot' } },\n { key: 'labelColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors', showWhen: { mode: 'dot' } },\n { key: 'labelGap', label: 'Label Gap', control: 'number', defaultValue: 8, min: 2, max: 16, step: 1, unit: 'px', showWhen: { mode: 'dot' } },\n // Count mode — pill with min-width so single digits stay round.\n { key: 'countPaddingX', label: 'Padding X', control: 'number', defaultValue: 6, min: 2, max: 16, step: 1, unit: 'px', showWhen: { mode: 'count' } },\n { key: 'countPaddingY', label: 'Padding Y', control: 'number', defaultValue: 1, min: 0, max: 8, step: 1, unit: 'px', showWhen: { mode: 'count' } },\n { key: 'countMinWidth', label: 'Min Width', control: 'number', defaultValue: 18, min: 12, max: 36, step: 1, unit: 'px', showWhen: { mode: 'count' } },\n { key: 'countFontSize', label: 'Font Size', control: 'number', defaultValue: 11, min: 9, max: 16, step: 1, unit: 'px', showWhen: { mode: 'count' } },\n { key: 'countFontWeight', label: 'Font Weight', control: 'select', defaultValue: '600', options: ['400', '500', '600', '700'], showWhen: { mode: 'count' } },\n { key: 'countBorderRadius', label: 'Border Radius', control: 'number', defaultValue: 999, min: 0, max: 999, step: 1, unit: 'px', showWhen: { mode: 'count' } },\n ],\n layoutVariants: [\n {\n key: 'mode',\n label: 'Mode',\n options: [\n { value: 'dot', label: 'Dot' },\n { value: 'count', label: 'Count' },\n ],\n defaultValue: 'count',\n },\n {\n key: 'type',\n label: 'Type',\n options: [\n { value: 'accent', label: 'Accent' },\n { value: 'success', label: 'Success' },\n { value: 'warning', label: 'Warning' },\n { value: 'danger', label: 'Danger' },\n { value: 'info', label: 'Info' },\n { value: 'neutral', label: 'Neutral' },\n ],\n defaultValue: 'danger',\n },\n ],\n },\n {\n id: 'thumbnail',\n name: 'Thumbnail',\n category: 'Display',\n description: 'Bounded image frame for product photos, file previews, and entity logos. Falls back to a placeholder icon when no image is provided.',\n styleProperties: [\n { key: 'size', label: 'Size', control: 'number', defaultValue: 48, min: 24, max: 120, step: 4, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 12, min: 0, max: 60, step: 1, unit: 'px', section: 'colors' },\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 2, min: 0, max: 4, step: 1, unit: 'px' },\n { key: 'placeholderColor', label: 'Placeholder Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'colors' },\n ],\n layoutVariants: [\n {\n key: 'fit',\n label: 'Fit',\n options: [\n { value: 'cover', label: 'Cover' },\n { value: 'contain', label: 'Contain' },\n ],\n defaultValue: 'cover',\n },\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'image', label: 'With Image' },\n { value: 'placeholder', label: 'Placeholder' },\n ],\n defaultValue: 'image',\n },\n ],\n },\n {\n id: 'calendar',\n name: 'Calendar',\n category: 'Display',\n description: \"Month-view calendar. Selects today on mount; click a day to move the selection. Today's outline stays put regardless of selection. Light-touch atom — selection state internal (overridable), no library binding.\",\n styleProperties: [\n // ── Frame: the outer container's surface, border, corners, padding.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'frame' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'frame' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 12, min: 0, max: 24, step: 1, unit: 'px', section: 'frame' },\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 16, min: 4, max: 32, step: 2, unit: 'px', section: 'frame' },\n // Elevation — on by default (the floating-surface look), tunable rather\n // than a bare on/off: the box-shadow is built from these three vars.\n // (Code can still drop it entirely with the `shadow={false}` prop.)\n { key: 'shadowColor', label: 'Color', control: 'color', defaultValue: 'rgba(0, 0, 0, 0.12)', section: 'shadow' },\n { key: 'shadowBlur', label: 'Blur', control: 'slider', defaultValue: 20, min: 0, max: 48, step: 1, unit: 'px', section: 'shadow' },\n { key: 'shadowOffsetY', label: 'Offset Y', control: 'slider', defaultValue: 6, min: 0, max: 24, step: 1, unit: 'px', section: 'shadow' },\n\n // ── Header: month / year label + prev/next nav buttons.\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text)', section: 'header' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 14, min: 12, max: 20, step: 1, unit: 'px', section: 'header' },\n { key: 'navColor', label: 'Nav Button Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'header' },\n\n // ── Weekday row: the \"Sun Mon Tue...\" labels above the day grid.\n { key: 'weekdayColor', label: 'Weekday Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'weekday' },\n { key: 'weekdaySize', label: 'Weekday Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px', section: 'weekday' },\n\n // ── Shared States: state colors that apply across day, month, and\n // year cells. Tuning these once changes all three cell types in the\n // matching state. Section appears only for the four states whose\n // knobs live here (default / today / selected / hover). Listed before\n // per-cell-type sections so designers tune cross-cutting concerns first.\n { key: 'defaultColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'shared-states', showWhen: { cellState: 'default' } },\n { key: 'todayBorderColor', label: 'Outline Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'shared-states', showWhen: { cellState: 'today' } },\n { key: 'todayColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'shared-states', showWhen: { cellState: 'today' } },\n { key: 'selectedBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'shared-states', showWhen: { cellState: 'selected' } },\n { key: 'selectedColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'shared-states', showWhen: { cellState: 'selected' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-text) 6%, transparent)', section: 'shared-states', showWhen: { cellState: 'hover' } },\n\n // ── Date Cell: dimensions + day-only state colors. In-range / range\n // edges / outside-month / disabled only exist on day cells, so their\n // color knobs live here gated by `cellState`. (Today, selected, hover,\n // and default text color are shared across all cell types — those\n // live in \"Shared States\" above.)\n { key: 'cellSize', label: 'Cell Size', control: 'number', defaultValue: 36, min: 28, max: 48, step: 2, unit: 'px', section: 'day-cell' },\n { key: 'cellFontSize', label: 'Cell Font Size', control: 'number', defaultValue: 13, min: 11, max: 18, step: 1, unit: 'px', section: 'day-cell' },\n { key: 'cellRadius', label: 'Cell Radius', control: 'slider', defaultValue: 8, min: 0, max: 24, step: 1, unit: 'px', section: 'day-cell' },\n { key: 'inRangeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'day-cell', showWhen: { cellState: 'in-range' } },\n { key: 'inRangeColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'day-cell', showWhen: { cellState: 'in-range' } },\n { key: 'rangeStartBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'day-cell', showWhen: { cellState: 'range-start' } },\n { key: 'rangeStartColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'day-cell', showWhen: { cellState: 'range-start' } },\n { key: 'rangeEndBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'day-cell', showWhen: { cellState: 'range-end' } },\n { key: 'rangeEndColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'day-cell', showWhen: { cellState: 'range-end' } },\n { key: 'outsideColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'day-cell', showWhen: { cellState: 'outside' } },\n { key: 'disabledColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'day-cell', showWhen: { cellState: 'disabled' } },\n\n // ── Month & Year Cells: drill-up navigation surfaces. One Cell Size\n // knob drives both dimensions (square cells, same pattern as Date Cell)\n // and is shared between month and year cells — they live in the same\n // 4-col grid with the same visual role, so one set of knobs is enough.\n // Knob keeps the `monthCell` prefix; CSS for both `.uxm-calendar__month`\n // and `.uxm-calendar__year` reads it.\n { key: 'monthCellSize', label: 'Cell Size', control: 'number', defaultValue: 64, min: 40, max: 120, step: 4, unit: 'px', section: 'month-year-cells' },\n { key: 'monthCellFontSize', label: 'Cell Font Size', control: 'number', defaultValue: 13, min: 11, max: 18, step: 1, unit: 'px', section: 'month-year-cells' },\n\n // ── Today button: the footer action that jumps the view back to the\n // current month. Its own knobs (not the today-CELL ones above).\n { key: 'todayButtonColor', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'todayButton' },\n { key: 'todayButtonHoverBg', label: 'Hover Background', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-accent) 12%, transparent)', section: 'todayButton' },\n { key: 'todayButtonSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 11, max: 18, step: 1, unit: 'px', section: 'todayButton' },\n ],\n layoutVariants: [\n {\n key: 'cellState',\n label: 'Cell State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'today', label: 'Today' },\n { value: 'selected', label: 'Selected' },\n { value: 'in-range', label: 'In Range' },\n { value: 'range-start', label: 'Range Start' },\n { value: 'range-end', label: 'Range End' },\n { value: 'outside', label: 'Outside Month' },\n { value: 'disabled', label: 'Disabled' },\n { value: 'hover', label: 'Hover' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onChange', description: 'Fires when the user picks a date cell.', payload: '{ value: Date }' },\n { name: 'onMonthChange', description: 'Fires when the user navigates to a different month via the prev/next chevrons or by tapping the header.', payload: '{ year: number, month: number }' },\n ],\n },\n {\n id: 'icon-tile',\n name: 'Icon Tile',\n category: 'Display',\n description: 'Small rounded square wrapping an icon with a colored background — the accent chip in front of row cards / list items / type entries.',\n styleProperties: [\n { key: 'size', label: 'Tile Size', control: 'number', defaultValue: 28, min: 16, max: 56, step: 2, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'iconBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 14, min: 10, max: 28, step: 1, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'meta-row',\n name: 'Meta Row',\n category: 'Display',\n description: 'Dot-separated metadata strip — \"v1.2 · 3 days ago · Sarah\" — used in card footers and list rows.',\n styleProperties: [\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 10, max: 16, step: 1, unit: 'px' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'gap', label: 'Item Gap', control: 'number', defaultValue: 12, min: 4, max: 24, step: 1, unit: 'px' },\n { key: 'dotSize', label: 'Dot Size', control: 'number', defaultValue: 4, min: 2, max: 10, step: 1, unit: 'px' },\n { key: 'dotColor', label: 'Dot Color', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-text) 20%, transparent)', section: 'colors' },\n ],\n layoutVariants: [],\n },\n {\n id: 'form-field',\n name: 'Form Field',\n category: 'Forms',\n description: 'Sole owner of label theming for the form family. Pairs a label with any UXM input (TextInput, Select, ToggleSwitch, etc.); optional hint line below. `labelPosition` flips between top (column stack) and side (grid layout).',\n styleProperties: [\n // Per-tint label colours — the Label Tint VARIANT (below) picks which\n // tint a field uses; these knobs define what each tint looks like.\n // One knob per tint, gated to the active tint so the panel reads\n // \"Per Label Tint · <value>\". Tints apply to both label variants\n // (default + overline) — the variant owns typography, the tint colour.\n { key: 'tintStrongColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'colors', showWhen: { labelTint: 'strong' } },\n { key: 'tintDefaultColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors', showWhen: { labelTint: 'default' } },\n { key: 'tintMutedColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors', showWhen: { labelTint: 'muted' } },\n // Typography — per label variant. The overline variant owns only its\n // size here (weight/letter-spacing stay token-level).\n { key: 'labelSize', label: 'Label Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px', showWhen: { labelVariant: 'default' } },\n { key: 'labelWeight', label: 'Label Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600'], showWhen: { labelVariant: 'default' } },\n { key: 'overlineSize', label: 'Label Size', control: 'number', defaultValue: 11, min: 9, max: 16, step: 1, unit: 'px', showWhen: { labelVariant: 'overline' } },\n // Hint — its own section, shared across every variant/tint (no showWhen\n // anywhere in it, so the panel labels it \"Shared\").\n { key: 'hintColor', label: 'Hint Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'hint' },\n { key: 'hintSize', label: 'Hint Size', control: 'number', defaultValue: 12, min: 10, max: 16, step: 1, unit: 'px', section: 'hint' },\n // Label Gap — top-layout-specific. Lives in its own `topLayout`\n // section parallel to `sideLayout`, so the default STYLE section\n // contains only truly-shared knobs (labelSize, weight, hintSize,\n // hintGap) instead of getting polluted with a per-position knob.\n // Top and side layouts use the gap for visually different\n // distances (vertical vs horizontal), so each owns its own value.\n { key: 'gap', label: 'Label Gap', control: 'number', defaultValue: 8, min: 2, max: 32, step: 1, unit: 'px', section: 'topLayout', showWhen: { labelPosition: 'top' } },\n { key: 'hintGap', label: 'Hint Gap', control: 'number', defaultValue: 2, min: 0, max: 12, step: 1, unit: 'px', section: 'hint' },\n // Side-layout only: width of the label column. Gated on\n // labelPosition=side because it has no effect in top layout.\n { key: 'sideLabelWidth', label: 'Side Label Width', control: 'number', defaultValue: 120, min: 60, max: 240, step: 4, unit: 'px', section: 'sideLayout', showWhen: { labelPosition: 'side' } },\n // Side-layout only: horizontal gap between the label column and\n // the input column. Separate from the top-layout `gap` knob since\n // horizontal label-input distance is visually different from\n // vertical (and brands often want different values for each).\n { key: 'sideGap', label: 'Label Gap', control: 'number', defaultValue: 16, min: 2, max: 48, step: 1, unit: 'px', section: 'sideLayout', showWhen: { labelPosition: 'side' } },\n // Side-layout only: alignment of the label text within the label\n // column. Default \"start\" (left in LTR) puts label text at the\n // column's left edge — reads naturally with the eye flowing\n // left-to-right into the input. \"end\" (right) is the alternative\n // for projects that prefer labels flush against the input.\n { key: 'sideLabelAlign', label: 'Side Label Align', control: 'select', defaultValue: 'start', options: ['start', 'end'], section: 'sideLayout', showWhen: { labelPosition: 'side' } },\n // Vertical alignment of the label within its grid cell. Default \"center\"\n // matches the grid's `align-items: center`; \"start\" top-aligns the label\n // next to a tall control (radio group / checkbox list).\n { key: 'sideLabelValign', label: 'Side Label V-Align', control: 'select', defaultValue: 'center', options: ['center', 'start', 'end'], section: 'sideLayout', showWhen: { labelPosition: 'side' } },\n ],\n layoutVariants: [\n // Local labelPosition variant (top / side). Floating is intentionally\n // omitted — it requires absolute positioning + state-driven CSS\n // (:has(:not(:placeholder-shown))) that doesn't work with non-input\n // children like Select or PillSelect. Top + side cover the layout\n // shapes that work uniformly with every input atom.\n {\n key: 'labelPosition',\n label: 'Label Position',\n options: [\n { value: 'top', label: 'Top' },\n { value: 'side', label: 'Side' },\n ],\n defaultValue: 'top',\n },\n // Label typography variant. `overline` is the caps \"eyebrow\" style —\n // typography only; colour comes from the Label Tint below.\n {\n key: 'labelVariant',\n label: 'Label Variant',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'overline', label: 'Overline' },\n ],\n defaultValue: 'default',\n },\n // Label Tint — which semantic colour preset the field uses. Applies to\n // both label variants; each tint's colour is a knob gated to the active\n // tint (\"Per Label Tint · <value>\").\n {\n key: 'labelTint',\n label: 'Label Tint',\n options: [\n { value: 'strong', label: 'Strong' },\n { value: 'default', label: 'Default' },\n { value: 'muted', label: 'Muted' },\n ],\n defaultValue: 'strong',\n },\n ],\n },\n {\n id: 'property-field',\n name: 'Property Field',\n category: 'Display',\n description: 'Single label + monospace value pair used for metadata readouts. The grid layout that arranges multiple PropertyFields is a separate atom (`property-grid`).',\n styleProperties: [\n { key: 'labelColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'labelSize', label: 'Label Size', control: 'number', defaultValue: 10, min: 9, max: 14, step: 1, unit: 'px' },\n { key: 'valueColor', label: 'Value Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'valueSize', label: 'Value Size', control: 'number', defaultValue: 13, min: 11, max: 18, step: 1, unit: 'px' },\n { key: 'gap', label: 'Label/Value Gap', control: 'number', defaultValue: 4, min: 2, max: 12, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n // Label case + value font as guided presets. The preview maps each to the\n // `--uxm-property-field-label-transform` / `-label-tracking` / `-value-font`\n // vars: uppercase carries 0.06em tracking (the \"eyebrow\" look), sentence\n // drops both to none/normal; monospace is the data look, proportional is\n // the body typeface (for prose grids). Defaults reproduce today.\n {\n key: 'labelCase',\n label: 'Label Case',\n options: [\n { value: 'uppercase', label: 'Uppercase' },\n { value: 'sentence', label: 'Sentence' },\n ],\n defaultValue: 'uppercase',\n },\n {\n key: 'valueFont',\n label: 'Value Font',\n options: [\n { value: 'monospace', label: 'Monospace' },\n { value: 'proportional', label: 'Proportional' },\n ],\n defaultValue: 'monospace',\n },\n ],\n },\n {\n id: 'property-grid',\n name: 'Property Grid',\n category: 'Display',\n description: \"Auto-fill grid wrapper that lays out PropertyField pairs. Layout-only — chip / field theming flows through the PropertyField atom's own registry.\",\n styleProperties: [\n { key: 'rowGap', label: 'Row Gap', control: 'number', defaultValue: 16, min: 4, max: 32, step: 2, unit: 'px' },\n { key: 'columnGap', label: 'Column Gap', control: 'number', defaultValue: 32, min: 12, max: 64, step: 4, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'list-item',\n name: 'List Item',\n category: 'Composite',\n description: \"Row with icon, title, and optional trailing slot — used in stacked lists. Renders as `<div>` (static) or `<button>` / `<a>` (interactive) depending on the atom's `interactive` / `href` props. State knobs gate on `mode` rather than trailing — trailing is purely a visual choice and the two are orthogonal: an interactive row can have any trailing, a static row can have a chevron decoration without being tappable.\",\n styleProperties: [\n // ── Per-state row colors. Filtered into the \"States\" section by\n // the State variant. Default-state knobs (`inactiveBg`,\n // `inactiveText`) gate on `state: \"default\"` only — so the bg /\n // text are editable in both static and interactive modes. The\n // interactive-only state knobs (hover / focus / active)\n // additionally gate on `mode: \"interactive\"` so they hide\n // entirely when the row is rendered as a display-only `<div>`.\n // `disabled` is a visual treatment, not an interaction state, so\n // its knobs are NOT mode-gated.\n { key: 'inactiveBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'default' } },\n { key: 'inactiveText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'default' } },\n { key: 'hoverBg', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'states', showWhen: { state: 'hover', mode: 'interactive' } },\n { key: 'hoverText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'hover', mode: 'interactive' } },\n { key: 'focusText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'states', showWhen: { state: 'focus', mode: 'interactive' } },\n { key: 'activeBg', label: 'Background', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'states', showWhen: { state: 'active', mode: 'interactive' } },\n { key: 'activeText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'states', showWhen: { state: 'active', mode: 'interactive' } },\n { key: 'disabledBg', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'states', showWhen: { state: 'disabled' } },\n { key: 'disabledText', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'disabled' } },\n // Focus ring + disabled opacity in their own sections.\n { key: 'focusRing', label: 'Ring Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'focusState', showWhen: { state: 'focus', mode: 'interactive' } },\n { key: 'disabledOpacity', label: 'Opacity', control: 'slider', defaultValue: 0.5, min: 0.1, max: 1, step: 0.05, section: 'disabledState', showWhen: { state: 'disabled' } },\n // ── Container (List wrapper)\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'container' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px', section: 'container' },\n // ── Shared sizing (applies to every state)\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 16, min: 8, max: 32, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'gap', label: 'Icon Gap', control: 'number', defaultValue: 12, min: 4, max: 24, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 14, min: 11, max: 18, step: 1, unit: 'px' },\n // ── Sub-elements (shared across every state)\n { key: 'valueColor', label: 'Value Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'value', showWhen: { value: 'shown' } },\n { key: 'valueSize', label: 'Value Size', control: 'number', defaultValue: 12, min: 10, max: 16, step: 1, unit: 'px', section: 'value', showWhen: { value: 'shown' } },\n // Trailing slot is purely composable — the consumer passes whatever\n // ReactNode they want. The preview demos the canonical pattern per\n // mode (chevron for interactive nav rows, Tag for static status\n // rows), so a single Chevron Color knob covers the interactive\n // example. Other trailing decorations (Tag, Badge, Avatar, etc.)\n // bring their own styling via their respective atoms.\n { key: 'chevronColor', label: 'Chevron Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'trailing', showWhen: { mode: 'interactive' } },\n // High-contrast icon \"stamp\" — bright accent tile with a card-coloured\n // glyph inside. Keeps the icon visually distinct from the row bg in\n // every state (default / hover / active / disabled), so the shared\n // icon knobs don't need to vary per-state.\n { key: 'iconBg', label: 'Icon Bg', control: 'color', defaultValue: 'var(--color-accent)', section: 'icon' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-card)', section: 'icon' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 24, min: 16, max: 40, step: 2, unit: 'px', section: 'icon' },\n { key: 'iconRadius', label: 'Icon Radius', control: 'slider', defaultValue: 6, min: 0, max: 16, step: 1, unit: 'px', section: 'icon' },\n ],\n layoutVariants: [\n {\n key: 'mode',\n label: 'Mode',\n options: [\n // `static` → renders as `<div>`; no hover / focus / active\n // styling. `interactive` → renders as `<button>` (or `<a>`\n // when href is passed); full state styling. Mode is\n // orthogonal to trailing: any trailing can sit in either mode.\n { value: 'static', label: 'Static' },\n { value: 'interactive', label: 'Interactive' },\n ],\n defaultValue: 'interactive',\n },\n {\n key: 'state',\n label: 'State',\n options: [\n // `default` and `disabled` are always available — every row\n // has a resting state, and `disabled` is a visual treatment\n // (dimmed, muted) that applies regardless of mode. The CSS\n // rule includes a bare `.uxm-list-item[aria-disabled]`\n // selector that fires on `<div>` as well as `<button>` /\n // `<a>`. The interactive-only states (hover / focus / active)\n // are option-level-gated to `mode: \"interactive\"`: when the\n // row is static, the picker collapses to \"Default\" +\n // \"Disabled\", which self-explains as \"this row only has\n // visual states\" without the picker disappearing.\n { value: 'default', label: 'Default' },\n { value: 'hover', label: 'Hover', showWhen: { mode: 'interactive' } },\n { value: 'focus', label: 'Focus', showWhen: { mode: 'interactive' } },\n { value: 'active', label: 'Active', showWhen: { mode: 'interactive' } },\n { value: 'disabled', label: 'Disabled' },\n ],\n defaultValue: 'default',\n },\n {\n key: 'value',\n label: 'Value Text',\n options: [\n { value: 'shown', label: 'Shown' },\n { value: 'hidden', label: 'Hidden' },\n ],\n defaultValue: 'shown',\n },\n // No `trailing` variant — the preview chooses what to show in\n // the trailing slot based on `mode` (chevron for interactive,\n // Tag for static). Real consumers pass any ReactNode via the\n // atom's `trailing` prop; the editor preview demos the\n // canonical patterns only.\n ],\n },\n {\n id: 'stat-card',\n name: 'Stat Card',\n category: 'Composite',\n description: 'Metric card with value, label, and trend indicator.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 8, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 24, min: 12, max: 40, step: 4, unit: 'px' },\n { key: 'valueSize', label: 'Value Size', control: 'number', defaultValue: 28, min: 18, max: 48, step: 2, unit: 'px' },\n { key: 'labelSize', label: 'Label Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'trendUpColor', label: 'Trend Up', control: 'color', defaultValue: 'var(--color-success-text)', section: 'colors' },\n { key: 'trendDownColor', label: 'Trend Down', control: 'color', defaultValue: 'var(--color-danger-text)', section: 'colors' },\n ],\n layoutVariants: [],\n },\n {\n id: 'page-shell',\n name: 'Page Shell',\n category: 'Composite',\n description:\n 'Top-level page layout — sidebar + (optional) top bar + content. Two variants drive the chrome: standard (full chrome, padded content) and canvas (no top bar, full-bleed content for diagrams/lifecycle).',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface)', section: 'colors' },\n { key: 'contentPadding', label: 'Content Padding', control: 'number', defaultValue: 32, min: 0, max: 64, step: 4, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'variant',\n label: 'Variant',\n options: [\n { value: 'standard', label: 'Standard' },\n { value: 'canvas', label: 'Canvas' },\n ],\n defaultValue: 'standard',\n },\n ],\n },\n {\n id: 'type-overview-card',\n name: 'Type Overview Card',\n category: 'Composite',\n description: 'Dashboard summary tile — accent stripe, icon tile, label, count, hover affordance.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 4, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 20, min: 12, max: 40, step: 2, unit: 'px' },\n { key: 'accentColor', label: 'Accent Stripe', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'accentWidth', label: 'Accent Width', control: 'number', defaultValue: 4, min: 2, max: 12, step: 1, unit: 'px' },\n { key: 'iconBg', label: 'Icon Tile Bg', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'iconBoxSize', label: 'Icon Tile Size', control: 'number', defaultValue: 32, min: 24, max: 48, step: 2, unit: 'px' },\n { key: 'iconRadius', label: 'Icon Tile Radius', control: 'slider', defaultValue: 8, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'labelSize', label: 'Label Size', control: 'number', defaultValue: 14, min: 11, max: 18, step: 1, unit: 'px' },\n { key: 'labelColor', label: 'Label Color', control: 'color', defaultValue: 'var(--color-text-strong)', section: 'colors' },\n { key: 'valueSize', label: 'Value Size', control: 'number', defaultValue: 30, min: 20, max: 48, step: 2, unit: 'px' },\n { key: 'valueColor', label: 'Value Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n ],\n layoutVariants: [],\n },\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,gBAAgC;AAAA;AAAA,EAE3C;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASf,EAAE,KAAK,mBAAmB,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MACtJ,EAAE,KAAK,eAAe,OAAO,UAAU,SAAS,SAAS,cAAc,uBAAuB,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MAChJ,EAAE,KAAK,oBAAoB,OAAO,eAAe,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MAC9J,EAAE,KAAK,WAAW,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC5I,EAAE,KAAK,eAAe,OAAO,UAAU,SAAS,SAAS,cAAc,uBAAuB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,eAAe,OAAO,UAAU,SAAS,SAAS,cAAc,uBAAuB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,aAAa,OAAO,QAAQ,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAS9I,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA,MAClJ,EAAE,KAAK,kBAAkB,OAAO,UAAU,SAAS,SAAS,cAAc,uBAAuB,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA,MACpJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,GAAG,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUxK,EAAE,KAAK,WAAW,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC5I,EAAE,KAAK,eAAe,OAAO,UAAU,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACnJ,EAAE,KAAK,cAAc,OAAO,mBAAmB,SAAS,SAAS,cAAc,4BAA4B,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC/J,EAAE,KAAK,oBAAoB,OAAO,gBAAgB,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOlL,EAAE,KAAK,UAAU,OAAO,gBAAgB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,WAAW,OAAO,YAAY,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC9G,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQlH;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,UACvC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,QACnC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,QACrC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMf,EAAE,KAAK,OAAO,OAAO,YAAY,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IAC7G;AAAA,IACA,gBAAgB,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,mBAAmB,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACzH,EAAE,KAAK,WAAW,OAAO,WAAW,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC9G,EAAE,KAAK,UAAU,OAAO,UAAU,SAAS,UAAU,cAAc,KAAK;AAAA,MACxE,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,IAAI,MAAM,KAAK;AAAA,MACtH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IACtH;AAAA,IACA,gBAAgB,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA;AAAA;AAAA,MAIf,EAAE,KAAK,mBAAmB,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACzH,EAAE,KAAK,WAAW,OAAO,WAAW,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC/G,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IACxH;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,KAAK,OAAO,SAAS;AAAA,UAC9B,EAAE,OAAO,KAAK,OAAO,aAAa;AAAA,QACpC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,MACrH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA,MACxH,EAAE,KAAK,SAAS,OAAO,UAAU,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MACxG,EAAE,KAAK,cAAc,OAAO,gBAAgB,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,MAC1H,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACxH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,gBAAgB,OAAO,kBAAkB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC1H,EAAE,KAAK,gBAAgB,OAAO,kBAAkB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IAC5H;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,QACvC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,cAAc,aAAa,2FAA2F,SAAS,aAAa;AAAA,MACpJ,EAAE,MAAM,YAAY,aAAa,yEAAoE,SAAS,uCAAuC;AAAA,IACvJ;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA,MAEf,EAAE,KAAK,WAAW,OAAO,oBAAoB,SAAS,SAAS,cAAc,wBAAwB,SAAS,QAAQ;AAAA,MACtH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,QAAQ;AAAA,MACrH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA,MACxI,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA,MACzI,EAAE,KAAK,OAAO,OAAO,cAAc,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA;AAAA;AAAA;AAAA,MAI7H,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MACzJ,EAAE,KAAK,WAAW,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACnJ,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,YAAY,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MAC9I,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MAChJ,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1J,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1K,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACtH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACxH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IACpH;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,YAAY,aAAa,+CAA+C,SAAS,oBAAoB;AAAA,IAC/G;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA,MAEf,EAAE,KAAK,WAAW,OAAO,oBAAoB,SAAS,SAAS,cAAc,wBAAwB,SAAS,QAAQ;AAAA,MACtH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,QAAQ;AAAA,MACrH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA,MACxI,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA,MACzI,EAAE,KAAK,OAAO,OAAO,WAAW,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAK1H,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MACzJ,EAAE,KAAK,WAAW,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACnJ,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,YAAY,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MAC9I,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MAChJ,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,MAK1J,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1K,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,YAAY,OAAO,iBAAiB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACrH,EAAE,KAAK,YAAY,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,cAAc,OAAO,mBAAmB,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,KAAK,EAAE;AAAA,MACtH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,WAAW,OAAO,YAAY,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IAChH;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,YAAY,aAAa,8CAA8C,SAAS,oBAAoB;AAAA,IAC9G;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA,MAEf,EAAE,KAAK,oBAAoB,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,QAAQ;AAAA,MAC1H,EAAE,KAAK,oBAAoB,OAAO,sBAAsB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA,MAClJ,EAAE,KAAK,OAAO,OAAO,WAAW,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAK3H,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MACzJ,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MAChJ,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,SAAS,cAAc,uBAAuB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MAC/I,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA;AAAA,MAG1J,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA;AAAA,MAG1K,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK;AAAA;AAAA,MAEjH,EAAE,KAAK,YAAY,OAAO,iBAAiB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACrH,EAAE,KAAK,YAAY,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,cAAc,OAAO,mBAAmB,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,KAAK,EAAE;AAAA,MACtH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,WAAW,OAAO,YAAY,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IAChH;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,YAAY,aAAa,8CAA8C,SAAS,oBAAoB;AAAA,IAC9G;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA,MAEf,EAAE,KAAK,WAAW,OAAO,oBAAoB,SAAS,SAAS,cAAc,wBAAwB,SAAS,QAAQ;AAAA,MACtH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,QAAQ;AAAA,MACrH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA,MACxI,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA,MACzI,EAAE,KAAK,OAAO,OAAO,WAAW,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA;AAAA,MAE1H,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MACzJ,EAAE,KAAK,WAAW,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACnJ,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,YAAY,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MAC9I,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MAChJ,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA;AAAA,MAG1J,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1K,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,YAAY,OAAO,iBAAiB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACrH,EAAE,KAAK,YAAY,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,cAAc,OAAO,mBAAmB,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,KAAK,EAAE;AAAA,IACxH;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,YAAY,aAAa,iDAAiD,SAAS,oBAAoB;AAAA,IACjH;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA;AAAA,MAGf,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,QAAQ;AAAA,MACrH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA;AAAA;AAAA;AAAA,MAI1I,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MACjJ,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MACzJ,EAAE,KAAK,WAAW,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACnJ,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,YAAY,OAAO,cAAc,SAAS,SAAS,cAAc,8BAA8B,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MACvJ,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MACvJ,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA,MAClJ,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1J,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1K,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IAClH;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,YAAY,aAAa,iDAAiD,SAAS,oBAAoB;AAAA,IACjH;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,mBAAmB,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACxH,EAAE,KAAK,SAAS,OAAO,SAAS,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,IAAI,MAAM,KAAK;AAAA,MAC/G,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA,IAC1H;AAAA,IACA,gBAAgB,CAAC;AAAA,IACjB,QAAQ;AAAA,MACN,EAAE,MAAM,WAAW,aAAa,0FAA0F,SAAS,OAAO;AAAA,MAC1I,EAAE,MAAM,YAAY,aAAa,uFAAuF,SAAS,oBAAoB;AAAA,MACrJ,EAAE,MAAM,UAAU,aAAa,sFAAsF,SAAS,OAAO;AAAA,MACrI,EAAE,MAAM,oBAAoB,aAAa,0FAA0F,SAAS,wBAAwB;AAAA,IACtK;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MAClH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,UAAU,OAAO,WAAW,SAAS,SAAS,cAAc,8BAA8B,SAAS,SAAS;AAAA,MACnH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,MACvH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,OAAO,OAAO,OAAO,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACtG,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAChH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IAClH;AAAA,IACA,gBAAgB,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,SAAS,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,MAC9G,EAAE,KAAK,aAAa,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK;AAAA,MAChH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,MAAM;AAAA,MAChF,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA,MACxH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACnH,EAAE,KAAK,OAAO,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IAC9G;AAAA,IACA,gBAAgB,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,WAAW,OAAO,oBAAoB,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,MAC3H,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,SAAS,cAAc,yDAAyD,SAAS,SAAS;AAAA,MAC1J,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACvH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,QAAQ,cAAc,GAAG;AAAA,MACzE,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,SAAS,SAAS,CAAC,SAAS,WAAW,QAAQ,EAAE;AAAA,MACzH,EAAE,KAAK,UAAU,OAAO,mBAAmB,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MAClH,EAAE,KAAK,mBAAmB,OAAO,eAAe,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,MACzH,EAAE,KAAK,mBAAmB,OAAO,qBAAqB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK;AAAA,MAC9H,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACrH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,KAAK;AAAA,MACjF,EAAE,KAAK,gBAAgB,OAAO,kBAAkB,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,GAAG,MAAM,KAAK;AAAA,MAC9H,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACxH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MAClH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC1H,EAAE,KAAK,iBAAiB,OAAO,kBAAkB,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA,MAC9H,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IACpH;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,QAAQ,OAAO,WAAW;AAAA,UACnC,EAAE,OAAO,WAAW,OAAO,mBAAmB;AAAA,UAC9C,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,QACnC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,KAAK;AAAA,MACnH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,MACvH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MAClH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACxH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA,MAC5H,EAAE,KAAK,UAAU,OAAO,gBAAgB,SAAS,SAAS,cAAc,8BAA8B,SAAS,SAAS;AAAA,MACxH,EAAE,KAAK,aAAa,OAAO,mBAAmB,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,MAC5H,EAAE,KAAK,YAAY,OAAO,kBAAkB,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACvH,EAAE,KAAK,mBAAmB,OAAO,qBAAqB,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,GAAG,MAAM,KAAK;AAAA,IACtI;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,OAAO,OAAO,uBAAkB;AAAA,UACzC,EAAE,OAAO,OAAO,OAAO,0BAAqB;AAAA,UAC5C,EAAE,OAAO,SAAS,OAAO,kBAAkB;AAAA,QAC7C;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKf,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,eAAe,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MAC3I,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MAC1J,EAAE,KAAK,WAAW,OAAO,cAAc,SAAS,SAAS,cAAc,6DAA6D,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpL,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,YAAY,OAAO,cAAc,SAAS,SAAS,cAAc,wBAAwB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MACjJ,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MAChJ,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,eAAe,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA,MAC5I,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1J,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1K,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACxH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,OAAO,OAAO,YAAY,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC3G,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,OAAO,KAAK,EAAE;AAAA;AAAA,MAEzH,EAAE,KAAK,UAAU,OAAO,gBAAgB,SAAS,SAAS,cAAc,4BAA4B,SAAS,OAAO;AAAA,MACpH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,OAAO;AAAA,MAC9G,EAAE,KAAK,eAAe,OAAO,kBAAkB,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,OAAO;AAAA,MAC3I,EAAE,KAAK,cAAc,OAAO,oBAAoB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,OAAO;AAAA,MAC1I,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,OAAO;AAAA,IACrI;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA;AAAA;AAAA;AAAA,QAIE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,UAC7B,EAAE,OAAO,SAAS,OAAO,YAAY;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,QACnC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,WAAW,aAAa,wEAAwE,SAAS,aAAa;AAAA,IAChI;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA;AAAA;AAAA,MAIf,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,eAAe,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MAC3I,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MAC1J,EAAE,KAAK,WAAW,OAAO,cAAc,SAAS,SAAS,cAAc,6DAA6D,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpL,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC9I,EAAE,KAAK,YAAY,OAAO,cAAc,SAAS,SAAS,cAAc,wBAAwB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MACjJ,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MAChJ,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,eAAe,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA,MAC5I,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1J,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA;AAAA,MAG1K,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,QAAQ,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MAC/I,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MACjK,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MACrK,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,KAAK,KAAK,GAAG,KAAK,KAAK,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA;AAAA,MAEvK,EAAE,KAAK,iBAAiB,OAAO,kBAAkB,SAAS,SAAS,cAAc,4BAA4B,SAAS,WAAW;AAAA,MACjI,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,WAAW;AAAA;AAAA,MAE9I,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACxH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAChH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,KAAK,EAAE;AAAA,MAClH,EAAE,KAAK,OAAO,OAAO,OAAO,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IACvG;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,WAAW,aAAa,iEAAiE,SAAS,aAAa;AAAA,IACzH;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aACE;AAAA,IACF,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMf,EAAE,KAAK,MAAM,OAAO,cAAc,SAAS,SAAS,cAAc,eAAe,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MACnI,EAAE,KAAK,WAAW,OAAO,cAAc,SAAS,SAAS,cAAc,wBAAwB,SAAS,UAAU,UAAU,EAAE,OAAO,CAAC,SAAS,MAAM,EAAE,EAAE;AAAA,MACzJ,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA,MAIpJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,MAAM,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA;AAAA;AAAA,MAK3K,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,YAAY,UAAU,EAAE,SAAS,WAAW,EAAE;AAAA,MACtJ,EAAE,KAAK,kBAAkB,OAAO,UAAU,SAAS,SAAS,cAAc,uBAAuB,SAAS,YAAY,UAAU,EAAE,SAAS,WAAW,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,MAMxJ,EAAE,KAAK,cAAc,OAAO,SAAS,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS,UAAU,EAAE,WAAW,KAAK,EAAE;AAAA,MAC1I,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,SAAS,UAAU,EAAE,WAAW,KAAK,EAAE;AAAA,MACnK,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,OAAO,KAAK,GAAG,SAAS,SAAS,UAAU,EAAE,WAAW,KAAK,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,MAM1K,EAAE,KAAK,gBAAgB,OAAO,SAAS,SAAS,SAAS,cAAc,2BAA2B,SAAS,WAAW,UAAU,EAAE,aAAa,OAAO,WAAW,KAAK,EAAE;AAAA,MACxK,EAAE,KAAK,mBAAmB,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,WAAW,UAAU,EAAE,aAAa,OAAO,WAAW,KAAK,EAAE;AAAA,MAC/L,EAAE,KAAK,qBAAqB,OAAO,eAAe,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,OAAO,KAAK,GAAG,SAAS,WAAW,UAAU,EAAE,aAAa,OAAO,WAAW,KAAK,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMvM,EAAE,KAAK,wBAAwB,OAAO,kBAAkB,SAAS,UAAU,cAAc,aAAa,SAAS,CAAC,aAAa,QAAQ,cAAc,WAAW,GAAG,SAAS,WAAW,UAAU,EAAE,aAAa,OAAO,WAAW,KAAK,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOvO,EAAE,KAAK,wBAAwB,OAAO,kBAAkB,SAAS,UAAU,cAAc,MAAM,KAAK,GAAG,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,SAAS,WAAW,UAAU,EAAE,aAAa,OAAO,WAAW,KAAK,EAAE;AAAA,MAC/M,EAAE,KAAK,cAAc,OAAO,WAAW,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,MAAM,SAAS,WAAW,UAAU,EAAE,aAAa,OAAO,WAAW,KAAK,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAWtL,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ,UAAU,EAAE,MAAM,OAAO,EAAE;AAAA;AAAA,MAE/J,EAAE,KAAK,aAAa,OAAO,SAAS,SAAS,SAAS,cAAc,4BAA4B,SAAS,QAAQ,UAAU,EAAE,MAAM,OAAO,EAAE;AAAA,MAE5I,EAAE,KAAK,iBAAiB,OAAO,SAAS,SAAS,SAAS,cAAc,2BAA2B,SAAS,YAAY,UAAU,EAAE,cAAc,OAAO,WAAW,KAAK,EAAE;AAAA;AAAA;AAAA;AAAA,MAK3K,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,WAAW,KAAK,EAAE;AAAA,MAChJ,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,WAAW,KAAK,EAAE;AAAA,MAC/I,EAAE,KAAK,OAAO,OAAO,OAAO,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,WAAW,KAAK,EAAE;AAAA,MACrI,EAAE,KAAK,gBAAgB,OAAO,UAAU,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASjH,EAAE,KAAK,iBAAiB,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,WAAW,MAAM,EAAE;AAAA,IACzJ;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,UACvC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,QACnC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAQE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,UAC/B,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAQE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,UAC/B,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,QACjC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA;AAAA;AAAA;AAAA;AAAA,QAKE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,MAAM,OAAO,WAAW;AAAA,UACjC,EAAE,OAAO,OAAO,OAAO,YAAY;AAAA,QACrC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,OAAO,OAAO,KAAK;AAAA,UAC5B,EAAE,OAAO,MAAM,OAAO,MAAM;AAAA,QAC9B;AAAA,QACA,cAAc;AAAA;AAAA;AAAA;AAAA,QAId,UAAU,EAAE,WAAW,KAAK;AAAA,MAC9B;AAAA,MACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAME,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,QACnC;AAAA,QACA,cAAc;AAAA,QACd,UAAU,EAAE,aAAa,OAAO,WAAW,KAAK;AAAA,MAClD;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,OAAO,OAAO,KAAK;AAAA,UAC5B,EAAE,OAAO,MAAM,OAAO,MAAM;AAAA,QAC9B;AAAA,QACA,cAAc;AAAA,QACd,UAAU,EAAE,WAAW,KAAK;AAAA,MAC9B;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,WAAW,aAAa,6KAAwK,SAAS,aAAa;AAAA,IAChO;AAAA,IACA,KAAK;AAAA,MACH,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,OAAO;AAAA,QACL,EAAE,MAAM,QAAQ,MAAM,aAAa,aAAa,+KAA0K;AAAA,QAC1N,EAAE,MAAM,WAAW,MAAM,aAAa,aAAa,2JAAsJ;AAAA,QACzM,EAAE,MAAM,oBAAoB,MAAM,qBAAqB,cAAc,WAAW,aAAa,sXAAwX;AAAA,QACrd,EAAE,MAAM,YAAY,MAAM,aAAa,aAAa,8DAAyD;AAAA,QAC7G,EAAE,MAAM,YAAY,MAAM,aAAa,aAAa,8IAA8I;AAAA,QAClM,EAAE,MAAM,WAAW,MAAM,wBAAwB,cAAc,WAAW,aAAa,kOAAwN;AAAA,QAC/S,EAAE,MAAM,aAAa,MAAM,WAAW,cAAc,SAAS,aAAa,+6BAAg6B;AAAA,MAC5+B;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKf,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,eAAe,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MAC3I,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MACzJ,EAAE,KAAK,WAAW,OAAO,cAAc,SAAS,SAAS,cAAc,6DAA6D,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpL,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACrJ,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACrJ,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,eAAe,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA,MAC5I,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE3J,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1K,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACxH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAChH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAChH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,KAAK,EAAE;AAAA,MAClH,EAAE,KAAK,OAAO,OAAO,OAAO,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA;AAAA,MAErG,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU;AAAA,MAC7H,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,UAAU;AAAA;AAAA,MAE3I,EAAE,KAAK,iBAAiB,OAAO,kBAAkB,SAAS,SAAS,cAAc,4BAA4B,SAAS,WAAW;AAAA,MACjI,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,WAAW;AAAA,IAChJ;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA;AAAA;AAAA,QAGE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,QAAQ,OAAO,WAAW;AAAA,UACnC,EAAE,OAAO,SAAS,OAAO,YAAY;AAAA,QACvC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,YAAY,aAAa,iFAAiF,SAAS,oBAAoB;AAAA,IACjJ;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA,MAEf,EAAE,KAAK,SAAS,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MAClJ,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACtJ,EAAE,KAAK,eAAe,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MACnJ,EAAE,KAAK,kBAAkB,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACrJ,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACtJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA,MACnK,EAAE,KAAK,iBAAiB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE3J,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,KAAK,EAAE;AAAA,MAClH,EAAE,KAAK,OAAO,OAAO,YAAY,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK;AAAA,MACzG,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IACnH;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,UAAU,OAAO,UAAU;AAAA,UACpC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,WAAW,aAAa,mDAAmD,SAAS,gCAAgC;AAAA,IAC9H;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,MACzH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACnH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,KAAK,EAAE;AAAA,MACpH,EAAE,KAAK,iBAAiB,OAAO,kBAAkB,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA,MAC9H,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACzH,EAAE,KAAK,OAAO,OAAO,sBAAsB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IAC3H;AAAA,IACA,gBAAgB,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,mBAAmB,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACxH,EAAE,KAAK,WAAW,OAAO,WAAW,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC9G,EAAE,KAAK,UAAU,OAAO,WAAW,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,MACjH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,iBAAiB,OAAO,kBAAkB,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA,MAC9H,EAAE,KAAK,eAAe,OAAO,qBAAqB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK;AAAA,MAC1H,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,IACxH;AAAA,IACA,gBAAgB,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMf,EAAE,KAAK,gBAAgB,OAAO,SAAS,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MACpJ,EAAE,KAAK,aAAa,OAAO,SAAS,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACzI,EAAE,KAAK,aAAa,OAAO,SAAS,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACzI,EAAE,KAAK,cAAc,OAAO,SAAS,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MAC3I,EAAE,KAAK,oBAAoB,OAAO,eAAe,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,OAAO,KAAK,GAAG,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MACjL,EAAE,KAAK,gBAAgB,OAAO,SAAS,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA,MACtJ,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1K,EAAE,KAAK,kBAAkB,OAAO,mBAAmB,SAAS,SAAS,cAAc,4BAA4B,SAAS,YAAY;AAAA,MACpI,EAAE,KAAK,iBAAiB,OAAO,kBAAkB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,YAAY;AAAA;AAAA,MAEjJ,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,OAAO,KAAK,EAAE;AAAA,MACzH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,OAAO,OAAO,OAAO,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACrG,EAAE,KAAK,mBAAmB,OAAO,oBAAoB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK;AAAA,MAC7H,EAAE,KAAK,sBAAsB,OAAO,uBAAuB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK;AAAA,IACrI;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,UAC7B,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,QACjC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKf,EAAE,KAAK,gBAAgB,OAAO,SAAS,SAAS,SAAS,cAAc,uBAAuB,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MAChJ,EAAE,KAAK,aAAa,OAAO,SAAS,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAChJ,EAAE,KAAK,aAAa,OAAO,SAAS,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAChJ,EAAE,KAAK,gBAAgB,OAAO,SAAS,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA,MACrJ,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACpJ,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1K,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,KAAK,EAAE;AAAA,MAClH,EAAE,KAAK,mBAAmB,OAAO,oBAAoB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK;AAAA,MAC7H,EAAE,KAAK,sBAAsB,OAAO,uBAAuB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK;AAAA,MACnI,EAAE,KAAK,oBAAoB,OAAO,sBAAsB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClI,EAAE,KAAK,mBAAmB,OAAO,qBAAqB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IACjI;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,UAC/B,EAAE,OAAO,SAAS,OAAO,WAAW;AAAA,UACpC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,QACrC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,SAAS,OAAO,WAAW;AAAA,UACpC,EAAE,OAAO,QAAQ,OAAO,WAAW;AAAA,QACrC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,WAAW,aAAa,2EAA2E,SAAS,gCAAgC;AAAA,IACtJ;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA,MAEf,EAAE,KAAK,SAAS,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MAClJ,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC/I,EAAE,KAAK,eAAe,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,EAAE;AAAA,MACjJ,EAAE,KAAK,kBAAkB,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACrJ,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MAC/I,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA,MACnK,EAAE,KAAK,iBAAiB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE3J,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,KAAK,EAAE;AAAA,MAClH,EAAE,KAAK,OAAO,OAAO,YAAY,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IAC5G;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,UAAU,OAAO,UAAU;AAAA,UACpC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,WAAW,aAAa,2EAA2E,SAAS,gCAAgC;AAAA,IACtJ;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUf,EAAE,KAAK,YAAY,OAAO,cAAc,SAAS,SAAS,cAAc,8BAA8B,SAAS,UAAU,UAAU,EAAE,MAAM,UAAU,MAAM,QAAQ,EAAE;AAAA,MACrK,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,MAAM,UAAU,MAAM,QAAQ,EAAE;AAAA,MACrK,EAAE,KAAK,kBAAkB,OAAO,aAAa,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,MAAM,UAAU,MAAM,MAAM,EAAE;AAAA,MACtK,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,MAAM,WAAW,MAAM,QAAQ,EAAE;AAAA,MACpK,EAAE,KAAK,eAAe,OAAO,cAAc,SAAS,SAAS,cAAc,6BAA6B,SAAS,UAAU,UAAU,EAAE,MAAM,WAAW,MAAM,QAAQ,EAAE;AAAA,MACxK,EAAE,KAAK,mBAAmB,OAAO,aAAa,SAAS,SAAS,cAAc,6BAA6B,SAAS,UAAU,UAAU,EAAE,MAAM,WAAW,MAAM,MAAM,EAAE;AAAA,MACzK,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,MAAM,WAAW,MAAM,QAAQ,EAAE;AAAA,MACpK,EAAE,KAAK,eAAe,OAAO,cAAc,SAAS,SAAS,cAAc,6BAA6B,SAAS,UAAU,UAAU,EAAE,MAAM,WAAW,MAAM,QAAQ,EAAE;AAAA,MACxK,EAAE,KAAK,mBAAmB,OAAO,aAAa,SAAS,SAAS,cAAc,6BAA6B,SAAS,UAAU,UAAU,EAAE,MAAM,WAAW,MAAM,MAAM,EAAE;AAAA,MACzK,EAAE,KAAK,YAAY,OAAO,cAAc,SAAS,SAAS,cAAc,0BAA0B,SAAS,UAAU,UAAU,EAAE,MAAM,UAAU,MAAM,QAAQ,EAAE;AAAA,MACjK,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,MAAM,UAAU,MAAM,QAAQ,EAAE;AAAA,MACrK,EAAE,KAAK,kBAAkB,OAAO,aAAa,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,MAAM,UAAU,MAAM,MAAM,EAAE;AAAA,MACtK,EAAE,KAAK,UAAU,OAAO,cAAc,SAAS,SAAS,cAAc,wBAAwB,SAAS,UAAU,UAAU,EAAE,MAAM,QAAQ,MAAM,QAAQ,EAAE;AAAA,MAC3J,EAAE,KAAK,YAAY,OAAO,cAAc,SAAS,SAAS,cAAc,0BAA0B,SAAS,UAAU,UAAU,EAAE,MAAM,QAAQ,MAAM,QAAQ,EAAE;AAAA,MAC/J,EAAE,KAAK,gBAAgB,OAAO,aAAa,SAAS,SAAS,cAAc,0BAA0B,SAAS,UAAU,UAAU,EAAE,MAAM,QAAQ,MAAM,MAAM,EAAE;AAAA,MAChK,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,MAAM,WAAW,MAAM,QAAQ,EAAE;AAAA,MACrK,EAAE,KAAK,eAAe,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,MAAM,WAAW,MAAM,QAAQ,EAAE;AAAA,MACvK,EAAE,KAAK,mBAAmB,OAAO,aAAa,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,MAAM,WAAW,MAAM,MAAM,EAAE;AAAA;AAAA;AAAA;AAAA,MAIvK,EAAE,KAAK,WAAW,OAAO,YAAY,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,MAAM,MAAM,EAAE;AAAA,MACzI,EAAE,KAAK,iBAAiB,OAAO,mBAAmB,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,MAAM,MAAM,EAAE;AAAA,MACxJ,EAAE,KAAK,mBAAmB,OAAO,qBAAqB,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,OAAO,KAAK,GAAG,UAAU,EAAE,MAAM,MAAM,EAAE;AAAA,MAC/J,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,MAAM,MAAM,EAAE;AAAA,MAC7I,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,MAAM,MAAM,EAAE;AAAA;AAAA,MAE3I,EAAE,KAAK,iBAAiB,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,MAAM,QAAQ,EAAE;AAAA,MAClJ,EAAE,KAAK,iBAAiB,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,MAAM,QAAQ,EAAE;AAAA,MACjJ,EAAE,KAAK,iBAAiB,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,MAAM,QAAQ,EAAE;AAAA,MACpJ,EAAE,KAAK,iBAAiB,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,MAAM,QAAQ,EAAE;AAAA,MACnJ,EAAE,KAAK,mBAAmB,OAAO,eAAe,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,OAAO,KAAK,GAAG,UAAU,EAAE,MAAM,QAAQ,EAAE;AAAA,MAC3J,EAAE,KAAK,qBAAqB,OAAO,iBAAiB,SAAS,UAAU,cAAc,KAAK,KAAK,GAAG,KAAK,KAAK,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,MAAM,QAAQ,EAAE;AAAA,IAC/J;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,UAC7B,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,QACnC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,UAC/B,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,QACvC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,QAAQ,OAAO,QAAQ,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,KAAK;AAAA,MAC1G,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,SAAS;AAAA,MAC5I,EAAE,KAAK,mBAAmB,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK;AAAA,MACrH,EAAE,KAAK,oBAAoB,OAAO,qBAAqB,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,IACvI;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,QACvC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,SAAS,OAAO,aAAa;AAAA,UACtC,EAAE,OAAO,eAAe,OAAO,cAAc;AAAA,QAC/C;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA,MAEf,EAAE,KAAK,mBAAmB,OAAO,cAAc,SAAS,SAAS,cAAc,wBAAwB,SAAS,QAAQ;AAAA,MACxH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,QAAQ;AAAA,MACrH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA,MAC3I,EAAE,KAAK,WAAW,OAAO,WAAW,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,QAAQ;AAAA;AAAA;AAAA;AAAA,MAIhI,EAAE,KAAK,eAAe,OAAO,SAAS,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,MAC/G,EAAE,KAAK,cAAc,OAAO,QAAQ,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,SAAS;AAAA,MACjI,EAAE,KAAK,iBAAiB,OAAO,YAAY,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,SAAS;AAAA;AAAA,MAGvI,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MAClH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,SAAS;AAAA,MACvI,EAAE,KAAK,YAAY,OAAO,oBAAoB,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA;AAAA,MAG3H,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU;AAAA,MAC7H,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAO3I,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,iBAAiB,UAAU,EAAE,WAAW,UAAU,EAAE;AAAA,MAC9J,EAAE,KAAK,oBAAoB,OAAO,iBAAiB,SAAS,SAAS,cAAc,4BAA4B,SAAS,iBAAiB,UAAU,EAAE,WAAW,QAAQ,EAAE;AAAA,MAC1K,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,iBAAiB,UAAU,EAAE,WAAW,QAAQ,EAAE;AAAA,MACjK,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,iBAAiB,UAAU,EAAE,WAAW,WAAW,EAAE;AAAA,MACpK,EAAE,KAAK,iBAAiB,OAAO,cAAc,SAAS,SAAS,cAAc,6BAA6B,SAAS,iBAAiB,UAAU,EAAE,WAAW,WAAW,EAAE;AAAA,MACxK,EAAE,KAAK,WAAW,OAAO,cAAc,SAAS,SAAS,cAAc,yDAAyD,SAAS,iBAAiB,UAAU,EAAE,WAAW,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAO3L,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,WAAW;AAAA,MACvI,EAAE,KAAK,gBAAgB,OAAO,kBAAkB,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,WAAW;AAAA,MAChJ,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,WAAW;AAAA,MACzI,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,8BAA8B,SAAS,YAAY,UAAU,EAAE,WAAW,WAAW,EAAE;AAAA,MAChK,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,YAAY,UAAU,EAAE,WAAW,WAAW,EAAE;AAAA,MACjK,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,YAAY,UAAU,EAAE,WAAW,cAAc,EAAE;AAAA,MACpK,EAAE,KAAK,mBAAmB,OAAO,cAAc,SAAS,SAAS,cAAc,6BAA6B,SAAS,YAAY,UAAU,EAAE,WAAW,cAAc,EAAE;AAAA,MACxK,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,YAAY,UAAU,EAAE,WAAW,YAAY,EAAE;AAAA,MAChK,EAAE,KAAK,iBAAiB,OAAO,cAAc,SAAS,SAAS,cAAc,6BAA6B,SAAS,YAAY,UAAU,EAAE,WAAW,YAAY,EAAE;AAAA,MACpK,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,YAAY,UAAU,EAAE,WAAW,UAAU,EAAE;AAAA,MAChK,EAAE,KAAK,iBAAiB,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,YAAY,UAAU,EAAE,WAAW,WAAW,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQlK,EAAE,KAAK,iBAAiB,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,MAAM,SAAS,mBAAmB;AAAA,MACrJ,EAAE,KAAK,qBAAqB,OAAO,kBAAkB,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,mBAAmB;AAAA;AAAA;AAAA,MAI7J,EAAE,KAAK,oBAAoB,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc;AAAA,MAC9H,EAAE,KAAK,sBAAsB,OAAO,oBAAoB,SAAS,SAAS,cAAc,4DAA4D,SAAS,cAAc;AAAA,MAC3K,EAAE,KAAK,mBAAmB,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,cAAc;AAAA,IACnJ;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,UACvC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,UACvC,EAAE,OAAO,eAAe,OAAO,cAAc;AAAA,UAC7C,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,UACzC,EAAE,OAAO,WAAW,OAAO,gBAAgB;AAAA,UAC3C,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,UACvC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,QACnC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,MACN,EAAE,MAAM,YAAY,aAAa,0CAA0C,SAAS,kBAAkB;AAAA,MACtG,EAAE,MAAM,iBAAiB,aAAa,2GAA2G,SAAS,kCAAkC;AAAA,IAC9L;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,QAAQ,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC9G,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACxH,EAAE,KAAK,UAAU,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,MACpH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IACpH;AAAA,IACA,gBAAgB,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,SAAS,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA,MAClH,EAAE,KAAK,OAAO,OAAO,YAAY,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC3G,EAAE,KAAK,WAAW,OAAO,YAAY,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC9G,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,SAAS,cAAc,0DAA0D,SAAS,SAAS;AAAA,IACrJ;AAAA,IACA,gBAAgB,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMf,EAAE,KAAK,mBAAmB,OAAO,eAAe,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,WAAW,SAAS,EAAE;AAAA,MACjK,EAAE,KAAK,oBAAoB,OAAO,eAAe,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,WAAW,UAAU,EAAE;AAAA,MAC5J,EAAE,KAAK,kBAAkB,OAAO,eAAe,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,WAAW,QAAQ,EAAE;AAAA;AAAA;AAAA,MAG9J,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,cAAc,UAAU,EAAE;AAAA,MAC3J,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,UAAU,cAAc,OAAO,SAAS,CAAC,OAAO,OAAO,KAAK,GAAG,UAAU,EAAE,cAAc,UAAU,EAAE;AAAA,MAC3J,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,UAAU,EAAE,cAAc,WAAW,EAAE;AAAA;AAAA;AAAA,MAG9J,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,OAAO;AAAA,MACpH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOnI,EAAE,KAAK,OAAO,OAAO,aAAa,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,aAAa,UAAU,EAAE,eAAe,MAAM,EAAE;AAAA,MACrK,EAAE,KAAK,WAAW,OAAO,YAAY,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,OAAO;AAAA;AAAA;AAAA,MAG/H,EAAE,KAAK,kBAAkB,OAAO,oBAAoB,SAAS,UAAU,cAAc,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,MAAM,SAAS,cAAc,UAAU,EAAE,eAAe,OAAO,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,MAK7L,EAAE,KAAK,WAAW,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,cAAc,UAAU,EAAE,eAAe,OAAO,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAM5K,EAAE,KAAK,kBAAkB,OAAO,oBAAoB,SAAS,UAAU,cAAc,SAAS,SAAS,CAAC,SAAS,KAAK,GAAG,SAAS,cAAc,UAAU,EAAE,eAAe,OAAO,EAAE;AAAA;AAAA;AAAA;AAAA,MAIpL,EAAE,KAAK,mBAAmB,OAAO,sBAAsB,SAAS,UAAU,cAAc,UAAU,SAAS,CAAC,UAAU,SAAS,KAAK,GAAG,SAAS,cAAc,UAAU,EAAE,eAAe,OAAO,EAAE;AAAA,IACpM;AAAA,IACA,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,UAC7B,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,QACjC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA;AAAA;AAAA,MAGA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA;AAAA;AAAA;AAAA,MAIA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,QACnC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS;AAAA,MACxH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACnH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MAClH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,OAAO,OAAO,mBAAmB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IACnH;AAAA,IACA,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,UACzC,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,aAAa,OAAO,YAAY;AAAA,UACzC,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,QACjD;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,UAAU,OAAO,WAAW,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC7G,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IACtH;AAAA,IACA,gBAAgB,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUf,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MACjJ,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,EAAE;AAAA,MACnJ,EAAE,KAAK,WAAW,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,MAAM,cAAc,EAAE;AAAA,MACxK,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,MAAM,cAAc,EAAE;AAAA,MACnK,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,SAAS,MAAM,cAAc,EAAE;AAAA,MACnK,EAAE,KAAK,YAAY,OAAO,cAAc,SAAS,SAAS,cAAc,8BAA8B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,MAAM,cAAc,EAAE;AAAA,MAC5K,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,UAAU,UAAU,EAAE,OAAO,UAAU,MAAM,cAAc,EAAE;AAAA,MAC5K,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA,MAClJ,EAAE,KAAK,gBAAgB,OAAO,cAAc,SAAS,SAAS,cAAc,2BAA2B,SAAS,UAAU,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1J,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,uBAAuB,SAAS,cAAc,UAAU,EAAE,OAAO,SAAS,MAAM,cAAc,EAAE;AAAA,MACzK,EAAE,KAAK,mBAAmB,OAAO,WAAW,SAAS,UAAU,cAAc,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,MAAM,SAAS,iBAAiB,UAAU,EAAE,OAAO,WAAW,EAAE;AAAA;AAAA,MAE1K,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,YAAY;AAAA,MACzH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,YAAY;AAAA;AAAA,MAE9I,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACjH,EAAE,KAAK,OAAO,OAAO,YAAY,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC3G,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA;AAAA,MAElH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,2BAA2B,SAAS,SAAS,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,MACrJ,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,SAAS,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOpK,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,SAAS,cAAc,2BAA2B,SAAS,YAAY,UAAU,EAAE,MAAM,cAAc,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,MAKjK,EAAE,KAAK,UAAU,OAAO,WAAW,SAAS,SAAS,cAAc,uBAAuB,SAAS,OAAO;AAAA,MAC1G,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,OAAO;AAAA,MAC9G,EAAE,KAAK,YAAY,OAAO,aAAa,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,OAAO;AAAA,MACnI,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,MAAM,SAAS,OAAO;AAAA,IACvI;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKP,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,UACnC,EAAE,OAAO,eAAe,OAAO,cAAc;AAAA,QAC/C;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAWP,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,UACrC,EAAE,OAAO,SAAS,OAAO,SAAS,UAAU,EAAE,MAAM,cAAc,EAAE;AAAA,UACpE,EAAE,OAAO,SAAS,OAAO,SAAS,UAAU,EAAE,MAAM,cAAc,EAAE;AAAA,UACpE,EAAE,OAAO,UAAU,OAAO,UAAU,UAAU,EAAE,MAAM,cAAc,EAAE;AAAA,UACtE,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,QACzC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,UACjC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,QACrC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMF;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,mBAAmB,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACxH,EAAE,KAAK,WAAW,OAAO,WAAW,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC/G,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,gBAAgB,OAAO,YAAY,SAAS,SAAS,cAAc,6BAA6B,SAAS,SAAS;AAAA,MACzH,EAAE,KAAK,kBAAkB,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,IAC9H;AAAA,IACA,gBAAgB,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aACE;AAAA,IACF,iBAAiB;AAAA,MACf,EAAE,KAAK,mBAAmB,OAAO,cAAc,SAAS,SAAS,cAAc,wBAAwB,SAAS,SAAS;AAAA,MACzH,EAAE,KAAK,kBAAkB,OAAO,mBAAmB,SAAS,UAAU,cAAc,IAAI,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,IAC/H;AAAA,IACA,gBAAgB;AAAA,MACd;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,UACvC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,QACrC;AAAA,QACA,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,MACf,EAAE,KAAK,mBAAmB,OAAO,cAAc,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,MACtH,EAAE,KAAK,gBAAgB,OAAO,iBAAiB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACxH,EAAE,KAAK,WAAW,OAAO,WAAW,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC/G,EAAE,KAAK,eAAe,OAAO,iBAAiB,SAAS,SAAS,cAAc,uBAAuB,SAAS,SAAS;AAAA,MACvH,EAAE,KAAK,eAAe,OAAO,gBAAgB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACtH,EAAE,KAAK,UAAU,OAAO,gBAAgB,SAAS,SAAS,cAAc,8BAA8B,SAAS,SAAS;AAAA,MACxH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,MACvH,EAAE,KAAK,eAAe,OAAO,kBAAkB,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MAC1H,EAAE,KAAK,cAAc,OAAO,oBAAoB,SAAS,UAAU,cAAc,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACzH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,4BAA4B,SAAS,SAAS;AAAA,MACzH,EAAE,KAAK,aAAa,OAAO,cAAc,SAAS,UAAU,cAAc,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,GAAG,MAAM,KAAK;AAAA,MACpH,EAAE,KAAK,cAAc,OAAO,eAAe,SAAS,SAAS,cAAc,qBAAqB,SAAS,SAAS;AAAA,IACpH;AAAA,IACA,gBAAgB,CAAC;AAAA,EACnB;AACF;","names":[]}