@box-kite/react 2.2.18 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/.claude/rules/box-kite-rules.md +6 -2
  2. package/.claude/skills/box-kite/SKILL.md +19 -15
  3. package/.claude/skills/box-kite/references/patterns.md +1 -1
  4. package/.claude/skills/box-kite/references/styling.md +3 -3
  5. package/.cursor/rules/box-kite.mdc +7 -3
  6. package/AGENTS.md +7 -3
  7. package/BOX_AI_CONTEXT.md +81 -41
  8. package/BOX_KITE_AI_CONTEXT.md +81 -41
  9. package/README.md +13 -7
  10. package/behavior.cjs +1 -1
  11. package/behavior.mjs +1 -1
  12. package/box.cjs +1 -1
  13. package/box.d.ts +1 -0
  14. package/box.mjs +1 -1
  15. package/catalog.cjs +1 -1
  16. package/catalog.mjs +4 -1
  17. package/client.cjs +1 -1
  18. package/client.mjs +14 -14
  19. package/components/calendar.cjs +1 -1
  20. package/components/calendar.mjs +21 -20
  21. package/components/dashboard.cjs +1 -1
  22. package/components/dashboard.mjs +12 -12
  23. package/components/dataGrid/components/dataGridFooter.d.ts +6 -2
  24. package/components/dataGrid/models/gridModel.d.ts +21 -2
  25. package/components/dataGrid/models/groupRowModel.d.ts +1 -1
  26. package/components/dataGrid/models/rowModel.d.ts +1 -1
  27. package/components/dataGrid/models/sourceGroupRowModel.d.ts +5 -1
  28. package/components/dataGrid/models/sourceRowModel.d.ts +5 -1
  29. package/components/dataGrid.cjs +3 -3
  30. package/components/dataGrid.mjs +821 -771
  31. package/components/dateField.cjs +1 -1
  32. package/components/dateField.mjs +6 -6
  33. package/components/datePicker.cjs +1 -1
  34. package/components/datePicker.mjs +116 -111
  35. package/components/dialog.cjs +1 -1
  36. package/components/dialog.d.ts +1 -1
  37. package/components/dialog.mjs +1 -1
  38. package/components/dropdown.cjs +1 -1
  39. package/components/dropdown.mjs +8 -3
  40. package/components/menu.cjs +1 -1
  41. package/components/menu.mjs +10 -10
  42. package/components/overlay.cjs +1 -1
  43. package/components/overlay.mjs +6 -6
  44. package/components/popover.cjs +1 -1
  45. package/components/popover.d.ts +8 -2
  46. package/components/popover.mjs +58 -55
  47. package/components/slider.cjs +1 -1
  48. package/components/slider.mjs +8 -8
  49. package/components/sortableList.cjs +1 -1
  50. package/components/sortableList.mjs +1 -1
  51. package/components/svg.d.ts +2 -2
  52. package/components/swipeItem.cjs +1 -1
  53. package/components/swipeItem.mjs +11 -11
  54. package/components/tabs.cjs +1 -1
  55. package/components/tabs.mjs +9 -9
  56. package/dataGridList.cjs +1 -1
  57. package/dataGridList.mjs +3 -5
  58. package/docs/props.md +49 -25
  59. package/interactionListening.cjs +1 -1
  60. package/interactionListening.mjs +3 -3
  61. package/layer.cjs +1 -1
  62. package/layer.mjs +1 -1
  63. package/package.json +5 -5
  64. package/placement.cjs +1 -1
  65. package/placement.mjs +1 -1
  66. package/platform.cjs +1 -1
  67. package/platform.mjs +16 -11
  68. package/react-shared.cjs +1 -1
  69. package/react-shared.mjs +1 -1
  70. package/rsc.cjs +1 -1
  71. package/rsc.d.ts +1 -0
  72. package/rsc.mjs +1 -1
  73. package/utils/dom/domUtils.d.ts +2 -0
@@ -18,7 +18,7 @@ import te from "./dateField.mjs";
18
18
  import { useCallback as T, useEffect as E, useMemo as D, useRef as ne, useState as re } from "react";
19
19
  import { Fragment as ie, jsx as O, jsxs as k } from "react/jsx-runtime";
20
20
  //#region src/components/datePicker.tsx
21
- function A() {
21
+ function ae() {
22
22
  return /* @__PURE__ */ O(b, {
23
23
  viewBox: "0 0 16 16",
24
24
  width: "1rem",
@@ -32,7 +32,7 @@ function A() {
32
32
  })
33
33
  });
34
34
  }
35
- function j() {
35
+ function A() {
36
36
  return /* @__PURE__ */ O(b, {
37
37
  viewBox: "0 0 16 16",
38
38
  width: "1rem",
@@ -47,7 +47,7 @@ function j() {
47
47
  })
48
48
  });
49
49
  }
50
- function ae() {
50
+ function oe() {
51
51
  return /* @__PURE__ */ O(b, {
52
52
  viewBox: "0 0 16 16",
53
53
  width: "0.875rem",
@@ -61,7 +61,7 @@ function ae() {
61
61
  })
62
62
  });
63
63
  }
