@datawire-ai/busyfile-design-library 1.35.5 → 1.36.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 (257) hide show
  1. package/README.md +74 -31
  2. package/dist/index100.js +4 -4
  3. package/dist/index101.js +135 -10
  4. package/dist/index102.js +13 -218
  5. package/dist/index103.js +14 -13
  6. package/dist/index104.js +9 -30
  7. package/dist/index105.js +48 -134
  8. package/dist/index106.js +179 -13
  9. package/dist/index107.js +8 -9
  10. package/dist/index108.js +14 -50
  11. package/dist/index109.js +226 -10
  12. package/dist/index110.js +219 -3
  13. package/dist/index111.js +30 -13
  14. package/dist/index112.js +10 -14
  15. package/dist/index113.js +4 -4
  16. package/dist/index114.js +11 -45
  17. package/dist/index115.js +3 -13
  18. package/dist/index116.js +44 -224
  19. package/dist/index117.js +14 -14
  20. package/dist/index118.js +15 -25
  21. package/dist/index119.js +18 -15
  22. package/dist/index120.js +16 -33
  23. package/dist/index121.js +33 -12
  24. package/dist/index122.js +18 -12
  25. package/dist/index123.js +10 -204
  26. package/dist/index124.js +204 -20
  27. package/dist/index125.js +21 -399
  28. package/dist/index126.js +400 -6
  29. package/dist/index127.js +6 -25
  30. package/dist/index128.js +24 -28
  31. package/dist/index129.js +29 -5
  32. package/dist/index130.js +5 -2
  33. package/dist/index131.js +2 -53
  34. package/dist/index132.js +41 -53
  35. package/dist/index133.js +65 -52
  36. package/dist/index134.js +52 -5
  37. package/dist/index135.js +4 -4
  38. package/dist/index136.js +4 -15
  39. package/dist/index137.js +15 -5
  40. package/dist/index138.js +5 -8
  41. package/dist/index139.js +8 -16
  42. package/dist/index140.js +16 -4
  43. package/dist/index141.js +1 -1
  44. package/dist/index142.js +4 -5
  45. package/dist/index143.js +4 -4
  46. package/dist/index144.js +5 -4
  47. package/dist/index145.js +2 -2
  48. package/dist/index146.js +3 -5
  49. package/dist/index147.js +6 -24
  50. package/dist/index148.js +24 -6
  51. package/dist/index149.js +6 -4
  52. package/dist/index150.js +3 -5
  53. package/dist/index151.js +6 -5
  54. package/dist/index152.js +5 -4
  55. package/dist/index153.js +3 -4
  56. package/dist/index154.js +5 -4
  57. package/dist/index155.js +4 -8
  58. package/dist/index156.js +8 -5
  59. package/dist/index157.js +5 -4
  60. package/dist/index158.js +3 -3
  61. package/dist/index159.js +4 -6
  62. package/dist/index160.js +6 -58
  63. package/dist/index161.js +46 -54
  64. package/dist/index162.js +60 -234
  65. package/dist/index163.js +239 -38
  66. package/dist/index164.js +39 -4
  67. package/dist/index165.js +4 -7
  68. package/dist/index166.js +6 -12
  69. package/dist/index167.js +12 -6
  70. package/dist/index168.js +7 -10
  71. package/dist/index169.js +10 -10
  72. package/dist/index170.js +10 -8
  73. package/dist/index171.js +8 -16
  74. package/dist/index172.js +17 -24
  75. package/dist/index173.js +24 -20
  76. package/dist/index174.js +20 -54
  77. package/dist/index175.js +51 -39
  78. package/dist/index176.js +41 -9
  79. package/dist/index177.js +9 -20
  80. package/dist/index178.js +20 -16
  81. package/dist/index179.js +16 -6
  82. package/dist/index180.js +6 -23
  83. package/dist/index181.js +24 -19
  84. package/dist/index182.js +19 -16
  85. package/dist/index183.js +16 -7
  86. package/dist/index184.js +6 -4
  87. package/dist/index185.js +4 -4
  88. package/dist/index186.js +4 -4
  89. package/dist/index187.js +4 -4
  90. package/dist/index188.js +4 -3
  91. package/dist/index189.js +3 -6
  92. package/dist/index190.js +6 -7
  93. package/dist/index191.js +7 -6
  94. package/dist/index192.js +6 -5
  95. package/dist/index193.js +5 -3
  96. package/dist/index194.js +3 -3
  97. package/dist/index195.js +3 -3
  98. package/dist/index196.js +3 -3
  99. package/dist/index197.js +3 -4
  100. package/dist/index198.js +4 -3
  101. package/dist/index199.js +3 -3
  102. package/dist/index200.js +3 -3
  103. package/dist/index201.js +3 -524
  104. package/dist/index202.js +5 -128
  105. package/dist/index203.js +3 -134
  106. package/dist/index204.js +24 -5
  107. package/dist/index205.js +110 -3
  108. package/dist/index206.js +15 -23
  109. package/dist/index207.js +518 -103
  110. package/dist/index208.js +126 -14
  111. package/dist/index209.js +134 -2
  112. package/dist/index210.js +2 -2
  113. package/dist/index211.js +2 -7
  114. package/dist/index212.js +8 -4
  115. package/dist/index213.js +19 -7
  116. package/dist/index214.js +16 -17
  117. package/dist/index215.js +5 -5
  118. package/dist/index216.js +5 -5
  119. package/dist/index217.js +6 -13
  120. package/dist/index218.js +4 -10
  121. package/dist/index219.js +7 -14
  122. package/dist/index220.js +17 -5
  123. package/dist/index221.js +5 -6
  124. package/dist/index222.js +5 -8
  125. package/dist/index223.js +13 -6
  126. package/dist/index224.js +10 -56
  127. package/dist/index225.js +14 -9
  128. package/dist/index226.js +3 -3
  129. package/dist/index227.js +6 -5
  130. package/dist/index228.js +8 -9
  131. package/dist/index229.js +5 -4
  132. package/dist/index230.js +56 -5
  133. package/dist/index231.js +9 -4
  134. package/dist/index232.js +5 -11
  135. package/dist/index233.js +5 -10
  136. package/dist/index234.js +9 -10
  137. package/dist/index235.js +5 -11
  138. package/dist/index236.js +5 -11
  139. package/dist/index237.js +4 -10
  140. package/dist/index238.js +11 -7
  141. package/dist/index239.js +10 -6
  142. package/dist/index240.js +9 -4
  143. package/dist/index241.js +11 -6
  144. package/dist/index242.js +11 -8
  145. package/dist/index243.js +10 -6
  146. package/dist/index244.js +7 -23
  147. package/dist/index245.js +6 -18
  148. package/dist/index246.js +5 -7
  149. package/dist/index247.js +6 -10
  150. package/dist/index248.js +8 -10
  151. package/dist/index249.js +6 -21
  152. package/dist/index250.js +23 -10
  153. package/dist/index251.js +18 -9
  154. package/dist/index252.js +7 -9
  155. package/dist/index253.js +10 -4
  156. package/dist/index254.js +10 -5
  157. package/dist/index255.js +21 -16
  158. package/dist/index256.js +10 -9
  159. package/dist/index257.js +9 -18
  160. package/dist/index258.js +9 -15
  161. package/dist/index259.js +4 -12
  162. package/dist/index260.js +5 -29
  163. package/dist/index261.js +15 -11
  164. package/dist/index262.js +9 -25
  165. package/dist/index263.js +18 -5
  166. package/dist/index264.js +15 -16
  167. package/dist/index265.js +12 -5
  168. package/dist/index266.js +28 -4
  169. package/dist/index267.js +12 -8
  170. package/dist/index268.js +24 -18
  171. package/dist/index269.js +6 -69
  172. package/dist/index270.js +68 -8
  173. package/dist/index271.js +9 -14
  174. package/dist/index272.js +14 -66
  175. package/dist/index273.js +65 -64
  176. package/dist/index274.js +64 -12
  177. package/dist/index276.js +1 -1
  178. package/dist/index278.js +1 -1
  179. package/dist/index279.js +2 -2
  180. package/dist/index281.js +12 -3
  181. package/dist/index282.js +3 -22
  182. package/dist/index283.js +22 -6
  183. package/dist/index284.js +5 -14
  184. package/dist/index285.js +14 -27
  185. package/dist/index286.js +27 -11
  186. package/dist/index287.js +12 -5
  187. package/dist/index288.js +5 -5
  188. package/dist/index289.js +6 -4
  189. package/dist/index29.js +208 -44
  190. package/dist/index290.js +4 -16
  191. package/dist/index291.js +14 -7
  192. package/dist/index292.js +8 -5
  193. package/dist/index293.js +5 -4
  194. package/dist/index294.js +4 -512
  195. package/dist/index295.js +511 -48
  196. package/dist/index296.js +50 -18
  197. package/dist/index297.js +17 -6
  198. package/dist/index298.js +6 -8
  199. package/dist/index299.js +8 -7
  200. package/dist/index30.js +2 -2
  201. package/dist/index300.js +7 -8
  202. package/dist/index301.js +8 -12
  203. package/dist/index302.js +12 -10
  204. package/dist/index303.js +10 -14
  205. package/dist/index304.js +15 -23
  206. package/dist/index308.js +23 -5
  207. package/dist/index309.js +5 -57
  208. package/dist/index310.js +59 -0
  209. package/dist/index33.js +3 -3
  210. package/dist/index34.js +1 -1
  211. package/dist/index35.js +1 -1
  212. package/dist/index36.js +2 -2
  213. package/dist/index44.js +5 -5
  214. package/dist/index46.js +8 -8
  215. package/dist/index48.js +6 -6
  216. package/dist/index50.js +1 -1
  217. package/dist/index51.js +10 -10
  218. package/dist/index52.js +1 -1
  219. package/dist/index54.js +8 -8
  220. package/dist/index55.js +1 -1
  221. package/dist/index56.js +1 -1
  222. package/dist/index57.js +1 -1
  223. package/dist/index58.js +1 -1
  224. package/dist/index60.js +4 -4
  225. package/dist/index62.js +1 -1
  226. package/dist/index63.js +1 -1
  227. package/dist/index64.js +1 -1
  228. package/dist/index66.js +1 -1
  229. package/dist/index67.js +1 -1
  230. package/dist/index68.js +1 -1
  231. package/dist/index69.js +1 -1
  232. package/dist/index71.js +1 -1
  233. package/dist/index72.js +1 -1
  234. package/dist/index74.js +1 -1
  235. package/dist/index76.js +7 -7
  236. package/dist/index79.js +1 -1
  237. package/dist/index80.js +8 -7
  238. package/dist/index81.js +17 -174
  239. package/dist/index82.js +176 -10
  240. package/dist/index83.js +10 -862
  241. package/dist/index84.js +856 -16
  242. package/dist/index85.js +22 -10
  243. package/dist/index86.js +10 -243
  244. package/dist/index87.js +230 -298
  245. package/dist/index88.js +300 -216
  246. package/dist/index89.js +227 -10
  247. package/dist/index90.js +10 -7
  248. package/dist/index93.js +6 -33
  249. package/dist/index94.js +48 -178
  250. package/dist/index95.js +5 -51
  251. package/dist/index96.js +24 -7
  252. package/dist/index97.js +68 -23
  253. package/dist/index98.js +33 -5
  254. package/dist/index99.js +10 -69
  255. package/dist/style.css +1 -1
  256. package/dist/types/index.d.ts +32 -1
  257. package/package.json +1 -1
