@backbay/glia 0.2.0-alpha.6 → 0.2.0-alpha.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 (226) hide show
  1. package/dist/audio/index.js +1145 -5
  2. package/dist/audio/index.js.map +1 -1
  3. package/dist/components/index.js +3187 -10
  4. package/dist/components/index.js.map +1 -1
  5. package/dist/core.js +19714 -12
  6. package/dist/core.js.map +1 -1
  7. package/dist/emotion/index.js +1 -1
  8. package/dist/emotion/index.js.map +1 -1
  9. package/dist/hooks/index.js +941 -6
  10. package/dist/hooks/index.js.map +1 -1
  11. package/dist/index.js +31841 -183
  12. package/dist/index.js.map +1 -1
  13. package/dist/primitives/index.js +21111 -57
  14. package/dist/primitives/index.js.map +1 -1
  15. package/dist/protocol/index.js +360 -2
  16. package/dist/protocol/index.js.map +1 -1
  17. package/dist/speakeasy/index.js +2786 -38
  18. package/dist/speakeasy/index.js.map +1 -1
  19. package/dist/styles.css +1 -1
  20. package/dist/theme/index.js +1150 -3
  21. package/dist/theme/index.js.map +1 -1
  22. package/dist/vision/index.js +370 -2
  23. package/dist/vision/index.js.map +1 -1
  24. package/dist/workspace/index.js +16824 -2
  25. package/dist/workspace/index.js.map +1 -1
  26. package/package.json +16 -10
  27. package/dist/AuroraBackground-AP6ZHVFA.js +0 -6
  28. package/dist/AuroraBackground-AP6ZHVFA.js.map +0 -1
  29. package/dist/BentoGrid-CDARICNM.js +0 -6
  30. package/dist/BentoGrid-CDARICNM.js.map +0 -1
  31. package/dist/CommandPalette-JCWJKRBY.js +0 -6
  32. package/dist/CommandPalette-JCWJKRBY.js.map +0 -1
  33. package/dist/Glass-H4X4ZI4P.js +0 -7
  34. package/dist/Glass-H4X4ZI4P.js.map +0 -1
  35. package/dist/GlitchText-KLQ57PPY.js +0 -6
  36. package/dist/GlitchText-KLQ57PPY.js.map +0 -1
  37. package/dist/GlowButton-VGBPMZO7.js +0 -6
  38. package/dist/GlowButton-VGBPMZO7.js.map +0 -1
  39. package/dist/Graph3D-GO7N2EZQ.js +0 -540
  40. package/dist/Graph3D-GO7N2EZQ.js.map +0 -1
  41. package/dist/HUDProgressRing-N6C5NAEV.js +0 -6
  42. package/dist/HUDProgressRing-N6C5NAEV.js.map +0 -1
  43. package/dist/KPIStat-PBQK27ZB.js +0 -6
  44. package/dist/KPIStat-PBQK27ZB.js.map +0 -1
  45. package/dist/NeonToast-W5F7MU3U.js +0 -6
  46. package/dist/NeonToast-W5F7MU3U.js.map +0 -1
  47. package/dist/ParticleField-WK6CNHWU.js +0 -51
  48. package/dist/ParticleField-WK6CNHWU.js.map +0 -1
  49. package/dist/TextGenerateEffect-EUCEIIUJ.js +0 -6
  50. package/dist/TextGenerateEffect-EUCEIIUJ.js.map +0 -1
  51. package/dist/ThreeDCard-VH5I3SSY.js +0 -6
  52. package/dist/ThreeDCard-VH5I3SSY.js.map +0 -1
  53. package/dist/TypingAnimation-GIWOHPIX.js +0 -6
  54. package/dist/TypingAnimation-GIWOHPIX.js.map +0 -1
  55. package/dist/alert-dialog-QOSYBIIE.js +0 -19
  56. package/dist/alert-dialog-QOSYBIIE.js.map +0 -1
  57. package/dist/avatar-N5R37PCU.js +0 -10
  58. package/dist/avatar-N5R37PCU.js.map +0 -1
  59. package/dist/badge-GTVIIGPY.js +0 -8
  60. package/dist/badge-GTVIIGPY.js.map +0 -1
  61. package/dist/button-D7IMSV2D.js +0 -8
  62. package/dist/button-D7IMSV2D.js.map +0 -1
  63. package/dist/chunk-3CMPQOMY.js +0 -69
  64. package/dist/chunk-3CMPQOMY.js.map +0 -1
  65. package/dist/chunk-3OQT6IYR.js +0 -41
  66. package/dist/chunk-3OQT6IYR.js.map +0 -1
  67. package/dist/chunk-43B2WVLS.js +0 -85
  68. package/dist/chunk-43B2WVLS.js.map +0 -1
  69. package/dist/chunk-4SRFO5W3.js +0 -121
  70. package/dist/chunk-4SRFO5W3.js.map +0 -1
  71. package/dist/chunk-5IZELOOU.js +0 -362
  72. package/dist/chunk-5IZELOOU.js.map +0 -1
  73. package/dist/chunk-6DM4ACSS.js +0 -154
  74. package/dist/chunk-6DM4ACSS.js.map +0 -1
  75. package/dist/chunk-6IGT34PC.js +0 -50
  76. package/dist/chunk-6IGT34PC.js.map +0 -1
  77. package/dist/chunk-6RKBCJHN.js +0 -194
  78. package/dist/chunk-6RKBCJHN.js.map +0 -1
  79. package/dist/chunk-6RX2WGCO.js +0 -108
  80. package/dist/chunk-6RX2WGCO.js.map +0 -1
  81. package/dist/chunk-7K4WZM3U.js +0 -189
  82. package/dist/chunk-7K4WZM3U.js.map +0 -1
  83. package/dist/chunk-7MDBHJPT.js +0 -407
  84. package/dist/chunk-7MDBHJPT.js.map +0 -1
  85. package/dist/chunk-7UQD6ROV.js +0 -9
  86. package/dist/chunk-7UQD6ROV.js.map +0 -1
  87. package/dist/chunk-AFNIVLZP.js +0 -1069
  88. package/dist/chunk-AFNIVLZP.js.map +0 -1
  89. package/dist/chunk-ANWYRO6A.js +0 -407
  90. package/dist/chunk-ANWYRO6A.js.map +0 -1
  91. package/dist/chunk-DIXPOHDO.js +0 -71
  92. package/dist/chunk-DIXPOHDO.js.map +0 -1
  93. package/dist/chunk-DWYMKYPI.js +0 -3
  94. package/dist/chunk-DWYMKYPI.js.map +0 -1
  95. package/dist/chunk-E3NVDCZG.js +0 -280
  96. package/dist/chunk-E3NVDCZG.js.map +0 -1
  97. package/dist/chunk-EBM7YBKL.js +0 -399
  98. package/dist/chunk-EBM7YBKL.js.map +0 -1
  99. package/dist/chunk-EPAM7IWW.js +0 -294
  100. package/dist/chunk-EPAM7IWW.js.map +0 -1
  101. package/dist/chunk-EXQ7GYRS.js +0 -134
  102. package/dist/chunk-EXQ7GYRS.js.map +0 -1
  103. package/dist/chunk-F4QTUZ3C.js +0 -136
  104. package/dist/chunk-F4QTUZ3C.js.map +0 -1
  105. package/dist/chunk-FEW533R2.js +0 -105
  106. package/dist/chunk-FEW533R2.js.map +0 -1
  107. package/dist/chunk-FFZLJKC7.js +0 -270
  108. package/dist/chunk-FFZLJKC7.js.map +0 -1
  109. package/dist/chunk-GEAMOBF7.js +0 -8486
  110. package/dist/chunk-GEAMOBF7.js.map +0 -1
  111. package/dist/chunk-GRTRSCTD.js +0 -74
  112. package/dist/chunk-GRTRSCTD.js.map +0 -1
  113. package/dist/chunk-IKGYOGLK.js +0 -16
  114. package/dist/chunk-IKGYOGLK.js.map +0 -1
  115. package/dist/chunk-IQ7WYWVJ.js +0 -73
  116. package/dist/chunk-IQ7WYWVJ.js.map +0 -1
  117. package/dist/chunk-IXIVWQLF.js +0 -543
  118. package/dist/chunk-IXIVWQLF.js.map +0 -1
  119. package/dist/chunk-JCJU57RC.js +0 -115
  120. package/dist/chunk-JCJU57RC.js.map +0 -1
  121. package/dist/chunk-KORSTBU4.js +0 -117
  122. package/dist/chunk-KORSTBU4.js.map +0 -1
  123. package/dist/chunk-KSEZ6UM2.js +0 -235
  124. package/dist/chunk-KSEZ6UM2.js.map +0 -1
  125. package/dist/chunk-MHPF7R3O.js +0 -1376
  126. package/dist/chunk-MHPF7R3O.js.map +0 -1
  127. package/dist/chunk-MPC5IH7E.js +0 -81
  128. package/dist/chunk-MPC5IH7E.js.map +0 -1
  129. package/dist/chunk-MQIU2NYA.js +0 -114
  130. package/dist/chunk-MQIU2NYA.js.map +0 -1
  131. package/dist/chunk-NYMBJOGR.js +0 -2192
  132. package/dist/chunk-NYMBJOGR.js.map +0 -1
  133. package/dist/chunk-OBZD2M3C.js +0 -169
  134. package/dist/chunk-OBZD2M3C.js.map +0 -1
  135. package/dist/chunk-ODM2AG6G.js +0 -176
  136. package/dist/chunk-ODM2AG6G.js.map +0 -1
  137. package/dist/chunk-ONDKF5LP.js +0 -53
  138. package/dist/chunk-ONDKF5LP.js.map +0 -1
  139. package/dist/chunk-P25YCWQB.js +0 -41
  140. package/dist/chunk-P25YCWQB.js.map +0 -1
  141. package/dist/chunk-PFYVNM6H.js +0 -14
  142. package/dist/chunk-PFYVNM6H.js.map +0 -1
  143. package/dist/chunk-PWNNSGFL.js +0 -20
  144. package/dist/chunk-PWNNSGFL.js.map +0 -1
  145. package/dist/chunk-Q2PGZVOT.js +0 -36
  146. package/dist/chunk-Q2PGZVOT.js.map +0 -1
  147. package/dist/chunk-Q2XDMV7U.js +0 -76
  148. package/dist/chunk-Q2XDMV7U.js.map +0 -1
  149. package/dist/chunk-QG7FH2FI.js +0 -45
  150. package/dist/chunk-QG7FH2FI.js.map +0 -1
  151. package/dist/chunk-R7HUOK2D.js +0 -1914
  152. package/dist/chunk-R7HUOK2D.js.map +0 -1
  153. package/dist/chunk-REUYY7G5.js +0 -773
  154. package/dist/chunk-REUYY7G5.js.map +0 -1
  155. package/dist/chunk-RHC2Z2HT.js +0 -199
  156. package/dist/chunk-RHC2Z2HT.js.map +0 -1
  157. package/dist/chunk-RMCVLIFE.js +0 -23
  158. package/dist/chunk-RMCVLIFE.js.map +0 -1
  159. package/dist/chunk-ROZLTXGR.js +0 -234
  160. package/dist/chunk-ROZLTXGR.js.map +0 -1
  161. package/dist/chunk-RSS2C2O3.js +0 -17
  162. package/dist/chunk-RSS2C2O3.js.map +0 -1
  163. package/dist/chunk-SAGCG5SH.js +0 -355
  164. package/dist/chunk-SAGCG5SH.js.map +0 -1
  165. package/dist/chunk-TM6AOUSD.js +0 -40
  166. package/dist/chunk-TM6AOUSD.js.map +0 -1
  167. package/dist/chunk-TPK4BYCO.js +0 -970
  168. package/dist/chunk-TPK4BYCO.js.map +0 -1
  169. package/dist/chunk-UNQIL4K2.js +0 -34
  170. package/dist/chunk-UNQIL4K2.js.map +0 -1
  171. package/dist/chunk-UUG6L75Y.js +0 -47
  172. package/dist/chunk-UUG6L75Y.js.map +0 -1
  173. package/dist/chunk-V2SYMV4W.js +0 -114
  174. package/dist/chunk-V2SYMV4W.js.map +0 -1
  175. package/dist/chunk-V7EN5CTH.js +0 -130
  176. package/dist/chunk-V7EN5CTH.js.map +0 -1
  177. package/dist/chunk-VITKG2HL.js +0 -1125
  178. package/dist/chunk-VITKG2HL.js.map +0 -1
  179. package/dist/chunk-VYEWU5LO.js +0 -2631
  180. package/dist/chunk-VYEWU5LO.js.map +0 -1
  181. package/dist/chunk-W67QAGSH.js +0 -178
  182. package/dist/chunk-W67QAGSH.js.map +0 -1
  183. package/dist/chunk-WWBIN6KV.js +0 -1353
  184. package/dist/chunk-WWBIN6KV.js.map +0 -1
  185. package/dist/chunk-X77Z4PFB.js +0 -224
  186. package/dist/chunk-X77Z4PFB.js.map +0 -1
  187. package/dist/chunk-X7VG7OTT.js +0 -8
  188. package/dist/chunk-X7VG7OTT.js.map +0 -1
  189. package/dist/chunk-XE4K2SGI.js +0 -74
  190. package/dist/chunk-XE4K2SGI.js.map +0 -1
  191. package/dist/chunk-YIUG7IJK.js +0 -628
  192. package/dist/chunk-YIUG7IJK.js.map +0 -1
  193. package/dist/chunk-YNVN3V4Y.js +0 -13
  194. package/dist/chunk-YNVN3V4Y.js.map +0 -1
  195. package/dist/chunk-Z2S54IZX.js +0 -198
  196. package/dist/chunk-Z2S54IZX.js.map +0 -1
  197. package/dist/chunk-ZR6AH25Z.js +0 -17
  198. package/dist/chunk-ZR6AH25Z.js.map +0 -1
  199. package/dist/dialog-SPM3DTTI.js +0 -17
  200. package/dist/dialog-SPM3DTTI.js.map +0 -1
  201. package/dist/dropdown-menu-HMTWKWGK.js +0 -21
  202. package/dist/dropdown-menu-HMTWKWGK.js.map +0 -1
  203. package/dist/input-BH4P4S26.js +0 -6
  204. package/dist/input-BH4P4S26.js.map +0 -1
  205. package/dist/label-5Z4Q6VER.js +0 -8
  206. package/dist/label-5Z4Q6VER.js.map +0 -1
  207. package/dist/popover-IFOUXYLI.js +0 -18
  208. package/dist/popover-IFOUXYLI.js.map +0 -1
  209. package/dist/scroll-area-DJXNW6QX.js +0 -14
  210. package/dist/scroll-area-DJXNW6QX.js.map +0 -1
  211. package/dist/select-FZ277C3G.js +0 -22
  212. package/dist/select-FZ277C3G.js.map +0 -1
  213. package/dist/separator-BTMLN4NB.js +0 -8
  214. package/dist/separator-BTMLN4NB.js.map +0 -1
  215. package/dist/skeleton-DXIWBH4W.js +0 -6
  216. package/dist/skeleton-DXIWBH4W.js.map +0 -1
  217. package/dist/switch-4MCXIZBY.js +0 -13
  218. package/dist/switch-4MCXIZBY.js.map +0 -1
  219. package/dist/tabs-O7AW3APK.js +0 -17
  220. package/dist/tabs-O7AW3APK.js.map +0 -1
  221. package/dist/textarea-IB5WAFDO.js +0 -6
  222. package/dist/textarea-IB5WAFDO.js.map +0 -1
  223. package/dist/toggle-XVPPG6P4.js +0 -10
  224. package/dist/toggle-XVPPG6P4.js.map +0 -1
  225. package/dist/tooltip-JICZTD4F.js +0 -18
  226. package/dist/tooltip-JICZTD4F.js.map +0 -1
