@epilot/zenith-react 0.3.0-next.16 → 0.3.0-next.18

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.
package/CHANGELOG.md CHANGED
@@ -5,7 +5,7 @@ history belongs to the source project and remains available through Git.
5
5
 
6
6
  ## Unreleased
7
7
 
8
- ## [0.3.0-next.16] - 2026-11-02
8
+ ## [0.3.0-next.18] - 2026-11-02
9
9
 
10
10
  - changed: Release preparation takes the changelog version from the package manifest, validates fragments by one rule that the merge request gate shares, checks the real packed tarball and keeps it for publishing, keeps the host bundle out of the runtime package, and stops a React-only release on unpublished runtime changes. Private workspace versions no longer need to follow the React release. — @wmolinari ([!164](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/164))
11
11
  - **BREAKING**: `@epilot/zenith-react/tokens.json` no longer has a `version` field; read the version from `@epilot/zenith-react/package.json`. — @wmolinari ([!164](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/164))
@@ -13,6 +13,7 @@ history belongs to the source project and remains available through Git.
13
13
  - removed: **BREAKING**: from FieldCombobox and Command: `FieldComboboxItem`'s `keywords` and `forceMount` (pass `filter={null}` for items the caller already filtered), `FieldComboboxGroup`'s `value` and `forceMount` (a group is its data, `{ value, items }`: key and label it with that `value`, and pass `filter={null}` with the caller's own filtering to keep a group that cmdk force-mounted), `FieldComboboxLoading`'s `progress` and `label`, `FieldComboboxSeparator`'s `alwaysRender`, `FieldComboboxList`'s `label` (pass `aria-label`), `id` on `FieldComboboxList` and `FieldComboboxItem` (Base UI's ids are what `aria-controls` and `aria-activedescendant` point at), `asChild` on every search part, Label's props on `FieldComboboxGroupLabel` (now a `<div>`), cmdk's fuzzy ranking, Home/End, Ctrl+N/J/P/K and the Alt/Meta arrow jumps, the `cmdk-*` attributes, and the `cmdk` dependency, so `dist/` bundles no `@radix-ui` module (#106) — @wmolinari ([!151](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)) (experiment: https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)
14
14
  - changed: `FieldLabel` inside a `Field` renders with an id (a caller's own `id` wins), and `FieldComboboxList` points its `aria-labelledby` at the Field's label that names the trigger (the one whose `htmlFor` is the trigger's id, else the first `FieldLabel`), so the list carries the trigger's name (#106) — @wmolinari ([!151](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)) (experiment: https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)
15
15
  - added: `FieldComboboxCollection`, which renders a `FieldComboboxGroup`'s matches. This release requires `@epilot/zenith-runtime` 0.3.0 or later (serves autocomplete); release the runtime and deploy root-config first (#106) — @wmolinari ([!151](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)) (experiment: https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)
16
+ - changed: the combobox search row draws no focus frame. The caret marks focus, and the placeholder and typed text stay clear of the row's edges (#106) — @wmolinari ([!151](https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)) (experiment: https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151)
16
17
 
17
18
  ## [0.2.2] - 2026-10-30
18
19
 
@@ -1,12 +1,12 @@
1
- import { jsx as a, jsxs as B } from "react/jsx-runtime";
2
- import * as d from "react";
1
+ import { jsx as n, jsxs as B } from "react/jsx-runtime";
2
+ import * as i from "react";
3
3
  import { Autocomplete as g } from "../../_virtual/_zenith-runtime-family_autocomplete.js";
4
- import { mergeClasses as l, SLOT_ATTR as r, shorthands as u } from "@epilot/zenith-runtime/v1";
4
+ import { mergeClasses as l, SLOT_ATTR as r, shorthands as h } from "@epilot/zenith-runtime/v1";
5
5
  import { makeZenithStyles as z } from "../../styles/make-styles.js";
6
6
  import { boxModel as s } from "../../styles/host-reset.js";
7
- import { spacingElement3 as f, spacingElement2 as m, fontWeightMedium as E, grayA11 as h, leadingXs as H, textXs as $, accentA3 as A, grayA12 as N, leadingSm as q, textSm as I, spacingElement1 as x, graySoft as Y, focusRing as M, body as O, radiusSm as P, radiusMd as W, grayA3 as Z } from "../../tokens/index.js";
8
- import { Dialog as j, DialogHeader as _, DialogTitle as F, DialogDescription as J, DialogContent as K } from "../dialog/dialog.js";
9
- const Q = (i) => /* @__PURE__ */ a(
7
+ import { spacingElement3 as f, spacingElement2 as m, fontWeightMedium as E, grayA11 as u, leadingXs as H, textXs as $, accentA3 as A, grayA12 as N, leadingSm as q, textSm as I, spacingElement1 as x, graySoft as Y, body as M, radiusSm as P, radiusMd as X, grayA3 as O } from "../../tokens/index.js";
8
+ import { Dialog as Z, DialogHeader as j, DialogTitle as _, DialogDescription as F, DialogContent as J } from "../dialog/dialog.js";
9
+ const K = (d) => /* @__PURE__ */ n(
10
10
  "svg",
11
11
  {
12
12
  xmlns: "http://www.w3.org/2000/svg",
@@ -14,13 +14,13 @@ const Q = (i) => /* @__PURE__ */ a(
14
14
  viewBox: "0 -960 960 960",
15
15
  width: "24px",
16
16
  fill: "currentColor",
17
- ...i,
18
- children: /* @__PURE__ */ a("path", { d: "M380-320q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l224 224q11 11 11 28t-11 28q-11 11-28 11t-28-11L532-372q-30 24-69 38t-83 14Zm0-80q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z" })
17
+ ...d,
18
+ children: /* @__PURE__ */ n("path", { d: "M380-320q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l224 224q11 11 11 28t-11 28q-11 11-28 11t-28-11L532-372q-30 24-69 38t-83 14Zm0-80q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z" })
19
19
  }
20
20
  ), c = z({
21
21
  root: {
22
22
  ...s,
23
- backgroundColor: O,
23
+ backgroundColor: M,
24
24
  color: N,
25
25
  display: "flex",
26
26
  height: "100%",
@@ -28,27 +28,18 @@ const Q = (i) => /* @__PURE__ */ a(
28
28
  flexDirection: "column",
29
29
  overflowX: "hidden",
30
30
  overflowY: "hidden",
31
- ...u.borderRadius(W)
31
+ ...h.borderRadius(X)
32
32
  },
33
33
  inputWrapper: {
34
34
  ...s,
35
35
  display: "flex",
36
36
  alignItems: "center",
37
- ...u.gap(m),
38
- ...u.borderBottom("1px", "solid", Z),
37
+ ...h.gap(m),
38
+ ...h.borderBottom("1px", "solid", O),
39
39
  paddingLeft: f,
40
- paddingRight: f,
41
- // The input's focus ring, drawn on the whole search row: the row holds the inline padding, so a
42
- // ring on the input itself ran through the first letter. `:focus-within` because the input is
43
- // the row's only focusable element and a text input matches :focus-visible whenever it has
44
- // focus. Inset (negative), not the outward +2px every other audited control uses: the row sits
45
- // flush against the edges of the Command root, which clips overflow for its rounded corners.
46
- "&:focus-within": {
47
- outlineWidth: "2px",
48
- outlineStyle: "solid",
49
- outlineOffset: "-2px",
50
- outlineColor: M
51
- }
40
+ paddingRight: f
41
+ // No focus frame: the caret marks focus, the example WCAG 2.4.7's Understanding gives for a
42
+ // text field. The row's padding keeps the text clear of the edges; the input keeps outline none.
52
43
  },
53
44
  searchIcon: {
54
45
  ...s,
@@ -62,7 +53,7 @@ const Q = (i) => /* @__PURE__ */ a(
62
53
  height: "3rem",
63
54
  display: "flex",
64
55
  width: "100%",
65
- ...u.borderRadius(W),
56
+ ...h.borderRadius(X),
66
57
  backgroundColor: "transparent",
67
58
  paddingTop: f,
68
59
  paddingBottom: f,
@@ -70,7 +61,7 @@ const Q = (i) => /* @__PURE__ */ a(
70
61
  lineHeight: q,
71
62
  outlineStyle: "none",
72
63
  "::placeholder": {
73
- color: h
64
+ color: u
74
65
  },
75
66
  ":disabled": {
76
67
  cursor: "not-allowed",
@@ -90,7 +81,7 @@ const Q = (i) => /* @__PURE__ */ a(
90
81
  textAlign: "center",
91
82
  fontSize: I,
92
83
  lineHeight: q,
93
- color: h,
84
+ color: u,
94
85
  // Base UI keeps the empty state mounted as a live region and empties it while items match.
95
86
  ":empty": {
96
87
  paddingTop: 0,
@@ -102,11 +93,11 @@ const Q = (i) => /* @__PURE__ */ a(
102
93
  color: N,
103
94
  overflowX: "hidden",
104
95
  overflowY: "hidden",
105
- ...u.padding(x)
96
+ ...h.padding(x)
106
97
  },
107
98
  groupLabel: {
108
99
  ...s,
109
- color: h,
100
+ color: u,
110
101
  paddingLeft: m,
111
102
  paddingRight: m,
112
103
  paddingTop: "0.375rem",
@@ -128,8 +119,8 @@ const Q = (i) => /* @__PURE__ */ a(
128
119
  display: "flex",
129
120
  cursor: "default",
130
121
  alignItems: "center",
131
- ...u.gap(m),
132
- ...u.borderRadius(P),
122
+ ...h.gap(m),
123
+ ...h.borderRadius(P),
133
124
  paddingLeft: m,
134
125
  paddingRight: m,
135
126
  paddingTop: "0.375rem",
@@ -156,28 +147,28 @@ const Q = (i) => /* @__PURE__ */ a(
156
147
  height: "1rem"
157
148
  },
158
149
  "& svg:not([class*='text-'])": {
159
- color: h
150
+ color: u
160
151
  }
161
152
  },
162
153
  shortcut: {
163
- color: h,
154
+ color: u,
164
155
  marginLeft: "auto",
165
156
  fontSize: $,
166
157
  lineHeight: H,
167
158
  letterSpacing: "0.1em"
168
159
  },
169
160
  loading: {
170
- color: h
161
+ color: u
171
162
  },
172
163
  dialogContent: {
173
164
  ...s,
174
165
  overflowX: "hidden",
175
166
  overflowY: "hidden",
176
- ...u.padding(0)
167
+ ...h.padding(0)
177
168
  },
178
169
  dialogCommand: {
179
170
  [`& [${r}="command-group-label"]`]: {
180
- color: h,
171
+ color: u,
181
172
  paddingLeft: m,
182
173
  paddingRight: m,
183
174
  fontWeight: E
@@ -220,24 +211,24 @@ const Q = (i) => /* @__PURE__ */ a(
220
211
  overflowY: "hidden",
221
212
  clip: "rect(0, 0, 0, 0)",
222
213
  whiteSpace: "nowrap",
223
- ...u.borderWidth(0)
214
+ ...h.borderWidth(0)
224
215
  }
225
- }), X = d.createContext(""), U = d.forwardRef(
216
+ }), G = i.createContext(""), Q = i.forwardRef(
226
217
  function({
227
218
  className: e,
228
219
  "data-slot": o = "command",
229
220
  items: t,
230
- filter: n,
221
+ filter: a,
231
222
  itemToStringValue: p,
232
223
  limit: y,
233
- value: S,
234
- defaultValue: b,
224
+ value: b,
225
+ defaultValue: S,
235
226
  onValueChange: w,
236
227
  children: R,
237
228
  ...v
238
229
  }, L) {
239
- const T = c(), [k, C] = d.useState(b ?? ""), G = S ?? k;
240
- return /* @__PURE__ */ a(
230
+ const T = c(), [k, C] = i.useState(S ?? ""), W = b ?? k;
231
+ return /* @__PURE__ */ n(
241
232
  g.Root,
242
233
  {
243
234
  inline: !0,
@@ -245,15 +236,15 @@ const Q = (i) => /* @__PURE__ */ a(
245
236
  autoHighlight: "always",
246
237
  keepHighlight: !0,
247
238
  items: t,
248
- filter: n,
239
+ filter: a,
249
240
  itemToStringValue: p,
250
241
  limit: y,
251
- value: S,
252
- defaultValue: b,
242
+ value: b,
243
+ defaultValue: S,
253
244
  onValueChange: (D) => {
254
245
  C(D), w == null || w(D);
255
246
  },
256
- children: /* @__PURE__ */ a(X.Provider, { value: G, children: /* @__PURE__ */ a(
247
+ children: /* @__PURE__ */ n(G.Provider, { value: W, children: /* @__PURE__ */ n(
257
248
  "div",
258
249
  {
259
250
  ref: L,
@@ -268,16 +259,16 @@ const Q = (i) => /* @__PURE__ */ a(
268
259
  );
269
260
  }
270
261
  );
271
- d.forwardRef(
262
+ i.forwardRef(
272
263
  function({
273
264
  title: e = "Command Palette",
274
265
  description: o = "Search for a command to run...",
275
266
  children: t,
276
- className: n,
267
+ className: a,
277
268
  showCloseButton: p = !0,
278
269
  items: y,
279
- filter: S,
280
- itemToStringValue: b,
270
+ filter: b,
271
+ itemToStringValue: S,
281
272
  limit: w,
282
273
  value: R,
283
274
  defaultValue: v,
@@ -285,23 +276,23 @@ d.forwardRef(
285
276
  ...T
286
277
  }, k) {
287
278
  const C = c();
288
- return /* @__PURE__ */ B(j, { ...T, children: [
289
- /* @__PURE__ */ B(_, { className: C.srOnly, children: [
290
- /* @__PURE__ */ a(F, { children: e }),
291
- /* @__PURE__ */ a(J, { children: o })
279
+ return /* @__PURE__ */ B(Z, { ...T, children: [
280
+ /* @__PURE__ */ B(j, { className: C.srOnly, children: [
281
+ /* @__PURE__ */ n(_, { children: e }),
282
+ /* @__PURE__ */ n(F, { children: o })
292
283
  ] }),
293
- /* @__PURE__ */ a(
294
- K,
284
+ /* @__PURE__ */ n(
285
+ J,
295
286
  {
296
- className: l(C.dialogContent, n),
287
+ className: l(C.dialogContent, a),
297
288
  showCloseButton: p,
298
- children: /* @__PURE__ */ a(
299
- U,
289
+ children: /* @__PURE__ */ n(
290
+ Q,
300
291
  {
301
292
  className: C.dialogCommand,
302
293
  items: y,
303
- filter: S,
304
- itemToStringValue: b,
294
+ filter: b,
295
+ itemToStringValue: S,
305
296
  limit: w,
306
297
  value: R,
307
298
  defaultValue: v,
@@ -314,7 +305,7 @@ d.forwardRef(
314
305
  ] });
315
306
  }
316
307
  );
317
- const io = d.forwardRef(function({ className: e, wrapperClassName: o, ...t }, n) {
308
+ const ro = i.forwardRef(function({ className: e, wrapperClassName: o, ...t }, a) {
318
309
  const p = c();
319
310
  return /* @__PURE__ */ B(
320
311
  "div",
@@ -323,11 +314,11 @@ const io = d.forwardRef(function({ className: e, wrapperClassName: o, ...t }, n)
323
314
  [r]: "command-input-wrapper",
324
315
  className: l(p.inputWrapper, o),
325
316
  children: [
326
- /* @__PURE__ */ a(Q, { className: p.searchIcon }),
327
- /* @__PURE__ */ a(
317
+ /* @__PURE__ */ n(K, { className: p.searchIcon }),
318
+ /* @__PURE__ */ n(
328
319
  g.Input,
329
320
  {
330
- ref: n,
321
+ ref: a,
331
322
  "data-slot": "command-input",
332
323
  [r]: "command-input",
333
324
  className: l(p.input, e),
@@ -337,15 +328,15 @@ const io = d.forwardRef(function({ className: e, wrapperClassName: o, ...t }, n)
337
328
  ]
338
329
  }
339
330
  );
340
- }), mo = d.forwardRef(
331
+ }), io = i.forwardRef(
341
332
  function({
342
333
  className: e,
343
334
  "aria-label": o,
344
335
  "aria-labelledby": t,
345
- ...n
336
+ ...a
346
337
  }, p) {
347
338
  const y = c();
348
- return /* @__PURE__ */ a(
339
+ return /* @__PURE__ */ n(
349
340
  g.List,
350
341
  {
351
342
  ref: p,
@@ -354,114 +345,114 @@ const io = d.forwardRef(function({ className: e, wrapperClassName: o, ...t }, n)
354
345
  className: l(y.list, e),
355
346
  "aria-labelledby": t,
356
347
  "aria-label": o ?? (t ? void 0 : "Suggestions"),
357
- ...n
348
+ ...a
358
349
  }
359
350
  );
360
351
  }
361
- ), lo = d.forwardRef(
352
+ ), mo = i.forwardRef(
362
353
  function({ className: e, ...o }, t) {
363
- const n = c();
364
- return /* @__PURE__ */ a(
354
+ const a = c();
355
+ return /* @__PURE__ */ n(
365
356
  g.Empty,
366
357
  {
367
358
  ref: t,
368
359
  "data-slot": "command-empty",
369
360
  [r]: "command-empty",
370
- className: l(n.empty, e),
361
+ className: l(a.empty, e),
371
362
  ...o
372
363
  }
373
364
  );
374
365
  }
375
- ), so = d.forwardRef(
366
+ ), lo = i.forwardRef(
376
367
  function({ className: e, ...o }, t) {
377
- const n = c();
378
- return /* @__PURE__ */ a(
368
+ const a = c();
369
+ return /* @__PURE__ */ n(
379
370
  g.Group,
380
371
  {
381
372
  ref: t,
382
373
  "data-slot": "command-group",
383
374
  [r]: "command-group",
384
- className: l(n.group, e),
375
+ className: l(a.group, e),
385
376
  ...o
386
377
  }
387
378
  );
388
379
  }
389
- ), co = d.forwardRef(function({ className: e, ...o }, t) {
390
- const n = c();
391
- return /* @__PURE__ */ a(
380
+ ), so = i.forwardRef(function({ className: e, ...o }, t) {
381
+ const a = c();
382
+ return /* @__PURE__ */ n(
392
383
  g.GroupLabel,
393
384
  {
394
385
  ref: t,
395
386
  "data-slot": "command-group-label",
396
387
  [r]: "command-group-label",
397
- className: l(n.groupLabel, e),
388
+ className: l(a.groupLabel, e),
398
389
  ...o
399
390
  }
400
391
  );
401
- }), po = ({ children: i }) => /* @__PURE__ */ a(g.Collection, { children: i }), go = d.forwardRef(function({ className: e, ...o }, t) {
402
- const n = c();
403
- return d.useContext(X).trim() !== "" ? null : /* @__PURE__ */ a(
392
+ }), co = ({ children: d }) => /* @__PURE__ */ n(g.Collection, { children: d }), po = i.forwardRef(function({ className: e, ...o }, t) {
393
+ const a = c();
394
+ return i.useContext(G).trim() !== "" ? null : /* @__PURE__ */ n(
404
395
  g.Separator,
405
396
  {
406
397
  ref: t,
407
398
  "data-slot": "command-separator",
408
399
  [r]: "command-separator",
409
- className: l(n.separator, e),
400
+ className: l(a.separator, e),
410
401
  ...o
411
402
  }
412
403
  );
413
- }), uo = d.forwardRef(
404
+ }), go = i.forwardRef(
414
405
  function({ className: e, ...o }, t) {
415
- const n = c();
416
- return /* @__PURE__ */ a(
406
+ const a = c();
407
+ return /* @__PURE__ */ n(
417
408
  g.Item,
418
409
  {
419
410
  ref: t,
420
411
  "data-slot": "command-item",
421
412
  [r]: "command-item",
422
- className: l(n.item, e),
413
+ className: l(a.item, e),
423
414
  ...o
424
415
  }
425
416
  );
426
417
  }
427
418
  );
428
- d.forwardRef(function({ className: e, ...o }, t) {
429
- const n = c();
430
- return /* @__PURE__ */ a(
419
+ i.forwardRef(function({ className: e, ...o }, t) {
420
+ const a = c();
421
+ return /* @__PURE__ */ n(
431
422
  "span",
432
423
  {
433
424
  ref: t,
434
425
  "data-slot": "command-shortcut",
435
426
  [r]: "command-shortcut",
436
- className: l(n.shortcut, e),
427
+ className: l(a.shortcut, e),
437
428
  ...o
438
429
  }
439
430
  );
440
431
  });
441
- const ho = d.forwardRef(function({ className: e, ...o }, t) {
442
- const n = c();
443
- return /* @__PURE__ */ a(
432
+ const ho = i.forwardRef(function({ className: e, ...o }, t) {
433
+ const a = c();
434
+ return /* @__PURE__ */ n(
444
435
  g.Status,
445
436
  {
446
437
  ref: t,
447
438
  "data-slot": "command-loading",
448
439
  [r]: "command-loading",
449
- className: l(n.loading, e),
440
+ className: l(a.loading, e),
450
441
  ...o
451
442
  }
452
443
  );
453
444
  });
454
445
  export {
455
- U as Command,
456
- po as CommandCollection,
457
- lo as CommandEmpty,
458
- so as CommandGroup,
459
- co as CommandGroupLabel,
460
- io as CommandInput,
461
- uo as CommandItem,
462
- mo as CommandList,
446
+ Q as Command,
447
+ co as CommandCollection,
448
+ mo as CommandEmpty,
449
+ lo as CommandGroup,
450
+ so as CommandGroupLabel,
451
+ ro as CommandInput,
452
+ go as CommandItem,
453
+ io as CommandList,
463
454
  ho as CommandLoading,
464
- U as CommandRoot,
465
- go as CommandSeparator
455
+ Q as CommandRoot,
456
+ po as CommandSeparator
466
457
  };
467
458
  //# sourceMappingURL=command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sources":["../../../src/components/command/command.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Autocomplete as AutocompletePrimitive } from \"@base-ui/react/autocomplete\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport { boxModel } from \"../../styles/host-reset\"\nimport * as tokens from \"../../tokens\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n type DialogProps,\n} from \"../dialog/dialog\"\n\nconst SearchIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M380-320q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l224 224q11 11 11 28t-11 28q-11 11-28 11t-28-11L532-372q-30 24-69 38t-83 14Zm0-80q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z\" />\n </svg>\n)\n\nconst useStyles = makeZenithStyles({\n root: {\n ...boxModel,\n backgroundColor: tokens.body,\n color: tokens.grayA12,\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n ...shorthands.borderRadius(tokens.radiusMd),\n },\n inputWrapper: {\n ...boxModel,\n display: \"flex\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderBottom(\"1px\", \"solid\", tokens.grayA3),\n paddingLeft: tokens.spacingElement3,\n paddingRight: tokens.spacingElement3,\n // The input's focus ring, drawn on the whole search row: the row holds the inline padding, so a\n // ring on the input itself ran through the first letter. `:focus-within` because the input is\n // the row's only focusable element and a text input matches :focus-visible whenever it has\n // focus. Inset (negative), not the outward +2px every other audited control uses: the row sits\n // flush against the edges of the Command root, which clips overflow for its rounded corners.\n \"&:focus-within\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"-2px\",\n outlineColor: tokens.focusRing,\n },\n },\n searchIcon: {\n ...boxModel,\n width: \"1.25rem\",\n height: \"1.25rem\",\n flexShrink: 0,\n opacity: 0.5,\n },\n input: {\n ...boxModel,\n height: \"3rem\",\n display: \"flex\",\n width: \"100%\",\n ...shorthands.borderRadius(tokens.radiusMd),\n backgroundColor: \"transparent\",\n paddingTop: tokens.spacingElement3,\n paddingBottom: tokens.spacingElement3,\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\n \"::placeholder\": {\n color: tokens.grayA11,\n },\n \":disabled\": {\n cursor: \"not-allowed\",\n opacity: 0.5,\n },\n },\n list: {\n overflowX: \"hidden\",\n overflowY: \"auto\",\n scrollPaddingTop: tokens.spacingElement1,\n scrollPaddingBottom: tokens.spacingElement1,\n },\n empty: {\n ...boxModel,\n paddingTop: \"1.5rem\",\n paddingBottom: \"1.5rem\",\n textAlign: \"center\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n color: tokens.grayA11,\n // Base UI keeps the empty state mounted as a live region and empties it while items match.\n \":empty\": {\n paddingTop: 0,\n paddingBottom: 0,\n },\n },\n group: {\n ...boxModel,\n color: tokens.grayA12,\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n ...shorthands.padding(tokens.spacingElement1),\n },\n groupLabel: {\n ...boxModel,\n color: tokens.grayA11,\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n fontWeight: tokens.fontWeightMedium,\n },\n separator: {\n ...boxModel,\n backgroundColor: tokens.graySoft,\n marginLeft: `calc(-1 * ${tokens.spacingElement1})`,\n marginRight: `calc(-1 * ${tokens.spacingElement1})`,\n height: \"1px\",\n },\n item: {\n ...boxModel,\n position: \"relative\",\n display: \"flex\",\n cursor: \"default\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderRadius(tokens.radiusSm),\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\n userSelect: \"none\",\n color: tokens.grayA12,\n \"&[data-highlighted]\": {\n backgroundColor: tokens.accentA3,\n },\n \":hover\": {\n backgroundColor: tokens.accentA3,\n },\n \"&[data-disabled]\": {\n pointerEvents: \"none\",\n opacity: 0.5,\n },\n \"& svg\": {\n pointerEvents: \"none\",\n flexShrink: 0,\n width: \"1rem\",\n height: \"1rem\",\n },\n \"& svg:not([class*='text-'])\": {\n color: tokens.grayA11,\n },\n },\n shortcut: {\n color: tokens.grayA11,\n marginLeft: \"auto\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n letterSpacing: \"0.1em\",\n },\n loading: {\n color: tokens.grayA11,\n },\n dialogContent: {\n ...boxModel,\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n ...shorthands.padding(0),\n },\n dialogCommand: {\n [`& [${SLOT_ATTR}=\"command-group-label\"]`]: {\n color: tokens.grayA11,\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n fontWeight: tokens.fontWeightMedium,\n },\n [`& [${SLOT_ATTR}=\"command-input-wrapper\"]`]: {\n height: \"3rem\",\n },\n [`& [${SLOT_ATTR}=\"command-group\"]`]: {\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n },\n [`& [${SLOT_ATTR}=\"command-item\"]`]: {\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: tokens.spacingElement3,\n paddingBottom: tokens.spacingElement3,\n },\n [`& [${SLOT_ATTR}=\"command-item\"] svg`]: {\n width: \"1.25rem\",\n height: \"1.25rem\",\n },\n [`& [${SLOT_ATTR}=\"command-input\"]`]: {\n height: \"3rem\",\n },\n },\n srOnly: {\n ...boxModel,\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n paddingTop: 0,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n marginTop: \"-1px\",\n marginBottom: \"-1px\",\n marginLeft: \"-1px\",\n marginRight: \"-1px\",\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n ...shorthands.borderWidth(0),\n },\n})\n\n/**\n * Whether an item matches the search text. `itemToString` is the string Command matches an\n * object item by. Typed as a method so a filter written for the caller's own item type is accepted.\n */\nexport type CommandFilter = {\n bivarianceHack(\n item: unknown,\n query: string,\n itemToString?: (item: unknown) => string\n ): boolean\n}[\"bivarianceHack\"]\n\n/** Renders one item (or one group) of `items`; `index` is its position among the matches. */\nexport type CommandRenderItem = {\n bivarianceHack(item: unknown, index: number): React.ReactNode\n}[\"bivarianceHack\"]\n\n/** The string an object item is matched by and announced as. */\nexport type CommandItemToString = {\n bivarianceHack(item: unknown): string\n}[\"bivarianceHack\"]\n\n/**\n * Filtering, as Base UI's Autocomplete does it: the items are data, matched against the search\n * text, and the list renders the matches.\n */\nexport type CommandRootProps = {\n /**\n * The items to filter: a flat array, or groups shaped `{ items: [...] }`, which the list renders\n * as one group each, with a collection inside that renders the group's matches. Required:\n * without it nothing would filter and the empty state would show beside the options.\n */\n items: readonly unknown[]\n /**\n * Whether an item matches the search text. Defaults to a locale-aware, case-insensitive\n * \"contains\" on the item's string (`label` for `{ value, label }` objects). `null` turns\n * filtering off, for items the caller has already filtered (a server-side search).\n */\n filter?: CommandFilter | null\n /** The string an object item is matched by. `{ value, label }` items need none: `label` is used. */\n itemToStringValue?: CommandItemToString\n /** The most matches to render. All of them by default. */\n limit?: number\n /** The search text, when controlled. */\n value?: string\n /** The search text it starts with, when uncontrolled. */\n defaultValue?: string\n /** Called with the new search text as the user types. */\n onValueChange?: (value: string) => void\n}\n\n/**\n * never exported it and its only consumer is `field/field-combobox.tsx`, which builds its listbox\n * out of these pieces. This was a decision, not an oversight: a public Command is a surface nobody\n * has reviewed as public API, and exporting it after 0.1 is additive and non-breaking, whereas un-\n * exporting it would not be.\n * @internal not part of the 0.1 public API. Command is fully implemented and tested, but the barrel\n */\nexport type CommandProps = Omit<React.ComponentProps<\"div\">, \"defaultValue\"> &\n CommandRootProps & {\n \"data-slot\"?: string\n }\n\n/** The search text, for parts that change while a search is under way (the separators). */\nconst CommandSearchContext = React.createContext(\"\")\n\n/**\n * Base UI's Autocomplete, inline and always open: the search input filters the list in place.\n * The first match stays highlighted, so Enter runs it.\n */\nexport const Command = React.forwardRef<HTMLDivElement, CommandProps>(\n function Command(\n {\n className,\n \"data-slot\": dataSlot = \"command\",\n items,\n filter,\n itemToStringValue,\n limit,\n value,\n defaultValue,\n onValueChange,\n children,\n ...props\n },\n ref\n ) {\n const styles = useStyles()\n // Base UI keeps the search text to itself; Command mirrors it for the separators.\n const [typed, setTyped] = React.useState(defaultValue ?? \"\")\n const search = value ?? typed\n\n return (\n <AutocompletePrimitive.Root\n inline\n open\n autoHighlight=\"always\"\n keepHighlight\n items={items}\n filter={filter}\n itemToStringValue={itemToStringValue}\n limit={limit}\n value={value}\n defaultValue={defaultValue}\n onValueChange={(next: string) => {\n setTyped(next)\n onValueChange?.(next)\n }}\n >\n <CommandSearchContext.Provider value={search}>\n <div\n ref={ref}\n data-slot={dataSlot}\n {...{ [SLOT_ATTR]: dataSlot }}\n className={mergeClasses(styles.root, className)}\n {...props}\n >\n {children}\n </div>\n </CommandSearchContext.Provider>\n </AutocompletePrimitive.Root>\n )\n }\n)\n\nexport type CommandDialogProps = Omit<DialogProps, \"children\"> &\n CommandRootProps & {\n children?: React.ReactNode\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n }\n\nexport const CommandDialog = React.forwardRef<HTMLElement, CommandDialogProps>(\n function CommandDialog(\n {\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = true,\n items,\n filter,\n itemToStringValue,\n limit,\n value,\n defaultValue,\n onValueChange,\n ...props\n },\n _ref\n ) {\n const styles = useStyles()\n\n return (\n <Dialog {...props}>\n <DialogHeader className={styles.srOnly}>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={mergeClasses(styles.dialogContent, className)}\n showCloseButton={showCloseButton}\n >\n <Command\n className={styles.dialogCommand}\n items={items}\n filter={filter}\n itemToStringValue={itemToStringValue}\n limit={limit}\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange}\n >\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n }\n)\n\nexport type CommandInputProps = Omit<\n React.ComponentProps<\"input\">,\n \"value\" | \"defaultValue\" | \"type\"\n> & {\n wrapperClassName?: string\n}\n\nexport const CommandInput = React.forwardRef<\n HTMLInputElement,\n CommandInputProps\n>(function CommandInput({ className, wrapperClassName, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <div\n data-slot=\"command-input-wrapper\"\n {...{ [SLOT_ATTR]: \"command-input-wrapper\" }}\n className={mergeClasses(styles.inputWrapper, wrapperClassName)}\n >\n <SearchIcon className={styles.searchIcon} />\n <AutocompletePrimitive.Input\n ref={ref}\n data-slot=\"command-input\"\n {...{ [SLOT_ATTR]: \"command-input\" }}\n className={mergeClasses(styles.input, className)}\n {...props}\n />\n </div>\n )\n})\n\n/** Base UI owns the list's and the options' ids: the input's `aria-controls` and\n * `aria-activedescendant` point at them. */\nexport type CommandListProps = Omit<\n React.ComponentProps<\"div\">,\n \"children\" | \"id\"\n> & {\n /** The items: a function of each match of the root's `items`, or static content. */\n children?: React.ReactNode | CommandRenderItem\n}\n\n/**\n * The listbox. It is named \"Suggestions\" unless the caller names it: a translated `aria-label`\n * for another locale, or `aria-labelledby`, which wins over both.\n */\nexport const CommandList = React.forwardRef<HTMLDivElement, CommandListProps>(\n function CommandList(\n {\n className,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n ...props\n },\n ref\n ) {\n const styles = useStyles()\n\n return (\n <AutocompletePrimitive.List\n ref={ref}\n data-slot=\"command-list\"\n {...{ [SLOT_ATTR]: \"command-list\" }}\n className={mergeClasses(styles.list, className)}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel ?? (ariaLabelledBy ? undefined : \"Suggestions\")}\n {...props}\n />\n )\n }\n)\n\nexport type CommandEmptyProps = React.ComponentProps<\"div\">\n\n/** Shows its children while no item matches. It stays mounted (a live region) and is empty otherwise. */\nexport const CommandEmpty = React.forwardRef<HTMLDivElement, CommandEmptyProps>(\n function CommandEmpty({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <AutocompletePrimitive.Empty\n ref={ref}\n data-slot=\"command-empty\"\n {...{ [SLOT_ATTR]: \"command-empty\" }}\n className={mergeClasses(styles.empty, className)}\n {...props}\n />\n )\n }\n)\n\nexport type CommandGroupProps = React.ComponentProps<\"div\"> & {\n /** This group's items, for the collection inside the group to render. */\n items?: readonly unknown[]\n}\n\nexport const CommandGroup = React.forwardRef<HTMLDivElement, CommandGroupProps>(\n function CommandGroup({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <AutocompletePrimitive.Group\n ref={ref}\n data-slot=\"command-group\"\n {...{ [SLOT_ATTR]: \"command-group\" }}\n className={mergeClasses(styles.group, className)}\n {...props}\n />\n )\n }\n)\n\nexport type CommandGroupLabelProps = React.ComponentProps<\"div\">\n\n/** Names its group for assistive technology. */\nexport const CommandGroupLabel = React.forwardRef<\n HTMLDivElement,\n CommandGroupLabelProps\n>(function CommandGroupLabel({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <AutocompletePrimitive.GroupLabel\n ref={ref}\n data-slot=\"command-group-label\"\n {...{ [SLOT_ATTR]: \"command-group-label\" }}\n className={mergeClasses(styles.groupLabel, className)}\n {...props}\n />\n )\n})\n\nexport type CommandCollectionProps = {\n /** Renders each match of the enclosing group's `items`. */\n children: CommandRenderItem\n}\n\n/**\n * Renders a group's matching items.\n * @no-host-element Base UI's Collection renders only the items, so there is no element to take a ref.\n */\nexport const CommandCollection = ({ children }: CommandCollectionProps) => (\n <AutocompletePrimitive.Collection>\n {children}\n </AutocompletePrimitive.Collection>\n)\n\nexport type CommandSeparatorProps = React.ComponentProps<\"div\">\n\n/** A divider between groups. It steps aside while the search text is not empty, as matches regroup. */\nexport const CommandSeparator = React.forwardRef<\n HTMLDivElement,\n CommandSeparatorProps\n>(function CommandSeparator({ className, ...props }, ref) {\n const styles = useStyles()\n const searching = React.useContext(CommandSearchContext).trim() !== \"\"\n\n if (searching) return null\n return (\n <AutocompletePrimitive.Separator\n ref={ref}\n data-slot=\"command-separator\"\n {...{ [SLOT_ATTR]: \"command-separator\" }}\n className={mergeClasses(styles.separator, className)}\n {...props}\n />\n )\n})\n\n/** No `onSelect`: the DOM's would never run on click or Enter; `onClick` does both. */\nexport type CommandItemProps = Omit<\n React.ComponentProps<\"div\">,\n \"id\" | \"onSelect\"\n> & {\n /** The item of `items` this option stands for. */\n value?: unknown\n /** Whether the option ignores pointer and keyboard selection. */\n disabled?: boolean\n /** The option's position among the matches, which spares a DOM lookup. */\n index?: number\n}\n\n/** One option. `onClick` runs on a click and on Enter while the option is highlighted. */\nexport const CommandItem = React.forwardRef<HTMLDivElement, CommandItemProps>(\n function CommandItem({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <AutocompletePrimitive.Item\n ref={ref}\n data-slot=\"command-item\"\n {...{ [SLOT_ATTR]: \"command-item\" }}\n className={mergeClasses(styles.item, className)}\n {...props}\n />\n )\n }\n)\n\nexport type CommandShortcutProps = React.ComponentProps<\"span\">\n\nexport const CommandShortcut = React.forwardRef<\n HTMLSpanElement,\n CommandShortcutProps\n>(function CommandShortcut({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n data-slot=\"command-shortcut\"\n {...{ [SLOT_ATTR]: \"command-shortcut\" }}\n className={mergeClasses(styles.shortcut, className)}\n {...props}\n />\n )\n})\n\nexport type CommandLoadingProps = React.ComponentProps<\"div\">\n\n/**\n * A polite live region for the list's status, such as loading. Keep it mounted and change its\n * children: a region that mounts with its message is not announced everywhere.\n */\nexport const CommandLoading = React.forwardRef<\n HTMLDivElement,\n CommandLoadingProps\n>(function CommandLoading({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <AutocompletePrimitive.Status\n ref={ref}\n data-slot=\"command-loading\"\n {...{ [SLOT_ATTR]: \"command-loading\" }}\n className={mergeClasses(styles.loading, className)}\n {...props}\n />\n )\n})\n\nexport { Command as CommandRoot }\n"],"names":["SearchIcon","props","jsx","useStyles","makeZenithStyles","boxModel","tokens.body","tokens.grayA12","shorthands","tokens.radiusMd","tokens.spacingElement2","tokens.grayA3","tokens.spacingElement3","tokens.focusRing","tokens.textSm","tokens.leadingSm","tokens.grayA11","tokens.spacingElement1","tokens.textXs","tokens.leadingXs","tokens.fontWeightMedium","tokens.graySoft","tokens.radiusSm","tokens.accentA3","SLOT_ATTR","CommandSearchContext","React","Command","className","dataSlot","items","filter","itemToStringValue","limit","value","defaultValue","onValueChange","children","ref","styles","typed","setTyped","search","AutocompletePrimitive","next","mergeClasses","title","description","showCloseButton","_ref","jsxs","Dialog","DialogHeader","DialogTitle","DialogDescription","DialogContent","CommandInput","wrapperClassName","CommandList","ariaLabel","ariaLabelledBy","CommandEmpty","CommandGroup","CommandGroupLabel","CommandCollection","CommandSeparator","CommandItem","CommandLoading"],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sources":["../../../src/components/command/command.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Autocomplete as AutocompletePrimitive } from \"@base-ui/react/autocomplete\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport { boxModel } from \"../../styles/host-reset\"\nimport * as tokens from \"../../tokens\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n type DialogProps,\n} from \"../dialog/dialog\"\n\nconst SearchIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M380-320q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l224 224q11 11 11 28t-11 28q-11 11-28 11t-28-11L532-372q-30 24-69 38t-83 14Zm0-80q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z\" />\n </svg>\n)\n\nconst useStyles = makeZenithStyles({\n root: {\n ...boxModel,\n backgroundColor: tokens.body,\n color: tokens.grayA12,\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n flexDirection: \"column\",\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n ...shorthands.borderRadius(tokens.radiusMd),\n },\n inputWrapper: {\n ...boxModel,\n display: \"flex\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderBottom(\"1px\", \"solid\", tokens.grayA3),\n paddingLeft: tokens.spacingElement3,\n paddingRight: tokens.spacingElement3,\n // No focus frame: the caret marks focus, the example WCAG 2.4.7's Understanding gives for a\n // text field. The row's padding keeps the text clear of the edges; the input keeps outline none.\n },\n searchIcon: {\n ...boxModel,\n width: \"1.25rem\",\n height: \"1.25rem\",\n flexShrink: 0,\n opacity: 0.5,\n },\n input: {\n ...boxModel,\n height: \"3rem\",\n display: \"flex\",\n width: \"100%\",\n ...shorthands.borderRadius(tokens.radiusMd),\n backgroundColor: \"transparent\",\n paddingTop: tokens.spacingElement3,\n paddingBottom: tokens.spacingElement3,\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\n \"::placeholder\": {\n color: tokens.grayA11,\n },\n \":disabled\": {\n cursor: \"not-allowed\",\n opacity: 0.5,\n },\n },\n list: {\n overflowX: \"hidden\",\n overflowY: \"auto\",\n scrollPaddingTop: tokens.spacingElement1,\n scrollPaddingBottom: tokens.spacingElement1,\n },\n empty: {\n ...boxModel,\n paddingTop: \"1.5rem\",\n paddingBottom: \"1.5rem\",\n textAlign: \"center\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n color: tokens.grayA11,\n // Base UI keeps the empty state mounted as a live region and empties it while items match.\n \":empty\": {\n paddingTop: 0,\n paddingBottom: 0,\n },\n },\n group: {\n ...boxModel,\n color: tokens.grayA12,\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n ...shorthands.padding(tokens.spacingElement1),\n },\n groupLabel: {\n ...boxModel,\n color: tokens.grayA11,\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n fontWeight: tokens.fontWeightMedium,\n },\n separator: {\n ...boxModel,\n backgroundColor: tokens.graySoft,\n marginLeft: `calc(-1 * ${tokens.spacingElement1})`,\n marginRight: `calc(-1 * ${tokens.spacingElement1})`,\n height: \"1px\",\n },\n item: {\n ...boxModel,\n position: \"relative\",\n display: \"flex\",\n cursor: \"default\",\n alignItems: \"center\",\n ...shorthands.gap(tokens.spacingElement2),\n ...shorthands.borderRadius(tokens.radiusSm),\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: \"0.375rem\",\n paddingBottom: \"0.375rem\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\n userSelect: \"none\",\n color: tokens.grayA12,\n \"&[data-highlighted]\": {\n backgroundColor: tokens.accentA3,\n },\n \":hover\": {\n backgroundColor: tokens.accentA3,\n },\n \"&[data-disabled]\": {\n pointerEvents: \"none\",\n opacity: 0.5,\n },\n \"& svg\": {\n pointerEvents: \"none\",\n flexShrink: 0,\n width: \"1rem\",\n height: \"1rem\",\n },\n \"& svg:not([class*='text-'])\": {\n color: tokens.grayA11,\n },\n },\n shortcut: {\n color: tokens.grayA11,\n marginLeft: \"auto\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n letterSpacing: \"0.1em\",\n },\n loading: {\n color: tokens.grayA11,\n },\n dialogContent: {\n ...boxModel,\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n ...shorthands.padding(0),\n },\n dialogCommand: {\n [`& [${SLOT_ATTR}=\"command-group-label\"]`]: {\n color: tokens.grayA11,\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n fontWeight: tokens.fontWeightMedium,\n },\n [`& [${SLOT_ATTR}=\"command-input-wrapper\"]`]: {\n height: \"3rem\",\n },\n [`& [${SLOT_ATTR}=\"command-group\"]`]: {\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n },\n [`& [${SLOT_ATTR}=\"command-item\"]`]: {\n paddingLeft: tokens.spacingElement2,\n paddingRight: tokens.spacingElement2,\n paddingTop: tokens.spacingElement3,\n paddingBottom: tokens.spacingElement3,\n },\n [`& [${SLOT_ATTR}=\"command-item\"] svg`]: {\n width: \"1.25rem\",\n height: \"1.25rem\",\n },\n [`& [${SLOT_ATTR}=\"command-input\"]`]: {\n height: \"3rem\",\n },\n },\n srOnly: {\n ...boxModel,\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n paddingTop: 0,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n marginTop: \"-1px\",\n marginBottom: \"-1px\",\n marginLeft: \"-1px\",\n marginRight: \"-1px\",\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n ...shorthands.borderWidth(0),\n },\n})\n\n/**\n * Whether an item matches the search text. `itemToString` is the string Command matches an\n * object item by. Typed as a method so a filter written for the caller's own item type is accepted.\n */\nexport type CommandFilter = {\n bivarianceHack(\n item: unknown,\n query: string,\n itemToString?: (item: unknown) => string\n ): boolean\n}[\"bivarianceHack\"]\n\n/** Renders one item (or one group) of `items`; `index` is its position among the matches. */\nexport type CommandRenderItem = {\n bivarianceHack(item: unknown, index: number): React.ReactNode\n}[\"bivarianceHack\"]\n\n/** The string an object item is matched by and announced as. */\nexport type CommandItemToString = {\n bivarianceHack(item: unknown): string\n}[\"bivarianceHack\"]\n\n/**\n * Filtering, as Base UI's Autocomplete does it: the items are data, matched against the search\n * text, and the list renders the matches.\n */\nexport type CommandRootProps = {\n /**\n * The items to filter: a flat array, or groups shaped `{ items: [...] }`, which the list renders\n * as one group each, with a collection inside that renders the group's matches. Required:\n * without it nothing would filter and the empty state would show beside the options.\n */\n items: readonly unknown[]\n /**\n * Whether an item matches the search text. Defaults to a locale-aware, case-insensitive\n * \"contains\" on the item's string (`label` for `{ value, label }` objects). `null` turns\n * filtering off, for items the caller has already filtered (a server-side search).\n */\n filter?: CommandFilter | null\n /** The string an object item is matched by. `{ value, label }` items need none: `label` is used. */\n itemToStringValue?: CommandItemToString\n /** The most matches to render. All of them by default. */\n limit?: number\n /** The search text, when controlled. */\n value?: string\n /** The search text it starts with, when uncontrolled. */\n defaultValue?: string\n /** Called with the new search text as the user types. */\n onValueChange?: (value: string) => void\n}\n\n/**\n * never exported it and its only consumer is `field/field-combobox.tsx`, which builds its listbox\n * out of these pieces. This was a decision, not an oversight: a public Command is a surface nobody\n * has reviewed as public API, and exporting it after 0.1 is additive and non-breaking, whereas un-\n * exporting it would not be.\n * @internal not part of the 0.1 public API. Command is fully implemented and tested, but the barrel\n */\nexport type CommandProps = Omit<React.ComponentProps<\"div\">, \"defaultValue\"> &\n CommandRootProps & {\n \"data-slot\"?: string\n }\n\n/** The search text, for parts that change while a search is under way (the separators). */\nconst CommandSearchContext = React.createContext(\"\")\n\n/**\n * Base UI's Autocomplete, inline and always open: the search input filters the list in place.\n * The first match stays highlighted, so Enter runs it.\n */\nexport const Command = React.forwardRef<HTMLDivElement, CommandProps>(\n function Command(\n {\n className,\n \"data-slot\": dataSlot = \"command\",\n items,\n filter,\n itemToStringValue,\n limit,\n value,\n defaultValue,\n onValueChange,\n children,\n ...props\n },\n ref\n ) {\n const styles = useStyles()\n // Base UI keeps the search text to itself; Command mirrors it for the separators.\n const [typed, setTyped] = React.useState(defaultValue ?? \"\")\n const search = value ?? typed\n\n return (\n <AutocompletePrimitive.Root\n inline\n open\n autoHighlight=\"always\"\n keepHighlight\n items={items}\n filter={filter}\n itemToStringValue={itemToStringValue}\n limit={limit}\n value={value}\n defaultValue={defaultValue}\n onValueChange={(next: string) => {\n setTyped(next)\n onValueChange?.(next)\n }}\n >\n <CommandSearchContext.Provider value={search}>\n <div\n ref={ref}\n data-slot={dataSlot}\n {...{ [SLOT_ATTR]: dataSlot }}\n className={mergeClasses(styles.root, className)}\n {...props}\n >\n {children}\n </div>\n </CommandSearchContext.Provider>\n </AutocompletePrimitive.Root>\n )\n }\n)\n\nexport type CommandDialogProps = Omit<DialogProps, \"children\"> &\n CommandRootProps & {\n children?: React.ReactNode\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n }\n\nexport const CommandDialog = React.forwardRef<HTMLElement, CommandDialogProps>(\n function CommandDialog(\n {\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = true,\n items,\n filter,\n itemToStringValue,\n limit,\n value,\n defaultValue,\n onValueChange,\n ...props\n },\n _ref\n ) {\n const styles = useStyles()\n\n return (\n <Dialog {...props}>\n <DialogHeader className={styles.srOnly}>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={mergeClasses(styles.dialogContent, className)}\n showCloseButton={showCloseButton}\n >\n <Command\n className={styles.dialogCommand}\n items={items}\n filter={filter}\n itemToStringValue={itemToStringValue}\n limit={limit}\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange}\n >\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n }\n)\n\nexport type CommandInputProps = Omit<\n React.ComponentProps<\"input\">,\n \"value\" | \"defaultValue\" | \"type\"\n> & {\n wrapperClassName?: string\n}\n\nexport const CommandInput = React.forwardRef<\n HTMLInputElement,\n CommandInputProps\n>(function CommandInput({ className, wrapperClassName, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <div\n data-slot=\"command-input-wrapper\"\n {...{ [SLOT_ATTR]: \"command-input-wrapper\" }}\n className={mergeClasses(styles.inputWrapper, wrapperClassName)}\n >\n <SearchIcon className={styles.searchIcon} />\n <AutocompletePrimitive.Input\n ref={ref}\n data-slot=\"command-input\"\n {...{ [SLOT_ATTR]: \"command-input\" }}\n className={mergeClasses(styles.input, className)}\n {...props}\n />\n </div>\n )\n})\n\n/** Base UI owns the list's and the options' ids: the input's `aria-controls` and\n * `aria-activedescendant` point at them. */\nexport type CommandListProps = Omit<\n React.ComponentProps<\"div\">,\n \"children\" | \"id\"\n> & {\n /** The items: a function of each match of the root's `items`, or static content. */\n children?: React.ReactNode | CommandRenderItem\n}\n\n/**\n * The listbox. It is named \"Suggestions\" unless the caller names it: a translated `aria-label`\n * for another locale, or `aria-labelledby`, which wins over both.\n */\nexport const CommandList = React.forwardRef<HTMLDivElement, CommandListProps>(\n function CommandList(\n {\n className,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n ...props\n },\n ref\n ) {\n const styles = useStyles()\n\n return (\n <AutocompletePrimitive.List\n ref={ref}\n data-slot=\"command-list\"\n {...{ [SLOT_ATTR]: \"command-list\" }}\n className={mergeClasses(styles.list, className)}\n aria-labelledby={ariaLabelledBy}\n aria-label={ariaLabel ?? (ariaLabelledBy ? undefined : \"Suggestions\")}\n {...props}\n />\n )\n }\n)\n\nexport type CommandEmptyProps = React.ComponentProps<\"div\">\n\n/** Shows its children while no item matches. It stays mounted (a live region) and is empty otherwise. */\nexport const CommandEmpty = React.forwardRef<HTMLDivElement, CommandEmptyProps>(\n function CommandEmpty({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <AutocompletePrimitive.Empty\n ref={ref}\n data-slot=\"command-empty\"\n {...{ [SLOT_ATTR]: \"command-empty\" }}\n className={mergeClasses(styles.empty, className)}\n {...props}\n />\n )\n }\n)\n\nexport type CommandGroupProps = React.ComponentProps<\"div\"> & {\n /** This group's items, for the collection inside the group to render. */\n items?: readonly unknown[]\n}\n\nexport const CommandGroup = React.forwardRef<HTMLDivElement, CommandGroupProps>(\n function CommandGroup({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <AutocompletePrimitive.Group\n ref={ref}\n data-slot=\"command-group\"\n {...{ [SLOT_ATTR]: \"command-group\" }}\n className={mergeClasses(styles.group, className)}\n {...props}\n />\n )\n }\n)\n\nexport type CommandGroupLabelProps = React.ComponentProps<\"div\">\n\n/** Names its group for assistive technology. */\nexport const CommandGroupLabel = React.forwardRef<\n HTMLDivElement,\n CommandGroupLabelProps\n>(function CommandGroupLabel({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <AutocompletePrimitive.GroupLabel\n ref={ref}\n data-slot=\"command-group-label\"\n {...{ [SLOT_ATTR]: \"command-group-label\" }}\n className={mergeClasses(styles.groupLabel, className)}\n {...props}\n />\n )\n})\n\nexport type CommandCollectionProps = {\n /** Renders each match of the enclosing group's `items`. */\n children: CommandRenderItem\n}\n\n/**\n * Renders a group's matching items.\n * @no-host-element Base UI's Collection renders only the items, so there is no element to take a ref.\n */\nexport const CommandCollection = ({ children }: CommandCollectionProps) => (\n <AutocompletePrimitive.Collection>\n {children}\n </AutocompletePrimitive.Collection>\n)\n\nexport type CommandSeparatorProps = React.ComponentProps<\"div\">\n\n/** A divider between groups. It steps aside while the search text is not empty, as matches regroup. */\nexport const CommandSeparator = React.forwardRef<\n HTMLDivElement,\n CommandSeparatorProps\n>(function CommandSeparator({ className, ...props }, ref) {\n const styles = useStyles()\n const searching = React.useContext(CommandSearchContext).trim() !== \"\"\n\n if (searching) return null\n return (\n <AutocompletePrimitive.Separator\n ref={ref}\n data-slot=\"command-separator\"\n {...{ [SLOT_ATTR]: \"command-separator\" }}\n className={mergeClasses(styles.separator, className)}\n {...props}\n />\n )\n})\n\n/** No `onSelect`: the DOM's would never run on click or Enter; `onClick` does both. */\nexport type CommandItemProps = Omit<\n React.ComponentProps<\"div\">,\n \"id\" | \"onSelect\"\n> & {\n /** The item of `items` this option stands for. */\n value?: unknown\n /** Whether the option ignores pointer and keyboard selection. */\n disabled?: boolean\n /** The option's position among the matches, which spares a DOM lookup. */\n index?: number\n}\n\n/** One option. `onClick` runs on a click and on Enter while the option is highlighted. */\nexport const CommandItem = React.forwardRef<HTMLDivElement, CommandItemProps>(\n function CommandItem({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <AutocompletePrimitive.Item\n ref={ref}\n data-slot=\"command-item\"\n {...{ [SLOT_ATTR]: \"command-item\" }}\n className={mergeClasses(styles.item, className)}\n {...props}\n />\n )\n }\n)\n\nexport type CommandShortcutProps = React.ComponentProps<\"span\">\n\nexport const CommandShortcut = React.forwardRef<\n HTMLSpanElement,\n CommandShortcutProps\n>(function CommandShortcut({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n data-slot=\"command-shortcut\"\n {...{ [SLOT_ATTR]: \"command-shortcut\" }}\n className={mergeClasses(styles.shortcut, className)}\n {...props}\n />\n )\n})\n\nexport type CommandLoadingProps = React.ComponentProps<\"div\">\n\n/**\n * A polite live region for the list's status, such as loading. Keep it mounted and change its\n * children: a region that mounts with its message is not announced everywhere.\n */\nexport const CommandLoading = React.forwardRef<\n HTMLDivElement,\n CommandLoadingProps\n>(function CommandLoading({ className, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <AutocompletePrimitive.Status\n ref={ref}\n data-slot=\"command-loading\"\n {...{ [SLOT_ATTR]: \"command-loading\" }}\n className={mergeClasses(styles.loading, className)}\n {...props}\n />\n )\n})\n\nexport { Command as CommandRoot }\n"],"names":["SearchIcon","props","jsx","useStyles","makeZenithStyles","boxModel","tokens.body","tokens.grayA12","shorthands","tokens.radiusMd","tokens.spacingElement2","tokens.grayA3","tokens.spacingElement3","tokens.textSm","tokens.leadingSm","tokens.grayA11","tokens.spacingElement1","tokens.textXs","tokens.leadingXs","tokens.fontWeightMedium","tokens.graySoft","tokens.radiusSm","tokens.accentA3","SLOT_ATTR","CommandSearchContext","React","Command","className","dataSlot","items","filter","itemToStringValue","limit","value","defaultValue","onValueChange","children","ref","styles","typed","setTyped","search","AutocompletePrimitive","next","mergeClasses","title","description","showCloseButton","_ref","jsxs","Dialog","DialogHeader","DialogTitle","DialogDescription","DialogContent","CommandInput","wrapperClassName","CommandList","ariaLabel","ariaLabelledBy","CommandEmpty","CommandGroup","CommandGroupLabel","CommandCollection","CommandSeparator","CommandItem","CommandLoading"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/zenith-react",
3
- "version": "0.3.0-next.16",
3
+ "version": "0.3.0-next.18",
4
4
  "description": "Zenith React components, styled with Griffel and designed for isolated micro-frontend delivery",
5
5
  "type": "module",
6
6
  "repository": {
@@ -149,19 +149,19 @@
149
149
  "zenith": {
150
150
  "next": {
151
151
  "mainSha": "16dfd03884fe211c78e36ad8c3c3ba39dd79f628",
152
- "buildJobUrl": "https://gitlab.com/e-pilot/product/frontend/zenith/-/jobs/17657567997",
153
- "pipelineId": 3016876179,
152
+ "buildJobUrl": "https://gitlab.com/e-pilot/product/frontend/zenith/-/jobs/17659206725",
153
+ "pipelineId": 3017094670,
154
154
  "included": [
155
155
  {
156
156
  "iid": 151,
157
- "headSha": "2d19bf8fbfe3e9fe4943fca1465f475f7352bb02",
157
+ "headSha": "ed04121661d951a518adcf63b94b5430a8d86632",
158
158
  "url": "https://gitlab.com/e-pilot/product/frontend/zenith/-/merge_requests/151",
159
159
  "order": 1
160
160
  }
161
161
  ],
162
162
  "leftOut": [],
163
163
  "versions": {
164
- "react": "0.3.0-next.16",
164
+ "react": "0.3.0-next.18",
165
165
  "runtime": "0.3.0-next.1"
166
166
  },
167
167
  "runtime": {