@infonomic/uikit 5.44.0 → 6.0.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 (180) hide show
  1. package/README.md +1 -1
  2. package/dist/components/accordion/accordion.d.ts +9 -9
  3. package/dist/components/accordion/accordion.d.ts.map +1 -1
  4. package/dist/components/accordion/accordion.js +4 -4
  5. package/dist/components/accordion/accordion.module.css +6 -5
  6. package/dist/components/accordion/accordion_module.css +4 -4
  7. package/dist/components/avatar/avatar.js +2 -2
  8. package/dist/components/badge/badge.d.ts +5 -13
  9. package/dist/components/badge/badge.d.ts.map +1 -1
  10. package/dist/components/badge/badge.js +12 -9
  11. package/dist/components/button/button-group.d.ts +9 -7
  12. package/dist/components/button/button-group.d.ts.map +1 -1
  13. package/dist/components/button/button-group.js +26 -36
  14. package/dist/components/button/button.d.ts +6 -13
  15. package/dist/components/button/button.d.ts.map +1 -1
  16. package/dist/components/button/button.js +19 -18
  17. package/dist/components/button/button.module.css +32 -54
  18. package/dist/components/button/button_module.css +7 -10
  19. package/dist/components/button/combo-button.d.ts +1 -1
  20. package/dist/components/button/combo-button.d.ts.map +1 -1
  21. package/dist/components/button/combo-button.js +13 -9
  22. package/dist/components/button/combo-button.module.css +16 -7
  23. package/dist/components/button/combo-button_module.css +22 -4
  24. package/dist/components/button/icon-button.d.ts +2 -3
  25. package/dist/components/button/icon-button.d.ts.map +1 -1
  26. package/dist/components/card/card.d.ts +5 -12
  27. package/dist/components/card/card.d.ts.map +1 -1
  28. package/dist/components/card/card.js +13 -9
  29. package/dist/components/chips/chip.d.ts +5 -11
  30. package/dist/components/chips/chip.d.ts.map +1 -1
  31. package/dist/components/chips/chip.js +36 -28
  32. package/dist/components/chips/chip.module.css +22 -36
  33. package/dist/components/chips/chip_module.css +3 -6
  34. package/dist/components/dropdown/dropdown.d.ts +28 -14
  35. package/dist/components/dropdown/dropdown.d.ts.map +1 -1
  36. package/dist/components/dropdown/dropdown.js +34 -20
  37. package/dist/components/forms/calendar.d.ts +1 -1
  38. package/dist/components/forms/calendar.d.ts.map +1 -1
  39. package/dist/components/forms/calendar.js +38 -29
  40. package/dist/components/forms/checkbox.astro +13 -8
  41. package/dist/components/forms/checkbox.d.ts +6 -2
  42. package/dist/components/forms/checkbox.d.ts.map +1 -1
  43. package/dist/components/forms/checkbox.js +11 -7
  44. package/dist/components/forms/checkbox.module.css +20 -20
  45. package/dist/components/forms/checkbox_module.css +13 -10
  46. package/dist/components/forms/input.module.css +10 -11
  47. package/dist/components/forms/input_module.css +3 -5
  48. package/dist/components/forms/radio-group.d.ts +6 -5
  49. package/dist/components/forms/radio-group.d.ts.map +1 -1
  50. package/dist/components/forms/radio-group.js +9 -4
  51. package/dist/components/forms/radio-group.module.css +13 -22
  52. package/dist/components/forms/radio-group_module.css +6 -24
  53. package/dist/components/forms/select.d.ts +4 -5
  54. package/dist/components/forms/select.d.ts.map +1 -1
  55. package/dist/components/forms/select.js +27 -29
  56. package/dist/components/forms/select.module.css +22 -22
  57. package/dist/components/forms/select.module.js +15 -15
  58. package/dist/components/forms/select_module.css +15 -15
  59. package/dist/components/notifications/@types/toast.d.ts +9 -7
  60. package/dist/components/notifications/@types/toast.d.ts.map +1 -1
  61. package/dist/components/notifications/toast.d.ts +12 -16
  62. package/dist/components/notifications/toast.d.ts.map +1 -1
  63. package/dist/components/notifications/toast.js +73 -57
  64. package/dist/components/notifications/toast.module.css +151 -177
  65. package/dist/components/notifications/toast.module.js +8 -12
  66. package/dist/components/notifications/toast_module.css +114 -159
  67. package/dist/components/pager/first-button.d.ts +2 -2
  68. package/dist/components/pager/first-button.d.ts.map +1 -1
  69. package/dist/components/pager/first-button.js +23 -16
  70. package/dist/components/pager/last-button.d.ts +2 -2
  71. package/dist/components/pager/last-button.d.ts.map +1 -1
  72. package/dist/components/pager/last-button.js +23 -16
  73. package/dist/components/pager/next-button.d.ts +2 -2
  74. package/dist/components/pager/next-button.d.ts.map +1 -1
  75. package/dist/components/pager/next-button.js +27 -20
  76. package/dist/components/pager/number-button.d.ts +2 -2
  77. package/dist/components/pager/number-button.d.ts.map +1 -1
  78. package/dist/components/pager/number-button.js +28 -23
  79. package/dist/components/pager/pagination.d.ts +8 -13
  80. package/dist/components/pager/pagination.d.ts.map +1 -1
  81. package/dist/components/pager/previous-button.d.ts +2 -2
  82. package/dist/components/pager/previous-button.d.ts.map +1 -1
  83. package/dist/components/pager/previous-button.js +25 -18
  84. package/dist/components/scroll-area/scroll-area.d.ts +2 -2
  85. package/dist/components/scroll-area/scroll-area.d.ts.map +1 -1
  86. package/dist/components/scroll-area/scroll-area.js +4 -2
  87. package/dist/components/tabs/tabs.d.ts +13 -13
  88. package/dist/components/tabs/tabs.d.ts.map +1 -1
  89. package/dist/components/tabs/tabs.js +8 -8
  90. package/dist/components/tabs/tabs.module.css +8 -17
  91. package/dist/components/tabs/tabs_module.css +1 -1
  92. package/dist/components/tooltip/tooltip.d.ts +6 -8
  93. package/dist/components/tooltip/tooltip.d.ts.map +1 -1
  94. package/dist/components/tooltip/tooltip.js +49 -20
  95. package/dist/components/tooltip/tooltip.module.css +43 -10
  96. package/dist/components/tooltip/tooltip.module.js +7 -1
  97. package/dist/components/tooltip/tooltip_module.css +36 -4
  98. package/dist/hooks/use-focus-trap/index.d.ts +2 -0
  99. package/dist/hooks/use-focus-trap/index.d.ts.map +1 -0
  100. package/dist/hooks/use-focus-trap/index.js +1 -0
  101. package/dist/hooks/use-focus-trap/scope-tab.d.ts +11 -0
  102. package/dist/hooks/use-focus-trap/scope-tab.d.ts.map +1 -0
  103. package/dist/hooks/use-focus-trap/scope-tab.js +19 -0
  104. package/dist/hooks/use-focus-trap/tabbable.d.ts +14 -0
  105. package/dist/hooks/use-focus-trap/tabbable.d.ts.map +1 -0
  106. package/dist/hooks/use-focus-trap/tabbable.js +36 -0
  107. package/dist/hooks/use-focus-trap/use-focus-trap.d.ts +11 -0
  108. package/dist/hooks/use-focus-trap/use-focus-trap.d.ts.map +1 -0
  109. package/dist/hooks/use-focus-trap/use-focus-trap.js +45 -0
  110. package/dist/icons/chevron-up-icon.d.ts +7 -0
  111. package/dist/icons/chevron-up-icon.d.ts.map +1 -0
  112. package/dist/icons/chevron-up-icon.js +27 -0
  113. package/dist/lib/ripple.d.ts +25 -0
  114. package/dist/lib/ripple.d.ts.map +1 -0
  115. package/dist/lib/ripple.js +53 -0
  116. package/dist/styles/components-vanilla.css +1 -1
  117. package/dist/widgets/datepicker/datepicker.d.ts +1 -1
  118. package/dist/widgets/datepicker/datepicker.d.ts.map +1 -1
  119. package/dist/widgets/datepicker/datepicker.js +118 -116
  120. package/dist/widgets/datepicker/datepicker.module.css +6 -5
  121. package/dist/widgets/datepicker/datepicker_module.css +4 -4
  122. package/dist/widgets/drawer/drawer-wrapper.d.ts.map +1 -1
  123. package/dist/widgets/drawer/drawer-wrapper.js +1 -1
  124. package/dist/widgets/modal/modal-wrapper.d.ts.map +1 -1
  125. package/dist/widgets/modal/modal-wrapper.js +1 -1
  126. package/package.json +2 -6
  127. package/src/components/accordion/accordion.module.css +6 -5
  128. package/src/components/accordion/accordion.stories.tsx +10 -13
  129. package/src/components/accordion/accordion.tsx +13 -13
  130. package/src/components/avatar/avatar.tsx +2 -2
  131. package/src/components/badge/badge.tsx +20 -29
  132. package/src/components/button/button-group.tsx +60 -44
  133. package/src/components/button/button.module.css +32 -54
  134. package/src/components/button/button.tsx +35 -47
  135. package/src/components/button/combo-button.module.css +16 -7
  136. package/src/components/button/combo-button.tsx +17 -9
  137. package/src/components/button/icon-button.tsx +3 -5
  138. package/src/components/card/card.tsx +20 -32
  139. package/src/components/chips/chip.module.css +22 -36
  140. package/src/components/chips/chip.stories.tsx +2 -2
  141. package/src/components/chips/chip.tsx +59 -57
  142. package/src/components/dropdown/dropdown.stories.tsx +2 -4
  143. package/src/components/dropdown/dropdown.tsx +86 -40
  144. package/src/components/forms/calendar.tsx +43 -33
  145. package/src/components/forms/checkbox-group.tsx +1 -1
  146. package/src/components/forms/checkbox.astro +13 -8
  147. package/src/components/forms/checkbox.module.css +20 -20
  148. package/src/components/forms/checkbox.tsx +11 -6
  149. package/src/components/forms/input.module.css +10 -11
  150. package/src/components/forms/radio-group.module.css +13 -22
  151. package/src/components/forms/radio-group.tsx +13 -11
  152. package/src/components/forms/select.module.css +22 -22
  153. package/src/components/forms/select.tsx +36 -33
  154. package/src/components/notifications/@types/toast.ts +9 -7
  155. package/src/components/notifications/toast.module.css +151 -177
  156. package/src/components/notifications/toast.stories.tsx +21 -23
  157. package/src/components/notifications/toast.tsx +90 -86
  158. package/src/components/pager/first-button.tsx +24 -26
  159. package/src/components/pager/last-button.tsx +24 -25
  160. package/src/components/pager/next-button.tsx +24 -23
  161. package/src/components/pager/number-button.tsx +37 -36
  162. package/src/components/pager/pagination.tsx +4 -11
  163. package/src/components/pager/previous-button.tsx +24 -24
  164. package/src/components/scroll-area/scroll-area.tsx +3 -3
  165. package/src/components/tabs/tabs.module.css +8 -17
  166. package/src/components/tabs/tabs.stories.tsx +5 -5
  167. package/src/components/tabs/tabs.tsx +17 -16
  168. package/src/components/tooltip/tooltip.module.css +43 -10
  169. package/src/components/tooltip/tooltip.stories.tsx +4 -4
  170. package/src/components/tooltip/tooltip.tsx +56 -28
  171. package/src/hooks/use-focus-trap/index.ts +1 -0
  172. package/src/hooks/use-focus-trap/scope-tab.ts +48 -0
  173. package/src/hooks/use-focus-trap/tabbable.ts +72 -0
  174. package/src/hooks/use-focus-trap/use-focus-trap.ts +83 -0
  175. package/src/icons/chevron-up-icon.tsx +37 -0
  176. package/src/lib/ripple.ts +95 -0
  177. package/src/widgets/datepicker/datepicker.module.css +6 -5
  178. package/src/widgets/datepicker/datepicker.tsx +137 -135
  179. package/src/widgets/drawer/drawer-wrapper.tsx +1 -1
  180. package/src/widgets/modal/modal-wrapper.tsx +1 -1
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useEffect, useRef, useState } from "react";
4
+ import { Popover } from "@base-ui/react/popover";
4
5
  import classnames from "classnames";
