@hanzo/ui 8.0.61 → 8.0.63

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/dist/backends/gui/input.cjs +4 -3
  2. package/dist/backends/gui/input.d.ts +10 -2
  3. package/dist/backends/gui/input.d.ts.map +1 -1
  4. package/dist/backends/gui/input.js +4 -3
  5. package/dist/backends/gui/input.js.map +1 -1
  6. package/dist/backends/gui/mask.cjs +20 -0
  7. package/dist/backends/gui/mask.d.ts +17 -0
  8. package/dist/backends/gui/mask.d.ts.map +1 -0
  9. package/dist/backends/gui/mask.js +17 -0
  10. package/dist/backends/gui/mask.js.map +1 -0
  11. package/dist/backends/gui/switch.cjs +16 -2
  12. package/dist/backends/gui/switch.d.ts +14 -0
  13. package/dist/backends/gui/switch.d.ts.map +1 -1
  14. package/dist/backends/gui/switch.js +16 -2
  15. package/dist/backends/gui/switch.js.map +1 -1
  16. package/dist/chat/Code.cjs +1 -1
  17. package/dist/chat/Code.d.ts.map +1 -1
  18. package/dist/chat/Code.js +1 -1
  19. package/dist/chat/Code.js.map +1 -1
  20. package/dist/core/css.cjs +114 -0
  21. package/dist/core/css.d.ts +46 -0
  22. package/dist/core/css.d.ts.map +1 -0
  23. package/dist/core/css.js +112 -0
  24. package/dist/core/css.js.map +1 -0
  25. package/dist/product/CopyButton.cjs +16 -2
  26. package/dist/product/CopyButton.d.ts +30 -3
  27. package/dist/product/CopyButton.d.ts.map +1 -1
  28. package/dist/product/CopyButton.js +18 -4
  29. package/dist/product/CopyButton.js.map +1 -1
  30. package/dist/product/DataTable.cjs +4 -4
  31. package/dist/product/DataTable.js +4 -4
  32. package/dist/product/DataTable.js.map +1 -1
  33. package/dist/product/FadeIn.cjs +1 -1
  34. package/dist/product/FadeIn.js +1 -1
  35. package/dist/product/FadeIn.js.map +1 -1
  36. package/dist/product/Field.cjs +3 -3
  37. package/dist/product/Field.d.ts +21 -1
  38. package/dist/product/Field.d.ts.map +1 -1
  39. package/dist/product/Field.js +3 -3
  40. package/dist/product/Field.js.map +1 -1
  41. package/dist/product/Fieldset.cjs +10 -2
  42. package/dist/product/Fieldset.d.ts +12 -1
  43. package/dist/product/Fieldset.d.ts.map +1 -1
  44. package/dist/product/Fieldset.js +10 -2
  45. package/dist/product/Fieldset.js.map +1 -1
  46. package/dist/product/Metric.cjs +7 -4
  47. package/dist/product/Metric.d.ts +8 -1
  48. package/dist/product/Metric.d.ts.map +1 -1
  49. package/dist/product/Metric.js +7 -4
  50. package/dist/product/Metric.js.map +1 -1
  51. package/dist/product/Pagination.cjs +9 -49
  52. package/dist/product/Pagination.d.ts +2 -10
  53. package/dist/product/Pagination.d.ts.map +1 -1
  54. package/dist/product/Pagination.js +6 -46
  55. package/dist/product/Pagination.js.map +1 -1
  56. package/dist/product/Palette.cjs +65 -0
  57. package/dist/product/Palette.d.ts +67 -0
  58. package/dist/product/Palette.d.ts.map +1 -0
  59. package/dist/product/Palette.js +63 -0
  60. package/dist/product/Palette.js.map +1 -0
  61. package/dist/product/Reorder.cjs +1 -1
  62. package/dist/product/Reorder.js +1 -1
  63. package/dist/product/Reorder.js.map +1 -1
  64. package/dist/product/SecretInput.cjs +3 -13
  65. package/dist/product/SecretInput.d.ts +2 -11
  66. package/dist/product/SecretInput.d.ts.map +1 -1
  67. package/dist/product/SecretInput.js +6 -11
  68. package/dist/product/SecretInput.js.map +1 -1
  69. package/dist/product/SlideOver.cjs +2 -2
  70. package/dist/product/SlideOver.js +2 -2
  71. package/dist/product/SlideOver.js.map +1 -1
  72. package/dist/product/StatusTag.cjs +10 -39
  73. package/dist/product/StatusTag.d.ts +6 -2
  74. package/dist/product/StatusTag.d.ts.map +1 -1
  75. package/dist/product/StatusTag.js +10 -39
  76. package/dist/product/StatusTag.js.map +1 -1
  77. package/dist/product/UserMenu.cjs +4 -10
  78. package/dist/product/UserMenu.d.ts +2 -3
  79. package/dist/product/UserMenu.d.ts.map +1 -1
  80. package/dist/product/UserMenu.js +5 -8
  81. package/dist/product/UserMenu.js.map +1 -1
  82. package/dist/product/animatedLogo.logic.cjs +1 -1
  83. package/dist/product/animatedLogo.logic.js +1 -1
  84. package/dist/product/brand.cjs +1 -1
  85. package/dist/product/brand.js +1 -1
  86. package/dist/product/combobox/filter.cjs +1 -1
  87. package/dist/product/combobox/filter.js +1 -1
  88. package/dist/product/index.cjs +21 -3
  89. package/dist/product/index.d.ts +4 -1
  90. package/dist/product/index.d.ts.map +1 -1
  91. package/dist/product/index.js +20 -1
  92. package/dist/product/index.js.map +1 -1
  93. package/dist/product/match.cjs +76 -0
  94. package/dist/product/match.d.ts +78 -0
  95. package/dist/product/match.d.ts.map +1 -0
  96. package/dist/product/match.js +72 -0
  97. package/dist/product/match.js.map +1 -0
  98. package/dist/product/name.cjs +17 -0
  99. package/dist/product/name.d.ts +10 -0
  100. package/dist/product/name.d.ts.map +1 -0
  101. package/dist/product/name.js +15 -0
  102. package/dist/product/name.js.map +1 -0
  103. package/dist/product/pages.cjs +57 -0
  104. package/dist/product/pages.d.ts +28 -0
  105. package/dist/product/pages.d.ts.map +1 -0
  106. package/dist/product/pages.js +54 -0
  107. package/dist/product/pages.js.map +1 -0
  108. package/dist/product/pure.cjs +63 -0
  109. package/dist/product/pure.d.ts +9 -0
  110. package/dist/product/pure.d.ts.map +1 -0
  111. package/dist/product/pure.js +38 -0
  112. package/dist/product/pure.js.map +1 -0
  113. package/dist/product/scope.cjs +1 -1
  114. package/dist/product/scope.js +1 -1
  115. package/dist/product/social/SocialResource.cjs +1 -1
  116. package/dist/product/social/SocialResource.js +1 -1
  117. package/dist/product/social/SocialResource.js.map +1 -1
  118. package/dist/product/social/SocialSummaryBar.cjs +1 -1
  119. package/dist/product/social/SocialSummaryBar.js +1 -1
  120. package/dist/product/social/SocialSummaryBar.js.map +1 -1
  121. package/dist/product/tone.cjs +105 -0
  122. package/dist/product/tone.d.ts +52 -0
  123. package/dist/product/tone.d.ts.map +1 -0
  124. package/dist/product/tone.js +102 -0
  125. package/dist/product/tone.js.map +1 -0
  126. package/dist/product/useCommandK.cjs +46 -0
  127. package/dist/product/useCommandK.d.ts +4 -0
  128. package/dist/product/useCommandK.d.ts.map +1 -0
  129. package/dist/product/useCommandK.js +44 -0
  130. package/dist/product/useCommandK.js.map +1 -0
  131. package/dist/styles/motion.css +52 -17
  132. package/dist/styles.css +53 -20
  133. package/package.json +31 -3
