@bettercms-ai/kit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (630) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +27 -0
  3. package/dist/_chunks-cjs/_visual-editing.js +5898 -0
  4. package/dist/_chunks-cjs/refractor.js +22 -0
  5. package/dist/_chunks-es/_visual-editing.mjs +5904 -0
  6. package/dist/_chunks-es/refractor.mjs +25 -0
  7. package/dist/_color.d.mts +119 -0
  8. package/dist/_color.d.ts +119 -0
  9. package/dist/_color.js +1412 -0
  10. package/dist/_color.mjs +1411 -0
  11. package/dist/_visual-editing.d.mts +1126 -0
  12. package/dist/_visual-editing.d.ts +1126 -0
  13. package/dist/_visual-editing.js +30 -0
  14. package/dist/_visual-editing.mjs +30 -0
  15. package/dist/index.d.mts +3140 -0
  16. package/dist/index.d.ts +3140 -0
  17. package/dist/index.js +2036 -0
  18. package/dist/index.mjs +2044 -0
  19. package/dist/theme.d.mts +1506 -0
  20. package/dist/theme.d.ts +1506 -0
  21. package/dist/theme.js +4126 -0
  22. package/dist/theme.mjs +4126 -0
  23. package/exports/_visual-editing.ts +31 -0
  24. package/exports/index.ts +1 -0
  25. package/exports/theme.ts +1 -0
  26. package/package.json +78 -0
  27. package/src/color/index.d.mts +119 -0
  28. package/src/color/index.mjs +1411 -0
  29. package/src/core/__workshop__/constants.ts +293 -0
  30. package/src/core/_compat.ts +264 -0
  31. package/src/core/components/autocomplete/__mocks__/apiStore.ts +49 -0
  32. package/src/core/components/autocomplete/__mocks__/countries.ts +245 -0
  33. package/src/core/components/autocomplete/__workshop__/async.tsx +156 -0
  34. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +137 -0
  35. package/src/core/components/autocomplete/__workshop__/custom.tsx +89 -0
  36. package/src/core/components/autocomplete/__workshop__/example.tsx +79 -0
  37. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +36 -0
  38. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +294 -0
  39. package/src/core/components/autocomplete/__workshop__/index.ts +39 -0
  40. package/src/core/components/autocomplete/__workshop__/types.ts +4 -0
  41. package/src/core/components/autocomplete/autocomplete.styles.tsx +39 -0
  42. package/src/core/components/autocomplete/autocomplete.tsx +767 -0
  43. package/src/core/components/autocomplete/autocompleteOption.tsx +45 -0
  44. package/src/core/components/autocomplete/autocompleteReducer.ts +47 -0
  45. package/src/core/components/autocomplete/constants.ts +28 -0
  46. package/src/core/components/autocomplete/index.ts +2 -0
  47. package/src/core/components/autocomplete/types.ts +108 -0
  48. package/src/core/components/breadcrumbs/__workshop__/example.tsx +62 -0
  49. package/src/core/components/breadcrumbs/__workshop__/index.ts +14 -0
  50. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +18 -0
  51. package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +51 -0
  52. package/src/core/components/breadcrumbs/breadcrumbs.tsx +133 -0
  53. package/src/core/components/breadcrumbs/index.ts +1 -0
  54. package/src/core/components/dialog/__workshop__/activate.tsx +134 -0
  55. package/src/core/components/dialog/__workshop__/autoFocus.tsx +29 -0
  56. package/src/core/components/dialog/__workshop__/index.ts +19 -0
  57. package/src/core/components/dialog/__workshop__/layering.tsx +41 -0
  58. package/src/core/components/dialog/__workshop__/nested.tsx +72 -0
  59. package/src/core/components/dialog/__workshop__/onScroll.tsx +39 -0
  60. package/src/core/components/dialog/__workshop__/panes.tsx +82 -0
  61. package/src/core/components/dialog/__workshop__/position.tsx +30 -0
  62. package/src/core/components/dialog/__workshop__/props.tsx +75 -0
  63. package/src/core/components/dialog/__workshop__/provider.tsx +11 -0
  64. package/src/core/components/dialog/__workshop__/wrapped.tsx +76 -0
  65. package/src/core/components/dialog/dialog.tsx +430 -0
  66. package/src/core/components/dialog/dialogContext.ts +20 -0
  67. package/src/core/components/dialog/dialogProvider.tsx +35 -0
  68. package/src/core/components/dialog/index.ts +4 -0
  69. package/src/core/components/dialog/styles.ts +77 -0
  70. package/src/core/components/dialog/useDialog.ts +11 -0
  71. package/src/core/components/hotkeys/__workshop__/index.ts +14 -0
  72. package/src/core/components/hotkeys/__workshop__/plain.tsx +9 -0
  73. package/src/core/components/hotkeys/hotkeys.test.tsx +42 -0
  74. package/src/core/components/hotkeys/hotkeys.tsx +66 -0
  75. package/src/core/components/hotkeys/index.ts +1 -0
  76. package/src/core/components/index.ts +9 -0
  77. package/src/core/components/menu/__workshop__/asComponent.tsx +45 -0
  78. package/src/core/components/menu/__workshop__/avatarMenu.tsx +51 -0
  79. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +46 -0
  80. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +134 -0
  81. package/src/core/components/menu/__workshop__/customMenuItem.tsx +45 -0
  82. package/src/core/components/menu/__workshop__/customSelectedState.tsx +39 -0
  83. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +40 -0
  84. package/src/core/components/menu/__workshop__/groups.tsx +156 -0
  85. package/src/core/components/menu/__workshop__/index.ts +89 -0
  86. package/src/core/components/menu/__workshop__/menuButton.tsx +80 -0
  87. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +58 -0
  88. package/src/core/components/menu/__workshop__/nestedMenu.tsx +22 -0
  89. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +41 -0
  90. package/src/core/components/menu/__workshop__/selectedItem.tsx +69 -0
  91. package/src/core/components/menu/__workshop__/shouldFocus.tsx +47 -0
  92. package/src/core/components/menu/__workshop__/tones.tsx +25 -0
  93. package/src/core/components/menu/__workshop__/withoutArrow.tsx +32 -0
  94. package/src/core/components/menu/helpers.ts +82 -0
  95. package/src/core/components/menu/index.ts +5 -0
  96. package/src/core/components/menu/menu.spacing.test.tsx +63 -0
  97. package/src/core/components/menu/menu.test.tsx +125 -0
  98. package/src/core/components/menu/menu.tsx +178 -0
  99. package/src/core/components/menu/menuButton.tsx +268 -0
  100. package/src/core/components/menu/menuContext.ts +18 -0
  101. package/src/core/components/menu/menuDivider.ts +23 -0
  102. package/src/core/components/menu/menuGroup.spacing.test.tsx +63 -0
  103. package/src/core/components/menu/menuGroup.tsx +233 -0
  104. package/src/core/components/menu/menuItem.spacing.test.tsx +59 -0
  105. package/src/core/components/menu/menuItem.tsx +197 -0
  106. package/src/core/components/menu/useMenu.ts +21 -0
  107. package/src/core/components/menu/useMenuController.ts +231 -0
  108. package/src/core/components/skeleton/__workshop__/delay.tsx +70 -0
  109. package/src/core/components/skeleton/__workshop__/index.ts +11 -0
  110. package/src/core/components/skeleton/__workshop__/skeleton.tsx +64 -0
  111. package/src/core/components/skeleton/index.ts +2 -0
  112. package/src/core/components/skeleton/skeleton.tsx +57 -0
  113. package/src/core/components/skeleton/styles.ts +50 -0
  114. package/src/core/components/skeleton/textSkeleton.tsx +122 -0
  115. package/src/core/components/tab/__workshop__/example.tsx +79 -0
  116. package/src/core/components/tab/__workshop__/index.ts +14 -0
  117. package/src/core/components/tab/index.ts +3 -0
  118. package/src/core/components/tab/tab.tsx +101 -0
  119. package/src/core/components/tab/tabList.test.tsx +48 -0
  120. package/src/core/components/tab/tabList.tsx +70 -0
  121. package/src/core/components/tab/tabPanel.tsx +39 -0
  122. package/src/core/components/toast/__workshop__/hook.tsx +71 -0
  123. package/src/core/components/toast/__workshop__/index.ts +19 -0
  124. package/src/core/components/toast/__workshop__/toast.tsx +26 -0
  125. package/src/core/components/toast/index.ts +4 -0
  126. package/src/core/components/toast/styles.ts +77 -0
  127. package/src/core/components/toast/toast.test.tsx +101 -0
  128. package/src/core/components/toast/toast.tsx +198 -0
  129. package/src/core/components/toast/toastContext.ts +7 -0
  130. package/src/core/components/toast/toastLayer.tsx +51 -0
  131. package/src/core/components/toast/toastProvider.tsx +113 -0
  132. package/src/core/components/toast/toastState.ts +6 -0
  133. package/src/core/components/toast/types.ts +26 -0
  134. package/src/core/components/toast/useToast.ts +25 -0
  135. package/src/core/components/tree/__workshop__/basic.perf.ts +19 -0
  136. package/src/core/components/tree/__workshop__/basic.tsx +105 -0
  137. package/src/core/components/tree/__workshop__/index.ts +21 -0
  138. package/src/core/components/tree/__workshop__/tabFromElement.tsx +84 -0
  139. package/src/core/components/tree/helpers.ts +105 -0
  140. package/src/core/components/tree/index.ts +4 -0
  141. package/src/core/components/tree/style.ts +105 -0
  142. package/src/core/components/tree/tree.test.tsx +55 -0
  143. package/src/core/components/tree/tree.tsx +240 -0
  144. package/src/core/components/tree/treeContext.ts +10 -0
  145. package/src/core/components/tree/treeGroup.tsx +28 -0
  146. package/src/core/components/tree/treeItem.test.tsx +65 -0
  147. package/src/core/components/tree/treeItem.tsx +224 -0
  148. package/src/core/components/tree/types.ts +25 -0
  149. package/src/core/components/tree/useTree.ts +17 -0
  150. package/src/core/constants.ts +79 -0
  151. package/src/core/helpers/animation.ts +27 -0
  152. package/src/core/helpers/element.ts +55 -0
  153. package/src/core/helpers/focus.ts +100 -0
  154. package/src/core/helpers/index.ts +4 -0
  155. package/src/core/helpers/scroll.ts +15 -0
  156. package/src/core/hooks/index.ts +12 -0
  157. package/src/core/hooks/useArrayProp.ts +17 -0
  158. package/src/core/hooks/useClickOutside.test.tsx +482 -0
  159. package/src/core/hooks/useClickOutside.ts +118 -0
  160. package/src/core/hooks/useClickOutsideEvent.test.tsx +115 -0
  161. package/src/core/hooks/useClickOutsideEvent.ts +73 -0
  162. package/src/core/hooks/useCustomValidity.ts +13 -0
  163. package/src/core/hooks/useDelayed.test.ts +88 -0
  164. package/src/core/hooks/useDelayedState.ts +36 -0
  165. package/src/core/hooks/useElementRect/__workshop__/example.tsx +32 -0
  166. package/src/core/hooks/useElementRect/__workshop__/index.ts +14 -0
  167. package/src/core/hooks/useElementRect/index.ts +1 -0
  168. package/src/core/hooks/useElementRect/useElementRect.ts +13 -0
  169. package/src/core/hooks/useElementSize.ts +19 -0
  170. package/src/core/hooks/useForwardedRef.ts +19 -0
  171. package/src/core/hooks/useGlobalKeyDown.ts +24 -0
  172. package/src/core/hooks/useIsomorphicEffect.ts +7 -0
  173. package/src/core/hooks/useMatchMedia.ts +28 -0
  174. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +14 -0
  175. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +14 -0
  176. package/src/core/hooks/useMediaIndex/index.ts +1 -0
  177. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +36 -0
  178. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +102 -0
  179. package/src/core/hooks/useMounted.ts +15 -0
  180. package/src/core/hooks/usePrefersDark.hydration.test.tsx +56 -0
  181. package/src/core/hooks/usePrefersDark.test.tsx +19 -0
  182. package/src/core/hooks/usePrefersDark.ts +16 -0
  183. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +56 -0
  184. package/src/core/hooks/usePrefersReducedMotion.test.tsx +19 -0
  185. package/src/core/hooks/usePrefersReducedMotion.ts +16 -0
  186. package/src/core/index.ts +10 -0
  187. package/src/core/lib/createGlobalScopedContext.ts +36 -0
  188. package/src/core/lib/globalScope.ts +19 -0
  189. package/src/core/lib/isRecord.ts +3 -0
  190. package/src/core/middleware/origin.ts +47 -0
  191. package/src/core/observers/elementSizeObserver.ts +116 -0
  192. package/src/core/observers/index.ts +2 -0
  193. package/src/core/observers/resizeObserver.ts +9 -0
  194. package/src/core/primitives/_selectable/index.ts +1 -0
  195. package/src/core/primitives/_selectable/selectable.tsx +15 -0
  196. package/src/core/primitives/_selectable/style.ts +115 -0
  197. package/src/core/primitives/avatar/__workshop__/asButton.tsx +14 -0
  198. package/src/core/primitives/avatar/__workshop__/index.ts +29 -0
  199. package/src/core/primitives/avatar/__workshop__/stack.tsx +25 -0
  200. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +63 -0
  201. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +70 -0
  202. package/src/core/primitives/avatar/avatar.tsx +200 -0
  203. package/src/core/primitives/avatar/avatarCounter.tsx +91 -0
  204. package/src/core/primitives/avatar/avatarStack.tsx +100 -0
  205. package/src/core/primitives/avatar/index.ts +4 -0
  206. package/src/core/primitives/avatar/styles.ts +167 -0
  207. package/src/core/primitives/avatar/types.ts +17 -0
  208. package/src/core/primitives/badge/__workshop__/index.ts +19 -0
  209. package/src/core/primitives/badge/__workshop__/props.tsx +30 -0
  210. package/src/core/primitives/badge/__workshop__/tones.tsx +21 -0
  211. package/src/core/primitives/badge/badge.test.tsx +16 -0
  212. package/src/core/primitives/badge/badge.tsx +70 -0
  213. package/src/core/primitives/badge/index.ts +1 -0
  214. package/src/core/primitives/badge/styles.ts +20 -0
  215. package/src/core/primitives/badge/types.ts +8 -0
  216. package/src/core/primitives/box/__workshop__/asComponent.tsx +31 -0
  217. package/src/core/primitives/box/__workshop__/index.ts +24 -0
  218. package/src/core/primitives/box/__workshop__/props.tsx +20 -0
  219. package/src/core/primitives/box/__workshop__/responsive.tsx +20 -0
  220. package/src/core/primitives/box/box.test.tsx +142 -0
  221. package/src/core/primitives/box/box.tsx +154 -0
  222. package/src/core/primitives/box/index.ts +1 -0
  223. package/src/core/primitives/button/__workshop__/custom.tsx +51 -0
  224. package/src/core/primitives/button/__workshop__/customIcons.tsx +30 -0
  225. package/src/core/primitives/button/__workshop__/disabled.tsx +74 -0
  226. package/src/core/primitives/button/__workshop__/index.ts +59 -0
  227. package/src/core/primitives/button/__workshop__/labelUploadButton.tsx +36 -0
  228. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +12 -0
  229. package/src/core/primitives/button/__workshop__/props.tsx +55 -0
  230. package/src/core/primitives/button/__workshop__/stacked.tsx +58 -0
  231. package/src/core/primitives/button/__workshop__/styled1.tsx +17 -0
  232. package/src/core/primitives/button/__workshop__/styled2.tsx +19 -0
  233. package/src/core/primitives/button/__workshop__/uploadButton.tsx +28 -0
  234. package/src/core/primitives/button/button.test.tsx +82 -0
  235. package/src/core/primitives/button/button.tsx +210 -0
  236. package/src/core/primitives/button/index.ts +1 -0
  237. package/src/core/primitives/button/styles.ts +117 -0
  238. package/src/core/primitives/card/__workshop__/allTones.tsx +25 -0
  239. package/src/core/primitives/card/__workshop__/asButton.tsx +107 -0
  240. package/src/core/primitives/card/__workshop__/asComponent.tsx +27 -0
  241. package/src/core/primitives/card/__workshop__/checkered.tsx +26 -0
  242. package/src/core/primitives/card/__workshop__/index.ts +18 -0
  243. package/src/core/primitives/card/__workshop__/interactive.tsx +30 -0
  244. package/src/core/primitives/card/__workshop__/listNavigation.tsx +80 -0
  245. package/src/core/primitives/card/__workshop__/props.tsx +53 -0
  246. package/src/core/primitives/card/__workshop__/selected.tsx +94 -0
  247. package/src/core/primitives/card/__workshop__/styled.tsx +14 -0
  248. package/src/core/primitives/card/card.tsx +128 -0
  249. package/src/core/primitives/card/index.ts +2 -0
  250. package/src/core/primitives/card/styles.ts +147 -0
  251. package/src/core/primitives/card/types.ts +11 -0
  252. package/src/core/primitives/checkbox/__workshop__/example.tsx +25 -0
  253. package/src/core/primitives/checkbox/__workshop__/index.ts +13 -0
  254. package/src/core/primitives/checkbox/__workshop__/props.tsx +33 -0
  255. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +16 -0
  256. package/src/core/primitives/checkbox/__workshop__/tones.tsx +28 -0
  257. package/src/core/primitives/checkbox/checkbox.tsx +73 -0
  258. package/src/core/primitives/checkbox/index.ts +1 -0
  259. package/src/core/primitives/checkbox/styles.ts +128 -0
  260. package/src/core/primitives/code/__workshop__/index.ts +19 -0
  261. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +48 -0
  262. package/src/core/primitives/code/__workshop__/props.tsx +21 -0
  263. package/src/core/primitives/code/code.tsx +55 -0
  264. package/src/core/primitives/code/index.ts +1 -0
  265. package/src/core/primitives/code/refractor.tsx +20 -0
  266. package/src/core/primitives/code/styles.ts +77 -0
  267. package/src/core/primitives/container/__workshop__/example.tsx +20 -0
  268. package/src/core/primitives/container/__workshop__/index.ts +8 -0
  269. package/src/core/primitives/container/container.tsx +54 -0
  270. package/src/core/primitives/container/index.ts +2 -0
  271. package/src/core/primitives/container/styles.ts +23 -0
  272. package/src/core/primitives/container/types.ts +6 -0
  273. package/src/core/primitives/flex/__workshop__/example.tsx +34 -0
  274. package/src/core/primitives/flex/__workshop__/gap.tsx +25 -0
  275. package/src/core/primitives/flex/__workshop__/index.ts +11 -0
  276. package/src/core/primitives/flex/flex.tsx +64 -0
  277. package/src/core/primitives/flex/index.ts +1 -0
  278. package/src/core/primitives/grid/__workshop__/index.ts +10 -0
  279. package/src/core/primitives/grid/__workshop__/responsive.tsx +54 -0
  280. package/src/core/primitives/grid/grid.test.tsx +80 -0
  281. package/src/core/primitives/grid/grid.tsx +74 -0
  282. package/src/core/primitives/grid/index.ts +1 -0
  283. package/src/core/primitives/heading/__workshop__/index.ts +19 -0
  284. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +54 -0
  285. package/src/core/primitives/heading/__workshop__/plain.tsx +32 -0
  286. package/src/core/primitives/heading/heading.tsx +88 -0
  287. package/src/core/primitives/heading/index.ts +1 -0
  288. package/src/core/primitives/heading/styles.ts +64 -0
  289. package/src/core/primitives/heading/types.ts +7 -0
  290. package/src/core/primitives/index.ts +27 -0
  291. package/src/core/primitives/inline/__workshop__/index.ts +8 -0
  292. package/src/core/primitives/inline/__workshop__/plain.tsx +27 -0
  293. package/src/core/primitives/inline/index.ts +1 -0
  294. package/src/core/primitives/inline/inline.test.tsx +51 -0
  295. package/src/core/primitives/inline/inline.tsx +63 -0
  296. package/src/core/primitives/inline/styles.ts +32 -0
  297. package/src/core/primitives/inline/types.ts +6 -0
  298. package/src/core/primitives/kbd/__workshop__/index.ts +8 -0
  299. package/src/core/primitives/kbd/__workshop__/plain.tsx +9 -0
  300. package/src/core/primitives/kbd/index.ts +1 -0
  301. package/src/core/primitives/kbd/kbd.tsx +69 -0
  302. package/src/core/primitives/label/__workshop__/index.ts +19 -0
  303. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +48 -0
  304. package/src/core/primitives/label/__workshop__/plain.tsx +24 -0
  305. package/src/core/primitives/label/index.ts +1 -0
  306. package/src/core/primitives/label/label.tsx +87 -0
  307. package/src/core/primitives/label/styles.ts +45 -0
  308. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +77 -0
  309. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +31 -0
  310. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +32 -0
  311. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +11 -0
  312. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +71 -0
  313. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +71 -0
  314. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +89 -0
  315. package/src/core/primitives/popover/__workshop__/TestStory.tsx +97 -0
  316. package/src/core/primitives/popover/__workshop__/index.ts +49 -0
  317. package/src/core/primitives/popover/constants.ts +22 -0
  318. package/src/core/primitives/popover/floating-ui/size.ts +99 -0
  319. package/src/core/primitives/popover/helpers.ts +31 -0
  320. package/src/core/primitives/popover/index.ts +2 -0
  321. package/src/core/primitives/popover/popover.tsx +511 -0
  322. package/src/core/primitives/popover/popoverCard.tsx +166 -0
  323. package/src/core/primitives/popover/types.ts +7 -0
  324. package/src/core/primitives/radio/__workshop__/example.tsx +63 -0
  325. package/src/core/primitives/radio/__workshop__/index.ts +11 -0
  326. package/src/core/primitives/radio/__workshop__/plain.tsx +28 -0
  327. package/src/core/primitives/radio/index.ts +1 -0
  328. package/src/core/primitives/radio/radio.tsx +51 -0
  329. package/src/core/primitives/radio/styles.ts +117 -0
  330. package/src/core/primitives/select/__workshop__/index.ts +11 -0
  331. package/src/core/primitives/select/__workshop__/plain.tsx +27 -0
  332. package/src/core/primitives/select/__workshop__/readOnly.tsx +23 -0
  333. package/src/core/primitives/select/index.ts +1 -0
  334. package/src/core/primitives/select/select.test.tsx +52 -0
  335. package/src/core/primitives/select/select.tsx +94 -0
  336. package/src/core/primitives/select/styles.ts +166 -0
  337. package/src/core/primitives/spinner/__workshop__/Props.tsx +15 -0
  338. package/src/core/primitives/spinner/__workshop__/index.ts +14 -0
  339. package/src/core/primitives/spinner/index.ts +1 -0
  340. package/src/core/primitives/spinner/spinner.tsx +46 -0
  341. package/src/core/primitives/stack/__workshop__/index.ts +14 -0
  342. package/src/core/primitives/stack/__workshop__/plain.tsx +32 -0
  343. package/src/core/primitives/stack/index.ts +1 -0
  344. package/src/core/primitives/stack/stack.test.tsx +57 -0
  345. package/src/core/primitives/stack/stack.tsx +57 -0
  346. package/src/core/primitives/stack/styles.ts +32 -0
  347. package/src/core/primitives/switch/__workshop__/example.tsx +23 -0
  348. package/src/core/primitives/switch/__workshop__/index.ts +11 -0
  349. package/src/core/primitives/switch/__workshop__/props.tsx +21 -0
  350. package/src/core/primitives/switch/index.ts +1 -0
  351. package/src/core/primitives/switch/styles.ts +173 -0
  352. package/src/core/primitives/switch/switch.tsx +68 -0
  353. package/src/core/primitives/text/__workshop__/colored.tsx +30 -0
  354. package/src/core/primitives/text/__workshop__/example.tsx +39 -0
  355. package/src/core/primitives/text/__workshop__/index.ts +24 -0
  356. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +48 -0
  357. package/src/core/primitives/text/index.ts +1 -0
  358. package/src/core/primitives/text/styles.ts +74 -0
  359. package/src/core/primitives/text/text.tsx +89 -0
  360. package/src/core/primitives/textArea/__workshop__/index.ts +14 -0
  361. package/src/core/primitives/textArea/__workshop__/plain.tsx +50 -0
  362. package/src/core/primitives/textArea/index.ts +1 -0
  363. package/src/core/primitives/textArea/textArea.tsx +120 -0
  364. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +30 -0
  365. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +17 -0
  366. package/src/core/primitives/textInput/__workshop__/index.ts +44 -0
  367. package/src/core/primitives/textInput/__workshop__/plain.tsx +98 -0
  368. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +9 -0
  369. package/src/core/primitives/textInput/__workshop__/states.tsx +53 -0
  370. package/src/core/primitives/textInput/__workshop__/tones.tsx +277 -0
  371. package/src/core/primitives/textInput/__workshop__/typed.tsx +23 -0
  372. package/src/core/primitives/textInput/index.ts +1 -0
  373. package/src/core/primitives/textInput/textInput.test.tsx +48 -0
  374. package/src/core/primitives/textInput/textInput.tsx +395 -0
  375. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +102 -0
  376. package/src/core/primitives/tooltip/__workshop__/index.ts +29 -0
  377. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +74 -0
  378. package/src/core/primitives/tooltip/__workshop__/props.tsx +107 -0
  379. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +86 -0
  380. package/src/core/primitives/tooltip/constants.ts +23 -0
  381. package/src/core/primitives/tooltip/index.ts +2 -0
  382. package/src/core/primitives/tooltip/tooltip.test.tsx +452 -0
  383. package/src/core/primitives/tooltip/tooltip.tsx +495 -0
  384. package/src/core/primitives/tooltip/tooltipCard.tsx +109 -0
  385. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +4 -0
  386. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +11 -0
  387. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +57 -0
  388. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +10 -0
  389. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +13 -0
  390. package/src/core/primitives/types.ts +179 -0
  391. package/src/core/styles/border/borderStyle.ts +56 -0
  392. package/src/core/styles/border/index.ts +2 -0
  393. package/src/core/styles/border/types.ts +10 -0
  394. package/src/core/styles/box/boxStyle.ts +69 -0
  395. package/src/core/styles/box/index.ts +2 -0
  396. package/src/core/styles/box/types.ts +11 -0
  397. package/src/core/styles/card/_cardColorStyle.ts +108 -0
  398. package/src/core/styles/card/index.ts +1 -0
  399. package/src/core/styles/flex/flexItemStyle.ts +27 -0
  400. package/src/core/styles/flex/flexStyle.ts +70 -0
  401. package/src/core/styles/flex/index.ts +3 -0
  402. package/src/core/styles/flex/types.ts +25 -0
  403. package/src/core/styles/focusRing/index.ts +25 -0
  404. package/src/core/styles/font/codeFontStyle.ts +13 -0
  405. package/src/core/styles/font/headingFontStyle.ts +13 -0
  406. package/src/core/styles/font/index.ts +6 -0
  407. package/src/core/styles/font/labelFontStyle.ts +13 -0
  408. package/src/core/styles/font/responsiveFont.ts +103 -0
  409. package/src/core/styles/font/textAlignStyle.ts +19 -0
  410. package/src/core/styles/font/textFontStyle.ts +13 -0
  411. package/src/core/styles/font/types.ts +35 -0
  412. package/src/core/styles/grid/gridItemStyle.ts +82 -0
  413. package/src/core/styles/grid/gridStyle.ts +108 -0
  414. package/src/core/styles/grid/index.ts +3 -0
  415. package/src/core/styles/grid/types.ts +37 -0
  416. package/src/core/styles/helpers.ts +72 -0
  417. package/src/core/styles/index.ts +5 -0
  418. package/src/core/styles/input/index.ts +2 -0
  419. package/src/core/styles/input/responsiveInputPaddingStyle.ts +78 -0
  420. package/src/core/styles/input/textInputStyle.ts +263 -0
  421. package/src/core/styles/internal.ts +12 -0
  422. package/src/core/styles/margin/index.ts +2 -0
  423. package/src/core/styles/margin/marginStyle.ts +21 -0
  424. package/src/core/styles/margin/marginsStyle.test.ts +33 -0
  425. package/src/core/styles/margin/types.ts +9 -0
  426. package/src/core/styles/padding/index.ts +2 -0
  427. package/src/core/styles/padding/paddingStyle.test.ts +33 -0
  428. package/src/core/styles/padding/paddingStyle.ts +21 -0
  429. package/src/core/styles/padding/types.ts +12 -0
  430. package/src/core/styles/radius/index.ts +2 -0
  431. package/src/core/styles/radius/radiusStyle.ts +23 -0
  432. package/src/core/styles/radius/types.ts +8 -0
  433. package/src/core/styles/shadow/index.ts +2 -0
  434. package/src/core/styles/shadow/shadowStyle.ts +29 -0
  435. package/src/core/styles/shadow/types.ts +6 -0
  436. package/src/core/styles/types.ts +8 -0
  437. package/src/core/theme/__workshop__/build/Root.tsx +367 -0
  438. package/src/core/theme/__workshop__/build/helpers.ts +46 -0
  439. package/src/core/theme/__workshop__/build/story.tsx +465 -0
  440. package/src/core/theme/__workshop__/canvas.tsx +352 -0
  441. package/src/core/theme/__workshop__/color.tsx +62 -0
  442. package/src/core/theme/__workshop__/debug/story.tsx +408 -0
  443. package/src/core/theme/__workshop__/index.ts +39 -0
  444. package/src/core/theme/__workshop__/layer.tsx +78 -0
  445. package/src/core/theme/__workshop__/nestedProvider.tsx +15 -0
  446. package/src/core/theme/index.ts +5 -0
  447. package/src/core/theme/theme.test.tsx +73 -0
  448. package/src/core/theme/themeColorProvider.tsx +29 -0
  449. package/src/core/theme/themeContext.ts +10 -0
  450. package/src/core/theme/themeProvider.tsx +62 -0
  451. package/src/core/theme/types.ts +12 -0
  452. package/src/core/theme/useRootTheme.ts +17 -0
  453. package/src/core/theme/useTheme.ts +16 -0
  454. package/src/core/types/avatar.ts +14 -0
  455. package/src/core/types/badge.ts +12 -0
  456. package/src/core/types/box.ts +19 -0
  457. package/src/core/types/button.ts +21 -0
  458. package/src/core/types/card.ts +6 -0
  459. package/src/core/types/component.ts +32 -0
  460. package/src/core/types/dialog.ts +4 -0
  461. package/src/core/types/flex.ts +30 -0
  462. package/src/core/types/grid.ts +14 -0
  463. package/src/core/types/gridItem.ts +29 -0
  464. package/src/core/types/index.ts +15 -0
  465. package/src/core/types/placement.ts +18 -0
  466. package/src/core/types/popover.ts +4 -0
  467. package/src/core/types/radius.ts +4 -0
  468. package/src/core/types/selectable.ts +6 -0
  469. package/src/core/types/text.ts +4 -0
  470. package/src/core/utils/arrow/arrow.tsx +123 -0
  471. package/src/core/utils/arrow/cmds.ts +91 -0
  472. package/src/core/utils/arrow/index.ts +1 -0
  473. package/src/core/utils/boundaryElement/__workshop__/index.ts +14 -0
  474. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +19 -0
  475. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +100 -0
  476. package/src/core/utils/boundaryElement/boundaryElementContext.ts +7 -0
  477. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +24 -0
  478. package/src/core/utils/boundaryElement/index.ts +3 -0
  479. package/src/core/utils/boundaryElement/types.ts +7 -0
  480. package/src/core/utils/boundaryElement/useBoundaryElement.ts +26 -0
  481. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +21 -0
  482. package/src/core/utils/conditionalWrapper/index.ts +1 -0
  483. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +30 -0
  484. package/src/core/utils/elementQuery/__workshop__/index.ts +14 -0
  485. package/src/core/utils/elementQuery/elementQuery.tsx +53 -0
  486. package/src/core/utils/elementQuery/helpers.ts +27 -0
  487. package/src/core/utils/elementQuery/index.ts +1 -0
  488. package/src/core/utils/errorBoundary.tsx +48 -0
  489. package/src/core/utils/getElementRef.ts +26 -0
  490. package/src/core/utils/index.ts +9 -0
  491. package/src/core/utils/layer/__workshop__/_debug.tsx +17 -0
  492. package/src/core/utils/layer/__workshop__/index.ts +24 -0
  493. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +49 -0
  494. package/src/core/utils/layer/__workshop__/nested.tsx +98 -0
  495. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +13 -0
  496. package/src/core/utils/layer/getLayerContext.test.ts +30 -0
  497. package/src/core/utils/layer/getLayerContext.ts +21 -0
  498. package/src/core/utils/layer/index.ts +4 -0
  499. package/src/core/utils/layer/layer.test.tsx +108 -0
  500. package/src/core/utils/layer/layer.tsx +98 -0
  501. package/src/core/utils/layer/layerContext.ts +7 -0
  502. package/src/core/utils/layer/layerProvider.tsx +111 -0
  503. package/src/core/utils/layer/types.ts +9 -0
  504. package/src/core/utils/layer/useLayer.ts +26 -0
  505. package/src/core/utils/portal/__workshop__/index.ts +14 -0
  506. package/src/core/utils/portal/__workshop__/named.tsx +63 -0
  507. package/src/core/utils/portal/index.ts +4 -0
  508. package/src/core/utils/portal/portal.test.tsx +103 -0
  509. package/src/core/utils/portal/portal.ts +32 -0
  510. package/src/core/utils/portal/portalContext.ts +31 -0
  511. package/src/core/utils/portal/portalProvider.tsx +47 -0
  512. package/src/core/utils/portal/types.ts +9 -0
  513. package/src/core/utils/portal/usePortal.ts +25 -0
  514. package/src/core/utils/spanWithTextOverflow.tsx +10 -0
  515. package/src/core/utils/srOnly/index.ts +1 -0
  516. package/src/core/utils/srOnly/srOnly.tsx +36 -0
  517. package/src/core/utils/virtualList/__workshop__/changingProps.tsx +36 -0
  518. package/src/core/utils/virtualList/__workshop__/elementScroll.tsx +24 -0
  519. package/src/core/utils/virtualList/__workshop__/index.ts +29 -0
  520. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +48 -0
  521. package/src/core/utils/virtualList/__workshop__/windowScrolll.tsx +22 -0
  522. package/src/core/utils/virtualList/index.ts +1 -0
  523. package/src/core/utils/virtualList/virtualList.tsx +200 -0
  524. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +76 -0
  525. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +54 -0
  526. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +22 -0
  527. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +55 -0
  528. package/src/theme/build/_deprecated/color/card/createCardStates.ts +60 -0
  529. package/src/theme/build/_deprecated/color/color.test.ts +63 -0
  530. package/src/theme/build/_deprecated/color/defaults.ts +390 -0
  531. package/src/theme/build/_deprecated/color/factory.ts +142 -0
  532. package/src/theme/build/_deprecated/color/index.ts +1 -0
  533. package/src/theme/build/_deprecated/color/input/createInputModes.ts +81 -0
  534. package/src/theme/build/_deprecated/color/muted/createMuted.ts +54 -0
  535. package/src/theme/build/_deprecated/color/spot/createSpot.ts +20 -0
  536. package/src/theme/build/buildColorTheme.test.ts +183 -0
  537. package/src/theme/build/buildColorTheme.ts +499 -0
  538. package/src/theme/build/buildTheme.test.ts +87 -0
  539. package/src/theme/build/buildTheme.ts +36 -0
  540. package/src/theme/build/colorToken/colorToken.ts +19 -0
  541. package/src/theme/build/colorToken/compileColorToken.ts +21 -0
  542. package/src/theme/build/colorToken/index.ts +2 -0
  543. package/src/theme/build/colorToken/types.ts +6 -0
  544. package/src/theme/build/index.ts +3 -0
  545. package/src/theme/build/lib/color-fns/blend/index.ts +3 -0
  546. package/src/theme/build/lib/color-fns/blend/mix.ts +21 -0
  547. package/src/theme/build/lib/color-fns/blend/multiply.ts +18 -0
  548. package/src/theme/build/lib/color-fns/blend/screen.ts +18 -0
  549. package/src/theme/build/lib/color-fns/color-fns.test.ts +68 -0
  550. package/src/theme/build/lib/color-fns/contrastRatio.ts +31 -0
  551. package/src/theme/build/lib/color-fns/convert.ts +150 -0
  552. package/src/theme/build/lib/color-fns/index.ts +6 -0
  553. package/src/theme/build/lib/color-fns/parse.ts +60 -0
  554. package/src/theme/build/lib/color-fns/rgba.ts +10 -0
  555. package/src/theme/build/lib/color-fns/types.ts +28 -0
  556. package/src/theme/build/lib/isRecord.ts +3 -0
  557. package/src/theme/build/lib/lazy.ts +30 -0
  558. package/src/theme/build/lib/utils.ts +19 -0
  559. package/src/theme/build/merge.ts +26 -0
  560. package/src/theme/build/mixThemeColor.test.ts +21 -0
  561. package/src/theme/build/mixThemeColor.ts +53 -0
  562. package/src/theme/build/renderColorTheme.ts +532 -0
  563. package/src/theme/build/renderColorValue.ts +85 -0
  564. package/src/theme/build/resolveColorTokens.ts +268 -0
  565. package/src/theme/build/theme.test.ts +27 -0
  566. package/src/theme/config/helpers.ts +55 -0
  567. package/src/theme/config/index.ts +4 -0
  568. package/src/theme/config/system.ts +115 -0
  569. package/src/theme/config/tokens/color/index.ts +1 -0
  570. package/src/theme/config/tokens/color/types.ts +133 -0
  571. package/src/theme/config/tokens/index.ts +4 -0
  572. package/src/theme/config/tokens/parseTokenKey.test.ts +64 -0
  573. package/src/theme/config/tokens/parseTokenKey.ts +67 -0
  574. package/src/theme/config/tokens/parseTokenValue.test.ts +42 -0
  575. package/src/theme/config/tokens/parseTokenValue.ts +133 -0
  576. package/src/theme/config/tokens/types.ts +53 -0
  577. package/src/theme/config/types.ts +46 -0
  578. package/src/theme/defaults/colorPalette.ts +5 -0
  579. package/src/theme/defaults/colorTokens.ts +648 -0
  580. package/src/theme/defaults/config.ts +84 -0
  581. package/src/theme/defaults/fonts.ts +227 -0
  582. package/src/theme/getScopedTheme.ts +98 -0
  583. package/src/theme/index.ts +5 -0
  584. package/src/theme/system/avatar.ts +14 -0
  585. package/src/theme/system/color/_constants.ts +45 -0
  586. package/src/theme/system/color/_helpers.ts +24 -0
  587. package/src/theme/system/color/_system.ts +40 -0
  588. package/src/theme/system/color/avatar.ts +15 -0
  589. package/src/theme/system/color/badge.ts +16 -0
  590. package/src/theme/system/color/button.ts +17 -0
  591. package/src/theme/system/color/color.ts +34 -0
  592. package/src/theme/system/color/index.ts +13 -0
  593. package/src/theme/system/color/input.ts +25 -0
  594. package/src/theme/system/color/kbd.ts +8 -0
  595. package/src/theme/system/color/selectable.ts +12 -0
  596. package/src/theme/system/color/shadow.ts +7 -0
  597. package/src/theme/system/color/state.ts +43 -0
  598. package/src/theme/system/color/syntax.ts +41 -0
  599. package/src/theme/system/css.ts +14 -0
  600. package/src/theme/system/focusRing.ts +7 -0
  601. package/src/theme/system/font.ts +52 -0
  602. package/src/theme/system/index.ts +11 -0
  603. package/src/theme/system/input.ts +33 -0
  604. package/src/theme/system/layer.ts +8 -0
  605. package/src/theme/system/shadow.ts +19 -0
  606. package/src/theme/system/styles.ts +13 -0
  607. package/src/theme/system/theme.ts +138 -0
  608. package/src/theme/system/v0/avatar.ts +10 -0
  609. package/src/theme/system/v0/color/_generic.ts +35 -0
  610. package/src/theme/system/v0/color/_system.ts +17 -0
  611. package/src/theme/system/v0/color/base.ts +21 -0
  612. package/src/theme/system/v0/color/button.ts +42 -0
  613. package/src/theme/system/v0/color/card.ts +19 -0
  614. package/src/theme/system/v0/color/color.ts +40 -0
  615. package/src/theme/system/v0/color/index.ts +11 -0
  616. package/src/theme/system/v0/color/input.ts +34 -0
  617. package/src/theme/system/v0/color/muted.ts +26 -0
  618. package/src/theme/system/v0/color/selectable.ts +31 -0
  619. package/src/theme/system/v0/color/solid.ts +26 -0
  620. package/src/theme/system/v0/color/spot.ts +13 -0
  621. package/src/theme/system/v0/index.ts +3 -0
  622. package/src/theme/system/v0/input.ts +23 -0
  623. package/src/theme/versioning/getTheme_v2.ts +57 -0
  624. package/src/theme/versioning/index.ts +5 -0
  625. package/src/theme/versioning/is_v0.ts +6 -0
  626. package/src/theme/versioning/is_v2.ts +6 -0
  627. package/src/theme/versioning/themeColor_v0_v2.ts +243 -0
  628. package/src/theme/versioning/themeColor_v2_v2_9.ts +49 -0
  629. package/src/theme/versioning/v0_v2.ts +94 -0
  630. package/src/theme/versioning/v2_v0.ts +135 -0
