@viax.io/uxm 4.36.0 → 4.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +74 -31
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.ts +3 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/previews/index.cjs +3 -0
  7. package/dist/previews/index.cjs.map +1 -1
  8. package/dist/previews/index.d.ts +3 -2
  9. package/dist/previews/index.d.ts.map +1 -1
  10. package/dist/previews/index.js +2 -0
  11. package/dist/previews/index.js.map +1 -1
  12. package/dist/studio/index.cjs.map +1 -1
  13. package/dist/studio/index.d.ts +2 -2
  14. package/dist/studio/index.js.map +1 -1
  15. package/dist/studio/lib/registry/app.cjs +52 -0
  16. package/dist/studio/lib/registry/app.cjs.map +1 -1
  17. package/dist/studio/lib/registry/app.d.ts.map +1 -1
  18. package/dist/studio/lib/registry/app.js +52 -0
  19. package/dist/studio/lib/registry/app.js.map +1 -1
  20. package/dist/studio/lib/registry/buttons.cjs +2 -2
  21. package/dist/studio/lib/registry/buttons.cjs.map +1 -1
  22. package/dist/studio/lib/registry/buttons.js +2 -2
  23. package/dist/studio/lib/registry/buttons.js.map +1 -1
  24. package/dist/studio/lib/registry/composite.cjs +1 -1
  25. package/dist/studio/lib/registry/composite.cjs.map +1 -1
  26. package/dist/studio/lib/registry/composite.js +1 -1
  27. package/dist/studio/lib/registry/composite.js.map +1 -1
  28. package/dist/studio/lib/registry/diagram.cjs +1 -1
  29. package/dist/studio/lib/registry/diagram.cjs.map +1 -1
  30. package/dist/studio/lib/registry/diagram.js +1 -1
  31. package/dist/studio/lib/registry/diagram.js.map +1 -1
  32. package/dist/studio/lib/registry/display.cjs +2 -2
  33. package/dist/studio/lib/registry/display.cjs.map +1 -1
  34. package/dist/studio/lib/registry/display.js +2 -2
  35. package/dist/studio/lib/registry/display.js.map +1 -1
  36. package/dist/studio/lib/registry/feedback.cjs +3 -3
  37. package/dist/studio/lib/registry/feedback.cjs.map +1 -1
  38. package/dist/studio/lib/registry/feedback.js +3 -3
  39. package/dist/studio/lib/registry/feedback.js.map +1 -1
  40. package/dist/studio/lib/registry/inputs.cjs +12 -12
  41. package/dist/studio/lib/registry/inputs.cjs.map +1 -1
  42. package/dist/studio/lib/registry/inputs.js +12 -12
  43. package/dist/studio/lib/registry/inputs.js.map +1 -1
  44. package/dist/studio/lib/types.cjs.map +1 -1
  45. package/dist/studio/persistence/generate-css.cjs +15 -0
  46. package/dist/studio/persistence/generate-css.cjs.map +1 -1
  47. package/dist/studio/persistence/generate-css.d.ts.map +1 -1
  48. package/dist/studio/persistence/generate-css.js +15 -0
  49. package/dist/studio/persistence/generate-css.js.map +1 -1
  50. package/dist/studio/shell/canvas.cjs +1 -0
  51. package/dist/studio/shell/canvas.cjs.map +1 -1
  52. package/dist/studio/shell/canvas.d.ts.map +1 -1
  53. package/dist/studio/shell/canvas.js +2 -0
  54. package/dist/studio/shell/canvas.js.map +1 -1
  55. package/dist/ui/calendar/calendar.cjs +3 -1
  56. package/dist/ui/calendar/calendar.cjs.map +1 -1
  57. package/dist/ui/calendar/calendar.d.ts +6 -2
  58. package/dist/ui/calendar/calendar.d.ts.map +1 -1
  59. package/dist/ui/calendar/calendar.js +3 -1
  60. package/dist/ui/calendar/calendar.js.map +1 -1
  61. package/dist/ui/currency-input/currency-input.cjs +3 -1
  62. package/dist/ui/currency-input/currency-input.cjs.map +1 -1
  63. package/dist/ui/currency-input/currency-input.d.ts +4 -2
  64. package/dist/ui/currency-input/currency-input.d.ts.map +1 -1
  65. package/dist/ui/currency-input/currency-input.js +3 -1
  66. package/dist/ui/currency-input/currency-input.js.map +1 -1
  67. package/dist/ui/date-input/date-input.cjs +2 -1
  68. package/dist/ui/date-input/date-input.cjs.map +1 -1
  69. package/dist/ui/date-input/date-input.d.ts +11 -1
  70. package/dist/ui/date-input/date-input.d.ts.map +1 -1
  71. package/dist/ui/date-input/date-input.js +2 -1
  72. package/dist/ui/date-input/date-input.js.map +1 -1
  73. package/dist/ui/editable-cell/editable-cell.cjs +20 -6
  74. package/dist/ui/editable-cell/editable-cell.cjs.map +1 -1
  75. package/dist/ui/editable-cell/editable-cell.d.ts +24 -1
  76. package/dist/ui/editable-cell/editable-cell.d.ts.map +1 -1
  77. package/dist/ui/editable-cell/editable-cell.js +20 -6
  78. package/dist/ui/editable-cell/editable-cell.js.map +1 -1
  79. package/dist/ui/file-upload/file-upload.cjs +36 -9
  80. package/dist/ui/file-upload/file-upload.cjs.map +1 -1
  81. package/dist/ui/file-upload/file-upload.d.ts +46 -4
  82. package/dist/ui/file-upload/file-upload.d.ts.map +1 -1
  83. package/dist/ui/file-upload/file-upload.js +36 -9
  84. package/dist/ui/file-upload/file-upload.js.map +1 -1
  85. package/dist/ui/index.cjs +12 -2
  86. package/dist/ui/index.cjs.map +1 -1
  87. package/dist/ui/index.d.ts +5 -1
  88. package/dist/ui/index.d.ts.map +1 -1
  89. package/dist/ui/index.js +7 -1
  90. package/dist/ui/index.js.map +1 -1
  91. package/dist/ui/language-switcher/index.cjs +29 -0
  92. package/dist/ui/language-switcher/index.cjs.map +1 -0
  93. package/dist/ui/language-switcher/index.d.ts +3 -0
  94. package/dist/ui/language-switcher/index.d.ts.map +1 -0
  95. package/dist/ui/language-switcher/index.js +5 -0
  96. package/dist/ui/language-switcher/index.js.map +1 -0
  97. package/dist/ui/language-switcher/language-switcher-preview.cjs +137 -0
  98. package/dist/ui/language-switcher/language-switcher-preview.cjs.map +1 -0
  99. package/dist/ui/language-switcher/language-switcher-preview.d.ts +3 -0
  100. package/dist/ui/language-switcher/language-switcher-preview.d.ts.map +1 -0
  101. package/dist/ui/language-switcher/language-switcher-preview.js +113 -0
  102. package/dist/ui/language-switcher/language-switcher-preview.js.map +1 -0
  103. package/dist/ui/language-switcher/language-switcher.cjs +127 -0
  104. package/dist/ui/language-switcher/language-switcher.cjs.map +1 -0
  105. package/dist/ui/language-switcher/language-switcher.css +95 -0
  106. package/dist/ui/language-switcher/language-switcher.d.ts +73 -0
  107. package/dist/ui/language-switcher/language-switcher.d.ts.map +1 -0
  108. package/dist/ui/language-switcher/language-switcher.js +103 -0
  109. package/dist/ui/language-switcher/language-switcher.js.map +1 -0
  110. package/dist/ui/locale/index.cjs +33 -0
  111. package/dist/ui/locale/index.cjs.map +1 -0
  112. package/dist/ui/locale/index.d.ts +3 -0
  113. package/dist/ui/locale/index.d.ts.map +1 -0
  114. package/dist/ui/locale/index.js +7 -0
  115. package/dist/ui/locale/index.js.map +1 -0
  116. package/dist/ui/locale/locale.cjs +43 -0
  117. package/dist/ui/locale/locale.cjs.map +1 -0
  118. package/dist/ui/locale/locale.d.ts +49 -0
  119. package/dist/ui/locale/locale.d.ts.map +1 -0
  120. package/dist/ui/locale/locale.js +17 -0
  121. package/dist/ui/locale/locale.js.map +1 -0
  122. package/dist/ui/page-shell/page-shell.cjs.map +1 -1
  123. package/dist/ui/page-shell/page-shell.d.ts +1 -1
  124. package/dist/ui/page-shell/page-shell.d.ts.map +1 -1
  125. package/dist/ui/page-shell/page-shell.js.map +1 -1
  126. package/dist/ui/range-slider/range-slider.cjs +7 -3
  127. package/dist/ui/range-slider/range-slider.cjs.map +1 -1
  128. package/dist/ui/range-slider/range-slider.d.ts +17 -1
  129. package/dist/ui/range-slider/range-slider.d.ts.map +1 -1
  130. package/dist/ui/range-slider/range-slider.js +7 -3
  131. package/dist/ui/range-slider/range-slider.js.map +1 -1
  132. package/dist/ui/styles.css +2 -1
  133. package/package.json +4 -5
@@ -477,7 +477,7 @@ const diagramDefs = [
477
477
  }
478
478
  ],
