@datawire-ai/busyfile-design-library 1.35.5 → 1.36.1

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 (262) hide show
  1. package/README.md +74 -31
  2. package/dist/index100.js +64 -120
  3. package/dist/index101.js +125 -10
  4. package/dist/index102.js +10 -219
  5. package/dist/index103.js +218 -13
  6. package/dist/index104.js +15 -30
  7. package/dist/index105.js +29 -135
  8. package/dist/index106.js +134 -14
  9. package/dist/index107.js +15 -8
  10. package/dist/index108.js +9 -50
  11. package/dist/index109.js +50 -11
  12. package/dist/index110.js +11 -4
  13. package/dist/index111.js +4 -13
  14. package/dist/index112.js +11 -13
  15. package/dist/index114.js +2 -2
  16. package/dist/index115.js +1 -1
  17. package/dist/index116.js +22 -22
  18. package/dist/index117.js +16 -16
  19. package/dist/index118.js +15 -25
  20. package/dist/index119.js +18 -15
  21. package/dist/index120.js +16 -33
  22. package/dist/index121.js +33 -12
  23. package/dist/index122.js +18 -12
  24. package/dist/index123.js +10 -204
  25. package/dist/index124.js +204 -20
  26. package/dist/index125.js +21 -399
  27. package/dist/index126.js +400 -6
  28. package/dist/index127.js +6 -25
  29. package/dist/index128.js +24 -28
  30. package/dist/index129.js +29 -5
  31. package/dist/index130.js +5 -2
  32. package/dist/index131.js +2 -53
  33. package/dist/index132.js +41 -53
  34. package/dist/index133.js +65 -52
  35. package/dist/index134.js +52 -5
  36. package/dist/index135.js +4 -4
  37. package/dist/index136.js +4 -15
  38. package/dist/index137.js +15 -5
  39. package/dist/index138.js +5 -8
  40. package/dist/index139.js +8 -16
  41. package/dist/index140.js +16 -4
  42. package/dist/index141.js +1 -1
  43. package/dist/index142.js +4 -5
  44. package/dist/index143.js +4 -4
  45. package/dist/index144.js +5 -4
  46. package/dist/index145.js +2 -2
  47. package/dist/index146.js +3 -5
  48. package/dist/index147.js +6 -24
  49. package/dist/index148.js +24 -6
  50. package/dist/index149.js +6 -4
  51. package/dist/index150.js +3 -5
  52. package/dist/index151.js +6 -5
  53. package/dist/index152.js +5 -4
  54. package/dist/index153.js +3 -4
  55. package/dist/index154.js +5 -4
  56. package/dist/index155.js +4 -8
  57. package/dist/index156.js +8 -5
  58. package/dist/index157.js +5 -4
  59. package/dist/index158.js +3 -3
  60. package/dist/index159.js +4 -6
  61. package/dist/index160.js +6 -58
  62. package/dist/index161.js +46 -54
  63. package/dist/index162.js +60 -234
  64. package/dist/index163.js +239 -38
  65. package/dist/index164.js +39 -4
  66. package/dist/index165.js +4 -7
  67. package/dist/index166.js +6 -12
  68. package/dist/index167.js +12 -6
  69. package/dist/index168.js +7 -10
  70. package/dist/index169.js +10 -10
  71. package/dist/index170.js +10 -8
  72. package/dist/index171.js +8 -16
  73. package/dist/index172.js +17 -24
  74. package/dist/index173.js +24 -20
  75. package/dist/index174.js +20 -54
  76. package/dist/index175.js +51 -39
  77. package/dist/index176.js +41 -9
  78. package/dist/index177.js +9 -20
  79. package/dist/index178.js +20 -16
  80. package/dist/index179.js +16 -6
  81. package/dist/index180.js +6 -23
  82. package/dist/index181.js +24 -19
  83. package/dist/index182.js +19 -16
  84. package/dist/index183.js +16 -7
  85. package/dist/index184.js +6 -4
  86. package/dist/index185.js +4 -4
  87. package/dist/index186.js +4 -4
  88. package/dist/index187.js +4 -4
  89. package/dist/index188.js +4 -3
  90. package/dist/index189.js +3 -6
  91. package/dist/index190.js +6 -7
  92. package/dist/index191.js +7 -6
  93. package/dist/index192.js +6 -5
  94. package/dist/index193.js +5 -3
  95. package/dist/index194.js +3 -3
  96. package/dist/index195.js +3 -3
  97. package/dist/index196.js +3 -3
  98. package/dist/index197.js +3 -4
  99. package/dist/index198.js +4 -3
  100. package/dist/index199.js +3 -3
  101. package/dist/index200.js +3 -3
  102. package/dist/index201.js +3 -524
  103. package/dist/index202.js +5 -128
  104. package/dist/index203.js +3 -134
  105. package/dist/index204.js +24 -5
  106. package/dist/index205.js +110 -3
  107. package/dist/index206.js +15 -23
  108. package/dist/index207.js +518 -103
  109. package/dist/index208.js +126 -14
  110. package/dist/index209.js +134 -2
  111. package/dist/index210.js +2 -2
  112. package/dist/index211.js +2 -7
  113. package/dist/index212.js +8 -4
  114. package/dist/index213.js +19 -7
  115. package/dist/index214.js +16 -17
  116. package/dist/index215.js +5 -5
  117. package/dist/index216.js +5 -5
  118. package/dist/index217.js +6 -13
  119. package/dist/index218.js +4 -10
  120. package/dist/index219.js +7 -14
  121. package/dist/index220.js +17 -5
  122. package/dist/index221.js +5 -6
  123. package/dist/index222.js +5 -8
  124. package/dist/index223.js +13 -6
  125. package/dist/index224.js +10 -56
  126. package/dist/index225.js +14 -9
  127. package/dist/index226.js +3 -3
  128. package/dist/index227.js +6 -5
  129. package/dist/index228.js +8 -9
  130. package/dist/index229.js +5 -4
  131. package/dist/index230.js +56 -5
  132. package/dist/index231.js +9 -4
  133. package/dist/index232.js +5 -11
  134. package/dist/index233.js +5 -10
  135. package/dist/index234.js +9 -10
  136. package/dist/index235.js +5 -11
  137. package/dist/index236.js +5 -11
  138. package/dist/index237.js +4 -10
  139. package/dist/index238.js +11 -7
  140. package/dist/index239.js +10 -6
  141. package/dist/index240.js +9 -4
  142. package/dist/index241.js +11 -6
  143. package/dist/index242.js +11 -8
  144. package/dist/index243.js +10 -6
  145. package/dist/index244.js +7 -23
  146. package/dist/index245.js +6 -18
  147. package/dist/index246.js +5 -7
  148. package/dist/index247.js +6 -10
  149. package/dist/index248.js +8 -10
  150. package/dist/index249.js +6 -21
  151. package/dist/index250.js +23 -10
  152. package/dist/index251.js +18 -9
  153. package/dist/index252.js +7 -9
  154. package/dist/index253.js +10 -4
  155. package/dist/index254.js +10 -5
  156. package/dist/index255.js +21 -16
  157. package/dist/index256.js +10 -9
  158. package/dist/index257.js +9 -18
  159. package/dist/index258.js +9 -15
  160. package/dist/index259.js +4 -12
  161. package/dist/index260.js +5 -29
  162. package/dist/index261.js +15 -11
  163. package/dist/index262.js +9 -25
  164. package/dist/index263.js +18 -5
  165. package/dist/index264.js +15 -16
  166. package/dist/index265.js +12 -5
  167. package/dist/index266.js +28 -4
  168. package/dist/index267.js +12 -8
  169. package/dist/index268.js +24 -18
  170. package/dist/index269.js +6 -69
  171. package/dist/index270.js +64 -8
  172. package/dist/index271.js +68 -13
  173. package/dist/index272.js +8 -65
  174. package/dist/index273.js +13 -64
  175. package/dist/index274.js +66 -13
  176. package/dist/index276.js +1 -1
  177. package/dist/index278.js +1 -1
  178. package/dist/index279.js +2 -2
  179. package/dist/index281.js +12 -3
  180. package/dist/index282.js +3 -22
  181. package/dist/index283.js +22 -6
  182. package/dist/index284.js +5 -14
  183. package/dist/index285.js +14 -27
  184. package/dist/index286.js +27 -11
  185. package/dist/index287.js +12 -5
  186. package/dist/index288.js +5 -5
  187. package/dist/index289.js +6 -4
  188. package/dist/index29.js +208 -44
  189. package/dist/index290.js +4 -16
  190. package/dist/index291.js +14 -7
  191. package/dist/index292.js +8 -5
  192. package/dist/index293.js +5 -4
  193. package/dist/index294.js +4 -512
  194. package/dist/index295.js +511 -48
  195. package/dist/index296.js +50 -18
  196. package/dist/index297.js +17 -6
  197. package/dist/index298.js +6 -8
  198. package/dist/index299.js +8 -7
  199. package/dist/index30.js +2 -2
  200. package/dist/index300.js +7 -8
  201. package/dist/index301.js +8 -12
  202. package/dist/index302.js +12 -10
  203. package/dist/index303.js +10 -14
  204. package/dist/index304.js +15 -23
  205. package/dist/index305.js +21 -11
  206. package/dist/index306.js +11 -26
  207. package/dist/index307.js +27 -4
  208. package/dist/index308.js +5 -5
  209. package/dist/index309.js +5 -57
  210. package/dist/index310.js +59 -0
  211. package/dist/index33.js +3 -3
  212. package/dist/index34.js +1 -1
  213. package/dist/index35.js +1 -1
  214. package/dist/index36.js +2 -2
  215. package/dist/index42.js +1 -1
  216. package/dist/index44.js +7 -7
  217. package/dist/index46.js +10 -10
  218. package/dist/index48.js +8 -8
  219. package/dist/index50.js +1 -1
  220. package/dist/index51.js +13 -13
  221. package/dist/index52.js +1 -1
  222. package/dist/index54.js +11 -11
  223. package/dist/index55.js +1 -1
  224. package/dist/index56.js +1 -1
  225. package/dist/index57.js +1 -1
  226. package/dist/index58.js +1 -1
  227. package/dist/index60.js +5 -5
  228. package/dist/index62.js +1 -1
  229. package/dist/index63.js +1 -1
  230. package/dist/index64.js +1 -1
  231. package/dist/index66.js +1 -1
  232. package/dist/index67.js +1 -1
  233. package/dist/index68.js +1 -1
  234. package/dist/index69.js +1 -1
  235. package/dist/index71.js +1 -1
  236. package/dist/index72.js +1 -1
  237. package/dist/index74.js +1 -1
  238. package/dist/index76.js +8 -8
  239. package/dist/index79.js +1 -1
  240. package/dist/index80.js +8 -7
  241. package/dist/index81.js +17 -174
  242. package/dist/index82.js +176 -10
  243. package/dist/index83.js +10 -862
  244. package/dist/index84.js +856 -16
  245. package/dist/index85.js +22 -10
  246. package/dist/index86.js +10 -243
  247. package/dist/index87.js +230 -298
  248. package/dist/index88.js +300 -216
  249. package/dist/index89.js +227 -10
  250. package/dist/index90.js +10 -7
  251. package/dist/index91.js +5 -25
  252. package/dist/index92.js +23 -64
  253. package/dist/index93.js +67 -33
  254. package/dist/index94.js +33 -181
  255. package/dist/index95.js +178 -48
  256. package/dist/index96.js +51 -7
  257. package/dist/index97.js +7 -24
  258. package/dist/index98.js +24 -5
  259. package/dist/index99.js +5 -69
  260. package/dist/style.css +1 -1
  261. package/dist/types/index.d.ts +32 -1
  262. 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,128 +1,72 @@
