@charcoal-ui/react 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/_lib/compat.d.ts +13 -13
  2. package/dist/_lib/index.d.ts +25 -25
  3. package/dist/components/Button/index.d.ts +21 -21
  4. package/dist/components/Button/index.story.d.ts +35 -35
  5. package/dist/components/Checkbox/index.d.ts +20 -20
  6. package/dist/components/Checkbox/index.story.d.ts +15 -15
  7. package/dist/components/Clickable/index.d.ts +18 -18
  8. package/dist/components/Clickable/index.story.d.ts +8 -8
  9. package/dist/components/DropdownSelector/Listbox.d.ts +9 -9
  10. package/dist/components/DropdownSelector/Popover.d.ts +9 -9
  11. package/dist/components/DropdownSelector/index.d.ts +31 -31
  12. package/dist/components/DropdownSelector/index.story.d.ts +21 -21
  13. package/dist/components/FieldLabel/index.d.ts +10 -10
  14. package/dist/components/Icon/index.d.ts +11 -11
  15. package/dist/components/Icon/index.story.d.ts +23 -23
  16. package/dist/components/IconButton/index.d.ts +13 -13
  17. package/dist/components/IconButton/index.story.d.ts +28 -28
  18. package/dist/components/LoadingSpinner/index.d.ts +14 -14
  19. package/dist/components/LoadingSpinner/index.story.d.ts +9 -9
  20. package/dist/components/Modal/ModalPlumbing.d.ts +4 -4
  21. package/dist/components/Modal/index.d.ts +41 -17
  22. package/dist/components/Modal/index.d.ts.map +1 -1
  23. package/dist/components/Modal/index.story.d.ts +32 -32
  24. package/dist/components/MultiSelect/context.d.ts +13 -13
  25. package/dist/components/MultiSelect/index.d.ts +23 -23
  26. package/dist/components/MultiSelect/index.story.d.ts +74 -74
  27. package/dist/components/MultiSelect/index.test.d.ts +1 -1
  28. package/dist/components/Radio/index.d.ts +23 -23
  29. package/dist/components/Radio/index.story.d.ts +33 -33
  30. package/dist/components/Radio/index.test.d.ts +1 -1
  31. package/dist/components/SegmentedControl/RadioGroupContext.d.ts +8 -8
  32. package/dist/components/SegmentedControl/index.d.ts +19 -19
  33. package/dist/components/SegmentedControl/index.story.d.ts +10 -10
  34. package/dist/components/Switch/index.d.ts +15 -15
  35. package/dist/components/Switch/index.story.d.ts +13 -13
  36. package/dist/components/TagItem/index.d.ts +25 -0
  37. package/dist/components/TagItem/index.d.ts.map +1 -0
  38. package/dist/components/TagItem/index.story.d.ts +26 -0
  39. package/dist/components/TagItem/index.story.d.ts.map +1 -0
  40. package/dist/components/TextField/index.d.ts +43 -43
  41. package/dist/components/TextField/index.story.d.ts +29 -29
  42. package/dist/components/a11y.test.d.ts +1 -1
  43. package/dist/core/ComponentAbstraction.d.ts +23 -23
  44. package/dist/core/OverlayProvider.d.ts +2 -0
  45. package/dist/core/OverlayProvider.d.ts.map +1 -0
  46. package/dist/core/SSRProvider.d.ts +1 -1
  47. package/dist/index.cjs +3333 -3297
  48. package/dist/index.cjs.map +1 -1
  49. package/dist/index.d.ts +18 -16
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +4401 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/styled.d.ts +92 -92
  54. package/package.json +16 -14
  55. package/src/components/Modal/index.tsx +24 -0
  56. package/src/components/TagItem/index.story.tsx +188 -0
  57. package/src/components/TagItem/index.tsx +176 -0
  58. package/src/core/OverlayProvider.tsx +1 -0
  59. package/src/index.ts +2 -0
  60. package/dist/index.modern.js +0 -4685
  61. package/dist/index.modern.js.map +0 -1
  62. package/dist/index.module.js +0 -4371
  63. package/dist/index.module.js.map +0 -1