package/README.md CHANGED
@@ -269,20 +269,20 @@ These tokens can be used directly as Tailwind utility classes like bg-primary-30
269
269
 
270
270
  ### Neutral Colors
271
271
 
272
- | Token | Hex | Example Class |
273
- | -------------------- | --------- | --------------- |
274
- | `--color-neutral-0` | `#0a0a0a` | `bg-neutral-0` |
275
- | `--color-neutral-10` | `#1f1f1f` | `bg-neutral-10` |
276
- | `--color-neutral-20` | `#333333` | `bg-neutral-20` |
277
- | `--color-neutral-30` | `#474747` | `bg-neutral-30` |
278
- | `--color-neutral-40` | `#5c5c5c` | `bg-neutral-40` |
279
- | `--color-neutral-50` | `#707070` | `bg-neutral-50` |
280
- | `--color-neutral-60` | `#858585` | `bg-neutral-60` |
281
- | `--color-neutral-70` | `#999999` | `bg-neutral-70` |
282
- | `--color-neutral-80` | `#adadad` | `bg-neutral-80` |
283
- | `--color-neutral-90` | `#c2c2c2` | `bg-neutral-90` |
284
- | `--color-neutral-95` | `#d6d6d6` | `bg-neutral-95` |
285
- | `--color-neutral-99` | `#f1f1f1` | `bg-neutral-99` |
272
+ | Token | Hex | Example Class |
273
+ | -------------------------- | --------- | --------------------- |
274
+ | `--color-neutral-0` | `#0a0a0a` | `bg-neutral-0` |
275
+ | `--color-neutral-10` | `#1f1f1f` | `bg-neutral-10` |
276
+ | `--color-neutral-20` | `#333333` | `bg-neutral-20` |
277
+ | `--color-neutral-30` | `#474747` | `bg-neutral-30` |
278
+ | `--color-neutral-40` | `#5c5c5c` | `bg-neutral-40` |
279
+ | `--color-neutral-50` | `#707070` | `bg-neutral-50` |
280
+ | `--color-neutral-60` | `#858585` | `bg-neutral-60` |
281
+ | `--color-neutral-70` | `#999999` | `bg-neutral-70` |
282
+ | `--color-neutral-80` | `#adadad` | `bg-neutral-80` |
283
+ | `--color-neutral-90` | `#c2c2c2` | `bg-neutral-90` |
284
+ | `--color-neutral-95` | `#d6d6d6` | `bg-neutral-95` |
285
+ | `--color-neutral-99` | `#f1f1f1` | `bg-neutral-99` |
286
286
  | `--color-neutral-gray-50` | `#FAFAFA` | `bg-neutral-gray-50` |
