cursedbelt 5.56.0 → 5.58.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 (145) hide show
  1. package/dist/react/charts/tokens.js +4 -4
  2. package/dist/react/code-editor/CodeEditor.d.ts.map +1 -1
  3. package/dist/react/code-editor/CodeEditor.js +2 -1
  4. package/dist/react/code-editor/CodeEditor.js.map +1 -1
  5. package/dist/react/code-editor/lineAbove.d.ts +17 -0
  6. package/dist/react/code-editor/lineAbove.d.ts.map +1 -0
  7. package/dist/react/code-editor/lineAbove.js +34 -0
  8. package/dist/react/code-editor/lineAbove.js.map +1 -0
  9. package/dist/react/companion-link/CompanionLinkStatus.d.ts.map +1 -1
  10. package/dist/react/companion-link/CompanionLinkStatus.js +2 -1
  11. package/dist/react/companion-link/CompanionLinkStatus.js.map +1 -1
  12. package/dist/react/components/Accordion.d.ts.map +1 -1
  13. package/dist/react/components/Accordion.js +2 -2
  14. package/dist/react/components/Accordion.js.map +1 -1
  15. package/dist/react/components/Badge.d.ts +20 -1
  16. package/dist/react/components/Badge.d.ts.map +1 -1
  17. package/dist/react/components/Badge.js +30 -3
  18. package/dist/react/components/Badge.js.map +1 -1
  19. package/dist/react/components/Button.d.ts.map +1 -1
  20. package/dist/react/components/Button.js +8 -2
  21. package/dist/react/components/Button.js.map +1 -1
  22. package/dist/react/components/Collapsible.d.ts.map +1 -1
  23. package/dist/react/components/Collapsible.js +2 -2
  24. package/dist/react/components/Collapsible.js.map +1 -1
  25. package/dist/react/components/DisclosureButton.d.ts +2 -2
  26. package/dist/react/components/DisclosureButton.d.ts.map +1 -1
  27. package/dist/react/components/DisclosureButton.js +9 -6
  28. package/dist/react/components/DisclosureButton.js.map +1 -1
  29. package/dist/react/components/EditorPage.d.ts +78 -0
  30. package/dist/react/components/EditorPage.d.ts.map +1 -0
  31. package/dist/react/components/EditorPage.js +133 -0
  32. package/dist/react/components/EditorPage.js.map +1 -0
  33. package/dist/react/components/IconPicker.d.ts +70 -0
  34. package/dist/react/components/IconPicker.d.ts.map +1 -0
  35. package/dist/react/components/IconPicker.js +175 -0
  36. package/dist/react/components/IconPicker.js.map +1 -0
  37. package/dist/react/components/PropertyList.d.ts +45 -0
  38. package/dist/react/components/PropertyList.d.ts.map +1 -0
  39. package/dist/react/components/PropertyList.js +12 -0
  40. package/dist/react/components/PropertyList.js.map +1 -0
  41. package/dist/react/components/Wizard/ReviewStep.d.ts +1 -1
  42. package/dist/react/components/Wizard/ReviewStep.d.ts.map +1 -1
  43. package/dist/react/components/Wizard/ReviewStep.js +3 -3
  44. package/dist/react/components/Wizard/ReviewStep.js.map +1 -1
  45. package/dist/react/components/editorPage.css +421 -0
  46. package/dist/react/components/formKit.d.ts +3 -1
  47. package/dist/react/components/formKit.d.ts.map +1 -1
  48. package/dist/react/components/formKit.js +3 -1
  49. package/dist/react/components/formKit.js.map +1 -1
  50. package/dist/react/index.d.ts +4 -1
  51. package/dist/react/index.d.ts.map +1 -1
  52. package/dist/react/index.js +3 -0
  53. package/dist/react/index.js.map +1 -1
  54. package/dist/react/line-keys/index.d.ts +2 -0
  55. package/dist/react/line-keys/index.d.ts.map +1 -0
  56. package/dist/react/line-keys/index.js +2 -0
  57. package/dist/react/line-keys/index.js.map +1 -0
  58. package/dist/react/line-keys/lineKeys.d.ts +62 -0
  59. package/dist/react/line-keys/lineKeys.d.ts.map +1 -0
  60. package/dist/react/line-keys/lineKeys.js +159 -0
  61. package/dist/react/line-keys/lineKeys.js.map +1 -0
  62. package/dist/react/master-detail/DetailPane.d.ts +3 -0
  63. package/dist/react/master-detail/DetailPane.d.ts.map +1 -1
  64. package/dist/react/master-detail/DetailPane.js +5 -2
  65. package/dist/react/master-detail/DetailPane.js.map +1 -1
  66. package/dist/react/nav/SideNav.js +1 -1
  67. package/dist/react/nav/SideNav.js.map +1 -1
  68. package/dist/scripts/guardrailsEnforce.d.ts.map +1 -1
  69. package/dist/styles-areas/analytics.css +14 -14
  70. package/dist/styles-areas/charts.css +3 -3
  71. package/dist/styles-areas/companion-link.css +2 -2
  72. package/dist/styles-areas/core.css +50 -45
  73. package/dist/styles-areas/data-table.css +15 -16
  74. package/dist/styles-areas/disk-usage.css +4 -4
  75. package/dist/styles-areas/fields.css +11 -11
  76. package/dist/styles-areas/folder-tree.css +3 -3
  77. package/dist/styles-areas/layout-engine.css +2 -2
  78. package/dist/styles-areas/master-detail.css +4 -5
  79. package/dist/styles-areas/media-gallery.css +9 -9
  80. package/dist/styles-areas/media.css +3 -3
  81. package/dist/styles-areas/nav.css +5 -5
  82. package/dist/styles-areas/notifications.css +3 -3
  83. package/dist/styles-areas/problem-detail.css +3 -3
  84. package/dist/styles-areas/sharing.css +2 -3
  85. package/dist/styles-areas/stats.css +3 -3
  86. package/dist/styles-areas/wizard.css +7 -8
  87. package/dist/styles-areas/workbench.css +4 -4
  88. package/dist/styles-utilities.css +49 -10
  89. package/dist/theme.css +38 -22
  90. package/package.json +14 -2
  91. package/scripts/guardrails-baseline.json +2 -1
  92. package/scripts/guardrailsEnforce.spec.ts +32 -0
  93. package/scripts/guardrailsEnforce.ts +67 -1
  94. package/scripts/styleAreas.ts +3 -0
  95. package/src/react/charts/tokens.ts +4 -4
  96. package/src/react/code-editor/CodeEditor.tsx +2 -1
  97. package/src/react/code-editor/lineAbove.spec.ts +36 -0
  98. package/src/react/code-editor/lineAbove.ts +35 -0
  99. package/src/react/companion-link/CompanionLinkStatus.tsx +10 -12
  100. package/src/react/components/Accordion.tsx +5 -4
  101. package/src/react/components/Badge.capsule.spec.ts +1 -1
  102. package/src/react/components/Badge.spec.tsx +22 -1
  103. package/src/react/components/Badge.tsx +66 -11
  104. package/src/react/components/Button.spec.tsx +5 -4
  105. package/src/react/components/Button.tsx +8 -2
  106. package/src/react/components/Collapsible.tsx +5 -4
  107. package/src/react/components/DisclosureButton.spec.tsx +47 -0
  108. package/src/react/components/DisclosureButton.tsx +11 -7
  109. package/src/react/components/EditorPage.spec.tsx +106 -0
  110. package/src/react/components/EditorPage.tsx +281 -0
  111. package/src/react/components/IconPicker.spec.tsx +84 -0
  112. package/src/react/components/IconPicker.tsx +289 -0
  113. package/src/react/components/PropertyList.spec.tsx +110 -0
  114. package/src/react/components/PropertyList.tsx +92 -0
  115. package/src/react/components/Wizard/ReviewStep.tsx +7 -7
  116. package/src/react/components/editorPage.css +421 -0
  117. package/src/react/components/formKit.ts +10 -1
  118. package/src/react/components/formKitStylesheets.spec.ts +47 -0
  119. package/src/react/index.ts +11 -1
  120. package/src/react/line-keys/index.ts +1 -0
  121. package/src/react/line-keys/lineKeys.spec.tsx +176 -0
  122. package/src/react/line-keys/lineKeys.ts +176 -0
  123. package/src/react/master-detail/DetailPane.tsx +14 -18
  124. package/src/react/nav/SideNav.tsx +1 -1
  125. package/src/styles-areas/analytics.css +14 -14
  126. package/src/styles-areas/charts.css +3 -3
  127. package/src/styles-areas/companion-link.css +2 -2
  128. package/src/styles-areas/core.css +50 -45
  129. package/src/styles-areas/data-table.css +15 -16
  130. package/src/styles-areas/disk-usage.css +4 -4
  131. package/src/styles-areas/fields.css +11 -11
  132. package/src/styles-areas/folder-tree.css +3 -3
  133. package/src/styles-areas/layout-engine.css +2 -2
  134. package/src/styles-areas/master-detail.css +4 -5
  135. package/src/styles-areas/media-gallery.css +9 -9
  136. package/src/styles-areas/media.css +3 -3
  137. package/src/styles-areas/nav.css +5 -5
  138. package/src/styles-areas/notifications.css +3 -3
  139. package/src/styles-areas/problem-detail.css +3 -3
  140. package/src/styles-areas/sharing.css +2 -3
  141. package/src/styles-areas/stats.css +3 -3
  142. package/src/styles-areas/wizard.css +7 -8
  143. package/src/styles-areas/workbench.css +4 -4
  144. package/src/styles-utilities.css +49 -10
  145. package/src/theme.css +38 -22