64
- function oe(e) {
64
+ function se(e) {
65
65
  let [i, o] = re(null), s = e.ref, c = T((e) => {
66
66
  o(e), t(s, e);
67
67
  }, [s]), l = (e) => {
@@ -116,7 +116,7 @@ function oe(e) {
116
116
  return d ? /* @__PURE__ */ O(n, {
117
117
  ref: m,
118
118
  component: "popover",
119
- variant: { topLayer: !0 },
119
+ variant: [e.variant, { topLayer: !0 }],
120
120
  p: 3,
121
121
  ...y.layerProps,
122
122
  id: p,
@@ -133,6 +133,7 @@ function oe(e) {
133
133
  offset: 1,
134
134
  matchWidth: e.matchWidth,
135
135
  component: "popover",
136
+ variant: e.variant,
136
137
  p: 3,
137
138
  id: p,
138
139
  props: r,
@@ -141,7 +142,7 @@ function oe(e) {
141
142
  }
142
143
  };
143
144
  }
144
- function se(e) {
145
+ function ce(e) {
145
146
  let { value: t, step: r, locale: a, hourCycle: o, onSelect: s, label: l, min: u, max: d, emptyLabel: f, separated: p } = e, m = D(() => h(r, {
146
147
  min: u,
147
148
  max: d
@@ -186,10 +187,11 @@ function se(e) {
186
187
  children: m.map((e, t) => /* @__PURE__ */ O(n, {
187
188
  component: "datePicker.time",
188
189
  variant: { selected: e === _ },
190
+ minHeight: "control",
189
191
  px: 3,
190
192
  py: 1.5,
191
193
  borderRadius: 2,
192
- fontSize: 14,
194
+ fontSize: "control",
193
195
  textAlign: "start",
194
196
  whiteSpace: "nowrap",
195
197
  css: { fontVariantNumeric: "tabular-nums" },
@@ -208,7 +210,7 @@ function se(e) {
208
210
  }, e))
209
211
  });
210
212
  }
211
- function ce(e) {
213
+ function le(e) {
212
214
  return /* @__PURE__ */ O(n, {
213
215
  component: "datePicker.presets",
214
216
  display: "flex",
@@ -221,10 +223,11 @@ function ce(e) {
221
223
  tag: "button",
222
224
  component: "datePicker.preset",
223
225
  variant: { selected: e.isSelected(t.value) },
226
+ minHeight: "control",
224
227
  px: 3,
225
228
  py: 1.5,
226
229
  borderRadius: 2,
227
- fontSize: 14,
230
+ fontSize: "control",
228
231
  textAlign: "start",
229
232
  whiteSpace: "nowrap",
230
233
  props: {
@@ -235,7 +238,7 @@ function ce(e) {
235
238
  }, t.label))
236
239
  });
237
240
  }
238
- function le(e) {
241
+ function ue(e) {
239
242
  let { frame: t, attachField: i, attachTrigger: a, triggerAttributes: o, triggerElement: s, id: c, label: l, labelledBy: u, describedBy: d } = e, { text: f, placeholder: p, icon: m, clear: h, disabled: g, invalid: _, required: v = !1, tabIndex: y, inputs: b, onReset: ee } = e, x = ne(null), S = l === void 0 ? void 0 : `${c}-label`, C = `${c}-value`, w = r(ee);
240
243
  return E(() => {
241
244
  let e = x.current?.form;
@@ -335,8 +338,8 @@ function le(e) {
335
338
  ]
336
339
  })] });
337
340
  }
338
- function M(e, t) {
339
- let { type: r = "date", value: i, defaultValue: a = null, onValueChange: o, zone: h, locale: g, hourCycle: y, granularity: b, disambiguation: S, min: C, max: w, isDateUnavailable: T, disabled: E = !1, readOnly: D = !1, required: ne, invalid: re, name: M, label: N, labelledBy: P, describedBy: F, open: ue, defaultOpen: de, onOpenChange: fe, closeOnSelect: I = !0, firstDayOfWeek: L, weekNumbers: pe, side: R = "bottom", align: me = "start", matchWidth: he = r === "time", emptyTimesLabel: ge = "No times available", clearable: _e = !1, pickOnly: z = !1, triggerLabel: ve, clearLabel: ye = "Clear", tabIndex: B, step: V = 30, defaultTime: H = "00:00", presets: U, showZone: W, ...be } = e, G = ee({
341
+ function j(e, t) {
342
+ let { type: r = "date", value: i, defaultValue: a = null, onValueChange: o, zone: h, locale: g, hourCycle: y, granularity: b, disambiguation: S, min: C, max: w, isDateUnavailable: T, disabled: E = !1, readOnly: D = !1, required: ne, invalid: re, name: j, label: M, labelledBy: N, describedBy: P, open: de, defaultOpen: fe, onOpenChange: pe, closeOnSelect: me = !0, firstDayOfWeek: F, weekNumbers: he, side: I = "bottom", align: ge = "start", matchWidth: _e = r === "time", emptyTimesLabel: L = "No times available", clearable: ve = !1, pickOnly: R = !1, triggerLabel: ye, clearLabel: be = "Clear", tabIndex: z, step: B = 30, defaultTime: V = "00:00", presets: H, showZone: U, ...W } = e, G = ee({
340
343
  locale: g,
341
344
  zone: h === "none" ? void 0 : h
342
345
  }), { locale: K } = G, q = r === "datetime" && h !== "none" ? G.zone : null, J = q ?? G.zone, [Y, X] = _({
@@ -351,15 +354,16 @@ function M(e, t) {
351
354
  type: "valueChange",
352
355
  content: ["value"]
353
356
  }
354
- }), Z = ve ?? (r === "time" ? "Choose time" : "Choose date"), xe = typeof N == "string" ? N : Z, { attachTrigger: Q, triggerAttributes: Se, triggerElement: Ce, closeOnChoice: we, id: Te, attachField: Ee, panel: De } = oe({
357
+ }), Z = ye ?? (r === "time" ? "Choose time" : "Choose date"), xe = typeof M == "string" ? M : Z, { attachTrigger: Q, triggerAttributes: Se, triggerElement: Ce, closeOnChoice: we, id: Te, attachField: Ee, panel: De } = se({
355
358
  ref: t,
356
- open: ue,
357
- defaultOpen: de,
358
- onOpenChange: fe,
359
- side: R,
360
- align: me,
361
- matchWidth: he,
362
- label: xe
359
+ open: de,
360
+ defaultOpen: fe,
361
+ onOpenChange: pe,
362
+ side: I,
363
+ align: ge,
364
+ matchWidth: _e,
365
+ label: xe,
366
+ variant: W.variant
363
367
  }), $ = Y && r !== "time" ? d(Y, { zone: J }) : null, Oe = Y && r !== "date" ? l(Y, { zone: J }) : null, ke = r === "datetime" ? $ ?? u(J) : null, Ae = (e) => e && (ke === null || d(e, { zone: J }) === ke) ? l(e, { zone: J }) : null, je = Y ? c(Y, {
364
368
  locale: K,
365
369
  zone: J,
@@ -368,7 +372,7 @@ function M(e, t) {
368
372
  dateStyle: "medium",
369
373
  timeStyle: "short"
370
374
  }
371
- }) : "", Me = z && Y && q && (W ?? q !== G.readerZone) ? s(q, {
375
+ }) : "", Me = R && Y && q && (U ?? q !== G.readerZone) ? s(q, {
372
376
  locale: K,
373
377
  style: "short",
374
378
  at: Y
@@ -379,7 +383,7 @@ function M(e, t) {
379
383
  e && (r === "date" ? (X(e, {
380
384
  reason: "select",
381
385
  event: t
382
- }), I && Ne(t)) : X(Pe(e, Oe ?? H), {
386
+ }), me && Ne(t)) : X(Pe(e, Oe ?? V), {
383
387
  reason: "select",
384
388
  event: t
385
389
  }));
@@ -387,7 +391,7 @@ function M(e, t) {
387
391
  X(r === "time" ? e : Pe($ ?? u(J), e), {
388
392
  reason: "select",
389
393
  event: t
390
- }), I && Ne(t);
394
+ }), me && Ne(t);
391
395
  }, Le = /* @__PURE__ */ O(n, {
392
396
  tag: "button",
393
397
  ref: Q,
@@ -404,11 +408,11 @@ function M(e, t) {
404
408
  props: {
405
409
  type: "button",
406
410
  "aria-label": je ? `${Z}, ${je}` : Z,
407
- tabIndex: B,
411
+ tabIndex: z,
408
412
  ...Se
409
413
  },
410
- children: O(r === "time" ? j : A, {})
411
- }), Re = _e && Y && !E && !D && /* @__PURE__ */ O(n, {
414
+ children: O(r === "time" ? A : ae, {})
415
+ }), Re = ve && Y && !E && !D && /* @__PURE__ */ O(n, {
412
416
  tag: "button",
413
417
  component: "datePicker.clear",
414
418
  display: "inline-flex",
@@ -422,34 +426,34 @@ function M(e, t) {
422
426
  zIndex: 1,
423
427
  props: {
424
428
  type: "button",
425
- "aria-label": ye,
426
- tabIndex: B,
429
+ "aria-label": be,
430
+ tabIndex: z,
427
431
  onClick: (e) => X(null, {
428
432
  reason: "clear",
429
433
  event: e
430
434
  })
431
435
  },
432
- children: /* @__PURE__ */ O(ae, {})
433
- }), ze = Y !== null && (C != null && f(Y, C) < 0 || w != null && f(Y, w) > 0), Be = z ? /* @__PURE__ */ O(le, {
434
- frame: be,
436
+ children: /* @__PURE__ */ O(oe, {})
437
+ }), ze = Y !== null && (C != null && f(Y, C) < 0 || w != null && f(Y, w) > 0), Be = R ? /* @__PURE__ */ O(ue, {
438
+ frame: W,
435
439
  attachField: Ee,
436
440
  attachTrigger: D ? void 0 : Q,
437
441
  triggerAttributes: D ? void 0 : Se,
438
442
  triggerElement: Ce,
439
443
  id: Te,
440
- label: N,
441
- labelledBy: P,
442
- describedBy: F,
444
+ label: M,
445
+ labelledBy: N,
446
+ describedBy: P,
443
447
  text: Me ? `${je} ${Me}` : je,
444
448
  placeholder: Z,
445
- icon: O(r === "time" ? j : A, {}),
449
+ icon: O(r === "time" ? A : ae, {}),
446
450
  clear: Re,
447
451
  disabled: E,
448
452
  invalid: re ?? (ze || $ !== null && !!T?.($)),
449
453
  required: ne,
450
- tabIndex: B,
454
+ tabIndex: z,
451
455
  inputs: [{
452
- name: M,
456
+ name: j,
453
457
  value: Y ?? ""
454
458
  }],
455
459
  onReset: (e) => X(a, {
@@ -458,7 +462,7 @@ function M(e, t) {
458
462
  })
459
463
  }) : /* @__PURE__ */ O(te, {
460
464
  ref: Ee,
461
- ...be,
465
+ ...W,
462
466
  type: r,
463
467
  value: Y,
464
468
  onValueChange: (e, t) => X(e, {
@@ -477,12 +481,12 @@ function M(e, t) {
477
481
  readOnly: D,
478
482
  required: ne,
479
483
  invalid: re,
480
- name: M,
481
- label: N,
482
- labelledBy: P,
483
- describedBy: F,
484
- showZone: W,
485
- tabIndex: B,
484
+ name: j,
485
+ label: M,
486
+ labelledBy: N,
487
+ describedBy: P,
488
+ showZone: U,
489
+ tabIndex: z,
486
490
  end: /* @__PURE__ */ k(ie, { children: [Re, Le] })
487
491
  });
488
492
  return /* @__PURE__ */ k(v, { children: [Be, De(/* @__PURE__ */ k(n, {
@@ -490,14 +494,14 @@ function M(e, t) {
490
494
  gap: 3,
491
495
  ai: "stretch",
492
496
  children: [
493
- U && U.length > 0 && /* @__PURE__ */ O(ce, {
494
- presets: U,
497
+ H && H.length > 0 && /* @__PURE__ */ O(le, {
498
+ presets: H,
495
499
  isSelected: (e) => Y !== null && f(e, Y, { zone: J }) === 0,
496
500
  onSelect: (e, t) => {
497
501
  X(e, {
498
502
  reason: "preset",
499
503
  event: t
500
- }), I && Ne(t);
504
+ }), me && Ne(t);
501
505
  }
502
506
  }),
503
507
  r !== "time" && /* @__PURE__ */ O(x, {
@@ -508,26 +512,26 @@ function M(e, t) {
508
512
  isDateUnavailable: T,
509
513
  locale: g,
510
514
  zone: h === "none" ? void 0 : h,
511
- firstDayOfWeek: L,
512
- weekNumbers: pe
515
+ firstDayOfWeek: F,
516
+ weekNumbers: he
513
517
  }),
514
- r !== "date" && /* @__PURE__ */ O(se, {
518
+ r !== "date" && /* @__PURE__ */ O(ce, {
515
519
  value: Oe,
516
- step: V,
520
+ step: B,
517
521
  locale: K,
518
522
  hourCycle: y,
519
523
  label: r === "time" ? xe : "Time",
520
524
  min: Ae(C),
521
525
  max: Ae(w),
522
- emptyLabel: ge,
526
+ emptyLabel: L,
523
527
  separated: r === "datetime",
524
528
  onSelect: Ie
525
529
  })
526
530
  ]
527
531
  }))] });
528
532
  }
529
- function N(e, t) {
530
- let { value: r, defaultValue: i = null, onValueChange: a, locale: s, min: c, max: l, isDateUnavailable: u, disabled: d = !1, readOnly: p = !1, required: m, invalid: h, startName: g, endName: y, label: b, labelledBy: S, describedBy: C, startLabel: w = "Start date", endLabel: T = "End date", open: E, defaultOpen: D, onOpenChange: ne, closeOnSelect: j = !0, firstDayOfWeek: se, weekNumbers: M, months: N = 2, side: P = "bottom", align: F = "start", matchWidth: ue = !1, emptyTimesLabel: de, clearable: fe = !1, pickOnly: I = !1, triggerLabel: L = "Choose dates", clearLabel: pe = "Clear", tabIndex: R, presets: me, props: he, ...ge } = e, { locale: _e } = ee({ locale: s }), [z, ve] = _({
533
+ function M(e, t) {
534
+ let { value: r, defaultValue: i = null, onValueChange: a, locale: s, min: c, max: l, isDateUnavailable: u, disabled: d = !1, readOnly: p = !1, required: m, invalid: h, startName: g, endName: y, label: b, labelledBy: S, describedBy: C, startLabel: w = "Start date", endLabel: T = "End date", open: E, defaultOpen: D, onOpenChange: ne, closeOnSelect: A = !0, firstDayOfWeek: ce, weekNumbers: j, months: M = 2, side: N = "bottom", align: P = "start", matchWidth: de = !1, emptyTimesLabel: fe, clearable: pe = !1, pickOnly: me = !1, triggerLabel: F = "Choose dates", clearLabel: he = "Clear", tabIndex: I, presets: ge, props: _e, ...L } = e, { locale: ve } = ee({ locale: s }), [R, ye] = _({
531
535
  value: r,
532
536
  defaultValue: i,
533
537
  onChange: a,
@@ -536,35 +540,36 @@ function N(e, t) {
536
540
  type: "valueChange",
537
541
  content: ["value"]
538
542
  }
539
- }), [ye, B] = re({
540
- start: z?.start ?? null,
541
- end: z?.end ?? null,
542
- source: z
543
- }), { start: V, end: H } = ye;
544
- ye.source !== z && (V = z?.start ?? null, H = z?.end ?? null, B({
545
- start: V,
546
- end: H,
547
- source: z
543
+ }), [be, z] = re({
544
+ start: R?.start ?? null,
545
+ end: R?.end ?? null,
546
+ source: R
547
+ }), { start: B, end: V } = be;
548
+ be.source !== R && (B = R?.start ?? null, V = R?.end ?? null, z({
549
+ start: B,
550
+ end: V,
551
+ source: R
548
552
  }));
549
- let { attachTrigger: U, triggerAttributes: W, triggerElement: be, closeOnChoice: G, id: K, attachField: q, panel: J } = oe({
553
+ let { attachTrigger: H, triggerAttributes: U, triggerElement: W, closeOnChoice: G, id: K, attachField: q, panel: J } = se({
550
554
  ref: t,
551
555
  open: E,
552
556
  defaultOpen: D,
553
557
  onOpenChange: ne,
554
- side: P,
555
- align: F,
556
- matchWidth: ue,
557
- label: typeof b == "string" ? b : L
558
- }), Y = z ? o(z.start, z.end, { locale: _e }) : "", X = V !== null && H !== null && f(V, H) > 0, Z = (e, t, n, r) => {
558
+ side: N,
559
+ align: P,
560
+ matchWidth: de,
561
+ label: typeof b == "string" ? b : F,
562
+ variant: L.variant
563
+ }), Y = R ? o(R.start, R.end, { locale: ve }) : "", X = B !== null && V !== null && f(B, V) > 0, Z = (e, t, n, r) => {
559
564
  let i = e && t && f(e, t) <= 0 ? {
560
565
  start: e,
561
566
  end: t
562
567
  } : null;
563
- B({
568
+ z({
564
569
  start: e,
565
570
  end: t,
566
571
  source: i
567
- }), ve(i, {
572
+ }), ye(i, {
568
573
  reason: n,
569
574
  event: r
570
575
  });
@@ -579,8 +584,8 @@ function N(e, t) {
579
584
  component: "datePicker.part",
580
585
  px: 0,
581
586
  py: 0,
582
- tabIndex: R
583
- }, Se = fe && z && !d && !p && /* @__PURE__ */ O(n, {
587
+ tabIndex: I
588
+ }, Se = pe && R && !d && !p && /* @__PURE__ */ O(n, {
584
589
  tag: "button",
585
590
  component: "datePicker.clear",
586
591
  display: "inline-flex",
@@ -593,38 +598,38 @@ function N(e, t) {
593
598
  zIndex: 1,
594
599
  props: {
595
600
  type: "button",
596
- "aria-label": pe,
597
- tabIndex: R,
601
+ "aria-label": he,
602
+ tabIndex: I,
598
603
  onClick: (e) => Z(null, null, "clear", e)
599
604
  },
600
- children: /* @__PURE__ */ O(ae, {})
601
- }), Ce = z !== null && (c != null && f(z.start, c) < 0 || l != null && f(z.end, l) > 0), we = I ? /* @__PURE__ */ O(le, {
605
+ children: /* @__PURE__ */ O(oe, {})
606
+ }), Ce = R !== null && (c != null && f(R.start, c) < 0 || l != null && f(R.end, l) > 0), we = me ? /* @__PURE__ */ O(ue, {
602
607
  frame: {
603
- ...ge,
604
- props: he
608
+ ...L,
609
+ props: _e
605
610
  },
606
611
  attachField: q,
607
- attachTrigger: p ? void 0 : U,
608
- triggerAttributes: p ? void 0 : W,
609
- triggerElement: be,
612
+ attachTrigger: p ? void 0 : H,
613
+ triggerAttributes: p ? void 0 : U,
614
+ triggerElement: W,
610
615
  id: K,
611
616
  label: b,
612
617
  labelledBy: S,
613
618
  describedBy: C,
614
619
  text: Y,
615
- placeholder: L,
616
- icon: /* @__PURE__ */ O(A, {}),
620
+ placeholder: F,
621
+ icon: /* @__PURE__ */ O(ae, {}),
617
622
  clear: Se,
618
623
  disabled: d,
619
624
  invalid: h ?? Ce,
620
625
  required: m,
621
- tabIndex: R,
626
+ tabIndex: I,
622
627
  inputs: [{
623
628
  name: g,
624
- value: z?.start ?? ""
629
+ value: R?.start ?? ""
625
630
  }, {
626
631
  name: y,
627
- value: z?.end ?? ""
632
+ value: R?.end ?? ""
628
633
  }],
629
634
  onReset: (e) => Z(i?.start ?? null, i?.end ?? null, "reset", e)
630
635
  }) : /* @__PURE__ */ k(ie, { children: [b !== void 0 && /* @__PURE__ */ O(n, {
@@ -642,8 +647,8 @@ function N(e, t) {
642
647
  gap: 2,
643
648
  px: 3,
644
649
  py: 2,
645
- ...ge,
646
- variant: [ge.variant, {
650
+ ...L,
651
+ variant: [L.variant, {
647
652
  disabled: d,
648
653
  invalid: h ?? X
649
654
  }],
@@ -652,13 +657,13 @@ function N(e, t) {
652
657
  "aria-labelledby": [b === void 0 ? void 0 : `${K}-label`, S].filter(Boolean).join(" ") || void 0,
653
658
  "aria-invalid": (h ?? X) || void 0,
654
659
  "aria-describedby": C,
655
- ...he
660
+ ..._e
656
661
  },
657
662
  children: [
658
663
  /* @__PURE__ */ O(te, {
659
664
  ...Q,
660
- value: V,
661
- onValueChange: (e, t) => Z(e, H, t.reason, t.event),
665
+ value: B,
666
+ onValueChange: (e, t) => Z(e, V, t.reason, t.event),
662
667
  name: g,
663
668
  props: { "aria-label": w },
664
669
  invalid: h ?? X
@@ -670,8 +675,8 @@ function N(e, t) {
670
675
  }),
671
676
  /* @__PURE__ */ O(te, {
672
677
  ...Q,
673
- value: H,
674
- onValueChange: (e, t) => Z(V, e, t.reason, t.event),
678
+ value: V,
679
+ onValueChange: (e, t) => Z(B, e, t.reason, t.event),
675
680
  name: y,
676
681
  props: { "aria-label": T },
677
682
  invalid: h ?? X
@@ -683,7 +688,7 @@ function N(e, t) {
683
688
  ms: "auto",
684
689
  children: [Se, /* @__PURE__ */ O(n, {
685
690
  tag: "button",
686
- ref: U,
691
+ ref: H,
687
692
  component: "datePicker.trigger",
688
693
  display: "inline-flex",
689
694
  ai: "center",
@@ -695,11 +700,11 @@ function N(e, t) {
695
700
  disabled: d || p,
696
701
  props: {
697
702
  type: "button",
698
- "aria-label": Y ? `${L}, ${Y}` : L,
699
- tabIndex: R,
700
- ...W
703
+ "aria-label": Y ? `${F}, ${Y}` : F,
704
+ tabIndex: I,
705
+ ...U
701
706
  },
702
- children: /* @__PURE__ */ O(A, {})
707
+ children: /* @__PURE__ */ O(ae, {})
703
708
  })]
704
709
  })
705
710
  ]
@@ -708,29 +713,29 @@ function N(e, t) {
708
713
  display: "flex",
709
714
  gap: 3,
710
715
  ai: "stretch",
711
- children: [me && me.length > 0 && /* @__PURE__ */ O(ce, {
712
- presets: me,
713
- isSelected: (e) => z !== null && e.start === z.start && e.end === z.end,
716
+ children: [ge && ge.length > 0 && /* @__PURE__ */ O(le, {
717
+ presets: ge,
718
+ isSelected: (e) => R !== null && e.start === R.start && e.end === R.end,
714
719
  onSelect: (e, t) => {
715
- Z(e.start, e.end, "preset", t), j && xe(t);
720
+ Z(e.start, e.end, "preset", t), A && xe(t);
716
721
  }
717
722
  }), /* @__PURE__ */ O(x, {
718
723
  mode: "range",
719
- months: N,
720
- value: z,
721
- defaultFocusedDate: V ?? void 0,
724
+ months: M,
725
+ value: R,
726
+ defaultFocusedDate: B ?? void 0,
722
727
  onValueChange: (e, t) => {
723
- Z(e?.start ?? null, e?.end ?? null, "select", t.event), j && e && t.event && xe(t.event);
728
+ Z(e?.start ?? null, e?.end ?? null, "select", t.event), A && e && t.event && xe(t.event);
724
729
  },
725
730
  min: c,
726
731
  max: l,
727
732
  isDateUnavailable: u,
728
733
  locale: s,
729
- firstDayOfWeek: se,
730
- weekNumbers: M
734
+ firstDayOfWeek: ce,
735
+ weekNumbers: j
731
736
  })]
732
737
  }))] });
733
738
  }
734
- var P = e(M, "DatePicker"), F = e(N, "DateRangePicker");
739
+ var N = e(j, "DatePicker"), P = e(M, "DateRangePicker");
735
740
  //#endregion
736
- export { F as DateRangePicker, P as default };
741
+ export { P as DateRangePicker, N as default };
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../client.cjs"),r=require("../effects.cjs"),i=require("../box.cjs"),a=require("../behavior.cjs"),o=require("../identity.cjs"),s=require("../reporting.cjs"),c=require("../motion.cjs"),l=require("./semantics.cjs");let u=require("react"),d=require("react/jsx-runtime");var f=0;function p(e){let{classNames:i,styleElements:a}=n.i({overflow:`hidden`},!1),o=i.slice(1).join(` `);return r.n(()=>{let n=t.n();if(!(!e||!n||!o))return f+=1,n.classList.add(o),()=>{--f,f===0&&n.classList.remove(o)}},[e,o]),a}var m=(0,u.createContext)(null);function h(e){let t=(0,u.useContext)(m);if(!t)throw Error(`<${e}> must be rendered inside a <Dialog>.`);return t}function g(e,t){return(0,d.jsx)(v,{role:`dialog`,...e,elementRef:t})}function _(e,t){return(0,d.jsx)(v,{role:`alertdialog`,...e,modal:!0,dismissible:!1,elementRef:t})}function v(e){let{role:n,trigger:l,children:f,open:h,defaultOpen:g=!1,onOpenChange:_,label:v,labelledBy:b,describedBy:x,modal:S=!0,dismissible:C=!0,lockScroll:w=S,initialFocus:T,elementRef:E,props:D,...O}=e,k=o.t(`dialog`),A=O.id??k,[j,M]=s.a({value:h,defaultValue:g,onChange:_,interaction:{component:n===`alertdialog`?`alertDialog`:`dialog`,type:`openChange`}}),[N,P]=(0,u.useState)(null),F=(0,u.useCallback)(e=>{P(e),t.d(E,e)},[E]),[I,L]=(0,u.useState)(null),[R,z]=(0,u.useState)(!1),[B,V]=(0,u.useState)({title:0,description:0}),H=p(j&&w);a.n({enabled:j,returnTo:I});let U=c.t(f,j,N),W=(0,u.useCallback)(e=>(V(t=>({...t,[e]:t[e]+1})),()=>V(t=>({...t,[e]:t[e]-1}))),[]),G=(0,u.useMemo)(()=>({titleId:`${A}-title`,descriptionId:`${A}-description`,register:W}),[A,W]);y({dialog:N,isOpen:j,domOpen:R,setDomOpen:z,setOpen:M,modal:S,dismissible:C,triggerElement:I}),r.n(()=>{let e=t.m(T);!j||!e||e.focus()},[j,T]);let K=a.a(e=>{M(e=>!e,{reason:`trigger`,event:e})}),q=(0,u.useMemo)(()=>({ref:L,props:{"aria-expanded":j,"aria-haspopup":`dialog`,"aria-controls":j?A:void 0,onClick:K}}),[A,K,j]),J=O;return(0,d.jsxs)(d.Fragment,{children:[H,l?.(q),(0,d.jsx)(m.Provider,{value:G,children:(0,d.jsx)(i.default,{ref:F,tag:`dialog`,component:`dialog`,...J,id:A,props:{role:n,"aria-label":B.title||b?void 0:v,"aria-labelledby":b??(B.title?G.titleId:void 0),"aria-describedby":x??(B.description?G.descriptionId:void 0),...D},children:U})})]})}function y(e){let{dialog:n,isOpen:i,domOpen:o,setDomOpen:s,setOpen:c,modal:l,dismissible:d,triggerElement:f}=e,p=(0,u.useRef)(`imperative`),m=t.s(),h=d?`any`:`closerequest`;r.n(()=>{!n||i===o||(s(i),i?l?n.showModal():n.show():n.close())},[n,i,o,l,s]),r.n(()=>{if(!(!n||!i||!l))return t.u(n,!0),()=>t.u(n,!1)},[n,i,l]),r.n(()=>{if(!n)return;let e=new AbortController;return n.addEventListener(`close`,e=>{s(!1),c(!1,{reason:p.current,event:e}),p.current=`imperative`},{signal:e.signal}),()=>e.abort()},[n,s,c]),r.n(()=>{if(!(!n||!m))return n.setAttribute(`closedby`,h),()=>n.removeAttribute(`closedby`)},[n,m,h]),r.n(()=>{if(!i||!n)return;let e=new AbortController,r=(t,n)=>document.addEventListener(t,n,{signal:e.signal,capture:!0});return r(`keydown`,e=>{e.key===`Escape`&&(p.current=`escape`)}),r(`pointerdown`,e=>{t.h(e,[f])?p.current=`trigger`:!t.h(e,[n])||b(n,e)?p.current=`outside-pointer`:p.current=`imperative`}),()=>e.abort()},[i,n,f]),a.r({enabled:i&&!l&&!m,inside:[n],escapeKey:!0,outsidePointer:!1,onDismiss:(e,t)=>c(!1,{reason:`escape`,event:t})}),r.n(()=>{if(!n||!i||!d||m)return;let e=new AbortController;return document.addEventListener(`pointerdown`,e=>{t.h(e,[f])||t.h(e,[n])&&!b(n,e)||c(!1,{reason:`outside-pointer`,event:e})},{signal:e.signal,capture:!0}),()=>e.abort()},[n,i,d,m,f,c])}function b(e,t){if(t.target!==e)return!1;let n=e.getBoundingClientRect();return t.clientX<n.left||t.clientX>n.right||t.clientY<n.top||t.clientY>n.bottom}function x(e){let t=h(`Dialog.Title`);return r.n(()=>t.register(`title`),[t]),(0,d.jsx)(l.H2,{id:t.titleId,component:`dialog.title`,...e})}function S(e){let t=h(`Dialog.Description`);return r.n(()=>t.register(`description`),[t]),(0,d.jsx)(l.P,{id:t.descriptionId,component:`dialog.description`,...e})}x.displayName=`Dialog.Title`,S.displayName=`Dialog.Description`;var C={Title:x,Description:S},w=Object.assign(e.f(g,`Dialog`),C),T=Object.assign(e.f(_,`AlertDialog`),C);exports.AlertDialog=T,exports.default=w;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../react-shared.cjs"),t=require("../platform.cjs"),n=require("../client.cjs"),r=require("../effects.cjs"),i=require("../box.cjs"),a=require("../behavior.cjs"),o=require("../identity.cjs"),s=require("../reporting.cjs"),c=require("../motion.cjs"),l=require("./semantics.cjs");let u=require("react"),d=require("react/jsx-runtime");var f=0;function p(e){let{classNames:i,styleElements:a}=n.i({overflow:`hidden`},!1),o=i.slice(1).join(` `);return r.n(()=>{let n=t.n();if(!(!e||!n||!o))return f+=1,n.classList.add(o),()=>{--f,f===0&&n.classList.remove(o)}},[e,o]),a}var m=(0,u.createContext)(null);function h(e){let t=(0,u.useContext)(m);if(!t)throw Error(`<${e}> must be rendered inside a <Dialog>.`);return t}function g(e,t){return(0,d.jsx)(v,{role:`dialog`,...e,elementRef:t})}function _(e,t){return(0,d.jsx)(v,{role:`alertdialog`,...e,modal:!0,dismissible:!1,elementRef:t})}function v(e){let{role:n,trigger:l,children:f,open:h,defaultOpen:g=!1,onOpenChange:_,label:v,labelledBy:b,describedBy:x,modal:S=!0,dismissible:C=!0,lockScroll:w=S,initialFocus:T,elementRef:E,props:D,...O}=e,k=o.t(`dialog`),A=O.id??k,[j,M]=s.a({value:h,defaultValue:g,onChange:_,interaction:{component:n===`alertdialog`?`alertDialog`:`dialog`,type:`openChange`}}),[N,P]=(0,u.useState)(null),F=(0,u.useCallback)(e=>{P(e),t.d(E,e)},[E]),[I,L]=(0,u.useState)(null),[R,z]=(0,u.useState)(!1),[B,V]=(0,u.useState)({title:0,description:0}),H=p(j&&w);a.n({enabled:j,returnTo:I});let U=c.t(f,j,N),W=(0,u.useCallback)(e=>(V(t=>({...t,[e]:t[e]+1})),()=>V(t=>({...t,[e]:t[e]-1}))),[]),G=(0,u.useMemo)(()=>({titleId:`${A}-title`,descriptionId:`${A}-description`,register:W}),[A,W]);y({dialog:N,isOpen:j,domOpen:R,setDomOpen:z,setOpen:M,modal:S,dismissible:C,triggerElement:I}),r.n(()=>{let e=t.h(T);!j||!e||e.focus()},[j,T]);let K=a.a(e=>{M(e=>!e,{reason:`trigger`,event:e})}),q=(0,u.useMemo)(()=>({ref:L,props:{"aria-expanded":j,"aria-haspopup":`dialog`,"aria-controls":j?A:void 0,onClick:K}}),[A,K,j]),J=O;return(0,d.jsxs)(d.Fragment,{children:[H,l?.(q),(0,d.jsx)(m.Provider,{value:G,children:(0,d.jsx)(i.default,{ref:F,tag:`dialog`,component:`dialog`,...J,id:A,props:{role:n,"aria-label":B.title||b?void 0:v,"aria-labelledby":b??(B.title?G.titleId:void 0),"aria-describedby":x??(B.description?G.descriptionId:void 0),...D},children:U})})]})}function y(e){let{dialog:n,isOpen:i,domOpen:o,setDomOpen:s,setOpen:c,modal:l,dismissible:d,triggerElement:f}=e,p=(0,u.useRef)(`imperative`),m=t.s(),h=d?`any`:`closerequest`;r.n(()=>{!n||i===o||(s(i),i?l?n.showModal():n.show():n.close())},[n,i,o,l,s]),r.n(()=>{if(!(!n||!i||!l))return t.u(n,!0),()=>t.u(n,!1)},[n,i,l]),r.n(()=>{if(!n)return;let e=new AbortController;return n.addEventListener(`close`,e=>{s(!1),c(!1,{reason:p.current,event:e}),p.current=`imperative`},{signal:e.signal}),()=>e.abort()},[n,s,c]),r.n(()=>{if(!(!n||!m))return n.setAttribute(`closedby`,h),()=>n.removeAttribute(`closedby`)},[n,m,h]),r.n(()=>{if(!i||!n)return;let e=new AbortController,r=(t,n)=>document.addEventListener(t,n,{signal:e.signal,capture:!0});return r(`keydown`,e=>{e.key===`Escape`&&(p.current=`escape`)}),r(`pointerdown`,e=>{t.g(e,[f])?p.current=`trigger`:!t.g(e,[n])||b(n,e)?p.current=`outside-pointer`:p.current=`imperative`}),()=>e.abort()},[i,n,f]),a.r({enabled:i&&!l&&!m,inside:[n],escapeKey:!0,outsidePointer:!1,onDismiss:(e,t)=>c(!1,{reason:`escape`,event:t})}),r.n(()=>{if(!n||!i||!d||m)return;let e=new AbortController;return document.addEventListener(`pointerdown`,e=>{t.g(e,[f])||t.g(e,[n])&&!b(n,e)||c(!1,{reason:`outside-pointer`,event:e})},{signal:e.signal,capture:!0}),()=>e.abort()},[n,i,d,m,f,c])}function b(e,t){if(t.target!==e)return!1;let n=e.getBoundingClientRect();return t.clientX<n.left||t.clientX>n.right||t.clientY<n.top||t.clientY>n.bottom}function x(e){let t=h(`Dialog.Title`);return r.n(()=>t.register(`title`),[t]),(0,d.jsx)(l.H2,{id:t.titleId,component:`dialog.title`,...e})}function S(e){let t=h(`Dialog.Description`);return r.n(()=>t.register(`description`),[t]),(0,d.jsx)(l.P,{id:t.descriptionId,component:`dialog.description`,...e})}x.displayName=`Dialog.Title`,S.displayName=`Dialog.Description`;var C={Title:x,Description:S},w=Object.assign(e.f(g,`Dialog`),C),T=Object.assign(e.f(_,`AlertDialog`),C);exports.AlertDialog=T,exports.default=w;
@@ -60,7 +60,7 @@ export interface DialogProps<TKey extends keyof ComponentsAndVariants = 'dialog'
60
60
  /**
61
61
  * Where focus lands on open, instead of the first focusable thing inside. An **alert dialog owes this to
62
62
  * its least destructive action** — APG's rule, so that a keyboard user cannot confirm a deletion by
63
- * reflex. An `autofocus` attribute inside does the same job with no ref.
63
+ * reflex. React's `autoFocus` is no substitute: it writes no attribute, and focuses while the dialog is closed.
64
64
  */
65
65
  initialFocus?: ElementLike;
66
66
  }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { f as e } from "../react-shared.mjs";
3
- import { d as t, h as n, m as r, n as i, s as a, u as o } from "../platform.mjs";
3
+ import { d as t, g as n, h as r, n as i, s as a, u as o } from "../platform.mjs";
4
4
  import { i as s } from "../client.mjs";
5
5
  import { n as c } from "../effects.mjs";
6
6
  import l from "../box.mjs";
@@ -1 +1 @@
1
- "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../effects.cjs"),t=require("../box.cjs"),n=require("../behavior.cjs"),r=require("../identity.cjs"),i=require("../reporting.cjs"),a=require("./baseSvg.cjs"),o=require("./button.cjs"),s=require("./flex.cjs"),c=require("./checkbox.cjs"),l=require("./overlay.cjs"),u=require("./presence.cjs"),d=require("./textbox.cjs");let f=require("react"),p=require("react/jsx-runtime");var m=(0,f.createContext)(null);function h(){let e=(0,f.useContext)(m);if(!e)throw Error(`Dropdown sub-components must be used within Dropdown`);return e}var ee={item:`dropdown.item`,unselect:`dropdown.unselect`,selectAll:`dropdown.selectAll`};function g({row:e,index:n}){let{valueToUse:r,multiple:i,variant:a,showCheckbox:o,selectRow:s,optionId:l,activeIndex:u,rowRef:d,isRowDisabled:f}=h(),m=e.kind===`item`,g=f(n),_=m?r.includes(e.element.props.value):e.kind===`unselect`&&r.length===0,{value:v,onClick:y,children:b,...x}=e.element.props,S=o&&i&&m;return(0,p.jsx)(t.default,{ref:d(n),component:ee[e.kind],variant:[a,m?{multiple:i,highlighted:n===u}:{highlighted:n===u}],selected:_,...x,id:l(n),children:S?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c.default,{readOnly:!0,checked:_,me:2,props:{tabIndex:-1,"aria-hidden":!0}}),b]}):b,props:{role:`option`,...g?{"aria-disabled":!0}:{},...x.props,onClick:g?void 0:e=>{y?.(e),s(n,e)}}})}var _=(0,f.memo)(g,(e,t)=>e.row.element===t.row.element&&e.index===t.index);function v(e,t,n){return e?{role:`listbox`,"aria-labelledby":n,...t?{"aria-multiselectable":!0}:{}}:{role:`status`}}function y(e){let{presence:n,rows:r,emptyItem:i,triggerRef:a,popupRef:o,listboxId:s,labelledBy:c,itemsProps:u}=e,{present:d,ref:m,props:ee}=n,{multiple:g,variant:y}=h(),[x,S]=(0,f.useState)(!1),te=(0,f.useCallback)(e=>S(e===`top`),[]);return(0,p.jsx)(l.default,{ref:o,anchor:a,side:`bottom`,align:`start`,offset:.5,onSideChange:te,children:(0,p.jsxs)(t.default,{ref:m,component:`dropdown.items`,...u,variant:[y,{closed:!d&&!x,closedUp:!d&&x}],id:s,props:{...v(r.length>0,g,c),...ee},children:[r.map((e,t)=>(0,p.jsx)(_,{row:e,index:t},b(e,t))),r.length===0&&i&&(0,p.jsx)(t.default,{component:`dropdown.emptyItem`,variant:y,...i.props})]})})}function b(e,t){return e.kind===`item`?e.element.props.value:`${e.kind}-${t}`}y.displayName=`DropdownItems`;function x({id:e,value:t,onValueChange:n,placeholder:r,inputRef:i,comboboxProps:a,onOpen:o}){let c=(0,f.useCallback)(e=>n(e.target.value),[n]),l=(0,f.useCallback)(e=>{e.stopPropagation(),o(e)},[o]);return(0,p.jsx)(s.default,{ai:`center`,position:`absolute`,inset:0,p:3,children:(0,p.jsx)(d.default,{clean:!0,id:e,value:t,placeholder:r,onChange:c,ref:i,color:`currentColor`,width:`fit`,props:{role:`combobox`,"aria-autocomplete":`list`,autoComplete:`off`,spellCheck:!1,...a,onClick:l}})})}function S(e){if(e==null)return``;if(typeof e==`object`){let t=e.props?.children;return t==null?``:typeof t==`object`?(Array.isArray(t)?t:[t]).map(e=>S(e)).join(``):t.toString()}return e.toString()}function te(e){return e==null?[]:Array.isArray(e)?e:[e]}function ne(e){let t=e?.props?.disabled;return(Array.isArray(t)?t[0]:t)===!0}function re(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey}var ie=new Set([` `,`Home`,`End`,`ArrowLeft`,`ArrowRight`]);function ae(c,l){let{name:h,defaultValue:ee,value:g,defaultOpen:_,multiple:v=!1,isSearchable:b,searchPlaceholder:ae,children:C,hideIcon:w,showCheckbox:oe=!1,label:T,labelProps:se,itemsProps:ce,iconProps:le,onValueChange:ue,onChange:de,props:fe,...E}=c,D=(0,f.useRef)(void 0),pe=n.a((e,t)=>{ue?.(v?e:e[0],t),de?.(D.current,e)}),me=`value`in c,he=(0,f.useMemo)(()=>me?te(g):void 0,[me,g]),[O,k]=i.a({value:he,defaultValue:()=>te(ee),onChange:pe,interaction:{component:`dropdown`,type:`valueChange`}}),[ge,_e]=(0,f.useState)(null),[A,ve]=i.a({defaultValue:!!_,interaction:{component:`dropdown`,type:`openChange`}}),j=(0,f.useRef)(null),ye=(0,f.useCallback)(e=>{j.current=e},[]),be=(0,f.useRef)(null),M=(0,f.useRef)(null),N=r.t(`dropdown`),P=E.id??`${N}-trigger`,xe=`${N}-listbox`,F=`${N}-label`,Se=T!=null&&T!==!1,Ce=(0,f.useCallback)(e=>`${N}-option-${e}`,[N]),I=n.a((e,t,n)=>ve(e,{reason:t,event:n})),L=n.a((e,t,n=!1)=>{I(!1,e,t),n||_e(null)}),R=(0,f.useMemo)(()=>(Array.isArray(C)?C:[C]).flatMap(e=>e).filter(Boolean),[C]),z=(0,f.useMemo)(()=>R.filter(e=>e.type?.displayName===`DropdownItem`),[R]),we=(0,f.useMemo)(()=>{let e=new Map;for(let t of z)e.set(t,S(t));return e},[z]),B=(0,f.useCallback)(e=>we.get(e)??S(e),[we]),Te=b?ge??``:``,V=(0,f.useMemo)(()=>Te?z.filter(e=>B(e).toLowerCase().includes(Te.toLowerCase())):z,[Te,z,B]),H=(0,f.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownUnselect`),[R]),U=(0,f.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownSelectAll`),[R]),Ee=(0,f.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownEmptyItem`),[R]),W=(0,f.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownDisplay`),[R]),G=(0,f.useMemo)(()=>!b||W?``:z.filter(e=>O.includes(e.props.value)).map(e=>B(e)).join(`, `),[b,W,z,O,B]),De=!!(U&&v&&V.length>O.length),Oe=!!(H&&V.length>0&&!De),K=(0,f.useMemo)(()=>{let e=[];Oe&&H&&e.push({kind:`unselect`,element:H}),De&&U&&e.push({kind:`selectAll`,element:U});for(let t of V)e.push({kind:`item`,element:t});return e},[Oe,H,De,U,V]),q=(0,f.useCallback)(e=>ne(K[e]?.element),[K]),ke=(0,f.useCallback)(e=>{let t=K[e];return t?B(t.element):``},[K,B]),Ae=(0,f.useMemo)(()=>{if(b&&(A||G!==``))return null;if(W)return typeof W.props.children==`function`?W.props.children(O,A):W.props.children;let e=V.filter(e=>O.includes(e.props.value));if(v&&e.length>1)return e.map(e=>B(e)).join(`, `);let t=e.at(0);return t?.props.children??t?.props.value??(v?null:H?.props.children)},[v,V,O,H,A,b,G,W,B]),je=(0,f.useCallback)((e,...t)=>{if(t.length===0)D.current=void 0,k([],{reason:`clear`,event:e});else if(v&&t.length>1)D.current=void 0,k(t.map(e=>e.props.value),{reason:`select-all`,event:e});else if(t.length===1){let n=t[0];if(D.current=n.props.value,v){let t=O.filter(e=>e!==n.props.value),r=t.length!==O.length;r||t.push(n.props.value),k(t,{reason:r?`deselect`:`select`,event:e})}else k([n.props.value],{reason:`select`,event:e})}e.stopPropagation(),v?b&&setTimeout(()=>M.current?.focus(),0):L(`select`,e)},[v,b,O,k,L]),J=n.a((e,t)=>{let n=K[e];!n||q(e)||(n.kind===`unselect`?je(t):n.kind===`selectAll`?je(t,...z):je(t,n.element))}),Me=e=>{let t=e===`first`?1:-1;for(let n=e===`first`?0:K.length-1;n>=0&&n<K.length;n+=t)if(!q(n))return n;return-1},Y=e=>{let t=K.findIndex(e=>e.kind===`item`&&O.includes(e.element.props.value));return t!==-1&&!q(t)?t:e===`none`?-1:Me(e)},X=n.t({count:K.length,focusItems:!1,defaultActiveIndex:_?Y(`none`):-1,isDisabled:q,textOf:b?void 0:ke,onSelect:J}),Ne=X.setActiveIndex,Pe=(0,f.useCallback)(e=>Ne(-1,{reason:`programmatic`,event:e}),[Ne]);n.r({enabled:A,inside:[j,be],onDismiss:(e,t)=>L(e,t,e===`escape`)}),n.n({enabled:A,returnTo:b?M:j}),(0,f.useEffect)(()=>{A&&M.current?.focus()},[A]);let Z=X.activeIndex,Fe=X.activeItem;e.n(()=>{!A||Z===-1||Fe()?.scrollIntoView?.({block:`nearest`})},[A,Z,Fe]);let Q=(e,t)=>{I(!0,t.type===`keydown`?`keyboard`:`trigger`,t),X.setActiveIndex(e,{reason:`programmatic`,event:t})},Ie=n.a(e=>{A?L(`trigger`,e):Q(Y(`none`),e)}),Le=n.a(e=>{A||Q(Y(`none`),e)}),Re=n.a(e=>{_e(e),A||I(!0,`input`),Pe()}),ze=e=>{let{key:t}=e;if(b){if(t===`ArrowDown`||t===`ArrowUp`){e.preventDefault(),Q(Y(t===`ArrowUp`?`last`:e.altKey?`none`:`first`),e);return}t===`Escape`&&_e(``);return}if(t===`ArrowDown`||t===`Enter`||t===` `){e.preventDefault(),Q(Y(e.altKey?`none`:`first`),e);return}if(t===`ArrowUp`){e.preventDefault(),Q(Y(`last`),e);return}if(t===`Home`||t===`End`){e.preventDefault(),Q(Me(t===`Home`?`first`:`last`),e);return}re(e)&&(I(!0,`input`,e),X.onKeyDown(e))},Be=n.a(e=>{if(fe?.onKeyDown?.(e),!e.defaultPrevented){if(!A){ze(e);return}if(e.key===`Tab`){!v&&X.activeIndex!==-1&&J(X.activeIndex,e),L(`tab`,e);return}if(e.altKey&&e.key===`ArrowUp`){e.preventDefault(),X.activeIndex!==-1&&J(X.activeIndex,e),L(`keyboard`,e);return}if(b&&ie.has(e.key)){Pe(e);return}X.onKeyDown(e)}}),$=K.length>0||!!Ee,Ve=A&&Z!==-1&&$?Ce(Z):void 0,He=X.itemProps,Ue=(0,f.useMemo)(()=>({valueToUse:O,multiple:v,variant:E.variant,showCheckbox:oe,selectRow:J,optionId:Ce,activeIndex:Z,rowRef:e=>He(e).ref,isRowDisabled:q}),[O,v,E.variant,oe,J,Ce,Z,He,q]),We={"aria-expanded":A,"aria-controls":A&&$?xe:void 0,"aria-activedescendant":Ve,"aria-labelledby":Se?F:void 0,...fe,onKeyDown:Be},Ge=O.map(e=>{let t=JSON.stringify(e);return(0,p.jsx)(d.default,{ref:l,name:h,type:`hidden`,value:t??``},t)}),Ke=!w&&(0,p.jsx)(s.default,{component:`dropdown.icon`,...le,children:(0,p.jsx)(a.default,{viewBox:`0 0 10 6`,width:`0.6rem`,rotate:A?180:0,children:(0,p.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`m1 1 4 4 4-4`})})}),qe=$&&(0,p.jsx)(u.default,{present:A,children:e=>(0,p.jsx)(y,{presence:e,rows:K,emptyItem:Ee,triggerRef:j,popupRef:be,listboxId:xe,labelledBy:Se?F:P,itemsProps:ce})}),Je=b?(0,p.jsxs)(t.default,{ref:ye,component:`dropdown`,props:{onClick:Ie},position:`relative`,pe:w?void 0:6,minWidth:A?36:void 0,width:`fit-content`,...E,id:void 0,children:[Ge,(0,p.jsx)(x,{id:P,value:ge??G,onValueChange:Re,placeholder:A?ae:void 0,inputRef:M,comboboxProps:We,onOpen:Le}),Ae??(0,p.jsx)(t.default,{tag:`span`,visibility:`hidden`,children:G||`\xA0`}),Ke]}):(0,p.jsxs)(o.default,{ref:ye,onClick:Ie,component:`dropdown`,type:`button`,props:{tabIndex:0,role:`combobox`,...We},position:`relative`,pe:w?void 0:6,width:`fit-content`,...E,id:P,children:[Ge,Ae??`\xA0`,Ke]});return(0,p.jsx)(m.Provider,{value:Ue,children:Se?(0,p.jsxs)(s.default,{d:`column`,gap:1,width:`fit-content`,...se,children:[(0,p.jsx)(t.default,{tag:`span`,id:F,children:T}),Je,qe]}):(0,p.jsxs)(p.Fragment,{children:[Je,qe]})})}function C(e){let t=e=>null;return t.displayName=e,t}var w=(0,f.forwardRef)(ae);w.Item=C(`DropdownItem`),w.Unselect=C(`DropdownUnselect`),w.SelectAll=C(`DropdownSelectAll`),w.EmptyItem=C(`DropdownEmptyItem`),w.Display=C(`DropdownDisplay`),w.displayName=`Dropdown`,exports.default=w;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../effects.cjs"),t=require("../box.cjs"),n=require("../behavior.cjs"),r=require("../identity.cjs"),i=require("../reporting.cjs"),a=require("./baseSvg.cjs"),o=require("./button.cjs"),s=require("./flex.cjs"),c=require("./checkbox.cjs"),l=require("./overlay.cjs"),u=require("./presence.cjs"),d=require("./textbox.cjs");let f=require("react"),p=require("react/jsx-runtime");var m=(0,f.createContext)(null);function h(){let e=(0,f.useContext)(m);if(!e)throw Error(`Dropdown sub-components must be used within Dropdown`);return e}var ee={item:`dropdown.item`,unselect:`dropdown.unselect`,selectAll:`dropdown.selectAll`};function g({row:e,index:n}){let{valueToUse:r,multiple:i,variant:a,showCheckbox:o,selectRow:s,optionId:l,activeIndex:u,rowRef:d,isRowDisabled:f}=h(),m=e.kind===`item`,g=f(n),_=m?r.includes(e.element.props.value):e.kind===`unselect`&&r.length===0,{value:v,onClick:y,children:b,...x}=e.element.props,S=o&&i&&m;return(0,p.jsx)(t.default,{ref:d(n),component:ee[e.kind],variant:[a,m?{multiple:i,highlighted:n===u}:{highlighted:n===u}],selected:_,...x,id:l(n),children:S?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(c.default,{readOnly:!0,checked:_,me:2,props:{tabIndex:-1,"aria-hidden":!0}}),b]}):b,props:{role:`option`,...g?{"aria-disabled":!0}:{},...x.props,onClick:g?void 0:e=>{y?.(e),s(n,e)}}})}var _=(0,f.memo)(g,(e,t)=>e.row.element===t.row.element&&e.index===t.index);function v(e,t,n){return e?{role:`listbox`,"aria-labelledby":n,...t?{"aria-multiselectable":!0}:{}}:{role:`status`}}function y(e){let{presence:n,rows:r,emptyItem:i,triggerRef:a,popupRef:o,listboxId:s,labelledBy:c,itemsProps:u}=e,{present:d,ref:m,props:ee}=n,{multiple:g,variant:y}=h(),[x,S]=(0,f.useState)(!1),te=(0,f.useCallback)(e=>S(e===`top`),[]);return(0,p.jsx)(l.default,{ref:o,anchor:a,side:`bottom`,align:`start`,offset:.5,onSideChange:te,children:(0,p.jsxs)(t.default,{ref:m,component:`dropdown.items`,...u,variant:[y,{closed:!d&&!x,closedUp:!d&&x}],id:s,props:{...v(r.length>0,g,c),...ee},children:[r.map((e,t)=>(0,p.jsx)(_,{row:e,index:t},b(e,t))),r.length===0&&i&&(0,p.jsx)(t.default,{component:`dropdown.emptyItem`,variant:y,...i.props})]})})}function b(e,t){return e.kind===`item`?e.element.props.value:`${e.kind}-${t}`}y.displayName=`DropdownItems`;function x({id:e,value:t,onValueChange:n,placeholder:r,inputRef:i,comboboxProps:a,onOpen:o}){let c=(0,f.useCallback)(e=>n(e.target.value),[n]),l=(0,f.useCallback)(e=>{e.stopPropagation(),o(e)},[o]);return(0,p.jsx)(s.default,{ai:`center`,position:`absolute`,inset:0,p:3,children:(0,p.jsx)(d.default,{clean:!0,id:e,value:t,placeholder:r,onChange:c,ref:i,color:`currentColor`,width:`fit`,props:{role:`combobox`,"aria-autocomplete":`list`,autoComplete:`off`,spellCheck:!1,...a,onClick:l}})})}function S(e){if(e==null)return``;if(typeof e==`object`){let t=e.props?.children;return t==null?``:typeof t==`object`?(Array.isArray(t)?t:[t]).map(e=>S(e)).join(``):t.toString()}return e.toString()}function te(e){return e==null?[]:Array.isArray(e)?e:[e]}function ne(e){let t=e?.props?.disabled;return(Array.isArray(t)?t[0]:t)===!0}function re(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey}var ie=new Set([` `,`Home`,`End`,`ArrowLeft`,`ArrowRight`]);function ae(c,l){let{name:h,defaultValue:ee,value:g,defaultOpen:_,multiple:v=!1,isSearchable:b,searchPlaceholder:ae,children:C,hideIcon:w,showCheckbox:oe=!1,label:T,labelProps:se,itemsProps:ce,iconProps:le,onValueChange:ue,onChange:de,props:fe,...E}=c,D=(0,f.useRef)(void 0),pe=n.a((e,t)=>{ue?.(v?e:e[0],t),de?.(D.current,e)}),me=`value`in c,he=(0,f.useMemo)(()=>me?te(g):void 0,[me,g]),[O,k]=i.a({value:he,defaultValue:()=>te(ee),onChange:pe,interaction:{component:`dropdown`,type:`valueChange`}}),[ge,_e]=(0,f.useState)(null),[A,ve]=i.a({defaultValue:!!_,interaction:{component:`dropdown`,type:`openChange`}}),j=(0,f.useRef)(null),ye=(0,f.useCallback)(e=>{j.current=e},[]),be=(0,f.useRef)(null),M=(0,f.useRef)(null),N=r.t(`dropdown`),P=E.id??`${N}-trigger`,xe=`${N}-listbox`,F=`${N}-label`,Se=T!=null&&T!==!1,Ce=(0,f.useCallback)(e=>`${N}-option-${e}`,[N]),I=n.a((e,t,n)=>ve(e,{reason:t,event:n})),L=n.a((e,t,n=!1)=>{I(!1,e,t),n||_e(null)}),R=(0,f.useMemo)(()=>(Array.isArray(C)?C:[C]).flatMap(e=>e).filter(Boolean),[C]),z=(0,f.useMemo)(()=>R.filter(e=>e.type?.displayName===`DropdownItem`),[R]),we=(0,f.useMemo)(()=>{let e=new Map;for(let t of z)e.set(t,S(t));return e},[z]),B=(0,f.useCallback)(e=>we.get(e)??S(e),[we]),Te=b?ge??``:``,V=(0,f.useMemo)(()=>Te?z.filter(e=>B(e).toLowerCase().includes(Te.toLowerCase())):z,[Te,z,B]),H=(0,f.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownUnselect`),[R]),U=(0,f.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownSelectAll`),[R]),Ee=(0,f.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownEmptyItem`),[R]),W=(0,f.useMemo)(()=>R.find(e=>e.type?.displayName===`DropdownDisplay`),[R]),G=(0,f.useMemo)(()=>!b||W?``:z.filter(e=>O.includes(e.props.value)).map(e=>B(e)).join(`, `),[b,W,z,O,B]),De=!!(U&&v&&V.length>O.length),Oe=!!(H&&V.length>0&&!De),K=(0,f.useMemo)(()=>{let e=[];Oe&&H&&e.push({kind:`unselect`,element:H}),De&&U&&e.push({kind:`selectAll`,element:U});for(let t of V)e.push({kind:`item`,element:t});return e},[Oe,H,De,U,V]),q=(0,f.useCallback)(e=>ne(K[e]?.element),[K]),ke=(0,f.useCallback)(e=>{let t=K[e];return t?B(t.element):``},[K,B]),Ae=(0,f.useMemo)(()=>{if(b&&(A||G!==``))return null;if(W)return typeof W.props.children==`function`?W.props.children(O,A):W.props.children;let e=V.filter(e=>O.includes(e.props.value));if(v&&e.length>1)return e.map(e=>B(e)).join(`, `);let t=e.at(0);return t?.props.children??t?.props.value??(v?null:H?.props.children)},[v,V,O,H,A,b,G,W,B]),je=(0,f.useCallback)((e,...t)=>{if(t.length===0)D.current=void 0,k([],{reason:`clear`,event:e});else if(v&&t.length>1)D.current=void 0,k(t.map(e=>e.props.value),{reason:`select-all`,event:e});else if(t.length===1){let n=t[0];if(D.current=n.props.value,v){let t=O.filter(e=>e!==n.props.value),r=t.length!==O.length;r||t.push(n.props.value),k(t,{reason:r?`deselect`:`select`,event:e})}else k([n.props.value],{reason:`select`,event:e})}e.stopPropagation(),v?b&&setTimeout(()=>M.current?.focus(),0):L(`select`,e)},[v,b,O,k,L]),J=n.a((e,t)=>{let n=K[e];!n||q(e)||(n.kind===`unselect`?je(t):n.kind===`selectAll`?je(t,...z):je(t,n.element))}),Me=e=>{let t=e===`first`?1:-1;for(let n=e===`first`?0:K.length-1;n>=0&&n<K.length;n+=t)if(!q(n))return n;return-1},Y=e=>{let t=K.findIndex(e=>e.kind===`item`&&O.includes(e.element.props.value));return t!==-1&&!q(t)?t:e===`none`?-1:Me(e)},X=n.t({count:K.length,focusItems:!1,defaultActiveIndex:_?Y(`none`):-1,isDisabled:q,textOf:b?void 0:ke,onSelect:J}),Ne=X.setActiveIndex,Pe=(0,f.useCallback)(e=>Ne(-1,{reason:`programmatic`,event:e}),[Ne]);n.r({enabled:A,inside:[j,be],onDismiss:(e,t)=>L(e,t,e===`escape`)}),n.n({enabled:A,returnTo:b?M:j}),(0,f.useEffect)(()=>{A&&M.current?.focus()},[A]);let Z=X.activeIndex,Fe=X.activeItem;e.n(()=>{!A||Z===-1||Fe()?.scrollIntoView?.({block:`nearest`})},[A,Z,Fe]);let Q=(e,t)=>{I(!0,t.type===`keydown`?`keyboard`:`trigger`,t),X.setActiveIndex(e,{reason:`programmatic`,event:t})},Ie=n.a(e=>{A?L(`trigger`,e):Q(Y(`none`),e)}),Le=n.a(e=>{A||Q(Y(`none`),e)}),Re=n.a(e=>{_e(e),A||I(!0,`input`),Pe()}),ze=e=>{let{key:t}=e;if(b){if(t===`ArrowDown`||t===`ArrowUp`){e.preventDefault(),Q(Y(t===`ArrowUp`?`last`:e.altKey?`none`:`first`),e);return}t===`Escape`&&_e(``);return}if(t===`ArrowDown`||t===`Enter`||t===` `){e.preventDefault(),Q(Y(e.altKey?`none`:`first`),e);return}if(t===`ArrowUp`){e.preventDefault(),Q(Y(`last`),e);return}if(t===`Home`||t===`End`){e.preventDefault(),Q(Me(t===`Home`?`first`:`last`),e);return}re(e)&&(I(!0,`input`,e),X.onKeyDown(e))},Be=n.a(e=>{if(fe?.onKeyDown?.(e),!e.defaultPrevented){if(!A){ze(e);return}if(e.key===`Tab`){!v&&X.activeIndex!==-1&&J(X.activeIndex,e),L(`tab`,e);return}if(e.altKey&&e.key===`ArrowUp`){e.preventDefault(),X.activeIndex!==-1&&J(X.activeIndex,e),L(`keyboard`,e);return}if(b&&ie.has(e.key)){Pe(e);return}X.onKeyDown(e)}}),$=K.length>0||!!Ee,Ve=A&&Z!==-1&&$?Ce(Z):void 0,He=X.itemProps,Ue=(0,f.useMemo)(()=>({valueToUse:O,multiple:v,variant:E.variant,showCheckbox:oe,selectRow:J,optionId:Ce,activeIndex:Z,rowRef:e=>He(e).ref,isRowDisabled:q}),[O,v,E.variant,oe,J,Ce,Z,He,q]),We={"aria-expanded":A,"aria-controls":A&&$?xe:void 0,"aria-activedescendant":Ve,"aria-labelledby":Se?F:void 0,...fe,onKeyDown:Be},Ge=O.map(e=>{let t=JSON.stringify(e);return(0,p.jsx)(d.default,{ref:l,name:h,type:`hidden`,value:t??``},t)}),Ke=!w&&(0,p.jsx)(s.default,{component:`dropdown.icon`,...le,children:(0,p.jsx)(a.default,{viewBox:`0 0 10 6`,width:`0.6rem`,rotate:A?180:0,children:(0,p.jsx)(`path`,{stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`m1 1 4 4 4-4`})})}),qe=$&&(0,p.jsx)(u.default,{present:A,children:e=>(0,p.jsx)(y,{presence:e,rows:K,emptyItem:Ee,triggerRef:j,popupRef:be,listboxId:xe,labelledBy:Se?F:P,itemsProps:ce})}),Je=b?(0,p.jsxs)(t.default,{ref:ye,component:`dropdown`,props:{onClick:Ie},position:`relative`,display:`inline-flex`,ai:`center`,pe:w?void 0:6,minWidth:A?36:void 0,width:`fit-content`,...E,id:void 0,children:[Ge,(0,p.jsx)(x,{id:P,value:ge??G,onValueChange:Re,placeholder:A?ae:void 0,inputRef:M,comboboxProps:We,onOpen:Le}),(0,p.jsx)(t.default,{tag:`span`,overflow:`hidden`,textOverflow:`ellipsis`,minWidth:0,visibility:Ae==null?`hidden`:void 0,children:Ae??(G||`\xA0`)}),Ke]}):(0,p.jsxs)(o.default,{ref:ye,onClick:Ie,component:`dropdown`,type:`button`,props:{tabIndex:0,role:`combobox`,...We},position:`relative`,pe:w?void 0:6,width:`fit-content`,...E,id:P,children:[Ge,Ae??`\xA0`,Ke]});return(0,p.jsx)(m.Provider,{value:Ue,children:Se?(0,p.jsxs)(s.default,{d:`column`,gap:1,width:`fit-content`,...se,children:[(0,p.jsx)(t.default,{tag:`span`,id:F,children:T}),Je,qe]}):(0,p.jsxs)(p.Fragment,{children:[Je,qe]})})}function C(e){let t=e=>null;return t.displayName=e,t}var w=(0,f.forwardRef)(ae);w.Item=C(`DropdownItem`),w.Unselect=C(`DropdownUnselect`),w.SelectAll=C(`DropdownSelectAll`),w.EmptyItem=C(`DropdownEmptyItem`),w.Display=C(`DropdownDisplay`),w.displayName=`Dropdown`,exports.default=w;
@@ -432,6 +432,8 @@ function E(u, te) {
432
432
  component: "dropdown",
433
433
  props: { onClick: We },
434
434
  position: "relative",
435
+ display: "inline-flex",
436
+ ai: "center",
435
437
  pe: T ? void 0 : 6,
436
438
  minWidth: N ? 36 : void 0,
437
439
  width: "fit-content",
@@ -448,10 +450,13 @@ function E(u, te) {
448
450
  comboboxProps: $e,
449
451
  onOpen: Ge
450
452
  }),
451
- Re ?? /* @__PURE__ */ b(t, {
453
+ /* @__PURE__ */ b(t, {
452
454
  tag: "span",
453
- visibility: "hidden",
454
- children: K || "\xA0"
455
+ overflow: "hidden",
456
+ textOverflow: "ellipsis",
457
+ minWidth: 0,
458
+ visibility: Re == null ? "hidden" : void 0,
459
+ children: Re ?? (K || "\xA0")
455
460
  }),
456
461
  tt
457
462
  ]