287
287
  | `--color-neutral-gray-100` | `#F5F5F5` | `bg-neutral-gray-100` |
288
288
 
@@ -334,16 +334,16 @@ export function Example() {
334
334
  );
335
335
  }
336
336
  ```
337
+
337
338
  | Prop | Type | Default | Description |
338
- | ------------- | ----------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
339
- | `variant` | `"widget-1"` | `"widget-2"` | `"widget-1"` | Determines the visual style of the card. |
339
+ | ------------- | ----------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- |
340
+ | `variant` | `"widget-1"` | `"widget-2"` | `"widget-1"` | Determines the visual style of the card. |
340
341
  | `shadowColor` | `string` | `undefined` | Optional. Accepts either a **HEX value** (e.g. `#3649EA`) or a **theme color variable** (e.g. `var(--color-primary-1)`) to customize the inner shadow color for `widget-1`. |
341
342
  | `asChild` | `boolean` | `false` | If true, renders the component as a child element using Radix’s `<Slot>` for better composition. |
342
343
  | `className` | `string` | `undefined` | Adds custom class names for additional styling. |
343
344
  | `children` | `React.ReactNode` | — | Content inside the card. |
344
345
  | `...props` | `React.HTMLAttributes<HTMLElement>` | — | Additional HTML attributes are spread onto the root element. |
345
346
 
346
-
347
347
  # Toggle Button
348
348
 
349
349
  A customizable and accessible `toggle button` (switch) component. Supports both controlled (Toggle) and uncontrolled/stateful (StatefulToggle) usage.
