@likec4/diagram 1.34.2 → 1.36.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 (404) hide show
  1. package/bundle/{chunk-Dd7et66b.js → chunk-7MPUJFHj.js} +1102 -1172
  2. package/bundle/custom.js +59 -55
  3. package/bundle/index.js +8918 -5681
  4. package/dist/LikeC4Diagram.js +6 -6
  5. package/dist/LikeC4Diagram.props.d.ts +53 -7
  6. package/dist/LikeC4ModelProvider.d.ts +4 -4
  7. package/dist/LikeC4ProjectsProvider.d.ts +17 -0
  8. package/dist/LikeC4ProjectsProvider.js +22 -0
  9. package/dist/LikeC4Styles.d.ts +1 -0
  10. package/dist/LikeC4Styles.js +94 -0
  11. package/dist/StaticLikeC4Diagram.d.ts +3 -3
  12. package/dist/base/BaseXYFlow.d.ts +2 -2
  13. package/dist/base/BaseXYFlow.js +26 -29
  14. package/dist/base/primitives/MarkdownBlock.d.ts +7 -1
  15. package/dist/base/primitives/MarkdownBlock.js +1 -1
  16. package/dist/base/primitives/compound/CompoundActionButton.js +3 -3
  17. package/dist/base/primitives/compound/CompoundDetailsButton.js +3 -3
  18. package/dist/base/primitives/compound/CompoundNodeContainer.css.js +4 -4
  19. package/dist/base/primitives/compound/CompoundNodeContainer.js +1 -4
  20. package/dist/base/primitives/compound/CompoundTitle.js +9 -8
  21. package/dist/base/primitives/compound/actionbtns.css.js +6 -6
  22. package/dist/base/primitives/edge/EdgeActionButton.js +3 -3
  23. package/dist/base/primitives/edge/EdgeContainer.js +4 -7
  24. package/dist/base/primitives/edge/EdgeLabel.css.d.ts +0 -22
  25. package/dist/base/primitives/edge/EdgeLabel.css.js +6 -84
  26. package/dist/base/primitives/edge/EdgeLabel.js +16 -6
  27. package/dist/base/primitives/edge/EdgeLabelContainer.js +1 -6
  28. package/dist/base/primitives/edge/EdgeMarkers.js +3 -3
  29. package/dist/base/primitives/edge/edge.css.d.ts +0 -2
  30. package/dist/base/primitives/edge/edge.css.js +1 -55
  31. package/dist/base/primitives/element/ElementActionButtons.js +2 -2
  32. package/dist/base/primitives/element/ElementDetailsButton.js +9 -8
  33. package/dist/base/primitives/element/ElementNodeContainer.css.js +4 -4
  34. package/dist/base/primitives/element/ElementNodeContainer.d.ts +3 -3
  35. package/dist/base/primitives/element/ElementNodeContainer.js +1 -4
  36. package/dist/base/primitives/element/ElementShape.css.js +11 -11
  37. package/dist/base/primitives/element/ElementTags.d.ts +1 -0
  38. package/dist/base/primitives/element/ElementTags.js +17 -14
  39. package/dist/base/primitives/element/ElementTitle.js +9 -9
  40. package/dist/bundle/LikeC4View.d.ts +1 -1
  41. package/dist/bundle/LikeC4View.js +10 -4
  42. package/dist/bundle/LikeC4View.props.d.ts +9 -6
  43. package/dist/bundle/ReactLikeC4.d.ts +1 -1
  44. package/dist/bundle/ViewNotFound.js +1 -1
  45. package/dist/bundle/custom.js +1 -0
  46. package/dist/bundle/index.d.ts +2 -1
  47. package/dist/bundle/index.js +2 -0
  48. package/dist/bundle/styles.css.js +1 -1
  49. package/dist/components/ErrorFallback.d.ts +2 -1
  50. package/dist/components/ErrorFallback.js +16 -3
  51. package/dist/components/GithubIcon.d.ts +2 -0
  52. package/dist/components/GithubIcon.js +17 -0
  53. package/dist/components/Link.d.ts +4 -3
  54. package/dist/components/Link.js +86 -89
  55. package/dist/components/NavigationLink.d.ts +6 -0
  56. package/dist/components/NavigationLink.js +25 -0
  57. package/dist/components/SearchControl.css.js +6 -5
  58. package/dist/components/SearchControl.js +1 -1
  59. package/dist/context/ControlsCustomLayout.d.ts +0 -1
  60. package/dist/context/DiagramEventHandlers.d.ts +6 -6
  61. package/dist/context/DiagramEventHandlers.js +4 -7
  62. package/dist/context/DiagramFeatures.d.ts +4 -1
  63. package/dist/context/IconRenderer.js +6 -6
  64. package/dist/custom/customNodes.js +10 -2
  65. package/dist/custom/hooks.d.ts +1 -0
  66. package/dist/custom/index.js +1 -0
  67. package/dist/globals.css.js +3 -0
  68. package/dist/hooks/useDiagram.d.ts +1 -2
  69. package/dist/hooks/useDiagram.js +1 -5
  70. package/dist/hooks/useXYFlow.d.ts +10 -10
  71. package/dist/index.d.ts +1 -0
  72. package/dist/index.js +2 -0
  73. package/dist/likec4diagram/DiagramUI.js +8 -4
  74. package/dist/likec4diagram/DiagramXYFlow.js +1 -1
  75. package/dist/likec4diagram/custom/edges/NotePopover.css.js +2 -2
  76. package/dist/likec4diagram/custom/edges/RelationshipEdge.d.ts +2 -2
  77. package/dist/likec4diagram/custom/edges/RelationshipEdge.js +1 -1
  78. package/dist/likec4diagram/custom/edges/RelationshipsDropdownMenu.css.js +7 -7
  79. package/dist/likec4diagram/custom/edges/RelationshipsDropdownMenu.js +7 -7
  80. package/dist/likec4diagram/custom/edges/edges.css.js +4 -4
  81. package/dist/likec4diagram/custom/index.d.ts +2 -2
  82. package/dist/likec4diagram/custom/nodes/ElementActions.js +2 -2
  83. package/dist/likec4diagram/custom/nodes/toolbar/CompoundToolbar.js +2 -2
  84. package/dist/likec4diagram/custom/nodes/toolbar/ElementToolbar.js +2 -2
  85. package/dist/likec4diagram/custom/nodes/toolbar/_shared.js +2 -2
  86. package/dist/likec4diagram/ui/controls/ChangeAutoLayoutButton.js +1 -1
  87. package/dist/likec4diagram/ui/controls/Controls.js +11 -15
  88. package/dist/likec4diagram/ui/controls/LayoutDriftNotification.js +1 -1
  89. package/dist/likec4diagram/ui/controls/ManualLayoutToolsButton.js +9 -9
  90. package/dist/likec4diagram/ui/controls/NavigationButtons.js +4 -2
  91. package/dist/likec4diagram/ui/controls/ToggleReadonly.js +2 -2
  92. package/dist/likec4diagram/ui/controls/styles.css.js +5 -5
  93. package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.js +15 -13
  94. package/dist/likec4diagram/ui/notation/NotationPanel.css.js +11 -11
  95. package/dist/likec4diagram/ui/notation/NotationPanel.js +5 -8
  96. package/dist/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.css.js +10 -10
  97. package/dist/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.js +4 -4
  98. package/dist/likec4model/LikeC4ModelContext.d.ts +4 -1
  99. package/dist/likec4model/LikeC4ModelContext.js +2 -1
  100. package/dist/likec4model/LikeC4ProjectsContext.d.ts +7 -0
  101. package/dist/likec4model/LikeC4ProjectsContext.js +5 -0
  102. package/dist/likec4model/index.d.ts +2 -0
  103. package/dist/likec4model/useCurrentViewModel.d.ts +2 -0
  104. package/dist/likec4model/useCurrentViewModel.js +12 -0
  105. package/dist/likec4model/useLikeC4Model.d.ts +2 -5
  106. package/dist/likec4model/useLikeC4Model.js +10 -16
  107. package/dist/likec4model/useLikeC4Project.d.ts +22 -0
  108. package/dist/likec4model/useLikeC4Project.js +23 -0
  109. package/dist/navigationpanel/NavigationPanel.d.ts +2 -0
  110. package/dist/navigationpanel/NavigationPanel.js +122 -0
  111. package/dist/navigationpanel/NavigationPanelControls.d.ts +1 -0
  112. package/dist/navigationpanel/NavigationPanelControls.js +147 -0
  113. package/dist/navigationpanel/NavigationPanelDropdown.d.ts +1 -0
  114. package/dist/navigationpanel/NavigationPanelDropdown.js +452 -0
  115. package/dist/navigationpanel/_common.d.ts +15 -0
  116. package/dist/navigationpanel/_common.js +72 -0
  117. package/dist/navigationpanel/actor.d.ts +296 -0
  118. package/dist/navigationpanel/actor.js +239 -0
  119. package/dist/navigationpanel/controls/BurgerButton.d.ts +1 -0
  120. package/dist/navigationpanel/controls/BurgerButton.js +34 -0
  121. package/dist/navigationpanel/controls/NavigationButtons.d.ts +1 -0
  122. package/dist/navigationpanel/controls/NavigationButtons.js +57 -0
  123. package/dist/navigationpanel/controls/OpenSource.d.ts +1 -0
  124. package/dist/navigationpanel/controls/OpenSource.js +27 -0
  125. package/dist/navigationpanel/controls/SearchControl.d.ts +1 -0
  126. package/dist/navigationpanel/controls/SearchControl.js +70 -0
  127. package/dist/navigationpanel/controls/ToggleReadonly.d.ts +1 -0
  128. package/dist/navigationpanel/controls/ToggleReadonly.js +69 -0
  129. package/dist/navigationpanel/controls/ViewDetailsCard.d.ts +2 -0
  130. package/dist/navigationpanel/controls/ViewDetailsCard.js +232 -0
  131. package/dist/navigationpanel/controls/index.d.ts +6 -0
  132. package/dist/navigationpanel/dropdown/ProjectsMenu.d.ts +2 -0
  133. package/dist/navigationpanel/dropdown/ProjectsMenu.js +75 -0
  134. package/dist/navigationpanel/editorpanel/CenterCamera.d.ts +1 -0
  135. package/dist/navigationpanel/editorpanel/CenterCamera.js +12 -0
  136. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.d.ts +1 -0
  137. package/dist/navigationpanel/editorpanel/ChangeAutoLayoutButton.js +157 -0
  138. package/dist/navigationpanel/editorpanel/EditorPanel.d.ts +1 -0
  139. package/dist/navigationpanel/editorpanel/EditorPanel.js +48 -0
  140. package/dist/navigationpanel/editorpanel/LayoutDriftNotification.d.ts +1 -0
  141. package/dist/navigationpanel/editorpanel/LayoutDriftNotification.js +56 -0
  142. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.d.ts +2 -0
  143. package/dist/navigationpanel/editorpanel/ManualLayoutToolsButton.js +173 -0
  144. package/dist/navigationpanel/editorpanel/_common.d.ts +6 -0
  145. package/dist/navigationpanel/editorpanel/_common.js +14 -0
  146. package/dist/navigationpanel/editorpanel/index.d.ts +1 -0
  147. package/dist/navigationpanel/editorpanel/styles.d.ts +8 -0
  148. package/dist/navigationpanel/editorpanel/styles.js +79 -0
  149. package/dist/navigationpanel/hooks.d.ts +20 -0
  150. package/dist/navigationpanel/hooks.js +38 -0
  151. package/dist/navigationpanel/index.d.ts +1 -0
  152. package/dist/navigationpanel/styles.css.d.ts +16 -0
  153. package/dist/navigationpanel/styles.css.js +30 -0
  154. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.d.ts +2 -0
  155. package/dist/navigationpanel/walkthrough/ActiveWalkthroughControls.js +162 -0
  156. package/dist/navigationpanel/walkthrough/index.d.ts +1 -0
  157. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.31.0_react@19.1.0 → @tabler_icons-react@3.34.1_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/createReactComponent.js +1 -1
  158. package/dist/node_modules/.pnpm/{@tabler_icons-react@3.31.0_react@19.1.0 → @tabler_icons-react@3.34.1_react@19.1.1}/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.js +1 -1
  159. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.js +14 -0
  160. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowDownRight.js +14 -0
  161. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowLeft.js +14 -0
  162. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js +14 -0
  163. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconBrowser.js +14 -0
  164. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.js +14 -0
  165. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.js +14 -0
  166. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.js +14 -0
  167. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.js +14 -0
  168. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js +14 -0
  169. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconCylinder.js +14 -0
  170. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.js +14 -0
  171. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.js +14 -0
  172. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconFileSymlink.js +14 -0
  173. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconFocusCentered.js +14 -0
  174. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconFolderFilled.js +14 -0
  175. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.js +14 -0
  176. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconId.js +14 -0
  177. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.js +14 -0
  178. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignBottom.js +14 -0
  179. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignCenter.js +14 -0
  180. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignLeft.js +14 -0
  181. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignMiddle.js +14 -0
  182. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignRight.js +14 -0
  183. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignTop.js +14 -0
  184. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutBoardSplit.js +14 -0
  185. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutCollage.js +14 -0
  186. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutDashboard.js +14 -0
  187. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLink.js +14 -0
  188. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.js +14 -0
  189. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen2.js +14 -0
  190. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconMenu.js +14 -0
  191. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconMenu2.js +14 -0
  192. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlayFilled.js +14 -0
  193. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipBackFilled.js +14 -0
  194. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipForwardFilled.js +14 -0
  195. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStopFilled.js +14 -0
  196. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconRectangularPrism.js +14 -0
  197. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconReorder.js +14 -0
  198. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconRouteOff.js +14 -0
  199. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js +14 -0
  200. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconSelector.js +14 -0
  201. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconStack2.js +14 -0
  202. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconStarFilled.js +14 -0
  203. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconTarget.js +14 -0
  204. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconTransform.js +14 -0
  205. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.js +14 -0
  206. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconX.js +14 -0
  207. package/dist/node_modules/.pnpm/@tabler_icons-react@3.34.1_react@19.1.1/node_modules/@tabler/icons-react/dist/esm/icons/IconZoomScan.js +14 -0
  208. package/dist/overlays/element-details/ElementDetailsCard.css.js +18 -17
  209. package/dist/overlays/element-details/ElementDetailsCard.js +12 -17
  210. package/dist/overlays/element-details/TabPanelDeployments.css.js +5 -4
  211. package/dist/overlays/element-details/TabPanelDeployments.js +3 -3
  212. package/dist/overlays/element-details/TabPanelRelationships.css.js +7 -7
  213. package/dist/overlays/element-details/TabPanelRelationships.js +3 -3
  214. package/dist/overlays/element-details/TabPanelStructure.js +1 -1
  215. package/dist/overlays/overlay/Overlay.css.d.ts +3 -3
  216. package/dist/overlays/overlay/Overlay.css.js +8 -7
  217. package/dist/overlays/relationship-details/RelationshipDetails.js +3 -3
  218. package/dist/overlays/relationship-details/SelectEdge.css.js +8 -8
  219. package/dist/overlays/relationship-details/SelectEdge.js +2 -2
  220. package/dist/overlays/relationship-details/custom/ElementActions.js +3 -3
  221. package/dist/overlays/relationships-browser/RelationshipsBrowser.js +3 -3
  222. package/dist/overlays/relationships-browser/SelectElement.css.js +1 -1
  223. package/dist/overlays/relationships-browser/SelectElement.js +2 -2
  224. package/dist/overlays/relationships-browser/custom/ElementActions.js +3 -3
  225. package/dist/search/Search.js +6 -6
  226. package/dist/search/components/ElementsColumn.css.js +5 -5
  227. package/dist/search/components/ElementsColumn.js +1 -1
  228. package/dist/search/components/PickView.js +1 -1
  229. package/dist/search/components/SearchByTags.js +4 -3
  230. package/dist/search/components/SearchInput.js +1 -1
  231. package/dist/search/components/ViewsColum.js +3 -3
  232. package/dist/search/components/ViewsColumn.css.js +1 -1
  233. package/dist/search/components/_shared.css.js +3 -3
  234. package/dist/search/components/styles.css.js +5 -5
  235. package/dist/state/DiagramActorProvider.d.ts +2 -2
  236. package/dist/state/DiagramActorProvider.js +82 -25
  237. package/dist/state/diagram-machine.d.ts +31 -249
  238. package/dist/state/diagram-machine.js +16 -16
  239. package/dist/styles-min.css +1 -1
  240. package/dist/styles.css +1 -1
  241. package/dist/styles.css2.js +1 -1
  242. package/package.json +20 -17
  243. package/panda.buildinfo.json +368 -404
  244. package/src/LikeC4Diagram.props.ts +53 -5
  245. package/src/LikeC4Diagram.tsx +2 -2
  246. package/src/LikeC4ModelProvider.tsx +6 -6
  247. package/src/LikeC4ProjectsProvider.tsx +41 -0
  248. package/src/LikeC4Styles.tsx +107 -0
  249. package/src/StaticLikeC4Diagram.tsx +3 -3
  250. package/src/base/BaseXYFlow.tsx +28 -33
  251. package/src/base/primitives/MarkdownBlock.tsx +11 -3
  252. package/src/base/primitives/compound/CompoundActionButton.tsx +2 -2
  253. package/src/base/primitives/compound/CompoundDetailsButton.tsx +2 -2
  254. package/src/base/primitives/compound/CompoundNodeContainer.css.ts +4 -13
  255. package/src/base/primitives/compound/CompoundNodeContainer.tsx +0 -3
  256. package/src/base/primitives/compound/CompoundTitle.tsx +8 -8
  257. package/src/base/primitives/compound/actionbtns.css.ts +6 -6
  258. package/src/base/primitives/edge/EdgeActionButton.tsx +2 -2
  259. package/src/base/primitives/edge/EdgeContainer.tsx +3 -6
  260. package/src/base/primitives/edge/EdgeLabel.css.ts +4 -83
  261. package/src/base/primitives/edge/EdgeLabel.tsx +16 -10
  262. package/src/base/primitives/edge/EdgeLabelContainer.tsx +1 -6
  263. package/src/base/primitives/edge/EdgeMarkers.tsx +3 -3
  264. package/src/base/primitives/edge/edge.css.ts +0 -60
  265. package/src/base/primitives/element/ElementActionButtons.tsx +2 -2
  266. package/src/base/primitives/element/ElementDetailsButton.tsx +7 -7
  267. package/src/base/primitives/element/ElementNodeContainer.css.ts +4 -4
  268. package/src/base/primitives/element/ElementNodeContainer.tsx +2 -5
  269. package/src/base/primitives/element/ElementShape.css.ts +11 -11
  270. package/src/base/primitives/element/ElementTags.tsx +17 -14
  271. package/src/base/primitives/element/ElementTitle.tsx +4 -4
  272. package/src/bundle/LikeC4View.props.ts +15 -6
  273. package/src/bundle/LikeC4View.tsx +12 -5
  274. package/src/bundle/ReactLikeC4.tsx +1 -2
  275. package/src/bundle/ViewNotFound.tsx +1 -1
  276. package/src/bundle/index.ts +2 -1
  277. package/src/bundle/styles.css.ts +1 -1
  278. package/src/components/ErrorFallback.tsx +17 -2
  279. package/src/components/GithubIcon.tsx +16 -0
  280. package/src/components/Link.tsx +102 -113
  281. package/src/components/NavigationLink.tsx +32 -0
  282. package/src/components/SearchControl.css.ts +5 -5
  283. package/src/context/ControlsCustomLayout.ts +0 -1
  284. package/src/context/DiagramEventHandlers.tsx +12 -12
  285. package/src/context/DiagramFeatures.tsx +6 -1
  286. package/src/custom/customNodes.tsx +10 -2
  287. package/src/custom/hooks.ts +3 -0
  288. package/src/globals.css +71 -0
  289. package/src/hooks/useDiagram.ts +0 -8
  290. package/src/index.ts +5 -0
  291. package/src/likec4diagram/DiagramUI.tsx +9 -3
  292. package/src/likec4diagram/DiagramXYFlow.tsx +1 -1
  293. package/src/likec4diagram/custom/edges/NotePopover.css.ts +2 -2
  294. package/src/likec4diagram/custom/edges/RelationshipEdge.tsx +1 -1
  295. package/src/likec4diagram/custom/edges/RelationshipsDropdownMenu.css.ts +7 -7
  296. package/src/likec4diagram/custom/edges/RelationshipsDropdownMenu.tsx +3 -3
  297. package/src/likec4diagram/custom/edges/edges.css.ts +4 -4
  298. package/src/likec4diagram/custom/nodes/toolbar/CompoundToolbar.tsx +2 -2
  299. package/src/likec4diagram/ui/controls/Controls.tsx +8 -18
  300. package/src/likec4diagram/ui/controls/NavigationButtons.tsx +2 -0
  301. package/src/likec4diagram/ui/controls/styles.css.ts +5 -5
  302. package/src/likec4diagram/ui/diagram-title/DiagramTitlePanel.tsx +14 -11
  303. package/src/likec4diagram/ui/notation/NotationPanel.css.ts +11 -11
  304. package/src/likec4diagram/ui/notation/NotationPanel.tsx +1 -4
  305. package/src/likec4diagram/ui/walkthrough/DynamicViewWalkthrough.css.ts +10 -10
  306. package/src/likec4model/LikeC4ModelContext.ts +5 -1
  307. package/src/likec4model/LikeC4ProjectsContext.ts +9 -0
  308. package/src/likec4model/index.ts +11 -0
  309. package/src/likec4model/useCurrentViewModel.ts +10 -0
  310. package/src/likec4model/useLikeC4Model.ts +17 -27
  311. package/src/likec4model/useLikeC4Project.ts +61 -0
  312. package/src/navigationpanel/NavigationPanel.tsx +135 -0
  313. package/src/navigationpanel/NavigationPanelControls.tsx +133 -0
  314. package/src/navigationpanel/NavigationPanelDropdown.tsx +539 -0
  315. package/src/navigationpanel/_common.tsx +84 -0
  316. package/src/navigationpanel/actor.ts +320 -0
  317. package/src/navigationpanel/controls/BurgerButton.tsx +30 -0
  318. package/src/navigationpanel/controls/NavigationButtons.tsx +44 -0
  319. package/src/navigationpanel/controls/OpenSource.tsx +28 -0
  320. package/src/navigationpanel/controls/SearchControl.tsx +66 -0
  321. package/src/navigationpanel/controls/ToggleReadonly.tsx +66 -0
  322. package/src/navigationpanel/controls/ViewDetailsCard.tsx +244 -0
  323. package/src/navigationpanel/controls/index.ts +6 -0
  324. package/src/navigationpanel/dropdown/ProjectsMenu.tsx +74 -0
  325. package/src/navigationpanel/editorpanel/CenterCamera.tsx +15 -0
  326. package/src/navigationpanel/editorpanel/ChangeAutoLayoutButton.tsx +199 -0
  327. package/src/navigationpanel/editorpanel/EditorPanel.tsx +49 -0
  328. package/src/navigationpanel/editorpanel/LayoutDriftNotification.tsx +56 -0
  329. package/src/navigationpanel/editorpanel/ManualLayoutToolsButton.tsx +148 -0
  330. package/src/navigationpanel/editorpanel/_common.tsx +14 -0
  331. package/src/navigationpanel/editorpanel/index.ts +1 -0
  332. package/src/navigationpanel/editorpanel/styles.ts +84 -0
  333. package/src/navigationpanel/hooks.tsx +70 -0
  334. package/src/navigationpanel/index.ts +1 -0
  335. package/src/navigationpanel/styles.css.ts +28 -0
  336. package/src/navigationpanel/walkthrough/ActiveWalkthroughControls.tsx +165 -0
  337. package/src/navigationpanel/walkthrough/index.tsx +1 -0
  338. package/src/overlays/element-details/ElementDetailsCard.css.ts +17 -17
  339. package/src/overlays/element-details/ElementDetailsCard.tsx +8 -13
  340. package/src/overlays/element-details/TabPanelDeployments.css.ts +4 -4
  341. package/src/overlays/element-details/TabPanelRelationships.css.ts +7 -7
  342. package/src/overlays/overlay/Overlay.css.ts +7 -7
  343. package/src/overlays/relationship-details/SelectEdge.css.ts +8 -8
  344. package/src/overlays/relationships-browser/SelectElement.css.ts +1 -1
  345. package/src/search/Search.tsx +6 -6
  346. package/src/search/components/ElementsColumn.css.ts +5 -5
  347. package/src/search/components/SearchByTags.tsx +2 -2
  348. package/src/search/components/ViewsColum.tsx +1 -1
  349. package/src/search/components/ViewsColumn.css.ts +1 -1
  350. package/src/search/components/_shared.css.ts +3 -3
  351. package/src/search/components/styles.css.ts +5 -5
  352. package/src/state/DiagramActorProvider.tsx +104 -31
  353. package/src/state/diagram-machine.ts +24 -18
  354. package/dist/LikeC4CustomColors.d.ts +0 -2
  355. package/dist/LikeC4CustomColors.js +0 -45
  356. package/dist/base/primitives/element/ElementTitle.css.d.ts +0 -34
  357. package/dist/base/primitives/element/ElementTitle.css.js +0 -201
  358. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertTriangle.js +0 -13
  359. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowDownRight.js +0 -13
  360. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowRight.js +0 -13
  361. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconBrowser.js +0 -13
  362. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.js +0 -13
  363. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.js +0 -13
  364. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronRight.js +0 -13
  365. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconCopy.js +0 -13
  366. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconCylinder.js +0 -13
  367. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconDeviceMobile.js +0 -13
  368. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconExternalLink.js +0 -13
  369. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconFileSymlink.js +0 -13
  370. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconFocusCentered.js +0 -13
  371. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconHelpCircle.js +0 -13
  372. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconId.js +0 -13
  373. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.js +0 -13
  374. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignBottom.js +0 -13
  375. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignCenter.js +0 -13
  376. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignLeft.js +0 -13
  377. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignMiddle.js +0 -13
  378. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignRight.js +0 -13
  379. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutAlignTop.js +0 -13
  380. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutBoardSplit.js +0 -13
  381. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutCollage.js +0 -13
  382. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLayoutDashboard.js +0 -13
  383. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLock.js +0 -13
  384. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconLockOpen2.js +0 -13
  385. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconMenu.js +0 -13
  386. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconMenu2.js +0 -13
  387. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerPlayFilled.js +0 -13
  388. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipBackFilled.js +0 -13
  389. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerSkipForwardFilled.js +0 -13
  390. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconPlayerStopFilled.js +0 -13
  391. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconRectangularPrism.js +0 -13
  392. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconReorder.js +0 -13
  393. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconRouteOff.js +0 -13
  394. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.js +0 -13
  395. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconSelector.js +0 -13
  396. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconStack2.js +0 -13
  397. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconTarget.js +0 -13
  398. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconTransform.js +0 -13
  399. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconUser.js +0 -13
  400. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconX.js +0 -13
  401. package/dist/node_modules/.pnpm/@tabler_icons-react@3.31.0_react@19.1.0/node_modules/@tabler/icons-react/dist/esm/icons/IconZoomScan.js +0 -13
  402. package/dist/overlays/relationships-browser/custom/nodeTypes.d.ts +0 -45
  403. package/src/LikeC4CustomColors.tsx +0 -85
  404. package/src/base/primitives/element/ElementTitle.css.ts +0 -206
@@ -193,7 +193,7 @@ function normalizeHTMLProps(props) {
193
193
  return Object.fromEntries(Object.entries(props).map(([key, value]) => [convert(key), value]));
194
194
  }
195
195
  normalizeHTMLProps.keys = htmlProps;
196
- const conditionsStr = "_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_reduceGraphics,_reduceGraphicsOnPan,_noReduceGraphics,_whenPanning,_smallZoom,_compoundTransparent,_edgeActive,_whenHovered,_whenSelected,_whenDimmed,_whenFocused,_shapeSizeXs,_shapeSizeSm,_shapeSizeMd,_shapeSizeLg,_shapeSizeXl,_shapeRectangle,_shapePerson,_shapeBrowser,_shapeMobile,_shapeCylinder,_shapeStorage,_shapeQueue,_p3,_srgb,_rec2020,xs,xsOnly,xsDown,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,xsToSm,xsToMd,xsToLg,xsToXl,smToMd,smToLg,smToXl,mdToLg,mdToXl,lgToXl,base", conditions = new Set(conditionsStr.split(",")), conditionRegex = /^@|&|&$/;
196
+ const conditionsStr = "_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_shapeSizeXs,_shapeSizeSm,_shapeSizeMd,_shapeSizeLg,_shapeSizeXl,_shapeRectangle,_shapePerson,_shapeBrowser,_shapeMobile,_shapeCylinder,_shapeStorage,_shapeQueue,_notDisabled,_reduceGraphics,_reduceGraphicsOnPan,_noReduceGraphics,_whenPanning,_smallZoom,_compoundTransparent,_edgeActive,_whenHovered,_whenSelected,_whenDimmed,_whenFocused,_p3,_srgb,_rec2020,xs,xsOnly,xsDown,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,xsToSm,xsToMd,xsToLg,xsToXl,smToMd,smToLg,smToXl,mdToLg,mdToXl,lgToXl,@/xs,@/sm,@/md,@/lg,@likec4-root/xs,@likec4-root/sm,@likec4-root/md,@likec4-root/lg,@likec4-dialog/xs,@likec4-dialog/sm,@likec4-dialog/md,@likec4-dialog/lg,base", conditions = new Set(conditionsStr.split(",")), conditionRegex = /^@|&|&$/;
197
197
  function isCondition(value) {
198
198
  return conditions.has(value) || conditionRegex.test(value);
199
199
  }
@@ -207,7 +207,7 @@ function sortConditions(paths) {
207
207
  return aa && !bb ? 1 : !aa && bb ? -1 : 0;
208
208
  });
209
209
  }