1
1
  "use client";
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";
5
- import { useComposedRefs as R } from "./index91.js";
6
- import { useCallbackRef as w } from "./index109.js";
7
- import { useEscapeKeydown as U } from "./index122.js";
8
- import { jsx as T } from "react/jsx-runtime";
9
- var z = "DismissableLayer", y = "dismissableLayer.update", H = "dismissableLayer.pointerDownOutside", M = "dismissableLayer.focusOutside", L, B = n.createContext({
10
- layers: /* @__PURE__ */ new Set(),
11
- layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
12
- branches: /* @__PURE__ */ new Set()
13
- }), j = n.forwardRef(
14
- (r, e) => {
15
- const {
16
- disableOutsidePointerEvents: i = !1,
17
- onEscapeKeyDown: o,
18
- onPointerDownOutside: t,
19
- onFocusOutside: a,
20
- onInteractOutside: l,
21
- onDismiss: d,
22
- ...v
23
- } = r, c = n.useContext(B), [u, S] = n.useState(null), f = (u == null ? void 0 : u.ownerDocument) ?? (globalThis == null ? void 0 : globalThis.document), [, F] = n.useState({}), W = R(e, (s) => S(s)), p = Array.from(c.layers), [A] = [...c.layersWithOutsidePointerEventsDisabled].slice(-1), N = p.indexOf(A), b = u ? p.indexOf(u) : -1, I = c.layersWithOutsidePointerEventsDisabled.size > 0, P = b >= N, _ = q((s) => {
24
- const E = s.target, C = [...c.branches].some((h) => h.contains(E));
25
- !P || C || (t == null || t(s), l == null || l(s), s.defaultPrevented || d == null || d());
26
- }, f), D = G((s) => {
27
- const E = s.target;
28
- [...c.branches].some((h) => h.contains(E)) || (a == null || a(s), l == null || l(s), s.defaultPrevented || d == null || d());
29
- }, f);
30
- return U((s) => {
31
- b === c.layers.size - 1 && (o == null || o(s), !s.defaultPrevented && d && (s.preventDefault(), d()));
32
- }, f), n.useEffect(() => {
33
- if (u)
34
- return i && (c.layersWithOutsidePointerEventsDisabled.size === 0 && (L = f.body.style.pointerEvents, f.body.style.pointerEvents = "none"), c.layersWithOutsidePointerEventsDisabled.add(u)), c.layers.add(u), O(), () => {
35
- i && c.layersWithOutsidePointerEventsDisabled.size === 1 && (f.body.style.pointerEvents = L);
36
- };
37
- }, [u, f, i, c]), n.useEffect(() => () => {
38
- u && (c.layers.delete(u), c.layersWithOutsidePointerEventsDisabled.delete(u), O());
39
- }, [u, c]), n.useEffect(() => {
40
- const s = () => F({});
41
- return document.addEventListener(y, s), () => document.removeEventListener(y, s);
42
- }, []), /* @__PURE__ */ T(
43
- g.div,
44
- {
45
- ...v,
46
- ref: W,
47
- style: {
48
- pointerEvents: I ? P ? "auto" : "none" : void 0,
49
- ...r.style
50
- },
51
- onFocusCapture: m(r.onFocusCapture, D.onFocusCapture),
52
- onBlurCapture: m(r.onBlurCapture, D.onBlurCapture),
53
- onPointerDownCapture: m(
54
- r.onPointerDownCapture,
55
- _.onPointerDownCapture
56
- )
57
- }
58
- );
59
- }
60
- );
61
- j.displayName = z;
62
- var X = "DismissableLayerBranch", Y = n.forwardRef((r, e) => {
63
- const i = n.useContext(B), o = n.useRef(null), t = R(e, o);
64
- return n.useEffect(() => {
65
- const a = o.current;
66
- if (a)
67
- return i.branches.add(a), () => {
68
- i.branches.delete(a);
69
- };
70
- }, [i.branches]), /* @__PURE__ */ T(g.div, { ...r, ref: t });
71
- });
72
- Y.displayName = X;
73
- function q(r, e = globalThis == null ? void 0 : globalThis.document) {
74
- const i = w(r), o = n.useRef(!1), t = n.useRef(() => {
75
- });
76
- return n.useEffect(() => {
77
- const a = (d) => {
78
- if (d.target && !o.current) {
79
- let v = function() {
80
- x(
81
- H,
82
- i,
83
- c,
84
- { discrete: !0 }
85
- );
86
- };
87
- const c = { originalEvent: d };
88
- d.pointerType === "touch" ? (e.removeEventListener("click", t.current), t.current = v, e.addEventListener("click", t.current, { once: !0 })) : v();
89
- } else
90
- e.removeEventListener("click", t.current);
91
- o.current = !1;
92
- }, l = window.setTimeout(() => {
93
- e.addEventListener("pointerdown", a);
94
- }, 0);
95
- return () => {
96
- window.clearTimeout(l), e.removeEventListener("pointerdown", a), e.removeEventListener("click", t.current);
97
- };
98
- }, [e, i]), {
99
- // ensures we check React component tree (not just DOM tree)
100
- onPointerDownCapture: () => o.current = !0
101
- };
2
+ import * as a from "react";
3
+ import { useComposedRefs as E } from "./index92.js";
4
+ import { useLayoutEffect as A } from "./index111.js";
5
+ function T(n, e) {
6
+ return a.useReducer((r, t) => e[r][t] ?? r, n);
102
7
  }
103
- function G(r, e = globalThis == null ? void 0 : globalThis.document) {
104
- const i = w(r), o = n.useRef(!1);
105
- return n.useEffect(() => {
106
- const t = (a) => {
107
- a.target && !o.current && x(M, i, { originalEvent: a }, {
108
- discrete: !1
109
- });
110
- };
111
- return e.addEventListener("focusin", t), () => e.removeEventListener("focusin", t);
112
- }, [e, i]), {
113
- onFocusCapture: () => o.current = !0,
114
- onBlurCapture: () => o.current = !1
8
+ var R = (n) => {
9
+ const { present: e, children: r } = n, t = v(e), i = typeof r == "function" ? r({ present: t.isPresent }) : a.Children.only(r), c = E(t.ref, P(i));
10
+ return typeof r == "function" || t.isPresent ? a.cloneElement(i, { ref: c }) : null;
11
+ };
12
+ R.displayName = "Presence";
13
+ function v(n) {
14
+ const [e, r] = a.useState(), t = a.useRef(null), i = a.useRef(n), c = a.useRef("none"), p = n ? "mounted" : "unmounted", [N, s] = T(p, {
15
+ mounted: {
16
+ UNMOUNT: "unmounted",
17
+ ANIMATION_OUT: "unmountSuspended"
18
+ },
19
+ unmountSuspended: {
20
+ MOUNT: "mounted",
21
+ ANIMATION_END: "unmounted"
22
+ },
23
+ unmounted: {
24
+ MOUNT: "mounted"
25
+ }
26
+ });
27
+ return a.useEffect(() => {
28
+ const o = l(t.current);
29
+ c.current = N === "mounted" ? o : "none";
30
+ }, [N]), A(() => {
31
+ const o = t.current, m = i.current;
32
+ if (m !== n) {
33
+ const f = c.current, u = l(o);
34
+ n ? s("MOUNT") : u === "none" || (o == null ? void 0 : o.display) === "none" ? s("UNMOUNT") : s(m && f !== u ? "ANIMATION_OUT" : "UNMOUNT"), i.current = n;
35
+ }
36
+ }, [n, s]), A(() => {
37
+ if (e) {
38
+ let o;
39
+ const m = e.ownerDocument.defaultView ?? window, d = (u) => {
40
+ const g = l(t.current).includes(CSS.escape(u.animationName));
41
+ if (u.target === e && g && (s("ANIMATION_END"), !i.current)) {
42
+ const O = e.style.animationFillMode;
43
+ e.style.animationFillMode = "forwards", o = m.setTimeout(() => {
44
+ e.style.animationFillMode === "forwards" && (e.style.animationFillMode = O);
45
+ });
46
+ }
47
+ }, f = (u) => {
48
+ u.target === e && (c.current = l(t.current));
49
+ };
50
+ return e.addEventListener("animationstart", f), e.addEventListener("animationcancel", d), e.addEventListener("animationend", d), () => {
51
+ m.clearTimeout(o), e.removeEventListener("animationstart", f), e.removeEventListener("animationcancel", d), e.removeEventListener("animationend", d);
52
+ };
53
+ } else
54
+ s("ANIMATION_END");
55
+ }, [e, s]), {
56
+ isPresent: ["mounted", "unmountSuspended"].includes(N),
57
+ ref: a.useCallback((o) => {
58
+ t.current = o ? getComputedStyle(o) : null, r(o);
59
+ }, [])
115
60
  };
116
61
  }
117
- function O() {
118
- const r = new CustomEvent(y);
119
- document.dispatchEvent(r);
62
+ function l(n) {
63
+ return (n == null ? void 0 : n.animationName) || "none";
120
64
  }
121
- function x(r, e, i, { discrete: o }) {
122
- const t = i.originalEvent.target, a = new CustomEvent(r, { bubbles: !1, cancelable: !0, detail: i });
123
- e && t.addEventListener(r, e, { once: !0 }), o ? k(t, a) : t.dispatchEvent(a);
65
+ function P(n) {
66
+ var t, i;
67
+ let e = (t = Object.getOwnPropertyDescriptor(n.props, "ref")) == null ? void 0 : t.get, r = e && "isReactWarning" in e && e.isReactWarning;
68
+ return r ? n.ref : (e = (i = Object.getOwnPropertyDescriptor(n, "ref")) == null ? void 0 : i.get, r = e && "isReactWarning" in e && e.isReactWarning, r ? n.props.ref : n.props.ref || n.ref);
124
69
  }
125
70
  export {
126
- j as DismissableLayer,
127
- Y as DismissableLayerBranch
71
+ R as Presence
128
72
  };
package/dist/index101.js CHANGED
@@ -1,13 +1,128 @@
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 n from "react";
3
+ import { composeEventHandlers as m } from "./index91.js";
4
+ import { Primitive as g, dispatchDiscreteCustomEvent as k } from "./index94.js";
5
+ import { useComposedRefs as R } from "./index92.js";
6
+ import { useCallbackRef as w } from "./index110.js";
7
+ import { useEscapeKeydown as U } from "./index123.js";
8
+ import { jsx as T } from "react/jsx-runtime";
9
+ var z = "DismissableLayer", y = "dismissableLayer.update", H = "dismissableLayer.pointerDownOutside", M = "dismissableLayer.focusOutside", L, B = n.createContext({
10
+ layers: /* @__PURE__ */ new Set(),
11
+ layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
12
+ branches: /* @__PURE__ */ new Set()
13
+ }), j = n.forwardRef(
14
+ (r, e) => {
15
+ const {
16
+ disableOutsidePointerEvents: i = !1,
17
+ onEscapeKeyDown: o,
18
+ onPointerDownOutside: t,
19
+ onFocusOutside: a,
20
+ onInteractOutside: l,
21
+ onDismiss: d,
22
+ ...v
23
+ } = r, c = n.useContext(B), [u, S] = n.useState(null), f = (u == null ? void 0 : u.ownerDocument) ?? (globalThis == null ? void 0 : globalThis.document), [, F] = n.useState({}), W = R(e, (s) => S(s)), p = Array.from(c.layers), [A] = [...c.layersWithOutsidePointerEventsDisabled].slice(-1), N = p.indexOf(A), b = u ? p.indexOf(u) : -1, I = c.layersWithOutsidePointerEventsDisabled.size > 0, P = b >= N, _ = q((s) => {
24
+ const E = s.target, C = [...c.branches].some((h) => h.contains(E));
25
+ !P || C || (t == null || t(s), l == null || l(s), s.defaultPrevented || d == null || d());
26
+ }, f), D = G((s) => {
27
+ const E = s.target;
28
+ [...c.branches].some((h) => h.contains(E)) || (a == null || a(s), l == null || l(s), s.defaultPrevented || d == null || d());
29
+ }, f);
30
+ return U((s) => {
31
+ b === c.layers.size - 1 && (o == null || o(s), !s.defaultPrevented && d && (s.preventDefault(), d()));
32
+ }, f), n.useEffect(() => {
33
+ if (u)
34
+ return i && (c.layersWithOutsidePointerEventsDisabled.size === 0 && (L = f.body.style.pointerEvents, f.body.style.pointerEvents = "none"), c.layersWithOutsidePointerEventsDisabled.add(u)), c.layers.add(u), O(), () => {
35
+ i && c.layersWithOutsidePointerEventsDisabled.size === 1 && (f.body.style.pointerEvents = L);
36
+ };
37
+ }, [u, f, i, c]), n.useEffect(() => () => {
38
+ u && (c.layers.delete(u), c.layersWithOutsidePointerEventsDisabled.delete(u), O());
39
+ }, [u, c]), n.useEffect(() => {
40
+ const s = () => F({});
41
+ return document.addEventListener(y, s), () => document.removeEventListener(y, s);
42
+ }, []), /* @__PURE__ */ T(
43
+ g.div,
44
+ {
45
+ ...v,
46
+ ref: W,
47
+ style: {
48
+ pointerEvents: I ? P ? "auto" : "none" : void 0,
49
+ ...r.style
50
+ },
51
+ onFocusCapture: m(r.onFocusCapture, D.onFocusCapture),
52
+ onBlurCapture: m(r.onBlurCapture, D.onBlurCapture),
53
+ onPointerDownCapture: m(
54
+ r.onPointerDownCapture,
55
+ _.onPointerDownCapture
56
+ )
57
+ }
58
+ );
59
+ }
60
+ );
61
+ j.displayName = z;
62
+ var X = "DismissableLayerBranch", Y = n.forwardRef((r, e) => {
63
+ const i = n.useContext(B), o = n.useRef(null), t = R(e, o);
64
+ return n.useEffect(() => {
65
+ const a = o.current;
66
+ if (a)
67
+ return i.branches.add(a), () => {
68
+ i.branches.delete(a);
69
+ };
70
+ }, [i.branches]), /* @__PURE__ */ T(g.div, { ...r, ref: t });
71
+ });
72
+ Y.displayName = X;
73
+ function q(r, e = globalThis == null ? void 0 : globalThis.document) {
74
+ const i = w(r), o = n.useRef(!1), t = n.useRef(() => {
75
+ });
76
+ return n.useEffect(() => {
77
+ const a = (d) => {
78
+ if (d.target && !o.current) {
79
+ let v = function() {
80
+ x(
81
+ H,
82
+ i,
83
+ c,
84
+ { discrete: !0 }
85
+ );
86
+ };
87
+ const c = { originalEvent: d };
88
+ d.pointerType === "touch" ? (e.removeEventListener("click", t.current), t.current = v, e.addEventListener("click", t.current, { once: !0 })) : v();
89
+ } else
90
+ e.removeEventListener("click", t.current);
91
+ o.current = !1;
92
+ }, l = window.setTimeout(() => {
93
+ e.addEventListener("pointerdown", a);
94
+ }, 0);
95
+ return () => {
96
+ window.clearTimeout(l), e.removeEventListener("pointerdown", a), e.removeEventListener("click", t.current);
97
+ };
98
+ }, [e, i]), {
99
+ // ensures we check React component tree (not just DOM tree)
100
+ onPointerDownCapture: () => o.current = !0
101
+ };
102
+ }
103
+ function G(r, e = globalThis == null ? void 0 : globalThis.document) {
104
+ const i = w(r), o = n.useRef(!1);
105
+ return n.useEffect(() => {
106
+ const t = (a) => {
107
+ a.target && !o.current && x(M, i, { originalEvent: a }, {
108
+ discrete: !1
109
+ });
110
+ };
111
+ return e.addEventListener("focusin", t), () => e.removeEventListener("focusin", t);
112
+ }, [e, i]), {
113
+ onFocusCapture: () => o.current = !0,
114
+ onBlurCapture: () => o.current = !1
115
+ };
116
+ }
117
+ function O() {
118
+ const r = new CustomEvent(y);
119
+ document.dispatchEvent(r);
120
+ }
121
+ function x(r, e, i, { discrete: o }) {
122
+ const t = i.originalEvent.target, a = new CustomEvent(r, { bubbles: !1, cancelable: !0, detail: i });
123
+ e && t.addEventListener(r, e, { once: !0 }), o ? k(t, a) : t.dispatchEvent(a);
10
124
  }
11
125
  export {
12
- d as useId
126
+ j as DismissableLayer,
127
+ Y as DismissableLayerBranch
13
128
  };