@epilot/volt-ui 1.1.7-alpha.1 → 1.1.8

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 (218) hide show
  1. package/README.md +1 -1
  2. package/dist/index.cjs.js +51 -0
  3. package/dist/index.es.js +11843 -137
  4. package/dist/preflight.css +1 -241
  5. package/dist/style.css +1 -7393
  6. package/package.json +4 -1
  7. package/dist/components/button/index.d.ts +0 -1
  8. package/dist/index.es.js.map +0 -1
  9. package/dist/index.es10.js +0 -35
  10. package/dist/index.es10.js.map +0 -1
  11. package/dist/index.es100.js +0 -14
  12. package/dist/index.es100.js.map +0 -1
  13. package/dist/index.es101.js +0 -20
  14. package/dist/index.es101.js.map +0 -1
  15. package/dist/index.es102.js +0 -103
  16. package/dist/index.es102.js.map +0 -1
  17. package/dist/index.es103.js +0 -12
  18. package/dist/index.es103.js.map +0 -1
  19. package/dist/index.es104.js +0 -30
  20. package/dist/index.es104.js.map +0 -1
  21. package/dist/index.es105.js +0 -38
  22. package/dist/index.es105.js.map +0 -1
  23. package/dist/index.es106.js +0 -17
  24. package/dist/index.es106.js.map +0 -1
  25. package/dist/index.es107.js +0 -49
  26. package/dist/index.es107.js.map +0 -1
  27. package/dist/index.es108.js +0 -10
  28. package/dist/index.es108.js.map +0 -1
  29. package/dist/index.es11.js +0 -318
  30. package/dist/index.es11.js.map +0 -1
  31. package/dist/index.es12.js +0 -274
  32. package/dist/index.es12.js.map +0 -1
  33. package/dist/index.es13.js +0 -38
  34. package/dist/index.es13.js.map +0 -1
  35. package/dist/index.es14.js +0 -48
  36. package/dist/index.es14.js.map +0 -1
  37. package/dist/index.es15.js +0 -67
  38. package/dist/index.es15.js.map +0 -1
  39. package/dist/index.es16.js +0 -120
  40. package/dist/index.es16.js.map +0 -1
  41. package/dist/index.es17.js +0 -27
  42. package/dist/index.es17.js.map +0 -1
  43. package/dist/index.es18.js +0 -51
  44. package/dist/index.es18.js.map +0 -1
  45. package/dist/index.es19.js +0 -168
  46. package/dist/index.es19.js.map +0 -1
  47. package/dist/index.es20.js +0 -55
  48. package/dist/index.es20.js.map +0 -1
  49. package/dist/index.es21.js +0 -61
  50. package/dist/index.es21.js.map +0 -1
  51. package/dist/index.es22.js +0 -86
  52. package/dist/index.es22.js.map +0 -1
  53. package/dist/index.es23.js +0 -195
  54. package/dist/index.es23.js.map +0 -1
  55. package/dist/index.es24.js +0 -105
  56. package/dist/index.es24.js.map +0 -1
  57. package/dist/index.es25.js +0 -146
  58. package/dist/index.es25.js.map +0 -1
  59. package/dist/index.es26.js +0 -92
  60. package/dist/index.es26.js.map +0 -1
  61. package/dist/index.es27.js +0 -80
  62. package/dist/index.es27.js.map +0 -1
  63. package/dist/index.es28.js +0 -94
  64. package/dist/index.es28.js.map +0 -1
  65. package/dist/index.es29.js +0 -82
  66. package/dist/index.es29.js.map +0 -1
  67. package/dist/index.es30.js +0 -1087
  68. package/dist/index.es30.js.map +0 -1
  69. package/dist/index.es31.js +0 -18
  70. package/dist/index.es31.js.map +0 -1
  71. package/dist/index.es32.js +0 -3015
  72. package/dist/index.es32.js.map +0 -1
  73. package/dist/index.es33.js +0 -107
  74. package/dist/index.es33.js.map +0 -1
  75. package/dist/index.es34.js +0 -46
  76. package/dist/index.es34.js.map +0 -1
  77. package/dist/index.es35.js +0 -151
  78. package/dist/index.es35.js.map +0 -1
  79. package/dist/index.es36.js +0 -1200
  80. package/dist/index.es36.js.map +0 -1
  81. package/dist/index.es37.js +0 -27
  82. package/dist/index.es37.js.map +0 -1
  83. package/dist/index.es38.js +0 -493
  84. package/dist/index.es38.js.map +0 -1
  85. package/dist/index.es39.js +0 -156
  86. package/dist/index.es39.js.map +0 -1
  87. package/dist/index.es4.js +0 -9
  88. package/dist/index.es4.js.map +0 -1
  89. package/dist/index.es40.js +0 -31
  90. package/dist/index.es40.js.map +0 -1
  91. package/dist/index.es41.js +0 -314
  92. package/dist/index.es41.js.map +0 -1
  93. package/dist/index.es42.js +0 -343
  94. package/dist/index.es42.js.map +0 -1
  95. package/dist/index.es43.js +0 -280
  96. package/dist/index.es43.js.map +0 -1
  97. package/dist/index.es44.js +0 -289
  98. package/dist/index.es44.js.map +0 -1
  99. package/dist/index.es45.js +0 -319
  100. package/dist/index.es45.js.map +0 -1
  101. package/dist/index.es46.js +0 -167
  102. package/dist/index.es46.js.map +0 -1
  103. package/dist/index.es47.js +0 -195
  104. package/dist/index.es47.js.map +0 -1
  105. package/dist/index.es48.js +0 -40
  106. package/dist/index.es48.js.map +0 -1
  107. package/dist/index.es49.js +0 -40
  108. package/dist/index.es49.js.map +0 -1
  109. package/dist/index.es5.js +0 -57
  110. package/dist/index.es5.js.map +0 -1
  111. package/dist/index.es50.js +0 -12
  112. package/dist/index.es50.js.map +0 -1
  113. package/dist/index.es51.js +0 -82
  114. package/dist/index.es51.js.map +0 -1
  115. package/dist/index.es52.js +0 -72
  116. package/dist/index.es52.js.map +0 -1
  117. package/dist/index.es53.js +0 -15
  118. package/dist/index.es53.js.map +0 -1
  119. package/dist/index.es54.js +0 -40
  120. package/dist/index.es54.js.map +0 -1
  121. package/dist/index.es55.js +0 -44
  122. package/dist/index.es55.js.map +0 -1
  123. package/dist/index.es56.js +0 -71
  124. package/dist/index.es56.js.map +0 -1
  125. package/dist/index.es57.js +0 -152
  126. package/dist/index.es57.js.map +0 -1
  127. package/dist/index.es58.js +0 -15
  128. package/dist/index.es58.js.map +0 -1
  129. package/dist/index.es59.js +0 -11
  130. package/dist/index.es59.js.map +0 -1
  131. package/dist/index.es6.js +0 -77
  132. package/dist/index.es6.js.map +0 -1
  133. package/dist/index.es60.js +0 -130
  134. package/dist/index.es60.js.map +0 -1
  135. package/dist/index.es61.js +0 -213
  136. package/dist/index.es61.js.map +0 -1
  137. package/dist/index.es62.js +0 -294
  138. package/dist/index.es62.js.map +0 -1
  139. package/dist/index.es63.js +0 -16
  140. package/dist/index.es63.js.map +0 -1
  141. package/dist/index.es64.js +0 -37
  142. package/dist/index.es64.js.map +0 -1
  143. package/dist/index.es65.js +0 -228
  144. package/dist/index.es65.js.map +0 -1
  145. package/dist/index.es66.js +0 -209
  146. package/dist/index.es66.js.map +0 -1
  147. package/dist/index.es67.js +0 -19
  148. package/dist/index.es67.js.map +0 -1
  149. package/dist/index.es68.js +0 -30
  150. package/dist/index.es68.js.map +0 -1
  151. package/dist/index.es69.js +0 -12
  152. package/dist/index.es69.js.map +0 -1
  153. package/dist/index.es7.js +0 -200
  154. package/dist/index.es7.js.map +0 -1
  155. package/dist/index.es70.js +0 -123
  156. package/dist/index.es70.js.map +0 -1
  157. package/dist/index.es71.js +0 -90
  158. package/dist/index.es71.js.map +0 -1
  159. package/dist/index.es72.js +0 -7
  160. package/dist/index.es72.js.map +0 -1
  161. package/dist/index.es73.js +0 -90
  162. package/dist/index.es73.js.map +0 -1
  163. package/dist/index.es74.js +0 -15
  164. package/dist/index.es74.js.map +0 -1
  165. package/dist/index.es75.js +0 -7
  166. package/dist/index.es75.js.map +0 -1
  167. package/dist/index.es76.js +0 -40
  168. package/dist/index.es76.js.map +0 -1
  169. package/dist/index.es77.js +0 -90
  170. package/dist/index.es77.js.map +0 -1
  171. package/dist/index.es78.js +0 -313
  172. package/dist/index.es78.js.map +0 -1
  173. package/dist/index.es79.js +0 -16
  174. package/dist/index.es79.js.map +0 -1
  175. package/dist/index.es8.js +0 -47
  176. package/dist/index.es8.js.map +0 -1
  177. package/dist/index.es80.js +0 -90
  178. package/dist/index.es80.js.map +0 -1
  179. package/dist/index.es81.js +0 -18
  180. package/dist/index.es81.js.map +0 -1
  181. package/dist/index.es82.js +0 -298
  182. package/dist/index.es82.js.map +0 -1
  183. package/dist/index.es83.js +0 -26
  184. package/dist/index.es83.js.map +0 -1
  185. package/dist/index.es84.js +0 -626
  186. package/dist/index.es84.js.map +0 -1
  187. package/dist/index.es85.js +0 -19
  188. package/dist/index.es85.js.map +0 -1
  189. package/dist/index.es86.js +0 -40
  190. package/dist/index.es86.js.map +0 -1
  191. package/dist/index.es87.js +0 -40
  192. package/dist/index.es87.js.map +0 -1
  193. package/dist/index.es88.js +0 -39
  194. package/dist/index.es88.js.map +0 -1
  195. package/dist/index.es89.js +0 -8
  196. package/dist/index.es89.js.map +0 -1
  197. package/dist/index.es9.js +0 -37
  198. package/dist/index.es9.js.map +0 -1
  199. package/dist/index.es90.js +0 -722
  200. package/dist/index.es90.js.map +0 -1
  201. package/dist/index.es91.js +0 -155
  202. package/dist/index.es91.js.map +0 -1
  203. package/dist/index.es92.js +0 -174
  204. package/dist/index.es92.js.map +0 -1
  205. package/dist/index.es93.js +0 -11
  206. package/dist/index.es93.js.map +0 -1
  207. package/dist/index.es94.js +0 -6
  208. package/dist/index.es94.js.map +0 -1
  209. package/dist/index.es95.js +0 -36
  210. package/dist/index.es95.js.map +0 -1
  211. package/dist/index.es96.js +0 -175
  212. package/dist/index.es96.js.map +0 -1
  213. package/dist/index.es97.js +0 -22
  214. package/dist/index.es97.js.map +0 -1
  215. package/dist/index.es98.js +0 -89
  216. package/dist/index.es98.js.map +0 -1
  217. package/dist/index.es99.js +0 -48
  218. package/dist/index.es99.js.map +0 -1
