@moduix/react 2.2.4 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +1 -1
  2. package/dist/components/accordion/Accordion_module.css +12 -1
  3. package/dist/components/alert/Alert.d.ts +1 -1
  4. package/dist/components/alert/Alert.js +1 -1
  5. package/dist/components/alert/Alert_module.css +22 -48
  6. package/dist/components/angle-slider/AngleSlider.d.ts +9 -3
  7. package/dist/components/angle-slider/AngleSlider.js +34 -10
  8. package/dist/components/angle-slider/AngleSlider_module.css +24 -5
  9. package/dist/components/aspect-ratio/AspectRatio.js +3 -3
  10. package/dist/components/aspect-ratio/AspectRatio_module.css +9 -2
  11. package/dist/components/avatar/Avatar.d.ts +2 -2
  12. package/dist/components/avatar/Avatar.js +39 -3
  13. package/dist/components/avatar/Avatar.module.js +2 -1
  14. package/dist/components/avatar/Avatar_module.css +8 -1
  15. package/dist/components/badge/Badge.d.ts +1 -0
  16. package/dist/components/badge/Badge.js +15 -5
  17. package/dist/components/badge/Badge_module.css +45 -30
  18. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +4 -6
  19. package/dist/components/breadcrumbs/Breadcrumbs.js +4 -3
  20. package/dist/components/breadcrumbs/Breadcrumbs_module.css +1 -1
  21. package/dist/components/button/Button.js +9 -1
  22. package/dist/components/button/Button_module.css +0 -7
  23. package/dist/components/card/Card.d.ts +1 -0
  24. package/dist/components/card/Card.js +11 -0
  25. package/dist/components/card/Card.module.js +1 -0
  26. package/dist/components/card/Card_module.css +79 -29
  27. package/dist/components/carousel/Carousel_module.css +27 -5
  28. package/dist/components/chart/Chart.d.ts +17 -0
  29. package/dist/components/chart/Chart.js +156 -0
  30. package/dist/components/chart/Chart.module.js +18 -0
  31. package/dist/components/chart/Chart_module.css +138 -0
  32. package/dist/components/chart/index.d.ts +1 -0
  33. package/dist/components/chart/index.js +1 -0
  34. package/dist/components/checkbox/Checkbox.js +9 -3
  35. package/dist/components/checkbox/Checkbox_module.css +11 -3
  36. package/dist/components/clipboard/Clipboard_module.css +13 -1
  37. package/dist/components/close-button/CloseButton.js +14 -3
  38. package/dist/components/collapsible/Collapsible_module.css +11 -0
  39. package/dist/components/color-picker/ColorPicker.js +16 -6
  40. package/dist/components/color-picker/ColorPicker.module.js +2 -0
  41. package/dist/components/color-picker/ColorPicker_module.css +84 -9
  42. package/dist/components/combobox/Combobox.d.ts +1 -1
  43. package/dist/components/combobox/Combobox.js +2 -1
  44. package/dist/components/combobox/Combobox_module.css +1 -1
  45. package/dist/components/command-palette/CommandPalette.js +10 -18
  46. package/dist/components/command-palette/CommandPalette.module.js +0 -1
  47. package/dist/components/command-palette/CommandPalette_module.css +5 -15
  48. package/dist/components/container/Container_module.css +11 -11
  49. package/dist/components/date-picker/DatePicker.js +15 -6
  50. package/dist/components/dialog/Dialog.d.ts +3 -6
  51. package/dist/components/dialog/Dialog.js +19 -15
  52. package/dist/components/dialog/Dialog_module.css +12 -1
  53. package/dist/components/drawer/Drawer.d.ts +3 -6
  54. package/dist/components/drawer/Drawer.js +19 -15
  55. package/dist/components/drawer/Drawer_module.css +17 -6
  56. package/dist/components/empty/Empty_module.css +2 -2
  57. package/dist/components/field/Field_module.css +4 -0
  58. package/dist/components/fieldset/Fieldset_module.css +3 -0
  59. package/dist/components/file-upload/FileUpload.js +1 -1
  60. package/dist/components/floating-panel/FloatingPanel.d.ts +1 -2
  61. package/dist/components/floating-panel/FloatingPanel.js +7 -5
  62. package/dist/components/heading/Heading.js +2 -2
  63. package/dist/components/highlight/Highlight.js +2 -2
  64. package/dist/components/hover-card/HoverCard.js +0 -2
  65. package/dist/components/hover-card/HoverCard_module.css +19 -8
  66. package/dist/components/image/Image.d.ts +6 -2
  67. package/dist/components/image/Image.js +2 -1
  68. package/dist/components/image-cropper/ImageCropper_module.css +0 -1
  69. package/dist/components/input/Input_module.css +2 -2
  70. package/dist/components/input-group/InputGroup.js +7 -7
  71. package/dist/components/kbd/Kbd.js +1 -0
  72. package/dist/components/lightbox/Lightbox.d.ts +5 -8
  73. package/dist/components/lightbox/Lightbox.js +20 -16
  74. package/dist/components/lightbox/Lightbox_module.css +7 -0
  75. package/dist/components/list/List_module.css +3 -4
  76. package/dist/components/listbox/Listbox.d.ts +3 -6
  77. package/dist/components/listbox/Listbox.js +15 -12
  78. package/dist/components/listbox/Listbox_module.css +2 -2
  79. package/dist/components/menu/Menu.d.ts +4 -8
  80. package/dist/components/menu/Menu.js +25 -20
  81. package/dist/components/menu/Menu_module.css +10 -0
  82. package/dist/components/native-select/NativeSelect_module.css +1 -1
  83. package/dist/components/pagination/Pagination.js +2 -2
  84. package/dist/components/pagination/Pagination_module.css +1 -1
  85. package/dist/components/password-input/PasswordInput_module.css +4 -4
  86. package/dist/components/popover/Popover.d.ts +4 -7
  87. package/dist/components/popover/Popover.js +24 -18
  88. package/dist/components/popover/Popover_module.css +18 -8
  89. package/dist/components/progress-circular/ProgressCircular_module.css +8 -1
  90. package/dist/components/progress-linear/ProgressLinear_module.css +1 -0
  91. package/dist/components/qr-code/QrCode_module.css +2 -3
  92. package/dist/components/radio-group/RadioGroup_module.css +1 -1
  93. package/dist/components/scroll-area/ScrollArea_module.css +15 -0
  94. package/dist/components/segment-group/SegmentGroup.module.js +1 -1
  95. package/dist/components/segment-group/SegmentGroup_module.css +4 -4
  96. package/dist/components/select/Select.d.ts +3 -6
  97. package/dist/components/select/Select.js +16 -12
  98. package/dist/components/select/Select_module.css +15 -1
  99. package/dist/components/separator/Separator.js +2 -2
  100. package/dist/components/separator/Separator_module.css +3 -3
  101. package/dist/components/sidebar/Sidebar.js +1 -1
  102. package/dist/components/sidebar/Sidebar_module.css +9 -8
  103. package/dist/components/signature-pad/SignaturePad.d.ts +3 -5
  104. package/dist/components/signature-pad/SignaturePad.js +44 -18
  105. package/dist/components/simple-grid/SimpleGrid.js +1 -0
  106. package/dist/components/slider/Slider_module.css +9 -5
  107. package/dist/components/split-button/SplitButton.d.ts +4 -0
  108. package/dist/components/split-button/SplitButton.js +4 -1
  109. package/dist/components/splitter/Splitter.js +3 -2
  110. package/dist/components/splitter/Splitter_module.css +21 -14
  111. package/dist/components/swap/Swap_module.css +22 -22
  112. package/dist/components/switch/Switch.js +9 -3
  113. package/dist/components/switch/Switch_module.css +30 -23
  114. package/dist/components/table/Table_module.css +15 -11
  115. package/dist/components/tabs/Tabs.js +5 -2
  116. package/dist/components/tag/Tag_module.css +17 -14
  117. package/dist/components/text/Text.js +1 -1
  118. package/dist/components/text/Text_module.css +2 -1
  119. package/dist/components/timer/Timer.d.ts +2 -4
  120. package/dist/components/timer/Timer.js +5 -4
  121. package/dist/components/toast/Toast_module.css +37 -43
  122. package/dist/components/toggle-group/ToggleGroup.d.ts +1 -2
  123. package/dist/components/toggle-group/ToggleGroup_module.css +10 -7
  124. package/dist/components/tooltip/Tooltip_module.css +11 -1
  125. package/dist/components/tour/Tour.d.ts +1 -1
  126. package/dist/components/tour/Tour.js +2 -1
  127. package/dist/components/tour/Tour_module.css +16 -4
  128. package/dist/components/tree-view/TreeView.d.ts +2 -2
  129. package/dist/components/tree-view/TreeView_module.css +1 -1
  130. package/dist/styles/reset.css +33 -0
  131. package/package.json +27 -15
