convex-cms 0.0.2 → 0.0.3

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 (265) hide show
  1. package/admin-dist/nitro.json +15 -0
  2. package/admin-dist/public/assets/CmsEmptyState-CRswfTzk.js +5 -0
  3. package/admin-dist/public/assets/CmsPageHeader-CirpXndm.js +1 -0
  4. package/admin-dist/public/assets/CmsStatusBadge-CbEUpQu-.js +1 -0
  5. package/admin-dist/public/assets/CmsToolbar-BI2nZOXp.js +1 -0
  6. package/admin-dist/public/assets/ContentEntryEditor-CBeCyK_m.js +4 -0
  7. package/admin-dist/public/assets/ErrorState-BIVaWmom.js +1 -0
  8. package/admin-dist/public/assets/TaxonomyFilter-ChaY6Y_x.js +1 -0
  9. package/admin-dist/public/assets/_contentTypeId-DQ8k_Rvw.js +1 -0
  10. package/admin-dist/public/assets/_entryId-CKU_glsK.js +1 -0
  11. package/admin-dist/public/assets/alert-BXjTqrwQ.js +1 -0
  12. package/admin-dist/public/assets/badge-hvUOzpVZ.js +1 -0
  13. package/admin-dist/public/assets/circle-check-big-CF_pR17r.js +1 -0
  14. package/admin-dist/public/assets/command-DU82cJlt.js +1 -0
  15. package/admin-dist/public/assets/content-_LXl3pp7.js +1 -0
  16. package/admin-dist/public/assets/content-types-KjxaXGxY.js +2 -0
  17. package/admin-dist/public/assets/globals-CS6BZ0zp.css +1 -0
  18. package/admin-dist/public/assets/index-DNGIZHL-.js +1 -0
  19. package/admin-dist/public/assets/label-KNtpL71g.js +1 -0
  20. package/admin-dist/public/assets/link-2-Bw2aI4V4.js +1 -0
  21. package/admin-dist/public/assets/list-sYepHjt_.js +1 -0
  22. package/admin-dist/public/assets/main-CKj5yfEi.js +97 -0
  23. package/admin-dist/public/assets/media-Bkrkffm7.js +1 -0
  24. package/admin-dist/public/assets/new._contentTypeId-C3LstjNs.js +1 -0
  25. package/admin-dist/public/assets/plus-DUn8v_Xf.js +1 -0
  26. package/admin-dist/public/assets/rotate-ccw-DJEoHcRI.js +1 -0
  27. package/admin-dist/public/assets/scroll-area-DfIlT0in.js +1 -0
  28. package/admin-dist/public/assets/search-MuAUDJKR.js +1 -0
  29. package/admin-dist/public/assets/select-BD29IXCI.js +1 -0
  30. package/admin-dist/public/assets/settings-DmMyn_6A.js +1 -0
  31. package/admin-dist/public/assets/switch-h3Rrnl5i.js +1 -0
  32. package/admin-dist/public/assets/tabs-imc8h-Dp.js +1 -0
  33. package/admin-dist/public/assets/taxonomies-dAsrT65H.js +1 -0
  34. package/admin-dist/public/assets/textarea-BTy7nwzR.js +1 -0
  35. package/admin-dist/public/assets/trash-SAWKZZHv.js +1 -0
  36. package/admin-dist/public/assets/triangle-alert-E52Vfeuh.js +1 -0
  37. package/admin-dist/public/assets/useBreadcrumbLabel-BECBMCzM.js +1 -0
  38. package/admin-dist/public/assets/usePermissions-Basjs9BT.js +1 -0
  39. package/admin-dist/public/favicon.ico +0 -0
  40. package/admin-dist/server/_chunks/_libs/@date-fns/tz.mjs +217 -0
  41. package/admin-dist/server/_chunks/_libs/@floating-ui/core.mjs +719 -0
  42. package/admin-dist/server/_chunks/_libs/@floating-ui/dom.mjs +622 -0
  43. package/admin-dist/server/_chunks/_libs/@floating-ui/react-dom.mjs +292 -0
  44. package/admin-dist/server/_chunks/_libs/@floating-ui/utils.mjs +320 -0
  45. package/admin-dist/server/_chunks/_libs/@radix-ui/number.mjs +6 -0
  46. package/admin-dist/server/_chunks/_libs/@radix-ui/primitive.mjs +11 -0
  47. package/admin-dist/server/_chunks/_libs/@radix-ui/react-arrow.mjs +23 -0
  48. package/admin-dist/server/_chunks/_libs/@radix-ui/react-avatar.mjs +119 -0
  49. package/admin-dist/server/_chunks/_libs/@radix-ui/react-checkbox.mjs +270 -0
  50. package/admin-dist/server/_chunks/_libs/@radix-ui/react-collection.mjs +69 -0
  51. package/admin-dist/server/_chunks/_libs/@radix-ui/react-compose-refs.mjs +39 -0
  52. package/admin-dist/server/_chunks/_libs/@radix-ui/react-context.mjs +137 -0
  53. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dialog.mjs +325 -0
  54. package/admin-dist/server/_chunks/_libs/@radix-ui/react-direction.mjs +9 -0
  55. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dismissable-layer.mjs +210 -0
  56. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dropdown-menu.mjs +253 -0
  57. package/admin-dist/server/_chunks/_libs/@radix-ui/react-focus-guards.mjs +29 -0
  58. package/admin-dist/server/_chunks/_libs/@radix-ui/react-focus-scope.mjs +206 -0
  59. package/admin-dist/server/_chunks/_libs/@radix-ui/react-id.mjs +14 -0
  60. package/admin-dist/server/_chunks/_libs/@radix-ui/react-label.mjs +23 -0
  61. package/admin-dist/server/_chunks/_libs/@radix-ui/react-menu.mjs +812 -0
  62. package/admin-dist/server/_chunks/_libs/@radix-ui/react-popover.mjs +300 -0
  63. package/admin-dist/server/_chunks/_libs/@radix-ui/react-popper.mjs +286 -0
  64. package/admin-dist/server/_chunks/_libs/@radix-ui/react-portal.mjs +16 -0
  65. package/admin-dist/server/_chunks/_libs/@radix-ui/react-presence.mjs +128 -0
  66. package/admin-dist/server/_chunks/_libs/@radix-ui/react-primitive.mjs +141 -0
  67. package/admin-dist/server/_chunks/_libs/@radix-ui/react-roving-focus.mjs +224 -0
  68. package/admin-dist/server/_chunks/_libs/@radix-ui/react-scroll-area.mjs +721 -0
  69. package/admin-dist/server/_chunks/_libs/@radix-ui/react-select.mjs +1163 -0
  70. package/admin-dist/server/_chunks/_libs/@radix-ui/react-separator.mjs +28 -0
  71. package/admin-dist/server/_chunks/_libs/@radix-ui/react-slot.mjs +601 -0
  72. package/admin-dist/server/_chunks/_libs/@radix-ui/react-switch.mjs +152 -0
  73. package/admin-dist/server/_chunks/_libs/@radix-ui/react-tabs.mjs +189 -0
  74. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-callback-ref.mjs +11 -0
  75. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-controllable-state.mjs +69 -0
  76. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-effect-event.mjs +1 -0
  77. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-escape-keydown.mjs +17 -0
  78. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-is-hydrated.mjs +15 -0
  79. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-layout-effect.mjs +6 -0
  80. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-previous.mjs +14 -0
  81. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-size.mjs +39 -0
  82. package/admin-dist/server/_chunks/_libs/@radix-ui/react-visually-hidden.mjs +33 -0
  83. package/admin-dist/server/_chunks/_libs/@tanstack/history.mjs +409 -0
  84. package/admin-dist/server/_chunks/_libs/@tanstack/react-router.mjs +1711 -0
  85. package/admin-dist/server/_chunks/_libs/@tanstack/react-store.mjs +56 -0
  86. package/admin-dist/server/_chunks/_libs/@tanstack/router-core.mjs +4829 -0
  87. package/admin-dist/server/_chunks/_libs/@tanstack/store.mjs +134 -0
  88. package/admin-dist/server/_chunks/_libs/react-dom.mjs +10781 -0
  89. package/admin-dist/server/_chunks/_libs/react.mjs +513 -0
  90. package/admin-dist/server/_libs/aria-hidden.mjs +122 -0
  91. package/admin-dist/server/_libs/class-variance-authority.mjs +44 -0
  92. package/admin-dist/server/_libs/clsx.mjs +16 -0
  93. package/admin-dist/server/_libs/cmdk.mjs +315 -0
  94. package/admin-dist/server/_libs/convex.mjs +4841 -0
  95. package/admin-dist/server/_libs/cookie-es.mjs +58 -0
  96. package/admin-dist/server/_libs/croner.mjs +1 -0
  97. package/admin-dist/server/_libs/crossws.mjs +1 -0
  98. package/admin-dist/server/_libs/date-fns.mjs +1716 -0
  99. package/admin-dist/server/_libs/detect-node-es.mjs +1 -0
  100. package/admin-dist/server/_libs/get-nonce.mjs +9 -0
  101. package/admin-dist/server/_libs/h3-v2.mjs +277 -0
  102. package/admin-dist/server/_libs/h3.mjs +401 -0
  103. package/admin-dist/server/_libs/hookable.mjs +1 -0
  104. package/admin-dist/server/_libs/isbot.mjs +20 -0
  105. package/admin-dist/server/_libs/lucide-react.mjs +850 -0
  106. package/admin-dist/server/_libs/ohash.mjs +1 -0
  107. package/admin-dist/server/_libs/react-day-picker.mjs +2201 -0
  108. package/admin-dist/server/_libs/react-remove-scroll-bar.mjs +82 -0
  109. package/admin-dist/server/_libs/react-remove-scroll.mjs +328 -0
  110. package/admin-dist/server/_libs/react-style-singleton.mjs +69 -0
  111. package/admin-dist/server/_libs/rou3.mjs +8 -0
  112. package/admin-dist/server/_libs/seroval-plugins.mjs +58 -0
  113. package/admin-dist/server/_libs/seroval.mjs +1765 -0
  114. package/admin-dist/server/_libs/srvx.mjs +719 -0
  115. package/admin-dist/server/_libs/tailwind-merge.mjs +3010 -0
  116. package/admin-dist/server/_libs/tiny-invariant.mjs +12 -0
  117. package/admin-dist/server/_libs/tiny-warning.mjs +5 -0
  118. package/admin-dist/server/_libs/tslib.mjs +39 -0
  119. package/admin-dist/server/_libs/ufo.mjs +54 -0
  120. package/admin-dist/server/_libs/unctx.mjs +1 -0
  121. package/admin-dist/server/_libs/unstorage.mjs +1 -0
  122. package/admin-dist/server/_libs/use-callback-ref.mjs +66 -0
  123. package/admin-dist/server/_libs/use-sidecar.mjs +106 -0
  124. package/admin-dist/server/_libs/use-sync-external-store.mjs +139 -0
  125. package/admin-dist/server/_libs/zod.mjs +4223 -0
  126. package/admin-dist/server/_ssr/CmsEmptyState-DU7-7-mV.mjs +290 -0
  127. package/admin-dist/server/_ssr/CmsPageHeader-CseW0AHm.mjs +24 -0
  128. package/admin-dist/server/_ssr/CmsStatusBadge-B_pi4KCp.mjs +127 -0
  129. package/admin-dist/server/_ssr/CmsToolbar-X75ex6ek.mjs +49 -0
  130. package/admin-dist/server/_ssr/ContentEntryEditor-CepusRsA.mjs +3720 -0
  131. package/admin-dist/server/_ssr/ErrorState-cI-bKLez.mjs +89 -0
  132. package/admin-dist/server/_ssr/TaxonomyFilter-Bwrq0-cz.mjs +188 -0
  133. package/admin-dist/server/_ssr/_contentTypeId-BqYKEcLr.mjs +379 -0
  134. package/admin-dist/server/_ssr/_entryId-CRfnqeDf.mjs +161 -0
  135. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-BwDlABVk.mjs +4 -0
  136. package/admin-dist/server/_ssr/alert-CVt45UUP.mjs +92 -0
  137. package/admin-dist/server/_ssr/badge-6BsP37vG.mjs +125 -0
  138. package/admin-dist/server/_ssr/command-fy8epIKf.mjs +128 -0
  139. package/admin-dist/server/_ssr/config.server-D7JHDcDv.mjs +117 -0
  140. package/admin-dist/server/_ssr/content-B5RhL7uW.mjs +532 -0
  141. package/admin-dist/server/_ssr/content-types-BIOqCQYN.mjs +1166 -0
  142. package/admin-dist/server/_ssr/index-DHSHDPt1.mjs +193 -0
  143. package/admin-dist/server/_ssr/index.mjs +1275 -0
  144. package/admin-dist/server/_ssr/label-C8Dko1j7.mjs +22 -0
  145. package/admin-dist/server/_ssr/media-CSx3XttC.mjs +1832 -0
  146. package/admin-dist/server/_ssr/new._contentTypeId-DzanEZQM.mjs +144 -0
  147. package/admin-dist/server/_ssr/router-DDWcF-kt.mjs +1556 -0
  148. package/admin-dist/server/_ssr/scroll-area-bjPYwhXN.mjs +59 -0
  149. package/admin-dist/server/_ssr/select-BUhDDf4T.mjs +142 -0
  150. package/admin-dist/server/_ssr/settings-DAsxnw2q.mjs +348 -0
  151. package/admin-dist/server/_ssr/start-HYkvq4Ni.mjs +4 -0
  152. package/admin-dist/server/_ssr/switch-BgyRtQ1Z.mjs +31 -0
  153. package/admin-dist/server/_ssr/tabs-DzMdRB1A.mjs +628 -0
  154. package/admin-dist/server/_ssr/taxonomies-C8j8g5Q5.mjs +915 -0
  155. package/admin-dist/server/_ssr/textarea-9jNeYJSc.mjs +18 -0
  156. package/admin-dist/server/_ssr/trash-DYMxwhZB.mjs +291 -0
  157. package/admin-dist/server/_ssr/useBreadcrumbLabel-FNSAr2Ha.mjs +16 -0
  158. package/admin-dist/server/_ssr/usePermissions-BJGGahrJ.mjs +68 -0
  159. package/admin-dist/server/favicon.ico +0 -0
  160. package/admin-dist/server/index.mjs +627 -0
  161. package/dist/cli/index.js +0 -0
  162. package/dist/client/admin-config.d.ts +0 -1
  163. package/dist/client/admin-config.d.ts.map +1 -1
  164. package/dist/client/admin-config.js +0 -1
  165. package/dist/client/admin-config.js.map +1 -1
  166. package/dist/client/adminApi.d.ts.map +1 -1
  167. package/dist/client/agentTools.d.ts +1237 -135
  168. package/dist/client/agentTools.d.ts.map +1 -1
  169. package/dist/client/agentTools.js +33 -9
  170. package/dist/client/agentTools.js.map +1 -1
  171. package/dist/client/index.d.ts +1 -1
  172. package/dist/client/index.d.ts.map +1 -1
  173. package/dist/client/index.js.map +1 -1
  174. package/dist/component/_generated/component.d.ts +9 -0
  175. package/dist/component/_generated/component.d.ts.map +1 -1
  176. package/dist/component/mediaAssets.d.ts +35 -0
  177. package/dist/component/mediaAssets.d.ts.map +1 -1
  178. package/dist/component/mediaAssets.js +81 -0
  179. package/dist/component/mediaAssets.js.map +1 -1
  180. package/dist/test.d.ts.map +1 -1
  181. package/dist/test.js +2 -1
  182. package/dist/test.js.map +1 -1
  183. package/package.json +9 -5
  184. package/dist/component/auditLog.d.ts +0 -410
  185. package/dist/component/auditLog.d.ts.map +0 -1
  186. package/dist/component/auditLog.js +0 -607
  187. package/dist/component/auditLog.js.map +0 -1
  188. package/dist/component/types.d.ts +0 -4
  189. package/dist/component/types.d.ts.map +0 -1
  190. package/dist/component/types.js +0 -2
  191. package/dist/component/types.js.map +0 -1
  192. package/src/cli/commands/admin.ts +0 -104
  193. package/src/cli/index.ts +0 -21
  194. package/src/cli/utils/detectConvexUrl.ts +0 -54
  195. package/src/cli/utils/openBrowser.ts +0 -16
  196. package/src/client/admin-config.ts +0 -138
  197. package/src/client/adminApi.ts +0 -942
  198. package/src/client/agentTools.ts +0 -1311
  199. package/src/client/argTypes.ts +0 -316
  200. package/src/client/field-types.ts +0 -187
  201. package/src/client/index.ts +0 -1301
  202. package/src/client/queryBuilder.ts +0 -1100
  203. package/src/client/schema/codegen.ts +0 -500
  204. package/src/client/schema/defineContentType.ts +0 -501
  205. package/src/client/schema/index.ts +0 -169
  206. package/src/client/schema/schemaDrift.ts +0 -574
  207. package/src/client/schema/typedClient.ts +0 -688
  208. package/src/client/schema/types.ts +0 -666
  209. package/src/client/types.ts +0 -723
  210. package/src/client/workflows.ts +0 -141
  211. package/src/client/wrapper.ts +0 -4304
  212. package/src/component/_generated/api.ts +0 -140
  213. package/src/component/_generated/component.ts +0 -5029
  214. package/src/component/_generated/dataModel.ts +0 -60
  215. package/src/component/_generated/server.ts +0 -156
  216. package/src/component/authorization.ts +0 -647
  217. package/src/component/authorizationHooks.ts +0 -668
  218. package/src/component/bulkOperations.ts +0 -687
  219. package/src/component/contentEntries.ts +0 -1976
  220. package/src/component/contentEntryMutations.ts +0 -1223
  221. package/src/component/contentEntryValidation.ts +0 -707
  222. package/src/component/contentLock.ts +0 -550
  223. package/src/component/contentTypeMigration.ts +0 -1064
  224. package/src/component/contentTypeMutations.ts +0 -969
  225. package/src/component/contentTypes.ts +0 -346
  226. package/src/component/convex.config.ts +0 -44
  227. package/src/component/documentTypes.ts +0 -240
  228. package/src/component/eventEmitter.ts +0 -485
  229. package/src/component/exportImport.ts +0 -1169
  230. package/src/component/index.ts +0 -491
  231. package/src/component/lib/deepReferenceResolver.ts +0 -999
  232. package/src/component/lib/errors.ts +0 -816
  233. package/src/component/lib/index.ts +0 -145
  234. package/src/component/lib/mediaReferenceResolver.ts +0 -495
  235. package/src/component/lib/metadataExtractor.ts +0 -792
  236. package/src/component/lib/mutationAuth.ts +0 -199
  237. package/src/component/lib/queries.ts +0 -79
  238. package/src/component/lib/ragContentChunker.ts +0 -1371
  239. package/src/component/lib/referenceResolver.ts +0 -430
  240. package/src/component/lib/slugGenerator.ts +0 -262
  241. package/src/component/lib/slugUniqueness.ts +0 -333
  242. package/src/component/lib/softDelete.ts +0 -44
  243. package/src/component/localeFallbackChain.ts +0 -673
  244. package/src/component/localeFields.ts +0 -896
  245. package/src/component/mediaAssetMutations.ts +0 -725
  246. package/src/component/mediaAssets.ts +0 -932
  247. package/src/component/mediaFolderMutations.ts +0 -1046
  248. package/src/component/mediaUploadMutations.ts +0 -224
  249. package/src/component/mediaVariantMutations.ts +0 -900
  250. package/src/component/mediaVariants.ts +0 -793
  251. package/src/component/ragContentIndexer.ts +0 -1067
  252. package/src/component/rateLimitHooks.ts +0 -572
  253. package/src/component/roles.ts +0 -1360
  254. package/src/component/scheduledPublish.ts +0 -358
  255. package/src/component/schema.ts +0 -617
  256. package/src/component/taxonomies.ts +0 -949
  257. package/src/component/taxonomyMutations.ts +0 -1210
  258. package/src/component/trash.ts +0 -724
  259. package/src/component/userContext.ts +0 -898
  260. package/src/component/validation.ts +0 -1388
  261. package/src/component/validators.ts +0 -949
  262. package/src/component/versionMutations.ts +0 -392
  263. package/src/component/webhookTrigger.ts +0 -1922
  264. package/src/react/index.ts +0 -898
  265. package/src/test.ts +0 -1580