package/dist/index.js ADDED
@@ -0,0 +1,4401 @@
1
+ // src/core/ComponentAbstraction.tsx
2
+ import React, { useContext } from "react";
3
+ var DefaultLink = React.forwardRef(
4
+ function DefaultLink2({ to, children, ...rest }, ref) {
5
+ return /* @__PURE__ */ React.createElement("a", { href: to, ref, ...rest }, children);
6
+ }
7
+ );
8
+ var DefaultValue = {
9
+ Link: DefaultLink
10
+ };
11
+ var ComponentAbstractionContext = React.createContext(DefaultValue);
12
+ function ComponentAbstraction({ children, components }) {
13
+ return /* @__PURE__ */ React.createElement(
14
+ ComponentAbstractionContext.Provider,
15
+ {
16
+ value: { ...DefaultValue, ...components }
17
+ },
18
+ children
19
+ );
20
+ }
21
+ function useComponentAbstraction() {
22
+ return useContext(ComponentAbstractionContext);
23
+ }
24
+
25
+ // src/core/SSRProvider.tsx
26
+ import { SSRProvider } from "@react-aria/ssr";
27
+
28
+ // src/core/OverlayProvider.tsx
29
+ import { OverlayProvider } from "@react-aria/overlays";
30
+
31
+ // src/components/Button/index.tsx
32
+ import React3 from "react";
33
+ import styled3 from "styled-components";
34
+
35
+ // src/_lib/index.ts
36
+ function unreachable(value) {
37
+ throw new Error(
38
+ arguments.length === 0 ? "unreachable" : `unreachable (${JSON.stringify(value)})`
39
+ );
40
+ }
41
+
42
+ // src/styled.ts
43
+ import styled from "styled-components";
44
+ import { createTheme } from "@charcoal-ui/styled";
45
+ var theme = createTheme(styled);
46
+
47
+ // src/components/Clickable/index.tsx
48
+ import React2 from "react";
49
+ import styled2, { css } from "styled-components";
50
+ import { disabledSelector } from "@charcoal-ui/utils";
51
+ var Clickable = React2.forwardRef(
52
+ function Clickable2(props, ref) {
53
+ const { Link } = useComponentAbstraction();
54
+ if ("to" in props) {
55
+ const { onClick, disabled = false, ...rest } = props;
56
+ return /* @__PURE__ */ React2.createElement(
57
+ A,
58
+ {
59
+ ...rest,
60
+ as: disabled ? void 0 : Link,
61
+ onClick: disabled ? void 0 : onClick,
62
+ "aria-disabled": disabled,
63
+ ref
64
+ }
65
+ );
66
+ } else {
67
+ return /* @__PURE__ */ React2.createElement(Button, { ...props, ref });
68
+ }
69
+ }
70
+ );
71
+ var Clickable_default = Clickable;
72
+ var clickableCss = css`
73
+ /* Clickable style */
74
+ cursor: pointer;
75
+
76
+ ${disabledSelector} {
77
+ cursor: default;
78
+ }
79
+ `;
80
+ var Button = styled2.button`
81
+ /* Reset button appearance */
82
+ appearance: none;
83
+ background: transparent;
84
+ padding: 0;
85
+ border-style: none;
86
+ outline: none;
87
+ color: inherit;
88
+ text-rendering: inherit;
89
+ letter-spacing: inherit;
90
+ word-spacing: inherit;
91
+
92
+ &:focus {
93
+ outline: none;
94
+ }
95
+
96
+ /* Change the font styles in all browsers. */
97
+ font: inherit;
98
+
99
+ /* Remove the margin in Firefox and Safari. */
100
+ margin: 0;
101
+
102
+ /* Show the overflow in Edge. */
103
+ overflow: visible;
104
+
105
+ /* Remove the inheritance of text transform in Firefox. */
106
+ text-transform: none;
107
+
108
+ /* Remove the inner border and padding in Firefox. */
109
+ &::-moz-focus-inner {
110
+ border-style: none;
111
+ padding: 0;
112
+ }
113
+
114
+ ${clickableCss}
115
+ `;
116
+ var A = styled2.span`
117
+ /* Reset a-tag appearance */
118
+ color: inherit;
119
+
120
+ &:focus {
121
+ outline: none;
122
+ }
123
+
124
+ .text {
125
+ top: calc(1em + 2em);
126
+ }
127
+
128
+ ${clickableCss}
129
+ `;
130
+
131
+ // src/components/Button/index.tsx
132
+ var Button2 = React3.forwardRef(function Button3({
133
+ children,
134
+ variant = "Default",
135
+ size = "M",
136
+ fixed = false,
137
+ disabled = false,
138
+ ...rest
139
+ }, ref) {
140
+ return /* @__PURE__ */ React3.createElement(
141
+ StyledButton,
142
+ {
143
+ ...rest,
144
+ disabled,
145
+ variant,
146
+ size,
147
+ fixed,
148
+ ref
149
+ },
150
+ children
151
+ );
152
+ });
153
+ var Button_default = Button2;
154
+ var StyledButton = styled3(Clickable_default).withConfig({
155
+ shouldForwardProp(prop) {
156
+ return prop !== "fixed";
157
+ }
158
+ }).attrs(styledProps)`
159
+ width: ${(p) => p.fixed ? "stretch" : "min-content"};
160
+ display: inline-grid;
161
+ align-items: center;
162
+ justify-content: center;
163
+ cursor: pointer;
164
+ user-select: none;
165
+ white-space: nowrap;
166
+
167
+ ${(p) => theme((o) => [
168
+ o.font[p.font].hover.press,
169
+ o.bg[p.background].hover.press,
170
+ o.typography(14).bold.preserveHalfLeading,
171
+ o.padding.horizontal(p.padding),
172
+ o.disabled,
173
+ o.borderRadius("oval"),
174
+ o.outline.default.focus
175
+ ])}
176
+
177
+ /* よく考えたらheight=32って定義が存在しないな... */
178
+ height: ${(p) => p.height}px;
179
+ `;
180
+ function styledProps(props) {
181
+ return {
182
+ ...props,
183
+ ...variantToProps(props.variant),
184
+ ...sizeToProps(props.size)
185
+ };
186
+ }
187
+ function variantToProps(variant) {
188
+ switch (variant) {
189
+ case "Overlay":
190
+ return { font: "text5", background: "surface4" };
191
+ case "Default":
192
+ return { font: "text2", background: "surface3" };
193
+ case "Primary":
194
+ return { font: "text5", background: "brand" };
195
+ case "Navigation":
196
+ return { font: "text5", background: "surface6" };
197
+ case "Danger":
198
+ return { font: "text5", background: "assertive" };
199
+ default:
200
+ return unreachable(variant);
201
+ }
202
+ }
203
+ function sizeToProps(size) {
204
+ switch (size) {
205
+ case "S":
206
+ return {
207
+ height: 32,
208
+ padding: 16
209
+ };
210
+ case "M":
211
+ return {
212
+ height: 40,
213
+ padding: 24
214
+ };
215
+ }
216
+ }
217
+
218
+ // src/components/IconButton/index.tsx
219
+ import React4 from "react";
220
+ import styled4 from "styled-components";
221
+ var IconButton = React4.forwardRef(
222
+ function IconButtonInner({ variant = "Default", size = "M", icon, ...rest }, ref) {
223
+ validateIconSize(size, icon);
224
+ return /* @__PURE__ */ React4.createElement(StyledIconButton, { ...rest, ref, variant, size }, /* @__PURE__ */ React4.createElement("pixiv-icon", { name: icon }));
225
+ }
226
+ );
227
+ var IconButton_default = IconButton;
228
+ var StyledIconButton = styled4(Clickable_default).attrs(styledProps2)`
229
+ user-select: none;
230
+
231
+ width: ${(p) => p.width}px;
232
+ height: ${(p) => p.height}px;
233
+ display: flex;
234
+ align-items: center;
235
+ justify-content: center;
236
+
237
+ ${({ font, background }) => theme((o) => [
238
+ o.font[font],
239
+ o.bg[background].hover.press,
240
+ o.disabled,
241
+ o.borderRadius("oval"),
242
+ o.outline.default.focus
243
+ ])}
244
+ `;
245
+ function styledProps2(props) {
246
+ return {
247
+ ...props,
248
+ ...variantToProps2(props.variant),
249
+ ...sizeToProps2(props.size)
250
+ };
251
+ }
252
+ function variantToProps2(variant) {
253
+ switch (variant) {
254
+ case "Default":
255
+ return { font: "text3", background: "transparent" };
256
+ case "Overlay":
257
+ return { font: "text5", background: "surface4" };
258
+ }
259
+ }
260
+ function sizeToProps2(size) {
261
+ switch (size) {
262
+ case "XS":
263
+ return {
264
+ width: 20,
265
+ height: 20
266
+ };
267
+ case "S":
268
+ return {
269
+ width: 32,
270
+ height: 32
271
+ };
272
+ case "M":
273
+ return {
274
+ width: 40,
275
+ height: 40
276
+ };
277
+ }
278
+ }
279
+ function validateIconSize(size, icon) {
280
+ let requiredIconSize;
281
+ switch (size) {
282
+ case "XS":
283
+ requiredIconSize = "16";
284
+ break;
285
+ case "S":
286
+ case "M":
287
+ requiredIconSize = "24";
288
+ break;
289
+ }
290
+ const result = /^\d*/u.exec(icon);
291
+ if (result == null) {
292
+ throw new Error("Invalid icon name");
293
+ }
294
+ const [iconSize] = result;
295
+ if (iconSize !== requiredIconSize) {
296
+ console.warn(
297
+ `IconButton with size "${size}" expect icon size "${requiredIconSize}, but got "${iconSize}"`
298
+ );
299
+ }
300
+ }
301
+
302
+ // src/components/Radio/index.tsx
303
+ import React5, { useCallback, useContext as useContext2 } from "react";
304
+ import styled5 from "styled-components";
305
+ import warning from "warning";
306
+ import { px } from "@charcoal-ui/utils";
307
+ function Radio({
308
+ value,
309
+ forceChecked = false,
310
+ disabled = false,
311
+ children
312
+ }) {
313
+ const {
314
+ name,
315
+ selected,
316
+ disabled: isParentDisabled,
317
+ readonly,
318
+ hasError,
319
+ onChange
320
+ } = useContext2(RadioGroupContext);
321
+ warning(
322
+ name !== void 0,
323
+ `"name" is not Provided for <Radio>. Perhaps you forgot to wrap with <RadioGroup> ?`
324
+ );
325
+ const isSelected = value === selected;
326
+ const isDisabled = disabled || isParentDisabled;
327
+ const isReadonly = readonly && !isSelected;
328
+ const handleChange = useCallback(
329
+ (e) => {
330
+ onChange(e.currentTarget.value);
331
+ },
332
+ [onChange]
333
+ );
334
+ return /* @__PURE__ */ React5.createElement(RadioRoot, { "aria-disabled": isDisabled || isReadonly }, /* @__PURE__ */ React5.createElement(
335
+ RadioInput,
336
+ {
337
+ name,
338
+ value,
339
+ checked: forceChecked || isSelected,
340
+ hasError,
341
+ onChange: handleChange,
342
+ disabled: isDisabled || isReadonly
343
+ }
344
+ ), children != null && /* @__PURE__ */ React5.createElement(RadioLabel, null, children));
345
+ }
346
+ var RadioRoot = styled5.label`
347
+ display: grid;
348
+ grid-template-columns: auto 1fr;
349
+ grid-gap: ${({ theme: theme4 }) => px(theme4.spacing[4])};
350
+ align-items: center;
351
+ cursor: pointer;
352
+
353
+ ${theme((o) => [o.disabled])}
354
+ `;
355
+ var RadioInput = styled5.input.attrs({ type: "radio" })`
356
+ /** Make prior to browser default style */
357
+ &[type='radio'] {
358
+ appearance: none;
359
+ display: block;
360
+ box-sizing: border-box;
361
+
362
+ padding: 6px;
363
+
364
+ width: 20px;
365
+ height: 20px;
366
+
367
+ ${({ hasError = false }) => theme((o) => [
368
+ o.borderRadius("oval"),
369
+ o.bg.text5.hover.press,
370
+ hasError && o.outline.assertive
371
+ ])};
372
+
373
+ &:not(:checked) {
374
+ border-width: 2px;
375
+ border-style: solid;
376
+ border-color: ${({ theme: theme4 }) => theme4.color.text4};
377
+ }
378
+
379
+ &:checked {
380
+ ${theme((o) => o.bg.brand.hover.press)}
381
+
382
+ &::after {
383
+ content: '';
384
+ display: block;
385
+ width: 8px;
386
+ height: 8px;
387
+ pointer-events: none;
388
+
389
+ ${theme((o) => [o.bg.text5.hover.press, o.borderRadius("oval")])}
390
+ }
391
+ }
392
+
393
+ ${theme((o) => o.outline.default.focus)}
394
+ }
395
+ `;
396
+ var RadioLabel = styled5.div`
397
+ ${theme((o) => [o.typography(14)])}
398
+ `;
399
+ var StyledRadioGroup = styled5.div`
400
+ display: grid;
401
+ grid-template-columns: 1fr;
402
+ grid-gap: ${({ theme: theme4 }) => px(theme4.spacing[8])};
403
+ `;
404
+ var RadioGroupContext = React5.createContext({
405
+ name: void 0,
406
+ selected: void 0,
407
+ disabled: false,
408
+ readonly: false,
409
+ hasError: false,
410
+ onChange() {
411
+ throw new Error(
412
+ "Cannot find onChange() handler. Perhaps you forgot to wrap with <RadioGroup> ?"
413
+ );
414
+ }
415
+ });
416
+ function RadioGroup({
417
+ className,
418
+ value,
419
+ label,
420
+ name,
421
+ onChange,
422
+ disabled,
423
+ readonly,
424
+ hasError,
425
+ children
426
+ }) {
427
+ const handleChange = useCallback(
428
+ (next) => {
429
+ onChange(next);
430
+ },
431
+ [onChange]
432
+ );
433
+ return /* @__PURE__ */ React5.createElement(
434
+ RadioGroupContext.Provider,
435
+ {
436
+ value: {
437
+ name,
438
+ selected: value,
439
+ disabled: disabled ?? false,
440
+ readonly: readonly ?? false,
441
+ hasError: hasError ?? false,
442
+ onChange: handleChange
443
+ }
444
+ },
445
+ /* @__PURE__ */ React5.createElement(
446
+ StyledRadioGroup,
447
+ {
448
+ role: "radiogroup",
449
+ "aria-orientation": "vertical",
450
+ "aria-label": label,
451
+ "aria-invalid": hasError,
452
+ className
453
+ },
454
+ children
455
+ )
456
+ );
457
+ }
458
+
459
+ // src/components/MultiSelect/index.tsx
460
+ import React6, { useCallback as useCallback2, useContext as useContext3 } from "react";
461
+ import styled6, { css as css2 } from "styled-components";
462
+ import warning2 from "warning";
463
+ import { disabledSelector as disabledSelector2, px as px2 } from "@charcoal-ui/utils";
464
+
465
+ // src/components/MultiSelect/context.ts
466
+ import { createContext } from "react";
467
+ var MultiSelectGroupContext = createContext({
468
+ name: void 0,
469
+ selected: [],
470
+ disabled: false,
471
+ readonly: false,
472
+ hasError: false,
473
+ onChange() {
474
+ throw new Error(
475
+ "Cannot find `onChange()` handler. Perhaps you forgot to wrap it with `<MultiSelectGroup />` ?"
476
+ );
477
+ }
478
+ });
479
+
480
+ // src/components/MultiSelect/index.tsx
481
+ function MultiSelect({
482
+ value,
483
+ forceChecked = false,
484
+ disabled = false,
485
+ onChange,
486
+ variant = "default",
487
+ children
488
+ }) {
489
+ const {
490
+ name,
491
+ selected,
492
+ disabled: parentDisabled,
493
+ readonly,
494
+ hasError,
495
+ onChange: parentOnChange
496
+ } = useContext3(MultiSelectGroupContext);
497
+ warning2(
498
+ name !== void 0,
499
+ `"name" is not Provided for <MultiSelect>. Perhaps you forgot to wrap with <MultiSelectGroup> ?`
500
+ );
501
+ const isSelected = selected.includes(value) || forceChecked;
502
+ const isDisabled = disabled || parentDisabled || readonly;
503
+ const handleChange = useCallback2(
504
+ (event) => {
505
+ if (!(event.currentTarget instanceof HTMLInputElement)) {
506
+ return;
507
+ }
508
+ if (onChange)
509
+ onChange({ value, selected: event.currentTarget.checked });
510
+ parentOnChange({ value, selected: event.currentTarget.checked });
511
+ },
512
+ [onChange, parentOnChange, value]
513
+ );
514
+ return /* @__PURE__ */ React6.createElement(MultiSelectRoot, { "aria-disabled": isDisabled }, /* @__PURE__ */ React6.createElement(
515
+ MultiSelectInput,
516
+ {
517
+ ...{
518
+ name,
519
+ value,
520
+ hasError
521
+ },
522
+ checked: isSelected,
523
+ disabled: isDisabled,
524
+ onChange: handleChange,
525
+ overlay: variant === "overlay",
526
+ "aria-invalid": hasError
527
+ }
528
+ ), /* @__PURE__ */ React6.createElement(
529
+ MultiSelectInputOverlay,
530
+ {
531
+ overlay: variant === "overlay",
532
+ hasError,
533
+ "aria-hidden": true
534
+ },
535
+ /* @__PURE__ */ React6.createElement("pixiv-icon", { name: "24/Check", "unsafe-non-guideline-scale": 16 / 24 })
536
+ ), Boolean(children) && /* @__PURE__ */ React6.createElement(MultiSelectLabel, null, children));
537
+ }
538
+ var MultiSelectRoot = styled6.label`
539
+ display: grid;
540
+ grid-template-columns: auto 1fr;
541
+ align-items: center;
542
+ position: relative;
543
+ cursor: pointer;
544
+ ${disabledSelector2} {
545
+ cursor: default;
546
+ }
547
+ gap: ${({ theme: theme4 }) => px2(theme4.spacing[4])};
548
+ ${theme((o) => o.disabled)}
549
+ `;
550
+ var MultiSelectLabel = styled6.div`
551
+ display: flex;
552
+ align-items: center;
553
+ ${theme((o) => [o.typography(14), o.font.text1])}
554
+ `;
555
+ var MultiSelectInput = styled6.input.attrs({ type: "checkbox" })`
556
+ &[type='checkbox'] {
557
+ appearance: none;
558
+ display: block;
559
+ width: 20px;
560
+ height: 20px;
561
+ margin: 0;
562
+
563
+ &:checked {
564
+ ${theme((o) => o.bg.brand.hover.press)}
565
+ }
566
+
567
+ ${({ hasError, overlay }) => theme((o) => [
568
+ o.bg.text3.hover.press,
569
+ o.borderRadius("oval"),
570
+ hasError && !overlay && o.outline.assertive,
571
+ overlay && o.bg.surface4
572
+ ])};
573
+ }
574
+ `;
575
+ var MultiSelectInputOverlay = styled6.div`
576
+ position: absolute;
577
+ top: -2px;
578
+ left: -2px;
579
+ box-sizing: border-box;
580
+ display: flex;
581
+ align-items: center;
582
+ justify-content: center;
583
+
584
+ ${({ hasError, overlay }) => theme((o) => [
585
+ o.width.px(24),
586
+ o.height.px(24),
587
+ o.borderRadius("oval"),
588
+ o.font.text5,
589
+ hasError && overlay && o.outline.assertive
590
+ ])}
591
+
592
+ ${({ overlay }) => overlay && css2`
593
+ border-color: ${({ theme: theme4 }) => theme4.color.text5};
594
+ border-width: 2px;
595
+ border-style: solid;
596
+ `}
597
+ `;
598
+ function MultiSelectGroup({
599
+ className,
600
+ name,
601
+ ariaLabel,
602
+ selected,
603
+ onChange,
604
+ disabled = false,
605
+ readonly = false,
606
+ hasError = false,
607
+ children
608
+ }) {
609
+ const handleChange = useCallback2(
610
+ (payload) => {
611
+ const index = selected.indexOf(payload.value);
612
+ if (payload.selected) {
613
+ if (index < 0) {
614
+ onChange([...selected, payload.value]);
615
+ }
616
+ } else {
617
+ if (index >= 0) {
618
+ onChange([...selected.slice(0, index), ...selected.slice(index + 1)]);
619
+ }
620
+ }
621
+ },
622
+ [onChange, selected]
623
+ );
624
+ return /* @__PURE__ */ React6.createElement(
625
+ MultiSelectGroupContext.Provider,
626
+ {
627
+ value: {
628
+ name,
629
+ selected: Array.from(new Set(selected)),
630
+ disabled,
631
+ readonly,
632
+ hasError,
633
+ onChange: handleChange
634
+ }
635
+ },
636
+ /* @__PURE__ */ React6.createElement(
637
+ "div",
638
+ {
639
+ className,
640
+ "aria-label": ariaLabel,
641
+ "data-testid": "SelectGroup"
642
+ },
643
+ children
644
+ )
645
+ );
646
+ }
647
+
648
+ // src/components/Switch/index.tsx
649
+ import { useSwitch } from "@react-aria/switch";
650
+ import React7, { useRef, useMemo } from "react";
651
+ import { useToggleState } from "react-stately";
652
+ import styled7 from "styled-components";
653
+ import { disabledSelector as disabledSelector3, px as px3 } from "@charcoal-ui/utils";
654
+ function SwitchCheckbox(props) {
655
+ const { disabled, className } = props;
656
+ const ariaSwitchProps = useMemo(
657
+ () => ({
658
+ ...props,
659
+ "aria-label": "children" in props ? void 0 : props.label,
660
+ isDisabled: props.disabled,
661
+ isSelected: props.checked
662
+ }),
663
+ [props]
664
+ );
665
+ const state = useToggleState(ariaSwitchProps);
666
+ const ref = useRef(null);
667
+ const {
668
+ inputProps: { className: _className, type: _type, ...rest }
669
+ } = useSwitch(ariaSwitchProps, state, ref);
670
+ return /* @__PURE__ */ React7.createElement(Label, { className, "aria-disabled": disabled }, /* @__PURE__ */ React7.createElement(SwitchInput, { ...rest, ref }), "children" in props ? /* @__PURE__ */ React7.createElement(LabelInner, null, props.children) : void 0);
671
+ }
672
+ var Label = styled7.label`
673
+ display: inline-grid;
674
+ grid-template-columns: auto 1fr;
675
+ gap: ${({ theme: theme4 }) => px3(theme4.spacing[4])};
676
+ cursor: pointer;
677
+ outline: 0;
678
+
679
+ ${theme((o) => o.disabled)}
680
+
681
+ ${disabledSelector3} {
682
+ cursor: default;
683
+ }
684
+ `;
685
+ var LabelInner = styled7.div`
686
+ ${theme((o) => o.typography(14))}
687
+ `;
688
+ var SwitchInput = styled7.input.attrs({
689
+ type: "checkbox"
690
+ })`
691
+ &[type='checkbox'] {
692
+ appearance: none;
693
+ display: inline-flex;
694
+ position: relative;
695
+ box-sizing: border-box;
696
+ width: 28px;
697
+ border: 2px solid transparent;
698
+ transition: box-shadow 0.2s, background-color 0.2s;
699
+ cursor: inherit;
700
+ ${theme((o) => [
701
+ o.borderRadius(16),
702
+ o.height.px(16),
703
+ o.bg.text4.hover.press,
704
+ o.outline.default.focus
705
+ ])}
706
+
707
+ &::after {
708
+ content: '';
709
+ position: absolute;
710
+ display: block;
711
+ top: 0;
712
+ left: 0;
713
+ width: 12px;
714
+ height: 12px;
715
+ transform: translateX(0);
716
+ transition: transform 0.2s;
717
+ ${theme((o) => [o.bg.text5.hover.press, o.borderRadius("oval")])}
718
+ }
719
+
720
+ &:checked {
721
+ ${theme((o) => o.bg.brand.hover.press)}
722
+
723
+ &::after {
724
+ transform: translateX(12px);
725
+ }
726
+ }
727
+ }
728
+ `;
729
+
730
+ // src/components/TextField/index.tsx
731
+ import { useTextField } from "@react-aria/textfield";
732
+ import { useVisuallyHidden } from "@react-aria/visually-hidden";
733
+ import React9, {
734
+ useCallback as useCallback3,
735
+ useEffect,
736
+ useRef as useRef2,
737
+ useState
738
+ } from "react";
739
+ import styled9, { css as css3 } from "styled-components";
740
+
741
+ // src/components/FieldLabel/index.tsx
742
+ import React8 from "react";
743
+ import styled8 from "styled-components";
744
+ import { createTheme as createTheme2 } from "@charcoal-ui/styled";
745
+ var FieldLabel = React8.forwardRef(
746
+ function FieldLabel2({
747
+ style,
748
+ className,
749
+ label,
750
+ required = false,
751
+ requiredText,
752
+ subLabel,
753
+ ...labelProps
754
+ }, ref) {
755
+ return /* @__PURE__ */ React8.createElement(FieldLabelWrapper, { style, className }, /* @__PURE__ */ React8.createElement(Label2, { ref, ...labelProps }, label), required && /* @__PURE__ */ React8.createElement(RequiredText, null, requiredText), /* @__PURE__ */ React8.createElement(SubLabelClickable, null, /* @__PURE__ */ React8.createElement("span", null, subLabel)));
756
+ }
757
+ );
758
+ var FieldLabel_default = FieldLabel;
759
+ var theme2 = createTheme2(styled8);
760
+ var Label2 = styled8.label`
761
+ ${theme2((o) => [o.typography(14).bold, o.font.text1])}
762
+ `;
763
+ var RequiredText = styled8.span`
764
+ ${theme2((o) => [o.typography(14), o.font.text3])}
765
+ `;
766
+ var SubLabelClickable = styled8.div`
767
+ ${theme2((o) => [
768
+ o.typography(14),
769
+ o.font.text3.hover.press,
770
+ o.outline.default.focus
771
+ ])}
772
+ `;
773
+ var FieldLabelWrapper = styled8.div`
774
+ display: inline-flex;
775
+ align-items: center;
776
+
777
+ > ${RequiredText} {
778
+ ${theme2((o) => o.margin.left(4))}
779
+ }
780
+
781
+ > ${SubLabelClickable} {
782
+ ${theme2((o) => o.margin.left("auto"))}
783
+ }
784
+ `;
785
+
786
+ // src/components/TextField/index.tsx
787
+ import { createTheme as createTheme3 } from "@charcoal-ui/styled";
788
+ var theme3 = createTheme3(styled9);
789
+ function mergeRefs(...refs) {
790
+ return (value) => {
791
+ for (const ref of refs) {
792
+ if (typeof ref === "function") {
793
+ ref(value);
794
+ } else if (ref !== null) {
795
+ ;
796
+ ref.current = value;
797
+ }
798
+ }
799
+ };
800
+ }
801
+ function countCodePointsInString(string) {
802
+ return Array.from(string).length;
803
+ }
804
+ var TextField = React9.forwardRef(
805
+ function TextField2(props, ref) {
806
+ return props.multiline !== void 0 && props.multiline ? /* @__PURE__ */ React9.createElement(MultiLineTextField, { ref, ...props }) : /* @__PURE__ */ React9.createElement(SingleLineTextField, { ref, ...props });
807
+ }
808
+ );
809
+ var TextField_default = TextField;
810
+ var SingleLineTextField = React9.forwardRef(function SingleLineTextFieldInner({ onChange, ...props }, forwardRef4) {
811
+ const {
812
+ className,
813
+ showLabel = false,
814
+ showCount = false,
815
+ label,
816
+ requiredText,
817
+ subLabel,
818
+ disabled = false,
819
+ required,
820
+ invalid = false,
821
+ assistiveText,
822
+ maxLength,
823
+ prefix = null,
824
+ suffix = null
825
+ } = props;
826
+ const { visuallyHiddenProps } = useVisuallyHidden();
827
+ const ariaRef = useRef2(null);
828
+ const prefixRef = useRef2(null);
829
+ const suffixRef = useRef2(null);
830
+ const [count, setCount] = useState(countCodePointsInString(props.value ?? ""));
831
+ const [prefixWidth, setPrefixWidth] = useState(0);
832
+ const [suffixWidth, setSuffixWidth] = useState(0);
833
+ const nonControlled = props.value === void 0;
834
+ const handleChange = useCallback3(
835
+ (value) => {
836
+ const count2 = countCodePointsInString(value);
837
+ if (maxLength !== void 0 && count2 > maxLength) {
838
+ return;
839
+ }
840
+ if (nonControlled) {
841
+ setCount(count2);
842
+ }
843
+ onChange?.(value);
844
+ },
845
+ [maxLength, nonControlled, onChange]
846
+ );
847
+ useEffect(() => {
848
+ setCount(countCodePointsInString(props.value ?? ""));
849
+ }, [props.value]);
850
+ const { inputProps, labelProps, descriptionProps, errorMessageProps } = useTextField(
851
+ {
852
+ inputElementType: "input",
853
+ isDisabled: disabled,
854
+ isRequired: required,
855
+ validationState: invalid ? "invalid" : "valid",
856
+ description: !invalid && assistiveText,
857
+ errorMessage: invalid && assistiveText,
858
+ onChange: handleChange,
859
+ ...props
860
+ },
861
+ ariaRef
862
+ );
863
+ useEffect(() => {
864
+ const prefixObserver = new ResizeObserver((entries) => {
865
+ setPrefixWidth(entries[0].contentRect.width);
866
+ });
867
+ const suffixObserver = new ResizeObserver((entries) => {
868
+ setSuffixWidth(entries[0].contentRect.width);
869
+ });
870
+ if (prefixRef.current !== null) {
871
+ prefixObserver.observe(prefixRef.current);
872
+ }
873
+ if (suffixRef.current !== null) {
874
+ suffixObserver.observe(suffixRef.current);
875
+ }
876
+ return () => {
877
+ suffixObserver.disconnect();
878
+ prefixObserver.disconnect();
879
+ };
880
+ }, []);
881
+ return /* @__PURE__ */ React9.createElement(TextFieldRoot, { className, isDisabled: disabled }, /* @__PURE__ */ React9.createElement(
882
+ TextFieldLabel,
883
+ {
884
+ label,
885
+ requiredText,
886
+ required,
887
+ subLabel,
888
+ ...labelProps,
889
+ ...!showLabel ? visuallyHiddenProps : {}
890
+ }
891
+ ), /* @__PURE__ */ React9.createElement(StyledInputContainer, null, /* @__PURE__ */ React9.createElement(PrefixContainer, { ref: prefixRef }, /* @__PURE__ */ React9.createElement(Affix, null, prefix)), /* @__PURE__ */ React9.createElement(
892
+ StyledInput,
893
+ {
894
+ ref: mergeRefs(forwardRef4, ariaRef),
895
+ invalid,
896
+ extraLeftPadding: prefixWidth,
897
+ extraRightPadding: suffixWidth,
898
+ ...inputProps
899
+ }
900
+ ), /* @__PURE__ */ React9.createElement(SuffixContainer, { ref: suffixRef }, /* @__PURE__ */ React9.createElement(Affix, null, suffix), showCount && /* @__PURE__ */ React9.createElement(SingleLineCounter, null, maxLength !== void 0 ? `${count}/${maxLength}` : count))), assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ React9.createElement(
901
+ AssistiveText,
902
+ {
903
+ invalid,
904
+ ...invalid ? errorMessageProps : descriptionProps
905
+ },
906
+ assistiveText
907
+ ));
908
+ });
909
+ var MultiLineTextField = React9.forwardRef(function MultiLineTextFieldInner({ onChange, ...props }, forwardRef4) {
910
+ const {
911
+ className,
912
+ showCount = false,
913
+ showLabel = false,
914
+ label,
915
+ requiredText,
916
+ subLabel,
917
+ disabled = false,
918
+ required,
919
+ invalid = false,
920
+ assistiveText,
921
+ maxLength,
922
+ autoHeight = false,
923
+ rows: initialRows = 4
924
+ } = props;
925
+ const { visuallyHiddenProps } = useVisuallyHidden();
926
+ const textareaRef = useRef2(null);
927
+ const ariaRef = useRef2(null);
928
+ const [count, setCount] = useState(countCodePointsInString(props.value ?? ""));
929
+ const [rows, setRows] = useState(initialRows);
930
+ const syncHeight = useCallback3(
931
+ (textarea) => {
932
+ const rows2 = (`${textarea.value}
933
+ `.match(/\n/gu)?.length ?? 0) || 1;
934
+ setRows(initialRows <= rows2 ? rows2 : initialRows);
935
+ },
936
+ [initialRows]
937
+ );
938
+ const nonControlled = props.value === void 0;
939
+ const handleChange = useCallback3(
940
+ (value) => {
941
+ const count2 = countCodePointsInString(value);
942
+ if (maxLength !== void 0 && count2 > maxLength) {
943
+ return;
944
+ }
945
+ if (nonControlled) {
946
+ setCount(count2);
947
+ }
948
+ if (autoHeight && textareaRef.current !== null) {
949
+ syncHeight(textareaRef.current);
950
+ }
951
+ onChange?.(value);
952
+ },
953
+ [autoHeight, maxLength, nonControlled, onChange, syncHeight]
954
+ );
955
+ useEffect(() => {
956
+ setCount(countCodePointsInString(props.value ?? ""));
957
+ }, [props.value]);
958
+ const { inputProps, labelProps, descriptionProps, errorMessageProps } = useTextField(
959
+ {
960
+ inputElementType: "textarea",
961
+ isDisabled: disabled,
962
+ isRequired: required,
963
+ validationState: invalid ? "invalid" : "valid",
964
+ description: !invalid && assistiveText,
965
+ errorMessage: invalid && assistiveText,
966
+ onChange: handleChange,
967
+ ...props
968
+ },
969
+ ariaRef
970
+ );
971
+ useEffect(() => {
972
+ if (autoHeight && textareaRef.current !== null) {
973
+ syncHeight(textareaRef.current);
974
+ }
975
+ }, [autoHeight, syncHeight]);
976
+ return /* @__PURE__ */ React9.createElement(TextFieldRoot, { className, isDisabled: disabled }, /* @__PURE__ */ React9.createElement(
977
+ TextFieldLabel,
978
+ {
979
+ label,
980
+ requiredText,
981
+ required,
982
+ subLabel,
983
+ ...labelProps,
984
+ ...!showLabel ? visuallyHiddenProps : {}
985
+ }
986
+ ), /* @__PURE__ */ React9.createElement(
987
+ StyledTextareaContainer,
988
+ {
989
+ invalid,
990
+ rows: showCount ? rows + 1 : rows
991
+ },
992
+ /* @__PURE__ */ React9.createElement(
993
+ StyledTextarea,
994
+ {
995
+ ref: mergeRefs(textareaRef, forwardRef4, ariaRef),
996
+ rows,
997
+ noBottomPadding: showCount,
998
+ ...inputProps
999
+ }
1000
+ ),
1001
+ showCount && /* @__PURE__ */ React9.createElement(MultiLineCounter, null, maxLength !== void 0 ? `${count}/${maxLength}` : count)
1002
+ ), assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ React9.createElement(
1003
+ AssistiveText,
1004
+ {
1005
+ invalid,
1006
+ ...invalid ? errorMessageProps : descriptionProps
1007
+ },
1008
+ assistiveText
1009
+ ));
1010
+ });
1011
+ var TextFieldRoot = styled9.div`
1012
+ display: flex;
1013
+ flex-direction: column;
1014
+
1015
+ ${(p) => p.isDisabled && { opacity: p.theme.elementEffect.disabled.opacity }}
1016
+ `;
1017
+ var TextFieldLabel = styled9(FieldLabel_default)`
1018
+ ${theme3((o) => o.margin.bottom(8))}
1019
+ `;
1020
+ var StyledInputContainer = styled9.div`
1021
+ height: 40px;
1022
+ display: grid;
1023
+ position: relative;
1024
+ `;
1025
+ var PrefixContainer = styled9.span`
1026
+ position: absolute;
1027
+ top: 50%;
1028
+ left: 8px;
1029
+ transform: translateY(-50%);
1030
+ `;
1031
+ var SuffixContainer = styled9.span`
1032
+ position: absolute;
1033
+ top: 50%;
1034
+ right: 8px;
1035
+ transform: translateY(-50%);
1036
+
1037
+ display: flex;
1038
+ gap: 8px;
1039
+ `;
1040
+ var Affix = styled9.span`
1041
+ user-select: none;
1042
+
1043
+ ${theme3((o) => [o.typography(14).preserveHalfLeading, o.font.text2])}
1044
+ `;
1045
+ var StyledInput = styled9.input`
1046
+ border: none;
1047
+ box-sizing: border-box;
1048
+ outline: none;
1049
+ font-family: inherit;
1050
+
1051
+ /* Prevent zooming for iOS Safari */
1052
+ transform-origin: top left;
1053
+ transform: scale(0.875);
1054
+ width: calc(100% / 0.875);
1055
+ height: calc(100% / 0.875);
1056
+ font-size: calc(14px / 0.875);
1057
+ line-height: calc(22px / 0.875);
1058
+ padding-left: calc((8px + ${(p) => p.extraLeftPadding}px) / 0.875);
1059
+ padding-right: calc((8px + ${(p) => p.extraRightPadding}px) / 0.875);
1060
+ border-radius: calc(4px / 0.875);
1061
+
1062
+ /* Display box-shadow for iOS Safari */
1063
+ appearance: none;
1064
+
1065
+ ${(p) => theme3((o) => [
1066
+ o.bg.surface3.hover,
1067
+ o.outline.default.focus,
1068
+ p.invalid && o.outline.assertive,
1069
+ o.font.text2
1070
+ ])}
1071
+
1072
+ &::placeholder {
1073
+ ${theme3((o) => o.font.text3)}
1074
+ }
1075
+ `;
1076
+ var StyledTextareaContainer = styled9.div`
1077
+ position: relative;
1078
+ overflow: hidden;
1079
+ padding: 0 8px;
1080
+
1081
+ ${(p) => theme3((o) => [
1082
+ o.bg.surface3.hover,
1083
+ p.invalid && o.outline.assertive,
1084
+ o.font.text2,
1085
+ o.borderRadius(4)
1086
+ ])}
1087
+
1088
+ &:focus-within {
1089
+ ${(p) => theme3((o) => p.invalid ? o.outline.assertive : o.outline.default)}
1090
+ }
1091
+
1092
+ ${({ rows }) => css3`
1093
+ height: calc(22px * ${rows} + 18px);
1094
+ `};
1095
+ `;
1096
+ var StyledTextarea = styled9.textarea`
1097
+ border: none;
1098
+ outline: none;
1099
+ resize: none;
1100
+ font-family: inherit;
1101
+ color: inherit;
1102
+
1103
+ /* Prevent zooming for iOS Safari */
1104
+ transform-origin: top left;
1105
+ transform: scale(0.875);
1106
+ width: calc(100% / 0.875);
1107
+ font-size: calc(14px / 0.875);
1108
+ line-height: calc(22px / 0.875);
1109
+ padding: calc(9px / 0.875) 0 ${(p) => p.noBottomPadding ? 0 : ""};
1110
+
1111
+ ${({ rows = 1 }) => css3`
1112
+ height: calc(22px / 0.875 * ${rows});
1113
+ `};
1114
+
1115
+ /* Display box-shadow for iOS Safari */
1116
+ appearance: none;
1117
+
1118
+ background: none;
1119
+
1120
+ &::placeholder {
1121
+ ${theme3((o) => o.font.text3)}
1122
+ }
1123
+
1124
+ /* Hide scrollbar for Chrome, Safari and Opera */
1125
+ &::-webkit-scrollbar {
1126
+ display: none;
1127
+ }
1128
+ /* Hide scrollbar for IE, Edge and Firefox */
1129
+ -ms-overflow-style: none; /* IE and Edge */
1130
+ scrollbar-width: none; /* Firefox */
1131
+ `;
1132
+ var SingleLineCounter = styled9.span`
1133
+ ${theme3((o) => [o.typography(14).preserveHalfLeading, o.font.text3])}
1134
+ `;
1135
+ var MultiLineCounter = styled9.span`
1136
+ position: absolute;
1137
+ bottom: 9px;
1138
+ right: 8px;
1139
+
1140
+ ${theme3((o) => [o.typography(14).preserveHalfLeading, o.font.text3])}
1141
+ `;
1142
+ var AssistiveText = styled9.p`
1143
+ ${(p) => theme3((o) => [
1144
+ o.typography(14),
1145
+ o.margin.top(8),
1146
+ o.margin.bottom(0),
1147
+ o.font[p.invalid ? "assertive" : "text1"]
1148
+ ])}
1149
+ `;
1150
+
1151
+ // src/components/Icon/index.tsx
1152
+ import React10 from "react";
1153
+ import "@charcoal-ui/icons";
1154
+ var Icon = React10.forwardRef(function IconInner({ name, scale, unsafeNonGuidelineScale, className, ...rest }, ref) {
1155
+ return /* @__PURE__ */ React10.createElement(
1156
+ "pixiv-icon",
1157
+ {
1158
+ ref,
1159
+ name,
1160
+ scale,
1161
+ "unsafe-non-guideline-scale": unsafeNonGuidelineScale,
1162
+ class: className,
1163
+ ...rest
1164
+ }
1165
+ );
1166
+ });
1167
+ var Icon_default = Icon;
1168
+
1169
+ // src/components/Modal/index.tsx
1170
+ import React11, { useContext as useContext4, useRef as useRef3 } from "react";
1171
+ import {
1172
+ Overlay,
1173
+ useModalOverlay,
1174
+ useOverlay,
1175
+ usePreventScroll
1176
+ } from "@react-aria/overlays";
1177
+ import styled10, { css as css4, useTheme } from "styled-components";
1178
+ import { FocusScope } from "@react-aria/focus";
1179
+ import { useDialog } from "@react-aria/dialog";
1180
+
1181
+ // ../foundation/src/grid.ts
1182
+ var COLUMN_UNIT = 80;
1183
+ var GUTTER_UNIT = 24;
1184
+ function columnSystem(span, column, gutter) {
1185
+ return span * column + (span - 1) * gutter;
1186
+ }
1187
+
1188
+ // src/components/Modal/index.tsx
1189
+ import { maxWidth } from "@charcoal-ui/utils";
1190
+ import { useMedia } from "@charcoal-ui/styled";
1191
+ import { animated, useTransition, easings } from "react-spring";
1192
+ var DEFAULT_Z_INDEX = 10;
1193
+ function Modal({
1194
+ children,
1195
+ zIndex = DEFAULT_Z_INDEX,
1196
+ portalContainer,
1197
+ ...props
1198
+ }) {
1199
+ const {
1200
+ title,
1201
+ size = "M",
1202
+ bottomSheet = false,
1203
+ isDismissable,
1204
+ onClose,
1205
+ isOpen = false
1206
+ } = props;
1207
+ const ref = useRef3(null);
1208
+ const { overlayProps, underlayProps } = useOverlay(props, ref);
1209
+ usePreventScroll();
1210
+ const { modalProps } = useModalOverlay(
1211
+ props,
1212
+ {
1213
+ close: onClose,
1214
+ isOpen,
1215
+ open: () => {
1216
+ },
1217
+ setOpen: () => {
1218
+ },
1219
+ toggle: () => {
1220
+ }
1221
+ },
1222
+ ref
1223
+ );
1224
+ const { dialogProps, titleProps } = useDialog(props, ref);
1225
+ const theme4 = useTheme();
1226
+ const isMobile = useMedia(maxWidth(theme4.breakpoint.screen1)) ?? false;
1227
+ const transitionEnabled = isMobile && bottomSheet !== false;
1228
+ const transition = useTransition(isOpen, {
1229
+ from: {
1230
+ transform: "translateY(100%)",
1231
+ backgroundColor: "rgba(0, 0, 0, 0)"
1232
+ },
1233
+ enter: {
1234
+ transform: "translateY(0%)",
1235
+ backgroundColor: "rgba(0, 0, 0, 0.4)"
1236
+ },
1237
+ leave: {
1238
+ transform: "translateY(100%)",
1239
+ backgroundColor: "rgba(0, 0, 0, 0)"
1240
+ },
1241
+ config: transitionEnabled ? { duration: 400, easing: easings.easeOutQuart } : { duration: 0 }
1242
+ });
1243
+ const showDismiss = !isMobile || bottomSheet !== true;
1244
+ return transition(
1245
+ ({ backgroundColor, transform }, item) => item && /* @__PURE__ */ React11.createElement(Overlay, null, /* @__PURE__ */ React11.createElement(
1246
+ ModalBackground,
1247
+ {
1248
+ zIndex,
1249
+ ...underlayProps,
1250
+ style: transitionEnabled ? { backgroundColor } : {}
1251
+ },
1252
+ /* @__PURE__ */ React11.createElement(FocusScope, { contain: true, restoreFocus: true, autoFocus: true }, /* @__PURE__ */ React11.createElement(
1253
+ ModalDialog,
1254
+ {
1255
+ ref,
1256
+ ...overlayProps,
1257
+ ...modalProps,
1258
+ ...dialogProps,
1259
+ style: transitionEnabled ? { transform } : {},
1260
+ size,
1261
+ bottomSheet
1262
+ },
1263
+ /* @__PURE__ */ React11.createElement(
1264
+ ModalContext.Provider,
1265
+ {
1266
+ value: { titleProps, title, close: onClose, showDismiss }
1267
+ },
1268
+ children,
1269
+ isDismissable === true && /* @__PURE__ */ React11.createElement(
1270
+ ModalCrossButton,
1271
+ {
1272
+ size: "S",
1273
+ icon: "24/Close",
1274
+ onClick: onClose
1275
+ }
1276
+ )
1277
+ )
1278
+ ))
1279
+ ))
1280
+ );
1281
+ }
1282
+ var ModalContext = React11.createContext({
1283
+ titleProps: {},
1284
+ title: "",
1285
+ close: void 0,
1286
+ showDismiss: true
1287
+ });
1288
+ var ModalBackground = animated(styled10.div`
1289
+ z-index: ${({ zIndex }) => zIndex};
1290
+ position: fixed;
1291
+ top: 0;
1292
+ left: 0;
1293
+ width: 100%;
1294
+ height: 100%;
1295
+
1296
+ ${theme((o) => [o.bg.surface4])}
1297
+ `);
1298
+ var ModalDialog = animated(styled10.div`
1299
+ position: absolute;
1300
+ top: 50%;
1301
+ left: 50%;
1302
+ transform: translate(-50%, -50%);
1303
+ width: ${(p) => p.size === "S" ? columnSystem(3, COLUMN_UNIT, GUTTER_UNIT) + GUTTER_UNIT * 2 : p.size === "M" ? columnSystem(4, COLUMN_UNIT, GUTTER_UNIT) + GUTTER_UNIT * 2 : p.size === "L" ? columnSystem(6, COLUMN_UNIT, GUTTER_UNIT) + GUTTER_UNIT * 2 : unreachable(p.size)}px;
1304
+
1305
+ ${theme((o) => [o.bg.background1, o.borderRadius(24)])}
1306
+
1307
+ @media ${({ theme: theme4 }) => maxWidth(theme4.breakpoint.screen1)} {
1308
+ ${(p) => p.bottomSheet === "full" ? css4`
1309
+ top: auto;
1310
+ bottom: 0;
1311
+ left: 0;
1312
+ transform: none;
1313
+ border-radius: 0;
1314
+ width: 100%;
1315
+ height: 100%;
1316
+ ` : p.bottomSheet ? css4`
1317
+ top: auto;
1318
+ bottom: 0;
1319
+ left: 0;
1320
+ transform: none;
1321
+ border-radius: 0;
1322
+ width: 100%;
1323
+ ` : css4`
1324
+ width: calc(100% - 48px);
1325
+ `}
1326
+ }
1327
+ `);
1328
+ var ModalCrossButton = styled10(IconButton_default)`
1329
+ position: absolute;
1330
+ top: 8px;
1331
+ right: 8px;
1332
+
1333
+ ${theme((o) => [o.font.text3.hover.press])}
1334
+ `;
1335
+ function ModalTitle(props) {
1336
+ const { titleProps, title } = useContext4(ModalContext);
1337
+ return /* @__PURE__ */ React11.createElement(ModalHeading, { ...titleProps, ...props }, title);
1338
+ }
1339
+ var ModalHeading = styled10.h3`
1340
+ margin: 0;
1341
+ font-weight: inherit;
1342
+ font-size: inherit;
1343
+ `;
1344
+
1345
+ // src/components/Modal/ModalPlumbing.tsx
1346
+ import React12 from "react";
1347
+ import styled11 from "styled-components";
1348
+ import { maxWidth as maxWidth2 } from "@charcoal-ui/utils";
1349
+ function ModalHeader() {
1350
+ return /* @__PURE__ */ React12.createElement(ModalHeaderRoot, null, /* @__PURE__ */ React12.createElement(StyledModalTitle, null));
1351
+ }
1352
+ var ModalHeaderRoot = styled11.div`
1353
+ height: 64px;
1354
+ display: grid;
1355
+ align-content: center;
1356
+ justify-content: center;
1357
+ `;
1358
+ var StyledModalTitle = styled11(ModalTitle)`
1359
+ ${theme((o) => [o.font.text1, o.typography(16).bold])}
1360
+ `;
1361
+ var ModalAlign = styled11.div`
1362
+ ${theme((o) => [o.padding.horizontal(24)])}
1363
+
1364
+ @media ${({ theme: theme4 }) => maxWidth2(theme4.breakpoint.screen1)} {
1365
+ ${theme((o) => [o.padding.horizontal(16)])}
1366
+ }
1367
+ `;
1368
+ var ModalBody = styled11.div`
1369
+ ${theme((o) => [o.padding.bottom(40)])}
1370
+ `;
1371
+ var ModalButtons = styled11.div`
1372
+ display: grid;
1373
+ grid-auto-flow: row;
1374
+ grid-row-gap: 8px;
1375
+ ${theme((o) => [o.padding.horizontal(24).top(16)])}
1376
+
1377
+ @media ${({ theme: theme4 }) => maxWidth2(theme4.breakpoint.screen1)} {
1378
+ ${theme((o) => [o.padding.horizontal(16)])}
1379
+ }
1380
+ `;
1381
+
1382
+ // src/components/LoadingSpinner/index.tsx
1383
+ import { transparentize } from "polished";
1384
+ import React13, { useImperativeHandle, useRef as useRef4 } from "react";
1385
+ import styled12, { keyframes } from "styled-components";
1386
+ function LoadingSpinner({
1387
+ size = 48,
1388
+ padding = 16,
1389
+ transparent = false
1390
+ }) {
1391
+ return /* @__PURE__ */ React13.createElement(LoadingSpinnerRoot, { size, padding, transparent }, /* @__PURE__ */ React13.createElement(LoadingSpinnerIcon, null));
1392
+ }
1393
+ var LoadingSpinnerRoot = styled12.div.attrs({ role: "progressbar" })`
1394
+ margin: auto;
1395
+ padding: ${(props) => props.padding}px;
1396
+ border-radius: 8px;
1397
+ font-size: ${(props) => props.size}px;
1398
+ width: ${(props) => props.size}px;
1399
+ height: ${(props) => props.size}px;
1400
+ background-color: ${({ theme: theme4, transparent }) => transparent ? "transparent" : transparentize(0.32, theme4.color.background1)};
1401
+ color: ${({ theme: theme4 }) => theme4.color.text4};
1402
+ `;
1403
+ var scaleout = keyframes`
1404
+ from {
1405
+ transform: scale(0);
1406
+ opacity: 1;
1407
+ }
1408
+
1409
+ to {
1410
+ transform: scale(1);
1411
+ opacity: 0;
1412
+ }
1413
+ `;
1414
+ var Icon2 = styled12.div.attrs({ role: "presentation" })`
1415
+ width: 1em;
1416
+ height: 1em;
1417
+ border-radius: 1em;
1418
+ background-color: currentColor;
1419
+ animation: ${scaleout} 1s both ease-out;
1420
+ animation-iteration-count: ${(p) => p.once ? 1 : "infinite"};
1421
+
1422
+ &[data-reset-animation] {
1423
+ animation: none;
1424
+ }
1425
+ `;
1426
+ var LoadingSpinnerIcon = React13.forwardRef(function LoadingSpinnerIcon2({ once = false }, ref) {
1427
+ const iconRef = useRef4(null);
1428
+ useImperativeHandle(ref, () => ({
1429
+ restart: () => {
1430
+ if (!iconRef.current) {
1431
+ return;
1432
+ }
1433
+ iconRef.current.dataset.resetAnimation = "true";
1434
+ void iconRef.current.offsetWidth;
1435
+ delete iconRef.current.dataset.resetAnimation;
1436
+ }
1437
+ }));
1438
+ return /* @__PURE__ */ React13.createElement(Icon2, { ref: iconRef, once });
1439
+ });
1440
+
1441
+ // src/components/DropdownSelector/index.tsx
1442
+ import React16, { useMemo as useMemo4, useRef as useRef7 } from "react";
1443
+ import styled14 from "styled-components";
1444
+ import { Item, useSelectState } from "react-stately";
1445
+ import { disabledSelector as disabledSelector4 } from "@charcoal-ui/utils";
1446
+ import { useVisuallyHidden as useVisuallyHidden2 } from "@react-aria/visually-hidden";
1447
+ import { useSelect, HiddenSelect } from "@react-aria/select";
1448
+ import { useButton } from "@react-aria/button";
1449
+
1450
+ // src/components/DropdownSelector/Listbox.tsx
1451
+ import React14, { memo, useRef as useRef5, Fragment, useMemo as useMemo2 } from "react";
1452
+ import styled13, { css as css5 } from "styled-components";
1453
+
1454
+ // ../../node_modules/@react-aria/utils/dist/module.js
1455
+ import $12uGp$react, { useState as $12uGp$useState, useRef as $12uGp$useRef, useCallback as $12uGp$useCallback, useEffect as $12uGp$useEffect } from "react";
1456
+ import { useSSRSafeId as $12uGp$useSSRSafeId } from "@react-aria/ssr";
1457
+
1458
+ // ../../node_modules/clsx/dist/clsx.m.js
1459
+ function toVal(mix) {
1460
+ var k, y, str = "";
1461
+ if (typeof mix === "string" || typeof mix === "number") {
1462
+ str += mix;
1463
+ } else if (typeof mix === "object") {
1464
+ if (Array.isArray(mix)) {
1465
+ for (k = 0; k < mix.length; k++) {
1466
+ if (mix[k]) {
1467
+ if (y = toVal(mix[k])) {
1468
+ str && (str += " ");
1469
+ str += y;
1470
+ }
1471
+ }
1472
+ }
1473
+ } else {
1474
+ for (k in mix) {
1475
+ if (mix[k]) {
1476
+ str && (str += " ");
1477
+ str += k;
1478
+ }
1479
+ }
1480
+ }
1481
+ }
1482
+ return str;
1483
+ }
1484
+ function clsx_m_default() {
1485
+ var i = 0, tmp, x, str = "";
1486
+ while (i < arguments.length) {
1487
+ if (tmp = arguments[i++]) {
1488
+ if (x = toVal(tmp)) {
1489
+ str && (str += " ");
1490
+ str += x;
1491
+ }
1492
+ }
1493
+ }
1494
+ return str;
1495
+ }
1496
+
1497
+ // ../../node_modules/@react-aria/utils/dist/module.js
1498
+ var $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof window !== "undefined" ? $12uGp$react.useLayoutEffect : () => {
1499
+ };
1500
+ var $bdb11010cef70236$var$idsUpdaterMap = /* @__PURE__ */ new Map();
1501
+ function $bdb11010cef70236$export$f680877a34711e37(defaultId) {
1502
+ let [value, setValue] = $12uGp$useState(defaultId);
1503
+ let nextId = $12uGp$useRef(null);
1504
+ let res = $12uGp$useSSRSafeId(value);
1505
+ let updateValue = $12uGp$useCallback((val) => {
1506
+ nextId.current = val;
1507
+ }, []);
1508
+ $bdb11010cef70236$var$idsUpdaterMap.set(res, updateValue);
1509
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
1510
+ let r = res;
1511
+ return () => {
1512
+ $bdb11010cef70236$var$idsUpdaterMap.delete(r);
1513
+ };
1514
+ }, [
1515
+ res
1516
+ ]);
1517
+ $12uGp$useEffect(() => {
1518
+ let newId = nextId.current;
1519
+ if (newId) {
1520
+ nextId.current = null;
1521
+ setValue(newId);
1522
+ }
1523
+ });
1524
+ return res;
1525
+ }
1526
+ function $bdb11010cef70236$export$cd8c9cb68f842629(idA, idB) {
1527
+ if (idA === idB)
1528
+ return idA;
1529
+ let setIdA = $bdb11010cef70236$var$idsUpdaterMap.get(idA);
1530
+ if (setIdA) {
1531
+ setIdA(idB);
1532
+ return idB;
1533
+ }
1534
+ let setIdB = $bdb11010cef70236$var$idsUpdaterMap.get(idB);
1535
+ if (setIdB) {
1536
+ setIdB(idA);
1537
+ return idA;
1538
+ }
1539
+ return idB;
1540
+ }
1541
+ function $bdb11010cef70236$export$b4cc09c592e8fdb8(depArray = []) {
1542
+ let id = $bdb11010cef70236$export$f680877a34711e37();
1543
+ let [resolvedId, setResolvedId] = $1dbecbe27a04f9af$export$14d238f342723f25(id);
1544
+ let updateId = $12uGp$useCallback(() => {
1545
+ setResolvedId(function* () {
1546
+ yield id;
1547
+ yield document.getElementById(id) ? id : void 0;
1548
+ });
1549
+ }, [
1550
+ id,
1551
+ setResolvedId
1552
+ ]);
1553
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(updateId, [
1554
+ id,
1555
+ updateId,
1556
+ ...depArray
1557
+ ]);
1558
+ return resolvedId;
1559
+ }
1560
+ function $ff5963eb1fccf552$export$e08e3b67e392101e(...callbacks) {
1561
+ return (...args) => {
1562
+ for (let callback of callbacks)
1563
+ if (typeof callback === "function")
1564
+ callback(...args);
1565
+ };
1566
+ }
1567
+ function $3ef42575df84b30b$export$9d1611c77c2fe928(...args) {
1568
+ let result = {
1569
+ ...args[0]
1570
+ };
1571
+ for (let i = 1; i < args.length; i++) {
1572
+ let props = args[i];
1573
+ for (let key in props) {
1574
+ let a = result[key];
1575
+ let b = props[key];
1576
+ if (typeof a === "function" && typeof b === "function" && key[0] === "o" && key[1] === "n" && key.charCodeAt(2) >= 65 && key.charCodeAt(2) <= 90)
1577
+ result[key] = $ff5963eb1fccf552$export$e08e3b67e392101e(a, b);
1578
+ else if ((key === "className" || key === "UNSAFE_className") && typeof a === "string" && typeof b === "string")
1579
+ result[key] = clsx_m_default(a, b);
1580
+ else if (key === "id" && a && b)
1581
+ result.id = $bdb11010cef70236$export$cd8c9cb68f842629(a, b);
1582
+ else
1583
+ result[key] = b !== void 0 ? b : a;
1584
+ }
1585
+ }
1586
+ return result;
1587
+ }
1588
+ var $65484d02dcb7eb3e$var$DOMPropNames = /* @__PURE__ */ new Set([
1589
+ "id"
1590
+ ]);
1591
+ var $65484d02dcb7eb3e$var$labelablePropNames = /* @__PURE__ */ new Set([
1592
+ "aria-label",
1593
+ "aria-labelledby",
1594
+ "aria-describedby",
1595
+ "aria-details"
1596
+ ]);
1597
+ var $65484d02dcb7eb3e$var$propRe = /^(data-.*)$/;
1598
+ function $65484d02dcb7eb3e$export$457c3d6518dd4c6f(props, opts = {}) {
1599
+ let { labelable, propNames } = opts;
1600
+ let filteredProps = {};
1601
+ for (const prop in props)
1602
+ if (Object.prototype.hasOwnProperty.call(props, prop) && ($65484d02dcb7eb3e$var$DOMPropNames.has(prop) || labelable && $65484d02dcb7eb3e$var$labelablePropNames.has(prop) || (propNames === null || propNames === void 0 ? void 0 : propNames.has(prop)) || $65484d02dcb7eb3e$var$propRe.test(prop)))
1603
+ filteredProps[prop] = props[prop];
1604
+ return filteredProps;
1605
+ }
1606
+ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {
1607
+ if ($7215afc6de606d6b$var$supportsPreventScroll())
1608
+ element.focus({
1609
+ preventScroll: true
1610
+ });
1611
+ else {
1612
+ let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);
1613
+ element.focus();
1614
+ $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);
1615
+ }
1616
+ }
1617
+ var $7215afc6de606d6b$var$supportsPreventScrollCached = null;
1618
+ function $7215afc6de606d6b$var$supportsPreventScroll() {
1619
+ if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {
1620
+ $7215afc6de606d6b$var$supportsPreventScrollCached = false;
1621
+ try {
1622
+ var focusElem = document.createElement("div");
1623
+ focusElem.focus({
1624
+ get preventScroll() {
1625
+ $7215afc6de606d6b$var$supportsPreventScrollCached = true;
1626
+ return true;
1627
+ }
1628
+ });
1629
+ } catch (e) {
1630
+ }
1631
+ }
1632
+ return $7215afc6de606d6b$var$supportsPreventScrollCached;
1633
+ }
1634
+ function $7215afc6de606d6b$var$getScrollableElements(element) {
1635
+ var parent = element.parentNode;
1636
+ var scrollableElements = [];
1637
+ var rootScrollingElement = document.scrollingElement || document.documentElement;
1638
+ while (parent instanceof HTMLElement && parent !== rootScrollingElement) {
1639
+ if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth)
1640
+ scrollableElements.push({
1641
+ element: parent,
1642
+ scrollTop: parent.scrollTop,
1643
+ scrollLeft: parent.scrollLeft
1644
+ });
1645
+ parent = parent.parentNode;
1646
+ }
1647
+ if (rootScrollingElement instanceof HTMLElement)
1648
+ scrollableElements.push({
1649
+ element: rootScrollingElement,
1650
+ scrollTop: rootScrollingElement.scrollTop,
1651
+ scrollLeft: rootScrollingElement.scrollLeft
1652
+ });
1653
+ return scrollableElements;
1654
+ }
1655
+ function $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {
1656
+ for (let { element, scrollTop, scrollLeft } of scrollableElements) {
1657
+ element.scrollTop = scrollTop;
1658
+ element.scrollLeft = scrollLeft;
1659
+ }
1660
+ }
1661
+ var $bbed8b41f857bcc0$var$transitionsByElement = /* @__PURE__ */ new Map();
1662
+ var $bbed8b41f857bcc0$var$transitionCallbacks = /* @__PURE__ */ new Set();
1663
+ function $bbed8b41f857bcc0$var$setupGlobalEvents() {
1664
+ if (typeof window === "undefined")
1665
+ return;
1666
+ let onTransitionStart = (e) => {
1667
+ let transitions = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);
1668
+ if (!transitions) {
1669
+ transitions = /* @__PURE__ */ new Set();
1670
+ $bbed8b41f857bcc0$var$transitionsByElement.set(e.target, transitions);
1671
+ e.target.addEventListener("transitioncancel", onTransitionEnd);
1672
+ }
1673
+ transitions.add(e.propertyName);
1674
+ };
1675
+ let onTransitionEnd = (e) => {
1676
+ let properties = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);
1677
+ if (!properties)
1678
+ return;
1679
+ properties.delete(e.propertyName);
1680
+ if (properties.size === 0) {
1681
+ e.target.removeEventListener("transitioncancel", onTransitionEnd);
1682
+ $bbed8b41f857bcc0$var$transitionsByElement.delete(e.target);
1683
+ }
1684
+ if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) {
1685
+ for (let cb of $bbed8b41f857bcc0$var$transitionCallbacks)
1686
+ cb();
1687
+ $bbed8b41f857bcc0$var$transitionCallbacks.clear();
1688
+ }
1689
+ };
1690
+ document.body.addEventListener("transitionrun", onTransitionStart);
1691
+ document.body.addEventListener("transitionend", onTransitionEnd);
1692
+ }
1693
+ if (typeof document !== "undefined") {
1694
+ if (document.readyState !== "loading")
1695
+ $bbed8b41f857bcc0$var$setupGlobalEvents();
1696
+ else
1697
+ document.addEventListener("DOMContentLoaded", $bbed8b41f857bcc0$var$setupGlobalEvents);
1698
+ }
1699
+ function $bbed8b41f857bcc0$export$24490316f764c430(fn) {
1700
+ requestAnimationFrame(() => {
1701
+ if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0)
1702
+ fn();
1703
+ else
1704
+ $bbed8b41f857bcc0$var$transitionCallbacks.add(fn);
1705
+ });
1706
+ }
1707
+ function $03deb23ff14920c4$export$4eaf04e54aa8eed6() {
1708
+ let globalListeners = $12uGp$useRef(/* @__PURE__ */ new Map());
1709
+ let addGlobalListener = $12uGp$useCallback((eventTarget, type, listener, options) => {
1710
+ let fn = (options === null || options === void 0 ? void 0 : options.once) ? (...args) => {
1711
+ globalListeners.current.delete(listener);
1712
+ listener(...args);
1713
+ } : listener;
1714
+ globalListeners.current.set(listener, {
1715
+ type,
1716
+ eventTarget,
1717
+ fn,
1718
+ options
1719
+ });
1720
+ eventTarget.addEventListener(type, listener, options);
1721
+ }, []);
1722
+ let removeGlobalListener = $12uGp$useCallback((eventTarget, type, listener, options) => {
1723
+ var ref;
1724
+ let fn = ((ref = globalListeners.current.get(listener)) === null || ref === void 0 ? void 0 : ref.fn) || listener;
1725
+ eventTarget.removeEventListener(type, fn, options);
1726
+ globalListeners.current.delete(listener);
1727
+ }, []);
1728
+ let removeAllGlobalListeners = $12uGp$useCallback(() => {
1729
+ globalListeners.current.forEach((value, key) => {
1730
+ removeGlobalListener(value.eventTarget, value.type, key, value.options);
1731
+ });
1732
+ }, [
1733
+ removeGlobalListener
1734
+ ]);
1735
+ $12uGp$useEffect(() => {
1736
+ return removeAllGlobalListeners;
1737
+ }, [
1738
+ removeAllGlobalListeners
1739
+ ]);
1740
+ return {
1741
+ addGlobalListener,
1742
+ removeGlobalListener,
1743
+ removeAllGlobalListeners
1744
+ };
1745
+ }
1746
+ function $313b98861ee5dd6c$export$d6875122194c7b44(props, defaultLabel) {
1747
+ let { id, "aria-label": label, "aria-labelledby": labelledBy } = props;
1748
+ id = $bdb11010cef70236$export$f680877a34711e37(id);
1749
+ if (labelledBy && label) {
1750
+ let ids = /* @__PURE__ */ new Set([
1751
+ ...labelledBy.trim().split(/\s+/),
1752
+ id
1753
+ ]);
1754
+ labelledBy = [
1755
+ ...ids
1756
+ ].join(" ");
1757
+ } else if (labelledBy)
1758
+ labelledBy = labelledBy.trim().split(/\s+/).join(" ");
1759
+ if (!label && !labelledBy && defaultLabel)
1760
+ label = defaultLabel;
1761
+ return {
1762
+ id,
1763
+ "aria-label": label,
1764
+ "aria-labelledby": labelledBy
1765
+ };
1766
+ }
1767
+ function $df56164dff5785e2$export$4338b53315abf666(forwardedRef) {
1768
+ const objRef = $12uGp$useRef();
1769
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
1770
+ if (!forwardedRef)
1771
+ return;
1772
+ if (typeof forwardedRef === "function")
1773
+ forwardedRef(objRef.current);
1774
+ else
1775
+ forwardedRef.current = objRef.current;
1776
+ }, [
1777
+ forwardedRef
1778
+ ]);
1779
+ return objRef;
1780
+ }
1781
+ function $e7801be82b4b2a53$export$4debdb1a3f0fa79e(context, ref) {
1782
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
1783
+ if (context && context.ref && ref) {
1784
+ context.ref.current = ref.current;
1785
+ return () => {
1786
+ context.ref.current = null;
1787
+ };
1788
+ }
1789
+ }, [
1790
+ context,
1791
+ ref
1792
+ ]);
1793
+ }
1794
+ var $5df64b3807dc15ee$var$visualViewport = typeof window !== "undefined" && window.visualViewport;
1795
+ var $ef06256079686ba0$var$descriptionId = 0;
1796
+ var $ef06256079686ba0$var$descriptionNodes = /* @__PURE__ */ new Map();
1797
+ function $ef06256079686ba0$export$f8aeda7b10753fa1(description) {
1798
+ let [id1, setId] = $12uGp$useState(void 0);
1799
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
1800
+ if (!description)
1801
+ return;
1802
+ let desc = $ef06256079686ba0$var$descriptionNodes.get(description);
1803
+ if (!desc) {
1804
+ let id = `react-aria-description-${$ef06256079686ba0$var$descriptionId++}`;
1805
+ setId(id);
1806
+ let node = document.createElement("div");
1807
+ node.id = id;
1808
+ node.style.display = "none";
1809
+ node.textContent = description;
1810
+ document.body.appendChild(node);
1811
+ desc = {
1812
+ refCount: 0,
1813
+ element: node
1814
+ };
1815
+ $ef06256079686ba0$var$descriptionNodes.set(description, desc);
1816
+ } else
1817
+ setId(desc.element.id);
1818
+ desc.refCount++;
1819
+ return () => {
1820
+ if (--desc.refCount === 0) {
1821
+ desc.element.remove();
1822
+ $ef06256079686ba0$var$descriptionNodes.delete(description);
1823
+ }
1824
+ };
1825
+ }, [
1826
+ description
1827
+ ]);
1828
+ return {
1829
+ "aria-describedby": description ? id1 : void 0
1830
+ };
1831
+ }
1832
+ function $c87311424ea30a05$var$testUserAgent(re) {
1833
+ var ref;
1834
+ if (typeof window === "undefined" || window.navigator == null)
1835
+ return false;
1836
+ return ((ref = window.navigator["userAgentData"]) === null || ref === void 0 ? void 0 : ref.brands.some(
1837
+ (brand) => re.test(brand.brand)
1838
+ )) || re.test(window.navigator.userAgent);
1839
+ }
1840
+ function $c87311424ea30a05$var$testPlatform(re) {
1841
+ var ref;
1842
+ return typeof window !== "undefined" && window.navigator != null ? re.test(((ref = window.navigator["userAgentData"]) === null || ref === void 0 ? void 0 : ref.platform) || window.navigator.platform) : false;
1843
+ }
1844
+ function $c87311424ea30a05$export$9ac100e40613ea10() {
1845
+ return $c87311424ea30a05$var$testPlatform(/^Mac/i);
1846
+ }
1847
+ function $c87311424ea30a05$export$186c6964ca17d99() {
1848
+ return $c87311424ea30a05$var$testPlatform(/^iPhone/i);
1849
+ }
1850
+ function $c87311424ea30a05$export$7bef049ce92e4224() {
1851
+ return $c87311424ea30a05$var$testPlatform(/^iPad/i) || $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;
1852
+ }
1853
+ function $c87311424ea30a05$export$fedb369cb70207f1() {
1854
+ return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();
1855
+ }
1856
+ function $c87311424ea30a05$export$e1865c3bedcd822b() {
1857
+ return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();
1858
+ }
1859
+ function $c87311424ea30a05$export$78551043582a6a98() {
1860
+ return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();
1861
+ }
1862
+ function $c87311424ea30a05$export$6446a186d09e379e() {
1863
+ return $c87311424ea30a05$var$testUserAgent(/Chrome/i);
1864
+ }
1865
+ function $c87311424ea30a05$export$a11b0059900ceec8() {
1866
+ return $c87311424ea30a05$var$testUserAgent(/Android/i);
1867
+ }
1868
+ function $e9faafb641e167db$export$90fc3a17d93f704c(ref, event, handler1, options) {
1869
+ let handlerRef = $12uGp$useRef(handler1);
1870
+ handlerRef.current = handler1;
1871
+ let isDisabled = handler1 == null;
1872
+ $12uGp$useEffect(() => {
1873
+ if (isDisabled)
1874
+ return;
1875
+ let element = ref.current;
1876
+ let handler = (e) => handlerRef.current.call(this, e);
1877
+ element.addEventListener(event, handler, options);
1878
+ return () => {
1879
+ element.removeEventListener(event, handler, options);
1880
+ };
1881
+ }, [
1882
+ ref,
1883
+ event,
1884
+ options,
1885
+ isDisabled
1886
+ ]);
1887
+ }
1888
+ function $1dbecbe27a04f9af$export$14d238f342723f25(defaultValue) {
1889
+ let [value, setValue] = $12uGp$useState(defaultValue);
1890
+ let valueRef = $12uGp$useRef(value);
1891
+ let effect = $12uGp$useRef(null);
1892
+ valueRef.current = value;
1893
+ let nextRef = $12uGp$useRef(null);
1894
+ nextRef.current = () => {
1895
+ let newValue = effect.current.next();
1896
+ if (newValue.done) {
1897
+ effect.current = null;
1898
+ return;
1899
+ }
1900
+ if (value === newValue.value)
1901
+ nextRef.current();
1902
+ else
1903
+ setValue(newValue.value);
1904
+ };
1905
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
1906
+ if (effect.current)
1907
+ nextRef.current();
1908
+ });
1909
+ let queue = $12uGp$useCallback((fn) => {
1910
+ effect.current = fn(valueRef.current);
1911
+ nextRef.current();
1912
+ }, [
1913
+ effect,
1914
+ nextRef
1915
+ ]);
1916
+ return [
1917
+ value,
1918
+ queue
1919
+ ];
1920
+ }
1921
+ function $2f04cbc44ee30ce0$export$53a0910f038337bd(scrollView, element) {
1922
+ let offsetX = $2f04cbc44ee30ce0$var$relativeOffset(scrollView, element, "left");
1923
+ let offsetY = $2f04cbc44ee30ce0$var$relativeOffset(scrollView, element, "top");
1924
+ let width = element.offsetWidth;
1925
+ let height = element.offsetHeight;
1926
+ let x = scrollView.scrollLeft;
1927
+ let y = scrollView.scrollTop;
1928
+ let maxX = x + scrollView.offsetWidth;
1929
+ let maxY = y + scrollView.offsetHeight;
1930
+ if (offsetX <= x)
1931
+ x = offsetX;
1932
+ else if (offsetX + width > maxX)
1933
+ x += offsetX + width - maxX;
1934
+ if (offsetY <= y)
1935
+ y = offsetY;
1936
+ else if (offsetY + height > maxY)
1937
+ y += offsetY + height - maxY;
1938
+ scrollView.scrollLeft = x;
1939
+ scrollView.scrollTop = y;
1940
+ }
1941
+ function $2f04cbc44ee30ce0$var$relativeOffset(ancestor, child, axis) {
1942
+ const prop = axis === "left" ? "offsetLeft" : "offsetTop";
1943
+ let sum = 0;
1944
+ while (child.offsetParent) {
1945
+ sum += child[prop];
1946
+ if (child.offsetParent === ancestor)
1947
+ break;
1948
+ else if (child.offsetParent.contains(ancestor)) {
1949
+ sum -= ancestor[prop];
1950
+ break;
1951
+ }
1952
+ child = child.offsetParent;
1953
+ }
1954
+ return sum;
1955
+ }
1956
+ function $6a7db85432448f7f$export$60278871457622de(event) {
1957
+ if (event.mozInputSource === 0 && event.isTrusted)
1958
+ return true;
1959
+ if ($c87311424ea30a05$export$a11b0059900ceec8() && event.pointerType)
1960
+ return event.type === "click" && event.buttons === 1;
1961
+ return event.detail === 0 && !event.pointerType;
1962
+ }
1963
+ function $6a7db85432448f7f$export$29bf1b5f2c56cf63(event) {
1964
+ return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "mouse";
1965
+ }
1966
+
1967
+ // ../../node_modules/@react-aria/interactions/dist/module.js
1968
+ import $bx7SL$react, { useRef as $bx7SL$useRef, useContext as $bx7SL$useContext, useState as $bx7SL$useState, useMemo as $bx7SL$useMemo, useEffect as $bx7SL$useEffect, useCallback as $bx7SL$useCallback } from "react";
1969
+ var $14c0b72509d70225$var$state = "default";
1970
+ var $14c0b72509d70225$var$savedUserSelect = "";
1971
+ var $14c0b72509d70225$var$modifiedElementMap = /* @__PURE__ */ new WeakMap();
1972
+ function $14c0b72509d70225$export$16a4697467175487(target) {
1973
+ if ($c87311424ea30a05$export$fedb369cb70207f1()) {
1974
+ if ($14c0b72509d70225$var$state === "default") {
1975
+ $14c0b72509d70225$var$savedUserSelect = document.documentElement.style.webkitUserSelect;
1976
+ document.documentElement.style.webkitUserSelect = "none";
1977
+ }
1978
+ $14c0b72509d70225$var$state = "disabled";
1979
+ } else if (target instanceof HTMLElement || target instanceof SVGElement) {
1980
+ $14c0b72509d70225$var$modifiedElementMap.set(target, target.style.userSelect);
1981
+ target.style.userSelect = "none";
1982
+ }
1983
+ }
1984
+ function $14c0b72509d70225$export$b0d6fa1ab32e3295(target) {
1985
+ if ($c87311424ea30a05$export$fedb369cb70207f1()) {
1986
+ if ($14c0b72509d70225$var$state !== "disabled")
1987
+ return;
1988
+ $14c0b72509d70225$var$state = "restoring";
1989
+ setTimeout(() => {
1990
+ $bbed8b41f857bcc0$export$24490316f764c430(() => {
1991
+ if ($14c0b72509d70225$var$state === "restoring") {
1992
+ if (document.documentElement.style.webkitUserSelect === "none")
1993
+ document.documentElement.style.webkitUserSelect = $14c0b72509d70225$var$savedUserSelect || "";
1994
+ $14c0b72509d70225$var$savedUserSelect = "";
1995
+ $14c0b72509d70225$var$state = "default";
1996
+ }
1997
+ });
1998
+ }, 300);
1999
+ } else if (target instanceof HTMLElement || target instanceof SVGElement) {
2000
+ if (target && $14c0b72509d70225$var$modifiedElementMap.has(target)) {
2001
+ let targetOldUserSelect = $14c0b72509d70225$var$modifiedElementMap.get(target);
2002
+ if (target.style.userSelect === "none")
2003
+ target.style.userSelect = targetOldUserSelect;
2004
+ if (target.getAttribute("style") === "")
2005
+ target.removeAttribute("style");
2006
+ $14c0b72509d70225$var$modifiedElementMap.delete(target);
2007
+ }
2008
+ }
2009
+ }
2010
+ var $ae1eeba8b9eafd08$export$5165eccb35aaadb5 = $bx7SL$react.createContext(null);
2011
+ $ae1eeba8b9eafd08$export$5165eccb35aaadb5.displayName = "PressResponderContext";
2012
+ function $f6c31cce2adf654f$var$usePressResponderContext(props) {
2013
+ let context = $bx7SL$useContext($ae1eeba8b9eafd08$export$5165eccb35aaadb5);
2014
+ if (context) {
2015
+ let { register, ...contextProps } = context;
2016
+ props = $3ef42575df84b30b$export$9d1611c77c2fe928(contextProps, props);
2017
+ register();
2018
+ }
2019
+ $e7801be82b4b2a53$export$4debdb1a3f0fa79e(context, props.ref);
2020
+ return props;
2021
+ }
2022
+ function $f6c31cce2adf654f$export$45712eceda6fad21(props) {
2023
+ let {
2024
+ onPress: onPress1,
2025
+ onPressChange: onPressChange1,
2026
+ onPressStart: onPressStart1,
2027
+ onPressEnd: onPressEnd1,
2028
+ onPressUp: onPressUp1,
2029
+ isDisabled: isDisabled1,
2030
+ isPressed: isPressedProp,
2031
+ preventFocusOnPress,
2032
+ shouldCancelOnPointerExit,
2033
+ allowTextSelectionOnPress,
2034
+ ref: _,
2035
+ ...domProps
2036
+ } = $f6c31cce2adf654f$var$usePressResponderContext(props);
2037
+ let propsRef = $bx7SL$useRef(null);
2038
+ propsRef.current = {
2039
+ onPress: onPress1,
2040
+ onPressChange: onPressChange1,
2041
+ onPressStart: onPressStart1,
2042
+ onPressEnd: onPressEnd1,
2043
+ onPressUp: onPressUp1,
2044
+ isDisabled: isDisabled1,
2045
+ shouldCancelOnPointerExit
2046
+ };
2047
+ let [isPressed, setPressed] = $bx7SL$useState(false);
2048
+ let ref = $bx7SL$useRef({
2049
+ isPressed: false,
2050
+ ignoreEmulatedMouseEvents: false,
2051
+ ignoreClickAfterPress: false,
2052
+ didFirePressStart: false,
2053
+ activePointerId: null,
2054
+ target: null,
2055
+ isOverTarget: false,
2056
+ pointerType: null
2057
+ });
2058
+ let { addGlobalListener, removeAllGlobalListeners } = $03deb23ff14920c4$export$4eaf04e54aa8eed6();
2059
+ let pressProps1 = $bx7SL$useMemo(() => {
2060
+ let state = ref.current;
2061
+ let triggerPressStart = (originalEvent, pointerType) => {
2062
+ let { onPressStart, onPressChange, isDisabled } = propsRef.current;
2063
+ if (isDisabled || state.didFirePressStart)
2064
+ return;
2065
+ if (onPressStart)
2066
+ onPressStart({
2067
+ type: "pressstart",
2068
+ pointerType,
2069
+ target: originalEvent.currentTarget,
2070
+ shiftKey: originalEvent.shiftKey,
2071
+ metaKey: originalEvent.metaKey,
2072
+ ctrlKey: originalEvent.ctrlKey,
2073
+ altKey: originalEvent.altKey
2074
+ });
2075
+ if (onPressChange)
2076
+ onPressChange(true);
2077
+ state.didFirePressStart = true;
2078
+ setPressed(true);
2079
+ };
2080
+ let triggerPressEnd = (originalEvent, pointerType, wasPressed = true) => {
2081
+ let { onPressEnd, onPressChange, onPress, isDisabled } = propsRef.current;
2082
+ if (!state.didFirePressStart)
2083
+ return;
2084
+ state.ignoreClickAfterPress = true;
2085
+ state.didFirePressStart = false;
2086
+ if (onPressEnd)
2087
+ onPressEnd({
2088
+ type: "pressend",
2089
+ pointerType,
2090
+ target: originalEvent.currentTarget,
2091
+ shiftKey: originalEvent.shiftKey,
2092
+ metaKey: originalEvent.metaKey,
2093
+ ctrlKey: originalEvent.ctrlKey,
2094
+ altKey: originalEvent.altKey
2095
+ });
2096
+ if (onPressChange)
2097
+ onPressChange(false);
2098
+ setPressed(false);
2099
+ if (onPress && wasPressed && !isDisabled)
2100
+ onPress({
2101
+ type: "press",
2102
+ pointerType,
2103
+ target: originalEvent.currentTarget,
2104
+ shiftKey: originalEvent.shiftKey,
2105
+ metaKey: originalEvent.metaKey,
2106
+ ctrlKey: originalEvent.ctrlKey,
2107
+ altKey: originalEvent.altKey
2108
+ });
2109
+ };
2110
+ let triggerPressUp = (originalEvent, pointerType) => {
2111
+ let { onPressUp, isDisabled } = propsRef.current;
2112
+ if (isDisabled)
2113
+ return;
2114
+ if (onPressUp)
2115
+ onPressUp({
2116
+ type: "pressup",
2117
+ pointerType,
2118
+ target: originalEvent.currentTarget,
2119
+ shiftKey: originalEvent.shiftKey,
2120
+ metaKey: originalEvent.metaKey,
2121
+ ctrlKey: originalEvent.ctrlKey,
2122
+ altKey: originalEvent.altKey
2123
+ });
2124
+ };
2125
+ let cancel = (e) => {
2126
+ if (state.isPressed) {
2127
+ if (state.isOverTarget)
2128
+ triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);
2129
+ state.isPressed = false;
2130
+ state.isOverTarget = false;
2131
+ state.activePointerId = null;
2132
+ state.pointerType = null;
2133
+ removeAllGlobalListeners();
2134
+ if (!allowTextSelectionOnPress)
2135
+ $14c0b72509d70225$export$b0d6fa1ab32e3295(state.target);
2136
+ }
2137
+ };
2138
+ let pressProps = {
2139
+ onKeyDown(e) {
2140
+ if ($f6c31cce2adf654f$var$isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && e.currentTarget.contains(e.target)) {
2141
+ if ($f6c31cce2adf654f$var$shouldPreventDefaultKeyboard(e.target, e.key))
2142
+ e.preventDefault();
2143
+ e.stopPropagation();
2144
+ if (!state.isPressed && !e.repeat) {
2145
+ state.target = e.currentTarget;
2146
+ state.isPressed = true;
2147
+ triggerPressStart(e, "keyboard");
2148
+ addGlobalListener(document, "keyup", onKeyUp, false);
2149
+ }
2150
+ } else if (e.key === "Enter" && $f6c31cce2adf654f$var$isHTMLAnchorLink(e.currentTarget))
2151
+ e.stopPropagation();
2152
+ },
2153
+ onKeyUp(e) {
2154
+ if ($f6c31cce2adf654f$var$isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && !e.repeat && e.currentTarget.contains(e.target))
2155
+ triggerPressUp($f6c31cce2adf654f$var$createEvent(state.target, e), "keyboard");
2156
+ },
2157
+ onClick(e) {
2158
+ if (e && !e.currentTarget.contains(e.target))
2159
+ return;
2160
+ if (e && e.button === 0) {
2161
+ e.stopPropagation();
2162
+ if (isDisabled1)
2163
+ e.preventDefault();
2164
+ if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && (state.pointerType === "virtual" || $6a7db85432448f7f$export$60278871457622de(e.nativeEvent))) {
2165
+ if (!isDisabled1 && !preventFocusOnPress)
2166
+ $7215afc6de606d6b$export$de79e2c695e052f3(e.currentTarget);
2167
+ triggerPressStart(e, "virtual");
2168
+ triggerPressUp(e, "virtual");
2169
+ triggerPressEnd(e, "virtual");
2170
+ }
2171
+ state.ignoreEmulatedMouseEvents = false;
2172
+ state.ignoreClickAfterPress = false;
2173
+ }
2174
+ }
2175
+ };
2176
+ let onKeyUp = (e) => {
2177
+ if (state.isPressed && $f6c31cce2adf654f$var$isValidKeyboardEvent(e, state.target)) {
2178
+ if ($f6c31cce2adf654f$var$shouldPreventDefaultKeyboard(e.target, e.key))
2179
+ e.preventDefault();
2180
+ e.stopPropagation();
2181
+ state.isPressed = false;
2182
+ let target = e.target;
2183
+ triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), "keyboard", state.target.contains(target));
2184
+ removeAllGlobalListeners();
2185
+ if (state.target instanceof HTMLElement && state.target.contains(target) && ($f6c31cce2adf654f$var$isHTMLAnchorLink(state.target) || state.target.getAttribute("role") === "link"))
2186
+ state.target.click();
2187
+ }
2188
+ };
2189
+ if (typeof PointerEvent !== "undefined") {
2190
+ pressProps.onPointerDown = (e) => {
2191
+ if (e.button !== 0 || !e.currentTarget.contains(e.target))
2192
+ return;
2193
+ if ($6a7db85432448f7f$export$29bf1b5f2c56cf63(e.nativeEvent)) {
2194
+ state.pointerType = "virtual";
2195
+ return;
2196
+ }
2197
+ if ($f6c31cce2adf654f$var$shouldPreventDefault(e.currentTarget))
2198
+ e.preventDefault();
2199
+ state.pointerType = e.pointerType;
2200
+ e.stopPropagation();
2201
+ if (!state.isPressed) {
2202
+ state.isPressed = true;
2203
+ state.isOverTarget = true;
2204
+ state.activePointerId = e.pointerId;
2205
+ state.target = e.currentTarget;
2206
+ if (!isDisabled1 && !preventFocusOnPress)
2207
+ $7215afc6de606d6b$export$de79e2c695e052f3(e.currentTarget);
2208
+ if (!allowTextSelectionOnPress)
2209
+ $14c0b72509d70225$export$16a4697467175487(state.target);
2210
+ triggerPressStart(e, state.pointerType);
2211
+ addGlobalListener(document, "pointermove", onPointerMove, false);
2212
+ addGlobalListener(document, "pointerup", onPointerUp, false);
2213
+ addGlobalListener(document, "pointercancel", onPointerCancel, false);
2214
+ }
2215
+ };
2216
+ pressProps.onMouseDown = (e) => {
2217
+ if (!e.currentTarget.contains(e.target))
2218
+ return;
2219
+ if (e.button === 0) {
2220
+ if ($f6c31cce2adf654f$var$shouldPreventDefault(e.currentTarget))
2221
+ e.preventDefault();
2222
+ e.stopPropagation();
2223
+ }
2224
+ };
2225
+ pressProps.onPointerUp = (e) => {
2226
+ if (!e.currentTarget.contains(e.target) || state.pointerType === "virtual")
2227
+ return;
2228
+ if (e.button === 0 && $f6c31cce2adf654f$var$isOverTarget(e, e.currentTarget))
2229
+ triggerPressUp(e, state.pointerType || e.pointerType);
2230
+ };
2231
+ let onPointerMove = (e) => {
2232
+ if (e.pointerId !== state.activePointerId)
2233
+ return;
2234
+ if ($f6c31cce2adf654f$var$isOverTarget(e, state.target)) {
2235
+ if (!state.isOverTarget) {
2236
+ state.isOverTarget = true;
2237
+ triggerPressStart($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType);
2238
+ }
2239
+ } else if (state.isOverTarget) {
2240
+ state.isOverTarget = false;
2241
+ triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);
2242
+ if (propsRef.current.shouldCancelOnPointerExit)
2243
+ cancel(e);
2244
+ }
2245
+ };
2246
+ let onPointerUp = (e) => {
2247
+ if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0) {
2248
+ if ($f6c31cce2adf654f$var$isOverTarget(e, state.target))
2249
+ triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType);
2250
+ else if (state.isOverTarget)
2251
+ triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);
2252
+ state.isPressed = false;
2253
+ state.isOverTarget = false;
2254
+ state.activePointerId = null;
2255
+ state.pointerType = null;
2256
+ removeAllGlobalListeners();
2257
+ if (!allowTextSelectionOnPress)
2258
+ $14c0b72509d70225$export$b0d6fa1ab32e3295(state.target);
2259
+ }
2260
+ };
2261
+ let onPointerCancel = (e) => {
2262
+ cancel(e);
2263
+ };
2264
+ pressProps.onDragStart = (e) => {
2265
+ if (!e.currentTarget.contains(e.target))
2266
+ return;
2267
+ cancel(e);
2268
+ };
2269
+ } else {
2270
+ pressProps.onMouseDown = (e) => {
2271
+ if (e.button !== 0 || !e.currentTarget.contains(e.target))
2272
+ return;
2273
+ if ($f6c31cce2adf654f$var$shouldPreventDefault(e.currentTarget))
2274
+ e.preventDefault();
2275
+ e.stopPropagation();
2276
+ if (state.ignoreEmulatedMouseEvents)
2277
+ return;
2278
+ state.isPressed = true;
2279
+ state.isOverTarget = true;
2280
+ state.target = e.currentTarget;
2281
+ state.pointerType = $6a7db85432448f7f$export$60278871457622de(e.nativeEvent) ? "virtual" : "mouse";
2282
+ if (!isDisabled1 && !preventFocusOnPress)
2283
+ $7215afc6de606d6b$export$de79e2c695e052f3(e.currentTarget);
2284
+ triggerPressStart(e, state.pointerType);
2285
+ addGlobalListener(document, "mouseup", onMouseUp, false);
2286
+ };
2287
+ pressProps.onMouseEnter = (e) => {
2288
+ if (!e.currentTarget.contains(e.target))
2289
+ return;
2290
+ e.stopPropagation();
2291
+ if (state.isPressed && !state.ignoreEmulatedMouseEvents) {
2292
+ state.isOverTarget = true;
2293
+ triggerPressStart(e, state.pointerType);
2294
+ }
2295
+ };
2296
+ pressProps.onMouseLeave = (e) => {
2297
+ if (!e.currentTarget.contains(e.target))
2298
+ return;
2299
+ e.stopPropagation();
2300
+ if (state.isPressed && !state.ignoreEmulatedMouseEvents) {
2301
+ state.isOverTarget = false;
2302
+ triggerPressEnd(e, state.pointerType, false);
2303
+ if (propsRef.current.shouldCancelOnPointerExit)
2304
+ cancel(e);
2305
+ }
2306
+ };
2307
+ pressProps.onMouseUp = (e) => {
2308
+ if (!e.currentTarget.contains(e.target))
2309
+ return;
2310
+ if (!state.ignoreEmulatedMouseEvents && e.button === 0)
2311
+ triggerPressUp(e, state.pointerType);
2312
+ };
2313
+ let onMouseUp = (e) => {
2314
+ if (e.button !== 0)
2315
+ return;
2316
+ state.isPressed = false;
2317
+ removeAllGlobalListeners();
2318
+ if (state.ignoreEmulatedMouseEvents) {
2319
+ state.ignoreEmulatedMouseEvents = false;
2320
+ return;
2321
+ }
2322
+ if ($f6c31cce2adf654f$var$isOverTarget(e, state.target))
2323
+ triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType);
2324
+ else if (state.isOverTarget)
2325
+ triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);
2326
+ state.isOverTarget = false;
2327
+ };
2328
+ pressProps.onTouchStart = (e) => {
2329
+ if (!e.currentTarget.contains(e.target))
2330
+ return;
2331
+ e.stopPropagation();
2332
+ let touch = $f6c31cce2adf654f$var$getTouchFromEvent(e.nativeEvent);
2333
+ if (!touch)
2334
+ return;
2335
+ state.activePointerId = touch.identifier;
2336
+ state.ignoreEmulatedMouseEvents = true;
2337
+ state.isOverTarget = true;
2338
+ state.isPressed = true;
2339
+ state.target = e.currentTarget;
2340
+ state.pointerType = "touch";
2341
+ if (!isDisabled1 && !preventFocusOnPress)
2342
+ $7215afc6de606d6b$export$de79e2c695e052f3(e.currentTarget);
2343
+ if (!allowTextSelectionOnPress)
2344
+ $14c0b72509d70225$export$16a4697467175487(state.target);
2345
+ triggerPressStart(e, state.pointerType);
2346
+ addGlobalListener(window, "scroll", onScroll, true);
2347
+ };
2348
+ pressProps.onTouchMove = (e) => {
2349
+ if (!e.currentTarget.contains(e.target))
2350
+ return;
2351
+ e.stopPropagation();
2352
+ if (!state.isPressed)
2353
+ return;
2354
+ let touch = $f6c31cce2adf654f$var$getTouchById(e.nativeEvent, state.activePointerId);
2355
+ if (touch && $f6c31cce2adf654f$var$isOverTarget(touch, e.currentTarget)) {
2356
+ if (!state.isOverTarget) {
2357
+ state.isOverTarget = true;
2358
+ triggerPressStart(e, state.pointerType);
2359
+ }
2360
+ } else if (state.isOverTarget) {
2361
+ state.isOverTarget = false;
2362
+ triggerPressEnd(e, state.pointerType, false);
2363
+ if (propsRef.current.shouldCancelOnPointerExit)
2364
+ cancel(e);
2365
+ }
2366
+ };
2367
+ pressProps.onTouchEnd = (e) => {
2368
+ if (!e.currentTarget.contains(e.target))
2369
+ return;
2370
+ e.stopPropagation();
2371
+ if (!state.isPressed)
2372
+ return;
2373
+ let touch = $f6c31cce2adf654f$var$getTouchById(e.nativeEvent, state.activePointerId);
2374
+ if (touch && $f6c31cce2adf654f$var$isOverTarget(touch, e.currentTarget)) {
2375
+ triggerPressUp(e, state.pointerType);
2376
+ triggerPressEnd(e, state.pointerType);
2377
+ } else if (state.isOverTarget)
2378
+ triggerPressEnd(e, state.pointerType, false);
2379
+ state.isPressed = false;
2380
+ state.activePointerId = null;
2381
+ state.isOverTarget = false;
2382
+ state.ignoreEmulatedMouseEvents = true;
2383
+ if (!allowTextSelectionOnPress)
2384
+ $14c0b72509d70225$export$b0d6fa1ab32e3295(state.target);
2385
+ removeAllGlobalListeners();
2386
+ };
2387
+ pressProps.onTouchCancel = (e) => {
2388
+ if (!e.currentTarget.contains(e.target))
2389
+ return;
2390
+ e.stopPropagation();
2391
+ if (state.isPressed)
2392
+ cancel(e);
2393
+ };
2394
+ let onScroll = (e) => {
2395
+ if (state.isPressed && e.target.contains(state.target))
2396
+ cancel({
2397
+ currentTarget: state.target,
2398
+ shiftKey: false,
2399
+ ctrlKey: false,
2400
+ metaKey: false,
2401
+ altKey: false
2402
+ });
2403
+ };
2404
+ pressProps.onDragStart = (e) => {
2405
+ if (!e.currentTarget.contains(e.target))
2406
+ return;
2407
+ cancel(e);
2408
+ };
2409
+ }
2410
+ return pressProps;
2411
+ }, [
2412
+ addGlobalListener,
2413
+ isDisabled1,
2414
+ preventFocusOnPress,
2415
+ removeAllGlobalListeners,
2416
+ allowTextSelectionOnPress
2417
+ ]);
2418
+ $bx7SL$useEffect(() => {
2419
+ return () => {
2420
+ if (!allowTextSelectionOnPress)
2421
+ $14c0b72509d70225$export$b0d6fa1ab32e3295(ref.current.target);
2422
+ };
2423
+ }, [
2424
+ allowTextSelectionOnPress
2425
+ ]);
2426
+ return {
2427
+ isPressed: isPressedProp || isPressed,
2428
+ pressProps: $3ef42575df84b30b$export$9d1611c77c2fe928(domProps, pressProps1)
2429
+ };
2430
+ }
2431
+ function $f6c31cce2adf654f$var$isHTMLAnchorLink(target) {
2432
+ return target.tagName === "A" && target.hasAttribute("href");
2433
+ }
2434
+ function $f6c31cce2adf654f$var$isValidKeyboardEvent(event, currentTarget) {
2435
+ const { key, code } = event;
2436
+ const element = currentTarget;
2437
+ const role = element.getAttribute("role");
2438
+ return (key === "Enter" || key === " " || key === "Spacebar" || code === "Space") && !(element instanceof HTMLInputElement && !$f6c31cce2adf654f$var$isValidInputKey(element, key) || element instanceof HTMLTextAreaElement || element.isContentEditable) && (!$f6c31cce2adf654f$var$isHTMLAnchorLink(element) || role === "button" && key !== "Enter") && !(role === "link" && key !== "Enter");
2439
+ }
2440
+ function $f6c31cce2adf654f$var$getTouchFromEvent(event) {
2441
+ const { targetTouches } = event;
2442
+ if (targetTouches.length > 0)
2443
+ return targetTouches[0];
2444
+ return null;
2445
+ }
2446
+ function $f6c31cce2adf654f$var$getTouchById(event, pointerId) {
2447
+ const changedTouches = event.changedTouches;
2448
+ for (let i = 0; i < changedTouches.length; i++) {
2449
+ const touch = changedTouches[i];
2450
+ if (touch.identifier === pointerId)
2451
+ return touch;
2452
+ }
2453
+ return null;
2454
+ }
2455
+ function $f6c31cce2adf654f$var$createEvent(target, e) {
2456
+ return {
2457
+ currentTarget: target,
2458
+ shiftKey: e.shiftKey,
2459
+ ctrlKey: e.ctrlKey,
2460
+ metaKey: e.metaKey,
2461
+ altKey: e.altKey
2462
+ };
2463
+ }
2464
+ function $f6c31cce2adf654f$var$getPointClientRect(point) {
2465
+ let offsetX = point.width / 2 || point.radiusX || 0;
2466
+ let offsetY = point.height / 2 || point.radiusY || 0;
2467
+ return {
2468
+ top: point.clientY - offsetY,
2469
+ right: point.clientX + offsetX,
2470
+ bottom: point.clientY + offsetY,
2471
+ left: point.clientX - offsetX
2472
+ };
2473
+ }
2474
+ function $f6c31cce2adf654f$var$areRectanglesOverlapping(a, b) {
2475
+ if (a.left > b.right || b.left > a.right)
2476
+ return false;
2477
+ if (a.top > b.bottom || b.top > a.bottom)
2478
+ return false;
2479
+ return true;
2480
+ }
2481
+ function $f6c31cce2adf654f$var$isOverTarget(point, target) {
2482
+ let rect = target.getBoundingClientRect();
2483
+ let pointRect = $f6c31cce2adf654f$var$getPointClientRect(point);
2484
+ return $f6c31cce2adf654f$var$areRectanglesOverlapping(rect, pointRect);
2485
+ }
2486
+ function $f6c31cce2adf654f$var$shouldPreventDefault(target) {
2487
+ return !(target instanceof HTMLElement) || !target.draggable;
2488
+ }
2489
+ function $f6c31cce2adf654f$var$shouldPreventDefaultKeyboard(target, key) {
2490
+ if (target instanceof HTMLInputElement)
2491
+ return !$f6c31cce2adf654f$var$isValidInputKey(target, key);
2492
+ if (target instanceof HTMLButtonElement)
2493
+ return target.type !== "submit";
2494
+ return true;
2495
+ }
2496
+ var $f6c31cce2adf654f$var$nonTextInputTypes = /* @__PURE__ */ new Set([
2497
+ "checkbox",
2498
+ "radio",
2499
+ "range",
2500
+ "color",
2501
+ "file",
2502
+ "image",
2503
+ "button",
2504
+ "submit",
2505
+ "reset"
2506
+ ]);
2507
+ function $f6c31cce2adf654f$var$isValidInputKey(target, key) {
2508
+ return target.type === "checkbox" || target.type === "radio" ? key === " " : $f6c31cce2adf654f$var$nonTextInputTypes.has(target.type);
2509
+ }
2510
+ var $8a9cb279dc87e130$export$905e7fc544a71f36 = class {
2511
+ isDefaultPrevented() {
2512
+ return this.nativeEvent.defaultPrevented;
2513
+ }
2514
+ preventDefault() {
2515
+ this.defaultPrevented = true;
2516
+ this.nativeEvent.preventDefault();
2517
+ }
2518
+ stopPropagation() {
2519
+ this.nativeEvent.stopPropagation();
2520
+ this.isPropagationStopped = () => true;
2521
+ }
2522
+ isPropagationStopped() {
2523
+ return false;
2524
+ }
2525
+ persist() {
2526
+ }
2527
+ constructor(type, nativeEvent) {
2528
+ this.nativeEvent = nativeEvent;
2529
+ this.target = nativeEvent.target;
2530
+ this.currentTarget = nativeEvent.currentTarget;
2531
+ this.relatedTarget = nativeEvent.relatedTarget;
2532
+ this.bubbles = nativeEvent.bubbles;
2533
+ this.cancelable = nativeEvent.cancelable;
2534
+ this.defaultPrevented = nativeEvent.defaultPrevented;
2535
+ this.eventPhase = nativeEvent.eventPhase;
2536
+ this.isTrusted = nativeEvent.isTrusted;
2537
+ this.timeStamp = nativeEvent.timeStamp;
2538
+ this.type = type;
2539
+ }
2540
+ };
2541
+ function $8a9cb279dc87e130$export$715c682d09d639cc(onBlur) {
2542
+ let stateRef = $bx7SL$useRef({
2543
+ isFocused: false,
2544
+ onBlur,
2545
+ observer: null
2546
+ });
2547
+ stateRef.current.onBlur = onBlur;
2548
+ $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
2549
+ const state = stateRef.current;
2550
+ return () => {
2551
+ if (state.observer) {
2552
+ state.observer.disconnect();
2553
+ state.observer = null;
2554
+ }
2555
+ };
2556
+ }, []);
2557
+ return $bx7SL$useCallback((e1) => {
2558
+ if (e1.target instanceof HTMLButtonElement || e1.target instanceof HTMLInputElement || e1.target instanceof HTMLTextAreaElement || e1.target instanceof HTMLSelectElement) {
2559
+ stateRef.current.isFocused = true;
2560
+ let target = e1.target;
2561
+ let onBlurHandler = (e) => {
2562
+ var _current, ref;
2563
+ stateRef.current.isFocused = false;
2564
+ if (target.disabled)
2565
+ (ref = (_current = stateRef.current).onBlur) === null || ref === void 0 ? void 0 : ref.call(_current, new $8a9cb279dc87e130$export$905e7fc544a71f36("blur", e));
2566
+ if (stateRef.current.observer) {
2567
+ stateRef.current.observer.disconnect();
2568
+ stateRef.current.observer = null;
2569
+ }
2570
+ };
2571
+ target.addEventListener("focusout", onBlurHandler, {
2572
+ once: true
2573
+ });
2574
+ stateRef.current.observer = new MutationObserver(() => {
2575
+ if (stateRef.current.isFocused && target.disabled) {
2576
+ stateRef.current.observer.disconnect();
2577
+ target.dispatchEvent(new FocusEvent("blur"));
2578
+ target.dispatchEvent(new FocusEvent("focusout", {
2579
+ bubbles: true
2580
+ }));
2581
+ }
2582
+ });
2583
+ stateRef.current.observer.observe(target, {
2584
+ attributes: true,
2585
+ attributeFilter: [
2586
+ "disabled"
2587
+ ]
2588
+ });
2589
+ }
2590
+ }, []);
2591
+ }
2592
+ var $507fabe10e71c6fb$var$currentModality = null;
2593
+ var $507fabe10e71c6fb$var$changeHandlers = /* @__PURE__ */ new Set();
2594
+ var $507fabe10e71c6fb$var$hasSetupGlobalListeners = false;
2595
+ var $507fabe10e71c6fb$var$hasEventBeforeFocus = false;
2596
+ var $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;
2597
+ function $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {
2598
+ for (let handler of $507fabe10e71c6fb$var$changeHandlers)
2599
+ handler(modality, e);
2600
+ }
2601
+ function $507fabe10e71c6fb$var$isValidKey(e) {
2602
+ return !(e.metaKey || !$c87311424ea30a05$export$9ac100e40613ea10() && e.altKey || e.ctrlKey || e.key === "Control" || e.key === "Shift" || e.key === "Meta");
2603
+ }
2604
+ function $507fabe10e71c6fb$var$handleKeyboardEvent(e) {
2605
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = true;
2606
+ if ($507fabe10e71c6fb$var$isValidKey(e)) {
2607
+ $507fabe10e71c6fb$var$currentModality = "keyboard";
2608
+ $507fabe10e71c6fb$var$triggerChangeHandlers("keyboard", e);
2609
+ }
2610
+ }
2611
+ function $507fabe10e71c6fb$var$handlePointerEvent(e) {
2612
+ $507fabe10e71c6fb$var$currentModality = "pointer";
2613
+ if (e.type === "mousedown" || e.type === "pointerdown") {
2614
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = true;
2615
+ $507fabe10e71c6fb$var$triggerChangeHandlers("pointer", e);
2616
+ }
2617
+ }
2618
+ function $507fabe10e71c6fb$var$handleClickEvent(e) {
2619
+ if ($6a7db85432448f7f$export$60278871457622de(e)) {
2620
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = true;
2621
+ $507fabe10e71c6fb$var$currentModality = "virtual";
2622
+ }
2623
+ }
2624
+ function $507fabe10e71c6fb$var$handleFocusEvent(e) {
2625
+ if (e.target === window || e.target === document)
2626
+ return;
2627
+ if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {
2628
+ $507fabe10e71c6fb$var$currentModality = "virtual";
2629
+ $507fabe10e71c6fb$var$triggerChangeHandlers("virtual", e);
2630
+ }
2631
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = false;
2632
+ $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;
2633
+ }
2634
+ function $507fabe10e71c6fb$var$handleWindowBlur() {
2635
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = false;
2636
+ $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;
2637
+ }
2638
+ function $507fabe10e71c6fb$var$setupGlobalFocusEvents() {
2639
+ if (typeof window === "undefined" || $507fabe10e71c6fb$var$hasSetupGlobalListeners)
2640
+ return;
2641
+ let focus = HTMLElement.prototype.focus;
2642
+ HTMLElement.prototype.focus = function() {
2643
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = true;
2644
+ focus.apply(this, arguments);
2645
+ };
2646
+ document.addEventListener("keydown", $507fabe10e71c6fb$var$handleKeyboardEvent, true);
2647
+ document.addEventListener("keyup", $507fabe10e71c6fb$var$handleKeyboardEvent, true);
2648
+ document.addEventListener("click", $507fabe10e71c6fb$var$handleClickEvent, true);
2649
+ window.addEventListener("focus", $507fabe10e71c6fb$var$handleFocusEvent, true);
2650
+ window.addEventListener("blur", $507fabe10e71c6fb$var$handleWindowBlur, false);
2651
+ if (typeof PointerEvent !== "undefined") {
2652
+ document.addEventListener("pointerdown", $507fabe10e71c6fb$var$handlePointerEvent, true);
2653
+ document.addEventListener("pointermove", $507fabe10e71c6fb$var$handlePointerEvent, true);
2654
+ document.addEventListener("pointerup", $507fabe10e71c6fb$var$handlePointerEvent, true);
2655
+ } else {
2656
+ document.addEventListener("mousedown", $507fabe10e71c6fb$var$handlePointerEvent, true);
2657
+ document.addEventListener("mousemove", $507fabe10e71c6fb$var$handlePointerEvent, true);
2658
+ document.addEventListener("mouseup", $507fabe10e71c6fb$var$handlePointerEvent, true);
2659
+ }
2660
+ $507fabe10e71c6fb$var$hasSetupGlobalListeners = true;
2661
+ }
2662
+ if (typeof document !== "undefined") {
2663
+ if (document.readyState !== "loading")
2664
+ $507fabe10e71c6fb$var$setupGlobalFocusEvents();
2665
+ else
2666
+ document.addEventListener("DOMContentLoaded", $507fabe10e71c6fb$var$setupGlobalFocusEvents);
2667
+ }
2668
+ function $507fabe10e71c6fb$export$b9b3dfddab17db27() {
2669
+ return $507fabe10e71c6fb$var$currentModality !== "pointer";
2670
+ }
2671
+ function $9ab94262bd0047c7$export$420e68273165f4ec(props) {
2672
+ let { isDisabled, onBlurWithin, onFocusWithin, onFocusWithinChange } = props;
2673
+ let state = $bx7SL$useRef({
2674
+ isFocusWithin: false
2675
+ });
2676
+ let onBlur = $bx7SL$useCallback((e) => {
2677
+ if (state.current.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) {
2678
+ state.current.isFocusWithin = false;
2679
+ if (onBlurWithin)
2680
+ onBlurWithin(e);
2681
+ if (onFocusWithinChange)
2682
+ onFocusWithinChange(false);
2683
+ }
2684
+ }, [
2685
+ onBlurWithin,
2686
+ onFocusWithinChange,
2687
+ state
2688
+ ]);
2689
+ let onSyntheticFocus = $8a9cb279dc87e130$export$715c682d09d639cc(onBlur);
2690
+ let onFocus = $bx7SL$useCallback((e) => {
2691
+ if (!state.current.isFocusWithin) {
2692
+ if (onFocusWithin)
2693
+ onFocusWithin(e);
2694
+ if (onFocusWithinChange)
2695
+ onFocusWithinChange(true);
2696
+ state.current.isFocusWithin = true;
2697
+ onSyntheticFocus(e);
2698
+ }
2699
+ }, [
2700
+ onFocusWithin,
2701
+ onFocusWithinChange,
2702
+ onSyntheticFocus
2703
+ ]);
2704
+ if (isDisabled)
2705
+ return {
2706
+ focusWithinProps: {
2707
+ onFocus: null,
2708
+ onBlur: null
2709
+ }
2710
+ };
2711
+ return {
2712
+ focusWithinProps: {
2713
+ onFocus,
2714
+ onBlur
2715
+ }
2716
+ };
2717
+ }
2718
+ var $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;
2719
+ var $6179b936705e76d3$var$hoverCount = 0;
2720
+ function $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() {
2721
+ $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = true;
2722
+ setTimeout(() => {
2723
+ $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;
2724
+ }, 50);
2725
+ }
2726
+ function $6179b936705e76d3$var$handleGlobalPointerEvent(e) {
2727
+ if (e.pointerType === "touch")
2728
+ $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents();
2729
+ }
2730
+ function $6179b936705e76d3$var$setupGlobalTouchEvents() {
2731
+ if (typeof document === "undefined")
2732
+ return;
2733
+ if (typeof PointerEvent !== "undefined")
2734
+ document.addEventListener("pointerup", $6179b936705e76d3$var$handleGlobalPointerEvent);
2735
+ else
2736
+ document.addEventListener("touchend", $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);
2737
+ $6179b936705e76d3$var$hoverCount++;
2738
+ return () => {
2739
+ $6179b936705e76d3$var$hoverCount--;
2740
+ if ($6179b936705e76d3$var$hoverCount > 0)
2741
+ return;
2742
+ if (typeof PointerEvent !== "undefined")
2743
+ document.removeEventListener("pointerup", $6179b936705e76d3$var$handleGlobalPointerEvent);
2744
+ else
2745
+ document.removeEventListener("touchend", $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);
2746
+ };
2747
+ }
2748
+ function $6179b936705e76d3$export$ae780daf29e6d456(props) {
2749
+ let { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
2750
+ let [isHovered, setHovered] = $bx7SL$useState(false);
2751
+ let state = $bx7SL$useRef({
2752
+ isHovered: false,
2753
+ ignoreEmulatedMouseEvents: false,
2754
+ pointerType: "",
2755
+ target: null
2756
+ }).current;
2757
+ $bx7SL$useEffect($6179b936705e76d3$var$setupGlobalTouchEvents, []);
2758
+ let { hoverProps: hoverProps1, triggerHoverEnd: triggerHoverEnd1 } = $bx7SL$useMemo(() => {
2759
+ let triggerHoverStart = (event, pointerType) => {
2760
+ state.pointerType = pointerType;
2761
+ if (isDisabled || pointerType === "touch" || state.isHovered || !event.currentTarget.contains(event.target))
2762
+ return;
2763
+ state.isHovered = true;
2764
+ let target = event.currentTarget;
2765
+ state.target = target;
2766
+ if (onHoverStart)
2767
+ onHoverStart({
2768
+ type: "hoverstart",
2769
+ target,
2770
+ pointerType
2771
+ });
2772
+ if (onHoverChange)
2773
+ onHoverChange(true);
2774
+ setHovered(true);
2775
+ };
2776
+ let triggerHoverEnd = (event, pointerType) => {
2777
+ state.pointerType = "";
2778
+ state.target = null;
2779
+ if (pointerType === "touch" || !state.isHovered)
2780
+ return;
2781
+ state.isHovered = false;
2782
+ let target = event.currentTarget;
2783
+ if (onHoverEnd)
2784
+ onHoverEnd({
2785
+ type: "hoverend",
2786
+ target,
2787
+ pointerType
2788
+ });
2789
+ if (onHoverChange)
2790
+ onHoverChange(false);
2791
+ setHovered(false);
2792
+ };
2793
+ let hoverProps = {};
2794
+ if (typeof PointerEvent !== "undefined") {
2795
+ hoverProps.onPointerEnter = (e) => {
2796
+ if ($6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents && e.pointerType === "mouse")
2797
+ return;
2798
+ triggerHoverStart(e, e.pointerType);
2799
+ };
2800
+ hoverProps.onPointerLeave = (e) => {
2801
+ if (!isDisabled && e.currentTarget.contains(e.target))
2802
+ triggerHoverEnd(e, e.pointerType);
2803
+ };
2804
+ } else {
2805
+ hoverProps.onTouchStart = () => {
2806
+ state.ignoreEmulatedMouseEvents = true;
2807
+ };
2808
+ hoverProps.onMouseEnter = (e) => {
2809
+ if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents)
2810
+ triggerHoverStart(e, "mouse");
2811
+ state.ignoreEmulatedMouseEvents = false;
2812
+ };
2813
+ hoverProps.onMouseLeave = (e) => {
2814
+ if (!isDisabled && e.currentTarget.contains(e.target))
2815
+ triggerHoverEnd(e, "mouse");
2816
+ };
2817
+ }
2818
+ return {
2819
+ hoverProps,
2820
+ triggerHoverEnd
2821
+ };
2822
+ }, [
2823
+ onHoverStart,
2824
+ onHoverChange,
2825
+ onHoverEnd,
2826
+ isDisabled,
2827
+ state
2828
+ ]);
2829
+ $bx7SL$useEffect(() => {
2830
+ if (isDisabled)
2831
+ triggerHoverEnd1({
2832
+ currentTarget: state.target
2833
+ }, state.pointerType);
2834
+ }, [
2835
+ isDisabled
2836
+ ]);
2837
+ return {
2838
+ hoverProps: hoverProps1,
2839
+ isHovered
2840
+ };
2841
+ }
2842
+ var $8a26561d2877236e$var$DEFAULT_THRESHOLD = 500;
2843
+ function $8a26561d2877236e$export$c24ed0104d07eab9(props) {
2844
+ let { isDisabled, onLongPressStart, onLongPressEnd, onLongPress, threshold = $8a26561d2877236e$var$DEFAULT_THRESHOLD, accessibilityDescription } = props;
2845
+ const timeRef = $bx7SL$useRef(null);
2846
+ let { addGlobalListener, removeGlobalListener } = $03deb23ff14920c4$export$4eaf04e54aa8eed6();
2847
+ let { pressProps } = $f6c31cce2adf654f$export$45712eceda6fad21({
2848
+ isDisabled,
2849
+ onPressStart(e1) {
2850
+ if (e1.pointerType === "mouse" || e1.pointerType === "touch") {
2851
+ if (onLongPressStart)
2852
+ onLongPressStart({
2853
+ ...e1,
2854
+ type: "longpressstart"
2855
+ });
2856
+ timeRef.current = setTimeout(() => {
2857
+ e1.target.dispatchEvent(new PointerEvent("pointercancel", {
2858
+ bubbles: true
2859
+ }));
2860
+ if (onLongPress)
2861
+ onLongPress({
2862
+ ...e1,
2863
+ type: "longpress"
2864
+ });
2865
+ timeRef.current = null;
2866
+ }, threshold);
2867
+ if (e1.pointerType === "touch") {
2868
+ let onContextMenu = (e) => {
2869
+ e.preventDefault();
2870
+ };
2871
+ addGlobalListener(e1.target, "contextmenu", onContextMenu, {
2872
+ once: true
2873
+ });
2874
+ addGlobalListener(window, "pointerup", () => {
2875
+ setTimeout(() => {
2876
+ removeGlobalListener(e1.target, "contextmenu", onContextMenu);
2877
+ }, 30);
2878
+ }, {
2879
+ once: true
2880
+ });
2881
+ }
2882
+ }
2883
+ },
2884
+ onPressEnd(e) {
2885
+ if (timeRef.current)
2886
+ clearTimeout(timeRef.current);
2887
+ if (onLongPressEnd && (e.pointerType === "mouse" || e.pointerType === "touch"))
2888
+ onLongPressEnd({
2889
+ ...e,
2890
+ type: "longpressend"
2891
+ });
2892
+ }
2893
+ });
2894
+ let descriptionProps = $ef06256079686ba0$export$f8aeda7b10753fa1(onLongPress && !isDisabled ? accessibilityDescription : null);
2895
+ return {
2896
+ longPressProps: $3ef42575df84b30b$export$9d1611c77c2fe928(pressProps, descriptionProps)
2897
+ };
2898
+ }
2899
+
2900
+ // ../../node_modules/@react-aria/label/dist/module.js
2901
+ function $d191a55c9702f145$export$8467354a121f1b9f(props) {
2902
+ let { id, label, "aria-labelledby": ariaLabelledby, "aria-label": ariaLabel, labelElementType = "label" } = props;
2903
+ id = $bdb11010cef70236$export$f680877a34711e37(id);
2904
+ let labelId = $bdb11010cef70236$export$f680877a34711e37();
2905
+ let labelProps = {};
2906
+ if (label) {
2907
+ ariaLabelledby = ariaLabelledby ? `${ariaLabelledby} ${labelId}` : labelId;
2908
+ labelProps = {
2909
+ id: labelId,
2910
+ htmlFor: labelElementType === "label" ? id : void 0
2911
+ };
2912
+ } else if (!ariaLabelledby && !ariaLabel)
2913
+ console.warn("If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility");
2914
+ let fieldProps = $313b98861ee5dd6c$export$d6875122194c7b44({
2915
+ id,
2916
+ "aria-label": ariaLabel,
2917
+ "aria-labelledby": ariaLabelledby
2918
+ });
2919
+ return {
2920
+ labelProps,
2921
+ fieldProps
2922
+ };
2923
+ }
2924
+
2925
+ // ../../node_modules/@react-aria/selection/dist/module.js
2926
+ import { useRef as $eCAIO$useRef, useEffect as $eCAIO$useEffect, useMemo as $eCAIO$useMemo } from "react";
2927
+ import { getFocusableTreeWalker as $eCAIO$getFocusableTreeWalker, focusSafely as $eCAIO$focusSafely } from "@react-aria/focus";
2928
+
2929
+ // ../../node_modules/@react-aria/i18n/dist/real-module.js
2930
+ import $iFADg$react, { useContext as $iFADg$useContext, useState as $iFADg$useState, useEffect as $iFADg$useEffect, useMemo as $iFADg$useMemo, useRef as $iFADg$useRef } from "react";
2931
+ import { useIsSSR as $iFADg$useIsSSR } from "@react-aria/ssr";
2932
+ var $148a7a147e38ea7f$var$RTL_SCRIPTS = /* @__PURE__ */ new Set([
2933
+ "Arab",
2934
+ "Syrc",
2935
+ "Samr",
2936
+ "Mand",
2937
+ "Thaa",
2938
+ "Mend",
2939
+ "Nkoo",
2940
+ "Adlm",
2941
+ "Rohg",
2942
+ "Hebr"
2943
+ ]);
2944
+ var $148a7a147e38ea7f$var$RTL_LANGS = /* @__PURE__ */ new Set([
2945
+ "ae",
2946
+ "ar",
2947
+ "arc",
2948
+ "bcc",
2949
+ "bqi",
2950
+ "ckb",
2951
+ "dv",
2952
+ "fa",
2953
+ "glk",
2954
+ "he",
2955
+ "ku",
2956
+ "mzn",
2957
+ "nqo",
2958
+ "pnb",
2959
+ "ps",
2960
+ "sd",
2961
+ "ug",
2962
+ "ur",
2963
+ "yi"
2964
+ ]);
2965
+ function $148a7a147e38ea7f$export$702d680b21cbd764(locale) {
2966
+ if (Intl.Locale) {
2967
+ let script = new Intl.Locale(locale).maximize().script;
2968
+ return $148a7a147e38ea7f$var$RTL_SCRIPTS.has(script);
2969
+ }
2970
+ let lang = locale.split("-")[0];
2971
+ return $148a7a147e38ea7f$var$RTL_LANGS.has(lang);
2972
+ }
2973
+ function $1e5a04cdaf7d1af8$export$f09106e7c6677ec5() {
2974
+ let locale = typeof navigator !== "undefined" && (navigator.language || navigator.userLanguage) || "en-US";
2975
+ try {
2976
+ Intl.DateTimeFormat.supportedLocalesOf([
2977
+ locale
2978
+ ]);
2979
+ } catch (_err) {
2980
+ locale = "en-US";
2981
+ }
2982
+ return {
2983
+ locale,
2984
+ direction: $148a7a147e38ea7f$export$702d680b21cbd764(locale) ? "rtl" : "ltr"
2985
+ };
2986
+ }
2987
+ var $1e5a04cdaf7d1af8$var$currentLocale = $1e5a04cdaf7d1af8$export$f09106e7c6677ec5();
2988
+ var $1e5a04cdaf7d1af8$var$listeners = /* @__PURE__ */ new Set();
2989
+ function $1e5a04cdaf7d1af8$var$updateLocale() {
2990
+ $1e5a04cdaf7d1af8$var$currentLocale = $1e5a04cdaf7d1af8$export$f09106e7c6677ec5();
2991
+ for (let listener of $1e5a04cdaf7d1af8$var$listeners)
2992
+ listener($1e5a04cdaf7d1af8$var$currentLocale);
2993
+ }
2994
+ function $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a() {
2995
+ let isSSR = $iFADg$useIsSSR();
2996
+ let [defaultLocale, setDefaultLocale] = $iFADg$useState($1e5a04cdaf7d1af8$var$currentLocale);
2997
+ $iFADg$useEffect(() => {
2998
+ if ($1e5a04cdaf7d1af8$var$listeners.size === 0)
2999
+ window.addEventListener("languagechange", $1e5a04cdaf7d1af8$var$updateLocale);
3000
+ $1e5a04cdaf7d1af8$var$listeners.add(setDefaultLocale);
3001
+ return () => {
3002
+ $1e5a04cdaf7d1af8$var$listeners.delete(setDefaultLocale);
3003
+ if ($1e5a04cdaf7d1af8$var$listeners.size === 0)
3004
+ window.removeEventListener("languagechange", $1e5a04cdaf7d1af8$var$updateLocale);
3005
+ };
3006
+ }, []);
3007
+ if (isSSR)
3008
+ return {
3009
+ locale: "en-US",
3010
+ direction: "ltr"
3011
+ };
3012
+ return defaultLocale;
3013
+ }
3014
+ var $18f2051aff69b9bf$var$I18nContext = /* @__PURE__ */ $iFADg$react.createContext(null);
3015
+ function $18f2051aff69b9bf$export$43bb16f9c6d9e3f7() {
3016
+ let defaultLocale = $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a();
3017
+ let context = $iFADg$useContext($18f2051aff69b9bf$var$I18nContext);
3018
+ return context || defaultLocale;
3019
+ }
3020
+ var $325a3faab7a68acd$var$cache = /* @__PURE__ */ new Map();
3021
+ function $325a3faab7a68acd$export$a16aca283550c30d(options) {
3022
+ let { locale } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7();
3023
+ let cacheKey = locale + (options ? Object.entries(options).sort(
3024
+ (a, b) => a[0] < b[0] ? -1 : 1
3025
+ ).join() : "");
3026
+ if ($325a3faab7a68acd$var$cache.has(cacheKey))
3027
+ return $325a3faab7a68acd$var$cache.get(cacheKey);
3028
+ let formatter = new Intl.Collator(locale, options);
3029
+ $325a3faab7a68acd$var$cache.set(cacheKey, formatter);
3030
+ return formatter;
3031
+ }
3032
+
3033
+ // ../../node_modules/@react-aria/selection/dist/module.js
3034
+ function $feb5ffebff200149$export$d3e3bd3e26688c04(e) {
3035
+ return $c87311424ea30a05$export$e1865c3bedcd822b() ? e.altKey : e.ctrlKey;
3036
+ }
3037
+ function $feb5ffebff200149$export$16792effe837dba3(e) {
3038
+ if ($c87311424ea30a05$export$9ac100e40613ea10())
3039
+ return e.metaKey;
3040
+ return e.ctrlKey;
3041
+ }
3042
+ var $fb3050f43d946246$var$TYPEAHEAD_DEBOUNCE_WAIT_MS = 1e3;
3043
+ function $fb3050f43d946246$export$e32c88dfddc6e1d8(options) {
3044
+ let { keyboardDelegate, selectionManager, onTypeSelect } = options;
3045
+ let state = $eCAIO$useRef({
3046
+ search: "",
3047
+ timeout: null
3048
+ }).current;
3049
+ let onKeyDown = (e) => {
3050
+ let character = $fb3050f43d946246$var$getStringForKey(e.key);
3051
+ if (!character || e.ctrlKey || e.metaKey)
3052
+ return;
3053
+ if (character === " " && state.search.trim().length > 0) {
3054
+ e.preventDefault();
3055
+ if (!("continuePropagation" in e))
3056
+ e.stopPropagation();
3057
+ }
3058
+ state.search += character;
3059
+ let key = keyboardDelegate.getKeyForSearch(state.search, selectionManager.focusedKey);
3060
+ if (key == null)
3061
+ key = keyboardDelegate.getKeyForSearch(state.search);
3062
+ if (key != null) {
3063
+ selectionManager.setFocusedKey(key);
3064
+ if (onTypeSelect)
3065
+ onTypeSelect(key);
3066
+ }
3067
+ clearTimeout(state.timeout);
3068
+ state.timeout = setTimeout(() => {
3069
+ state.search = "";
3070
+ }, $fb3050f43d946246$var$TYPEAHEAD_DEBOUNCE_WAIT_MS);
3071
+ };
3072
+ return {
3073
+ typeSelectProps: {
3074
+ onKeyDownCapture: keyboardDelegate.getKeyForSearch ? onKeyDown : null
3075
+ }
3076
+ };
3077
+ }
3078
+ function $fb3050f43d946246$var$getStringForKey(key) {
3079
+ if (key.length === 1 || !/^[A-Z]/i.test(key))
3080
+ return key;
3081
+ return "";
3082
+ }
3083
+ function $ae20dd8cbca75726$export$d6daf82dcd84e87c(options) {
3084
+ let { selectionManager: manager, keyboardDelegate: delegate, ref, autoFocus = false, shouldFocusWrap = false, disallowEmptySelection = false, disallowSelectAll = false, selectOnFocus = manager.selectionBehavior === "replace", disallowTypeAhead = false, shouldUseVirtualFocus, allowsTabNavigation = false, isVirtualized, scrollRef = ref } = options;
3085
+ let { direction } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7();
3086
+ let onKeyDown = (e) => {
3087
+ if (e.altKey && e.key === "Tab")
3088
+ e.preventDefault();
3089
+ if (!ref.current.contains(e.target))
3090
+ return;
3091
+ const navigateToKey = (key, childFocus) => {
3092
+ if (key != null) {
3093
+ manager.setFocusedKey(key, childFocus);
3094
+ if (e.shiftKey && manager.selectionMode === "multiple")
3095
+ manager.extendSelection(key);
3096
+ else if (selectOnFocus && !$feb5ffebff200149$export$d3e3bd3e26688c04(e))
3097
+ manager.replaceSelection(key);
3098
+ }
3099
+ };
3100
+ switch (e.key) {
3101
+ case "ArrowDown":
3102
+ if (delegate.getKeyBelow) {
3103
+ var ref4, ref1;
3104
+ e.preventDefault();
3105
+ let nextKey = manager.focusedKey != null ? delegate.getKeyBelow(manager.focusedKey) : (ref4 = delegate.getFirstKey) === null || ref4 === void 0 ? void 0 : ref4.call(delegate);
3106
+ if (nextKey == null && shouldFocusWrap)
3107
+ nextKey = (ref1 = delegate.getFirstKey) === null || ref1 === void 0 ? void 0 : ref1.call(delegate, manager.focusedKey);
3108
+ navigateToKey(nextKey);
3109
+ }
3110
+ break;
3111
+ case "ArrowUp":
3112
+ if (delegate.getKeyAbove) {
3113
+ var ref2, ref3;
3114
+ e.preventDefault();
3115
+ let nextKey = manager.focusedKey != null ? delegate.getKeyAbove(manager.focusedKey) : (ref2 = delegate.getLastKey) === null || ref2 === void 0 ? void 0 : ref2.call(delegate);
3116
+ if (nextKey == null && shouldFocusWrap)
3117
+ nextKey = (ref3 = delegate.getLastKey) === null || ref3 === void 0 ? void 0 : ref3.call(delegate, manager.focusedKey);
3118
+ navigateToKey(nextKey);
3119
+ }
3120
+ break;
3121
+ case "ArrowLeft":
3122
+ if (delegate.getKeyLeftOf) {
3123
+ e.preventDefault();
3124
+ let nextKey = delegate.getKeyLeftOf(manager.focusedKey);
3125
+ navigateToKey(nextKey, direction === "rtl" ? "first" : "last");
3126
+ }
3127
+ break;
3128
+ case "ArrowRight":
3129
+ if (delegate.getKeyRightOf) {
3130
+ e.preventDefault();
3131
+ let nextKey = delegate.getKeyRightOf(manager.focusedKey);
3132
+ navigateToKey(nextKey, direction === "rtl" ? "last" : "first");
3133
+ }
3134
+ break;
3135
+ case "Home":
3136
+ if (delegate.getFirstKey) {
3137
+ e.preventDefault();
3138
+ let firstKey = delegate.getFirstKey(manager.focusedKey, $feb5ffebff200149$export$16792effe837dba3(e));
3139
+ manager.setFocusedKey(firstKey);
3140
+ if ($feb5ffebff200149$export$16792effe837dba3(e) && e.shiftKey && manager.selectionMode === "multiple")
3141
+ manager.extendSelection(firstKey);
3142
+ else if (selectOnFocus)
3143
+ manager.replaceSelection(firstKey);
3144
+ }
3145
+ break;
3146
+ case "End":
3147
+ if (delegate.getLastKey) {
3148
+ e.preventDefault();
3149
+ let lastKey = delegate.getLastKey(manager.focusedKey, $feb5ffebff200149$export$16792effe837dba3(e));
3150
+ manager.setFocusedKey(lastKey);
3151
+ if ($feb5ffebff200149$export$16792effe837dba3(e) && e.shiftKey && manager.selectionMode === "multiple")
3152
+ manager.extendSelection(lastKey);
3153
+ else if (selectOnFocus)
3154
+ manager.replaceSelection(lastKey);
3155
+ }
3156
+ break;
3157
+ case "PageDown":
3158
+ if (delegate.getKeyPageBelow) {
3159
+ e.preventDefault();
3160
+ let nextKey = delegate.getKeyPageBelow(manager.focusedKey);
3161
+ navigateToKey(nextKey);
3162
+ }
3163
+ break;
3164
+ case "PageUp":
3165
+ if (delegate.getKeyPageAbove) {
3166
+ e.preventDefault();
3167
+ let nextKey = delegate.getKeyPageAbove(manager.focusedKey);
3168
+ navigateToKey(nextKey);
3169
+ }
3170
+ break;
3171
+ case "a":
3172
+ if ($feb5ffebff200149$export$16792effe837dba3(e) && manager.selectionMode === "multiple" && disallowSelectAll !== true) {
3173
+ e.preventDefault();
3174
+ manager.selectAll();
3175
+ }
3176
+ break;
3177
+ case "Escape":
3178
+ e.preventDefault();
3179
+ if (!disallowEmptySelection)
3180
+ manager.clearSelection();
3181
+ break;
3182
+ case "Tab":
3183
+ if (!allowsTabNavigation) {
3184
+ if (e.shiftKey)
3185
+ ref.current.focus();
3186
+ else {
3187
+ let walker = $eCAIO$getFocusableTreeWalker(ref.current, {
3188
+ tabbable: true
3189
+ });
3190
+ let next;
3191
+ let last;
3192
+ do {
3193
+ last = walker.lastChild();
3194
+ if (last)
3195
+ next = last;
3196
+ } while (last);
3197
+ if (next && !next.contains(document.activeElement))
3198
+ $7215afc6de606d6b$export$de79e2c695e052f3(next);
3199
+ }
3200
+ break;
3201
+ }
3202
+ }
3203
+ };
3204
+ let scrollPos = $eCAIO$useRef({
3205
+ top: 0,
3206
+ left: 0
3207
+ });
3208
+ $e9faafb641e167db$export$90fc3a17d93f704c(scrollRef, "scroll", isVirtualized ? null : () => {
3209
+ scrollPos.current = {
3210
+ top: scrollRef.current.scrollTop,
3211
+ left: scrollRef.current.scrollLeft
3212
+ };
3213
+ });
3214
+ let onFocus = (e) => {
3215
+ if (manager.isFocused) {
3216
+ if (!e.currentTarget.contains(e.target))
3217
+ manager.setFocused(false);
3218
+ return;
3219
+ }
3220
+ if (!e.currentTarget.contains(e.target))
3221
+ return;
3222
+ manager.setFocused(true);
3223
+ if (manager.focusedKey == null) {
3224
+ let navigateToFirstKey = (key) => {
3225
+ if (key != null) {
3226
+ manager.setFocusedKey(key);
3227
+ if (selectOnFocus)
3228
+ manager.replaceSelection(key);
3229
+ }
3230
+ };
3231
+ let relatedTarget = e.relatedTarget;
3232
+ var _lastSelectedKey, _firstSelectedKey;
3233
+ if (relatedTarget && e.currentTarget.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING)
3234
+ navigateToFirstKey((_lastSelectedKey = manager.lastSelectedKey) !== null && _lastSelectedKey !== void 0 ? _lastSelectedKey : delegate.getLastKey());
3235
+ else
3236
+ navigateToFirstKey((_firstSelectedKey = manager.firstSelectedKey) !== null && _firstSelectedKey !== void 0 ? _firstSelectedKey : delegate.getFirstKey());
3237
+ } else if (!isVirtualized) {
3238
+ scrollRef.current.scrollTop = scrollPos.current.top;
3239
+ scrollRef.current.scrollLeft = scrollPos.current.left;
3240
+ let element = scrollRef.current.querySelector(`[data-key="${manager.focusedKey}"]`);
3241
+ if (element) {
3242
+ $7215afc6de606d6b$export$de79e2c695e052f3(element);
3243
+ $2f04cbc44ee30ce0$export$53a0910f038337bd(scrollRef.current, element);
3244
+ }
3245
+ }
3246
+ };
3247
+ let onBlur = (e) => {
3248
+ if (!e.currentTarget.contains(e.relatedTarget))
3249
+ manager.setFocused(false);
3250
+ };
3251
+ const autoFocusRef = $eCAIO$useRef(autoFocus);
3252
+ $eCAIO$useEffect(() => {
3253
+ if (autoFocusRef.current) {
3254
+ let focusedKey = null;
3255
+ if (autoFocus === "first")
3256
+ focusedKey = delegate.getFirstKey();
3257
+ if (autoFocus === "last")
3258
+ focusedKey = delegate.getLastKey();
3259
+ let selectedKeys = manager.selectedKeys;
3260
+ if (selectedKeys.size)
3261
+ focusedKey = selectedKeys.values().next().value;
3262
+ manager.setFocused(true);
3263
+ manager.setFocusedKey(focusedKey);
3264
+ if (focusedKey == null && !shouldUseVirtualFocus)
3265
+ $eCAIO$focusSafely(ref.current);
3266
+ }
3267
+ autoFocusRef.current = false;
3268
+ }, []);
3269
+ $eCAIO$useEffect(() => {
3270
+ if (!isVirtualized && manager.focusedKey && (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current)) {
3271
+ let element = scrollRef.current.querySelector(`[data-key="${manager.focusedKey}"]`);
3272
+ if (element)
3273
+ $2f04cbc44ee30ce0$export$53a0910f038337bd(scrollRef.current, element);
3274
+ }
3275
+ }, [
3276
+ isVirtualized,
3277
+ scrollRef,
3278
+ manager.focusedKey
3279
+ ]);
3280
+ let handlers = {
3281
+ onKeyDown,
3282
+ onFocus,
3283
+ onBlur,
3284
+ onMouseDown(e) {
3285
+ if (scrollRef.current === e.target)
3286
+ e.preventDefault();
3287
+ }
3288
+ };
3289
+ let { typeSelectProps } = $fb3050f43d946246$export$e32c88dfddc6e1d8({
3290
+ keyboardDelegate: delegate,
3291
+ selectionManager: manager
3292
+ });
3293
+ if (!disallowTypeAhead)
3294
+ handlers = $3ef42575df84b30b$export$9d1611c77c2fe928(typeSelectProps, handlers);
3295
+ let tabIndex;
3296
+ if (!shouldUseVirtualFocus)
3297
+ tabIndex = manager.focusedKey == null ? 0 : -1;
3298
+ return {
3299
+ collectionProps: {
3300
+ ...handlers,
3301
+ tabIndex
3302
+ }
3303
+ };
3304
+ }
3305
+ function $880e95eb8b93ba9a$export$ecf600387e221c37(options) {
3306
+ let { selectionManager: manager, key, ref, shouldSelectOnPressUp, isVirtualized, shouldUseVirtualFocus, focus, isDisabled, onAction, allowsDifferentPressOrigin } = options;
3307
+ let onSelect = (e) => {
3308
+ if (e.pointerType === "keyboard" && $feb5ffebff200149$export$d3e3bd3e26688c04(e))
3309
+ manager.toggleSelection(key);
3310
+ else {
3311
+ if (manager.selectionMode === "none")
3312
+ return;
3313
+ if (manager.selectionMode === "single") {
3314
+ if (manager.isSelected(key) && !manager.disallowEmptySelection)
3315
+ manager.toggleSelection(key);
3316
+ else
3317
+ manager.replaceSelection(key);
3318
+ } else if (e && e.shiftKey)
3319
+ manager.extendSelection(key);
3320
+ else if (manager.selectionBehavior === "toggle" || e && ($feb5ffebff200149$export$16792effe837dba3(e) || e.pointerType === "touch" || e.pointerType === "virtual"))
3321
+ manager.toggleSelection(key);
3322
+ else
3323
+ manager.replaceSelection(key);
3324
+ }
3325
+ };
3326
+ $eCAIO$useEffect(() => {
3327
+ let isFocused = key === manager.focusedKey;
3328
+ if (isFocused && manager.isFocused && !shouldUseVirtualFocus && document.activeElement !== ref.current) {
3329
+ if (focus)
3330
+ focus();
3331
+ else
3332
+ $eCAIO$focusSafely(ref.current);
3333
+ }
3334
+ }, [
3335
+ ref,
3336
+ key,
3337
+ manager.focusedKey,
3338
+ manager.childFocusStrategy,
3339
+ manager.isFocused,
3340
+ shouldUseVirtualFocus
3341
+ ]);
3342
+ isDisabled = isDisabled || manager.isDisabled(key);
3343
+ let itemProps = {};
3344
+ if (!shouldUseVirtualFocus && !isDisabled)
3345
+ itemProps = {
3346
+ tabIndex: key === manager.focusedKey ? 0 : -1,
3347
+ onFocus(e) {
3348
+ if (e.target === ref.current)
3349
+ manager.setFocusedKey(key);
3350
+ }
3351
+ };
3352
+ else if (isDisabled)
3353
+ itemProps.onMouseDown = (e) => {
3354
+ e.preventDefault();
3355
+ };
3356
+ let allowsSelection = !isDisabled && manager.canSelectItem(key);
3357
+ let allowsActions = onAction && !isDisabled;
3358
+ let hasPrimaryAction = allowsActions && (manager.selectionBehavior === "replace" ? !allowsSelection : manager.isEmpty);
3359
+ let hasSecondaryAction = allowsActions && allowsSelection && manager.selectionBehavior === "replace";
3360
+ let hasAction = hasPrimaryAction || hasSecondaryAction;
3361
+ let modality = $eCAIO$useRef(null);
3362
+ let longPressEnabled = hasAction && allowsSelection;
3363
+ let longPressEnabledOnPressStart = $eCAIO$useRef(false);
3364
+ let hadPrimaryActionOnPressStart = $eCAIO$useRef(false);
3365
+ let itemPressProps = {};
3366
+ if (shouldSelectOnPressUp) {
3367
+ itemPressProps.onPressStart = (e) => {
3368
+ modality.current = e.pointerType;
3369
+ longPressEnabledOnPressStart.current = longPressEnabled;
3370
+ if (e.pointerType === "keyboard" && (!hasAction || $880e95eb8b93ba9a$var$isSelectionKey()))
3371
+ onSelect(e);
3372
+ };
3373
+ if (!allowsDifferentPressOrigin)
3374
+ itemPressProps.onPress = (e) => {
3375
+ if (hasPrimaryAction || hasSecondaryAction && e.pointerType !== "mouse") {
3376
+ if (e.pointerType === "keyboard" && !$880e95eb8b93ba9a$var$isActionKey())
3377
+ return;
3378
+ onAction();
3379
+ } else if (e.pointerType !== "keyboard")
3380
+ onSelect(e);
3381
+ };
3382
+ else {
3383
+ itemPressProps.onPressUp = (e) => {
3384
+ if (e.pointerType !== "keyboard")
3385
+ onSelect(e);
3386
+ };
3387
+ itemPressProps.onPress = hasPrimaryAction ? () => onAction() : null;
3388
+ }
3389
+ } else {
3390
+ itemPressProps.onPressStart = (e) => {
3391
+ modality.current = e.pointerType;
3392
+ longPressEnabledOnPressStart.current = longPressEnabled;
3393
+ hadPrimaryActionOnPressStart.current = hasPrimaryAction;
3394
+ if (e.pointerType === "mouse" && !hasPrimaryAction || e.pointerType === "keyboard" && (!onAction || $880e95eb8b93ba9a$var$isSelectionKey()))
3395
+ onSelect(e);
3396
+ };
3397
+ itemPressProps.onPress = (e) => {
3398
+ if (e.pointerType === "touch" || e.pointerType === "pen" || e.pointerType === "virtual" || e.pointerType === "keyboard" && hasAction && $880e95eb8b93ba9a$var$isActionKey() || e.pointerType === "mouse" && hadPrimaryActionOnPressStart.current) {
3399
+ if (hasAction)
3400
+ onAction();
3401
+ else
3402
+ onSelect(e);
3403
+ }
3404
+ };
3405
+ }
3406
+ if (!isVirtualized)
3407
+ itemProps["data-key"] = key;
3408
+ itemPressProps.preventFocusOnPress = shouldUseVirtualFocus;
3409
+ let { pressProps, isPressed } = $f6c31cce2adf654f$export$45712eceda6fad21(itemPressProps);
3410
+ let onDoubleClick = hasSecondaryAction ? (e) => {
3411
+ if (modality.current === "mouse") {
3412
+ e.stopPropagation();
3413
+ e.preventDefault();
3414
+ onAction();
3415
+ }
3416
+ } : void 0;
3417
+ let { longPressProps } = $8a26561d2877236e$export$c24ed0104d07eab9({
3418
+ isDisabled: !longPressEnabled,
3419
+ onLongPress(e) {
3420
+ if (e.pointerType === "touch") {
3421
+ onSelect(e);
3422
+ manager.setSelectionBehavior("toggle");
3423
+ }
3424
+ }
3425
+ });
3426
+ let onDragStartCapture = (e) => {
3427
+ if (modality.current === "touch" && longPressEnabledOnPressStart.current)
3428
+ e.preventDefault();
3429
+ };
3430
+ return {
3431
+ itemProps: $3ef42575df84b30b$export$9d1611c77c2fe928(itemProps, allowsSelection || hasPrimaryAction ? pressProps : {}, longPressEnabled ? longPressProps : {}, {
3432
+ onDoubleClick,
3433
+ onDragStartCapture
3434
+ }),
3435
+ isPressed,
3436
+ isSelected: manager.isSelected(key),
3437
+ isDisabled,
3438
+ allowsSelection,
3439
+ hasAction
3440
+ };
3441
+ }
3442
+ function $880e95eb8b93ba9a$var$isActionKey() {
3443
+ let event = window.event;
3444
+ return (event === null || event === void 0 ? void 0 : event.key) === "Enter";
3445
+ }
3446
+ function $880e95eb8b93ba9a$var$isSelectionKey() {
3447
+ let event = window.event;
3448
+ return (event === null || event === void 0 ? void 0 : event.key) === " " || (event === null || event === void 0 ? void 0 : event.code) === "Space";
3449
+ }
3450
+ var $2a25aae57d74318e$export$a05409b8bb224a5a = class {
3451
+ getKeyBelow(key) {
3452
+ key = this.collection.getKeyAfter(key);
3453
+ while (key != null) {
3454
+ let item = this.collection.getItem(key);
3455
+ if (item.type === "item" && !this.disabledKeys.has(key))
3456
+ return key;
3457
+ key = this.collection.getKeyAfter(key);
3458
+ }
3459
+ }
3460
+ getKeyAbove(key) {
3461
+ key = this.collection.getKeyBefore(key);
3462
+ while (key != null) {
3463
+ let item = this.collection.getItem(key);
3464
+ if (item.type === "item" && !this.disabledKeys.has(key))
3465
+ return key;
3466
+ key = this.collection.getKeyBefore(key);
3467
+ }
3468
+ }
3469
+ getFirstKey() {
3470
+ let key = this.collection.getFirstKey();
3471
+ while (key != null) {
3472
+ let item = this.collection.getItem(key);
3473
+ if (item.type === "item" && !this.disabledKeys.has(key))
3474
+ return key;
3475
+ key = this.collection.getKeyAfter(key);
3476
+ }
3477
+ }
3478
+ getLastKey() {
3479
+ let key = this.collection.getLastKey();
3480
+ while (key != null) {
3481
+ let item = this.collection.getItem(key);
3482
+ if (item.type === "item" && !this.disabledKeys.has(key))
3483
+ return key;
3484
+ key = this.collection.getKeyBefore(key);
3485
+ }
3486
+ }
3487
+ getItem(key) {
3488
+ return this.ref.current.querySelector(`[data-key="${key}"]`);
3489
+ }
3490
+ getKeyPageAbove(key) {
3491
+ let menu = this.ref.current;
3492
+ let item = this.getItem(key);
3493
+ if (!item)
3494
+ return null;
3495
+ let pageY = Math.max(0, item.offsetTop + item.offsetHeight - menu.offsetHeight);
3496
+ while (item && item.offsetTop > pageY) {
3497
+ key = this.getKeyAbove(key);
3498
+ item = this.getItem(key);
3499
+ }
3500
+ return key;
3501
+ }
3502
+ getKeyPageBelow(key) {
3503
+ let menu = this.ref.current;
3504
+ let item = this.getItem(key);
3505
+ if (!item)
3506
+ return null;
3507
+ let pageY = Math.min(menu.scrollHeight, item.offsetTop - item.offsetHeight + menu.offsetHeight);
3508
+ while (item && item.offsetTop < pageY) {
3509
+ key = this.getKeyBelow(key);
3510
+ item = this.getItem(key);
3511
+ }
3512
+ return key;
3513
+ }
3514
+ getKeyForSearch(search, fromKey) {
3515
+ if (!this.collator)
3516
+ return null;
3517
+ let collection = this.collection;
3518
+ let key = fromKey || this.getFirstKey();
3519
+ while (key != null) {
3520
+ let item = collection.getItem(key);
3521
+ let substring = item.textValue.slice(0, search.length);
3522
+ if (item.textValue && this.collator.compare(substring, search) === 0)
3523
+ return key;
3524
+ key = this.getKeyBelow(key);
3525
+ }
3526
+ return null;
3527
+ }
3528
+ constructor(collection, disabledKeys, ref, collator) {
3529
+ this.collection = collection;
3530
+ this.disabledKeys = disabledKeys;
3531
+ this.ref = ref;
3532
+ this.collator = collator;
3533
+ }
3534
+ };
3535
+ function $982254629710d113$export$b95089534ab7c1fd(props) {
3536
+ let { selectionManager, collection, disabledKeys, ref, keyboardDelegate, autoFocus, shouldFocusWrap, isVirtualized, disallowEmptySelection, selectOnFocus = selectionManager.selectionBehavior === "replace", disallowTypeAhead, shouldUseVirtualFocus, allowsTabNavigation } = props;
3537
+ let collator = $325a3faab7a68acd$export$a16aca283550c30d({
3538
+ usage: "search",
3539
+ sensitivity: "base"
3540
+ });
3541
+ let disabledBehavior = selectionManager.disabledBehavior;
3542
+ let delegate = $eCAIO$useMemo(
3543
+ () => keyboardDelegate || new $2a25aae57d74318e$export$a05409b8bb224a5a(collection, disabledBehavior === "selection" ? /* @__PURE__ */ new Set() : disabledKeys, ref, collator),
3544
+ [
3545
+ keyboardDelegate,
3546
+ collection,
3547
+ disabledKeys,
3548
+ ref,
3549
+ collator,
3550
+ disabledBehavior
3551
+ ]
3552
+ );
3553
+ let { collectionProps } = $ae20dd8cbca75726$export$d6daf82dcd84e87c({
3554
+ ref,
3555
+ selectionManager,
3556
+ keyboardDelegate: delegate,
3557
+ autoFocus,
3558
+ shouldFocusWrap,
3559
+ disallowEmptySelection,
3560
+ selectOnFocus,
3561
+ disallowTypeAhead,
3562
+ shouldUseVirtualFocus,
3563
+ allowsTabNavigation,
3564
+ isVirtualized,
3565
+ scrollRef: ref
3566
+ });
3567
+ return {
3568
+ listProps: collectionProps
3569
+ };
3570
+ }
3571
+
3572
+ // ../../node_modules/@react-stately/collections/dist/module.js
3573
+ import $tyW6A$react, { useMemo as $tyW6A$useMemo, useRef as $tyW6A$useRef } from "react";
3574
+ function $c1d7fb2ec91bae71$var$Item(props) {
3575
+ return null;
3576
+ }
3577
+ $c1d7fb2ec91bae71$var$Item.getCollectionNode = function* getCollectionNode(props, context) {
3578
+ let { childItems, title, children } = props;
3579
+ let rendered = props.title || props.children;
3580
+ let textValue = props.textValue || (typeof rendered === "string" ? rendered : "") || props["aria-label"] || "";
3581
+ if (!textValue && !(context === null || context === void 0 ? void 0 : context.suppressTextValueWarning))
3582
+ console.warn("<Item> with non-plain text contents is unsupported by type to select for accessibility. Please add a `textValue` prop.");
3583
+ yield {
3584
+ type: "item",
3585
+ props,
3586
+ rendered,
3587
+ textValue,
3588
+ "aria-label": props["aria-label"],
3589
+ hasChildNodes: $c1d7fb2ec91bae71$var$hasChildItems(props),
3590
+ *childNodes() {
3591
+ if (childItems)
3592
+ for (let child1 of childItems)
3593
+ yield {
3594
+ type: "item",
3595
+ value: child1
3596
+ };
3597
+ else if (title) {
3598
+ let items = [];
3599
+ $tyW6A$react.Children.forEach(children, (child) => {
3600
+ items.push({
3601
+ type: "item",
3602
+ element: child
3603
+ });
3604
+ });
3605
+ yield* items;
3606
+ }
3607
+ }
3608
+ };
3609
+ };
3610
+ function $c1d7fb2ec91bae71$var$hasChildItems(props) {
3611
+ if (props.hasChildItems != null)
3612
+ return props.hasChildItems;
3613
+ if (props.childItems)
3614
+ return true;
3615
+ if (props.title && $tyW6A$react.Children.count(props.children) > 0)
3616
+ return true;
3617
+ return false;
3618
+ }
3619
+ function $9fc4852771d079eb$var$Section(props) {
3620
+ return null;
3621
+ }
3622
+ $9fc4852771d079eb$var$Section.getCollectionNode = function* getCollectionNode2(props) {
3623
+ let { children, title, items: items1 } = props;
3624
+ yield {
3625
+ type: "section",
3626
+ props,
3627
+ hasChildNodes: true,
3628
+ rendered: title,
3629
+ "aria-label": props["aria-label"],
3630
+ *childNodes() {
3631
+ if (typeof children === "function") {
3632
+ if (!items1)
3633
+ throw new Error("props.children was a function but props.items is missing");
3634
+ for (let item of items1)
3635
+ yield {
3636
+ type: "item",
3637
+ value: item,
3638
+ renderer: children
3639
+ };
3640
+ } else {
3641
+ let items = [];
3642
+ $tyW6A$react.Children.forEach(children, (child) => {
3643
+ items.push({
3644
+ type: "item",
3645
+ element: child
3646
+ });
3647
+ });
3648
+ yield* items;
3649
+ }
3650
+ }
3651
+ };
3652
+ };
3653
+ var $453cc9f0df89c0a5$var$cache = /* @__PURE__ */ new WeakMap();
3654
+ function $453cc9f0df89c0a5$export$77d5aafae4e095b2(collection) {
3655
+ let count = $453cc9f0df89c0a5$var$cache.get(collection);
3656
+ if (count != null)
3657
+ return count;
3658
+ count = 0;
3659
+ for (let item of collection)
3660
+ if (item.type === "section")
3661
+ count += $453cc9f0df89c0a5$export$77d5aafae4e095b2(item.childNodes);
3662
+ else
3663
+ count++;
3664
+ $453cc9f0df89c0a5$var$cache.set(collection, count);
3665
+ return count;
3666
+ }
3667
+
3668
+ // ../../node_modules/@react-aria/listbox/dist/module.js
3669
+ var $b1f0cad8af73213b$export$3585ede4d035bf14 = /* @__PURE__ */ new WeakMap();
3670
+ function $b1f0cad8af73213b$var$normalizeKey(key) {
3671
+ if (typeof key === "string")
3672
+ return key.replace(/\s*/g, "");
3673
+ return "" + key;
3674
+ }
3675
+ function $b1f0cad8af73213b$export$9145995848b05025(state, itemKey) {
3676
+ let data = $b1f0cad8af73213b$export$3585ede4d035bf14.get(state);
3677
+ if (!data)
3678
+ throw new Error("Unknown list");
3679
+ return `${data.id}-option-${$b1f0cad8af73213b$var$normalizeKey(itemKey)}`;
3680
+ }
3681
+ function $c132121280ec012d$export$50eacbbf140a3141(props, state, ref) {
3682
+ let domProps = $65484d02dcb7eb3e$export$457c3d6518dd4c6f(props, {
3683
+ labelable: true
3684
+ });
3685
+ let { listProps } = $982254629710d113$export$b95089534ab7c1fd({
3686
+ ...props,
3687
+ ref,
3688
+ selectionManager: state.selectionManager,
3689
+ collection: state.collection,
3690
+ disabledKeys: state.disabledKeys
3691
+ });
3692
+ let { focusWithinProps } = $9ab94262bd0047c7$export$420e68273165f4ec({
3693
+ onFocusWithin: props.onFocus,
3694
+ onBlurWithin: props.onBlur,
3695
+ onFocusWithinChange: props.onFocusChange
3696
+ });
3697
+ let id = $bdb11010cef70236$export$f680877a34711e37(props.id);
3698
+ $b1f0cad8af73213b$export$3585ede4d035bf14.set(state, {
3699
+ id,
3700
+ shouldUseVirtualFocus: props.shouldUseVirtualFocus,
3701
+ shouldSelectOnPressUp: props.shouldSelectOnPressUp,
3702
+ shouldFocusOnHover: props.shouldFocusOnHover,
3703
+ isVirtualized: props.isVirtualized,
3704
+ onAction: props.onAction
3705
+ });
3706
+ let { labelProps, fieldProps } = $d191a55c9702f145$export$8467354a121f1b9f({
3707
+ ...props,
3708
+ id,
3709
+ labelElementType: "span"
3710
+ });
3711
+ return {
3712
+ labelProps,
3713
+ listBoxProps: $3ef42575df84b30b$export$9d1611c77c2fe928(domProps, focusWithinProps, state.selectionManager.selectionMode === "multiple" ? {
3714
+ "aria-multiselectable": "true"
3715
+ } : {}, {
3716
+ role: "listbox",
3717
+ ...$3ef42575df84b30b$export$9d1611c77c2fe928(fieldProps, listProps)
3718
+ })
3719
+ };
3720
+ }
3721
+ function $293f70390ea03370$export$497855f14858aa34(props, state, ref) {
3722
+ let { key } = props;
3723
+ let data = $b1f0cad8af73213b$export$3585ede4d035bf14.get(state);
3724
+ var _isDisabled;
3725
+ let isDisabled = (_isDisabled = props.isDisabled) !== null && _isDisabled !== void 0 ? _isDisabled : state.disabledKeys.has(key);
3726
+ var _isSelected;
3727
+ let isSelected = (_isSelected = props.isSelected) !== null && _isSelected !== void 0 ? _isSelected : state.selectionManager.isSelected(key);
3728
+ let isFocused = state.selectionManager.focusedKey === key;
3729
+ var _shouldSelectOnPressUp;
3730
+ let shouldSelectOnPressUp = (_shouldSelectOnPressUp = props.shouldSelectOnPressUp) !== null && _shouldSelectOnPressUp !== void 0 ? _shouldSelectOnPressUp : data.shouldSelectOnPressUp;
3731
+ var _shouldFocusOnHover;
3732
+ let shouldFocusOnHover = (_shouldFocusOnHover = props.shouldFocusOnHover) !== null && _shouldFocusOnHover !== void 0 ? _shouldFocusOnHover : data.shouldFocusOnHover;
3733
+ var _shouldUseVirtualFocus;
3734
+ let shouldUseVirtualFocus = (_shouldUseVirtualFocus = props.shouldUseVirtualFocus) !== null && _shouldUseVirtualFocus !== void 0 ? _shouldUseVirtualFocus : data.shouldUseVirtualFocus;
3735
+ var _isVirtualized;
3736
+ let isVirtualized = (_isVirtualized = props.isVirtualized) !== null && _isVirtualized !== void 0 ? _isVirtualized : data.isVirtualized;
3737
+ let labelId = $bdb11010cef70236$export$b4cc09c592e8fdb8();
3738
+ let descriptionId = $bdb11010cef70236$export$b4cc09c592e8fdb8();
3739
+ let optionProps = {
3740
+ role: "option",
3741
+ "aria-disabled": isDisabled,
3742
+ "aria-selected": state.selectionManager.selectionMode !== "none" ? isSelected : void 0
3743
+ };
3744
+ if (!($c87311424ea30a05$export$9ac100e40613ea10() && $c87311424ea30a05$export$78551043582a6a98())) {
3745
+ optionProps["aria-label"] = props["aria-label"];
3746
+ optionProps["aria-labelledby"] = labelId;
3747
+ optionProps["aria-describedby"] = descriptionId;
3748
+ }
3749
+ if (isVirtualized) {
3750
+ optionProps["aria-posinset"] = state.collection.getItem(key).index + 1;
3751
+ optionProps["aria-setsize"] = $453cc9f0df89c0a5$export$77d5aafae4e095b2(state.collection);
3752
+ }
3753
+ let { itemProps, isPressed, hasAction, allowsSelection } = $880e95eb8b93ba9a$export$ecf600387e221c37({
3754
+ selectionManager: state.selectionManager,
3755
+ key,
3756
+ ref,
3757
+ shouldSelectOnPressUp,
3758
+ allowsDifferentPressOrigin: shouldSelectOnPressUp && shouldFocusOnHover,
3759
+ isVirtualized,
3760
+ shouldUseVirtualFocus,
3761
+ isDisabled,
3762
+ onAction: data.onAction ? () => data.onAction(key) : void 0
3763
+ });
3764
+ let { hoverProps } = $6179b936705e76d3$export$ae780daf29e6d456({
3765
+ isDisabled: isDisabled || !shouldFocusOnHover,
3766
+ onHoverStart() {
3767
+ if (!$507fabe10e71c6fb$export$b9b3dfddab17db27()) {
3768
+ state.selectionManager.setFocused(true);
3769
+ state.selectionManager.setFocusedKey(key);
3770
+ }
3771
+ }
3772
+ });
3773
+ return {
3774
+ optionProps: {
3775
+ ...optionProps,
3776
+ ...$3ef42575df84b30b$export$9d1611c77c2fe928(itemProps, hoverProps),
3777
+ id: $b1f0cad8af73213b$export$9145995848b05025(state, key)
3778
+ },
3779
+ labelProps: {
3780
+ id: labelId
3781
+ },
3782
+ descriptionProps: {
3783
+ id: descriptionId
3784
+ },
3785
+ isFocused,
3786
+ isSelected,
3787
+ isDisabled,
3788
+ isPressed,
3789
+ allowsSelection,
3790
+ hasAction
3791
+ };
3792
+ }
3793
+
3794
+ // src/components/DropdownSelector/Listbox.tsx
3795
+ import { useFocusRing } from "@react-aria/focus";
3796
+ import { px as px4 } from "@charcoal-ui/utils";
3797
+ var Listbox = ({
3798
+ state,
3799
+ mode = "default",
3800
+ ...props
3801
+ }) => {
3802
+ const ref = useRef5(null);
3803
+ const { listBoxProps } = $c132121280ec012d$export$50eacbbf140a3141(props, state, ref);
3804
+ const collection = useMemo2(
3805
+ () => [...state.collection].map((node, index, self) => ({
3806
+ node,
3807
+ first: index === 0,
3808
+ last: index === self.length - 1
3809
+ })),
3810
+ [state.collection]
3811
+ );
3812
+ return /* @__PURE__ */ React14.createElement(ListboxRoot, { ref, ...listBoxProps }, collection.map(({ node, last }) => /* @__PURE__ */ React14.createElement(Fragment, { key: node.key }, /* @__PURE__ */ React14.createElement(Option, { item: node, state, mode }), !last && mode === "separator" && /* @__PURE__ */ React14.createElement(Divider, null))));
3813
+ };
3814
+ var Listbox_default = memo(Listbox);
3815
+ var ListboxRoot = styled13.ul`
3816
+ padding-left: 0;
3817
+ margin: 0;
3818
+ box-sizing: border-box;
3819
+ list-style: none;
3820
+
3821
+ ${theme((o) => [
3822
+ o.bg.background1,
3823
+ o.border.default,
3824
+ o.borderRadius(8),
3825
+ o.outline.default.focus
3826
+ ])}
3827
+ `;
3828
+ var Divider = styled13.div.attrs({ role: "separator" })`
3829
+ display: flex;
3830
+ ${theme((o) => [o.padding.horizontal(8)])}
3831
+
3832
+ &:before {
3833
+ content: '';
3834
+ display: block;
3835
+ width: 100%;
3836
+ height: 1px;
3837
+ background: #00000014;
3838
+ }
3839
+ `;
3840
+ var Option = ({ item, state, mode }) => {
3841
+ const ref = useRef5(null);
3842
+ const { optionProps, isSelected } = $293f70390ea03370$export$497855f14858aa34(item, state, ref);
3843
+ const { focusProps } = useFocusRing();
3844
+ return /* @__PURE__ */ React14.createElement(OptionRoot, { ...$3ef42575df84b30b$export$9d1611c77c2fe928(optionProps, focusProps), ref, mode }, /* @__PURE__ */ React14.createElement(OptionCheckIcon, { name: "16/Check", isSelected }), /* @__PURE__ */ React14.createElement(OptionText, null, item.rendered));
3845
+ };
3846
+ var OptionRoot = styled13.li`
3847
+ display: flex;
3848
+ align-items: center;
3849
+ gap: ${({ theme: theme4 }) => px4(theme4.spacing[4])};
3850
+ height: 40px;
3851
+ cursor: pointer;
3852
+ outline: none;
3853
+
3854
+ ${({ mode }) => theme((o) => [
3855
+ o.padding.horizontal(8),
3856
+ mode === "separator" && o.padding.vertical(4)
3857
+ ])}
3858
+
3859
+ &:focus {
3860
+ ${theme((o) => [o.bg.surface3])}
3861
+ }
3862
+ `;
3863
+ var OptionCheckIcon = styled13(Icon_default)`
3864
+ visibility: hidden;
3865
+
3866
+ ${({ isSelected }) => isSelected && css5`
3867
+ visibility: visible;
3868
+ `}
3869
+ `;
3870
+ var OptionText = styled13.span`
3871
+ display: block;
3872
+ ${theme((o) => [o.typography(14)])}
3873
+ `;
3874
+
3875
+ // src/components/DropdownSelector/Popover.tsx
3876
+ import { FocusScope as FocusScope2 } from "@react-aria/focus";
3877
+ import { DismissButton, useOverlay as useOverlay2 } from "@react-aria/overlays";
3878
+ import React15, {
3879
+ useRef as useRef6,
3880
+ useMemo as useMemo3,
3881
+ memo as memo2
3882
+ } from "react";
3883
+ var Popover = ({ open, onClose, children, ...props }) => {
3884
+ const ref = useRef6(null);
3885
+ const { overlayProps } = useOverlay2(
3886
+ useMemo3(
3887
+ () => ({
3888
+ isOpen: open,
3889
+ onClose,
3890
+ shouldCloseOnBlur: true,
3891
+ isDismissable: true
3892
+ }),
3893
+ [onClose, open]
3894
+ ),
3895
+ ref
3896
+ );
3897
+ return /* @__PURE__ */ React15.createElement(FocusScope2, { restoreFocus: true }, /* @__PURE__ */ React15.createElement("div", { ...$3ef42575df84b30b$export$9d1611c77c2fe928(overlayProps, props), ref }, children, /* @__PURE__ */ React15.createElement(DismissButton, { onDismiss: onClose })));
3898
+ };
3899
+ var Popover_default = memo2(Popover);
3900
+
3901
+ // src/components/DropdownSelector/index.tsx
3902
+ var DropdownSelector = ({
3903
+ open,
3904
+ className,
3905
+ label = "",
3906
+ requiredText = "",
3907
+ subLabel,
3908
+ assertiveText,
3909
+ autoComplete,
3910
+ invalid = false,
3911
+ disabled = false,
3912
+ required = false,
3913
+ showLabel = false,
3914
+ mode = "default",
3915
+ ...props
3916
+ }) => {
3917
+ const { visuallyHiddenProps } = useVisuallyHidden2();
3918
+ const triggerRef = useRef7(null);
3919
+ const selectProps = useMemo4(
3920
+ () => ({
3921
+ ...props,
3922
+ label,
3923
+ isOpen: open,
3924
+ isDisabled: disabled,
3925
+ isRequired: required,
3926
+ errorMessage: invalid && assertiveText,
3927
+ validationState: invalid ? "invalid" : "valid",
3928
+ onSelectionChange: props.onChange,
3929
+ selectedKey: props.value,
3930
+ defaultSelectedKey: props.defaultValue
3931
+ }),
3932
+ [assertiveText, disabled, invalid, label, open, props, required]
3933
+ );
3934
+ const state = useSelectState(selectProps);
3935
+ const {
3936
+ labelProps,
3937
+ triggerProps,
3938
+ valueProps,
3939
+ menuProps,
3940
+ errorMessageProps,
3941
+ descriptionProps
3942
+ } = useSelect(selectProps, state, triggerRef);
3943
+ const { buttonProps } = useButton(triggerProps, triggerRef);
3944
+ const hasAssertiveText = assertiveText !== void 0 && assertiveText.length > 0;
3945
+ return /* @__PURE__ */ React16.createElement(DropdownSelectorRoot, { "aria-disabled": disabled, className }, /* @__PURE__ */ React16.createElement(
3946
+ DropdownFieldLabel,
3947
+ {
3948
+ label,
3949
+ required,
3950
+ requiredText,
3951
+ subLabel,
3952
+ ...labelProps,
3953
+ ...!showLabel ? visuallyHiddenProps : {}
3954
+ }
3955
+ ), /* @__PURE__ */ React16.createElement(
3956
+ HiddenSelect,
3957
+ {
3958
+ state,
3959
+ triggerRef,
3960
+ label,
3961
+ name: props.name,
3962
+ isDisabled: disabled,
3963
+ autoComplete
3964
+ }
3965
+ ), /* @__PURE__ */ React16.createElement(DropdownButtonWrapper, null, /* @__PURE__ */ React16.createElement(DropdownButton, { ...buttonProps, ref: triggerRef, invalid }, /* @__PURE__ */ React16.createElement(DropdownButtonText, { ...valueProps }, state.selectedItem ? state.selectedItem.rendered : props.placeholder), /* @__PURE__ */ React16.createElement(Icon_default, { name: "16/Menu" })), state.isOpen && /* @__PURE__ */ React16.createElement(DropdownPopover, { open: state.isOpen, onClose: () => state.close() }, /* @__PURE__ */ React16.createElement(Listbox_default, { ...menuProps, state, mode }))), hasAssertiveText && /* @__PURE__ */ React16.createElement(
3966
+ AssertiveText,
3967
+ {
3968
+ invalid,
3969
+ ...invalid ? errorMessageProps : descriptionProps
3970
+ },
3971
+ assertiveText
3972
+ ));
3973
+ };
3974
+ var DropdownSelector_default = DropdownSelector;
3975
+ var DropdownSelectorItem = Item;
3976
+ var DropdownSelectorRoot = styled14.div`
3977
+ position: relative;
3978
+ display: inline-block;
3979
+
3980
+ ${disabledSelector4} {
3981
+ cursor: default;
3982
+ ${theme((o) => o.disabled)}
3983
+ }
3984
+ `;
3985
+ var DropdownFieldLabel = styled14(FieldLabel_default)`
3986
+ width: 100%;
3987
+
3988
+ ${theme((o) => o.margin.bottom(8))}
3989
+ `;
3990
+ var DropdownButtonWrapper = styled14.div`
3991
+ position: relative;
3992
+ `;
3993
+ var DropdownButton = styled14.button`
3994
+ display: flex;
3995
+ justify-content: space-between;
3996
+ align-items: center;
3997
+
3998
+ height: 40px;
3999
+ width: 288px;
4000
+ box-sizing: border-box;
4001
+ cursor: pointer;
4002
+
4003
+ ${disabledSelector4} {
4004
+ cursor: default;
4005
+ }
4006
+
4007
+ ${({ invalid }) => theme((o) => [
4008
+ o.border.default,
4009
+ o.padding.horizontal(8),
4010
+ o.outline.default.focus,
4011
+ o.bg.surface3,
4012
+ o.borderRadius(4),
4013
+ invalid && o.outline.assertive
4014
+ ])}
4015
+ `;
4016
+ var DropdownButtonText = styled14.span`
4017
+ text-align: left;
4018
+
4019
+ ${theme((o) => [o.typography(14), o.font.text2])}
4020
+ `;
4021
+ var AssertiveText = styled14.div`
4022
+ ${({ invalid }) => theme((o) => [
4023
+ o.typography(14),
4024
+ o.margin.top(8),
4025
+ invalid && o.font.assertive
4026
+ ])}
4027
+ `;
4028
+ var DropdownPopover = styled14(Popover_default)`
4029
+ position: absolute;
4030
+ width: 100%;
4031
+
4032
+ top: 100%;
4033
+ margin-top: 2px;
4034
+ `;
4035
+
4036
+ // src/components/SegmentedControl/index.tsx
4037
+ import React18, { forwardRef, memo as memo3, useMemo as useMemo5, useRef as useRef8 } from "react";
4038
+ import { useRadioGroupState } from "react-stately";
4039
+ import {
4040
+ useRadio,
4041
+ useRadioGroup
4042
+ } from "@react-aria/radio";
4043
+ import styled15 from "styled-components";
4044
+ import { disabledSelector as disabledSelector5 } from "@charcoal-ui/utils";
4045
+
4046
+ // src/components/SegmentedControl/RadioGroupContext.tsx
4047
+ import React17, { createContext as createContext2, useContext as useContext5 } from "react";
4048
+ var RadioContext = createContext2(null);
4049
+ var RadioProvider = ({
4050
+ value,
4051
+ children
4052
+ }) => {
4053
+ return /* @__PURE__ */ React17.createElement(RadioContext.Provider, { value }, children);
4054
+ };
4055
+ var useRadioContext = () => {
4056
+ const state = useContext5(RadioContext);
4057
+ if (state === null)
4058
+ throw new Error("`<RadioProvider>` is not likely mounted.");
4059
+ return state;
4060
+ };
4061
+
4062
+ // src/components/SegmentedControl/index.tsx
4063
+ var SegmentedControl = forwardRef(
4064
+ function SegmentedControlInner(props, ref) {
4065
+ const ariaRadioGroupProps = useMemo5(
4066
+ () => ({
4067
+ ...props,
4068
+ isDisabled: props.disabled,
4069
+ isReadOnly: props.readonly,
4070
+ isRequired: props.required
4071
+ }),
4072
+ [props]
4073
+ );
4074
+ const state = useRadioGroupState(ariaRadioGroupProps);
4075
+ const { radioGroupProps } = useRadioGroup(ariaRadioGroupProps, state);
4076
+ const segmentedControlItems = useMemo5(() => {
4077
+ return props.data.map(
4078
+ (d) => typeof d === "string" ? { value: d, label: d } : d
4079
+ );
4080
+ }, [props.data]);
4081
+ return /* @__PURE__ */ React18.createElement(SegmentedControlRoot, { ref, ...radioGroupProps }, /* @__PURE__ */ React18.createElement(RadioProvider, { value: state }, segmentedControlItems.map((item) => /* @__PURE__ */ React18.createElement(
4082
+ Segmented,
4083
+ {
4084
+ key: item.value,
4085
+ value: item.value,
4086
+ disabled: item.disabled
4087
+ },
4088
+ item.label
4089
+ ))));
4090
+ }
4091
+ );
4092
+ var SegmentedControl_default = memo3(SegmentedControl);
4093
+ var Segmented = ({ children, ...props }) => {
4094
+ const state = useRadioContext();
4095
+ const ref = useRef8(null);
4096
+ const ariaRadioProps = useMemo5(
4097
+ () => ({ ...props, isDisabled: props.disabled }),
4098
+ [props]
4099
+ );
4100
+ const { inputProps, isDisabled, isSelected } = useRadio(
4101
+ ariaRadioProps,
4102
+ state,
4103
+ ref
4104
+ );
4105
+ return /* @__PURE__ */ React18.createElement(
4106
+ SegmentedRoot,
4107
+ {
4108
+ "aria-disabled": isDisabled || state.isReadOnly,
4109
+ checked: isSelected
4110
+ },
4111
+ /* @__PURE__ */ React18.createElement(SegmentedInput, { ...inputProps, ref }),
4112
+ /* @__PURE__ */ React18.createElement(RadioLabel2, null, /* @__PURE__ */ React18.createElement(SegmentedLabelInner, null, children))
4113
+ );
4114
+ };
4115
+ var SegmentedControlRoot = styled15.div`
4116
+ display: inline-flex;
4117
+ align-items: center;
4118
+
4119
+ ${theme((o) => [o.bg.surface3, o.borderRadius(16)])}
4120
+ `;
4121
+ var SegmentedRoot = styled15.label`
4122
+ position: relative;
4123
+ display: flex;
4124
+ align-items: center;
4125
+ cursor: pointer;
4126
+ height: 32px;
4127
+
4128
+ ${disabledSelector5} {
4129
+ cursor: default;
4130
+ }
4131
+
4132
+ ${({ checked }) => theme((o) => [
4133
+ o.padding.horizontal(16),
4134
+ o.borderRadius(16),
4135
+ o.disabled,
4136
+ checked === true && o.bg.brand,
4137
+ checked === true ? o.font.text5 : o.font.text2
4138
+ ])}
4139
+ `;
4140
+ var SegmentedInput = styled15.input`
4141
+ position: absolute;
4142
+
4143
+ height: 0px;
4144
+ width: 0px;
4145
+ padding: 0;
4146
+ margin: 0;
4147
+
4148
+ appearance: none;
4149
+ box-sizing: border-box;
4150
+ overflow: hidden;
4151
+ white-space: nowrap;
4152
+ opacity: 0;
4153
+ `;
4154
+ var RadioLabel2 = styled15.div`
4155
+ background: transparent;
4156
+ display: flex;
4157
+ align-items: center;
4158
+ height: 22px;
4159
+ `;
4160
+ var SegmentedLabelInner = styled15.div`
4161
+ ${theme((o) => [o.typography(14)])}
4162
+ `;
4163
+
4164
+ // src/components/Checkbox/index.tsx
4165
+ import React19, { forwardRef as forwardRef2, memo as memo4, useMemo as useMemo6 } from "react";
4166
+ import styled16, { css as css6 } from "styled-components";
4167
+ import { useCheckbox } from "@react-aria/checkbox";
4168
+ import { useToggleState as useToggleState2 } from "react-stately";
4169
+ import { disabledSelector as disabledSelector6, px as px5 } from "@charcoal-ui/utils";
4170
+ var Checkbox = forwardRef2(
4171
+ function CheckboxInner(props, ref) {
4172
+ const ariaCheckboxProps = useMemo6(
4173
+ () => ({
4174
+ ...props,
4175
+ isSelected: props.checked,
4176
+ defaultSelected: props.defaultChecked,
4177
+ "aria-label": "children" in props ? void 0 : props.label,
4178
+ isDisabled: props.disabled
4179
+ }),
4180
+ [props]
4181
+ );
4182
+ const state = useToggleState2(ariaCheckboxProps);
4183
+ const objectRef = $df56164dff5785e2$export$4338b53315abf666(ref);
4184
+ const { inputProps } = useCheckbox(ariaCheckboxProps, state, objectRef);
4185
+ const isDisabled = (props.disabled ?? false) || (props.readonly ?? false);
4186
+ return /* @__PURE__ */ React19.createElement(InputRoot, { "aria-disabled": isDisabled }, /* @__PURE__ */ React19.createElement(CheckboxInput, { type: "checkbox", ...inputProps }), /* @__PURE__ */ React19.createElement(CheckboxInputOverlay, { "aria-hidden": true, checked: inputProps.checked }, /* @__PURE__ */ React19.createElement(Icon_default, { name: "24/Check", unsafeNonGuidelineScale: 2 / 3 })), "children" in props && /* @__PURE__ */ React19.createElement(InputLabel, null, props.children));
4187
+ }
4188
+ );
4189
+ var Checkbox_default = memo4(Checkbox);
4190
+ var hiddenCss = css6`
4191
+ visibility: hidden;
4192
+ `;
4193
+ var InputRoot = styled16.label`
4194
+ position: relative;
4195
+ display: flex;
4196
+ align-items: center;
4197
+ cursor: pointer;
4198
+ ${disabledSelector6} {
4199
+ cursor: default;
4200
+ }
4201
+
4202
+ gap: ${({ theme: theme4 }) => px5(theme4.spacing[4])};
4203
+ ${theme((o) => [o.disabled])}
4204
+ `;
4205
+ var CheckboxInput = styled16.input`
4206
+ &[type='checkbox'] {
4207
+ appearance: none;
4208
+ display: block;
4209
+ cursor: pointer;
4210
+ margin: 0;
4211
+ width: 20px;
4212
+ height: 20px;
4213
+
4214
+ &:checked {
4215
+ ${theme((o) => o.bg.brand.hover.press)}
4216
+ }
4217
+ &:not(:checked) {
4218
+ border-width: 2px;
4219
+ border-style: solid;
4220
+ border-color: ${({ theme: theme4 }) => theme4.color.text4};
4221
+ }
4222
+ ${theme((o) => [o.outline.default.focus, o.borderRadius(4)])}
4223
+ }
4224
+ `;
4225
+ var CheckboxInputOverlay = styled16.div`
4226
+ position: absolute;
4227
+ top: -2px;
4228
+ left: -2px;
4229
+ box-sizing: border-box;
4230
+ display: flex;
4231
+ align-items: center;
4232
+ justify-content: center;
4233
+
4234
+ ${theme((o) => [o.width.px(24), o.height.px(24), o.font.text5])}
4235
+
4236
+ ${({ checked }) => checked !== true && hiddenCss};
4237
+ `;
4238
+ var InputLabel = styled16.div`
4239
+ ${theme((o) => [o.typography(14)])}
4240
+ `;
4241
+
4242
+ // src/components/TagItem/index.tsx
4243
+ import React20, {
4244
+ forwardRef as forwardRef3,
4245
+ memo as memo5,
4246
+ useMemo as useMemo7
4247
+ } from "react";
4248
+ import styled17, { css as css7 } from "styled-components";
4249
+ import { disabledSelector as disabledSelector7, px as px6 } from "@charcoal-ui/utils";
4250
+ import { useButton as useButton2 } from "@react-aria/button";
4251
+ var sizeMap = {
4252
+ S: 32,
4253
+ M: 40
4254
+ };
4255
+ var TagItem = forwardRef3(
4256
+ function TagItemInner({
4257
+ label,
4258
+ translatedLabel,
4259
+ bgColor = "#7ACCB1",
4260
+ bgImage,
4261
+ size = "M",
4262
+ disabled,
4263
+ status = "default",
4264
+ ...props
4265
+ }, _ref) {
4266
+ const ref = $df56164dff5785e2$export$4338b53315abf666(_ref);
4267
+ const ariaButtonProps = useMemo7(
4268
+ () => ({
4269
+ elementType: "a",
4270
+ isDisabled: disabled,
4271
+ ...props
4272
+ }),
4273
+ [disabled, props]
4274
+ );
4275
+ const { buttonProps } = useButton2(ariaButtonProps, ref);
4276
+ const hasTranslatedLabel = translatedLabel !== void 0 && translatedLabel.length > 0;
4277
+ return /* @__PURE__ */ React20.createElement(
4278
+ TagItemRoot,
4279
+ {
4280
+ ref,
4281
+ size: hasTranslatedLabel ? "M" : size,
4282
+ status,
4283
+ ...buttonProps
4284
+ },
4285
+ /* @__PURE__ */ React20.createElement(Background, { bgColor, bgImage }),
4286
+ /* @__PURE__ */ React20.createElement(Inner, null, /* @__PURE__ */ React20.createElement(LabelWrapper, { isTranslate: hasTranslatedLabel }, hasTranslatedLabel && /* @__PURE__ */ React20.createElement(TranslatedLabel, null, /* @__PURE__ */ React20.createElement(Label3, null, translatedLabel)), /* @__PURE__ */ React20.createElement(Label3, null, label)), status === "active" && /* @__PURE__ */ React20.createElement(Icon_default, { name: "16/Remove" }))
4287
+ );
4288
+ }
4289
+ );
4290
+ var TagItem_default = memo5(TagItem);
4291
+ var TagItemRoot = styled17.a`
4292
+ isolation: isolate;
4293
+ position: relative;
4294
+ height: ${({ size }) => sizeMap[size]}px;
4295
+ display: inline-flex;
4296
+ align-items: center;
4297
+ justify-content: center;
4298
+ text-decoration: none;
4299
+ cursor: pointer;
4300
+ overflow: hidden;
4301
+
4302
+ ${({ size, status }) => theme((o) => [
4303
+ o.outline.default.focus,
4304
+ o.borderRadius(4),
4305
+ status !== "active" && size === "M" && o.padding.horizontal(24),
4306
+ status !== "active" && size === "S" && o.padding.horizontal(16),
4307
+ status === "inactive" && o.bg.surface3,
4308
+ status === "inactive" ? o.font.text2 : o.font.text5,
4309
+ ...status === "active" ? [o.padding.left(16), o.padding.right(8)] : []
4310
+ ])}
4311
+
4312
+ ${disabledSelector7} {
4313
+ ${theme((o) => [o.disabled])}
4314
+ cursor: default;
4315
+ }
4316
+ `;
4317
+ var Background = styled17.div`
4318
+ position: absolute;
4319
+ z-index: 1;
4320
+ top: 0;
4321
+ left: 0;
4322
+ width: 100%;
4323
+ height: 100%;
4324
+
4325
+ background-color: ${({ bgColor }) => bgColor};
4326
+
4327
+ ${({ bgImage }) => bgImage !== void 0 && css7`
4328
+ ${theme((o) => [o.bg.surface4])}
4329
+ &::before {
4330
+ content: '';
4331
+ position: absolute;
4332
+ top: 0;
4333
+ left: 0;
4334
+ width: 100%;
4335
+ height: 100%;
4336
+ background-position: center;
4337
+ background-size: cover;
4338
+ background-image: url(${bgImage});
4339
+ mix-blend-mode: overlay;
4340
+ }
4341
+ `}
4342
+ `;
4343
+ var Inner = styled17.div`
4344
+ display: inline-flex;
4345
+ gap: ${({ theme: theme4 }) => px6(theme4.spacing[8])};
4346
+ align-items: center;
4347
+ z-index: 2;
4348
+ `;
4349
+ var labelCSS = css7`
4350
+ ${theme((o) => [o.typography(14).bold])}
4351
+ `;
4352
+ var translateLabelCSS = css7`
4353
+ display: flex;
4354
+ align-items: center;
4355
+ flex-direction: column;
4356
+ font-size: 10px;
4357
+ `;
4358
+ var LabelWrapper = styled17.div`
4359
+ ${({ isTranslate }) => isTranslate ?? false ? translateLabelCSS : labelCSS}
4360
+ `;
4361
+ var Label3 = styled17.span`
4362
+ max-width: 152px;
4363
+ overflow: hidden;
4364
+ text-overflow: ellipsis;
4365
+ white-space: nowrap;
4366
+ font-size: inherit;
4367
+ color: inherit;
4368
+ line-height: inherit;
4369
+ `;
4370
+ var TranslatedLabel = styled17.div`
4371
+ ${theme((o) => [o.typography(12).bold])}
4372
+ `;
4373
+ export {
4374
+ Button_default as Button,
4375
+ Checkbox_default as Checkbox,
4376
+ Clickable_default as Clickable,
4377
+ ComponentAbstraction,
4378
+ DropdownSelector_default as DropdownSelector,
4379
+ DropdownSelectorItem,
4380
+ Icon_default as Icon,
4381
+ IconButton_default as IconButton,
4382
+ LoadingSpinner,
4383
+ LoadingSpinnerIcon,
4384
+ Modal,
4385
+ ModalAlign,
4386
+ ModalBody,
4387
+ ModalButtons,
4388
+ ModalHeader,
4389
+ MultiSelect,
4390
+ MultiSelectGroup,
4391
+ OverlayProvider,
4392
+ Radio,
4393
+ RadioGroup,
4394
+ SSRProvider,
4395
+ SegmentedControl_default as SegmentedControl,
4396
+ SwitchCheckbox as Switch,
4397
+ TagItem_default as TagItem,
4398
+ TextField_default as TextField,
4399
+ useComponentAbstraction
4400
+ };
4401
+ //# sourceMappingURL=index.js.map