@@ -1,399 +0,0 @@
1
- import { Combination_default, hideOthers, useFocusGuards, FocusScope } from './chunk-AFNIVLZP.js';
2
- import { DismissableLayer, Portal } from './chunk-ROZLTXGR.js';
3
- import { useId } from './chunk-IKGYOGLK.js';
4
- import { Presence } from './chunk-V7EN5CTH.js';
5
- import { createContextScope, createContext2 } from './chunk-MPC5IH7E.js';
6
- import { useControllableState } from './chunk-DIXPOHDO.js';
7
- import { Primitive, composeEventHandlers } from './chunk-EXQ7GYRS.js';
8
- import { useComposedRefs, composeRefs } from './chunk-P25YCWQB.js';
9
- import * as React2 from 'react';
10
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
11
-
12
- // @__NO_SIDE_EFFECTS__
13
- function createSlot(ownerName) {
14
- const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
15
- const Slot2 = React2.forwardRef((props, forwardedRef) => {
16
- const { children, ...slotProps } = props;
17
- const childrenArray = React2.Children.toArray(children);
18
- const slottable = childrenArray.find(isSlottable);
19
- if (slottable) {
20
- const newElement = slottable.props.children;
21
- const newChildren = childrenArray.map((child) => {
22
- if (child === slottable) {
23
- if (React2.Children.count(newElement) > 1) return React2.Children.only(null);
24
- return React2.isValidElement(newElement) ? newElement.props.children : null;
25
- } else {
26
- return child;
27
- }
28
- });
29
- return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React2.isValidElement(newElement) ? React2.cloneElement(newElement, void 0, newChildren) : null });
30
- }
31
- return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });
32
- });
33
- Slot2.displayName = `${ownerName}.Slot`;
34
- return Slot2;
35
- }
36
- // @__NO_SIDE_EFFECTS__
37
- function createSlotClone(ownerName) {
38
- const SlotClone = React2.forwardRef((props, forwardedRef) => {
39
- const { children, ...slotProps } = props;
40
- if (React2.isValidElement(children)) {
41
- const childrenRef = getElementRef(children);
42
- const props2 = mergeProps(slotProps, children.props);
43
- if (children.type !== React2.Fragment) {
44
- props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
45
- }
46
- return React2.cloneElement(children, props2);
47
- }
48
- return React2.Children.count(children) > 1 ? React2.Children.only(null) : null;
49
- });
50
- SlotClone.displayName = `${ownerName}.SlotClone`;
51
- return SlotClone;
52
- }
53
- var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol("radix.slottable");
54
- function isSlottable(child) {
55
- return React2.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
56
- }
57
- function mergeProps(slotProps, childProps) {
58
- const overrideProps = { ...childProps };
59
- for (const propName in childProps) {
60
- const slotPropValue = slotProps[propName];
61
- const childPropValue = childProps[propName];
62
- const isHandler = /^on[A-Z]/.test(propName);
63
- if (isHandler) {
64
- if (slotPropValue && childPropValue) {
65
- overrideProps[propName] = (...args) => {
66
- const result = childPropValue(...args);
67
- slotPropValue(...args);
68
- return result;
69
- };
70
- } else if (slotPropValue) {
71
- overrideProps[propName] = slotPropValue;
72
- }
73
- } else if (propName === "style") {
74
- overrideProps[propName] = { ...slotPropValue, ...childPropValue };
75
- } else if (propName === "className") {
76
- overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
77
- }
78
- }
79
- return { ...slotProps, ...overrideProps };
80
- }
81
- function getElementRef(element) {
82
- let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
83
- let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
84
- if (mayWarn) {
85
- return element.ref;
86
- }
87
- getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
88
- mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
89
- if (mayWarn) {
90
- return element.props.ref;
91
- }
92
- return element.props.ref || element.ref;
93
- }
94
- var DIALOG_NAME = "Dialog";
95
- var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
96
- var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
97
- var Dialog = (props) => {
98
- const {
99
- __scopeDialog,
100
- children,
101
- open: openProp,
102
- defaultOpen,
103
- onOpenChange,
104
- modal = true
105
- } = props;
106
- const triggerRef = React2.useRef(null);
107
- const contentRef = React2.useRef(null);
108
- const [open, setOpen] = useControllableState({
109
- prop: openProp,
110
- defaultProp: defaultOpen ?? false,
111
- onChange: onOpenChange,
112
- caller: DIALOG_NAME
113
- });
114
- return /* @__PURE__ */ jsx(
115
- DialogProvider,
116
- {
117
- scope: __scopeDialog,
118
- triggerRef,
119
- contentRef,
120
- contentId: useId(),
121
- titleId: useId(),
122
- descriptionId: useId(),
123
- open,
124
- onOpenChange: setOpen,
125
- onOpenToggle: React2.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
126
- modal,
127
- children
128
- }
129
- );
130
- };
131
- Dialog.displayName = DIALOG_NAME;
132
- var TRIGGER_NAME = "DialogTrigger";
133
- var DialogTrigger = React2.forwardRef(
134
- (props, forwardedRef) => {
135
- const { __scopeDialog, ...triggerProps } = props;
136
- const context = useDialogContext(TRIGGER_NAME, __scopeDialog);
137
- const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
138
- return /* @__PURE__ */ jsx(
139
- Primitive.button,
140
- {
141
- type: "button",
142
- "aria-haspopup": "dialog",
143
- "aria-expanded": context.open,
144
- "aria-controls": context.contentId,
145
- "data-state": getState(context.open),
146
- ...triggerProps,
147
- ref: composedTriggerRef,
148
- onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
149
- }
150
- );
151
- }
152
- );
153
- DialogTrigger.displayName = TRIGGER_NAME;
154
- var PORTAL_NAME = "DialogPortal";
155
- var [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {
156
- forceMount: void 0
157
- });
158
- var DialogPortal = (props) => {
159
- const { __scopeDialog, forceMount, children, container } = props;
160
- const context = useDialogContext(PORTAL_NAME, __scopeDialog);
161
- return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React2.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal, { asChild: true, container, children: child }) })) });
162
- };
163
- DialogPortal.displayName = PORTAL_NAME;
164
- var OVERLAY_NAME = "DialogOverlay";
165
- var DialogOverlay = React2.forwardRef(
166
- (props, forwardedRef) => {
167
- const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);
168
- const { forceMount = portalContext.forceMount, ...overlayProps } = props;
169
- const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
170
- return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
171
- }
172
- );
173
- DialogOverlay.displayName = OVERLAY_NAME;
174
- var Slot = createSlot("DialogOverlay.RemoveScroll");
175
- var DialogOverlayImpl = React2.forwardRef(
176
- (props, forwardedRef) => {
177
- const { __scopeDialog, ...overlayProps } = props;
178
- const context = useDialogContext(OVERLAY_NAME, __scopeDialog);
179
- return (
180
- // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
181
- // ie. when `Overlay` and `Content` are siblings
182
- /* @__PURE__ */ jsx(Combination_default, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(
183
- Primitive.div,
184
- {
185
- "data-state": getState(context.open),
186
- ...overlayProps,
187
- ref: forwardedRef,
188
- style: { pointerEvents: "auto", ...overlayProps.style }
189
- }
190
- ) })
191
- );
192
- }
193
- );
194
- var CONTENT_NAME = "DialogContent";
195
- var DialogContent = React2.forwardRef(
196
- (props, forwardedRef) => {
197
- const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);
198
- const { forceMount = portalContext.forceMount, ...contentProps } = props;
199
- const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
200
- return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
201
- }
202
- );
203
- DialogContent.displayName = CONTENT_NAME;
204
- var DialogContentModal = React2.forwardRef(
205
- (props, forwardedRef) => {
206
- const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
207
- const contentRef = React2.useRef(null);
208
- const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);
209
- React2.useEffect(() => {
210
- const content = contentRef.current;
211
- if (content) return hideOthers(content);
212
- }, []);
213
- return /* @__PURE__ */ jsx(
214
- DialogContentImpl,
215
- {
216
- ...props,
217
- ref: composedRefs,
218
- trapFocus: context.open,
219
- disableOutsidePointerEvents: true,
220
- onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
221
- event.preventDefault();
222
- context.triggerRef.current?.focus();
223
- }),
224
- onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {
225
- const originalEvent = event.detail.originalEvent;
226
- const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
227
- const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
228
- if (isRightClick) event.preventDefault();
229
- }),
230
- onFocusOutside: composeEventHandlers(
231
- props.onFocusOutside,
232
- (event) => event.preventDefault()
233
- )
234
- }
235
- );
236
- }
237
- );
238
- var DialogContentNonModal = React2.forwardRef(
239
- (props, forwardedRef) => {
240
- const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
241
- const hasInteractedOutsideRef = React2.useRef(false);
242
- const hasPointerDownOutsideRef = React2.useRef(false);
243
- return /* @__PURE__ */ jsx(
244
- DialogContentImpl,
245
- {
246
- ...props,
247
- ref: forwardedRef,
248
- trapFocus: false,
249
- disableOutsidePointerEvents: false,
250
- onCloseAutoFocus: (event) => {
251
- props.onCloseAutoFocus?.(event);
252
- if (!event.defaultPrevented) {
253
- if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();
254
- event.preventDefault();
255
- }
256
- hasInteractedOutsideRef.current = false;
257
- hasPointerDownOutsideRef.current = false;
258
- },
259
- onInteractOutside: (event) => {
260
- props.onInteractOutside?.(event);
261
- if (!event.defaultPrevented) {
262
- hasInteractedOutsideRef.current = true;
263
- if (event.detail.originalEvent.type === "pointerdown") {
264
- hasPointerDownOutsideRef.current = true;
265
- }
266
- }
267
- const target = event.target;
268
- const targetIsTrigger = context.triggerRef.current?.contains(target);
269
- if (targetIsTrigger) event.preventDefault();
270
- if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) {
271
- event.preventDefault();
272
- }
273
- }
274
- }
275
- );
276
- }
277
- );
278
- var DialogContentImpl = React2.forwardRef(
279
- (props, forwardedRef) => {
280
- const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;
281
- const context = useDialogContext(CONTENT_NAME, __scopeDialog);
282
- const contentRef = React2.useRef(null);
283
- const composedRefs = useComposedRefs(forwardedRef, contentRef);
284
- useFocusGuards();
285
- return /* @__PURE__ */ jsxs(Fragment, { children: [
286
- /* @__PURE__ */ jsx(
287
- FocusScope,
288
- {
289
- asChild: true,
290
- loop: true,
291
- trapped: trapFocus,
292
- onMountAutoFocus: onOpenAutoFocus,
293
- onUnmountAutoFocus: onCloseAutoFocus,
294
- children: /* @__PURE__ */ jsx(
295
- DismissableLayer,
296
- {
297
- role: "dialog",
298
- id: context.contentId,
299
- "aria-describedby": context.descriptionId,
300
- "aria-labelledby": context.titleId,
301
- "data-state": getState(context.open),
302
- ...contentProps,
303
- ref: composedRefs,
304
- onDismiss: () => context.onOpenChange(false)
305
- }
306
- )
307
- }
308
- ),
309
- /* @__PURE__ */ jsxs(Fragment, { children: [
310
- /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),
311
- /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
312
- ] })
313
- ] });
314
- }
315
- );
316
- var TITLE_NAME = "DialogTitle";
317
- var DialogTitle = React2.forwardRef(
318
- (props, forwardedRef) => {
319
- const { __scopeDialog, ...titleProps } = props;
320
- const context = useDialogContext(TITLE_NAME, __scopeDialog);
321
- return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
322
- }
323
- );
324
- DialogTitle.displayName = TITLE_NAME;
325
- var DESCRIPTION_NAME = "DialogDescription";
326
- var DialogDescription = React2.forwardRef(
327
- (props, forwardedRef) => {
328
- const { __scopeDialog, ...descriptionProps } = props;
329
- const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
330
- return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
331
- }
332
- );
333
- DialogDescription.displayName = DESCRIPTION_NAME;
334
- var CLOSE_NAME = "DialogClose";
335
- var DialogClose = React2.forwardRef(
336
- (props, forwardedRef) => {
337
- const { __scopeDialog, ...closeProps } = props;
338
- const context = useDialogContext(CLOSE_NAME, __scopeDialog);
339
- return /* @__PURE__ */ jsx(
340
- Primitive.button,
341
- {
342
- type: "button",
343
- ...closeProps,
344
- ref: forwardedRef,
345
- onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))
346
- }
347
- );
348
- }
349
- );
350
- DialogClose.displayName = CLOSE_NAME;
351
- function getState(open) {
352
- return open ? "open" : "closed";
353
- }
354
- var TITLE_WARNING_NAME = "DialogTitleWarning";
355
- var [WarningProvider, useWarningContext] = createContext2(TITLE_WARNING_NAME, {
356
- contentName: CONTENT_NAME,
357
- titleName: TITLE_NAME,
358
- docsSlug: "dialog"
359
- });
360
- var TitleWarning = ({ titleId }) => {
361
- const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);
362
- const MESSAGE = `\`${titleWarningContext.contentName}\` requires a \`${titleWarningContext.titleName}\` for the component to be accessible for screen reader users.
363
-
364
- If you want to hide the \`${titleWarningContext.titleName}\`, you can wrap it with our VisuallyHidden component.
365
-
366
- For more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;
367
- React2.useEffect(() => {
368
- if (titleId) {
369
- const hasTitle = document.getElementById(titleId);
370
- if (!hasTitle) console.error(MESSAGE);
371
- }
372
- }, [MESSAGE, titleId]);
373
- return null;
374
- };
375
- var DESCRIPTION_WARNING_NAME = "DialogDescriptionWarning";
376
- var DescriptionWarning = ({ contentRef, descriptionId }) => {
377
- const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);
378
- const MESSAGE = `Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${descriptionWarningContext.contentName}}.`;
379
- React2.useEffect(() => {
380
- const describedById = contentRef.current?.getAttribute("aria-describedby");
381
- if (descriptionId && describedById) {
382
- const hasDescription = document.getElementById(descriptionId);
383
- if (!hasDescription) console.warn(MESSAGE);
384
- }
385
- }, [MESSAGE, contentRef, descriptionId]);
386
- return null;
387
- };
388
- var Root = Dialog;
389
- var Trigger = DialogTrigger;
390
- var Portal2 = DialogPortal;
391
- var Overlay = DialogOverlay;
392
- var Content = DialogContent;
393
- var Title = DialogTitle;
394
- var Description = DialogDescription;
395
- var Close = DialogClose;
396
-
397
- export { Close, Content, Description, Overlay, Portal2 as Portal, Root, Title, Trigger, WarningProvider, createDialogScope };
398
- //# sourceMappingURL=chunk-EBM7YBKL.js.map
399
- //# sourceMappingURL=chunk-EBM7YBKL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/src/slot.tsx","../../../node_modules/@radix-ui/react-dialog/src/dialog.tsx"],"names":["Slot","React","props","jsx","Fragment","Portal"],"mappings":"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","file":"chunk-EBM7YBKL.js","sourcesContent":["import * as React from 'react';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlot(ownerName: string) {\n const SlotClone = createSlotClone(ownerName);\n const Slot = React.forwardRef<HTMLElement, SlotProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement)\n ? (newElement.props as { children: React.ReactNode }).children\n : null;\n } else {\n return child;\n }\n });\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {React.isValidElement(newElement)\n ? React.cloneElement(newElement, undefined, newChildren)\n : null}\n </SlotClone>\n );\n }\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {children}\n </SlotClone>\n );\n });\n\n Slot.displayName = `${ownerName}.Slot`;\n return Slot;\n}\n\nconst Slot = createSlot('Slot');\n\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotCloneProps {\n children: React.ReactNode;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ function createSlotClone(ownerName: string) {\n const SlotClone = React.forwardRef<any, SlotCloneProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props = mergeProps(slotProps, children.props as AnyProps);\n // do not pass ref to React.Fragment for React 19 compatibility\n if (children.type !== React.Fragment) {\n props.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props);\n }\n\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLOTTABLE_IDENTIFIER = Symbol('radix.slottable');\n\ninterface SlottableProps {\n children: React.ReactNode;\n}\n\ninterface SlottableComponent extends React.FC<SlottableProps> {\n __radixId: symbol;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlottable(ownerName: string) {\n const Slottable: SlottableComponent = ({ children }) => {\n return <>{children}</>;\n };\n Slottable.displayName = `${ownerName}.Slottable`;\n Slottable.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable;\n}\n\nconst Slottable = createSlottable('Slottable');\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype AnyProps = Record<string, any>;\n\nfunction isSlottable(\n child: React.ReactNode\n): child is React.ReactElement<SlottableProps, typeof Slottable> {\n return (\n React.isValidElement(child) &&\n typeof child.type === 'function' &&\n '__radixId' in child.type &&\n child.type.__radixId === SLOTTABLE_IDENTIFIER\n );\n}\n\nfunction mergeProps(slotProps: AnyProps, childProps: AnyProps) {\n // all child props should override\n const overrideProps = { ...childProps };\n\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args: unknown[]) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n }\n // but if it exists only on the slot, we use only this one\n else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ');\n }\n }\n\n return { ...slotProps, ...overrideProps };\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element.props as { ref?: React.Ref<unknown> }).ref;\n }\n\n // Not DEV\n return (element.props as { ref?: React.Ref<unknown> }).ref || (element as any).ref;\n}\n\nexport {\n Slot,\n Slottable,\n //\n Slot as Root,\n};\nexport type { SlotProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { createSlot } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps<P> = P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement | null>;\n contentRef: React.RefObject<DialogContentElement | null>;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext<DialogContextValue>(DIALOG_NAME);\n\ninterface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst Dialog: React.FC<DialogProps> = (props: ScopedProps<DialogProps>) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const contentRef = React.useRef<DialogContentElement>(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME,\n });\n\n return (\n <DialogProvider\n scope={__scopeDialog}\n triggerRef={triggerRef}\n contentRef={contentRef}\n contentId={useId()}\n titleId={useId()}\n descriptionId={useId()}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n {children}\n </DialogProvider>\n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef<DialogTriggerElement, DialogTriggerProps>(\n (props: ScopedProps<DialogTriggerProps>, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n }\n);\n\nDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createDialogContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface DialogPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogPortal: React.FC<DialogPortalProps> = (props: ScopedProps<DialogPortalProps>) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n <PortalProvider scope={__scopeDialog} forceMount={forceMount}>\n {React.Children.map(children, (child) => (\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {child}\n </PortalPrimitive>\n </Presence>\n ))}\n </PortalProvider>\n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogOverlay = React.forwardRef<DialogOverlayElement, DialogOverlayProps>(\n (props: ScopedProps<DialogOverlayProps>, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n <Presence present={forceMount || context.open}>\n <DialogOverlayImpl {...overlayProps} ref={forwardedRef} />\n </Presence>\n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst Slot = createSlot('DialogOverlay.RemoveScroll');\n\nconst DialogOverlayImpl = React.forwardRef<DialogOverlayImplElement, DialogOverlayImplProps>(\n (props: ScopedProps<DialogOverlayImplProps>, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n <RemoveScroll as={Slot} allowPinchZoom shards={[context.contentRef]}>\n <Primitive.div\n data-state={getState(context.open)}\n {...overlayProps}\n ref={forwardedRef}\n // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n style={{ pointerEvents: 'auto', ...overlayProps.style }}\n />\n </RemoveScroll>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>(\n (props: ScopedProps<DialogContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <DialogContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <DialogContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit<DialogContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {}\n\nconst DialogContentModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n <DialogContentImpl\n {...props}\n ref={composedRefs}\n // we make sure focus isn't trapped once `DialogContent` has been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n })}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) =>\n event.preventDefault()\n )}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n <DialogContentImpl\n {...props}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ComponentRef<typeof DismissableLayer>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;\ninterface DialogContentImplProps extends Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst DialogContentImpl = React.forwardRef<DialogContentImplElement, DialogContentImplProps>(\n (props: ScopedProps<DialogContentImplProps>, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n role=\"dialog\"\n id={context.contentId}\n aria-describedby={context.descriptionId}\n aria-labelledby={context.titleId}\n data-state={getState(context.open)}\n {...contentProps}\n ref={composedRefs}\n onDismiss={() => context.onOpenChange(false)}\n />\n </FocusScope>\n {process.env.NODE_ENV !== 'production' && (\n <>\n <TitleWarning titleId={context.titleId} />\n <DescriptionWarning contentRef={contentRef} descriptionId={context.descriptionId} />\n </>\n )}\n </>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ComponentRef<typeof Primitive.h2>;\ntype PrimitiveHeading2Props = React.ComponentPropsWithoutRef<typeof Primitive.h2>;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef<DialogTitleElement, DialogTitleProps>(\n (props: ScopedProps<DialogTitleProps>, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return <Primitive.h2 id={context.titleId} {...titleProps} ref={forwardedRef} />;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ComponentRef<typeof Primitive.p>;\ntype PrimitiveParagraphProps = React.ComponentPropsWithoutRef<typeof Primitive.p>;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef<DialogDescriptionElement, DialogDescriptionProps>(\n (props: ScopedProps<DialogDescriptionProps>, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return <Primitive.p id={context.descriptionId} {...descriptionProps} ref={forwardedRef} />;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ComponentRef<typeof Primitive.button>;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef<DialogCloseElement, DialogCloseProps>(\n (props: ScopedProps<DialogCloseProps>, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nDialogClose.displayName = CLOSE_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning';\n\nconst [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n});\n\ntype TitleWarningProps = { titleId?: string };\n\nconst TitleWarning: React.FC<TitleWarningProps> = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<DialogContentElement | null>;\n descriptionId?: string;\n};\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute('aria-describedby');\n // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n"]}