@usefui/components 1.5.1 → 1.5.2

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 (41) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/index.d.mts +230 -9
  3. package/dist/index.d.ts +230 -9
  4. package/dist/index.js +1131 -309
  5. package/dist/index.mjs +1085 -276
  6. package/package.json +6 -6
  7. package/src/avatar/index.tsx +1 -1
  8. package/src/badge/index.tsx +3 -3
  9. package/src/breadcrumb/Breadcrumb.stories.tsx +36 -0
  10. package/src/breadcrumb/index.tsx +117 -0
  11. package/src/breadcrumb/styles/index.ts +19 -0
  12. package/src/button/Button.stories.tsx +80 -8
  13. package/src/button/index.tsx +67 -5
  14. package/src/button/styles/index.ts +82 -10
  15. package/src/card/Card.stories.tsx +57 -0
  16. package/src/card/index.tsx +55 -0
  17. package/src/card/styles/index.ts +72 -0
  18. package/src/copy-button/CopyButton.stories.tsx +29 -0
  19. package/src/copy-button/index.tsx +101 -0
  20. package/src/dialog/index.tsx +1 -1
  21. package/src/dropdown/index.tsx +1 -1
  22. package/src/field/Field.stories.tsx +39 -8
  23. package/src/field/index.tsx +5 -0
  24. package/src/field/styles/index.ts +37 -12
  25. package/src/index.ts +8 -0
  26. package/src/page/index.tsx +1 -1
  27. package/src/privacy-field/PrivacyField.stories.tsx +29 -0
  28. package/src/privacy-field/index.tsx +56 -0
  29. package/src/privacy-field/styles/index.ts +17 -0
  30. package/src/resizable/Resizable.stories.tsx +40 -0
  31. package/src/resizable/index.tsx +108 -0
  32. package/src/resizable/styles/index.ts +65 -0
  33. package/src/skeleton/Skeleton.stories.tsx +32 -0
  34. package/src/skeleton/index.tsx +43 -0
  35. package/src/skeleton/styles/index.ts +56 -0
  36. package/src/spinner/Spinner.stories.tsx +27 -0
  37. package/src/spinner/index.tsx +19 -0
  38. package/src/spinner/styles/index.ts +43 -0
  39. package/src/text-area/Textarea.stories.tsx +27 -0
  40. package/src/text-area/index.tsx +62 -0
  41. package/src/text-area/styles/index.ts +124 -0
package/dist/index.js CHANGED
@@ -37,7 +37,14 @@ __export(index_exports, {
37
37
  AvataStatusEnum: () => AvataStatusEnum,
38
38
  Avatar: () => Avatar,
39
39
  Badge: () => Badge,
40
+ Breadcrumb: () => Breadcrumb,
41
+ BreadcrumbItem: () => BreadcrumbItem,
42
+ BreadcrumbSeparator: () => BreadcrumbSeparator,
40
43
  Button: () => Button,
44
+ Card: () => Card,
45
+ CardBody: () => CardBody,
46
+ CardGrid: () => CardGrid,
47
+ CardMeta: () => CardMeta,
41
48
  Checkbox: () => Checkbox,
42
49
  CheckboxIndicator: () => CheckboxIndicator,
43
50
  CheckboxRoot: () => CheckboxRoot,
@@ -45,6 +52,7 @@ __export(index_exports, {
45
52
  CollapsibleContent: () => CollapsibleContent,
46
53
  CollapsibleRoot: () => CollapsibleRoot,
47
54
  CollapsibleTrigger: () => CollapsibleTrigger,
55
+ CopyButton: () => CopyButton,
48
56
  Dialog: () => Dialog,
49
57
  DialogControl: () => DialogControl,
50
58
  DialogMenu: () => DialogMenu,
@@ -74,10 +82,14 @@ __export(index_exports, {
74
82
  PageTools: () => PageTools,
75
83
  PageWrapper: () => PageWrapper,
76
84
  Portal: () => Portal,
85
+ PrivacyField: () => PrivacyField,
86
+ Resizable: () => Resizable,
77
87
  ScrollArea: () => ScrollArea,
78
88
  Sheet: () => Sheet,
79
89
  SheetRoot: () => SheetRoot,
80
90
  SheetTrigger: () => SheetTrigger,
91
+ Skeleton: () => Skeleton,
92
+ Spinner: () => Spinner,
81
93
  Switch: () => Switch,
82
94
  SwitchRoot: () => SwitchRoot,
83
95
  SwitchThumb: () => SwitchThumb,
@@ -92,6 +104,7 @@ __export(index_exports, {
92
104
  TabsContent: () => TabsContent,
93
105
  TabsRoot: () => TabsRoot,
94
106
  TabsTrigger: () => TabsTrigger,
107
+ Textarea: () => Textarea,
95
108
  Toggle: () => Toggle,
96
109
  Toolbar: () => Toolbar,
97
110
  ToolbarItem: () => ToolbarItem,
@@ -176,6 +189,11 @@ var ButtonDefaultStyles = import_styled_components.css`
176
189
  opacity: 0.6;
177
190
  }
178
191
 
192
+ svg,
193
+ span {
194
+ transition: all 0.2s ease-in-out;
195
+ }
196
+
179
197
  &:hover,
180
198
  &:focus,
181
199
  &:active {
@@ -228,19 +246,19 @@ var ButtonVariantsStyles = import_styled_components.css`
228
246
  }
229
247
  &[data-variant="secondary"] {
230
248
  color: var(--font-color-alpha-60);
231
- background-color: var(--body-color);
249
+ background-color: transparent;
232
250
  border-color: var(--font-color-alpha-10);
233
251
 
234
252
  &:hover,
235
253
  &:focus,
236
254
  &:active {
237
255
  color: var(--font-color);
238
- border-color: var(--font-color-alpha-30);
256
+ background-color: var(--font-color-alpha-10);
257
+ border-color: transparent;
239
258
  }
240
259
  }
241
260
  &[data-variant="tertiary"] {
242
- color: var(--font-color-alpha-60);
243
- border-color: var(--font-color-alpha-10);
261
+ color: var(--font-color-alpha-80);
244
262
  background-color: transparent;
245
263
 
246
264
  &:hover,
@@ -248,7 +266,6 @@ var ButtonVariantsStyles = import_styled_components.css`
248
266
  &:active {
249
267
  color: var(--font-color);
250
268
  background-color: var(--font-color-alpha-10);
251
- border-color: transparent;
252
269
  }
253
270
  }
254
271
  &[data-variant="border"] {
@@ -260,6 +277,27 @@ var ButtonVariantsStyles = import_styled_components.css`
260
277
  &:focus,
261
278
  &:active {
262
279
  color: var(--font-color);
280
+ border-color: var(--font-color-alpha-20);
281
+ }
282
+ }
283
+ &[data-variant="danger"] {
284
+ color: var(--color-mono-white);
285
+ background-color: var(--color-red);
286
+
287
+ &:hover,
288
+ &:focus,
289
+ &:active {
290
+ background-color: var(--shade-red-10);
291
+ }
292
+ }
293
+ &[data-variant="warning"] {
294
+ color: var(--color-mono-dark);
295
+ background-color: var(--color-orange);
296
+
297
+ &:hover,
298
+ &:focus,
299
+ &:active {
300
+ background-color: var(--shade-orange-10);
263
301
  }
264
302
  }
265
303
  &[data-variant="mono"] {
@@ -290,8 +328,7 @@ var ButtonVariantsStyles = import_styled_components.css`
290
328
  `;
291
329
  var ButtonSizeStyles = import_styled_components.css`
292
330
  &[data-size="small"] {
293
- border-radius: var(--measurement-medium-20);
294
- font-size: var(--fontsize-medium-10);
331
+ font-size: var(--fontsize-small-60);
295
332
 
296
333
  gap: var(--measurement-medium-10);
297
334
  padding: var(--measurement-medium-10) var(--measurement-medium-30);
@@ -304,39 +341,83 @@ var ButtonSizeStyles = import_styled_components.css`
304
341
  }
305
342
  }
306
343
  &[data-size="medium"] {
307
- border-radius: var(--measurement-medium-30);
308
344
  padding: var(--measurement-medium-10) var(--measurement-medium-60);
309
345
  min-width: var(--measurement-medium-90);
310
346
  min-height: var(--measurement-medium-80);
311
347
  }
312
348
  &[data-size="large"] {
313
- border-radius: var(--measurement-medium-30);
314
349
  padding: var(--measurement-medium-10) var(--measurement-medium-60);
315
350
  min-width: var(--measurement-medium-90);
316
351
  min-height: var(--measurement-medium-90);
317
352
  }
318
353
  `;
354
+ var ButtonShapeStyles = import_styled_components.css`
355
+ &[data-shape="square"] {
356
+ border-radius: 0;
357
+ }
358
+ &[data-shape="smooth"] {
359
+ border-radius: var(--measurement-medium-20);
360
+ }
361
+ &[data-shape="round"] {
362
+ border-radius: var(--measurement-large-90);
363
+ }
364
+ `;
319
365
  var ButtonWrapper = import_styled_components.default.button`
320
366
  &[data-raw="false"] {
321
367
  ${ButtonDefaultStyles}
322
368
  ${ButtonSizeStyles}
369
+ ${ButtonShapeStyles}
323
370
  ${ButtonVariantsStyles}
324
-
325
371
  &[data-rawIcon="false"] {
326
372
  ${ButtonIconStyles}
327
373
  }
328
374
  }
329
375
  `;
376
+ var ButtonOverlay = import_styled_components.default.div`
377
+ position: absolute;
378
+ inset: -1px;
379
+ pointer-events: none;
380
+ opacity: ${(props) => props.$isHovering ? 1 : 0};
381
+ background: transparent;
382
+ transition: opacity 0.2s ease-in-out;
383
+
384
+ ${ButtonShapeStyles}
385
+ `;
386
+ var ButtonMaskElement = import_styled_components.default.div`
387
+ position: absolute;
388
+ inset: 0;
389
+ background: transparent;
390
+ border: var(--measurement-small-10) solid var(--font-color-alpha-20);
391
+ clip-path: inset(0 round var(--measurement-medium-30));
392
+
393
+ mask-image: radial-gradient(
394
+ circle at ${(props) => props.$mouseX}% ${(props) => props.$mouseY}%,
395
+ var(--body-color),
396
+ transparent 100%
397
+ );
398
+ -webkit-mask-image: radial-gradient(
399
+ circle at ${(props) => props.$mouseX}% ${(props) => props.$mouseY}%,
400
+ var(--body-color),
401
+ transparent 100%
402
+ );
403
+
404
+ ${ButtonShapeStyles}
405
+ `;
330
406
 
331
407
  // src/button/index.tsx
332
408
  var Button = import_react2.default.forwardRef(
333
409
  (props, forwardedRef) => {
334
410
  const {
335
411
  name,
336
- variant = "mono" /* Mono */,
412
+ variant = "primary" /* Primary */,
337
413
  sizing = "medium" /* Medium */,
414
+ shape = "smooth",
415
+ animation,
338
416
  raw,
339
417
  rawicon,
418
+ onMouseMove,
419
+ onMouseEnter,
420
+ onMouseLeave,
340
421
  children,
341
422
  ...restProps
342
423
  } = props;
@@ -347,6 +428,37 @@ var Button = import_react2.default.forwardRef(
347
428
  const buttonDescription = `${ariaLabel}:${buttonType}`;
348
429
  const buttonStateDescription = `disabled:${disabledState}`;
349
430
  const ButtonFullDesc = `${buttonDescription}/${buttonStateDescription}`;
431
+ const isReflective = animation === "reflective" && variant !== "ghost";
432
+ const [position, setPosition] = import_react2.default.useState({ x: 0, y: 0 });
433
+ const [isHovering, setIsHovering] = import_react2.default.useState(false);
434
+ const handleMouseMove = import_react2.default.useCallback(
435
+ (e) => {
436
+ if (onMouseMove) onMouseMove(e);
437
+ if (!isReflective) return;
438
+ const rect = e.currentTarget.getBoundingClientRect();
439
+ setPosition({
440
+ x: (e.clientX - rect.left) / rect.width * 100,
441
+ y: (e.clientY - rect.top) / rect.height * 100
442
+ });
443
+ },
444
+ []
445
+ );
446
+ const handleMouseEnter = import_react2.default.useCallback(
447
+ (e) => {
448
+ if (onMouseEnter) onMouseEnter(e);
449
+ if (!isReflective) return;
450
+ setIsHovering(true);
451
+ },
452
+ []
453
+ );
454
+ const handleMouseLeave = import_react2.default.useCallback(
455
+ (e) => {
456
+ if (onMouseLeave) onMouseLeave(e);
457
+ if (!isReflective) return;
458
+ setIsHovering(false);
459
+ },
460
+ []
461
+ );
350
462
  return /* @__PURE__ */ import_react2.default.createElement(
351
463
  ButtonWrapper,
352
464
  {
@@ -359,11 +471,24 @@ var Button = import_react2.default.forwardRef(
359
471
  "aria-disabled": disabledState,
360
472
  "data-variant": variant,
361
473
  "data-size": sizing,
474
+ "data-shape": shape,
475
+ "data-animation": animation,
362
476
  "data-raw": Boolean(raw),
363
477
  "data-rawicon": Boolean(rawicon),
364
478
  tabIndex: 0,
479
+ onMouseMove: handleMouseMove,
480
+ onMouseEnter: handleMouseEnter,
481
+ onMouseLeave: handleMouseLeave,
365
482
  ...restProps
366
483
  },
484
+ isReflective && /* @__PURE__ */ import_react2.default.createElement(ButtonOverlay, { $isHovering: isHovering, "data-shape": shape }, /* @__PURE__ */ import_react2.default.createElement(
485
+ ButtonMaskElement,
486
+ {
487
+ $mouseX: position.x,
488
+ $mouseY: position.y,
489
+ "data-shape": shape
490
+ }
491
+ )),
367
492
  children
368
493
  );
369
494
  }
@@ -718,25 +843,186 @@ var Badge = (props) => {
718
843
  };
719
844
  Badge.displayName = "Badge";
720
845
 
721
- // src/checkbox/index.tsx
846
+ // src/breadcrumb/index.tsx
847
+ var import_react6 = __toESM(require("react"));
848
+
849
+ // src/breadcrumb/styles/index.ts
850
+ var import_styled_components4 = __toESM(require("styled-components"));
851
+ var ItemWrapper = import_styled_components4.default.span`
852
+ width: 100%;
853
+ line-clamp: 2;
854
+ word-break: break-all;
855
+
856
+ &[data-current="true"] {
857
+ opacity: 1 !important;
858
+ }
859
+ `;
860
+ var SeparatorItem = import_styled_components4.default.span`
861
+ color: var(--font-color-alpha-10) !important;
862
+ user-select: none;
863
+ pointer-events: none;
864
+ `;
865
+
866
+ // src/breadcrumb/index.tsx
867
+ var SEGMENT_SEPARATOR = "/";
868
+ var BreadcrumbItem = (props) => {
869
+ const { isLastItem = false, children, ...restProps } = props;
870
+ return /* @__PURE__ */ import_react6.default.createElement(Button, { sizing: "small", variant: "ghost", ...restProps }, /* @__PURE__ */ import_react6.default.createElement(ItemWrapper, { "data-current": isLastItem }, children));
871
+ };
872
+ BreadcrumbItem.displayName = "Breadcrumb.Item";
873
+ var BreadcrumbSeparator = (props) => {
874
+ const { children } = props;
875
+ return /* @__PURE__ */ import_react6.default.createElement(SeparatorItem, null, children ?? SEGMENT_SEPARATOR);
876
+ };
877
+ BreadcrumbSeparator.displayName = "Breadcrumb.Separator";
878
+ var Breadcrumb = (props) => {
879
+ const { path, navigate, capitalizeItems = true, children } = props;
880
+ const segments = path.split(SEGMENT_SEPARATOR).filter(Boolean);
881
+ const items = segments.map((segment, index) => {
882
+ const href = `/${segments.slice(0, index + 1).join(SEGMENT_SEPARATOR)}`;
883
+ const isLastItem = index === segments.length - 1;
884
+ return {
885
+ href,
886
+ label: segment,
887
+ isLastItem
888
+ };
889
+ });
890
+ const breadcrumbLabel = (segment) => {
891
+ return capitalizeItems ? segment.charAt(0).toUpperCase() + segment.slice(1).replace(/-/g, " ") : segment.replace(/-/g, " ");
892
+ };
893
+ const handleNavigate = import_react6.default.useCallback((href) => {
894
+ if (navigate) navigate(href);
895
+ }, []);
896
+ if (path === SEGMENT_SEPARATOR) return null;
897
+ return /* @__PURE__ */ import_react6.default.createElement("div", { className: "flex align-center g-medium-30" }, children && /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, null, children, /* @__PURE__ */ import_react6.default.createElement(Breadcrumb.Separator, null)), items.map((item, key) => /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, { key }, /* @__PURE__ */ import_react6.default.createElement(
898
+ Breadcrumb.Item,
899
+ {
900
+ isLastItem: item.isLastItem,
901
+ disabled: !navigate,
902
+ onClick: () => handleNavigate(item.href)
903
+ },
904
+ breadcrumbLabel(item.label)
905
+ ), !item.isLastItem && /* @__PURE__ */ import_react6.default.createElement(Breadcrumb.Separator, null))));
906
+ };
907
+ Breadcrumb.displayName = "Breadcrumb";
908
+ Breadcrumb.Item = BreadcrumbItem;
909
+ Breadcrumb.Separator = BreadcrumbSeparator;
910
+
911
+ // src/card/index.tsx
722
912
  var import_react7 = __toESM(require("react"));
723
913
 
914
+ // src/card/styles/index.ts
915
+ var import_styled_components5 = __toESM(require("styled-components"));
916
+ var GridDefaultStyles = import_styled_components5.css`
917
+ display: grid;
918
+ grid-gap: var(--measurement-medium-30) var(--measurement-medium-30);
919
+ box-sizing: border-box;
920
+
921
+ @media (max-width: 768px) {
922
+ grid-template-columns: repeat(auto-fill, minmax(100%, 1fr));
923
+ }
924
+ `;
925
+ var GridSizeStyles = import_styled_components5.css`
926
+ &[data-size="small"] {
927
+ grid-template-columns: repeat(
928
+ auto-fill,
929
+ minmax(var(--measurement-large-80), 1fr)
930
+ );
931
+ }
932
+ &[data-size="medium"] {
933
+ grid-template-columns: repeat(
934
+ auto-fill,
935
+ minmax(var(--measurement-large-90), 1fr)
936
+ );
937
+ }
938
+ &[data-size="large"] {
939
+ grid-template-columns: repeat(
940
+ auto-fill,
941
+ minmax(calc(var(--measurement-large-90) * 1.2), 1fr)
942
+ );
943
+ }
944
+ `;
945
+ var CardShapeStyles = import_styled_components5.css`
946
+ &[data-shape="square"] {
947
+ border-radius: 0;
948
+ }
949
+ &[data-shape="smooth"] {
950
+ border-radius: var(--measurement-medium-30);
951
+ }
952
+ &[data-shape="round"] {
953
+ border-radius: var(--measurement-medium-60);
954
+ }
955
+ `;
956
+ var CardDefaultStyles = import_styled_components5.css`
957
+ ${CardShapeStyles}
958
+
959
+ box-sizing: border-box;
960
+ `;
961
+ var CardContainer = import_styled_components5.default.div`
962
+ width: 100%;
963
+ background-color: var(--font-color-alpha-10);
964
+
965
+ ${CardDefaultStyles}
966
+ `;
967
+ var CardWrapper = import_styled_components5.default.div`
968
+ display: flex;
969
+ flex-direction: column;
970
+ gap: var(--measurement-large-10);
971
+ padding: var(--measurement-medium-60);
972
+ background-color: var(--contrast-color);
973
+ border: var(--measurement-small-10) solid var(--font-color-alpha-10);
974
+
975
+ ${CardDefaultStyles}
976
+ `;
977
+ var CardsGrid = import_styled_components5.default.div`
978
+ ${GridDefaultStyles}
979
+ ${GridSizeStyles}
980
+ `;
981
+
982
+ // src/card/index.tsx
983
+ var CardGrid = (props) => {
984
+ const { sizing = "medium", children } = props;
985
+ return /* @__PURE__ */ import_react7.default.createElement(CardsGrid, { "data-size": sizing }, children);
986
+ };
987
+ CardGrid.displayName = "Card.Grid";
988
+ var CardMeta = (props) => {
989
+ const { children } = props;
990
+ return /* @__PURE__ */ import_react7.default.createElement("div", { className: "p-y-medium-20 p-x-medium-30", ...props }, children);
991
+ };
992
+ CardMeta.displayName = "Card.Meta";
993
+ var CardBody = (props) => {
994
+ const { shape = "smooth", children } = props;
995
+ return /* @__PURE__ */ import_react7.default.createElement(CardWrapper, { "data-shape": shape }, children);
996
+ };
997
+ CardBody.displayName = "Card.Body";
998
+ var Card = (props) => {
999
+ const { shape = "smooth", children } = props;
1000
+ return /* @__PURE__ */ import_react7.default.createElement(CardContainer, { "data-shape": shape }, " ", children);
1001
+ };
1002
+ Card.displayName = "Card";
1003
+ Card.Grid = CardGrid;
1004
+ Card.Meta = CardMeta;
1005
+ Card.Body = CardBody;
1006
+
1007
+ // src/checkbox/index.tsx
1008
+ var import_react9 = __toESM(require("react"));
1009
+
724
1010
  // src/checkbox/hooks/index.tsx
725
- var import_react6 = __toESM(require("react"));
1011
+ var import_react8 = __toESM(require("react"));
726
1012
  var defaultComponentAPI2 = {
727
1013
  id: "",
728
1014
  states: {},
729
1015
  methods: {}
730
1016
  };
731
- var CheckboxContext = (0, import_react6.createContext)(defaultComponentAPI2);
732
- var useCheckbox = () => (0, import_react6.useContext)(CheckboxContext);
1017
+ var CheckboxContext = (0, import_react8.createContext)(defaultComponentAPI2);
1018
+ var useCheckbox = () => (0, import_react8.useContext)(CheckboxContext);
733
1019
  var CheckboxProvider = ({ children }) => {
734
1020
  const context = useCheckboxProvider();
735
- return /* @__PURE__ */ import_react6.default.createElement(CheckboxContext.Provider, { value: context }, children);
1021
+ return /* @__PURE__ */ import_react8.default.createElement(CheckboxContext.Provider, { value: context }, children);
736
1022
  };
737
1023
  function useCheckboxProvider() {
738
- const [checked, setChecked] = (0, import_react6.useState)(false);
739
- const checkboxId = import_react6.default.useId();
1024
+ const [checked, setChecked] = (0, import_react8.useState)(false);
1025
+ const checkboxId = import_react8.default.useId();
740
1026
  return {
741
1027
  id: checkboxId,
742
1028
  states: {
@@ -750,8 +1036,8 @@ function useCheckboxProvider() {
750
1036
  }
751
1037
 
752
1038
  // src/checkbox/styles/index.ts
753
- var import_styled_components4 = __toESM(require("styled-components"));
754
- var CheckboxDefaultStyles = import_styled_components4.css`
1039
+ var import_styled_components6 = __toESM(require("styled-components"));
1040
+ var CheckboxDefaultStyles = import_styled_components6.css`
755
1041
  position: relative;
756
1042
  display: flex;
757
1043
  align-items: center;
@@ -759,7 +1045,7 @@ var CheckboxDefaultStyles = import_styled_components4.css`
759
1045
  backdrop-filter: blur(var(--measurement-small-10));
760
1046
  transition: all ease-in-out 0.2s;
761
1047
  `;
762
- var CheckboxVariantsStyles = import_styled_components4.css`
1048
+ var CheckboxVariantsStyles = import_styled_components6.css`
763
1049
  &[data-variant="primary"] {
764
1050
  background-color: var(--font-color-alpha-10);
765
1051
  border: var(--measurement-small-10) solid transparent;
@@ -831,7 +1117,7 @@ var CheckboxVariantsStyles = import_styled_components4.css`
831
1117
  }
832
1118
  }
833
1119
  `;
834
- var CheckboxSizeStyles = import_styled_components4.css`
1120
+ var CheckboxSizeStyles = import_styled_components6.css`
835
1121
  &[data-size="small"] {
836
1122
  width: var(--measurement-medium-60);
837
1123
  height: var(--measurement-medium-60);
@@ -848,7 +1134,7 @@ var CheckboxSizeStyles = import_styled_components4.css`
848
1134
  border-radius: var(--measurement-medium-20);
849
1135
  }
850
1136
  `;
851
- var CheckboxWrapper = import_styled_components4.default.div`
1137
+ var CheckboxWrapper = import_styled_components6.default.div`
852
1138
  cursor: pointer;
853
1139
 
854
1140
  &[data-raw="false"] {
@@ -866,7 +1152,7 @@ var CheckboxWrapper = import_styled_components4.default.div`
866
1152
  }
867
1153
  }
868
1154
  `;
869
- var NativeInput = import_styled_components4.default.input`
1155
+ var NativeInput = import_styled_components6.default.input`
870
1156
  &[data-raw="false"] {
871
1157
  appearance: none;
872
1158
  background: none;
@@ -883,7 +1169,7 @@ var NativeInput = import_styled_components4.default.input`
883
1169
  }