210
- const utilities = "aspectRatio:asp,boxDecorationBreak:bx-db,zIndex:z,boxSizing:bx-s,objectPosition:obj-p,objectFit:obj-f,overscrollBehavior:ovs-b,overscrollBehaviorX:ovs-bx,overscrollBehaviorY:ovs-by,position:pos/1,top:top,left:left,inset:inset,insetInline:inset-x/insetX,insetBlock:inset-y/insetY,insetBlockEnd:inset-be,insetBlockStart:inset-bs,insetInlineEnd:inset-e/insetEnd/end,insetInlineStart:inset-s/insetStart/start,right:right,bottom:bottom,float:float,visibility:vis,display:d,hideFrom:hide,hideBelow:show,flexBasis:flex-b,flex:flex,flexDirection:flex-d/flexDir,flexGrow:flex-g,flexShrink:flex-sh,gridTemplateColumns:grid-tc,gridTemplateRows:grid-tr,gridColumn:grid-c,gridRow:grid-r,gridColumnStart:grid-cs,gridColumnEnd:grid-ce,gridAutoFlow:grid-af,gridAutoColumns:grid-ac,gridAutoRows:grid-ar,gap:gap,gridGap:grid-g,gridRowGap:grid-rg,gridColumnGap:grid-cg,rowGap:rg,columnGap:cg,justifyContent:jc,alignContent:ac,alignItems:ai,alignSelf:as,padding:p/1,paddingLeft:pl/1,paddingRight:pr/1,paddingTop:pt/1,paddingBottom:pb/1,paddingBlock:py/1/paddingY,paddingBlockEnd:pbe,paddingBlockStart:pbs,paddingInline:px/paddingX/1,paddingInlineEnd:pe/1/paddingEnd,paddingInlineStart:ps/1/paddingStart,marginLeft:ml/1,marginRight:mr/1,marginTop:mt/1,marginBottom:mb/1,margin:m/1,marginBlock:my/1/marginY,marginBlockEnd:mbe,marginBlockStart:mbs,marginInline:mx/1/marginX,marginInlineEnd:me/1/marginEnd,marginInlineStart:ms/1/marginStart,spaceX:sx,spaceY:sy,outlineWidth:ring-w/ringWidth,outlineColor:ring-c/ringColor,outline:ring/1,outlineOffset:ring-o/ringOffset,divideX:dvd-x,divideY:dvd-y,divideColor:dvd-c,divideStyle:dvd-s,width:w/1,inlineSize:w-is,minWidth:min-w/minW,minInlineSize:min-w-is,maxWidth:max-w/maxW,maxInlineSize:max-w-is,height:h/1,blockSize:h-bs,minHeight:min-h/minH,minBlockSize:min-h-bs,maxHeight:max-h/maxH,maxBlockSize:max-b,color:c,fontFamily:ff,fontSize:fs,fontSizeAdjust:fs-a,fontPalette:fp,fontKerning:fk,fontFeatureSettings:ff-s,fontWeight:fw,fontSmoothing:fsmt,fontVariant:fv,fontVariantAlternates:fv-alt,fontVariantCaps:fv-caps,fontVariationSettings:fv-s,fontVariantNumeric:fv-num,letterSpacing:ls,lineHeight:lh,textAlign:ta,textDecoration:td,textDecorationColor:td-c,textEmphasisColor:te-c,textDecorationStyle:td-s,textDecorationThickness:td-t,textUnderlineOffset:tu-o,textTransform:tt,textIndent:ti,textShadow:tsh,textShadowColor:tsh-c/textShadowColor,textOverflow:tov,verticalAlign:va,wordBreak:wb,textWrap:tw,truncate:trunc,lineClamp:lc,listStyleType:li-t,listStylePosition:li-pos,listStyleImage:li-img,listStyle:li-s,backgroundPosition:bg-p/bgPosition,backgroundPositionX:bg-p-x/bgPositionX,backgroundPositionY:bg-p-y/bgPositionY,backgroundAttachment:bg-a/bgAttachment,backgroundClip:bg-cp/bgClip,background:bg/1,backgroundColor:bg-c/bgColor,backgroundOrigin:bg-o/bgOrigin,backgroundImage:bg-i/bgImage,backgroundRepeat:bg-r/bgRepeat,backgroundBlendMode:bg-bm/bgBlendMode,backgroundSize:bg-s/bgSize,backgroundGradient:bg-grad/bgGradient,textGradient:txt-grad,gradientFromPosition:grad-from-pos,gradientToPosition:grad-to-pos,gradientFrom:grad-from,gradientTo:grad-to,gradientVia:grad-via,gradientViaPosition:grad-via-pos,borderRadius:bdr/rounded,borderTopLeftRadius:bdr-tl/roundedTopLeft,borderTopRightRadius:bdr-tr/roundedTopRight,borderBottomRightRadius:bdr-br/roundedBottomRight,borderBottomLeftRadius:bdr-bl/roundedBottomLeft,borderTopRadius:bdr-t/roundedTop,borderRightRadius:bdr-r/roundedRight,borderBottomRadius:bdr-b/roundedBottom,borderLeftRadius:bdr-l/roundedLeft,borderStartStartRadius:bdr-ss/roundedStartStart,borderStartEndRadius:bdr-se/roundedStartEnd,borderStartRadius:bdr-s/roundedStart,borderEndStartRadius:bdr-es/roundedEndStart,borderEndEndRadius:bdr-ee/roundedEndEnd,borderEndRadius:bdr-e/roundedEnd,border:bd,borderWidth:bd-w,borderTopWidth:bd-t-w,borderLeftWidth:bd-l-w,borderRightWidth:bd-r-w,borderBottomWidth:bd-b-w,borderBlockStartWidth:bd-bs-w,borderBlockEndWidth:bd-be-w,borderColor:bd-c,borderInline:bd-x/borderX,borderInlineWidth:bd-x-w/borderXWidth,borderInlineColor:bd-x-c/borderXColor,borderBlock:bd-y/borderY,borderBlockWidth:bd-y-w/borderYWidth,borderBlockColor:bd-y-c/borderYColor,borderLeft:bd-l,borderLeftColor:bd-l-c,borderInlineStart:bd-s/borderStart,borderInlineStartWidth:bd-s-w/borderStartWidth,borderInlineStartColor:bd-s-c/borderStartColor,borderRight:bd-r,borderRightColor:bd-r-c,borderInlineEnd:bd-e/borderEnd,borderInlineEndWidth:bd-e-w/borderEndWidth,borderInlineEndColor:bd-e-c/borderEndColor,borderTop:bd-t,borderTopColor:bd-t-c,borderBottom:bd-b,borderBottomColor:bd-b-c,borderBlockEnd:bd-be,borderBlockEndColor:bd-be-c,borderBlockStart:bd-bs,borderBlockStartColor:bd-bs-c,opacity:op,boxShadow:bx-sh/shadow,boxShadowColor:bx-sh-c/shadowColor,mixBlendMode:mix-bm,filter:filter,brightness:brightness,contrast:contrast,grayscale:grayscale,hueRotate:hue-rotate,invert:invert,saturate:saturate,sepia:sepia,dropShadow:drop-shadow,blur:blur,backdropFilter:bkdp,backdropBlur:bkdp-blur,backdropBrightness:bkdp-brightness,backdropContrast:bkdp-contrast,backdropGrayscale:bkdp-grayscale,backdropHueRotate:bkdp-hue-rotate,backdropInvert:bkdp-invert,backdropOpacity:bkdp-opacity,backdropSaturate:bkdp-saturate,backdropSepia:bkdp-sepia,borderCollapse:bd-cl,borderSpacing:bd-sp,borderSpacingX:bd-sx,borderSpacingY:bd-sy,tableLayout:tbl,transitionTimingFunction:trs-tmf,transitionDelay:trs-dly,transitionDuration:trs-dur,transitionProperty:trs-prop,transition:transition-fast,animation:anim,animationName:anim-n,animationTimingFunction:anim-tmf,animationDuration:anim-dur,animationDelay:anim-dly,animationPlayState:anim-ps,animationComposition:anim-comp,animationFillMode:anim-fm,animationDirection:anim-dir,animationIterationCount:anim-ic,animationRange:anim-r,animationState:anim-s,animationRangeStart:anim-rs,animationRangeEnd:anim-re,animationTimeline:anim-tl,transformOrigin:trf-o,transformBox:trf-b,transformStyle:trf-s,transform:trf,rotate:rotate,rotateX:rotate-x,rotateY:rotate-y,rotateZ:rotate-z,scale:scale,scaleX:scale-x,scaleY:scale-y,translate:translate,translateX:translate-x/x,translateY:translate-y/y,translateZ:translate-z/z,accentColor:ac-c,caretColor:ca-c,scrollBehavior:scr-bhv,scrollbar:scr-bar,scrollbarColor:scr-bar-c,scrollbarGutter:scr-bar-g,scrollbarWidth:scr-bar-w,scrollMargin:scr-m,scrollMarginLeft:scr-ml,scrollMarginRight:scr-mr,scrollMarginTop:scr-mt,scrollMarginBottom:scr-mb,scrollMarginBlock:scr-my/scrollMarginY,scrollMarginBlockEnd:scr-mbe,scrollMarginBlockStart:scr-mbt,scrollMarginInline:scr-mx/scrollMarginX,scrollMarginInlineEnd:scr-me,scrollMarginInlineStart:scr-ms,scrollPadding:scr-p,scrollPaddingBlock:scr-py/scrollPaddingY,scrollPaddingBlockStart:scr-pbs,scrollPaddingBlockEnd:scr-pbe,scrollPaddingInline:scr-px/scrollPaddingX,scrollPaddingInlineEnd:scr-pe,scrollPaddingInlineStart:scr-ps,scrollPaddingLeft:scr-pl,scrollPaddingRight:scr-pr,scrollPaddingTop:scr-pt,scrollPaddingBottom:scr-pb,scrollSnapAlign:scr-sa,scrollSnapStop:scrs-s,scrollSnapType:scrs-t,scrollSnapStrictness:scrs-strt,scrollSnapMargin:scrs-m,scrollSnapMarginTop:scrs-mt,scrollSnapMarginBottom:scrs-mb,scrollSnapMarginLeft:scrs-ml,scrollSnapMarginRight:scrs-mr,scrollSnapCoordinate:scrs-c,scrollSnapDestination:scrs-d,scrollSnapPointsX:scrs-px,scrollSnapPointsY:scrs-py,scrollSnapTypeX:scrs-tx,scrollSnapTypeY:scrs-ty,scrollTimeline:scrtl,scrollTimelineAxis:scrtl-a,scrollTimelineName:scrtl-n,touchAction:tch-a,userSelect:us,overflow:ov,overflowWrap:ov-wrap,overflowX:ov-x,overflowY:ov-y,overflowAnchor:ov-a,overflowBlock:ov-b,overflowInline:ov-i,overflowClipBox:ovcp-bx,overflowClipMargin:ovcp-m,overscrollBehaviorBlock:ovs-bb,overscrollBehaviorInline:ovs-bi,fill:fill,stroke:stk,strokeWidth:stk-w,strokeDasharray:stk-dsh,strokeDashoffset:stk-do,strokeLinecap:stk-lc,strokeLinejoin:stk-lj,strokeMiterlimit:stk-ml,strokeOpacity:stk-op,srOnly:sr,debug:debug,appearance:ap,backfaceVisibility:bfv,clipPath:cp-path,hyphens:hy,mask:msk,maskImage:msk-i,maskSize:msk-s,textSizeAdjust:txt-adj,container:cq,containerName:cq-n,containerType:cq-t,cursor:cursor,likec4Palette:likec4-palette,likec4RelationPalette:likec4-relation-color,textStyle:textStyle,layerStyle:layerStyle,animationStyle:animationStyle", classNameByProp = /* @__PURE__ */ new Map(), shorthands = /* @__PURE__ */ new Map();
210
+ const utilities = "aspectRatio:asp,boxDecorationBreak:bx-db,zIndex:z,boxSizing:bx-s,objectPosition:obj-p,objectFit:obj-f,overscrollBehavior:ovs-b,overscrollBehaviorX:ovs-bx,overscrollBehaviorY:ovs-by,position:pos/1,top:top,left:left,inset:inset,insetInline:inset-x/insetX,insetBlock:inset-y/insetY,insetBlockEnd:inset-be,insetBlockStart:inset-bs,insetInlineEnd:inset-e/insetEnd/end,insetInlineStart:inset-s/insetStart/start,right:right,bottom:bottom,float:float,visibility:vis,display:d,hideFrom:hide,hideBelow:show,flexBasis:flex-b,flex:flex,flexDirection:flex-d/flexDir,flexGrow:flex-g,flexShrink:flex-sh,gridTemplateColumns:grid-tc,gridTemplateRows:grid-tr,gridColumn:grid-c,gridRow:grid-r,gridColumnStart:grid-cs,gridColumnEnd:grid-ce,gridAutoFlow:grid-af,gridAutoColumns:grid-ac,gridAutoRows:grid-ar,gap:gap,gridGap:grid-g,gridRowGap:grid-rg,gridColumnGap:grid-cg,rowGap:rg,columnGap:cg,justifyContent:jc,alignContent:ac,alignItems:ai,alignSelf:as,padding:p/1,paddingLeft:pl/1,paddingRight:pr/1,paddingTop:pt/1,paddingBottom:pb/1,paddingBlock:py/1/paddingY,paddingBlockEnd:pbe,paddingBlockStart:pbs,paddingInline:px/paddingX/1,paddingInlineEnd:pe/1/paddingEnd,paddingInlineStart:ps/1/paddingStart,marginLeft:ml/1,marginRight:mr/1,marginTop:mt/1,marginBottom:mb/1,margin:m/1,marginBlock:my/1/marginY,marginBlockEnd:mbe,marginBlockStart:mbs,marginInline:mx/1/marginX,marginInlineEnd:me/1/marginEnd,marginInlineStart:ms/1/marginStart,spaceX:sx,spaceY:sy,outlineWidth:ring-w/ringWidth,outlineColor:ring-c/ringColor,outline:ring/1,outlineOffset:ring-o/ringOffset,divideX:dvd-x,divideY:dvd-y,divideColor:dvd-c,divideStyle:dvd-s,width:w/1,inlineSize:w-is,minWidth:min-w/minW,minInlineSize:min-w-is,maxWidth:max-w/maxW,maxInlineSize:max-w-is,height:h/1,blockSize:h-bs,minHeight:min-h/minH,minBlockSize:min-h-bs,maxHeight:max-h/maxH,maxBlockSize:max-b,color:c,fontFamily:ff,fontSize:fs,fontSizeAdjust:fs-a,fontPalette:fp,fontKerning:fk,fontFeatureSettings:ff-s,fontWeight:fw,fontSmoothing:fsmt,fontVariant:fv,fontVariantAlternates:fv-alt,fontVariantCaps:fv-caps,fontVariationSettings:fv-s,fontVariantNumeric:fv-num,letterSpacing:ls,lineHeight:lh,textAlign:ta,textDecoration:td,textDecorationColor:td-c,textEmphasisColor:te-c,textDecorationStyle:td-s,textDecorationThickness:td-t,textUnderlineOffset:tu-o,textTransform:tt,textIndent:ti,textShadow:tsh,textShadowColor:tsh-c/textShadowColor,textOverflow:tov,verticalAlign:va,wordBreak:wb,textWrap:tw,truncate:trunc,lineClamp:lc,listStyleType:li-t,listStylePosition:li-pos,listStyleImage:li-img,listStyle:li-s,backgroundPosition:bg-p/bgPosition,backgroundPositionX:bg-p-x/bgPositionX,backgroundPositionY:bg-p-y/bgPositionY,backgroundAttachment:bg-a/bgAttachment,backgroundClip:bg-cp/bgClip,background:bg/1,backgroundColor:bg-c/bgColor,backgroundOrigin:bg-o/bgOrigin,backgroundImage:bg-i/bgImage,backgroundRepeat:bg-r/bgRepeat,backgroundBlendMode:bg-bm/bgBlendMode,backgroundSize:bg-s/bgSize,backgroundGradient:bg-grad/bgGradient,textGradient:txt-grad,gradientFromPosition:grad-from-pos,gradientToPosition:grad-to-pos,gradientFrom:grad-from,gradientTo:grad-to,gradientVia:grad-via,gradientViaPosition:grad-via-pos,borderRadius:bdr/rounded,borderTopLeftRadius:bdr-tl/roundedTopLeft,borderTopRightRadius:bdr-tr/roundedTopRight,borderBottomRightRadius:bdr-br/roundedBottomRight,borderBottomLeftRadius:bdr-bl/roundedBottomLeft,borderTopRadius:bdr-t/roundedTop,borderRightRadius:bdr-r/roundedRight,borderBottomRadius:bdr-b/roundedBottom,borderLeftRadius:bdr-l/roundedLeft,borderStartStartRadius:bdr-ss/roundedStartStart,borderStartEndRadius:bdr-se/roundedStartEnd,borderStartRadius:bdr-s/roundedStart,borderEndStartRadius:bdr-es/roundedEndStart,borderEndEndRadius:bdr-ee/roundedEndEnd,borderEndRadius:bdr-e/roundedEnd,border:bd,borderWidth:bd-w,borderTopWidth:bd-t-w,borderLeftWidth:bd-l-w,borderRightWidth:bd-r-w,borderBottomWidth:bd-b-w,borderBlockStartWidth:bd-bs-w,borderBlockEndWidth:bd-be-w,borderColor:bd-c,borderInline:bd-x/borderX,borderInlineWidth:bd-x-w/borderXWidth,borderInlineColor:bd-x-c/borderXColor,borderBlock:bd-y/borderY,borderBlockWidth:bd-y-w/borderYWidth,borderBlockColor:bd-y-c/borderYColor,borderLeft:bd-l,borderLeftColor:bd-l-c,borderInlineStart:bd-s/borderStart,borderInlineStartWidth:bd-s-w/borderStartWidth,borderInlineStartColor:bd-s-c/borderStartColor,borderRight:bd-r,borderRightColor:bd-r-c,borderInlineEnd:bd-e/borderEnd,borderInlineEndWidth:bd-e-w/borderEndWidth,borderInlineEndColor:bd-e-c/borderEndColor,borderTop:bd-t,borderTopColor:bd-t-c,borderBottom:bd-b,borderBottomColor:bd-b-c,borderBlockEnd:bd-be,borderBlockEndColor:bd-be-c,borderBlockStart:bd-bs,borderBlockStartColor:bd-bs-c,opacity:op,boxShadow:bx-sh/shadow,boxShadowColor:bx-sh-c/shadowColor,mixBlendMode:mix-bm,filter:filter,brightness:brightness,contrast:contrast,grayscale:grayscale,hueRotate:hue-rotate,invert:invert,saturate:saturate,sepia:sepia,dropShadow:drop-shadow,blur:blur,backdropFilter:bkdp,backdropBlur:bkdp-blur,backdropBrightness:bkdp-brightness,backdropContrast:bkdp-contrast,backdropGrayscale:bkdp-grayscale,backdropHueRotate:bkdp-hue-rotate,backdropInvert:bkdp-invert,backdropOpacity:bkdp-opacity,backdropSaturate:bkdp-saturate,backdropSepia:bkdp-sepia,borderCollapse:bd-cl,borderSpacing:bd-sp,borderSpacingX:bd-sx,borderSpacingY:bd-sy,tableLayout:tbl,transitionTimingFunction:trs-tmf,transitionDelay:trs-dly,transitionDuration:trs-dur,transitionProperty:trs-prop,transition:transition,animation:anim,animationName:anim-n,animationTimingFunction:anim-tmf,animationDuration:anim-dur,animationDelay:anim-dly,animationPlayState:anim-ps,animationComposition:anim-comp,animationFillMode:anim-fm,animationDirection:anim-dir,animationIterationCount:anim-ic,animationRange:anim-r,animationState:anim-s,animationRangeStart:anim-rs,animationRangeEnd:anim-re,animationTimeline:anim-tl,transformOrigin:trf-o,transformBox:trf-b,transformStyle:trf-s,transform:trf,rotate:rotate,rotateX:rotate-x,rotateY:rotate-y,rotateZ:rotate-z,scale:scale,scaleX:scale-x,scaleY:scale-y,translate:translate,translateX:translate-x/x,translateY:translate-y/y,translateZ:translate-z/z,accentColor:ac-c,caretColor:ca-c,scrollBehavior:scr-bhv,scrollbar:scr-bar,scrollbarColor:scr-bar-c,scrollbarGutter:scr-bar-g,scrollbarWidth:scr-bar-w,scrollMargin:scr-m,scrollMarginLeft:scr-ml,scrollMarginRight:scr-mr,scrollMarginTop:scr-mt,scrollMarginBottom:scr-mb,scrollMarginBlock:scr-my/scrollMarginY,scrollMarginBlockEnd:scr-mbe,scrollMarginBlockStart:scr-mbt,scrollMarginInline:scr-mx/scrollMarginX,scrollMarginInlineEnd:scr-me,scrollMarginInlineStart:scr-ms,scrollPadding:scr-p,scrollPaddingBlock:scr-py/scrollPaddingY,scrollPaddingBlockStart:scr-pbs,scrollPaddingBlockEnd:scr-pbe,scrollPaddingInline:scr-px/scrollPaddingX,scrollPaddingInlineEnd:scr-pe,scrollPaddingInlineStart:scr-ps,scrollPaddingLeft:scr-pl,scrollPaddingRight:scr-pr,scrollPaddingTop:scr-pt,scrollPaddingBottom:scr-pb,scrollSnapAlign:scr-sa,scrollSnapStop:scrs-s,scrollSnapType:scrs-t,scrollSnapStrictness:scrs-strt,scrollSnapMargin:scrs-m,scrollSnapMarginTop:scrs-mt,scrollSnapMarginBottom:scrs-mb,scrollSnapMarginLeft:scrs-ml,scrollSnapMarginRight:scrs-mr,scrollSnapCoordinate:scrs-c,scrollSnapDestination:scrs-d,scrollSnapPointsX:scrs-px,scrollSnapPointsY:scrs-py,scrollSnapTypeX:scrs-tx,scrollSnapTypeY:scrs-ty,scrollTimeline:scrtl,scrollTimelineAxis:scrtl-a,scrollTimelineName:scrtl-n,touchAction:tch-a,userSelect:us,overflow:ov,overflowWrap:ov-wrap,overflowX:ov-x,overflowY:ov-y,overflowAnchor:ov-a,overflowBlock:ov-b,overflowInline:ov-i,overflowClipBox:ovcp-bx,overflowClipMargin:ovcp-m,overscrollBehaviorBlock:ovs-bb,overscrollBehaviorInline:ovs-bi,fill:fill,stroke:stk,strokeWidth:stk-w,strokeDasharray:stk-dsh,strokeDashoffset:stk-do,strokeLinecap:stk-lc,strokeLinejoin:stk-lj,strokeMiterlimit:stk-ml,strokeOpacity:stk-op,srOnly:sr,debug:debug,appearance:ap,backfaceVisibility:bfv,clipPath:cp-path,hyphens:hy,mask:msk,maskImage:msk-i,maskSize:msk-s,textSizeAdjust:txt-adj,container:cq,containerName:cq-n,containerType:cq-t,cursor:cursor,textStyle:textStyle,layerStyle:layerStyle,animationStyle:animationStyle", classNameByProp = /* @__PURE__ */ new Map(), shorthands = /* @__PURE__ */ new Map();
211
211
  utilities.split(",").forEach((utility) => {
212
212
  const [prop, meta] = utility.split(":"), [className, ...shorthandList] = meta.split("/");
213
213
  classNameByProp.set(prop, className), shorthandList.length && shorthandList.forEach((shorthand) => {
@@ -246,9 +246,9 @@ const defaults = (conf) => ({
246
246
  ...conf
247
247
  });
248
248
  function cva(config) {
249
- const { base, variants, defaultVariants, compoundVariants } = defaults(config), getVariantProps = (variants2) => ({ ...defaultVariants, ...compact(variants2) });
249
+ const { base, variants, defaultVariants, compoundVariants } = defaults(config), getVariantProps2 = (variants2) => ({ ...defaultVariants, ...compact(variants2) });
250
250
  function resolve(props = {}) {
251
- const computedVariants = getVariantProps(props);
251
+ const computedVariants = getVariantProps2(props);
252
252
  let variantCss = { ...base };
253
253
  for (const [key, value] of Object.entries(computedVariants))
254
254
  variants[key]?.[value] && (variantCss = mergeCss(variantCss, variants[key][value]));
@@ -282,7 +282,7 @@ function cva(config) {
282
282
  config,
283
283
  merge,
284
284
  splitVariantProps,
285
- getVariantProps
285
+ getVariantProps: getVariantProps2
286
286
  });
287
287
  }
288
288
  function getCompoundVariantCss(compoundVariants, variantMap) {
@@ -310,7 +310,7 @@ function sva(config) {
310
310
  function splitVariantProps(props) {
311
311
  return splitProps(props, variantKeys);
312
312
  }
313
- const getVariantProps = (variants2) => ({ ...defaultVariants || {}, ...compact(variants2) }), variantMap = Object.fromEntries(
313
+ const getVariantProps2 = (variants2) => ({ ...defaultVariants || {}, ...compact(variants2) }), variantMap = Object.fromEntries(
314
314
  Object.entries(variants).map(([key, value]) => [key, Object.keys(value)])
315
315
  );
316
316
  return Object.assign(memo(svaFn), {
@@ -319,7 +319,7 @@ function sva(config) {
319
319
  variantMap,
320
320
  variantKeys,
321
321
  splitVariantProps,
322
- getVariantProps
322
+ getVariantProps: getVariantProps2
323
323
  });
324
324
  }
325
325
  var __assign = function() {
@@ -1016,20 +1016,20 @@ function useCallbackRef(callback) {
1016
1016
  }), useMemo(() => (...args) => callbackRef.current?.(...args), []);
1017
1017
  }
1018
1018
  const DEFAULT_EVENTS = ["mousedown", "touchstart"];
1019
- function useClickOutside(handler, events, nodes) {
1020
- const ref = useRef(null);
1019
+ function useClickOutside(callback, events, nodes) {
1020
+ const ref = useRef(null), eventsList = events || DEFAULT_EVENTS;
1021
1021
  return useEffect(() => {
1022
1022
  const listener = (event) => {
1023
1023
  const { target } = event ?? {};
1024
1024
  if (Array.isArray(nodes)) {
1025
- const shouldIgnore = target?.hasAttribute("data-ignore-outside-clicks") || !document.body.contains(target) && target.tagName !== "HTML";
1026
- nodes.every((node) => !!node && !event.composedPath().includes(node)) && !shouldIgnore && handler();
1027
- } else ref.current && !ref.current.contains(target) && handler();
1025
+ const shouldIgnore = !document.body.contains(target) && target.tagName !== "HTML";
1026
+ nodes.every((node) => !!node && !event.composedPath().includes(node)) && !shouldIgnore && callback();
1027
+ } else ref.current && !ref.current.contains(target) && callback();
1028
1028
  };
1029
- return (events || DEFAULT_EVENTS).forEach((fn) => document.addEventListener(fn, listener)), () => {
1030
- (events || DEFAULT_EVENTS).forEach((fn) => document.removeEventListener(fn, listener));
1029
+ return eventsList.forEach((fn) => document.addEventListener(fn, listener)), () => {
1030
+ eventsList.forEach((fn) => document.removeEventListener(fn, listener));
1031
1031
  };
1032
- }, [ref, handler, nodes]), ref;
1032
+ }, [ref, callback, nodes]), ref;
1033
1033
  }
1034
1034
  function attachMediaListener(query, callback) {
1035
1035
  try {
@@ -1204,7 +1204,7 @@ function mergeRefs(...refs) {
1204
1204
  return () => {
1205
1205
  refs.forEach((ref) => {
1206
1206
  const cleanup = cleanupMap.get(ref);
1207
- cleanup ? cleanup() : assignRef(ref, null);
1207
+ cleanup && typeof cleanup == "function" ? cleanup() : assignRef(ref, null);
1208
1208
  }), cleanupMap.clear();
1209
1209
  };
1210
1210
  };
@@ -1219,11 +1219,13 @@ function clampUseMovePosition(position) {
1219
1219
  };
1220
1220
  }
1221
1221
  function useMove(onChange, handlers, dir = "ltr") {
1222
- const mounted = useRef(!1), isSliding = useRef(!1), frame2 = useRef(0), [active, setActive] = useState(!1);
1222
+ const mounted = useRef(!1), isSliding = useRef(!1), frame2 = useRef(0), [active, setActive] = useState(!1), cleanupRef = useRef(null);
1223
1223
  return useEffect(() => {
1224
1224
  mounted.current = !0;
1225
1225
  }, []), { ref: useCallback(
1226
1226
  (node) => {
1227
+ if (cleanupRef.current && (cleanupRef.current(), cleanupRef.current = null), !node)
1228
+ return;
1227
1229
  const onScrub = ({ x, y: y2 }) => {
1228
1230
  cancelAnimationFrame(frame2.current), frame2.current = requestAnimationFrame(() => {
1229
1231
  if (mounted.current && node) {
@@ -1255,8 +1257,8 @@ function useMove(onChange, handlers, dir = "ltr") {
1255
1257
  }, onTouchMove = (event) => {
1256
1258
  event.cancelable && event.preventDefault(), onScrub({ x: event.changedTouches[0].clientX, y: event.changedTouches[0].clientY });
1257
1259
  };
1258
- return node?.addEventListener("mousedown", onMouseDown), node?.addEventListener("touchstart", onTouchStart, { passive: !1 }), () => {
1259
- node && (node.removeEventListener("mousedown", onMouseDown), node.removeEventListener("touchstart", onTouchStart));
1260
+ node.addEventListener("mousedown", onMouseDown), node.addEventListener("touchstart", onTouchStart, { passive: !1 }), cleanupRef.current = () => {
1261
+ node.removeEventListener("mousedown", onMouseDown), node.removeEventListener("touchstart", onTouchStart);
1260
1262
  };
1261
1263
  },
1262
1264
  [dir, onChange]
@@ -2267,7 +2269,8 @@ function useStyles({
2267
2269
  classNames,
2268
2270
  styles,
2269
2271
  vars,
2270
- varsResolver: varsResolver2
2272
+ varsResolver: varsResolver2,
2273
+ attributes
2271
2274
  }) {
2272
2275
  const theme = useMantineTheme(), classNamesPrefix = useMantineClassNamesPrefix(), withStaticClasses = useMantineWithStaticClasses(), headless = useMantineIsHeadless(), themeName = (Array.isArray(name) ? name : [name]).filter((n2) => n2), { withStylesTransform, getTransformedStyles } = useStylesTransform({
2273
2276
  props,
@@ -2306,7 +2309,8 @@ function useStyles({
2306
2309
  varsResolver: varsResolver2,
2307
2310
  headless,
2308
2311
  withStylesTransform
2309
- })
2312
+ }),
2313
+ ...attributes?.[selector2]
2310
2314
  });
2311
2315
  }
2312
2316
  function useProps(component, defaultProps2, props) {
@@ -2617,7 +2621,7 @@ function parseStyleProps({
2617
2621
  acc.hasResponsiveStyles = !0;
2618
2622
  const breakpoints = getBreakpointKeys(styleProps[styleProp]);
2619
2623
  return properties2.forEach((property) => {
2620
- baseValue && (acc.styles[property] = resolvers[propertyData.type](baseValue, theme)), breakpoints.forEach((breakpoint) => {
2624
+ baseValue != null && (acc.styles[property] = resolvers[propertyData.type](baseValue, theme)), breakpoints.forEach((breakpoint) => {
2621
2625
  const bp = `(min-width: ${theme.breakpoints[breakpoint]})`;
2622
2626
  acc.media[bp] = {
2623
2627
  ...acc.media[bp],
@@ -5041,11 +5045,11 @@ function toInt(value) {
5041
5045
  return value ? parseInt(value, 10) : 0;
5042
5046
  }
5043
5047
  var classes$i = { root: "m_87cf2631" };
5044
- const defaultProps$A = {
5048
+ const defaultProps$k = {
5045
5049
  __staticSelector: "UnstyledButton"
5046
5050
  }, UnstyledButton = polymorphicFactory(
5047
5051
  (_props, ref) => {
5048
- const props = useProps("UnstyledButton", defaultProps$A, _props), {
5052
+ const props = useProps("UnstyledButton", defaultProps$k, _props), {
5049
5053
  className,
5050
5054
  component = "button",
5051
5055
  __staticSelector,
@@ -5053,6 +5057,7 @@ const defaultProps$A = {
5053
5057
  classNames,
5054
5058
  styles,
5055
5059
  style: style2,
5060
+ attributes,
5056
5061
  ...others
5057
5062
  } = props, getStyles2 = useStyles({
5058
5063
  name: __staticSelector,
@@ -5062,7 +5067,8 @@ const defaultProps$A = {
5062
5067
  style: style2,
5063
5068
  classNames,
5064
5069
  styles,
5065
- unstyled
5070
+ unstyled,
5071
+ attributes
5066
5072
  });
5067
5073
  return /* @__PURE__ */ jsx(
5068
5074
  Box$1,
@@ -5079,8 +5085,8 @@ const defaultProps$A = {
5079
5085
  UnstyledButton.classes = classes$i;
5080
5086
  UnstyledButton.displayName = "@mantine/core/UnstyledButton";
5081
5087
  var classes$h = { root: "m_515a97f8" };
5082
- const defaultProps$z = {}, VisuallyHidden = factory((_props, ref) => {
5083
- const props = useProps("VisuallyHidden", defaultProps$z, _props), { classNames, className, style: style2, styles, unstyled, vars, ...others } = props, getStyles2 = useStyles({
5088
+ const VisuallyHidden = factory((_props, ref) => {
5089
+ const props = useProps("VisuallyHidden", null, _props), { classNames, className, style: style2, styles, unstyled, vars, attributes, ...others } = props, getStyles2 = useStyles({
5084
5090
  name: "VisuallyHidden",
5085
5091
  classes: classes$h,
5086
5092
  props,
@@ -5088,20 +5094,21 @@ const defaultProps$z = {}, VisuallyHidden = factory((_props, ref) => {
5088
5094
  style: style2,
5089
5095
  classNames,
5090
5096
  styles,
5091
- unstyled
5097
+ unstyled,
5098
+ attributes
5092
5099
  });
5093
5100
  return /* @__PURE__ */ jsx(Box$1, { component: "span", ref, ...getStyles2("root"), ...others });
5094
5101
  });
5095
5102
  VisuallyHidden.classes = classes$h;
5096
5103
  VisuallyHidden.displayName = "@mantine/core/VisuallyHidden";
5097
5104
  var classes$g = { root: "m_1b7284a3" };
5098
- const defaultProps$y = {}, varsResolver$j = (_, { radius, shadow }) => ({
5105
+ const varsResolver$j = (_, { radius, shadow }) => ({
5099
5106
  root: {
5100
5107
  "--paper-radius": radius === void 0 ? void 0 : getRadius(radius),
5101
5108
  "--paper-shadow": getShadow(shadow)
5102
5109
  }
5103
5110
  }), Paper = polymorphicFactory((_props, ref) => {
5104
- const props = useProps("Paper", defaultProps$y, _props), {
5111
+ const props = useProps("Paper", null, _props), {
5105
5112
  classNames,
5106
5113
  className,
5107
5114
  style: style2,
@@ -5113,6 +5120,7 @@ const defaultProps$y = {}, varsResolver$j = (_, { radius, shadow }) => ({
5113
5120
  shadow,
5114
5121
  variant,
5115
5122
  mod,
5123
+ attributes,
5116
5124
  ...others
5117
5125
  } = props, getStyles2 = useStyles({
5118
5126
  name: "Paper",
@@ -5123,6 +5131,7 @@ const defaultProps$y = {}, varsResolver$j = (_, { radius, shadow }) => ({
5123
5131
  classNames,
5124
5132
  styles,
5125
5133
  unstyled,
5134
+ attributes,
5126
5135
  vars,
5127
5136
  varsResolver: varsResolver$j
5128
5137
  });
@@ -5243,7 +5252,7 @@ function getFloatingPosition(dir, position) {
5243
5252
  return position;
5244
5253
  }
5245
5254
  var classes$f = { root: "m_9814e45f" };
5246
- const defaultProps$x = {
5255
+ const defaultProps$j = {
5247
5256
  zIndex: getDefaultZIndex("modal")
5248
5257
  }, varsResolver$i = (_, { gradient, color: color2, backgroundOpacity, blur, radius, zIndex }) => ({
5249
5258
  root: {
@@ -5253,7 +5262,7 @@ const defaultProps$x = {
5253
5262
  "--overlay-z-index": zIndex?.toString()
5254
5263
  }
5255
5264
  }), Overlay$1 = polymorphicFactory((_props, ref) => {
5256
- const props = useProps("Overlay", defaultProps$x, _props), {
5265
+ const props = useProps("Overlay", defaultProps$j, _props), {
5257
5266
  classNames,
5258
5267
  className,
5259
5268
  style: style2,
@@ -5270,6 +5279,7 @@ const defaultProps$x = {
5270
5279
  color: color2,
5271
5280
  backgroundOpacity,
5272
5281
  mod,
5282
+ attributes,
5273
5283
  ...others
5274
5284
  } = props, getStyles2 = useStyles({
5275
5285
  name: "Overlay",
@@ -5280,6 +5290,7 @@ const defaultProps$x = {
5280
5290
  classNames,
5281
5291
  styles,
5282
5292
  unstyled,
5293
+ attributes,
5283
5294
  vars,
5284
5295
  varsResolver: varsResolver$i
5285
5296
  });
@@ -5303,10 +5314,10 @@ function getTargetNode({ target, reuseTargetNode, ...others }) {
5303
5314
  }
5304
5315
  return createPortalNode(others);
5305
5316
  }
5306
- const defaultProps$w = {
5317
+ const defaultProps$i = {
5307
5318
  reuseTargetNode: !0
5308
5319
  }, Portal = factory((props, ref) => {
5309
- const { children: children2, target, reuseTargetNode, ...others } = useProps("Portal", defaultProps$w, props), [mounted, setMounted] = useState(!1), nodeRef = useRef(null);
5320
+ const { children: children2, target, reuseTargetNode, ...others } = useProps("Portal", defaultProps$i, props), [mounted, setMounted] = useState(!1), nodeRef = useRef(null);
5310
5321
  return useIsomorphicEffect(() => (setMounted(!0), nodeRef.current = getTargetNode({ target, reuseTargetNode, ...others }), assignRef(ref, nodeRef.current), !target && !reuseTargetNode && nodeRef.current && document.body.appendChild(nodeRef.current), () => {
5311
5322
  !target && !reuseTargetNode && nodeRef.current && document.body.removeChild(nodeRef.current);
5312
5323
  }), [target]), !mounted || !nodeRef.current ? null : createPortal(/* @__PURE__ */ jsx(Fragment$1, { children: children2 }), nodeRef.current);
@@ -5573,8 +5584,8 @@ FocusTrap.displayName = "@mantine/core/FocusTrap";
5573
5584
  FocusTrapInitialFocus.displayName = "@mantine/core/FocusTrapInitialFocus";
5574
5585
  FocusTrap.InitialFocus = FocusTrapInitialFocus;
5575
5586
  var classes$e = { dropdown: "m_38a85659", arrow: "m_a31dc6c1", overlay: "m_3d7bc908" };
5576
- const defaultProps$v = {}, PopoverDropdown = factory((_props, ref) => {
5577
- const props = useProps("PopoverDropdown", defaultProps$v, _props), {
5587
+ const PopoverDropdown = factory((_props, ref) => {
5588
+ const props = useProps("PopoverDropdown", null, _props), {
5578
5589
  className,
5579
5590
  style: style2,
5580
5591
  vars,
@@ -5668,13 +5679,13 @@ const defaultProps$v = {}, PopoverDropdown = factory((_props, ref) => {
5668
5679
  });
5669
5680
  PopoverDropdown.classes = classes$e;
5670
5681
  PopoverDropdown.displayName = "@mantine/core/PopoverDropdown";
5671
- const defaultProps$u = {
5682
+ const defaultProps$h = {
5672
5683
  refProp: "ref",
5673
5684
  popupType: "dialog"
5674
5685
  }, PopoverTarget = factory((props, ref) => {
5675
5686
  const { children: children2, refProp, popupType, ...others } = useProps(
5676
5687
  "PopoverTarget",
5677
- defaultProps$u,
5688
+ defaultProps$h,
5678
5689
  props
5679
5690
  );
5680
5691
  if (!isElement$1(children2))
@@ -5697,7 +5708,11 @@ const defaultProps$u = {
5697
5708
  children2.props.className
5698
5709
  ),
5699
5710
  [refProp]: targetRef,
5700
- ...ctx.controlled ? null : { onClick: ctx.onToggle }
5711
+ ...ctx.controlled ? null : {
5712
+ onClick: () => {
5713
+ ctx.onToggle(), children2.props.onClick?.();
5714
+ }
5715
+ }
5701
5716
  });
5702
5717
  });
5703
5718
  PopoverTarget.displayName = "@mantine/core/PopoverTarget";
@@ -5780,7 +5795,7 @@ function usePopover(options) {
5780
5795
  onToggle
5781
5796
  };
5782
5797
  }
5783
- const defaultProps$t = {
5798
+ const defaultProps$g = {
5784
5799
  position: "bottom",
5785
5800
  offset: 8,
5786
5801
  positionDependencies: [],
@@ -5809,7 +5824,7 @@ const defaultProps$t = {
5809
5824
  }
5810
5825
  });
5811
5826
  function Popover(_props) {
5812
- const props = useProps("Popover", defaultProps$t, _props), {
5827
+ const props = useProps("Popover", defaultProps$g, _props), {
5813
5828
  children: children2,
5814
5829
  position,
5815
5830
  offset: offset2,
@@ -5857,6 +5872,7 @@ function Popover(_props) {
5857
5872
  withOverlay,
5858
5873
  overlayProps,
5859
5874
  hideDetached,
5875
+ attributes,
5860
5876
  preventPositionChangeWhenVisible,
5861
5877
  ...others
5862
5878
  } = props, getStyles2 = useStyles({
@@ -5866,6 +5882,7 @@ function Popover(_props) {
5866
5882
  classNames,
5867
5883
  styles,
5868
5884
  unstyled,
5885
+ attributes,
5869
5886
  rootSelector: "dropdown",
5870
5887
  vars,
5871
5888
  varsResolver: varsResolver$h
@@ -6010,7 +6027,7 @@ const defaultLoaders = {
6010
6027
  bars: Bars,
6011
6028
  oval: Oval,
6012
6029
  dots: Dots
6013
- }, defaultProps$s = {
6030
+ }, defaultProps$f = {
6014
6031
  loaders: defaultLoaders,
6015
6032
  type: "oval"
6016
6033
  }, varsResolver$g = (theme, { size: size2, color: color2 }) => ({
@@ -6019,7 +6036,7 @@ const defaultLoaders = {
6019
6036
  "--loader-color": color2 ? getThemeColor(color2, theme) : void 0
6020
6037
  }
6021
6038
  }), Loader = factory((_props, ref) => {
6022
- const props = useProps("Loader", defaultProps$s, _props), {
6039
+ const props = useProps("Loader", defaultProps$f, _props), {
6023
6040
  size: size2,
6024
6041
  color: color2,
6025
6042
  type,
@@ -6032,6 +6049,7 @@ const defaultLoaders = {
6032
6049
  loaders,
6033
6050
  variant,
6034
6051
  children: children2,
6052
+ attributes,
6035
6053
  ...others
6036
6054
  } = props, getStyles2 = useStyles({
6037
6055
  name: "Loader",
@@ -6042,6 +6060,7 @@ const defaultLoaders = {
6042
6060
  classNames,
6043
6061
  styles,
6044
6062
  unstyled,
6063
+ attributes,
6045
6064
  vars,
6046
6065
  varsResolver: varsResolver$g
6047
6066
  });
@@ -6061,12 +6080,12 @@ Loader.defaultLoaders = defaultLoaders;
6061
6080
  Loader.classes = classes$d;
6062
6081
  Loader.displayName = "@mantine/core/Loader";
6063
6082
  var classes$c = { root: "m_8d3f4000", icon: "m_8d3afb97", loader: "m_302b9fb1", group: "m_1a0f1b21", groupSection: "m_437b6484" };
6064
- const defaultProps$r = {
6083
+ const defaultProps$e = {
6065
6084
  orientation: "horizontal"
6066
6085
  }, varsResolver$f = (_, { borderWidth: borderWidth2 }) => ({
6067
6086
  group: { "--ai-border-width": rem(borderWidth2) }
6068
6087
  }), ActionIconGroup = factory((_props, ref) => {
6069
- const props = useProps("ActionIconGroup", defaultProps$r, _props), {
6088
+ const props = useProps("ActionIconGroup", defaultProps$e, _props), {
6070
6089
  className,
6071
6090
  style: style2,
6072
6091
  classNames,
@@ -6077,8 +6096,9 @@ const defaultProps$r = {
6077
6096
  borderWidth: borderWidth2,
6078
6097
  variant,
6079
6098
  mod,
6099
+ attributes,
6080
6100
  ...others
6081
- } = useProps("ActionIconGroup", defaultProps$r, _props), getStyles2 = useStyles({
6101
+ } = useProps("ActionIconGroup", defaultProps$e, _props), getStyles2 = useStyles({
6082
6102
  name: "ActionIconGroup",
6083
6103
  props,
6084
6104
  classes: classes$c,
@@ -6087,6 +6107,7 @@ const defaultProps$r = {
6087
6107
  classNames,
6088
6108
  styles,
6089
6109
  unstyled,
6110
+ attributes,
6090
6111
  vars,
6091
6112
  varsResolver: varsResolver$f,
6092
6113
  rootSelector: "group"
@@ -6105,7 +6126,7 @@ const defaultProps$r = {
6105
6126
  });
6106
6127
  ActionIconGroup.classes = classes$c;
6107
6128
  ActionIconGroup.displayName = "@mantine/core/ActionIconGroup";
6108
- const defaultProps$q = {}, varsResolver$e = (theme, { radius, color: color2, gradient, variant, autoContrast, size: size2 }) => {
6129
+ const varsResolver$e = (theme, { radius, color: color2, gradient, variant, autoContrast, size: size2 }) => {
6109
6130
  const colors2 = theme.variantColorResolver({
6110
6131
  color: color2 || theme.primaryColor,
6111
6132
  theme,
@@ -6125,7 +6146,7 @@ const defaultProps$q = {}, varsResolver$e = (theme, { radius, color: color2, gra
6125
6146
  }
6126
6147
  };
6127
6148
  }, ActionIconGroupSection = factory((_props, ref) => {
6128
- const props = useProps("ActionIconGroupSection", defaultProps$q, _props), {
6149
+ const props = useProps("ActionIconGroupSection", null, _props), {
6129
6150
  className,
6130
6151
  style: style2,
6131
6152
  classNames,
@@ -6136,8 +6157,9 @@ const defaultProps$q = {}, varsResolver$e = (theme, { radius, color: color2, gra
6136
6157
  gradient,
6137
6158
  radius,
6138
6159
  autoContrast,
6160
+ attributes,
6139
6161
  ...others
6140
- } = useProps("ActionIconGroupSection", defaultProps$q, _props), getStyles2 = useStyles({
6162
+ } = props, getStyles2 = useStyles({
6141
6163
  name: "ActionIconGroupSection",
6142
6164
  props,
6143
6165
  classes: classes$c,
@@ -6146,6 +6168,7 @@ const defaultProps$q = {}, varsResolver$e = (theme, { radius, color: color2, gra
6146
6168
  classNames,
6147
6169
  styles,
6148
6170
  unstyled,
6171
+ attributes,
6149
6172
  vars,
6150
6173
  varsResolver: varsResolver$e,
6151
6174
  rootSelector: "groupSection"
@@ -6154,7 +6177,7 @@ const defaultProps$q = {}, varsResolver$e = (theme, { radius, color: color2, gra
6154
6177
  });
6155
6178
  ActionIconGroupSection.classes = classes$c;
6156
6179
  ActionIconGroupSection.displayName = "@mantine/core/ActionIconGroupSection";
6157
- const defaultProps$p = {}, varsResolver$d = (theme, { size: size2, radius, variant, gradient, color: color2, autoContrast }) => {
6180
+ const varsResolver$d = (theme, { size: size2, radius, variant, gradient, color: color2, autoContrast }) => {
6158
6181
  const colors2 = theme.variantColorResolver({
6159
6182
  color: color2 || theme.primaryColor,
6160
6183
  theme,
@@ -6174,7 +6197,7 @@ const defaultProps$p = {}, varsResolver$d = (theme, { size: size2, radius, varia
6174
6197
  }
6175
6198
  };
6176
6199
  }, ActionIcon = polymorphicFactory((_props, ref) => {
6177
- const props = useProps("ActionIcon", defaultProps$p, _props), {
6200
+ const props = useProps("ActionIcon", null, _props), {
6178
6201
  className,
6179
6202
  unstyled,
6180
6203
  variant,
@@ -6194,6 +6217,7 @@ const defaultProps$p = {}, varsResolver$d = (theme, { size: size2, radius, varia
6194
6217
  "data-disabled": dataDisabled,
6195
6218
  autoContrast,
6196
6219
  mod,
6220
+ attributes,
6197
6221
  ...others
6198
6222
  } = props, getStyles2 = useStyles({
6199
6223
  name: ["ActionIcon", __staticSelector],
@@ -6204,6 +6228,7 @@ const defaultProps$p = {}, varsResolver$d = (theme, { size: size2, radius, varia
6204
6228
  classNames,
6205
6229
  styles,
6206
6230
  unstyled,
6231
+ attributes,
6207
6232
  vars,
6208
6233
  varsResolver: varsResolver$d
6209
6234
  });
@@ -6233,7 +6258,7 @@ function filterFalsyChildren(children2) {
6233
6258
  return Children.toArray(children2).filter(Boolean);
6234
6259
  }
6235
6260
  var classes$b = { root: "m_4081bf90" };
6236
- const defaultProps$o = {
6261
+ const defaultProps$d = {
6237
6262
  preventGrowOverflow: !0,
6238
6263
  gap: "md",
6239
6264
  align: "center",
@@ -6248,7 +6273,7 @@ const defaultProps$o = {
6248
6273
  "--group-wrap": wrap
6249
6274
  }
6250
6275
  }), Group = factory((_props, ref) => {
6251
- const props = useProps("Group", defaultProps$o, _props), {
6276
+ const props = useProps("Group", defaultProps$d, _props), {
6252
6277
  classNames,
6253
6278
  className,
6254
6279
  style: style2,
@@ -6265,6 +6290,7 @@ const defaultProps$o = {
6265
6290
  variant,
6266
6291
  __size,
6267
6292
  mod,
6293
+ attributes,
6268
6294
  ...others
6269
6295
  } = props, filteredChildren = filterFalsyChildren(children2), childrenCount = filteredChildren.length, resolvedGap = getSpacing(gap ?? "md"), stylesCtx = { childWidth: `calc(${100 / childrenCount}% - (${resolvedGap} - ${resolvedGap} / ${childrenCount}))` }, getStyles2 = useStyles({
6270
6296
  name: "Group",
@@ -6276,6 +6302,7 @@ const defaultProps$o = {
6276
6302
  classNames,
6277
6303
  styles,
6278
6304
  unstyled,
6305
+ attributes,
6279
6306
  vars,
6280
6307
  varsResolver: varsResolver$c
6281
6308
  });
@@ -6304,8 +6331,8 @@ const FLEX_STYLE_PROPS_DATA = {
6304
6331
  direction: { type: "identity", property: "flexDirection" }
6305
6332
  };
6306
6333
  var classes$a = { root: "m_8bffd616" };
6307
- const defaultProps$n = {}, Flex = polymorphicFactory((_props, ref) => {
6308
- const props = useProps("Flex", defaultProps$n, _props), {
6334
+ const Flex = polymorphicFactory((_props, ref) => {
6335
+ const props = useProps("Flex", null, _props), {
6309
6336
  classNames,
6310
6337
  className,
6311
6338
  style: style2,
@@ -6319,6 +6346,7 @@ const defaultProps$n = {}, Flex = polymorphicFactory((_props, ref) => {
6319
6346
  justify,
6320
6347
  wrap,
6321
6348
  direction,
6349
+ attributes,
6322
6350
  ...others
6323
6351
  } = props, getStyles2 = useStyles({
6324
6352
  name: "Flex",
@@ -6329,6 +6357,7 @@ const defaultProps$n = {}, Flex = polymorphicFactory((_props, ref) => {
6329
6357
  classNames,
6330
6358
  styles,
6331
6359
  unstyled,
6360
+ attributes,
6332
6361
  vars
6333
6362
  }), theme = useMantineTheme(), responsiveClassName = useRandomClassName(), parsedStyleProps = parseStyleProps({
6334
6363
  styleProps: { gap, rowGap, columnGap, align, justify, wrap, direction },
@@ -6424,12 +6453,12 @@ function useFloatingIndicator({
6424
6453
  ), { initialized, hidden: hidden2 };
6425
6454
  }
6426
6455
  var classes$9 = { root: "m_96b553a6" };
6427
- const defaultProps$m = {}, varsResolver$b = (_theme, { transitionDuration }) => ({
6456
+ const varsResolver$b = (_theme, { transitionDuration }) => ({
6428
6457
  root: {
6429
6458
  "--transition-duration": typeof transitionDuration == "number" ? `${transitionDuration}ms` : transitionDuration
6430
6459
  }
6431
6460
  }), FloatingIndicator = factory((_props, ref) => {
6432
- const props = useProps("FloatingIndicator", defaultProps$m, _props), {
6461
+ const props = useProps("FloatingIndicator", null, _props), {
6433
6462
  classNames,
6434
6463
  className,
6435
6464
  style: style2,
@@ -6441,6 +6470,7 @@ const defaultProps$m = {}, varsResolver$b = (_theme, { transitionDuration }) =>
6441
6470
  transitionDuration,
6442
6471
  mod,
6443
6472
  displayAfterTransitionEnd,
6473
+ attributes,
6444
6474
  ...others
6445
6475
  } = props, getStyles2 = useStyles({
6446
6476
  name: "FloatingIndicator",
@@ -6451,6 +6481,7 @@ const defaultProps$m = {}, varsResolver$b = (_theme, { transitionDuration }) =>
6451
6481
  classNames,
6452
6482
  styles,
6453
6483
  unstyled,
6484
+ attributes,
6454
6485
  vars,
6455
6486
  varsResolver: varsResolver$b
6456
6487
  }), innerRef = useRef(null), { initialized, hidden: hidden2 } = useFloatingIndicator({
@@ -6463,6 +6494,16 @@ const defaultProps$m = {}, varsResolver$b = (_theme, { transitionDuration }) =>
6463
6494
  });
6464
6495
  FloatingIndicator.displayName = "@mantine/core/FloatingIndicator";
6465
6496
  FloatingIndicator.classes = classes$9;
6497
+ function useDelayedHover({ open, close, openDelay, closeDelay }) {
6498
+ const openTimeout = useRef(-1), closeTimeout = useRef(-1), clearTimeouts = () => {
6499
+ window.clearTimeout(openTimeout.current), window.clearTimeout(closeTimeout.current);
6500
+ }, openDropdown = () => {
6501
+ clearTimeouts(), openDelay === 0 || openDelay === void 0 ? open() : openTimeout.current = window.setTimeout(open, openDelay);
6502
+ }, closeDropdown = () => {
6503
+ clearTimeouts(), closeDelay === 0 || closeDelay === void 0 ? close() : closeTimeout.current = window.setTimeout(close, closeDelay);
6504
+ };
6505
+ return useEffect(() => clearTimeouts, []), { openDropdown, closeDropdown };
6506
+ }
6466
6507
  function AccordionChevron({ style: style2, size: size2 = 16, ...others }) {
6467
6508
  return /* @__PURE__ */ jsx(
6468
6509
  "svg",
@@ -6492,7 +6533,7 @@ function getTextTruncate(truncate) {
6492
6533
  if (truncate === "end" || truncate)
6493
6534
  return "end";
6494
6535
  }
6495
- const defaultProps$l = {
6536
+ const defaultProps$c = {
6496
6537
  inherit: !1
6497
6538
  }, varsResolver$a = /* Will be removed in 9.0 */ /* eslint-disable-next-line @typescript-eslint/no-deprecated */ (theme, { variant, lineClamp, gradient, size: size2, color: color2 }) => ({
6498
6539
  root: {
@@ -6503,7 +6544,7 @@ const defaultProps$l = {
6503
6544
  "--text-color": color2 ? getThemeColor(color2, theme) : void 0
6504
6545
  }
6505
6546
  }), Text = polymorphicFactory((_props, ref) => {
6506
- const props = useProps("Text", defaultProps$l, _props), {
6547
+ const props = useProps("Text", defaultProps$c, _props), {
6507
6548
  lineClamp,
6508
6549
  truncate,
6509
6550
  inline: inline2,
@@ -6520,6 +6561,7 @@ const defaultProps$l = {
6520
6561
  variant,
6521
6562
  mod,
6522
6563
  size: size2,
6564
+ attributes,
6523
6565
  ...others
6524
6566
  } = props, getStyles2 = useStyles({
6525
6567
  name: ["Text", __staticSelector],
@@ -6530,6 +6572,7 @@ const defaultProps$l = {
6530
6572
  classNames,
6531
6573
  styles,
6532
6574
  unstyled,
6575
+ attributes,
6533
6576
  vars,
6534
6577
  varsResolver: varsResolver$a
6535
6578
  });
@@ -6580,12 +6623,12 @@ function CheckIcon({ size: size2, style: style2, ...others }) {
6580
6623
  );
6581
6624
  }
6582
6625
  var classes$7 = { root: "m_77c9d27d", inner: "m_80f1301b", label: "m_811560b9", section: "m_a74036a", loader: "m_a25b86ee", group: "m_80d6d844", groupSection: "m_70be2a01" };
6583
- const defaultProps$k = {
6626
+ const defaultProps$b = {
6584
6627
  orientation: "horizontal"
6585
6628
  }, varsResolver$9 = (_, { borderWidth: borderWidth2 }) => ({
6586
6629
  group: { "--button-border-width": rem(borderWidth2) }
6587
6630
  }), ButtonGroup = factory((_props, ref) => {
6588
- const props = useProps("ButtonGroup", defaultProps$k, _props), {
6631
+ const props = useProps("ButtonGroup", defaultProps$b, _props), {
6589
6632
  className,
6590
6633
  style: style2,
6591
6634
  classNames,
@@ -6596,8 +6639,9 @@ const defaultProps$k = {
6596
6639
  borderWidth: borderWidth2,
6597
6640
  variant,
6598
6641
  mod,
6642
+ attributes,
6599
6643
  ...others
6600
- } = useProps("ButtonGroup", defaultProps$k, _props), getStyles2 = useStyles({
6644
+ } = useProps("ButtonGroup", defaultProps$b, _props), getStyles2 = useStyles({
6601
6645
  name: "ButtonGroup",
6602
6646
  props,
6603
6647
  classes: classes$7,
@@ -6606,6 +6650,7 @@ const defaultProps$k = {
6606
6650
  classNames,
6607
6651
  styles,
6608
6652
  unstyled,
6653
+ attributes,
6609
6654
  vars,
6610
6655
  varsResolver: varsResolver$9,
6611
6656
  rootSelector: "group"
@@ -6624,7 +6669,7 @@ const defaultProps$k = {
6624
6669
  });
6625
6670
  ButtonGroup.classes = classes$7;
6626
6671
  ButtonGroup.displayName = "@mantine/core/ButtonGroup";
6627
- const defaultProps$j = {}, varsResolver$8 = (theme, { radius, color: color2, gradient, variant, autoContrast, size: size2 }) => {
6672
+ const varsResolver$8 = (theme, { radius, color: color2, gradient, variant, autoContrast, size: size2 }) => {
6628
6673
  const colors2 = theme.variantColorResolver({
6629
6674
  color: color2 || theme.primaryColor,
6630
6675
  theme,
@@ -6644,7 +6689,7 @@ const defaultProps$j = {}, varsResolver$8 = (theme, { radius, color: color2, gra
6644
6689
  }
6645
6690
  };
6646
6691
  }, ButtonGroupSection = factory((_props, ref) => {
6647
- const props = useProps("ButtonGroupSection", defaultProps$j, _props), {
6692
+ const props = useProps("ButtonGroupSection", null, _props), {
6648
6693
  className,
6649
6694
  style: style2,
6650
6695
  classNames,
@@ -6655,8 +6700,9 @@ const defaultProps$j = {}, varsResolver$8 = (theme, { radius, color: color2, gra
6655
6700
  gradient,
6656
6701
  radius,
6657
6702
  autoContrast,
6703
+ attributes,
6658
6704
  ...others
6659
- } = useProps("ButtonGroupSection", defaultProps$j, _props), getStyles2 = useStyles({
6705
+ } = props, getStyles2 = useStyles({
6660
6706
  name: "ButtonGroupSection",
6661
6707
  props,
6662
6708
  classes: classes$7,
@@ -6665,6 +6711,7 @@ const defaultProps$j = {}, varsResolver$8 = (theme, { radius, color: color2, gra
6665
6711
  classNames,
6666
6712
  styles,
6667
6713
  unstyled,
6714
+ attributes,
6668
6715
  vars,
6669
6716
  varsResolver: varsResolver$8,
6670
6717
  rootSelector: "groupSection"
@@ -6678,7 +6725,7 @@ const loaderTransition = {
6678
6725
  out: { opacity: 0, transform: "translate(-50%, -200%)" },
6679
6726
  common: { transformOrigin: "center" },
6680
6727
  transitionProperty: "transform, opacity"
6681
- }, defaultProps$i = {}, varsResolver$7 = (theme, { radius, color: color2, gradient, variant, size: size2, justify, autoContrast }) => {
6728
+ }, varsResolver$7 = (theme, { radius, color: color2, gradient, variant, size: size2, justify, autoContrast }) => {
6682
6729
  const colors2 = theme.variantColorResolver({
6683
6730
  color: color2 || theme.primaryColor,
6684
6731
  theme,
@@ -6701,7 +6748,7 @@ const loaderTransition = {
6701
6748
  }
6702
6749
  };
6703
6750
  }, Button = polymorphicFactory((_props, ref) => {
6704
- const props = useProps("Button", defaultProps$i, _props), {
6751
+ const props = useProps("Button", null, _props), {
6705
6752
  style: style2,
6706
6753
  vars,
6707
6754
  className,
@@ -6722,6 +6769,7 @@ const loaderTransition = {
6722
6769
  "data-disabled": dataDisabled,
6723
6770
  autoContrast,
6724
6771
  mod,
6772
+ attributes,
6725
6773
  ...others
6726
6774
  } = props, getStyles2 = useStyles({
6727
6775
  name: "Button",
@@ -6732,6 +6780,7 @@ const loaderTransition = {
6732
6780
  classNames,
6733
6781
  styles,
6734
6782
  unstyled,
6783
+ attributes,
6735
6784
  vars,
6736
6785
  varsResolver: varsResolver$7
6737
6786
  }), hasLeftSection = !!leftSection, hasRightSection = !!rightSection;
@@ -6777,7 +6826,7 @@ Button.displayName = "@mantine/core/Button";
6777
6826
  Button.Group = ButtonGroup;
6778
6827
  Button.GroupSection = ButtonGroupSection;
6779
6828
  var classes$6 = { root: "m_de3d2490", colorOverlay: "m_862f3d1b", shadowOverlay: "m_98ae7f22", alphaOverlay: "m_95709ac0", childrenOverlay: "m_93e74e3" };
6780
- const defaultProps$h = {
6829
+ const defaultProps$a = {
6781
6830
  withShadow: !0
6782
6831
  }, varsResolver$6 = (_, { radius, size: size2 }) => ({
6783
6832
  root: {
@@ -6785,7 +6834,7 @@ const defaultProps$h = {
6785
6834
  "--cs-size": rem(size2)
6786
6835
  }
6787
6836
  }), ColorSwatch = polymorphicFactory((_props, ref) => {
6788
- const props = useProps("ColorSwatch", defaultProps$h, _props), {
6837
+ const props = useProps("ColorSwatch", defaultProps$a, _props), {
6789
6838
  classNames,
6790
6839
  className,
6791
6840
  style: style2,
@@ -6798,8 +6847,9 @@ const defaultProps$h = {
6798
6847
  withShadow,
6799
6848
  children: children2,
6800
6849
  variant,
6850
+ attributes,
6801
6851
  ...others
6802
- } = useProps("ColorSwatch", defaultProps$h, props), getStyles2 = useStyles({
6852
+ } = useProps("ColorSwatch", defaultProps$a, props), getStyles2 = useStyles({
6803
6853
  name: "ColorSwatch",
6804
6854
  props,
6805
6855
  classes: classes$6,
@@ -6808,6 +6858,7 @@ const defaultProps$h = {
6808
6858
  classNames,
6809
6859
  styles,
6810
6860
  unstyled,
6861
+ attributes,
6811
6862
  vars,
6812
6863
  varsResolver: varsResolver$6
6813
6864
  });
@@ -6831,7 +6882,7 @@ const defaultProps$h = {
6831
6882
  ColorSwatch.classes = classes$6;
6832
6883
  ColorSwatch.displayName = "@mantine/core/ColorSwatch";
6833
6884
  var classes$5 = { root: "m_3eebeb36", label: "m_9e365f20" };
6834
- const defaultProps$g = {
6885
+ const defaultProps$9 = {
6835
6886
  orientation: "horizontal"
6836
6887
  }, varsResolver$5 = (theme, { color: color2, variant, size: size2 }) => ({
6837
6888
  root: {
@@ -6840,7 +6891,7 @@ const defaultProps$g = {
6840
6891
  "--divider-size": getSize(size2, "divider-size")
6841
6892
  }
6842
6893
  }), Divider = factory((_props, ref) => {
6843
- const props = useProps("Divider", defaultProps$g, _props), {
6894
+ const props = useProps("Divider", defaultProps$9, _props), {
6844
6895
  classNames,
6845
6896
  className,
6846
6897
  style: style2,
@@ -6852,6 +6903,7 @@ const defaultProps$g = {
6852
6903
  label,
6853
6904
  labelPosition,
6854
6905
  mod,
6906
+ attributes,
6855
6907
  ...others
6856
6908
  } = props, getStyles2 = useStyles({
6857
6909
  name: "Divider",
@@ -6862,6 +6914,7 @@ const defaultProps$g = {
6862
6914
  classNames,
6863
6915
  styles,
6864
6916
  unstyled,
6917
+ attributes,
6865
6918
  vars,
6866
6919
  varsResolver: varsResolver$5
6867
6920
  });
@@ -6879,25 +6932,15 @@ const defaultProps$g = {
6879
6932
  });
6880
6933
  Divider.classes = classes$5;
6881
6934
  Divider.displayName = "@mantine/core/Divider";
6882
- function useDelayedHover({ open, close, openDelay, closeDelay }) {
6883
- const openTimeout = useRef(-1), closeTimeout = useRef(-1), clearTimeouts = () => {
6884
- window.clearTimeout(openTimeout.current), window.clearTimeout(closeTimeout.current);
6885
- }, openDropdown = () => {
6886
- clearTimeouts(), openDelay === 0 || openDelay === void 0 ? open() : openTimeout.current = window.setTimeout(open, openDelay);
6887
- }, closeDropdown = () => {
6888
- clearTimeouts(), closeDelay === 0 || closeDelay === void 0 ? close() : closeTimeout.current = window.setTimeout(close, closeDelay);
6889
- };
6890
- return useEffect(() => clearTimeouts, []), { openDropdown, closeDropdown };
6891
- }
6892
6935
  var index$1 = useLayoutEffect;
6893
6936
  const [MenuContextProvider, useMenuContext] = createSafeContext(
6894
6937
  "Menu component was not found in the tree"
6895
6938
  );
6896
6939
  var classes$4 = { dropdown: "m_dc9b7c9f", label: "m_9bfac126", divider: "m_efdf90cb", item: "m_99ac2aa1", itemLabel: "m_5476e0d3", itemSection: "m_8b75e504", chevron: "m_b85b0bed" };
6897
- const defaultProps$f = {}, MenuDivider = factory((props, ref) => {
6940
+ const MenuDivider = factory((props, ref) => {
6898
6941
  const { classNames, className, style: style2, styles, vars, ...others } = useProps(
6899
6942
  "MenuDivider",
6900
- defaultProps$f,
6943
+ null,
6901
6944
  props
6902
6945
  ), ctx = useMenuContext();
6903
6946
  return /* @__PURE__ */ jsx(
@@ -6911,7 +6954,7 @@ const defaultProps$f = {}, MenuDivider = factory((props, ref) => {
6911
6954
  });
6912
6955
  MenuDivider.classes = classes$4;
6913
6956
  MenuDivider.displayName = "@mantine/core/MenuDivider";
6914
- const defaultProps$e = {}, MenuDropdown = factory((props, ref) => {
6957
+ const MenuDropdown = factory((props, ref) => {
6915
6958
  const {
6916
6959
  classNames,
6917
6960
  className,
@@ -6923,7 +6966,7 @@ const defaultProps$e = {}, MenuDropdown = factory((props, ref) => {
6923
6966
  onKeyDown,
6924
6967
  children: children2,
6925
6968
  ...others
6926
- } = useProps("MenuDropdown", defaultProps$e, props), wrapperRef = useRef(null), ctx = useMenuContext(), handleKeyDown = createEventHandler(onKeyDown, (event) => {
6969
+ } = useProps("MenuDropdown", null, props), wrapperRef = useRef(null), ctx = useMenuContext(), handleKeyDown = createEventHandler(onKeyDown, (event) => {
6927
6970
  (event.key === "ArrowUp" || event.key === "ArrowDown") && (event.preventDefault(), wrapperRef.current?.querySelectorAll("[data-menu-item]:not(:disabled)")[0]?.focus());
6928
6971
  }), handleMouseEnter = createEventHandler(
6929
6972
  onMouseEnter,
@@ -6960,7 +7003,7 @@ const defaultProps$e = {}, MenuDropdown = factory((props, ref) => {
6960
7003
  });
6961
7004
  MenuDropdown.classes = classes$4;
6962
7005
  MenuDropdown.displayName = "@mantine/core/MenuDropdown";
6963
- const [SubMenuProvider, useSubMenuContext] = createOptionalContext(), defaultProps$d = {}, MenuItem = polymorphicFactory((props, ref) => {
7006
+ const [SubMenuProvider, useSubMenuContext] = createOptionalContext(), MenuItem = polymorphicFactory((props, ref) => {
6964
7007
  const {
6965
7008
  classNames,
6966
7009
  className,
@@ -6975,7 +7018,7 @@ const [SubMenuProvider, useSubMenuContext] = createOptionalContext(), defaultPro
6975
7018
  disabled,
6976
7019
  "data-disabled": dataDisabled,
6977
7020
  ...others
6978
- } = useProps("MenuItem", defaultProps$d, props), ctx = useMenuContext(), subCtx = useSubMenuContext(), theme = useMantineTheme(), { dir } = useDirection(), itemRef = useRef(null), _others = others, handleClick = createEventHandler(_others.onClick, () => {
7021
+ } = useProps("MenuItem", null, props), ctx = useMenuContext(), subCtx = useSubMenuContext(), theme = useMantineTheme(), { dir } = useDirection(), itemRef = useRef(null), _others = others, handleClick = createEventHandler(_others.onClick, () => {
6979
7022
  dataDisabled || (typeof closeMenuOnClick == "boolean" ? closeMenuOnClick && ctx.closeDropdownImmediately() : ctx.closeOnItemClick && ctx.closeDropdownImmediately());
6980
7023
  }), colors2 = color2 ? theme.variantColorResolver({ color: color2, theme, variant: "light" }) : void 0, parsedThemeColor = color2 ? parseThemeColor({ color: color2, theme }) : null, handleKeydown = createEventHandler(_others.onKeyDown, (event) => {
6981
7024
  event.key === "ArrowLeft" && subCtx && (subCtx.close(), subCtx.focusParentItem());
@@ -7018,10 +7061,10 @@ const [SubMenuProvider, useSubMenuContext] = createOptionalContext(), defaultPro
7018
7061
  });
7019
7062
  MenuItem.classes = classes$4;
7020
7063
  MenuItem.displayName = "@mantine/core/MenuItem";
7021
- const defaultProps$c = {}, MenuLabel = factory((props, ref) => {
7064
+ const MenuLabel = factory((props, ref) => {
7022
7065
  const { classNames, className, style: style2, styles, vars, ...others } = useProps(
7023
7066
  "MenuLabel",
7024
- defaultProps$c,
7067
+ null,
7025
7068
  props
7026
7069
  ), ctx = useMenuContext();
7027
7070
  return /* @__PURE__ */ jsx(
@@ -7035,7 +7078,7 @@ const defaultProps$c = {}, MenuLabel = factory((props, ref) => {
7035
7078
  });
7036
7079
  MenuLabel.classes = classes$4;
7037
7080
  MenuLabel.displayName = "@mantine/core/MenuLabel";
7038
- const defaultProps$b = {}, MenuSubDropdown = factory((props, ref) => {
7081
+ const MenuSubDropdown = factory((props, ref) => {
7039
7082
  const {
7040
7083
  classNames,
7041
7084
  className,
@@ -7047,7 +7090,7 @@ const defaultProps$b = {}, MenuSubDropdown = factory((props, ref) => {
7047
7090
  onKeyDown,
7048
7091
  children: children2,
7049
7092
  ...others
7050
- } = useProps("MenuSubDropdown", defaultProps$b, props), wrapperRef = useRef(null), ctx = useMenuContext(), subCtx = useSubMenuContext(), handleMouseEnter = createEventHandler(onMouseEnter, subCtx?.open), handleMouseLeave = createEventHandler(onMouseLeave, subCtx?.close);
7093
+ } = useProps("MenuSubDropdown", null, props), wrapperRef = useRef(null), ctx = useMenuContext(), subCtx = useSubMenuContext(), handleMouseEnter = createEventHandler(onMouseEnter, subCtx?.open), handleMouseLeave = createEventHandler(onMouseLeave, subCtx?.close);
7051
7094
  return /* @__PURE__ */ jsx(
7052
7095
  Popover.Dropdown,
7053
7096
  {
@@ -7072,7 +7115,7 @@ const defaultProps$b = {}, MenuSubDropdown = factory((props, ref) => {
7072
7115
  });
7073
7116
  MenuSubDropdown.classes = classes$4;
7074
7117
  MenuSubDropdown.displayName = "@mantine/core/MenuSubDropdown";
7075
- const defaultProps$a = {}, MenuSubItem = polymorphicFactory((props, ref) => {
7118
+ const MenuSubItem = polymorphicFactory((props, ref) => {
7076
7119
  const {
7077
7120
  classNames,
7078
7121
  className,
@@ -7087,7 +7130,7 @@ const defaultProps$a = {}, MenuSubItem = polymorphicFactory((props, ref) => {
7087
7130
  "data-disabled": dataDisabled,
7088
7131
  closeMenuOnClick,
7089
7132
  ...others
7090
- } = useProps("MenuSubItem", defaultProps$a, props), ctx = useMenuContext(), subCtx = useSubMenuContext(), theme = useMantineTheme(), { dir } = useDirection(), itemRef = useRef(null), _others = others, colors2 = color2 ? theme.variantColorResolver({ color: color2, theme, variant: "light" }) : void 0, parsedThemeColor = color2 ? parseThemeColor({ color: color2, theme }) : null, handleKeydown = createEventHandler(_others.onKeyDown, (event) => {
7133
+ } = useProps("MenuSubItem", null, props), ctx = useMenuContext(), subCtx = useSubMenuContext(), theme = useMantineTheme(), { dir } = useDirection(), itemRef = useRef(null), _others = others, colors2 = color2 ? theme.variantColorResolver({ color: color2, theme, variant: "light" }) : void 0, parsedThemeColor = color2 ? parseThemeColor({ color: color2, theme }) : null, handleKeydown = createEventHandler(_others.onKeyDown, (event) => {
7091
7134
  event.key === "ArrowRight" && (subCtx?.open(), subCtx?.focusFirstItem()), event.key === "ArrowLeft" && subCtx?.parentContext && (subCtx.parentContext.close(), subCtx.parentContext.focusParentItem());
7092
7135
  }), handleClick = createEventHandler(_others.onClick, () => {
7093
7136
  !dataDisabled && closeMenuOnClick && ctx.closeDropdownImmediately();
@@ -7141,13 +7184,19 @@ function MenuSubTarget({ children: children2, refProp }) {
7141
7184
  return useMenuContext(), /* @__PURE__ */ jsx(Popover.Target, { refProp, popupType: "menu", children: children2 });
7142
7185
  }
7143
7186
  MenuSubTarget.displayName = "@mantine/core/MenuSubTarget";
7144
- const defaultProps$9 = {
7187
+ const defaultProps$8 = {
7145
7188
  offset: 0,
7146
7189
  position: "right-start",
7147
- transitionProps: { duration: 0 }
7190
+ transitionProps: { duration: 0 },
7191
+ middlewares: {
7192
+ shift: {
7193
+ // Enable crossAxis shift to keep submenu dropdown within viewport bounds when positioned horizontally
7194
+ crossAxis: !0
7195
+ }
7196
+ }
7148
7197
  };
7149
7198
  function MenuSub(_props) {
7150
- const { children: children2, closeDelay, ...others } = useProps("MenuSub", defaultProps$9, _props), id2 = useId$1(), [opened, { open, close }] = useDisclosure(!1), ctx = useSubMenuContext(), { openDropdown, closeDropdown } = useDelayedHover({
7199
+ const { children: children2, closeDelay, ...others } = useProps("MenuSub", defaultProps$8, _props), id2 = useId$1(), [opened, { open, close }] = useDisclosure(!1), ctx = useSubMenuContext(), { openDropdown, closeDropdown } = useDelayedHover({
7151
7200
  open,
7152
7201
  close,
7153
7202
  closeDelay,
@@ -7168,7 +7217,7 @@ function MenuSub(_props) {
7168
7217
  }, 16),
7169
7218
  parentContext: ctx
7170
7219
  },
7171
- children: /* @__PURE__ */ jsx(Popover, { opened, ...others, withinPortal: !1, id: id2, children: children2 })
7220
+ children: /* @__PURE__ */ jsx(Popover, { opened, ...others, withinPortal: !1, withArrow: !1, id: id2, children: children2 })
7172
7221
  }
7173
7222
  );
7174
7223
  }
@@ -7177,10 +7226,10 @@ MenuSub.displayName = "@mantine/core/MenuSub";
7177
7226
  MenuSub.Target = MenuSubTarget;
7178
7227
  MenuSub.Dropdown = MenuSubDropdown;
7179
7228
  MenuSub.Item = MenuSubItem;
7180
- const defaultProps$8 = {
7229
+ const defaultProps$7 = {
7181
7230
  refProp: "ref"
7182
7231
  }, MenuTarget = forwardRef((props, ref) => {
7183
- const { children: children2, refProp, ...others } = useProps("MenuTarget", defaultProps$8, props);
7232
+ const { children: children2, refProp, ...others } = useProps("MenuTarget", defaultProps$7, props);
7184
7233
  if (!isElement$1(children2))
7185
7234
  throw new Error(
7186
7235
  "Menu.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported"
@@ -7201,7 +7250,7 @@ const defaultProps$8 = {
7201
7250
  }) });
7202
7251
  });
7203
7252
  MenuTarget.displayName = "@mantine/core/MenuTarget";
7204
- const defaultProps$7 = {
7253
+ const defaultProps$6 = {
7205
7254
  trapFocus: !0,
7206
7255
  closeOnItemClick: !0,
7207
7256
  withInitialFocusPlaceholder: !0,
@@ -7213,7 +7262,7 @@ const defaultProps$7 = {
7213
7262
  menuItemTabIndex: -1
7214
7263
  };
7215
7264
  function Menu(_props) {
7216
- const props = useProps("Menu", defaultProps$7, _props), {
7265
+ const props = useProps("Menu", defaultProps$6, _props), {
7217
7266
  children: children2,
7218
7267
  onOpen,
7219
7268
  onClose,
@@ -7235,6 +7284,7 @@ function Menu(_props) {
7235
7284
  menuItemTabIndex,
7236
7285
  keepMounted,
7237
7286
  withInitialFocusPlaceholder,
7287
+ attributes,
7238
7288
  ...others
7239
7289
  } = props, getStyles2 = useStyles({
7240
7290
  name: "Menu",
@@ -7242,7 +7292,8 @@ function Menu(_props) {
7242
7292
  props,
7243
7293
  classNames,
7244
7294
  styles,
7245
- unstyled
7295
+ unstyled,
7296
+ attributes
7246
7297
  }), [_opened, setOpened] = useUncontrolled({
7247
7298
  value: opened,
7248
7299
  defaultValue: defaultOpened,
@@ -7366,7 +7417,7 @@ function useFloatingTooltip({
7366
7417
  }, [elements.reference, refs.floating.current, update, handleMouseMove, opened]), { handleMouseMove, x, y: y2, opened, setOpened, boundaryRef, floating: refs.setFloating };
7367
7418
  }
7368
7419
  var classes$3 = { tooltip: "m_1b3c8819", arrow: "m_f898399f" };
7369
- const defaultProps$6 = {
7420
+ const defaultProps$5 = {
7370
7421
  refProp: "ref",
7371
7422
  withinPortal: !0,
7372
7423
  offset: 10,
@@ -7379,7 +7430,7 @@ const defaultProps$6 = {
7379
7430
  "--tooltip-color": color2 ? "var(--mantine-color-white)" : void 0
7380
7431
  }
7381
7432
  }), TooltipFloating = factory((_props, ref) => {
7382
- const props = useProps("TooltipFloating", defaultProps$6, _props), {
7433
+ const props = useProps("TooltipFloating", defaultProps$5, _props), {
7383
7434
  children: children2,
7384
7435
  refProp,
7385
7436
  withinPortal,
@@ -7400,6 +7451,7 @@ const defaultProps$6 = {
7400
7451
  variant,
7401
7452
  vars,
7402
7453
  portalProps,
7454
+ attributes,
7403
7455
  ...others
7404
7456
  } = props, theme = useMantineTheme(), getStyles2 = useStyles({
7405
7457
  name: "TooltipFloating",
@@ -7410,6 +7462,7 @@ const defaultProps$6 = {
7410
7462
  classNames,
7411
7463
  styles,
7412
7464
  unstyled,
7465
+ attributes,
7413
7466
  rootSelector: "tooltip",
7414
7467
  vars,
7415
7468
  varsResolver: varsResolver$4
@@ -7457,12 +7510,12 @@ const defaultProps$6 = {
7457
7510
  });
7458
7511
  TooltipFloating.classes = classes$3;
7459
7512
  TooltipFloating.displayName = "@mantine/core/TooltipFloating";
7460
- const TooltipGroupContext = createContext(!1), TooltipGroupProvider = TooltipGroupContext.Provider, useTooltipGroupContext = () => useContext(TooltipGroupContext), defaultProps$5 = {
7513
+ const TooltipGroupContext = createContext(!1), TooltipGroupProvider = TooltipGroupContext.Provider, useTooltipGroupContext = () => useContext(TooltipGroupContext), defaultProps$4 = {
7461
7514
  openDelay: 0,
7462
7515
  closeDelay: 0
7463
7516
  };
7464
7517
  function TooltipGroup(props) {
7465
- const { openDelay, closeDelay, children: children2 } = useProps("TooltipGroup", defaultProps$5, props);
7518
+ const { openDelay, closeDelay, children: children2 } = useProps("TooltipGroup", defaultProps$4, props);
7466
7519
  return /* @__PURE__ */ jsx(TooltipGroupProvider, { value: !0, children: /* @__PURE__ */ jsx(FloatingDelayGroup, { delay: { open: openDelay, close: closeDelay }, children: children2 }) });
7467
7520
  }
7468
7521
  TooltipGroup.displayName = "@mantine/core/TooltipGroup";
@@ -7534,7 +7587,7 @@ function useTooltip(settings) {
7534
7587
  placement
7535
7588
  };
7536
7589
  }
7537
- const defaultProps$4 = {
7590
+ const defaultProps$3 = {
7538
7591
  position: "top",
7539
7592
  refProp: "ref",
7540
7593
  withinPortal: !0,
@@ -7563,7 +7616,7 @@ const defaultProps$4 = {
7563
7616
  }
7564
7617
  };
7565
7618
  }, Tooltip$1 = factory((_props, ref) => {
7566
- const props = useProps("Tooltip", defaultProps$4, _props), {
7619
+ const props = useProps("Tooltip", defaultProps$3, _props), {
7567
7620
  children: children2,
7568
7621
  position,
7569
7622
  refProp,
@@ -7607,8 +7660,10 @@ const defaultProps$4 = {
7607
7660
  floatingStrategy,
7608
7661
  middlewares,
7609
7662
  autoContrast,
7663
+ attributes,
7664
+ target,
7610
7665
  ...others
7611
- } = useProps("Tooltip", defaultProps$4, props), { dir } = useDirection(), arrowRef = useRef(null), tooltip = useTooltip({
7666
+ } = useProps("Tooltip", defaultProps$3, props), { dir } = useDirection(), arrowRef = useRef(null), tooltip = useTooltip({
7612
7667
  position: getFloatingPosition(dir, position),
7613
7668
  closeDelay,
7614
7669
  openDelay,
@@ -7619,11 +7674,16 @@ const defaultProps$4 = {
7619
7674
  arrowRef,
7620
7675
  arrowOffset,
7621
7676
  offset: typeof offset2 == "number" ? offset2 + (withArrow ? arrowSize / 2 : 0) : offset2,
7622
- positionDependencies: [...positionDependencies, children2],
7677
+ positionDependencies: [...positionDependencies, target ?? children2],
7623
7678
  inline: inline2,
7624
7679
  strategy: floatingStrategy,
7625
7680
  middlewares
7626
- }), getStyles2 = useStyles({
7681
+ });
7682
+ useEffect(() => {
7683
+ const targetNode = target instanceof HTMLElement ? target : typeof target == "string" ? document.querySelector(target) : target?.current || null;
7684
+ targetNode && tooltip.reference(targetNode);
7685
+ }, [target, tooltip]);
7686
+ const getStyles2 = useStyles({
7627
7687
  name: "Tooltip",
7628
7688
  props,
7629
7689
  classes: classes$3,
@@ -7632,15 +7692,64 @@ const defaultProps$4 = {
7632
7692
  classNames,
7633
7693
  styles,
7634
7694
  unstyled,
7695
+ attributes,
7635
7696
  rootSelector: "tooltip",
7636
7697
  vars,
7637
7698
  varsResolver: varsResolver$3
7638
7699
  });
7639
- if (!isElement$1(children2))
7640
- throw new Error(
7641
- "[@mantine/core] Tooltip component children should be an element or a component that accepts ref, fragments, strings, numbers and other primitive values are not supported"
7642
- );
7643
- const targetRef = useMergedRef(tooltip.reference, getRefProp(children2), ref), transition = getTransitionProps(transitionProps, { duration: 100, transition: "fade" }), _childrenProps = children2.props;
7700
+ if (!target && !isElement$1(children2))
7701
+ return null;
7702
+ if (target) {
7703
+ const transition2 = getTransitionProps(transitionProps, { duration: 100, transition: "fade" });
7704
+ return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx(OptionalPortal, { ...portalProps, withinPortal, children: /* @__PURE__ */ jsx(
7705
+ Transition$1,
7706
+ {
7707
+ ...transition2,
7708
+ keepMounted,
7709
+ mounted: !disabled && !!tooltip.opened,
7710
+ duration: tooltip.isGroupPhase ? 10 : transition2.duration,
7711
+ children: (transitionStyles) => /* @__PURE__ */ jsxs(
7712
+ Box$1,
7713
+ {
7714
+ ...others,
7715
+ "data-fixed": floatingStrategy === "fixed" || void 0,
7716
+ variant,
7717
+ mod: [{ multiline }, mod],
7718
+ ...tooltip.getFloatingProps({
7719
+ ref: tooltip.floating,
7720
+ className: getStyles2("tooltip").className,
7721
+ style: {
7722
+ ...getStyles2("tooltip").style,
7723
+ ...transitionStyles,
7724
+ zIndex,
7725
+ top: tooltip.y ?? 0,
7726
+ left: tooltip.x ?? 0
7727
+ }
7728
+ }),
7729
+ children: [
7730
+ label,
7731
+ /* @__PURE__ */ jsx(
7732
+ FloatingArrow,
7733
+ {
7734
+ ref: arrowRef,
7735
+ arrowX: tooltip.arrowX,
7736
+ arrowY: tooltip.arrowY,
7737
+ visible: withArrow,
7738
+ position: tooltip.placement,
7739
+ arrowSize,
7740
+ arrowOffset,
7741
+ arrowRadius,
7742
+ arrowPosition,
7743
+ ...getStyles2("arrow")
7744
+ }
7745
+ )
7746
+ ]
7747
+ }
7748
+ )
7749
+ }
7750
+ ) }) });
7751
+ }
7752
+ const _children = children2, _childrenProps = _children.props, targetRef = useMergedRef(tooltip.reference, getRefProp(_children), ref), transition = getTransitionProps(transitionProps, { duration: 100, transition: "fade" });
7644
7753
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [
7645
7754
  /* @__PURE__ */ jsx(OptionalPortal, { ...portalProps, withinPortal, children: /* @__PURE__ */ jsx(
7646
7755
  Transition$1,
@@ -7690,7 +7799,7 @@ const defaultProps$4 = {
7690
7799
  }
7691
7800
  ) }),
7692
7801
  cloneElement(
7693
- children2,
7802
+ _children,
7694
7803
  tooltip.getReferenceProps({
7695
7804
  onClick,
7696
7805
  onMouseEnter,
@@ -7710,7 +7819,7 @@ Tooltip$1.displayName = "@mantine/core/Tooltip";
7710
7819
  Tooltip$1.Floating = TooltipFloating;
7711
7820
  Tooltip$1.Group = TooltipGroup;
7712
7821
  var classes$2 = { root: "m_cf365364", indicator: "m_9e182ccd", label: "m_1738fcb2", input: "m_1714d588", control: "m_69686b9b", innerLabel: "m_78882f40" };
7713
- const defaultProps$3 = {
7822
+ const defaultProps$2 = {
7714
7823
  withItemsBorders: !0
7715
7824
  }, varsResolver$2 = (theme, { radius, color: color2, transitionDuration, size: size2, transitionTimingFunction }) => ({
7716
7825
  root: {
@@ -7723,7 +7832,7 @@ const defaultProps$3 = {
7723
7832
  "--sc-font-size": getFontSize(size2)
7724
7833
  }
7725
7834
  }), SegmentedControl = factory((_props, ref) => {
7726
- const props = useProps("SegmentedControl", defaultProps$3, _props), {
7835
+ const props = useProps("SegmentedControl", defaultProps$2, _props), {
7727
7836
  classNames,
7728
7837
  className,
7729
7838
  style: style2,
@@ -7748,6 +7857,7 @@ const defaultProps$3 = {
7748
7857
  autoContrast,
7749
7858
  withItemsBorders,
7750
7859
  mod,
7860
+ attributes,
7751
7861
  ...others
7752
7862
  } = props, getStyles2 = useStyles({
7753
7863
  name: "SegmentedControl",
@@ -7758,6 +7868,7 @@ const defaultProps$3 = {
7758
7868
  classNames,
7759
7869
  styles,
7760
7870
  unstyled,
7871
+ attributes,
7761
7872
  vars,
7762
7873
  varsResolver: varsResolver$2
7763
7874
  }), theme = useMantineTheme(), _data = data.map(
@@ -8027,7 +8138,7 @@ function getLastMarkValue(marks) {
8027
8138
  return sortedMarks.length > 0 ? sortedMarks[sortedMarks.length - 1].value : 100;
8028
8139
  }
8029
8140
  var classes$1 = { root: "m_dd36362e", label: "m_c9357328", thumb: "m_c9a9a60a", trackContainer: "m_a8645c2", track: "m_c9ade57f", bar: "m_38aeed47", markWrapper: "m_b7b0423a", mark: "m_dd33bc19", markLabel: "m_68c77a5b" };
8030
- const defaultProps$2 = {
8141
+ const defaultProps$1 = {
8031
8142
  radius: "xl",
8032
8143
  min: 0,
8033
8144
  max: 100,
@@ -8047,7 +8158,7 @@ const defaultProps$2 = {
8047
8158
  "--slider-thumb-size": thumbSize !== void 0 ? rem(thumbSize) : "calc(var(--slider-size) * 2)"
8048
8159
  }
8049
8160
  }), Slider = factory((_props, ref) => {
8050
- const props = useProps("Slider", defaultProps$2, _props), {
8161
+ const props = useProps("Slider", defaultProps$1, _props), {
8051
8162
  classNames,
8052
8163
  styles,
8053
8164
  value,
@@ -8078,6 +8189,7 @@ const defaultProps$2 = {
8078
8189
  hiddenInputProps,
8079
8190
  restrictToMarks,
8080
8191
  thumbProps,
8192
+ attributes,
8081
8193
  ...others
8082
8194
  } = props, getStyles2 = useStyles({
8083
8195
  name: "Slider",
@@ -8087,6 +8199,7 @@ const defaultProps$2 = {
8087
8199
  className,
8088
8200
  styles,
8089
8201
  style: style2,
8202
+ attributes,
8090
8203
  vars,
8091
8204
  varsResolver: varsResolver$1,
8092
8205
  unstyled
@@ -8259,8 +8372,8 @@ const defaultProps$2 = {
8259
8372
  });
8260
8373
  Slider.classes = classes$1;
8261
8374
  Slider.displayName = "@mantine/core/Slider";
8262
- const defaultProps$1 = {}, Space = factory((props, ref) => {
8263
- const { w, h, miw, mih, ...others } = useProps("Space", defaultProps$1, props);
8375
+ const Space = factory((props, ref) => {
8376
+ const { w, h, miw, mih, ...others } = useProps("Space", null, props);
8264
8377
  return /* @__PURE__ */ jsx(Box$1, { ref, ...others, w, miw: miw ?? w, h, mih: mih ?? h });
8265
8378
  });
8266
8379
  Space.displayName = "@mantine/core/Space";
@@ -8287,6 +8400,7 @@ const defaultProps = {
8287
8400
  justify,
8288
8401
  gap,
8289
8402
  variant,
8403
+ attributes,
8290
8404
  ...others
8291
8405
  } = props, getStyles2 = useStyles({
8292
8406
  name: "Stack",
@@ -8297,6 +8411,7 @@ const defaultProps = {
8297
8411
  classNames,
8298
8412
  styles,
8299
8413
  unstyled,
8414
+ attributes,
8300
8415
  vars,
8301
8416
  varsResolver
8302
8417
  });
@@ -8305,7 +8420,7 @@ const defaultProps = {
8305
8420
  Stack.classes = classes;
8306
8421
  Stack.displayName = "@mantine/core/Stack";
8307
8422
  /**
8308
- * @license @tabler/icons-react v3.31.0 - MIT
8423
+ * @license @tabler/icons-react v3.34.1 - MIT
8309
8424
  *
8310
8425
  * This source code is licensed under the MIT license.
8311
8426
  * See the LICENSE file in the root directory of this source tree.
@@ -8332,14 +8447,14 @@ var defaultAttributes = {
8332
8447
  }
8333
8448
  };
8334
8449
  /**
8335
- * @license @tabler/icons-react v3.31.0 - MIT
8450
+ * @license @tabler/icons-react v3.34.1 - MIT
8336
8451
  *
8337
8452
  * This source code is licensed under the MIT license.
8338
8453
  * See the LICENSE file in the root directory of this source tree.
8339
8454
  */
8340
8455
  const createReactComponent = (type, iconName, iconNamePascal, iconNode) => {
8341
8456
  const Component = forwardRef(
8342
- ({ color: color2 = "currentColor", size: size2 = 24, stroke = 2, title: title2, className, children: children2, ...rest }, ref) => createElement(
8457
+ ({ color: color2 = "currentColor", size: size2 = 24, stroke = 2, title, className, children: children2, ...rest }, ref) => createElement(
8343
8458
  "svg",
8344
8459
  {
8345
8460
  ref,
@@ -8356,7 +8471,7 @@ const createReactComponent = (type, iconName, iconNamePascal, iconNode) => {
8356
8471
  ...rest
8357
8472
  },
8358
8473
  [
8359
- title2 && createElement("title", { key: "svg-title" }, title2),
8474
+ title && createElement("title", { key: "svg-title" }, title),
8360
8475
  ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
8361
8476
  ...Array.isArray(children2) ? children2 : [children2]
8362
8477
  ]
@@ -8365,89 +8480,90 @@ const createReactComponent = (type, iconName, iconNamePascal, iconNode) => {
8365
8480
  return Component.displayName = `${iconNamePascal}`, Component;
8366
8481
  };
8367
8482
  /**
8368
- * @license @tabler/icons-react v3.31.0 - MIT
8483
+ * @license @tabler/icons-react v3.34.1 - MIT
8369
8484
  *
8370
8485
  * This source code is licensed under the MIT license.
8371
8486
  * See the LICENSE file in the root directory of this source tree.
8372
8487
  */
8373
- var IconBrowser = createReactComponent("outline", "browser", "IconBrowser", [["path", { d: "M4 8h16", key: "svg-0" }], ["path", { d: "M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z", key: "svg-1" }], ["path", { d: "M8 4v4", key: "svg-2" }]]);
8488
+ const __iconNode$b = [["path", { d: "M4 8h16", key: "svg-0" }], ["path", { d: "M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z", key: "svg-1" }], ["path", { d: "M8 4v4", key: "svg-2" }]], IconBrowser = createReactComponent("outline", "browser", "Browser", __iconNode$b);
8374
8489
  /**
8375
- * @license @tabler/icons-react v3.31.0 - MIT
8490
+ * @license @tabler/icons-react v3.34.1 - MIT
8376
8491
  *
8377
8492
  * This source code is licensed under the MIT license.
8378
8493
  * See the LICENSE file in the root directory of this source tree.
8379
8494
  */
8380
- var IconCheck = createReactComponent("outline", "check", "IconCheck", [["path", { d: "M5 12l5 5l10 -10", key: "svg-0" }]]);
8495
+ const __iconNode$a = [["path", { d: "M5 12l5 5l10 -10", key: "svg-0" }]], IconCheck = createReactComponent("outline", "check", "Check", __iconNode$a);
8381
8496
  /**
8382
- * @license @tabler/icons-react v3.31.0 - MIT
8497
+ * @license @tabler/icons-react v3.34.1 - MIT
8383
8498
  *
8384
8499
  * This source code is licensed under the MIT license.
8385
8500
  * See the LICENSE file in the root directory of this source tree.
8386
8501
  */
8387
- var IconCylinder = createReactComponent("outline", "cylinder", "IconCylinder", [["path", { d: "M12 6m-7 0a7 3 0 1 0 14 0a7 3 0 1 0 -14 0", key: "svg-0" }], ["path", { d: "M5 6v12c0 1.657 3.134 3 7 3s7 -1.343 7 -3v-12", key: "svg-1" }]]);
8502
+ const __iconNode$9 = [["path", { d: "M12 6m-7 0a7 3 0 1 0 14 0a7 3 0 1 0 -14 0", key: "svg-0" }], ["path", { d: "M5 6v12c0 1.657 3.134 3 7 3s7 -1.343 7 -3v-12", key: "svg-1" }]], IconCylinder = createReactComponent("outline", "cylinder", "Cylinder", __iconNode$9);
8388
8503
  /**
8389
- * @license @tabler/icons-react v3.31.0 - MIT
8504
+ * @license @tabler/icons-react v3.34.1 - MIT
8390
8505
  *
8391
8506
  * This source code is licensed under the MIT license.
8392
8507
  * See the LICENSE file in the root directory of this source tree.
8393
8508
  */
8394
- var IconDeviceMobile = createReactComponent("outline", "device-mobile", "IconDeviceMobile", [["path", { d: "M6 5a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2v-14z", key: "svg-0" }], ["path", { d: "M11 4h2", key: "svg-1" }], ["path", { d: "M12 17v.01", key: "svg-2" }]]);
8509
+ const __iconNode$8 = [["path", { d: "M6 5a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2v-14z", key: "svg-0" }], ["path", { d: "M11 4h2", key: "svg-1" }], ["path", { d: "M12 17v.01", key: "svg-2" }]], IconDeviceMobile = createReactComponent("outline", "device-mobile", "DeviceMobile", __iconNode$8);
8395
8510
  /**
8396
- * @license @tabler/icons-react v3.31.0 - MIT
8511
+ * @license @tabler/icons-react v3.34.1 - MIT
8397
8512
  *
8398
8513
  * This source code is licensed under the MIT license.
8399
8514
  * See the LICENSE file in the root directory of this source tree.
8400
8515
  */
8401
- var IconFileSymlink = createReactComponent("outline", "file-symlink", "IconFileSymlink", [["path", { d: "M4 21v-4a3 3 0 0 1 3 -3h5", key: "svg-0" }], ["path", { d: "M9 17l3 -3l-3 -3", key: "svg-1" }], ["path", { d: "M14 3v4a1 1 0 0 0 1 1h4", key: "svg-2" }], ["path", { d: "M5 11v-6a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-9.5", key: "svg-3" }]]);
8516
+ const __iconNode$7 = [["path", { d: "M4 21v-4a3 3 0 0 1 3 -3h5", key: "svg-0" }], ["path", { d: "M9 17l3 -3l-3 -3", key: "svg-1" }], ["path", { d: "M14 3v4a1 1 0 0 0 1 1h4", key: "svg-2" }], ["path", { d: "M5 11v-6a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-9.5", key: "svg-3" }]], IconFileSymlink = createReactComponent("outline", "file-symlink", "FileSymlink", __iconNode$7);
8402
8517
  /**
8403
- * @license @tabler/icons-react v3.31.0 - MIT
8518
+ * @license @tabler/icons-react v3.34.1 - MIT
8404
8519
  *
8405
8520
  * This source code is licensed under the MIT license.
8406
8521
  * See the LICENSE file in the root directory of this source tree.
8407
8522
  */
8408
- var IconId = createReactComponent("outline", "id", "IconId", [["path", { d: "M3 4m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v10a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z", key: "svg-0" }], ["path", { d: "M9 10m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0", key: "svg-1" }], ["path", { d: "M15 8l2 0", key: "svg-2" }], ["path", { d: "M15 12l2 0", key: "svg-3" }], ["path", { d: "M7 16l10 0", key: "svg-4" }]]);
8523
+ const __iconNode$6 = [["path", { d: "M3 4m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v10a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z", key: "svg-0" }], ["path", { d: "M9 10m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0", key: "svg-1" }], ["path", { d: "M15 8l2 0", key: "svg-2" }], ["path", { d: "M15 12l2 0", key: "svg-3" }], ["path", { d: "M7 16l10 0", key: "svg-4" }]], IconId = createReactComponent("outline", "id", "Id", __iconNode$6);
8409
8524
  /**
8410
- * @license @tabler/icons-react v3.31.0 - MIT
8525
+ * @license @tabler/icons-react v3.34.1 - MIT
8411
8526
  *
8412
8527
  * This source code is licensed under the MIT license.
8413
8528
  * See the LICENSE file in the root directory of this source tree.
8414
8529
  */
8415
- var IconRectangularPrism = createReactComponent("outline", "rectangular-prism", "IconRectangularPrism", [["path", { d: "M21 14.008v-5.018a1.98 1.98 0 0 0 -1 -1.717l-4 -2.008a2.016 2.016 0 0 0 -2 0l-10 5.008c-.619 .355 -1 1.01 -1 1.718v5.018c0 .709 .381 1.363 1 1.717l4 2.008a2.016 2.016 0 0 0 2 0l10 -5.008c.619 -.355 1 -1.01 1 -1.718z", key: "svg-0" }], ["path", { d: "M9 21v-7.5", key: "svg-1" }], ["path", { d: "M9 13.5l11.5 -5.5", key: "svg-2" }], ["path", { d: "M3.5 11l5.5 2.5", key: "svg-3" }]]);
8530
+ const __iconNode$5 = [["path", { d: "M21 14.008v-5.018a1.98 1.98 0 0 0 -1 -1.717l-4 -2.008a2.016 2.016 0 0 0 -2 0l-10 5.008c-.619 .355 -1 1.01 -1 1.718v5.018c0 .709 .381 1.363 1 1.717l4 2.008a2.016 2.016 0 0 0 2 0l10 -5.008c.619 -.355 1 -1.01 1 -1.718z", key: "svg-0" }], ["path", { d: "M9 21v-7.5", key: "svg-1" }], ["path", { d: "M9 13.5l11.5 -5.5", key: "svg-2" }], ["path", { d: "M3.5 11l5.5 2.5", key: "svg-3" }]], IconRectangularPrism = createReactComponent("outline", "rectangular-prism", "RectangularPrism", __iconNode$5);
8416
8531
  /**
8417
- * @license @tabler/icons-react v3.31.0 - MIT
8532
+ * @license @tabler/icons-react v3.34.1 - MIT
8418
8533
  *
8419
8534
  * This source code is licensed under the MIT license.
8420
8535
  * See the LICENSE file in the root directory of this source tree.
8421
8536
  */
8422
- var IconReorder = createReactComponent("outline", "reorder", "IconReorder", [["path", { d: "M3 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z", key: "svg-0" }], ["path", { d: "M10 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z", key: "svg-1" }], ["path", { d: "M17 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z", key: "svg-2" }], ["path", { d: "M5 11v-3a3 3 0 0 1 3 -3h8a3 3 0 0 1 3 3v3", key: "svg-3" }], ["path", { d: "M16.5 8.5l2.5 2.5l2.5 -2.5", key: "svg-4" }]]);
8537
+ const __iconNode$4 = [["path", { d: "M3 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z", key: "svg-0" }], ["path", { d: "M10 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z", key: "svg-1" }], ["path", { d: "M17 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z", key: "svg-2" }], ["path", { d: "M5 11v-3a3 3 0 0 1 3 -3h8a3 3 0 0 1 3 3v3", key: "svg-3" }], ["path", { d: "M16.5 8.5l2.5 2.5l2.5 -2.5", key: "svg-4" }]], IconReorder = createReactComponent("outline", "reorder", "Reorder", __iconNode$4);
8423
8538
  /**
8424
- * @license @tabler/icons-react v3.31.0 - MIT
8539
+ * @license @tabler/icons-react v3.34.1 - MIT
8425
8540
  *
8426
8541
  * This source code is licensed under the MIT license.
8427
8542
  * See the LICENSE file in the root directory of this source tree.
8428
8543
  */
8429
- var IconSelector = createReactComponent("outline", "selector", "IconSelector", [["path", { d: "M8 9l4 -4l4 4", key: "svg-0" }], ["path", { d: "M16 15l-4 4l-4 -4", key: "svg-1" }]]);
8544
+ const __iconNode$3 = [["path", { d: "M8 9l4 -4l4 4", key: "svg-0" }], ["path", { d: "M16 15l-4 4l-4 -4", key: "svg-1" }]], IconSelector = createReactComponent("outline", "selector", "Selector", __iconNode$3);
8430
8545
  /**
8431
- * @license @tabler/icons-react v3.31.0 - MIT
8546
+ * @license @tabler/icons-react v3.34.1 - MIT
8432
8547
  *
8433
8548
  * This source code is licensed under the MIT license.
8434
8549
  * See the LICENSE file in the root directory of this source tree.
8435
8550
  */
8436
- var IconTransform = createReactComponent("outline", "transform", "IconTransform", [["path", { d: "M3 6a3 3 0 1 0 6 0a3 3 0 0 0 -6 0", key: "svg-0" }], ["path", { d: "M21 11v-3a2 2 0 0 0 -2 -2h-6l3 3m0 -6l-3 3", key: "svg-1" }], ["path", { d: "M3 13v3a2 2 0 0 0 2 2h6l-3 -3m0 6l3 -3", key: "svg-2" }], ["path", { d: "M15 18a3 3 0 1 0 6 0a3 3 0 0 0 -6 0", key: "svg-3" }]]);
8551
+ const __iconNode$2 = [["path", { d: "M3 6a3 3 0 1 0 6 0a3 3 0 0 0 -6 0", key: "svg-0" }], ["path", { d: "M21 11v-3a2 2 0 0 0 -2 -2h-6l3 3m0 -6l-3 3", key: "svg-1" }], ["path", { d: "M3 13v3a2 2 0 0 0 2 2h6l-3 -3m0 6l3 -3", key: "svg-2" }], ["path", { d: "M15 18a3 3 0 1 0 6 0a3 3 0 0 0 -6 0", key: "svg-3" }]], IconTransform = createReactComponent("outline", "transform", "Transform", __iconNode$2);
8437
8552
  /**
8438
- * @license @tabler/icons-react v3.31.0 - MIT
8553
+ * @license @tabler/icons-react v3.34.1 - MIT
8439
8554
  *
8440
8555
  * This source code is licensed under the MIT license.
8441
8556
  * See the LICENSE file in the root directory of this source tree.
8442
8557
  */
8443
- var IconUser = createReactComponent("outline", "user", "IconUser", [["path", { d: "M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0", key: "svg-0" }], ["path", { d: "M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2", key: "svg-1" }]]);
8558
+ const __iconNode$1 = [["path", { d: "M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0", key: "svg-0" }], ["path", { d: "M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2", key: "svg-1" }]], IconUser = createReactComponent("outline", "user", "User", __iconNode$1);
8444
8559
  /**
8445
- * @license @tabler/icons-react v3.31.0 - MIT
8560
+ * @license @tabler/icons-react v3.34.1 - MIT
8446
8561
  *
8447
8562
  * This source code is licensed under the MIT license.
8448
8563
  * See the LICENSE file in the root directory of this source tree.
8449
8564
  */
8450
- var IconZoomScan = createReactComponent("outline", "zoom-scan", "IconZoomScan", [["path", { d: "M4 8v-2a2 2 0 0 1 2 -2h2", key: "svg-0" }], ["path", { d: "M4 16v2a2 2 0 0 0 2 2h2", key: "svg-1" }], ["path", { d: "M16 4h2a2 2 0 0 1 2 2v2", key: "svg-2" }], ["path", { d: "M16 20h2a2 2 0 0 0 2 -2v-2", key: "svg-3" }], ["path", { d: "M8 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0", key: "svg-4" }], ["path", { d: "M16 16l-2.5 -2.5", key: "svg-5" }]]), s = { done: !1, hasNext: !1 };
8565
+ const __iconNode = [["path", { d: "M4 8v-2a2 2 0 0 1 2 -2h2", key: "svg-0" }], ["path", { d: "M4 16v2a2 2 0 0 0 2 2h2", key: "svg-1" }], ["path", { d: "M16 4h2a2 2 0 0 1 2 2v2", key: "svg-2" }], ["path", { d: "M16 20h2a2 2 0 0 0 2 -2v-2", key: "svg-3" }], ["path", { d: "M8 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0", key: "svg-4" }], ["path", { d: "M16 16l-2.5 -2.5", key: "svg-5" }]], IconZoomScan = createReactComponent("outline", "zoom-scan", "ZoomScan", __iconNode);
8566
+ var s = { done: !1, hasNext: !1 };
8451
8567
  function C(t2, ...o2) {
8452
8568
  let n2 = t2, u2 = o2.map((e2) => "lazy" in e2 ? y(e2) : void 0), p = 0;
8453
8569
  for (; p < o2.length; ) {
@@ -8517,18 +8633,15 @@ function n$1(e2) {
8517
8633
  return !!e2;
8518
8634
  }
8519
8635
  function r(...n2) {
8520
- return u$2(t$5, n2);
8636
+ return u$2(t$4, n2);
8521
8637
  }
8522
- var t$5 = (n2, o2) => n2.join(o2);
8523
- function t$4(...n2) {
8638
+ var t$4 = (n2, o2) => n2.join(o2);
8639
+ function t$3(...n2) {
8524
8640
  return u$2(Object.keys, n2);
8525
8641
  }
8526
8642
  function e(r2) {
8527
8643
  return typeof r2 == "number" && !Number.isNaN(r2);
8528
8644
  }
8529
- function t$3(r2) {
8530
- return typeof r2 == "string";
8531
- }
8532
8645
  function n(e2) {
8533
8646
  return e2 === void 0 ? !0 : typeof e2 == "string" || Array.isArray(e2) ? e2.length === 0 : Object.keys(e2).length === 0;
8534
8647
  }
@@ -8557,88 +8670,117 @@ function useConstant(init2) {
8557
8670
  const ref = useRef(null);
8558
8671
  return ref.current === null && (ref.current = init2()), ref.current;
8559
8672
  }
8560
- const isBrowser$1 = typeof window < "u", useIsomorphicLayoutEffect$1 = isBrowser$1 ? useLayoutEffect : useEffect, PresenceContext = /* @__PURE__ */ createContext(null), MotionConfigContext = createContext({
8673
+ const isBrowser$1 = typeof window < "u", useIsomorphicLayoutEffect$1 = isBrowser$1 ? useLayoutEffect : useEffect, PresenceContext = /* @__PURE__ */ createContext(null), clamp$1 = (min2, max2, v) => v > max2 ? max2 : v < min2 ? min2 : v, checkStringStartsWith = (token) => (key) => typeof key == "string" && key.startsWith(token), isCSSVariableName = /* @__PURE__ */ checkStringStartsWith("--"), startsAsVariableToken = /* @__PURE__ */ checkStringStartsWith("var(--"), isCSSVariableToken = (value) => startsAsVariableToken(value) ? singleCssVariableRegex.test(value.split("/*")[0].trim()) : !1, singleCssVariableRegex = /var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu, number = {
8674
+ test: (v) => typeof v == "number",
8675
+ parse: parseFloat,
8676
+ transform: (v) => v
8677
+ }, alpha = {
8678
+ ...number,
8679
+ transform: (v) => clamp$1(0, 1, v)
8680
+ }, scale = {
8681
+ ...number,
8682
+ default: 1
8683
+ }, createUnitType = /* @__NO_SIDE_EFFECTS__ */ (unit) => ({
8684
+ test: (v) => typeof v == "string" && v.endsWith(unit) && v.split(" ").length === 1,
8685
+ parse: parseFloat,
8686
+ transform: (v) => `${v}${unit}`
8687
+ }), degrees$1 = /* @__PURE__ */ createUnitType("deg"), percent = /* @__PURE__ */ createUnitType("%"), px = /* @__PURE__ */ createUnitType("px"), vh = /* @__PURE__ */ createUnitType("vh"), vw = /* @__PURE__ */ createUnitType("vw"), progressPercentage = {
8688
+ ...percent,
8689
+ parse: (v) => percent.parse(v) / 100,
8690
+ transform: (v) => percent.transform(v * 100)
8691
+ }, transformPropOrder = [
8692
+ "transformPerspective",
8693
+ "x",
8694
+ "y",
8695
+ "z",
8696
+ "translateX",
8697
+ "translateY",
8698
+ "translateZ",
8699
+ "scale",
8700
+ "scaleX",
8701
+ "scaleY",
8702
+ "rotate",
8703
+ "rotateX",
8704
+ "rotateY",
8705
+ "rotateZ",
8706
+ "skew",
8707
+ "skewX",
8708
+ "skewY"
8709
+ ], transformProps = new Set(transformPropOrder), int = {
8710
+ ...number,
8711
+ transform: Math.round
8712
+ }, transformValueTypes = {
8713
+ rotate: degrees$1,
8714
+ rotateX: degrees$1,
8715
+ rotateY: degrees$1,
8716
+ rotateZ: degrees$1,
8717
+ scale,
8718
+ scaleX: scale,
8719
+ scaleY: scale,
8720
+ scaleZ: scale,
8721
+ skew: degrees$1,
8722
+ skewX: degrees$1,
8723
+ skewY: degrees$1,
8724
+ distance: px,
8725
+ translateX: px,
8726
+ translateY: px,
8727
+ translateZ: px,
8728
+ x: px,
8729
+ y: px,
8730
+ z: px,
8731
+ perspective: px,
8732
+ transformPerspective: px,
8733
+ opacity: alpha,
8734
+ originX: progressPercentage,
8735
+ originY: progressPercentage,
8736
+ originZ: px
8737
+ }, numberValueTypes = {
8738
+ // Border props
8739
+ borderWidth: px,
8740
+ borderTopWidth: px,
8741
+ borderRightWidth: px,
8742
+ borderBottomWidth: px,
8743
+ borderLeftWidth: px,
8744
+ borderRadius: px,
8745
+ radius: px,
8746
+ borderTopLeftRadius: px,
8747
+ borderTopRightRadius: px,
8748
+ borderBottomRightRadius: px,
8749
+ borderBottomLeftRadius: px,
8750
+ // Positioning props
8751
+ width: px,
8752
+ maxWidth: px,
8753
+ height: px,
8754
+ maxHeight: px,
8755
+ top: px,
8756
+ right: px,
8757
+ bottom: px,
8758
+ left: px,
8759
+ // Spacing props
8760
+ padding: px,
8761
+ paddingTop: px,
8762
+ paddingRight: px,
8763
+ paddingBottom: px,
8764
+ paddingLeft: px,
8765
+ margin: px,
8766
+ marginTop: px,
8767
+ marginRight: px,
8768
+ marginBottom: px,
8769
+ marginLeft: px,
8770
+ // Misc
8771
+ backgroundPositionX: px,
8772
+ backgroundPositionY: px,
8773
+ ...transformValueTypes,
8774
+ zIndex: int,
8775
+ // SVG
8776
+ fillOpacity: alpha,
8777
+ strokeOpacity: alpha,
8778
+ numOctaves: int
8779
+ }, getValueAsType = (value, type) => type && typeof value == "number" ? type.transform(value) : value, isMotionValue = (value) => !!(value && value.getVelocity), MotionConfigContext = createContext({
8561
8780
  transformPagePoint: (p) => p,
8562
8781
  isStatic: !1,
8563
8782
  reducedMotion: "never"
8564
- }), stepsOrder = [
8565
- "setup",
8566
- // Compute
8567
- "read",
8568
- // Read
8569
- "resolveKeyframes",
8570
- // Write/Read/Write/Read
8571
- "preUpdate",
8572
- // Compute
8573
- "update",
8574
- // Compute
8575
- "preRender",
8576
- // Compute
8577
- "render",
8578
- // Write
8579
- "postRender"
8580
- // Compute
8581
- ];
8582
- function createRenderStep(runNextFrame, stepName) {
8583
- let thisFrame = /* @__PURE__ */ new Set(), nextFrame = /* @__PURE__ */ new Set(), isProcessing = !1, flushNextFrame = !1;
8584
- const toKeepAlive = /* @__PURE__ */ new WeakSet();
8585
- let latestFrameData = {
8586
- delta: 0,
8587
- timestamp: 0,
8588
- isProcessing: !1
8589
- };
8590
- function triggerCallback(callback) {
8591
- toKeepAlive.has(callback) && (step.schedule(callback), runNextFrame()), callback(latestFrameData);
8592
- }
8593
- const step = {
8594
- /**
8595
- * Schedule a process to run on the next frame.
8596
- */
8597
- schedule: (callback, keepAlive = !1, immediate = !1) => {
8598
- const queue = immediate && isProcessing ? thisFrame : nextFrame;
8599
- return keepAlive && toKeepAlive.add(callback), queue.has(callback) || queue.add(callback), callback;
8600
- },
8601
- /**
8602
- * Cancel the provided callback from running on the next frame.
8603
- */
8604
- cancel: (callback) => {
8605
- nextFrame.delete(callback), toKeepAlive.delete(callback);
8606
- },
8607
- /**
8608
- * Execute all schedule callbacks.
8609
- */
8610
- process: (frameData) => {
8611
- if (latestFrameData = frameData, isProcessing) {
8612
- flushNextFrame = !0;
8613
- return;
8614
- }
8615
- isProcessing = !0, [thisFrame, nextFrame] = [nextFrame, thisFrame], thisFrame.forEach(triggerCallback), thisFrame.clear(), isProcessing = !1, flushNextFrame && (flushNextFrame = !1, step.process(frameData));
8616
- }
8617
- };
8618
- return step;
8619
- }
8620
- const MotionGlobalConfig = {}, maxElapsed = 40;
8621
- function createRenderBatcher(scheduleNextBatch, allowKeepAlive) {
8622
- let runNextFrame = !1, useDefaultElapsed = !0;
8623
- const state = {
8624
- delta: 0,
8625
- timestamp: 0,
8626
- isProcessing: !1
8627
- }, flagRunNextFrame = () => runNextFrame = !0, steps = stepsOrder.reduce((acc, key) => (acc[key] = createRenderStep(flagRunNextFrame), acc), {}), { setup, read, resolveKeyframes, preUpdate, update, preRender, render, postRender } = steps, processBatch = () => {
8628
- const timestamp = MotionGlobalConfig.useManualTiming ? state.timestamp : performance.now();
8629
- runNextFrame = !1, MotionGlobalConfig.useManualTiming || (state.delta = useDefaultElapsed ? 1e3 / 60 : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1)), state.timestamp = timestamp, state.isProcessing = !0, setup.process(state), read.process(state), resolveKeyframes.process(state), preUpdate.process(state), update.process(state), preRender.process(state), render.process(state), postRender.process(state), state.isProcessing = !1, runNextFrame && allowKeepAlive && (useDefaultElapsed = !1, scheduleNextBatch(processBatch));
8630
- }, wake2 = () => {
8631
- runNextFrame = !0, useDefaultElapsed = !0, state.isProcessing || scheduleNextBatch(processBatch);
8632
- };
8633
- return { schedule: stepsOrder.reduce((acc, key) => {
8634
- const step = steps[key];
8635
- return acc[key] = (process2, keepAlive = !1, immediate = !1) => (runNextFrame || wake2(), step.schedule(process2, keepAlive, immediate)), acc;
8636
- }, {}), cancel: (process2) => {
8637
- for (let i2 = 0; i2 < stepsOrder.length; i2++)
8638
- steps[stepsOrder[i2]].cancel(process2);
8639
- }, state, steps };
8640
- }
8641
- const LazyContext = createContext({ strict: !1 }), featureProps = {
8783
+ }), LazyContext = createContext({ strict: !1 }), featureProps = {
8642
8784
  animation: [
8643
8785
  "animate",
8644
8786
  "variants",
@@ -8662,6 +8804,13 @@ for (const key in featureProps)
8662
8804
  featureDefinitions[key] = {
8663
8805
  isEnabled: (props) => featureProps[key].some((name) => !!props[name])
8664
8806
  };
8807
+ function loadFeatures(features) {
8808
+ for (const key in features)
8809
+ featureDefinitions[key] = {
8810
+ ...featureDefinitions[key],
8811
+ ...features[key]
8812
+ };
8813
+ }
8665
8814
  const validMotionProps = /* @__PURE__ */ new Set([
8666
8815
  "animate",
8667
8816
  "exit",
@@ -8699,7 +8848,7 @@ function isValidMotionProp(key) {
8699
8848
  }
8700
8849
  let shouldForward = (key) => !isValidMotionProp(key);
8701
8850
  function loadExternalIsValidProp(isValidProp) {
8702
- isValidProp && (shouldForward = (key) => key.startsWith("on") ? !isValidMotionProp(key) : isValidProp(key));
8851
+ typeof isValidProp == "function" && (shouldForward = (key) => key.startsWith("on") ? !isValidMotionProp(key) : isValidProp(key));
8703
8852
  }
8704
8853
  try {
8705
8854
  loadExternalIsValidProp(require("@emotion/is-prop-valid").default);
@@ -8712,19 +8861,6 @@ function filterProps(props, isDom, forwardMotionProps) {
8712
8861
  props.draggable && key.startsWith("onDrag")) && (filteredProps[key] = props[key]);
8713
8862
  return filteredProps;
8714
8863
  }
8715
- function createDOMMotionComponentProxy(componentFactory) {
8716
- if (typeof Proxy > "u")
8717
- return componentFactory;
8718
- const componentCache = /* @__PURE__ */ new Map(), deprecatedFactoryFunction = (...args) => componentFactory(...args);
8719
- return new Proxy(deprecatedFactoryFunction, {
8720
- /**
8721
- * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.
8722
- * The prop name is passed through as `key` and we can use that to generate a `motion`
8723
- * DOM component with that name.
8724
- */
8725
- get: (_target, key) => key === "create" ? componentFactory : (componentCache.has(key) || componentCache.set(key, componentFactory(key)), componentCache.get(key))
8726
- });
8727
- }
8728
8864
  const MotionContext = /* @__PURE__ */ createContext({});
8729
8865
  function isAnimationControls(v) {
8730
8866
  return v !== null && typeof v == "object" && typeof v.start == "function";
@@ -8764,226 +8900,15 @@ function useCreateMotionContext(props) {
8764
8900
  function variantLabelsAsDependency(prop) {
8765
8901
  return Array.isArray(prop) ? prop.join(" ") : prop;
8766
8902
  }
8767
- const motionComponentSymbol = Symbol.for("motionComponentSymbol");
8768
- function isRefObject(ref) {
8769
- return ref && typeof ref == "object" && Object.prototype.hasOwnProperty.call(ref, "current");
8770
- }
8771
- function useMotionRef(visualState, visualElement, externalRef) {
8772
- return useCallback(
8773
- (instance) => {
8774
- instance && visualState.onMount && visualState.onMount(instance), visualElement && (instance ? visualElement.mount(instance) : visualElement.unmount()), externalRef && (typeof externalRef == "function" ? externalRef(instance) : isRefObject(externalRef) && (externalRef.current = instance));
8775
- },
8776
- /**
8777
- * Only pass a new ref callback to React if we've received a visual element
8778
- * factory. Otherwise we'll be mounting/remounting every time externalRef
8779
- * or other dependencies change.
8780
- */
8781
- [visualElement]
8782
- );
8903
+ const scaleCorrectors = {};
8904
+ function addScaleCorrector(correctors) {
8905
+ for (const key in correctors)
8906
+ scaleCorrectors[key] = correctors[key], isCSSVariableName(key) && (scaleCorrectors[key].isCSSVariable = !0);
8783
8907
  }
8784
- const camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, "$1-$2").toLowerCase(), optimizedAppearDataId = "framerAppearId", optimizedAppearDataAttribute = "data-" + camelToDash(optimizedAppearDataId), SwitchLayoutGroupContext = createContext({}), { schedule: microtask } = /* @__PURE__ */ createRenderBatcher(queueMicrotask, !1);
8785
- function useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor) {
8786
- const { visualElement: parent } = useContext(MotionContext), lazyContext = useContext(LazyContext), presenceContext = useContext(PresenceContext), reducedMotionConfig = useContext(MotionConfigContext).reducedMotion, visualElementRef = useRef(null);
8787
- createVisualElement = createVisualElement || lazyContext.renderer, !visualElementRef.current && createVisualElement && (visualElementRef.current = createVisualElement(Component, {
8788
- visualState,
8789
- parent,
8790
- props,
8791
- presenceContext,
8792
- blockInitialAnimation: presenceContext ? presenceContext.initial === !1 : !1,
8793
- reducedMotionConfig
8794
- }));
8795
- const visualElement = visualElementRef.current, initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);
8796
- visualElement && !visualElement.projection && ProjectionNodeConstructor && (visualElement.type === "html" || visualElement.type === "svg") && createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);
8797
- const isMounted = useRef(!1);
8798
- useInsertionEffect$1(() => {
8799
- visualElement && isMounted.current && visualElement.update(props, presenceContext);
8800
- });
8801
- const optimisedAppearId = props[optimizedAppearDataAttribute], wantsHandoff = useRef(!!optimisedAppearId && !window.MotionHandoffIsComplete?.(optimisedAppearId) && window.MotionHasOptimisedAnimation?.(optimisedAppearId));
8802
- return useIsomorphicLayoutEffect$1(() => {
8803
- visualElement && (isMounted.current = !0, window.MotionIsMounted = !0, visualElement.updateFeatures(), microtask.render(visualElement.render), wantsHandoff.current && visualElement.animationState && visualElement.animationState.animateChanges());
8804
- }), useEffect(() => {
8805
- visualElement && (!wantsHandoff.current && visualElement.animationState && visualElement.animationState.animateChanges(), wantsHandoff.current && (queueMicrotask(() => {
8806
- window.MotionHandoffMarkAsComplete?.(optimisedAppearId);
8807
- }), wantsHandoff.current = !1));
8808
- }), visualElement;
8809
- }
8810
- function createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {
8811
- const { layoutId, layout, drag: drag2, dragConstraints, layoutScroll, layoutRoot, layoutCrossfade } = props;
8812
- visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props["data-framer-portal-id"] ? void 0 : getClosestProjectingNode(visualElement.parent)), visualElement.projection.setOptions({
8813
- layoutId,
8814
- layout,
8815
- alwaysMeasureLayout: !!drag2 || dragConstraints && isRefObject(dragConstraints),
8816
- visualElement,
8817
- /**
8818
- * TODO: Update options in an effect. This could be tricky as it'll be too late
8819
- * to update by the time layout animations run.
8820
- * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,
8821
- * ensuring it gets called if there's no potential layout animations.
8822
- *
8823
- */
8824
- animationType: typeof layout == "string" ? layout : "both",
8825
- initialPromotionConfig,
8826
- crossfade: layoutCrossfade,
8827
- layoutScroll,
8828
- layoutRoot
8829
- });
8830
- }
8831
- function getClosestProjectingNode(visualElement) {
8832
- if (visualElement)
8833
- return visualElement.options.allowProjection !== !1 ? visualElement.projection : getClosestProjectingNode(visualElement.parent);
8834
- }
8835
- function createRendererMotionComponent({ preloadedFeatures, createVisualElement, useRender, useVisualState, Component }) {
8836
- function MotionComponent(props, externalRef) {
8837
- let MeasureLayout;
8838
- const configAndProps = {
8839
- ...useContext(MotionConfigContext),
8840
- ...props,
8841
- layoutId: useLayoutId(props)
8842
- }, { isStatic } = configAndProps, context2 = useCreateMotionContext(props), visualState = useVisualState(props, isStatic);
8843
- if (!isStatic && isBrowser$1) {
8844
- useStrictMode();
8845
- const layoutProjection = getProjectionFunctionality(configAndProps);
8846
- MeasureLayout = layoutProjection.MeasureLayout, context2.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode);
8847
- }
8848
- return jsxs(MotionContext.Provider, { value: context2, children: [MeasureLayout && context2.visualElement ? jsx(MeasureLayout, { visualElement: context2.visualElement, ...configAndProps }) : null, useRender(Component, props, useMotionRef(visualState, context2.visualElement, externalRef), visualState, isStatic, context2.visualElement)] });
8849
- }
8850
- MotionComponent.displayName = `motion.${typeof Component == "string" ? Component : `create(${Component.displayName ?? Component.name ?? ""})`}`;
8851
- const ForwardRefMotionComponent = forwardRef(MotionComponent);
8852
- return ForwardRefMotionComponent[motionComponentSymbol] = Component, ForwardRefMotionComponent;
8853
- }
8854
- function useLayoutId({ layoutId }) {
8855
- const layoutGroupId = useContext(LayoutGroupContext).id;
8856
- return layoutGroupId && layoutId !== void 0 ? layoutGroupId + "-" + layoutId : layoutId;
8857
- }
8858
- function useStrictMode(configAndProps, preloadedFeatures) {
8859
- useContext(LazyContext).strict;
8860
- }
8861
- function getProjectionFunctionality(props) {
8862
- const { drag: drag2, layout } = featureDefinitions;
8863
- if (!drag2 && !layout)
8864
- return {};
8865
- const combined = { ...drag2, ...layout };
8866
- return {
8867
- MeasureLayout: drag2?.isEnabled(props) || layout?.isEnabled(props) ? combined.MeasureLayout : void 0,
8868
- ProjectionNode: combined.ProjectionNode
8869
- };
8870
- }
8871
- const checkStringStartsWith = (token) => (key) => typeof key == "string" && key.startsWith(token), isCSSVariableName = /* @__PURE__ */ checkStringStartsWith("--"), startsAsVariableToken = /* @__PURE__ */ checkStringStartsWith("var(--"), isCSSVariableToken = (value) => startsAsVariableToken(value) ? singleCssVariableRegex.test(value.split("/*")[0].trim()) : !1, singleCssVariableRegex = /var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu, scaleCorrectors = {};
8872
- function addScaleCorrector(correctors) {
8873
- for (const key in correctors)
8874
- scaleCorrectors[key] = correctors[key], isCSSVariableName(key) && (scaleCorrectors[key].isCSSVariable = !0);
8875
- }
8876
- const transformPropOrder = [
8877
- "transformPerspective",
8878
- "x",
8879
- "y",
8880
- "z",
8881
- "translateX",
8882
- "translateY",
8883
- "translateZ",
8884
- "scale",
8885
- "scaleX",
8886
- "scaleY",
8887
- "rotate",
8888
- "rotateX",
8889
- "rotateY",
8890
- "rotateZ",
8891
- "skew",
8892
- "skewX",
8893
- "skewY"
8894
- ], transformProps = new Set(transformPropOrder);
8895
8908
  function isForcedMotionValue(key, { layout, layoutId }) {
8896
8909
  return transformProps.has(key) || key.startsWith("origin") || (layout || layoutId !== void 0) && (!!scaleCorrectors[key] || key === "opacity");
8897
8910
  }
8898
- const getValueAsType = (value, type) => type && typeof value == "number" ? type.transform(value) : value, clamp$1 = (min2, max2, v) => v > max2 ? max2 : v < min2 ? min2 : v, number = {
8899
- test: (v) => typeof v == "number",
8900
- parse: parseFloat,
8901
- transform: (v) => v
8902
- }, alpha = {
8903
- ...number,
8904
- transform: (v) => clamp$1(0, 1, v)
8905
- }, scale = {
8906
- ...number,
8907
- default: 1
8908
- }, int = {
8909
- ...number,
8910
- transform: Math.round
8911
- }, createUnitType = /* @__NO_SIDE_EFFECTS__ */ (unit) => ({
8912
- test: (v) => typeof v == "string" && v.endsWith(unit) && v.split(" ").length === 1,
8913
- parse: parseFloat,
8914
- transform: (v) => `${v}${unit}`
8915
- }), degrees$1 = /* @__PURE__ */ createUnitType("deg"), percent = /* @__PURE__ */ createUnitType("%"), px = /* @__PURE__ */ createUnitType("px"), vh = /* @__PURE__ */ createUnitType("vh"), vw = /* @__PURE__ */ createUnitType("vw"), progressPercentage = {
8916
- ...percent,
8917
- parse: (v) => percent.parse(v) / 100,
8918
- transform: (v) => percent.transform(v * 100)
8919
- }, transformValueTypes = {
8920
- rotate: degrees$1,
8921
- rotateX: degrees$1,
8922
- rotateY: degrees$1,
8923
- rotateZ: degrees$1,
8924
- scale,
8925
- scaleX: scale,
8926
- scaleY: scale,
8927
- scaleZ: scale,
8928
- skew: degrees$1,
8929
- skewX: degrees$1,
8930
- skewY: degrees$1,
8931
- distance: px,
8932
- translateX: px,
8933
- translateY: px,
8934
- translateZ: px,
8935
- x: px,
8936
- y: px,
8937
- z: px,
8938
- perspective: px,
8939
- transformPerspective: px,
8940
- opacity: alpha,
8941
- originX: progressPercentage,
8942
- originY: progressPercentage,
8943
- originZ: px
8944
- }, numberValueTypes = {
8945
- // Border props
8946
- borderWidth: px,
8947
- borderTopWidth: px,
8948
- borderRightWidth: px,
8949
- borderBottomWidth: px,
8950
- borderLeftWidth: px,
8951
- borderRadius: px,
8952
- radius: px,
8953
- borderTopLeftRadius: px,
8954
- borderTopRightRadius: px,
8955
- borderBottomRightRadius: px,
8956
- borderBottomLeftRadius: px,
8957
- // Positioning props
8958
- width: px,
8959
- maxWidth: px,
8960
- height: px,
8961
- maxHeight: px,
8962
- top: px,
8963
- right: px,
8964
- bottom: px,
8965
- left: px,
8966
- // Spacing props
8967
- padding: px,
8968
- paddingTop: px,
8969
- paddingRight: px,
8970
- paddingBottom: px,
8971
- paddingLeft: px,
8972
- margin: px,
8973
- marginTop: px,
8974
- marginRight: px,
8975
- marginBottom: px,
8976
- marginLeft: px,
8977
- // Misc
8978
- backgroundPositionX: px,
8979
- backgroundPositionY: px,
8980
- ...transformValueTypes,
8981
- zIndex: int,
8982
- // SVG
8983
- fillOpacity: alpha,
8984
- strokeOpacity: alpha,
8985
- numOctaves: int
8986
- }, translateAlias = {
8911
+ const translateAlias = {
8987
8912
  x: "translateX",
8988
8913
  y: "translateY",
8989
8914
  z: "translateZ",
@@ -9034,7 +8959,7 @@ const createHtmlRenderState = () => ({
9034
8959
  transform: {},
9035
8960
  transformOrigin: {},
9036
8961
  vars: {}
9037
- }), isMotionValue = (value) => !!(value && value.getVelocity);
8962
+ });
9038
8963
  function copyRawValuesOnly(target, source, props) {
9039
8964
  for (const key in source)
9040
8965
  !isMotionValue(source[key]) && !isForcedMotionValue(key, props) && (target[key] = source[key]);
@@ -9150,14 +9075,12 @@ function isSVGComponent(Component) {
9150
9075
  )
9151
9076
  );
9152
9077
  }
9153
- function createUseRender(forwardMotionProps = !1) {
9154
- return (Component, props, ref, { latestValues }, isStatic) => {
9155
- const visualProps = (isSVGComponent(Component) ? useSVGProps : useHTMLProps)(props, latestValues, isStatic, Component), filteredProps = filterProps(props, typeof Component == "string", forwardMotionProps), elementProps = Component !== Fragment ? { ...filteredProps, ...visualProps, ref } : {}, { children: children2 } = props, renderedChildren = useMemo(() => isMotionValue(children2) ? children2.get() : children2, [children2]);
9156
- return createElement(Component, {
9157
- ...elementProps,
9158
- children: renderedChildren
9159
- });
9160
- };
9078
+ function useRender(Component, props, ref, { latestValues }, isStatic, forwardMotionProps = !1) {
9079
+ const visualProps = (isSVGComponent(Component) ? useSVGProps : useHTMLProps)(props, latestValues, isStatic, Component), filteredProps = filterProps(props, typeof Component == "string", forwardMotionProps), elementProps = Component !== Fragment ? { ...filteredProps, ...visualProps, ref } : {}, { children: children2 } = props, renderedChildren = useMemo(() => isMotionValue(children2) ? children2.get() : children2, [children2]);
9080
+ return createElement(Component, {
9081
+ ...elementProps,
9082
+ children: renderedChildren
9083
+ });
9161
9084
  }
9162
9085
  function getValueState(visualElement) {
9163
9086
  const state = [{}, {}];
@@ -9179,92 +9102,194 @@ function resolveVariantFromProps(props, definition, custom, visualElement) {
9179
9102
  function resolveMotionValue(value) {
9180
9103
  return isMotionValue(value) ? value.get() : value;
9181
9104
  }
9182
- function makeState({ scrapeMotionValuesFromProps: scrapeMotionValuesFromProps2, createRenderState }, props, context2, presenceContext) {
9183
- return {
9184
- latestValues: makeLatestValues(props, context2, presenceContext, scrapeMotionValuesFromProps2),
9185
- renderState: createRenderState()
9186
- };
9105
+ function makeState({ scrapeMotionValuesFromProps: scrapeMotionValuesFromProps2, createRenderState }, props, context2, presenceContext) {
9106
+ return {
9107
+ latestValues: makeLatestValues(props, context2, presenceContext, scrapeMotionValuesFromProps2),
9108
+ renderState: createRenderState()
9109
+ };
9110
+ }
9111
+ function makeLatestValues(props, context2, presenceContext, scrapeMotionValues) {
9112
+ const values2 = {}, motionValues = scrapeMotionValues(props, {});
9113
+ for (const key in motionValues)
9114
+ values2[key] = resolveMotionValue(motionValues[key]);
9115
+ let { initial, animate } = props;
9116
+ const isControllingVariants$1 = isControllingVariants(props), isVariantNode$1 = isVariantNode(props);
9117
+ context2 && isVariantNode$1 && !isControllingVariants$1 && props.inherit !== !1 && (initial === void 0 && (initial = context2.initial), animate === void 0 && (animate = context2.animate));
9118
+ let isInitialAnimationBlocked = presenceContext ? presenceContext.initial === !1 : !1;
9119
+ isInitialAnimationBlocked = isInitialAnimationBlocked || initial === !1;
9120
+ const variantToSet = isInitialAnimationBlocked ? animate : initial;
9121
+ if (variantToSet && typeof variantToSet != "boolean" && !isAnimationControls(variantToSet)) {
9122
+ const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];
9123
+ for (let i2 = 0; i2 < list.length; i2++) {
9124
+ const resolved = resolveVariantFromProps(props, list[i2]);
9125
+ if (resolved) {
9126
+ const { transitionEnd, transition, ...target } = resolved;
9127
+ for (const key in target) {
9128
+ let valueTarget = target[key];
9129
+ if (Array.isArray(valueTarget)) {
9130
+ const index2 = isInitialAnimationBlocked ? valueTarget.length - 1 : 0;
9131
+ valueTarget = valueTarget[index2];
9132
+ }
9133
+ valueTarget !== null && (values2[key] = valueTarget);
9134
+ }
9135
+ for (const key in transitionEnd)
9136
+ values2[key] = transitionEnd[key];
9137
+ }
9138
+ }
9139
+ }
9140
+ return values2;
9141
+ }
9142
+ const makeUseVisualState = (config) => (props, isStatic) => {
9143
+ const context2 = useContext(MotionContext), presenceContext = useContext(PresenceContext), make = () => makeState(config, props, context2, presenceContext);
9144
+ return isStatic ? make() : useConstant(make);
9145
+ };
9146
+ function scrapeMotionValuesFromProps$1(props, prevProps, visualElement) {
9147
+ const { style: style2 } = props, newValues = {};
9148
+ for (const key in style2)
9149
+ (isMotionValue(style2[key]) || prevProps.style && isMotionValue(prevProps.style[key]) || isForcedMotionValue(key, props) || visualElement?.getValue(key)?.liveStyle !== void 0) && (newValues[key] = style2[key]);
9150
+ return newValues;
9151
+ }
9152
+ const useHTMLVisualState = /* @__PURE__ */ makeUseVisualState({
9153
+ scrapeMotionValuesFromProps: scrapeMotionValuesFromProps$1,
9154
+ createRenderState: createHtmlRenderState
9155
+ });
9156
+ function scrapeMotionValuesFromProps(props, prevProps, visualElement) {
9157
+ const newValues = scrapeMotionValuesFromProps$1(props, prevProps, visualElement);
9158
+ for (const key in props)
9159
+ if (isMotionValue(props[key]) || isMotionValue(prevProps[key])) {
9160
+ const targetKey = transformPropOrder.indexOf(key) !== -1 ? "attr" + key.charAt(0).toUpperCase() + key.substring(1) : key;
9161
+ newValues[targetKey] = props[key];
9162
+ }
9163
+ return newValues;
9164
+ }
9165
+ const useSVGVisualState = /* @__PURE__ */ makeUseVisualState({
9166
+ scrapeMotionValuesFromProps,
9167
+ createRenderState: createSvgRenderState
9168
+ }), motionComponentSymbol = Symbol.for("motionComponentSymbol");
9169
+ function isRefObject(ref) {
9170
+ return ref && typeof ref == "object" && Object.prototype.hasOwnProperty.call(ref, "current");
9171
+ }
9172
+ function useMotionRef(visualState, visualElement, externalRef) {
9173
+ return useCallback(
9174
+ (instance) => {
9175
+ instance && visualState.onMount && visualState.onMount(instance), visualElement && (instance ? visualElement.mount(instance) : visualElement.unmount()), externalRef && (typeof externalRef == "function" ? externalRef(instance) : isRefObject(externalRef) && (externalRef.current = instance));
9176
+ },
9177
+ /**
9178
+ * Only pass a new ref callback to React if we've received a visual element
9179
+ * factory. Otherwise we'll be mounting/remounting every time externalRef
9180
+ * or other dependencies change.
9181
+ */
9182
+ [visualElement]
9183
+ );
9184
+ }
9185
+ const camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, "$1-$2").toLowerCase(), optimizedAppearDataId = "framerAppearId", optimizedAppearDataAttribute = "data-" + camelToDash(optimizedAppearDataId), SwitchLayoutGroupContext = createContext({});
9186
+ function useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor) {
9187
+ const { visualElement: parent } = useContext(MotionContext), lazyContext = useContext(LazyContext), presenceContext = useContext(PresenceContext), reducedMotionConfig = useContext(MotionConfigContext).reducedMotion, visualElementRef = useRef(null);
9188
+ createVisualElement = createVisualElement || lazyContext.renderer, !visualElementRef.current && createVisualElement && (visualElementRef.current = createVisualElement(Component, {
9189
+ visualState,
9190
+ parent,
9191
+ props,
9192
+ presenceContext,
9193
+ blockInitialAnimation: presenceContext ? presenceContext.initial === !1 : !1,
9194
+ reducedMotionConfig
9195
+ }));
9196
+ const visualElement = visualElementRef.current, initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);
9197
+ visualElement && !visualElement.projection && ProjectionNodeConstructor && (visualElement.type === "html" || visualElement.type === "svg") && createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);
9198
+ const isMounted = useRef(!1);
9199
+ useInsertionEffect$1(() => {
9200
+ visualElement && isMounted.current && visualElement.update(props, presenceContext);
9201
+ });
9202
+ const optimisedAppearId = props[optimizedAppearDataAttribute], wantsHandoff = useRef(!!optimisedAppearId && !window.MotionHandoffIsComplete?.(optimisedAppearId) && window.MotionHasOptimisedAnimation?.(optimisedAppearId));
9203
+ return useIsomorphicLayoutEffect$1(() => {
9204
+ visualElement && (isMounted.current = !0, window.MotionIsMounted = !0, visualElement.updateFeatures(), visualElement.scheduleRenderMicrotask(), wantsHandoff.current && visualElement.animationState && visualElement.animationState.animateChanges());
9205
+ }), useEffect(() => {
9206
+ visualElement && (!wantsHandoff.current && visualElement.animationState && visualElement.animationState.animateChanges(), wantsHandoff.current && (queueMicrotask(() => {
9207
+ window.MotionHandoffMarkAsComplete?.(optimisedAppearId);
9208
+ }), wantsHandoff.current = !1), visualElement.enteringChildren = void 0);
9209
+ }), visualElement;
9210
+ }
9211
+ function createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {
9212
+ const { layoutId, layout, drag: drag2, dragConstraints, layoutScroll, layoutRoot, layoutCrossfade } = props;
9213
+ visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props["data-framer-portal-id"] ? void 0 : getClosestProjectingNode(visualElement.parent)), visualElement.projection.setOptions({
9214
+ layoutId,
9215
+ layout,
9216
+ alwaysMeasureLayout: !!drag2 || dragConstraints && isRefObject(dragConstraints),
9217
+ visualElement,
9218
+ /**
9219
+ * TODO: Update options in an effect. This could be tricky as it'll be too late
9220
+ * to update by the time layout animations run.
9221
+ * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,
9222
+ * ensuring it gets called if there's no potential layout animations.
9223
+ *
9224
+ */
9225
+ animationType: typeof layout == "string" ? layout : "both",
9226
+ initialPromotionConfig,
9227
+ crossfade: layoutCrossfade,
9228
+ layoutScroll,
9229
+ layoutRoot
9230
+ });
9231
+ }
9232
+ function getClosestProjectingNode(visualElement) {
9233
+ if (visualElement)
9234
+ return visualElement.options.allowProjection !== !1 ? visualElement.projection : getClosestProjectingNode(visualElement.parent);
9187
9235
  }
9188
- const makeUseVisualState = (config) => (props, isStatic) => {
9189
- const context2 = useContext(MotionContext), presenceContext = useContext(PresenceContext), make = () => makeState(config, props, context2, presenceContext);
9190
- return isStatic ? make() : useConstant(make);
9191
- };
9192
- function makeLatestValues(props, context2, presenceContext, scrapeMotionValues) {
9193
- const values2 = {}, motionValues = scrapeMotionValues(props, {});
9194
- for (const key in motionValues)
9195
- values2[key] = resolveMotionValue(motionValues[key]);
9196
- let { initial, animate } = props;
9197
- const isControllingVariants$1 = isControllingVariants(props), isVariantNode$1 = isVariantNode(props);
9198
- context2 && isVariantNode$1 && !isControllingVariants$1 && props.inherit !== !1 && (initial === void 0 && (initial = context2.initial), animate === void 0 && (animate = context2.animate));
9199
- let isInitialAnimationBlocked = presenceContext ? presenceContext.initial === !1 : !1;
9200
- isInitialAnimationBlocked = isInitialAnimationBlocked || initial === !1;
9201
- const variantToSet = isInitialAnimationBlocked ? animate : initial;
9202
- if (variantToSet && typeof variantToSet != "boolean" && !isAnimationControls(variantToSet)) {
9203
- const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];
9204
- for (let i2 = 0; i2 < list.length; i2++) {
9205
- const resolved = resolveVariantFromProps(props, list[i2]);
9206
- if (resolved) {
9207
- const { transitionEnd, transition, ...target } = resolved;
9208
- for (const key in target) {
9209
- let valueTarget = target[key];
9210
- if (Array.isArray(valueTarget)) {
9211
- const index2 = isInitialAnimationBlocked ? valueTarget.length - 1 : 0;
9212
- valueTarget = valueTarget[index2];
9213
- }
9214
- valueTarget !== null && (values2[key] = valueTarget);
9215
- }
9216
- for (const key in transitionEnd)
9217
- values2[key] = transitionEnd[key];
9218
- }
9236
+ function createMotionComponent(Component, { forwardMotionProps = !1 } = {}, preloadedFeatures, createVisualElement) {
9237
+ preloadedFeatures && loadFeatures(preloadedFeatures);
9238
+ const useVisualState = isSVGComponent(Component) ? useSVGVisualState : useHTMLVisualState;
9239
+ function MotionDOMComponent(props, externalRef) {
9240
+ let MeasureLayout;
9241
+ const configAndProps = {
9242
+ ...useContext(MotionConfigContext),
9243
+ ...props,
9244
+ layoutId: useLayoutId(props)
9245
+ }, { isStatic } = configAndProps, context2 = useCreateMotionContext(props), visualState = useVisualState(props, isStatic);
9246
+ if (!isStatic && isBrowser$1) {
9247
+ useStrictMode();
9248
+ const layoutProjection = getProjectionFunctionality(configAndProps);
9249
+ MeasureLayout = layoutProjection.MeasureLayout, context2.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode);
9219
9250
  }
9251
+ return jsxs(MotionContext.Provider, { value: context2, children: [MeasureLayout && context2.visualElement ? jsx(MeasureLayout, { visualElement: context2.visualElement, ...configAndProps }) : null, useRender(Component, props, useMotionRef(visualState, context2.visualElement, externalRef), visualState, isStatic, forwardMotionProps)] });
9220
9252
  }
9221
- return values2;
9253
+ MotionDOMComponent.displayName = `motion.${typeof Component == "string" ? Component : `create(${Component.displayName ?? Component.name ?? ""})`}`;
9254
+ const ForwardRefMotionComponent = forwardRef(MotionDOMComponent);
9255
+ return ForwardRefMotionComponent[motionComponentSymbol] = Component, ForwardRefMotionComponent;
9222
9256
  }
9223
- function scrapeMotionValuesFromProps$1(props, prevProps, visualElement) {
9224
- const { style: style2 } = props, newValues = {};
9225
- for (const key in style2)
9226
- (isMotionValue(style2[key]) || prevProps.style && isMotionValue(prevProps.style[key]) || isForcedMotionValue(key, props) || visualElement?.getValue(key)?.liveStyle !== void 0) && (newValues[key] = style2[key]);
9227
- return newValues;
9257
+ function useLayoutId({ layoutId }) {
9258
+ const layoutGroupId = useContext(LayoutGroupContext).id;
9259
+ return layoutGroupId && layoutId !== void 0 ? layoutGroupId + "-" + layoutId : layoutId;
9228
9260
  }
9229
- const htmlMotionConfig = {
9230
- useVisualState: makeUseVisualState({
9231
- scrapeMotionValuesFromProps: scrapeMotionValuesFromProps$1,
9232
- createRenderState: createHtmlRenderState
9233
- })
9234
- };
9235
- function scrapeMotionValuesFromProps(props, prevProps, visualElement) {
9236
- const newValues = scrapeMotionValuesFromProps$1(props, prevProps, visualElement);
9237
- for (const key in props)
9238
- if (isMotionValue(props[key]) || isMotionValue(prevProps[key])) {
9239
- const targetKey = transformPropOrder.indexOf(key) !== -1 ? "attr" + key.charAt(0).toUpperCase() + key.substring(1) : key;
9240
- newValues[targetKey] = props[key];
9241
- }
9242
- return newValues;
9261
+ function useStrictMode(configAndProps, preloadedFeatures) {
9262
+ useContext(LazyContext).strict;
9243
9263
  }
9244
- const svgMotionConfig = {
9245
- useVisualState: makeUseVisualState({
9246
- scrapeMotionValuesFromProps,
9247
- createRenderState: createSvgRenderState
9248
- })
9249
- };
9250
- function createMotionComponentFactory(preloadedFeatures, createVisualElement) {
9251
- return function(Component, { forwardMotionProps } = { forwardMotionProps: !1 }) {
9252
- const config = {
9253
- ...isSVGComponent(Component) ? svgMotionConfig : htmlMotionConfig,
9254
- preloadedFeatures,
9255
- useRender: createUseRender(forwardMotionProps),
9256
- createVisualElement,
9257
- Component
9258
- };
9259
- return createRendererMotionComponent(config);
9264
+ function getProjectionFunctionality(props) {
9265
+ const { drag: drag2, layout } = featureDefinitions;
9266
+ if (!drag2 && !layout)
9267
+ return {};
9268
+ const combined = { ...drag2, ...layout };
9269
+ return {
9270
+ MeasureLayout: drag2?.isEnabled(props) || layout?.isEnabled(props) ? combined.MeasureLayout : void 0,
9271
+ ProjectionNode: combined.ProjectionNode
9260
9272
  };
9261
9273
  }
9262
- const createMinimalMotionComponent = /* @__PURE__ */ createMotionComponentFactory(), m = /* @__PURE__ */ createDOMMotionComponentProxy(createMinimalMotionComponent), prefersReducedMotion = { current: null }, hasReducedMotionListener = { current: !1 };
9274
+ function createMotionProxy(preloadedFeatures, createVisualElement) {
9275
+ if (typeof Proxy > "u")
9276
+ return createMotionComponent;
9277
+ const componentCache = /* @__PURE__ */ new Map(), factory2 = (Component, options) => createMotionComponent(Component, options, preloadedFeatures, createVisualElement), deprecatedFactoryFunction = (Component, options) => factory2(Component, options);
9278
+ return new Proxy(deprecatedFactoryFunction, {
9279
+ /**
9280
+ * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.
9281
+ * The prop name is passed through as `key` and we can use that to generate a `motion`
9282
+ * DOM component with that name.
9283
+ */
9284
+ get: (_target, key) => key === "create" ? factory2 : (componentCache.has(key) || componentCache.set(key, createMotionComponent(key, void 0, preloadedFeatures, createVisualElement)), componentCache.get(key))
9285
+ });
9286
+ }
9287
+ const m = /* @__PURE__ */ createMotionProxy(), prefersReducedMotion = { current: null }, hasReducedMotionListener = { current: !1 };
9263
9288
  function initPrefersReducedMotion() {
9264
9289
  if (hasReducedMotionListener.current = !0, !!isBrowser$1)
9265
9290
  if (window.matchMedia) {
9266
9291
  const motionMediaQuery = window.matchMedia("(prefers-reduced-motion)"), setReducedMotionPreferences = () => prefersReducedMotion.current = motionMediaQuery.matches;
9267
- motionMediaQuery.addListener(setReducedMotionPreferences), setReducedMotionPreferences();
9292
+ motionMediaQuery.addEventListener("change", setReducedMotionPreferences), setReducedMotionPreferences();
9268
9293
  } else
9269
9294
  prefersReducedMotion.current = !1;
9270
9295
  }
@@ -15600,7 +15625,7 @@ const HandlerNames = [
15600
15625
  "onNodeContextMenu",
15601
15626
  "onChange",
15602
15627
  "onCanvasDblClick"
15603
- ], DiagramEventHandlersContext = createContext({
15628
+ ], DiagramEventHandlersReactContext = createContext({
15604
15629
  ...l$1(HandlerNames, (name) => [name, null]),
15605
15630
  handlersRef: {
15606
15631
  current: {}
@@ -15614,13 +15639,10 @@ function DiagramEventHandlers({
15614
15639
  ...l$1(HandlerNames, (name) => handlersRef.current[name] ? [name, (...args) => handlersRef.current[name]?.(...args)] : [name, null]),
15615
15640
  handlersRef
15616
15641
  }), [handlersRef, ...deps]);
15617
- return /* @__PURE__ */ jsx(DiagramEventHandlersContext.Provider, { value, children: children2 });
15642
+ return /* @__PURE__ */ jsx(DiagramEventHandlersReactContext.Provider, { value, children: children2 });
15618
15643
  }
15619
15644
  function useDiagramEventHandlers() {
15620
- return useContext(DiagramEventHandlersContext);
15621
- }
15622
- function useDiagramEventHandlersRef() {
15623
- return useContext(DiagramEventHandlersContext).handlersRef;
15645
+ return useContext(DiagramEventHandlersReactContext);
15624
15646
  }
15625
15647
  var getOwnPropertyNames = Object.getOwnPropertyNames, getOwnPropertySymbols = Object.getOwnPropertySymbols, hasOwnProperty = Object.prototype.hasOwnProperty;
15626
15648
  function combineComparators(comparatorA, comparatorB) {
@@ -16024,7 +16046,7 @@ function IconOrShapeRenderer({
16024
16046
  }
16025
16047
  );
16026
16048
  }
16027
- var userGeneratedStr = "css,pos,insetX,insetY,insetEnd,end,insetStart,start,flexDir,p,pl,pr,pt,pb,py,paddingY,paddingX,px,pe,paddingEnd,ps,paddingStart,ml,mr,mt,mb,m,my,marginY,mx,marginX,me,marginEnd,ms,marginStart,ringWidth,ringColor,ring,ringOffset,w,minW,maxW,h,minH,maxH,textShadowColor,bgPosition,bgPositionX,bgPositionY,bgAttachment,bgClip,bg,bgColor,bgOrigin,bgImage,bgRepeat,bgBlendMode,bgSize,bgGradient,rounded,roundedTopLeft,roundedTopRight,roundedBottomRight,roundedBottomLeft,roundedTop,roundedRight,roundedBottom,roundedLeft,roundedStartStart,roundedStartEnd,roundedStart,roundedEndStart,roundedEndEnd,roundedEnd,borderX,borderXWidth,borderXColor,borderY,borderYWidth,borderYColor,borderStart,borderStartWidth,borderStartColor,borderEnd,borderEndWidth,borderEndColor,shadow,shadowColor,x,y,z,scrollMarginY,scrollMarginX,scrollPaddingY,scrollPaddingX,aspectRatio,boxDecorationBreak,zIndex,boxSizing,objectPosition,objectFit,overscrollBehavior,overscrollBehaviorX,overscrollBehaviorY,position,top,left,inset,insetInline,insetBlock,insetBlockEnd,insetBlockStart,insetInlineEnd,insetInlineStart,right,bottom,float,visibility,display,hideFrom,hideBelow,flexBasis,flex,flexDirection,flexGrow,flexShrink,gridTemplateColumns,gridTemplateRows,gridColumn,gridRow,gridColumnStart,gridColumnEnd,gridAutoFlow,gridAutoColumns,gridAutoRows,gap,gridGap,gridRowGap,gridColumnGap,rowGap,columnGap,justifyContent,alignContent,alignItems,alignSelf,padding,paddingLeft,paddingRight,paddingTop,paddingBottom,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingInline,paddingInlineEnd,paddingInlineStart,marginLeft,marginRight,marginTop,marginBottom,margin,marginBlock,marginBlockEnd,marginBlockStart,marginInline,marginInlineEnd,marginInlineStart,spaceX,spaceY,outlineWidth,outlineColor,outline,outlineOffset,divideX,divideY,divideColor,divideStyle,width,inlineSize,minWidth,minInlineSize,maxWidth,maxInlineSize,height,blockSize,minHeight,minBlockSize,maxHeight,maxBlockSize,color,fontFamily,fontSize,fontSizeAdjust,fontPalette,fontKerning,fontFeatureSettings,fontWeight,fontSmoothing,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariationSettings,fontVariantNumeric,letterSpacing,lineHeight,textAlign,textDecoration,textDecorationColor,textEmphasisColor,textDecorationStyle,textDecorationThickness,textUnderlineOffset,textTransform,textIndent,textShadow,textOverflow,verticalAlign,wordBreak,textWrap,truncate,lineClamp,listStyleType,listStylePosition,listStyleImage,listStyle,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundAttachment,backgroundClip,background,backgroundColor,backgroundOrigin,backgroundImage,backgroundRepeat,backgroundBlendMode,backgroundSize,backgroundGradient,textGradient,gradientFromPosition,gradientToPosition,gradientFrom,gradientTo,gradientVia,gradientViaPosition,borderRadius,borderTopLeftRadius,borderTopRightRadius,borderBottomRightRadius,borderBottomLeftRadius,borderTopRadius,borderRightRadius,borderBottomRadius,borderLeftRadius,borderStartStartRadius,borderStartEndRadius,borderStartRadius,borderEndStartRadius,borderEndEndRadius,borderEndRadius,border,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,borderBlockStartWidth,borderBlockEndWidth,borderColor,borderInline,borderInlineWidth,borderInlineColor,borderBlock,borderBlockWidth,borderBlockColor,borderLeft,borderLeftColor,borderInlineStart,borderInlineStartWidth,borderInlineStartColor,borderRight,borderRightColor,borderInlineEnd,borderInlineEndWidth,borderInlineEndColor,borderTop,borderTopColor,borderBottom,borderBottomColor,borderBlockEnd,borderBlockEndColor,borderBlockStart,borderBlockStartColor,opacity,boxShadow,boxShadowColor,mixBlendMode,filter,brightness,contrast,grayscale,hueRotate,invert,saturate,sepia,dropShadow,blur,backdropFilter,backdropBlur,backdropBrightness,backdropContrast,backdropGrayscale,backdropHueRotate,backdropInvert,backdropOpacity,backdropSaturate,backdropSepia,borderCollapse,borderSpacing,borderSpacingX,borderSpacingY,tableLayout,transitionTimingFunction,transitionDelay,transitionDuration,transitionProperty,transition,animation,animationName,animationTimingFunction,animationDuration,animationDelay,animationPlayState,animationComposition,animationFillMode,animationDirection,animationIterationCount,animationRange,animationState,animationRangeStart,animationRangeEnd,animationTimeline,transformOrigin,transformBox,transformStyle,transform,rotate,rotateX,rotateY,rotateZ,scale,scaleX,scaleY,translate,translateX,translateY,translateZ,accentColor,caretColor,scrollBehavior,scrollbar,scrollbarColor,scrollbarGutter,scrollbarWidth,scrollMargin,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollMarginBottom,scrollMarginBlock,scrollMarginBlockEnd,scrollMarginBlockStart,scrollMarginInline,scrollMarginInlineEnd,scrollMarginInlineStart,scrollPadding,scrollPaddingBlock,scrollPaddingBlockStart,scrollPaddingBlockEnd,scrollPaddingInline,scrollPaddingInlineEnd,scrollPaddingInlineStart,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollPaddingBottom,scrollSnapAlign,scrollSnapStop,scrollSnapType,scrollSnapStrictness,scrollSnapMargin,scrollSnapMarginTop,scrollSnapMarginBottom,scrollSnapMarginLeft,scrollSnapMarginRight,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,touchAction,userSelect,overflow,overflowWrap,overflowX,overflowY,overflowAnchor,overflowBlock,overflowInline,overflowClipBox,overflowClipMargin,overscrollBehaviorBlock,overscrollBehaviorInline,fill,stroke,strokeWidth,strokeDasharray,strokeDashoffset,strokeLinecap,strokeLinejoin,strokeMiterlimit,strokeOpacity,srOnly,debug,appearance,backfaceVisibility,clipPath,hyphens,mask,maskImage,maskSize,textSizeAdjust,container,containerName,containerType,cursor,likec4Palette,likec4RelationPalette,colorPalette,_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_reduceGraphics,_reduceGraphicsOnPan,_noReduceGraphics,_whenPanning,_smallZoom,_compoundTransparent,_edgeActive,_whenHovered,_whenSelected,_whenDimmed,_whenFocused,_shapeSizeXs,_shapeSizeSm,_shapeSizeMd,_shapeSizeLg,_shapeSizeXl,_shapeRectangle,_shapePerson,_shapeBrowser,_shapeMobile,_shapeCylinder,_shapeStorage,_shapeQueue,_p3,_srgb,_rec2020,xs,xsOnly,xsDown,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,xsToSm,xsToMd,xsToLg,xsToXl,smToMd,smToLg,smToXl,mdToLg,mdToXl,lgToXl,textStyle,layerStyle,animationStyle", userGenerated = userGeneratedStr.split(","), cssPropertiesStr = "WebkitAppearance,WebkitBorderBefore,WebkitBorderBeforeColor,WebkitBorderBeforeStyle,WebkitBorderBeforeWidth,WebkitBoxReflect,WebkitLineClamp,WebkitMask,WebkitMaskAttachment,WebkitMaskClip,WebkitMaskComposite,WebkitMaskImage,WebkitMaskOrigin,WebkitMaskPosition,WebkitMaskPositionX,WebkitMaskPositionY,WebkitMaskRepeat,WebkitMaskRepeatX,WebkitMaskRepeatY,WebkitMaskSize,WebkitOverflowScrolling,WebkitTapHighlightColor,WebkitTextFillColor,WebkitTextStroke,WebkitTextStrokeColor,WebkitTextStrokeWidth,WebkitTouchCallout,WebkitUserModify,WebkitUserSelect,accentColor,alignContent,alignItems,alignSelf,alignTracks,all,anchorName,anchorScope,animation,animationComposition,animationDelay,animationDirection,animationDuration,animationFillMode,animationIterationCount,animationName,animationPlayState,animationRange,animationRangeEnd,animationRangeStart,animationTimeline,animationTimingFunction,appearance,aspectRatio,backdropFilter,backfaceVisibility,background,backgroundAttachment,backgroundBlendMode,backgroundClip,backgroundColor,backgroundImage,backgroundOrigin,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundRepeat,backgroundSize,blockSize,border,borderBlock,borderBlockColor,borderBlockEnd,borderBlockEndColor,borderBlockEndStyle,borderBlockEndWidth,borderBlockStart,borderBlockStartColor,borderBlockStartStyle,borderBlockStartWidth,borderBlockStyle,borderBlockWidth,borderBottom,borderBottomColor,borderBottomLeftRadius,borderBottomRightRadius,borderBottomStyle,borderBottomWidth,borderCollapse,borderColor,borderEndEndRadius,borderEndStartRadius,borderImage,borderImageOutset,borderImageRepeat,borderImageSlice,borderImageSource,borderImageWidth,borderInline,borderInlineColor,borderInlineEnd,borderInlineEndColor,borderInlineEndStyle,borderInlineEndWidth,borderInlineStart,borderInlineStartColor,borderInlineStartStyle,borderInlineStartWidth,borderInlineStyle,borderInlineWidth,borderLeft,borderLeftColor,borderLeftStyle,borderLeftWidth,borderRadius,borderRight,borderRightColor,borderRightStyle,borderRightWidth,borderSpacing,borderStartEndRadius,borderStartStartRadius,borderStyle,borderTop,borderTopColor,borderTopLeftRadius,borderTopRightRadius,borderTopStyle,borderTopWidth,borderWidth,bottom,boxAlign,boxDecorationBreak,boxDirection,boxFlex,boxFlexGroup,boxLines,boxOrdinalGroup,boxOrient,boxPack,boxShadow,boxSizing,breakAfter,breakBefore,breakInside,captionSide,caret,caretColor,caretShape,clear,clip,clipPath,clipRule,color,colorInterpolationFilters,colorScheme,columnCount,columnFill,columnGap,columnRule,columnRuleColor,columnRuleStyle,columnRuleWidth,columnSpan,columnWidth,columns,contain,containIntrinsicBlockSize,containIntrinsicHeight,containIntrinsicInlineSize,containIntrinsicSize,containIntrinsicWidth,container,containerName,containerType,content,contentVisibility,counterIncrement,counterReset,counterSet,cursor,cx,cy,d,direction,display,dominantBaseline,emptyCells,fieldSizing,fill,fillOpacity,fillRule,filter,flex,flexBasis,flexDirection,flexFlow,flexGrow,flexShrink,flexWrap,float,floodColor,floodOpacity,font,fontFamily,fontFeatureSettings,fontKerning,fontLanguageOverride,fontOpticalSizing,fontPalette,fontSize,fontSizeAdjust,fontSmooth,fontStretch,fontStyle,fontSynthesis,fontSynthesisPosition,fontSynthesisSmallCaps,fontSynthesisStyle,fontSynthesisWeight,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariantEastAsian,fontVariantEmoji,fontVariantLigatures,fontVariantNumeric,fontVariantPosition,fontVariationSettings,fontWeight,forcedColorAdjust,gap,grid,gridArea,gridAutoColumns,gridAutoFlow,gridAutoRows,gridColumn,gridColumnEnd,gridColumnGap,gridColumnStart,gridGap,gridRow,gridRowEnd,gridRowGap,gridRowStart,gridTemplate,gridTemplateAreas,gridTemplateColumns,gridTemplateRows,hangingPunctuation,height,hyphenateCharacter,hyphenateLimitChars,hyphens,imageOrientation,imageRendering,imageResolution,imeMode,initialLetter,initialLetterAlign,inlineSize,inset,insetBlock,insetBlockEnd,insetBlockStart,insetInline,insetInlineEnd,insetInlineStart,interpolateSize,isolation,justifyContent,justifyItems,justifySelf,justifyTracks,left,letterSpacing,lightingColor,lineBreak,lineClamp,lineHeight,lineHeightStep,listStyle,listStyleImage,listStylePosition,listStyleType,margin,marginBlock,marginBlockEnd,marginBlockStart,marginBottom,marginInline,marginInlineEnd,marginInlineStart,marginLeft,marginRight,marginTop,marginTrim,marker,markerEnd,markerMid,markerStart,mask,maskBorder,maskBorderMode,maskBorderOutset,maskBorderRepeat,maskBorderSlice,maskBorderSource,maskBorderWidth,maskClip,maskComposite,maskImage,maskMode,maskOrigin,maskPosition,maskRepeat,maskSize,maskType,masonryAutoFlow,mathDepth,mathShift,mathStyle,maxBlockSize,maxHeight,maxInlineSize,maxLines,maxWidth,minBlockSize,minHeight,minInlineSize,minWidth,mixBlendMode,objectFit,objectPosition,offset,offsetAnchor,offsetDistance,offsetPath,offsetPosition,offsetRotate,opacity,order,orphans,outline,outlineColor,outlineOffset,outlineStyle,outlineWidth,overflow,overflowAnchor,overflowBlock,overflowClipBox,overflowClipMargin,overflowInline,overflowWrap,overflowX,overflowY,overlay,overscrollBehavior,overscrollBehaviorBlock,overscrollBehaviorInline,overscrollBehaviorX,overscrollBehaviorY,padding,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingBottom,paddingInline,paddingInlineEnd,paddingInlineStart,paddingLeft,paddingRight,paddingTop,page,pageBreakAfter,pageBreakBefore,pageBreakInside,paintOrder,perspective,perspectiveOrigin,placeContent,placeItems,placeSelf,pointerEvents,position,positionAnchor,positionArea,positionTry,positionTryFallbacks,positionTryOrder,positionVisibility,printColorAdjust,quotes,r,resize,right,rotate,rowGap,rubyAlign,rubyMerge,rubyPosition,rx,ry,scale,scrollBehavior,scrollMargin,scrollMarginBlock,scrollMarginBlockEnd,scrollMarginBlockStart,scrollMarginBottom,scrollMarginInline,scrollMarginInlineEnd,scrollMarginInlineStart,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollPadding,scrollPaddingBlock,scrollPaddingBlockEnd,scrollPaddingBlockStart,scrollPaddingBottom,scrollPaddingInline,scrollPaddingInlineEnd,scrollPaddingInlineStart,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollSnapAlign,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapStop,scrollSnapType,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,scrollbarColor,scrollbarGutter,scrollbarWidth,shapeImageThreshold,shapeMargin,shapeOutside,shapeRendering,stopColor,stopOpacity,stroke,strokeDasharray,strokeDashoffset,strokeLinecap,strokeLinejoin,strokeMiterlimit,strokeOpacity,strokeWidth,tabSize,tableLayout,textAlign,textAlignLast,textAnchor,textBox,textBoxEdge,textBoxTrim,textCombineUpright,textDecoration,textDecorationColor,textDecorationLine,textDecorationSkip,textDecorationSkipInk,textDecorationStyle,textDecorationThickness,textEmphasis,textEmphasisColor,textEmphasisPosition,textEmphasisStyle,textIndent,textJustify,textOrientation,textOverflow,textRendering,textShadow,textSizeAdjust,textSpacingTrim,textTransform,textUnderlineOffset,textUnderlinePosition,textWrap,textWrapMode,textWrapStyle,timelineScope,top,touchAction,transform,transformBox,transformOrigin,transformStyle,transition,transitionBehavior,transitionDelay,transitionDuration,transitionProperty,transitionTimingFunction,translate,unicodeBidi,userSelect,vectorEffect,verticalAlign,viewTimeline,viewTimelineAxis,viewTimelineInset,viewTimelineName,viewTransitionName,visibility,whiteSpace,whiteSpaceCollapse,widows,width,willChange,wordBreak,wordSpacing,wordWrap,writingMode,x,y,zIndex,zoom,alignmentBaseline,baselineShift,colorInterpolation,colorRendering,glyphOrientationVertical", allCssProperties = cssPropertiesStr.split(",").concat(userGenerated), properties = new Map(allCssProperties.map((prop) => [prop, !0])), cssPropertySelectorRegex = /&|@/, isCssProperty = /* @__PURE__ */ memo((prop) => properties.has(prop) || prop.startsWith("--") || cssPropertySelectorRegex.test(prop));
16049
+ var userGeneratedStr = "css,pos,insetX,insetY,insetEnd,end,insetStart,start,flexDir,p,pl,pr,pt,pb,py,paddingY,paddingX,px,pe,paddingEnd,ps,paddingStart,ml,mr,mt,mb,m,my,marginY,mx,marginX,me,marginEnd,ms,marginStart,ringWidth,ringColor,ring,ringOffset,w,minW,maxW,h,minH,maxH,textShadowColor,bgPosition,bgPositionX,bgPositionY,bgAttachment,bgClip,bg,bgColor,bgOrigin,bgImage,bgRepeat,bgBlendMode,bgSize,bgGradient,rounded,roundedTopLeft,roundedTopRight,roundedBottomRight,roundedBottomLeft,roundedTop,roundedRight,roundedBottom,roundedLeft,roundedStartStart,roundedStartEnd,roundedStart,roundedEndStart,roundedEndEnd,roundedEnd,borderX,borderXWidth,borderXColor,borderY,borderYWidth,borderYColor,borderStart,borderStartWidth,borderStartColor,borderEnd,borderEndWidth,borderEndColor,shadow,shadowColor,x,y,z,scrollMarginY,scrollMarginX,scrollPaddingY,scrollPaddingX,aspectRatio,boxDecorationBreak,zIndex,boxSizing,objectPosition,objectFit,overscrollBehavior,overscrollBehaviorX,overscrollBehaviorY,position,top,left,inset,insetInline,insetBlock,insetBlockEnd,insetBlockStart,insetInlineEnd,insetInlineStart,right,bottom,float,visibility,display,hideFrom,hideBelow,flexBasis,flex,flexDirection,flexGrow,flexShrink,gridTemplateColumns,gridTemplateRows,gridColumn,gridRow,gridColumnStart,gridColumnEnd,gridAutoFlow,gridAutoColumns,gridAutoRows,gap,gridGap,gridRowGap,gridColumnGap,rowGap,columnGap,justifyContent,alignContent,alignItems,alignSelf,padding,paddingLeft,paddingRight,paddingTop,paddingBottom,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingInline,paddingInlineEnd,paddingInlineStart,marginLeft,marginRight,marginTop,marginBottom,margin,marginBlock,marginBlockEnd,marginBlockStart,marginInline,marginInlineEnd,marginInlineStart,spaceX,spaceY,outlineWidth,outlineColor,outline,outlineOffset,divideX,divideY,divideColor,divideStyle,width,inlineSize,minWidth,minInlineSize,maxWidth,maxInlineSize,height,blockSize,minHeight,minBlockSize,maxHeight,maxBlockSize,color,fontFamily,fontSize,fontSizeAdjust,fontPalette,fontKerning,fontFeatureSettings,fontWeight,fontSmoothing,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariationSettings,fontVariantNumeric,letterSpacing,lineHeight,textAlign,textDecoration,textDecorationColor,textEmphasisColor,textDecorationStyle,textDecorationThickness,textUnderlineOffset,textTransform,textIndent,textShadow,textOverflow,verticalAlign,wordBreak,textWrap,truncate,lineClamp,listStyleType,listStylePosition,listStyleImage,listStyle,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundAttachment,backgroundClip,background,backgroundColor,backgroundOrigin,backgroundImage,backgroundRepeat,backgroundBlendMode,backgroundSize,backgroundGradient,textGradient,gradientFromPosition,gradientToPosition,gradientFrom,gradientTo,gradientVia,gradientViaPosition,borderRadius,borderTopLeftRadius,borderTopRightRadius,borderBottomRightRadius,borderBottomLeftRadius,borderTopRadius,borderRightRadius,borderBottomRadius,borderLeftRadius,borderStartStartRadius,borderStartEndRadius,borderStartRadius,borderEndStartRadius,borderEndEndRadius,borderEndRadius,border,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,borderBlockStartWidth,borderBlockEndWidth,borderColor,borderInline,borderInlineWidth,borderInlineColor,borderBlock,borderBlockWidth,borderBlockColor,borderLeft,borderLeftColor,borderInlineStart,borderInlineStartWidth,borderInlineStartColor,borderRight,borderRightColor,borderInlineEnd,borderInlineEndWidth,borderInlineEndColor,borderTop,borderTopColor,borderBottom,borderBottomColor,borderBlockEnd,borderBlockEndColor,borderBlockStart,borderBlockStartColor,opacity,boxShadow,boxShadowColor,mixBlendMode,filter,brightness,contrast,grayscale,hueRotate,invert,saturate,sepia,dropShadow,blur,backdropFilter,backdropBlur,backdropBrightness,backdropContrast,backdropGrayscale,backdropHueRotate,backdropInvert,backdropOpacity,backdropSaturate,backdropSepia,borderCollapse,borderSpacing,borderSpacingX,borderSpacingY,tableLayout,transitionTimingFunction,transitionDelay,transitionDuration,transitionProperty,transition,animation,animationName,animationTimingFunction,animationDuration,animationDelay,animationPlayState,animationComposition,animationFillMode,animationDirection,animationIterationCount,animationRange,animationState,animationRangeStart,animationRangeEnd,animationTimeline,transformOrigin,transformBox,transformStyle,transform,rotate,rotateX,rotateY,rotateZ,scale,scaleX,scaleY,translate,translateX,translateY,translateZ,accentColor,caretColor,scrollBehavior,scrollbar,scrollbarColor,scrollbarGutter,scrollbarWidth,scrollMargin,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollMarginBottom,scrollMarginBlock,scrollMarginBlockEnd,scrollMarginBlockStart,scrollMarginInline,scrollMarginInlineEnd,scrollMarginInlineStart,scrollPadding,scrollPaddingBlock,scrollPaddingBlockStart,scrollPaddingBlockEnd,scrollPaddingInline,scrollPaddingInlineEnd,scrollPaddingInlineStart,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollPaddingBottom,scrollSnapAlign,scrollSnapStop,scrollSnapType,scrollSnapStrictness,scrollSnapMargin,scrollSnapMarginTop,scrollSnapMarginBottom,scrollSnapMarginLeft,scrollSnapMarginRight,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,touchAction,userSelect,overflow,overflowWrap,overflowX,overflowY,overflowAnchor,overflowBlock,overflowInline,overflowClipBox,overflowClipMargin,overscrollBehaviorBlock,overscrollBehaviorInline,fill,stroke,strokeWidth,strokeDasharray,strokeDashoffset,strokeLinecap,strokeLinejoin,strokeMiterlimit,strokeOpacity,srOnly,debug,appearance,backfaceVisibility,clipPath,hyphens,mask,maskImage,maskSize,textSizeAdjust,container,containerName,containerType,cursor,colorPalette,_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_shapeSizeXs,_shapeSizeSm,_shapeSizeMd,_shapeSizeLg,_shapeSizeXl,_shapeRectangle,_shapePerson,_shapeBrowser,_shapeMobile,_shapeCylinder,_shapeStorage,_shapeQueue,_notDisabled,_reduceGraphics,_reduceGraphicsOnPan,_noReduceGraphics,_whenPanning,_smallZoom,_compoundTransparent,_edgeActive,_whenHovered,_whenSelected,_whenDimmed,_whenFocused,_p3,_srgb,_rec2020,xs,xsOnly,xsDown,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,xsToSm,xsToMd,xsToLg,xsToXl,smToMd,smToLg,smToXl,mdToLg,mdToXl,lgToXl,@/xs,@/sm,@/md,@/lg,@likec4-root/xs,@likec4-root/sm,@likec4-root/md,@likec4-root/lg,@likec4-dialog/xs,@likec4-dialog/sm,@likec4-dialog/md,@likec4-dialog/lg,textStyle,layerStyle,animationStyle", userGenerated = userGeneratedStr.split(","), cssPropertiesStr = "WebkitAppearance,WebkitBorderBefore,WebkitBorderBeforeColor,WebkitBorderBeforeStyle,WebkitBorderBeforeWidth,WebkitBoxReflect,WebkitLineClamp,WebkitMask,WebkitMaskAttachment,WebkitMaskClip,WebkitMaskComposite,WebkitMaskImage,WebkitMaskOrigin,WebkitMaskPosition,WebkitMaskPositionX,WebkitMaskPositionY,WebkitMaskRepeat,WebkitMaskRepeatX,WebkitMaskRepeatY,WebkitMaskSize,WebkitOverflowScrolling,WebkitTapHighlightColor,WebkitTextFillColor,WebkitTextStroke,WebkitTextStrokeColor,WebkitTextStrokeWidth,WebkitTouchCallout,WebkitUserModify,WebkitUserSelect,accentColor,alignContent,alignItems,alignSelf,alignTracks,all,anchorName,anchorScope,animation,animationComposition,animationDelay,animationDirection,animationDuration,animationFillMode,animationIterationCount,animationName,animationPlayState,animationRange,animationRangeEnd,animationRangeStart,animationTimeline,animationTimingFunction,appearance,aspectRatio,backdropFilter,backfaceVisibility,background,backgroundAttachment,backgroundBlendMode,backgroundClip,backgroundColor,backgroundImage,backgroundOrigin,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundRepeat,backgroundSize,blockSize,border,borderBlock,borderBlockColor,borderBlockEnd,borderBlockEndColor,borderBlockEndStyle,borderBlockEndWidth,borderBlockStart,borderBlockStartColor,borderBlockStartStyle,borderBlockStartWidth,borderBlockStyle,borderBlockWidth,borderBottom,borderBottomColor,borderBottomLeftRadius,borderBottomRightRadius,borderBottomStyle,borderBottomWidth,borderCollapse,borderColor,borderEndEndRadius,borderEndStartRadius,borderImage,borderImageOutset,borderImageRepeat,borderImageSlice,borderImageSource,borderImageWidth,borderInline,borderInlineColor,borderInlineEnd,borderInlineEndColor,borderInlineEndStyle,borderInlineEndWidth,borderInlineStart,borderInlineStartColor,borderInlineStartStyle,borderInlineStartWidth,borderInlineStyle,borderInlineWidth,borderLeft,borderLeftColor,borderLeftStyle,borderLeftWidth,borderRadius,borderRight,borderRightColor,borderRightStyle,borderRightWidth,borderSpacing,borderStartEndRadius,borderStartStartRadius,borderStyle,borderTop,borderTopColor,borderTopLeftRadius,borderTopRightRadius,borderTopStyle,borderTopWidth,borderWidth,bottom,boxAlign,boxDecorationBreak,boxDirection,boxFlex,boxFlexGroup,boxLines,boxOrdinalGroup,boxOrient,boxPack,boxShadow,boxSizing,breakAfter,breakBefore,breakInside,captionSide,caret,caretColor,caretShape,clear,clip,clipPath,clipRule,color,colorInterpolationFilters,colorScheme,columnCount,columnFill,columnGap,columnRule,columnRuleColor,columnRuleStyle,columnRuleWidth,columnSpan,columnWidth,columns,contain,containIntrinsicBlockSize,containIntrinsicHeight,containIntrinsicInlineSize,containIntrinsicSize,containIntrinsicWidth,container,containerName,containerType,content,contentVisibility,counterIncrement,counterReset,counterSet,cursor,cx,cy,d,direction,display,dominantBaseline,emptyCells,fieldSizing,fill,fillOpacity,fillRule,filter,flex,flexBasis,flexDirection,flexFlow,flexGrow,flexShrink,flexWrap,float,floodColor,floodOpacity,font,fontFamily,fontFeatureSettings,fontKerning,fontLanguageOverride,fontOpticalSizing,fontPalette,fontSize,fontSizeAdjust,fontSmooth,fontStretch,fontStyle,fontSynthesis,fontSynthesisPosition,fontSynthesisSmallCaps,fontSynthesisStyle,fontSynthesisWeight,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariantEastAsian,fontVariantEmoji,fontVariantLigatures,fontVariantNumeric,fontVariantPosition,fontVariationSettings,fontWeight,forcedColorAdjust,gap,grid,gridArea,gridAutoColumns,gridAutoFlow,gridAutoRows,gridColumn,gridColumnEnd,gridColumnGap,gridColumnStart,gridGap,gridRow,gridRowEnd,gridRowGap,gridRowStart,gridTemplate,gridTemplateAreas,gridTemplateColumns,gridTemplateRows,hangingPunctuation,height,hyphenateCharacter,hyphenateLimitChars,hyphens,imageOrientation,imageRendering,imageResolution,imeMode,initialLetter,initialLetterAlign,inlineSize,inset,insetBlock,insetBlockEnd,insetBlockStart,insetInline,insetInlineEnd,insetInlineStart,interpolateSize,isolation,justifyContent,justifyItems,justifySelf,justifyTracks,left,letterSpacing,lightingColor,lineBreak,lineClamp,lineHeight,lineHeightStep,listStyle,listStyleImage,listStylePosition,listStyleType,margin,marginBlock,marginBlockEnd,marginBlockStart,marginBottom,marginInline,marginInlineEnd,marginInlineStart,marginLeft,marginRight,marginTop,marginTrim,marker,markerEnd,markerMid,markerStart,mask,maskBorder,maskBorderMode,maskBorderOutset,maskBorderRepeat,maskBorderSlice,maskBorderSource,maskBorderWidth,maskClip,maskComposite,maskImage,maskMode,maskOrigin,maskPosition,maskRepeat,maskSize,maskType,masonryAutoFlow,mathDepth,mathShift,mathStyle,maxBlockSize,maxHeight,maxInlineSize,maxLines,maxWidth,minBlockSize,minHeight,minInlineSize,minWidth,mixBlendMode,objectFit,objectPosition,offset,offsetAnchor,offsetDistance,offsetPath,offsetPosition,offsetRotate,opacity,order,orphans,outline,outlineColor,outlineOffset,outlineStyle,outlineWidth,overflow,overflowAnchor,overflowBlock,overflowClipBox,overflowClipMargin,overflowInline,overflowWrap,overflowX,overflowY,overlay,overscrollBehavior,overscrollBehaviorBlock,overscrollBehaviorInline,overscrollBehaviorX,overscrollBehaviorY,padding,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingBottom,paddingInline,paddingInlineEnd,paddingInlineStart,paddingLeft,paddingRight,paddingTop,page,pageBreakAfter,pageBreakBefore,pageBreakInside,paintOrder,perspective,perspectiveOrigin,placeContent,placeItems,placeSelf,pointerEvents,position,positionAnchor,positionArea,positionTry,positionTryFallbacks,positionTryOrder,positionVisibility,printColorAdjust,quotes,r,resize,right,rotate,rowGap,rubyAlign,rubyMerge,rubyPosition,rx,ry,scale,scrollBehavior,scrollMargin,scrollMarginBlock,scrollMarginBlockEnd,scrollMarginBlockStart,scrollMarginBottom,scrollMarginInline,scrollMarginInlineEnd,scrollMarginInlineStart,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollPadding,scrollPaddingBlock,scrollPaddingBlockEnd,scrollPaddingBlockStart,scrollPaddingBottom,scrollPaddingInline,scrollPaddingInlineEnd,scrollPaddingInlineStart,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollSnapAlign,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapStop,scrollSnapType,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,scrollbarColor,scrollbarGutter,scrollbarWidth,shapeImageThreshold,shapeMargin,shapeOutside,shapeRendering,stopColor,stopOpacity,stroke,strokeDasharray,strokeDashoffset,strokeLinecap,strokeLinejoin,strokeMiterlimit,strokeOpacity,strokeWidth,tabSize,tableLayout,textAlign,textAlignLast,textAnchor,textBox,textBoxEdge,textBoxTrim,textCombineUpright,textDecoration,textDecorationColor,textDecorationLine,textDecorationSkip,textDecorationSkipInk,textDecorationStyle,textDecorationThickness,textEmphasis,textEmphasisColor,textEmphasisPosition,textEmphasisStyle,textIndent,textJustify,textOrientation,textOverflow,textRendering,textShadow,textSizeAdjust,textSpacingTrim,textTransform,textUnderlineOffset,textUnderlinePosition,textWrap,textWrapMode,textWrapStyle,timelineScope,top,touchAction,transform,transformBox,transformOrigin,transformStyle,transition,transitionBehavior,transitionDelay,transitionDuration,transitionProperty,transitionTimingFunction,translate,unicodeBidi,userSelect,vectorEffect,verticalAlign,viewTimeline,viewTimelineAxis,viewTimelineInset,viewTimelineName,viewTransitionName,visibility,whiteSpace,whiteSpaceCollapse,widows,width,willChange,wordBreak,wordSpacing,wordWrap,writingMode,x,y,zIndex,zoom,alignmentBaseline,baselineShift,colorInterpolation,colorRendering,glyphOrientationVertical", allCssProperties = cssPropertiesStr.split(",").concat(userGenerated), properties = new Map(allCssProperties.map((prop) => [prop, !0])), cssPropertySelectorRegex = /&|@/, isCssProperty = /* @__PURE__ */ memo((prop) => properties.has(prop) || prop.startsWith("--") || cssPropertySelectorRegex.test(prop));
16028
16050
  const defaultShouldForwardProp = (prop, variantKeys) => !variantKeys.includes(prop) && !isCssProperty(prop), composeShouldForwardProps = (tag, shouldForwardProp) => tag.__shouldForwardProps__ && shouldForwardProp ? (propName) => tag.__shouldForwardProps__(propName) && shouldForwardProp(propName) : shouldForwardProp, composeCvaFn = (cvaA, cvaB) => {
16029
16051
  if (cvaA && !cvaB) return cvaA;
16030
16052
  if (!cvaA && cvaB) return cvaB;
@@ -16177,25 +16199,21 @@ function ReduceGraphicsContext({ reduceGraphics, children: children2 }) {
16177
16199
  function useIsPanning() {
16178
16200
  return useStore(usePanningAtom());
16179
16201
  }
16180
- const LikeC4ModelContext = createContext(null);
16181
- function useLikeC4Model(type) {
16202
+ const LikeC4ModelContext = createContext(null), CurrentViewModelContext = createContext(null);
16203
+ function useLikeC4Model() {
16182
16204
  const model = useContext(LikeC4ModelContext);
16183
16205
  if (!model)
16184
16206
  throw new Error("LikeC4Model not found. Make sure you have LikeC4ModelProvider.");
16185
- if (t$3(type) && model.stage !== type)
16186
- throw new Error(`Invalid LikeC4ModelContext, expected "${type}" but got "${model.stage}" in context`);
16187
16207
  return model;
16188
16208
  }
16189
16209
  function useLikeC4ViewModel(viewId) {
16190
- const view = useLikeC4Model("layouted").findView(viewId);
16191
- if (!view)
16192
- return null;
16193
- if (!view.isDiagram())
16194
- throw new Error(`View "${viewId}" is not layouted`);
16195
- return view;
16210
+ return useLikeC4Model().view(viewId);
16196
16211
  }
16197
16212
  function useLikeC4Specification() {
16198
- return useLikeC4Model().$data.specification;
16213
+ const model = useLikeC4Model(), [specification, setSpecification] = useState(model.$data.specification);
16214
+ return useEffect(() => {
16215
+ setSpecification((current) => deepEqual(current, model.$data.specification) ? current : model.$data.specification);
16216
+ }, [model]), specification;
16199
16217
  }
16200
16218
  const TagStylesContext = createContext({}), radixColors = [
16201
16219
  "yellow",
@@ -16284,23 +16302,6 @@ function RootContainer({
16284
16302
  function useRootContainer() {
16285
16303
  return useContext(RootContainerContext).current;
16286
16304
  }
16287
- function useMantinePortalProps() {
16288
- const target = useRootContainer();
16289
- return useMemo(() => target ? { portalProps: { target }, withinPortal: !0 } : { withinPortal: !1 }, [target]);
16290
- }
16291
- function useSetState(initialState) {
16292
- const [state, _setState] = useState(initialState), setState = useCallback(
16293
- (statePartial) => _setState((current) => {
16294
- const next = {
16295
- ...current,
16296
- ...typeof statePartial == "function" ? statePartial(current) : statePartial
16297
- };
16298
- return shallowEqual(current, next) ? current : next;
16299
- }),
16300
- []
16301
- );
16302
- return [state, setState];
16303
- }
16304
16305
  const noop = () => {
16305
16306
  }, depsShallowEqual = (d1, d2) => {
16306
16307
  if (d1 === d2)
@@ -17315,6 +17316,23 @@ function bezierPath(bezierSpline) {
17315
17316
  }
17316
17317
  return invariant(points.length === 0, "all points should be consumed"), path;
17317
17318
  }
17319
+ function useMantinePortalProps() {
17320
+ const target = useRootContainer();
17321
+ return useMemo(() => target ? { portalProps: { target }, withinPortal: !0 } : { withinPortal: !1 }, [target]);
17322
+ }
17323
+ function useSetState(initialState) {
17324
+ const [state, _setState] = useState(initialState), setState = useCallback(
17325
+ (statePartial) => _setState((current) => {
17326
+ const next = {
17327
+ ...current,
17328
+ ...typeof statePartial == "function" ? statePartial(current) : statePartial
17329
+ };
17330
+ return shallowEqual(current, next) ? current : next;
17331
+ }),
17332
+ []
17333
+ );
17334
+ return [state, setState];
17335
+ }
17318
17336
  function getGlobal() {
17319
17337
  if (typeof globalThis < "u")
17320
17338
  return globalThis;
@@ -19209,16 +19227,12 @@ function useDiagramActorSnapshot(selector2, compare = shallowEqual) {
19209
19227
  const actorRef = useDiagramActorRef();
19210
19228
  return useSelector(actorRef, useCallbackRef(selector2), compare);
19211
19229
  }
19212
- function useDiagramSyncLayoutState(selector2, compare = shallowEqual) {
19213
- const syncLayoutActorRef = useDiagramActorSnapshot((s2) => s2.context.syncLayoutActorRef);
19214
- return useSelector(syncLayoutActorRef, useCallbackRef(selector2), compare);
19215
- }
19216
19230
  function useDiagramContext(selector2, compare = shallowEqual, deps) {
19217
19231
  const actorRef = useDiagramActorRef(), select2 = useCallback((s2) => selector2(s2.context), deps ?? []);
19218
19232
  return useSelector(actorRef, select2, compare);
19219
19233
  }
19220
19234
  const createRecipe = (name, defaultVariants, compoundVariants) => {
19221
- const getVariantProps = (variants) => ({
19235
+ const getVariantProps2 = (variants) => ({
19222
19236
  [name]: "__ignore__",
19223
19237
  ...defaultVariants,
19224
19238
  ...compact(variants)
@@ -19235,15 +19249,15 @@ const createRecipe = (name, defaultVariants, compoundVariants) => {
19235
19249
  toHash: (path, hashFn) => hashFn(path.join(":")),
19236
19250
  transform: (prop, value) => (assertCompoundVariant(name, compoundVariants, variants, prop), value === "__ignore__" ? { className: name } : (value = withoutSpace(value), { className: `${name}--${prop}_${value}` }))
19237
19251
  }
19238
- }), recipeStyles = getVariantProps(variants);
19252
+ }), recipeStyles = getVariantProps2(variants);
19239
19253
  if (withCompoundVariants) {
19240
19254
  const compoundVariantStyles = getCompoundVariantCss(compoundVariants, recipeStyles);
19241
19255
  return cx(recipeCss(recipeStyles), css(compoundVariantStyles));
19242
19256
  }
19243
19257
  return recipeCss(recipeStyles);
19244
19258
  },
19245
- getVariantProps,
19246
- __getCompoundVariantCss__: (variants) => getCompoundVariantCss(compoundVariants, getVariantProps(variants))
19259
+ getVariantProps: getVariantProps2,
19260
+ __getCompoundVariantCss__: (variants) => getCompoundVariantCss(compoundVariants, getVariantProps2(variants))
19247
19261
  };
19248
19262
  }, mergeRecipes = (recipeA, recipeB) => {
19249
19263
  if (recipeA && !recipeB) return recipeA;
@@ -19290,6 +19304,20 @@ const createRecipe = (name, defaultVariants, compoundVariants) => {
19290
19304
  return splitProps(props, actionBtnVariantKeys);
19291
19305
  },
19292
19306
  getVariantProps: actionBtnFn.getVariantProps
19307
+ }), elementNodeIconFn = /* @__PURE__ */ createRecipe("likec4-element-node-icon", {}, []), elementNodeIconVariantMap = {}, elementNodeIconVariantKeys = Object.keys(elementNodeIconVariantMap), elementNodeIcon = /* @__PURE__ */ Object.assign(memo(elementNodeIconFn.recipeFn), {
19308
+ __recipe__: !0,
19309
+ __name__: "elementNodeIcon",
19310
+ __getCompoundVariantCss__: elementNodeIconFn.__getCompoundVariantCss__,
19311
+ raw: (props) => props,
19312
+ variantKeys: elementNodeIconVariantKeys,
19313
+ variantMap: elementNodeIconVariantMap,
19314
+ merge(recipe) {
19315
+ return mergeRecipes(this, recipe);
19316
+ },
19317
+ splitVariantProps(props) {
19318
+ return splitProps(props, elementNodeIconVariantKeys);
19319
+ },
19320
+ getVariantProps: elementNodeIconFn.getVariantProps
19293
19321
  }), likec4tagFn = /* @__PURE__ */ createRecipe("likec4-tag", {
19294
19322
  autoTextColor: !1
19295
19323
  }, []), likec4tagVariantMap = {
@@ -19332,19 +19360,87 @@ const createRecipe = (name, defaultVariants, compoundVariants) => {
19332
19360
  return splitProps(props, markdownBlockVariantKeys);
19333
19361
  },
19334
19362
  getVariantProps: markdownBlockFn.getVariantProps
19335
- }), MotionButton = /* @__PURE__ */ createMinimalMotionComponent("button"), MotionDiv = /* @__PURE__ */ createMinimalMotionComponent("div"), compoundActionBtn = cva({
19363
+ }), elementNodeDataDefaultVariants = {
19364
+ hasIcon: !1
19365
+ }, elementNodeDataCompoundVariants = [
19366
+ {
19367
+ hasDescription: !0,
19368
+ hasTechnology: !0,
19369
+ css: {
19370
+ textContainer: {
19371
+ gap: "6px"
19372
+ }
19373
+ }
19374
+ }
19375
+ ], elementNodeDataSlotNames = [
19376
+ [
19377
+ "root",
19378
+ "likec4-el-node-data__root"
19379
+ ],
19380
+ [
19381
+ "textContainer",
19382
+ "likec4-el-node-data__textContainer"
19383
+ ],
19384
+ [
19385
+ "title",
19386
+ "likec4-el-node-data__title"
19387
+ ],
19388
+ [
19389
+ "description",
19390
+ "likec4-el-node-data__description"
19391
+ ],
19392
+ [
19393
+ "technology",
19394
+ "likec4-el-node-data__technology"
19395
+ ],
19396
+ [
19397
+ "icon",
19398
+ "likec4-el-node-data__icon"
19399
+ ]
19400
+ ], elementNodeDataSlotFns = /* @__PURE__ */ elementNodeDataSlotNames.map(([slotName, slotKey]) => [slotName, createRecipe(slotKey, elementNodeDataDefaultVariants, getSlotCompoundVariant(elementNodeDataCompoundVariants, slotName))]), elementNodeDataFn = memo((props = {}) => Object.fromEntries(elementNodeDataSlotFns.map(([slotName, slotFn]) => [slotName, slotFn.recipeFn(props)]))), elementNodeDataVariantKeys = [
19401
+ "hasIcon",
19402
+ "hasDescription",
19403
+ "hasTechnology"
19404
+ ], getVariantProps = (variants) => ({ ...elementNodeDataDefaultVariants, ...compact(variants) }), elementNodeData = /* @__PURE__ */ Object.assign(elementNodeDataFn, {
19405
+ __recipe__: !1,
19406
+ __name__: "elementNodeData",
19407
+ raw: (props) => props,
19408
+ variantKeys: elementNodeDataVariantKeys,
19409
+ variantMap: {
19410
+ hasIcon: [
19411
+ "false",
19412
+ "true"
19413
+ ],
19414
+ hasDescription: [
19415
+ "false",
19416
+ "true"
19417
+ ],
19418
+ hasTechnology: [
19419
+ "false",
19420
+ "true"
19421
+ ]
19422
+ },
19423
+ splitVariantProps(props) {
19424
+ return splitProps(props, elementNodeDataVariantKeys);
19425
+ },
19426
+ getVariantProps
19427
+ });
19428
+ function createMinimalMotionComponent(Component, options) {
19429
+ return createMotionComponent(Component, options);
19430
+ }
19431
+ const MotionButton = /* @__PURE__ */ createMinimalMotionComponent("button"), MotionDiv = /* @__PURE__ */ createMinimalMotionComponent("div"), MotionSpan = /* @__PURE__ */ createMinimalMotionComponent("span"), compoundActionBtn = cva({
19336
19432
  base: {
19337
19433
  transitionDuration: "normal",
19338
19434
  "[data-compound-title-inverse] &": {
19339
19435
  _dark: {
19340
- "--actionbtn-color": "color-mix(in srgb, {colors.likec4.palette.loContrast} 60%, {colors.likec4.palette.fill})"
19436
+ "--actionbtn-color": "color-mix(in srgb, var(--likec4-palette-loContrast) 60%, var(--likec4-palette-fill))"
19341
19437
  },
19342
19438
  _light: {
19343
- "--actionbtn-color": "{colors.likec4.palette.stroke}",
19344
- "--actionbtn-color-hovered": "{colors.likec4.palette.stroke}",
19345
- "--actionbtn-color-hovered-btn": "{colors.likec4.palette.hiContrast}",
19346
- "--actionbtn-bg-hovered": "{colors.likec4.palette.fill/50}",
19347
- "--actionbtn-bg-hovered-btn": "{colors.likec4.palette.fill}"
19439
+ "--actionbtn-color": "var(--likec4-palette-stroke)",
19440
+ "--actionbtn-color-hovered": "var(--likec4-palette-stroke)",
19441
+ "--actionbtn-color-hovered-btn": "var(--likec4-palette-hiContrast)",
19442
+ "--actionbtn-bg-hovered": "var(--likec4-palette-fill)/50",
19443
+ "--actionbtn-bg-hovered-btn": "var(--likec4-palette-fill)"
19348
19444
  }
19349
19445
  }
19350
19446
  },
@@ -19374,8 +19470,8 @@ function CompoundActionButton({
19374
19470
  className: cx(
19375
19471
  css({
19376
19472
  position: "absolute",
19377
- top: "5px",
19378
- left: "4px",
19473
+ top: "[5px]",
19474
+ left: "[4px]",
19379
19475
  _smallZoom: {
19380
19476
  display: "none"
19381
19477
  }
@@ -19431,8 +19527,8 @@ function CompoundDetailsButton({
19431
19527
  className: cx(
19432
19528
  css({
19433
19529
  position: "absolute",
19434
- top: "[2px]",
19435
- right: "[2px]",
19530
+ top: "0.5",
19531
+ right: "0.5",
19436
19532
  _smallZoom: {
19437
19533
  display: "none"
19438
19534
  }
@@ -19509,7 +19605,7 @@ const borderWidth = {
19509
19605
  width: "100%",
19510
19606
  height: "100%",
19511
19607
  border: "transparent",
19512
- background: "likec4.palette.fill",
19608
+ background: "var(--likec4-palette-fill)",
19513
19609
  backgroundClip: "padding-box",
19514
19610
  transitionDelay: ".075ms"
19515
19611
  },
@@ -19545,7 +19641,7 @@ const borderWidth = {
19545
19641
  background: "transparent",
19546
19642
  borderStyle: "dashed",
19547
19643
  borderWidth: `[${borderWidth.ref}]`,
19548
- borderColor: `[color-mix(in srgb, {colors.likec4.palette.stroke} ${borderOpacityPercent.ref}, transparent)]`
19644
+ borderColor: `[color-mix(in srgb, var(--likec4-palette-stroke) ${borderOpacityPercent.ref}, transparent)]`
19549
19645
  }), indicatorSvg = css.raw({
19550
19646
  position: "absolute",
19551
19647
  top: "0",
@@ -19565,12 +19661,12 @@ const borderWidth = {
19565
19661
  display: "none"
19566
19662
  }
19567
19663
  }), indicatorRect = css.raw({
19568
- stroke: "[color-mix(in srgb, {colors.likec4.palette.stroke} 60%, {colors.likec4.palette.hiContrast})]",
19664
+ stroke: "[color-mix(in srgb, var(--likec4-palette-stroke) 60%, var(--likec4-palette-hiContrast))]",
19569
19665
  strokeWidth: "4",
19570
19666
  fill: "[none]",
19571
19667
  animationStyle: "indicator",
19572
19668
  _light: {
19573
- stroke: "[color-mix(in srgb, {colors.likec4.palette.stroke} 80%, {colors.likec4.palette.hiContrast})]"
19669
+ stroke: "[color-mix(in srgb, var(--likec4-palette-stroke) 80%, var(--likec4-palette-hiContrast))]"
19574
19670
  }
19575
19671
  }), compound = sva({
19576
19672
  slots: ["root", "compoundBorder", "indicatorSvg", "indicatorRect"],
@@ -19633,9 +19729,6 @@ function CompoundNodeContainer({
19633
19729
  m.div,
19634
19730
  {
19635
19731
  className: cx(
19636
- css({
19637
- likec4Palette: `${data.color}.${depth}`
19638
- }),
19639
19732
  classes2.root,
19640
19733
  "likec4-compound-node",
19641
19734
  className
@@ -19690,10 +19783,11 @@ const titleContainer = css({
19690
19783
  position: "absolute",
19691
19784
  display: "flex",
19692
19785
  alignItems: "center",
19693
- gap: "6px",
19694
- left: "14px",
19695
- top: "4px",
19696
- right: "30px",
19786
+ gap: "1.5",
19787
+ // 6px
19788
+ left: "[14px]",
19789
+ top: "[4px]",
19790
+ right: "[30px]",
19697
19791
  width: "auto",
19698
19792
  minHeight: "30px",
19699
19793
  ":where(.react-flow__node.draggable) &": {
@@ -19701,7 +19795,7 @@ const titleContainer = css({
19701
19795
  cursor: "grab"
19702
19796
  },
19703
19797
  ".likec4-compound-node:has(.compound-action) &": {
19704
- paddingLeft: "22px"
19798
+ paddingLeft: "[22px]"
19705
19799
  }
19706
19800
  }), titleText = css({
19707
19801
  flex: "1",
@@ -19710,17 +19804,17 @@ const titleContainer = css({
19710
19804
  fontSize: "15px",
19711
19805
  textTransform: "uppercase",
19712
19806
  letterSpacing: "0.2px",
19713
- color: "likec4.palette.loContrast",
19807
+ color: "var(--likec4-palette-loContrast)",
19714
19808
  "[data-compound-title-inverse] &": {
19715
19809
  color: {
19716
- base: "[color-mix(in srgb, {colors.likec4.palette.loContrast} 60%, {colors.likec4.palette.fill})]",
19717
- _light: "likec4.palette.stroke"
19810
+ base: "[color-mix(in srgb, var(--likec4-palette-loContrast) 60%, var(--likec4-palette-fill))]",
19811
+ _light: "var(--likec4-palette-stroke)"
19718
19812
  }
19719
19813
  }
19720
- }), iconSize$1 = "20px", cssIcon = css({
19721
- flex: `0 0 ${iconSize$1}`,
19722
- height: `${iconSize$1}`,
19723
- width: `${iconSize$1}`,
19814
+ }), iconSize = "20px", cssIcon = css({
19815
+ flex: `0 0 ${iconSize}`,
19816
+ height: `${iconSize}`,
19817
+ width: `${iconSize}`,
19724
19818
  display: "flex",
19725
19819
  alignItems: "center",
19726
19820
  justifyContent: "center",
@@ -19747,7 +19841,7 @@ const titleContainer = css({
19747
19841
  }
19748
19842
  });
19749
19843
  function CompoundTitle({ id: id2, data }) {
19750
- const elementIcon2 = IconRenderer({
19844
+ const elementIcon = IconRenderer({
19751
19845
  element: {
19752
19846
  id: id2,
19753
19847
  title: data.title,
@@ -19763,7 +19857,7 @@ function CompoundTitle({ id: id2, data }) {
19763
19857
  "likec4-compound-title"
19764
19858
  ),
19765
19859
  children: [
19766
- elementIcon2,
19860
+ elementIcon,
19767
19861
  /* @__PURE__ */ jsx(Text, { className: titleText, truncate: "end", children: data.title })
19768
19862
  ]
19769
19863
  }
@@ -19787,9 +19881,9 @@ function customNode(Node2) {
19787
19881
  const container$2 = css({
19788
19882
  position: "absolute",
19789
19883
  zIndex: 1,
19790
- top: "calc(100% - 30px)",
19884
+ top: "[calc(100% - 30px)]",
19791
19885
  transform: "translateX(-50%)",
19792
- left: "50%",
19886
+ left: "[50%]",
19793
19887
  width: "auto",
19794
19888
  minHeight: "30px",
19795
19889
  display: "flex",
@@ -19850,20 +19944,21 @@ function ElementActionButtons({
19850
19944
  }
19851
19945
  const container$1 = css({
19852
19946
  position: "absolute",
19853
- top: 2,
19854
- right: 2,
19947
+ top: "0.5",
19948
+ right: "0.5",
19855
19949
  _shapeBrowser: {
19856
- right: "5px"
19950
+ right: "[5px]"
19857
19951
  },
19858
19952
  _shapeCylinder: {
19859
- top: "14px"
19953
+ top: "[14px]"
19860
19954
  },
19861
19955
  _shapeStorage: {
19862
- top: "14px"
19956
+ top: "[14px]"
19863
19957
  },
19864
19958
  _shapeQueue: {
19865
- top: "1px",
19866
- right: "12px"
19959
+ top: "[1px]",
19960
+ right: "3"
19961
+ // 12px
19867
19962
  },
19868
19963
  _smallZoom: {
19869
19964
  display: "none"
@@ -19911,8 +20006,8 @@ const container = css({
19911
20006
  position: "relative",
19912
20007
  width: "100%",
19913
20008
  height: "100%",
19914
- padding: 0,
19915
- margin: 0,
20009
+ padding: "0",
20010
+ margin: "0",
19916
20011
  display: "flex",
19917
20012
  alignItems: "center",
19918
20013
  justifyContent: "center",
@@ -19920,8 +20015,8 @@ const container = css({
19920
20015
  _before: {
19921
20016
  content: '" "',
19922
20017
  position: "absolute",
19923
- top: "calc(100% - 4px)",
19924
- left: 0,
20018
+ top: "[calc(100% - 4px)]",
20019
+ left: "0",
19925
20020
  width: "100%",
19926
20021
  height: "24px",
19927
20022
  background: "[transparent]",
@@ -19999,9 +20094,6 @@ const ElementNodeContainer = forwardRef(({
19999
20094
  {
20000
20095
  ref,
20001
20096
  className: cx(
20002
- css({
20003
- likec4Palette: data.color
20004
- }),
20005
20097
  container,
20006
20098
  "group",
20007
20099
  "likec4-element-node",
@@ -20036,14 +20128,14 @@ const indicator = css({
20036
20128
  _smallZoom: {
20037
20129
  visibility: "hidden"
20038
20130
  },
20039
- stroke: "likec4.palette.loContrast",
20131
+ stroke: "var(--likec4-palette-loContrast)",
20040
20132
  fill: "[none]",
20041
20133
  strokeWidth: 8,
20042
20134
  strokeOpacity: 0.8,
20043
20135
  visibility: "hidden",
20044
20136
  pointerEvents: "none",
20045
20137
  _light: {
20046
- stroke: "[color-mix(in srgb, {colors.likec4.palette.fill} 50%,rgb(121, 121, 121))]"
20138
+ stroke: "[color-mix(in srgb, var(--likec4-palette-fill) 50%,rgb(121, 121, 121))]"
20047
20139
  },
20048
20140
  _whenFocused: {
20049
20141
  visibility: "visible"
@@ -20056,25 +20148,25 @@ const indicator = css({
20056
20148
  visibility: "visible"
20057
20149
  }
20058
20150
  }), fillElementFill = css({
20059
- fill: "likec4.palette.fill"
20151
+ fill: "var(--likec4-palette-fill)"
20060
20152
  });
20061
20153
  css({
20062
- fill: "likec4.palette.stroke"
20154
+ fill: "var(--likec4-palette-stroke)"
20063
20155
  });
20064
20156
  const fillMixStroke = css({
20065
- fill: "[color-mix(in srgb, {colors.likec4.palette.stroke} 90%, {colors.likec4.palette.fill})]",
20157
+ fill: "[color-mix(in srgb, var(--likec4-palette-stroke) 90%, var(--likec4-palette-fill))]",
20066
20158
  ".shape-svg-multiple &": {
20067
- fill: "likec4.palette.fill"
20159
+ fill: "var(--likec4-palette-fill)"
20068
20160
  }
20069
20161
  }), shapeBase = css.raw({
20070
- top: 0,
20071
- left: 0,
20162
+ top: "0",
20163
+ left: "0",
20072
20164
  position: "absolute",
20073
20165
  width: "100%",
20074
20166
  height: "100%",
20075
20167
  pointerEvents: "none",
20076
- fill: "likec4.palette.fill",
20077
- stroke: "likec4.palette.stroke",
20168
+ fill: "var(--likec4-palette-fill)",
20169
+ stroke: "var(--likec4-palette-stroke)",
20078
20170
  overflow: "visible"
20079
20171
  // zIndex is removed to improve rendering performance
20080
20172
  // this forces to keep shape in the same layer as the node
@@ -20103,7 +20195,7 @@ const fillMixStroke = css({
20103
20195
  transitionDelay: "0ms",
20104
20196
  filter: `
20105
20197
  drop-shadow(0 2px 1px rgba(0, 0, 0, 0.21))
20106
- drop-shadow(0 1px 1px color-mix(in srgb, {colors.likec4.palette.stroke} 40%, transparent))
20198
+ drop-shadow(0 1px 1px color-mix(in srgb, var(--likec4-palette-stroke) 40%, transparent))
20107
20199
  drop-shadow(0 5px 3px rgba(0, 0, 0, 0.1))
20108
20200
  `,
20109
20201
  _whenHovered: {
@@ -20300,7 +20392,7 @@ function SelectedIndicator({ shape, w, h }) {
20300
20392
  return /* @__PURE__ */ jsx("g", { className: indicator, children: svg });
20301
20393
  }
20302
20394
  const ElementTag = forwardRef(
20303
- ({ tag, className, ...props }, ref) => {
20395
+ ({ tag, cursor = "default", className, ...props }, ref) => {
20304
20396
  const spec = useTagSpecification(tag);
20305
20397
  return /* @__PURE__ */ jsxs(
20306
20398
  Box,
@@ -20314,8 +20406,9 @@ const ElementTag = forwardRef(
20314
20406
  className
20315
20407
  ),
20316
20408
  ...props,
20409
+ style: { cursor },
20317
20410
  children: [
20318
- /* @__PURE__ */ jsx("span", { style: { opacity: 0.7, fontSize: "1.05em" }, children: "#" }),
20411
+ /* @__PURE__ */ jsx("span", { children: "#" }),
20319
20412
  /* @__PURE__ */ jsx("span", { children: tag })
20320
20413
  ]
20321
20414
  }
@@ -20349,23 +20442,23 @@ const ElementTag = forwardRef(
20349
20442
  "likec4-element-tags",
20350
20443
  hstack({
20351
20444
  pointerEvents: "all",
20352
- gap: 4,
20445
+ gap: "1",
20353
20446
  alignItems: "flex-end",
20354
20447
  justifyItems: "stretch",
20355
20448
  position: "absolute",
20356
20449
  width: "100%",
20357
- bottom: 0,
20358
- left: 0,
20359
- padding: 4,
20450
+ bottom: "0",
20451
+ left: "0",
20452
+ padding: "1",
20360
20453
  _shapeCylinder: {
20361
- bottom: 5
20454
+ bottom: "[5px]"
20362
20455
  },
20363
20456
  _shapeStorage: {
20364
- bottom: 5
20457
+ bottom: "[5px]"
20365
20458
  },
20366
20459
  _shapeQueue: {
20367
- bottom: 0,
20368
- paddingLeft: 14
20460
+ bottom: "0",
20461
+ paddingLeft: "[14px]"
20369
20462
  }
20370
20463
  })
20371
20464
  ),
@@ -20399,11 +20492,12 @@ const ElementTag = forwardRef(
20399
20492
  {
20400
20493
  ref: tagsToolbarRef,
20401
20494
  css: {
20402
- gap: 4,
20495
+ gap: "0.5",
20496
+ alignItems: "baseline",
20403
20497
  flexWrap: "wrap",
20404
20498
  pb: "sm",
20405
20499
  translate: "auto",
20406
- x: -8,
20500
+ x: "[-8px]",
20407
20501
  maxWidth
20408
20502
  },
20409
20503
  children: tags.map((tag) => /* @__PURE__ */ jsx(
@@ -20415,8 +20509,9 @@ const ElementTag = forwardRef(
20415
20509
  cursor: "pointer",
20416
20510
  ...zoomIsLargeEnough && {
20417
20511
  fontSize: "lg",
20418
- borderRadius: 4,
20419
- px: 6
20512
+ borderRadius: "[4px]",
20513
+ px: "1.5"
20514
+ // 6px
20420
20515
  }
20421
20516
  }),
20422
20517
  onClick: (e2) => {
@@ -20443,7 +20538,7 @@ const MarkdownBlock = forwardRef(({
20443
20538
  }, ref) => {
20444
20539
  if (value.isEmpty && hideIfEmpty)
20445
20540
  return null;
20446
- const content = value.nonEmpty ? { dangerouslySetInnerHTML: { __html: value.html } } : { children: /* @__PURE__ */ jsx(Text, { component: "span", fz: "xs", c: "dimmed", children: emptyText }) };
20541
+ const content = value.nonEmpty ? { dangerouslySetInnerHTML: { __html: value.html } } : { children: /* @__PURE__ */ jsx(Text, { component: "span", fz: "xs", c: "dimmed", style: { userSelect: "none" }, children: emptyText }) };
20447
20542
  return /* @__PURE__ */ jsx(
20448
20543
  Box,
20449
20544
  {
@@ -20464,207 +20559,16 @@ const MarkdownBlock = forwardRef(({
20464
20559
  );
20465
20560
  });
20466
20561
  MarkdownBlock.displayName = "MarkdownBlock";
20467
- const iconSize = "--icon-size", title = css.raw({
20468
- textStyle: "likec4.node.primary",
20469
- flex: "0 0 auto",
20470
- textAlign: "center",
20471
- color: "likec4.palette.hiContrast"
20472
- }), description = css.raw({
20473
- flexGrow: "0",
20474
- flexShrink: "1",
20475
- textStyle: "likec4.node.secondary",
20476
- color: "likec4.palette.loContrast",
20477
- textAlign: "center",
20478
- textOverflow: "ellipsis",
20479
- overflow: "hidden",
20480
- _shapeSizeXs: {
20481
- display: "none"
20482
- },
20483
- _smallZoom: {
20484
- display: "none"
20485
- }
20486
- }), technology = css.raw({
20487
- flex: "0 0 auto",
20488
- textStyle: "likec4.node.secondary",
20489
- color: "likec4.palette.loContrast",
20490
- fontSize: "calc(var(--likec4-text-size) * 0.635)",
20491
- lineHeight: 1.125,
20492
- textAlign: "center",
20493
- textWrap: "balance",
20494
- opacity: 0.92,
20495
- _whenHovered: {
20496
- opacity: 1
20497
- },
20498
- _shapeSizeXs: {
20499
- display: "none"
20500
- },
20501
- _shapeSizeSm: {
20502
- display: "none"
20503
- },
20504
- _smallZoom: {
20505
- display: "none"
20506
- }
20507
- }), varIconSize = `var(${iconSize})`, elementIcon = css({
20508
- flex: `0 0 ${varIconSize}`,
20509
- height: varIconSize,
20510
- width: varIconSize,
20511
- display: "flex",
20512
- alignSelf: "flex-start",
20513
- alignItems: "center",
20514
- justifyContent: "center",
20515
- mixBlendMode: {
20516
- base: "hard-light",
20517
- _reduceGraphicsOnPan: "normal"
20518
- },
20519
- "& svg, & img": {
20520
- width: "100%",
20521
- height: "auto",
20522
- maxHeight: "100%",
20523
- pointerEvents: "none",
20524
- filter: {
20525
- base: [
20526
- "drop-shadow(0 0 3px rgb(0 0 0 / 12%))",
20527
- "drop-shadow(0 1px 8px rgb(0 0 0 / 8%))",
20528
- "drop-shadow(1px 1px 16px rgb(0 0 0 / 3%))"
20529
- ],
20530
- _reduceGraphicsOnPan: "none"
20531
- }
20532
- },
20533
- "& img": {
20534
- objectFit: "contain"
20535
- }
20536
- }), elementTitle = sva({
20537
- slots: ["root", "textContainer", "title", "description", "technology"],
20538
- base: {
20539
- root: {
20540
- position: "relative",
20541
- flex: "1",
20542
- height: "fit-content",
20543
- width: "fit-content",
20544
- maxHeight: "100%",
20545
- maxWidth: "100%",
20546
- margin: "0 auto",
20547
- display: "flex",
20548
- alignItems: "center",
20549
- justifyContent: "center",
20550
- flexDirection: "row",
20551
- paddingTop: "var(--likec4-spacing)",
20552
- paddingBottom: "var(--likec4-spacing)",
20553
- paddingLeft: "calc(var(--likec4-spacing) + 8px)",
20554
- paddingRight: "calc(var(--likec4-spacing) + 8px)",
20555
- overflow: "hidden",
20556
- pointerEvents: "none",
20557
- gap: "12px",
20558
- _shapeQueue: {
20559
- paddingLeft: "46px",
20560
- paddingRight: "16px"
20561
- },
20562
- _shapeMobile: {
20563
- paddingLeft: "46px",
20564
- paddingRight: "16px"
20565
- },
20566
- _shapeCylinder: {
20567
- paddingTop: "30px"
20568
- },
20569
- _shapeStorage: {
20570
- paddingTop: "30px"
20571
- },
20572
- _shapeBrowser: {
20573
- paddingTop: "32px",
20574
- paddingBottom: "28px"
20575
- },
20576
- _shapeSizeXs: {
20577
- [iconSize]: "24px"
20578
- },
20579
- _shapeSizeSm: {
20580
- [iconSize]: "36px"
20581
- },
20582
- _shapeSizeMd: {
20583
- [iconSize]: "60px"
20584
- },
20585
- _shapeSizeLg: {
20586
- [iconSize]: "82px",
20587
- gap: "16px"
20588
- },
20589
- _shapeSizeXl: {
20590
- [iconSize]: "90px",
20591
- gap: "16px"
20592
- }
20593
- },
20594
- textContainer: {
20595
- height: "fit-content",
20596
- width: "fit-content",
20597
- maxHeight: "100%",
20598
- maxWidth: "100%",
20599
- flex: "0 1 auto",
20600
- display: "flex",
20601
- flexDirection: "column",
20602
- alignItems: "stretch",
20603
- justifyContent: "center",
20604
- flexWrap: "nowrap",
20605
- overflow: "hidden",
20606
- gap: "8px"
20607
- },
20608
- title,
20609
- description,
20610
- technology
20611
- },
20612
- variants: {
20613
- hasIcon: {
20614
- false: {},
20615
- true: {
20616
- root: {
20617
- gap: "16px"
20618
- },
20619
- textContainer: {
20620
- minWidth: `calc(50% + ${varIconSize})`,
20621
- alignItems: "flex-start"
20622
- },
20623
- title: {
20624
- textAlign: "left"
20625
- },
20626
- description: {
20627
- textAlign: "left"
20628
- },
20629
- technology: {
20630
- textAlign: "left"
20631
- }
20632
- }
20633
- },
20634
- hasDescription: {
20635
- false: {},
20636
- true: {}
20637
- },
20638
- hasTechnology: {
20639
- false: {},
20640
- true: {}
20641
- }
20642
- },
20643
- compoundVariants: [
20644
- {
20645
- hasDescription: !0,
20646
- hasTechnology: !0,
20647
- css: {
20648
- textContainer: {
20649
- gap: "6px"
20650
- }
20651
- }
20652
- }
20653
- ],
20654
- defaultVariants: {
20655
- hasIcon: !1
20656
- }
20657
- });
20658
- function ElementTitle({ id: id2, data, iconSize: iconSize$12 }) {
20659
- const elementIcon$1 = IconRenderer({
20562
+ function ElementTitle({ id: id2, data, iconSize: iconSize2 }) {
20563
+ const elementIcon = IconRenderer({
20660
20564
  element: {
20661
20565
  id: id2,
20662
20566
  title: data.title,
20663
20567
  icon: data.icon
20664
20568
  },
20665
- className: elementIcon
20666
- }), classes2 = elementTitle({
20667
- hasIcon: n$1(elementIcon$1),
20569
+ className: elementNodeIcon()
20570
+ }), classes2 = elementNodeData({
20571
+ hasIcon: n$1(elementIcon),
20668
20572
  hasDescription: !!data.description?.nonEmpty,
20669
20573
  hasTechnology: !n(data.technology ?? "")
20670
20574
  }), size2 = nodeSizes(data.style).size, isSmOrXs = size2 === "sm" || size2 === "xs";
@@ -20675,12 +20579,12 @@ function ElementTitle({ id: id2, data, iconSize: iconSize$12 }) {
20675
20579
  classes2.root,
20676
20580
  "likec4-element"
20677
20581
  ),
20678
- style: e(iconSize$12) ? {
20582
+ style: e(iconSize2) ? {
20679
20583
  // @ts-ignore
20680
- [iconSize]: `${iconSize$12}px`
20584
+ "--likec4-icon-size": `${iconSize2}px`
20681
20585
  } : void 0,
20682
20586
  children: [
20683
- elementIcon$1,
20587
+ elementIcon,
20684
20588
  /* @__PURE__ */ jsxs(Box, { className: cx(classes2.textContainer, "likec4-element-main-props"), children: [
20685
20589
  /* @__PURE__ */ jsx(
20686
20590
  Text,
@@ -20715,6 +20619,12 @@ function ElementTitle({ id: id2, data, iconSize: iconSize$12 }) {
20715
20619
  }
20716
20620
  );
20717
20621
  }
20622
+ function useCurrentViewModel() {
20623
+ const vm = useContext(CurrentViewModelContext);
20624
+ if (!vm)
20625
+ throw new Error("No LikeC4ViewModel in context found");
20626
+ return vm;
20627
+ }
20718
20628
  const CompoundActions = (props) => {
20719
20629
  const { enableNavigateTo } = useEnabledFeatures(), diagram = useDiagram(), { navigateTo } = props.data;
20720
20630
  return navigateTo && enableNavigateTo ? /* @__PURE__ */ jsx(
@@ -20779,7 +20689,7 @@ const CompoundActions = (props) => {
20779
20689
  { key: "primary", value: primary.fill },
20780
20690
  { key: "secondary", value: secondary.fill },
20781
20691
  { key: "muted", value: muted.fill }
20782
- ], colors = t$4(otherColors).map((key) => ({
20692
+ ], colors = t$3(otherColors).map((key) => ({
20783
20693
  key,
20784
20694
  value: defaultTheme.elements[key].fill
20785
20695
  })), Tooltip = Tooltip$1.withProps({
@@ -21019,7 +20929,7 @@ const toolbarTitle = css({
21019
20929
  overflow: "hidden",
21020
20930
  whiteSpace: "nowrap"
21021
20931
  }), useSelectedNodesCount = () => useDiagramContext((s2) => s2.xynodes.filter((x) => x.selected).length);
21022
- function Toolbar({ title: title2, children: children2, nodeProps, ...props }) {
20932
+ function Toolbar({ title, children: children2, nodeProps, ...props }) {
21023
20933
  const selectedNodesCount = useSelectedNodesCount(), {
21024
20934
  selected: selected2 = !1,
21025
20935
  dragging = !1,
@@ -21051,7 +20961,7 @@ function Toolbar({ title: title2, children: children2, nodeProps, ...props }) {
21051
20961
  onDoubleClick: stopPropagation,
21052
20962
  withBorder: !0,
21053
20963
  children: /* @__PURE__ */ jsxs(Stack, { gap: "6px", children: [
21054
- /* @__PURE__ */ jsx(Box$1, { px: "4px", children: /* @__PURE__ */ jsx(Text, { className: toolbarTitle, children: title2 }) }),
20964
+ /* @__PURE__ */ jsx(Box$1, { px: "4px", children: /* @__PURE__ */ jsx(Text, { className: toolbarTitle, children: title }) }),
21055
20965
  /* @__PURE__ */ jsx(Group, { gap: 4, children: children2 })
21056
20966
  ] })
21057
20967
  }
@@ -21156,8 +21066,8 @@ function BorderStyleOption({
21156
21066
  },
21157
21067
  styles: {
21158
21068
  label: {
21159
- paddingTop: 2,
21160
- paddingBottom: 2
21069
+ paddingTop: "0.5",
21070
+ paddingBottom: "0.5"
21161
21071
  }
21162
21072
  },
21163
21073
  data: [
@@ -21384,7 +21294,7 @@ function useCurrentViewId() {
21384
21294
  }
21385
21295
  const backdropBlur = "--_blur", backdropOpacity = "--_opacity", level = "--_level", offset = "--_offset", inset = "--_inset", borderRadius = "--_border-radius", dialog = css.raw({
21386
21296
  boxSizing: "border-box",
21387
- margin: 0,
21297
+ margin: "0",
21388
21298
  position: "fixed",
21389
21299
  width: "100vw",
21390
21300
  height: "100vh",
@@ -21404,11 +21314,11 @@ const backdropBlur = "--_blur", backdropOpacity = "--_opacity", level = "--_leve
21404
21314
  _backdrop: {
21405
21315
  cursor: "zoom-out"
21406
21316
  },
21407
- inset: 0,
21408
- padding: 0
21317
+ inset: "0",
21318
+ padding: "0"
21409
21319
  }), body = css.raw({
21410
21320
  position: "relative",
21411
- containerName: "overlay-dialog",
21321
+ containerName: "likec4-dialog",
21412
21322
  containerType: "size",
21413
21323
  border: "0 solid transparent",
21414
21324
  overflow: "hidden",
@@ -21430,7 +21340,8 @@ const backdropBlur = "--_blur", backdropOpacity = "--_opacity", level = "--_leve
21430
21340
  width: "calc(100vw - 2 * var(--_inset))",
21431
21341
  height: "calc(100vh - var(--_offset) - var(--_inset))",
21432
21342
  [borderRadius]: "6px",
21433
- padding: "6px",
21343
+ padding: "1.5",
21344
+ // 6px
21434
21345
  [offset]: "1rem"
21435
21346
  },
21436
21347
  md: {
@@ -21451,8 +21362,8 @@ const backdropBlur = "--_blur", backdropOpacity = "--_opacity", level = "--_leve
21451
21362
  },
21452
21363
  true: {
21453
21364
  dialog: {
21454
- inset: 0,
21455
- padding: 0
21365
+ inset: "0",
21366
+ padding: "0"
21456
21367
  }
21457
21368
  }
21458
21369
  },
@@ -21606,299 +21517,318 @@ const backdropBlur = "--_blur", backdropOpacity = "--_opacity", level = "--_leve
21606
21517
  });
21607
21518
  Overlay.displayName = "Overlay";
21608
21519
  export {
21609
- getContrastColor as $,
21610
- createOptionalContext as A,
21520
+ FloatingDelayGroup as $,
21521
+ createVarsResolver as A,
21611
21522
  Box$1 as B,
21612
- useResolvedStylesApi as C,
21523
+ polymorphicFactory as C,
21613
21524
  DEFAULT_THEME as D,
21614
- getFontSize as E,
21615
- useId$1 as F,
21616
- extractStyleProps as G,
21617
- clsx as H,
21618
- getThemeColor as I,
21619
- isElement$1 as J,
21620
- getRefProp as K,
21621
- useUncontrolled as L,
21525
+ getRadius as E,
21526
+ getSize as F,
21527
+ createOptionalContext as G,
21528
+ useResolvedStylesApi as H,
21529
+ getFontSize as I,
21530
+ useId$1 as J,
21531
+ extractStyleProps as K,
21532
+ clsx as L,
21622
21533
  MantineContext as M,
21623
- Paper as N,
21624
- getSpacing as O,
21534
+ getThemeColor as N,
21535
+ isElement$1 as O,
21625
21536
  Popover as P,
21626
- filterProps$1 as Q,
21627
- InlineStyles as R,
21628
- useRandomClassName as S,
21537
+ getRefProp as Q,
21538
+ useUncontrolled as R,
21539
+ getSpacing as S,
21629
21540
  Text as T,
21630
21541
  UnstyledButton as U,
21631
- parseThemeColor as V,
21632
- createEventHandler as W,
21633
- useDisclosure as X,
21634
- useDelayedHover as Y,
21635
- Loader as Z,
21636
- createScopedKeydownHandler as _,
21542
+ Paper as V,
21543
+ filterProps$1 as W,
21544
+ InlineStyles as X,
21545
+ useRandomClassName as Y,
21546
+ parseThemeColor as Z,
21547
+ createEventHandler as _,
21637
21548
  useMediaQuery as a,
21638
- n as a$,
21639
- findElementAncestor as a0,
21640
- useClickOutside as a1,
21641
- createReactComponent as a2,
21642
- C as a3,
21643
- s as a4,
21644
- u$2 as a5,
21645
- MotionConfigContext as a6,
21646
- useConstant as a7,
21647
- PresenceContext as a8,
21648
- useIsomorphicLayoutEffect$1 as a9,
21649
- scaleCorrectors as aA,
21650
- degrees$1 as aB,
21651
- vw as aC,
21652
- vh as aD,
21653
- numberValueTypes as aE,
21654
- isControllingVariants as aF,
21655
- isVariantNode as aG,
21656
- hasReducedMotionListener as aH,
21657
- initPrefersReducedMotion as aI,
21658
- prefersReducedMotion as aJ,
21659
- isCSSVariableName as aK,
21660
- buildHTMLStyles as aL,
21661
- scrapeMotionValuesFromProps$1 as aM,
21662
- camelToDash as aN,
21663
- scrapeMotionValuesFromProps as aO,
21664
- buildSVGAttrs as aP,
21665
- isSVGTag as aQ,
21666
- isSVGComponent as aR,
21667
- useDebouncedCallback as aS,
21668
- isBrowser as aT,
21669
- getPatternStyles as aU,
21670
- patternFns as aV,
21671
- splitProps as aW,
21672
- styled as aX,
21673
- css as aY,
21674
- useLikeC4Specification as aZ,
21675
- useUpdateEffect as a_,
21676
- LayoutGroupContext as aa,
21677
- createRenderBatcher as ab,
21678
- featureDefinitions as ac,
21679
- LazyContext as ad,
21680
- loadExternalIsValidProp as ae,
21681
- resolveVariantFromProps as af,
21682
- MotionGlobalConfig as ag,
21683
- isMotionValue as ah,
21684
- optimizedAppearDataAttribute as ai,
21685
- transformProps as aj,
21686
- number as ak,
21687
- alpha as al,
21688
- clamp$1 as am,
21689
- percent as an,
21690
- isCSSVariableToken as ao,
21691
- px as ap,
21692
- transformPropOrder as aq,
21693
- isVariantLabel as ar,
21694
- variantProps as as,
21695
- isAnimationControls as at,
21696
- variantPriorityOrder as au,
21697
- isRefObject as av,
21698
- SwitchLayoutGroupContext as aw,
21699
- addScaleCorrector as ax,
21700
- microtask as ay,
21701
- resolveMotionValue as az,
21549
+ isBrowser as a$,
21550
+ useDelayGroup as a0,
21551
+ useFloating as a1,
21552
+ useInteractions as a2,
21553
+ useHover as a3,
21554
+ useRole as a4,
21555
+ useDismiss as a5,
21556
+ AccordionChevron as a6,
21557
+ Loader as a7,
21558
+ createScopedKeydownHandler as a8,
21559
+ getContrastColor as a9,
21560
+ isControllingVariants as aA,
21561
+ isVariantNode as aB,
21562
+ hasReducedMotionListener as aC,
21563
+ initPrefersReducedMotion as aD,
21564
+ prefersReducedMotion as aE,
21565
+ transformProps as aF,
21566
+ featureDefinitions as aG,
21567
+ resolveVariantFromProps as aH,
21568
+ isCSSVariableName as aI,
21569
+ buildHTMLStyles as aJ,
21570
+ scrapeMotionValuesFromProps$1 as aK,
21571
+ camelToDash as aL,
21572
+ scrapeMotionValuesFromProps as aM,
21573
+ buildSVGAttrs as aN,
21574
+ isSVGTag as aO,
21575
+ isSVGComponent as aP,
21576
+ optimizedAppearDataAttribute as aQ,
21577
+ isVariantLabel as aR,
21578
+ variantProps as aS,
21579
+ isAnimationControls as aT,
21580
+ variantPriorityOrder as aU,
21581
+ isRefObject as aV,
21582
+ SwitchLayoutGroupContext as aW,
21583
+ addScaleCorrector as aX,
21584
+ resolveMotionValue as aY,
21585
+ scaleCorrectors as aZ,
21586
+ useDebouncedCallback as a_,
21587
+ findElementAncestor as aa,
21588
+ useClickOutside as ab,
21589
+ createReactComponent as ac,
21590
+ C as ad,
21591
+ s as ae,
21592
+ u$2 as af,
21593
+ number as ag,
21594
+ alpha as ah,
21595
+ clamp$1 as ai,
21596
+ percent as aj,
21597
+ isCSSVariableToken as ak,
21598
+ px as al,
21599
+ transformPropOrder as am,
21600
+ degrees$1 as an,
21601
+ vw as ao,
21602
+ vh as ap,
21603
+ numberValueTypes as aq,
21604
+ MotionConfigContext as ar,
21605
+ useConstant as as,
21606
+ PresenceContext as at,
21607
+ useIsomorphicLayoutEffect$1 as au,
21608
+ LayoutGroupContext as av,
21609
+ loadFeatures as aw,
21610
+ LazyContext as ax,
21611
+ loadExternalIsValidProp as ay,
21612
+ isMotionValue as az,
21702
21613
  useMantineTheme as b,
21703
- Button as b$,
21704
- t$1 as b0,
21705
- Background as b1,
21706
- BackgroundVariant as b2,
21707
- useIsZoomTooSmall as b3,
21708
- useXYStoreApi as b4,
21709
- index as b5,
21710
- stopPropagation as b6,
21711
- cx as b7,
21712
- useStore$1 as b8,
21713
- XSTATE_STOP as b9,
21714
- evaluateGuard as bA,
21715
- getCandidates as bB,
21716
- NULL_EVENT as bC,
21717
- createInvokeId as bD,
21718
- getDelayedTransitions as bE,
21719
- formatInitialTransition as bF,
21720
- createErrorActorEvent as bG,
21721
- XSTATE_ERROR as bH,
21722
- cancel as bI,
21723
- raise as bJ,
21724
- spawnChild as bK,
21725
- stopChild as bL,
21726
- deepEqual as bM,
21727
- ActionIcon as bN,
21728
- IconZoomScan as bO,
21729
- sva as bP,
21730
- Box as bQ,
21731
- n$1 as bR,
21732
- EdgeLabelRenderer as bS,
21733
- e as bT,
21734
- useDiagramContext as bU,
21735
- useDiagram as bV,
21736
- useMantinePortalProps as bW,
21737
- PopoverTarget as bX,
21738
- PopoverDropdown as bY,
21739
- Stack as bZ,
21740
- Group as b_,
21741
- cloneMachineSnapshot as ba,
21742
- ProcessingStatus as bb,
21743
- resolveReferencedActor as bc,
21744
- createActor as bd,
21745
- resolveStateValue as be,
21746
- getAllStateNodes as bf,
21747
- getStateNodes as bg,
21748
- createMachineSnapshot as bh,
21749
- isInFinalState as bi,
21750
- macrostep as bj,
21751
- transitionNode as bk,
21752
- resolveActionsAndContext as bl,
21753
- createInitEvent as bm,
21754
- microstep as bn,
21755
- getInitialStateNodes as bo,
21756
- toStatePath as bp,
21757
- isStateId as bq,
21758
- getStateNodeByPath as br,
21759
- getPersistedSnapshot as bs,
21760
- $$ACTOR_TYPE as bt,
21761
- STATE_DELIMITER as bu,
21762
- mapValues as bv,
21763
- toArray as bw,
21764
- formatTransitions as bx,
21765
- toTransitionConfigArray as by,
21766
- formatTransition as bz,
21614
+ n$1 as b$,
21615
+ css as b0,
21616
+ getPatternStyles as b1,
21617
+ patternFns as b2,
21618
+ splitProps as b3,
21619
+ styled as b4,
21620
+ Background as b5,
21621
+ BackgroundVariant as b6,
21622
+ useIsZoomTooSmall as b7,
21623
+ useXYStoreApi as b8,
21624
+ index as b9,
21625
+ STATE_DELIMITER as bA,
21626
+ mapValues as bB,
21627
+ toArray as bC,
21628
+ formatTransitions as bD,
21629
+ toTransitionConfigArray as bE,
21630
+ formatTransition as bF,
21631
+ evaluateGuard as bG,
21632
+ getCandidates as bH,
21633
+ NULL_EVENT as bI,
21634
+ createInvokeId as bJ,
21635
+ getDelayedTransitions as bK,
21636
+ formatInitialTransition as bL,
21637
+ createErrorActorEvent as bM,
21638
+ XSTATE_ERROR as bN,
21639
+ cancel as bO,
21640
+ raise as bP,
21641
+ spawnChild as bQ,
21642
+ stopChild as bR,
21643
+ memo as bS,
21644
+ createRecipe as bT,
21645
+ mergeRecipes as bU,
21646
+ compact as bV,
21647
+ getSlotCompoundVariant as bW,
21648
+ deepEqual as bX,
21649
+ ActionIcon as bY,
21650
+ IconZoomScan as bZ,
21651
+ Box as b_,
21652
+ stopPropagation as ba,
21653
+ cx as bb,
21654
+ cva as bc,
21655
+ useStore$1 as bd,
21656
+ useUpdateEffect as be,
21657
+ XSTATE_STOP as bf,
21658
+ cloneMachineSnapshot as bg,
21659
+ ProcessingStatus as bh,
21660
+ resolveReferencedActor as bi,
21661
+ createActor as bj,
21662
+ resolveStateValue as bk,
21663
+ getAllStateNodes as bl,
21664
+ getStateNodes as bm,
21665
+ createMachineSnapshot as bn,
21666
+ isInFinalState as bo,
21667
+ macrostep as bp,
21668
+ transitionNode as bq,
21669
+ resolveActionsAndContext as br,
21670
+ createInitEvent as bs,
21671
+ microstep as bt,
21672
+ getInitialStateNodes as bu,
21673
+ toStatePath as bv,
21674
+ isStateId as bw,
21675
+ getStateNodeByPath as bx,
21676
+ getPersistedSnapshot as by,
21677
+ $$ACTOR_TYPE as bz,
21767
21678
  useMantineStyleNonce as c,
21768
- ActionIconGroup as c$,
21769
- IconCheck as c0,
21770
- cva as c1,
21771
- useLikeC4Model as c2,
21772
- findDiagramNode as c3,
21773
- findDiagramEdge as c4,
21774
- Menu as c5,
21775
- MenuTarget as c6,
21776
- MenuDropdown as c7,
21777
- MenuLabel as c8,
21778
- MenuDivider as c9,
21779
- IconTransform as cA,
21780
- customNode as cB,
21781
- CompoundNodeContainer as cC,
21782
- CompoundTitle as cD,
21783
- ElementNodeContainer as cE,
21784
- ElementShape as cF,
21785
- ElementTitle as cG,
21786
- ElementTags as cH,
21787
- ElementDetailsButton as cI,
21788
- Handle as cJ,
21789
- Position as cK,
21790
- getDefaultExportFromCjs as cL,
21791
- l$1 as cM,
21792
- IconSelector as cN,
21793
- SegmentedControl as cO,
21794
- ReactFlowProvider as cP,
21795
- useStoreApi as cQ,
21796
- useReactFlow as cR,
21797
- Panel as cS,
21798
- m as cT,
21799
- u as cU,
21800
- useSyncedRef as cV,
21801
- IconRenderer as cW,
21802
- useTimeoutEffect as cX,
21803
- ReactRemoveScroll as cY,
21804
- Flex as cZ,
21805
- ElementTag as c_,
21806
- MenuItem as ca,
21807
- useEnabledFeatures as cb,
21808
- useDiagramEventHandlers as cc,
21809
- TooltipGroup as cd,
21810
- Space as ce,
21811
- Tooltip$1 as cf,
21812
- IfEnabled as cg,
21813
- IconFileSymlink as ch,
21814
- getNodeDimensions as ci,
21815
- useIsPanning as cj,
21816
- useXYFlow as ck,
21817
- useDiagramActorSnapshot as cl,
21818
- useXYInternalNode as cm,
21819
- isSamePoint as cn,
21820
- bezierControlPoints as co,
21821
- bezierPath as cp,
21822
- ViewGroupNode as cq,
21823
- CompoundDeploymentNode as cr,
21824
- CompoundElementNode as cs,
21825
- DeploymentNode as ct,
21826
- ElementNode as cu,
21827
- shallowEqual as cv,
21828
- useSelector as cw,
21829
- getBezierPath as cx,
21830
- useCurrentViewId as cy,
21831
- ElementActionButtons as cz,
21679
+ useCurrentViewModel as c$,
21680
+ EdgeLabelRenderer as c0,
21681
+ e as c1,
21682
+ useDiagramContext as c2,
21683
+ useDiagram as c3,
21684
+ useMantinePortalProps as c4,
21685
+ PopoverTarget as c5,
21686
+ PopoverDropdown as c6,
21687
+ Stack as c7,
21688
+ Group as c8,
21689
+ Button as c9,
21690
+ ViewGroupNode as cA,
21691
+ CompoundDeploymentNode as cB,
21692
+ CompoundElementNode as cC,
21693
+ DeploymentNode as cD,
21694
+ ElementNode as cE,
21695
+ n as cF,
21696
+ MotionButton as cG,
21697
+ useHover$1 as cH,
21698
+ FloatingIndicator as cI,
21699
+ Flex as cJ,
21700
+ clampUseMovePosition as cK,
21701
+ useMove as cL,
21702
+ hstack as cM,
21703
+ MotionDiv as cN,
21704
+ shallowEqual as cO,
21705
+ useSelector as cP,
21706
+ useCurrentViewId as cQ,
21707
+ isMacOs as cR,
21708
+ IconId as cS,
21709
+ HStack as cT,
21710
+ ElementTag as cU,
21711
+ MarkdownBlock as cV,
21712
+ MotionSpan as cW,
21713
+ Portal as cX,
21714
+ Divider as cY,
21715
+ o$1 as cZ,
21716
+ useDiagramActorRef as c_,
21717
+ IconCheck as ca,
21718
+ useLikeC4Model as cb,
21719
+ LikeC4ModelContext as cc,
21720
+ findDiagramNode as cd,
21721
+ findDiagramEdge as ce,
21722
+ Menu as cf,
21723
+ MenuTarget as cg,
21724
+ MenuDropdown as ch,
21725
+ MenuLabel as ci,
21726
+ MenuDivider as cj,
21727
+ MenuItem as ck,
21728
+ useEnabledFeatures as cl,
21729
+ useDiagramEventHandlers as cm,
21730
+ TooltipGroup as cn,
21731
+ Space as co,
21732
+ Tooltip$1 as cp,
21733
+ IfEnabled as cq,
21734
+ IconFileSymlink as cr,
21735
+ getNodeDimensions as cs,
21736
+ useIsPanning as ct,
21737
+ useXYFlow as cu,
21738
+ useDiagramActorSnapshot as cv,
21739
+ useXYInternalNode as cw,
21740
+ isSamePoint as cx,
21741
+ bezierControlPoints as cy,
21742
+ bezierPath as cz,
21832
21743
  alpha$1 as d,
21833
- ElementDetailsButtonWithHandler as d$,
21834
- MarkdownBlock as d0,
21835
- DiagramFeatures as d1,
21836
- Divider as d2,
21837
- useXYStore as d3,
21838
- useReducedMotionConfig as d4,
21839
- Overlay as d5,
21840
- t$2 as d6,
21841
- VisuallyHidden as d7,
21842
- MotionDiv as d8,
21843
- IconOrShapeRenderer as d9,
21844
- focusedBounds as dA,
21845
- or as dB,
21846
- nodeToRect as dC,
21847
- useDiagramEventHandlersRef as dD,
21848
- useActorRef as dE,
21849
- DiagramActorContextProvider as dF,
21850
- IconRendererProvider as dG,
21851
- DiagramEventHandlers as dH,
21852
- ReduceGraphicsContext as dI,
21853
- RootContainer as dJ,
21854
- useMutationObserver as dK,
21855
- Portal as dL,
21856
- shallowEqual$1 as dM,
21857
- LikeC4ModelContext as dN,
21858
- useDiagramActorRef as dO,
21859
- useLikeC4ViewModel as dP,
21860
- useSetState as dQ,
21861
- CompoundActionButton as dR,
21862
- CompoundDetailsButton as dS,
21863
- DefaultHandles as dT,
21864
- CompoundActions as dU,
21865
- CompoundDeploymentToolbar as dV,
21866
- CompoundDetailsButtonWithHandler as dW,
21867
- CompoundElementToolbar as dX,
21868
- DeploymentElementActions as dY,
21869
- DeploymentElementToolbar as dZ,
21870
- ElementActions as d_,
21871
- MotionButton as da,
21872
- FocusTrap as db,
21873
- HStack as dc,
21874
- t$4 as dd,
21875
- isMacOs as de,
21876
- useHover$1 as df,
21877
- FloatingIndicator as dg,
21878
- clampUseMovePosition as dh,
21879
- useMove as di,
21880
- useDiagramSyncLayoutState as dj,
21881
- ButtonGroup as dk,
21882
- useIsReducedGraphics as dl,
21883
- usePanningAtom as dm,
21884
- useTimeout as dn,
21885
- useCustomCompareMemo as dp,
21886
- applyEdgeChanges as dq,
21887
- applyNodeChanges as dr,
21888
- getViewportForBounds as ds,
21889
- typedSystem as dt,
21890
- centerXYInternalNode as du,
21891
- t$3 as dv,
21892
- getBoundsOfRects as dw,
21893
- boxToRect as dx,
21894
- and as dy,
21895
- AllDisabled as dz,
21744
+ CurrentViewModelContext as d$,
21745
+ useActorRef as d0,
21746
+ useUpdateEffect$1 as d1,
21747
+ getBezierPath as d2,
21748
+ ElementActionButtons as d3,
21749
+ IconTransform as d4,
21750
+ customNode as d5,
21751
+ CompoundNodeContainer as d6,
21752
+ CompoundTitle as d7,
21753
+ ElementNodeContainer as d8,
21754
+ ElementShape as d9,
21755
+ sva as dA,
21756
+ t$2 as dB,
21757
+ VisuallyHidden as dC,
21758
+ IconOrShapeRenderer as dD,
21759
+ FocusTrap as dE,
21760
+ t$3 as dF,
21761
+ ButtonGroup as dG,
21762
+ useIsReducedGraphics as dH,
21763
+ usePanningAtom as dI,
21764
+ useTimeout as dJ,
21765
+ useCustomCompareMemo as dK,
21766
+ useLikeC4Specification as dL,
21767
+ r as dM,
21768
+ applyEdgeChanges as dN,
21769
+ applyNodeChanges as dO,
21770
+ getViewportForBounds as dP,
21771
+ typedSystem as dQ,
21772
+ centerXYInternalNode as dR,
21773
+ getBoundsOfRects as dS,
21774
+ boxToRect as dT,
21775
+ and as dU,
21776
+ AllDisabled as dV,
21777
+ focusedBounds as dW,
21778
+ or as dX,
21779
+ nodeToRect as dY,
21780
+ useCustomCompareEffect as dZ,
21781
+ DiagramActorContextProvider as d_,
21782
+ ElementTitle as da,
21783
+ ElementTags as db,
21784
+ ElementDetailsButton as dc,
21785
+ Handle as dd,
21786
+ Position as de,
21787
+ getDefaultExportFromCjs as df,
21788
+ l$1 as dg,
21789
+ IconSelector as dh,
21790
+ SegmentedControl as di,
21791
+ ReactFlowProvider as dj,
21792
+ useStoreApi as dk,
21793
+ useReactFlow as dl,
21794
+ Panel as dm,
21795
+ m as dn,
21796
+ u as dp,
21797
+ useSyncedRef as dq,
21798
+ IconRenderer as dr,
21799
+ useTimeoutEffect as ds,
21800
+ ReactRemoveScroll as dt,
21801
+ ActionIconGroup as du,
21802
+ DiagramFeatures as dv,
21803
+ t$1 as dw,
21804
+ useXYStore as dx,
21805
+ useReducedMotionConfig as dy,
21806
+ Overlay as dz,
21896
21807
  em as e,
21897
- ElementToolbar as e0,
21898
- Toolbar as e1,
21899
- IfNotEnabled as e2,
21900
- IfNotReadOnly as e3,
21901
- IfReadOnly as e4,
21808
+ IconRendererProvider as e0,
21809
+ DiagramEventHandlers as e1,
21810
+ ReduceGraphicsContext as e2,
21811
+ RootContainer as e3,
21812
+ useMutationObserver as e4,
21813
+ shallowEqual$1 as e5,
21814
+ useLikeC4ViewModel as e6,
21815
+ useSetState as e7,
21816
+ CompoundActionButton as e8,
21817
+ CompoundDetailsButton as e9,
21818
+ DefaultHandles as ea,
21819
+ CompoundActions as eb,
21820
+ CompoundDeploymentToolbar as ec,
21821
+ CompoundDetailsButtonWithHandler as ed,
21822
+ CompoundElementToolbar as ee,
21823
+ DeploymentElementActions as ef,
21824
+ DeploymentElementToolbar as eg,
21825
+ ElementActions as eh,
21826
+ ElementDetailsButtonWithHandler as ei,
21827
+ ElementToolbar as ej,
21828
+ Toolbar as ek,
21829
+ IfNotEnabled as el,
21830
+ IfNotReadOnly as em,
21831
+ IfReadOnly as en,
21902
21832
  getPrimaryContrastColor as f,
21903
21833
  getPrimaryShade as g,
21904
21834
  deepMerge as h,
@@ -21906,18 +21836,18 @@ export {
21906
21836
  useIsomorphicEffect as j,
21907
21837
  keys$1 as k,
21908
21838
  MantineThemeProvider as l,
21909
- createSafeContext as m,
21910
- useProps as n,
21911
- useMergedRef as o,
21912
- useDirection as p,
21913
- factory as q,
21839
+ useDidUpdate as m,
21840
+ mergeRefs as n,
21841
+ factory as o,
21842
+ useProps as p,
21843
+ useReducedMotion$1 as q,
21914
21844
  rem as r,
21915
- useStyles as s,
21916
- toInt as t,
21845
+ getStyleObject as s,
21846
+ createSafeContext as t,
21917
21847
  useCallbackRef as u,
21918
- useMergeRefs as v,
21919
- createVarsResolver as w,
21920
- polymorphicFactory as x,
21921
- getRadius as y,
21922
- getSize as z
21848
+ useMergedRef as v,
21849
+ toInt as w,
21850
+ useDirection as x,
21851
+ useMergeRefs as y,
21852
+ useStyles as z
21923
21853
  };