@@ -504,20 +504,20 @@ These tokens can be used directly as Tailwind utility classes like bg-primary-30
504
504
 
505
505
  ### Neutral Colors
506
506
 
507
- | Token | Hex | Example Class |
508
- | -------------------- | --------- | --------------- |
509
- | `--color-neutral-0` | `#0a0a0a` | `bg-neutral-0` |
510
- | `--color-neutral-10` | `#1f1f1f` | `bg-neutral-10` |
511
- | `--color-neutral-20` | `#333333` | `bg-neutral-20` |
512
- | `--color-neutral-30` | `#474747` | `bg-neutral-30` |
513
- | `--color-neutral-40` | `#5c5c5c` | `bg-neutral-40` |
514
- | `--color-neutral-50` | `#707070` | `bg-neutral-50` |
515
- | `--color-neutral-60` | `#858585` | `bg-neutral-60` |
516
- | `--color-neutral-70` | `#999999` | `bg-neutral-70` |
517
- | `--color-neutral-80` | `#adadad` | `bg-neutral-80` |
518
- | `--color-neutral-90` | `#c2c2c2` | `bg-neutral-90` |
519
- | `--color-neutral-95` | `#d6d6d6` | `bg-neutral-95` |
520
- | `--color-neutral-99` | `#f1f1f1` | `bg-neutral-99` |
507
+ | Token | Hex | Example Class |
508
+ | -------------------------- | --------- | --------------------- |
509
+ | `--color-neutral-0` | `#0a0a0a` | `bg-neutral-0` |
510
+ | `--color-neutral-10` | `#1f1f1f` | `bg-neutral-10` |
511
+ | `--color-neutral-20` | `#333333` | `bg-neutral-20` |
512
+ | `--color-neutral-30` | `#474747` | `bg-neutral-30` |
513
+ | `--color-neutral-40` | `#5c5c5c` | `bg-neutral-40` |
514
+ | `--color-neutral-50` | `#707070` | `bg-neutral-50` |
515
+ | `--color-neutral-60` | `#858585` | `bg-neutral-60` |
516
+ | `--color-neutral-70` | `#999999` | `bg-neutral-70` |
517
+ | `--color-neutral-80` | `#adadad` | `bg-neutral-80` |
518
+ | `--color-neutral-90` | `#c2c2c2` | `bg-neutral-90` |
519
+ | `--color-neutral-95` | `#d6d6d6` | `bg-neutral-95` |
520
+ | `--color-neutral-99` | `#f1f1f1` | `bg-neutral-99` |
521
521
  | `--color-neutral-gray-50` | `#FAFAFA` | `bg-neutral-gray-50` |
522
522
  | `--color-neutral-gray-100` | `#F5F5F5` | `bg-neutral-gray-100` |
523
523
 
@@ -668,6 +668,48 @@ The `Button` component is a core interactive element in the design system. It su
668
668
  <Button size="icon"><Icon /></Button>
669
669
  ```
670
670
 
671
+ ## Notification
672
+
673
+ Use `NotificationContent` when you want to show updates, alerts, or account activity in a clean notification panel.
674
+
675
+ ### Usage
676
+
677
+ ```tsx
678
+ import { NotificationContent } from '@datawire-ai/busyfile-design-library';
679
+
680
+ export function NotificationsExample() {
681
+ return (
682
+ <NotificationContent.Root>
683
+ <NotificationContent.Header
684
+ title="Notifications"
685
+ count={2}
686
+ onMarkAllRead={() => console.log('Marked all as read')}
687
+ />
688
+
689
+ <NotificationContent.Body>
690
+ <NotificationContent.Card
691
+ heading="Project updated"
692
+ description="Website redesign files were uploaded."
693
+ timestamp="2 minutes ago"
694
+ />
695
+
696
+ <NotificationContent.Card
697
+ heading="Weekly report"
698
+ description="Your activity summary is ready to review."
699
+ timestamp="Yesterday"
700
+ read
701
+ />
702
+ </NotificationContent.Body>
703
+ </NotificationContent.Root>
704
+ );
705
+ }
706
+ ```
707
+
708
+ You can also use:
709
+ - `NotificationContent.Loading` while data is loading
710
+ - `NotificationContent.Empty` when there are no notifications
711
+ - `NotificationContent.Error` if something fails
712
+
671
713
  ## Badge
672
714
 
673
715
  The `Badge` component is used to display small status indicators, tags, or labels.
@@ -898,3 +940,4 @@ pnpm build-storybook
898
940
  ```
899
941
 
900
942
  Made with ❤️ by the BusyFile team
943
+ ````
package/dist/index100.js CHANGED
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import * as n from "react";
3
- import { composeEventHandlers as m } from "./index90.js";
4
- import { Primitive as g, dispatchDiscreteCustomEvent as k } from "./index93.js";
3
+ import { composeEventHandlers as m } from "./index93.js";
4
+ import { Primitive as g, dispatchDiscreteCustomEvent as k } from "./index98.js";
5
5
  import { useComposedRefs as R } from "./index91.js";
6
- import { useCallbackRef as w } from "./index109.js";
7
- import { useEscapeKeydown as U } from "./index122.js";
6
+ import { useCallbackRef as w } from "./index112.js";
7
+ import { useEscapeKeydown as U } from "./index123.js";
8
8
  import { jsx as T } from "react/jsx-runtime";