884
1170
  }
885
1171
  `;
886
- var Indicator = import_styled_components4.default.span`
1172
+ var Indicator = import_styled_components6.default.span`
887
1173
  line-height: 0;
888
1174
  pointer-events: none;
889
1175
  `;
@@ -910,10 +1196,10 @@ var Checkbox = (props) => {
910
1196
  if (toggleChecked) toggleChecked();
911
1197
  if (onClick) onClick(event);
912
1198
  };
913
- import_react7.default.useEffect(() => {
1199
+ import_react9.default.useEffect(() => {
914
1200
  if (defaultChecked && applyChecked) applyChecked(defaultChecked);
915
1201
  }, []);
916
- return /* @__PURE__ */ import_react7.default.createElement(
1202
+ return /* @__PURE__ */ import_react9.default.createElement(
917
1203
  CheckboxWrapper,
918
1204
  {
919
1205
  role: "checkbox",
@@ -925,7 +1211,7 @@ var Checkbox = (props) => {
925
1211
  "data-variant": variant,
926
1212
  "aria-label": props["aria-label"] ?? `${name}-checkbox`
927
1213
  },
928
- /* @__PURE__ */ import_react7.default.createElement(
1214
+ /* @__PURE__ */ import_react9.default.createElement(
929
1215
  NativeInput,
930
1216
  {
931
1217
  type: "checkbox",
@@ -951,13 +1237,13 @@ var Checkbox = (props) => {
951
1237
  Checkbox.displayName = "Checkbox";
952
1238
  var CheckboxRoot = (props) => {
953
1239
  const { children, ...restProps } = props;
954
- return /* @__PURE__ */ import_react7.default.createElement(CheckboxProvider, { ...restProps }, children);
1240
+ return /* @__PURE__ */ import_react9.default.createElement(CheckboxProvider, { ...restProps }, children);
955
1241
  };
956
1242
  CheckboxRoot.displayName = "Checkbox.Root";
957
1243
  var CheckboxIndicator = (props) => {
958
1244
  const { states } = useCheckbox();
959
1245
  const { children, ...restProps } = props;
960
- return /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null, states.checked && /* @__PURE__ */ import_react7.default.createElement(Indicator, { ...restProps }, children ?? /* @__PURE__ */ import_react7.default.createElement(
1246
+ return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, states.checked && /* @__PURE__ */ import_react9.default.createElement(Indicator, { ...restProps }, children ?? /* @__PURE__ */ import_react9.default.createElement(
961
1247
  "svg",
962
1248
  {
963
1249
  tabIndex: -1,
@@ -969,8 +1255,8 @@ var CheckboxIndicator = (props) => {
969
1255
  viewBox: "0 0 10 10",
970
1256
  fill: "none"
971
1257
  },
972
- /* @__PURE__ */ import_react7.default.createElement("title", null, "Checked"),
973
- /* @__PURE__ */ import_react7.default.createElement(
1258
+ /* @__PURE__ */ import_react9.default.createElement("title", null, "Checked"),
1259
+ /* @__PURE__ */ import_react9.default.createElement(
974
1260
  "path",
975
1261
  {
976
1262
  d: "M2 5.5L4.12132 7.62132L8.36396 3.37868",
@@ -986,27 +1272,27 @@ Checkbox.Root = CheckboxRoot;
986
1272
  Checkbox.Indicator = CheckboxIndicator;
987
1273
 
988
1274
  // src/collapsible/index.tsx
989
- var import_react9 = __toESM(require("react"));
1275
+ var import_react11 = __toESM(require("react"));
990
1276
 
991
1277
  // src/collapsible/hooks/index.tsx
992
- var import_react8 = __toESM(require("react"));
1278
+ var import_react10 = __toESM(require("react"));
993
1279
  var defaultComponentAPI3 = {
994
1280
  id: "",
995
1281
  states: {},
996
1282
  methods: {}
997
1283
  };
998
- var CollapsibleContext = (0, import_react8.createContext)(defaultComponentAPI3);
999
- var useCollapsible = () => (0, import_react8.useContext)(CollapsibleContext);
1284
+ var CollapsibleContext = (0, import_react10.createContext)(defaultComponentAPI3);
1285
+ var useCollapsible = () => (0, import_react10.useContext)(CollapsibleContext);
1000
1286
  var CollapsibleProvider = ({
1001
1287
  children
1002
1288
  }) => {
1003
1289
  const context = useCollapsibleProvider();
1004
- return /* @__PURE__ */ import_react8.default.createElement(CollapsibleContext.Provider, { value: context }, children);
1290
+ return /* @__PURE__ */ import_react10.default.createElement(CollapsibleContext.Provider, { value: context }, children);
1005
1291
  };
1006
1292
  function useCollapsibleProvider() {
1007
- const [expanded, setExpanded] = (0, import_react8.useState)(false);
1008
- const [defaultOpen, setDefaultOpen] = (0, import_react8.useState)(false);
1009
- const collapsibleId = import_react8.default.useId();
1293
+ const [expanded, setExpanded] = (0, import_react10.useState)(false);
1294
+ const [defaultOpen, setDefaultOpen] = (0, import_react10.useState)(false);
1295
+ const collapsibleId = import_react10.default.useId();
1010
1296
  const toggleCollapsible = () => {
1011
1297
  setExpanded(!expanded);
1012
1298
  setDefaultOpen(false);
@@ -1035,7 +1321,7 @@ var applyDataState = (condition) => condition ? "open" : "closed";
1035
1321
  var Collapsible = (props) => {
1036
1322
  const { children, ...restProps } = props;
1037
1323
  const collapsibleContext = useCollapsible();
1038
- return /* @__PURE__ */ import_react9.default.createElement(
1324
+ return /* @__PURE__ */ import_react11.default.createElement(
1039
1325
  "div",
1040
1326
  {
1041
1327
  "data-state": applyDataState(Boolean(collapsibleContext.states.expanded)),
@@ -1046,7 +1332,7 @@ var Collapsible = (props) => {
1046
1332
  };
1047
1333
  Collapsible.displayName = "Collapsible";
1048
1334
  var CollapsibleRoot = ({ children }) => {
1049
- return /* @__PURE__ */ import_react9.default.createElement(CollapsibleProvider, null, children);
1335
+ return /* @__PURE__ */ import_react11.default.createElement(CollapsibleProvider, null, children);
1050
1336
  };
1051
1337
  CollapsibleRoot.displayName = "Collapsible.Root";
1052
1338
  var CollapsibleTrigger = (props) => {
@@ -1057,7 +1343,7 @@ var CollapsibleTrigger = (props) => {
1057
1343
  if (toggleCollapsible) toggleCollapsible();
1058
1344
  if (onClick) onClick(event);
1059
1345
  };
1060
- return /* @__PURE__ */ import_react9.default.createElement(
1346
+ return /* @__PURE__ */ import_react11.default.createElement(
1061
1347
  Button,
1062
1348
  {
1063
1349
  disabled,
@@ -1076,13 +1362,13 @@ var CollapsibleContent = (props) => {
1076
1362
  const { defaultOpen = false, showFirstChild, children, ...restProps } = props;
1077
1363
  const { id, states, methods } = useCollapsible();
1078
1364
  const { applyDefaultOpen } = methods;
1079
- const childArray = import_react9.default.Children.toArray(children);
1365
+ const childArray = import_react11.default.Children.toArray(children);
1080
1366
  const displayChildren = states.expanded ?? states.defaultOpen;
1081
1367
  const displayFirstChild = showFirstChild && childArray.length > 1 && !states.expanded;
1082
- import_react9.default.useEffect(() => {
1368
+ import_react11.default.useEffect(() => {
1083
1369
  if (defaultOpen && applyDefaultOpen) applyDefaultOpen();
1084
1370
  }, []);
1085
- return /* @__PURE__ */ import_react9.default.createElement(
1371
+ return /* @__PURE__ */ import_react11.default.createElement(
1086
1372
  "div",
1087
1373
  {
1088
1374
  id,
@@ -1099,25 +1385,88 @@ Collapsible.Root = CollapsibleRoot;
1099
1385
  Collapsible.Trigger = CollapsibleTrigger;
1100
1386
  Collapsible.Content = CollapsibleContent;
1101
1387
 
1388
+ // src/copy-button/index.tsx
1389
+ var import_react12 = __toESM(require("react"));
1390
+ var CopyButton = ({
1391
+ value,
1392
+ delay,
1393
+ tooltip,
1394
+ children,
1395
+ ...restProps
1396
+ }) => {
1397
+ const timerRef = import_react12.default.useRef(null);
1398
+ const [copied, setCopied] = import_react12.default.useState(false);
1399
+ const tooltipLabels = import_react12.default.useMemo(() => {
1400
+ return {
1401
+ copy: tooltip?.copyLabel ?? "Copy",
1402
+ copied: tooltip?.copiedLabel ?? "Copied!"
1403
+ };
1404
+ }, [tooltip]);
1405
+ const copyToClipboard = async () => {
1406
+ if (value == null) return;
1407
+ try {
1408
+ await navigator.clipboard.writeText(value);
1409
+ setCopied(true);
1410
+ } catch {
1411
+ const ta = document.createElement("textarea");
1412
+ ta.value = value;
1413
+ ta.style.position = "fixed";
1414
+ ta.style.opacity = "0";
1415
+ document.body.appendChild(ta);
1416
+ ta.select();
1417
+ try {
1418
+ document.execCommand("copy");
1419
+ setCopied(true);
1420
+ } finally {
1421
+ document.body.removeChild(ta);
1422
+ }
1423
+ }
1424
+ if (timerRef.current != null) window.clearTimeout(timerRef.current);
1425
+ timerRef.current = window.setTimeout(() => setCopied(false), delay ?? 1e3);
1426
+ };
1427
+ import_react12.default.useEffect(() => {
1428
+ return () => {
1429
+ if (timerRef.current != null) {
1430
+ window.clearTimeout(timerRef.current);
1431
+ timerRef.current = null;
1432
+ }
1433
+ };
1434
+ }, []);
1435
+ return /* @__PURE__ */ import_react12.default.createElement(Tooltip, { content: copied ? tooltipLabels.copied : tooltipLabels.copy }, /* @__PURE__ */ import_react12.default.createElement(
1436
+ Button,
1437
+ {
1438
+ "data-testId": "copy-code",
1439
+ "aria-label": "copy-code",
1440
+ disabled: value == null,
1441
+ "aria-disabled": value == null,
1442
+ variant: restProps?.variant ?? "ghost",
1443
+ onClick: copyToClipboard,
1444
+ ...restProps
1445
+ },
1446
+ children
1447
+ ));
1448
+ };
1449
+ CopyButton.displayName = "CopyButton";
1450
+
1102
1451
  // src/dialog/index.tsx
1103
- var import_react14 = __toESM(require("react"));
1452
+ var import_react17 = __toESM(require("react"));
1104
1453
 
1105
1454
  // src/dialog/hooks/index.tsx
1106
- var import_react10 = __toESM(require("react"));
1455
+ var import_react13 = __toESM(require("react"));
1107
1456
  var defaultComponentAPI4 = {
1108
1457
  id: "",
1109
1458
  states: {},
1110
1459
  methods: {}
1111
1460
  };
1112
- var DialogContext = (0, import_react10.createContext)(defaultComponentAPI4);
1113
- var useDialog = () => (0, import_react10.useContext)(DialogContext);
1461
+ var DialogContext = (0, import_react13.createContext)(defaultComponentAPI4);
1462
+ var useDialog = () => (0, import_react13.useContext)(DialogContext);
1114
1463
  var DialogProvider = ({ children }) => {
1115
1464
  const context = useDialogProvider();
1116
- return /* @__PURE__ */ import_react10.default.createElement(DialogContext.Provider, { value: context }, children);
1465
+ return /* @__PURE__ */ import_react13.default.createElement(DialogContext.Provider, { value: context }, children);
1117
1466
  };
1118
1467
  function useDialogProvider() {
1119
- const [open, setOpen] = (0, import_react10.useState)(false);
1120
- const dialogId = import_react10.default.useId();
1468
+ const [open, setOpen] = (0, import_react13.useState)(false);
1469
+ const dialogId = import_react13.default.useId();
1121
1470
  return {
1122
1471
  id: dialogId,
1123
1472
  states: {
@@ -1131,15 +1480,15 @@ function useDialogProvider() {
1131
1480
  }
1132
1481
 
1133
1482
  // ../hooks/dist/index.mjs
1134
- var import_react11 = require("react");
1135
- var import_react12 = require("react");
1136
- var import_react13 = __toESM(require("react"), 1);
1483
+ var import_react14 = require("react");
1484
+ var import_react15 = require("react");
1485
+ var import_react16 = __toESM(require("react"), 1);
1137
1486
  function useEventListener(eventName, handler, element) {
1138
- const savedHandler = (0, import_react11.useRef)(handler);
1139
- (0, import_react11.useEffect)(() => {
1487
+ const savedHandler = (0, import_react14.useRef)(handler);
1488
+ (0, import_react14.useEffect)(() => {
1140
1489
  savedHandler.current = handler;
1141
1490
  }, [handler]);
1142
- (0, import_react11.useEffect)(() => {
1491
+ (0, import_react14.useEffect)(() => {
1143
1492
  const targetElement = element && element.current || window;
1144
1493
  if (!(targetElement && targetElement.addEventListener)) return;
1145
1494
  const eventListener = (event) => savedHandler.current(event);
@@ -1156,8 +1505,8 @@ function useClickOutside(ref, handler, mouseEvent = "mousedown") {
1156
1505
  });
1157
1506
  }
1158
1507
  function useKeyPress(targetKey, hotkey, bindKey) {
1159
- const [keyPressed, setKeyPressed] = (0, import_react12.useState)(false);
1160
- const switchStoredKeyPressed = (0, import_react12.useCallback)(
1508
+ const [keyPressed, setKeyPressed] = (0, import_react15.useState)(false);
1509
+ const switchStoredKeyPressed = (0, import_react15.useCallback)(
1161
1510
  (event, state) => {
1162
1511
  if (!hotkey && event.key === targetKey) {
1163
1512
  return setKeyPressed(state);
@@ -1172,15 +1521,15 @@ function useKeyPress(targetKey, hotkey, bindKey) {
1172
1521
  },
1173
1522
  [bindKey, hotkey, targetKey]
1174
1523
  );
1175
- const KeyDownHandler = (0, import_react12.useCallback)(
1524
+ const KeyDownHandler = (0, import_react15.useCallback)(
1176
1525
  (event) => switchStoredKeyPressed(event, true),
1177
1526
  [switchStoredKeyPressed]
1178
1527
  );
1179
- const KeyUpHandler = (0, import_react12.useCallback)(
1528
+ const KeyUpHandler = (0, import_react15.useCallback)(
1180
1529
  (event) => switchStoredKeyPressed(event, false),
1181
1530
  [switchStoredKeyPressed]
1182
1531
  );
1183
- (0, import_react12.useEffect)(() => {
1532
+ (0, import_react15.useEffect)(() => {
1184
1533
  window.addEventListener("keydown", KeyDownHandler);
1185
1534
  window.addEventListener("keyup", KeyUpHandler);
1186
1535
  return () => {
@@ -1192,7 +1541,7 @@ function useKeyPress(targetKey, hotkey, bindKey) {
1192
1541
  }
1193
1542
  var useDisabledScroll = (state) => {
1194
1543
  const overflow = state ? "hidden" : "";
1195
- import_react13.default.useEffect(() => {
1544
+ import_react16.default.useEffect(() => {
1196
1545
  document.body.style.overflowY = overflow;
1197
1546
  }, [state]);
1198
1547
  return {
@@ -1202,8 +1551,8 @@ var useDisabledScroll = (state) => {
1202
1551
  };
1203
1552
 
1204
1553
  // src/dialog/styles/index.ts
1205
- var import_styled_components5 = __toESM(require("styled-components"));
1206
- var DialogDefaultStyles = import_styled_components5.css`
1554
+ var import_styled_components7 = __toESM(require("styled-components"));
1555
+ var DialogDefaultStyles = import_styled_components7.css`
1207
1556
  position: fixed;
1208
1557
  top: 15dvh;
1209
1558
  padding: var(--measurement-medium-60);
@@ -1216,7 +1565,7 @@ var DialogDefaultStyles = import_styled_components5.css`
1216
1565
  transition: all ease-in-out 0.2s;
1217
1566
  z-index: var(--depth-default-100);
1218
1567
  `;
1219
- var DialogSizeStyles = import_styled_components5.css`
1568
+ var DialogSizeStyles = import_styled_components7.css`
1220
1569
  --base-size: var(--measurement-medium-60);
1221
1570
  --computed-size: calc(100% - (var(--base-size) * 2));
1222
1571
  --max-height: 75dvh;
@@ -1237,7 +1586,7 @@ var DialogSizeStyles = import_styled_components5.css`
1237
1586
  padding: var(--measurement-medium-80);
1238
1587
  }
1239
1588
  `;
1240
- var Menu = import_styled_components5.default.menu`
1589
+ var Menu = import_styled_components7.default.menu`
1241
1590
  margin: 0;
1242
1591
  padding: 0;
1243
1592
 
@@ -1247,7 +1596,7 @@ var Menu = import_styled_components5.default.menu`
1247
1596
  gap: var(--measurement-medium-30);
1248
1597
  }
1249
1598
  `;
1250
- var DialogWrapper = import_styled_components5.default.dialog`
1599
+ var DialogWrapper = import_styled_components7.default.dialog`
1251
1600
  @keyframes slide-in {
1252
1601
  0% {
1253
1602
  opacity: 0;
@@ -1287,11 +1636,11 @@ var Dialog = (props) => {
1287
1636
  const { getDialogId, toggleDialog } = methods;
1288
1637
  const triggerId = getDialogId && getDialogId("trigger");
1289
1638
  const contentId = getDialogId && getDialogId("content");
1290
- import_react14.default.useEffect(() => {
1639
+ import_react17.default.useEffect(() => {
1291
1640
  if (open && toggleDialog) toggleDialog();
1292
1641
  }, []);
1293
1642
  if (lock) useDisabledScroll(Boolean(states.open));
1294
- return /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, states.open && /* @__PURE__ */ import_react14.default.createElement(
1643
+ return /* @__PURE__ */ import_react17.default.createElement(import_react17.default.Fragment, null, states.open && /* @__PURE__ */ import_react17.default.createElement(
1295
1644
  ScrollArea,
1296
1645
  {
1297
1646
  as: DialogWrapper,
@@ -1310,7 +1659,7 @@ var Dialog = (props) => {
1310
1659
  };
1311
1660
  Dialog.displayName = "Dialog";
1312
1661
  var DialogRoot = ({ children }) => {
1313
- return /* @__PURE__ */ import_react14.default.createElement(DialogProvider, null, children);
1662
+ return /* @__PURE__ */ import_react17.default.createElement(DialogProvider, null, children);
1314
1663
  };
1315
1664
  DialogRoot.displayName = "Dialog.Root";
1316
1665
  var DialogOverlay = (props) => {
@@ -1321,7 +1670,7 @@ var DialogOverlay = (props) => {
1321
1670
  if (closeOnInteract && toggleDialog) toggleDialog();
1322
1671
  if (onClick) onClick(event);
1323
1672
  };
1324
- return /* @__PURE__ */ import_react14.default.createElement(
1673
+ return /* @__PURE__ */ import_react17.default.createElement(
1325
1674
  Overlay,
1326
1675
  {
1327
1676
  visible: Boolean(states.open),
@@ -1342,7 +1691,7 @@ var DialogTrigger = (props) => {
1342
1691
  if (toggleDialog) toggleDialog();
1343
1692
  if (onClick) onClick(event);
1344
1693
  };
1345
- return /* @__PURE__ */ import_react14.default.createElement(
1694
+ return /* @__PURE__ */ import_react17.default.createElement(
1346
1695
  Button,
1347
1696
  {
1348
1697
  id: String(triggerId),
@@ -1358,7 +1707,7 @@ var DialogTrigger = (props) => {
1358
1707
  DialogTrigger.displayName = "Dialog.Trigger";
1359
1708
  var DialogMenu = (props) => {
1360
1709
  const { raw, children, ...restProps } = props;
1361
- return /* @__PURE__ */ import_react14.default.createElement(Menu, { "data-raw": Boolean(raw), ...restProps }, children);
1710
+ return /* @__PURE__ */ import_react17.default.createElement(Menu, { "data-raw": Boolean(raw), ...restProps }, children);
1362
1711
  };
1363
1712
  DialogMenu.displayName = "Dialog.Menu";
1364
1713
  var DialogControl = (props) => {
@@ -1371,7 +1720,7 @@ var DialogControl = (props) => {
1371
1720
  if (toggleDialog) toggleDialog();
1372
1721
  if (onClick) onClick(event);
1373
1722
  };
1374
- return /* @__PURE__ */ import_react14.default.createElement(
1723
+ return /* @__PURE__ */ import_react17.default.createElement(
1375
1724
  Button,
1376
1725
  {
1377
1726
  id: String(innerControlId),
@@ -1392,8 +1741,8 @@ Dialog.Menu = DialogMenu;
1392
1741
  Dialog.Overlay = DialogOverlay;
1393
1742
 
1394
1743
  // src/divider/index.ts
1395
- var import_styled_components6 = __toESM(require("styled-components"));
1396
- var Divider = import_styled_components6.default.hr`
1744
+ var import_styled_components8 = __toESM(require("styled-components"));
1745
+ var Divider = import_styled_components8.default.hr`
1397
1746
  height: var(--measurement-small-10);
1398
1747
  margin: var(--measurement-medium-30) 0;
1399
1748
  background: var(--font-color-alpha-10);
@@ -1401,10 +1750,10 @@ var Divider = import_styled_components6.default.hr`
1401
1750
  `;
1402
1751
 
1403
1752
  // src/dropdown/index.tsx
1404
- var import_react16 = __toESM(require("react"));
1753
+ var import_react19 = __toESM(require("react"));
1405
1754
 
1406
1755
  // src/dropdown/hooks/index.tsx
1407
- var import_react15 = __toESM(require("react"));
1756
+ var import_react18 = __toESM(require("react"));
1408
1757
  var DEFAULT_API = {
1409
1758
  id: "",
1410
1759
  states: {},
@@ -1420,26 +1769,26 @@ var DEFAULT_DIMENSIONS = {
1420
1769
  width: 0,
1421
1770
  height: 0
1422
1771
  };
1423
- var DropdownMenuContext = import_react15.default.createContext(DEFAULT_API);
1424
- var useDropdownMenu = () => import_react15.default.useContext(DropdownMenuContext);
1772
+ var DropdownMenuContext = import_react18.default.createContext(DEFAULT_API);
1773
+ var useDropdownMenu = () => import_react18.default.useContext(DropdownMenuContext);
1425
1774
  var DropdownMenuProvider = ({
1426
1775
  children
1427
1776
  }) => {
1428
1777
  const context = useDropdownMenuProvider();
1429
- return /* @__PURE__ */ import_react15.default.createElement(DropdownMenuContext.Provider, { value: context }, children);
1778
+ return /* @__PURE__ */ import_react18.default.createElement(DropdownMenuContext.Provider, { value: context }, children);
1430
1779
  };
1431
1780
  function useDropdownMenuProvider() {
1432
- const [open, setOpen] = import_react15.default.useState(false);
1433
- const [contentProps, setContentProps] = import_react15.default.useState({
1781
+ const [open, setOpen] = import_react18.default.useState(false);
1782
+ const [contentProps, setContentProps] = import_react18.default.useState({
1434
1783
  ...DEFAULT_POSITIONS,
1435
1784
  ...DEFAULT_DIMENSIONS
1436
1785
  });
1437
- const [triggerProps, setTriggerProps] = import_react15.default.useState({
1786
+ const [triggerProps, setTriggerProps] = import_react18.default.useState({
1438
1787
  ...DEFAULT_POSITIONS,
1439
1788
  ...DEFAULT_DIMENSIONS
1440
1789
  });
1441
- const triggerId = import_react15.default.useId();
1442
- const dropdownId = import_react15.default.useId();
1790
+ const triggerId = import_react18.default.useId();
1791
+ const dropdownId = import_react18.default.useId();
1443
1792
  const composedId = `${triggerId}|${dropdownId}`;
1444
1793
  return {
1445
1794
  id: composedId,
@@ -1457,8 +1806,8 @@ function useDropdownMenuProvider() {
1457
1806
  }
1458
1807
 
1459
1808
  // src/dropdown/styles/index.ts
1460
- var import_styled_components7 = __toESM(require("styled-components"));
1461
- var FadeIn = import_styled_components7.keyframes`
1809
+ var import_styled_components9 = __toESM(require("styled-components"));
1810
+ var FadeIn = import_styled_components9.keyframes`
1462
1811
  0% {
1463
1812
  opacity: 0;
1464
1813
  }
@@ -1466,7 +1815,7 @@ var FadeIn = import_styled_components7.keyframes`
1466
1815
  opacity: 1;
1467
1816
  }
1468
1817
  `;
1469
- var ContentWrapperSizes = import_styled_components7.css`
1818
+ var ContentWrapperSizes = import_styled_components9.css`
1470
1819
  --small: var(--measurement-large-60);
1471
1820
  --medium: var(--measurement-large-80);
1472
1821
  --large: var(--measurement-large-90);
@@ -1488,10 +1837,10 @@ var ContentWrapperSizes = import_styled_components7.css`
1488
1837
  max-width: var(--large);
1489
1838
  }
1490
1839
  `;
1491
- var RootWrapper = import_styled_components7.default.div`
1840
+ var RootWrapper = import_styled_components9.default.div`
1492
1841
  position: relative;
1493
1842
  `;
1494
- var ContentWrapper = import_styled_components7.default.ul`
1843
+ var ContentWrapper = import_styled_components9.default.ul`
1495
1844
  --small: var(--measurement-large-60);
1496
1845
  --medium: var(--measurement-large-80);
1497
1846
  --large: var(--measurement-large-90);
@@ -1515,7 +1864,7 @@ var ContentWrapper = import_styled_components7.default.ul`
1515
1864
  ${ContentWrapperSizes}
1516
1865
  }
1517
1866
  `;
1518
- var ItemWrapper = import_styled_components7.default.li`
1867
+ var ItemWrapper2 = import_styled_components9.default.li`
1519
1868
  list-style: none;
1520
1869
  padding: 0;
1521
1870
  margin: 0;
@@ -1547,7 +1896,7 @@ var ItemWrapper = import_styled_components7.default.li`
1547
1896
 
1548
1897
  // src/dropdown/index.tsx
1549
1898
  var DropdownMenu = ({ children }) => {
1550
- const DropdownContentRef = import_react16.default.useRef(null);
1899
+ const DropdownContentRef = import_react19.default.useRef(null);
1551
1900
  const { states, methods } = useDropdownMenu();
1552
1901
  const { toggleOpen } = methods;
1553
1902
  const handleClickOutside = () => {
@@ -1555,15 +1904,15 @@ var DropdownMenu = ({ children }) => {
1555
1904
  };
1556
1905
  useClickOutside(DropdownContentRef, handleClickOutside);
1557
1906
  useDisabledScroll(Boolean(states.open));
1558
- return /* @__PURE__ */ import_react16.default.createElement(RootWrapper, { ref: DropdownContentRef }, children);
1907
+ return /* @__PURE__ */ import_react19.default.createElement(RootWrapper, { ref: DropdownContentRef }, children);
1559
1908
  };
1560
1909
  DropdownMenu.displayName = "DropdownMenu";
1561
1910
  var DropdownMenuRoot = ({ children }) => {
1562
- return /* @__PURE__ */ import_react16.default.createElement(DropdownMenuProvider, null, children);
1911
+ return /* @__PURE__ */ import_react19.default.createElement(DropdownMenuProvider, null, children);
1563
1912
  };
1564
1913
  DropdownMenuRoot.displayName = "DropdownMenu.Root";
1565
1914
  var DropdownMenuTrigger = (props) => {
1566
- const triggerRef = import_react16.default.useRef(null);
1915
+ const triggerRef = import_react19.default.useRef(null);
1567
1916
  const triggerRect = () => triggerRef.current?.getBoundingClientRect();
1568
1917
  const { variant = "ghost", onClick, children, ...restProps } = props;
1569
1918
  const { id, states, methods } = useDropdownMenu();
@@ -1581,7 +1930,7 @@ var DropdownMenuTrigger = (props) => {
1581
1930
  height: Number(triggerRect()?.height)
1582
1931
  });
1583
1932
  };
1584
- return /* @__PURE__ */ import_react16.default.createElement(
1933
+ return /* @__PURE__ */ import_react19.default.createElement(
1585
1934
  Button,
1586
1935
  {
1587
1936
  ref: triggerRef,
@@ -1596,12 +1945,12 @@ var DropdownMenuTrigger = (props) => {
1596
1945
  );
1597
1946
  };
1598
1947
  DropdownMenuTrigger.displayName = "DropdownMenu.Trigger";
1599
- var DropdownMenuContent = import_react16.default.forwardRef((props, _) => {
1948
+ var DropdownMenuContent = import_react19.default.forwardRef((props, _) => {
1600
1949
  const { raw, sizing = "medium", defaultOpen, children, ...restProps } = props;
1601
1950
  const { id, states, methods } = useDropdownMenu();
1602
1951
  const { toggleOpen, setContentProps } = methods;
1603
- const mounted = import_react16.default.useRef(false);
1604
- const contentRef = import_react16.default.useRef(null);
1952
+ const mounted = import_react19.default.useRef(false);
1953
+ const contentRef = import_react19.default.useRef(null);
1605
1954
  const contentRect = () => contentRef?.current?.getBoundingClientRect();
1606
1955
  const bodyRect = () => {
1607
1956
  if (typeof document !== "undefined") {
@@ -1625,10 +1974,10 @@ var DropdownMenuContent = import_react16.default.forwardRef((props, _) => {
1625
1974
  };
1626
1975
  const hasEnoughHorizontalSpace = dimensions.body_width - dimensions.content_left > dimensions.content_width * 1.1;
1627
1976
  const hasEnoughVerticalSpace = dimensions.body_height - dimensions.content_bottom > dimensions.content_height - dimensions.content_height * 0.9;
1628
- import_react16.default.useEffect(() => {
1977
+ import_react19.default.useEffect(() => {
1629
1978
  if (defaultOpen && toggleOpen) toggleOpen();
1630
1979
  }, []);
1631
- import_react16.default.useEffect(() => {
1980
+ import_react19.default.useEffect(() => {
1632
1981
  mounted.current = true;
1633
1982
  setContentProps && setContentProps({
1634
1983
  top: Number(contentRect()?.top),
@@ -1642,7 +1991,7 @@ var DropdownMenuContent = import_react16.default.forwardRef((props, _) => {
1642
1991
  mounted.current = false;
1643
1992
  };
1644
1993
  }, [states.open]);
1645
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, states.open && /* @__PURE__ */ import_react16.default.createElement(
1994
+ return /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, states.open && /* @__PURE__ */ import_react19.default.createElement(
1646
1995
  ContentWrapper,
1647
1996
  {
1648
1997
  ref: contentRef,
@@ -1696,8 +2045,8 @@ var DropdownMenuItem = (props) => {
1696
2045
  EventsHandler.toggle();
1697
2046
  }
1698
2047
  };
1699
- return /* @__PURE__ */ import_react16.default.createElement(
1700
- ItemWrapper,
2048
+ return /* @__PURE__ */ import_react19.default.createElement(
2049
+ ItemWrapper2,
1701
2050
  {
1702
2051
  role: "menuitem",
1703
2052
  tabIndex: 0,
@@ -1718,23 +2067,23 @@ DropdownMenu.Content = DropdownMenuContent;
1718
2067
  DropdownMenu.Item = DropdownMenuItem;
1719
2068
 
1720
2069
  // src/field/index.tsx
1721
- var import_react18 = __toESM(require("react"));
2070
+ var import_react21 = __toESM(require("react"));
1722
2071
 
1723
2072
  // src/field/hooks/index.tsx
1724
- var import_react17 = __toESM(require("react"));
2073
+ var import_react20 = __toESM(require("react"));
1725
2074
  var defaultComponentAPI5 = {
1726
2075
  id: "",
1727
2076
  states: {},
1728
2077
  methods: {}
1729
2078
  };
1730
- var FieldContext = (0, import_react17.createContext)(defaultComponentAPI5);
1731
- var useField = () => (0, import_react17.useContext)(FieldContext);
2079
+ var FieldContext = (0, import_react20.createContext)(defaultComponentAPI5);
2080
+ var useField = () => (0, import_react20.useContext)(FieldContext);
1732
2081
  var FieldProvider = ({ children }) => {
1733
2082
  const context = useFieldProvider();
1734
- return /* @__PURE__ */ import_react17.default.createElement(FieldContext.Provider, { value: context }, children);
2083
+ return /* @__PURE__ */ import_react20.default.createElement(FieldContext.Provider, { value: context }, children);
1735
2084
  };
1736
2085
  function useFieldProvider() {
1737
- const fieldId = import_react17.default.useId();
2086
+ const fieldId = import_react20.default.useId();
1738
2087
  return {
1739
2088
  id: fieldId,
1740
2089
  states: {},
@@ -1743,23 +2092,22 @@ function useFieldProvider() {
1743
2092
  }
1744
2093
 
1745
2094
  // src/field/styles/index.ts
1746
- var import_styled_components8 = __toESM(require("styled-components"));
1747
- var FieldDefaultStyles = import_styled_components8.css`
2095
+ var import_styled_components10 = __toESM(require("styled-components"));
2096
+ var FieldDefaultStyles = import_styled_components10.css`
1748
2097
  outline: none;
1749
- cursor: pointer;
2098
+ cursor: text;
1750
2099
  display: flex;
1751
2100
  align-items: center;
1752
2101
  justify-content: center;
1753
2102
 
1754
- font-size: var(--fontsize-small-80);
1755
- font-weight: 500;
2103
+ font-size: var(--fontsize-medium-20);
2104
+
1756
2105
  line-height: 1.1;
1757
2106
  letter-spacing: calc(
1758
2107
  var(--fontsize-small-10) - ((var(--fontsize-small-10) * 1.066))
1759
2108
  );
1760
2109
 
1761
2110
  border: var(--measurement-small-10) solid transparent;
1762
- border-radius: var(--measurement-medium-30);
1763
2111
  backdrop-filter: blur(var(--measurement-small-10));
1764
2112
  color: var(--font-color-alpha-60);
1765
2113
  width: fit-content;
@@ -1777,29 +2125,37 @@ var FieldDefaultStyles = import_styled_components8.css`
1777
2125
  &:focus,
1778
2126
  &:active {
1779
2127
  color: var(--font-color);
1780
-
1781
2128
  svg,
1782
2129
  span,
1783
2130
  img {
1784
2131
  opacity: 1;
1785
2132
  }
1786
2133
  }
2134
+
1787
2135
  &::placeholder {
1788
2136
  color: var(--font-color-alpha-30);
1789
2137
  }
2138
+
1790
2139
  &:disabled {
1791
2140
  cursor: not-allowed;
1792
2141
  opacity: 0.6;
1793
2142
  }
1794
2143
  `;
1795
- var FieldVariantsStyles = import_styled_components8.css`
2144
+ var FieldVariantsStyles = import_styled_components10.css`
1796
2145
  &[data-variant="primary"] {
1797
2146
  background-color: var(--font-color-alpha-10);
2147
+ border-color: var(--font-color-alpha-10);
2148
+
2149
+ &:focus,
2150
+ &:active {
2151
+ box-shadow: 0 0 0 var(--measurement-small-30) var(--font-color-alpha-10);
2152
+ }
1798
2153
 
1799
2154
  &[data-error="true"] {
1800
2155
  color: var(--color-red);
1801
2156
  background-color: var(--alpha-red-10);
1802
2157
  border-color: var(--alpha-red-10);
2158
+ box-shadow: 0 0 0 var(--measurement-small-30) var(--alpha-red-10);
1803
2159
  }
1804
2160
  }
1805
2161
 
@@ -1810,7 +2166,12 @@ var FieldVariantsStyles = import_styled_components8.css`
1810
2166
  &:hover,
1811
2167
  &:focus,
1812
2168
  &:active {
1813
- background-color: var(--font-color-alpha-10);
2169
+ border-color: var(--font-color-alpha-20);
2170
+ }
2171
+
2172
+ &:focus,
2173
+ &:active {
2174
+ box-shadow: 0 0 0 var(--measurement-small-30) var(--font-color-alpha-10);
1814
2175
  }
1815
2176
 
1816
2177
  &[data-error="true"] {
@@ -1821,6 +2182,7 @@ var FieldVariantsStyles = import_styled_components8.css`
1821
2182
  &:focus,
1822
2183
  &:active {
1823
2184
  background-color: var(--alpha-red-10);
2185
+ box-shadow: 0 0 0 var(--measurement-small-30) var(--alpha-red-10);
1824
2186
  }
1825
2187
  }
1826
2188
  }
@@ -1844,39 +2206,51 @@ var FieldVariantsStyles = import_styled_components8.css`
1844
2206
  }
1845
2207
  }
1846
2208
  `;
1847
- var FieldSizeStyles = import_styled_components8.css`
2209
+ var FieldSizeStyles = import_styled_components10.css`
1848
2210
  &[data-size="small"] {
1849
- gap: var(--measurement-medium-10);
2211
+ font-size: var(--fontsize-small-60);
2212
+
1850
2213
  padding: 0 var(--measurement-medium-30);
1851
2214
  min-width: var(--measurement-medium-60);
1852
2215
  min-height: var(--measurement-medium-80);
1853
2216
  }
1854
2217
  &[data-size="medium"] {
1855
- gap: var(--measurement-medium-30);
1856
2218
  padding: 0 var(--measurement-medium-30);
1857
2219
  min-width: var(--measurement-medium-90);
1858
2220
  min-height: var(--measurement-medium-90);
1859
2221
  width: fit-content;
1860
2222
  }
1861
2223
  &[data-size="large"] {
1862
- padding: var(--measurement-medium-20) var(--measurement-medium-40);
2224
+ padding: var(--measurement-medium-50);
1863
2225
  min-width: var(--measurement-medium-90);
1864
2226
  min-height: var(--measurement-medium-90);
1865
2227
  }
1866
2228
  `;
1867
- var Fieldset = import_styled_components8.default.fieldset`
2229
+ var FieldShapeStyles = import_styled_components10.css`
2230
+ &[data-shape="square"] {
2231
+ border-radius: 0;
2232
+ }
2233
+ &[data-shape="smooth"] {
2234
+ border-radius: var(--measurement-medium-20);
2235
+ }
2236
+ &[data-shape="round"] {
2237
+ border-radius: var(--measurement-large-90);
2238
+ }
2239
+ `;
2240
+ var Fieldset = import_styled_components10.default.fieldset`
1868
2241
  all: unset;
1869
2242
  display: grid;
1870
2243
  gap: var(--measurement-medium-10);
1871
2244
  `;
1872
- var Sup = import_styled_components8.default.sup`
2245
+ var Sup = import_styled_components10.default.sup`
1873
2246
  color: var(--color-red);
1874
2247
  `;
1875
- var Input = import_styled_components8.default.input`
2248
+ var Input = import_styled_components10.default.input`
1876
2249
  &[data-raw="false"] {
1877
2250
  ${FieldDefaultStyles}
1878
2251
  ${FieldVariantsStyles}
1879
2252
  ${FieldSizeStyles}
2253
+ ${FieldShapeStyles}
1880
2254
 
1881
2255
  &[data-error="true"] {
1882
2256
  &::placeholder {
@@ -1885,7 +2259,7 @@ var Input = import_styled_components8.default.input`
1885
2259
  }
1886
2260
  }
1887
2261
  `;
1888
- var Label = import_styled_components8.default.label`
2262
+ var Label = import_styled_components10.default.label`
1889
2263
  &[data-raw="false"] {
1890
2264
  font-weight: 500;
1891
2265
  line-height: 1.1;
@@ -1894,7 +2268,7 @@ var Label = import_styled_components8.default.label`
1894
2268
  );
1895
2269
  }
1896
2270
  `;
1897
- var Def = import_styled_components8.default.dfn`
2271
+ var Def = import_styled_components10.default.dfn`
1898
2272
  &[data-raw="false"] {
1899
2273
  font-style: normal;
1900
2274
  font-size: var(--fontsize-medium-10);
@@ -1921,13 +2295,14 @@ var Field = (props) => {
1921
2295
  raw,
1922
2296
  sizing = "medium" /* Medium */,
1923
2297
  variant = "primary" /* Primary */,
2298
+ shape = "smooth",
1924
2299
  error,
1925
2300
  hint,
1926
2301
  ...restProps
1927
2302
  } = props;
1928
- const metaId = import_react18.default.useId();
2303
+ const metaId = import_react21.default.useId();
1929
2304
  const { id } = useField();
1930
- return /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement(
2305
+ return /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement(
1931
2306
  Input,
1932
2307
  {
1933
2308
  id,
@@ -1937,10 +2312,11 @@ var Field = (props) => {
1937
2312
  "data-error": Boolean(error),
1938
2313
  "data-variant": variant,
1939
2314
  "data-size": sizing,
2315
+ "data-shape": shape,
1940
2316
  "data-raw": Boolean(raw),
1941
2317
  ...restProps
1942
2318
  }
1943
- ), (error ?? hint) && /* @__PURE__ */ import_react18.default.createElement(
2319
+ ), (error ?? hint) && /* @__PURE__ */ import_react21.default.createElement(
1944
2320
  FieldMeta,
1945
2321
  {
1946
2322
  raw,
@@ -1951,20 +2327,20 @@ var Field = (props) => {
1951
2327
  };
1952
2328
  Field.displayName = "Field";
1953
2329
  var FieldRoot = ({ children }) => {
1954
- return /* @__PURE__ */ import_react18.default.createElement(FieldProvider, null, children);
2330
+ return /* @__PURE__ */ import_react21.default.createElement(FieldProvider, null, children);
1955
2331
  };
1956
2332
  FieldRoot.displayName = "Field.Root";
1957
2333
  var FieldWrapper = ({
1958
2334
  children,
1959
2335
  ...restProps
1960
2336
  }) => {
1961
- return /* @__PURE__ */ import_react18.default.createElement(Fieldset, { ...restProps }, children);
2337
+ return /* @__PURE__ */ import_react21.default.createElement(Fieldset, { ...restProps }, children);
1962
2338
  };
1963
2339
  FieldWrapper.displayName = "Field.Wrapper";
1964
2340
  var FieldLabel = (props) => {
1965
2341
  const { raw, optional = false, children, ...restProps } = props;
1966
2342
  const { id } = useField();
1967
- return /* @__PURE__ */ import_react18.default.createElement(Label, { htmlFor: id, "data-raw": Boolean(raw), ...restProps }, children, !optional && /* @__PURE__ */ import_react18.default.createElement(Sup, null, "*"));
2343
+ return /* @__PURE__ */ import_react21.default.createElement(Label, { htmlFor: id, "data-raw": Boolean(raw), ...restProps }, children, !optional && /* @__PURE__ */ import_react21.default.createElement(Sup, null, "*"));
1968
2344
  };
1969
2345
  FieldLabel.displayName = "Field.Label";
1970
2346
  var FieldMeta = (props) => {
@@ -1974,9 +2350,9 @@ var FieldMeta = (props) => {
1974
2350
  children,
1975
2351
  ...restProps
1976
2352
  } = props;
1977
- const metaId = import_react18.default.useId();
2353
+ const metaId = import_react21.default.useId();
1978
2354
  const { id } = useField();
1979
- return /* @__PURE__ */ import_react18.default.createElement(
2355
+ return /* @__PURE__ */ import_react21.default.createElement(
1980
2356
  Def,
1981
2357
  {
1982
2358
  id: metaId,
@@ -1995,22 +2371,22 @@ Field.Label = FieldLabel;
1995
2371
  Field.Meta = FieldMeta;
1996
2372
 
1997
2373
  // src/otp-field/index.tsx
1998
- var import_react20 = __toESM(require("react"));
2374
+ var import_react23 = __toESM(require("react"));
1999
2375
 
2000
2376
  // src/otp-field/hooks/index.tsx
2001
- var import_react19 = __toESM(require("react"));
2002
- var OTPFieldContext = import_react19.default.createContext(
2377
+ var import_react22 = __toESM(require("react"));
2378
+ var OTPFieldContext = import_react22.default.createContext(
2003
2379
  null
2004
2380
  );
2005
2381
  var useOTPField = () => {
2006
- const context = import_react19.default.useContext(OTPFieldContext);
2382
+ const context = import_react22.default.useContext(OTPFieldContext);
2007
2383
  if (!context) return null;
2008
2384
  return context;
2009
2385
  };
2010
2386
 
2011
2387
  // src/otp-field/styles/index.ts
2012
- var import_styled_components9 = __toESM(require("styled-components"));
2013
- var OTPCell = import_styled_components9.default.input`
2388
+ var import_styled_components11 = __toESM(require("styled-components"));
2389
+ var OTPCell = import_styled_components11.default.input`
2014
2390
  width: var(--measurement-medium-90);
2015
2391
  height: var(--measurement-medium-90);
2016
2392
  border: var(--measurement-small-10) solid var(--font-color-alpha-10);
@@ -2045,11 +2421,11 @@ var OTPCell = import_styled_components9.default.input`
2045
2421
  // src/otp-field/index.tsx
2046
2422
  var OTPField = ({ children, length, onComplete }) => {
2047
2423
  const defaultLength = length ?? 6;
2048
- const inputRefs = import_react20.default.useRef([]);
2049
- const [otp, setOtp] = import_react20.default.useState(
2424
+ const inputRefs = import_react23.default.useRef([]);
2425
+ const [otp, setOtp] = import_react23.default.useState(
2050
2426
  Array.from({ length: defaultLength }, () => "")
2051
2427
  );
2052
- const [activeIndex, setActiveIndex] = import_react20.default.useState(0);
2428
+ const [activeIndex, setActiveIndex] = import_react23.default.useState(0);
2053
2429
  const handleChange = (index, value) => {
2054
2430
  const newOtp = [...otp];
2055
2431
  newOtp[index] = value.substring(value.length - 1);
@@ -2110,13 +2486,13 @@ var OTPField = ({ children, length, onComplete }) => {
2110
2486
  );
2111
2487
  return () => clearTimeout(timeout);
2112
2488
  };
2113
- import_react20.default.useEffect(() => {
2489
+ import_react23.default.useEffect(() => {
2114
2490
  const otpString = otp.join("");
2115
2491
  if (otpString.length === defaultLength && onComplete) {
2116
2492
  onComplete(otpString);
2117
2493
  }
2118
2494
  }, [otp, defaultLength, onComplete]);
2119
- const contextValue = import_react20.default.useMemo(() => {
2495
+ const contextValue = import_react23.default.useMemo(() => {
2120
2496
  return {
2121
2497
  otp,
2122
2498
  activeIndex,
@@ -2139,11 +2515,11 @@ var OTPField = ({ children, length, onComplete }) => {
2139
2515
  handleClick,
2140
2516
  handlePaste
2141
2517
  ]);
2142
- return /* @__PURE__ */ import_react20.default.createElement(OTPFieldContext.Provider, { value: contextValue }, children);
2518
+ return /* @__PURE__ */ import_react23.default.createElement(OTPFieldContext.Provider, { value: contextValue }, children);
2143
2519
  };
2144
2520
  OTPField.displayName = "OTPField";
2145
- var OTPFieldGroup = import_react20.default.forwardRef(({ ...props }, ref) => {
2146
- return /* @__PURE__ */ import_react20.default.createElement("span", { ref, className: "flex g-medium-10 align-center", ...props });
2521
+ var OTPFieldGroup = import_react23.default.forwardRef(({ ...props }, ref) => {
2522
+ return /* @__PURE__ */ import_react23.default.createElement("span", { ref, className: "flex g-medium-10 align-center", ...props });
2147
2523
  });
2148
2524
  OTPFieldGroup.displayName = "OTPField.Group";
2149
2525
  var OTPFieldSlot = ({
@@ -2162,7 +2538,7 @@ var OTPFieldSlot = ({
2162
2538
  handleClick,
2163
2539
  handlePaste
2164
2540
  } = context;
2165
- return /* @__PURE__ */ import_react20.default.createElement(
2541
+ return /* @__PURE__ */ import_react23.default.createElement(
2166
2542
  OTPCell,
2167
2543
  {
2168
2544
  ref: (el) => inputRefs.current[index] = el,
@@ -2188,11 +2564,11 @@ OTPField.Group = OTPFieldGroup;
2188
2564
  OTPField.Slot = OTPFieldSlot;
2189
2565
 
2190
2566
  // src/overlay/index.tsx
2191
- var import_react21 = __toESM(require("react"));
2567
+ var import_react24 = __toESM(require("react"));
2192
2568
 
2193
2569
  // src/overlay/styles/index.ts
2194
- var import_styled_components10 = __toESM(require("styled-components"));
2195
- var OverlayWrapper = import_styled_components10.default.div`
2570
+ var import_styled_components12 = __toESM(require("styled-components"));
2571
+ var OverlayWrapper = import_styled_components12.default.div`
2196
2572
  @keyframes animate-fade {
2197
2573
  0% {
2198
2574
  opacity: 0;
@@ -2220,15 +2596,15 @@ var OverlayWrapper = import_styled_components10.default.div`
2220
2596
  // src/overlay/index.tsx
2221
2597
  var Overlay = (props) => {
2222
2598
  const { raw, visible, closeOnInteract, onClick, ...restProps } = props;
2223
- const [mounted, setMounted] = import_react21.default.useState(Boolean(visible));
2599
+ const [mounted, setMounted] = import_react24.default.useState(Boolean(visible));
2224
2600
  const handleClick = (event) => {
2225
2601
  if (onClick) onClick(event);
2226
2602
  if (closeOnInteract) setMounted(false);
2227
2603
  };
2228
- import_react21.default.useEffect(() => {
2604
+ import_react24.default.useEffect(() => {
2229
2605
  if (visible !== mounted) setMounted(Boolean(visible));
2230
2606
  }, [visible]);
2231
- return /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, mounted && /* @__PURE__ */ import_react21.default.createElement(
2607
+ return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, mounted && /* @__PURE__ */ import_react24.default.createElement(
2232
2608
  OverlayWrapper,
2233
2609
  {
2234
2610
  tabIndex: -1,
@@ -2242,14 +2618,14 @@ var Overlay = (props) => {
2242
2618
  Overlay.displayName = "Overlay";
2243
2619
 
2244
2620
  // src/page/index.tsx
2245
- var import_react22 = __toESM(require("react"));
2621
+ var import_react25 = __toESM(require("react"));
2246
2622
 
2247
2623
  // src/page/styles/index.ts
2248
- var import_styled_components12 = __toESM(require("styled-components"));
2624
+ var import_styled_components14 = __toESM(require("styled-components"));
2249
2625
 
2250
2626
  // src/scrollarea/styles/index.ts
2251
- var import_styled_components11 = __toESM(require("styled-components"));
2252
- var HiddenScrollbar = import_styled_components11.css`
2627
+ var import_styled_components13 = __toESM(require("styled-components"));
2628
+ var HiddenScrollbar = import_styled_components13.css`
2253
2629
  scrollbar-width: none;
2254
2630
 
2255
2631
  &::-webkit-scrollbar {
@@ -2261,7 +2637,7 @@ var HiddenScrollbar = import_styled_components11.css`
2261
2637
  display: none;
2262
2638
  }
2263
2639
  `;
2264
- var CustomScrollbar = import_styled_components11.css`
2640
+ var CustomScrollbar = import_styled_components13.css`
2265
2641
  height: ${({ $height }) => $height || "100%"};
2266
2642
  width: ${({ $width }) => $width || "100%"};
2267
2643
  overflow-y: auto;
@@ -2293,7 +2669,7 @@ var CustomScrollbar = import_styled_components11.css`
2293
2669
  scrollbar-width: thin;
2294
2670
  scrollbar-color: ${({ $thumbColor, $trackColor }) => `${$thumbColor || "var(--font-color-alpha-10)"} ${$trackColor || "transparent"}`};
2295
2671
  `;
2296
- var ScrollAreaWrapper = import_styled_components11.default.div`
2672
+ var ScrollAreaWrapper = import_styled_components13.default.div`
2297
2673
  overflow: scroll;
2298
2674
 
2299
2675
  &[data-scrollbar="true"] {
@@ -2305,11 +2681,11 @@ var ScrollAreaWrapper = import_styled_components11.default.div`
2305
2681
  `;
2306
2682
 
2307
2683
  // src/page/styles/index.ts
2308
- var PageRootWrapper = import_styled_components12.default.div`
2684
+ var PageRootWrapper = import_styled_components14.default.div`
2309
2685
  height: 100dvh;
2310
2686
  width: 100%;
2311
2687
  `;
2312
- var PageNavWrapper = import_styled_components12.default.nav`
2688
+ var PageNavWrapper = import_styled_components14.default.nav`
2313
2689
  background-color: var(--body-color);
2314
2690
  border: var(--measurement-small-10) solid transparent;
2315
2691
  border-bottom-color: var(--font-color-alpha-10);
@@ -2318,7 +2694,7 @@ var PageNavWrapper = import_styled_components12.default.nav`
2318
2694
  max-height: var(--measurement-large-20);
2319
2695
  padding: var(--measurement-medium-30);
2320
2696
  `;
2321
- var PageMenuWrapper = import_styled_components12.default.menu`
2697
+ var PageMenuWrapper = import_styled_components14.default.menu`
2322
2698
  background-color: var(--body-color);
2323
2699
  border: var(--measurement-small-10) solid transparent;
2324
2700
  border-bottom-color: var(--font-color-alpha-10);
@@ -2328,19 +2704,19 @@ var PageMenuWrapper = import_styled_components12.default.menu`
2328
2704
  margin: 0;
2329
2705
  padding: var(--measurement-medium-60) var(--measurement-medium-30);
2330
2706
  `;
2331
- var PagePanelWrapper = import_styled_components12.default.aside`
2707
+ var PagePanelWrapper = import_styled_components14.default.aside`
2332
2708
  position: absolute;
2333
2709
  bottom: 0;
2334
2710
  width: 100%;
2335
2711
  overflow: scroll;
2336
2712
  ${HiddenScrollbar}
2337
2713
  `;
2338
- var PageSectionWrapper = import_styled_components12.default.div`
2714
+ var PageSectionWrapper = import_styled_components14.default.div`
2339
2715
  background: var(--body-color);
2340
2716
  width: 100%;
2341
2717
  height: 100%;
2342
2718
  `;
2343
- var PageBodyWrapper = import_styled_components12.default.div`
2719
+ var PageBodyWrapper = import_styled_components14.default.div`
2344
2720
  --menus-height: calc(
2345
2721
  var(--measurement-large-30) *
2346
2722
  ${({ $menus }) => $menus ? Number($menus) : 0}
@@ -2365,12 +2741,12 @@ var PageBodyWrapper = import_styled_components12.default.div`
2365
2741
  // src/page/index.tsx
2366
2742
  var Page = (props) => {
2367
2743
  const { children } = props;
2368
- return /* @__PURE__ */ import_react22.default.createElement(PageRootWrapper, { className: "flex", ...props }, children);
2744
+ return /* @__PURE__ */ import_react25.default.createElement(PageRootWrapper, { className: "flex", ...props }, children);
2369
2745
  };
2370
2746
  Page.displayName = "Page";
2371
2747
  var PageNavigation = (props) => {
2372
2748
  const { children } = props;
2373
- return /* @__PURE__ */ import_react22.default.createElement(PageNavWrapper, { ...props }, children);
2749
+ return /* @__PURE__ */ import_react25.default.createElement(PageNavWrapper, { ...props }, children);
2374
2750
  };
2375
2751
  PageNavigation.displayName = "Page.Navigation";
2376
2752
  var PageTools = (props) => {
@@ -2392,7 +2768,7 @@ var PageTools = (props) => {
2392
2768
  const handleClick = (event) => {
2393
2769
  if (onClick) onClick(event);
2394
2770
  };
2395
- return /* @__PURE__ */ import_react22.default.createElement(Toolbar.Root, null, /* @__PURE__ */ import_react22.default.createElement(
2771
+ return /* @__PURE__ */ import_react25.default.createElement(Toolbar.Root, null, /* @__PURE__ */ import_react25.default.createElement(
2396
2772
  Toolbar,
2397
2773
  {
2398
2774
  raw,
@@ -2404,27 +2780,27 @@ var PageTools = (props) => {
2404
2780
  defaultOpen,
2405
2781
  ...props
2406
2782
  },
2407
- /* @__PURE__ */ import_react22.default.createElement(Toolbar.Section, { showoncollapse }, children),
2408
- !fixed && /* @__PURE__ */ import_react22.default.createElement(
2783
+ /* @__PURE__ */ import_react25.default.createElement(Toolbar.Section, { showoncollapse }, children),
2784
+ !fixed && /* @__PURE__ */ import_react25.default.createElement(
2409
2785
  Toolbar.Trigger,
2410
2786
  {
2411
2787
  title: shortcut ? `${bindkey ?? "ctrl"} + ${hotkey}` : "toolbar-trigger",
2412
2788
  onClick: handleClick,
2413
2789
  ...triggerProps
2414
2790
  },
2415
- trigger ?? /* @__PURE__ */ import_react22.default.createElement("span", null, "\u2194")
2791
+ trigger ?? /* @__PURE__ */ import_react25.default.createElement("span", null, "\u2194")
2416
2792
  )
2417
2793
  ));
2418
2794
  };
2419
2795
  PageTools.displayName = "Page.Tools";
2420
2796
  var PageContent = (props) => {
2421
2797
  const { children } = props;
2422
- return /* @__PURE__ */ import_react22.default.createElement(ScrollArea, { as: PageSectionWrapper, ...props }, children);
2798
+ return /* @__PURE__ */ import_react25.default.createElement(ScrollArea, { as: PageSectionWrapper, ...props }, children);
2423
2799
  };
2424
2800
  PageContent.displayName = "Page.Content";
2425
2801
  var PageWrapper = (props) => {
2426
2802
  const { children } = props;
2427
- return /* @__PURE__ */ import_react22.default.createElement(PageBodyWrapper, { ...props }, children);
2803
+ return /* @__PURE__ */ import_react25.default.createElement(PageBodyWrapper, { ...props }, children);
2428
2804
  };
2429
2805
  PageWrapper.displayName = "Page.Wrapper";
2430
2806
  var PagePanel = (props) => {
@@ -2447,7 +2823,7 @@ var PagePanel = (props) => {
2447
2823
  const handleClick = (event) => {
2448
2824
  if (onClick) onClick(event);
2449
2825
  };
2450
- return /* @__PURE__ */ import_react22.default.createElement(Toolbar.Root, null, /* @__PURE__ */ import_react22.default.createElement(
2826
+ return /* @__PURE__ */ import_react25.default.createElement(Toolbar.Root, null, /* @__PURE__ */ import_react25.default.createElement(
2451
2827
  PagePanelWrapper,
2452
2828
  {
2453
2829
  as: Toolbar,
@@ -2461,22 +2837,22 @@ var PagePanel = (props) => {
2461
2837
  defaultOpen,
2462
2838
  "aria-label": props["aria-label"]
2463
2839
  },
2464
- !fixed && /* @__PURE__ */ import_react22.default.createElement(
2840
+ !fixed && /* @__PURE__ */ import_react25.default.createElement(
2465
2841
  Toolbar.Trigger,
2466
2842
  {
2467
2843
  title: shortcut ? `${bindkey ?? "ctrl"} + ${hotkey}` : "toolbar-trigger",
2468
2844
  onClick: handleClick,
2469
2845
  ...triggerProps
2470
2846
  },
2471
- trigger ?? /* @__PURE__ */ import_react22.default.createElement("span", { style: { transform: "rotate(90deg)" } }, "\u2194")
2847
+ trigger ?? /* @__PURE__ */ import_react25.default.createElement("span", { style: { transform: "rotate(90deg)" } }, "\u2194")
2472
2848
  ),
2473
- /* @__PURE__ */ import_react22.default.createElement(Toolbar.Section, { showoncollapse }, children)
2849
+ /* @__PURE__ */ import_react25.default.createElement(Toolbar.Section, { showoncollapse }, children)
2474
2850
  ));
2475
2851
  };
2476
2852
  PagePanel.displayName = "Page.Panel";
2477
2853
  var PageMenu = (props) => {
2478
2854
  const { children } = props;
2479
- return /* @__PURE__ */ import_react22.default.createElement(PageMenuWrapper, { ...props }, children);
2855
+ return /* @__PURE__ */ import_react25.default.createElement(PageMenuWrapper, { ...props }, children);
2480
2856
  };
2481
2857
  PageMenu.displayName = "Page.Menu";
2482
2858
  Page.Navigation = PageNavigation;
@@ -2487,14 +2863,14 @@ Page.Panel = PagePanel;
2487
2863
  Page.Menu = PageMenu;
2488
2864
 
2489
2865
  // src/portal/index.tsx
2490
- var import_react23 = __toESM(require("react"));
2866
+ var import_react26 = __toESM(require("react"));
2491
2867
  var import_react_dom = require("react-dom");
2492
2868
  var Portal = (props) => {
2493
2869
  if (typeof document === "undefined") return null;
2494
2870
  const { container, children } = props;
2495
- const [hasMounted, setHasMounted] = import_react23.default.useState(false);
2496
- const [portalRoot, setPortalRoot] = import_react23.default.useState(null);
2497
- import_react23.default.useEffect(() => {
2871
+ const [hasMounted, setHasMounted] = import_react26.default.useState(false);
2872
+ const [portalRoot, setPortalRoot] = import_react26.default.useState(null);
2873
+ import_react26.default.useEffect(() => {
2498
2874
  setHasMounted(true);
2499
2875
  setPortalRoot(document.querySelector(`#${container}`));
2500
2876
  }, [container]);
@@ -2503,26 +2879,188 @@ var Portal = (props) => {
2503
2879
  };
2504
2880
  Portal.displayName = "Portal";
2505
2881
 
2882
+ // src/privacy-field/index.tsx
2883
+ var import_react27 = __toESM(require("react"));
2884
+
2885
+ // src/privacy-field/styles/index.ts
2886
+ var import_styled_components15 = __toESM(require("styled-components"));
2887
+ var Wrapper = (0, import_styled_components15.default)(Field.Wrapper)`
2888
+ position: relative;
2889
+
2890
+ input {
2891
+ width: 100% !important;
2892
+ }
2893
+ `;
2894
+ var Trigger = (0, import_styled_components15.default)(Button)`
2895
+ position: absolute !important;
2896
+ right: var(--measurement-medium-50);
2897
+ top: calc(var(--measurement-medium-50));
2898
+ `;
2899
+
2900
+ // src/privacy-field/index.tsx
2901
+ var PrivacyField = ({
2902
+ defaultType,
2903
+ textIcon,
2904
+ passwordIcon,
2905
+ ...restProps
2906
+ }) => {
2907
+ const [type, setType] = import_react27.default.useState(
2908
+ defaultType ?? "password"
2909
+ );
2910
+ const handleChangeType = import_react27.default.useCallback(() => {
2911
+ if (type === "text") setType("password");
2912
+ if (type === "password") setType("text");
2913
+ }, [type, setType]);
2914
+ return /* @__PURE__ */ import_react27.default.createElement(Wrapper, { className: "flex" }, /* @__PURE__ */ import_react27.default.createElement(Field, { autoComplete: "off", type, ...restProps }), /* @__PURE__ */ import_react27.default.createElement(Trigger, { variant: "ghost", sizing: "small", onClick: handleChangeType }, type === "text" && textIcon, type === "password" && passwordIcon));
2915
+ };
2916
+ PrivacyField.displayName = "PrivacyField";
2917
+
2918
+ // src/resizable/index.tsx
2919
+ var import_react28 = __toESM(require("react"));
2920
+
2921
+ // src/resizable/styles/index.ts
2922
+ var import_styled_components16 = __toESM(require("styled-components"));
2923
+ var SplitContainer = import_styled_components16.default.div`
2924
+ position: relative;
2925
+ `;
2926
+ var Panel = import_styled_components16.default.div`
2927
+ overflow: hidden;
2928
+ width: ${(props) => props.width}%;
2929
+ `;
2930
+ var Divider2 = import_styled_components16.default.div`
2931
+ width: var(--measurement-medium-10);
2932
+ height: 100%;
2933
+ top: 0;
2934
+
2935
+ border-radius: var(--measurement-medium-60);
2936
+ background-color: transparent;
2937
+
2938
+ /* background-color: ${(props) => props.$dragging ? "var(--font-color-alpha-10)" : "transparent"}; */
2939
+
2940
+ cursor: col-resize;
2941
+ transition: background-color 0.2s;
2942
+ position: relative;
2943
+
2944
+ /** Shows DragIndicator on hover */
2945
+ &:hover .drag-indicator-handle,
2946
+ &:active .drag-indicator-handle {
2947
+ opacity: 1;
2948
+ }
2949
+
2950
+ .drag-indicator-handle {
2951
+ height: ${(props) => props.$dragging ? "var(--measurement-large-10)" : "var(--measurement-medium-60)"};
2952
+ }
2953
+ `;
2954
+ var DragHandle = import_styled_components16.default.div`
2955
+ position: absolute;
2956
+ top: 0;
2957
+ bottom: 0;
2958
+ left: calc(var(--measurement-medium-10) * -1);
2959
+ right: calc(var(--measurement-medium-10) * -1);
2960
+ `;
2961
+ var DragIndicator = import_styled_components16.default.div`
2962
+ position: fixed;
2963
+ width: var(--measurement-medium-10);
2964
+ /* height: var(--measurement-medium-60); */
2965
+ background-color: var(--font-color-alpha-60);
2966
+ border-radius: var(--measurement-large-10);
2967
+
2968
+ opacity: 0;
2969
+ transition: all 0.2s;
2970
+ `;
2971
+ var DragOverlay = import_styled_components16.default.div`
2972
+ position: fixed;
2973
+ top: 0;
2974
+ left: 0;
2975
+ right: 0;
2976
+ bottom: 0;
2977
+ z-index: var(--depth-default-90);
2978
+ cursor: col-resize;
2979
+ `;
2980
+
2981
+ // src/resizable/index.tsx
2982
+ var Resizable = ({
2983
+ defaultWidth,
2984
+ left,
2985
+ right
2986
+ }) => {
2987
+ const containerRef = import_react28.default.useRef(null);
2988
+ const [leftWidth, setLeftWidth] = import_react28.default.useState(defaultWidth ?? 50);
2989
+ const [isDragging, setIsDragging] = import_react28.default.useState(false);
2990
+ const handleMouseDown = import_react28.default.useCallback(() => setIsDragging(true), []);
2991
+ const handleMouseUp = import_react28.default.useCallback(() => setIsDragging(false), []);
2992
+ const handleMouseMove = import_react28.default.useCallback(
2993
+ (e) => {
2994
+ if (!isDragging || !containerRef.current) return;
2995
+ const containerRect = containerRef.current.getBoundingClientRect();
2996
+ const newLeftWidth = (e.clientX - containerRect.left) / containerRect.width * 100;
2997
+ const threshold = { min: 30, max: 70 };
2998
+ const constrainedWidth = Math.min(
2999
+ Math.max(newLeftWidth, threshold.min),
3000
+ threshold.max
3001
+ );
3002
+ setLeftWidth(constrainedWidth);
3003
+ },
3004
+ [isDragging]
3005
+ );
3006
+ import_react28.default.useEffect(() => {
3007
+ if (isDragging) {
3008
+ document.addEventListener("mousemove", handleMouseMove);
3009
+ document.addEventListener("mouseup", handleMouseUp);
3010
+ document.body.style.cursor = "col-resize";
3011
+ document.body.style.userSelect = "none";
3012
+ } else {
3013
+ document.removeEventListener("mousemove", handleMouseMove);
3014
+ document.removeEventListener("mouseup", handleMouseUp);
3015
+ document.body.style.cursor = "";
3016
+ document.body.style.userSelect = "";
3017
+ }
3018
+ return () => {
3019
+ document.removeEventListener("mousemove", handleMouseMove);
3020
+ document.removeEventListener("mouseup", handleMouseUp);
3021
+ document.body.style.cursor = "";
3022
+ document.body.style.userSelect = "";
3023
+ };
3024
+ }, [isDragging, handleMouseMove, handleMouseUp]);
3025
+ return /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, /* @__PURE__ */ import_react28.default.createElement(SplitContainer, { ref: containerRef, className: "h-100 flex" }, /* @__PURE__ */ import_react28.default.createElement(Panel, { width: leftWidth }, left), /* @__PURE__ */ import_react28.default.createElement(
3026
+ Divider2,
3027
+ {
3028
+ $dragging: isDragging,
3029
+ onMouseDown: handleMouseDown,
3030
+ onTouchStart: handleMouseDown
3031
+ },
3032
+ /* @__PURE__ */ import_react28.default.createElement(
3033
+ DragHandle,
3034
+ {
3035
+ className: "flex align-center justify-center",
3036
+ id: "drag-handle"
3037
+ },
3038
+ /* @__PURE__ */ import_react28.default.createElement(DragIndicator, { className: "drag-indicator-handle" })
3039
+ )
3040
+ ), /* @__PURE__ */ import_react28.default.createElement(Panel, { width: 100 - leftWidth }, right)), isDragging && /* @__PURE__ */ import_react28.default.createElement(DragOverlay, null));
3041
+ };
3042
+ Resizable.displayName = "Resizable";
3043
+
2506
3044
  // src/sheet/index.tsx
2507
- var import_react25 = __toESM(require("react"));
3045
+ var import_react30 = __toESM(require("react"));
2508
3046
 
2509
3047
  // src/sheet/hooks/index.tsx
2510
- var import_react24 = __toESM(require("react"));
2511
- var SheetContext = import_react24.default.createContext({
3048
+ var import_react29 = __toESM(require("react"));
3049
+ var SheetContext = import_react29.default.createContext({
2512
3050
  id: {},
2513
3051
  states: {},
2514
3052
  methods: {}
2515
3053
  });
2516
- var useSheet = () => import_react24.default.useContext(SheetContext);
3054
+ var useSheet = () => import_react29.default.useContext(SheetContext);
2517
3055
  var SheetProvider = ({ children }) => {
2518
3056
  const context = useSheetProvider();
2519
- return /* @__PURE__ */ import_react24.default.createElement(SheetContext.Provider, { value: context }, children);
3057
+ return /* @__PURE__ */ import_react29.default.createElement(SheetContext.Provider, { value: context }, children);
2520
3058
  };
2521
3059
  function useSheetProvider() {
2522
- const containerId = import_react24.default.useId();
2523
- const triggerId = import_react24.default.useId();
2524
- const controlId = import_react24.default.useId();
2525
- const [open, setOpen] = import_react24.default.useState(false);
3060
+ const containerId = import_react29.default.useId();
3061
+ const triggerId = import_react29.default.useId();
3062
+ const controlId = import_react29.default.useId();
3063
+ const [open, setOpen] = import_react29.default.useState(false);
2526
3064
  return {
2527
3065
  id: {
2528
3066
  containerId,
@@ -2540,8 +3078,8 @@ function useSheetProvider() {
2540
3078
  }
2541
3079
 
2542
3080
  // src/sheet/styles/index.ts
2543
- var import_styled_components13 = __toESM(require("styled-components"));
2544
- var SheetStyles = import_styled_components13.css`
3081
+ var import_styled_components17 = __toESM(require("styled-components"));
3082
+ var SheetStyles = import_styled_components17.css`
2545
3083
  all: unset;
2546
3084
  position: fixed;
2547
3085
  background-color: var(--body-color);
@@ -2572,7 +3110,7 @@ var SheetStyles = import_styled_components13.css`
2572
3110
  animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
2573
3111
  animation-fill-mode: backwards;
2574
3112
  `;
2575
- var SheetSizeStyles = import_styled_components13.css`
3113
+ var SheetSizeStyles = import_styled_components17.css`
2576
3114
  &[data-size="small"] {
2577
3115
  width: var(--measurement-large-80);
2578
3116
  }
@@ -2585,7 +3123,7 @@ var SheetSizeStyles = import_styled_components13.css`
2585
3123
  width: calc(var(--measurement-large-90) * 1.5);
2586
3124
  }
2587
3125
  `;
2588
- var SheetSideStyles = import_styled_components13.css`
3126
+ var SheetSideStyles = import_styled_components17.css`
2589
3127
  top: 0;
2590
3128
 
2591
3129
  &[data-side="right"] {
@@ -2600,7 +3138,7 @@ var SheetSideStyles = import_styled_components13.css`
2600
3138
  animation-name: slide-left;
2601
3139
  }
2602
3140
  `;
2603
- var SheetWrapper = import_styled_components13.default.dialog`
3141
+ var SheetWrapper = import_styled_components17.default.dialog`
2604
3142
  &[data-raw="false"] {
2605
3143
  ${SheetStyles}
2606
3144
  ${SheetSideStyles}
@@ -2610,7 +3148,7 @@ var SheetWrapper = import_styled_components13.default.dialog`
2610
3148
 
2611
3149
  // src/sheet/index.tsx
2612
3150
  var SheetRoot = ({ children }) => {
2613
- return /* @__PURE__ */ import_react25.default.createElement(SheetProvider, null, children);
3151
+ return /* @__PURE__ */ import_react30.default.createElement(SheetProvider, null, children);
2614
3152
  };
2615
3153
  SheetRoot.displayName = "Sheet.Root";
2616
3154
  var Sheet = (props) => {
@@ -2631,16 +3169,16 @@ var Sheet = (props) => {
2631
3169
  const { id, states, methods } = useSheet();
2632
3170
  const { toggle } = methods;
2633
3171
  const shortcutControls = useKeyPress(String(hotkey), true, bindkey);
2634
- import_react25.default.useEffect(() => {
3172
+ import_react30.default.useEffect(() => {
2635
3173
  if (open && toggle) return toggle();
2636
3174
  }, [open]);
2637
- import_react25.default.useEffect(() => {
3175
+ import_react30.default.useEffect(() => {
2638
3176
  if (shortcut && shortcutControls && toggle) {
2639
3177
  return toggle();
2640
3178
  }
2641
3179
  }, [shortcutControls]);
2642
3180
  useDisabledScroll(lock && Boolean(states.open));
2643
- return /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, states.open && /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, /* @__PURE__ */ import_react25.default.createElement(
3181
+ return /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, states.open && /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(
2644
3182
  SheetWrapper,
2645
3183
  {
2646
3184
  role: "dialog",
@@ -2657,7 +3195,7 @@ var Sheet = (props) => {
2657
3195
  ...restProps
2658
3196
  },
2659
3197
  children
2660
- ), overlay && /* @__PURE__ */ import_react25.default.createElement(
3198
+ ), overlay && /* @__PURE__ */ import_react30.default.createElement(
2661
3199
  Overlay,
2662
3200
  {
2663
3201
  onClick: () => toggle && toggle(!states.open),
@@ -2683,7 +3221,7 @@ var SheetTrigger = (props) => {
2683
3221
  if (onClick) onClick(event);
2684
3222
  if (toggle) toggle(!states.open);
2685
3223
  };
2686
- return /* @__PURE__ */ import_react25.default.createElement(
3224
+ return /* @__PURE__ */ import_react30.default.createElement(
2687
3225
  Button,
2688
3226
  {
2689
3227
  id: id.triggerId,
@@ -2703,13 +3241,13 @@ Sheet.Root = SheetRoot;
2703
3241
  Sheet.Trigger = SheetTrigger;
2704
3242
 
2705
3243
  // src/scrollarea/index.tsx
2706
- var import_react26 = __toESM(require("react"));
3244
+ var import_react31 = __toESM(require("react"));
2707
3245
  var ScrollArea = ({
2708
3246
  scrollbar = false,
2709
3247
  children,
2710
3248
  ...restProps
2711
3249
  }) => {
2712
- return /* @__PURE__ */ import_react26.default.createElement(
3250
+ return /* @__PURE__ */ import_react31.default.createElement(
2713
3251
  ScrollAreaWrapper,
2714
3252
  {
2715
3253
  "aria-hidden": "true",
@@ -2720,25 +3258,148 @@ var ScrollArea = ({
2720
3258
  );
2721
3259
  };
2722
3260
 
3261
+ // src/spinner/index.tsx
3262
+ var import_react32 = __toESM(require("react"));
3263
+
3264
+ // src/spinner/styles/index.ts
3265
+ var import_styled_components18 = __toESM(require("styled-components"));
3266
+ var Rotate = import_styled_components18.keyframes`
3267
+ 0% {
3268
+ transform: rotate(0deg);
3269
+ }
3270
+ 100% {
3271
+ transform: rotate(360deg);
3272
+ }
3273
+ `;
3274
+ var FieldSizeStyles2 = import_styled_components18.css`
3275
+ &[data-size="small"] {
3276
+ width: var(--measurement-medium-40);
3277
+ height: var(--measurement-medium-40);
3278
+ }
3279
+ &[data-size="medium"] {
3280
+ width: var(--measurement-medium-50);
3281
+ height: var(--measurement-medium-50);
3282
+ }
3283
+ &[data-size="large"] {
3284
+ width: var(--measurement-medium-60);
3285
+ height: var(--measurement-medium-60);
3286
+ }
3287
+ `;
3288
+ var RotatingSpinner = import_styled_components18.default.span`
3289
+ padding: 0;
3290
+ margin: 0;
3291
+
3292
+ display: inline-block;
3293
+ box-sizing: border-box;
3294
+
3295
+ border: var(--measurement-small-60) solid var(--font-color-alpha-30);
3296
+ border-bottom-color: transparent;
3297
+ border-radius: var(--measurement-large-90);
3298
+
3299
+ animation: ${Rotate} 1s linear infinite;
3300
+
3301
+ ${FieldSizeStyles2}
3302
+ `;
3303
+
3304
+ // src/spinner/index.tsx
3305
+ var Spinner = (props) => {
3306
+ return /* @__PURE__ */ import_react32.default.createElement(RotatingSpinner, { "data-size": props.sizing ?? "medium" });
3307
+ };
3308
+
3309
+ // src/skeleton/index.tsx
3310
+ var import_react33 = __toESM(require("react"));
3311
+
3312
+ // src/skeleton/styles/index.ts
3313
+ var import_styled_components19 = __toESM(require("styled-components"));
3314
+ var SkeletonBlink = import_styled_components19.keyframes`
3315
+ 0% {
3316
+ opacity: 0.3;
3317
+ }
3318
+ 100% {
3319
+ opacity: 0.1;
3320
+ }
3321
+ `;
3322
+ var SkeletonBaseStyles = import_styled_components19.css`
3323
+ background: linear-gradient(
3324
+ 45deg,
3325
+ var(--font-color-alpha-10),
3326
+ var(--font-color-alpha-20)
3327
+ );
3328
+ animation: ${SkeletonBlink} 1s ease-in-out alternate-reverse infinite;
3329
+ `;
3330
+ var SkeletonSizeStyles = import_styled_components19.css`
3331
+ &[data-size="small"] {
3332
+ width: 100%;
3333
+
3334
+ min-width: var(--measurement-medium-60);
3335
+ min-height: var(--measurement-medium-70);
3336
+ }
3337
+ &[data-size="medium"] {
3338
+ width: 100%;
3339
+ min-width: var(--measurement-medium-90);
3340
+ min-height: var(--measurement-medium-80);
3341
+ }
3342
+ &[data-size="large"] {
3343
+ width: 100%;
3344
+ min-width: var(--measurement-medium-90);
3345
+ min-height: var(--measurement-medium-90);
3346
+ }
3347
+ `;
3348
+ var SkeletonShapeStyles = import_styled_components19.css`
3349
+ &[data-shape="square"] {
3350
+ border-radius: 0;
3351
+ }
3352
+ &[data-shape="smooth"] {
3353
+ border-radius: var(--measurement-medium-20);
3354
+ }
3355
+ &[data-shape="round"] {
3356
+ border-radius: var(--measurement-large-90);
3357
+ }
3358
+ `;
3359
+ var SkeletonLoader = import_styled_components19.default.span`
3360
+ ${SkeletonBaseStyles}
3361
+ ${SkeletonSizeStyles}
3362
+ ${SkeletonShapeStyles}
3363
+ `;
3364
+
3365
+ // src/skeleton/index.tsx
3366
+ var Skeleton = (props) => {
3367
+ const {
3368
+ sizing = "medium" /* Medium */,
3369
+ shape = "smooth",
3370
+ ...restProps
3371
+ } = props;
3372
+ return /* @__PURE__ */ import_react33.default.createElement(
3373
+ SkeletonLoader,
3374
+ {
3375
+ "data-size": sizing,
3376
+ "data-shape": shape,
3377
+ tabIndex: 0,
3378
+ ...restProps
3379
+ }
3380
+ );
3381
+ };
3382
+ Skeleton.displayName = "Skeleton";
3383
+
2723
3384
  // src/switch/index.tsx
2724
- var import_react28 = __toESM(require("react"));
3385
+ var import_react35 = __toESM(require("react"));
2725
3386
 
2726
3387
  // src/switch/hooks/index.tsx
2727
- var import_react27 = __toESM(require("react"));
3388
+ var import_react34 = __toESM(require("react"));
2728
3389
  var defaultComponentAPI6 = {
2729
3390
  id: "",
2730
3391
  states: {},
2731
3392
  methods: {}
2732
3393
  };
2733
- var SwitchContext = (0, import_react27.createContext)(defaultComponentAPI6);
2734
- var useSwitch = () => (0, import_react27.useContext)(SwitchContext);
3394
+ var SwitchContext = (0, import_react34.createContext)(defaultComponentAPI6);
3395
+ var useSwitch = () => (0, import_react34.useContext)(SwitchContext);
2735
3396
  var SwitchProvider = ({ children }) => {
2736
3397
  const context = useSwitchProvider();
2737
- return /* @__PURE__ */ import_react27.default.createElement(SwitchContext.Provider, { value: context }, children);
3398
+ return /* @__PURE__ */ import_react34.default.createElement(SwitchContext.Provider, { value: context }, children);
2738
3399
  };
2739
3400
  function useSwitchProvider() {
2740
- const [checked, setChecked] = (0, import_react27.useState)(false);
2741
- const switchId = import_react27.default.useId();
3401
+ const [checked, setChecked] = (0, import_react34.useState)(false);
3402
+ const switchId = import_react34.default.useId();
2742
3403
  return {
2743
3404
  id: switchId,
2744
3405
  states: {
@@ -2751,8 +3412,8 @@ function useSwitchProvider() {
2751
3412
  }
2752
3413
 
2753
3414
  // src/switch/styles/index.ts
2754
- var import_styled_components14 = __toESM(require("styled-components"));
2755
- var SwitchDefaultStyles = import_styled_components14.css`
3415
+ var import_styled_components20 = __toESM(require("styled-components"));
3416
+ var SwitchDefaultStyles = import_styled_components20.css`
2756
3417
  all: unset;
2757
3418
 
2758
3419
  border: var(--measurement-small-10) solid transparent;
@@ -2766,7 +3427,7 @@ var SwitchDefaultStyles = import_styled_components14.css`
2766
3427
  opacity: 0.6;
2767
3428
  }
2768
3429
  `;
2769
- var SwitchVariantsStyles = import_styled_components14.css`
3430
+ var SwitchVariantsStyles = import_styled_components20.css`
2770
3431
  &[data-variant="primary"] {
2771
3432
  &[aria-checked="true"] {
2772
3433
  background-color: var(--color-green);
@@ -2797,7 +3458,7 @@ var SwitchVariantsStyles = import_styled_components14.css`
2797
3458
  }
2798
3459
  }
2799
3460
  `;
2800
- var SwitchSizeStyles = import_styled_components14.css`
3461
+ var SwitchSizeStyles = import_styled_components20.css`
2801
3462
  &[data-size="small"] {
2802
3463
  width: calc(var(--measurement-medium-60) * 1.33);
2803
3464
  height: var(--measurement-medium-50);
@@ -2846,14 +3507,14 @@ var SwitchSizeStyles = import_styled_components14.css`
2846
3507
  }
2847
3508
  }
2848
3509
  `;
2849
- var TriggerWrapper = import_styled_components14.default.button`
3510
+ var TriggerWrapper = import_styled_components20.default.button`
2850
3511
  &[data-raw="false"] {
2851
3512
  ${SwitchDefaultStyles}
2852
3513
  ${SwitchVariantsStyles}
2853
3514
  ${SwitchSizeStyles}
2854
3515
  }
2855
3516
  `;
2856
- var Thumb = import_styled_components14.default.span`
3517
+ var Thumb = import_styled_components20.default.span`
2857
3518
  &[data-raw="false"] {
2858
3519
  all: unset;
2859
3520
  display: block;
@@ -2887,10 +3548,10 @@ var Switch = (props) => {
2887
3548
  if (onClick) onClick(event);
2888
3549
  if (toggleSwitch) toggleSwitch();
2889
3550
  };
2890
- import_react28.default.useEffect(() => {
3551
+ import_react35.default.useEffect(() => {
2891
3552
  if (defaultChecked && toggleSwitch) toggleSwitch();
2892
3553
  }, [defaultChecked]);
2893
- return /* @__PURE__ */ import_react28.default.createElement(
3554
+ return /* @__PURE__ */ import_react35.default.createElement(
2894
3555
  TriggerWrapper,
2895
3556
  {
2896
3557
  type: "button",
@@ -2906,19 +3567,19 @@ var Switch = (props) => {
2906
3567
  "data-raw": Boolean(raw),
2907
3568
  ...restProps
2908
3569
  },
2909
- /* @__PURE__ */ import_react28.default.createElement("title", null, "Switch"),
3570
+ /* @__PURE__ */ import_react35.default.createElement("title", null, "Switch"),
2910
3571
  children
2911
3572
  );
2912
3573
  };
2913
3574
  Switch.displayName = "Switch";
2914
3575
  var SwitchRoot = ({ children }) => {
2915
- return /* @__PURE__ */ import_react28.default.createElement(SwitchProvider, null, children);
3576
+ return /* @__PURE__ */ import_react35.default.createElement(SwitchProvider, null, children);
2916
3577
  };
2917
3578
  SwitchRoot.displayName = "Switch.Root";
2918
3579
  var SwitchThumb = (props) => {
2919
3580
  const { raw, sizing } = props;
2920
3581
  const { id, states } = useSwitch();
2921
- return /* @__PURE__ */ import_react28.default.createElement(
3582
+ return /* @__PURE__ */ import_react35.default.createElement(
2922
3583
  Thumb,
2923
3584
  {
2924
3585
  role: "presentation",
@@ -2938,11 +3599,11 @@ Switch.Root = SwitchRoot;
2938
3599
  Switch.Thumb = SwitchThumb;
2939
3600
 
2940
3601
  // src/table/index.tsx
2941
- var import_react29 = __toESM(require("react"));
3602
+ var import_react36 = __toESM(require("react"));
2942
3603
 
2943
3604
  // src/table/styles/index.ts
2944
- var import_styled_components15 = __toESM(require("styled-components"));
2945
- var CellStyles = import_styled_components15.css`
3605
+ var import_styled_components21 = __toESM(require("styled-components"));
3606
+ var CellStyles = import_styled_components21.css`
2946
3607
  box-sizing: border-box;
2947
3608
  border: none;
2948
3609
  line-height: 1;
@@ -2952,11 +3613,11 @@ var CellStyles = import_styled_components15.css`
2952
3613
  var(--fontsize-small-10) - ((var(--fontsize-small-10) * 1.066))
2953
3614
  );
2954
3615
  `;
2955
- var TableLayer = import_styled_components15.default.div`
3616
+ var TableLayer = import_styled_components21.default.div`
2956
3617
  border-radius: var(--measurement-medium-30);
2957
3618
  border: var(--measurement-small-10) solid var(--font-color-alpha-10);
2958
3619
  `;
2959
- var TableWrapper = import_styled_components15.default.table`
3620
+ var TableWrapper = import_styled_components21.default.table`
2960
3621
  border-collapse: collapse;
2961
3622
 
2962
3623
  tbody {
@@ -2967,7 +3628,7 @@ var TableWrapper = import_styled_components15.default.table`
2967
3628
  }
2968
3629
  }
2969
3630
  `;
2970
- var RowWrapper = import_styled_components15.default.tr`
3631
+ var RowWrapper = import_styled_components21.default.tr`
2971
3632
  border-bottom: var(--measurement-small-10) solid var(--font-color-alpha-10);
2972
3633
 
2973
3634
  transition: background-color linear 0.1s;
@@ -2976,7 +3637,7 @@ var RowWrapper = import_styled_components15.default.tr`
2976
3637
  background-color: var(--font-color-alpha-10);
2977
3638
  }
2978
3639
  `;
2979
- var HeadCellWrapper = import_styled_components15.default.th`
3640
+ var HeadCellWrapper = import_styled_components21.default.th`
2980
3641
  font-size: var(--fontsize-medium-10);
2981
3642
  ${CellStyles}
2982
3643
 
@@ -2984,7 +3645,7 @@ var HeadCellWrapper = import_styled_components15.default.th`
2984
3645
  color: var(--font-color-alpha-60);
2985
3646
  }
2986
3647
  `;
2987
- var CellWrapper = import_styled_components15.default.td`
3648
+ var CellWrapper = import_styled_components21.default.td`
2988
3649
  ${CellStyles}
2989
3650
  `;
2990
3651
 
@@ -2993,43 +3654,43 @@ var Table = ({
2993
3654
  children,
2994
3655
  ...restProps
2995
3656
  }) => {
2996
- return /* @__PURE__ */ import_react29.default.createElement(ScrollArea, { as: TableLayer, role: "presentation", tabIndex: -1 }, /* @__PURE__ */ import_react29.default.createElement(TableWrapper, { ...restProps, cellSpacing: "0", cellPadding: "0" }, children));
3657
+ return /* @__PURE__ */ import_react36.default.createElement(ScrollArea, { as: TableLayer, role: "presentation", tabIndex: -1 }, /* @__PURE__ */ import_react36.default.createElement(TableWrapper, { ...restProps, cellSpacing: "0", cellPadding: "0" }, children));
2997
3658
  };
2998
3659
  Table.displayName = "Table";
2999
3660
  var TableHead = ({
3000
3661
  children,
3001
3662
  ...restProps
3002
3663
  }) => {
3003
- return /* @__PURE__ */ import_react29.default.createElement("thead", { ...restProps }, children);
3664
+ return /* @__PURE__ */ import_react36.default.createElement("thead", { ...restProps }, children);
3004
3665
  };
3005
3666
  TableHead.displayName = "Table.Head";
3006
3667
  var TableBody = ({
3007
3668
  children,
3008
3669
  ...restProps
3009
3670
  }) => {
3010
- return /* @__PURE__ */ import_react29.default.createElement("tbody", { ...restProps }, children);
3671
+ return /* @__PURE__ */ import_react36.default.createElement("tbody", { ...restProps }, children);
3011
3672
  };
3012
3673
  TableBody.displayName = "Table.Body";
3013
3674
  var TableHeadCell = ({
3014
3675
  children,
3015
3676
  ...restProps
3016
3677
  }) => {
3017
- return /* @__PURE__ */ import_react29.default.createElement(HeadCellWrapper, { colSpan: 1, ...restProps }, /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex align-center g-medium-30" }, children));
3678
+ return /* @__PURE__ */ import_react36.default.createElement(HeadCellWrapper, { colSpan: 1, ...restProps }, /* @__PURE__ */ import_react36.default.createElement("div", { className: "flex align-center g-medium-30" }, children));
3018
3679
  };
3019
3680
  TableHeadCell.displayName = "Table.HeadCell";
3020
3681
  var TableRow = ({ children, ...restProps }) => {
3021
- return /* @__PURE__ */ import_react29.default.createElement(RowWrapper, { className: "p-medium-30", ...restProps }, children);
3682
+ return /* @__PURE__ */ import_react36.default.createElement(RowWrapper, { className: "p-medium-30", ...restProps }, children);
3022
3683
  };
3023
3684
  TableRow.displayName = "Table.Row";
3024
3685
  var TableCell = ({ children, ...restProps }) => {
3025
- return /* @__PURE__ */ import_react29.default.createElement(CellWrapper, { ...restProps }, /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex align-center g-medium-30" }, children));
3686
+ return /* @__PURE__ */ import_react36.default.createElement(CellWrapper, { ...restProps }, /* @__PURE__ */ import_react36.default.createElement("div", { className: "flex align-center g-medium-30" }, children));
3026
3687
  };
3027
3688
  TableCell.displayName = "Table.Cell";
3028
3689
  var TableFooter = ({
3029
3690
  children,
3030
3691
  ...restProps
3031
3692
  }) => {
3032
- return /* @__PURE__ */ import_react29.default.createElement("tfoot", { ...restProps }, children);
3693
+ return /* @__PURE__ */ import_react36.default.createElement("tfoot", { ...restProps }, children);
3033
3694
  };
3034
3695
  TableFooter.displayName = "Table.Footer";
3035
3696
  Table.Head = TableHead;
@@ -3040,24 +3701,24 @@ Table.Cell = TableCell;
3040
3701
  Table.Footer = TableFooter;
3041
3702
 
3042
3703
  // src/tabs/index.tsx
3043
- var import_react31 = __toESM(require("react"));
3704
+ var import_react38 = __toESM(require("react"));
3044
3705
 
3045
3706
  // src/tabs/hooks/index.tsx
3046
- var import_react30 = __toESM(require("react"));
3707
+ var import_react37 = __toESM(require("react"));
3047
3708
  var defaultComponentAPI7 = {
3048
3709
  id: "",
3049
3710
  states: {},
3050
3711
  methods: {}
3051
3712
  };
3052
- var TabsContext = (0, import_react30.createContext)(defaultComponentAPI7);
3053
- var useTabs = () => (0, import_react30.useContext)(TabsContext);
3713
+ var TabsContext = (0, import_react37.createContext)(defaultComponentAPI7);
3714
+ var useTabs = () => (0, import_react37.useContext)(TabsContext);
3054
3715
  var TabsProvider = ({ children }) => {
3055
3716
  const context = useTabsProvider();
3056
- return /* @__PURE__ */ import_react30.default.createElement(TabsContext.Provider, { value: context }, children);
3717
+ return /* @__PURE__ */ import_react37.default.createElement(TabsContext.Provider, { value: context }, children);
3057
3718
  };
3058
3719
  function useTabsProvider() {
3059
- const [value, setValue] = (0, import_react30.useState)(null);
3060
- const tabsId = import_react30.default.useId();
3720
+ const [value, setValue] = (0, import_react37.useState)(null);
3721
+ const tabsId = import_react37.default.useId();
3061
3722
  return {
3062
3723
  id: tabsId,
3063
3724
  states: {
@@ -3071,8 +3732,8 @@ function useTabsProvider() {
3071
3732
  }
3072
3733
 
3073
3734
  // src/tabs/styles/index.ts
3074
- var import_styled_components16 = __toESM(require("styled-components"));
3075
- var TabWrapper = import_styled_components16.default.div`
3735
+ var import_styled_components22 = __toESM(require("styled-components"));
3736
+ var TabWrapper = import_styled_components22.default.div`
3076
3737
  button {
3077
3738
  &[aria-selected="true"] {
3078
3739
  color: var(--font-color) !important;
@@ -3085,22 +3746,22 @@ var Tabs = (props) => {
3085
3746
  const { defaultOpen, children, ...restProps } = props;
3086
3747
  const { methods } = useTabs();
3087
3748
  const { applyValue } = methods;
3088
- const childArray = import_react31.Children.toArray(children);
3749
+ const childArray = import_react38.Children.toArray(children);
3089
3750
  const firstChild = childArray[0];
3090
- import_react31.default.useEffect(() => {
3091
- if (import_react31.default.isValidElement(firstChild)) {
3751
+ import_react38.default.useEffect(() => {
3752
+ if (import_react38.default.isValidElement(firstChild)) {
3092
3753
  if (childArray.length > 0 && applyValue)
3093
3754
  applyValue(firstChild.props.value);
3094
3755
  }
3095
3756
  }, []);
3096
- import_react31.default.useEffect(() => {
3757
+ import_react38.default.useEffect(() => {
3097
3758
  if (defaultOpen && applyValue) applyValue(defaultOpen);
3098
3759
  }, []);
3099
- return /* @__PURE__ */ import_react31.default.createElement(TabWrapper, { role: "tablist", ...restProps }, children);
3760
+ return /* @__PURE__ */ import_react38.default.createElement(TabWrapper, { role: "tablist", ...restProps }, children);
3100
3761
  };
3101
3762
  Tabs.displayName = "Tabs";
3102
3763
  var TabsRoot = ({ children }) => {
3103
- return /* @__PURE__ */ import_react31.default.createElement(TabsProvider, null, children);
3764
+ return /* @__PURE__ */ import_react38.default.createElement(TabsProvider, null, children);
3104
3765
  };
3105
3766
  TabsRoot.displayName = "Tabs.Root";
3106
3767
  var TabsTrigger = (props) => {
@@ -3116,7 +3777,7 @@ var TabsTrigger = (props) => {
3116
3777
  if (applyValue) applyValue(value);
3117
3778
  if (onClick) onClick(event);
3118
3779
  };
3119
- return /* @__PURE__ */ import_react31.default.createElement(
3780
+ return /* @__PURE__ */ import_react38.default.createElement(
3120
3781
  Button,
3121
3782
  {
3122
3783
  type: "button",
@@ -3144,7 +3805,7 @@ var TabsContent = (props) => {
3144
3805
  trigger: getTabsId && getTabsId({ value, type: "trigger" }),
3145
3806
  content: getTabsId && getTabsId({ value, type: "content" })
3146
3807
  };
3147
- return /* @__PURE__ */ import_react31.default.createElement(
3808
+ return /* @__PURE__ */ import_react38.default.createElement(
3148
3809
  "div",
3149
3810
  {
3150
3811
  tabIndex: 0,
@@ -3164,23 +3825,171 @@ Tabs.Root = TabsRoot;
3164
3825
  Tabs.Trigger = TabsTrigger;
3165
3826
  Tabs.Content = TabsContent;
3166
3827
 
3828
+ // src/text-area/index.tsx
3829
+ var import_react39 = __toESM(require("react"));
3830
+
3831
+ // src/text-area/styles/index.ts
3832
+ var import_styled_components23 = __toESM(require("styled-components"));
3833
+ var CustomScrollbar2 = import_styled_components23.css`
3834
+ height: ${({ $height }) => $height ?? "100%"};
3835
+ width: ${({ $width }) => $width ?? "100%"};
3836
+ overflow-y: auto;
3837
+ overflow-x: hidden;
3838
+
3839
+ &::-webkit-scrollbar {
3840
+ cursor: pointer;
3841
+
3842
+ width: var(--measurement-medium-10);
3843
+ }
3844
+
3845
+ &::-webkit-scrollbar-track {
3846
+ background: ${({ $trackColor }) => $trackColor ?? "transparent"};
3847
+ border-radius: var(--measurement-medium-30);
3848
+ border: none;
3849
+ }
3850
+
3851
+ &::-webkit-scrollbar-thumb {
3852
+ background: ${({ $thumbColor }) => $thumbColor ?? "var(--font-color-alpha-10)"};
3853
+ border-radius: var(--measurement-medium-30);
3854
+ transition: background-color 0.2s ease;
3855
+ }
3856
+
3857
+ &::-webkit-scrollbar-thumb:hover {
3858
+ background: ${({ $thumbHoverColor, $thumbColor }) => $thumbHoverColor ?? $thumbColor ?? "var(--font-color-alpha-20)"};
3859
+ }
3860
+
3861
+ // Firefox
3862
+ scrollbar-width: thin;
3863
+ scrollbar-color: ${({ $thumbColor, $trackColor }) => `${$thumbColor ?? "var(--font-color-alpha-10)"} ${$trackColor ?? "transparent"}`};
3864
+ `;
3865
+ var TextAreaContainer = import_styled_components23.default.textarea`
3866
+ &[data-raw="false"] {
3867
+ resize: vertical;
3868
+ max-height: var(--measurement-large-60);
3869
+ min-height: auto;
3870
+ width: 100%;
3871
+
3872
+ overflow-y: auto;
3873
+
3874
+ outline: none;
3875
+ cursor: pointer;
3876
+ display: flex;
3877
+ align-items: center;
3878
+ justify-content: center;
3879
+
3880
+ font-size: var(--fontsize-small-80);
3881
+ padding: var(--measurement-medium-30) var(--measurement-medium-30)
3882
+ var(--measurement-large-10) var(--measurement-medium-30);
3883
+
3884
+ font-weight: 500;
3885
+ line-height: 1.1;
3886
+ letter-spacing: calc(
3887
+ var(--fontsize-small-10) - ((var(--fontsize-small-10) * 1.066))
3888
+ );
3889
+
3890
+ border: var(--measurement-small-10) solid transparent;
3891
+ border-radius: var(--measurement-medium-30);
3892
+ backdrop-filter: blur(var(--measurement-small-10));
3893
+ color: var(--font-color-alpha-60);
3894
+
3895
+ transition: all ease-in-out 0.2s;
3896
+
3897
+ svg,
3898
+ span,
3899
+ img {
3900
+ opacity: 0.6;
3901
+ }
3902
+
3903
+ &:hover,
3904
+ &:focus,
3905
+ &:active {
3906
+ color: var(--font-color);
3907
+
3908
+ svg,
3909
+ span,
3910
+ img {
3911
+ opacity: 1;
3912
+ }
3913
+ }
3914
+ &::placeholder {
3915
+ color: var(--font-color-alpha-30);
3916
+ }
3917
+ &:disabled {
3918
+ cursor: not-allowed;
3919
+ opacity: 0.6;
3920
+ }
3921
+
3922
+ &::placeholder {
3923
+ color: var(--font-color-alpha-30);
3924
+ }
3925
+
3926
+ &:focus-visible {
3927
+ outline: none;
3928
+ }
3929
+
3930
+ &:disabled {
3931
+ cursor: not-allowed;
3932
+ }
3933
+
3934
+ &[data-error="true"] {
3935
+ &::placeholder {
3936
+ color: var(--alpha-red-30);
3937
+ }
3938
+ }
3939
+
3940
+ ${CustomScrollbar2}
3941
+ ${FieldVariantsStyles}
3942
+ }
3943
+ `;
3944
+
3945
+ // src/text-area/index.tsx
3946
+ var Textarea = ({ onChange, ...props }) => {
3947
+ const textareaRef = import_react39.default.useRef(null);
3948
+ const adjustHeight = () => {
3949
+ const textarea = textareaRef.current;
3950
+ if (textarea) {
3951
+ textarea.style.height = "auto";
3952
+ textarea.style.height = `${Math.min(
3953
+ textarea.scrollHeight,
3954
+ parseInt(getComputedStyle(textarea).maxHeight)
3955
+ )}px`;
3956
+ }
3957
+ };
3958
+ const handleChange = (e) => {
3959
+ adjustHeight();
3960
+ onChange?.(e);
3961
+ };
3962
+ import_react39.default.useEffect(() => adjustHeight(), [props.value]);
3963
+ return /* @__PURE__ */ import_react39.default.createElement(Field.Wrapper, { className: "w-100 h-auto" }, /* @__PURE__ */ import_react39.default.createElement(
3964
+ TextAreaContainer,
3965
+ {
3966
+ ref: textareaRef,
3967
+ onChange: handleChange,
3968
+ "data-variant": props.variant ?? "secondary",
3969
+ "data-raw": String(Boolean(props?.raw)),
3970
+ ...props
3971
+ }
3972
+ ));
3973
+ };
3974
+ Textarea.displayName = "Textarea";
3975
+
3167
3976
  // src/toggle/index.tsx
3168
- var import_react32 = __toESM(require("react"));
3977
+ var import_react40 = __toESM(require("react"));
3169
3978
  var Toggle = (props) => {
3170
3979
  const { defaultChecked, onClick, disabled, children, ...restProps } = props;
3171
- const [checked, setChecked] = import_react32.default.useState(
3980
+ const [checked, setChecked] = import_react40.default.useState(
3172
3981
  defaultChecked ?? false
3173
3982
  );
3174
3983
  const handleClick = (event) => {
3175
3984
  if (onClick) onClick(event);
3176
3985
  if (!disabled) setChecked((prevChecked) => !prevChecked);
3177
3986
  };
3178
- import_react32.default.useEffect(() => {
3987
+ import_react40.default.useEffect(() => {
3179
3988
  if (defaultChecked !== void 0) {
3180
3989
  setChecked(Boolean(defaultChecked));
3181
3990
  }
3182
3991
  }, [defaultChecked]);
3183
- return /* @__PURE__ */ import_react32.default.createElement(
3992
+ return /* @__PURE__ */ import_react40.default.createElement(
3184
3993
  Button,
3185
3994
  {
3186
3995
  role: "switch",
@@ -3198,24 +4007,24 @@ var Toggle = (props) => {
3198
4007
  Toggle.displayName = "Toggle";
3199
4008
 
3200
4009
  // src/toolbar/index.tsx
3201
- var import_react34 = __toESM(require("react"));
4010
+ var import_react42 = __toESM(require("react"));
3202
4011
 
3203
4012
  // src/toolbar/hooks/index.tsx
3204
- var import_react33 = __toESM(require("react"));
4013
+ var import_react41 = __toESM(require("react"));
3205
4014
  var defaultComponentAPI8 = {
3206
4015
  id: "",
3207
4016
  states: {},
3208
4017
  methods: {}
3209
4018
  };
3210
- var ToolbarContext = (0, import_react33.createContext)(defaultComponentAPI8);
3211
- var useToolbar = () => (0, import_react33.useContext)(ToolbarContext);
4019
+ var ToolbarContext = (0, import_react41.createContext)(defaultComponentAPI8);
4020
+ var useToolbar = () => (0, import_react41.useContext)(ToolbarContext);
3212
4021
  var ToolbarProvider = ({ children }) => {
3213
4022
  const context = useToolbarProvider();
3214
- return /* @__PURE__ */ import_react33.default.createElement(ToolbarContext.Provider, { value: context }, children);
4023
+ return /* @__PURE__ */ import_react41.default.createElement(ToolbarContext.Provider, { value: context }, children);
3215
4024
  };
3216
4025
  function useToolbarProvider() {
3217
- const [expanded, setExpanded] = (0, import_react33.useState)(false);
3218
- const toolbarId = import_react33.default.useId();
4026
+ const [expanded, setExpanded] = (0, import_react41.useState)(false);
4027
+ const toolbarId = import_react41.default.useId();
3219
4028
  return {
3220
4029
  id: toolbarId,
3221
4030
  states: {
@@ -3228,8 +4037,8 @@ function useToolbarProvider() {
3228
4037
  }
3229
4038
 
3230
4039
  // src/toolbar/styles/index.ts
3231
- var import_styled_components17 = __toESM(require("styled-components"));
3232
- var ToolbarDefaultStyles = import_styled_components17.css`
4040
+ var import_styled_components24 = __toESM(require("styled-components"));
4041
+ var ToolbarDefaultStyles = import_styled_components24.css`
3233
4042
  margin: 0;
3234
4043
  display: grid;
3235
4044
  grid-template-rows: min-content;
@@ -3263,7 +4072,7 @@ var ToolbarDefaultStyles = import_styled_components17.css`
3263
4072
  }
3264
4073
  }
3265
4074
  `;
3266
- var ToolbarSizeStyles = import_styled_components17.css`
4075
+ var ToolbarSizeStyles = import_styled_components24.css`
3267
4076
  &[data-size="small"] {
3268
4077
  &[aria-orientation="vertical"] {
3269
4078
  max-width: var(--measurement-large-70);
@@ -3309,7 +4118,7 @@ var ToolbarSizeStyles = import_styled_components17.css`
3309
4118
  }
3310
4119
  }
3311
4120
  `;
3312
- var ToolbarSideStyles = import_styled_components17.css`
4121
+ var ToolbarSideStyles = import_styled_components24.css`
3313
4122
  &[data-side="top"] {
3314
4123
  border-bottom-color: var(--font-color-alpha-10);
3315
4124
  }
@@ -3341,7 +4150,7 @@ var ToolbarSideStyles = import_styled_components17.css`
3341
4150
  }
3342
4151
  }
3343
4152
  `;
3344
- var ToolbarWrapper = import_styled_components17.default.menu`
4153
+ var ToolbarWrapper = import_styled_components24.default.menu`
3345
4154
  &[data-raw="false"] {
3346
4155
  ${ToolbarDefaultStyles}
3347
4156
  ${ToolbarSizeStyles}
@@ -3349,7 +4158,7 @@ var ToolbarWrapper = import_styled_components17.default.menu`
3349
4158
  ${ToolbarSideStyles}
3350
4159
  }
3351
4160
  `;
3352
- var ToolbarTriggerWrapper = import_styled_components17.default.menu`
4161
+ var ToolbarTriggerWrapper = import_styled_components24.default.menu`
3353
4162
  &[data-raw="false"] {
3354
4163
  all: unset;
3355
4164
  align-self: flex-end;
@@ -3374,13 +4183,13 @@ var Toolbar = (props) => {
3374
4183
  const { toggleToolbar } = methods;
3375
4184
  const shortcutControls = useKeyPress(String(hotkey), true, bindkey);
3376
4185
  const orientation = side && ["left", "right"].includes(side) ? "vertical" : "horizontal";
3377
- import_react34.default.useEffect(() => {
4186
+ import_react42.default.useEffect(() => {
3378
4187
  if (defaultOpen && toggleToolbar) return toggleToolbar(true);
3379
4188
  }, [defaultOpen]);
3380
- import_react34.default.useEffect(() => {
4189
+ import_react42.default.useEffect(() => {
3381
4190
  if (shortcut && shortcutControls && toggleToolbar) toggleToolbar();
3382
4191
  }, [shortcutControls]);
3383
- return /* @__PURE__ */ import_react34.default.createElement(
4192
+ return /* @__PURE__ */ import_react42.default.createElement(
3384
4193
  ToolbarWrapper,
3385
4194
  {
3386
4195
  id,
@@ -3400,7 +4209,7 @@ var Toolbar = (props) => {
3400
4209
  };
3401
4210
  Toolbar.displayName = "Toolbar";
3402
4211
  var ToolbarRoot = ({ children }) => {
3403
- return /* @__PURE__ */ import_react34.default.createElement(ToolbarProvider, null, children);
4212
+ return /* @__PURE__ */ import_react42.default.createElement(ToolbarProvider, null, children);
3404
4213
  };
3405
4214
  ToolbarRoot.displayName = "Toolbar.Root";
3406
4215
  var ToolbarTrigger = (props) => {
@@ -3418,7 +4227,7 @@ var ToolbarTrigger = (props) => {
3418
4227
  if (onClick) onClick(event);
3419
4228
  if (toggleToolbar) toggleToolbar(!states.expanded);
3420
4229
  };
3421
- return /* @__PURE__ */ import_react34.default.createElement(ToolbarTriggerWrapper, { "data-raw": Boolean(raw) }, /* @__PURE__ */ import_react34.default.createElement(
4230
+ return /* @__PURE__ */ import_react42.default.createElement(ToolbarTriggerWrapper, { "data-raw": Boolean(raw) }, /* @__PURE__ */ import_react42.default.createElement(
3422
4231
  Button,
3423
4232
  {
3424
4233
  id: `${id}-trigger`,
@@ -3436,13 +4245,13 @@ var ToolbarSection = (props) => {
3436
4245
  const { showoncollapse, children, ...restProps } = props;
3437
4246
  const { states } = useToolbar();
3438
4247
  const { expanded } = states;
3439
- if (showoncollapse) return /* @__PURE__ */ import_react34.default.createElement("section", { ...restProps }, children);
3440
- return /* @__PURE__ */ import_react34.default.createElement("section", { ...restProps }, expanded && children);
4248
+ if (showoncollapse) return /* @__PURE__ */ import_react42.default.createElement("section", { ...restProps }, children);
4249
+ return /* @__PURE__ */ import_react42.default.createElement("section", { ...restProps }, expanded && children);
3441
4250
  };
3442
4251
  ToolbarSection.displayName = "Toolbar.Section";
3443
4252
  var ToolbarItem = (props) => {
3444
4253
  const { showfirstchild, onClick, children, ...restProps } = props;
3445
- const childArray = import_react34.default.Children.toArray(children);
4254
+ const childArray = import_react42.default.Children.toArray(children);
3446
4255
  const { id, states, methods } = useToolbar();
3447
4256
  const { expanded } = states;
3448
4257
  const { toggleToolbar } = methods;
@@ -3451,7 +4260,7 @@ var ToolbarItem = (props) => {
3451
4260
  if (onClick) onClick(event);
3452
4261
  if (toggleToolbar && !expanded) toggleToolbar(true);
3453
4262
  };
3454
- return /* @__PURE__ */ import_react34.default.createElement(
4263
+ return /* @__PURE__ */ import_react42.default.createElement(
3455
4264
  "div",
3456
4265
  {
3457
4266
  tabIndex: -1,
@@ -3472,11 +4281,11 @@ Toolbar.Item = ToolbarItem;
3472
4281
  Toolbar.Section = ToolbarSection;
3473
4282
 
3474
4283
  // src/tooltip/index.tsx
3475
- var import_react35 = __toESM(require("react"));
4284
+ var import_react43 = __toESM(require("react"));
3476
4285
 
3477
4286
  // src/tooltip/styles/index.ts
3478
- var import_styled_components18 = __toESM(require("styled-components"));
3479
- var FadeIn2 = import_styled_components18.keyframes`
4287
+ var import_styled_components25 = __toESM(require("styled-components"));
4288
+ var FadeIn2 = import_styled_components25.keyframes`
3480
4289
  0% {
3481
4290
  opacity: 0;
3482
4291
  }
@@ -3484,11 +4293,11 @@ var FadeIn2 = import_styled_components18.keyframes`
3484
4293
  opacity: 1;
3485
4294
  }
3486
4295
  `;
3487
- var ContentBox = import_styled_components18.default.div`
4296
+ var ContentBox = import_styled_components25.default.div`
3488
4297
  display: inline-block;
3489
4298
  position: relative;
3490
4299
  `;
3491
- var ContentWrapper2 = import_styled_components18.default.span`
4300
+ var ContentWrapper2 = import_styled_components25.default.span`
3492
4301
  &[data-raw="false"] {
3493
4302
  width: fit-content;
3494
4303
  max-width: var(--measurement-large-60);
@@ -3519,15 +4328,15 @@ var Tooltip = ({
3519
4328
  children,
3520
4329
  ...restProps
3521
4330
  }) => {
3522
- const [visible, setVisible] = import_react35.default.useState(false);
3523
- const [triggerProps, setTriggerProps] = import_react35.default.useState(null);
3524
- const [contentProps, setContentProps] = import_react35.default.useState(null);
3525
- const mounted = import_react35.default.useRef(false);
3526
- const containerRef = import_react35.default.useRef(null);
3527
- const contentRef = import_react35.default.useRef(null);
3528
- const timeoutRef = import_react35.default.useRef(null);
4331
+ const [visible, setVisible] = import_react43.default.useState(false);
4332
+ const [triggerProps, setTriggerProps] = import_react43.default.useState(null);
4333
+ const [contentProps, setContentProps] = import_react43.default.useState(null);
4334
+ const mounted = import_react43.default.useRef(false);
4335
+ const containerRef = import_react43.default.useRef(null);
4336
+ const contentRef = import_react43.default.useRef(null);
4337
+ const timeoutRef = import_react43.default.useRef(null);
3529
4338
  const contentRect = () => contentRef?.current?.getBoundingClientRect();
3530
- const bodyRect = import_react35.default.useCallback(() => {
4339
+ const bodyRect = import_react43.default.useCallback(() => {
3531
4340
  if (typeof document !== "undefined") {
3532
4341
  return document.body.getBoundingClientRect();
3533
4342
  }
@@ -3548,14 +4357,14 @@ var Tooltip = ({
3548
4357
  };
3549
4358
  const hasEnoughHorizontalSpace = Number(dimensions.body_width) - Number(dimensions.content_left) > Number(dimensions.content_width) * 1.1;
3550
4359
  const hasEnoughVerticalSpace = Number(dimensions.body_height) - Number(dimensions.content_bottom) > Number(dimensions.content_height) * 0.9;
3551
- const showTooltip = import_react35.default.useCallback(() => {
4360
+ const showTooltip = import_react43.default.useCallback(() => {
3552
4361
  timeoutRef.current = setTimeout(() => setVisible(true), delay);
3553
4362
  }, [delay]);
3554
- const hideTooltip = import_react35.default.useCallback(() => {
4363
+ const hideTooltip = import_react43.default.useCallback(() => {
3555
4364
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
3556
4365
  setVisible(false);
3557
4366
  }, []);
3558
- const handleMouseEnter = import_react35.default.useCallback(() => {
4367
+ const handleMouseEnter = import_react43.default.useCallback(() => {
3559
4368
  const rect = containerRef.current?.getBoundingClientRect();
3560
4369
  if (rect) {
3561
4370
  setTriggerProps({
@@ -3569,11 +4378,11 @@ var Tooltip = ({
3569
4378
  showTooltip();
3570
4379
  }
3571
4380
  }, [showTooltip]);
3572
- const handleMouseLeave = import_react35.default.useCallback(
4381
+ const handleMouseLeave = import_react43.default.useCallback(
3573
4382
  () => hideTooltip(),
3574
4383
  [hideTooltip]
3575
4384
  );
3576
- import_react35.default.useEffect(() => {
4385
+ import_react43.default.useEffect(() => {
3577
4386
  mounted.current = true;
3578
4387
  setContentProps && setContentProps({
3579
4388
  top: Number(contentRect()?.top),
@@ -3587,7 +4396,7 @@ var Tooltip = ({
3587
4396
  mounted.current = false;
3588
4397
  };
3589
4398
  }, [visible]);
3590
- return /* @__PURE__ */ import_react35.default.createElement(
4399
+ return /* @__PURE__ */ import_react43.default.createElement(
3591
4400
  ContentBox,
3592
4401
  {
3593
4402
  ref: containerRef,
@@ -3597,7 +4406,7 @@ var Tooltip = ({
3597
4406
  ...restProps
3598
4407
  },
3599
4408
  children,
3600
- visible && /* @__PURE__ */ import_react35.default.createElement(
4409
+ visible && /* @__PURE__ */ import_react43.default.createElement(
3601
4410
  ContentWrapper2,
3602
4411
  {
3603
4412
  ref: contentRef,
@@ -3612,7 +4421,7 @@ var Tooltip = ({
3612
4421
  "data-side": hasEnoughHorizontalSpace ? "left" /* Left */ : "right" /* Right */,
3613
4422
  "data-align": hasEnoughHorizontalSpace ? "left" /* Left */ : "right" /* Right */
3614
4423
  },
3615
- /* @__PURE__ */ import_react35.default.createElement("div", null, content)
4424
+ /* @__PURE__ */ import_react43.default.createElement("div", null, content)
3616
4425
  )
3617
4426
  );
3618
4427
  };
@@ -3626,7 +4435,14 @@ Tooltip.displayName = "Tooltip";
3626
4435
  AvataStatusEnum,
3627
4436
  Avatar,
3628
4437
  Badge,
4438
+ Breadcrumb,
4439
+ BreadcrumbItem,
4440
+ BreadcrumbSeparator,
3629
4441
  Button,
4442
+ Card,
4443
+ CardBody,
4444
+ CardGrid,
4445
+ CardMeta,
3630
4446
  Checkbox,
3631
4447
  CheckboxIndicator,
3632
4448
  CheckboxRoot,
@@ -3634,6 +4450,7 @@ Tooltip.displayName = "Tooltip";
3634
4450
  CollapsibleContent,
3635
4451
  CollapsibleRoot,
3636
4452
  CollapsibleTrigger,
4453
+ CopyButton,
3637
4454
  Dialog,
3638
4455
  DialogControl,
3639
4456
  DialogMenu,
@@ -3663,10 +4480,14 @@ Tooltip.displayName = "Tooltip";
3663
4480
  PageTools,
3664
4481
  PageWrapper,
3665
4482
  Portal,
4483
+ PrivacyField,
4484
+ Resizable,
3666
4485
  ScrollArea,
3667
4486
  Sheet,
3668
4487
  SheetRoot,
3669
4488
  SheetTrigger,
4489
+ Skeleton,
4490
+ Spinner,
3670
4491
  Switch,
3671
4492
  SwitchRoot,
3672
4493
  SwitchThumb,
@@ -3681,6 +4502,7 @@ Tooltip.displayName = "Tooltip";
3681
4502
  TabsContent,
3682
4503
  TabsRoot,
3683
4504
  TabsTrigger,
4505
+ Textarea,
3684
4506
  Toggle,
3685
4507
  Toolbar,
3686
4508
  ToolbarItem,