@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.
- package/.claude/rules/box-kite-rules.md +6 -2
- package/.claude/skills/box-kite/SKILL.md +19 -15
- package/.claude/skills/box-kite/references/patterns.md +1 -1
- package/.claude/skills/box-kite/references/styling.md +3 -3
- package/.cursor/rules/box-kite.mdc +7 -3
- package/AGENTS.md +7 -3
- package/BOX_AI_CONTEXT.md +81 -41
- package/BOX_KITE_AI_CONTEXT.md +81 -41
- package/README.md +13 -7
- package/behavior.cjs +1 -1
- package/behavior.mjs +1 -1
- package/box.cjs +1 -1
- package/box.d.ts +1 -0
- package/box.mjs +1 -1
- package/catalog.cjs +1 -1
- package/catalog.mjs +4 -1
- package/client.cjs +1 -1
- package/client.mjs +14 -14
- package/components/calendar.cjs +1 -1
- package/components/calendar.mjs +21 -20
- package/components/dashboard.cjs +1 -1
- package/components/dashboard.mjs +12 -12
- package/components/dataGrid/components/dataGridFooter.d.ts +6 -2
- package/components/dataGrid/models/gridModel.d.ts +21 -2
- package/components/dataGrid/models/groupRowModel.d.ts +1 -1
- package/components/dataGrid/models/rowModel.d.ts +1 -1
- package/components/dataGrid/models/sourceGroupRowModel.d.ts +5 -1
- package/components/dataGrid/models/sourceRowModel.d.ts +5 -1
- package/components/dataGrid.cjs +3 -3
- package/components/dataGrid.mjs +821 -771
- package/components/dateField.cjs +1 -1
- package/components/dateField.mjs +6 -6
- package/components/datePicker.cjs +1 -1
- package/components/datePicker.mjs +116 -111
- package/components/dialog.cjs +1 -1
- package/components/dialog.d.ts +1 -1
- package/components/dialog.mjs +1 -1
- package/components/dropdown.cjs +1 -1
- package/components/dropdown.mjs +8 -3
- package/components/menu.cjs +1 -1
- package/components/menu.mjs +10 -10
- package/components/overlay.cjs +1 -1
- package/components/overlay.mjs +6 -6
- package/components/popover.cjs +1 -1
- package/components/popover.d.ts +8 -2
- package/components/popover.mjs +58 -55
- package/components/slider.cjs +1 -1
- package/components/slider.mjs +8 -8
- package/components/sortableList.cjs +1 -1
- package/components/sortableList.mjs +1 -1
- package/components/svg.d.ts +2 -2
- package/components/swipeItem.cjs +1 -1
- package/components/swipeItem.mjs +11 -11
- package/components/tabs.cjs +1 -1
- package/components/tabs.mjs +9 -9
- package/dataGridList.cjs +1 -1
- package/dataGridList.mjs +3 -5
- package/docs/props.md +49 -25
- package/interactionListening.cjs +1 -1
- package/interactionListening.mjs +3 -3
- package/layer.cjs +1 -1
- package/layer.mjs +1 -1
- package/package.json +5 -5
- package/placement.cjs +1 -1
- package/placement.mjs +1 -1
- package/platform.cjs +1 -1
- package/platform.mjs +16 -11
- package/react-shared.cjs +1 -1
- package/react-shared.mjs +1 -1
- package/rsc.cjs +1 -1
- package/rsc.d.ts +1 -0
- package/rsc.mjs +1 -1
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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:
|
|
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 =
|
|
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:
|
|
357
|
-
defaultOpen:
|
|
358
|
-
onOpenChange:
|
|
359
|
-
side:
|
|
360
|
-
align:
|
|
361
|
-
matchWidth:
|
|
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 =
|
|
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
|
-
}),
|
|
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
|
-
}),
|
|
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:
|
|
411
|
+
tabIndex: z,
|
|
408
412
|
...Se
|
|
409
413
|
},
|
|
410
|
-
children: O(r === "time" ?
|
|
411
|
-
}), Re =
|
|
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":
|
|
426
|
-
tabIndex:
|
|
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(
|
|
433
|
-
}), ze = Y !== null && (C != null && f(Y, C) < 0 || w != null && f(Y, w) > 0), Be =
|
|
434
|
-
frame:
|
|
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:
|
|
441
|
-
labelledBy:
|
|
442
|
-
describedBy:
|
|
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" ?
|
|
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:
|
|
454
|
+
tabIndex: z,
|
|
451
455
|
inputs: [{
|
|
452
|
-
name:
|
|
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
|
-
...
|
|
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:
|
|
481
|
-
label:
|
|
482
|
-
labelledBy:
|
|
483
|
-
describedBy:
|
|
484
|
-
showZone:
|
|
485
|
-
tabIndex:
|
|
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
|
-
|
|
494
|
-
presets:
|
|
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
|
-
}),
|
|
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:
|
|
512
|
-
weekNumbers:
|
|
515
|
+
firstDayOfWeek: F,
|
|
516
|
+
weekNumbers: he
|
|
513
517
|
}),
|
|
514
|
-
r !== "date" && /* @__PURE__ */ O(
|
|
518
|
+
r !== "date" && /* @__PURE__ */ O(ce, {
|
|
515
519
|
value: Oe,
|
|
516
|
-
step:
|
|
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:
|
|
526
|
+
emptyLabel: L,
|
|
523
527
|
separated: r === "datetime",
|
|
524
528
|
onSelect: Ie
|
|
525
529
|
})
|
|
526
530
|
]
|
|
527
531
|
}))] });
|
|
528
532
|
}
|
|
529
|
-
function
|
|
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:
|
|
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
|
-
}), [
|
|
540
|
-
start:
|
|
541
|
-
end:
|
|
542
|
-
source:
|
|
543
|
-
}), { start:
|
|
544
|
-
|
|
545
|
-
start:
|
|
546
|
-
end:
|
|
547
|
-
source:
|
|
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:
|
|
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:
|
|
555
|
-
align:
|
|
556
|
-
matchWidth:
|
|
557
|
-
label: typeof b == "string" ? b :
|
|
558
|
-
|
|
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
|
-
|
|
568
|
+
z({
|
|
564
569
|
start: e,
|
|
565
570
|
end: t,
|
|
566
571
|
source: i
|
|
567
|
-
}),
|
|
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:
|
|
583
|
-
}, Se =
|
|
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":
|
|
597
|
-
tabIndex:
|
|
601
|
+
"aria-label": he,
|
|
602
|
+
tabIndex: I,
|
|
598
603
|
onClick: (e) => Z(null, null, "clear", e)
|
|
599
604
|
},
|
|
600
|
-
children: /* @__PURE__ */ O(
|
|
601
|
-
}), Ce =
|
|
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
|
-
...
|
|
604
|
-
props:
|
|
608
|
+
...L,
|
|
609
|
+
props: _e
|
|
605
610
|
},
|
|
606
611
|
attachField: q,
|
|
607
|
-
attachTrigger: p ? void 0 :
|
|
608
|
-
triggerAttributes: p ? void 0 :
|
|
609
|
-
triggerElement:
|
|
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:
|
|
616
|
-
icon: /* @__PURE__ */ O(
|
|
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:
|
|
626
|
+
tabIndex: I,
|
|
622
627
|
inputs: [{
|
|
623
628
|
name: g,
|
|
624
|
-
value:
|
|
629
|
+
value: R?.start ?? ""
|
|
625
630
|
}, {
|
|
626
631
|
name: y,
|
|
627
|
-
value:
|
|
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
|
-
...
|
|
646
|
-
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
|
-
...
|
|
660
|
+
..._e
|
|
656
661
|
},
|
|
657
662
|
children: [
|
|
658
663
|
/* @__PURE__ */ O(te, {
|
|
659
664
|
...Q,
|
|
660
|
-
value:
|
|
661
|
-
onValueChange: (e, t) => Z(e,
|
|
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:
|
|
674
|
-
onValueChange: (e, t) => Z(
|
|
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:
|
|
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 ? `${
|
|
699
|
-
tabIndex:
|
|
700
|
-
...
|
|
703
|
+
"aria-label": Y ? `${F}, ${Y}` : F,
|
|
704
|
+
tabIndex: I,
|
|
705
|
+
...U
|
|
701
706
|
},
|
|
702
|
-
children: /* @__PURE__ */ O(
|
|
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: [
|
|
712
|
-
presets:
|
|
713
|
-
isSelected: (e) =>
|
|
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),
|
|
720
|
+
Z(e.start, e.end, "preset", t), A && xe(t);
|
|
716
721
|
}
|
|
717
722
|
}), /* @__PURE__ */ O(x, {
|
|
718
723
|
mode: "range",
|
|
719
|
-
months:
|
|
720
|
-
value:
|
|
721
|
-
defaultFocusedDate:
|
|
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),
|
|
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:
|
|
730
|
-
weekNumbers:
|
|
734
|
+
firstDayOfWeek: ce,
|
|
735
|
+
weekNumbers: j
|
|
731
736
|
})]
|
|
732
737
|
}))] });
|
|
733
738
|
}
|
|
734
|
-
var
|
|
739
|
+
var N = e(j, "DatePicker"), P = e(M, "DateRangePicker");
|
|
735
740
|
//#endregion
|
|
736
|
-
export {
|
|
741
|
+
export { P as DateRangePicker, N as default };
|
package/components/dialog.cjs
CHANGED
|
@@ -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.
|
|
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;
|
package/components/dialog.d.ts
CHANGED
|
@@ -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.
|
|
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
|
}
|
package/components/dialog.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { f as e } from "../react-shared.mjs";
|
|
3
|
-
import { d as t,
|
|
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";
|
package/components/dropdown.cjs
CHANGED
|
@@ -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;
|
package/components/dropdown.mjs
CHANGED
|
@@ -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
|
-
|
|
453
|
+
/* @__PURE__ */ b(t, {
|
|
452
454
|
tag: "span",
|
|
453
|
-
|
|
454
|
-
|
|
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
|
]
|