9
9
  var z = "DismissableLayer", y = "dismissableLayer.update", H = "dismissableLayer.pointerDownOutside", M = "dismissableLayer.focusOutside", L, B = n.createContext({
10
10
  layers: /* @__PURE__ */ new Set(),
package/dist/index101.js CHANGED
@@ -1,13 +1,138 @@
1
- import * as e from "react";
2
- import { useLayoutEffect as a } from "./index110.js";
3
- var s = e[" useId ".trim().toString()] || (() => {
4
- }), i = 0;
5
- function d(r) {
6
- const [t, o] = e.useState(s());
7
- return a(() => {
8
- o((u) => u ?? String(i++));
9
- }, [r]), t ? `radix-${t}` : "";
1
+ "use client";
2
+ import * as d from "react";
3
+ import { useComposedRefs as R } from "./index91.js";
4
+ import { Primitive as M } from "./index98.js";
5
+ import { useCallbackRef as y } from "./index112.js";
6
+ import { jsx as _ } from "react/jsx-runtime";
7
+ var F = "focusScope.autoFocusOnMount", T = "focusScope.autoFocusOnUnmount", N = { bubbles: !1, cancelable: !0 }, K = "FocusScope", k = d.forwardRef((e, n) => {
8
+ const {
9
+ loop: t = !1,
10
+ trapped: u = !1,
11
+ onMountAutoFocus: p,
12
+ onUnmountAutoFocus: L,
13
+ ...g
14
+ } = e, [o, U] = d.useState(null), E = y(p), v = y(L), b = d.useRef(null), A = R(n, (s) => U(s)), a = d.useRef({
15
+ paused: !1,
16
+ pause() {
17
+ this.paused = !0;
18
+ },
19
+ resume() {
20
+ this.paused = !1;
21
+ }
22
+ }).current;
23
+ d.useEffect(() => {
24
+ if (u) {
25
+ let s = function(i) {
26
+ if (a.paused || !o) return;
27
+ const c = i.target;
28
+ o.contains(c) ? b.current = c : f(b.current, { select: !0 });
29
+ }, l = function(i) {
30
+ if (a.paused || !o) return;
31
+ const c = i.relatedTarget;
32
+ c !== null && (o.contains(c) || f(b.current, { select: !0 }));
33
+ }, r = function(i) {
34
+ if (document.activeElement === document.body)
35
+ for (const h of i)
36
+ h.removedNodes.length > 0 && f(o);
37
+ };
38
+ document.addEventListener("focusin", s), document.addEventListener("focusout", l);
39
+ const m = new MutationObserver(r);
40
+ return o && m.observe(o, { childList: !0, subtree: !0 }), () => {
41
+ document.removeEventListener("focusin", s), document.removeEventListener("focusout", l), m.disconnect();
42
+ };
43
+ }
44
+ }, [u, o, a.paused]), d.useEffect(() => {
45
+ if (o) {
46
+ S.add(a);
47
+ const s = document.activeElement;
48
+ if (!o.contains(s)) {
49
+ const r = new CustomEvent(F, N);
50
+ o.addEventListener(F, E), o.dispatchEvent(r), r.defaultPrevented || (w(W(I(o)), { select: !0 }), document.activeElement === s && f(o));
51
+ }
52
+ return () => {
53
+ o.removeEventListener(F, E), setTimeout(() => {
54
+ const r = new CustomEvent(T, N);
55
+ o.addEventListener(T, v), o.dispatchEvent(r), r.defaultPrevented || f(s ?? document.body, { select: !0 }), o.removeEventListener(T, v), S.remove(a);
56
+ }, 0);
57
+ };
58
+ }
59
+ }, [o, E, v, a]);
60
+ const P = d.useCallback(
61
+ (s) => {
62
+ if (!t && !u || a.paused) return;
63
+ const l = s.key === "Tab" && !s.altKey && !s.ctrlKey && !s.metaKey, r = document.activeElement;
64
+ if (l && r) {
65
+ const m = s.currentTarget, [i, c] = x(m);
66
+ i && c ? !s.shiftKey && r === c ? (s.preventDefault(), t && f(i, { select: !0 })) : s.shiftKey && r === i && (s.preventDefault(), t && f(c, { select: !0 })) : r === m && s.preventDefault();
67
+ }
68
+ },
69
+ [t, u, a.paused]
70
+ );
71
+ return /* @__PURE__ */ _(M.div, { tabIndex: -1, ...g, ref: A, onKeyDown: P });
72
+ });
73
+ k.displayName = K;
74
+ function w(e, { select: n = !1 } = {}) {
75
+ const t = document.activeElement;
76
+ for (const u of e)
77
+ if (f(u, { select: n }), document.activeElement !== t) return;
78
+ }
79
+ function x(e) {
80
+ const n = I(e), t = O(n, e), u = O(n.reverse(), e);
81
+ return [t, u];
82
+ }
83
+ function I(e) {
84
+ const n = [], t = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, {
85
+ acceptNode: (u) => {
86
+ const p = u.tagName === "INPUT" && u.type === "hidden";
87
+ return u.disabled || u.hidden || p ? NodeFilter.FILTER_SKIP : u.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
88
+ }
89
+ });
90
+ for (; t.nextNode(); ) n.push(t.currentNode);
91
+ return n;
92
+ }
93
+ function O(e, n) {
94
+ for (const t of e)
95
+ if (!D(t, { upTo: n })) return t;
96
+ }
97
+ function D(e, { upTo: n }) {
98
+ if (getComputedStyle(e).visibility === "hidden") return !0;
99
+ for (; e; ) {
100
+ if (n !== void 0 && e === n) return !1;
101
+ if (getComputedStyle(e).display === "none") return !0;
102
+ e = e.parentElement;
103
+ }
104
+ return !1;
105
+ }
106
+ function H(e) {
107
+ return e instanceof HTMLInputElement && "select" in e;
108
+ }
109
+ function f(e, { select: n = !1 } = {}) {
110
+ if (e && e.focus) {
111
+ const t = document.activeElement;
112
+ e.focus({ preventScroll: !0 }), e !== t && H(e) && n && e.select();
113
+ }
114
+ }
115
+ var S = V();
116
+ function V() {
117
+ let e = [];
118
+ return {
119
+ add(n) {
120
+ const t = e[0];
121
+ n !== t && (t == null || t.pause()), e = C(e, n), e.unshift(n);
122
+ },
123
+ remove(n) {
124
+ var t;
125
+ e = C(e, n), (t = e[0]) == null || t.resume();
126
+ }
127
+ };
128
+ }
129
+ function C(e, n) {
130
+ const t = [...e], u = t.indexOf(n);
131
+ return u !== -1 && t.splice(u, 1), t;
132
+ }
133
+ function W(e) {
134
+ return e.filter((n) => n.tagName !== "A");
10
135
  }
11
136
  export {
12
- d as useId
137
+ k as FocusScope
13
138
  };
package/dist/index102.js CHANGED
@@ -1,222 +1,17 @@
1
1
  "use client";
2
- import * as p from "react";
3
- import { useFloating as xe, offset as Pe, shift as ye, flip as Ae, size as ve, arrow as Ce, hide as be, limitShift as Se } from "./index123.js";
4
- import { Root as Oe } from "./index124.js";
5
- import { useComposedRefs as j } from "./index91.js";
6
- import { createContextScope as Re } from "./index92.js";
7
- import { Primitive as z } from "./index93.js";
8
- import { useCallbackRef as Ee } from "./index109.js";
9
- import { useLayoutEffect as T } from "./index110.js";
10
- import { useSize as Ne } from "./index97.js";
11
- import { jsx as f } from "react/jsx-runtime";
12
- import { autoUpdate as _e } from "./index125.js";
13
- var N = "Popper", [L, Ue] = Re(N), [$e, Z] = L(N), U = (e) => {
14
- const { __scopePopper: s, children: a } = e, [t, i] = p.useState(null);
15
- return /* @__PURE__ */ f($e, { scope: s, anchor: t, onAnchorChange: i, children: a });
16
- };
17
- U.displayName = N;
18
- var q = "PopperAnchor", G = p.forwardRef(
19
- (e, s) => {
20
- const { __scopePopper: a, virtualRef: t, ...i } = e, r = Z(q, a), o = p.useRef(null), w = j(s, o), n = p.useRef(null);
21
- return p.useEffect(() => {
22
- const c = n.current;
23
- n.current = (t == null ? void 0 : t.current) || o.current, c !== n.current && r.onAnchorChange(n.current);
24
- }), t ? null : /* @__PURE__ */ f(z.div, { ...i, ref: w });
25
- }
26
- );
27
- G.displayName = q;
28
- var _ = "PopperContent", [He, We] = L(_), J = p.forwardRef(
29
- (e, s) => {
30
- var Y, M, X, D, F, k;
31
- const {
32
- __scopePopper: a,
33
- side: t = "bottom",
34
- sideOffset: i = 0,
35
- align: r = "center",
36
- alignOffset: o = 0,
37
- arrowPadding: w = 0,
38
- avoidCollisions: n = !0,
39
- collisionBoundary: c = [],
40
- collisionPadding: x = 0,
41
- sticky: m = "partial",
42
- hideWhenDetached: y = !1,
43
- updatePositionStrategy: A = "optimized",
44
- onPlaced: l,
45
- ...d
46
- } = e, v = Z(_, a), [h, C] = p.useState(null), ee = j(s, (P) => C(P)), [E, te] = p.useState(null), u = Ne(E), re = (u == null ? void 0 : u.width) ?? 0, $ = (u == null ? void 0 : u.height) ?? 0, oe = t + (r !== "center" ? "-" + r : ""), ne = typeof x == "number" ? x : { top: 0, right: 0, bottom: 0, left: 0, ...x }, H = Array.isArray(c) ? c : [c], ae = H.length > 0, b = {
47
- padding: ne,
48
- boundary: H.filter(Ye),
49
- // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
50
- altBoundary: ae
51
- }, { refs: ie, floatingStyles: W, placement: se, isPositioned: S, middlewareData: g } = xe({
52
- // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
53
- strategy: "fixed",
54
- placement: oe,
55
- whileElementsMounted: (...P) => _e(...P, {
56
- animationFrame: A === "always"
57
- }),
58
- elements: {
59
- reference: v.anchor
60
- },
61
- middleware: [
62
- Pe({ mainAxis: i + $, alignmentAxis: o }),
63
- n && ye({
64
- mainAxis: !0,
65
- crossAxis: !1,
66
- limiter: m === "partial" ? Se() : void 0,
67
- ...b
68
- }),
69
- n && Ae({ ...b }),
70
- ve({
71
- ...b,
72
- apply: ({ elements: P, rects: B, availableWidth: he, availableHeight: ue }) => {
73
- const { width: ge, height: we } = B.reference, R = P.floating.style;
74
- R.setProperty("--radix-popper-available-width", `${he}px`), R.setProperty("--radix-popper-available-height", `${ue}px`), R.setProperty("--radix-popper-anchor-width", `${ge}px`), R.setProperty("--radix-popper-anchor-height", `${we}px`);
75
- }
76
- }),
77
- E && Ce({ element: E, padding: w }),
78
- Me({ arrowWidth: re, arrowHeight: $ }),
79
- y && be({ strategy: "referenceHidden", ...b })
80
- ]
81
- }), [I, ce] = V(se), O = Ee(l);
82
- T(() => {
83
- S && (O == null || O());
84
- }, [S, O]);
85
- const pe = (Y = g.arrow) == null ? void 0 : Y.x, de = (M = g.arrow) == null ? void 0 : M.y, le = ((X = g.arrow) == null ? void 0 : X.centerOffset) !== 0, [fe, me] = p.useState();
86
- return T(() => {
87
- h && me(window.getComputedStyle(h).zIndex);
88
- }, [h]), /* @__PURE__ */ f(
89
- "div",
90
- {
91
- ref: ie.setFloating,
92
- "data-radix-popper-content-wrapper": "",
93
- style: {
94
- ...W,
95
- transform: S ? W.transform : "translate(0, -200%)",
96
- // keep off the page when measuring
97
- minWidth: "max-content",
98
- zIndex: fe,
99
- "--radix-popper-transform-origin": [
100
- (D = g.transformOrigin) == null ? void 0 : D.x,
101
- (F = g.transformOrigin) == null ? void 0 : F.y
102
- ].join(" "),
103
- // hide the content if using the hide middleware and should be hidden
104
- // set visibility to hidden and disable pointer events so the UI behaves
105
- // as if the PopperContent isn't there at all
106
- ...((k = g.hide) == null ? void 0 : k.referenceHidden) && {
107
- visibility: "hidden",
108
- pointerEvents: "none"
109
- }
110
- },
111
- dir: e.dir,
112
- children: /* @__PURE__ */ f(
113
- He,
114
- {
115
- scope: a,
116
- placedSide: I,
117
- onArrowChange: te,
118
- arrowX: pe,
119
- arrowY: de,
120
- shouldHideArrow: le,
121
- children: /* @__PURE__ */ f(
122
- z.div,
123
- {
124
- "data-side": I,
125
- "data-align": ce,
126
- ...d,
127
- ref: ee,
128
- style: {
129
- ...d.style,
130
- // if the PopperContent hasn't been placed yet (not all measurements done)
131
- // we prevent animations so that users's animation don't kick in too early referring wrong sides
132
- animation: S ? void 0 : "none"
133
- }
134
- }
135
- )
136
- }
137
- )
138
- }
139
- );
140
- }
141
- );
142
- J.displayName = _;
143
- var K = "PopperArrow", Ie = {
144
- top: "bottom",
145
- right: "left",
146
- bottom: "top",
147
- left: "right"
148
- }, Q = p.forwardRef(function(s, a) {
149
- const { __scopePopper: t, ...i } = s, r = We(K, t), o = Ie[r.placedSide];
150
- return (
151
- // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
152
- // doesn't report size as we'd expect on SVG elements.
153
- // it reports their bounding box which is effectively the largest path inside the SVG.
154
- /* @__PURE__ */ f(
155
- "span",
156
- {
157
- ref: r.onArrowChange,
158
- style: {
159
- position: "absolute",
160
- left: r.arrowX,
161
- top: r.arrowY,
162
- [o]: 0,
163
- transformOrigin: {
164
- top: "",
165
- right: "0 0",
166
- bottom: "center 0",
167
- left: "100% 0"
168
- }[r.placedSide],
169
- transform: {
170
- top: "translateY(100%)",
171
- right: "translateY(50%) rotate(90deg) translateX(-50%)",
172
- bottom: "rotate(180deg)",
173
- left: "translateY(50%) rotate(-90deg) translateX(50%)"
174
- }[r.placedSide],
175
- visibility: r.shouldHideArrow ? "hidden" : void 0
176
- },
177
- children: /* @__PURE__ */ f(
178
- Oe,
179
- {
180
- ...i,
181
- ref: a,
182
- style: {
183
- ...i.style,
184
- // ensures the element can be measured correctly (mostly for if SVG)
185
- display: "block"
186
- }
187
- }
188
- )
189
- }
190
- )
191
- );
192
- });
193
- Q.displayName = K;
194
- function Ye(e) {
195
- return e !== null;
196
- }
197
- var Me = (e) => ({
198
- name: "transformOrigin",
199
- options: e,
200
- fn(s) {
201
- var v, h, C;
202
- const { placement: a, rects: t, middlewareData: i } = s, o = ((v = i.arrow) == null ? void 0 : v.centerOffset) !== 0, w = o ? 0 : e.arrowWidth, n = o ? 0 : e.arrowHeight, [c, x] = V(a), m = { start: "0%", center: "50%", end: "100%" }[x], y = (((h = i.arrow) == null ? void 0 : h.x) ?? 0) + w / 2, A = (((C = i.arrow) == null ? void 0 : C.y) ?? 0) + n / 2;
203
- let l = "", d = "";
204
- return c === "bottom" ? (l = o ? m : `${y}px`, d = `${-n}px`) : c === "top" ? (l = o ? m : `${y}px`, d = `${t.floating.height + n}px`) : c === "right" ? (l = `${-n}px`, d = o ? m : `${A}px`) : c === "left" && (l = `${t.floating.width + n}px`, d = o ? m : `${A}px`), { data: { x: l, y: d } };
205
- }
2
+ import * as r from "react";
3
+ import s from "react-dom";
4
+ import { Primitive as c } from "./index98.js";
5
+ import { useLayoutEffect as u } from "./index113.js";
6
+ import { jsx as l } from "react/jsx-runtime";
7
+ var p = "Portal", d = r.forwardRef((e, a) => {
8
+ var o;
9
+ const { container: f, ...i } = e, [m, n] = r.useState(!1);
10
+ u(() => n(!0), []);
11
+ const t = f || m && ((o = globalThis == null ? void 0 : globalThis.document) == null ? void 0 : o.body);
12
+ return t ? s.createPortal(/* @__PURE__ */ l(c.div, { ...i, ref: a }), t) : null;
206
13
  });
207
- function V(e) {
208
- const [s, a = "center"] = e.split("-");
209
- return [s, a];
210
- }
211
- var qe = U, Ge = G, Je = J, Ke = Q;
14
+ d.displayName = p;
212
15
  export {
213
- Ge as Anchor,
214
- Ke as Arrow,
215
- Je as Content,
216
- U as Popper,
217
- G as PopperAnchor,
218
- Q as PopperArrow,
219
- J as PopperContent,
220
- qe as Root,
221
- Ue as createPopperScope
16
+ d as Portal
222
17
  };
package/dist/index103.js CHANGED
@@ -1,17 +1,18 @@
1
1
  "use client";
2
2
  import * as r from "react";
3
- import s from "react-dom";
4
- import { Primitive as c } from "./index93.js";
5
- import { useLayoutEffect as u } from "./index110.js";
6
- import { jsx as l } from "react/jsx-runtime";
7
- var p = "Portal", d = r.forwardRef((e, a) => {
8
- var o;
9
- const { container: f, ...i } = e, [m, n] = r.useState(!1);
10
- u(() => n(!0), []);
11
- const t = f || m && ((o = globalThis == null ? void 0 : globalThis.document) == null ? void 0 : o.body);
12
- return t ? s.createPortal(/* @__PURE__ */ l(c.div, { ...i, ref: a }), t) : null;
13
- });
14
- d.displayName = p;
3
+ var t = 0;
4
+ function a() {
5
+ r.useEffect(() => {
6
+ const e = document.querySelectorAll("[data-radix-focus-guard]");
7
+ return document.body.insertAdjacentElement("afterbegin", e[0] ?? n()), document.body.insertAdjacentElement("beforeend", e[1] ?? n()), t++, () => {
8
+ t === 1 && document.querySelectorAll("[data-radix-focus-guard]").forEach((o) => o.remove()), t--;
9
+ };
10
+ }, []);
11
+ }
12
+ function n() {
13
+ const e = document.createElement("span");
14
+ return e.setAttribute("data-radix-focus-guard", ""), e.tabIndex = 0, e.style.outline = "none", e.style.opacity = "0", e.style.position = "fixed", e.style.pointerEvents = "none", e;
15
+ }
15
16
  export {
16
- d as Portal
17
+ a as useFocusGuards
17
18
  };
package/dist/index104.js CHANGED
@@ -1,32 +1,11 @@
1
- import * as a from "react";
2
- import { Primitive as o } from "./index93.js";
3
- import { jsx as t } from "react/jsx-runtime";
4
- var d = Object.freeze({
5
- // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
6
- position: "absolute",
7
- border: 0,
8
- width: 1,
9
- height: 1,
10
- padding: 0,
11
- margin: -1,
12
- overflow: "hidden",
13
- clip: "rect(0, 0, 0, 0)",
14
- whiteSpace: "nowrap",
15
- wordWrap: "normal"
16
- }), l = "VisuallyHidden", e = a.forwardRef(
17
- (r, i) => /* @__PURE__ */ t(
18
- o.span,
19
- {
20
- ...r,
21
- ref: i,
22
- style: { ...d, ...r.style }
23
- }
24
- )
25
- );
26
- e.displayName = l;
27
- var p = e;
1
+ import { __assign as m } from "./index128.js";
2
+ import * as r from "react";
3
+ import { RemoveScroll as e } from "./index129.js";
4
+ import t from "./index130.js";
5
+ var s = r.forwardRef(function(a, o) {
6
+ return r.createElement(e, m({}, a, { ref: o, sideCar: t }));
7
+ });
8
+ s.classNames = e.classNames;
28
9
  export {
29
- p as Root,
30
- d as VISUALLY_HIDDEN_STYLES,
31
- e as VisuallyHidden
10
+ s as default
32
11
  };