package/dist/index.js ADDED
@@ -0,0 +1,2036 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: !0 });
3
+ var _visualEditing = require("./_chunks-cjs/_visual-editing.js"), jsxRuntime = require("react/jsx-runtime"), reactCompilerRuntime = require("react-compiler-runtime"), icons = require("@bettercms-ai/icons"), react = require("react"), styledComponents = require("styled-components"), theme = require("@bettercms-ai/kit/theme"), react$1 = require("motion/react");
4
+ function _raf(fn) {
5
+ const frameId = requestAnimationFrame(fn);
6
+ return () => {
7
+ cancelAnimationFrame(frameId);
8
+ };
9
+ }
10
+ function _raf2(fn) {
11
+ let innerDispose = null;
12
+ const outerDispose = _raf(() => {
13
+ innerDispose = _raf(fn);
14
+ });
15
+ return () => {
16
+ innerDispose && innerDispose(), outerDispose();
17
+ };
18
+ }
19
+ function _hasFocus(element) {
20
+ return !!document.activeElement && element.contains(document.activeElement);
21
+ }
22
+ function isFocusable(element) {
23
+ return element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute("tabIndex") !== null ? !0 : _visualEditing.isHTMLAnchorElement(element) ? !!element.href && element.rel !== "ignore" : _visualEditing.isHTMLInputElement(element) ? element.type !== "hidden" && element.type !== "file" && !element.disabled : _visualEditing.isHTMLButtonElement(element) || _visualEditing.isHTMLSelectElement(element) || _visualEditing.isHTMLTextAreaElement(element) ? !element.disabled : !1;
24
+ }
25
+ function attemptFocus(element) {
26
+ if (!isFocusable(element))
27
+ return !1;
28
+ try {
29
+ element.focus();
30
+ } catch {
31
+ }
32
+ return document.activeElement === element;
33
+ }
34
+ function focusFirstDescendant(element) {
35
+ for (let i = 0; i < element.childNodes.length; i++) {
36
+ const child = element.childNodes[i];
37
+ if (_visualEditing.isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child)))
38
+ return !0;
39
+ }
40
+ return !1;
41
+ }
42
+ function focusLastDescendant(element) {
43
+ for (let i = element.childNodes.length - 1; i >= 0; i--) {
44
+ const child = element.childNodes[i];
45
+ if (_visualEditing.isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child)))
46
+ return !0;
47
+ }
48
+ return !1;
49
+ }
50
+ function useArrayProp(val, defaultVal) {
51
+ const $ = reactCompilerRuntime.c(3);
52
+ let t0;
53
+ return $[0] !== defaultVal || $[1] !== val ? (t0 = _visualEditing._getArrayProp(val, defaultVal), $[0] = defaultVal, $[1] = val, $[2] = t0) : t0 = $[2], t0;
54
+ }
55
+ function _getElements(element, elementsArg) {
56
+ const ret = [element];
57
+ for (const el of elementsArg)
58
+ Array.isArray(el) ? ret.push(...el) : ret.push(el);
59
+ return ret.filter(Boolean);
60
+ }
61
+ function useClickOutside(listener, t0, boundaryElement) {
62
+ const $ = reactCompilerRuntime.c(12), elementsArg = t0 === void 0 ? _visualEditing.EMPTY_ARRAY : t0, [element, setElement] = react.useState(null);
63
+ let t1;
64
+ $[0] !== element || $[1] !== elementsArg ? (t1 = () => _getElements(element, elementsArg), $[0] = element, $[1] = elementsArg, $[2] = t1) : t1 = $[2];
65
+ const [elements, setElements] = react.useState(t1), elementsRef = react.useRef(elements);
66
+ let t2, t3;
67
+ $[3] !== element || $[4] !== elementsArg ? (t2 = () => {
68
+ const prevElements = elementsRef.current, nextElements = _getElements(element, elementsArg);
69
+ if (prevElements.length !== nextElements.length) {
70
+ setElements(nextElements), elementsRef.current = nextElements;
71
+ return;
72
+ }
73
+ for (const el of prevElements)
74
+ if (!nextElements.includes(el)) {
75
+ setElements(nextElements), elementsRef.current = nextElements;
76
+ return;
77
+ }
78
+ for (const el_0 of nextElements)
79
+ if (!prevElements.includes(el_0)) {
80
+ setElements(nextElements), elementsRef.current = nextElements;
81
+ return;
82
+ }
83
+ }, t3 = [element, elementsArg], $[3] = element, $[4] = elementsArg, $[5] = t2, $[6] = t3) : (t2 = $[5], t3 = $[6]), react.useEffect(t2, t3);
84
+ let t4, t5;
85
+ return $[7] !== boundaryElement || $[8] !== elements || $[9] !== listener ? (t4 = () => {
86
+ if (!listener)
87
+ return;
88
+ const handleWindowMouseDown = (evt) => {
89
+ const target = evt.target;
90
+ if (target instanceof Node && !(boundaryElement && !boundaryElement.contains(target))) {
91
+ for (const el_1 of elements)
92
+ if (target === el_1 || el_1.contains(target))
93
+ return;
94
+ listener(evt);
95
+ }
96
+ };
97
+ return window.addEventListener("mousedown", handleWindowMouseDown), () => {
98
+ window.removeEventListener("mousedown", handleWindowMouseDown);
99
+ };
100
+ }, t5 = [boundaryElement, listener, elements], $[7] = boundaryElement, $[8] = elements, $[9] = listener, $[10] = t4, $[11] = t5) : (t4 = $[10], t5 = $[11]), react.useEffect(t4, t5), setElement;
101
+ }
102
+ function useElementRect(element) {
103
+ return _visualEditing.useElementSize(element)?._contentRect || null;
104
+ }
105
+ function useForwardedRef(ref) {
106
+ const $ = reactCompilerRuntime.c(1), innerRef = react.useRef(null);
107
+ let t0;
108
+ return $[0] === Symbol.for("react.memo_cache_sentinel") ? (t0 = () => innerRef.current, $[0] = t0) : t0 = $[0], react.useImperativeHandle(ref, t0), innerRef;
109
+ }
110
+ class ErrorBoundary extends react.Component {
111
+ state = {
112
+ error: null
113
+ };
114
+ static getDerivedStateFromError(error) {
115
+ return {
116
+ error
117
+ };
118
+ }
119
+ componentDidCatch(error, info) {
120
+ this.props.onCatch({
121
+ error,
122
+ info
123
+ });
124
+ }
125
+ render() {
126
+ const {
127
+ error
128
+ } = this.state;
129
+ if (error) {
130
+ const message = typeof error?.message == "string" ? error.message : "Error";
131
+ return /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Code, { children: message });
132
+ }
133
+ return this.props.children;
134
+ }
135
+ }
136
+ const StyledAutocomplete = styledComponents.styled.div.withConfig({
137
+ displayName: "StyledAutocomplete",
138
+ componentId: "sc-1igauft-0"
139
+ })`line-height:0;`, ListBox = styledComponents.styled(_visualEditing.Box).withConfig({
140
+ displayName: "ListBox",
141
+ componentId: "sc-1igauft-1"
142
+ })`& > ul{list-style:none;padding:0;margin:0;}`, rotate = styledComponents.keyframes`
143
+ from {
144
+ transform: rotate(0deg);
145
+ }
146
+
147
+ to {
148
+ transform: rotate(360deg);
149
+ }
150
+ `, AnimatedSpinnerIcon = styledComponents.styled(icons.SpinnerIcon).withConfig({
151
+ displayName: "AnimatedSpinnerIcon",
152
+ componentId: "sc-1igauft-2"
153
+ })`animation:${rotate} 500ms linear infinite;`;
154
+ function AutocompleteOption(props) {
155
+ const $ = reactCompilerRuntime.c(11), {
156
+ children,
157
+ id,
158
+ onSelect,
159
+ selected,
160
+ value
161
+ } = props;
162
+ let t0;
163
+ $[0] !== onSelect || $[1] !== value ? (t0 = () => {
164
+ setTimeout(() => {
165
+ onSelect(value);
166
+ }, 0);
167
+ }, $[0] = onSelect, $[1] = value, $[2] = t0) : t0 = $[2];
168
+ const handleClick = t0;
169
+ let t1;
170
+ $[3] !== handleClick ? (t1 = (event) => {
171
+ event.key === "Enter" && !_visualEditing._isEnterToClickElement(event.currentTarget) && handleClick();
172
+ }, $[3] = handleClick, $[4] = t1) : t1 = $[4];
173
+ const handleKeyDown = t1;
174
+ let t2;
175
+ return $[5] !== children || $[6] !== handleClick || $[7] !== handleKeyDown || $[8] !== id || $[9] !== selected ? (t2 = /* @__PURE__ */ jsxRuntime.jsx("li", { "aria-selected": selected, "data-ui": "AutocompleteOption", id, role: "option", onClick: handleClick, onKeyDown: handleKeyDown, children }), $[5] = children, $[6] = handleClick, $[7] = handleKeyDown, $[8] = id, $[9] = selected, $[10] = t2) : t2 = $[10], t2;
176
+ }
177
+ function autocompleteReducer(state, msg) {
178
+ return msg.type === "input/change" ? {
179
+ ...state,
180
+ activeValue: null,
181
+ focused: !0,
182
+ query: msg.query
183
+ } : msg.type === "input/focus" ? {
184
+ ...state,
185
+ focused: !0
186
+ } : msg.type === "root/blur" ? {
187
+ ...state,
188
+ focused: !1,
189
+ query: null
190
+ } : msg.type === "root/clear" ? {
191
+ ...state,
192
+ activeValue: null,
193
+ query: null,
194
+ value: null
195
+ } : msg.type === "root/escape" ? {
196
+ ...state,
197
+ focused: !1,
198
+ query: null
199
+ } : msg.type === "root/open" ? {
200
+ ...state,
201
+ query: state.query || msg.query
202
+ } : msg.type === "root/setActiveValue" ? {
203
+ ...state,
204
+ activeValue: msg.value,
205
+ listFocused: msg.listFocused || state.listFocused
206
+ } : msg.type === "root/setListFocused" ? {
207
+ ...state,
208
+ listFocused: msg.listFocused
209
+ } : msg.type === "value/change" ? {
210
+ ...state,
211
+ activeValue: msg.value,
212
+ query: null,
213
+ value: msg.value
214
+ } : state;
215
+ }
216
+ const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = ["Control", "Shift", "Alt", "Enter", "Home", "End", "PageUp", "PageDown", "Meta", "Tab", "CapsLock"], AUTOCOMPLETE_POPOVER_PLACEMENT = "bottom-start", AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS = ["bottom-start", "top-start"], DEFAULT_RENDER_VALUE = (value, option) => option ? option.value : value, DEFAULT_FILTER_OPTION = (query, option) => option.value.toLowerCase().indexOf(query.toLowerCase()) > -1, InnerAutocomplete = react.forwardRef(function(props, forwardedRef) {
217
+ const $ = reactCompilerRuntime.c(181);
218
+ let customValidity, disabled, filterOptionProp, icon, id, loading, onBlur, onChange, onFocus, onQueryChange, onSelect, openButton, openOnFocus, optionsProp, prefix, readOnly, relatedElements, renderOptionProp, renderPopover, restProps, suffix, t0, t1, t2, t3, t4, t5, t6, valueProp;
219
+ $[0] !== props ? ({
220
+ border: t0,
221
+ customValidity,
222
+ disabled,
223
+ filterOption: filterOptionProp,
224
+ fontSize: t1,
225
+ icon,
226
+ id,
227
+ listBox: t2,
228
+ loading,
229
+ onBlur,
230
+ onChange,
231
+ onFocus,
232
+ onQueryChange,
233
+ onSelect,
234
+ openButton,
235
+ openOnFocus,
236
+ options: optionsProp,
237
+ padding: t3,
238
+ popover: t4,
239
+ prefix,
240
+ radius: t5,
241
+ readOnly,
242
+ relatedElements,
243
+ renderOption: renderOptionProp,
244
+ renderPopover,
245
+ renderValue: t6,
246
+ suffix,
247
+ value: valueProp,
248
+ ...restProps
249
+ } = props, $[0] = props, $[1] = customValidity, $[2] = disabled, $[3] = filterOptionProp, $[4] = icon, $[5] = id, $[6] = loading, $[7] = onBlur, $[8] = onChange, $[9] = onFocus, $[10] = onQueryChange, $[11] = onSelect, $[12] = openButton, $[13] = openOnFocus, $[14] = optionsProp, $[15] = prefix, $[16] = readOnly, $[17] = relatedElements, $[18] = renderOptionProp, $[19] = renderPopover, $[20] = restProps, $[21] = suffix, $[22] = t0, $[23] = t1, $[24] = t2, $[25] = t3, $[26] = t4, $[27] = t5, $[28] = t6, $[29] = valueProp) : (customValidity = $[1], disabled = $[2], filterOptionProp = $[3], icon = $[4], id = $[5], loading = $[6], onBlur = $[7], onChange = $[8], onFocus = $[9], onQueryChange = $[10], onSelect = $[11], openButton = $[12], openOnFocus = $[13], optionsProp = $[14], prefix = $[15], readOnly = $[16], relatedElements = $[17], renderOptionProp = $[18], renderPopover = $[19], restProps = $[20], suffix = $[21], t0 = $[22], t1 = $[23], t2 = $[24], t3 = $[25], t4 = $[26], t5 = $[27], t6 = $[28], valueProp = $[29]);
250
+ const border = t0 === void 0 ? !0 : t0, fontSize = t1 === void 0 ? 2 : t1, listBox = t2 === void 0 ? _visualEditing.EMPTY_RECORD : t2, paddingProp = t3 === void 0 ? 3 : t3, popover = t4 === void 0 ? _visualEditing.EMPTY_RECORD : t4, radius = t5 === void 0 ? 2 : t5, renderValue = t6 === void 0 ? DEFAULT_RENDER_VALUE : t6, t7 = valueProp || null, t8 = valueProp || null;
251
+ let t9;
252
+ $[30] !== t7 || $[31] !== t8 ? (t9 = {
253
+ activeValue: t7,
254
+ focused: !1,
255
+ listFocused: !1,
256
+ query: null,
257
+ value: t8
258
+ }, $[30] = t7, $[31] = t8, $[32] = t9) : t9 = $[32];
259
+ const [state, dispatch] = react.useReducer(autocompleteReducer, t9), {
260
+ activeValue,
261
+ focused,
262
+ listFocused,
263
+ query,
264
+ value
265
+ } = state;
266
+ let t10;
267
+ $[33] !== fontSize || $[34] !== paddingProp ? (t10 = (t112) => {
268
+ const {
269
+ value: value_0
270
+ } = t112;
271
+ return /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Card, { "data-as": "button", padding: paddingProp, radius: 2, tone: "inherit", children: /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Text, { size: fontSize, textOverflow: "ellipsis", children: value_0 }) });
272
+ }, $[33] = fontSize, $[34] = paddingProp, $[35] = t10) : t10 = $[35];
273
+ const renderOption = typeof renderOptionProp == "function" ? renderOptionProp : t10, filterOption = typeof filterOptionProp == "function" ? filterOptionProp : DEFAULT_FILTER_OPTION, rootElementRef = react.useRef(null), resultsPopoverElementRef = react.useRef(null), inputElementRef = react.useRef(null), listBoxElementRef = react.useRef(null), [inputElement, _setInputElement] = react.useState(null);
274
+ let t11;
275
+ $[36] === Symbol.for("react.memo_cache_sentinel") ? (t11 = (node) => {
276
+ react.startTransition(() => _setInputElement(node));
277
+ }, $[36] = t11) : t11 = $[36];
278
+ const setInputElement = t11, listFocusedRef = react.useRef(!1), valueRef = react.useRef(value), valuePropRef = react.useRef(valueProp), popoverMouseWithinRef = react.useRef(!1);
279
+ let t12, t13;
280
+ $[37] !== inputElement ? (t12 = () => inputElement, t13 = [inputElement], $[37] = inputElement, $[38] = t12, $[39] = t13) : (t12 = $[38], t13 = $[39]), react.useImperativeHandle(inputElementRef, t12, t13);
281
+ let t14, t15;
282
+ $[40] !== inputElement ? (t14 = () => inputElement, t15 = [inputElement], $[40] = inputElement, $[41] = t14, $[42] = t15) : (t14 = $[41], t15 = $[42]), react.useImperativeHandle(forwardedRef, t14, t15);
283
+ const listBoxId = `${id}-listbox`, options = Array.isArray(optionsProp) ? optionsProp : _visualEditing.EMPTY_ARRAY, padding = _visualEditing._getArrayProp(paddingProp);
284
+ let t16;
285
+ $[43] !== options || $[44] !== value ? (t16 = value !== null ? options.find((o) => o.value === value) : void 0, $[43] = options, $[44] = value, $[45] = t16) : t16 = $[45];
286
+ const currentOption = t16;
287
+ let t17;
288
+ if ($[46] !== filterOption || $[47] !== options || $[48] !== query) {
289
+ let t182;
290
+ $[50] !== filterOption || $[51] !== query ? (t182 = (option) => query ? filterOption(query, option) : !0, $[50] = filterOption, $[51] = query, $[52] = t182) : t182 = $[52], t17 = options.filter(t182), $[46] = filterOption, $[47] = options, $[48] = query, $[49] = t17;
291
+ } else
292
+ t17 = $[49];
293
+ const filteredOptions = t17, filteredOptionsLen = filteredOptions.length, activeItemId = activeValue ? `${id}-option-${activeValue}` : void 0, expanded = query !== null && loading || focused && query !== null;
294
+ let t18;
295
+ $[53] !== onBlur || $[54] !== onQueryChange || $[55] !== relatedElements ? (t18 = (event) => {
296
+ setTimeout(() => {
297
+ if (popoverMouseWithinRef.current)
298
+ return;
299
+ const elements = (relatedElements || []).concat(rootElementRef.current ? [rootElementRef.current] : [], resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : []);
300
+ let focusInside = !1;
301
+ if (document.activeElement) {
302
+ for (const e of elements)
303
+ if (e === document.activeElement || e.contains(document.activeElement)) {
304
+ focusInside = !0;
305
+ break;
306
+ }
307
+ }
308
+ focusInside === !1 && (dispatch({
309
+ type: "root/blur"
310
+ }), popoverMouseWithinRef.current = !1, onQueryChange && onQueryChange(null), onBlur && onBlur(event));
311
+ }, 0);
312
+ }, $[53] = onBlur, $[54] = onQueryChange, $[55] = relatedElements, $[56] = t18) : t18 = $[56];
313
+ const handleRootBlur = t18;
314
+ let t19;
315
+ $[57] === Symbol.for("react.memo_cache_sentinel") ? (t19 = (event_0) => {
316
+ const listBoxElement = listBoxElementRef.current, focusedElement = event_0.target instanceof HTMLElement ? event_0.target : null, listFocused_0 = listBoxElement?.contains(focusedElement) || !1;
317
+ listFocused_0 !== listFocusedRef.current && (listFocusedRef.current = listFocused_0, dispatch({
318
+ type: "root/setListFocused",
319
+ listFocused: listFocused_0
320
+ }));
321
+ }, $[57] = t19) : t19 = $[57];
322
+ const handleRootFocus = t19;
323
+ let t20;
324
+ $[58] !== onChange || $[59] !== onQueryChange || $[60] !== onSelect ? (t20 = (v) => {
325
+ dispatch({
326
+ type: "value/change",
327
+ value: v
328
+ }), popoverMouseWithinRef.current = !1, onSelect && onSelect(v), valueRef.current = v, onChange && onChange(v), onQueryChange && onQueryChange(null), inputElementRef.current?.focus();
329
+ }, $[58] = onChange, $[59] = onQueryChange, $[60] = onSelect, $[61] = t20) : t20 = $[61];
330
+ const handleOptionSelect = t20;
331
+ let t21;
332
+ $[62] !== activeValue || $[63] !== filteredOptions || $[64] !== filteredOptionsLen || $[65] !== onQueryChange ? (t21 = (event_1) => {
333
+ if (event_1.key === "ArrowDown") {
334
+ if (event_1.preventDefault(), !filteredOptionsLen)
335
+ return;
336
+ const activeOption = filteredOptions.find((o_0) => o_0.value === activeValue), activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1, nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen];
337
+ nextActiveOption && dispatch({
338
+ type: "root/setActiveValue",
339
+ value: nextActiveOption.value,
340
+ listFocused: !0
341
+ });
342
+ return;
343
+ }
344
+ if (event_1.key === "ArrowUp") {
345
+ if (event_1.preventDefault(), !filteredOptionsLen)
346
+ return;
347
+ const activeOption_0 = filteredOptions.find((o_1) => o_1.value === activeValue), activeIndex_0 = activeOption_0 ? filteredOptions.indexOf(activeOption_0) : -1, nextActiveOption_0 = filteredOptions[activeIndex_0 === -1 ? filteredOptionsLen - 1 : (filteredOptionsLen + activeIndex_0 - 1) % filteredOptionsLen];
348
+ nextActiveOption_0 && dispatch({
349
+ type: "root/setActiveValue",
350
+ value: nextActiveOption_0.value,
351
+ listFocused: !0
352
+ });
353
+ return;
354
+ }
355
+ if (event_1.key === "Escape") {
356
+ dispatch({
357
+ type: "root/escape"
358
+ }), popoverMouseWithinRef.current = !1, onQueryChange && onQueryChange(null), inputElementRef.current?.focus();
359
+ return;
360
+ }
361
+ const target = event_1.target, listEl = listBoxElementRef.current;
362
+ if ((listEl === target || listEl?.contains(target)) && !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event_1.key)) {
363
+ inputElementRef.current?.focus();
364
+ return;
365
+ }
366
+ }, $[62] = activeValue, $[63] = filteredOptions, $[64] = filteredOptionsLen, $[65] = onQueryChange, $[66] = t21) : t21 = $[66];
367
+ const handleRootKeyDown = t21;
368
+ let t22;
369
+ $[67] !== onQueryChange ? (t22 = (event_2) => {
370
+ const nextQuery = event_2.currentTarget.value;
371
+ dispatch({
372
+ type: "input/change",
373
+ query: nextQuery
374
+ }), onQueryChange && onQueryChange(nextQuery);
375
+ }, $[67] = onQueryChange, $[68] = t22) : t22 = $[68];
376
+ const handleInputChange = t22;
377
+ let t23;
378
+ $[69] !== currentOption || $[70] !== renderValue || $[71] !== value ? (t23 = () => {
379
+ dispatch({
380
+ type: "root/open",
381
+ query: value ? renderValue(value, currentOption) : ""
382
+ });
383
+ }, $[69] = currentOption, $[70] = renderValue, $[71] = value, $[72] = t23) : t23 = $[72];
384
+ const dispatchOpen = t23;
385
+ let t24;
386
+ $[73] !== dispatchOpen || $[74] !== focused || $[75] !== onFocus || $[76] !== openOnFocus ? (t24 = (event_3) => {
387
+ focused || (dispatch({
388
+ type: "input/focus"
389
+ }), onFocus && onFocus(event_3), openOnFocus && dispatchOpen());
390
+ }, $[73] = dispatchOpen, $[74] = focused, $[75] = onFocus, $[76] = openOnFocus, $[77] = t24) : t24 = $[77];
391
+ const handleInputFocus = t24;
392
+ let t25;
393
+ $[78] === Symbol.for("react.memo_cache_sentinel") ? (t25 = () => {
394
+ popoverMouseWithinRef.current = !0;
395
+ }, $[78] = t25) : t25 = $[78];
396
+ const handlePopoverMouseEnter = t25;
397
+ let t26;
398
+ $[79] === Symbol.for("react.memo_cache_sentinel") ? (t26 = () => {
399
+ popoverMouseWithinRef.current = !1;
400
+ }, $[79] = t26) : t26 = $[79];
401
+ const handlePopoverMouseLeave = t26;
402
+ let t27;
403
+ $[80] !== onChange || $[81] !== onQueryChange ? (t27 = () => {
404
+ dispatch({
405
+ type: "root/clear"
406
+ }), valueRef.current = "", onChange && onChange(""), onQueryChange && onQueryChange(null), inputElementRef.current?.focus();
407
+ }, $[80] = onChange, $[81] = onQueryChange, $[82] = t27) : t27 = $[82];
408
+ const handleClearButtonClick = t27;
409
+ let t28;
410
+ $[83] === Symbol.for("react.memo_cache_sentinel") ? (t28 = () => {
411
+ dispatch({
412
+ type: "input/focus"
413
+ });
414
+ }, $[83] = t28) : t28 = $[83];
415
+ const handleClearButtonFocus = t28;
416
+ let t29, t30;
417
+ $[84] !== valueProp ? (t29 = () => {
418
+ if (valueProp !== valuePropRef.current) {
419
+ valuePropRef.current = valueProp, valueProp !== void 0 && (dispatch({
420
+ type: "value/change",
421
+ value: valueProp
422
+ }), valueRef.current = valueProp);
423
+ return;
424
+ }
425
+ valueProp !== valueRef.current && (valueRef.current = valueProp || null, dispatch({
426
+ type: "value/change",
427
+ value: valueProp || null
428
+ }));
429
+ }, t30 = [valueProp], $[84] = valueProp, $[85] = t29, $[86] = t30) : (t29 = $[85], t30 = $[86]), react.useEffect(t29, t30);
430
+ let t31, t32;
431
+ $[87] !== focused ? (t31 = () => {
432
+ !focused && valueRef.current && dispatch({
433
+ type: "root/setActiveValue",
434
+ value: valueRef.current
435
+ });
436
+ }, t32 = [focused], $[87] = focused, $[88] = t31, $[89] = t32) : (t31 = $[88], t32 = $[89]), react.useEffect(t31, t32);
437
+ let t33, t34;
438
+ $[90] !== activeValue || $[91] !== filteredOptions ? (t33 = () => {
439
+ const listElement = listBoxElementRef.current;
440
+ if (!listElement)
441
+ return;
442
+ const activeOption_1 = filteredOptions.find((o_2) => o_2.value === activeValue);
443
+ if (activeOption_1) {
444
+ const activeIndex_1 = filteredOptions.indexOf(activeOption_1), activeItemElement = listElement.childNodes[activeIndex_1];
445
+ if (activeItemElement) {
446
+ if (_hasFocus(activeItemElement))
447
+ return;
448
+ focusFirstDescendant(activeItemElement);
449
+ }
450
+ }
451
+ }, t34 = [activeValue, filteredOptions], $[90] = activeValue, $[91] = filteredOptions, $[92] = t33, $[93] = t34) : (t33 = $[92], t34 = $[93]), react.useEffect(t33, t34);
452
+ let t35;
453
+ bb0: {
454
+ if (!loading && !disabled && value) {
455
+ let t362;
456
+ $[94] === Symbol.for("react.memo_cache_sentinel") ? (t362 = {
457
+ "aria-label": "Clear",
458
+ onFocus: handleClearButtonFocus
459
+ }, $[94] = t362) : t362 = $[94], t35 = t362;
460
+ break bb0;
461
+ }
462
+ t35 = void 0;
463
+ }
464
+ const clearButton = t35, openButtonBoxPadding = padding.map(_temp$3), openButtonPadding = padding.map(_temp2$1), openButtonProps = typeof openButton == "object" ? openButton : _visualEditing.EMPTY_RECORD;
465
+ let t36;
466
+ $[95] !== dispatchOpen || $[96] !== openButtonProps ? (t36 = (event_4) => {
467
+ dispatchOpen(), openButtonProps.onClick && openButtonProps.onClick(event_4), _raf(() => inputElementRef.current?.focus());
468
+ }, $[95] = dispatchOpen, $[96] = openButtonProps, $[97] = t36) : t36 = $[97];
469
+ const handleOpenClick = t36;
470
+ let t37;
471
+ $[98] !== disabled || $[99] !== expanded || $[100] !== fontSize || $[101] !== handleOpenClick || $[102] !== openButton || $[103] !== openButtonBoxPadding || $[104] !== openButtonPadding || $[105] !== openButtonProps || $[106] !== readOnly ? (t37 = !disabled && !readOnly && openButton ? /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Box, { "aria-hidden": expanded, padding: openButtonBoxPadding, children: /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Button, { "aria-label": "Open", disabled: expanded, fontSize, icon: icons.ChevronDownIcon, mode: "bleed", padding: openButtonPadding, ...openButtonProps, onClick: handleOpenClick }) }) : void 0, $[98] = disabled, $[99] = expanded, $[100] = fontSize, $[101] = handleOpenClick, $[102] = openButton, $[103] = openButtonBoxPadding, $[104] = openButtonPadding, $[105] = openButtonProps, $[106] = readOnly, $[107] = t37) : t37 = $[107];
472
+ const openButtonNode = t37;
473
+ let t38;
474
+ bb1: {
475
+ if (query === null) {
476
+ if (value !== null) {
477
+ let t392;
478
+ $[108] !== currentOption || $[109] !== renderValue || $[110] !== value ? (t392 = renderValue(value, currentOption), $[108] = currentOption, $[109] = renderValue, $[110] = value, $[111] = t392) : t392 = $[111], t38 = t392;
479
+ break bb1;
480
+ }
481
+ t38 = "";
482
+ break bb1;
483
+ }
484
+ t38 = query;
485
+ }
486
+ const inputValue = t38;
487
+ let t39;
488
+ $[112] !== listFocused ? (t39 = (event_5) => {
489
+ event_5.key === "Tab" && listFocused && inputElementRef.current?.focus();
490
+ }, $[112] = listFocused, $[113] = t39) : t39 = $[113];
491
+ const handleListBoxKeyDown = t39;
492
+ let t40;
493
+ bb2: {
494
+ if (filteredOptions.length === 0) {
495
+ t40 = null;
496
+ break bb2;
497
+ }
498
+ let t412;
499
+ if ($[114] !== activeValue || $[115] !== currentOption || $[116] !== filteredOptions || $[117] !== handleOptionSelect || $[118] !== id || $[119] !== listFocused || $[120] !== loading || $[121] !== renderOption) {
500
+ let t423;
501
+ $[123] !== activeValue || $[124] !== currentOption || $[125] !== handleOptionSelect || $[126] !== id || $[127] !== listFocused || $[128] !== loading || $[129] !== renderOption ? (t423 = (option_0) => {
502
+ const active = activeValue !== null ? option_0.value === activeValue : currentOption === option_0;
503
+ return /* @__PURE__ */ jsxRuntime.jsx(AutocompleteOption, { id: `${id}-option-${option_0.value}`, onSelect: handleOptionSelect, selected: active, value: option_0.value, children: react.cloneElement(renderOption(option_0), {
504
+ disabled: loading,
505
+ selected: active,
506
+ tabIndex: listFocused && active ? 0 : -1
507
+ }) }, option_0.value);
508
+ }, $[123] = activeValue, $[124] = currentOption, $[125] = handleOptionSelect, $[126] = id, $[127] = listFocused, $[128] = loading, $[129] = renderOption, $[130] = t423) : t423 = $[130], t412 = filteredOptions.map(t423), $[114] = activeValue, $[115] = currentOption, $[116] = filteredOptions, $[117] = handleOptionSelect, $[118] = id, $[119] = listFocused, $[120] = loading, $[121] = renderOption, $[122] = t412;
509
+ } else
510
+ t412 = $[122];
511
+ let t422;
512
+ $[131] !== listBoxId || $[132] !== t412 ? (t422 = /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Stack, { as: "ul", "aria-multiselectable": !1, "data-ui": "AutoComplete__resultsList", id: listBoxId, ref: listBoxElementRef, role: "listbox", space: 1, children: t412 }), $[131] = listBoxId, $[132] = t412, $[133] = t422) : t422 = $[133];
513
+ let t432;
514
+ $[134] !== handleListBoxKeyDown || $[135] !== listBox || $[136] !== t422 ? (t432 = /* @__PURE__ */ jsxRuntime.jsx(ListBox, { "data-ui": "AutoComplete__results", onKeyDown: handleListBoxKeyDown, padding: 1, ...listBox, tabIndex: -1, children: t422 }), $[134] = handleListBoxKeyDown, $[135] = listBox, $[136] = t422, $[137] = t432) : t432 = $[137], t40 = t432;
515
+ }
516
+ const content2 = t40;
517
+ let t41;
518
+ bb3: {
519
+ if (renderPopover) {
520
+ const t423 = !expanded;
521
+ let t432;
522
+ $[138] !== content2 || $[139] !== handlePopoverMouseEnter || $[140] !== handlePopoverMouseLeave || $[141] !== inputElement || $[142] !== renderPopover || $[143] !== t423 ? (t432 = /* @__PURE__ */ jsxRuntime.jsx(RenderPopover, { content: content2, hidden: t423, inputElement, onMouseEnter: handlePopoverMouseEnter, onMouseLeave: handlePopoverMouseLeave, resultsPopoverElementRef, renderPopover }), $[138] = content2, $[139] = handlePopoverMouseEnter, $[140] = handlePopoverMouseLeave, $[141] = inputElement, $[142] = renderPopover, $[143] = t423, $[144] = t432) : t432 = $[144], t41 = t432;
523
+ break bb3;
524
+ }
525
+ if (filteredOptionsLen === 0) {
526
+ t41 = null;
527
+ break bb3;
528
+ }
529
+ let t422;
530
+ $[145] !== content2 || $[146] !== expanded || $[147] !== handlePopoverMouseEnter || $[148] !== handlePopoverMouseLeave || $[149] !== inputElement || $[150] !== popover || $[151] !== radius ? (t422 = /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Popover, { arrow: !1, constrainSize: !0, content: content2, fallbackPlacements: AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS, matchReferenceWidth: !0, onMouseEnter: handlePopoverMouseEnter, onMouseLeave: handlePopoverMouseLeave, open: expanded, overflow: "auto", placement: AUTOCOMPLETE_POPOVER_PLACEMENT, portal: !0, radius, ref: resultsPopoverElementRef, referenceElement: inputElement, ...popover }), $[145] = content2, $[146] = expanded, $[147] = handlePopoverMouseEnter, $[148] = handlePopoverMouseLeave, $[149] = inputElement, $[150] = popover, $[151] = radius, $[152] = t422) : t422 = $[152], t41 = t422;
531
+ }
532
+ const results = t41, t42 = loading && AnimatedSpinnerIcon, t43 = suffix || openButtonNode;
533
+ let t44;
534
+ $[153] !== activeItemId || $[154] !== border || $[155] !== clearButton || $[156] !== customValidity || $[157] !== disabled || $[158] !== expanded || $[159] !== fontSize || $[160] !== handleClearButtonClick || $[161] !== handleInputChange || $[162] !== handleInputFocus || $[163] !== icon || $[164] !== id || $[165] !== inputValue || $[166] !== listBoxId || $[167] !== padding || $[168] !== prefix || $[169] !== radius || $[170] !== readOnly || $[171] !== restProps || $[172] !== t42 || $[173] !== t43 ? (t44 = /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.TextInput, { ...restProps, "aria-activedescendant": activeItemId, "aria-autocomplete": "list", "aria-expanded": expanded, "aria-owns": listBoxId, autoCapitalize: "off", autoComplete: "off", autoCorrect: "off", border, clearButton, customValidity, disabled, fontSize, icon, iconRight: t42, id, inputMode: "search", onChange: handleInputChange, onClear: handleClearButtonClick, onFocus: handleInputFocus, padding, prefix, radius, readOnly, ref: setInputElement, role: "combobox", spellCheck: !1, suffix: t43, value: inputValue }), $[153] = activeItemId, $[154] = border, $[155] = clearButton, $[156] = customValidity, $[157] = disabled, $[158] = expanded, $[159] = fontSize, $[160] = handleClearButtonClick, $[161] = handleInputChange, $[162] = handleInputFocus, $[163] = icon, $[164] = id, $[165] = inputValue, $[166] = listBoxId, $[167] = padding, $[168] = prefix, $[169] = radius, $[170] = readOnly, $[171] = restProps, $[172] = t42, $[173] = t43, $[174] = t44) : t44 = $[174];
535
+ let t45;
536
+ return $[175] !== handleRootBlur || $[176] !== handleRootFocus || $[177] !== handleRootKeyDown || $[178] !== results || $[179] !== t44 ? (t45 = /* @__PURE__ */ jsxRuntime.jsxs(StyledAutocomplete, { "data-ui": "Autocomplete", onBlur: handleRootBlur, onFocus: handleRootFocus, onKeyDown: handleRootKeyDown, ref: rootElementRef, children: [
537
+ t44,
538
+ results
539
+ ] }), $[175] = handleRootBlur, $[176] = handleRootFocus, $[177] = handleRootKeyDown, $[178] = results, $[179] = t44, $[180] = t45) : t45 = $[180], t45;
540
+ });
541
+ function RenderPopover({
542
+ renderPopover,
543
+ content: content2,
544
+ hidden,
545
+ inputElement,
546
+ onMouseEnter,
547
+ onMouseLeave,
548
+ resultsPopoverElementRef
549
+ }) {
550
+ return renderPopover({
551
+ content: content2,
552
+ hidden,
553
+ inputElement,
554
+ onMouseEnter,
555
+ onMouseLeave
556
+ }, resultsPopoverElementRef);
557
+ }
558
+ InnerAutocomplete.displayName = "ForwardRef(Autocomplete)";
559
+ const Autocomplete = InnerAutocomplete;
560
+ function _temp$3(v_0) {
561
+ return v_0 === 0 ? 0 : v_0 === 1 || v_0 === 2 ? 1 : v_0 - 2;
562
+ }
563
+ function _temp2$1(v_1) {
564
+ return Math.max(v_1 - 1, 0);
565
+ }
566
+ const StyledBreadcrumbs = styledComponents.styled.ol.withConfig({
567
+ displayName: "StyledBreadcrumbs",
568
+ componentId: "sc-1es8h8q-0"
569
+ })`margin:0;padding:0;display:flex;list-style:none;align-items:center;white-space:nowrap;line-height:0;`, ExpandButton = styledComponents.styled(_visualEditing.Button).withConfig({
570
+ displayName: "ExpandButton",
571
+ componentId: "sc-1es8h8q-1"
572
+ })`appearance:none;margin:-4px;`, Breadcrumbs = react.forwardRef(function(props, ref) {
573
+ const $ = reactCompilerRuntime.c(30);
574
+ let children, gap, maxLength, restProps, separator, t0;
575
+ $[0] !== props ? ({
576
+ children,
577
+ gap,
578
+ maxLength,
579
+ separator,
580
+ space: t0,
581
+ ...restProps
582
+ } = props, $[0] = props, $[1] = children, $[2] = gap, $[3] = maxLength, $[4] = restProps, $[5] = separator, $[6] = t0) : (children = $[1], gap = $[2], maxLength = $[3], restProps = $[4], separator = $[5], t0 = $[6]);
583
+ const t1 = gap === void 0 ? t0 === void 0 ? 2 : t0 : gap;
584
+ let t2;
585
+ $[7] !== t1 ? (t2 = _visualEditing._getArrayProp(t1), $[7] = t1, $[8] = t2) : t2 = $[8];
586
+ const space = t2, [open, setOpen] = react.useState(!1), expandElementRef = react.useRef(null), popoverElementRef = react.useRef(null);
587
+ let t3;
588
+ $[9] === Symbol.for("react.memo_cache_sentinel") ? (t3 = () => setOpen(!1), $[9] = t3) : t3 = $[9];
589
+ const collapse = t3;
590
+ let t4;
591
+ $[10] === Symbol.for("react.memo_cache_sentinel") ? (t4 = () => setOpen(!0), $[10] = t4) : t4 = $[10];
592
+ const expand = t4;
593
+ let t5;
594
+ $[11] === Symbol.for("react.memo_cache_sentinel") ? (t5 = () => [expandElementRef.current, popoverElementRef.current], $[11] = t5) : t5 = $[11], _visualEditing.useClickOutsideEvent(collapse, t5);
595
+ let t6;
596
+ $[12] !== children ? (t6 = react.Children.toArray(children).filter(react.isValidElement), $[12] = children, $[13] = t6) : t6 = $[13];
597
+ const rawItems = t6;
598
+ let t7;
599
+ $[14] !== maxLength || $[15] !== open || $[16] !== rawItems || $[17] !== space ? (t7 = {
600
+ collapse,
601
+ expand,
602
+ expandElementRef,
603
+ maxLength,
604
+ open,
605
+ popoverElementRef,
606
+ rawItems,
607
+ space
608
+ }, $[14] = maxLength, $[15] = open, $[16] = rawItems, $[17] = space, $[18] = t7) : t7 = $[18];
609
+ const items = useItems(t7);
610
+ let t8;
611
+ if ($[19] !== items || $[20] !== separator || $[21] !== space) {
612
+ let t92;
613
+ $[23] !== separator || $[24] !== space ? (t92 = (item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
614
+ itemIndex > 0 && /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Box, { "aria-hidden": !0, as: "li", paddingX: space, children: separator || /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Text, { muted: !0, children: "/" }) }),
615
+ /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Box, { as: "li", children: item })
616
+ ] }, itemIndex), $[23] = separator, $[24] = space, $[25] = t92) : t92 = $[25], t8 = items.map(t92), $[19] = items, $[20] = separator, $[21] = space, $[22] = t8;
617
+ } else
618
+ t8 = $[22];
619
+ let t9;
620
+ return $[26] !== ref || $[27] !== restProps || $[28] !== t8 ? (t9 = /* @__PURE__ */ jsxRuntime.jsx(StyledBreadcrumbs, { "data-ui": "Breadcrumbs", ...restProps, ref, children: t8 }), $[26] = ref, $[27] = restProps, $[28] = t8, $[29] = t9) : t9 = $[29], t9;
621
+ });
622
+ Breadcrumbs.displayName = "ForwardRef(Breadcrumbs)";
623
+ function useItems(t0) {
624
+ const $ = reactCompilerRuntime.c(28), {
625
+ collapse,
626
+ expand,
627
+ expandElementRef,
628
+ maxLength,
629
+ open,
630
+ popoverElementRef,
631
+ rawItems,
632
+ space
633
+ } = t0, len = rawItems.length;
634
+ if (maxLength && len > maxLength) {
635
+ const beforeLength = Math.ceil(maxLength / 2), afterLength = Math.floor(maxLength / 2);
636
+ let t1;
637
+ if ($[0] !== afterLength || $[1] !== beforeLength || $[2] !== collapse || $[3] !== expand || $[4] !== expandElementRef || $[5] !== len || $[6] !== open || $[7] !== popoverElementRef || $[8] !== rawItems || $[9] !== space) {
638
+ const t2 = rawItems.slice(0, beforeLength - 1);
639
+ let t3;
640
+ $[11] !== afterLength || $[12] !== beforeLength || $[13] !== len || $[14] !== rawItems ? (t3 = rawItems.slice(beforeLength - 1, len - afterLength), $[11] = afterLength, $[12] = beforeLength, $[13] = len, $[14] = rawItems, $[15] = t3) : t3 = $[15];
641
+ let t4;
642
+ $[16] !== space || $[17] !== t3 ? (t4 = /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Stack, { as: "ol", overflow: "auto", padding: space, gap: space, children: t3 }), $[16] = space, $[17] = t3, $[18] = t4) : t4 = $[18];
643
+ const t5 = open ? collapse : expand;
644
+ let t6;
645
+ $[19] !== expandElementRef || $[20] !== open || $[21] !== t5 ? (t6 = /* @__PURE__ */ jsxRuntime.jsx(ExpandButton, { fontSize: 1, mode: "bleed", onClick: t5, padding: 1, ref: expandElementRef, selected: open, text: "\u2026" }), $[19] = expandElementRef, $[20] = open, $[21] = t5, $[22] = t6) : t6 = $[22];
646
+ let t7;
647
+ $[23] !== open || $[24] !== popoverElementRef || $[25] !== t4 || $[26] !== t6 ? (t7 = /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Popover, { constrainSize: !0, content: t4, open, placement: "top", portal: !0, ref: popoverElementRef, children: t6 }, "button"), $[23] = open, $[24] = popoverElementRef, $[25] = t4, $[26] = t6, $[27] = t7) : t7 = $[27], t1 = [...t2, t7, ...rawItems.slice(len - afterLength)], $[0] = afterLength, $[1] = beforeLength, $[2] = collapse, $[3] = expand, $[4] = expandElementRef, $[5] = len, $[6] = open, $[7] = popoverElementRef, $[8] = rawItems, $[9] = space, $[10] = t1;
648
+ } else
649
+ t1 = $[10];
650
+ return t1;
651
+ }
652
+ return rawItems;
653
+ }
654
+ function dialogStyle({
655
+ theme: theme$1
656
+ }) {
657
+ const {
658
+ color
659
+ } = theme.getTheme_v2(theme$1);
660
+ return {
661
+ "&:not([hidden])": {
662
+ display: "flex"
663
+ },
664
+ top: 0,
665
+ left: 0,
666
+ right: 0,
667
+ bottom: 0,
668
+ alignItems: "center",
669
+ justifyContent: "center",
670
+ outline: "none",
671
+ background: color.backdrop
672
+ };
673
+ }
674
+ function responsiveDialogPositionStyle(props) {
675
+ const {
676
+ media
677
+ } = theme.getTheme_v2(props.theme);
678
+ return _visualEditing._responsive(media, props.$position, (position) => ({
679
+ "&&": {
680
+ position
681
+ }
682
+ }));
683
+ }
684
+ function animationDialogStyle(props) {
685
+ return props.$animate ? styledComponents.css`
686
+ @keyframes zoomIn {
687
+ from {
688
+ opacity: 0;
689
+ transform: scale(0.95);
690
+ }
691
+ to {
692
+ opacity: 1;
693
+ transform: scale(1);
694
+ }
695
+ }
696
+ @keyframes fadeIn {
697
+ from {
698
+ opacity: 0;
699
+ }
700
+ to {
701
+ opacity: 1;
702
+ }
703
+ }
704
+
705
+ animation: fadeIn 200ms ease-out;
706
+ // Animates the dialog card.
707
+ & > [data-ui='DialogCard'] {
708
+ animation: zoomIn 200ms ease-out;
709
+ }
710
+ ` : styledComponents.css``;
711
+ }
712
+ const DialogContext = _visualEditing.createGlobalScopedContext("@bettercms-ai/kit/context/dialog", {
713
+ version: 0
714
+ });
715
+ function useDialog() {
716
+ return react.useContext(DialogContext);
717
+ }
718
+ function isTargetWithinScope(boundaryElement, portalElement, target) {
719
+ return !boundaryElement || !portalElement ? !0 : _visualEditing.containsOrEqualsElement(boundaryElement, target) || _visualEditing.containsOrEqualsElement(portalElement, target);
720
+ }
721
+ const StyledDialog = /* @__PURE__ */ styledComponents.styled(_visualEditing.Layer).withConfig({
722
+ displayName: "StyledDialog",
723
+ componentId: "sc-4n4xb3-0"
724
+ })(_visualEditing.responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle), DialogContainer = styledComponents.styled(_visualEditing.Container).withConfig({
725
+ displayName: "DialogContainer",
726
+ componentId: "sc-4n4xb3-1"
727
+ })`&:not([hidden]){display:flex;}width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;`, DialogCardRoot = styledComponents.styled(_visualEditing.Card).withConfig({
728
+ displayName: "DialogCardRoot",
729
+ componentId: "sc-4n4xb3-2"
730
+ })`&:not([hidden]){display:flex;}width:100%;min-height:0;max-height:100%;overflow:hidden;overflow:clip;`, DialogLayout = styledComponents.styled(_visualEditing.Flex).withConfig({
731
+ displayName: "DialogLayout",
732
+ componentId: "sc-4n4xb3-3"
733
+ })`flex:1;min-height:0;width:100%;`, DialogHeader = styledComponents.styled(_visualEditing.Box).withConfig({
734
+ displayName: "DialogHeader",
735
+ componentId: "sc-4n4xb3-4"
736
+ })`position:relative;z-index:2;`, DialogContent = styledComponents.styled(_visualEditing.Box).withConfig({
737
+ displayName: "DialogContent",
738
+ componentId: "sc-4n4xb3-5"
739
+ })`position:relative;z-index:1;overflow:auto;outline:none;`, DialogFooter = styledComponents.styled(_visualEditing.Box).withConfig({
740
+ displayName: "DialogFooter",
741
+ componentId: "sc-4n4xb3-6"
742
+ })`position:relative;z-index:3;`, DialogCard = react.forwardRef(function(props, forwardedRef) {
743
+ const $ = reactCompilerRuntime.c(44), {
744
+ __unstable_autoFocus: autoFocus,
745
+ __unstable_hideCloseButton: hideCloseButton,
746
+ children,
747
+ contentRef: forwardedContentRef,
748
+ footer,
749
+ header,
750
+ id,
751
+ onClickOutside,
752
+ onClose,
753
+ portal: portalProp,
754
+ radius: radiusProp,
755
+ scheme,
756
+ shadow: shadowProp,
757
+ width: widthProp
758
+ } = props, portal = _visualEditing.usePortal(), portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element, boundaryElement = _visualEditing.useBoundaryElement().element;
759
+ let t0;
760
+ $[0] !== radiusProp ? (t0 = _visualEditing._getArrayProp(radiusProp), $[0] = radiusProp, $[1] = t0) : t0 = $[1];
761
+ const radius = t0;
762
+ let t1;
763
+ $[2] !== shadowProp ? (t1 = _visualEditing._getArrayProp(shadowProp), $[2] = shadowProp, $[3] = t1) : t1 = $[3];
764
+ const shadow = t1;
765
+ let t2;
766
+ $[4] !== widthProp ? (t2 = _visualEditing._getArrayProp(widthProp), $[4] = widthProp, $[5] = t2) : t2 = $[5];
767
+ const width = t2, ref = react.useRef(null), contentRef = react.useRef(null), layer = _visualEditing.useLayer(), {
768
+ isTopLayer
769
+ } = layer, labelId = `${id}_label`, showCloseButton = !!onClose && hideCloseButton === !1, showHeader = !!header || showCloseButton;
770
+ let t3;
771
+ $[6] === Symbol.for("react.memo_cache_sentinel") ? (t3 = () => ref.current, $[6] = t3) : t3 = $[6], react.useImperativeHandle(forwardedRef, t3);
772
+ let t4;
773
+ $[7] === Symbol.for("react.memo_cache_sentinel") ? (t4 = () => contentRef.current, $[7] = t4) : t4 = $[7], react.useImperativeHandle(forwardedContentRef, t4);
774
+ let t5, t6;
775
+ $[8] !== autoFocus ? (t5 = () => {
776
+ autoFocus && ref.current && focusFirstDescendant(ref.current);
777
+ }, t6 = [autoFocus, ref], $[8] = autoFocus, $[9] = t5, $[10] = t6) : (t5 = $[9], t6 = $[10]), react.useEffect(t5, t6);
778
+ let t7;
779
+ $[11] !== boundaryElement || $[12] !== isTopLayer || $[13] !== onClose || $[14] !== portalElement ? (t7 = (event) => {
780
+ if (!isTopLayer || !onClose)
781
+ return;
782
+ const target = document.activeElement;
783
+ target && !isTargetWithinScope(boundaryElement, portalElement, target) || event.key === "Escape" && (event.preventDefault(), event.stopPropagation(), onClose());
784
+ }, $[11] = boundaryElement, $[12] = isTopLayer, $[13] = onClose, $[14] = portalElement, $[15] = t7) : t7 = $[15], _visualEditing.useGlobalKeyDown(t7);
785
+ let t8;
786
+ $[16] !== boundaryElement || $[17] !== isTopLayer || $[18] !== onClickOutside || $[19] !== portalElement ? (t8 = isTopLayer && onClickOutside && ((event_0) => {
787
+ const target_0 = event_0.target;
788
+ target_0 && !isTargetWithinScope(boundaryElement, portalElement, target_0) || onClickOutside();
789
+ }), $[16] = boundaryElement, $[17] = isTopLayer, $[18] = onClickOutside, $[19] = portalElement, $[20] = t8) : t8 = $[20];
790
+ let t9;
791
+ $[21] === Symbol.for("react.memo_cache_sentinel") ? (t9 = () => [ref.current], $[21] = t9) : t9 = $[21], _visualEditing.useClickOutsideEvent(t8, t9);
792
+ let t10;
793
+ $[22] !== header || $[23] !== labelId || $[24] !== onClose || $[25] !== showCloseButton || $[26] !== showHeader ? (t10 = showHeader && /* @__PURE__ */ jsxRuntime.jsx(DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(_visualEditing.Flex, { align: "flex-start", padding: 3, children: [
794
+ /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Box, { flex: 1, padding: 2, children: header && /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Text, { id: labelId, size: 1, weight: "semibold", children: header }) }),
795
+ showCloseButton && /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Box, { flex: "none", children: /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Button, { "aria-label": "Close dialog", disabled: !onClose, icon: icons.CloseIcon, mode: "bleed", onClick: onClose, padding: 2 }) })
796
+ ] }) }), $[22] = header, $[23] = labelId, $[24] = onClose, $[25] = showCloseButton, $[26] = showHeader, $[27] = t10) : t10 = $[27];
797
+ let t11;
798
+ $[28] !== children ? (t11 = /* @__PURE__ */ jsxRuntime.jsx(DialogContent, { flex: 1, ref: contentRef, tabIndex: -1, children }), $[28] = children, $[29] = t11) : t11 = $[29];
799
+ let t12;
800
+ $[30] !== footer ? (t12 = footer && /* @__PURE__ */ jsxRuntime.jsx(DialogFooter, { children: footer }), $[30] = footer, $[31] = t12) : t12 = $[31];
801
+ let t13;
802
+ $[32] !== t10 || $[33] !== t11 || $[34] !== t12 ? (t13 = /* @__PURE__ */ jsxRuntime.jsxs(DialogLayout, { direction: "column", children: [
803
+ t10,
804
+ t11,
805
+ t12
806
+ ] }), $[32] = t10, $[33] = t11, $[34] = t12, $[35] = t13) : t13 = $[35];
807
+ let t14;
808
+ $[36] !== radius || $[37] !== scheme || $[38] !== shadow || $[39] !== t13 ? (t14 = /* @__PURE__ */ jsxRuntime.jsx(DialogCardRoot, { radius, ref, scheme, shadow, children: t13 }), $[36] = radius, $[37] = scheme, $[38] = shadow, $[39] = t13, $[40] = t14) : t14 = $[40];
809
+ let t15;
810
+ return $[41] !== t14 || $[42] !== width ? (t15 = /* @__PURE__ */ jsxRuntime.jsx(DialogContainer, { "data-ui": "DialogCard", width, children: t14 }), $[41] = t14, $[42] = width, $[43] = t15) : t15 = $[43], t15;
811
+ });
812
+ DialogCard.displayName = "ForwardRef(DialogCard)";
813
+ const Dialog = react.forwardRef(function(props, ref) {
814
+ const $ = reactCompilerRuntime.c(70), dialog = useDialog(), {
815
+ layer
816
+ } = _visualEditing.useTheme_v2();
817
+ let _positionProp, _zOffsetProp, children, contentRef, footer, header, id, onActivate, onClickOutside, onClose, onFocus, portalProp, restProps, scheme, t0, t1, t2, t3, t4, t5, t6;
818
+ $[0] !== props ? ({
819
+ __unstable_autoFocus: t0,
820
+ __unstable_hideCloseButton: t1,
821
+ cardRadius: t2,
822
+ cardShadow: t3,
823
+ children,
824
+ contentRef,
825
+ footer,
826
+ header,
827
+ id,
828
+ onActivate,
829
+ onClickOutside,
830
+ onClose,
831
+ onFocus,
832
+ padding: t4,
833
+ portal: portalProp,
834
+ position: _positionProp,
835
+ scheme,
836
+ width: t5,
837
+ zOffset: _zOffsetProp,
838
+ animate: t6,
839
+ ...restProps
840
+ } = props, $[0] = props, $[1] = _positionProp, $[2] = _zOffsetProp, $[3] = children, $[4] = contentRef, $[5] = footer, $[6] = header, $[7] = id, $[8] = onActivate, $[9] = onClickOutside, $[10] = onClose, $[11] = onFocus, $[12] = portalProp, $[13] = restProps, $[14] = scheme, $[15] = t0, $[16] = t1, $[17] = t2, $[18] = t3, $[19] = t4, $[20] = t5, $[21] = t6) : (_positionProp = $[1], _zOffsetProp = $[2], children = $[3], contentRef = $[4], footer = $[5], header = $[6], id = $[7], onActivate = $[8], onClickOutside = $[9], onClose = $[10], onFocus = $[11], portalProp = $[12], restProps = $[13], scheme = $[14], t0 = $[15], t1 = $[16], t2 = $[17], t3 = $[18], t4 = $[19], t5 = $[20], t6 = $[21]);
841
+ const autoFocus = t0 === void 0 ? !0 : t0, hideCloseButton = t1 === void 0 ? !1 : t1, cardRadiusProp = t2 === void 0 ? 4 : t2, cardShadow = t3 === void 0 ? 3 : t3, paddingProp = t4 === void 0 ? 3 : t4, widthProp = t5 === void 0 ? 0 : t5, _animate = t6 === void 0 ? !1 : t6, positionProp = _positionProp ?? (dialog.position || "fixed"), zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset), animate = _visualEditing.usePrefersReducedMotion() ? !1 : _animate, portal = _visualEditing.usePortal(), portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element, boundaryElement = _visualEditing.useBoundaryElement().element;
842
+ let t7;
843
+ $[22] !== cardRadiusProp ? (t7 = _visualEditing._getArrayProp(cardRadiusProp), $[22] = cardRadiusProp, $[23] = t7) : t7 = $[23];
844
+ const cardRadius = t7;
845
+ let t8;
846
+ $[24] !== paddingProp ? (t8 = _visualEditing._getArrayProp(paddingProp), $[24] = paddingProp, $[25] = t8) : t8 = $[25];
847
+ const padding = t8;
848
+ let t9;
849
+ $[26] !== positionProp ? (t9 = _visualEditing._getArrayProp(positionProp), $[26] = positionProp, $[27] = t9) : t9 = $[27];
850
+ const position = t9;
851
+ let t10;
852
+ $[28] !== widthProp ? (t10 = _visualEditing._getArrayProp(widthProp), $[28] = widthProp, $[29] = t10) : t10 = $[29];
853
+ const width = t10;
854
+ let t11;
855
+ $[30] !== zOffsetProp ? (t11 = _visualEditing._getArrayProp(zOffsetProp), $[30] = zOffsetProp, $[31] = t11) : t11 = $[31];
856
+ const zOffset = t11, preDivRef = react.useRef(null), postDivRef = react.useRef(null), cardRef = react.useRef(null), focusedElementRef = react.useRef(null);
857
+ let t12;
858
+ $[32] !== onFocus ? (t12 = (event) => {
859
+ onFocus?.(event);
860
+ const target = event.target, cardElement = cardRef.current;
861
+ if (cardElement && target === preDivRef.current) {
862
+ focusLastDescendant(cardElement);
863
+ return;
864
+ }
865
+ if (cardElement && target === postDivRef.current) {
866
+ focusFirstDescendant(cardElement);
867
+ return;
868
+ }
869
+ _visualEditing.isHTMLElement(event.target) && (focusedElementRef.current = event.target);
870
+ }, $[32] = onFocus, $[33] = t12) : t12 = $[33];
871
+ const handleFocus = t12, labelId = `${id}_label`, rootClickTimeoutRef = react.useRef(void 0);
872
+ let t13;
873
+ $[34] !== boundaryElement || $[35] !== portalElement ? (t13 = () => {
874
+ rootClickTimeoutRef.current && clearTimeout(rootClickTimeoutRef.current), rootClickTimeoutRef.current = setTimeout(() => {
875
+ const activeElement = document.activeElement;
876
+ if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {
877
+ const target_0 = focusedElementRef.current;
878
+ if (!target_0 || !document.body.contains(target_0)) {
879
+ const cardElement_0 = cardRef.current;
880
+ cardElement_0 && focusFirstDescendant(cardElement_0);
881
+ return;
882
+ }
883
+ target_0.focus();
884
+ }
885
+ }, 0);
886
+ }, $[34] = boundaryElement, $[35] = portalElement, $[36] = t13) : t13 = $[36];
887
+ const handleRootClick = t13;
888
+ let t14;
889
+ $[37] === Symbol.for("react.memo_cache_sentinel") ? (t14 = /* @__PURE__ */ jsxRuntime.jsx("div", { ref: preDivRef, tabIndex: 0 }), $[37] = t14) : t14 = $[37];
890
+ let t15;
891
+ $[38] !== autoFocus || $[39] !== cardRadius || $[40] !== cardShadow || $[41] !== children || $[42] !== contentRef || $[43] !== footer || $[44] !== header || $[45] !== hideCloseButton || $[46] !== id || $[47] !== onClickOutside || $[48] !== onClose || $[49] !== portalProp || $[50] !== scheme || $[51] !== width ? (t15 = /* @__PURE__ */ jsxRuntime.jsx(DialogCard, { __unstable_autoFocus: autoFocus, __unstable_hideCloseButton: hideCloseButton, contentRef, footer, header, id, onClickOutside, onClose, portal: portalProp, radius: cardRadius, ref: cardRef, scheme, shadow: cardShadow, width, children }), $[38] = autoFocus, $[39] = cardRadius, $[40] = cardShadow, $[41] = children, $[42] = contentRef, $[43] = footer, $[44] = header, $[45] = hideCloseButton, $[46] = id, $[47] = onClickOutside, $[48] = onClose, $[49] = portalProp, $[50] = scheme, $[51] = width, $[52] = t15) : t15 = $[52];
892
+ let t16;
893
+ $[53] === Symbol.for("react.memo_cache_sentinel") ? (t16 = /* @__PURE__ */ jsxRuntime.jsx("div", { ref: postDivRef, tabIndex: 0 }), $[53] = t16) : t16 = $[53];
894
+ let t17;
895
+ $[54] !== animate || $[55] !== handleFocus || $[56] !== handleRootClick || $[57] !== id || $[58] !== labelId || $[59] !== onActivate || $[60] !== padding || $[61] !== position || $[62] !== ref || $[63] !== restProps || $[64] !== t15 || $[65] !== zOffset ? (t17 = /* @__PURE__ */ jsxRuntime.jsxs(StyledDialog, { ...restProps, $animate: animate, $padding: padding, $position: position, "aria-labelledby": labelId, "aria-modal": !0, "data-ui": "Dialog", id, onActivate, onClick: handleRootClick, onFocus: handleFocus, ref, role: "dialog", zOffset, children: [
896
+ t14,
897
+ t15,
898
+ t16
899
+ ] }), $[54] = animate, $[55] = handleFocus, $[56] = handleRootClick, $[57] = id, $[58] = labelId, $[59] = onActivate, $[60] = padding, $[61] = position, $[62] = ref, $[63] = restProps, $[64] = t15, $[65] = zOffset, $[66] = t17) : t17 = $[66];
900
+ let t18;
901
+ return $[67] !== portalProp || $[68] !== t17 ? (t18 = /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Portal, { __unstable_name: portalProp, children: t17 }), $[67] = portalProp, $[68] = t17, $[69] = t18) : t18 = $[69], t18;
902
+ });
903
+ Dialog.displayName = "ForwardRef(Dialog)";
904
+ function DialogProvider(props) {
905
+ const $ = reactCompilerRuntime.c(6), {
906
+ children,
907
+ position,
908
+ zOffset
909
+ } = props;
910
+ let t0;
911
+ $[0] !== position || $[1] !== zOffset ? (t0 = {
912
+ version: 0,
913
+ position,
914
+ zOffset
915
+ }, $[0] = position, $[1] = zOffset, $[2] = t0) : t0 = $[2];
916
+ const contextValue = t0;
917
+ let t1;
918
+ return $[3] !== children || $[4] !== contextValue ? (t1 = /* @__PURE__ */ jsxRuntime.jsx(DialogContext.Provider, { value: contextValue, children }), $[3] = children, $[4] = contextValue, $[5] = t1) : t1 = $[5], t1;
919
+ }
920
+ DialogProvider.displayName = "DialogProvider";
921
+ const MenuButton = react.forwardRef(function(props, forwardedRef) {
922
+ const $ = reactCompilerRuntime.c(62), {
923
+ __unstable_disableRestoreFocusOnClose: t0,
924
+ boundaryElement: deprecated_boundaryElement,
925
+ button: buttonProp,
926
+ id,
927
+ menu: menuProp,
928
+ onClose,
929
+ onOpen,
930
+ placement: deprecated_placement,
931
+ popoverScheme: deprecated_popoverScheme,
932
+ portal: t1,
933
+ popover,
934
+ popoverRadius: deprecated_popoverRadius,
935
+ preventOverflow: deprecated_preventOverflow
936
+ } = props, disableRestoreFocusOnClose = t0 === void 0 ? !1 : t0, deprecated_portal = t1 === void 0 ? !0 : t1, [open, setOpen] = react.useState(!1), [shouldFocus, setShouldFocus] = react.useState(null), [buttonElement, setButtonElement] = react.useState(null);
937
+ let t2;
938
+ $[0] === Symbol.for("react.memo_cache_sentinel") ? (t2 = [], $[0] = t2) : t2 = $[0];
939
+ const [menuElements, setChildMenuElements] = react.useState(t2), openRef = react.useRef(open);
940
+ let t3, t4;
941
+ $[1] !== onOpen || $[2] !== open ? (t3 = () => {
942
+ onOpen && open && !openRef.current && onOpen();
943
+ }, t4 = [onOpen, open], $[1] = onOpen, $[2] = open, $[3] = t3, $[4] = t4) : (t3 = $[3], t4 = $[4]), react.useEffect(t3, t4);
944
+ let t5, t6;
945
+ $[5] !== onClose || $[6] !== open ? (t5 = () => {
946
+ onClose && !open && openRef.current && onClose();
947
+ }, t6 = [onClose, open], $[5] = onClose, $[6] = open, $[7] = t5, $[8] = t6) : (t5 = $[7], t6 = $[8]), react.useEffect(t5, t6);
948
+ let t7, t8;
949
+ $[9] !== open ? (t7 = () => {
950
+ openRef.current = open;
951
+ }, t8 = [open], $[9] = open, $[10] = t7, $[11] = t8) : (t7 = $[10], t8 = $[11]), react.useEffect(t7, t8);
952
+ let t9;
953
+ $[12] === Symbol.for("react.memo_cache_sentinel") ? (t9 = () => {
954
+ setOpen(_temp$2), setShouldFocus(null);
955
+ }, $[12] = t9) : t9 = $[12];
956
+ const handleButtonClick = t9;
957
+ let t10;
958
+ $[13] !== open ? (t10 = (event) => {
959
+ open && event.preventDefault();
960
+ }, $[13] = open, $[14] = t10) : t10 = $[14];
961
+ const handleMouseDown = t10;
962
+ let t11;
963
+ $[15] === Symbol.for("react.memo_cache_sentinel") ? (t11 = (event_0) => {
964
+ if (event_0.key === "ArrowDown" || event_0.key === "Enter" || event_0.key === " ") {
965
+ event_0.preventDefault(), setOpen(!0), setShouldFocus("first");
966
+ return;
967
+ }
968
+ if (event_0.key === "ArrowUp") {
969
+ event_0.preventDefault(), setOpen(!0), setShouldFocus("last");
970
+ return;
971
+ }
972
+ }, $[15] = t11) : t11 = $[15];
973
+ const handleButtonKeyDown = t11;
974
+ let t12;
975
+ $[16] !== buttonElement || $[17] !== menuElements ? (t12 = (event_1) => {
976
+ const target = event_1.target;
977
+ if (target instanceof Node && !(buttonElement && (target === buttonElement || buttonElement.contains(target)))) {
978
+ for (const el of menuElements)
979
+ if (target === el || el.contains(target))
980
+ return;
981
+ setOpen(!1);
982
+ }
983
+ }, $[16] = buttonElement, $[17] = menuElements, $[18] = t12) : t12 = $[18];
984
+ const handleMenuClickOutside = t12;
985
+ let t13;
986
+ $[19] !== buttonElement || $[20] !== disableRestoreFocusOnClose ? (t13 = () => {
987
+ setOpen(!1), !disableRestoreFocusOnClose && buttonElement && buttonElement.focus();
988
+ }, $[19] = buttonElement, $[20] = disableRestoreFocusOnClose, $[21] = t13) : t13 = $[21];
989
+ const handleMenuEscape = t13;
990
+ let t14;
991
+ $[22] !== menuElements ? (t14 = (event_2) => {
992
+ const target_0 = event_2.relatedTarget;
993
+ if (target_0 instanceof Node) {
994
+ for (const el_0 of menuElements)
995
+ if (el_0 === target_0 || el_0.contains(target_0))
996
+ return;
997
+ setOpen(!1);
998
+ }
999
+ }, $[22] = menuElements, $[23] = t14) : t14 = $[23];
1000
+ const handleBlur = t14;
1001
+ let t15;
1002
+ $[24] !== buttonElement || $[25] !== disableRestoreFocusOnClose ? (t15 = () => {
1003
+ setOpen(!1), !disableRestoreFocusOnClose && buttonElement && buttonElement.focus();
1004
+ }, $[24] = buttonElement, $[25] = disableRestoreFocusOnClose, $[26] = t15) : t15 = $[26];
1005
+ const handleItemClick = t15;
1006
+ let t16;
1007
+ $[27] === Symbol.for("react.memo_cache_sentinel") ? (t16 = (el_1) => (setChildMenuElements((els) => els.concat([el_1])), () => setChildMenuElements((els_0) => els_0.filter((_el) => _el !== el_1))), $[27] = t16) : t16 = $[27];
1008
+ const registerElement = t16;
1009
+ let t17;
1010
+ $[28] !== buttonElement || $[29] !== handleBlur || $[30] !== handleItemClick || $[31] !== handleMenuClickOutside || $[32] !== handleMenuEscape || $[33] !== id || $[34] !== menuProp || $[35] !== shouldFocus ? (t17 = menuProp && react.cloneElement(menuProp, {
1011
+ "aria-labelledby": id,
1012
+ onBlurCapture: handleBlur,
1013
+ onClickOutside: handleMenuClickOutside,
1014
+ onEscape: handleMenuEscape,
1015
+ onItemClick: handleItemClick,
1016
+ originElement: buttonElement,
1017
+ registerElement,
1018
+ shouldFocus
1019
+ }), $[28] = buttonElement, $[29] = handleBlur, $[30] = handleItemClick, $[31] = handleMenuClickOutside, $[32] = handleMenuEscape, $[33] = id, $[34] = menuProp, $[35] = shouldFocus, $[36] = t17) : t17 = $[36];
1020
+ const menu = t17;
1021
+ let t18;
1022
+ $[37] !== buttonProp || $[38] !== handleMouseDown || $[39] !== id || $[40] !== open ? (t18 = buttonProp && react.cloneElement(buttonProp, {
1023
+ "data-ui": "MenuButton",
1024
+ id,
1025
+ onClick: handleButtonClick,
1026
+ onKeyDown: handleButtonKeyDown,
1027
+ onMouseDown: handleMouseDown,
1028
+ "aria-haspopup": !0,
1029
+ "aria-expanded": open,
1030
+ ref: setButtonElement,
1031
+ selected: buttonProp.props.selected ?? open
1032
+ }), $[37] = buttonProp, $[38] = handleMouseDown, $[39] = id, $[40] = open, $[41] = t18) : t18 = $[41];
1033
+ const button = t18;
1034
+ let t19, t20;
1035
+ $[42] !== buttonElement ? (t19 = () => buttonElement, t20 = [buttonElement], $[42] = buttonElement, $[43] = t19, $[44] = t20) : (t19 = $[43], t20 = $[44]), react.useImperativeHandle(forwardedRef, t19, t20);
1036
+ let t21;
1037
+ $[45] !== popover ? (t21 = popover || {}, $[45] = popover, $[46] = t21) : t21 = $[46];
1038
+ let t22;
1039
+ $[47] !== deprecated_boundaryElement || $[48] !== deprecated_placement || $[49] !== deprecated_popoverRadius || $[50] !== deprecated_popoverScheme || $[51] !== deprecated_portal || $[52] !== deprecated_preventOverflow || $[53] !== t21 ? (t22 = {
1040
+ boundaryElement: deprecated_boundaryElement,
1041
+ overflow: "auto",
1042
+ placement: deprecated_placement,
1043
+ portal: deprecated_portal,
1044
+ preventOverflow: deprecated_preventOverflow,
1045
+ radius: deprecated_popoverRadius,
1046
+ scheme: deprecated_popoverScheme,
1047
+ ...t21
1048
+ }, $[47] = deprecated_boundaryElement, $[48] = deprecated_placement, $[49] = deprecated_popoverRadius, $[50] = deprecated_popoverScheme, $[51] = deprecated_portal, $[52] = deprecated_preventOverflow, $[53] = t21, $[54] = t22) : t22 = $[54];
1049
+ const popoverProps = t22;
1050
+ let t23;
1051
+ $[55] !== button ? (t23 = button || /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {}), $[55] = button, $[56] = t23) : t23 = $[56];
1052
+ let t24;
1053
+ return $[57] !== menu || $[58] !== open || $[59] !== popoverProps || $[60] !== t23 ? (t24 = /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Popover, { "data-ui": "MenuButton__popover", ...popoverProps, content: menu, open, children: t23 }), $[57] = menu, $[58] = open, $[59] = popoverProps, $[60] = t23, $[61] = t24) : t24 = $[61], t24;
1054
+ });
1055
+ MenuButton.displayName = "ForwardRef(MenuButton)";
1056
+ function _temp$2(v) {
1057
+ return !v;
1058
+ }
1059
+ const keyframe = styledComponents.keyframes`
1060
+ 0% {
1061
+ background-position: 100%;
1062
+ }
1063
+ 100% {
1064
+ background-position: -100%;
1065
+ }
1066
+ `, animation = styledComponents.css`
1067
+ background-image: linear-gradient(
1068
+ to right,
1069
+ var(--card-skeleton-color-from),
1070
+ var(--card-skeleton-color-to),
1071
+ var(--card-skeleton-color-from),
1072
+ var(--card-skeleton-color-from),
1073
+ var(--card-skeleton-color-from)
1074
+ );
1075
+ background-position: 100%;
1076
+ background-size: 200% 100%;
1077
+ background-attachment: fixed;
1078
+ animation-name: ${keyframe};
1079
+ animation-timing-function: ease-in-out;
1080
+ animation-iteration-count: infinite;
1081
+ animation-duration: 2000ms;
1082
+ `, skeletonStyle = styledComponents.css`
1083
+ opacity: ${({
1084
+ $visible
1085
+ }) => $visible ? 1 : 0};
1086
+ transition: opacity 200ms ease-in;
1087
+
1088
+ @media screen and (prefers-reduced-motion: no-preference) {
1089
+ ${({
1090
+ $animated
1091
+ }) => $animated ? animation : styledComponents.css`
1092
+ background-color: var(--card-skeleton-color-from);
1093
+ `}
1094
+ }
1095
+
1096
+ @media screen and (prefers-reduced-motion: reduce) {
1097
+ background-color: var(--card-skeleton-color-from);
1098
+ }
1099
+ `, StyledSkeleton$1 = /* @__PURE__ */ styledComponents.styled(_visualEditing.Box).withConfig({
1100
+ displayName: "StyledSkeleton",
1101
+ componentId: "sc-ebtpni-0"
1102
+ })(_visualEditing.responsiveRadiusStyle, skeletonStyle), Skeleton = react.forwardRef(function(props, ref) {
1103
+ const $ = reactCompilerRuntime.c(16);
1104
+ let delay, radius, restProps, t0;
1105
+ $[0] !== props ? ({
1106
+ animated: t0,
1107
+ delay,
1108
+ radius,
1109
+ ...restProps
1110
+ } = props, $[0] = props, $[1] = delay, $[2] = radius, $[3] = restProps, $[4] = t0) : (delay = $[1], radius = $[2], restProps = $[3], t0 = $[4]);
1111
+ const animated = t0 === void 0 ? !1 : t0, [visible, setVisible] = react.useState(!delay);
1112
+ let t1, t2;
1113
+ $[5] !== delay ? (t1 = () => {
1114
+ if (!delay)
1115
+ return;
1116
+ const timeout = setTimeout(() => {
1117
+ setVisible(!0);
1118
+ }, delay);
1119
+ return () => {
1120
+ clearTimeout(timeout);
1121
+ };
1122
+ }, t2 = [delay], $[5] = delay, $[6] = t1, $[7] = t2) : (t1 = $[6], t2 = $[7]), react.useEffect(t1, t2);
1123
+ let t3;
1124
+ $[8] !== radius ? (t3 = _visualEditing._getArrayProp(radius), $[8] = radius, $[9] = t3) : t3 = $[9];
1125
+ const t4 = delay ? visible : !0;
1126
+ let t5;
1127
+ return $[10] !== animated || $[11] !== ref || $[12] !== restProps || $[13] !== t3 || $[14] !== t4 ? (t5 = /* @__PURE__ */ jsxRuntime.jsx(StyledSkeleton$1, { ...restProps, $animated: animated, $radius: t3, $visible: t4, ref }), $[10] = animated, $[11] = ref, $[12] = restProps, $[13] = t3, $[14] = t4, $[15] = t5) : t5 = $[15], t5;
1128
+ });
1129
+ Skeleton.displayName = "ForwardRef(Skeleton)";
1130
+ const StyledSkeleton = /* @__PURE__ */ styledComponents.styled(Skeleton).withConfig({
1131
+ displayName: "StyledSkeleton",
1132
+ componentId: "sc-2p7a1v-0"
1133
+ })((props) => {
1134
+ const {
1135
+ $size,
1136
+ $style
1137
+ } = props, {
1138
+ font,
1139
+ media
1140
+ } = theme.getTheme_v2(props.theme), fontStyle = font[$style];
1141
+ return _visualEditing._responsive(media, $size, (sizeIndex) => {
1142
+ const fontSize = fontStyle.sizes[sizeIndex];
1143
+ return {
1144
+ height: fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight
1145
+ };
1146
+ });
1147
+ }), TextSkeleton = react.forwardRef(function(props, ref) {
1148
+ const $ = reactCompilerRuntime.c(9);
1149
+ let restProps, t0;
1150
+ $[0] !== props ? ({
1151
+ size: t0,
1152
+ ...restProps
1153
+ } = props, $[0] = props, $[1] = restProps, $[2] = t0) : (restProps = $[1], t0 = $[2]);
1154
+ const size = t0 === void 0 ? 2 : t0;
1155
+ let t1;
1156
+ $[3] !== size ? (t1 = _visualEditing._getArrayProp(size), $[3] = size, $[4] = t1) : t1 = $[4];
1157
+ const $size = t1;
1158
+ let t2;
1159
+ return $[5] !== $size || $[6] !== ref || $[7] !== restProps ? (t2 = /* @__PURE__ */ jsxRuntime.jsx(StyledSkeleton, { ...restProps, $size, ref, $style: "text" }), $[5] = $size, $[6] = ref, $[7] = restProps, $[8] = t2) : t2 = $[8], t2;
1160
+ });
1161
+ TextSkeleton.displayName = "ForwardRef(TextSkeleton)";
1162
+ const LabelSkeleton = react.forwardRef(function(props, ref) {
1163
+ const $ = reactCompilerRuntime.c(9);
1164
+ let restProps, t0;
1165
+ $[0] !== props ? ({
1166
+ size: t0,
1167
+ ...restProps
1168
+ } = props, $[0] = props, $[1] = restProps, $[2] = t0) : (restProps = $[1], t0 = $[2]);
1169
+ const size = t0 === void 0 ? 2 : t0;
1170
+ let t1;
1171
+ $[3] !== size ? (t1 = _visualEditing._getArrayProp(size), $[3] = size, $[4] = t1) : t1 = $[4];
1172
+ const $size = t1;
1173
+ let t2;
1174
+ return $[5] !== $size || $[6] !== ref || $[7] !== restProps ? (t2 = /* @__PURE__ */ jsxRuntime.jsx(StyledSkeleton, { ...restProps, $size, ref, $style: "label" }), $[5] = $size, $[6] = ref, $[7] = restProps, $[8] = t2) : t2 = $[8], t2;
1175
+ });
1176
+ LabelSkeleton.displayName = "ForwardRef(LabelSkeleton)";
1177
+ const HeadingSkeleton = react.forwardRef(function(props, ref) {
1178
+ const $ = reactCompilerRuntime.c(9);
1179
+ let restProps, t0;
1180
+ $[0] !== props ? ({
1181
+ size: t0,
1182
+ ...restProps
1183
+ } = props, $[0] = props, $[1] = restProps, $[2] = t0) : (restProps = $[1], t0 = $[2]);
1184
+ const size = t0 === void 0 ? 2 : t0;
1185
+ let t1;
1186
+ $[3] !== size ? (t1 = _visualEditing._getArrayProp(size), $[3] = size, $[4] = t1) : t1 = $[4];
1187
+ const $size = t1;
1188
+ let t2;
1189
+ return $[5] !== $size || $[6] !== ref || $[7] !== restProps ? (t2 = /* @__PURE__ */ jsxRuntime.jsx(StyledSkeleton, { ...restProps, $size, ref, $style: "heading" }), $[5] = $size, $[6] = ref, $[7] = restProps, $[8] = t2) : t2 = $[8], t2;
1190
+ });
1191
+ HeadingSkeleton.displayName = "ForwardRef(HeadingSkeleton)";
1192
+ const CodeSkeleton = react.forwardRef(function(props, ref) {
1193
+ const $ = reactCompilerRuntime.c(9);
1194
+ let restProps, t0;
1195
+ $[0] !== props ? ({
1196
+ size: t0,
1197
+ ...restProps
1198
+ } = props, $[0] = props, $[1] = restProps, $[2] = t0) : (restProps = $[1], t0 = $[2]);
1199
+ const size = t0 === void 0 ? 2 : t0;
1200
+ let t1;
1201
+ $[3] !== size ? (t1 = _visualEditing._getArrayProp(size), $[3] = size, $[4] = t1) : t1 = $[4];
1202
+ const $size = t1;
1203
+ let t2;
1204
+ return $[5] !== $size || $[6] !== ref || $[7] !== restProps ? (t2 = /* @__PURE__ */ jsxRuntime.jsx(StyledSkeleton, { ...restProps, $size, ref, $style: "code" }), $[5] = $size, $[6] = ref, $[7] = restProps, $[8] = t2) : t2 = $[8], t2;
1205
+ });
1206
+ CodeSkeleton.displayName = "ForwardRef(CodeSkeleton)";
1207
+ const TabPanel = react.forwardRef(function(props, ref) {
1208
+ const $ = reactCompilerRuntime.c(9);
1209
+ let flex, restProps;
1210
+ $[0] !== props ? ({
1211
+ flex,
1212
+ ...restProps
1213
+ } = props, $[0] = props, $[1] = flex, $[2] = restProps) : (flex = $[1], restProps = $[2]);
1214
+ const t0 = props.tabIndex === void 0 ? 0 : props.tabIndex;
1215
+ let t1;
1216
+ return $[3] !== flex || $[4] !== props.children || $[5] !== ref || $[6] !== restProps || $[7] !== t0 ? (t1 = /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Box, { "data-ui": "TabPanel", ...restProps, flex, ref, role: "tabpanel", tabIndex: t0, children: props.children }), $[3] = flex, $[4] = props.children, $[5] = ref, $[6] = restProps, $[7] = t0, $[8] = t1) : t1 = $[8], t1;
1217
+ });
1218
+ TabPanel.displayName = "ForwardRef(TabPanel)";
1219
+ const LOADING_BAR_HEIGHT = 2, STATUS_CARD_TONE = {
1220
+ error: "critical",
1221
+ warning: "caution",
1222
+ success: "positive",
1223
+ info: "neutral"
1224
+ }, BUTTON_TONE = {
1225
+ error: "critical",
1226
+ warning: "caution",
1227
+ success: "positive",
1228
+ info: "neutral"
1229
+ }, TextBox = styledComponents.styled(_visualEditing.Flex).withConfig({
1230
+ displayName: "TextBox",
1231
+ componentId: "sc-1rr7rxo-0"
1232
+ })`overflow-x:auto;`, StyledToast = styledComponents.styled(_visualEditing.Card).withConfig({
1233
+ displayName: "StyledToast",
1234
+ componentId: "sc-1rr7rxo-1"
1235
+ })`pointer-events:all;width:100%;position:relative;overflow:hidden;overflow:clip;&[data-has-duration]{padding-bottom:calc(${LOADING_BAR_HEIGHT}px / 2);}`, LoadingBar = styledComponents.styled.div.withConfig({
1236
+ displayName: "LoadingBar",
1237
+ componentId: "sc-1rr7rxo-2"
1238
+ })`display:flex;position:absolute;bottom:0px;top:0px;left:0px;right:0px;pointer-events:none;z-index:-1;overflow:hidden;overflow:clip;background:transparent;align-items:flex-end;will-change:opacity;`, LoadingBarMask = styledComponents.styled(_visualEditing.Card).withConfig({
1239
+ displayName: "LoadingBarMask",
1240
+ componentId: "sc-1rr7rxo-3"
1241
+ })`position:absolute;top:0;left:-${LOADING_BAR_HEIGHT}px;right:-${LOADING_BAR_HEIGHT}px;bottom:${LOADING_BAR_HEIGHT}px;z-index:1;`, LoadingBarProgress = styledComponents.styled(_visualEditing.Card).withConfig({
1242
+ displayName: "LoadingBarProgress",
1243
+ componentId: "sc-1rr7rxo-4"
1244
+ })`display:block;height:100%;width:100%;transform-origin:0% 50%;background-color:${(props) => {
1245
+ const {
1246
+ color
1247
+ } = theme.getTheme_v2(props.theme);
1248
+ return color.button.default[props.tone].enabled.bg;
1249
+ }};`, ROLES = {
1250
+ error: "alert",
1251
+ warning: "alert",
1252
+ success: "alert",
1253
+ info: "alert"
1254
+ }, LONG_ENOUGH_BUT_NOT_TOO_LONG = 1e3 * 60 * 60 * 24 * 24;
1255
+ function Toast(props) {
1256
+ const $ = reactCompilerRuntime.c(50);
1257
+ let closable, description, duration, onClose, restProps, status, t0, title, updatedAt;
1258
+ $[0] !== props ? ({
1259
+ closable,
1260
+ description,
1261
+ duration,
1262
+ onClose,
1263
+ radius: t0,
1264
+ title,
1265
+ status,
1266
+ updatedAt,
1267
+ ...restProps
1268
+ } = props, $[0] = props, $[1] = closable, $[2] = description, $[3] = duration, $[4] = onClose, $[5] = restProps, $[6] = status, $[7] = t0, $[8] = title, $[9] = updatedAt) : (closable = $[1], description = $[2], duration = $[3], onClose = $[4], restProps = $[5], status = $[6], t0 = $[7], title = $[8], updatedAt = $[9]);
1269
+ const radius = t0 === void 0 ? 3 : t0, cardTone = status ? STATUS_CARD_TONE[status] : "default", buttonTone = status ? BUTTON_TONE[status] : "default", role = status ? ROLES[status] : "status", visualDuration = _visualEditing.usePrefersReducedMotion() ? 0 : 0.26;
1270
+ let t1;
1271
+ $[10] !== visualDuration ? (t1 = visualDuration ? {
1272
+ type: "spring",
1273
+ visualDuration,
1274
+ bounce: 0.25
1275
+ } : {
1276
+ duration: 0
1277
+ }, $[10] = visualDuration, $[11] = t1) : t1 = $[11];
1278
+ const transition = t1, hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG;
1279
+ let t2;
1280
+ $[12] === Symbol.for("react.memo_cache_sentinel") ? (t2 = ["hidden", "initial"], $[12] = t2) : t2 = $[12];
1281
+ const initial = t2;
1282
+ let t3;
1283
+ $[13] === Symbol.for("react.memo_cache_sentinel") ? (t3 = ["visible", "slideIn"], $[13] = t3) : t3 = $[13];
1284
+ const animate = t3;
1285
+ let t4;
1286
+ $[14] === Symbol.for("react.memo_cache_sentinel") ? (t4 = ["hidden", "slideOut"], $[14] = t4) : t4 = $[14];
1287
+ const exit = t4, t5 = hasDuration ? "" : void 0;
1288
+ let t6;
1289
+ $[15] !== title ? (t6 = title && /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Text, { size: 1, weight: "medium", children: title }), $[15] = title, $[16] = t6) : t6 = $[16];
1290
+ let t7;
1291
+ $[17] !== description || $[18] !== transition ? (t7 = description && /* @__PURE__ */ jsxRuntime.jsx(MotionText, { muted: !0, size: 1, variants: content, transition, children: description }), $[17] = description, $[18] = transition, $[19] = t7) : t7 = $[19];
1292
+ let t8;
1293
+ $[20] !== t6 || $[21] !== t7 ? (t8 = /* @__PURE__ */ jsxRuntime.jsx(TextBox, { flex: 1, padding: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(_visualEditing.Stack, { space: 3, children: [
1294
+ t6,
1295
+ t7
1296
+ ] }) }), $[20] = t6, $[21] = t7, $[22] = t8) : t8 = $[22];
1297
+ let t9;
1298
+ $[23] !== buttonTone || $[24] !== closable || $[25] !== onClose ? (t9 = closable && /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Box, { padding: 1, children: /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Button, { as: "button", icon: icons.CloseIcon, mode: "bleed", padding: 2, tone: buttonTone, onClick: onClose, style: {
1299
+ verticalAlign: "top"
1300
+ } }) }), $[23] = buttonTone, $[24] = closable, $[25] = onClose, $[26] = t9) : t9 = $[26];
1301
+ let t10;
1302
+ $[27] !== t8 || $[28] !== t9 || $[29] !== transition ? (t10 = /* @__PURE__ */ jsxRuntime.jsxs(MotionFlex, { align: "flex-start", variants: content, transition, children: [
1303
+ t8,
1304
+ t9
1305
+ ] }), $[27] = t8, $[28] = t9, $[29] = transition, $[30] = t10) : t10 = $[30];
1306
+ let t11;
1307
+ $[31] !== cardTone || $[32] !== duration || $[33] !== hasDuration || $[34] !== onClose || $[35] !== radius || $[36] !== transition || $[37] !== updatedAt || $[38] !== visualDuration ? (t11 = hasDuration && /* @__PURE__ */ jsxRuntime.jsxs(MotionLoadingBar, { variants: content, transition, children: [
1308
+ /* @__PURE__ */ jsxRuntime.jsx(LoadingBarMask, { tone: cardTone, radius }),
1309
+ /* @__PURE__ */ jsxRuntime.jsx(MotionLoadingBarProgress, { tone: cardTone, initial: {
1310
+ scaleX: 0
1311
+ }, animate: {
1312
+ scaleX: 1
1313
+ }, transition: {
1314
+ delay: visualDuration,
1315
+ duration: duration / 1e3,
1316
+ ease: "linear"
1317
+ }, onAnimationComplete: onClose }, `progress-${updatedAt}`)
1318
+ ] }), $[31] = cardTone, $[32] = duration, $[33] = hasDuration, $[34] = onClose, $[35] = radius, $[36] = transition, $[37] = updatedAt, $[38] = visualDuration, $[39] = t11) : t11 = $[39];
1319
+ let t12;
1320
+ return $[40] !== cardTone || $[41] !== radius || $[42] !== restProps || $[43] !== role || $[44] !== t10 || $[45] !== t11 || $[46] !== t5 || $[47] !== transition || $[48] !== visualDuration ? (t12 = /* @__PURE__ */ jsxRuntime.jsxs(MotionToast, { "data-ui": "Toast", role, ...restProps, "data-has-duration": t5, custom: visualDuration, radius, shadow: 2, tone: cardTone, forwardedAs: "li", layout: "position", variants: container, initial, animate, exit, transition, children: [
1321
+ t10,
1322
+ t11
1323
+ ] }), $[40] = cardTone, $[41] = radius, $[42] = restProps, $[43] = role, $[44] = t10, $[45] = t11, $[46] = t5, $[47] = transition, $[48] = visualDuration, $[49] = t12) : t12 = $[49], t12;
1324
+ }
1325
+ Toast.displayName = "Toast";
1326
+ const container = {
1327
+ initial: {
1328
+ y: 32,
1329
+ scale: 0.5,
1330
+ zIndex: 1
1331
+ },
1332
+ hidden: {
1333
+ opacity: 0
1334
+ },
1335
+ visible: (visualDuration) => visualDuration ? {
1336
+ opacity: 1,
1337
+ transition: {
1338
+ when: "beforeChildren",
1339
+ staggerChildren: visualDuration / 3,
1340
+ duration: visualDuration / 3
1341
+ }
1342
+ } : {
1343
+ opacity: 1
1344
+ },
1345
+ slideIn: {
1346
+ y: 0,
1347
+ scale: 1
1348
+ },
1349
+ slideOut: {
1350
+ zIndex: 0,
1351
+ scale: 0.75
1352
+ }
1353
+ }, content = {
1354
+ initial: {
1355
+ willChange: "transform"
1356
+ },
1357
+ hidden: {
1358
+ opacity: 0
1359
+ },
1360
+ visible: {
1361
+ opacity: 1
1362
+ }
1363
+ }, MotionToast = react$1.motion.create(StyledToast), MotionFlex = react$1.motion.create(_visualEditing.Flex), MotionText = react$1.motion.create(_visualEditing.Text), MotionLoadingBar = react$1.motion.create(LoadingBar), MotionLoadingBarProgress = react$1.motion.create(LoadingBarProgress);
1364
+ function useMounted() {
1365
+ return react.useSyncExternalStore(subscribe, _temp$1, _temp2);
1366
+ }
1367
+ function _temp2() {
1368
+ return !1;
1369
+ }
1370
+ function _temp$1() {
1371
+ return !0;
1372
+ }
1373
+ const subscribe = () => () => {
1374
+ }, ToastContext = _visualEditing.createGlobalScopedContext("@bettercms-ai/kit/context/toast", null);
1375
+ function ToastLayer(props) {
1376
+ const $ = reactCompilerRuntime.c(9), {
1377
+ children,
1378
+ padding: t0,
1379
+ paddingX,
1380
+ paddingY,
1381
+ gap: t1
1382
+ } = props, padding = t0 === void 0 ? 4 : t0, gap = t1 === void 0 ? 3 : t1, {
1383
+ zIndex
1384
+ } = _visualEditing.useLayer();
1385
+ let t2;
1386
+ $[0] !== zIndex ? (t2 = {
1387
+ zIndex
1388
+ }, $[0] = zIndex, $[1] = t2) : t2 = $[1];
1389
+ let t3;
1390
+ return $[2] !== children || $[3] !== gap || $[4] !== padding || $[5] !== paddingX || $[6] !== paddingY || $[7] !== t2 ? (t3 = /* @__PURE__ */ jsxRuntime.jsx(StyledLayer, { forwardedAs: "ul", "data-ui": "ToastProvider", padding, paddingX, paddingY, gap, columns: 1, style: t2, children }), $[2] = children, $[3] = gap, $[4] = padding, $[5] = paddingX, $[6] = paddingY, $[7] = t2, $[8] = t3) : t3 = $[8], t3;
1391
+ }
1392
+ ToastLayer.displayName = "ToastLayer";
1393
+ const StyledLayer = styledComponents.styled(_visualEditing.Grid).withConfig({
1394
+ displayName: "StyledLayer",
1395
+ componentId: "sc-1tbwn58-0"
1396
+ })`box-sizing:border-box;position:fixed;right:0;bottom:0;list-style:none;pointer-events:none;max-width:420px;width:100%;`;
1397
+ let toastId = 0;
1398
+ function generateToastId() {
1399
+ return String(toastId++);
1400
+ }
1401
+ function ToastProvider(props) {
1402
+ const $ = reactCompilerRuntime.c(13), {
1403
+ children,
1404
+ padding,
1405
+ paddingX,
1406
+ paddingY,
1407
+ gap,
1408
+ zOffset: t0
1409
+ } = props, zOffset = t0 === void 0 ? 1 : t0;
1410
+ let t1;
1411
+ $[0] === Symbol.for("react.memo_cache_sentinel") ? (t1 = [], $[0] = t1) : t1 = $[0];
1412
+ const [state, setState] = react.useState(t1), mounted = useMounted();
1413
+ let t2;
1414
+ $[1] === Symbol.for("react.memo_cache_sentinel") ? (t2 = {
1415
+ version: 0,
1416
+ push: (params) => {
1417
+ const id = params.id || generateToastId(), duration = params.duration || 5e3;
1418
+ return react.startTransition(() => {
1419
+ setState((prevState) => {
1420
+ if (duration === 0.01)
1421
+ return prevState.filter((toast) => toast.id !== id);
1422
+ const dismiss = () => react.startTransition(() => setState((currentState) => currentState.filter((toast_0) => toast_0.id !== id)));
1423
+ return [...prevState.filter((toast_1) => toast_1.id !== id), {
1424
+ dismiss,
1425
+ id,
1426
+ updatedAt: Date.now(),
1427
+ params: {
1428
+ ...params,
1429
+ duration
1430
+ }
1431
+ }];
1432
+ });
1433
+ }), id;
1434
+ }
1435
+ }, $[1] = t2) : t2 = $[1];
1436
+ const value = t2;
1437
+ let t3;
1438
+ $[2] !== gap || $[3] !== mounted || $[4] !== padding || $[5] !== paddingX || $[6] !== paddingY || $[7] !== state || $[8] !== zOffset ? (t3 = mounted && /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.LayerProvider, { zOffset, children: /* @__PURE__ */ jsxRuntime.jsx(ToastLayer, { padding, paddingX, paddingY, gap, children: /* @__PURE__ */ jsxRuntime.jsx(react$1.AnimatePresence, { initial: !1, mode: "popLayout", children: state.map(_temp) }) }) }), $[2] = gap, $[3] = mounted, $[4] = padding, $[5] = paddingX, $[6] = paddingY, $[7] = state, $[8] = zOffset, $[9] = t3) : t3 = $[9];
1439
+ let t4;
1440
+ return $[10] !== children || $[11] !== t3 ? (t4 = /* @__PURE__ */ jsxRuntime.jsxs(ToastContext.Provider, { value, children: [
1441
+ children,
1442
+ t3
1443
+ ] }), $[10] = children, $[11] = t3, $[12] = t4) : t4 = $[12], t4;
1444
+ }
1445
+ function _temp(t0) {
1446
+ const {
1447
+ dismiss: dismiss_0,
1448
+ id: id_0,
1449
+ params: params_0,
1450
+ updatedAt
1451
+ } = t0;
1452
+ return /* @__PURE__ */ jsxRuntime.jsx(Toast, { closable: params_0.closable, description: params_0.description, onClose: dismiss_0, status: params_0.status, title: params_0.title, duration: params_0.duration, updatedAt }, id_0);
1453
+ }
1454
+ ToastProvider.displayName = "ToastProvider";
1455
+ function useToast() {
1456
+ const value = react.useContext(ToastContext);
1457
+ if (!value)
1458
+ throw new Error("useToast(): missing context value");
1459
+ if (!_visualEditing.isRecord(value) || value.version !== 0)
1460
+ throw new Error("useToast(): the context value is not compatible");
1461
+ return value;
1462
+ }
1463
+ function _findPrevItemElement(state, itemElements, focusedElement) {
1464
+ const idx = itemElements.indexOf(focusedElement), els = itemElements.slice(0, idx), len = els.length;
1465
+ for (let i = len - 1; i >= 0; i -= 1) {
1466
+ const itemKey = els[i].getAttribute("data-tree-key");
1467
+ if (!itemKey)
1468
+ continue;
1469
+ const segments = itemKey.split("/");
1470
+ segments.pop();
1471
+ const p = [];
1472
+ let expanded = !0;
1473
+ for (let j = 0; j < segments.length; j += 1) {
1474
+ p.push(segments[j]);
1475
+ const k = p.join("/");
1476
+ if (!state[k]?.expanded) {
1477
+ expanded = !1;
1478
+ break;
1479
+ }
1480
+ }
1481
+ if (expanded)
1482
+ return els[i];
1483
+ }
1484
+ return null;
1485
+ }
1486
+ function _findNextItemElement(state, itemElements, focusedElement) {
1487
+ const idx = itemElements.indexOf(focusedElement), els = itemElements.slice(idx), len = itemElements.length;
1488
+ for (let i = 1; i < len; i += 1) {
1489
+ if (!els[i])
1490
+ continue;
1491
+ const itemKey = els[i].getAttribute("data-tree-key");
1492
+ if (!itemKey)
1493
+ continue;
1494
+ const segments = itemKey.split("/");
1495
+ segments.pop();
1496
+ const p = [];
1497
+ let expanded = !0;
1498
+ for (let j = 0; j < segments.length; j += 1) {
1499
+ p.push(segments[j]);
1500
+ const k = p.join("/");
1501
+ if (!state[k]?.expanded) {
1502
+ expanded = !1;
1503
+ break;
1504
+ }
1505
+ }
1506
+ if (expanded)
1507
+ return els[i];
1508
+ }
1509
+ return null;
1510
+ }
1511
+ function _focusItemElement(el) {
1512
+ if (el.getAttribute("role") === "treeitem" && el.focus(), el.getAttribute("role") === "none") {
1513
+ const firstChild = el.firstChild;
1514
+ firstChild && firstChild instanceof HTMLElement && firstChild.focus();
1515
+ }
1516
+ }
1517
+ const TreeContext = _visualEditing.createGlobalScopedContext("@bettercms-ai/kit/context/tree", null), Tree = react.forwardRef(function(props, forwardedRef) {
1518
+ const $ = reactCompilerRuntime.c(38);
1519
+ let children, gap, onFocus, restProps, t0;
1520
+ $[0] !== props ? ({
1521
+ children,
1522
+ gap,
1523
+ space: t0,
1524
+ onFocus,
1525
+ ...restProps
1526
+ } = props, $[0] = props, $[1] = children, $[2] = gap, $[3] = onFocus, $[4] = restProps, $[5] = t0) : (children = $[1], gap = $[2], onFocus = $[3], restProps = $[4], t0 = $[5]);
1527
+ const spacing = gap === void 0 ? t0 === void 0 ? 1 : t0 : gap, ref = react.useRef(null), [focusedElement, setFocusedElement] = react.useState(null), focusedElementRef = react.useRef(focusedElement);
1528
+ let t1;
1529
+ $[6] === Symbol.for("react.memo_cache_sentinel") ? (t1 = [], $[6] = t1) : t1 = $[6];
1530
+ const path = t1;
1531
+ let t2;
1532
+ $[7] === Symbol.for("react.memo_cache_sentinel") ? (t2 = [], $[7] = t2) : t2 = $[7];
1533
+ const [itemElements, setItemElements] = react.useState(t2);
1534
+ let t3;
1535
+ $[8] === Symbol.for("react.memo_cache_sentinel") ? (t3 = {}, $[8] = t3) : t3 = $[8];
1536
+ const [state, setState] = react.useState(t3), stateRef = react.useRef(state);
1537
+ let t4;
1538
+ $[9] === Symbol.for("react.memo_cache_sentinel") ? (t4 = () => ref.current, $[9] = t4) : t4 = $[9], react.useImperativeHandle(forwardedRef, t4);
1539
+ let t5, t6;
1540
+ $[10] !== focusedElement ? (t5 = () => {
1541
+ focusedElementRef.current = focusedElement;
1542
+ }, t6 = [focusedElement], $[10] = focusedElement, $[11] = t5, $[12] = t6) : (t5 = $[11], t6 = $[12]), react.useEffect(t5, t6);
1543
+ let t7, t8;
1544
+ $[13] !== state ? (t7 = () => {
1545
+ stateRef.current = state;
1546
+ }, t8 = [state], $[13] = state, $[14] = t7, $[15] = t8) : (t7 = $[14], t8 = $[15]), react.useEffect(t7, t8);
1547
+ let t9;
1548
+ $[16] === Symbol.for("react.memo_cache_sentinel") ? (t9 = (element, path_0, expanded, selected) => (setState((s) => ({
1549
+ ...s,
1550
+ [path_0]: {
1551
+ element,
1552
+ expanded
1553
+ }
1554
+ })), selected && setFocusedElement(element), () => {
1555
+ setState((s_0) => {
1556
+ const newState = {
1557
+ ...s_0
1558
+ };
1559
+ return delete newState[path_0], newState;
1560
+ });
1561
+ }), $[16] = t9) : t9 = $[16];
1562
+ const registerItem = t9;
1563
+ let t10;
1564
+ $[17] === Symbol.for("react.memo_cache_sentinel") ? (t10 = (path_1, expanded_0) => {
1565
+ setState((s_1) => {
1566
+ const itemState = s_1[path_1];
1567
+ return itemState ? {
1568
+ ...s_1,
1569
+ [path_1]: {
1570
+ ...itemState,
1571
+ expanded: expanded_0
1572
+ }
1573
+ } : s_1;
1574
+ });
1575
+ }, $[17] = t10) : t10 = $[17];
1576
+ const setExpanded = t10, t11 = focusedElement || itemElements[0] || null;
1577
+ let t12;
1578
+ $[18] !== spacing || $[19] !== state || $[20] !== t11 ? (t12 = {
1579
+ version: 0,
1580
+ focusedElement: t11,
1581
+ level: 0,
1582
+ path,
1583
+ registerItem,
1584
+ setExpanded,
1585
+ setFocusedElement,
1586
+ gap: spacing,
1587
+ space: spacing,
1588
+ state
1589
+ }, $[18] = spacing, $[19] = state, $[20] = t11, $[21] = t12) : t12 = $[21];
1590
+ const contextValue = t12;
1591
+ let t13;
1592
+ $[22] !== itemElements ? (t13 = (event) => {
1593
+ if (focusedElementRef.current) {
1594
+ if (event.key === "ArrowDown") {
1595
+ event.preventDefault();
1596
+ const nextEl = _findNextItemElement(stateRef.current, itemElements, focusedElementRef.current);
1597
+ nextEl && (_focusItemElement(nextEl), setFocusedElement(nextEl));
1598
+ return;
1599
+ }
1600
+ if (event.key === "ArrowUp") {
1601
+ event.preventDefault();
1602
+ const prevEl = _findPrevItemElement(stateRef.current, itemElements, focusedElementRef.current);
1603
+ prevEl && (_focusItemElement(prevEl), setFocusedElement(prevEl));
1604
+ return;
1605
+ }
1606
+ if (event.key === "ArrowLeft") {
1607
+ event.preventDefault();
1608
+ const itemKey = focusedElementRef.current.getAttribute("data-tree-key");
1609
+ if (!itemKey)
1610
+ return;
1611
+ const itemState_0 = stateRef.current[itemKey];
1612
+ if (!itemState_0)
1613
+ return;
1614
+ if (itemState_0.expanded)
1615
+ setState((s_2) => {
1616
+ const itemState_1 = s_2[itemKey];
1617
+ return itemState_1 ? {
1618
+ ...s_2,
1619
+ [itemKey]: {
1620
+ ...itemState_1,
1621
+ expanded: !1
1622
+ }
1623
+ } : s_2;
1624
+ });
1625
+ else {
1626
+ const itemPath = itemKey.split("/");
1627
+ itemPath.pop();
1628
+ const parentKey = itemPath.join("/"), parentState = parentKey && stateRef.current[parentKey];
1629
+ parentState && (parentState.element.focus(), setFocusedElement(parentState.element));
1630
+ }
1631
+ return;
1632
+ }
1633
+ if (event.key === "ArrowRight") {
1634
+ event.preventDefault();
1635
+ const focusedKey = focusedElementRef.current.getAttribute("data-tree-key");
1636
+ if (!focusedKey)
1637
+ return;
1638
+ stateRef.current[focusedKey]?.expanded || setState((s_3) => {
1639
+ const itemState_2 = s_3[focusedKey];
1640
+ return itemState_2 ? {
1641
+ ...s_3,
1642
+ [focusedKey]: {
1643
+ ...itemState_2,
1644
+ expanded: !0
1645
+ }
1646
+ } : s_3;
1647
+ });
1648
+ return;
1649
+ }
1650
+ }
1651
+ }, $[22] = itemElements, $[23] = t13) : t13 = $[23];
1652
+ const handleKeyDown = t13;
1653
+ let t14;
1654
+ $[24] !== onFocus ? (t14 = (event_0) => {
1655
+ setFocusedElement(event_0.target), onFocus?.(event_0);
1656
+ }, $[24] = onFocus, $[25] = t14) : t14 = $[25];
1657
+ const handleFocus = t14;
1658
+ let t15;
1659
+ $[26] === Symbol.for("react.memo_cache_sentinel") ? (t15 = () => {
1660
+ if (!ref.current)
1661
+ return;
1662
+ const _itemElements = Array.from(ref.current.querySelectorAll('[data-ui="TreeItem"]'));
1663
+ setItemElements(_itemElements);
1664
+ }, $[26] = t15) : t15 = $[26];
1665
+ let t16;
1666
+ $[27] !== children ? (t16 = [children], $[27] = children, $[28] = t16) : t16 = $[28], react.useEffect(t15, t16);
1667
+ let t17;
1668
+ $[29] !== children || $[30] !== handleFocus || $[31] !== handleKeyDown || $[32] !== restProps || $[33] !== spacing ? (t17 = /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Stack, { as: "ul", "data-ui": "Tree", ...restProps, onFocus: handleFocus, onKeyDown: handleKeyDown, ref, role: "tree", gap: spacing, children }), $[29] = children, $[30] = handleFocus, $[31] = handleKeyDown, $[32] = restProps, $[33] = spacing, $[34] = t17) : t17 = $[34];
1669
+ let t18;
1670
+ return $[35] !== contextValue || $[36] !== t17 ? (t18 = /* @__PURE__ */ jsxRuntime.jsx(TreeContext.Provider, { value: contextValue, children: t17 }), $[35] = contextValue, $[36] = t17, $[37] = t18) : t18 = $[37], t18;
1671
+ });
1672
+ Tree.displayName = "ForwardRef(Tree)";
1673
+ function treeItemRootStyle() {
1674
+ return styledComponents.css`
1675
+ &[role='none'] > [role='treeitem'] {
1676
+ outline: none;
1677
+ cursor: default;
1678
+ border-radius: 3px;
1679
+
1680
+ background-color: var(--card-bg-color);
1681
+ color: var(--treeitem-fg-color);
1682
+
1683
+ &:focus {
1684
+ position: relative;
1685
+ }
1686
+ }
1687
+
1688
+ &[role='treeitem'] {
1689
+ outline: none;
1690
+
1691
+ & > div {
1692
+ cursor: default;
1693
+ border-radius: 3px;
1694
+
1695
+ background-color: var(--card-bg-color);
1696
+ color: var(--treeitem-fg-color);
1697
+ }
1698
+
1699
+ &:focus > div {
1700
+ position: relative;
1701
+ }
1702
+ }
1703
+ `;
1704
+ }
1705
+ function treeItemRootColorStyle(props) {
1706
+ const $tone = "default", {
1707
+ color
1708
+ } = theme.getTheme_v2(props.theme), tone = color.selectable[$tone];
1709
+ return styledComponents.css`
1710
+ &[role='none'] {
1711
+ & > [role='treeitem'] {
1712
+ ${_visualEditing._cardColorStyle(color, tone.enabled)}
1713
+ }
1714
+
1715
+ &[data-selected] > [role='treeitem'] {
1716
+ ${_visualEditing._cardColorStyle(color, tone.pressed)}
1717
+ }
1718
+
1719
+ @media (hover: hover) {
1720
+ &:not([data-selected]) > [role='treeitem']:not(:focus):hover {
1721
+ ${_visualEditing._cardColorStyle(color, tone.hovered)}
1722
+ }
1723
+
1724
+ & > [role='treeitem']:focus {
1725
+ ${_visualEditing._cardColorStyle(color, tone.selected)}
1726
+ }
1727
+ }
1728
+ }
1729
+
1730
+ &[role='treeitem'] {
1731
+ & > [data-ui='TreeItem__box'] {
1732
+ ${_visualEditing._cardColorStyle(color, tone.enabled)}
1733
+ }
1734
+
1735
+ &[data-selected] > [data-ui='TreeItem__box'] {
1736
+ ${_visualEditing._cardColorStyle(color, tone.pressed)}
1737
+ }
1738
+
1739
+ @media (hover: hover) {
1740
+ &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {
1741
+ ${_visualEditing._cardColorStyle(color, tone.hovered)}
1742
+ }
1743
+
1744
+ &:focus > [data-ui='TreeItem__box'] {
1745
+ ${_visualEditing._cardColorStyle(color, tone.selected)}
1746
+ }
1747
+ }
1748
+ }
1749
+ `;
1750
+ }
1751
+ function treeItemBoxStyle(props) {
1752
+ const {
1753
+ $level
1754
+ } = props, {
1755
+ space
1756
+ } = theme.getTheme_v2(props.theme);
1757
+ return styledComponents.css`
1758
+ padding-left: ${_visualEditing.rem(space[2] * $level)};
1759
+
1760
+ &[data-as='a'] {
1761
+ text-decoration: none;
1762
+ }
1763
+ `;
1764
+ }
1765
+ function useTree() {
1766
+ const tree = react.useContext(TreeContext);
1767
+ if (!tree)
1768
+ throw new Error("Tree: missing context value");
1769
+ return tree;
1770
+ }
1771
+ function TreeGroup(props) {
1772
+ const $ = reactCompilerRuntime.c(9);
1773
+ let children, restProps, t0;
1774
+ $[0] !== props ? ({
1775
+ children,
1776
+ expanded: t0,
1777
+ ...restProps
1778
+ } = props, $[0] = props, $[1] = children, $[2] = restProps, $[3] = t0) : (children = $[1], restProps = $[2], t0 = $[3]);
1779
+ const expanded = t0 === void 0 ? !1 : t0, tree = useTree(), t1 = !expanded;
1780
+ let t2;
1781
+ return $[4] !== children || $[5] !== restProps || $[6] !== t1 || $[7] !== tree.gap ? (t2 = /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Stack, { as: "ul", "data-ui": "TreeGroup", ...restProps, hidden: t1, marginTop: tree.gap, role: "group", gap: tree.gap, children }), $[4] = children, $[5] = restProps, $[6] = t1, $[7] = tree.gap, $[8] = t2) : t2 = $[8], t2;
1782
+ }
1783
+ const StyledTreeItem = /* @__PURE__ */ styledComponents.styled.li.withConfig({
1784
+ displayName: "StyledTreeItem",
1785
+ componentId: "sc-iiskig-0"
1786
+ })(treeItemRootStyle, treeItemRootColorStyle), TreeItemBox = /* @__PURE__ */ styledComponents.styled(_visualEditing.Box).attrs({
1787
+ forwardedAs: "a"
1788
+ }).withConfig({
1789
+ displayName: "TreeItemBox",
1790
+ componentId: "sc-iiskig-1"
1791
+ })(treeItemBoxStyle), ToggleArrowText = styledComponents.styled(_visualEditing.Text).withConfig({
1792
+ displayName: "ToggleArrowText",
1793
+ componentId: "sc-iiskig-2"
1794
+ })`& > svg{transition:transform 100ms;}`;
1795
+ function TreeItem(props) {
1796
+ const $ = reactCompilerRuntime.c(114);
1797
+ let IconComponent, children, gap, href, idProp, linkAs, muted, onClick, restProps, t0, t1, t2, t3, t4, text, weight;
1798
+ $[0] !== props ? ({
1799
+ children,
1800
+ expanded: t0,
1801
+ fontSize: t1,
1802
+ href,
1803
+ icon: IconComponent,
1804
+ id: idProp,
1805
+ linkAs,
1806
+ muted,
1807
+ onClick,
1808
+ padding: t2,
1809
+ selected: t3,
1810
+ gap,
1811
+ space: t4,
1812
+ text,
1813
+ weight,
1814
+ ...restProps
1815
+ } = props, $[0] = props, $[1] = IconComponent, $[2] = children, $[3] = gap, $[4] = href, $[5] = idProp, $[6] = linkAs, $[7] = muted, $[8] = onClick, $[9] = restProps, $[10] = t0, $[11] = t1, $[12] = t2, $[13] = t3, $[14] = t4, $[15] = text, $[16] = weight) : (IconComponent = $[1], children = $[2], gap = $[3], href = $[4], idProp = $[5], linkAs = $[6], muted = $[7], onClick = $[8], restProps = $[9], t0 = $[10], t1 = $[11], t2 = $[12], t3 = $[13], t4 = $[14], text = $[15], weight = $[16]);
1816
+ const expandedProp = t0 === void 0 ? !1 : t0, fontSize = t1 === void 0 ? 1 : t1, padding = t2 === void 0 ? 2 : t2, selected = t3 === void 0 ? !1 : t3, spacing = gap === void 0 ? t4 === void 0 ? 2 : t4 : gap, [rootElement, _setRootElement] = react.useState(null);
1817
+ let t5;
1818
+ $[17] === Symbol.for("react.memo_cache_sentinel") ? (t5 = (node) => {
1819
+ react.startTransition(() => _setRootElement(node));
1820
+ }, $[17] = t5) : t5 = $[17];
1821
+ const setRootElement = t5, treeitemRef = react.useRef(null), tree = useTree(), {
1822
+ path,
1823
+ registerItem,
1824
+ setExpanded,
1825
+ setFocusedElement
1826
+ } = tree, _id = react.useId(), id = idProp || _id;
1827
+ let t6, t7;
1828
+ if ($[18] !== id || $[19] !== path) {
1829
+ const itemPath = path.concat([id || ""]);
1830
+ t6 = itemPath, t7 = itemPath.join("/"), $[18] = id, $[19] = path, $[20] = t6, $[21] = t7;
1831
+ } else
1832
+ t6 = $[20], t7 = $[21];
1833
+ let t8;
1834
+ $[22] !== t6 || $[23] !== t7 ? (t8 = [t6, t7], $[22] = t6, $[23] = t7, $[24] = t8) : t8 = $[24];
1835
+ const [itemPath_0, itemKey] = t8, itemState = tree.state[itemKey], focused = tree.focusedElement === rootElement, expanded = itemState?.expanded === void 0 ? expandedProp : itemState?.expanded || !1, tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1, t9 = tree.level + 1;
1836
+ let t10;
1837
+ $[25] !== itemPath_0 || $[26] !== t9 || $[27] !== tree ? (t10 = {
1838
+ ...tree,
1839
+ level: t9,
1840
+ path: itemPath_0
1841
+ }, $[25] = itemPath_0, $[26] = t9, $[27] = tree, $[28] = t10) : t10 = $[28];
1842
+ const contextValue = t10;
1843
+ let t11;
1844
+ $[29] !== expanded || $[30] !== itemKey || $[31] !== onClick || $[32] !== rootElement || $[33] !== setExpanded || $[34] !== setFocusedElement ? (t11 = (event) => {
1845
+ onClick && onClick(event);
1846
+ const target = event.target;
1847
+ target instanceof HTMLElement && (target.getAttribute("data-ui") === "TreeItem" || target.closest('[data-ui="TreeItem__box"]')) && (event.stopPropagation(), setExpanded(itemKey, !expanded), setFocusedElement(rootElement));
1848
+ }, $[29] = expanded, $[30] = itemKey, $[31] = onClick, $[32] = rootElement, $[33] = setExpanded, $[34] = setFocusedElement, $[35] = t11) : t11 = $[35];
1849
+ const handleClick = t11;
1850
+ let t12;
1851
+ $[36] !== focused || $[37] !== rootElement ? (t12 = (event_0) => {
1852
+ focused && event_0.key === "Enter" && (treeitemRef.current || rootElement)?.click();
1853
+ }, $[36] = focused, $[37] = rootElement, $[38] = t12) : t12 = $[38];
1854
+ const handleKeyDown = t12;
1855
+ let t13, t14;
1856
+ $[39] !== expanded || $[40] !== itemKey || $[41] !== registerItem || $[42] !== rootElement || $[43] !== selected ? (t13 = () => {
1857
+ if (rootElement)
1858
+ return registerItem(rootElement, itemKey, expanded, selected);
1859
+ }, t14 = [expanded, itemKey, registerItem, rootElement, selected], $[39] = expanded, $[40] = itemKey, $[41] = registerItem, $[42] = rootElement, $[43] = selected, $[44] = t13, $[45] = t14) : (t13 = $[44], t14 = $[45]), react.useEffect(t13, t14);
1860
+ const t15 = IconComponent || children ? "visible" : "hidden";
1861
+ let t16;
1862
+ $[46] !== t15 ? (t16 = {
1863
+ visibility: t15,
1864
+ pointerEvents: "none"
1865
+ }, $[46] = t15, $[47] = t16) : t16 = $[47];
1866
+ let t17;
1867
+ $[48] !== IconComponent || $[49] !== fontSize || $[50] !== muted || $[51] !== weight ? (t17 = IconComponent && /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Text, { muted, size: fontSize, weight, children: /* @__PURE__ */ jsxRuntime.jsx(IconComponent, {}) }), $[48] = IconComponent, $[49] = fontSize, $[50] = muted, $[51] = weight, $[52] = t17) : t17 = $[52];
1868
+ let t18;
1869
+ $[53] !== IconComponent || $[54] !== expanded || $[55] !== fontSize || $[56] !== muted || $[57] !== weight ? (t18 = !IconComponent && /* @__PURE__ */ jsxRuntime.jsx(ToggleArrowText, { muted, size: fontSize, weight, children: /* @__PURE__ */ jsxRuntime.jsx(icons.ToggleArrowRightIcon, { style: {
1870
+ transform: expanded ? "rotate(90deg)" : void 0
1871
+ } }) }), $[53] = IconComponent, $[54] = expanded, $[55] = fontSize, $[56] = muted, $[57] = weight, $[58] = t18) : t18 = $[58];
1872
+ let t19;
1873
+ $[59] !== spacing || $[60] !== t16 || $[61] !== t17 || $[62] !== t18 ? (t19 = /* @__PURE__ */ jsxRuntime.jsxs(_visualEditing.Box, { marginRight: spacing, style: t16, children: [
1874
+ t17,
1875
+ t18
1876
+ ] }), $[59] = spacing, $[60] = t16, $[61] = t17, $[62] = t18, $[63] = t19) : t19 = $[63];
1877
+ let t20;
1878
+ $[64] !== fontSize || $[65] !== muted || $[66] !== text || $[67] !== weight ? (t20 = /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Box, { flex: 1, children: /* @__PURE__ */ jsxRuntime.jsx(_visualEditing.Text, { muted, size: fontSize, textOverflow: "ellipsis", weight, children: text }) }), $[64] = fontSize, $[65] = muted, $[66] = text, $[67] = weight, $[68] = t20) : t20 = $[68];
1879
+ let t21;
1880
+ $[69] !== padding || $[70] !== t19 || $[71] !== t20 ? (t21 = /* @__PURE__ */ jsxRuntime.jsxs(_visualEditing.Flex, { padding, children: [
1881
+ t19,
1882
+ t20
1883
+ ] }), $[69] = padding, $[70] = t19, $[71] = t20, $[72] = t21) : t21 = $[72];
1884
+ const content2 = t21;
1885
+ if (href) {
1886
+ const t222 = selected ? "" : void 0;
1887
+ let t232;
1888
+ $[73] !== content2 || $[74] !== expanded || $[75] !== href || $[76] !== linkAs || $[77] !== tabIndex || $[78] !== tree.level ? (t232 = /* @__PURE__ */ jsxRuntime.jsx(TreeItemBox, { $level: tree.level, "aria-expanded": expanded, as: linkAs, "data-ui": "TreeItem__box", href, ref: treeitemRef, role: "treeitem", tabIndex, children: content2 }), $[73] = content2, $[74] = expanded, $[75] = href, $[76] = linkAs, $[77] = tabIndex, $[78] = tree.level, $[79] = t232) : t232 = $[79];
1889
+ let t242;
1890
+ $[80] !== children || $[81] !== expanded ? (t242 = children && /* @__PURE__ */ jsxRuntime.jsx(TreeGroup, { hidden: !expanded, children }), $[80] = children, $[81] = expanded, $[82] = t242) : t242 = $[82];
1891
+ let t252;
1892
+ $[83] !== contextValue || $[84] !== t242 ? (t252 = /* @__PURE__ */ jsxRuntime.jsx(TreeContext.Provider, { value: contextValue, children: t242 }), $[83] = contextValue, $[84] = t242, $[85] = t252) : t252 = $[85];
1893
+ let t262;
1894
+ return $[86] !== handleClick || $[87] !== id || $[88] !== itemKey || $[89] !== restProps || $[90] !== t222 || $[91] !== t232 || $[92] !== t252 ? (t262 = /* @__PURE__ */ jsxRuntime.jsxs(StyledTreeItem, { "data-selected": t222, "data-tree-id": id, "data-tree-key": itemKey, "data-ui": "TreeItem", ...restProps, onClick: handleClick, ref: setRootElement, role: "none", children: [
1895
+ t232,
1896
+ t252
1897
+ ] }), $[86] = handleClick, $[87] = id, $[88] = itemKey, $[89] = restProps, $[90] = t222, $[91] = t232, $[92] = t252, $[93] = t262) : t262 = $[93], t262;
1898
+ }
1899
+ const t22 = selected ? "" : void 0;
1900
+ let t23;
1901
+ $[94] !== content2 || $[95] !== tree.level ? (t23 = /* @__PURE__ */ jsxRuntime.jsx(TreeItemBox, { $level: tree.level, as: "div", "data-ui": "TreeItem__box", children: content2 }), $[94] = content2, $[95] = tree.level, $[96] = t23) : t23 = $[96];
1902
+ let t24;
1903
+ $[97] !== children || $[98] !== expanded ? (t24 = children && /* @__PURE__ */ jsxRuntime.jsx(TreeGroup, { expanded, children }), $[97] = children, $[98] = expanded, $[99] = t24) : t24 = $[99];
1904
+ let t25;
1905
+ $[100] !== contextValue || $[101] !== t24 ? (t25 = /* @__PURE__ */ jsxRuntime.jsx(TreeContext.Provider, { value: contextValue, children: t24 }), $[100] = contextValue, $[101] = t24, $[102] = t25) : t25 = $[102];
1906
+ let t26;
1907
+ return $[103] !== expanded || $[104] !== handleClick || $[105] !== handleKeyDown || $[106] !== id || $[107] !== itemKey || $[108] !== restProps || $[109] !== t22 || $[110] !== t23 || $[111] !== t25 || $[112] !== tabIndex ? (t26 = /* @__PURE__ */ jsxRuntime.jsxs(StyledTreeItem, { "data-selected": t22, "data-ui": "TreeItem", "data-tree-id": id, "data-tree-key": itemKey, ...restProps, "aria-expanded": expanded, onClick: handleClick, onKeyDown: handleKeyDown, ref: setRootElement, role: "treeitem", tabIndex, children: [
1908
+ t23,
1909
+ t25
1910
+ ] }), $[103] = expanded, $[104] = handleClick, $[105] = handleKeyDown, $[106] = id, $[107] = itemKey, $[108] = restProps, $[109] = t22, $[110] = t23, $[111] = t25, $[112] = tabIndex, $[113] = t26) : t26 = $[113], t26;
1911
+ }
1912
+ TreeItem.displayName = "TreeItem";
1913
+ exports.Arrow = _visualEditing.Arrow;
1914
+ exports.Avatar = _visualEditing.Avatar;
1915
+ exports.AvatarCounter = _visualEditing.AvatarCounter;
1916
+ exports.AvatarStack = _visualEditing.AvatarStack;
1917
+ exports.Badge = _visualEditing.Badge;
1918
+ exports.BoundaryElementProvider = _visualEditing.BoundaryElementProvider;
1919
+ exports.Box = _visualEditing.Box;
1920
+ exports.Button = _visualEditing.Button;
1921
+ exports.Card = _visualEditing.Card;
1922
+ exports.Checkbox = _visualEditing.Checkbox;
1923
+ exports.Code = _visualEditing.Code;
1924
+ exports.ConditionalWrapper = _visualEditing.ConditionalWrapper;
1925
+ exports.Container = _visualEditing.Container;
1926
+ exports.ElementQuery = _visualEditing.ElementQuery;
1927
+ exports.Flex = _visualEditing.Flex;
1928
+ exports.Grid = _visualEditing.Grid;
1929
+ exports.Heading = _visualEditing.Heading;
1930
+ exports.Hotkeys = _visualEditing.Hotkeys;
1931
+ exports.Inline = _visualEditing.Inline;
1932
+ exports.KBD = _visualEditing.KBD;
1933
+ exports.Label = _visualEditing.Label;
1934
+ exports.Layer = _visualEditing.Layer;
1935
+ exports.LayerProvider = _visualEditing.LayerProvider;
1936
+ exports.Menu = _visualEditing.Menu;
1937
+ exports.MenuDivider = _visualEditing.MenuDivider;
1938
+ exports.MenuGroup = _visualEditing.MenuGroup;
1939
+ exports.MenuItem = _visualEditing.MenuItem;
1940
+ exports.Popover = _visualEditing.Popover;
1941
+ exports.Portal = _visualEditing.Portal;
1942
+ exports.PortalProvider = _visualEditing.PortalProvider;
1943
+ exports.Radio = _visualEditing.Radio;
1944
+ exports.Select = _visualEditing.Select;
1945
+ exports.Spinner = _visualEditing.Spinner;
1946
+ exports.SrOnly = _visualEditing.SrOnly;
1947
+ exports.Stack = _visualEditing.Stack;
1948
+ exports.Switch = _visualEditing.Switch;
1949
+ exports.Tab = _visualEditing.Tab;
1950
+ exports.TabList = _visualEditing.TabList;
1951
+ exports.Text = _visualEditing.Text;
1952
+ exports.TextArea = _visualEditing.TextArea;
1953
+ exports.TextInput = _visualEditing.TextInput;
1954
+ exports.ThemeColorProvider = _visualEditing.ThemeColorProvider;
1955
+ exports.ThemeProvider = _visualEditing.ThemeProvider;
1956
+ exports.Tooltip = _visualEditing.Tooltip;
1957
+ exports.TooltipDelayGroupContext = _visualEditing.TooltipDelayGroupContext;
1958
+ exports.TooltipDelayGroupProvider = _visualEditing.TooltipDelayGroupProvider;
1959
+ exports.VirtualList = _visualEditing.VirtualList;
1960
+ exports._ResizeObserver = _visualEditing._ResizeObserver;
1961
+ exports._elementSizeObserver = _visualEditing._elementSizeObserver;
1962
+ exports._fillCSSObject = _visualEditing._fillCSSObject;
1963
+ exports._getArrayProp = _visualEditing._getArrayProp;
1964
+ exports._getResponsiveSpace = _visualEditing._getResponsiveSpace;
1965
+ exports._isEnterToClickElement = _visualEditing._isEnterToClickElement;
1966
+ exports._isScrollable = _visualEditing._isScrollable;
1967
+ exports._responsive = _visualEditing._responsive;
1968
+ exports.containsOrEqualsElement = _visualEditing.containsOrEqualsElement;
1969
+ exports.createColorTheme = _visualEditing.createColorTheme;
1970
+ exports.hexToRgb = _visualEditing.hexToRgb;
1971
+ exports.hslToRgb = _visualEditing.hslToRgb;
1972
+ exports.isHTMLAnchorElement = _visualEditing.isHTMLAnchorElement;
1973
+ exports.isHTMLButtonElement = _visualEditing.isHTMLButtonElement;
1974
+ exports.isHTMLElement = _visualEditing.isHTMLElement;
1975
+ exports.isHTMLInputElement = _visualEditing.isHTMLInputElement;
1976
+ exports.isHTMLSelectElement = _visualEditing.isHTMLSelectElement;
1977
+ exports.isHTMLTextAreaElement = _visualEditing.isHTMLTextAreaElement;
1978
+ exports.multiply = _visualEditing.multiply;
1979
+ exports.parseColor = _visualEditing.parseColor;
1980
+ exports.rem = _visualEditing.rem;
1981
+ exports.responsiveCodeFontStyle = _visualEditing.responsiveCodeFontStyle;
1982
+ exports.responsiveHeadingFont = _visualEditing.responsiveHeadingFont;
1983
+ exports.responsiveLabelFont = _visualEditing.responsiveLabelFont;
1984
+ exports.responsiveTextAlignStyle = _visualEditing.responsiveTextAlignStyle;
1985
+ exports.responsiveTextFont = _visualEditing.responsiveTextFont;
1986
+ exports.rgbToHex = _visualEditing.rgbToHex;
1987
+ exports.rgbToHsl = _visualEditing.rgbToHsl;
1988
+ exports.rgba = _visualEditing.rgba;
1989
+ exports.screen = _visualEditing.screen;
1990
+ exports.studioTheme = _visualEditing.studioTheme;
1991
+ exports.useBoundaryElement = _visualEditing.useBoundaryElement;
1992
+ exports.useClickOutsideEvent = _visualEditing.useClickOutsideEvent;
1993
+ exports.useCustomValidity = _visualEditing.useCustomValidity;
1994
+ exports.useElementSize = _visualEditing.useElementSize;
1995
+ exports.useGlobalKeyDown = _visualEditing.useGlobalKeyDown;
1996
+ exports.useLayer = _visualEditing.useLayer;
1997
+ exports.useMatchMedia = _visualEditing.useMatchMedia;
1998
+ exports.useMediaIndex = _visualEditing.useMediaIndex;
1999
+ exports.usePortal = _visualEditing.usePortal;
2000
+ exports.usePrefersDark = _visualEditing.usePrefersDark;
2001
+ exports.usePrefersReducedMotion = _visualEditing.usePrefersReducedMotion;
2002
+ exports.useRootTheme = _visualEditing.useRootTheme;
2003
+ exports.useTheme = _visualEditing.useTheme;
2004
+ exports.useTheme_v2 = _visualEditing.useTheme_v2;
2005
+ exports.useTooltipDelayGroup = _visualEditing.useTooltipDelayGroup;
2006
+ exports.Autocomplete = Autocomplete;
2007
+ exports.Breadcrumbs = Breadcrumbs;
2008
+ exports.CodeSkeleton = CodeSkeleton;
2009
+ exports.Dialog = Dialog;
2010
+ exports.DialogContext = DialogContext;
2011
+ exports.DialogProvider = DialogProvider;
2012
+ exports.ErrorBoundary = ErrorBoundary;
2013
+ exports.HeadingSkeleton = HeadingSkeleton;
2014
+ exports.LabelSkeleton = LabelSkeleton;
2015
+ exports.MenuButton = MenuButton;
2016
+ exports.Skeleton = Skeleton;
2017
+ exports.TabPanel = TabPanel;
2018
+ exports.TextSkeleton = TextSkeleton;
2019
+ exports.Toast = Toast;
2020
+ exports.ToastProvider = ToastProvider;
2021
+ exports.Tree = Tree;
2022
+ exports.TreeItem = TreeItem;
2023
+ exports._hasFocus = _hasFocus;
2024
+ exports._raf = _raf;
2025
+ exports._raf2 = _raf2;
2026
+ exports.attemptFocus = attemptFocus;
2027
+ exports.focusFirstDescendant = focusFirstDescendant;
2028
+ exports.focusLastDescendant = focusLastDescendant;
2029
+ exports.isFocusable = isFocusable;
2030
+ exports.useArrayProp = useArrayProp;
2031
+ exports.useClickOutside = useClickOutside;
2032
+ exports.useDialog = useDialog;
2033
+ exports.useElementRect = useElementRect;
2034
+ exports.useForwardedRef = useForwardedRef;
2035
+ exports.useToast = useToast;
2036
+ exports.useTree = useTree;