@@ -4,14 +4,14 @@
4
4
  align-items: center;
5
5
  gap: var(--moduix-tag-gap, var(--moduix-spacing-1-5));
6
6
  border: var(--moduix-tag-border-width, var(--moduix-border-width-sm)) solid
7
- var(--moduix-tag-border-color, transparent);
7
+ var(--moduix-tag-border-color, var(--moduix-tag-default-border-color, transparent));
8
8
  border-radius: var(--moduix-tag-radius, var(--moduix-radius-full));
9
- background-color: var(--moduix-tag-bg, var(--moduix-color-primary));
9
+ background-color: var(--moduix-tag-bg, var(--moduix-tag-default-bg, var(--moduix-color-primary)));
10
10
  width: -moz-fit-content;
11
11
  width: fit-content;
12
12
  min-width: 0;
13
13
  max-width: 100%;
14
- color: var(--moduix-tag-color, var(--moduix-color-primary-foreground));
14
+ color: var(--moduix-tag-color, var(--moduix-tag-default-color, var(--moduix-color-primary-foreground)));
15
15
  font-size: var(--moduix-tag-font-size, var(--moduix-text-xs));
16
16
  font-weight: var(--moduix-tag-font-weight, var(--moduix-weight-medium));
17
17
  line-height: var(--moduix-tag-line-height, var(--moduix-line-height-text-xs));
@@ -41,24 +41,27 @@
41
41
  }
42
42
 
43
43
  .root-R1cDd9[data-variant="secondary"] {
44
- background-color: var(--moduix-tag-bg, var(--moduix-color-secondary));
45
- border-color: var(--moduix-tag-border-color, transparent);
46
- color: var(--moduix-tag-color, var(--moduix-color-secondary-foreground));
44
+ background-color: var(--moduix-tag-bg, var(--moduix-tag-secondary-bg, var(--moduix-color-secondary)));
45
+ border-color: var(--moduix-tag-border-color, var(--moduix-tag-secondary-border-color, transparent));
46
+ color: var(--moduix-tag-color, var(--moduix-tag-secondary-color, var(--moduix-color-secondary-foreground)));
47
47
  }
48
48
 