package/dist/index.es6.js DELETED
@@ -1,77 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Root as Slot } from "./index.es33.js";
3
- import { cva } from "./index.es34.js";
4
- import { Separator } from "./index.es17.js";
5
- import { cn } from "./index.es4.js";
6
- const buttonGroupVariants = cva(
7
- "volt-group/button-group volt-flex volt-w-fit volt-items-stretch [&>*:focus-visible]:z-10 [&>*:focus-visible]:relative has-[>[data-slot=button-group]]:gap-2",
8
- {
9
- variants: {
10
- orientation: {
11
- horizontal: "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",
12
- vertical: "volt-flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none"
13
- }
14
- },
15
- defaultVariants: {
16
- orientation: "horizontal"
17
- }
18
- }
19
- );
20
- const ButtonGroup = ({
21
- className,
22
- orientation,
23
- ...props
24
- }) => {
25
- return /* @__PURE__ */ jsx(
26
- "div",
27
- {
28
- role: "group",
29
- "data-slot": "button-group",
30
- "data-orientation": orientation,
31
- className: cn(buttonGroupVariants({ orientation }), className),
32
- ...props
33
- }
34
- );
35
- };
36
- const ButtonGroupText = ({
37
- className,
38
- asChild = false,
39
- ...props
40
- }) => {
41
- const Comp = asChild ? Slot : "div";
42
- return /* @__PURE__ */ jsx(
43
- Comp,
44
- {
45
- className: cn(
46
- "volt-bg-gray-a4 volt-flex volt-items-center volt-gap-2 volt-rounded-md volt-border volt-px-4 volt-py-3 volt-text-sm volt-font-medium volt-shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='volt-size-'])]:size-4",
47
- className
48
- ),
49
- ...props
50
- }
51
- );
52
- };
53
- const ButtonGroupSeparator = ({
54
- className,
55
- orientation = "vertical",
56
- ...props
57
- }) => {
58
- return /* @__PURE__ */ jsx(
59
- Separator,
60
- {
61
- "data-slot": "volt-button-group-separator",
62
- orientation,
63
- className: cn(
64
- "volt-m-0 volt-relative volt-self-stretch volt-data-[orientation=vertical]:h-px",
65
- className
66
- ),
67
- ...props
68
- }
69
- );
70
- };
71
- export {
72
- ButtonGroup,
73
- ButtonGroupSeparator,
74
- ButtonGroupText,
75
- buttonGroupVariants
76
- };
77
- //# sourceMappingURL=index.es6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.es6.js","sources":["../src/components/button/button-group.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Separator } from \"@/components/separator/seperator\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonGroupVariants = cva(\n \"group/button-group flex w-fit items-stretch [&>*:focus-visible]:z-10 [&>*:focus-visible]:relative has-[>[data-slot=button-group]]:gap-2\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n }\n)\n\nconst ButtonGroup = ({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) => {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nconst ButtonGroupText = ({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean\n}) => {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n className={cn(\n \"bg-gray-a4 flex items-center gap-2 rounded-md border px-4 py-3 text-sm font-medium shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst ButtonGroupSeparator = ({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) => {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"m-0 relative self-stretch data-[orientation=vertical]:h-px\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n"],"names":[],"mappings":";;;;;AAKA,MAAM,sBAAsB;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,aAAa;AAAA,QACX,YACE;AAAA,QACF,UACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ;AAEA,MAAM,cAAc,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA8E;AAC5E,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,oBAAkB;AAAA,MAClB,WAAW,GAAG,oBAAoB,EAAE,YAAA,CAAa,GAAG,SAAS;AAAA,MAC5D,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,MAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA,UAAU;AAAA,EACV,GAAG;AACL,MAEM;AACJ,QAAM,OAAO,UAAU,OAAO;AAE9B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,MAAM,uBAAuB,CAAC;AAAA,EAC5B;AAAA,EACA,cAAc;AAAA,EACd,GAAG;AACL,MAA8C;AAC5C,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -1,130 +0,0 @@
1
- import * as React from "react";
2
- import { useComposedRefs } from "./index.es48.js";
3
- import { useLayoutEffect as useLayoutEffect2 } from "./index.es75.js";
4
- function useStateMachine(initialState, machine) {
5
- return React.useReducer((state, event) => {
6
- const nextState = machine[state][event];
7
- return nextState ?? state;
8
- }, initialState);
9
- }
10
- var Presence = (props) => {
11
- const { present, children } = props;
12
- const presence = usePresence(present);
13
- const child = typeof children === "function" ? children({ present: presence.isPresent }) : React.Children.only(children);
14
- const ref = useComposedRefs(presence.ref, getElementRef(child));
15
- const forceMount = typeof children === "function";
16
- return forceMount || presence.isPresent ? React.cloneElement(child, { ref }) : null;
17
- };
18
- Presence.displayName = "Presence";
19
- function usePresence(present) {
20
- const [node, setNode] = React.useState();
21
- const stylesRef = React.useRef(null);
22
- const prevPresentRef = React.useRef(present);
23
- const prevAnimationNameRef = React.useRef("none");
24
- const initialState = present ? "mounted" : "unmounted";
25
- const [state, send] = useStateMachine(initialState, {
26
- mounted: {
27
- UNMOUNT: "unmounted",
28
- ANIMATION_OUT: "unmountSuspended"
29
- },
30
- unmountSuspended: {
31
- MOUNT: "mounted",
32
- ANIMATION_END: "unmounted"
33
- },
34
- unmounted: {
35
- MOUNT: "mounted"
36
- }
37
- });
38
- React.useEffect(() => {
39
- const currentAnimationName = getAnimationName(stylesRef.current);
40
- prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none";
41
- }, [state]);
42
- useLayoutEffect2(() => {
43
- const styles = stylesRef.current;
44
- const wasPresent = prevPresentRef.current;
45
- const hasPresentChanged = wasPresent !== present;
46
- if (hasPresentChanged) {
47
- const prevAnimationName = prevAnimationNameRef.current;
48
- const currentAnimationName = getAnimationName(styles);
49
- if (present) {
50
- send("MOUNT");
51
- } else if (currentAnimationName === "none" || (styles == null ? void 0 : styles.display) === "none") {
52
- send("UNMOUNT");
53
- } else {
54
- const isAnimating = prevAnimationName !== currentAnimationName;
55
- if (wasPresent && isAnimating) {
56
- send("ANIMATION_OUT");
57
- } else {
58
- send("UNMOUNT");
59
- }
60
- }
61
- prevPresentRef.current = present;
62
- }
63
- }, [present, send]);
64
- useLayoutEffect2(() => {
65
- if (node) {
66
- let timeoutId;
67
- const ownerWindow = node.ownerDocument.defaultView ?? window;
68
- const handleAnimationEnd = (event) => {
69
- const currentAnimationName = getAnimationName(stylesRef.current);
70
- const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));
71
- if (event.target === node && isCurrentAnimation) {
72
- send("ANIMATION_END");
73
- if (!prevPresentRef.current) {
74
- const currentFillMode = node.style.animationFillMode;
75
- node.style.animationFillMode = "forwards";
76
- timeoutId = ownerWindow.setTimeout(() => {
77
- if (node.style.animationFillMode === "forwards") {
78
- node.style.animationFillMode = currentFillMode;
79
- }
80
- });
81
- }
82
- }
83
- };
84
- const handleAnimationStart = (event) => {
85
- if (event.target === node) {
86
- prevAnimationNameRef.current = getAnimationName(stylesRef.current);
87
- }
88
- };
89
- node.addEventListener("animationstart", handleAnimationStart);
90
- node.addEventListener("animationcancel", handleAnimationEnd);
91
- node.addEventListener("animationend", handleAnimationEnd);
92
- return () => {
93
- ownerWindow.clearTimeout(timeoutId);
94
- node.removeEventListener("animationstart", handleAnimationStart);
95
- node.removeEventListener("animationcancel", handleAnimationEnd);
96
- node.removeEventListener("animationend", handleAnimationEnd);
97
- };
98
- } else {
99
- send("ANIMATION_END");
100
- }
101
- }, [node, send]);
102
- return {
103
- isPresent: ["mounted", "unmountSuspended"].includes(state),
104
- ref: React.useCallback((node2) => {
105
- stylesRef.current = node2 ? getComputedStyle(node2) : null;
106
- setNode(node2);
107
- }, [])
108
- };
109
- }
110
- function getAnimationName(styles) {
111
- return (styles == null ? void 0 : styles.animationName) || "none";
112
- }
113
- function getElementRef(element) {
114
- var _a, _b;
115
- let getter = (_a = Object.getOwnPropertyDescriptor(element.props, "ref")) == null ? void 0 : _a.get;
116
- let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
117
- if (mayWarn) {
118
- return element.ref;
119
- }
120
- getter = (_b = Object.getOwnPropertyDescriptor(element, "ref")) == null ? void 0 : _b.get;
121
- mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
122
- if (mayWarn) {
123
- return element.props.ref;
124
- }
125
- return element.props.ref || element.ref;
126
- }
127
- export {
128
- Presence
129
- };
130
- //# sourceMappingURL=index.es60.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.es60.js","sources":["../docs/node_modules/.bun/@radix-ui+react-presence@1.1.5+98e41321d0e6b3fa/node_modules/@radix-ui/react-presence/dist/index.mjs"],"sourcesContent":["\"use client\";\n\n// src/presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// src/use-state-machine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef(null);\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n stylesRef.current = node2 ? getComputedStyle(node2) : null;\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Presence;\nexport {\n Presence,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["React2","useLayoutEffect"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,213 +0,0 @@
1
- import * as React from "react";
2
- import { composeEventHandlers } from "./index.es50.js";
3
- import { Primitive, dispatchDiscreteCustomEvent } from "./index.es55.js";
4
- import { useComposedRefs } from "./index.es48.js";
5
- import { useCallbackRef } from "./index.es74.js";
6
- import { useEscapeKeydown } from "./index.es81.js";
7
- import { jsx } from "react/jsx-runtime";
8
- var DISMISSABLE_LAYER_NAME = "DismissableLayer";
9
- var CONTEXT_UPDATE = "dismissableLayer.update";
10
- var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
11
- var FOCUS_OUTSIDE = "dismissableLayer.focusOutside";
12
- var originalBodyPointerEvents;
13
- var DismissableLayerContext = React.createContext({
14
- layers: /* @__PURE__ */ new Set(),
15
- layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
16
- branches: /* @__PURE__ */ new Set()
17
- });
18
- var DismissableLayer = React.forwardRef(
19
- (props, forwardedRef) => {
20
- const {
21
- disableOutsidePointerEvents = false,
22
- onEscapeKeyDown,
23
- onPointerDownOutside,
24
- onFocusOutside,
25
- onInteractOutside,
26
- onDismiss,
27
- ...layerProps
28
- } = props;
29
- const context = React.useContext(DismissableLayerContext);
30
- const [node, setNode] = React.useState(null);
31
- const ownerDocument = (node == null ? void 0 : node.ownerDocument) ?? (globalThis == null ? void 0 : globalThis.document);
32
- const [, force] = React.useState({});
33
- const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));
34
- const layers = Array.from(context.layers);
35
- const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);
36
- const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);
37
- const index = node ? layers.indexOf(node) : -1;
38
- const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;
39
- const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;
40
- const pointerDownOutside = usePointerDownOutside((event) => {
41
- const target = event.target;
42
- const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));
43
- if (!isPointerEventsEnabled || isPointerDownOnBranch) return;
44
- onPointerDownOutside == null ? void 0 : onPointerDownOutside(event);
45
- onInteractOutside == null ? void 0 : onInteractOutside(event);
46
- if (!event.defaultPrevented) onDismiss == null ? void 0 : onDismiss();
47
- }, ownerDocument);
48
- const focusOutside = useFocusOutside((event) => {
49
- const target = event.target;
50
- const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));
51
- if (isFocusInBranch) return;
52
- onFocusOutside == null ? void 0 : onFocusOutside(event);
53
- onInteractOutside == null ? void 0 : onInteractOutside(event);
54
- if (!event.defaultPrevented) onDismiss == null ? void 0 : onDismiss();
55
- }, ownerDocument);
56
- useEscapeKeydown((event) => {
57
- const isHighestLayer = index === context.layers.size - 1;
58
- if (!isHighestLayer) return;
59
- onEscapeKeyDown == null ? void 0 : onEscapeKeyDown(event);
60
- if (!event.defaultPrevented && onDismiss) {
61
- event.preventDefault();
62
- onDismiss();
63
- }
64
- }, ownerDocument);
65
- React.useEffect(() => {
66
- if (!node) return;
67
- if (disableOutsidePointerEvents) {
68
- if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
69
- originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;
70
- ownerDocument.body.style.pointerEvents = "none";
71
- }
72
- context.layersWithOutsidePointerEventsDisabled.add(node);
73
- }
74
- context.layers.add(node);
75
- dispatchUpdate();
76
- return () => {
77
- if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {
78
- ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
79
- }
80
- };
81
- }, [node, ownerDocument, disableOutsidePointerEvents, context]);
82
- React.useEffect(() => {
83
- return () => {
84
- if (!node) return;
85
- context.layers.delete(node);
86
- context.layersWithOutsidePointerEventsDisabled.delete(node);
87
- dispatchUpdate();
88
- };
89
- }, [node, context]);
90
- React.useEffect(() => {
91
- const handleUpdate = () => force({});
92
- document.addEventListener(CONTEXT_UPDATE, handleUpdate);
93
- return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
94
- }, []);
95
- return /* @__PURE__ */ jsx(
96
- Primitive.div,
97
- {
98
- ...layerProps,
99
- ref: composedRefs,
100
- style: {
101
- pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
102
- ...props.style
103
- },
104
- onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
105
- onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
106
- onPointerDownCapture: composeEventHandlers(
107
- props.onPointerDownCapture,
108
- pointerDownOutside.onPointerDownCapture
109
- )
110
- }
111
- );
112
- }
113
- );
114
- DismissableLayer.displayName = DISMISSABLE_LAYER_NAME;
115
- var BRANCH_NAME = "DismissableLayerBranch";
116
- var DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {
117
- const context = React.useContext(DismissableLayerContext);
118
- const ref = React.useRef(null);
119
- const composedRefs = useComposedRefs(forwardedRef, ref);
120
- React.useEffect(() => {
121
- const node = ref.current;
122
- if (node) {
123
- context.branches.add(node);
124
- return () => {
125
- context.branches.delete(node);
126
- };
127
- }
128
- }, [context.branches]);
129
- return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });
130
- });
131
- DismissableLayerBranch.displayName = BRANCH_NAME;
132
- function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis == null ? void 0 : globalThis.document) {
133
- const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);
134
- const isPointerInsideReactTreeRef = React.useRef(false);
135
- const handleClickRef = React.useRef(() => {
136
- });
137
- React.useEffect(() => {
138
- const handlePointerDown = (event) => {
139
- if (event.target && !isPointerInsideReactTreeRef.current) {
140
- let handleAndDispatchPointerDownOutsideEvent2 = function() {
141
- handleAndDispatchCustomEvent(
142
- POINTER_DOWN_OUTSIDE,
143
- handlePointerDownOutside,
144
- eventDetail,
145
- { discrete: true }
146
- );
147
- };
148
- const eventDetail = { originalEvent: event };
149
- if (event.pointerType === "touch") {
150
- ownerDocument.removeEventListener("click", handleClickRef.current);
151
- handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;
152
- ownerDocument.addEventListener("click", handleClickRef.current, { once: true });
153
- } else {
154
- handleAndDispatchPointerDownOutsideEvent2();
155
- }
156
- } else {
157
- ownerDocument.removeEventListener("click", handleClickRef.current);
158
- }
159
- isPointerInsideReactTreeRef.current = false;
160
- };
161
- const timerId = window.setTimeout(() => {
162
- ownerDocument.addEventListener("pointerdown", handlePointerDown);
163
- }, 0);
164
- return () => {
165
- window.clearTimeout(timerId);
166
- ownerDocument.removeEventListener("pointerdown", handlePointerDown);
167
- ownerDocument.removeEventListener("click", handleClickRef.current);
168
- };
169
- }, [ownerDocument, handlePointerDownOutside]);
170
- return {
171
- // ensures we check React component tree (not just DOM tree)
172
- onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true
173
- };
174
- }
175
- function useFocusOutside(onFocusOutside, ownerDocument = globalThis == null ? void 0 : globalThis.document) {
176
- const handleFocusOutside = useCallbackRef(onFocusOutside);
177
- const isFocusInsideReactTreeRef = React.useRef(false);
178
- React.useEffect(() => {
179
- const handleFocus = (event) => {
180
- if (event.target && !isFocusInsideReactTreeRef.current) {
181
- const eventDetail = { originalEvent: event };
182
- handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {
183
- discrete: false
184
- });
185
- }
186
- };
187
- ownerDocument.addEventListener("focusin", handleFocus);
188
- return () => ownerDocument.removeEventListener("focusin", handleFocus);
189
- }, [ownerDocument, handleFocusOutside]);
190
- return {
191
- onFocusCapture: () => isFocusInsideReactTreeRef.current = true,
192
- onBlurCapture: () => isFocusInsideReactTreeRef.current = false
193
- };
194
- }
195
- function dispatchUpdate() {
196
- const event = new CustomEvent(CONTEXT_UPDATE);
197
- document.dispatchEvent(event);
198
- }
199
- function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
200
- const target = detail.originalEvent.target;
201
- const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });
202
- if (handler) target.addEventListener(name, handler, { once: true });
203
- if (discrete) {
204
- dispatchDiscreteCustomEvent(target, event);
205
- } else {
206
- target.dispatchEvent(event);
207
- }
208
- }
209
- export {
210
- DismissableLayer,
211
- DismissableLayerBranch
212
- };
213
- //# sourceMappingURL=index.es61.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.es61.js","sources":["../docs/node_modules/.bun/@radix-ui+react-dismissable-layer@1.1.11+98e41321d0e6b3fa/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs"],"sourcesContent":["\"use client\";\n\n// src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}