@@ -0,0 +1,325 @@
1
+ import { r as reactExports, j as jsxRuntimeExports } from "../react.mjs";
2
+ import { c as composeEventHandlers } from "./primitive.mjs";
3
+ import { u as useComposedRefs } from "./react-compose-refs.mjs";
4
+ import { c as createContextScope, b as createContext2 } from "./react-context.mjs";
5
+ import { u as useId } from "./react-id.mjs";
6
+ import { u as useControllableState } from "./react-use-controllable-state.mjs";
7
+ import { D as DismissableLayer } from "./react-dismissable-layer.mjs";
8
+ import { F as FocusScope } from "./react-focus-scope.mjs";
9
+ import { P as Portal$1 } from "./react-portal.mjs";
10
+ import { P as Presence } from "./react-presence.mjs";
11
+ import { P as Primitive } from "./react-primitive.mjs";
12
+ import { u as useFocusGuards } from "./react-focus-guards.mjs";
13
+ import { R as ReactRemoveScroll } from "../../../_libs/react-remove-scroll.mjs";
14
+ import { h as hideOthers } from "../../../_libs/aria-hidden.mjs";
15
+ import { f as createSlot } from "./react-slot.mjs";
16
+ var DIALOG_NAME = "Dialog";
17
+ var [createDialogContext] = createContextScope(DIALOG_NAME);
18
+ var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
19
+ var Dialog = (props) => {
20
+ const {
21
+ __scopeDialog,
22
+ children,
23
+ open: openProp,
24
+ defaultOpen,
25
+ onOpenChange,
26
+ modal = true
27
+ } = props;
28
+ const triggerRef = reactExports.useRef(null);
29
+ const contentRef = reactExports.useRef(null);
30
+ const [open, setOpen] = useControllableState({
31
+ prop: openProp,
32
+ defaultProp: defaultOpen ?? false,
33
+ onChange: onOpenChange,
34
+ caller: DIALOG_NAME
35
+ });
36
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
37
+ DialogProvider,
38
+ {
39
+ scope: __scopeDialog,
40
+ triggerRef,
41
+ contentRef,
42
+ contentId: useId(),
43
+ titleId: useId(),
44
+ descriptionId: useId(),
45
+ open,
46
+ onOpenChange: setOpen,
47
+ onOpenToggle: reactExports.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
48
+ modal,
49
+ children
50
+ }
51
+ );
52
+ };
53
+ Dialog.displayName = DIALOG_NAME;
54
+ var TRIGGER_NAME = "DialogTrigger";
55
+ var DialogTrigger = reactExports.forwardRef(
56
+ (props, forwardedRef) => {
57
+ const { __scopeDialog, ...triggerProps } = props;
58
+ const context = useDialogContext(TRIGGER_NAME, __scopeDialog);
59
+ const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
60
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
61
+ Primitive.button,
62
+ {
63
+ type: "button",
64
+ "aria-haspopup": "dialog",
65
+ "aria-expanded": context.open,
66
+ "aria-controls": context.contentId,
67
+ "data-state": getState(context.open),
68
+ ...triggerProps,
69
+ ref: composedTriggerRef,
70
+ onClick: composeEventHandlers(props.onClick, context.onOpenToggle)
71
+ }
72
+ );
73
+ }
74
+ );
75
+ DialogTrigger.displayName = TRIGGER_NAME;
76
+ var PORTAL_NAME = "DialogPortal";
77
+ var [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {
78
+ forceMount: void 0
79
+ });
80
+ var DialogPortal = (props) => {
81
+ const { __scopeDialog, forceMount, children, container } = props;
82
+ const context = useDialogContext(PORTAL_NAME, __scopeDialog);
83
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: reactExports.Children.map(children, (child) => /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$1, { asChild: true, container, children: child }) })) });
84
+ };
85
+ DialogPortal.displayName = PORTAL_NAME;
86
+ var OVERLAY_NAME = "DialogOverlay";
87
+ var DialogOverlay = reactExports.forwardRef(
88
+ (props, forwardedRef) => {
89
+ const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);
90
+ const { forceMount = portalContext.forceMount, ...overlayProps } = props;
91
+ const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
92
+ return context.modal ? /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
93
+ }
94
+ );
95
+ DialogOverlay.displayName = OVERLAY_NAME;
96
+ var Slot = createSlot("DialogOverlay.RemoveScroll");
97
+ var DialogOverlayImpl = reactExports.forwardRef(
98
+ (props, forwardedRef) => {
99
+ const { __scopeDialog, ...overlayProps } = props;
100
+ const context = useDialogContext(OVERLAY_NAME, __scopeDialog);
101
+ return (
102
+ // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
103
+ // ie. when `Overlay` and `Content` are siblings
104
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ReactRemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsxRuntimeExports.jsx(
105
+ Primitive.div,
106
+ {
107
+ "data-state": getState(context.open),
108
+ ...overlayProps,
109
+ ref: forwardedRef,
110
+ style: { pointerEvents: "auto", ...overlayProps.style }
111
+ }
112
+ ) })
113
+ );
114
+ }
115
+ );
116
+ var CONTENT_NAME = "DialogContent";
117
+ var DialogContent = reactExports.forwardRef(
118
+ (props, forwardedRef) => {
119
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);
120
+ const { forceMount = portalContext.forceMount, ...contentProps } = props;
121
+ const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
122
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsxRuntimeExports.jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsxRuntimeExports.jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
123
+ }
124
+ );
125
+ DialogContent.displayName = CONTENT_NAME;
126
+ var DialogContentModal = reactExports.forwardRef(
127
+ (props, forwardedRef) => {
128
+ const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
129
+ const contentRef = reactExports.useRef(null);
130
+ const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);
131
+ reactExports.useEffect(() => {
132
+ const content = contentRef.current;
133
+ if (content) return hideOthers(content);
134
+ }, []);
135
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
136
+ DialogContentImpl,
137
+ {
138
+ ...props,
139
+ ref: composedRefs,
140
+ trapFocus: context.open,
141
+ disableOutsidePointerEvents: true,
142
+ onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
143
+ event.preventDefault();
144
+ context.triggerRef.current?.focus();
145
+ }),
146
+ onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {
147
+ const originalEvent = event.detail.originalEvent;
148
+ const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
149
+ const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
150
+ if (isRightClick) event.preventDefault();
151
+ }),
152
+ onFocusOutside: composeEventHandlers(
153
+ props.onFocusOutside,
154
+ (event) => event.preventDefault()
155
+ )
156
+ }
157
+ );
158
+ }
159
+ );
160
+ var DialogContentNonModal = reactExports.forwardRef(
161
+ (props, forwardedRef) => {
162
+ const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
163
+ const hasInteractedOutsideRef = reactExports.useRef(false);
164
+ const hasPointerDownOutsideRef = reactExports.useRef(false);
165
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
166
+ DialogContentImpl,
167
+ {
168
+ ...props,
169
+ ref: forwardedRef,
170
+ trapFocus: false,
171
+ disableOutsidePointerEvents: false,
172
+ onCloseAutoFocus: (event) => {
173
+ props.onCloseAutoFocus?.(event);
174
+ if (!event.defaultPrevented) {
175
+ if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();
176
+ event.preventDefault();
177
+ }
178
+ hasInteractedOutsideRef.current = false;
179
+ hasPointerDownOutsideRef.current = false;
180
+ },
181
+ onInteractOutside: (event) => {
182
+ props.onInteractOutside?.(event);
183
+ if (!event.defaultPrevented) {
184
+ hasInteractedOutsideRef.current = true;
185
+ if (event.detail.originalEvent.type === "pointerdown") {
186
+ hasPointerDownOutsideRef.current = true;
187
+ }
188
+ }
189
+ const target = event.target;
190
+ const targetIsTrigger = context.triggerRef.current?.contains(target);
191
+ if (targetIsTrigger) event.preventDefault();
192
+ if (event.detail.originalEvent.type === "focusin" && hasPointerDownOutsideRef.current) {
193
+ event.preventDefault();
194
+ }
195
+ }
196
+ }
197
+ );
198
+ }
199
+ );
200
+ var DialogContentImpl = reactExports.forwardRef(
201
+ (props, forwardedRef) => {
202
+ const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;
203
+ const context = useDialogContext(CONTENT_NAME, __scopeDialog);
204
+ const contentRef = reactExports.useRef(null);
205
+ const composedRefs = useComposedRefs(forwardedRef, contentRef);
206
+ useFocusGuards();
207
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
208
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
209
+ FocusScope,
210
+ {
211
+ asChild: true,
212
+ loop: true,
213
+ trapped: trapFocus,
214
+ onMountAutoFocus: onOpenAutoFocus,
215
+ onUnmountAutoFocus: onCloseAutoFocus,
216
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
217
+ DismissableLayer,
218
+ {
219
+ role: "dialog",
220
+ id: context.contentId,
221
+ "aria-describedby": context.descriptionId,
222
+ "aria-labelledby": context.titleId,
223
+ "data-state": getState(context.open),
224
+ ...contentProps,
225
+ ref: composedRefs,
226
+ onDismiss: () => context.onOpenChange(false)
227
+ }
228
+ )
229
+ }
230
+ ),
231
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
232
+ /* @__PURE__ */ jsxRuntimeExports.jsx(TitleWarning, { titleId: context.titleId }),
233
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
234
+ ] })
235
+ ] });
236
+ }
237
+ );
238
+ var TITLE_NAME = "DialogTitle";
239
+ var DialogTitle = reactExports.forwardRef(
240
+ (props, forwardedRef) => {
241
+ const { __scopeDialog, ...titleProps } = props;
242
+ const context = useDialogContext(TITLE_NAME, __scopeDialog);
243
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
244
+ }
245
+ );
246
+ DialogTitle.displayName = TITLE_NAME;
247
+ var DESCRIPTION_NAME = "DialogDescription";
248
+ var DialogDescription = reactExports.forwardRef(
249
+ (props, forwardedRef) => {
250
+ const { __scopeDialog, ...descriptionProps } = props;
251
+ const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
252
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
253
+ }
254
+ );
255
+ DialogDescription.displayName = DESCRIPTION_NAME;
256
+ var CLOSE_NAME = "DialogClose";
257
+ var DialogClose = reactExports.forwardRef(
258
+ (props, forwardedRef) => {
259
+ const { __scopeDialog, ...closeProps } = props;
260
+ const context = useDialogContext(CLOSE_NAME, __scopeDialog);
261
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
262
+ Primitive.button,
263
+ {
264
+ type: "button",
265
+ ...closeProps,
266
+ ref: forwardedRef,
267
+ onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))
268
+ }
269
+ );
270
+ }
271
+ );
272
+ DialogClose.displayName = CLOSE_NAME;
273
+ function getState(open) {
274
+ return open ? "open" : "closed";
275
+ }
276
+ var TITLE_WARNING_NAME = "DialogTitleWarning";
277
+ var [WarningProvider, useWarningContext] = createContext2(TITLE_WARNING_NAME, {
278
+ contentName: CONTENT_NAME,
279
+ titleName: TITLE_NAME,
280
+ docsSlug: "dialog"
281
+ });
282
+ var TitleWarning = ({ titleId }) => {
283
+ const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);
284
+ const MESSAGE = `\`${titleWarningContext.contentName}\` requires a \`${titleWarningContext.titleName}\` for the component to be accessible for screen reader users.
285
+
286
+ If you want to hide the \`${titleWarningContext.titleName}\`, you can wrap it with our VisuallyHidden component.
287
+
288
+ For more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;
289
+ reactExports.useEffect(() => {
290
+ if (titleId) {
291
+ const hasTitle = document.getElementById(titleId);
292
+ if (!hasTitle) console.error(MESSAGE);
293
+ }
294
+ }, [MESSAGE, titleId]);
295
+ return null;
296
+ };
297
+ var DESCRIPTION_WARNING_NAME = "DialogDescriptionWarning";
298
+ var DescriptionWarning = ({ contentRef, descriptionId }) => {
299
+ const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);
300
+ const MESSAGE = `Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${descriptionWarningContext.contentName}}.`;
301
+ reactExports.useEffect(() => {
302
+ const describedById = contentRef.current?.getAttribute("aria-describedby");
303
+ if (descriptionId && describedById) {
304
+ const hasDescription = document.getElementById(descriptionId);
305
+ if (!hasDescription) console.warn(MESSAGE);
306
+ }
307
+ }, [MESSAGE, contentRef, descriptionId]);
308
+ return null;
309
+ };
310
+ var Root = Dialog;
311
+ var Portal = DialogPortal;
312
+ var Overlay = DialogOverlay;
313
+ var Content = DialogContent;
314
+ var Title = DialogTitle;
315
+ var Description = DialogDescription;
316
+ var Close = DialogClose;
317
+ export {
318
+ Content as C,
319
+ Description as D,
320
+ Overlay as O,
321
+ Portal as P,
322
+ Root as R,
323
+ Title as T,
324
+ Close as a
325
+ };
@@ -0,0 +1,9 @@
1
+ import { r as reactExports } from "../react.mjs";
2
+ var DirectionContext = reactExports.createContext(void 0);
3
+ function useDirection(localDir) {
4
+ const globalDir = reactExports.useContext(DirectionContext);
5
+ return localDir || globalDir || "ltr";
6
+ }
7
+ export {
8
+ useDirection as u
9
+ };
@@ -0,0 +1,210 @@
1
+ import { r as reactExports, j as jsxRuntimeExports } from "../react.mjs";
2
+ import { c as composeEventHandlers } from "./primitive.mjs";
3
+ import { P as Primitive, d as dispatchDiscreteCustomEvent } from "./react-primitive.mjs";
4
+ import { u as useComposedRefs } from "./react-compose-refs.mjs";
5
+ import { u as useCallbackRef } from "./react-use-callback-ref.mjs";
6
+ import { u as useEscapeKeydown } from "./react-use-escape-keydown.mjs";
7
+ var DISMISSABLE_LAYER_NAME = "DismissableLayer";
8
+ var CONTEXT_UPDATE = "dismissableLayer.update";
9
+ var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
10
+ var FOCUS_OUTSIDE = "dismissableLayer.focusOutside";
11
+ var originalBodyPointerEvents;
12
+ var DismissableLayerContext = reactExports.createContext({
13
+ layers: /* @__PURE__ */ new Set(),
14
+ layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
15
+ branches: /* @__PURE__ */ new Set()
16
+ });
17
+ var DismissableLayer = reactExports.forwardRef(
18
+ (props, forwardedRef) => {
19
+ const {
20
+ disableOutsidePointerEvents = false,
21
+ onEscapeKeyDown,
22
+ onPointerDownOutside,
23
+ onFocusOutside,
24
+ onInteractOutside,
25
+ onDismiss,
26
+ ...layerProps
27
+ } = props;
28
+ const context = reactExports.useContext(DismissableLayerContext);
29
+ const [node, setNode] = reactExports.useState(null);
30
+ const ownerDocument = node?.ownerDocument ?? globalThis?.document;
31
+ const [, force] = reactExports.useState({});
32
+ const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));
33
+ const layers = Array.from(context.layers);
34
+ const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);
35
+ const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);
36
+ const index = node ? layers.indexOf(node) : -1;
37
+ const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;
38
+ const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;
39
+ const pointerDownOutside = usePointerDownOutside((event) => {
40
+ const target = event.target;
41
+ const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));
42
+ if (!isPointerEventsEnabled || isPointerDownOnBranch) return;
43
+ onPointerDownOutside?.(event);
44
+ onInteractOutside?.(event);
45
+ if (!event.defaultPrevented) onDismiss?.();
46
+ }, ownerDocument);
47
+ const focusOutside = useFocusOutside((event) => {
48
+ const target = event.target;
49
+ const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));
50
+ if (isFocusInBranch) return;
51
+ onFocusOutside?.(event);
52
+ onInteractOutside?.(event);
53
+ if (!event.defaultPrevented) onDismiss?.();
54
+ }, ownerDocument);
55
+ useEscapeKeydown((event) => {
56
+ const isHighestLayer = index === context.layers.size - 1;
57
+ if (!isHighestLayer) return;
58
+ onEscapeKeyDown?.(event);
59
+ if (!event.defaultPrevented && onDismiss) {
60
+ event.preventDefault();
61
+ onDismiss();
62
+ }
63
+ }, ownerDocument);
64
+ reactExports.useEffect(() => {
65
+ if (!node) return;
66
+ if (disableOutsidePointerEvents) {
67
+ if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
68
+ originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;
69
+ ownerDocument.body.style.pointerEvents = "none";
70
+ }
71
+ context.layersWithOutsidePointerEventsDisabled.add(node);
72
+ }
73
+ context.layers.add(node);
74
+ dispatchUpdate();
75
+ return () => {
76
+ if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {
77
+ ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
78
+ }
79
+ };
80
+ }, [node, ownerDocument, disableOutsidePointerEvents, context]);
81
+ reactExports.useEffect(() => {
82
+ return () => {
83
+ if (!node) return;
84
+ context.layers.delete(node);
85
+ context.layersWithOutsidePointerEventsDisabled.delete(node);
86
+ dispatchUpdate();
87
+ };
88
+ }, [node, context]);
89
+ reactExports.useEffect(() => {
90
+ const handleUpdate = () => force({});
91
+ document.addEventListener(CONTEXT_UPDATE, handleUpdate);
92
+ return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
93
+ }, []);
94
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
95
+ Primitive.div,
96
+ {
97
+ ...layerProps,
98
+ ref: composedRefs,
99
+ style: {
100
+ pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
101
+ ...props.style
102
+ },
103
+ onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
104
+ onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
105
+ onPointerDownCapture: composeEventHandlers(
106
+ props.onPointerDownCapture,
107
+ pointerDownOutside.onPointerDownCapture
108
+ )
109
+ }
110
+ );
111
+ }
112
+ );
113
+ DismissableLayer.displayName = DISMISSABLE_LAYER_NAME;
114
+ var BRANCH_NAME = "DismissableLayerBranch";
115
+ var DismissableLayerBranch = reactExports.forwardRef((props, forwardedRef) => {
116
+ const context = reactExports.useContext(DismissableLayerContext);
117
+ const ref = reactExports.useRef(null);
118
+ const composedRefs = useComposedRefs(forwardedRef, ref);
119
+ reactExports.useEffect(() => {
120
+ const node = ref.current;
121
+ if (node) {
122
+ context.branches.add(node);
123
+ return () => {
124
+ context.branches.delete(node);
125
+ };
126
+ }
127
+ }, [context.branches]);
128
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Primitive.div, { ...props, ref: composedRefs });
129
+ });
130
+ DismissableLayerBranch.displayName = BRANCH_NAME;
131
+ function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
132
+ const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);
133
+ const isPointerInsideReactTreeRef = reactExports.useRef(false);
134
+ const handleClickRef = reactExports.useRef(() => {
135
+ });
136
+ reactExports.useEffect(() => {
137
+ const handlePointerDown = (event) => {
138
+ if (event.target && !isPointerInsideReactTreeRef.current) {
139
+ let handleAndDispatchPointerDownOutsideEvent2 = function() {
140
+ handleAndDispatchCustomEvent(
141
+ POINTER_DOWN_OUTSIDE,
142
+ handlePointerDownOutside,
143
+ eventDetail,
144
+ { discrete: true }
145
+ );
146
+ };
147
+ const eventDetail = { originalEvent: event };
148
+ if (event.pointerType === "touch") {
149
+ ownerDocument.removeEventListener("click", handleClickRef.current);
150
+ handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;
151
+ ownerDocument.addEventListener("click", handleClickRef.current, { once: true });
152
+ } else {
153
+ handleAndDispatchPointerDownOutsideEvent2();
154
+ }
155
+ } else {
156
+ ownerDocument.removeEventListener("click", handleClickRef.current);
157
+ }
158
+ isPointerInsideReactTreeRef.current = false;
159
+ };
160
+ const timerId = window.setTimeout(() => {
161
+ ownerDocument.addEventListener("pointerdown", handlePointerDown);
162
+ }, 0);
163
+ return () => {
164
+ window.clearTimeout(timerId);
165
+ ownerDocument.removeEventListener("pointerdown", handlePointerDown);
166
+ ownerDocument.removeEventListener("click", handleClickRef.current);
167
+ };
168
+ }, [ownerDocument, handlePointerDownOutside]);
169
+ return {
170
+ // ensures we check React component tree (not just DOM tree)
171
+ onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true
172
+ };
173
+ }
174
+ function useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {
175
+ const handleFocusOutside = useCallbackRef(onFocusOutside);
176
+ const isFocusInsideReactTreeRef = reactExports.useRef(false);
177
+ reactExports.useEffect(() => {
178
+ const handleFocus = (event) => {
179
+ if (event.target && !isFocusInsideReactTreeRef.current) {
180
+ const eventDetail = { originalEvent: event };
181
+ handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {
182
+ discrete: false
183
+ });
184
+ }
185
+ };
186
+ ownerDocument.addEventListener("focusin", handleFocus);
187
+ return () => ownerDocument.removeEventListener("focusin", handleFocus);
188
+ }, [ownerDocument, handleFocusOutside]);
189
+ return {
190
+ onFocusCapture: () => isFocusInsideReactTreeRef.current = true,
191
+ onBlurCapture: () => isFocusInsideReactTreeRef.current = false
192
+ };
193
+ }
194
+ function dispatchUpdate() {
195
+ const event = new CustomEvent(CONTEXT_UPDATE);
196
+ document.dispatchEvent(event);
197
+ }
198
+ function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
199
+ const target = detail.originalEvent.target;
200
+ const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });
201
+ if (handler) target.addEventListener(name, handler, { once: true });
202
+ if (discrete) {
203
+ dispatchDiscreteCustomEvent(target, event);
204
+ } else {
205
+ target.dispatchEvent(event);
206
+ }
207
+ }
208
+ export {
209
+ DismissableLayer as D
210
+ };