49
- .root-R1cDd9[data-variant="outline"], .root-R1cDd9[data-variant="ghost"] {
50
- background-color: var(--moduix-tag-bg, transparent);
51
- color: var(--moduix-tag-color, var(--moduix-color-foreground));
49
+ .root-R1cDd9[data-variant="outline"] {
50
+ background-color: var(--moduix-tag-bg, var(--moduix-tag-outline-bg, transparent));
51
+ border-color: var(--moduix-tag-border-color, var(--moduix-tag-outline-border-color, var(--moduix-color-border)));
52
+ color: var(--moduix-tag-color, var(--moduix-tag-outline-color, var(--moduix-color-foreground)));
52
53
  }
53
54
 
54
- .root-R1cDd9[data-variant="outline"] {
55
- border-color: var(--moduix-tag-border-color, var(--moduix-color-border));
55
+ .root-R1cDd9[data-variant="ghost"] {
56
+ background-color: var(--moduix-tag-bg, var(--moduix-tag-ghost-bg, transparent));
57
+ border-color: var(--moduix-tag-border-color, var(--moduix-tag-ghost-border-color, transparent));
58
+ color: var(--moduix-tag-color, var(--moduix-tag-ghost-color, var(--moduix-color-foreground)));
56
59
  }
57
60
 
58
61
  .root-R1cDd9[data-variant="destructive"] {
59
- background-color: var(--moduix-tag-bg, var(--moduix-color-destructive));
60
- border-color: var(--moduix-tag-border-color, transparent);
61
- color: var(--moduix-tag-color, var(--moduix-color-destructive-foreground));
62
+ background-color: var(--moduix-tag-bg, var(--moduix-tag-destructive-bg, var(--moduix-color-destructive)));
63
+ border-color: var(--moduix-tag-border-color, var(--moduix-tag-destructive-border-color, transparent));
64
+ color: var(--moduix-tag-color, var(--moduix-tag-destructive-color, var(--moduix-color-destructive-foreground)));
62
65
  }
63
66
 
64
67
  .label-kWF4Re {
@@ -19,7 +19,7 @@ const Text_TextRoot = /*#__PURE__*/ forwardRef(function({ as, asChild, size, wei
19
19
  const resolvedLineClamp = Number.isInteger(lineClamp) && (lineClamp ?? 0) > 0 ? lineClamp : void 0;
20
20
  const lineClampStyle = void 0 === resolvedLineClamp ? style : {
21
21
  ...style,
22
- '--moduix-text-line-clamp': resolvedLineClamp
22
+ '--_text-line-clamp': resolvedLineClamp
23
23
  };
24
24
  return /*#__PURE__*/ jsx(Element, {
25
25
  ref: ref,
@@ -90,8 +90,9 @@
90
90
  }
91
91
 
92
92
  .root-lOp5q5[data-line-clamp] {
93
+ --_text-line-clamp: initial;
93
94
  white-space: normal;
94
- -webkit-line-clamp: var(--moduix-text-line-clamp);
95
+ -webkit-line-clamp: var(--moduix-text-line-clamp, var(--_text-line-clamp));
95
96
  -webkit-box-orient: vertical;
96
97
  display: -webkit-box;
97
98
  overflow: hidden;
@@ -1,11 +1,9 @@
1
1
  import { Timer as TimerPrimitive, useTimer, useTimerContext } from '@ark-ui/react/timer';
2
2
  import type { ComponentProps, ReactNode } from 'react';
3
- type TimerSegmentsProps = {
4
- className?: string;
3
+ type TimerSegmentsProps = Omit<ComponentProps<typeof TimerPrimitive.Area>, 'asChild' | 'children'> & {
5
4
  separator?: ReactNode;
6
5
  types?: ComponentProps<typeof TimerPrimitive.Item>['type'][];
7
6
  };
8
- declare function TimerSegments({ className, separator, types, }: TimerSegmentsProps): import("react").JSX.Element;
9
7
  declare const Timer: import("react").ForwardRefExoticComponent<Omit<TimerPrimitive.RootProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>> & {
10
8
  Root: import("react").ForwardRefExoticComponent<Omit<TimerPrimitive.RootProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
11
9
  RootProvider: import("react").ForwardRefExoticComponent<Omit<TimerPrimitive.RootProviderBaseProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -15,6 +13,6 @@ declare const Timer: import("react").ForwardRefExoticComponent<Omit<TimerPrimiti
15
13
  Control: import("react").ForwardRefExoticComponent<Omit<TimerPrimitive.ControlProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
16
14
  ActionTrigger: import("react").ForwardRefExoticComponent<Omit<TimerPrimitive.ActionTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
17
15
  Context: (props: TimerPrimitive.ContextProps) => ReactNode;
18
- Segments: typeof TimerSegments;
16
+ Segments: import("react").ForwardRefExoticComponent<Omit<TimerSegmentsProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
19
17
  };
20
18
  export { Timer, type TimerSegmentsProps, useTimer, useTimerContext };
@@ -66,9 +66,10 @@ const defaultTimerSegmentTypes = [
66
66
  'minutes',
67
67
  'seconds'
68
68
  ];
69
- function TimerSegments({ className, separator = ':', types = defaultTimerSegmentTypes }) {
69
+ const Timer_TimerSegments = /*#__PURE__*/ forwardRef(function({ separator = ':', types = defaultTimerSegmentTypes, ...props }, ref) {
70
70
  return /*#__PURE__*/ jsx(Timer_TimerArea, {
71
- className: className,
71
+ ref: ref,
72
+ ...props,
72
73
  children: types.map((type, index)=>/*#__PURE__*/ jsxs(Fragment, {
73
74
  children: [
74
75
  /*#__PURE__*/ jsx(Timer_TimerItem, {
@@ -80,7 +81,7 @@ function TimerSegments({ className, separator = ':', types = defaultTimerSegment
80
81
  ]
81
82
  }, `${type}-${index}`))
82
83
  });
83
- }
84
+ });
84
85
  const Timer_Timer = Object.assign(Timer_TimerRoot, {
85
86
  Root: Timer_TimerRoot,
86
87
  RootProvider: Timer_TimerRootProvider,
@@ -90,6 +91,6 @@ const Timer_Timer = Object.assign(Timer_TimerRoot, {
90
91
  Control: Timer_TimerControl,
91
92
  ActionTrigger: Timer_TimerActionTrigger,
92
93
  Context: Timer.Context,
93
- Segments: TimerSegments
94
+ Segments: Timer_TimerSegments
94
95
  });
95
96
  export { Timer_Timer as Timer, useTimer, useTimerContext };
@@ -4,11 +4,14 @@
4
4
  }
5
5
 
6
6
  .root-p_jC2T {
7
- --moduix-toast-trigger-bg-default: transparent;
8
- --moduix-toast-trigger-bg-hover-default: var(--moduix-color-accent);
9
- --moduix-toast-trigger-border-color-default: var(--moduix-color-border);
10
- --moduix-toast-trigger-color-default: var(--moduix-color-foreground);
11
- --moduix-toast-trigger-focus-ring-color-default: var(--moduix-color-ring);
7
+ --_toast-trigger-bg-default: transparent;
8
+ --_toast-trigger-bg-hover-default: var(--moduix-color-accent);
9
+ --_toast-trigger-border-color-default: var(--moduix-color-border);
10
+ --_toast-trigger-color-default: var(--moduix-color-foreground);
11
+ --_toast-trigger-focus-ring-color-default: var(--moduix-color-ring);
12
+ --_toast-bg-default: var(--moduix-toast-info-bg, var(--moduix-color-card));
13
+ --_toast-border-color-default: var(--moduix-toast-info-border-color, var(--moduix-color-border));
14
+ --_toast-color-default: var(--moduix-toast-info-color, var(--moduix-color-card-foreground));
12
15
  box-sizing: border-box;
13
16
  width: var(--moduix-toast-width, 20rem);
14
17
  max-width: calc(100vw - (var(--moduix-toast-viewport-inset, var(--moduix-spacing-4)) * 2));
@@ -16,10 +19,11 @@
16
19
  align-items: start;
17
20
  gap: var(--moduix-toast-content-gap, var(--moduix-spacing-1));
18
21
  border: var(--moduix-toast-border-width, var(--moduix-border-width-sm)) solid
19
- var(--moduix-toast-border-color, var(--moduix-toast-border-color-default, var(--moduix-color-border)));
22
+ var(--moduix-toast-border-color, var(--_toast-border-color-default, var(--moduix-color-border)));
20
23
  border-radius: var(--moduix-toast-radius, var(--moduix-radius-lg));
21
- background-color: var(--moduix-toast-bg, var(--moduix-toast-bg-default, var(--moduix-color-popover)));
22
- color: var(--moduix-toast-color, var(--moduix-toast-color-default, var(--moduix-color-popover-foreground)));
24
+ background-color: var(--moduix-toast-bg, var(--_toast-bg-default, var(--moduix-color-popover)));
25
+ min-width: 0;
26
+ color: var(--moduix-toast-color, var(--_toast-color-default, var(--moduix-color-popover-foreground)));
23
27
  box-shadow: var(--moduix-toast-shadow, var(--moduix-shadow-lg));
24
28
  padding: var(--moduix-toast-padding, var(--moduix-spacing-4));
25
29
  pointer-events: auto;
@@ -49,53 +53,42 @@
49
53
  }
50
54
 
51
55
  .root-p_jC2T[data-type="success"] {
52
- --moduix-toast-bg-default: color-mix(in oklab,
53
- var(--moduix-color-success) 10%,
54
- var(--moduix-color-background));
55
- --moduix-toast-border-color-default: color-mix(in oklab,
56
- var(--moduix-color-success) 34%,
57
- transparent);
58
- --moduix-toast-color-default: var(--moduix-color-foreground);
59
- --moduix-toast-description-color-default: var(--moduix-color-muted-foreground);
56
+ --_toast-bg-default: var(--moduix-toast-success-bg, color-mix(in oklab, var(--moduix-color-success) 10%, var(--moduix-color-background)));
57
+ --_toast-border-color-default: var(--moduix-toast-success-border-color, color-mix(in oklab, var(--moduix-color-success) 34%, transparent));
58
+ --_toast-color-default: var(--moduix-toast-success-color, var(--moduix-color-foreground));
60
59
  }
61
60
 
62
61
  .root-p_jC2T[data-type="warning"] {
63
- --moduix-toast-bg-default: color-mix(in oklab,
64
- var(--moduix-color-warning) 13%,
65
- var(--moduix-color-background));
66
- --moduix-toast-border-color-default: color-mix(in oklab,
67
- var(--moduix-color-warning) 38%,
68
- transparent);
69
- --moduix-toast-color-default: var(--moduix-color-foreground);
70
- --moduix-toast-description-color-default: var(--moduix-color-muted-foreground);
62
+ --_toast-bg-default: var(--moduix-toast-warning-bg, color-mix(in oklab, var(--moduix-color-warning) 13%, var(--moduix-color-background)));
63
+ --_toast-border-color-default: var(--moduix-toast-warning-border-color, color-mix(in oklab, var(--moduix-color-warning) 38%, transparent));
64
+ --_toast-color-default: var(--moduix-toast-warning-color, var(--moduix-color-foreground));
71
65
  }
72
66
 
73
- .root-p_jC2T[data-type="destructive"], .root-p_jC2T[data-type="error"] {
74
- --moduix-toast-bg-default: color-mix(in oklab,
75
- var(--moduix-color-destructive) 9%,
76
- var(--moduix-color-background));
77
- --moduix-toast-border-color-default: color-mix(in oklab,
78
- var(--moduix-color-destructive) 35%,
79
- transparent);
80
- --moduix-toast-color-default: var(--moduix-color-foreground);
81
- --moduix-toast-description-color-default: var(--moduix-color-muted-foreground);
67
+ .root-p_jC2T[data-type="error"] {
68
+ --_toast-bg-default: var(--moduix-toast-error-bg, color-mix(in oklab, var(--moduix-color-destructive) 9%, var(--moduix-color-background)));
69
+ --_toast-border-color-default: var(--moduix-toast-error-border-color, color-mix(in oklab, var(--moduix-color-destructive) 35%, transparent));
70
+ --_toast-color-default: var(--moduix-toast-error-color, var(--moduix-color-foreground));
82
71
  }
83
72
 
84
73
  .title-MTy3zi {
85
74
  align-items: center;
86
75
  gap: var(--moduix-toast-title-gap, var(--moduix-spacing-2));
76
+ min-width: 0;
87
77
  color: inherit;
88
78
  font-size: var(--moduix-toast-title-font-size, var(--moduix-text-sm));
89
79
  font-weight: var(--moduix-toast-title-font-weight, var(--moduix-weight-semibold));
90
80
  line-height: var(--moduix-toast-title-line-height, var(--moduix-line-height-text-sm));
81
+ overflow-wrap: anywhere;
91
82
  margin: 0;
92
83
  display: flex;
93
84
  }
94
85
 
95
86
  .description-AIx4K_ {
96
- color: var(--moduix-toast-description-color, var(--moduix-toast-description-color-default, var(--moduix-color-muted-foreground)));
87
+ min-width: 0;
88
+ color: var(--moduix-toast-description-color, var(--moduix-color-muted-foreground));
97
89
  font-size: var(--moduix-toast-description-font-size, var(--moduix-text-sm));
98
90
  line-height: var(--moduix-toast-description-line-height, var(--moduix-line-height-text-sm));
91
+ overflow-wrap: anywhere;
99
92
  margin: 0;
100
93
  }
101
94
 
@@ -104,14 +97,14 @@
104
97
  align-items: center;
105
98
  gap: var(--moduix-toast-action-gap, var(--moduix-spacing-2));
106
99
  width: max-content;
100
+ min-width: 0;
101
+ max-width: 100%;
107
102
  min-height: var(--moduix-toast-action-min-height, var(--moduix-size-xs));
108
- margin-top: var(--moduix-toast-action-margin-top, var(--moduix-spacing-2));
109
103
  border: var(--moduix-toast-action-border-width, var(--moduix-toast-border-width, var(--moduix-border-width-sm)))
110
- solid
111
- var(--moduix-toast-action-border-color, var(--moduix-toast-trigger-border-color-default));
104
+ solid var(--moduix-toast-action-border-color, var(--_toast-trigger-border-color-default));
112
105
  border-radius: var(--moduix-toast-action-radius, var(--moduix-radius-sm));
113
- background: var(--moduix-toast-action-bg, var(--moduix-toast-trigger-bg-default));
114
- color: var(--moduix-toast-action-color, var(--moduix-toast-trigger-color-default));
106
+ background: var(--moduix-toast-action-bg, var(--_toast-trigger-bg-default));
107
+ color: var(--moduix-toast-action-color, var(--_toast-trigger-color-default));
115
108
  padding: var(--moduix-toast-action-padding-y, var(--moduix-spacing-1))
116
109
  var(--moduix-toast-action-padding-x, var(--moduix-spacing-2));
117
110
  font: inherit;
@@ -119,23 +112,24 @@
119
112
  font-weight: var(--moduix-toast-action-font-weight, var(--moduix-weight-medium));
120
113
  line-height: var(--moduix-toast-action-line-height, var(--moduix-line-height-text-xs));
121
114
  cursor: pointer;
115
+ text-align: start;
122
116
  -webkit-user-select: none;
123
117
  user-select: none;
124
- white-space: nowrap;
118
+ overflow-wrap: anywhere;
125
119
  transition: background var(--moduix-transition-fast),
126
120
  border-color var(--moduix-transition-fast),
127
121
  color var(--moduix-transition-fast);
122
+ margin-block-start: var(--moduix-toast-action-margin-top, var(--moduix-spacing-2));
128
123
  display: inline-flex;
129
124
  }
130
125
 
131
126
  .actionTrigger-ftU5e1:hover {
132
- background: var(--moduix-toast-action-bg-hover, var(--moduix-toast-trigger-bg-hover-default));
127
+ background: var(--moduix-toast-action-bg-hover, var(--_toast-trigger-bg-hover-default));
133
128
  }
134
129
 
135
130
  .actionTrigger-ftU5e1:focus-visible {
136
131
  outline: var(--moduix-toast-focus-ring-width, var(--moduix-toast-action-border-width, var(--moduix-focus-ring-inset-width, var(--moduix-border-width-sm))))
137
- solid
138
- var(--moduix-toast-focus-ring-color, var(--moduix-toast-trigger-focus-ring-color-default));
132
+ solid var(--moduix-toast-focus-ring-color, var(--_toast-trigger-focus-ring-color-default));
139
133
  outline-offset: var(--moduix-toast-focus-ring-offset, 0);
140
134
  }
141
135
 
@@ -1,7 +1,6 @@
1
1
  import { ToggleGroup as ToggleGroupPrimitive, useToggleGroup, useToggleGroupContext } from '@ark-ui/react/toggle-group';
2
2
  import type { ComponentProps } from 'react';
3
- type ToggleVariant = 'default' | 'outline' | 'ghost';
4
- type ToggleSize = 'xs' | 'sm' | 'md' | 'lg' | 'icon-sm' | 'icon-md' | 'icon-lg';
3
+ import type { ToggleSize, ToggleVariant } from '../toggle/Toggle';
5
4
  type ToggleGroupRootProps = ComponentProps<typeof ToggleGroupPrimitive.Root> & {
6
5
  variant?: ToggleVariant;
7
6
  size?: ToggleSize;
@@ -2,6 +2,8 @@
2
2
  .root-HI0WAX {
3
3
  box-sizing: border-box;
4
4
  overscroll-behavior-inline: contain;
5
+ scrollbar-width: none;
6
+ --moduix-toggle-color: var(--moduix-toggle-group-color, var(--moduix-color-foreground));
5
7
  align-items: center;
6
8
  gap: var(--moduix-toggle-group-gap, var(--moduix-border-width-sm));
7
9
  max-inline-size: 100%;
@@ -15,6 +17,10 @@
15
17
  overflow-x: auto;
16
18
  }
17
19
 
20
+ .root-HI0WAX::-webkit-scrollbar {
21
+ display: none;
22
+ }
23
+
18
24
  .root-HI0WAX[data-orientation="vertical"] {
19
25
  flex-direction: column;
20
26
  align-items: stretch;
@@ -26,20 +32,17 @@
26
32
  }
27
33
 
28
34
  .root-HI0WAX[data-variant="ghost"] {
29
- --moduix-toggle-group-bg: var(--moduix-toggle-group-ghost-bg, transparent);
30
- --moduix-toggle-group-border-color: var(--moduix-toggle-group-ghost-border-color, transparent);
31
- --moduix-toggle-group-padding: var(--moduix-toggle-group-ghost-padding, 0);
35
+ padding: var(--moduix-toggle-group-padding, var(--moduix-toggle-group-ghost-padding, 0));
36
+ border-color: var(--moduix-toggle-group-border-color, var(--moduix-toggle-group-ghost-border-color, transparent));
37
+ background-color: var(--moduix-toggle-group-bg, var(--moduix-toggle-group-ghost-bg, transparent));
32
38
  }
33
39
 
34
40
  .root-HI0WAX[data-variant="outline"] {
35
- --moduix-toggle-group-bg: var(--moduix-toggle-group-outline-bg, var(--moduix-color-background));
41
+ background-color: var(--moduix-toggle-group-bg, var(--moduix-toggle-group-outline-bg, var(--moduix-color-background)));
36
42
  }
37
43
 
38
44
  .item-RRrFoz {
39
45
  border-radius: var(--moduix-toggle-group-item-radius, var(--moduix-radius-md));
40
- --moduix-toggle-default-color: var(--moduix-toggle-group-color, var(--moduix-color-foreground));
41
- --moduix-toggle-ghost-color: var(--moduix-toggle-group-color, var(--moduix-color-foreground));
42
- --moduix-toggle-outline-color: var(--moduix-toggle-group-color, var(--moduix-color-foreground));
43
46
  flex: none;
44
47
  }
45
48
  }
@@ -84,7 +84,7 @@
84
84
  overflow-wrap: anywhere;
85
85
  transform-origin: var(--transform-origin);
86
86
  position: relative;
87
- overflow: auto;
87
+ overflow: visible;
88
88
  }
89
89
 
90
90
  .content-Ca8mTU[data-state="open"] {
@@ -115,6 +115,16 @@
115
115
  var(--moduix-tooltip-arrow-stroke-color, var(--moduix-tooltip-border-color, var(--moduix-color-border)));
116
116
  }
117
117
 
118
+ @media (prefers-reduced-motion: reduce) {
119
+ .trigger-Q4UfW0 {
120
+ transition: none;
121
+ }
122
+
123
+ .content-Ca8mTU[data-state] {
124
+ animation: none;
125
+ }
126
+ }
127
+
118
128
  @keyframes tooltip-content-in-QxxE9U {
119
129
  from {
120
130
  opacity: var(--moduix-tooltip-popup-starting-opacity, var(--moduix-popup-motion-starting-opacity, 0));
@@ -18,7 +18,7 @@ declare const Tour: typeof TourRoot & {
18
18
  Title: import("react").ForwardRefExoticComponent<Omit<TourPrimitive.TitleProps & import("react").RefAttributes<HTMLHeadingElement>, "ref"> & import("react").RefAttributes<HTMLHeadingElement>>;
19
19
  Description: import("react").ForwardRefExoticComponent<Omit<TourPrimitive.DescriptionProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
20
20
  ProgressText: import("react").ForwardRefExoticComponent<Omit<TourPrimitive.ProgressTextProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
21
- Body: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
21
+ Body: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLDivElement>>;
22
22
  CloseTrigger: import("react").ForwardRefExoticComponent<Omit<TourPrimitive.CloseTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
23
23
  CloseIcon: import("react").ForwardRefExoticComponent<Omit<Omit<TourPrimitive.CloseTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "asChild">, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
24
24
  Control: import("react").ForwardRefExoticComponent<Omit<TourPrimitive.ControlProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
+ import { ark } from "@ark-ui/react/factory";
3
4
  import { Tour, useTour, useTourContext, waitForElement, waitForElementValue, waitForEvent, waitForPromise } from "@ark-ui/react/tour";
4
5
  import { clsx } from "clsx";
5
6
  import { forwardRef } from "react";
@@ -99,7 +100,7 @@ const Tour_TourProgressText = /*#__PURE__*/ forwardRef(function({ className, ...
99
100
  });
100
101
  });
101
102
  const Tour_TourBody = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
102
- return /*#__PURE__*/ jsx("div", {
103
+ return /*#__PURE__*/ jsx(ark.div, {
103
104
  ref: ref,
104
105
  "data-slot": "tour-body",
105
106
  className: clsx(Tour_module.body, normalizeClassName(className)),
@@ -23,9 +23,10 @@
23
23
  }
24
24
 
25
25
  .positioner-Zk89xT {
26
- --moduix-tour-positioner-z-index: calc(var(--moduix-tour-z-index, var(--moduix-z-modal)) + var(--tour-layer, 0) +
26
+ --tour-z-index: var(--moduix-tour-z-index, var(--moduix-z-modal));
27
+ --_tour-positioner-z-index: calc(var(--moduix-tour-z-index, var(--moduix-z-modal)) + var(--tour-layer, 0) +
27
28
  var(--layer-index, 0));
28
- z-index: var(--z-index, var(--moduix-tour-positioner-z-index));
29
+ z-index: var(--z-index, var(--_tour-positioner-z-index));
29
30
  max-width: var(--available-width);
30
31
  max-height: var(--available-height);
31
32
  outline: 0;
@@ -192,11 +193,11 @@
192
193
  }
193
194
 
194
195
  .progressText-Jm6Fx2 {
195
- margin-top: var(--moduix-tour-progress-text-margin-top, var(--moduix-spacing-2));
196
196
  color: var(--moduix-tour-progress-text-color, var(--moduix-color-muted-foreground));
197
197
  font-size: var(--moduix-tour-progress-text-font-size, var(--moduix-text-xs));
198
198
  line-height: var(--moduix-tour-progress-text-line-height, var(--moduix-line-height-text-xs));
199
199
  order: 1;
200
+ margin-block-start: var(--moduix-tour-progress-text-margin-top, var(--moduix-spacing-2));
200
201
  }
201
202
 
202
203
  .body-w5DEFg {
@@ -263,9 +264,9 @@
263
264
  .control-pLhhBF {
264
265
  justify-content: flex-end;
265
266
  gap: var(--moduix-tour-control-gap, var(--moduix-spacing-2));
266
- margin-top: var(--moduix-tour-control-margin-top, var(--moduix-spacing-3));
267
267
  flex-wrap: wrap;
268
268
  order: 2;
269
+ margin-block-start: var(--moduix-tour-control-margin-top, var(--moduix-spacing-3));
269
270
  display: flex;
270
271
  }
271
272
 
@@ -324,6 +325,17 @@
324
325
  opacity: var(--moduix-tour-disabled-opacity, var(--moduix-opacity-disabled));
325
326
  }
326
327
 
328
+ @media (prefers-reduced-motion: reduce) {
329
+ .backdrop-okc1Ik[data-state], .content-ZY9BS9[data-state] {
330
+ animation-duration: 1ms;
331
+ animation-delay: 0s;
332
+ }
333
+
334
+ .actionTrigger-LsjeVS {
335
+ transition: none;
336
+ }
337
+ }
338
+
327
339
  @keyframes tour-backdrop-in-rR_UM_ {
328
340
  from {
329
341
  opacity: var(--moduix-tour-backdrop-starting-opacity, 0);
@@ -1,4 +1,4 @@
1
- import { TreeView as TreeViewPrimitive, createFileTreeCollection, createTreeCollection, type TreeNode, type TreeViewLoadChildrenDetails, type TreeViewNodeProps as TreeViewPrimitiveNodeProps, type TreeViewNodeProviderProps, type TreeViewNodeState, useTreeView, useTreeViewContext, useTreeViewNodeContext } from '@ark-ui/react/tree-view';
1
+ import { TreeView as TreeViewPrimitive, createFileTreeCollection, createTreeCollection, type TreeNode, type TreeViewLoadChildrenDetails, type TreeViewNodeProviderProps, type TreeViewNodeState, useTreeView, useTreeViewContext, useTreeViewNodeContext } from '@ark-ui/react/tree-view';
2
2
  import type { ComponentProps, ReactNode } from 'react';
3
3
  declare function TreeViewNodeCheckboxIndicator({ className, children, indeterminate, ...props }: ComponentProps<typeof TreeViewPrimitive.NodeCheckboxIndicator>): import("react").JSX.Element;
4
4
  type TreeViewNodeRenderProps<T extends TreeNode> = {
@@ -35,4 +35,4 @@ declare const TreeView: TreeViewPrimitive.RootComponent & {
35
35
  NodeCheckboxIndicator: typeof TreeViewNodeCheckboxIndicator;
36
36
  NodeRenameInput: import("react").ForwardRefExoticComponent<Omit<TreeViewPrimitive.NodeRenameInputProps & import("react").RefAttributes<HTMLInputElement>, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
37
37
  };
38
- export { TreeView, createFileTreeCollection, createTreeCollection, useTreeView, useTreeViewContext, useTreeViewNodeContext, type TreeViewLoadChildrenDetails, type TreeViewNodeRenderProps, type TreeViewNodeState, type TreeViewPrimitiveNodeProps as TreeViewNodeProps, type TreeViewNodeProviderProps, };
38
+ export { TreeView, createFileTreeCollection, createTreeCollection, useTreeView, useTreeViewContext, useTreeViewNodeContext, type TreeViewLoadChildrenDetails, type TreeViewNodeProps, type TreeViewNodeRenderProps, type TreeViewNodeState, type TreeViewNodeProviderProps, };
@@ -74,7 +74,7 @@
74
74
  display: flex;
75
75
  }
76
76
 
77
- :is(.branchControl-ositpp, .item-D7JZg4):hover {
77
+ :is(.branchControl-ositpp, .item-D7JZg4):not([data-disabled]):hover {
78
78
  background-color: var(--moduix-tree-view-item-hover-bg, var(--moduix-color-accent));
79
79
  color: var(--moduix-tree-view-item-hover-color, var(--moduix-color-accent-foreground));
80
80
  }
@@ -1,3 +1,36 @@
1
+ /*!
2
+ * moduix reset.css
3
+ *
4
+ * Portions of this file are derived from:
5
+ * - @unocss/reset tailwind-v4.css
6
+ * Copyright (c) 2021-PRESENT Anthony Fu <https://github.com/antfu>
7
+ * https://github.com/unocss/unocss/blob/main/packages-presets/reset/tailwind-v4.css
8
+ * - Tailwind CSS Preflight
9
+ * Copyright (c) Tailwind Labs, Inc.
10
+ * https://github.com/tailwindlabs/tailwindcss/blob/main/packages/tailwindcss/preflight.css
11
+ *
12
+ * Modifications Copyright (c) 2026 Blinks44
13
+ *
14
+ * MIT License
15
+ *
16
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
17
+ * of this software and associated documentation files (the "Software"), to deal
18
+ * in the Software without restriction, including without limitation the rights
19
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
20
+ * copies of the Software, and to permit persons to whom the Software is
21
+ * furnished to do so, subject to the following conditions:
22
+ *
23
+ * The above copyright notice and this permission notice shall be included in all
24
+ * copies or substantial portions of the Software.
25
+ *
26
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
27
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
28
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
29
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
30
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
31
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32
+ * SOFTWARE.
33
+ */
1
34
  @layer moduix.reset {
2
35
  *, :after, :before {
3
36
  box-sizing: border-box;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moduix/react",
3
- "version": "2.2.4",
3
+ "version": "2.3.0",
4
4
  "description": "React implementation of the moduix component system, built on Ark UI primitives.",
5
5
  "keywords": [
6
6
  "accessible",
@@ -91,6 +91,10 @@
91
91
  "types": "./dist/components/carousel/index.d.ts",
92
92
  "import": "./dist/components/carousel/index.js"
93
93
  },
94
+ "./chart": {
95
+ "types": "./dist/components/chart/index.d.ts",
96
+ "import": "./dist/components/chart/index.js"
97
+ },
94
98
  "./checkbox": {
95
99
  "types": "./dist/components/checkbox/index.d.ts",
96
100
  "import": "./dist/components/checkbox/index.js"
@@ -393,15 +397,6 @@
393
397
  "publishConfig": {
394
398
  "access": "public"
395
399
  },
396
- "scripts": {
397
- "build": "rslib",
398
- "build:storybook": "storybook build",
399
- "dev": "rslib --watch --no-clean",
400
- "storybook": "storybook dev -p 6006 --no-open",
401
- "test": "rstest run",
402
- "test:watch": "rstest --watch",
403
- "tsc:check": "tsc --noEmit"
404
- },
405
400
  "dependencies": {
406
401
  "@unpic/core": "^1.0.3",
407
402
  "@unpic/react": "^1.0.2",
@@ -414,27 +409,44 @@
414
409
  "@rsbuild/core": "~2.1.4",
415
410
  "@rsbuild/plugin-react": "^2.1.0",
416
411
  "@rslib/core": "^0.23.2",
417
- "@rstest/adapter-rslib": "^0.10.6",
418
- "@rstest/core": "^0.10.6",
419
- "@storybook/addon-docs": "10.5.3",
420
- "@storybook/react": "10.5.3",
412
+ "@rstest/adapter-rslib": "^0.11.6",
413
+ "@rstest/core": "^0.11.6",
414
+ "@storybook/addon-docs": "^10.5.3",
415
+ "@storybook/react": "^10.5.3",
416
+ "@tanstack/charts": "^0.14.0",
421
417
  "@testing-library/dom": "^10.4.1",
422
418
  "@testing-library/jest-dom": "^6.9.1",
423
419
  "@testing-library/react": "^16.3.2",
420
+ "@testing-library/user-event": "^14.6.1",
424
421
  "@types/node": "^24.13.2",
425
422
  "@types/react": "^19.2.17",
426
423
  "@types/react-dom": "^19.2.3",
427
424
  "happy-dom": "^20.10.6",
428
425
  "react": "^19.2.7",
429
426
  "react-dom": "^19.2.7",
430
- "storybook": "10.5.3",
427
+ "storybook": "^10.5.3",
431
428
  "storybook-addon-rslib": "^3.3.4",
432
429
  "storybook-react-rsbuild": "^3.3.4",
433
430
  "typescript": "~6.0.3"
434
431
  },
435
432
  "peerDependencies": {
436
433
  "@ark-ui/react": "^5.37.2",
434
+ "@tanstack/charts": "^0.14.0",
437
435
  "react": "^18 || ^19",
438
436
  "react-dom": "^18 || ^19"
437
+ },
438
+ "peerDependenciesMeta": {
439
+ "@tanstack/charts": {
440
+ "optional": true
441
+ }
442
+ },
443
+ "scripts": {
444
+ "build": "rslib",
445
+ "build:storybook": "storybook build",
446
+ "dev": "rslib --watch --no-clean",
447
+ "storybook": "storybook dev -p 6006 --no-open",
448
+ "test": "rstest run",
449
+ "test:watch": "rstest --watch",
450
+ "tsc:check": "tsc --noEmit"
439
451
  }
440
452
  }