@@ -16,10 +16,10 @@ export const FALLBACK_TOKENS = {
16
16
  series: FALLBACK_SERIES,
17
17
  accent: '#34d399',
18
18
  foreground: '#f9fafb',
19
- foregroundMuted: '#9ca3af',
20
- background: '#030712',
21
- surface: '#111827',
22
- border: '#1f2937',
19
+ foregroundMuted: '#9b9ea7',
20
+ background: '#08090a',
21
+ surface: '#17181b',
22
+ border: '#31333a',
23
23
  success: '#22c55e',
24
24
  warning: '#f59e0b',
25
25
  danger: '#ef4444',
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../../src/react/code-editor/CodeEditor.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAwE,MAAM,kBAAkB,CAAC;AAGpH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,sFAAsF;IACtF,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gGAAgG;IAChG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4GAA4G;IAC5G,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,uEAAuE;IACvE,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD,wBAAgB,UAAU,CAAC,EACzB,KAAU,EACV,QAAQ,EACR,QAAiB,EACjB,QAAgB,EAChB,WAAW,EAAE,eAAsB,EACnC,UAAU,EAAE,cAAsB,EAClC,YAAoB,EACpB,WAAW,EACX,UAAkB,EAClB,cAAc,EACd,UAAU,EAAE,eAAoB,EAChC,SAAkB,EAClB,SAAS,EACT,OAAW,EACX,SAAS,EACT,YAAY,EAAE,SAAS,GACxB,EAAE,eAAe,+BAuIjB"}
1
+ {"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../../src/react/code-editor/CodeEditor.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAwE,MAAM,kBAAkB,CAAC;AAGpH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnD,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,sFAAsF;IACtF,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gGAAgG;IAChG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4GAA4G;IAC5G,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,uEAAuE;IACvE,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD,wBAAgB,UAAU,CAAC,EACzB,KAAU,EACV,QAAQ,EACR,QAAiB,EACjB,QAAgB,EAChB,WAAW,EAAE,eAAsB,EACnC,UAAU,EAAE,cAAsB,EAClC,YAAoB,EACpB,WAAW,EACX,UAAkB,EAClB,cAAc,EACd,UAAU,EAAE,eAAoB,EAChC,SAAkB,EAClB,SAAS,EACT,OAAW,EACX,SAAS,EACT,YAAY,EAAE,SAAS,GACxB,EAAE,eAAe,+BAuIjB"}
@@ -17,6 +17,7 @@ import { EditorView, keymap, lineNumbers as lineNumbersExt, placeholder as place
17
17
  import { useEffect, useMemo, useRef, useState } from 'react';
18
18
  import { cn } from '../lib/cn.js';
19
19
  import { loadLanguageExtension } from './languages.js';
20
+ import { lineKeyBindings } from './lineAbove.js';
20
21
  import { cbEditorTheme, cbSyntaxHighlighting } from './theme.js';
21
22
  // Fixed extensions shared across all instances — created once.
22
23
  const FIXED_EXTENSIONS = [
@@ -54,7 +55,7 @@ export function CodeEditor({ value = '', onChange, language = 'text', readOnly =
54
55
  const dynExtensions = useMemo(() => {
55
56
  const exts = [
56
57
  indentUnit.of(' '.repeat(tabSize)),
57
- keymap.of([...defaultKeymap, ...historyKeymap, indentWithTab]),
58
+ keymap.of([...lineKeyBindings, ...defaultKeymap, ...historyKeymap, indentWithTab]),
58
59
  ];
59
60
  if (showLineNumbers)
60
61
  exts.push(lineNumbersExt());
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.js","sourceRoot":"","sources":["../../../src/react/code-editor/CodeEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodeEditor.js","sourceRoot":"","sources":["../../../src/react/code-editor/CodeEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type StateCommand } from '@codemirror/state';
2
+ import type { KeyBinding } from '@codemirror/view';
3
+ /**
4
+ * ⇧⌘↵ — a blank line ABOVE each cursor's line, keeping that line's indentation, the caret on it.
5
+ * VS Code's "Insert Line Above"; CodeMirror's `defaultKeymap` has the line below (`Mod-Enter`,
6
+ * `insertBlankLine`) and the delete (`Shift-Mod-k`) but not this one. The `<textarea>` half of the
7
+ * same three keys is `cursedbelt/react/line-keys`.
8
+ */
9
+ export declare const insertBlankLineAbove: StateCommand;
10
+ /**
11
+ * The line keys `CodeEditor` adds IN FRONT of `defaultKeymap`: ⇧⌘↵ above, and ⌘↑ / ⌘↓ moving the
12
+ * line — the owner's chord (2026-10-05), which in `defaultKeymap` is the Mac's jump to the top or
13
+ * bottom. ⌥↑ / ⌥↓, VS Code's own move, is already in `defaultKeymap`, and so is ⇧⌘↑ (select to
14
+ * the top), which stays. The same keys in a `<textarea>` are `cursedbelt/react/line-keys`.
15
+ */
16
+ export declare const lineKeyBindings: readonly KeyBinding[];
17
+ //# sourceMappingURL=lineAbove.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineAbove.d.ts","sourceRoot":"","sources":["../../../src/react/code-editor/lineAbove.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,YAYlC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,UAAU,EAIhD,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { moveLineDown, moveLineUp } from '@codemirror/commands';
2
+ import { EditorSelection } from '@codemirror/state';
3
+ /**
4
+ * ⇧⌘↵ — a blank line ABOVE each cursor's line, keeping that line's indentation, the caret on it.
5
+ * VS Code's "Insert Line Above"; CodeMirror's `defaultKeymap` has the line below (`Mod-Enter`,
6
+ * `insertBlankLine`) and the delete (`Shift-Mod-k`) but not this one. The `<textarea>` half of the
7
+ * same three keys is `cursedbelt/react/line-keys`.
8
+ */
9
+ export const insertBlankLineAbove = ({ state, dispatch }) => {
10
+ if (state.readOnly)
11
+ return false;
12
+ const changes = state.changeByRange((range) => {
13
+ const line = state.doc.lineAt(range.from);
14
+ const indent = /^[ \t]*/.exec(line.text)?.[0] ?? '';
15
+ return {
16
+ changes: { from: line.from, insert: `${indent}${state.lineBreak}` },
17
+ range: EditorSelection.cursor(line.from + indent.length),
18
+ };
19
+ });
20
+ dispatch(state.update(changes, { scrollIntoView: true, userEvent: 'input' }));
21
+ return true;
22
+ };
23
+ /**
24
+ * The line keys `CodeEditor` adds IN FRONT of `defaultKeymap`: ⇧⌘↵ above, and ⌘↑ / ⌘↓ moving the
25
+ * line — the owner's chord (2026-10-05), which in `defaultKeymap` is the Mac's jump to the top or
26
+ * bottom. ⌥↑ / ⌥↓, VS Code's own move, is already in `defaultKeymap`, and so is ⇧⌘↑ (select to
27
+ * the top), which stays. The same keys in a `<textarea>` are `cursedbelt/react/line-keys`.
28
+ */
29
+ export const lineKeyBindings = [
30
+ { key: 'Shift-Mod-Enter', run: insertBlankLineAbove },
31
+ { key: 'Mod-ArrowUp', run: moveLineUp },
32
+ { key: 'Mod-ArrowDown', run: moveLineDown },
33
+ ];
34
+ //# sourceMappingURL=lineAbove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineAbove.js","sourceRoot":"","sources":["../../../src/react/code-editor/lineAbove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAqB,MAAM,mBAAmB,CAAC;AAGvE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IACxE,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,OAAO;YACL,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE;YACnE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;SACzD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,oBAAoB,EAAE;IACrD,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE;IACvC,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,EAAE;CAC5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompanionLinkStatus.d.ts","sourceRoot":"","sources":["../../../src/react/companion-link/CompanionLinkStatus.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,iBAAiB,CAAC;IACxB,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6BD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAgB,EAAE,SAAS,EAAE,EAAE,wBAAwB,+BA0F1G"}
1
+ {"version":3,"file":"CompanionLinkStatus.d.ts","sourceRoot":"","sources":["../../../src/react/companion-link/CompanionLinkStatus.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,iBAAiB,CAAC;IACxB,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6BD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAgB,EAAE,SAAS,EAAE,EAAE,wBAAwB,+BAuF1G"}
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { formatTimeAgo } from 'cwip/format';
3
3
  import { Accordion } from '../components/Accordion.js';
4
4
  import { Badge } from '../components/Badge.js';
5
+ import { Property, PropertyList } from '../components/PropertyList.js';
5
6
  import { Skeleton } from '../components/Skeleton.js';
6
7
  import { StatusPill } from '../components/StatusPill.js';
7
8
  import { cn } from '../lib/cn.js';
@@ -32,7 +33,7 @@ export function CompanionLinkStatus({ view, loaded, now = Date.now(), className
32
33
  const heard = view.lastHeardClientTs != null ? formatTimeAgo(view.lastHeardClientTs, now) : 'never';
33
34
  const openPending = view.pending.filter((p) => p.state === 'pending').length;
34
35
  const summary = (_jsxs("div", { className: 'flex min-w-0 items-center gap-2', "data-testid": 'companion-link-summary', children: [_jsx(StatusPill, { status: connectionPillStatus(view.connection), children: CONNECTION_LABEL[view.connection] }), _jsx("span", { className: 'truncate text-xs text-muted-foreground', "data-testid": 'companion-link-heard', children: view.connection === 'never' ? 'no data yet' : `last heard ${heard}` }), openPending > 0 && (_jsxs(Badge, { tone: 'warning', className: 'shrink-0', "data-testid": 'companion-link-pending-count', children: [openPending, " pending"] })), view.backlog > 0 && (_jsxs(Badge, { tone: 'accent', className: 'shrink-0', title: 'Commands queued for the away primary', children: [view.backlog, " queued"] }))] }));
35
- const detail = (_jsxs("dl", { className: 'grid grid-cols-2 gap-x-4 gap-y-1 text-xs', children: [_jsx("dt", { className: 'text-muted-foreground', children: "Connection" }), _jsx("dd", { className: 'text-right font-medium', children: CONNECTION_LABEL[view.connection] }), _jsx("dt", { className: 'text-muted-foreground', children: "Last heard" }), _jsx("dd", { className: 'text-right', children: view.connection === 'never' ? '—' : heard }), _jsx("dt", { className: 'text-muted-foreground', children: "Mirror cursor" }), _jsx("dd", { className: 'text-right cb-code', children: view.haveUp }), _jsx("dt", { className: 'text-muted-foreground', children: "Command backlog" }), _jsx("dd", { className: 'text-right', children: view.backlog }), _jsx("dt", { className: 'text-muted-foreground', children: "Synced channels" }), _jsx("dd", { className: 'text-right', children: view.channels.length })] }));
36
+ const detail = (_jsxs(PropertyList, { density: 'compact', children: [_jsx(Property, { label: 'Connection', children: CONNECTION_LABEL[view.connection] }), _jsx(Property, { label: 'Last heard', children: view.connection === 'never' ? '—' : heard }), _jsx(Property, { label: 'Mirror cursor', mono: true, children: view.haveUp }), _jsx(Property, { label: 'Command backlog', children: String(view.backlog) }), _jsx(Property, { label: 'Synced channels', children: String(view.channels.length) })] }));
36
37
  return (_jsxs("div", { className: cn('flex min-w-0 flex-col gap-1', className), "data-testid": 'companion-link-status', children: [_jsx(Accordion, { type: 'single', className: 'divide-y-0', items: [
37
38
  {
38
39
  value: 'link',
@@ -1 +1 @@
1
- {"version":3,"file":"CompanionLinkStatus.js","sourceRoot":"","sources":["../../../src/react/companion-link/CompanionLinkStatus.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CompanionLinkStatus.js","sourceRoot":"","sources":["../../../src/react/companion-link/CompanionLinkStatus.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../src/react/components/Accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,OAAO,EAAE,SAAS,CAAC;IACnB,gDAAgD;IAChD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,oBAAqB,SAAQ,kBAAkB;IACvD,mFAAmF;IACnF,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,UAAU,sBAAuB,SAAQ,kBAAkB;IACzD,2DAA2D;IAC3D,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAE3E;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,IAAe,EACf,KAAK,EACL,YAAY,EACZ,aAAa,GACd,EAAE,cAAc,+BA+BhB"}
1
+ {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../src/react/components/Accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,OAAO,EAAE,SAAS,CAAC;IACnB,gDAAgD;IAChD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,oBAAqB,SAAQ,kBAAkB;IACvD,mFAAmF;IACnF,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,UAAU,sBAAuB,SAAQ,kBAAkB;IACzD,2DAA2D;IAC3D,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAE3E;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,IAAe,EACf,KAAK,EACL,YAAY,EACZ,aAAa,GACd,EAAE,cAAc,+BAgChB"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as RadixAccordion from '@radix-ui/react-accordion';
3
- import { ChevronDown } from 'lucide-react';
3
+ import { ChevronRight } from 'lucide-react';
4
4
  import { cn } from '../lib/cn.js';
5
5
  /**
6
6
  * A stacked set of collapsible sections built on Radix `Accordion` — the multi-item
@@ -15,6 +15,6 @@ export function Accordion({ items, className, contentClassName, type = 'single',
15
15
  const rootProps = (type === 'single'
16
16
  ? { type, value, defaultValue, onValueChange, collapsible: true }
17
17
  : { type, value, defaultValue, onValueChange });
18
- return (_jsx(RadixAccordion.Root, { className: cn('divide-y divide-border', className), ...rootProps, children: items.map((item) => (_jsxs(RadixAccordion.Item, { value: item.value, disabled: item.disabled, children: [_jsx(RadixAccordion.Header, { children: _jsxs(RadixAccordion.Trigger, { className: 'group flex w-full items-center justify-between gap-2 py-3 text-left text-sm font-medium text-foreground transition-colors hover:text-accent disabled:cursor-not-allowed disabled:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', children: [item.trigger, _jsx(ChevronDown, { className: 'size-4 shrink-0 text-muted-foreground transition-transform duration-200 group-data-[state=open]:rotate-180' })] }) }), _jsx(RadixAccordion.Content, { className: cn('overflow-hidden data-[state=open]:animate-collapsible-down data-[state=closed]:animate-collapsible-up'), children: _jsx("div", { className: cn('pb-3', contentClassName), children: item.content }) })] }, item.value))) }));
18
+ return (_jsx(RadixAccordion.Root, { className: cn('divide-y divide-border', className), ...rootProps, children: items.map((item) => (_jsxs(RadixAccordion.Item, { value: item.value, disabled: item.disabled, children: [_jsx(RadixAccordion.Header, { children: _jsxs(RadixAccordion.Trigger, { className: 'group flex w-full items-center justify-start gap-2 py-3 text-left text-sm font-medium text-foreground transition-colors hover:text-accent disabled:cursor-not-allowed disabled:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', children: [_jsx(ChevronRight, { "aria-hidden": true, className: 'size-4 shrink-0 text-muted-foreground transition-transform duration-200 group-data-[state=open]:rotate-90' }), _jsx("span", { className: 'min-w-0 flex-1', children: item.trigger })] }) }), _jsx(RadixAccordion.Content, { className: cn('overflow-hidden data-[state=open]:animate-collapsible-down data-[state=closed]:animate-collapsible-up'), children: _jsx("div", { className: cn('pb-3', contentClassName), children: item.content }) })] }, item.value))) }));
19
19
  }
20
20
  //# sourceMappingURL=Accordion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../../src/react/components/Accordion.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAoClC;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,IAAI,GAAG,QAAQ,EACf,KAAK,EACL,YAAY,EACZ,aAAa,GACE;IACf,mFAAmF;IACnF,oEAAoE;IACpE,MAAM,SAAS,GAAG,CAChB,IAAI,KAAK,QAAQ;QACf,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE;QACjE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,CACJ,CAAC;IAC/C,OAAO,CACL,KAAC,cAAc,CAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,KAAM,SAAS,YACnF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,MAAC,cAAc,CAAC,IAAI,IAAkB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,aAC9E,KAAC,cAAc,CAAC,MAAM,cAGpB,MAAC,cAAc,CAAC,OAAO,IAAC,SAAS,EAAC,gRAAgR,aAC/S,IAAI,CAAC,OAAO,EACb,KAAC,WAAW,IAAC,SAAS,EAAC,4GAA4G,GAAG,IAC/G,GACH,EACxB,KAAC,cAAc,CAAC,OAAO,IACrB,SAAS,EAAE,EAAE,CACX,uGAAuG,CACxG,YAED,cAAK,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAG,IAAI,CAAC,OAAO,GAAO,GAC3C,KAfD,IAAI,CAAC,KAAK,CAgBd,CACvB,CAAC,GACkB,CACvB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../../src/react/components/Accordion.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAoClC;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,IAAI,GAAG,QAAQ,EACf,KAAK,EACL,YAAY,EACZ,aAAa,GACE;IACf,mFAAmF;IACnF,oEAAoE;IACpE,MAAM,SAAS,GAAG,CAChB,IAAI,KAAK,QAAQ;QACf,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE;QACjE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,CACJ,CAAC;IAC/C,OAAO,CACL,KAAC,cAAc,CAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,KAAM,SAAS,YACnF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,MAAC,cAAc,CAAC,IAAI,IAAkB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,aAC9E,KAAC,cAAc,CAAC,MAAM,cAGpB,MAAC,cAAc,CAAC,OAAO,IAAC,SAAS,EAAC,8QAA8Q,aAE9S,KAAC,YAAY,yBAAa,SAAS,EAAC,2GAA2G,GAAG,EAClJ,eAAM,SAAS,EAAC,gBAAgB,YAAE,IAAI,CAAC,OAAO,GAAQ,IAC/B,GACH,EACxB,KAAC,cAAc,CAAC,OAAO,IACrB,SAAS,EAAE,EAAE,CACX,uGAAuG,CACxG,YAED,cAAK,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,YAAG,IAAI,CAAC,OAAO,GAAO,GAC3C,KAhBD,IAAI,CAAC,KAAK,CAiBd,CACvB,CAAC,GACkB,CACvB,CAAC;AACJ,CAAC"}
@@ -24,9 +24,28 @@ export declare const BADGE_TONE: {
24
24
  readonly fuchsia: "bg-tone-fuchsia-bg text-tone-fuchsia-fg";
25
25
  };
26
26
  export type BadgeTone = keyof typeof BADGE_TONE;
27
+ /**
28
+ * The dot each tone draws under `appearance='dot'` — the tone's own hue, at full strength, on a
29
+ * mark 8px across. Typed against `BadgeTone` so a tone added above cannot ship without one.
30
+ */
31
+ export declare const BADGE_DOT: Record<BadgeTone, string>;
32
+ /**
33
+ * `filled` is the capsule. `dot` is Linear's: a small dot in the tone's hue and the word in
34
+ * ordinary text, with no fill and no edge.
35
+ *
36
+ * 🔴 Reach for `dot` when the badge REPEATS — one per row of a list or a tree. The owner's
37
+ * 2026-10-05 comparison lost on exactly this: desk's Components tree drew a solid red `PROD` or
38
+ * orange `STAGE` capsule on every row, and the judge read them as "competing focal points". A
39
+ * filled capsule is the loudest thing in a row, so a column of them outranks the names beside
40
+ * it; a column of dots carries the same fact and lets the names lead (DAT-4: status pills are
41
+ * rationed). One filled capsule in a header is still right.
42
+ */
43
+ export type BadgeAppearance = 'filled' | 'dot';
27
44
  export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
28
45
  /** Semantic or categorical tone (default `default`). */
29
46
  tone?: BadgeTone;
47
+ /** `filled` (default) is the capsule; `dot` is a hue dot beside plain text. See {@link BadgeAppearance}. */
48
+ appearance?: BadgeAppearance;
30
49
  }
31
- export declare function Badge({ tone, className, title, ...props }: BadgeProps): import("react").JSX.Element;
50
+ export declare function Badge({ tone, appearance, className, title, children, ...props }: BadgeProps): import("react").JSX.Element;
32
51
  //# sourceMappingURL=Badge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/react/components/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAmB5C,4HAA4H;AAC5H,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;CAgDb,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,UAAU,CAAC;AAEhD,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,eAAe,CAAC;IACjE,wDAAwD;IACxD,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,wBAAgB,KAAK,CAAC,EAAE,IAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,+BA6BjF"}
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/react/components/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAmB5C,4HAA4H;AAC5H,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;CAgDb,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,UAAU,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAsB/C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE/C,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,eAAe,CAAC;IACjE,wDAAwD;IACxD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,4GAA4G;IAC5G,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,wBAAgB,KAAK,CAAC,EAAE,IAAgB,EAAE,UAAqB,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,+BAyClH"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { cn } from '../lib/cn.js';
3
3
  import { Tooltip } from './Tooltip.js';
4
4
  /*
@@ -66,8 +66,35 @@ export const BADGE_TONE = {
66
66
  violet: 'bg-tone-violet-bg text-tone-violet-fg',
67
67
  fuchsia: 'bg-tone-fuchsia-bg text-tone-fuchsia-fg',
68
68
  };
69
- export function Badge({ tone = 'default', className, title, ...props }) {
70
- const pill = (_jsx("span", { className: cn('inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium', BADGE_TONE[tone], className), ...props }));
69
+ /**
70
+ * The dot each tone draws under `appearance='dot'` — the tone's own hue, at full strength, on a
71
+ * mark 8px across. Typed against `BadgeTone` so a tone added above cannot ship without one.
72
+ */
73
+ export const BADGE_DOT = {
74
+ default: 'bg-muted-foreground',
75
+ neutral: 'bg-muted-foreground',
76
+ outline: 'bg-muted-foreground',
77
+ primary: 'bg-accent-solid',
78
+ accent: 'bg-accent',
79
+ success: 'bg-success',
80
+ warning: 'bg-warning',
81
+ error: 'bg-destructive',
82
+ destructive: 'bg-destructive',
83
+ emerald: 'bg-tone-emerald-fg',
84
+ sky: 'bg-tone-sky-fg',
85
+ cyan: 'bg-tone-cyan-fg',
86
+ amber: 'bg-tone-amber-fg',
87
+ purple: 'bg-tone-purple-fg',
88
+ rose: 'bg-tone-rose-fg',
89
+ orange: 'bg-tone-orange-fg',
90
+ slate: 'bg-tone-slate-fg',
91
+ lime: 'bg-tone-lime-fg',
92
+ teal: 'bg-tone-teal-fg',
93
+ violet: 'bg-tone-violet-fg',
94
+ fuchsia: 'bg-tone-fuchsia-fg',
95
+ };
96
+ export function Badge({ tone = 'default', appearance = 'filled', className, title, children, ...props }) {
97
+ const pill = appearance === 'dot' ? (_jsxs("span", { "data-appearance": 'dot', className: cn('inline-flex items-center gap-1.5 text-xs font-medium text-muted-foreground', className), ...props, children: [_jsx("span", { "aria-hidden": 'true', className: cn('size-2 flex-none rounded-full', BADGE_DOT[tone]) }), children] })) : (_jsx("span", { className: cn('inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium', BADGE_TONE[tone], className), ...props, children: children }));
71
98
  // 🔴 `title` becomes a THEMED tooltip, never the OS one (2026-08-23, OPT unit 36).
72
99
  //
73
100
  // `BadgeProps extends HTMLAttributes<HTMLSpanElement>`, so `title` type-checked
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../src/react/components/Badge.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;;;;;;;;;;;;GAcG;AACH,4HAA4H;AAC5H,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,2EAA2E;IAC3E,8FAA8F;IAC9F,yFAAyF;IACzF,6FAA6F;IAC7F,gFAAgF;IAChF,OAAO,EAAE,4DAA4D;IACrE,OAAO,EAAE,4DAA4D,EAAE,mBAAmB;IAC1F,OAAO,EAAE,4BAA4B;IACrC,MAAM,EAAE,iCAAiC,EAAE,oEAAoE;IAC/G,4EAA4E;IAC5E,0EAA0E;IAC1E,6EAA6E;IAC7E,OAAO,EAAE,4DAA4D;IACrE,OAAO,EAAE,4DAA4D;IACrE,KAAK,EAAE,wEAAwE;IAC/E,WAAW,EAAE,wEAAwE,EAAE,iBAAiB;IACxG,gFAAgF;IAChF,2EAA2E;IAC3E,8EAA8E;IAC9E,2EAA2E;IAC3E,mDAAmD;IACnD,OAAO,EAAE,sDAAsD;IAC/D,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,0EAA0E;IAC1E,0EAA0E;IAC1E,wEAAwE;IACxE,qDAAqD;IACrD,OAAO,EAAE,yCAAyC;IAClD,0FAA0F;IAC1F,uFAAuF;IACvF,oFAAoF;IACpF,GAAG,EAAE,8DAA8D;IACnE,IAAI,EAAE,mCAAmC;IACzC,KAAK,EAAE,qCAAqC;IAC5C,MAAM,EAAE,uCAAuC;IAC/C,IAAI,EAAE,mCAAmC;IACzC,MAAM,EAAE,uCAAuC;IAC/C,KAAK,EAAE,oEAAoE;IAC3E,qFAAqF;IACrF,oFAAoF;IACpF,4CAA4C;IAC5C,IAAI,EAAE,mCAAmC;IACzC,IAAI,EAAE,mCAAmC;IACzC,MAAM,EAAE,uCAAuC;IAC/C,OAAO,EAAE,yCAAyC;CAC1C,CAAC;AASX,MAAM,UAAU,KAAK,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAc;IAChF,MAAM,IAAI,GAAG,CACX,eACE,SAAS,EAAE,EAAE,CACX,+EAA+E,EAC/E,UAAU,CAAC,IAAI,CAAC,EAChB,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;IACF,mFAAmF;IACnF,EAAE;IACF,gFAAgF;IAChF,wEAAwE;IACxE,gFAAgF;IAChF,kFAAkF;IAClF,+EAA+E;IAC/E,iFAAiF;IACjF,+EAA+E;IAC/E,gBAAgB;IAChB,EAAE;IACF,+EAA+E;IAC/E,gFAAgF;IAChF,kFAAkF;IAClF,mFAAmF;IACnF,mFAAmF;IACnF,sDAAsD;IACtD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,OAAO,EAAE,KAAK,YAAG,IAAI,GAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../src/react/components/Badge.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/react/components/Button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,GAAG,EAGT,MAAM,OAAO,CAAC;AAGf,OAAO,EAAW,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIlF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc;;;8EAiG1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACxF,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAElF,MAAM,WAAW,WACf,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC;;;8CAG0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;6EACyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;;;;eAQW;IACX,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC;IAC9C,8EAA8E;IAC9E,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B;;;;8DAI0D;IAC1D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE;yFACqF;IACrF,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC;gFAC4E;IAC5E,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;CAC9B;AAED,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAe,EACf,OAAe,EACf,QAAQ,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAsB,EACtB,YAAmB,EACnB,OAAc,EACd,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,GAAG,KAAK,EACT,EAAE,WAAW,+BA+Gb"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/react/components/Button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,GAAG,EAGT,MAAM,OAAO,CAAC;AAGf,OAAO,EAAW,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIlF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc;;;8EAuG1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACxF,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAElF,MAAM,WAAW,WACf,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC;;;8CAG0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;6EACyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;;;;eAQW;IACX,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC;IAC9C,8EAA8E;IAC9E,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B;;;;8DAI0D;IAC1D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE;yFACqF;IACrF,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC;gFAC4E;IAC5E,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;CAC9B;AAED,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAe,EACf,OAAe,EACf,QAAQ,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAsB,EACtB,YAAmB,EACnB,OAAc,EACd,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,GAAG,KAAK,EACT,EAAE,WAAW,+BA+Gb"}
@@ -40,7 +40,7 @@ export const buttonVariants = cva([
40
40
  variants: {
41
41
  // The 3-weight action taxonomy (task cbux-42, STANDARDS.md §4c):
42
42
  // primary — the ONE solid hero action per view.
43
- // secondary — outline; the everyday supporting action.
43
+ // secondary — filled neutral, hairline edge; the everyday supporting action.
44
44
  // tertiary — low-contrast text/icon weight for row utilities and
45
45
  // toolbars ("ghost" is the legacy alias — same rendering,
46
46
  // both stay valid; new code should say what it means).
@@ -62,7 +62,13 @@ export const buttonVariants = cva([
62
62
  // not an actionable button (owner UX teardown 2026-07-15 §4). The accent
63
63
  // stays reserved for `primary`, so the one hero action per view keeps its
64
64
  // pull while every supporting action still has real button presence.
65
- secondary: 'border border-border-strong bg-card text-foreground shadow-raised hover:bg-muted focus-visible:ring-accent',
65
+ // 🔴 A FILLED neutral with a hairline edge since 5.58.0 — Linear's secondary. It was
66
+ // `border-border-strong bg-card`: the card's own ground inside a full-strength 3:1
67
+ // outline, so a toolbar of them was a row of bright boxes ("stark block borders", the
68
+ // judge's words when desk lost to Linear on 2026-10-05, task 2822). The fill carries the
69
+ // presence now and the edge is the quiet `--border`; a labelled button is identified by
70
+ // its label and fill, so the 3:1 non-text floor that FIELD borders hold does not apply.
71
+ secondary: 'border border-border bg-muted text-foreground shadow-raised hover:bg-border focus-visible:ring-accent',
66
72
  tertiary: 'text-foreground hover:bg-muted focus-visible:ring-accent',
67
73
  ghost: 'text-foreground hover:bg-muted focus-visible:ring-accent',
68
74
  link: 'h-auto px-0 py-0 text-accent underline-offset-4 hover:underline focus-visible:ring-accent',
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/react/components/Button.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/react/components/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAML,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,OAAO,EAA6C,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAC/B;IACE,+EAA+E;IAC/E,0EAA0E;IAC1E,iBAAiB,EAAE,wCAAwC;IAC3D,kHAAkH;IAClH,sGAAsG;IACtG,+HAA+H;IAC/H,qFAAqF;IACrF,gFAAgF;IAChF,2DAA2D;IAC3D,gFAAgF;IAChF,oFAAoF;IACpF,mGAAmG;IACnG,iCAAiC;CAClC,EACD;IACE,QAAQ,EAAE;QACR,iEAAiE;QACjE,sDAAsD;QACtD,iFAAiF;QACjF,sEAAsE;QACtE,0EAA0E;QAC1E,uEAAuE;QACvE,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,oEAAoE;QACpE,+DAA+D;QAC/D,yEAAyE;QACzE,0EAA0E;QAC1E,iEAAiE;QACjE,8EAA8E;QAC9E,iFAAiF;QACjF,qFAAqF;QACrF,OAAO,EAAE;YACP,OAAO,EACL,wFAAwF;YAC1F,0EAA0E;YAC1E,2EAA2E;YAC3E,yEAAyE;YACzE,0EAA0E;YAC1E,qEAAqE;YACrE,qFAAqF;YACrF,mFAAmF;YACnF,sFAAsF;YACtF,yFAAyF;YACzF,wFAAwF;YACxF,wFAAwF;YACxF,SAAS,EACP,uGAAuG;YACzG,QAAQ,EAAE,0DAA0D;YACpE,KAAK,EAAE,0DAA0D;YACjE,IAAI,EAAE,2FAA2F;YACjG,WAAW,EACT,2LAA2L;YAC7L,qEAAqE;YACrE,sEAAsE;YACtE,sEAAsE;YACtE,qEAAqE;YACrE,wEAAwE;YACxE,qBAAqB,EACnB,gMAAgM;YAClM,mBAAmB,EACjB,kHAAkH;YACpH,eAAe,EAAE,qFAAqF;SACvG;QACD,iFAAiF;QACjF,+EAA+E;QAC/E,4EAA4E;QAC5E,8EAA8E;QAC9E,8EAA8E;QAC9E,6EAA6E;QAC7E,0DAA0D;QAC1D,8EAA8E;QAC9E,4EAA4E;QAC5E,+EAA+E;QAC/E,0EAA0E;QAC1E,4EAA4E;QAC5E,4EAA4E;QAC5E,4EAA4E;QAC5E,4DAA4D;QAC5D,IAAI,EAAE;YACJ,EAAE,EAAE,8DAA8D;YAClE,EAAE,EAAE,8DAA8D;YAClE,EAAE,EAAE,gEAAgE;YACpE,qEAAqE;YACrE,8EAA8E;YAC9E,0EAA0E;YAC1E,uEAAuE;YACvE,yBAAyB;YACzB,SAAS,EAAE,6EAA6E;YACxF,IAAI,EAAE,6EAA6E,EAAE,oCAAoC;YACzH,SAAS,EAAE,6EAA6E;SACzF;KACF;IACD,4FAA4F;IAC5F,6FAA6F;IAC7F,8FAA8F;IAC9F,kEAAkE;IAClE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5F,eAAe,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;CACtD,CACF,CAAC;AAgFF,MAAM,UAAU,MAAM,CAAC,EACrB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAc,GAAG,KAAK,EACtB,YAAY,GAAG,IAAI,EACnB,OAAO,GAAG,IAAI,EACd,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,GAAG,KAAK,EACI;IACZ,MAAM,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IAEjE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IAEtE,MAAM,WAAW,GAAG,YAAY;QAC9B,CAAC,CAAC,KAAK,EAAE,CAAgC,EAAE,EAAE;YACzC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACb,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,IAAI,UAAU,CAAC,OAAO;gBAAE,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACzD,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtB,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;oBAC7B,KAAK,CAAC,OAAO,CAAC,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC9E,CAAC;gBACD,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;oBAC3B,6DAA6D;oBAC7D,KAAK,CAAC,KAAK,CACT,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAClG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACrE,CAAC;gBACJ,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACH,CAAC,CAAC,OAAO,CAAC;IAEZ,MAAM,SAAS,GAAG,OAAO,IAAI,OAAO,CAAC;IACrC,MAAM,MAAM,GAAG,iBAAiB,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC;IAElD,sFAAsF;IACtF,+DAA+D;IAC/D,MAAM,WAAW,GAAG,CAAC,CAAgC,EAAE,EAAE;QACvD,IAAI,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC,CAAC;IACF,yFAAyF;IACzF,0EAA0E;IAC1E,MAAM,SAAS,GAAG,CAAC,CAAmC,EAAE,EAAE;QACxD,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;YACpD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,qFAAqF;IACrF,kFAAkF;IAClF,wFAAwF;IACxF,6EAA6E;IAC7E,0EAA0E;IAC1E,MAAM,WAAW,GAAG,OAAO,IAAI,WAAW,CAAC;IAE3C,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CACnB,KAAC,IAAI,IAAC,SAAS,EAAE,OAAO,qBAAmB,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,KAAM,KAAK,YACtG,QAAQ,GACJ,CACR,CAAC,CAAC,CAAC,CACF;QACE,iFAAiF;QACjF,gDAAgD;QAChD,kFAAkF;QAClF,IAAI,EAAE,IAAI,IAAI,QAAQ,EACtB,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,qBACjB,WAAW,KACxB,KAAK,EACT,QAAQ,EAAE,CAAC,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,mBAC7C,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,eAC3C,SAAS,IAAI,SAAS,EACjC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,SAAS,aAEnB,SAAS,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,SAAS,EAAC,8BAA8B,wBAAe,CAAC,CAAC,CAAC,IAAI,EACnF,CAAC,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC,KAAC,KAAK,IAAC,SAAS,EAAC,iBAAiB,wBAAe,CAAC,CAAC,CAAC,IAAI,EAEvF,gBAAM,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,WAAW,CAAC,aACzE,QAAQ,EACR,QAAQ,IACJ,IACA,CACV,CAAC;IAEF,yFAAyF;IACzF,MAAM,SAAS,GAAG,aAAa,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE/G,8FAA8F;IAC9F,2FAA2F;IAC3F,yFAAyF;IACzF,OAAO,CAGL,KAAC,OAAO,IACN,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EACnC,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAC3G,SAAS,kBAER,EAAE,GACK,CACX,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../../src/react/components/Collapsible.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,OAAO,EAAE,SAAS,CAAC;IACnB,mCAAmC;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,WAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,gBAAgB,GACjB,EAAE,gBAAgB,+BA8BlB"}
1
+ {"version":3,"file":"Collapsible.d.ts","sourceRoot":"","sources":["../../../src/react/components/Collapsible.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,OAAO,EAAE,SAAS,CAAC;IACnB,mCAAmC;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,WAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,gBAAgB,GACjB,EAAE,gBAAgB,+BA+BlB"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as RadixCollapsible from '@radix-ui/react-collapsible';
3
- import { ChevronDown } from 'lucide-react';
3
+ import { ChevronRight } from 'lucide-react';
4
4
  import { cn } from '../lib/cn.js';
5
5
  import { TAP_TARGET_HEIGHT } from '../lib/tapTarget.js';
6
6
  import { RAW_BUTTON } from '../lib/cn.js';
@@ -17,6 +17,6 @@ export function Collapsible({ trigger, children, open, defaultOpen = false, onOp
17
17
  return (_jsxs(RadixCollapsible.Root, { open: open, defaultOpen: defaultOpen, onOpenChange: onOpenChange, disabled: disabled, className: className, children: [_jsx(RadixCollapsible.Trigger, { asChild: true, children: _jsxs("button", {
18
18
  // guardrails-ignore no-raw-action-button: this IS the Collapsible section-toggle
19
19
  // primitive — its own trigger is necessarily a raw <button> (Radix Trigger asChild).
20
- type: 'button', className: cn(RAW_BUTTON, `group flex w-full items-center justify-between gap-2 py-2 text-left text-sm font-medium text-foreground transition-colors hover:text-accent disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ${TAP_TARGET_HEIGHT}`), children: [trigger, _jsx(ChevronDown, { className: 'size-4 shrink-0 text-muted-foreground transition-transform duration-200 group-data-[state=open]:rotate-180' })] }) }), _jsx(RadixCollapsible.Content, { className: cn('overflow-hidden data-[state=open]:animate-collapsible-down data-[state=closed]:animate-collapsible-up', contentClassName), children: children })] }));
20
+ type: 'button', className: cn(RAW_BUTTON, `group flex w-full items-center justify-start gap-2 py-2 text-left text-sm font-medium text-foreground transition-colors hover:text-accent disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ${TAP_TARGET_HEIGHT}`), children: [_jsx(ChevronRight, { "aria-hidden": true, className: 'size-4 shrink-0 text-muted-foreground transition-transform duration-200 group-data-[state=open]:rotate-90' }), _jsx("span", { className: 'min-w-0 flex-1', children: trigger })] }) }), _jsx(RadixCollapsible.Content, { className: cn('overflow-hidden data-[state=open]:animate-collapsible-down data-[state=closed]:animate-collapsible-up', contentClassName), children: children })] }));
21
21
  }
22
22
  //# sourceMappingURL=Collapsible.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Collapsible.js","sourceRoot":"","sources":["../../../src/react/components/Collapsible.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAmB1C;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,WAAW,GAAG,KAAK,EACnB,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,gBAAgB,GACC;IACjB,OAAO,CACL,MAAC,gBAAgB,CAAC,IAAI,IACpB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,aAEpB,KAAC,gBAAgB,CAAC,OAAO,IAAC,OAAO,kBAC/B;oBACE,iFAAiF;oBACjF,qFAAqF;oBACrF,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,uQAAuQ,iBAAiB,EAAE,CAAC,aAEpT,OAAO,EACR,KAAC,WAAW,IAAC,SAAS,EAAC,4GAA4G,GAAG,IAC/H,GACgB,EAC3B,KAAC,gBAAgB,CAAC,OAAO,IACvB,SAAS,EAAE,EAAE,CACX,uGAAuG,EACvG,gBAAgB,CACjB,YAEA,QAAQ,GACgB,IACL,CACzB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Collapsible.js","sourceRoot":"","sources":["../../../src/react/components/Collapsible.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAmB1C;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,WAAW,GAAG,KAAK,EACnB,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,gBAAgB,GACC;IACjB,OAAO,CACL,MAAC,gBAAgB,CAAC,IAAI,IACpB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,aAEpB,KAAC,gBAAgB,CAAC,OAAO,IAAC,OAAO,kBAC/B;oBACE,iFAAiF;oBACjF,qFAAqF;oBACrF,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,qQAAqQ,iBAAiB,EAAE,CAAC,aAGnT,KAAC,YAAY,yBAAa,SAAS,EAAC,2GAA2G,GAAG,EAClJ,eAAM,SAAS,EAAC,gBAAgB,YAAE,OAAO,GAAQ,IAC1C,GACgB,EAC3B,KAAC,gBAAgB,CAAC,OAAO,IACvB,SAAS,EAAE,EAAE,CACX,uGAAuG,EACvG,gBAAgB,CACjB,YAEA,QAAQ,GACgB,IACL,CACzB,CAAC;AACJ,CAAC"}
@@ -3,7 +3,7 @@ export interface DisclosureArrowProps {
3
3
  open: boolean;
4
4
  className?: string;
5
5
  }
6
- /** A chevron that rotates 180° when `open` is true. */
6
+ /** A right-pointing chevron that turns 90° to point down when `open` is true. */
7
7
  export declare function DisclosureArrow({ open, className }: DisclosureArrowProps): import("react").JSX.Element;
8
8
  export interface DisclosureButtonClassNames {
9
9
  arrow?: string;
@@ -15,6 +15,6 @@ export interface DisclosureButtonProps {
15
15
  className?: string;
16
16
  classNames?: DisclosureButtonClassNames;
17
17
  }
18
- /** A button that reveals content on toggle — renders children + a {@link DisclosureArrow}. */
18
+ /** A button that reveals content on toggle — a leading {@link DisclosureArrow}, then children. */
19
19
  export declare function DisclosureButton({ open, onToggle, children, className, classNames, }: DisclosureButtonProps): import("react").JSX.Element;
20
20
  //# sourceMappingURL=DisclosureButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DisclosureButton.d.ts","sourceRoot":"","sources":["../../../src/react/components/DisclosureButton.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,oBAAoB,+BAUxE;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,0BAA0B,CAAC;CACzC;AAED,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,GACX,EAAE,qBAAqB,+BAmBvB"}
1
+ {"version":3,"file":"DisclosureButton.d.ts","sourceRoot":"","sources":["../../../src/react/components/DisclosureButton.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,oBAAoB,+BAWxE;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,0BAA0B,CAAC;CACzC;AAED,kGAAkG;AAClG,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,GACX,EAAE,qBAAqB,+BAmBvB"}
@@ -1,15 +1,18 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // Simple disclosure/collapse primitives — a rotating-chevron arrow and a button
3
- // wrapper that pairs children with the arrow. Used anywhere a lightweight toggle
3
+ // wrapper that pairs the arrow with children. Used anywhere a lightweight toggle
4
4
  // trigger is needed without the full Radix Collapsible overhead.
5
- import { ChevronDown } from 'lucide-react';
5
+ //
6
+ // The arrow LEADS (design law FRM-18, the owner's rule): a right-pointing chevron before the
7
+ // label that turns to point down when open — Finder's, Notion's and VS Code's disclosure.
8
+ import { ChevronRight } from 'lucide-react';
6
9
  import { cn } from '../lib/cn.js';
7
10
  import { RAW_BUTTON } from '../lib/cn.js';
8
- /** A chevron that rotates 180° when `open` is true. */
11
+ /** A right-pointing chevron that turns 90° to point down when `open` is true. */
9
12
  export function DisclosureArrow({ open, className }) {
10
- return (_jsx(ChevronDown, { className: cn('size-4 shrink-0 transition-transform duration-200', open && 'rotate-180', className) }));
13
+ return (_jsx(ChevronRight, { "aria-hidden": true, className: cn('size-4 shrink-0 transition-transform duration-200', open && 'rotate-90', className) }));
11
14
  }
12
- /** A button that reveals content on toggle — renders children + a {@link DisclosureArrow}. */
15
+ /** A button that reveals content on toggle — a leading {@link DisclosureArrow}, then children. */
13
16
  export function DisclosureButton({ open, onToggle, children, className, classNames, }) {
14
17
  return (_jsxs("button", {
15
18
  // guardrails-ignore no-raw-action-button: this IS the disclosure-toggle primitive —
@@ -17,6 +20,6 @@ export function DisclosureButton({ open, onToggle, children, className, classNam
17
20
  type: 'button',
18
21
  // A bare <button> drew no focus ring at all — a keyboard user could not see where they
19
22
  // were (forge task 2595). The ring is the kit's focus-visible ring, on a rounded box.
20
- className: cn(RAW_BUTTON, 'flex items-center gap-2 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', className), "aria-expanded": open, onClick: onToggle, children: [children, _jsx(DisclosureArrow, { open: open, className: classNames?.arrow })] }));
23
+ className: cn(RAW_BUTTON, 'flex items-center gap-2 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', className), "aria-expanded": open, onClick: onToggle, children: [_jsx(DisclosureArrow, { open: open, className: classNames?.arrow }), children] }));
21
24
  }
22
25
  //# sourceMappingURL=DisclosureButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DisclosureButton.js","sourceRoot":"","sources":["../../../src/react/components/DisclosureButton.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,iFAAiF;AACjF,iEAAiE;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C,uDAAuD;AACvD,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAwB;IACvE,OAAO,CACL,KAAC,WAAW,IACV,SAAS,EAAE,EAAE,CACX,mDAAmD,EACnD,IAAI,IAAI,YAAY,EACpB,SAAS,CACV,GACD,CACH,CAAC;AACJ,CAAC;AAcD,8FAA8F;AAC9F,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,GACY;IACtB,OAAO,CACL;QACE,oFAAoF;QACpF,wEAAwE;QACxE,IAAI,EAAC,QAAQ;QACb,uFAAuF;QACvF,sFAAsF;QACtF,SAAS,EAAE,EAAE,CAAC,UAAU,EACtB,sHAAsH,EACtH,SAAS,CACV,mBACc,IAAI,EACnB,OAAO,EAAE,QAAQ,aAEhB,QAAQ,EACT,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,GAAI,IACtD,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"DisclosureButton.js","sourceRoot":"","sources":["../../../src/react/components/DisclosureButton.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,iFAAiF;AACjF,iEAAiE;AACjE,EAAE;AACF,6FAA6F;AAC7F,0FAA0F;AAE1F,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAwB;IACvE,OAAO,CACL,KAAC,YAAY,yBAEX,SAAS,EAAE,EAAE,CACX,mDAAmD,EACnD,IAAI,IAAI,WAAW,EACnB,SAAS,CACV,GACD,CACH,CAAC;AACJ,CAAC;AAcD,kGAAkG;AAClG,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,GACY;IACtB,OAAO,CACL;QACE,oFAAoF;QACpF,wEAAwE;QACxE,IAAI,EAAC,QAAQ;QACb,uFAAuF;QACvF,sFAAsF;QACtF,SAAS,EAAE,EAAE,CAAC,UAAU,EACtB,sHAAsH,EACtH,SAAS,CACV,mBACc,IAAI,EACnB,OAAO,EAAE,QAAQ,aAEjB,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,GAAI,EAC5D,QAAQ,IACF,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { type ReactNode } from 'react';
2
+ import './formKit.css';
3
+ import './editorPage.css';
4
+ export interface EditorPageProps {
5
+ /** What is being made or changed — *"New template"*, *"Edit Dynatrace"*. The page's heading. */
6
+ title: ReactNode;
7
+ /** Where Back returns to, said before the title as a crumb — *"Templates"*. */
8
+ backLabel?: string;
9
+ /** Leave the page. Back, and Escape from anywhere on it — asked first while `isDirty`. */
10
+ onBack: () => void;
11
+ /**
12
+ * The form holds edits nobody has saved. Back and Escape then ask *"Discard changes?"*
13
+ * before leaving, as an editing `Modal` does (`useDiscardGuard`) — a half-made thing is
14
+ * never thrown away by a stray key. The page's own Cancel, if it has one, is the caller's.
15
+ */
16
+ isDirty?: boolean;
17
+ /** Top-right: Cancel / Save, a delete. An `ActionBar`'s buttons, or a few `Button`s. */
18
+ actions?: ReactNode;
19
+ /** The form — the left side. Drawn quiet (`QuietForm`) unless `quiet={false}`. */
20
+ children: ReactNode;
21
+ /** The live result of the form — the right side, as a mock somebody can tinker with. */
22
+ preview: ReactNode;
23
+ /** What the preview is. Its heading, and its tab on a phone. Default "Preview". */
24
+ previewLabel?: string;
25
+ /** Small controls over the preview — show or hide parts of it. Drawn beside its heading. */
26
+ previewTools?: ReactNode;
27
+ /** The form's share of the width, 0–1, before anybody drags. Default 0.5. */
28
+ defaultSplit?: number;
29
+ /** localStorage key the dragged split is kept under. Omit to forget it on close. */
30
+ storageKey?: string;
31
+ /** Linear's form: no boxes until a control is pointed at. Default `true`. */
32
+ quiet?: boolean;
33
+ /**
34
+ * `'overlay'` (default) covers the window — the page opens over whatever was there and Back
35
+ * returns to it untouched. `'inline'` fills its container, for a host whose router owns pages.
36
+ */
37
+ presentation?: 'overlay' | 'inline';
38
+ className?: string;
39
+ }
40
+ /**
41
+ * A creation page: the form on the left, a live mock of what it makes on the right, and a
42
+ * divider between them that drags.
43
+ *
44
+ * The owner, 2026-10-05, on desk's template editor: *"instead of opening a modal I want to open a
45
+ * page with a split view where I see the forms and fields … on the left and I see what it looks
46
+ * like so far and can tinker with a mock version of it on the right. I should be able to drag to
47
+ * resize a vertical divider … On mobile it will need an appropriate narrow layout."*
48
+ *
49
+ * - **Wide** (its container ≥ 48rem): two columns and a `separator` between them — drag it,
50
+ * or focus it and use ← / → (Home / End for the limits); a double-click puts it back. The
51
+ * split is kept under `storageKey`. Each side scrolls on its own, so a long form never pushes
52
+ * the preview out of sight.
53
+ * - **Narrow**: one side at a time, chosen by an Edit / Preview switch in the header — a phone
54
+ * has no room for both, and a pinned half-height preview leaves neither usable.
55
+ *
56
+ * The header is the page's own: a Back arrow with the crumb, the title, and the actions
57
+ * top-right where Linear and every desktop editor put Save. Escape anywhere is Back, as it was
58
+ * when the same form was a dialog.
59
+ *
60
+ * Plain stylesheet (`formKit.css`) — draws without Tailwind; `cursedbelt/react/form-kit`.
61
+ */
62
+ export declare function EditorPage({ title, backLabel, onBack, isDirty, actions, children, preview, previewLabel, previewTools, defaultSplit, storageKey, quiet, presentation, className, }: EditorPageProps): import("react").JSX.Element;
63
+ export interface QuietFormProps {
64
+ children: ReactNode;
65
+ className?: string;
66
+ }
67
+ /**
68
+ * Linear's form, for any form: inputs, textareas and selects drawn with no box until they are
69
+ * pointed at or focused, labels muted and small, so the values are the only full-strength text.
70
+ *
71
+ * The owner, 2026-10-05, beside a Linear project page: *"I like how it doesn't have boxes around
72
+ * all the fields and doesn't fill in extra text or explanations. I want this minimal look in our
73
+ * apps too."* `EditorPage` puts its form inside one; wrap any other form to get the same.
74
+ * The words are the caller's half: a field that needs a description to be understood has the
75
+ * wrong label or the wrong placeholder.
76
+ */
77
+ export declare function QuietForm({ children, className }: QuietFormProps): import("react").JSX.Element;
78
+ //# sourceMappingURL=EditorPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditorPage.d.ts","sourceRoot":"","sources":["../../../src/react/components/EditorPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAIf,OAAO,eAAe,CAAC;AACvB,OAAO,kBAAkB,CAAC;AAE1B,MAAM,WAAW,eAAe;IAC9B,gGAAgG;IAChG,KAAK,EAAE,SAAS,CAAC;IACjB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wFAAwF;IACxF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,kFAAkF;IAClF,QAAQ,EAAE,SAAS,CAAC;IACpB,wFAAwF;IACxF,OAAO,EAAE,SAAS,CAAC;IACnB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAkB,EAClB,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,YAAwB,EACxB,YAAY,EACZ,YAAkB,EAClB,UAAU,EACV,KAAY,EACZ,YAAwB,EACxB,SAAS,GACV,EAAE,eAAe,+BA2JjB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,+BAEhE"}