5
6
  import { format } from "date-fns";
6
- import { Popover } from "radix-ui";
7
7
  import { Button } from "../../components/button/button.js";
8
8
  import { IconButton } from "../../components/button/icon-button.js";
9
9
  import { Calendar } from "../../components/forms/calendar.js";
@@ -119,137 +119,139 @@ function DatePicker({ id, name, label, required, initialValue, mode = 'datetime'
119
119
  onOpenChange: setIsOpen,
120
120
  children: [
121
121
  /*#__PURE__*/ jsx(Popover.Trigger, {
122
- asChild: true,
123
- children: /*#__PURE__*/ jsx("div", {
122
+ nativeButton: false,
123
+ render: /*#__PURE__*/ jsx("div", {
124
124
  style: {
125
125
  position: 'relative',
126
126
  height: '1px'
127
- },
128
- children: /*#__PURE__*/ jsx("span", {
129
- className: "sr-only",
130
- children: "Select date"
131
- })
127
+ }
128
+ }),
129
+ children: /*#__PURE__*/ jsx("span", {
130
+ className: "sr-only",
131
+ children: "Select date"
132
132
  })
133
133
  }),
134
134
  /*#__PURE__*/ jsx(Popover.Portal, {
135
- children: /*#__PURE__*/ jsxs(Popover.Content, {
135
+ children: /*#__PURE__*/ jsx(Popover.Positioner, {
136
136
  sideOffset: 5,
137
- className: classnames('infonomic-datepicker-content', datepicker_module.content, contentClassName),
138
- children: [
139
- /*#__PURE__*/ jsxs("div", {
140
- className: classnames('infonomic-datepicker-content-components', datepicker_module["content-components"]),
141
- children: [
142
- /*#__PURE__*/ jsx("div", {
143
- ref: calendarRef,
144
- children: /*#__PURE__*/ jsx(Calendar, {
145
- mode: "single",
146
- required: true,
147
- captionLayout: "dropdown",
148
- selected: date ?? void 0,
149
- month: month ?? void 0,
150
- onMonthChange: setMonth,
151
- onSelect: (selectedDate)=>{
152
- if (selectedDate) {
153
- const [hours, minutes] = time.split(':');
154
- selectedDate.setHours(Number.parseInt(hours, 10), Number.parseInt(minutes, 10));
155
- setDate(selectedDate);
156
- setMonth(selectedDate);
157
- handleOnDateChange(selectedDate);
158
- }
159
- },
160
- startMonth: new Date(new Date().getFullYear() - yearsInPast, 0),
161
- endMonth: new Date(new Date().getFullYear() + yearsInFuture, 0)
162
- })
163
- }),
164
- 'datetime' === mode && /*#__PURE__*/ jsx("div", {
165
- className: datepicker_module["time-picker-container"],
166
- children: /*#__PURE__*/ jsx(ScrollArea, {
167
- className: datepicker_module["time-picker-scroll-area"],
168
- children: /*#__PURE__*/ jsx("div", {
169
- className: datepicker_module["time-picker"],
170
- children: Array.from({
171
- length: 96
172
- }).map((_, i)=>{
173
- const hour = Math.floor(i / 4).toString().padStart(2, '0');
174
- const minute = (i % 4 * 15).toString().padStart(2, '0');
175
- const timeValue = `${hour}:${minute}`;
176
- return /*#__PURE__*/ jsx(Button, {
177
- size: "sm",
178
- className: datepicker_module["time-picker-button"],
179
- variant: "outlined",
180
- onClick: ()=>{
181
- setTime(timeValue);
182
- if (date) {
183
- const newDate = new Date(date.getTime());
184
- newDate.setHours(Number.parseInt(hour, 10), Number.parseInt(minute, 10), 0);
185
- setDate(newDate);
186
- handleOnDateChange(newDate);
187
- }
188
- },
189
- children: timeValue
190
- }, i);
137
+ children: /*#__PURE__*/ jsxs(Popover.Popup, {
138
+ className: classnames('infonomic-datepicker-content', datepicker_module.content, contentClassName),
139
+ children: [
140
+ /*#__PURE__*/ jsxs("div", {
141
+ className: classnames('infonomic-datepicker-content-components', datepicker_module["content-components"]),
142
+ children: [
143
+ /*#__PURE__*/ jsx("div", {
144
+ ref: calendarRef,
145
+ children: /*#__PURE__*/ jsx(Calendar, {
146
+ mode: "single",
147
+ required: true,
148
+ captionLayout: "dropdown",
149
+ selected: date ?? void 0,
150
+ month: month ?? void 0,
151
+ onMonthChange: setMonth,
152
+ onSelect: (selectedDate)=>{
153
+ if (selectedDate) {
154
+ const [hours, minutes] = time.split(':');
155
+ selectedDate.setHours(Number.parseInt(hours, 10), Number.parseInt(minutes, 10));
156
+ setDate(selectedDate);
157
+ setMonth(selectedDate);
158
+ handleOnDateChange(selectedDate);
159
+ }
160
+ },
161
+ startMonth: new Date(new Date().getFullYear() - yearsInPast, 0),
162
+ endMonth: new Date(new Date().getFullYear() + yearsInFuture, 0)
163
+ })
164
+ }),
165
+ 'datetime' === mode && /*#__PURE__*/ jsx("div", {
166
+ className: datepicker_module["time-picker-container"],
167
+ children: /*#__PURE__*/ jsx(ScrollArea, {
168
+ className: datepicker_module["time-picker-scroll-area"],
169
+ children: /*#__PURE__*/ jsx("div", {
170
+ className: datepicker_module["time-picker"],
171
+ children: Array.from({
172
+ length: 96
173
+ }).map((_, i)=>{
174
+ const hour = Math.floor(i / 4).toString().padStart(2, '0');
175
+ const minute = (i % 4 * 15).toString().padStart(2, '0');
176
+ const timeValue = `${hour}:${minute}`;
177
+ return /*#__PURE__*/ jsx(Button, {
178
+ size: "sm",
179
+ className: datepicker_module["time-picker-button"],
180
+ variant: "outlined",
181
+ onClick: ()=>{
182
+ setTime(timeValue);
183
+ if (date) {
184
+ const newDate = new Date(date.getTime());
185
+ newDate.setHours(Number.parseInt(hour, 10), Number.parseInt(minute, 10), 0);
186
+ setDate(newDate);
187
+ handleOnDateChange(newDate);
188
+ }
189
+ },
190
+ children: timeValue
191
+ }, i);
192
+ })
191
193
  })
192
194
  })
193
195
  })
194
- })
195
- ]
196
- }),
197
- /*#__PURE__*/ jsxs("div", {
198
- className: classnames('infonomic-datepicker-status-and-actions', datepicker_module["status-and-actions"]),
199
- children: [
200
- /*#__PURE__*/ jsx("div", {
201
- className: classnames('infonomic-datepicker-content-status', datepicker_module["content-status"]),
202
- children: date ? format(date, 'datetime' === mode ? 'PPPp' : 'PPP') : 'No date selected'
203
- }),
204
- /*#__PURE__*/ jsxs("div", {
205
- className: classnames('infonomic-datepicker-content-actions', datepicker_module["content-actions"]),
206
- children: [
207
- /*#__PURE__*/ jsx("div", {
208
- children: /*#__PURE__*/ jsx(Button, {
209
- variant: "outlined",
210
- size: "sm",
211
- className: classnames('infonomic-datepicker-content-actions-button', datepicker_module["content-actions-button"]),
212
- onClick: ()=>{
213
- const today = new Date();
214
- setDate(today);
215
- setMonth(today);
216
- handleOnDateChange(today);
217
- },
218
- children: "Today"
219
- })
220
- }),
221
- /*#__PURE__*/ jsxs("div", {
222
- style: {
223
- display: 'flex',
224
- gap: 'var(--spacing-12)'
225
- },
226
- children: [
227
- /*#__PURE__*/ jsx(Button, {
228
- size: "sm",
229
- intent: "noeffect",
230
- className: classnames('infonomic-datepicker-content-actions-button', datepicker_module["content-actions-button"]),
231
- onClick: ()=>{
232
- setIsOpen(false);
233
- },
234
- children: "Cancel"
235
- }),
236
- /*#__PURE__*/ jsx(Button, {
196
+ ]
197
+ }),
198
+ /*#__PURE__*/ jsxs("div", {
199
+ className: classnames('infonomic-datepicker-status-and-actions', datepicker_module["status-and-actions"]),
200
+ children: [
201
+ /*#__PURE__*/ jsx("div", {
202
+ className: classnames('infonomic-datepicker-content-status', datepicker_module["content-status"]),
203
+ children: date ? format(date, 'datetime' === mode ? 'PPPp' : 'PPP') : 'No date selected'
204
+ }),
205
+ /*#__PURE__*/ jsxs("div", {
206
+ className: classnames('infonomic-datepicker-content-actions', datepicker_module["content-actions"]),
207
+ children: [
208
+ /*#__PURE__*/ jsx("div", {
209
+ children: /*#__PURE__*/ jsx(Button, {
237
210
  variant: "outlined",
238
211
  size: "sm",
239
212
  className: classnames('infonomic-datepicker-content-actions-button', datepicker_module["content-actions-button"]),
240
213
  onClick: ()=>{
241
- setIsOpen(false);
242
- handleOnDateChange(date);
214
+ const today = new Date();
215
+ setDate(today);
216
+ setMonth(today);
217
+ handleOnDateChange(today);
243
218
  },
244
- children: "Select"
219
+ children: "Today"
245
220
  })
246
- ]
247
- })
248
- ]
249
- })
250
- ]
251
- })
252
- ]
221
+ }),
222
+ /*#__PURE__*/ jsxs("div", {
223
+ style: {
224
+ display: 'flex',
225
+ gap: 'var(--spacing-12)'
226
+ },
227
+ children: [
228
+ /*#__PURE__*/ jsx(Button, {
229
+ size: "sm",
230
+ intent: "noeffect",
231
+ className: classnames('infonomic-datepicker-content-actions-button', datepicker_module["content-actions-button"]),
232
+ onClick: ()=>{
233
+ setIsOpen(false);
234
+ },
235
+ children: "Cancel"
236
+ }),
237
+ /*#__PURE__*/ jsx(Button, {
238
+ variant: "outlined",
239
+ size: "sm",
240
+ className: classnames('infonomic-datepicker-content-actions-button', datepicker_module["content-actions-button"]),
241
+ onClick: ()=>{
242
+ setIsOpen(false);
243
+ handleOnDateChange(date);
244
+ },
245
+ children: "Select"
246
+ })
247
+ ]
248
+ })
249
+ ]
250
+ })
251
+ ]
252
+ })
253
+ ]
254
+ })
253
255
  })
254
256
  })
255
257
  ]
@@ -1,6 +1,7 @@
1
1
  @layer infonomic-base, infonomic-utilities, infonomic-theme, infonomic-components;
2
2
 
3
3
  @layer infonomic-components {
4
+
4
5
  .container,
5
6
  :global(.infonomic-datepicker-container) {
6
7
  position: relative;
@@ -33,19 +34,19 @@
33
34
  box-shadow: var(--shadow-md);
34
35
  }
35
36
 
36
- &[data-state="open"][data-side="top"] {
37
+ &[data-open][data-side="top"] {
37
38
  animation-name: slideDownAndFade;
38
39
  }
39
40
 
40
- &[data-state="open"][data-side="right"] {
41
+ &[data-open][data-side="right"] {
41
42
  animation-name: slideLeftAndFade;
42
43
  }
43
44
 
44
- &[data-state="open"][data-side="bottom"] {
45
+ &[data-open][data-side="bottom"] {
45
46
  animation-name: slideUpAndFade;
46
47
  }
47
48
 
48
- &[data-state="open"][data-side="left"] {
49
+ &[data-open][data-side="left"] {
49
50
  animation-name: slideRightAndFade;
50
51
  }
51
52
  }
@@ -204,4 +205,4 @@
204
205
  transform: translateX(0);
205
206
  }
206
207
  }
207
- }
208
+ }
@@ -29,19 +29,19 @@
29
29
  box-shadow: var(--shadow-md);
30
30
  }
31
31
 
32
- :is(.content-UK9iLF, .infonomic-datepicker-content)[data-state="open"][data-side="top"] {
32
+ :is(.content-UK9iLF, .infonomic-datepicker-content)[data-open][data-side="top"] {
33
33
  animation-name: slideDownAndFade-dohHTE;
34
34
  }
35
35
 
36
- :is(.content-UK9iLF, .infonomic-datepicker-content)[data-state="open"][data-side="right"] {
36
+ :is(.content-UK9iLF, .infonomic-datepicker-content)[data-open][data-side="right"] {
37
37
  animation-name: slideLeftAndFade-ugM6Hs;
38
38
  }
39
39
 
40
- :is(.content-UK9iLF, .infonomic-datepicker-content)[data-state="open"][data-side="bottom"] {
40
+ :is(.content-UK9iLF, .infonomic-datepicker-content)[data-open][data-side="bottom"] {
41
41
  animation-name: slideUpAndFade-bAwQJS;
42
42
  }
43
43
 
44
- :is(.content-UK9iLF, .infonomic-datepicker-content)[data-state="open"][data-side="left"] {
44
+ :is(.content-UK9iLF, .infonomic-datepicker-content)[data-open][data-side="left"] {
45
45
  animation-name: slideRightAndFade-o0jl7q;
46
46
  }
47
47
 
@@ -1 +1 @@
1
- {"version":3,"file":"drawer-wrapper.d.ts","sourceRoot":"","sources":["../../../src/widgets/drawer/drawer-wrapper.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAKnD,MAAM,WAAW,kBAAmB,SAAQ,eAAe,CAAC,KAAK,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAC/B;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,QAAQ,EACR,WAAW,EACX,GAAG,IAAI,EACR,EAAE,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4BxC"}
1
+ {"version":3,"file":"drawer-wrapper.d.ts","sourceRoot":"","sources":["../../../src/widgets/drawer/drawer-wrapper.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAMnD,MAAM,WAAW,kBAAmB,SAAQ,eAAe,CAAC,KAAK,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAC/B;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,QAAQ,EACR,WAAW,EACX,GAAG,IAAI,EACR,EAAE,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4BxC"}
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { useEffect } from "react";
4
- import { useFocusTrap } from "@mantine/hooks";
5
4
  import classnames from "classnames";
6
5
  import { m } from "motion/react";
6
+ import { useFocusTrap } from "../../hooks/use-focus-trap/index.js";
7
7
  import drawer_module from "./drawer.module.js";
8
8
  function DrawerWrapper({ className, children, onEscapeKey, ...rest }) {
9
9
  const focusTrapRef = useFocusTrap();
@@ -1 +1 @@
1
- {"version":3,"file":"modal-wrapper.d.ts","sourceRoot":"","sources":["../../../src/widgets/modal/modal-wrapper.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAKnD,MAAM,WAAW,iBAAkB,SAAQ,eAAe,CAAC,KAAK,CAAC;IAC/D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAC/B;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAW,EACX,GAAG,IAAI,EACR,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4BvC"}
1
+ {"version":3,"file":"modal-wrapper.d.ts","sourceRoot":"","sources":["../../../src/widgets/modal/modal-wrapper.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAMnD,MAAM,WAAW,iBAAkB,SAAQ,eAAe,CAAC,KAAK,CAAC;IAC/D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAC/B;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAW,EACX,GAAG,IAAI,EACR,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4BvC"}
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { useEffect } from "react";
4
- import { useFocusTrap } from "@mantine/hooks";
5
4
  import classnames from "classnames";
6
5
  import { m } from "motion/react";
6
+ import { useFocusTrap } from "../../hooks/use-focus-trap/index.js";
7
7
  import modal_module from "./modal.module.js";
8
8
  function ModalWrapper({ children, onEscapeKey, ...rest }) {
9
9
  const focusTrapRef = useFocusTrap();
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@infonomic/uikit",
3
3
  "private": false,
4
4
  "license": "MIT",
5
- "version": "5.44.0",
5
+ "version": "6.0.0",
6
6
  "type": "module",
7
7
  "description": "Infonomic UI kit is a collection of reusable UI components and utilities for React and Astro.",
8
8
  "keywords": [
@@ -58,16 +58,12 @@
58
58
  }
59
59
  },
60
60
  "dependencies": {
61
- "@mantine/hooks": "^8.3.18",
62
- "@radix-ui/react-icons": "^1.3.2",
63
- "@radix-ui/react-slot": "^1.2.4",
61
+ "@base-ui/react": "^1.0.0",
64
62
  "classnames": "^2.5.1",
65
63
  "date-fns": "^4.1.0",
66
- "material-ripple-effects": "^2.0.1",
67
64
  "motion": "^12.38.0",
68
65
  "npm-run-all": "^4.1.5",
69
66
  "prism-react-renderer": "^2.4.1",
70
- "radix-ui": "^1.4.3",
71
67
  "react": "19.2.4",
72
68
  "react-day-picker": "^9.14.0",
73
69
  "react-dom": "19.2.4",
@@ -1,6 +1,7 @@
1
1
  @layer infonomic-base, infonomic-utilities, infonomic-theme, infonomic-components;
2
2
 
3
3
  @layer infonomic-components {
4
+
4
5
  .item,
5
6
  :global(.infonomic-accordion-item) {
6
7
  overflow: hidden;
@@ -25,11 +26,11 @@
25
26
  :global(.infonomic-accordion-content) {
26
27
  overflow: hidden;
27
28
 
28
- &[data-state="open"] {
29
+ &[data-open] {
29
30
  animation: accordionSlideDown 300ms cubic-bezier(0.87, 0, 0.13, 1);
30
31
  }
31
32
 
32
- &[data-state="closed"] {
33
+ &[data-ending-style] {
33
34
  animation: accordionSlideUp 300ms cubic-bezier(0.87, 0, 0.13, 1);
34
35
  }
35
36
  }
@@ -40,17 +41,17 @@
40
41
  }
41
42
 
42
43
  to {
43
- height: var(--radix-accordion-content-height);
44
+ height: var(--accordion-panel-height);
44
45
  }
45
46
  }
46
47
 
47
48
  @keyframes accordionSlideUp {
48
49
  from {
49
- height: var(--radix-accordion-content-height);
50
+ height: var(--accordion-panel-height);
50
51
  }
51
52
 
52
53
  to {
53
54
  height: 0;
54
55
  }
55
56
  }
56
- }
57
+ }
@@ -1,6 +1,6 @@
1
- import { ChevronDownIcon } from '@radix-ui/react-icons'
2
1
  import type { Meta, StoryObj } from '@storybook/react-vite'
3
2
 
3
+ import { ChevronDownIcon } from '../../icons/chevron-down-icon.js'
4
4
  import { Accordion as AccordionComponent } from './accordion.js'
5
5
 
6
6
  const meta: Meta = {
@@ -24,10 +24,7 @@ type Story = StoryObj<typeof AccordionComponent.Root>
24
24
  */
25
25
  export const Accordion: Story = {
26
26
  args: {
27
- type: 'single',
28
- asChild: true,
29
- defaultValue: 'item-1',
30
- collapsible: true,
27
+ defaultValue: ['item-1'],
31
28
  className: 'accordion-root',
32
29
  },
33
30
  render: (args) => (
@@ -56,11 +53,11 @@ export const Accordion: Story = {
56
53
  transition: transform 300ms cubic-bezier(0.87, 0, 0.13, 1);
57
54
  }
58
55
 
59
- .accordion-trigger[data-state="open"] + .accordion-chevron {
56
+ .accordion-trigger[data-panel-open] ~ .accordion-chevron {
60
57
  transform: rotate(180deg);
61
58
  }
62
59
 
63
- .accordion-content {
60
+ .accordion-panel {
64
61
  padding: 0 12px;
65
62
  }
66
63
 
@@ -85,9 +82,9 @@ export const Accordion: Story = {
85
82
  </AccordionComponent.Trigger>
86
83
  <ChevronDownIcon className="accordion-chevron" />
87
84
  </AccordionComponent.Header>
88
- <AccordionComponent.Content className="accordion-content">
85
+ <AccordionComponent.Panel className="accordion-panel">
89
86
  <p>Yes. It adheres to the WAI-ARIA design pattern.</p>
90
- </AccordionComponent.Content>
87
+ </AccordionComponent.Panel>
91
88
  </AccordionComponent.Item>
92
89
 
93
90
  <AccordionComponent.Item value="item-2">
@@ -97,13 +94,13 @@ export const Accordion: Story = {
97
94
  </AccordionComponent.Trigger>
98
95
  <ChevronDownIcon className="accordion-chevron" />
99
96
  </AccordionComponent.Header>
100
- <AccordionComponent.Content className="accordion-content">
97
+ <AccordionComponent.Panel className="accordion-panel">
101
98
  <ul>
102
99
  <li>Submenu Item One</li>
103
100
  <li>Submenu Item Two</li>
104
101
  <li>Submenu Item Three</li>
105
102
  </ul>
106
- </AccordionComponent.Content>
103
+ </AccordionComponent.Panel>
107
104
  </AccordionComponent.Item>
108
105
 
109
106
  <AccordionComponent.Item value="item-3">
@@ -113,9 +110,9 @@ export const Accordion: Story = {
113
110
  </AccordionComponent.Trigger>
114
111
  <ChevronDownIcon className="accordion-chevron" />
115
112
  </AccordionComponent.Header>
116
- <AccordionComponent.Content className="accordion-content">
113
+ <AccordionComponent.Panel className="accordion-panel">
117
114
  <p> Yes! You can animate the Accordion with CSS or JavaScript.</p>
118
- </AccordionComponent.Content>
115
+ </AccordionComponent.Panel>
119
116
  </AccordionComponent.Item>
120
117
  </nav>
121
118
  </AccordionComponent.Root>
@@ -8,8 +8,8 @@
8
8
 
9
9
  import type React from 'react'
10
10
 
11
+ import { Accordion as AccordionPrimitive } from '@base-ui/react/accordion'
11
12
  import cx from 'classnames'
12
- import { Accordion as AccordionPrimitive } from 'radix-ui'
13
13
 
14
14
  import styles from './accordion.module.css'
15
15
 
@@ -24,7 +24,7 @@ const Root = ({
24
24
  children: React.ReactNode
25
25
  className?: string
26
26
  ref?: React.RefObject<AccordionRootElement>
27
- } & (AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps)) => {
27
+ } & React.ComponentProps<typeof AccordionPrimitive.Root>) => {
28
28
  return (
29
29
  <AccordionPrimitive.Root
30
30
  ref={ref}
@@ -42,7 +42,7 @@ const Item = function AccordionItem({
42
42
  children,
43
43
  className,
44
44
  ...props
45
- }: AccordionPrimitive.AccordionItemProps & {
45
+ }: React.ComponentProps<typeof AccordionPrimitive.Item> & {
46
46
  ref?: React.RefObject<AccordionItemElement>
47
47
  }) {
48
48
  return (
@@ -56,13 +56,13 @@ const Item = function AccordionItem({
56
56
  )
57
57
  }
58
58
 
59
- export type AccordionHeaderElement = React.ComponentRef<'h2'>
59
+ export type AccordionHeaderElement = React.ComponentRef<'h3'>
60
60
  const Header = function AccordionHeader({
61
61
  ref,
62
62
  children,
63
63
  className,
64
64
  ...props
65
- }: AccordionPrimitive.AccordionHeaderProps & {
65
+ }: React.ComponentProps<typeof AccordionPrimitive.Header> & {
66
66
  ref?: React.RefObject<AccordionHeaderElement>
67
67
  }) {
68
68
  return (
@@ -82,7 +82,7 @@ const Trigger = function AccordionTrigger({
82
82
  children,
83
83
  className,
84
84
  ...props
85
- }: AccordionPrimitive.AccordionTriggerProps & {
85
+ }: React.ComponentProps<typeof AccordionPrimitive.Trigger> & {
86
86
  ref?: React.RefObject<AccordionTriggerElement>
87
87
  }) {
88
88
  return (
@@ -96,23 +96,23 @@ const Trigger = function AccordionTrigger({
96
96
  )
97
97
  }
98
98
 
99
- export type AccordionContentElement = React.ComponentRef<'div'>
100
- const Content = function AccordionContent({
99
+ export type AccordionPanelElement = React.ComponentRef<'div'>
100
+ const Panel = function AccordionPanel({
101
101
  ref,
102
102
  children,
103
103
  className,
104
104
  ...props
105
- }: AccordionPrimitive.AccordionContentProps & {
106
- ref?: React.RefObject<AccordionContentElement>
105
+ }: React.ComponentProps<typeof AccordionPrimitive.Panel> & {
106
+ ref?: React.RefObject<AccordionPanelElement>
107
107
  }) {
108
108
  return (
109
- <AccordionPrimitive.Content
109
+ <AccordionPrimitive.Panel
110
110
  className={cx('infonomic-accordion-content', styles.content, className)}
111
111
  {...props}
112
112
  ref={ref}
113
113
  >
114
114
  {children}
115
- </AccordionPrimitive.Content>
115
+ </AccordionPrimitive.Panel>
116
116
  )
117
117
  }
118
118
 
@@ -121,5 +121,5 @@ export const Accordion = {
121
121
  Item,
122
122
  Header,
123
123
  Trigger,
124
- Content,
124
+ Panel,
125
125
  }
@@ -2,8 +2,8 @@
2
2
 
3
3
  import type React from 'react'
4
4
 
5
+ import { Avatar as AvatarPrimitive } from '@base-ui/react/avatar'
5
6
  import cx from 'classnames'
6
- import { Avatar as AvatarPrimitive } from 'radix-ui'
7
7
 
8
8
  import styles from './avatar.module.css'
9
9
 
@@ -19,7 +19,7 @@ export const Avatar = ({ initials }: { initials: string }): React.JSX.Element =>
19
19
  />
20
20
  <AvatarPrimitive.Fallback
21
21
  className={cx('infonomic-avatar-fallback', styles['avatar-fallback'])}
22
- delayMs={600}
22
+ delay={600}
23
23
  >
24
24
  <span className={cx('infonomic-avatar-text', styles['avatar-text'])}>{initials}</span>
25
25
  </AvatarPrimitive.Fallback>