@@ -99,7 +99,7 @@ export function SlideOver({ open, onClose, side = 'right', size = 420, title, ic
99
99
  , {
100
100
  // Fixed to the viewport; overflow hidden so the off-screen panel (absolute
101
101
  // child) is CLIPPED and never adds a horizontal scrollbar.
102
- overflow: "hidden", pointerEvents: open ? 'auto' : 'none', "aria-hidden": !open, style: { position: 'fixed', inset: 0, zIndex }, children: [_jsx(YStack, { position: "absolute", t: 0, l: 0, r: 0, b: 0, bg: "rgba(0,0,0,0.55)", className: "fade", style: { opacity: open ? 1 : 0 }, onPress: onClose }), _jsx(YStack
102
+ overflow: "hidden", pointerEvents: open ? 'auto' : 'none', "aria-hidden": !open, style: { position: 'fixed', inset: 0, zIndex }, children: [_jsx(YStack, { position: "absolute", t: 0, l: 0, r: 0, b: 0, bg: "rgba(0,0,0,0.55)", className: "hz-fade", style: { opacity: open ? 1 : 0 }, onPress: onClose }), _jsx(YStack
103
103
  // Web DOM ref; Gui forwards it to the underlying node. Cast (not @ts-expect-error)
104
104
  // so it is env-agnostic — the ref type is strict under the pkg build, loose here.
105
105
  , {
@@ -113,7 +113,7 @@ export function SlideOver({ open, onClose, side = 'right', size = 420, title, ic
113
113
  // own, so it floats free exactly the way a modal does. It asked for a 4th
114
114
  // rung, which is what a ladder turns into when it is treated as a palette —
115
115
  // and the 4th was a hardcoded shadow behind a variable nothing defined.
116
- className: "slide elevation-3",
116
+ className: "hz-slide elevation-3",
117
117
  // Full-height sheet (100dvh — mobile-safe), inset for the notch (top) + home
118
118
  // indicator (bottom) so the drawer header + footer actions clear them on
119
119
  // notched devices (env insets are 0 elsewhere, so no effect there).
@@ -1 +1 @@
1
- {"version":3,"file":"SlideOver.js","sourceRoot":"","sources":["../../src/product/SlideOver.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SlideOver.js","sourceRoot":"","sources":["../../src/product/SlideOver.tsx"],"names":[],"mappings":"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"}
@@ -4,46 +4,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.StatusTag = StatusTag;
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  /**
7
- * Status pill — maps a resource/cluster status string to a tone, one place.
7
+ * Status pill — one status string, one pill, everywhere.
8
8
  *
9
- * Provisioned things (managed resources, clusters) report free-form lifecycle
10
- * strings; this normalizes them to green/yellow/red/neutral so every list reads
11
- * the same. Style props use the v5 shorthand set.
9
+ * What a status MEANS is `tone` in `./tone`: a pure lookup a billing surface can
10
+ * assert against without mounting anything. This draws it. The pill has no hue
11
+ * to spend — the four tones are rungs of the grey ladder — so `stopped` is set
12
+ * apart by an EDGE, and every tone carries a border (transparent on three of
13
+ * them) so turning one on shifts no layout in a table of fifty rows.
12
14
  */
13
15
  const gui_1 = require("@hanzo/gui");
14
- const toneOf = (status) => {
15
- const s = status.toLowerCase();
16
- // Platform health verdicts map straight to a tone (the apps inventory reports
17
- // green/yellow/red directly).
18
- if (s === 'green')
19
- return 'green';
20
- if (s === 'yellow')
21
- return 'yellow';
22
- if (s === 'red')
23
- return 'red';
24
- if (['ready', 'active', 'running', 'available', 'ok', 'live', 'succeeded', 'connected', 'synced', 'imported'].includes(s))
25
- return 'green';
26
- if (['creating', 'provisioning', 'pending', 'updating', 'attaching', 'building', 'deploying', 'queued', 'importing'].includes(s))
27
- return 'yellow';
28
- if (['error', 'failed', 'degraded', 'down', 'canceled', 'conflict'].includes(s))
29
- return 'red';
30
- return 'neutral';
31
- };
32
- // `as const` keeps the literal token types (not widened to `string`) so they
33
- // satisfy the GUI `bg`/`color` token unions.
34
- const TONE_BG = {
35
- green: '$color5',
36
- yellow: '$color4',
37
- red: '$color4',
38
- neutral: '$color3',
39
- };
40
- const TONE_FG = {
41
- green: '$color12',
42
- yellow: '$color12',
43
- red: '$color12',
44
- neutral: '$color11',
45
- };
46
- function StatusTag({ status }) {
47
- const tone = toneOf(status ?? '');
48
- return ((0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$1", px: "$2", py: "$1", rounded: "$2", bg: TONE_BG[tone], color: TONE_FG[tone], children: status || 'unknown' }));
16
+ const tone_1 = require("./tone.cjs");
17
+ function StatusTag({ status, tone: override }) {
18
+ const t = tone_1.TONE[override ?? (0, tone_1.tone)(status ?? '')];
19
+ return ((0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$1", px: "$2", py: "$1", rounded: "$2", borderWidth: 1, borderColor: t.borderColor, bg: t.bg, color: t.color, children: status || 'unknown' }));
49
20
  }
@@ -1,4 +1,8 @@
1
- export declare function StatusTag({ status }: {
1
+ import { TONE } from './tone.js';
2
+ export type StatusTagProps = {
2
3
  status?: string;
3
- }): import("react/jsx-runtime").JSX.Element;
4
+ /** Override the tone when the caller knows better than the vocabulary does. */
5
+ tone?: keyof typeof TONE;
6
+ };
7
+ export declare function StatusTag({ status, tone: override }: StatusTagProps): import("react/jsx-runtime").JSX.Element;
4
8
  //# sourceMappingURL=StatusTag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusTag.d.ts","sourceRoot":"","sources":["../../src/product/StatusTag.tsx"],"names":[],"mappings":"AA0CA,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,2CAOxD"}
1
+ {"version":3,"file":"StatusTag.d.ts","sourceRoot":"","sources":["../../src/product/StatusTag.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,IAAI,EAAQ,MAAM,QAAQ,CAAA;AAEnC,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,OAAO,IAAI,CAAA;CACzB,CAAA;AAED,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,cAAc,2CAgBnE"}
@@ -1,47 +1,18 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  /**
4
- * Status pill — maps a resource/cluster status string to a tone, one place.
4
+ * Status pill — one status string, one pill, everywhere.
5
5
  *
6
- * Provisioned things (managed resources, clusters) report free-form lifecycle
7
- * strings; this normalizes them to green/yellow/red/neutral so every list reads
8
- * the same. Style props use the v5 shorthand set.
6
+ * What a status MEANS is `tone` in `./tone`: a pure lookup a billing surface can
7
+ * assert against without mounting anything. This draws it. The pill has no hue
8
+ * to spend — the four tones are rungs of the grey ladder — so `stopped` is set
9
+ * apart by an EDGE, and every tone carries a border (transparent on three of
10
+ * them) so turning one on shifts no layout in a table of fifty rows.
9
11
  */
10
12
  import { Text } from '@hanzo/gui';
11
- const toneOf = (status) => {
12
- const s = status.toLowerCase();
13
- // Platform health verdicts map straight to a tone (the apps inventory reports
14
- // green/yellow/red directly).
15
- if (s === 'green')
16
- return 'green';
17
- if (s === 'yellow')
18
- return 'yellow';
19
- if (s === 'red')
20
- return 'red';
21
- if (['ready', 'active', 'running', 'available', 'ok', 'live', 'succeeded', 'connected', 'synced', 'imported'].includes(s))
22
- return 'green';
23
- if (['creating', 'provisioning', 'pending', 'updating', 'attaching', 'building', 'deploying', 'queued', 'importing'].includes(s))
24
- return 'yellow';
25
- if (['error', 'failed', 'degraded', 'down', 'canceled', 'conflict'].includes(s))
26
- return 'red';
27
- return 'neutral';
28
- };
29
- // `as const` keeps the literal token types (not widened to `string`) so they
30
- // satisfy the GUI `bg`/`color` token unions.
31
- const TONE_BG = {
32
- green: '$color5',
33
- yellow: '$color4',
34
- red: '$color4',
35
- neutral: '$color3',
36
- };
37
- const TONE_FG = {
38
- green: '$color12',
39
- yellow: '$color12',
40
- red: '$color12',
41
- neutral: '$color11',
42
- };
43
- export function StatusTag({ status }) {
44
- const tone = toneOf(status ?? '');
45
- return (_jsx(Text, { fontSize: "$1", px: "$2", py: "$1", rounded: "$2", bg: TONE_BG[tone], color: TONE_FG[tone], children: status || 'unknown' }));
13
+ import { TONE, tone } from './tone.js';
14
+ export function StatusTag({ status, tone: override }) {
15
+ const t = TONE[override ?? tone(status ?? '')];
16
+ return (_jsx(Text, { fontSize: "$1", px: "$2", py: "$1", rounded: "$2", borderWidth: 1, borderColor: t.borderColor, bg: t.bg, color: t.color, children: status || 'unknown' }));
46
17
  }
47
18
  //# sourceMappingURL=StatusTag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusTag.js","sourceRoot":"","sources":["../../src/product/StatusTag.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;GAMG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAIjC,MAAM,MAAM,GAAG,CAAC,MAAc,EAAQ,EAAE;IACtC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;IAC9B,8EAA8E;IAC9E,8BAA8B;IAC9B,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,OAAO,CAAA;IACjC,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IACnC,IAAI,CAAC,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IAC7B,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAA;IACzI,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9H,OAAO,QAAQ,CAAA;IACjB,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IAC7F,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,6EAA6E;AAC7E,6CAA6C;AAC7C,MAAM,OAAO,GAAG;IACd,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,SAAS;CACV,CAAA;AACV,MAAM,OAAO,GAAG;IACd,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,UAAU;IACf,OAAO,EAAE,UAAU;CACX,CAAA;AAEV,MAAM,UAAU,SAAS,CAAC,EAAE,MAAM,EAAuB;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IACjC,OAAO,CACL,KAAC,IAAI,IAAC,QAAQ,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,YACrF,MAAM,IAAI,SAAS,GACf,CACR,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"StatusTag.js","sourceRoot":"","sources":["../../src/product/StatusTag.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;GAQG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAQnC,MAAM,UAAU,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAkB;IAClE,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAA;IAC9C,OAAO,CACL,KAAC,IAAI,IACH,QAAQ,EAAC,IAAI,EACb,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,OAAO,EAAC,IAAI,EACZ,WAAW,EAAE,CAAC,EACd,WAAW,EAAE,CAAC,CAAC,WAAW,EAC1B,EAAE,EAAE,CAAC,CAAC,EAAE,EACR,KAAK,EAAE,CAAC,CAAC,KAAK,YAEb,MAAM,IAAI,SAAS,GACf,CACR,CAAA;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  'use client';"use strict";
2
2
  'use client';
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.displayName = displayName;
4
+ exports.displayName = void 0;
5
5
  exports.UserMenu = UserMenu;
6
6
  const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  /**
@@ -27,6 +27,8 @@ const react_1 = require("react");
27
27
  const gui_1 = require("@hanzo/gui");
28
28
  const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
29
29
  const instrument_1 = require("./instrument.cjs");
30
+ const name_1 = require("./name.cjs");
31
+ Object.defineProperty(exports, "displayName", { enumerable: true, get: function () { return name_1.displayName; } });
30
32
  const OrgMark_1 = require("./OrgMark.cjs");
31
33
  const ThemeToggle_1 = require("./ThemeToggle.cjs");
32
34
  function Row({ item, onDone }) {
@@ -37,18 +39,10 @@ function Row({ item, onDone }) {
37
39
  item.onPress();
38
40
  }, cursor: "pointer", items: "center", gap: "$2.5", px: "$2", py: "$2", rounded: "$3", hoverStyle: { bg: '$color5' }, children: [item.icon, (0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$2", color: item.danger ? '$red10' : '$color12', children: item.label })] }));
39
41
  }
40
- /** The name to show: the given one, else the email's local part, else nothing
41
- * fabricated — "User" is not a name and reads as a bug to the person it names. */
42
- function displayName(name, email) {
43
- if (name?.trim())
44
- return name.trim();
45
- const local = email?.split('@')[0];
46
- return local?.trim() || '';
47
- }
48
42
  function UserMenu({ name, email, avatar, groups = [], theme, onSignOut, signOutLabel = 'Sign out', children, label = true, height = 44, }) {
49
43
  const [open, setOpen] = (0, react_1.useState)(false);
50
44
  const track = (0, instrument_1.useEmit)();
51
- const shown = displayName(name, email);
45
+ const shown = (0, name_1.displayName)(name, email);
52
46
  const filled = groups.filter((g) => g.length > 0);
53
47
  const close = () => setOpen(false);
54
48
  return ((0, jsx_runtime_1.jsxs)(gui_1.Popover, { open: open, onOpenChange: (next) => {
@@ -18,6 +18,7 @@
18
18
  * identity rather than a caption over a control.
19
19
  */
20
20
  import { type ReactNode } from 'react';
21
+ import { displayName } from './name.js';
21
22
  /** One row. `id` names it in analytics; the label is what the person reads. */
22
23
  export type UserMenuItem = {
23
24
  id: string;
@@ -49,8 +50,6 @@ export type UserMenuProps = {
49
50
  /** Trigger height. Default 44 — the peer of `OrgSwitcher`. */
50
51
  height?: number;
51
52
  };
52
- /** The name to show: the given one, else the email's local part, else nothing
53
- * fabricated — "User" is not a name and reads as a bug to the person it names. */
54
- export declare function displayName(name?: string, email?: string): string;
53
+ export { displayName };
55
54
  export declare function UserMenu({ name, email, avatar, groups, theme, onSignOut, signOutLabel, children, label, height, }: UserMenuProps): import("react/jsx-runtime").JSX.Element;
56
55
  //# sourceMappingURL=UserMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../src/product/UserMenu.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAQhD,+EAA+E;AAC/E,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kFAAkF;IAClF,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,CAAA;IACzB;iFAC6E;IAC7E,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AA2BD;mFACmF;AACnF,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAW,EACX,KAAK,EACL,SAAS,EACT,YAAyB,EACzB,QAAQ,EACR,KAAY,EACZ,MAAW,GACZ,EAAE,aAAa,2CAyGf"}
1
+ {"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../src/product/UserMenu.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAKhD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAIpC,+EAA+E;AAC/E,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kFAAkF;IAClF,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,CAAA;IACzB;iFAC6E;IAC7E,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AA8BD,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAW,EACX,KAAK,EACL,SAAS,EACT,YAAyB,EACzB,QAAQ,EACR,KAAY,EACZ,MAAW,GACZ,EAAE,aAAa,2CAyGf"}
@@ -23,6 +23,7 @@ import { useState } from 'react';
23
23
  import { Popover, Separator, Text, XStack, YStack } from '@hanzo/gui';
24
24
  import { LogOut, UserRound } from '@hanzogui/lucide-icons-2';
25
25
  import { useEmit } from './instrument.js';
26
+ import { displayName } from './name.js';
26
27
  import { OrgMark } from './OrgMark.js';
27
28
  import { ThemeToggle } from './ThemeToggle.js';
28
29
  function Row({ item, onDone }) {
@@ -33,14 +34,10 @@ function Row({ item, onDone }) {
33
34
  item.onPress();
34
35
  }, cursor: "pointer", items: "center", gap: "$2.5", px: "$2", py: "$2", rounded: "$3", hoverStyle: { bg: '$color5' }, children: [item.icon, _jsx(Text, { fontSize: "$2", color: item.danger ? '$red10' : '$color12', children: item.label })] }));
35
36
  }
36
- /** The name to show: the given one, else the email's local part, else nothing
37
- * fabricated "User" is not a name and reads as a bug to the person it names. */
38
- export function displayName(name, email) {
39
- if (name?.trim())
40
- return name.trim();
41
- const local = email?.split('@')[0];
42
- return local?.trim() || '';
43
- }
37
+ // The name to show is a rule over two strings, so it lives in `./name` and is
38
+ // reachable without a gui runtime via `@hanzo/ui/product/pure`. Re-exported
39
+ // here because it was published from this module.
40
+ export { displayName };
44
41
  export function UserMenu({ name, email, avatar, groups = [], theme, onSignOut, signOutLabel = 'Sign out', children, label = true, height = 44, }) {
45
42
  const [open, setOpen] = useState(false);
46
43
  const track = useEmit();
@@ -1 +1 @@
1
- {"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../../src/product/UserMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../../src/product/UserMenu.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- 'use client';"use strict";
1
+ "use strict";
2
2
  /**
3
3
  * Pure logic for `AnimatedLogo` — the wordmark ⇄ mark collapse. No React, no DOM,
4
4
  * no @hanzo/gui: just the state → style math, unit-tested in a plain Node env
@@ -1,4 +1,4 @@
1
- 'use client';/**
1
+ /**
2
2
  * Pure logic for `AnimatedLogo` — the wordmark ⇄ mark collapse. No React, no DOM,
3
3
  * no @hanzo/gui: just the state → style math, unit-tested in a plain Node env
4
4
  * (the house convention — view components are proven by build + visual e2e).
@@ -1,4 +1,4 @@
1
- 'use client';"use strict";
1
+ "use strict";
2
2
  /**
3
3
  * Brand identities for the animated logo — the white-label source of truth.
4
4
  *
@@ -1,4 +1,4 @@
1
- 'use client';/**
1
+ /**
2
2
  * Brand identities for the animated logo — the white-label source of truth.
3
3
  *
4
4
  * ONE component (`AnimatedLogo`) renders any brand: pass a `BrandIdentity` and it
@@ -1,4 +1,4 @@
1
- 'use client';"use strict";
1
+ "use strict";
2
2
  /**
3
3
  * Combobox option filtering — pure, unit-tested.
4
4
  *
@@ -1,4 +1,4 @@
1
- 'use client';/**
1
+ /**
2
2
  * Combobox option filtering — pure, unit-tested.
3
3
  *
4
4
  * The ONE matcher the ComboBox uses to narrow a live option list against typed
@@ -24,7 +24,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
24
24
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.tagTone = exports.TAG_TONES = exports.tokens = exports.ThemeToggleNext = exports.ComboBox = exports.DonutRing = exports.Panel = exports.HintButton = exports.MetricCard = exports.LegendDot = exports.UtilBar = exports.MiniBars = exports.MetricSparkline = exports.utilColor = exports.colorForIndex = exports.SERIES = void 0;
27
+ exports.tagTone = exports.TAG_TONES = exports.tokens = exports.ComboBox = exports.DonutRing = exports.Panel = exports.HintButton = exports.MetricCard = exports.LegendDot = exports.UtilBar = exports.MiniBars = exports.MetricSparkline = exports.utilColor = exports.colorForIndex = exports.SERIES = void 0;
28
28
  // Charts — the canonical Sparkline + Donut live here (dependency-free inline SVG:
29
29
  // hover tooltips, axis ticks, honest null under 2 real points).
30
30
  __exportStar(require("./Charts.cjs"), exports);
@@ -111,6 +111,13 @@ __exportStar(require("./FadeIn.cjs"), exports);
111
111
  __exportStar(require("./Field.cjs"), exports);
112
112
  __exportStar(require("./HanzoMark.cjs"), exports);
113
113
  __exportStar(require("./PageHeader.cjs"), exports);
114
+ // Palette — the ONE ⌘K bar, plus its opener. The list it renders is not written
115
+ // down anywhere: cloud publishes `GET /v1/commands`, the fifth projection of the
116
+ // one route table, and a surface passes it in. `match.ts` holds the matching
117
+ // rule (safe methods browse, unsafe methods must be named) as pure functions.
118
+ __exportStar(require("./Palette.cjs"), exports);
119
+ __exportStar(require("./match.cjs"), exports);
120
+ __exportStar(require("./useCommandK.cjs"), exports);
114
121
  __exportStar(require("./PrimaryButton.cjs"), exports);
115
122
  __exportStar(require("./ProductIcon.cjs"), exports);
116
123
  __exportStar(require("./ProviderLogo.cjs"), exports);
@@ -118,9 +125,20 @@ __exportStar(require("./Reorder.cjs"), exports);
118
125
  __exportStar(require("./SelectMenu.cjs"), exports);
119
126
  __exportStar(require("./SlideOver.cjs"), exports);
120
127
  __exportStar(require("./StatusTag.cjs"), exports);
128
+ __exportStar(require("./tone.cjs"), exports);
121
129
  __exportStar(require("./ThemeToggle.cjs"), exports);
122
- var ThemeToggleNext_1 = require("./ThemeToggleNext.cjs");
123
- Object.defineProperty(exports, "ThemeToggleNext", { enumerable: true, get: function () { return ThemeToggleNext_1.ThemeToggleNext; } });
130
+ // `ThemeToggleNext` is NOT re-exported here, and that is the whole reason this
131
+ // comment exists. It is the @hanzogui/next-theme binding, and next-theme's
132
+ // provider imports `next/script` — so a static edge from this barrel put Next in
133
+ // the graph of every consumer of `@hanzo/ui/product`, including the Vite,
134
+ // Express and Tauri hosts the layer promises to run on. `ThemeToggle` already
135
+ // reaches it by dynamic import, which a bundler can split; a barrel re-export is
136
+ // exactly what it cannot.
137
+ //
138
+ // import { ThemeToggleNext } from '@hanzo/ui/product/theme-toggle-next'
139
+ //
140
+ // Nobody needs that import: `<ThemeToggle />` with no props already picks this
141
+ // path when next-theme is installed, and degrades when it is not.
124
142
  __exportStar(require("./Toast.cjs"), exports);
125
143
  __exportStar(require("./accent.cjs"), exports);
126
144
  __exportStar(require("./color.cjs"), exports);
@@ -31,6 +31,9 @@ export * from './FadeIn.js';
31
31
  export * from './Field.js';
32
32
  export * from './HanzoMark.js';
33
33
  export * from './PageHeader.js';
34
+ export * from './Palette.js';
35
+ export * from './match.js';
36
+ export * from './useCommandK.js';
34
37
  export * from './PrimaryButton.js';
35
38
  export * from './ProductIcon.js';
36
39
  export * from './ProviderLogo.js';
@@ -38,8 +41,8 @@ export * from './Reorder.js';
38
41
  export * from './SelectMenu.js';
39
42
  export * from './SlideOver.js';
40
43
  export * from './StatusTag.js';
44
+ export * from './tone.js';
41
45
  export * from './ThemeToggle.js';
42
- export { ThemeToggleNext } from './ThemeToggleNext.js';
43
46
  export * from './Toast.js';
44
47
  export * from './accent.js';
45
48
  export * from './color.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"AAaA,cAAc,UAAU,CAAA;AAKxB,OAAO,EACL,MAAM,EACN,aAAa,EACb,SAAS,EACT,SAAS,IAAI,eAAe,EAC5B,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAK,GACN,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAA;AAK/D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,cAAc,mBAAmB,CAAA;AASjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AAKvB,cAAc,QAAQ,CAAA;AAKtB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAK5B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AAOzB,cAAc,cAAc,CAAA;AAK5B,cAAc,YAAY,CAAA;AAO1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAI7B,cAAc,cAAc,CAAA;AAG5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AASvB,cAAc,UAAU,CAAA;AAKxB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"AAaA,cAAc,UAAU,CAAA;AAKxB,OAAO,EACL,MAAM,EACN,aAAa,EACb,SAAS,EACT,SAAS,IAAI,eAAe,EAC5B,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAK,GACN,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAA;AAK/D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,cAAc,mBAAmB,CAAA;AASjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AAKvB,cAAc,QAAQ,CAAA;AAKtB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAK5B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AAOzB,cAAc,cAAc,CAAA;AAK5B,cAAc,YAAY,CAAA;AAO1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAI7B,cAAc,cAAc,CAAA;AAG5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAM5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAc7B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AASvB,cAAc,UAAU,CAAA;AAKxB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAA"}
@@ -82,6 +82,13 @@ export * from './FadeIn.js';
82
82
  export * from './Field.js';
83
83
  export * from './HanzoMark.js';
84
84
  export * from './PageHeader.js';
85
+ // Palette — the ONE ⌘K bar, plus its opener. The list it renders is not written
86
+ // down anywhere: cloud publishes `GET /v1/commands`, the fifth projection of the
87
+ // one route table, and a surface passes it in. `match.ts` holds the matching
88
+ // rule (safe methods browse, unsafe methods must be named) as pure functions.
89
+ export * from './Palette.js';
90
+ export * from './match.js';
91
+ export * from './useCommandK.js';
85
92
  export * from './PrimaryButton.js';
86
93
  export * from './ProductIcon.js';
87
94
  export * from './ProviderLogo.js';
@@ -89,8 +96,20 @@ export * from './Reorder.js';
89
96
  export * from './SelectMenu.js';
90
97
  export * from './SlideOver.js';
91
98
  export * from './StatusTag.js';
99
+ export * from './tone.js';
92
100
  export * from './ThemeToggle.js';
93
- export { ThemeToggleNext } from './ThemeToggleNext.js';
101
+ // `ThemeToggleNext` is NOT re-exported here, and that is the whole reason this
102
+ // comment exists. It is the @hanzogui/next-theme binding, and next-theme's
103
+ // provider imports `next/script` — so a static edge from this barrel put Next in
104
+ // the graph of every consumer of `@hanzo/ui/product`, including the Vite,
105
+ // Express and Tauri hosts the layer promises to run on. `ThemeToggle` already
106
+ // reaches it by dynamic import, which a bundler can split; a barrel re-export is
107
+ // exactly what it cannot.
108
+ //
109
+ // import { ThemeToggleNext } from '@hanzo/ui/product/theme-toggle-next'
110
+ //
111
+ // Nobody needs that import: `<ThemeToggle />` with no props already picks this
112
+ // path when next-theme is installed, and degrades when it is not.
94
113
  export * from './Toast.js';
95
114
  export * from './accent.js';
96
115
  export * from './color.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ 'use client';"use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.survivors = exports.match = exports.SAFE = void 0;
4
+ const command_logic_1 = require("../backends/gui/command.logic.cjs");
5
+ /** The one method that is safe to stumble onto: no side effect, idempotent. */
6
+ exports.SAFE = 'GET';
7
+ /**
8
+ * Whether `op` survives `search`, and how well. `0` hides it.
9
+ *
10
+ * # Safe methods browse; unsafe methods must be named
11
+ *
12
+ * Typing "delete" into a bar holding 2,323 operations offers four dozen
13
+ * destructive fleet operations to somebody who wanted to delete a project. The
14
+ * rule that fixes it needs no second list and no curation, because the method is
15
+ * already in the registry and already means exactly this:
16
+ *
17
+ * - GET matches fuzzily. It is safe and idempotent; browsing costs nothing.
18
+ * - every other method needs an exact PREFIX of `group label` — the same
19
+ * "service operation" a CLI would type. You cannot stumble onto
20
+ * `platform apps-rollback`; you have to name it.
21
+ *
22
+ * One rule, over data already present, mapping onto the semantics the methods
23
+ * already carry.
24
+ *
25
+ * # An empty search hides every route, and that is not a shortcut
26
+ *
27
+ * With no query a fuzzy matcher matches everything, and everything is 2,323 rows
28
+ * the moment the dialog opens — which is not a list, it is a stalled browser and
29
+ * a scroll bar nobody can use. So the Run group is a SEARCH, not a browse: it is
30
+ * empty until you type, and what remains on open is the surface's own handful of
31
+ * local commands, which is what a person opening ⌘K with no query wants anyway.
32
+ *
33
+ * A local command has no method and is therefore always reachable — it is one of
34
+ * a few, declared by the surface, and there is nothing to protect anyone from.
35
+ */
36
+ const match = (op, search) => {
37
+ const q = search.trim().toLowerCase();
38
+ const route = op.method !== undefined;
39
+ if (!q)
40
+ return route ? 0 : 1;
41
+ const named = `${op.group} ${op.label}`.toLowerCase();
42
+ if (route && op.method !== exports.SAFE)
43
+ return named.startsWith(q) ? 1 : 0;
44
+ return (0, command_logic_1.score)(named, q, op.hint ? [op.hint] : undefined);
45
+ };
46
+ exports.match = match;
47
+ /**
48
+ * The ops that survive `search`, grouped for rendering: headings in the order the
49
+ * caller listed them, rows ranked within each, empty groups dropped.
50
+ *
51
+ * `limit` caps each group. A GET search for "list" still matches hundreds, and a
52
+ * palette that renders hundreds is the same stalled browser the empty query would
53
+ * be — the cap is what keeps one keystroke's cost bounded whatever was typed.
54
+ */
55
+ const survivors = (ops, search, limit = 50) => {
56
+ const groups = new Map();
57
+ for (const op of ops) {
58
+ const rank = (0, exports.match)(op, search);
59
+ if (rank <= 0)
60
+ continue;
61
+ const got = groups.get(op.group);
62
+ if (got)
63
+ got.push([op, rank]);
64
+ else
65
+ groups.set(op.group, [[op, rank]]);
66
+ }
67
+ const out = [];
68
+ for (const [group, ranked] of groups) {
69
+ // Sort by rank, ties keeping the caller's order — a surface that ordered its
70
+ // projects by recency must not have that undone by a scoring tie.
71
+ ranked.sort((a, b) => b[1] - a[1]);
72
+ out.push([group, ranked.slice(0, limit).map(([op]) => op)]);
73
+ }
74
+ return out;
75
+ };
76
+ exports.survivors = survivors;