479
479
  api: {
480
- importPath: "@viax.io/uxm/ui",
480
+ importPath: "@viax/uxm/ui",
481
481
  importNames: ["Dialog", "Modal"],
482
482
  props: [
483
483
  { name: "open", type: "boolean", required: true, description: "Dialog open state (controlled). Pair with onOpenChange." },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/studio/lib/registry/diagram.ts"],"sourcesContent":["import type { ComponentDef } from '../types';\n\nexport const diagramDefs: ComponentDef[] = [\n // ── Diagram (BI Lifecycle) ──\n {\n id: 'lifecycle-node-card',\n name: 'Lifecycle Node Card',\n category: 'Diagram',\n description: 'State / Condition / Task / Business Interaction node card used in the BI Lifecycle canvas.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 16, 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: 12, min: 6, max: 24, step: 2, unit: 'px' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 280, min: 200, max: 360, step: 10, unit: 'px' },\n { key: 'minHeight', label: 'Min Height', control: 'number', defaultValue: 0, min: 0, max: 120, step: 2, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 32, min: 24, max: 48, step: 2, unit: 'px' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 14, min: 11, max: 18, step: 1, unit: 'px' },\n { key: 'kindSize', label: 'Kind Label Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'type',\n label: 'Node Type',\n options: [\n { value: 'state', label: 'State' },\n { value: 'condition', label: 'Condition' },\n { value: 'task', label: 'Task' },\n { value: 'interaction', label: 'Business Interaction' },\n ],\n defaultValue: 'state',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires when the user clicks the node card. Typically opens an inspector or selects the node.', payload: 'MouseEvent' },\n ],\n },\n {\n id: 'lifecycle-terminal',\n name: 'Lifecycle Terminal',\n category: 'Diagram',\n description: \"Start / End pill used as the graph's terminal nodes.\",\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 4, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 60, min: 40, max: 120, step: 4, unit: 'px' },\n { key: 'height', label: 'Height', control: 'number', defaultValue: 32, min: 20, max: 48, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n ],\n layoutVariants: [\n {\n key: 'label',\n label: 'Label',\n options: [\n { value: 'Start', label: 'Start' },\n { value: 'End', label: 'End' },\n ],\n defaultValue: 'Start',\n },\n ],\n },\n {\n id: 'lifecycle-edge-label',\n name: 'Lifecycle Edge Label',\n category: 'Diagram',\n description: 'Pill label attached to a transition edge (true / false / custom).',\n styleProperties: [\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 1, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 3, min: 0, max: 10, step: 1, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 999, min: 4, max: 999, step: 1, unit: 'px' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1, min: 0, max: 3, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 9, max: 16, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n ],\n layoutVariants: [\n {\n key: 'variant',\n label: 'Variant',\n options: [\n { value: 'true', label: 'True' },\n { value: 'false', label: 'False' },\n { value: 'neutral', label: 'Custom / Neutral' },\n ],\n defaultValue: 'true',\n },\n ],\n },\n {\n id: 'lifecycle-plus-button',\n name: 'Lifecycle Plus Button',\n category: 'Diagram',\n description: 'Floating circular + button used to insert a node on a canvas edge.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'hoverBackgroundColor', label: 'Hover Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'color', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'colors' },\n { key: 'size', label: 'Size', control: 'number', defaultValue: 24, min: 16, max: 40, step: 2, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 14, min: 8, max: 24, step: 1, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'lifecycle-connector',\n name: 'Lifecycle Connector',\n category: 'Diagram',\n description: 'Edge between two nodes — idle / hovered stroke, thickness, arrow, dashed variant, and straight / Bezier / elbow routing.',\n styleProperties: [\n // Paint is scoped to the State picker — one Color / Stroke Width pair\n // that follows the selected state, rather than three parallel knobs of\n // which two are inert at any moment. Keys keep their `connector*` prefix\n // so themes saved before this regrouping still resolve.\n { key: 'connectorIdleColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'states', showWhen: { state: 'idle' } },\n { key: 'connectorIdleStrokeWidth', label: 'Stroke Width', control: 'slider', defaultValue: 1.5, min: 0.5, max: 4, step: 0.5, unit: 'px', section: 'states', showWhen: { state: 'idle' } },\n // Active colour/width also drive `dashed-active` — it shares the active\n // emphasis, so its knobs surface for both states.\n { key: 'connectorActiveColor', label: 'Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: ['active', 'dashed-active'] } },\n { key: 'connectorActiveStrokeWidth', label: 'Stroke Width', control: 'slider', defaultValue: 2, min: 0.5, max: 5, step: 0.5, unit: 'px', section: 'states', showWhen: { state: ['active', 'dashed-active'] } },\n { key: 'connectorDashedColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'dashed' } },\n { key: 'connectorDashedStrokeWidth', label: 'Stroke Width', control: 'slider', defaultValue: 1.5, min: 0.5, max: 4, step: 0.5, unit: 'px', section: 'states', showWhen: { state: 'dashed' } },\n // The dash pattern applies to both dashed states.\n { key: 'connectorDashPattern', label: 'Dash Pattern', control: 'text', defaultValue: '6 4', section: 'states', showWhen: { state: ['dashed', 'dashed-active'] } },\n { key: 'connectorArrowSize', label: 'Arrow Size', control: 'number', defaultValue: 7, min: 3, max: 14, step: 1, unit: 'px' },\n // No knobs for `crossAt` / `cornerRadius` on purpose. Where an elbow's\n // cross bus sits is per-edge geometry — the same kind of value as\n // `from` / `to` — so it belongs to the diagram's layout code, not to a\n // saved theme. They stay props.\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'idle', label: 'Idle' },\n { value: 'active', label: 'Active' },\n { value: 'dashed', label: 'Dashed (false)' },\n { value: 'dashed-active', label: 'Dashed · Active' },\n ],\n defaultValue: 'idle',\n },\n {\n key: 'routing',\n label: 'Routing',\n options: [\n { value: 'auto', label: 'Auto' },\n { value: 'straight', label: 'Straight' },\n { value: 'bezier', label: 'Bezier' },\n { value: 'orthogonal', label: 'Elbow' },\n ],\n defaultValue: 'auto',\n },\n {\n key: 'startDot',\n label: 'Start Dot',\n options: [\n { value: 'on', label: 'On' },\n { value: 'off', label: 'Off' },\n ],\n defaultValue: 'on',\n },\n {\n key: 'arrowhead',\n label: 'Arrowhead',\n options: [\n { value: 'triangle', label: 'Triangle' },\n { value: 'line', label: 'Line' },\n ],\n defaultValue: 'triangle',\n },\n ],\n },\n {\n id: 'lifecycle-connector-knobs',\n name: 'Lifecycle Connector Knobs',\n category: 'Diagram',\n description: 'Pair of insert (+) and rename (pencil) circles that appear when hovering a connector.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Circle Fill', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'size', label: 'Diameter', control: 'number', defaultValue: 22, min: 16, max: 36, step: 1, unit: 'px' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1.5, min: 0.5, max: 3, step: 0.5, unit: 'px' },\n { key: 'insertBorderColor', label: 'Insert Border', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'insertIconColor', label: 'Insert Icon', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'editBorderColor', label: 'Edit Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'editIconColor', label: 'Edit Icon', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'gap', label: 'Gap Between Knobs', control: 'number', defaultValue: 4, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'orientation',\n label: 'Orientation',\n options: [\n { value: 'horizontal', label: 'Horizontal' },\n { value: 'vertical', label: 'Vertical' },\n ],\n defaultValue: 'horizontal',\n },\n ],\n },\n {\n id: 'lifecycle-drop-slot',\n name: 'Lifecycle Drop Slot',\n category: 'Diagram',\n description:\n 'Dashed slot showing where a dragged node can land — card-sized for a node, pill-sized for the group a drop would mint.',\n styleProperties: [\n // Knob keys stay the plain CSS-ish names — no `dropSlot*` prefix, which\n // the generator would turn into `--uxm-lifecycle-drop-slot-drop-slot-*`\n // (the lifecycle-connector trap).\n //\n // Dashes and label are separate knobs sharing one default, so they read as\n // one signal until someone deliberately moves them apart. Both default to\n // `var(--color-accent-bold)` rather than the `--color-drop-target` alias —\n // the alias isn't a `themeTokens` entry, so the picker would render its raw\n // var string, and accent (what the alias resolves to) measures 1.92:1 as\n // ink on this fill.\n { key: 'borderColor', label: 'Dashes', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'color', label: 'Text', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n // A LIVE token, not a raw expression: `themeTokens` is what the picker's\n // swatch list is built from, so a `color-mix(…)` default would render as\n // unreadable text. The fill is flat, so what is picked here is what paints.\n { key: 'bg', label: 'Fill', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'colors' },\n // Style + width are the two levers on how the edge reads, the same pair\n // FileUpload's drop area exposes. Neither is a dash PATTERN — the UA\n // derives dash length from the width, and CSS has no property for the\n // pattern itself.\n //\n // Both apply to either shape, so they stay in the unscoped section — the\n // panel then subtitles them \"Shared across all shapes\" while the two shape\n // sections below read \"Per Shape · …\". Mixing them into one section is what\n // made the group box's panel claim shared knobs were per-state.\n { key: 'borderStyle', label: 'Border Style', control: 'select', defaultValue: 'dashed', options: ['dashed', 'solid', 'dotted'] },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1, min: 1, max: 3, step: 1, unit: 'px' },\n // Card-only. Labels drop the \"Card\" prefix — the section heading carries\n // it, and short labels don't truncate in the narrow panel orientation.\n { key: 'cardRadius', label: 'Radius', control: 'slider', defaultValue: 10, min: 0, max: 20, step: 1, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n { key: 'cardPaddingX', label: 'Padding X', control: 'number', defaultValue: 16, min: 4, max: 32, step: 2, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n { key: 'cardFontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 9, max: 16, step: 1, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n { key: 'cardMinWidth', label: 'Min Width', control: 'number', defaultValue: 72, min: 40, max: 160, step: 4, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n // No card HEIGHT knob: that one is shared with the node card through the\n // token layer, so it isn't per-component. The atom does expose\n // `--uxm-lifecycle-drop-slot-card-min-height` for a canvas that owns node\n // geometry and needs to zero the floor — a consumer escape hatch, not a\n // theme value, so it gets no knob either.\n //\n // Pill-only. Same 4–999 range LifecycleEdgeLabel uses for its own pill\n // radius: everything at or above half the height reads as a full pill, so\n // the useful travel is the bottom of the slider.\n { key: 'pillRadius', label: 'Radius', control: 'slider', defaultValue: 999, min: 4, max: 999, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n { key: 'pillPaddingY', label: 'Padding Y', control: 'number', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n { key: 'pillPaddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n // 13 matches Chip assist (`--uxm-chip-assist-font-size`), which is what the\n // real group pill is drawn with, so the placeholder doesn't change size on\n // drop.\n { key: 'pillFontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 16, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n ],\n layoutVariants: [\n // The preview renders the SELECTED shape only. A picker that left both on\n // canvas would be a control that changes nothing there — the same reason\n // `interactive` gets no knob (it moves hit-testing only, never a pixel, and\n // the canvas has no drag to demonstrate it with). It stays a prop,\n // documented in the README.\n {\n key: 'shape',\n label: 'Shape',\n // Named for what the slot stands in for — the node a drop would create,\n // or the group it would mint — not for a pixel size. \"node-sized\" read\n // as a dimension and obscured that.\n options: [\n { value: 'card', label: 'Card (node)' },\n { value: 'pill', label: 'Pill (group)' },\n ],\n defaultValue: 'card',\n },\n ],\n events: [\n { name: 'onDragOver', description: 'Fires while a dragged node is over the slot. Requires interactive; call preventDefault to accept the drop.', payload: 'DragEvent' },\n { name: 'onDrop', description: 'Fires when a node is dropped on the slot. The consumer creates the node or group; the atom carries no logic.', payload: 'DragEvent' },\n { name: 'onDragLeave', description: \"Fires when the drag leaves the slot — the consumer's cue to unmount it, since the slot exists only while it is the target.\", payload: 'DragEvent' },\n ],\n },\n {\n id: 'lifecycle-group-box',\n name: 'Lifecycle Group Box',\n category: 'Diagram',\n description:\n 'Frosted frame around the sibling nodes of one group — and, on an editable diagram, the drop zone for adding a member to it.',\n styleProperties: [\n // Knob keys are the ordinary CSS-ish names every other atom uses\n // (`backgroundColor`, `borderWidth`, …), deliberately NOT prefixed with\n // the component's own name: `groupBoxBg` under id `lifecycle-group-box`\n // would have the generator emit\n // `--uxm-lifecycle-group-box-group-box-bg`. That doubling is exactly what\n // happened to lifecycle-connector, whose published themes now need a\n // permanent fallback alias.\n // Both colour knobs default to a LIVE token, not to the literal CSS the\n // rule resolves to: `themeTokens` is what the editor's swatch list is\n // built from, so a raw `color-mix(…)` / `var(--color-drop-target)` string\n // renders as unreadable text in the picker instead of a named colour.\n // The atom applies its own 55% frost around this value (see the\n // stylesheet), which is why Card — the frosted colour — is the honest\n // default here rather than the mix.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1, min: 0, max: 4, step: 1, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 14, min: 0, max: 28, step: 1, unit: 'px' },\n // The group's single spacing number: the canvas insets its members by it\n // AND derives the box rect from it, so there is one knob rather than a\n // box padding and a member inset that can drift apart. The inset ring is\n // internal and deliberately not exposed.\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 20, min: 8, max: 40, step: 2, unit: 'px' },\n { key: 'blur', label: 'Backdrop Blur', control: 'slider', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px' },\n // The state-scoped knobs get their OWN section, the way\n // lifecycle-connector's do. Mixed into `colors` / `style` they dragged\n // those whole sections into a \"Per State · Drop target\" subtitle — the\n // panel derives it from every prop in a section — which claimed the\n // Background, Padding and Radius above were per-state when they are\n // shared. Split out, each section states the truth: Colors / Style read\n // \"Shared across all states\", and only this one is per-state. It also\n // disappears entirely on `default`, since the panel builds its sections\n // from VISIBLE props.\n //\n // The section is named for what it themes (\"Drop Outline\") so the three\n // labels can stay one word each. Prefixing them instead — Outline Color /\n // Outline Width / Outline Offset — reads as the same set but pays for it\n // in ellipses: the panel truncates a label around 13 characters in its\n // narrow orientation, so `Outline Offset` arrives as \"Outline O…\". One\n // word in the heading beats the same word truncated three times.\n //\n // `var(--color-accent)` rather than `var(--color-drop-target)`: the alias\n // isn't a `themeTokens` entry (deliberately — see tokens/index.css), so\n // the picker would show the raw var string, and the two resolve to the\n // same colour anyway. The CSS chain is still knob → alias → accent, so a\n // consumer who re-points the alias changes the paint without this\n // default following.\n { key: 'targetColor', label: 'Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'dropOutline', showWhen: { state: 'target' } },\n { key: 'targetWidth', label: 'Width', control: 'slider', defaultValue: 2, min: 1, max: 5, step: 1, unit: 'px', section: 'dropOutline', showWhen: { state: 'target' } },\n { key: 'targetOffset', label: 'Offset', control: 'number', defaultValue: 2, min: 0, max: 8, step: 1, unit: 'px', section: 'dropOutline', showWhen: { state: 'target' } },\n ],\n layoutVariants: [\n // A State picker, like lifecycle-connector's, rather than a \"Drop Target\"\n // On/Off: the panel builds its section subtitles out of the variant LABEL\n // (\"Per {label}\" when scoped, \"Shared across all {label}s\" otherwise), and\n // \"Shared across all drop targets\" was actively misleading on the plain\n // style knobs — they are shared across STATES, and there is one box, not\n // many targets.\n //\n // There is no `interactive` picker: that prop moves hit-testing only,\n // never a pixel, and a variant that changes nothing on the canvas reads\n // as a broken toggle. It stays a prop, documented in the README.\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'target', label: 'Drop target' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onDragOver', description: 'Fires while a dragged node is over the group. Requires interactive; call preventDefault to accept the drop.', payload: 'DragEvent' },\n { name: 'onDragEnter', description: 'Fires when a drag enters the group — the consumer\\'s cue to set `target`.', payload: 'DragEvent' },\n { name: 'onDragLeave', description: 'Fires when a drag leaves the group — clear `target` here.', payload: 'DragEvent' },\n { name: 'onDrop', description: 'Fires when a node is dropped on the group. The consumer adds the member; the atom carries no logic.', payload: 'DragEvent' },\n ],\n },\n {\n id: 'lifecycle-zoom-control',\n name: 'Lifecycle Zoom Control',\n category: 'Diagram',\n description: 'Segmented −/percent/+ zoom control docked at the canvas corner.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'buttonSize', label: 'Button Size', control: 'number', defaultValue: 32, min: 24, max: 48, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Value Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n ],\n layoutVariants: [],\n },\n {\n id: 'lifecycle-minimap',\n name: 'Lifecycle Minimap',\n category: 'Diagram',\n description: 'Miniature graph overview with a viewport indicator.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'nodeColor', label: 'Node Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'edgeColor', label: 'Edge Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'viewportBorder', label: 'Viewport Border', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'viewportFill', label: 'Viewport Fill', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-accent) 10%, transparent)', section: 'colors' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 240, min: 160, max: 320, step: 10, unit: 'px' },\n { key: 'height', label: 'Height', control: 'number', defaultValue: 104, min: 60, max: 200, step: 4, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'lifecycle-action-row',\n name: 'Lifecycle Action Row',\n category: 'Diagram',\n description: 'Row with a type badge + action name + delete — used inside the node flexpane.',\n styleProperties: [\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 6, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 4, max: 20, step: 2, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 10, min: 4, max: 20, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Text Size', control: 'number', defaultValue: 13, min: 10, max: 16, step: 1, unit: 'px' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'badgeRadius', label: 'Badge Radius', control: 'slider', defaultValue: 999, min: 4, max: 999, step: 1, unit: 'px' },\n { key: 'badgeSize', label: 'Badge Text Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'actionType',\n label: 'Action Type',\n options: [\n { value: 'notify', label: 'Notify' },\n { value: 'transform', label: 'Transform' },\n { value: 'validate', label: 'Validate' },\n ],\n defaultValue: 'notify',\n },\n ],\n },\n {\n id: 'modal',\n name: 'Modal',\n category: 'Feedback',\n description:\n 'Standard modal panel — header / body / footer slots — rendered inside the Dialog shell. Theming knobs live here; backdrop styling is global (tokens).',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', 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: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 8, 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: 12, max: 24, step: 1, unit: 'px' },\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n ],\n layoutVariants: [\n {\n key: 'size',\n label: 'Size',\n options: [\n { value: 'sm', label: 'Small (360px)' },\n { value: 'md', label: 'Medium (480px)' },\n { value: 'lg', label: 'Large (640px)' },\n { value: 'fullscreen', label: 'Fullscreen' },\n ],\n defaultValue: 'md',\n },\n ],\n api: {\n importPath: '@viax.io/uxm/ui',\n importNames: ['Dialog', 'Modal'],\n props: [\n { name: 'open', type: 'boolean', required: true, description: 'Dialog open state (controlled). Pair with onOpenChange.' },\n { name: 'onOpenChange', type: '(open: boolean) => void', required: true, description: 'Called when the user requests close (Escape or backdrop click).' },\n { name: 'size', type: '\"sm\" | \"md\" | \"lg\" | \"fullscreen\"', defaultValue: '\"md\"', description: 'Modal panel width preset.' },\n { name: 'onClose', type: '() => void', description: 'When set, Modal.Header renders a close X that calls this.' },\n { name: 'closeOnEscape', type: 'boolean', defaultValue: 'true', description: 'Escape key dismisses the dialog.' },\n { name: 'closeOnOutsideClick', type: 'boolean', defaultValue: 'true', description: 'Backdrop click dismisses the dialog.' },\n { name: 'initialFocus', type: 'RefObject<HTMLElement>', description: 'Element to focus on open. Defaults to first focusable in panel.' },\n ],\n },\n },\n];\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/studio/lib/registry/diagram.ts"],"sourcesContent":["import type { ComponentDef } from '../types';\n\nexport const diagramDefs: ComponentDef[] = [\n // ── Diagram (BI Lifecycle) ──\n {\n id: 'lifecycle-node-card',\n name: 'Lifecycle Node Card',\n category: 'Diagram',\n description: 'State / Condition / Task / Business Interaction node card used in the BI Lifecycle canvas.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 16, 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: 12, min: 6, max: 24, step: 2, unit: 'px' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 280, min: 200, max: 360, step: 10, unit: 'px' },\n { key: 'minHeight', label: 'Min Height', control: 'number', defaultValue: 0, min: 0, max: 120, step: 2, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 32, min: 24, max: 48, step: 2, unit: 'px' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 14, min: 11, max: 18, step: 1, unit: 'px' },\n { key: 'kindSize', label: 'Kind Label Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'type',\n label: 'Node Type',\n options: [\n { value: 'state', label: 'State' },\n { value: 'condition', label: 'Condition' },\n { value: 'task', label: 'Task' },\n { value: 'interaction', label: 'Business Interaction' },\n ],\n defaultValue: 'state',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires when the user clicks the node card. Typically opens an inspector or selects the node.', payload: 'MouseEvent' },\n ],\n },\n {\n id: 'lifecycle-terminal',\n name: 'Lifecycle Terminal',\n category: 'Diagram',\n description: \"Start / End pill used as the graph's terminal nodes.\",\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 4, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 60, min: 40, max: 120, step: 4, unit: 'px' },\n { key: 'height', label: 'Height', control: 'number', defaultValue: 32, min: 20, max: 48, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n ],\n layoutVariants: [\n {\n key: 'label',\n label: 'Label',\n options: [\n { value: 'Start', label: 'Start' },\n { value: 'End', label: 'End' },\n ],\n defaultValue: 'Start',\n },\n ],\n },\n {\n id: 'lifecycle-edge-label',\n name: 'Lifecycle Edge Label',\n category: 'Diagram',\n description: 'Pill label attached to a transition edge (true / false / custom).',\n styleProperties: [\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 1, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 3, min: 0, max: 10, step: 1, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 999, min: 4, max: 999, step: 1, unit: 'px' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1, min: 0, max: 3, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 9, max: 16, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n ],\n layoutVariants: [\n {\n key: 'variant',\n label: 'Variant',\n options: [\n { value: 'true', label: 'True' },\n { value: 'false', label: 'False' },\n { value: 'neutral', label: 'Custom / Neutral' },\n ],\n defaultValue: 'true',\n },\n ],\n },\n {\n id: 'lifecycle-plus-button',\n name: 'Lifecycle Plus Button',\n category: 'Diagram',\n description: 'Floating circular + button used to insert a node on a canvas edge.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'hoverBackgroundColor', label: 'Hover Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'color', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'colors' },\n { key: 'size', label: 'Size', control: 'number', defaultValue: 24, min: 16, max: 40, step: 2, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 14, min: 8, max: 24, step: 1, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'lifecycle-connector',\n name: 'Lifecycle Connector',\n category: 'Diagram',\n description: 'Edge between two nodes — idle / hovered stroke, thickness, arrow, dashed variant, and straight / Bezier / elbow routing.',\n styleProperties: [\n // Paint is scoped to the State picker — one Color / Stroke Width pair\n // that follows the selected state, rather than three parallel knobs of\n // which two are inert at any moment. Keys keep their `connector*` prefix\n // so themes saved before this regrouping still resolve.\n { key: 'connectorIdleColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'states', showWhen: { state: 'idle' } },\n { key: 'connectorIdleStrokeWidth', label: 'Stroke Width', control: 'slider', defaultValue: 1.5, min: 0.5, max: 4, step: 0.5, unit: 'px', section: 'states', showWhen: { state: 'idle' } },\n // Active colour/width also drive `dashed-active` — it shares the active\n // emphasis, so its knobs surface for both states.\n { key: 'connectorActiveColor', label: 'Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: ['active', 'dashed-active'] } },\n { key: 'connectorActiveStrokeWidth', label: 'Stroke Width', control: 'slider', defaultValue: 2, min: 0.5, max: 5, step: 0.5, unit: 'px', section: 'states', showWhen: { state: ['active', 'dashed-active'] } },\n { key: 'connectorDashedColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'dashed' } },\n { key: 'connectorDashedStrokeWidth', label: 'Stroke Width', control: 'slider', defaultValue: 1.5, min: 0.5, max: 4, step: 0.5, unit: 'px', section: 'states', showWhen: { state: 'dashed' } },\n // The dash pattern applies to both dashed states.\n { key: 'connectorDashPattern', label: 'Dash Pattern', control: 'text', defaultValue: '6 4', section: 'states', showWhen: { state: ['dashed', 'dashed-active'] } },\n { key: 'connectorArrowSize', label: 'Arrow Size', control: 'number', defaultValue: 7, min: 3, max: 14, step: 1, unit: 'px' },\n // No knobs for `crossAt` / `cornerRadius` on purpose. Where an elbow's\n // cross bus sits is per-edge geometry — the same kind of value as\n // `from` / `to` — so it belongs to the diagram's layout code, not to a\n // saved theme. They stay props.\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'idle', label: 'Idle' },\n { value: 'active', label: 'Active' },\n { value: 'dashed', label: 'Dashed (false)' },\n { value: 'dashed-active', label: 'Dashed · Active' },\n ],\n defaultValue: 'idle',\n },\n {\n key: 'routing',\n label: 'Routing',\n options: [\n { value: 'auto', label: 'Auto' },\n { value: 'straight', label: 'Straight' },\n { value: 'bezier', label: 'Bezier' },\n { value: 'orthogonal', label: 'Elbow' },\n ],\n defaultValue: 'auto',\n },\n {\n key: 'startDot',\n label: 'Start Dot',\n options: [\n { value: 'on', label: 'On' },\n { value: 'off', label: 'Off' },\n ],\n defaultValue: 'on',\n },\n {\n key: 'arrowhead',\n label: 'Arrowhead',\n options: [\n { value: 'triangle', label: 'Triangle' },\n { value: 'line', label: 'Line' },\n ],\n defaultValue: 'triangle',\n },\n ],\n },\n {\n id: 'lifecycle-connector-knobs',\n name: 'Lifecycle Connector Knobs',\n category: 'Diagram',\n description: 'Pair of insert (+) and rename (pencil) circles that appear when hovering a connector.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Circle Fill', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'size', label: 'Diameter', control: 'number', defaultValue: 22, min: 16, max: 36, step: 1, unit: 'px' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1.5, min: 0.5, max: 3, step: 0.5, unit: 'px' },\n { key: 'insertBorderColor', label: 'Insert Border', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'insertIconColor', label: 'Insert Icon', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'editBorderColor', label: 'Edit Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'editIconColor', label: 'Edit Icon', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'gap', label: 'Gap Between Knobs', control: 'number', defaultValue: 4, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'orientation',\n label: 'Orientation',\n options: [\n { value: 'horizontal', label: 'Horizontal' },\n { value: 'vertical', label: 'Vertical' },\n ],\n defaultValue: 'horizontal',\n },\n ],\n },\n {\n id: 'lifecycle-drop-slot',\n name: 'Lifecycle Drop Slot',\n category: 'Diagram',\n description:\n 'Dashed slot showing where a dragged node can land — card-sized for a node, pill-sized for the group a drop would mint.',\n styleProperties: [\n // Knob keys stay the plain CSS-ish names — no `dropSlot*` prefix, which\n // the generator would turn into `--uxm-lifecycle-drop-slot-drop-slot-*`\n // (the lifecycle-connector trap).\n //\n // Dashes and label are separate knobs sharing one default, so they read as\n // one signal until someone deliberately moves them apart. Both default to\n // `var(--color-accent-bold)` rather than the `--color-drop-target` alias —\n // the alias isn't a `themeTokens` entry, so the picker would render its raw\n // var string, and accent (what the alias resolves to) measures 1.92:1 as\n // ink on this fill.\n { key: 'borderColor', label: 'Dashes', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'color', label: 'Text', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n // A LIVE token, not a raw expression: `themeTokens` is what the picker's\n // swatch list is built from, so a `color-mix(…)` default would render as\n // unreadable text. The fill is flat, so what is picked here is what paints.\n { key: 'bg', label: 'Fill', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'colors' },\n // Style + width are the two levers on how the edge reads, the same pair\n // FileUpload's drop area exposes. Neither is a dash PATTERN — the UA\n // derives dash length from the width, and CSS has no property for the\n // pattern itself.\n //\n // Both apply to either shape, so they stay in the unscoped section — the\n // panel then subtitles them \"Shared across all shapes\" while the two shape\n // sections below read \"Per Shape · …\". Mixing them into one section is what\n // made the group box's panel claim shared knobs were per-state.\n { key: 'borderStyle', label: 'Border Style', control: 'select', defaultValue: 'dashed', options: ['dashed', 'solid', 'dotted'] },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1, min: 1, max: 3, step: 1, unit: 'px' },\n // Card-only. Labels drop the \"Card\" prefix — the section heading carries\n // it, and short labels don't truncate in the narrow panel orientation.\n { key: 'cardRadius', label: 'Radius', control: 'slider', defaultValue: 10, min: 0, max: 20, step: 1, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n { key: 'cardPaddingX', label: 'Padding X', control: 'number', defaultValue: 16, min: 4, max: 32, step: 2, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n { key: 'cardFontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 9, max: 16, step: 1, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n { key: 'cardMinWidth', label: 'Min Width', control: 'number', defaultValue: 72, min: 40, max: 160, step: 4, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n // No card HEIGHT knob: that one is shared with the node card through the\n // token layer, so it isn't per-component. The atom does expose\n // `--uxm-lifecycle-drop-slot-card-min-height` for a canvas that owns node\n // geometry and needs to zero the floor — a consumer escape hatch, not a\n // theme value, so it gets no knob either.\n //\n // Pill-only. Same 4–999 range LifecycleEdgeLabel uses for its own pill\n // radius: everything at or above half the height reads as a full pill, so\n // the useful travel is the bottom of the slider.\n { key: 'pillRadius', label: 'Radius', control: 'slider', defaultValue: 999, min: 4, max: 999, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n { key: 'pillPaddingY', label: 'Padding Y', control: 'number', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n { key: 'pillPaddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n // 13 matches Chip assist (`--uxm-chip-assist-font-size`), which is what the\n // real group pill is drawn with, so the placeholder doesn't change size on\n // drop.\n { key: 'pillFontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 16, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n ],\n layoutVariants: [\n // The preview renders the SELECTED shape only. A picker that left both on\n // canvas would be a control that changes nothing there — the same reason\n // `interactive` gets no knob (it moves hit-testing only, never a pixel, and\n // the canvas has no drag to demonstrate it with). It stays a prop,\n // documented in the README.\n {\n key: 'shape',\n label: 'Shape',\n // Named for what the slot stands in for — the node a drop would create,\n // or the group it would mint — not for a pixel size. \"node-sized\" read\n // as a dimension and obscured that.\n options: [\n { value: 'card', label: 'Card (node)' },\n { value: 'pill', label: 'Pill (group)' },\n ],\n defaultValue: 'card',\n },\n ],\n events: [\n { name: 'onDragOver', description: 'Fires while a dragged node is over the slot. Requires interactive; call preventDefault to accept the drop.', payload: 'DragEvent' },\n { name: 'onDrop', description: 'Fires when a node is dropped on the slot. The consumer creates the node or group; the atom carries no logic.', payload: 'DragEvent' },\n { name: 'onDragLeave', description: \"Fires when the drag leaves the slot — the consumer's cue to unmount it, since the slot exists only while it is the target.\", payload: 'DragEvent' },\n ],\n },\n {\n id: 'lifecycle-group-box',\n name: 'Lifecycle Group Box',\n category: 'Diagram',\n description:\n 'Frosted frame around the sibling nodes of one group — and, on an editable diagram, the drop zone for adding a member to it.',\n styleProperties: [\n // Knob keys are the ordinary CSS-ish names every other atom uses\n // (`backgroundColor`, `borderWidth`, …), deliberately NOT prefixed with\n // the component's own name: `groupBoxBg` under id `lifecycle-group-box`\n // would have the generator emit\n // `--uxm-lifecycle-group-box-group-box-bg`. That doubling is exactly what\n // happened to lifecycle-connector, whose published themes now need a\n // permanent fallback alias.\n // Both colour knobs default to a LIVE token, not to the literal CSS the\n // rule resolves to: `themeTokens` is what the editor's swatch list is\n // built from, so a raw `color-mix(…)` / `var(--color-drop-target)` string\n // renders as unreadable text in the picker instead of a named colour.\n // The atom applies its own 55% frost around this value (see the\n // stylesheet), which is why Card — the frosted colour — is the honest\n // default here rather than the mix.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1, min: 0, max: 4, step: 1, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 14, min: 0, max: 28, step: 1, unit: 'px' },\n // The group's single spacing number: the canvas insets its members by it\n // AND derives the box rect from it, so there is one knob rather than a\n // box padding and a member inset that can drift apart. The inset ring is\n // internal and deliberately not exposed.\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 20, min: 8, max: 40, step: 2, unit: 'px' },\n { key: 'blur', label: 'Backdrop Blur', control: 'slider', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px' },\n // The state-scoped knobs get their OWN section, the way\n // lifecycle-connector's do. Mixed into `colors` / `style` they dragged\n // those whole sections into a \"Per State · Drop target\" subtitle — the\n // panel derives it from every prop in a section — which claimed the\n // Background, Padding and Radius above were per-state when they are\n // shared. Split out, each section states the truth: Colors / Style read\n // \"Shared across all states\", and only this one is per-state. It also\n // disappears entirely on `default`, since the panel builds its sections\n // from VISIBLE props.\n //\n // The section is named for what it themes (\"Drop Outline\") so the three\n // labels can stay one word each. Prefixing them instead — Outline Color /\n // Outline Width / Outline Offset — reads as the same set but pays for it\n // in ellipses: the panel truncates a label around 13 characters in its\n // narrow orientation, so `Outline Offset` arrives as \"Outline O…\". One\n // word in the heading beats the same word truncated three times.\n //\n // `var(--color-accent)` rather than `var(--color-drop-target)`: the alias\n // isn't a `themeTokens` entry (deliberately — see tokens/index.css), so\n // the picker would show the raw var string, and the two resolve to the\n // same colour anyway. The CSS chain is still knob → alias → accent, so a\n // consumer who re-points the alias changes the paint without this\n // default following.\n { key: 'targetColor', label: 'Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'dropOutline', showWhen: { state: 'target' } },\n { key: 'targetWidth', label: 'Width', control: 'slider', defaultValue: 2, min: 1, max: 5, step: 1, unit: 'px', section: 'dropOutline', showWhen: { state: 'target' } },\n { key: 'targetOffset', label: 'Offset', control: 'number', defaultValue: 2, min: 0, max: 8, step: 1, unit: 'px', section: 'dropOutline', showWhen: { state: 'target' } },\n ],\n layoutVariants: [\n // A State picker, like lifecycle-connector's, rather than a \"Drop Target\"\n // On/Off: the panel builds its section subtitles out of the variant LABEL\n // (\"Per {label}\" when scoped, \"Shared across all {label}s\" otherwise), and\n // \"Shared across all drop targets\" was actively misleading on the plain\n // style knobs — they are shared across STATES, and there is one box, not\n // many targets.\n //\n // There is no `interactive` picker: that prop moves hit-testing only,\n // never a pixel, and a variant that changes nothing on the canvas reads\n // as a broken toggle. It stays a prop, documented in the README.\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'target', label: 'Drop target' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onDragOver', description: 'Fires while a dragged node is over the group. Requires interactive; call preventDefault to accept the drop.', payload: 'DragEvent' },\n { name: 'onDragEnter', description: 'Fires when a drag enters the group — the consumer\\'s cue to set `target`.', payload: 'DragEvent' },\n { name: 'onDragLeave', description: 'Fires when a drag leaves the group — clear `target` here.', payload: 'DragEvent' },\n { name: 'onDrop', description: 'Fires when a node is dropped on the group. The consumer adds the member; the atom carries no logic.', payload: 'DragEvent' },\n ],\n },\n {\n id: 'lifecycle-zoom-control',\n name: 'Lifecycle Zoom Control',\n category: 'Diagram',\n description: 'Segmented −/percent/+ zoom control docked at the canvas corner.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'buttonSize', label: 'Button Size', control: 'number', defaultValue: 32, min: 24, max: 48, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Value Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n ],\n layoutVariants: [],\n },\n {\n id: 'lifecycle-minimap',\n name: 'Lifecycle Minimap',\n category: 'Diagram',\n description: 'Miniature graph overview with a viewport indicator.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'nodeColor', label: 'Node Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'edgeColor', label: 'Edge Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'viewportBorder', label: 'Viewport Border', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'viewportFill', label: 'Viewport Fill', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-accent) 10%, transparent)', section: 'colors' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 240, min: 160, max: 320, step: 10, unit: 'px' },\n { key: 'height', label: 'Height', control: 'number', defaultValue: 104, min: 60, max: 200, step: 4, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'lifecycle-action-row',\n name: 'Lifecycle Action Row',\n category: 'Diagram',\n description: 'Row with a type badge + action name + delete — used inside the node flexpane.',\n styleProperties: [\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 6, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 4, max: 20, step: 2, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 10, min: 4, max: 20, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Text Size', control: 'number', defaultValue: 13, min: 10, max: 16, step: 1, unit: 'px' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'badgeRadius', label: 'Badge Radius', control: 'slider', defaultValue: 999, min: 4, max: 999, step: 1, unit: 'px' },\n { key: 'badgeSize', label: 'Badge Text Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'actionType',\n label: 'Action Type',\n options: [\n { value: 'notify', label: 'Notify' },\n { value: 'transform', label: 'Transform' },\n { value: 'validate', label: 'Validate' },\n ],\n defaultValue: 'notify',\n },\n ],\n },\n {\n id: 'modal',\n name: 'Modal',\n category: 'Feedback',\n description:\n 'Standard modal panel — header / body / footer slots — rendered inside the Dialog shell. Theming knobs live here; backdrop styling is global (tokens).',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', 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: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 8, 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: 12, max: 24, step: 1, unit: 'px' },\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n ],\n layoutVariants: [\n {\n key: 'size',\n label: 'Size',\n options: [\n { value: 'sm', label: 'Small (360px)' },\n { value: 'md', label: 'Medium (480px)' },\n { value: 'lg', label: 'Large (640px)' },\n { value: 'fullscreen', label: 'Fullscreen' },\n ],\n defaultValue: 'md',\n },\n ],\n api: {\n importPath: '@viax/uxm/ui',\n importNames: ['Dialog', 'Modal'],\n props: [\n { name: 'open', type: 'boolean', required: true, description: 'Dialog open state (controlled). Pair with onOpenChange.' },\n { name: 'onOpenChange', type: '(open: boolean) => void', required: true, description: 'Called when the user requests close (Escape or backdrop click).' },\n { name: 'size', type: '\"sm\" | \"md\" | \"lg\" | \"fullscreen\"', defaultValue: '\"md\"', description: 'Modal panel width preset.' },\n { name: 'onClose', type: '() => void', description: 'When set, Modal.Header renders a close X that calls this.' },\n { name: 'closeOnEscape', type: 'boolean', defaultValue: 'true', description: 'Escape key dismisses the dialog.' },\n { name: 'closeOnOutsideClick', type: 'boolean', defaultValue: 'true', description: 'Backdrop click dismisses the dialog.' },\n { name: 'initialFocus', type: 'RefObject<HTMLElement>', description: 'Element to focus on open. Defaults to first focusable in panel.' },\n ],\n },\n },\n];\n"],"mappings":"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","names":[]}
@@ -454,7 +454,7 @@ const diagramDefs = [
454
454
  }
455
455
  ],
456
456
  api: {
457
- importPath: "@viax.io/uxm/ui",
457
+ importPath: "@viax/uxm/ui",
458
458
  importNames: ["Dialog", "Modal"],
459
459
  props: [
460
460
  { name: "open", type: "boolean", required: true, description: "Dialog open state (controlled). Pair with onOpenChange." },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/studio/lib/registry/diagram.ts"],"sourcesContent":["import type { ComponentDef } from '../types';\n\nexport const diagramDefs: ComponentDef[] = [\n // ── Diagram (BI Lifecycle) ──\n {\n id: 'lifecycle-node-card',\n name: 'Lifecycle Node Card',\n category: 'Diagram',\n description: 'State / Condition / Task / Business Interaction node card used in the BI Lifecycle canvas.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 16, 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: 12, min: 6, max: 24, step: 2, unit: 'px' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 280, min: 200, max: 360, step: 10, unit: 'px' },\n { key: 'minHeight', label: 'Min Height', control: 'number', defaultValue: 0, min: 0, max: 120, step: 2, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 32, min: 24, max: 48, step: 2, unit: 'px' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 14, min: 11, max: 18, step: 1, unit: 'px' },\n { key: 'kindSize', label: 'Kind Label Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'type',\n label: 'Node Type',\n options: [\n { value: 'state', label: 'State' },\n { value: 'condition', label: 'Condition' },\n { value: 'task', label: 'Task' },\n { value: 'interaction', label: 'Business Interaction' },\n ],\n defaultValue: 'state',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires when the user clicks the node card. Typically opens an inspector or selects the node.', payload: 'MouseEvent' },\n ],\n },\n {\n id: 'lifecycle-terminal',\n name: 'Lifecycle Terminal',\n category: 'Diagram',\n description: \"Start / End pill used as the graph's terminal nodes.\",\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 4, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 60, min: 40, max: 120, step: 4, unit: 'px' },\n { key: 'height', label: 'Height', control: 'number', defaultValue: 32, min: 20, max: 48, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n ],\n layoutVariants: [\n {\n key: 'label',\n label: 'Label',\n options: [\n { value: 'Start', label: 'Start' },\n { value: 'End', label: 'End' },\n ],\n defaultValue: 'Start',\n },\n ],\n },\n {\n id: 'lifecycle-edge-label',\n name: 'Lifecycle Edge Label',\n category: 'Diagram',\n description: 'Pill label attached to a transition edge (true / false / custom).',\n styleProperties: [\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 1, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 3, min: 0, max: 10, step: 1, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 999, min: 4, max: 999, step: 1, unit: 'px' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1, min: 0, max: 3, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 9, max: 16, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n ],\n layoutVariants: [\n {\n key: 'variant',\n label: 'Variant',\n options: [\n { value: 'true', label: 'True' },\n { value: 'false', label: 'False' },\n { value: 'neutral', label: 'Custom / Neutral' },\n ],\n defaultValue: 'true',\n },\n ],\n },\n {\n id: 'lifecycle-plus-button',\n name: 'Lifecycle Plus Button',\n category: 'Diagram',\n description: 'Floating circular + button used to insert a node on a canvas edge.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'hoverBackgroundColor', label: 'Hover Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'color', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'colors' },\n { key: 'size', label: 'Size', control: 'number', defaultValue: 24, min: 16, max: 40, step: 2, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 14, min: 8, max: 24, step: 1, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'lifecycle-connector',\n name: 'Lifecycle Connector',\n category: 'Diagram',\n description: 'Edge between two nodes — idle / hovered stroke, thickness, arrow, dashed variant, and straight / Bezier / elbow routing.',\n styleProperties: [\n // Paint is scoped to the State picker — one Color / Stroke Width pair\n // that follows the selected state, rather than three parallel knobs of\n // which two are inert at any moment. Keys keep their `connector*` prefix\n // so themes saved before this regrouping still resolve.\n { key: 'connectorIdleColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'states', showWhen: { state: 'idle' } },\n { key: 'connectorIdleStrokeWidth', label: 'Stroke Width', control: 'slider', defaultValue: 1.5, min: 0.5, max: 4, step: 0.5, unit: 'px', section: 'states', showWhen: { state: 'idle' } },\n // Active colour/width also drive `dashed-active` — it shares the active\n // emphasis, so its knobs surface for both states.\n { key: 'connectorActiveColor', label: 'Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: ['active', 'dashed-active'] } },\n { key: 'connectorActiveStrokeWidth', label: 'Stroke Width', control: 'slider', defaultValue: 2, min: 0.5, max: 5, step: 0.5, unit: 'px', section: 'states', showWhen: { state: ['active', 'dashed-active'] } },\n { key: 'connectorDashedColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'dashed' } },\n { key: 'connectorDashedStrokeWidth', label: 'Stroke Width', control: 'slider', defaultValue: 1.5, min: 0.5, max: 4, step: 0.5, unit: 'px', section: 'states', showWhen: { state: 'dashed' } },\n // The dash pattern applies to both dashed states.\n { key: 'connectorDashPattern', label: 'Dash Pattern', control: 'text', defaultValue: '6 4', section: 'states', showWhen: { state: ['dashed', 'dashed-active'] } },\n { key: 'connectorArrowSize', label: 'Arrow Size', control: 'number', defaultValue: 7, min: 3, max: 14, step: 1, unit: 'px' },\n // No knobs for `crossAt` / `cornerRadius` on purpose. Where an elbow's\n // cross bus sits is per-edge geometry — the same kind of value as\n // `from` / `to` — so it belongs to the diagram's layout code, not to a\n // saved theme. They stay props.\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'idle', label: 'Idle' },\n { value: 'active', label: 'Active' },\n { value: 'dashed', label: 'Dashed (false)' },\n { value: 'dashed-active', label: 'Dashed · Active' },\n ],\n defaultValue: 'idle',\n },\n {\n key: 'routing',\n label: 'Routing',\n options: [\n { value: 'auto', label: 'Auto' },\n { value: 'straight', label: 'Straight' },\n { value: 'bezier', label: 'Bezier' },\n { value: 'orthogonal', label: 'Elbow' },\n ],\n defaultValue: 'auto',\n },\n {\n key: 'startDot',\n label: 'Start Dot',\n options: [\n { value: 'on', label: 'On' },\n { value: 'off', label: 'Off' },\n ],\n defaultValue: 'on',\n },\n {\n key: 'arrowhead',\n label: 'Arrowhead',\n options: [\n { value: 'triangle', label: 'Triangle' },\n { value: 'line', label: 'Line' },\n ],\n defaultValue: 'triangle',\n },\n ],\n },\n {\n id: 'lifecycle-connector-knobs',\n name: 'Lifecycle Connector Knobs',\n category: 'Diagram',\n description: 'Pair of insert (+) and rename (pencil) circles that appear when hovering a connector.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Circle Fill', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'size', label: 'Diameter', control: 'number', defaultValue: 22, min: 16, max: 36, step: 1, unit: 'px' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1.5, min: 0.5, max: 3, step: 0.5, unit: 'px' },\n { key: 'insertBorderColor', label: 'Insert Border', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'insertIconColor', label: 'Insert Icon', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'editBorderColor', label: 'Edit Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'editIconColor', label: 'Edit Icon', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'gap', label: 'Gap Between Knobs', control: 'number', defaultValue: 4, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'orientation',\n label: 'Orientation',\n options: [\n { value: 'horizontal', label: 'Horizontal' },\n { value: 'vertical', label: 'Vertical' },\n ],\n defaultValue: 'horizontal',\n },\n ],\n },\n {\n id: 'lifecycle-drop-slot',\n name: 'Lifecycle Drop Slot',\n category: 'Diagram',\n description:\n 'Dashed slot showing where a dragged node can land — card-sized for a node, pill-sized for the group a drop would mint.',\n styleProperties: [\n // Knob keys stay the plain CSS-ish names — no `dropSlot*` prefix, which\n // the generator would turn into `--uxm-lifecycle-drop-slot-drop-slot-*`\n // (the lifecycle-connector trap).\n //\n // Dashes and label are separate knobs sharing one default, so they read as\n // one signal until someone deliberately moves them apart. Both default to\n // `var(--color-accent-bold)` rather than the `--color-drop-target` alias —\n // the alias isn't a `themeTokens` entry, so the picker would render its raw\n // var string, and accent (what the alias resolves to) measures 1.92:1 as\n // ink on this fill.\n { key: 'borderColor', label: 'Dashes', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'color', label: 'Text', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n // A LIVE token, not a raw expression: `themeTokens` is what the picker's\n // swatch list is built from, so a `color-mix(…)` default would render as\n // unreadable text. The fill is flat, so what is picked here is what paints.\n { key: 'bg', label: 'Fill', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'colors' },\n // Style + width are the two levers on how the edge reads, the same pair\n // FileUpload's drop area exposes. Neither is a dash PATTERN — the UA\n // derives dash length from the width, and CSS has no property for the\n // pattern itself.\n //\n // Both apply to either shape, so they stay in the unscoped section — the\n // panel then subtitles them \"Shared across all shapes\" while the two shape\n // sections below read \"Per Shape · …\". Mixing them into one section is what\n // made the group box's panel claim shared knobs were per-state.\n { key: 'borderStyle', label: 'Border Style', control: 'select', defaultValue: 'dashed', options: ['dashed', 'solid', 'dotted'] },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1, min: 1, max: 3, step: 1, unit: 'px' },\n // Card-only. Labels drop the \"Card\" prefix — the section heading carries\n // it, and short labels don't truncate in the narrow panel orientation.\n { key: 'cardRadius', label: 'Radius', control: 'slider', defaultValue: 10, min: 0, max: 20, step: 1, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n { key: 'cardPaddingX', label: 'Padding X', control: 'number', defaultValue: 16, min: 4, max: 32, step: 2, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n { key: 'cardFontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 9, max: 16, step: 1, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n { key: 'cardMinWidth', label: 'Min Width', control: 'number', defaultValue: 72, min: 40, max: 160, step: 4, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n // No card HEIGHT knob: that one is shared with the node card through the\n // token layer, so it isn't per-component. The atom does expose\n // `--uxm-lifecycle-drop-slot-card-min-height` for a canvas that owns node\n // geometry and needs to zero the floor — a consumer escape hatch, not a\n // theme value, so it gets no knob either.\n //\n // Pill-only. Same 4–999 range LifecycleEdgeLabel uses for its own pill\n // radius: everything at or above half the height reads as a full pill, so\n // the useful travel is the bottom of the slider.\n { key: 'pillRadius', label: 'Radius', control: 'slider', defaultValue: 999, min: 4, max: 999, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n { key: 'pillPaddingY', label: 'Padding Y', control: 'number', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n { key: 'pillPaddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n // 13 matches Chip assist (`--uxm-chip-assist-font-size`), which is what the\n // real group pill is drawn with, so the placeholder doesn't change size on\n // drop.\n { key: 'pillFontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 16, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n ],\n layoutVariants: [\n // The preview renders the SELECTED shape only. A picker that left both on\n // canvas would be a control that changes nothing there — the same reason\n // `interactive` gets no knob (it moves hit-testing only, never a pixel, and\n // the canvas has no drag to demonstrate it with). It stays a prop,\n // documented in the README.\n {\n key: 'shape',\n label: 'Shape',\n // Named for what the slot stands in for — the node a drop would create,\n // or the group it would mint — not for a pixel size. \"node-sized\" read\n // as a dimension and obscured that.\n options: [\n { value: 'card', label: 'Card (node)' },\n { value: 'pill', label: 'Pill (group)' },\n ],\n defaultValue: 'card',\n },\n ],\n events: [\n { name: 'onDragOver', description: 'Fires while a dragged node is over the slot. Requires interactive; call preventDefault to accept the drop.', payload: 'DragEvent' },\n { name: 'onDrop', description: 'Fires when a node is dropped on the slot. The consumer creates the node or group; the atom carries no logic.', payload: 'DragEvent' },\n { name: 'onDragLeave', description: \"Fires when the drag leaves the slot — the consumer's cue to unmount it, since the slot exists only while it is the target.\", payload: 'DragEvent' },\n ],\n },\n {\n id: 'lifecycle-group-box',\n name: 'Lifecycle Group Box',\n category: 'Diagram',\n description:\n 'Frosted frame around the sibling nodes of one group — and, on an editable diagram, the drop zone for adding a member to it.',\n styleProperties: [\n // Knob keys are the ordinary CSS-ish names every other atom uses\n // (`backgroundColor`, `borderWidth`, …), deliberately NOT prefixed with\n // the component's own name: `groupBoxBg` under id `lifecycle-group-box`\n // would have the generator emit\n // `--uxm-lifecycle-group-box-group-box-bg`. That doubling is exactly what\n // happened to lifecycle-connector, whose published themes now need a\n // permanent fallback alias.\n // Both colour knobs default to a LIVE token, not to the literal CSS the\n // rule resolves to: `themeTokens` is what the editor's swatch list is\n // built from, so a raw `color-mix(…)` / `var(--color-drop-target)` string\n // renders as unreadable text in the picker instead of a named colour.\n // The atom applies its own 55% frost around this value (see the\n // stylesheet), which is why Card — the frosted colour — is the honest\n // default here rather than the mix.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1, min: 0, max: 4, step: 1, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 14, min: 0, max: 28, step: 1, unit: 'px' },\n // The group's single spacing number: the canvas insets its members by it\n // AND derives the box rect from it, so there is one knob rather than a\n // box padding and a member inset that can drift apart. The inset ring is\n // internal and deliberately not exposed.\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 20, min: 8, max: 40, step: 2, unit: 'px' },\n { key: 'blur', label: 'Backdrop Blur', control: 'slider', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px' },\n // The state-scoped knobs get their OWN section, the way\n // lifecycle-connector's do. Mixed into `colors` / `style` they dragged\n // those whole sections into a \"Per State · Drop target\" subtitle — the\n // panel derives it from every prop in a section — which claimed the\n // Background, Padding and Radius above were per-state when they are\n // shared. Split out, each section states the truth: Colors / Style read\n // \"Shared across all states\", and only this one is per-state. It also\n // disappears entirely on `default`, since the panel builds its sections\n // from VISIBLE props.\n //\n // The section is named for what it themes (\"Drop Outline\") so the three\n // labels can stay one word each. Prefixing them instead — Outline Color /\n // Outline Width / Outline Offset — reads as the same set but pays for it\n // in ellipses: the panel truncates a label around 13 characters in its\n // narrow orientation, so `Outline Offset` arrives as \"Outline O…\". One\n // word in the heading beats the same word truncated three times.\n //\n // `var(--color-accent)` rather than `var(--color-drop-target)`: the alias\n // isn't a `themeTokens` entry (deliberately — see tokens/index.css), so\n // the picker would show the raw var string, and the two resolve to the\n // same colour anyway. The CSS chain is still knob → alias → accent, so a\n // consumer who re-points the alias changes the paint without this\n // default following.\n { key: 'targetColor', label: 'Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'dropOutline', showWhen: { state: 'target' } },\n { key: 'targetWidth', label: 'Width', control: 'slider', defaultValue: 2, min: 1, max: 5, step: 1, unit: 'px', section: 'dropOutline', showWhen: { state: 'target' } },\n { key: 'targetOffset', label: 'Offset', control: 'number', defaultValue: 2, min: 0, max: 8, step: 1, unit: 'px', section: 'dropOutline', showWhen: { state: 'target' } },\n ],\n layoutVariants: [\n // A State picker, like lifecycle-connector's, rather than a \"Drop Target\"\n // On/Off: the panel builds its section subtitles out of the variant LABEL\n // (\"Per {label}\" when scoped, \"Shared across all {label}s\" otherwise), and\n // \"Shared across all drop targets\" was actively misleading on the plain\n // style knobs — they are shared across STATES, and there is one box, not\n // many targets.\n //\n // There is no `interactive` picker: that prop moves hit-testing only,\n // never a pixel, and a variant that changes nothing on the canvas reads\n // as a broken toggle. It stays a prop, documented in the README.\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'target', label: 'Drop target' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onDragOver', description: 'Fires while a dragged node is over the group. Requires interactive; call preventDefault to accept the drop.', payload: 'DragEvent' },\n { name: 'onDragEnter', description: 'Fires when a drag enters the group — the consumer\\'s cue to set `target`.', payload: 'DragEvent' },\n { name: 'onDragLeave', description: 'Fires when a drag leaves the group — clear `target` here.', payload: 'DragEvent' },\n { name: 'onDrop', description: 'Fires when a node is dropped on the group. The consumer adds the member; the atom carries no logic.', payload: 'DragEvent' },\n ],\n },\n {\n id: 'lifecycle-zoom-control',\n name: 'Lifecycle Zoom Control',\n category: 'Diagram',\n description: 'Segmented −/percent/+ zoom control docked at the canvas corner.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'buttonSize', label: 'Button Size', control: 'number', defaultValue: 32, min: 24, max: 48, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Value Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n ],\n layoutVariants: [],\n },\n {\n id: 'lifecycle-minimap',\n name: 'Lifecycle Minimap',\n category: 'Diagram',\n description: 'Miniature graph overview with a viewport indicator.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'nodeColor', label: 'Node Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'edgeColor', label: 'Edge Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'viewportBorder', label: 'Viewport Border', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'viewportFill', label: 'Viewport Fill', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-accent) 10%, transparent)', section: 'colors' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 240, min: 160, max: 320, step: 10, unit: 'px' },\n { key: 'height', label: 'Height', control: 'number', defaultValue: 104, min: 60, max: 200, step: 4, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'lifecycle-action-row',\n name: 'Lifecycle Action Row',\n category: 'Diagram',\n description: 'Row with a type badge + action name + delete — used inside the node flexpane.',\n styleProperties: [\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 6, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 4, max: 20, step: 2, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 10, min: 4, max: 20, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Text Size', control: 'number', defaultValue: 13, min: 10, max: 16, step: 1, unit: 'px' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'badgeRadius', label: 'Badge Radius', control: 'slider', defaultValue: 999, min: 4, max: 999, step: 1, unit: 'px' },\n { key: 'badgeSize', label: 'Badge Text Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'actionType',\n label: 'Action Type',\n options: [\n { value: 'notify', label: 'Notify' },\n { value: 'transform', label: 'Transform' },\n { value: 'validate', label: 'Validate' },\n ],\n defaultValue: 'notify',\n },\n ],\n },\n {\n id: 'modal',\n name: 'Modal',\n category: 'Feedback',\n description:\n 'Standard modal panel — header / body / footer slots — rendered inside the Dialog shell. Theming knobs live here; backdrop styling is global (tokens).',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', 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: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 8, 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: 12, max: 24, step: 1, unit: 'px' },\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n ],\n layoutVariants: [\n {\n key: 'size',\n label: 'Size',\n options: [\n { value: 'sm', label: 'Small (360px)' },\n { value: 'md', label: 'Medium (480px)' },\n { value: 'lg', label: 'Large (640px)' },\n { value: 'fullscreen', label: 'Fullscreen' },\n ],\n defaultValue: 'md',\n },\n ],\n api: {\n importPath: '@viax.io/uxm/ui',\n importNames: ['Dialog', 'Modal'],\n props: [\n { name: 'open', type: 'boolean', required: true, description: 'Dialog open state (controlled). Pair with onOpenChange.' },\n { name: 'onOpenChange', type: '(open: boolean) => void', required: true, description: 'Called when the user requests close (Escape or backdrop click).' },\n { name: 'size', type: '\"sm\" | \"md\" | \"lg\" | \"fullscreen\"', defaultValue: '\"md\"', description: 'Modal panel width preset.' },\n { name: 'onClose', type: '() => void', description: 'When set, Modal.Header renders a close X that calls this.' },\n { name: 'closeOnEscape', type: 'boolean', defaultValue: 'true', description: 'Escape key dismisses the dialog.' },\n { name: 'closeOnOutsideClick', type: 'boolean', defaultValue: 'true', description: 'Backdrop click dismisses the dialog.' },\n { name: 'initialFocus', type: 'RefObject<HTMLElement>', description: 'Element to focus on open. Defaults to first focusable in panel.' },\n ],\n },\n },\n];\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/studio/lib/registry/diagram.ts"],"sourcesContent":["import type { ComponentDef } from '../types';\n\nexport const diagramDefs: ComponentDef[] = [\n // ── Diagram (BI Lifecycle) ──\n {\n id: 'lifecycle-node-card',\n name: 'Lifecycle Node Card',\n category: 'Diagram',\n description: 'State / Condition / Task / Business Interaction node card used in the BI Lifecycle canvas.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 16, 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: 12, min: 6, max: 24, step: 2, unit: 'px' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 280, min: 200, max: 360, step: 10, unit: 'px' },\n { key: 'minHeight', label: 'Min Height', control: 'number', defaultValue: 0, min: 0, max: 120, step: 2, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 32, min: 24, max: 48, step: 2, unit: 'px' },\n { key: 'titleSize', label: 'Title Size', control: 'number', defaultValue: 14, min: 11, max: 18, step: 1, unit: 'px' },\n { key: 'kindSize', label: 'Kind Label Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'type',\n label: 'Node Type',\n options: [\n { value: 'state', label: 'State' },\n { value: 'condition', label: 'Condition' },\n { value: 'task', label: 'Task' },\n { value: 'interaction', label: 'Business Interaction' },\n ],\n defaultValue: 'state',\n },\n ],\n events: [\n { name: 'onClick', description: 'Fires when the user clicks the node card. Typically opens an inspector or selects the node.', payload: 'MouseEvent' },\n ],\n },\n {\n id: 'lifecycle-terminal',\n name: 'Lifecycle Terminal',\n category: 'Diagram',\n description: \"Start / End pill used as the graph's terminal nodes.\",\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 4, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 60, min: 40, max: 120, step: 4, unit: 'px' },\n { key: 'height', label: 'Height', control: 'number', defaultValue: 32, min: 20, max: 48, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n ],\n layoutVariants: [\n {\n key: 'label',\n label: 'Label',\n options: [\n { value: 'Start', label: 'Start' },\n { value: 'End', label: 'End' },\n ],\n defaultValue: 'Start',\n },\n ],\n },\n {\n id: 'lifecycle-edge-label',\n name: 'Lifecycle Edge Label',\n category: 'Diagram',\n description: 'Pill label attached to a transition edge (true / false / custom).',\n styleProperties: [\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 1, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 3, min: 0, max: 10, step: 1, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 999, min: 4, max: 999, step: 1, unit: 'px' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1, min: 0, max: 3, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 9, max: 16, step: 1, unit: 'px' },\n { key: 'fontWeight', label: 'Font Weight', control: 'select', defaultValue: '500', options: ['400', '500', '600', '700'] },\n ],\n layoutVariants: [\n {\n key: 'variant',\n label: 'Variant',\n options: [\n { value: 'true', label: 'True' },\n { value: 'false', label: 'False' },\n { value: 'neutral', label: 'Custom / Neutral' },\n ],\n defaultValue: 'true',\n },\n ],\n },\n {\n id: 'lifecycle-plus-button',\n name: 'Lifecycle Plus Button',\n category: 'Diagram',\n description: 'Floating circular + button used to insert a node on a canvas edge.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'hoverBackgroundColor', label: 'Hover Background', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'color', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-inverse)', section: 'colors' },\n { key: 'size', label: 'Size', control: 'number', defaultValue: 24, min: 16, max: 40, step: 2, unit: 'px' },\n { key: 'iconSize', label: 'Icon Size', control: 'number', defaultValue: 14, min: 8, max: 24, step: 1, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'lifecycle-connector',\n name: 'Lifecycle Connector',\n category: 'Diagram',\n description: 'Edge between two nodes — idle / hovered stroke, thickness, arrow, dashed variant, and straight / Bezier / elbow routing.',\n styleProperties: [\n // Paint is scoped to the State picker — one Color / Stroke Width pair\n // that follows the selected state, rather than three parallel knobs of\n // which two are inert at any moment. Keys keep their `connector*` prefix\n // so themes saved before this regrouping still resolve.\n { key: 'connectorIdleColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-subtle)', section: 'states', showWhen: { state: 'idle' } },\n { key: 'connectorIdleStrokeWidth', label: 'Stroke Width', control: 'slider', defaultValue: 1.5, min: 0.5, max: 4, step: 0.5, unit: 'px', section: 'states', showWhen: { state: 'idle' } },\n // Active colour/width also drive `dashed-active` — it shares the active\n // emphasis, so its knobs surface for both states.\n { key: 'connectorActiveColor', label: 'Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'states', showWhen: { state: ['active', 'dashed-active'] } },\n { key: 'connectorActiveStrokeWidth', label: 'Stroke Width', control: 'slider', defaultValue: 2, min: 0.5, max: 5, step: 0.5, unit: 'px', section: 'states', showWhen: { state: ['active', 'dashed-active'] } },\n { key: 'connectorDashedColor', label: 'Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'states', showWhen: { state: 'dashed' } },\n { key: 'connectorDashedStrokeWidth', label: 'Stroke Width', control: 'slider', defaultValue: 1.5, min: 0.5, max: 4, step: 0.5, unit: 'px', section: 'states', showWhen: { state: 'dashed' } },\n // The dash pattern applies to both dashed states.\n { key: 'connectorDashPattern', label: 'Dash Pattern', control: 'text', defaultValue: '6 4', section: 'states', showWhen: { state: ['dashed', 'dashed-active'] } },\n { key: 'connectorArrowSize', label: 'Arrow Size', control: 'number', defaultValue: 7, min: 3, max: 14, step: 1, unit: 'px' },\n // No knobs for `crossAt` / `cornerRadius` on purpose. Where an elbow's\n // cross bus sits is per-edge geometry — the same kind of value as\n // `from` / `to` — so it belongs to the diagram's layout code, not to a\n // saved theme. They stay props.\n ],\n layoutVariants: [\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'idle', label: 'Idle' },\n { value: 'active', label: 'Active' },\n { value: 'dashed', label: 'Dashed (false)' },\n { value: 'dashed-active', label: 'Dashed · Active' },\n ],\n defaultValue: 'idle',\n },\n {\n key: 'routing',\n label: 'Routing',\n options: [\n { value: 'auto', label: 'Auto' },\n { value: 'straight', label: 'Straight' },\n { value: 'bezier', label: 'Bezier' },\n { value: 'orthogonal', label: 'Elbow' },\n ],\n defaultValue: 'auto',\n },\n {\n key: 'startDot',\n label: 'Start Dot',\n options: [\n { value: 'on', label: 'On' },\n { value: 'off', label: 'Off' },\n ],\n defaultValue: 'on',\n },\n {\n key: 'arrowhead',\n label: 'Arrowhead',\n options: [\n { value: 'triangle', label: 'Triangle' },\n { value: 'line', label: 'Line' },\n ],\n defaultValue: 'triangle',\n },\n ],\n },\n {\n id: 'lifecycle-connector-knobs',\n name: 'Lifecycle Connector Knobs',\n category: 'Diagram',\n description: 'Pair of insert (+) and rename (pencil) circles that appear when hovering a connector.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Circle Fill', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'size', label: 'Diameter', control: 'number', defaultValue: 22, min: 16, max: 36, step: 1, unit: 'px' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1.5, min: 0.5, max: 3, step: 0.5, unit: 'px' },\n { key: 'insertBorderColor', label: 'Insert Border', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'insertIconColor', label: 'Insert Icon', control: 'color', defaultValue: 'var(--color-accent)', section: 'colors' },\n { key: 'editBorderColor', label: 'Edit Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'editIconColor', label: 'Edit Icon', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'gap', label: 'Gap Between Knobs', control: 'number', defaultValue: 4, min: 0, max: 16, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'orientation',\n label: 'Orientation',\n options: [\n { value: 'horizontal', label: 'Horizontal' },\n { value: 'vertical', label: 'Vertical' },\n ],\n defaultValue: 'horizontal',\n },\n ],\n },\n {\n id: 'lifecycle-drop-slot',\n name: 'Lifecycle Drop Slot',\n category: 'Diagram',\n description:\n 'Dashed slot showing where a dragged node can land — card-sized for a node, pill-sized for the group a drop would mint.',\n styleProperties: [\n // Knob keys stay the plain CSS-ish names — no `dropSlot*` prefix, which\n // the generator would turn into `--uxm-lifecycle-drop-slot-drop-slot-*`\n // (the lifecycle-connector trap).\n //\n // Dashes and label are separate knobs sharing one default, so they read as\n // one signal until someone deliberately moves them apart. Both default to\n // `var(--color-accent-bold)` rather than the `--color-drop-target` alias —\n // the alias isn't a `themeTokens` entry, so the picker would render its raw\n // var string, and accent (what the alias resolves to) measures 1.92:1 as\n // ink on this fill.\n { key: 'borderColor', label: 'Dashes', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'color', label: 'Text', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n // A LIVE token, not a raw expression: `themeTokens` is what the picker's\n // swatch list is built from, so a `color-mix(…)` default would render as\n // unreadable text. The fill is flat, so what is picked here is what paints.\n { key: 'bg', label: 'Fill', control: 'color', defaultValue: 'var(--color-accent-subtle)', section: 'colors' },\n // Style + width are the two levers on how the edge reads, the same pair\n // FileUpload's drop area exposes. Neither is a dash PATTERN — the UA\n // derives dash length from the width, and CSS has no property for the\n // pattern itself.\n //\n // Both apply to either shape, so they stay in the unscoped section — the\n // panel then subtitles them \"Shared across all shapes\" while the two shape\n // sections below read \"Per Shape · …\". Mixing them into one section is what\n // made the group box's panel claim shared knobs were per-state.\n { key: 'borderStyle', label: 'Border Style', control: 'select', defaultValue: 'dashed', options: ['dashed', 'solid', 'dotted'] },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1, min: 1, max: 3, step: 1, unit: 'px' },\n // Card-only. Labels drop the \"Card\" prefix — the section heading carries\n // it, and short labels don't truncate in the narrow panel orientation.\n { key: 'cardRadius', label: 'Radius', control: 'slider', defaultValue: 10, min: 0, max: 20, step: 1, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n { key: 'cardPaddingX', label: 'Padding X', control: 'number', defaultValue: 16, min: 4, max: 32, step: 2, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n { key: 'cardFontSize', label: 'Font Size', control: 'number', defaultValue: 12, min: 9, max: 16, step: 1, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n { key: 'cardMinWidth', label: 'Min Width', control: 'number', defaultValue: 72, min: 40, max: 160, step: 4, unit: 'px', section: 'card', showWhen: { shape: 'card' } },\n // No card HEIGHT knob: that one is shared with the node card through the\n // token layer, so it isn't per-component. The atom does expose\n // `--uxm-lifecycle-drop-slot-card-min-height` for a canvas that owns node\n // geometry and needs to zero the floor — a consumer escape hatch, not a\n // theme value, so it gets no knob either.\n //\n // Pill-only. Same 4–999 range LifecycleEdgeLabel uses for its own pill\n // radius: everything at or above half the height reads as a full pill, so\n // the useful travel is the bottom of the slider.\n { key: 'pillRadius', label: 'Radius', control: 'slider', defaultValue: 999, min: 4, max: 999, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n { key: 'pillPaddingY', label: 'Padding Y', control: 'number', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n { key: 'pillPaddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 4, max: 24, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n // 13 matches Chip assist (`--uxm-chip-assist-font-size`), which is what the\n // real group pill is drawn with, so the placeholder doesn't change size on\n // drop.\n { key: 'pillFontSize', label: 'Font Size', control: 'number', defaultValue: 13, min: 10, max: 16, step: 1, unit: 'px', section: 'pill', showWhen: { shape: 'pill' } },\n ],\n layoutVariants: [\n // The preview renders the SELECTED shape only. A picker that left both on\n // canvas would be a control that changes nothing there — the same reason\n // `interactive` gets no knob (it moves hit-testing only, never a pixel, and\n // the canvas has no drag to demonstrate it with). It stays a prop,\n // documented in the README.\n {\n key: 'shape',\n label: 'Shape',\n // Named for what the slot stands in for — the node a drop would create,\n // or the group it would mint — not for a pixel size. \"node-sized\" read\n // as a dimension and obscured that.\n options: [\n { value: 'card', label: 'Card (node)' },\n { value: 'pill', label: 'Pill (group)' },\n ],\n defaultValue: 'card',\n },\n ],\n events: [\n { name: 'onDragOver', description: 'Fires while a dragged node is over the slot. Requires interactive; call preventDefault to accept the drop.', payload: 'DragEvent' },\n { name: 'onDrop', description: 'Fires when a node is dropped on the slot. The consumer creates the node or group; the atom carries no logic.', payload: 'DragEvent' },\n { name: 'onDragLeave', description: \"Fires when the drag leaves the slot — the consumer's cue to unmount it, since the slot exists only while it is the target.\", payload: 'DragEvent' },\n ],\n },\n {\n id: 'lifecycle-group-box',\n name: 'Lifecycle Group Box',\n category: 'Diagram',\n description:\n 'Frosted frame around the sibling nodes of one group — and, on an editable diagram, the drop zone for adding a member to it.',\n styleProperties: [\n // Knob keys are the ordinary CSS-ish names every other atom uses\n // (`backgroundColor`, `borderWidth`, …), deliberately NOT prefixed with\n // the component's own name: `groupBoxBg` under id `lifecycle-group-box`\n // would have the generator emit\n // `--uxm-lifecycle-group-box-group-box-bg`. That doubling is exactly what\n // happened to lifecycle-connector, whose published themes now need a\n // permanent fallback alias.\n // Both colour knobs default to a LIVE token, not to the literal CSS the\n // rule resolves to: `themeTokens` is what the editor's swatch list is\n // built from, so a raw `color-mix(…)` / `var(--color-drop-target)` string\n // renders as unreadable text in the picker instead of a named colour.\n // The atom applies its own 55% frost around this value (see the\n // stylesheet), which is why Card — the frosted colour — is the honest\n // default here rather than the mix.\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderWidth', label: 'Border Width', control: 'number', defaultValue: 1, min: 0, max: 4, step: 1, unit: 'px' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 14, min: 0, max: 28, step: 1, unit: 'px' },\n // The group's single spacing number: the canvas insets its members by it\n // AND derives the box rect from it, so there is one knob rather than a\n // box padding and a member inset that can drift apart. The inset ring is\n // internal and deliberately not exposed.\n { key: 'padding', label: 'Padding', control: 'number', defaultValue: 20, min: 8, max: 40, step: 2, unit: 'px' },\n { key: 'blur', label: 'Backdrop Blur', control: 'slider', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px' },\n // The state-scoped knobs get their OWN section, the way\n // lifecycle-connector's do. Mixed into `colors` / `style` they dragged\n // those whole sections into a \"Per State · Drop target\" subtitle — the\n // panel derives it from every prop in a section — which claimed the\n // Background, Padding and Radius above were per-state when they are\n // shared. Split out, each section states the truth: Colors / Style read\n // \"Shared across all states\", and only this one is per-state. It also\n // disappears entirely on `default`, since the panel builds its sections\n // from VISIBLE props.\n //\n // The section is named for what it themes (\"Drop Outline\") so the three\n // labels can stay one word each. Prefixing them instead — Outline Color /\n // Outline Width / Outline Offset — reads as the same set but pays for it\n // in ellipses: the panel truncates a label around 13 characters in its\n // narrow orientation, so `Outline Offset` arrives as \"Outline O…\". One\n // word in the heading beats the same word truncated three times.\n //\n // `var(--color-accent)` rather than `var(--color-drop-target)`: the alias\n // isn't a `themeTokens` entry (deliberately — see tokens/index.css), so\n // the picker would show the raw var string, and the two resolve to the\n // same colour anyway. The CSS chain is still knob → alias → accent, so a\n // consumer who re-points the alias changes the paint without this\n // default following.\n { key: 'targetColor', label: 'Color', control: 'color', defaultValue: 'var(--color-accent)', section: 'dropOutline', showWhen: { state: 'target' } },\n { key: 'targetWidth', label: 'Width', control: 'slider', defaultValue: 2, min: 1, max: 5, step: 1, unit: 'px', section: 'dropOutline', showWhen: { state: 'target' } },\n { key: 'targetOffset', label: 'Offset', control: 'number', defaultValue: 2, min: 0, max: 8, step: 1, unit: 'px', section: 'dropOutline', showWhen: { state: 'target' } },\n ],\n layoutVariants: [\n // A State picker, like lifecycle-connector's, rather than a \"Drop Target\"\n // On/Off: the panel builds its section subtitles out of the variant LABEL\n // (\"Per {label}\" when scoped, \"Shared across all {label}s\" otherwise), and\n // \"Shared across all drop targets\" was actively misleading on the plain\n // style knobs — they are shared across STATES, and there is one box, not\n // many targets.\n //\n // There is no `interactive` picker: that prop moves hit-testing only,\n // never a pixel, and a variant that changes nothing on the canvas reads\n // as a broken toggle. It stays a prop, documented in the README.\n {\n key: 'state',\n label: 'State',\n options: [\n { value: 'default', label: 'Default' },\n { value: 'target', label: 'Drop target' },\n ],\n defaultValue: 'default',\n },\n ],\n events: [\n { name: 'onDragOver', description: 'Fires while a dragged node is over the group. Requires interactive; call preventDefault to accept the drop.', payload: 'DragEvent' },\n { name: 'onDragEnter', description: 'Fires when a drag enters the group — the consumer\\'s cue to set `target`.', payload: 'DragEvent' },\n { name: 'onDragLeave', description: 'Fires when a drag leaves the group — clear `target` here.', payload: 'DragEvent' },\n { name: 'onDrop', description: 'Fires when a node is dropped on the group. The consumer adds the member; the atom carries no logic.', payload: 'DragEvent' },\n ],\n },\n {\n id: 'lifecycle-zoom-control',\n name: 'Lifecycle Zoom Control',\n category: 'Diagram',\n description: 'Segmented −/percent/+ zoom control docked at the canvas corner.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 20, step: 1, unit: 'px' },\n { key: 'buttonSize', label: 'Button Size', control: 'number', defaultValue: 32, min: 24, max: 48, step: 2, unit: 'px' },\n { key: 'fontSize', label: 'Value Size', control: 'number', defaultValue: 13, min: 10, max: 18, step: 1, unit: 'px' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'iconColor', label: 'Icon Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n ],\n layoutVariants: [],\n },\n {\n id: 'lifecycle-minimap',\n name: 'Lifecycle Minimap',\n category: 'Diagram',\n description: 'Miniature graph overview with a viewport indicator.',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-surface-alt)', section: 'colors' },\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 6, min: 0, max: 16, step: 1, unit: 'px' },\n { key: 'nodeColor', label: 'Node Color', control: 'color', defaultValue: 'var(--color-text-muted)', section: 'colors' },\n { key: 'edgeColor', label: 'Edge Color', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'viewportBorder', label: 'Viewport Border', control: 'color', defaultValue: 'var(--color-accent-bold)', section: 'colors' },\n { key: 'viewportFill', label: 'Viewport Fill', control: 'color', defaultValue: 'color-mix(in srgb, var(--color-accent) 10%, transparent)', section: 'colors' },\n { key: 'width', label: 'Width', control: 'number', defaultValue: 240, min: 160, max: 320, step: 10, unit: 'px' },\n { key: 'height', label: 'Height', control: 'number', defaultValue: 104, min: 60, max: 200, step: 4, unit: 'px' },\n ],\n layoutVariants: [],\n },\n {\n id: 'lifecycle-action-row',\n name: 'Lifecycle Action Row',\n category: 'Diagram',\n description: 'Row with a type badge + action name + delete — used inside the node flexpane.',\n styleProperties: [\n { key: 'borderColor', label: 'Border', control: 'color', defaultValue: 'var(--color-border)', section: 'colors' },\n { key: 'borderRadius', label: 'Border Radius', control: 'slider', defaultValue: 4, min: 0, max: 12, step: 1, unit: 'px' },\n { key: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 12, min: 6, max: 24, step: 2, unit: 'px' },\n { key: 'paddingY', label: 'Padding Y', control: 'number', defaultValue: 10, min: 4, max: 20, step: 2, unit: 'px' },\n { key: 'gap', label: 'Gap', control: 'number', defaultValue: 10, min: 4, max: 20, step: 1, unit: 'px' },\n { key: 'fontSize', label: 'Text Size', control: 'number', defaultValue: 13, min: 10, max: 16, step: 1, unit: 'px' },\n { key: 'color', label: 'Text Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n { key: 'badgeRadius', label: 'Badge Radius', control: 'slider', defaultValue: 999, min: 4, max: 999, step: 1, unit: 'px' },\n { key: 'badgeSize', label: 'Badge Text Size', control: 'number', defaultValue: 11, min: 9, max: 14, step: 1, unit: 'px' },\n ],\n layoutVariants: [\n {\n key: 'actionType',\n label: 'Action Type',\n options: [\n { value: 'notify', label: 'Notify' },\n { value: 'transform', label: 'Transform' },\n { value: 'validate', label: 'Validate' },\n ],\n defaultValue: 'notify',\n },\n ],\n },\n {\n id: 'modal',\n name: 'Modal',\n category: 'Feedback',\n description:\n 'Standard modal panel — header / body / footer slots — rendered inside the Dialog shell. Theming knobs live here; backdrop styling is global (tokens).',\n styleProperties: [\n { key: 'backgroundColor', label: 'Background', control: 'color', defaultValue: 'var(--color-card)', section: 'colors' },\n { key: 'borderColor', label: 'Border', 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: 'paddingX', label: 'Padding X', control: 'number', defaultValue: 20, min: 8, 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: 12, max: 24, step: 1, unit: 'px' },\n { key: 'titleColor', label: 'Title Color', control: 'color', defaultValue: 'var(--color-text)', section: 'colors' },\n ],\n layoutVariants: [\n {\n key: 'size',\n label: 'Size',\n options: [\n { value: 'sm', label: 'Small (360px)' },\n { value: 'md', label: 'Medium (480px)' },\n { value: 'lg', label: 'Large (640px)' },\n { value: 'fullscreen', label: 'Fullscreen' },\n ],\n defaultValue: 'md',\n },\n ],\n api: {\n importPath: '@viax/uxm/ui',\n importNames: ['Dialog', 'Modal'],\n props: [\n { name: 'open', type: 'boolean', required: true, description: 'Dialog open state (controlled). Pair with onOpenChange.' },\n { name: 'onOpenChange', type: '(open: boolean) => void', required: true, description: 'Called when the user requests close (Escape or backdrop click).' },\n { name: 'size', type: '\"sm\" | \"md\" | \"lg\" | \"fullscreen\"', defaultValue: '\"md\"', description: 'Modal panel width preset.' },\n { name: 'onClose', type: '() => void', description: 'When set, Modal.Header renders a close X that calls this.' },\n { name: 'closeOnEscape', type: 'boolean', defaultValue: 'true', description: 'Escape key dismisses the dialog.' },\n { name: 'closeOnOutsideClick', type: 'boolean', defaultValue: 'true', description: 'Backdrop click dismisses the dialog.' },\n { name: 'initialFocus', type: 'RefObject<HTMLElement>', description: 'Element to focus on open. Defaults to first focusable in panel.' },\n ],\n },\n },\n];\n"],"mappings":"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","names":[]}
@@ -150,7 +150,7 @@ const displayDefs = [
150
150
  { name: "onRemove", description: "Fires when the trailing \xD7 is clicked. Input mode only.", payload: "void", showWhen: { mode: "input" } }
151
151
  ],
152
152
  api: {
153
- importPath: "@viax.io/uxm/ui",
153
+ importPath: "@viax/uxm/ui",
154
154
  importNames: "Chip",
155
155
  props: [
156
156
  { name: "children", type: "ReactNode", description: "Chip label." },
@@ -392,7 +392,7 @@ const displayDefs = [
392
392
  }
393
393
  ],
394
394
  api: {
395
- importPath: "@viax.io/uxm/ui",
395
+ importPath: "@viax/uxm/ui",
396
396
  importNames: "Card",
397
397
  props: [
398
398
  { name: "children", type: "ReactNode", description: "Card content \u2014 heading, body, actions, anything." },