@yamada-ui/react 2.1.4-dev-20260324185108 → 2.2.0-next-20260324190151

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 (279) hide show
  1. package/dist/cjs/components/modal/modal.cjs +1 -1
  2. package/dist/cjs/components/modal/modal.cjs.map +1 -1
  3. package/dist/cjs/components/tree/index.cjs +25 -0
  4. package/dist/cjs/components/tree/namespace.cjs +26 -0
  5. package/dist/cjs/components/tree/namespace.cjs.map +1 -0
  6. package/dist/cjs/components/tree/tree.cjs +289 -0
  7. package/dist/cjs/components/tree/tree.cjs.map +1 -0
  8. package/dist/cjs/components/tree/tree.style.cjs +181 -0
  9. package/dist/cjs/components/tree/tree.style.cjs.map +1 -0
  10. package/dist/cjs/components/tree/use-tree.cjs +556 -0
  11. package/dist/cjs/components/tree/use-tree.cjs.map +1 -0
  12. package/dist/cjs/hooks/use-descendants/index.cjs +19 -9
  13. package/dist/cjs/hooks/use-descendants/index.cjs.map +1 -1
  14. package/dist/cjs/index.cjs +42 -2
  15. package/dist/cjs/index.cjs.map +1 -1
  16. package/dist/esm/components/modal/modal.js +1 -1
  17. package/dist/esm/components/modal/modal.js.map +1 -1
  18. package/dist/esm/components/tree/index.js +6 -0
  19. package/dist/esm/components/tree/namespace.js +21 -0
  20. package/dist/esm/components/tree/namespace.js.map +1 -0
  21. package/dist/esm/components/tree/tree.js +285 -0
  22. package/dist/esm/components/tree/tree.js.map +1 -0
  23. package/dist/esm/components/tree/tree.style.js +181 -0
  24. package/dist/esm/components/tree/tree.style.js.map +1 -0
  25. package/dist/esm/components/tree/use-tree.js +547 -0
  26. package/dist/esm/components/tree/use-tree.js.map +1 -0
  27. package/dist/esm/hooks/use-descendants/index.js +19 -9
  28. package/dist/esm/hooks/use-descendants/index.js.map +1 -1
  29. package/dist/esm/index.js +23 -3
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/types/components/accordion/accordion.d.ts +2 -4
  32. package/dist/types/components/accordion/accordion.style.d.ts +1 -1
  33. package/dist/types/components/accordion/use-accordion.d.ts +11 -11
  34. package/dist/types/components/airy/airy.d.ts +2 -3
  35. package/dist/types/components/alert/alert.d.ts +2 -5
  36. package/dist/types/components/alpha-slider/alpha-slider.d.ts +2 -3
  37. package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +2 -2
  38. package/dist/types/components/autocomplete/autocomplete.d.ts +2 -4
  39. package/dist/types/components/autocomplete/autocomplete.style.d.ts +1 -1
  40. package/dist/types/components/autocomplete/use-autocomplete.d.ts +5 -7
  41. package/dist/types/components/avatar/avatar.d.ts +4 -4
  42. package/dist/types/components/avatar/avatar.style.d.ts +1 -1
  43. package/dist/types/components/avatar/use-avatar-group.d.ts +2 -2
  44. package/dist/types/components/badge/badge.d.ts +2 -2
  45. package/dist/types/components/bleed/bleed.d.ts +2 -2
  46. package/dist/types/components/blockquote/blockquote.d.ts +2 -2
  47. package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
  48. package/dist/types/components/breadcrumb/breadcrumb.style.d.ts +1 -1
  49. package/dist/types/components/breadcrumb/use-breadcrumb.d.ts +2 -2
  50. package/dist/types/components/button/button-group.d.ts +0 -1
  51. package/dist/types/components/button/button.d.ts +2 -3
  52. package/dist/types/components/button/icon-button.d.ts +2 -2
  53. package/dist/types/components/calendar/calendar.d.ts +2 -3
  54. package/dist/types/components/calendar/calendar.style.d.ts +2 -2
  55. package/dist/types/components/calendar/use-calendar.d.ts +8 -9
  56. package/dist/types/components/card/card.d.ts +2 -2
  57. package/dist/types/components/carousel/carousel.d.ts +2 -3
  58. package/dist/types/components/carousel/carousel.style.d.ts +2 -2
  59. package/dist/types/components/carousel/use-carousel.d.ts +3 -3
  60. package/dist/types/components/center/center.d.ts +2 -2
  61. package/dist/types/components/chart/area-chart.d.ts +2 -2
  62. package/dist/types/components/chart/bar-chart.d.ts +2 -2
  63. package/dist/types/components/chart/chart.d.ts +5 -5
  64. package/dist/types/components/chart/composed-chart.d.ts +2 -2
  65. package/dist/types/components/chart/donut-chart.d.ts +2 -2
  66. package/dist/types/components/chart/line-chart.d.ts +2 -2
  67. package/dist/types/components/chart/pie-chart.d.ts +2 -2
  68. package/dist/types/components/chart/radar-chart.d.ts +2 -2
  69. package/dist/types/components/chart/radial-chart.d.ts +2 -2
  70. package/dist/types/components/chart/use-chart.d.ts +2 -2
  71. package/dist/types/components/checkbox/checkbox-group.d.ts +0 -2
  72. package/dist/types/components/checkbox/checkbox.d.ts +4 -5
  73. package/dist/types/components/checkbox/use-checkbox-group.d.ts +2 -3
  74. package/dist/types/components/checkbox/use-checkbox.d.ts +0 -1
  75. package/dist/types/components/checkbox-card/checkbox-card-group.d.ts +0 -3
  76. package/dist/types/components/checkbox-card/checkbox-card.d.ts +4 -6
  77. package/dist/types/components/circle-progress/circle-progress.d.ts +2 -3
  78. package/dist/types/components/close-button/close-button.d.ts +2 -3
  79. package/dist/types/components/code/code.d.ts +2 -2
  80. package/dist/types/components/collapse/collapse.d.ts +2 -3
  81. package/dist/types/components/color-picker/color-picker.d.ts +2 -6
  82. package/dist/types/components/color-picker/use-color-picker.d.ts +2 -5
  83. package/dist/types/components/color-selector/color-selector.d.ts +2 -6
  84. package/dist/types/components/color-selector/use-color-selector.d.ts +3 -5
  85. package/dist/types/components/color-swatch/color-swatch.d.ts +2 -2
  86. package/dist/types/components/container/container.d.ts +2 -2
  87. package/dist/types/components/data-list/data-list.d.ts +2 -2
  88. package/dist/types/components/data-list/data-list.style.d.ts +1 -1
  89. package/dist/types/components/date-picker/date-picker.d.ts +2 -5
  90. package/dist/types/components/date-picker/use-date-picker.d.ts +4 -7
  91. package/dist/types/components/drawer/drawer.d.ts +2 -5
  92. package/dist/types/components/drawer/use-drawer.d.ts +0 -2
  93. package/dist/types/components/dropzone/dropzone.d.ts +4 -7
  94. package/dist/types/components/dropzone/use-dropzone.d.ts +0 -1
  95. package/dist/types/components/editable/editable.d.ts +4 -5
  96. package/dist/types/components/editable/use-editable.d.ts +2 -3
  97. package/dist/types/components/em/em.d.ts +2 -2
  98. package/dist/types/components/empty-state/empty-state.d.ts +2 -2
  99. package/dist/types/components/fade/fade.d.ts +2 -3
  100. package/dist/types/components/fade-scale/fade-scale.d.ts +0 -1
  101. package/dist/types/components/field/field.d.ts +3 -3
  102. package/dist/types/components/field/use-field-props.d.ts +4 -4
  103. package/dist/types/components/fieldset/fieldset.d.ts +3 -4
  104. package/dist/types/components/file-button/file-button.d.ts +2 -4
  105. package/dist/types/components/file-button/use-file-button.d.ts +15 -17
  106. package/dist/types/components/file-input/file-input.d.ts +2 -4
  107. package/dist/types/components/file-input/use-file-input.d.ts +15 -16
  108. package/dist/types/components/flex/flex.d.ts +2 -2
  109. package/dist/types/components/flip/flip.d.ts +4 -5
  110. package/dist/types/components/flip/flip.style.d.ts +1 -1
  111. package/dist/types/components/float/float.d.ts +2 -2
  112. package/dist/types/components/form/form.d.ts +3 -4
  113. package/dist/types/components/format/format-byte.d.ts +4 -4
  114. package/dist/types/components/format/format-date-time.d.ts +2 -2
  115. package/dist/types/components/format/format-number.d.ts +2 -2
  116. package/dist/types/components/format/use-format-byte.d.ts +0 -1
  117. package/dist/types/components/format/use-format-date-time.d.ts +0 -1
  118. package/dist/types/components/format/use-format-number.d.ts +0 -1
  119. package/dist/types/components/grid/grid-item.d.ts +2 -2
  120. package/dist/types/components/grid/grid.d.ts +2 -2
  121. package/dist/types/components/group/group.d.ts +2 -3
  122. package/dist/types/components/group/use-group.d.ts +2 -2
  123. package/dist/types/components/heading/heading.d.ts +2 -2
  124. package/dist/types/components/highlight/highlight.d.ts +0 -2
  125. package/dist/types/components/hue-slider/hue-slider.d.ts +3 -4
  126. package/dist/types/components/icon/icon.d.ts +5 -5
  127. package/dist/types/components/image/image.d.ts +2 -2
  128. package/dist/types/components/indicator/indicator.d.ts +4 -5
  129. package/dist/types/components/infinite-scroll-area/infinite-scroll-area.d.ts +2 -2
  130. package/dist/types/components/input/input-addon.d.ts +2 -2
  131. package/dist/types/components/input/input-element.d.ts +2 -2
  132. package/dist/types/components/input/input-group.d.ts +0 -2
  133. package/dist/types/components/input/input.d.ts +2 -3
  134. package/dist/types/components/kbd/kbd.d.ts +2 -2
  135. package/dist/types/components/link/link.d.ts +2 -2
  136. package/dist/types/components/link-box/link-box.d.ts +2 -2
  137. package/dist/types/components/list/list.d.ts +2 -2
  138. package/dist/types/components/list/list.style.d.ts +2 -2
  139. package/dist/types/components/loading/loading-provider.d.ts +2 -2
  140. package/dist/types/components/loading/loading.d.ts +3 -4
  141. package/dist/types/components/loading/use-loading-component.d.ts +0 -1
  142. package/dist/types/components/mark/mark.d.ts +2 -2
  143. package/dist/types/components/menu/menu.d.ts +2 -3
  144. package/dist/types/components/menu/menu.style.d.ts +2 -2
  145. package/dist/types/components/menu/use-menu.d.ts +11 -11
  146. package/dist/types/components/modal/modal.d.ts +3 -7
  147. package/dist/types/components/native-accordion/native-accordion.d.ts +2 -2
  148. package/dist/types/components/native-accordion/native-accordion.style.d.ts +2 -2
  149. package/dist/types/components/native-accordion/use-native-accordion.d.ts +2 -2
  150. package/dist/types/components/native-popover/native-popover.d.ts +2 -2
  151. package/dist/types/components/native-select/native-select.d.ts +2 -4
  152. package/dist/types/components/native-select/use-native-select.d.ts +0 -1
  153. package/dist/types/components/native-table/native-table.d.ts +4 -4
  154. package/dist/types/components/notice/notice.style.d.ts +1 -1
  155. package/dist/types/components/notice/use-notice.d.ts +0 -3
  156. package/dist/types/components/number-input/number-input.d.ts +2 -3
  157. package/dist/types/components/number-input/number-input.style.d.ts +1 -1
  158. package/dist/types/components/number-input/use-number-input.d.ts +0 -1
  159. package/dist/types/components/pagination/pagination.d.ts +2 -3
  160. package/dist/types/components/pagination/pagination.style.d.ts +1 -1
  161. package/dist/types/components/pagination/use-pagination.d.ts +2 -2
  162. package/dist/types/components/password-input/password-input.d.ts +2 -3
  163. package/dist/types/components/password-input/strength-meter.d.ts +2 -2
  164. package/dist/types/components/password-input/use-password-input.d.ts +2 -3
  165. package/dist/types/components/picture/picture.d.ts +0 -1
  166. package/dist/types/components/pin-input/pin-input.d.ts +2 -4
  167. package/dist/types/components/pin-input/use-pin-input.d.ts +7 -8
  168. package/dist/types/components/popover/popover.d.ts +2 -3
  169. package/dist/types/components/progress/progress.d.ts +4 -4
  170. package/dist/types/components/progress/use-progress.d.ts +706 -706
  171. package/dist/types/components/qr-code/qr-code.d.ts +2 -2
  172. package/dist/types/components/radio/radio-group.d.ts +0 -2
  173. package/dist/types/components/radio/radio.d.ts +4 -5
  174. package/dist/types/components/radio/use-radio-group.d.ts +2 -3
  175. package/dist/types/components/radio/use-radio.d.ts +0 -1
  176. package/dist/types/components/radio-card/radio-card-group.d.ts +0 -3
  177. package/dist/types/components/radio-card/radio-card.d.ts +4 -6
  178. package/dist/types/components/rating/rating.style.d.ts +2 -2
  179. package/dist/types/components/rating/use-rating.d.ts +7 -8
  180. package/dist/types/components/reorder/reorder.d.ts +2 -3
  181. package/dist/types/components/reorder/reorder.style.d.ts +1 -1
  182. package/dist/types/components/reorder/use-reorder.d.ts +3 -3
  183. package/dist/types/components/resizable/resizable.d.ts +2 -2
  184. package/dist/types/components/resizable/resizable.style.d.ts +2 -2
  185. package/dist/types/components/resizable/use-resizable.d.ts +2 -2
  186. package/dist/types/components/ripple/ripple.d.ts +2 -3
  187. package/dist/types/components/ripple/use-ripple.d.ts +2 -2
  188. package/dist/types/components/rotate/rotate.d.ts +2 -3
  189. package/dist/types/components/saturation-slider/saturation-slider.d.ts +2 -2
  190. package/dist/types/components/saturation-slider/use-saturation-slider.d.ts +2 -3
  191. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  192. package/dist/types/components/segmented-control/segmented-control.d.ts +2 -3
  193. package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
  194. package/dist/types/components/segmented-control/use-segmented-control.d.ts +9 -10
  195. package/dist/types/components/select/select.d.ts +2 -4
  196. package/dist/types/components/select/use-select.d.ts +4 -6
  197. package/dist/types/components/separator/separator.d.ts +2 -2
  198. package/dist/types/components/simple-grid/simple-grid.d.ts +2 -3
  199. package/dist/types/components/skeleton/skeleton.d.ts +2 -2
  200. package/dist/types/components/slide/slide.d.ts +2 -3
  201. package/dist/types/components/slide-fade/slide-fade.d.ts +2 -3
  202. package/dist/types/components/slider/slider.d.ts +2 -2
  203. package/dist/types/components/slider/use-slider.d.ts +2 -3
  204. package/dist/types/components/snacks/snacks.d.ts +0 -2
  205. package/dist/types/components/snacks/use-snacks.d.ts +0 -1
  206. package/dist/types/components/stack/h-stack.d.ts +2 -2
  207. package/dist/types/components/stack/stack.d.ts +2 -2
  208. package/dist/types/components/stack/v-stack.d.ts +2 -2
  209. package/dist/types/components/stack/z-stack.d.ts +2 -2
  210. package/dist/types/components/stat/stat.d.ts +2 -2
  211. package/dist/types/components/stat/stat.style.d.ts +2 -2
  212. package/dist/types/components/status/status.d.ts +2 -2
  213. package/dist/types/components/steps/steps.d.ts +2 -2
  214. package/dist/types/components/steps/steps.style.d.ts +1 -1
  215. package/dist/types/components/steps/use-steps.d.ts +10 -10
  216. package/dist/types/components/switch/switch.d.ts +2 -2
  217. package/dist/types/components/switch/use-switch.d.ts +0 -1
  218. package/dist/types/components/table/table.d.ts +2 -4
  219. package/dist/types/components/tabs/tabs.d.ts +2 -2
  220. package/dist/types/components/tabs/use-tabs.d.ts +16 -16
  221. package/dist/types/components/tag/tag.d.ts +2 -2
  222. package/dist/types/components/text/text.d.ts +2 -2
  223. package/dist/types/components/textarea/textarea.d.ts +2 -4
  224. package/dist/types/components/textarea/use-autosize.d.ts +2 -2
  225. package/dist/types/components/timeline/timeline.d.ts +5 -5
  226. package/dist/types/components/timeline/timeline.style.d.ts +2 -2
  227. package/dist/types/components/tip/tip.d.ts +0 -2
  228. package/dist/types/components/toggle/toggle-group.d.ts +1 -1
  229. package/dist/types/components/toggle/toggle.d.ts +5 -7
  230. package/dist/types/components/toggle/use-toggle-group.d.ts +2 -2
  231. package/dist/types/components/toggle/use-toggle.d.ts +2 -3
  232. package/dist/types/components/tooltip/tooltip.d.ts +2 -4
  233. package/dist/types/components/tree/index.d.ts +5 -0
  234. package/dist/types/components/tree/namespace.d.ts +10 -0
  235. package/dist/types/components/tree/tree.d.ts +127 -0
  236. package/dist/types/components/tree/tree.style.d.ts +173 -0
  237. package/dist/types/components/tree/use-tree.d.ts +252 -0
  238. package/dist/types/components/visually-hidden/visually-hidden.d.ts +2 -2
  239. package/dist/types/components/wrap/wrap.d.ts +2 -3
  240. package/dist/types/core/components/create-component.d.ts +9 -7
  241. package/dist/types/core/components/index.types.d.ts +1 -0
  242. package/dist/types/core/components/use-component-style.d.ts +2 -0
  243. package/dist/types/core/components/utils.d.ts +1 -0
  244. package/dist/types/core/constant.d.ts +1 -0
  245. package/dist/types/core/css/calc.d.ts +1 -0
  246. package/dist/types/core/css/config.d.ts +1 -0
  247. package/dist/types/core/css/css.d.ts +1 -0
  248. package/dist/types/core/css/index.types.d.ts +1 -0
  249. package/dist/types/core/css/styles.d.ts +1 -0
  250. package/dist/types/core/css/token.d.ts +1 -0
  251. package/dist/types/core/css/use-css.d.ts +1 -0
  252. package/dist/types/core/css/utils.d.ts +2 -0
  253. package/dist/types/core/generated-theme-tokens.types.d.ts +1 -0
  254. package/dist/types/core/index.d.ts +2 -0
  255. package/dist/types/core/system/color-mode-provider.d.ts +2 -2
  256. package/dist/types/core/system/config.d.ts +1 -0
  257. package/dist/types/core/system/create-system.d.ts +1 -0
  258. package/dist/types/core/system/factory.d.ts +1 -0
  259. package/dist/types/core/system/index.types.d.ts +1 -0
  260. package/dist/types/core/system/storage-script.d.ts +3 -3
  261. package/dist/types/core/system/styled.d.ts +3 -2
  262. package/dist/types/core/system/system-provider.d.ts +2 -2
  263. package/dist/types/core/system/var.d.ts +2 -0
  264. package/dist/types/hooks/use-async-callback/index.d.ts +0 -1
  265. package/dist/types/hooks/use-breakpoint/use-breakpoint-state.d.ts +2 -2
  266. package/dist/types/hooks/use-clickable/index.d.ts +7 -7
  267. package/dist/types/hooks/use-clipboard/index.d.ts +2 -2
  268. package/dist/types/hooks/use-combobox/index.d.ts +12 -13
  269. package/dist/types/hooks/use-counter/index.d.ts +2 -2
  270. package/dist/types/hooks/use-descendants/index.d.ts +2 -2
  271. package/dist/types/hooks/use-field-sizing/index.d.ts +2 -2
  272. package/dist/types/hooks/use-hover/index.d.ts +2 -2
  273. package/dist/types/hooks/use-popper/index.d.ts +2 -2
  274. package/dist/types/hooks/use-resize-observer/index.d.ts +3 -3
  275. package/dist/types/index.d.ts +7 -105
  276. package/dist/types/providers/i18n-provider/i18n-provider.d.ts +2 -2
  277. package/dist/types/providers/ui-provider/ui-provider.d.ts +0 -1
  278. package/dist/types/utils/children.d.ts +2 -2
  279. package/package.json +2 -2
@@ -32,7 +32,7 @@ const { ComponentContext, PropsContext: ModalPropsContext, useComponentContext,
32
32
  /**
33
33
  * `Modal` is a component that is displayed over the main content to focus the user's attention solely on the information.
34
34
  *
35
- * @see https://yamada-ui.com/docs/components/modal
35
+ * @see https://yamada-ui.com/docs/components/overlay/modal
36
36
  */
37
37
  const ModalRoot = withProvider(({ allowPinchZoom = false, animationScheme = "scale", autoFocus, blockScrollOnMount = true, body, cancel, children, duration, finalFocusRef, footer, header, initialFocusRef, lockFocusAcrossFrames = true, middle, restoreFocus, success, title, trigger, withCloseButton = true, withOverlay = true, portalProps, onCancel, onCloseComplete, onMiddle, onSuccess, ...props }) => {
38
38
  const [omittedChildren, openTrigger, customOverlay] = require_children.useSplitChildren(children, ModalOpenTrigger, ModalOverlay);
@@ -1 +1 @@
1
- {"version":3,"file":"modal.cjs","names":["createSlotComponent","modalStyle","useSplitChildren","useModal","AnimatePresence","Portal","FocusLock","RemoveScroll","styled","CloseButton","motion","fadeVariants","getPopupAnimationProps","ShorthandModalContent: FC<ShorthandModalContentProps>","wrapOrPassProps","Button"],"sources":["../../../../src/components/modal/modal.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FC, PropsWithChildren, ReactNode } from \"react\"\nimport type { HTMLProps, HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { ButtonProps } from \"../button\"\nimport type { CloseButtonProps } from \"../close-button\"\nimport type { FocusLockProps } from \"../focus-lock\"\nimport type { HTMLMotionProps, HTMLMotionPropsWithoutAs } from \"../motion\"\nimport type { PopupAnimationProps } from \"../popover\"\nimport type { PortalProps } from \"../portal\"\nimport type { ModalStyle } from \"./modal.style\"\nimport type { UseModalProps, UseModalReturn } from \"./use-modal\"\nimport { AnimatePresence } from \"motion/react\"\nimport { useMemo } from \"react\"\nimport { RemoveScroll } from \"react-remove-scroll\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { cast, isArray, useSplitChildren, wrapOrPassProps } from \"../../utils\"\nimport { Button } from \"../button\"\nimport { CloseButton } from \"../close-button\"\nimport { fadeVariants } from \"../fade\"\nimport { FocusLock } from \"../focus-lock\"\nimport { motion } from \"../motion\"\nimport { getPopupAnimationProps } from \"../popover\"\nimport { Portal } from \"../portal\"\nimport { modalStyle } from \"./modal.style\"\nimport { useModal } from \"./use-modal\"\n\ninterface ComponentContext\n extends\n Omit<UseModalReturn, \"getRootProps\">,\n PopupAnimationProps,\n Pick<ModalRootProps, \"withCloseButton\"> {}\n\nexport interface ModalRootProps\n extends\n ThemeProps<ModalStyle>,\n Omit<UseModalProps, \"title\">,\n Pick<\n FocusLockProps,\n | \"autoFocus\"\n | \"finalFocusRef\"\n | \"initialFocusRef\"\n | \"lockFocusAcrossFrames\"\n | \"restoreFocus\"\n >,\n PopupAnimationProps,\n ShorthandModalContentProps {\n /**\n * Handle zoom or pinch gestures on iOS devices when scroll locking is enabled.\n *\n * @default false.\n */\n allowPinchZoom?: boolean\n /**\n * If `true`, scrolling will be disabled on the `body` when the modal opens.\n *\n * @default true\n */\n blockScrollOnMount?: boolean\n /**\n * The modal trigger to use.\n */\n trigger?: ReactNode\n /**\n * If `true`, display the modal close button.\n *\n * @default true\n */\n withCloseButton?: boolean\n /**\n * If `true`, display the modal overlay.\n *\n * @default true\n */\n withOverlay?: boolean\n /**\n * Props to be forwarded to the portal component.\n */\n portalProps?: Omit<PortalProps, \"children\">\n /**\n * Callback function to run side effects after the modal has closed.\n */\n onCloseComplete?: () => void\n}\n\nconst {\n ComponentContext,\n PropsContext: ModalPropsContext,\n useComponentContext,\n usePropsContext: useModalPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<ModalRootProps, ModalStyle, ComponentContext>(\n \"modal\",\n modalStyle,\n)\n\nexport { ModalPropsContext, useModalPropsContext }\n\n/**\n * `Modal` is a component that is displayed over the main content to focus the user's attention solely on the information.\n *\n * @see https://yamada-ui.com/docs/components/modal\n */\nexport const ModalRoot = withProvider<\"div\", ModalRootProps>(\n ({\n allowPinchZoom = false,\n animationScheme = \"scale\",\n autoFocus,\n blockScrollOnMount = true,\n body,\n cancel,\n children,\n duration,\n finalFocusRef,\n footer,\n header,\n initialFocusRef,\n lockFocusAcrossFrames = true,\n middle,\n restoreFocus,\n success,\n title,\n trigger,\n withCloseButton = true,\n withOverlay = true,\n portalProps,\n onCancel,\n onCloseComplete,\n onMiddle,\n onSuccess,\n ...props\n }) => {\n const [omittedChildren, openTrigger, customOverlay] = useSplitChildren(\n children,\n ModalOpenTrigger,\n ModalOverlay,\n )\n const hasChildren = isArray(omittedChildren) && !!omittedChildren.length\n const { open, getRootProps, ...rest } = useModal(props)\n const customOpenTrigger = trigger ? (\n <ModalOpenTrigger>{trigger}</ModalOpenTrigger>\n ) : null\n const context = useMemo(\n () => ({\n animationScheme,\n duration,\n open,\n withCloseButton,\n ...rest,\n }),\n [animationScheme, duration, open, withCloseButton, rest],\n )\n\n return (\n <ComponentContext value={context}>\n {openTrigger ?? customOpenTrigger}\n\n <AnimatePresence onExitComplete={onCloseComplete}>\n {open ? (\n <Portal {...portalProps}>\n <FocusLock\n autoFocus={autoFocus}\n finalFocusRef={finalFocusRef}\n initialFocusRef={initialFocusRef}\n lockFocusAcrossFrames={lockFocusAcrossFrames}\n restoreFocus={restoreFocus}\n >\n <RemoveScroll\n allowPinchZoom={allowPinchZoom}\n enabled={blockScrollOnMount}\n forwardProps\n >\n <styled.div {...getRootProps()}>\n {customOverlay ?? (withOverlay ? <ModalOverlay /> : null)}\n\n {hasChildren ? (\n omittedChildren\n ) : (\n <ShorthandModalContent\n body={body}\n cancel={cancel}\n footer={footer}\n header={header}\n middle={middle}\n success={success}\n title={title}\n onCancel={onCancel}\n onMiddle={onMiddle}\n onSuccess={onSuccess}\n />\n )}\n </styled.div>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n ) : null}\n </AnimatePresence>\n </ComponentContext>\n )\n },\n \"root\",\n)()\n\nexport interface ModalOpenTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const ModalOpenTrigger = withContext<\"button\", ModalOpenTriggerProps>(\n \"button\",\n { name: \"OpenTrigger\", slot: [\"trigger\", \"open\"] },\n)(undefined, (props) => {\n const { getOpenTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getOpenTriggerProps(props) }\n})\n\nexport interface ModalCloseTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const ModalCloseTrigger = withContext<\"button\", ModalCloseTriggerProps>(\n \"button\",\n { name: \"CloseTrigger\", slot: [\"trigger\", \"close\"] },\n)(undefined, (props) => {\n const { getCloseTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getCloseTriggerProps(props) }\n})\n\nexport interface ModalCloseButtonProps extends CloseButtonProps {}\n\nexport const ModalCloseButton = withContext<\"button\", ModalCloseButtonProps>(\n CloseButton,\n \"closeButton\",\n)(undefined, (props) => {\n const { getCloseButtonProps } = useComponentContext()\n\n return { ...getCloseButtonProps(props) }\n})\n\nexport interface ModalOverlayProps extends HTMLMotionProps {}\n\nexport const ModalOverlay = withContext<\"div\", ModalOverlayProps>((props) => {\n const { animationScheme, duration, getOverlayProps } = useComponentContext()\n\n return (\n <motion.div\n custom={{ duration }}\n {...(animationScheme !== \"none\"\n ? {\n animate: \"enter\",\n exit: \"exit\",\n initial: \"exit\",\n variants: fadeVariants,\n }\n : {})}\n {...cast<HTMLMotionProps>(getOverlayProps(cast<HTMLProps>(props)))}\n />\n )\n}, \"overlay\")()\n\nexport interface ModalContentProps\n extends Omit<HTMLMotionProps<\"section\">, \"children\">, PropsWithChildren {}\n\nexport const ModalContent = withContext<\"section\", ModalContentProps>(\n ({ children, ...rest }) => {\n const { animationScheme, duration, withCloseButton, getContentProps } =\n useComponentContext()\n const [omittedChildren, customCloseButton] = useSplitChildren(\n children,\n ModalCloseButton,\n )\n\n return (\n <motion.section\n {...getPopupAnimationProps(animationScheme, duration)}\n {...cast<HTMLMotionPropsWithoutAs<\"section\">>(\n getContentProps(cast<HTMLProps<\"section\">>(rest)),\n )}\n >\n {customCloseButton ?? (withCloseButton ? <ModalCloseButton /> : null)}\n\n {omittedChildren}\n </motion.section>\n )\n },\n \"content\",\n)()\n\ninterface ShorthandModalContentProps {\n /**\n * The modal body to use.\n */\n body?: ModalBodyProps | ReactNode\n /**\n * The modal cancel button to use.\n */\n cancel?: ButtonProps | ReactNode\n /**\n * The modal footer to use.\n */\n footer?: ModalFooterProps | ReactNode\n /**\n * The modal header to use.\n */\n header?: ModalHeaderProps | ReactNode\n /**\n * The modal middle button to use.\n */\n middle?: ButtonProps | ReactNode\n /**\n * The modal success button to use.\n */\n success?: ButtonProps | ReactNode\n /**\n * The modal title to use.\n */\n title?: ModalTitleProps | ReactNode\n /**\n * The callback invoked when cancel button clicked.\n */\n onCancel?: (onClose: () => void) => void\n /**\n * The callback invoked when middle button clicked.\n */\n onMiddle?: (onClose: () => void) => void\n /**\n * The callback invoked when success button clicked.\n */\n onSuccess?: (onClose: () => void) => void\n}\n\nexport const ShorthandModalContent: FC<ShorthandModalContentProps> = ({\n body,\n cancel,\n footer,\n header,\n middle,\n success,\n title,\n onCancel,\n onMiddle,\n onSuccess,\n}) => {\n const { onClose } = useComponentContext()\n const customHeader = wrapOrPassProps(ModalHeader, header)\n const customTitle = wrapOrPassProps(ModalTitle, title)\n const customBody = wrapOrPassProps(ModalBody, body)\n const customFooter = wrapOrPassProps(ModalFooter, footer)\n const customCancel = wrapOrPassProps(Button, cancel, {\n colorScheme: \"mono\",\n variant: \"ghost\",\n onClick: () => (onCancel ? onCancel(onClose) : onClose()),\n })\n const customMiddle = wrapOrPassProps(Button, middle, {\n colorScheme: \"secondary\",\n onClick: () => (onMiddle ? onMiddle(onClose) : onClose()),\n })\n const customSuccess = wrapOrPassProps(Button, success, {\n colorScheme: \"primary\",\n onClick: () => (onSuccess ? onSuccess(onClose) : onClose()),\n })\n\n return (\n <ModalContent>\n {customHeader ??\n (customTitle ? <ModalHeader>{customTitle}</ModalHeader> : null)}\n {customBody}\n {customFooter ??\n (customCancel || customMiddle || customSuccess ? (\n <ModalFooter>\n {customCancel}\n {customMiddle}\n {customSuccess}\n </ModalFooter>\n ) : null)}\n </ModalContent>\n )\n}\n\nexport interface ModalHeaderProps extends HTMLStyledProps<\"header\"> {}\n\nexport const ModalHeader = withContext<\"header\", ModalHeaderProps>(\n \"header\",\n \"header\",\n)(undefined, (props) => {\n const { getHeaderProps } = useComponentContext()\n\n return { ...getHeaderProps(props) }\n})\n\nexport interface ModalTitleProps extends HTMLStyledProps<\"h2\"> {}\n\nexport const ModalTitle = withContext<\"h2\", ModalTitleProps>(\"h2\", \"title\")(\n undefined,\n (props) => {\n const { getTitleProps } = useComponentContext()\n\n return { ...getTitleProps(props) }\n },\n)\n\nexport interface ModalBodyProps extends HTMLStyledProps {}\n\nexport const ModalBody = withContext<\"div\", ModalBodyProps>(\"div\", \"body\")(\n undefined,\n (props) => {\n const { getBodyProps } = useComponentContext()\n\n return { ...getBodyProps(props) }\n },\n)\n\nexport interface ModalFooterProps extends HTMLStyledProps<\"footer\"> {}\n\nexport const ModalFooter = withContext<\"footer\", ModalFooterProps>(\n \"footer\",\n \"footer\",\n)(undefined, (props) => {\n const { getFooterProps } = useComponentContext()\n\n return { ...getFooterProps(props) }\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"modal.cjs","names":["createSlotComponent","modalStyle","useSplitChildren","useModal","AnimatePresence","Portal","FocusLock","RemoveScroll","styled","CloseButton","motion","fadeVariants","getPopupAnimationProps","ShorthandModalContent: FC<ShorthandModalContentProps>","wrapOrPassProps","Button"],"sources":["../../../../src/components/modal/modal.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FC, PropsWithChildren, ReactNode } from \"react\"\nimport type { HTMLProps, HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { ButtonProps } from \"../button\"\nimport type { CloseButtonProps } from \"../close-button\"\nimport type { FocusLockProps } from \"../focus-lock\"\nimport type { HTMLMotionProps, HTMLMotionPropsWithoutAs } from \"../motion\"\nimport type { PopupAnimationProps } from \"../popover\"\nimport type { PortalProps } from \"../portal\"\nimport type { ModalStyle } from \"./modal.style\"\nimport type { UseModalProps, UseModalReturn } from \"./use-modal\"\nimport { AnimatePresence } from \"motion/react\"\nimport { useMemo } from \"react\"\nimport { RemoveScroll } from \"react-remove-scroll\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { cast, isArray, useSplitChildren, wrapOrPassProps } from \"../../utils\"\nimport { Button } from \"../button\"\nimport { CloseButton } from \"../close-button\"\nimport { fadeVariants } from \"../fade\"\nimport { FocusLock } from \"../focus-lock\"\nimport { motion } from \"../motion\"\nimport { getPopupAnimationProps } from \"../popover\"\nimport { Portal } from \"../portal\"\nimport { modalStyle } from \"./modal.style\"\nimport { useModal } from \"./use-modal\"\n\ninterface ComponentContext\n extends\n Omit<UseModalReturn, \"getRootProps\">,\n PopupAnimationProps,\n Pick<ModalRootProps, \"withCloseButton\"> {}\n\nexport interface ModalRootProps\n extends\n ThemeProps<ModalStyle>,\n Omit<UseModalProps, \"title\">,\n Pick<\n FocusLockProps,\n | \"autoFocus\"\n | \"finalFocusRef\"\n | \"initialFocusRef\"\n | \"lockFocusAcrossFrames\"\n | \"restoreFocus\"\n >,\n PopupAnimationProps,\n ShorthandModalContentProps {\n /**\n * Handle zoom or pinch gestures on iOS devices when scroll locking is enabled.\n *\n * @default false.\n */\n allowPinchZoom?: boolean\n /**\n * If `true`, scrolling will be disabled on the `body` when the modal opens.\n *\n * @default true\n */\n blockScrollOnMount?: boolean\n /**\n * The modal trigger to use.\n */\n trigger?: ReactNode\n /**\n * If `true`, display the modal close button.\n *\n * @default true\n */\n withCloseButton?: boolean\n /**\n * If `true`, display the modal overlay.\n *\n * @default true\n */\n withOverlay?: boolean\n /**\n * Props to be forwarded to the portal component.\n */\n portalProps?: Omit<PortalProps, \"children\">\n /**\n * Callback function to run side effects after the modal has closed.\n */\n onCloseComplete?: () => void\n}\n\nconst {\n ComponentContext,\n PropsContext: ModalPropsContext,\n useComponentContext,\n usePropsContext: useModalPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<ModalRootProps, ModalStyle, ComponentContext>(\n \"modal\",\n modalStyle,\n)\n\nexport { ModalPropsContext, useModalPropsContext }\n\n/**\n * `Modal` is a component that is displayed over the main content to focus the user's attention solely on the information.\n *\n * @see https://yamada-ui.com/docs/components/overlay/modal\n */\nexport const ModalRoot = withProvider<\"div\", ModalRootProps>(\n ({\n allowPinchZoom = false,\n animationScheme = \"scale\",\n autoFocus,\n blockScrollOnMount = true,\n body,\n cancel,\n children,\n duration,\n finalFocusRef,\n footer,\n header,\n initialFocusRef,\n lockFocusAcrossFrames = true,\n middle,\n restoreFocus,\n success,\n title,\n trigger,\n withCloseButton = true,\n withOverlay = true,\n portalProps,\n onCancel,\n onCloseComplete,\n onMiddle,\n onSuccess,\n ...props\n }) => {\n const [omittedChildren, openTrigger, customOverlay] = useSplitChildren(\n children,\n ModalOpenTrigger,\n ModalOverlay,\n )\n const hasChildren = isArray(omittedChildren) && !!omittedChildren.length\n const { open, getRootProps, ...rest } = useModal(props)\n const customOpenTrigger = trigger ? (\n <ModalOpenTrigger>{trigger}</ModalOpenTrigger>\n ) : null\n\n const context = useMemo(\n () => ({\n animationScheme,\n duration,\n open,\n withCloseButton,\n ...rest,\n }),\n [animationScheme, duration, open, withCloseButton, rest],\n )\n\n return (\n <ComponentContext value={context}>\n {openTrigger ?? customOpenTrigger}\n\n <AnimatePresence onExitComplete={onCloseComplete}>\n {open ? (\n <Portal {...portalProps}>\n <FocusLock\n autoFocus={autoFocus}\n finalFocusRef={finalFocusRef}\n initialFocusRef={initialFocusRef}\n lockFocusAcrossFrames={lockFocusAcrossFrames}\n restoreFocus={restoreFocus}\n >\n <RemoveScroll\n allowPinchZoom={allowPinchZoom}\n enabled={blockScrollOnMount}\n forwardProps\n >\n <styled.div {...getRootProps()}>\n {customOverlay ?? (withOverlay ? <ModalOverlay /> : null)}\n\n {hasChildren ? (\n omittedChildren\n ) : (\n <ShorthandModalContent\n body={body}\n cancel={cancel}\n footer={footer}\n header={header}\n middle={middle}\n success={success}\n title={title}\n onCancel={onCancel}\n onMiddle={onMiddle}\n onSuccess={onSuccess}\n />\n )}\n </styled.div>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n ) : null}\n </AnimatePresence>\n </ComponentContext>\n )\n },\n \"root\",\n)()\n\nexport interface ModalOpenTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const ModalOpenTrigger = withContext<\"button\", ModalOpenTriggerProps>(\n \"button\",\n { name: \"OpenTrigger\", slot: [\"trigger\", \"open\"] },\n)(undefined, (props) => {\n const { getOpenTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getOpenTriggerProps(props) }\n})\n\nexport interface ModalCloseTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const ModalCloseTrigger = withContext<\"button\", ModalCloseTriggerProps>(\n \"button\",\n { name: \"CloseTrigger\", slot: [\"trigger\", \"close\"] },\n)(undefined, (props) => {\n const { getCloseTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getCloseTriggerProps(props) }\n})\n\nexport interface ModalCloseButtonProps extends CloseButtonProps {}\n\nexport const ModalCloseButton = withContext<\"button\", ModalCloseButtonProps>(\n CloseButton,\n \"closeButton\",\n)(undefined, (props) => {\n const { getCloseButtonProps } = useComponentContext()\n\n return { ...getCloseButtonProps(props) }\n})\n\nexport interface ModalOverlayProps extends HTMLMotionProps {}\n\nexport const ModalOverlay = withContext<\"div\", ModalOverlayProps>((props) => {\n const { animationScheme, duration, getOverlayProps } = useComponentContext()\n\n return (\n <motion.div\n custom={{ duration }}\n {...(animationScheme !== \"none\"\n ? {\n animate: \"enter\",\n exit: \"exit\",\n initial: \"exit\",\n variants: fadeVariants,\n }\n : {})}\n {...cast<HTMLMotionProps>(getOverlayProps(cast<HTMLProps>(props)))}\n />\n )\n}, \"overlay\")()\n\nexport interface ModalContentProps\n extends Omit<HTMLMotionProps<\"section\">, \"children\">, PropsWithChildren {}\n\nexport const ModalContent = withContext<\"section\", ModalContentProps>(\n ({ children, ...rest }) => {\n const { animationScheme, duration, withCloseButton, getContentProps } =\n useComponentContext()\n const [omittedChildren, customCloseButton] = useSplitChildren(\n children,\n ModalCloseButton,\n )\n\n return (\n <motion.section\n {...getPopupAnimationProps(animationScheme, duration)}\n {...cast<HTMLMotionPropsWithoutAs<\"section\">>(\n getContentProps(cast<HTMLProps<\"section\">>(rest)),\n )}\n >\n {customCloseButton ?? (withCloseButton ? <ModalCloseButton /> : null)}\n\n {omittedChildren}\n </motion.section>\n )\n },\n \"content\",\n)()\n\ninterface ShorthandModalContentProps {\n /**\n * The modal body to use.\n */\n body?: ModalBodyProps | ReactNode\n /**\n * The modal cancel button to use.\n */\n cancel?: ButtonProps | ReactNode\n /**\n * The modal footer to use.\n */\n footer?: ModalFooterProps | ReactNode\n /**\n * The modal header to use.\n */\n header?: ModalHeaderProps | ReactNode\n /**\n * The modal middle button to use.\n */\n middle?: ButtonProps | ReactNode\n /**\n * The modal success button to use.\n */\n success?: ButtonProps | ReactNode\n /**\n * The modal title to use.\n */\n title?: ModalTitleProps | ReactNode\n /**\n * The callback invoked when cancel button clicked.\n */\n onCancel?: (onClose: () => void) => void\n /**\n * The callback invoked when middle button clicked.\n */\n onMiddle?: (onClose: () => void) => void\n /**\n * The callback invoked when success button clicked.\n */\n onSuccess?: (onClose: () => void) => void\n}\n\nexport const ShorthandModalContent: FC<ShorthandModalContentProps> = ({\n body,\n cancel,\n footer,\n header,\n middle,\n success,\n title,\n onCancel,\n onMiddle,\n onSuccess,\n}) => {\n const { onClose } = useComponentContext()\n const customHeader = wrapOrPassProps(ModalHeader, header)\n const customTitle = wrapOrPassProps(ModalTitle, title)\n const customBody = wrapOrPassProps(ModalBody, body)\n const customFooter = wrapOrPassProps(ModalFooter, footer)\n const customCancel = wrapOrPassProps(Button, cancel, {\n colorScheme: \"mono\",\n variant: \"ghost\",\n onClick: () => (onCancel ? onCancel(onClose) : onClose()),\n })\n const customMiddle = wrapOrPassProps(Button, middle, {\n colorScheme: \"secondary\",\n onClick: () => (onMiddle ? onMiddle(onClose) : onClose()),\n })\n const customSuccess = wrapOrPassProps(Button, success, {\n colorScheme: \"primary\",\n onClick: () => (onSuccess ? onSuccess(onClose) : onClose()),\n })\n\n return (\n <ModalContent>\n {customHeader ??\n (customTitle ? <ModalHeader>{customTitle}</ModalHeader> : null)}\n {customBody}\n {customFooter ??\n (customCancel || customMiddle || customSuccess ? (\n <ModalFooter>\n {customCancel}\n {customMiddle}\n {customSuccess}\n </ModalFooter>\n ) : null)}\n </ModalContent>\n )\n}\n\nexport interface ModalHeaderProps extends HTMLStyledProps<\"header\"> {}\n\nexport const ModalHeader = withContext<\"header\", ModalHeaderProps>(\n \"header\",\n \"header\",\n)(undefined, (props) => {\n const { getHeaderProps } = useComponentContext()\n\n return { ...getHeaderProps(props) }\n})\n\nexport interface ModalTitleProps extends HTMLStyledProps<\"h2\"> {}\n\nexport const ModalTitle = withContext<\"h2\", ModalTitleProps>(\"h2\", \"title\")(\n undefined,\n (props) => {\n const { getTitleProps } = useComponentContext()\n\n return { ...getTitleProps(props) }\n },\n)\n\nexport interface ModalBodyProps extends HTMLStyledProps {}\n\nexport const ModalBody = withContext<\"div\", ModalBodyProps>(\"div\", \"body\")(\n undefined,\n (props) => {\n const { getBodyProps } = useComponentContext()\n\n return { ...getBodyProps(props) }\n },\n)\n\nexport interface ModalFooterProps extends HTMLStyledProps<\"footer\"> {}\n\nexport const ModalFooter = withContext<\"footer\", ModalFooterProps>(\n \"footer\",\n \"footer\",\n)(undefined, (props) => {\n const { getFooterProps } = useComponentContext()\n\n return { ...getFooterProps(props) }\n})\n"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ const require_tree_style = require('./tree.style.cjs');
2
+ const require_use_tree = require('./use-tree.cjs');
3
+ const require_tree = require('./tree.cjs');
4
+ const require_namespace = require('./namespace.cjs');
5
+
6
+ Object.defineProperty(exports, 'Tree', {
7
+ enumerable: true,
8
+ get: function () {
9
+ return require_namespace.namespace_exports;
10
+ }
11
+ });
12
+ exports.TreeContext = require_use_tree.TreeContext;
13
+ exports.TreeDescendantsContext = require_use_tree.TreeDescendantsContext;
14
+ exports.TreeItem = require_tree.TreeItem;
15
+ exports.TreeItemContext = require_use_tree.TreeItemContext;
16
+ exports.TreePropsContext = require_tree.TreePropsContext;
17
+ exports.TreeRoot = require_tree.TreeRoot;
18
+ exports.treeStyle = require_tree_style.treeStyle;
19
+ exports.useTree = require_use_tree.useTree;
20
+ exports.useTreeContext = require_use_tree.useTreeContext;
21
+ exports.useTreeDescendant = require_use_tree.useTreeDescendant;
22
+ exports.useTreeDescendants = require_use_tree.useTreeDescendants;
23
+ exports.useTreeItem = require_use_tree.useTreeItem;
24
+ exports.useTreeItemContext = require_use_tree.useTreeItemContext;
25
+ exports.useTreePropsContext = require_tree.useTreePropsContext;
@@ -0,0 +1,26 @@
1
+ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
+ const require_use_tree = require('./use-tree.cjs');
3
+ const require_tree = require('./tree.cjs');
4
+
5
+ //#region src/components/tree/namespace.ts
6
+ var namespace_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
7
+ Context: () => require_use_tree.TreeContext,
8
+ DescendantsContext: () => require_use_tree.TreeDescendantsContext,
9
+ Item: () => require_tree.TreeItem,
10
+ PropsContext: () => require_tree.TreePropsContext,
11
+ Root: () => require_tree.TreeRoot,
12
+ useContext: () => require_use_tree.useTreeContext,
13
+ useDescendant: () => require_use_tree.useTreeDescendant,
14
+ useDescendants: () => require_use_tree.useTreeDescendants,
15
+ useItemContext: () => require_use_tree.useTreeItemContext,
16
+ usePropsContext: () => require_tree.useTreePropsContext
17
+ });
18
+
19
+ //#endregion
20
+ Object.defineProperty(exports, 'namespace_exports', {
21
+ enumerable: true,
22
+ get: function () {
23
+ return namespace_exports;
24
+ }
25
+ });
26
+ //# sourceMappingURL=namespace.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.cjs","names":[],"sources":["../../../../src/components/tree/namespace.ts"],"sourcesContent":["export {\n TreeItem as Item,\n TreePropsContext as PropsContext,\n TreeRoot as Root,\n useTreePropsContext as usePropsContext,\n} from \"./tree\"\nexport type {\n TreeItemProps as ItemProps,\n TreeItem as ItemType,\n TreeRootProps as RootProps,\n} from \"./tree\"\nexport {\n TreeContext as Context,\n TreeDescendantsContext as DescendantsContext,\n useTreeContext as useContext,\n useTreeDescendant as useDescendant,\n useTreeDescendants as useDescendants,\n useTreeItemContext as useItemContext,\n} from \"./use-tree\"\nexport type { TreeControl as Control } from \"./use-tree\"\n"],"mappings":""}
@@ -0,0 +1,289 @@
1
+ "use client";
2
+
3
+ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
4
+ const require_utils_index = require('../../utils/index.cjs');
5
+ const require_factory = require('../../core/system/factory.cjs');
6
+ const require_create_component = require('../../core/components/create-component.cjs');
7
+ require('../../core/index.cjs');
8
+ const require_chevron_right_icon = require('../icon/icons/chevron-right-icon.cjs');
9
+ require('../icon/index.cjs');
10
+ const require_collapse = require('../collapse/collapse.cjs');
11
+ require('../collapse/index.cjs');
12
+ const require_use_loading_component = require('../loading/use-loading-component.cjs');
13
+ require('../loading/index.cjs');
14
+ const require_checkbox = require('../checkbox/checkbox.cjs');
15
+ require('../checkbox/index.cjs');
16
+ const require_tree_style = require('./tree.style.cjs');
17
+ const require_use_tree = require('./use-tree.cjs');
18
+ let react = require("react");
19
+ let react_jsx_runtime = require("react/jsx-runtime");
20
+
21
+ //#region src/components/tree/tree.tsx
22
+ const recursiveTreeItem = (items) => {
23
+ return items?.map((props, index) => {
24
+ const key = props.value || ((0, require_utils_index.utils_exports.isString)(props.label) ? props.label : index);
25
+ if ("children" in props) {
26
+ const { children, ...rest } = props;
27
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeItem, {
28
+ ...rest,
29
+ children: recursiveTreeItem(children)
30
+ }, key);
31
+ } else return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeItem, { ...props }, key);
32
+ });
33
+ };
34
+ const getReactNodeOrFunction = (type, custom, root) => {
35
+ if ((0, require_utils_index.utils_exports.isObject)(custom) && ("group" in custom || "item" in custom)) return custom[type];
36
+ else if (custom) return custom;
37
+ else if ((0, require_utils_index.utils_exports.isObject)(root) && ("group" in root || "item" in root)) return root[type];
38
+ else return root;
39
+ };
40
+ const { ComponentContext, PropsContext: TreePropsContext, useComponentContext, usePropsContext: useTreePropsContext, withContext, withProvider } = require_create_component.createSlotComponent("tree", require_tree_style.treeStyle);
41
+ /**
42
+ * `Tree` is a component used to display hierarchical data structures in an expandable tree format.
43
+ *
44
+ * @see https://yamada-ui.com/docs/components/tree
45
+ */
46
+ const TreeRoot = withProvider(({ size, animated, children, endElement, indicator, indicatorHidden, items, loadingScheme, startElement, checkboxProps, endElementProps, groupProps, indicatorProps, itemProps, labelProps, startElementProps, triggerProps, ...rest }) => {
47
+ const computedChildren = (0, react.useMemo)(() => {
48
+ if (children) return children;
49
+ return recursiveTreeItem(items);
50
+ }, [children, items]);
51
+ const { activeDescendant, checkable, checkedValue, descendants, expandedValue, multiple, selectedValue, getRootProps, onActiveDescendant, onCheckedChange, onCollapseAll, onExpandAll, onExpandedChange, onSearch, onSelectedChange } = require_use_tree.useTree({
52
+ ...rest,
53
+ children: computedChildren
54
+ });
55
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_use_tree.TreeDescendantsContext, {
56
+ value: descendants,
57
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_use_tree.TreeContext, {
58
+ value: (0, react.useMemo)(() => ({
59
+ activeDescendant,
60
+ checkable,
61
+ checkedValue,
62
+ expandedValue,
63
+ multiple,
64
+ selectedValue,
65
+ onActiveDescendant,
66
+ onCheckedChange,
67
+ onCollapseAll,
68
+ onExpandAll,
69
+ onExpandedChange,
70
+ onSearch,
71
+ onSelectedChange
72
+ }), [
73
+ activeDescendant,
74
+ checkable,
75
+ checkedValue,
76
+ expandedValue,
77
+ multiple,
78
+ selectedValue,
79
+ onActiveDescendant,
80
+ onCheckedChange,
81
+ onSearch,
82
+ onCollapseAll,
83
+ onExpandAll,
84
+ onExpandedChange,
85
+ onSelectedChange
86
+ ]),
87
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ComponentContext, {
88
+ value: (0, react.useMemo)(() => ({
89
+ size,
90
+ animated,
91
+ endElement,
92
+ indicator,
93
+ indicatorHidden,
94
+ loadingScheme,
95
+ startElement,
96
+ checkboxProps,
97
+ endElementProps,
98
+ groupProps,
99
+ indicatorProps,
100
+ itemProps,
101
+ labelProps,
102
+ startElementProps,
103
+ triggerProps
104
+ }), [
105
+ size,
106
+ animated,
107
+ endElement,
108
+ indicator,
109
+ indicatorHidden,
110
+ startElement,
111
+ endElementProps,
112
+ groupProps,
113
+ indicatorProps,
114
+ itemProps,
115
+ labelProps,
116
+ startElementProps,
117
+ triggerProps,
118
+ checkboxProps,
119
+ loadingScheme
120
+ ]),
121
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.styled.ul, { ...getRootProps() })
122
+ })
123
+ })
124
+ });
125
+ }, "root", { transferProps: ["size"] })();
126
+ const TreeItem = withContext(({ animated: animatedProp, asyncChildren: asyncChildrenProp, endElement, indicator: indicatorProp, label, loadingScheme, startElement, value: valueProp = (0, require_utils_index.utils_exports.isString)(label) ? label : void 0, checkboxProps, endElementProps, groupProps, indicatorProps, labelProps, startElementProps, triggerProps, ...rest }) => {
127
+ const { checkable } = require_use_tree.useTreeContext();
128
+ const componentContext = useComponentContext();
129
+ const Loading = require_use_loading_component.useLoadingComponent(loadingScheme ?? componentContext.loadingScheme ?? "oval");
130
+ const animated = animatedProp ?? componentContext.animated;
131
+ const indicator = indicatorProp ?? componentContext.indicator;
132
+ const groupStartElement = getReactNodeOrFunction("group", startElement, componentContext.startElement);
133
+ const groupEndElement = getReactNodeOrFunction("group", endElement, componentContext.endElement);
134
+ const itemStartElement = getReactNodeOrFunction("item", startElement, componentContext.startElement);
135
+ const itemEndElement = getReactNodeOrFunction("item", endElement, componentContext.endElement);
136
+ const asyncChildren = (0, react.useCallback)(async () => {
137
+ return recursiveTreeItem(await asyncChildrenProp?.());
138
+ }, [asyncChildrenProp]);
139
+ const { branchOpen, children, disabled, group, groupLoading, groupOpen, level, value, getCheckboxProps, getGroupItemProps, getGroupProps, getIndicatorProps, getItemProps, getLabelProps, getTriggerProps, onGroupClose, onGroupOpen, onGroupToggle } = require_use_tree.useTreeItem({
140
+ ...componentContext.itemProps,
141
+ ...rest,
142
+ asyncChildren: asyncChildrenProp ? asyncChildren : void 0,
143
+ value: valueProp
144
+ });
145
+ const props = {
146
+ disabled,
147
+ expanded: groupOpen
148
+ };
149
+ const context = (0, react.useMemo)(() => ({
150
+ branchOpen,
151
+ groupOpen,
152
+ level,
153
+ value,
154
+ onGroupClose,
155
+ onGroupOpen,
156
+ onGroupToggle
157
+ }), [
158
+ branchOpen,
159
+ groupOpen,
160
+ level,
161
+ value,
162
+ onGroupClose,
163
+ onGroupOpen,
164
+ onGroupToggle
165
+ ]);
166
+ const varProps = (0, react.useMemo)(() => ({ "--level": level.toString() }), [level]);
167
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_use_tree.TreeItemContext, {
168
+ value: context,
169
+ children: group ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_factory.styled.li, {
170
+ ...varProps,
171
+ ...getGroupItemProps(),
172
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(TreeTrigger, {
173
+ ...getTriggerProps({
174
+ ...componentContext.triggerProps,
175
+ ...triggerProps
176
+ }),
177
+ children: [
178
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeIndicator, {
179
+ ...getIndicatorProps({
180
+ "data-animated": (0, require_utils_index.utils_exports.dataAttr)(animated),
181
+ ...componentContext.indicatorProps,
182
+ ...indicatorProps
183
+ }),
184
+ children: groupLoading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Loading, {}) : (0, require_utils_index.utils_exports.runIfFn)(indicator, props)
185
+ }),
186
+ checkable ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeCheckbox, {
187
+ size: componentContext.size,
188
+ ...getCheckboxProps({
189
+ ...componentContext.checkboxProps,
190
+ ...checkboxProps
191
+ })
192
+ }) : null,
193
+ groupStartElement ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeStartElement, {
194
+ ...componentContext.startElementProps,
195
+ ...startElementProps,
196
+ children: (0, require_utils_index.utils_exports.runIfFn)(groupStartElement, props)
197
+ }) : null,
198
+ label ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeLabel, {
199
+ ...getLabelProps({
200
+ ...componentContext.labelProps,
201
+ ...labelProps
202
+ }),
203
+ children: label
204
+ }) : null,
205
+ groupEndElement ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeEndElement, {
206
+ ...componentContext.endElementProps,
207
+ ...endElementProps,
208
+ children: (0, require_utils_index.utils_exports.runIfFn)(groupEndElement, props)
209
+ }) : null
210
+ ]
211
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeGroup, {
212
+ duration: !animated ? 0 : void 0,
213
+ open: groupOpen,
214
+ ...getGroupProps({
215
+ ...componentContext.groupProps,
216
+ ...groupProps
217
+ }),
218
+ children
219
+ })]
220
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_factory.styled.li, {
221
+ ...varProps,
222
+ ...getItemProps(),
223
+ children: [
224
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeIndicator, { ...getIndicatorProps({
225
+ "data-hidden": "",
226
+ ...componentContext.indicatorProps,
227
+ ...indicatorProps
228
+ }) }),
229
+ checkable ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeCheckbox, {
230
+ size: componentContext.size,
231
+ ...getCheckboxProps({
232
+ ...componentContext.checkboxProps,
233
+ ...checkboxProps
234
+ })
235
+ }) : null,
236
+ itemStartElement ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeStartElement, {
237
+ ...componentContext.startElementProps,
238
+ ...startElementProps,
239
+ children: (0, require_utils_index.utils_exports.runIfFn)(itemStartElement, props)
240
+ }) : null,
241
+ label ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeLabel, {
242
+ ...getLabelProps({
243
+ ...componentContext.labelProps,
244
+ ...labelProps
245
+ }),
246
+ children: label
247
+ }) : null,
248
+ itemEndElement ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeEndElement, {
249
+ ...componentContext.endElementProps,
250
+ ...endElementProps,
251
+ children: (0, require_utils_index.utils_exports.runIfFn)(itemEndElement, props)
252
+ }) : null
253
+ ]
254
+ })
255
+ });
256
+ }, "item")();
257
+ const TreeTrigger = withContext("div", "trigger")();
258
+ const TreeGroup = withContext((props) => {
259
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_collapse.Collapse, {
260
+ as: "ul",
261
+ ...(0, require_utils_index.utils_exports.cast)(props)
262
+ });
263
+ }, "group")();
264
+ const TreeIndicator = withContext(({ children = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_chevron_right_icon.ChevronRightIcon, {}), ...rest }) => {
265
+ const { indicatorHidden } = useComponentContext();
266
+ if (indicatorHidden) return null;
267
+ if ((0, react.isValidElement)(children)) return (0, react.cloneElement)(children, {
268
+ ...rest,
269
+ ...children.props
270
+ });
271
+ return react.Children.count(children) > 1 ? react.Children.only(null) : null;
272
+ }, "indicator")();
273
+ const TreeCheckbox = withContext(require_checkbox.Checkbox, "checkbox")();
274
+ const TreeStartElement = withContext("div", {
275
+ name: "TreeStartElement",
276
+ slot: ["element", "start"]
277
+ })();
278
+ const TreeEndElement = withContext("div", {
279
+ name: "TreeEndElement",
280
+ slot: ["element", "end"]
281
+ })();
282
+ const TreeLabel = withContext("span", "label")();
283
+
284
+ //#endregion
285
+ exports.TreeItem = TreeItem;
286
+ exports.TreePropsContext = TreePropsContext;
287
+ exports.TreeRoot = TreeRoot;
288
+ exports.useTreePropsContext = useTreePropsContext;
289
+ //# sourceMappingURL=tree.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.cjs","names":["createSlotComponent","treeStyle","useTree","TreeDescendantsContext","TreeContext","styled","useTreeContext","useLoadingComponent","useTreeItem","TreeItemContext","Collapse","ChevronRightIcon","Children","Checkbox"],"sources":["../../../../src/components/tree/tree.tsx"],"sourcesContent":["\"use client\"\n\nimport type { ReactElement, ReactNode } from \"react\"\nimport type {\n GenericsComponent,\n HTMLProps,\n HTMLStyledProps,\n ThemeProps,\n} from \"../../core\"\nimport type { CheckboxProps } from \"../checkbox\"\nimport type { CollapseProps } from \"../collapse\"\nimport type { Loading } from \"../loading\"\nimport type { WithTransitionProps } from \"../motion\"\nimport type { TreeStyle } from \"./tree.style\"\nimport type { UseTreeItemProps, UseTreeProps } from \"./use-tree\"\nimport {\n Children,\n cloneElement,\n isValidElement,\n useCallback,\n useMemo,\n} from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport {\n cast,\n dataAttr,\n isObject,\n isString,\n type ReactNodeOrFunction,\n runIfFn,\n} from \"../../utils\"\nimport { Checkbox } from \"../checkbox\"\nimport { Collapse } from \"../collapse\"\nimport { ChevronRightIcon } from \"../icon\"\nimport { useLoadingComponent } from \"../loading\"\nimport { treeStyle } from \"./tree.style\"\nimport {\n TreeContext,\n TreeDescendantsContext,\n TreeItemContext,\n useTree,\n useTreeContext,\n useTreeItem,\n} from \"./use-tree\"\n\ninterface TreeCallBackProps {\n disabled?: boolean\n expanded?: boolean\n}\n\nexport type TreeItemReactNode =\n | ReactNodeOrFunction<TreeCallBackProps>\n | {\n group: ReactNodeOrFunction<TreeCallBackProps>\n item?: ReactNodeOrFunction<TreeCallBackProps>\n }\n | {\n item: ReactNodeOrFunction<TreeCallBackProps>\n group?: ReactNodeOrFunction<TreeCallBackProps>\n }\n\ninterface TreeItemWithValue extends Omit<TreeItemProps, \"children\"> {}\n\nexport interface TreeItemWithChildren extends TreeItemWithValue {\n children: TreeItem[]\n}\n\nexport type TreeItem = TreeItemWithChildren | TreeItemWithValue\n\nconst recursiveTreeItem = (items?: TreeItem[]) => {\n return items?.map((props, index) => {\n const key = props.value || (isString(props.label) ? props.label : index)\n\n if (\"children\" in props) {\n const { children, ...rest } = props\n\n return (\n <TreeItem key={key} {...rest}>\n {recursiveTreeItem(children)}\n </TreeItem>\n )\n } else {\n return <TreeItem key={key} {...props} />\n }\n })\n}\n\nconst getReactNodeOrFunction = (\n type: \"group\" | \"item\",\n custom?: TreeItemReactNode,\n root?: TreeItemReactNode,\n): ReactNodeOrFunction<TreeCallBackProps> => {\n if (isObject(custom) && (\"group\" in custom || \"item\" in custom)) {\n return custom[type]\n } else if (custom) {\n return custom\n } else if (isObject(root) && (\"group\" in root || \"item\" in root)) {\n return root[type]\n } else {\n return root\n }\n}\n\ninterface ComponentContext extends Pick<\n TreeRootProps,\n | \"animated\"\n | \"checkboxProps\"\n | \"endElement\"\n | \"endElementProps\"\n | \"groupProps\"\n | \"indicator\"\n | \"indicatorHidden\"\n | \"indicatorProps\"\n | \"itemProps\"\n | \"labelProps\"\n | \"loadingScheme\"\n | \"size\"\n | \"startElement\"\n | \"startElementProps\"\n | \"triggerProps\"\n> {}\n\nexport interface TreeRootProps<Multiple extends boolean = false>\n extends\n HTMLStyledProps<\"ul\">,\n ThemeProps<TreeStyle>,\n UseTreeProps<Multiple>,\n Pick<\n TreeItemProps,\n | \"animated\"\n | \"checkboxProps\"\n | \"endElement\"\n | \"endElementProps\"\n | \"groupProps\"\n | \"indicator\"\n | \"indicatorProps\"\n | \"labelProps\"\n | \"loadingScheme\"\n | \"startElement\"\n | \"startElementProps\"\n | \"triggerProps\"\n > {\n /**\n * If `true`, hide the tree indicator icon for all items.\n *\n * @default false\n */\n indicatorHidden?: boolean\n /**\n * If provided, generate elements based on items.\n */\n items?: TreeItem[]\n /**\n * Props for the item component.\n */\n itemProps?: Omit<TreeItemProps, \"label\" | \"open\" | \"value\">\n}\n\nconst {\n ComponentContext,\n PropsContext: TreePropsContext,\n useComponentContext,\n usePropsContext: useTreePropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<TreeRootProps, TreeStyle, ComponentContext>(\n \"tree\",\n treeStyle,\n)\n\nexport { TreePropsContext, useTreePropsContext }\n\n/**\n * `Tree` is a component used to display hierarchical data structures in an expandable tree format.\n *\n * @see https://yamada-ui.com/docs/components/tree\n */\nexport const TreeRoot = withProvider<\"ul\", TreeRootProps, \"size\">(\n <Multiple extends boolean = false>({\n size,\n animated,\n children,\n endElement,\n indicator,\n indicatorHidden,\n items,\n loadingScheme,\n startElement,\n checkboxProps,\n endElementProps,\n groupProps,\n indicatorProps,\n itemProps,\n labelProps,\n startElementProps,\n triggerProps,\n ...rest\n }: TreeRootProps<Multiple>) => {\n const computedChildren = useMemo(() => {\n if (children) return children\n\n return recursiveTreeItem(items)\n }, [children, items])\n const {\n activeDescendant,\n checkable,\n checkedValue,\n descendants,\n expandedValue,\n multiple,\n selectedValue,\n getRootProps,\n onActiveDescendant,\n onCheckedChange,\n onCollapseAll,\n onExpandAll,\n onExpandedChange,\n onSearch,\n onSelectedChange,\n } = useTree({ ...rest, children: computedChildren })\n const context = useMemo(\n () => ({\n activeDescendant,\n checkable,\n checkedValue,\n expandedValue,\n multiple,\n selectedValue,\n onActiveDescendant,\n onCheckedChange,\n onCollapseAll,\n onExpandAll,\n onExpandedChange,\n onSearch,\n onSelectedChange,\n }),\n [\n activeDescendant,\n checkable,\n checkedValue,\n expandedValue,\n multiple,\n selectedValue,\n onActiveDescendant,\n onCheckedChange,\n onSearch,\n onCollapseAll,\n onExpandAll,\n onExpandedChange,\n onSelectedChange,\n ],\n )\n const componentContext = useMemo(\n () => ({\n size,\n animated,\n endElement,\n indicator,\n indicatorHidden,\n loadingScheme,\n startElement,\n checkboxProps,\n endElementProps,\n groupProps,\n indicatorProps,\n itemProps,\n labelProps,\n startElementProps,\n triggerProps,\n }),\n [\n size,\n animated,\n endElement,\n indicator,\n indicatorHidden,\n startElement,\n endElementProps,\n groupProps,\n indicatorProps,\n itemProps,\n labelProps,\n startElementProps,\n triggerProps,\n checkboxProps,\n loadingScheme,\n ],\n )\n\n return (\n <TreeDescendantsContext value={descendants}>\n <TreeContext value={context}>\n <ComponentContext value={componentContext}>\n <styled.ul {...getRootProps()} />\n </ComponentContext>\n </TreeContext>\n </TreeDescendantsContext>\n )\n },\n \"root\",\n { transferProps: [\"size\"] },\n)() as GenericsComponent<{\n <Multiple extends boolean = false>(\n props: TreeRootProps<Multiple>,\n ): ReactElement\n}>\n\nexport interface TreeItemProps\n extends\n Omit<HTMLStyledProps<\"li\">, \"value\">,\n Omit<UseTreeItemProps, \"asyncChildren\"> {\n /**\n * The label to display in the item.\n */\n label: ReactNode\n /**\n * If `true`, the tree item will be animated.\n *\n * @default false\n */\n animated?: boolean\n /**\n * The element to display at the end of the item.\n */\n endElement?: TreeItemReactNode\n /**\n * The tree indicator icon to use.\n */\n indicator?: ReactNodeOrFunction<TreeCallBackProps>\n /**\n * The loading scheme.\n *\n * @default 'oval'\n */\n loadingScheme?: Loading.Scheme\n /**\n * The element to display at the start of the item.\n */\n startElement?: TreeItemReactNode\n /**\n * Props for the checkbox component.\n */\n checkboxProps?: Omit<CheckboxProps, \"checked\" | \"defaultChecked\" | \"value\">\n /**\n * Props for the end component.\n */\n endElementProps?: TreeEndElementProps\n /**\n * Props for the group component.\n */\n groupProps?: Omit<TreeGroupProps, \"children\">\n /**\n * Props for the indicator component.\n */\n indicatorProps?: TreeIndicatorProps\n /**\n * Props for the label component.\n */\n labelProps?: TreeLabelProps\n /**\n * Props for the start component.\n */\n startElementProps?: TreeStartElementProps\n /**\n * Props for the trigger component.\n */\n triggerProps?: TreeTriggerProps\n /**\n * If provided, the tree item will be rendered as an async tree item.\n */\n asyncChildren?: () => Promise<TreeItem[]>\n}\n\nexport const TreeItem = withContext<\"li\", TreeItemProps>(\n ({\n animated: animatedProp,\n asyncChildren: asyncChildrenProp,\n endElement,\n indicator: indicatorProp,\n label,\n loadingScheme,\n startElement,\n value: valueProp = isString(label) ? label : undefined,\n checkboxProps,\n endElementProps,\n groupProps,\n indicatorProps,\n labelProps,\n startElementProps,\n triggerProps,\n ...rest\n }) => {\n const { checkable } = useTreeContext()\n const componentContext = useComponentContext()\n const Loading = useLoadingComponent(\n loadingScheme ?? componentContext.loadingScheme ?? \"oval\",\n )\n const animated = animatedProp ?? componentContext.animated\n const indicator = indicatorProp ?? componentContext.indicator\n const groupStartElement = getReactNodeOrFunction(\n \"group\",\n startElement,\n componentContext.startElement,\n )\n const groupEndElement = getReactNodeOrFunction(\n \"group\",\n endElement,\n componentContext.endElement,\n )\n const itemStartElement = getReactNodeOrFunction(\n \"item\",\n startElement,\n componentContext.startElement,\n )\n const itemEndElement = getReactNodeOrFunction(\n \"item\",\n endElement,\n componentContext.endElement,\n )\n const asyncChildren = useCallback(async () => {\n const items = await asyncChildrenProp?.()\n\n return recursiveTreeItem(items)\n }, [asyncChildrenProp])\n const {\n branchOpen,\n children,\n disabled,\n group,\n groupLoading,\n groupOpen,\n level,\n value,\n getCheckboxProps,\n getGroupItemProps,\n getGroupProps,\n getIndicatorProps,\n getItemProps,\n getLabelProps,\n getTriggerProps,\n onGroupClose,\n onGroupOpen,\n onGroupToggle,\n } = useTreeItem({\n ...componentContext.itemProps,\n ...rest,\n asyncChildren: asyncChildrenProp ? asyncChildren : undefined,\n value: valueProp,\n })\n const props = { disabled, expanded: groupOpen }\n const context = useMemo(\n () => ({\n branchOpen,\n groupOpen,\n level,\n value,\n onGroupClose,\n onGroupOpen,\n onGroupToggle,\n }),\n [\n branchOpen,\n groupOpen,\n level,\n value,\n onGroupClose,\n onGroupOpen,\n onGroupToggle,\n ],\n )\n const varProps = useMemo(() => ({ \"--level\": level.toString() }), [level])\n\n return (\n <TreeItemContext value={context}>\n {group ? (\n <styled.li {...varProps} {...getGroupItemProps()}>\n <TreeTrigger\n {...getTriggerProps({\n ...componentContext.triggerProps,\n ...triggerProps,\n })}\n >\n <TreeIndicator\n {...getIndicatorProps({\n \"data-animated\": dataAttr(animated),\n ...componentContext.indicatorProps,\n ...indicatorProps,\n })}\n >\n {groupLoading ? <Loading /> : runIfFn(indicator, props)}\n </TreeIndicator>\n {checkable ? (\n <TreeCheckbox\n size={componentContext.size}\n {...getCheckboxProps({\n ...componentContext.checkboxProps,\n ...checkboxProps,\n })}\n />\n ) : null}\n {groupStartElement ? (\n <TreeStartElement\n {...componentContext.startElementProps}\n {...startElementProps}\n >\n {runIfFn(groupStartElement, props)}\n </TreeStartElement>\n ) : null}\n {label ? (\n <TreeLabel\n {...getLabelProps({\n ...componentContext.labelProps,\n ...labelProps,\n })}\n >\n {label}\n </TreeLabel>\n ) : null}\n {groupEndElement ? (\n <TreeEndElement\n {...componentContext.endElementProps}\n {...endElementProps}\n >\n {runIfFn(groupEndElement, props)}\n </TreeEndElement>\n ) : null}\n </TreeTrigger>\n\n <TreeGroup\n duration={!animated ? 0 : undefined}\n open={groupOpen}\n {...getGroupProps({\n ...componentContext.groupProps,\n ...groupProps,\n })}\n >\n {children}\n </TreeGroup>\n </styled.li>\n ) : (\n <styled.li {...varProps} {...getItemProps()}>\n <TreeIndicator\n {...getIndicatorProps({\n \"data-hidden\": \"\",\n ...componentContext.indicatorProps,\n ...indicatorProps,\n })}\n />\n {checkable ? (\n <TreeCheckbox\n size={componentContext.size}\n {...getCheckboxProps({\n ...componentContext.checkboxProps,\n ...checkboxProps,\n })}\n />\n ) : null}\n {itemStartElement ? (\n <TreeStartElement\n {...componentContext.startElementProps}\n {...startElementProps}\n >\n {runIfFn(itemStartElement, props)}\n </TreeStartElement>\n ) : null}\n {label ? (\n <TreeLabel\n {...getLabelProps({\n ...componentContext.labelProps,\n ...labelProps,\n })}\n >\n {label}\n </TreeLabel>\n ) : null}\n {itemEndElement ? (\n <TreeEndElement\n {...componentContext.endElementProps}\n {...endElementProps}\n >\n {runIfFn(itemEndElement, props)}\n </TreeEndElement>\n ) : null}\n </styled.li>\n )}\n </TreeItemContext>\n )\n },\n \"item\",\n)()\n\ninterface TreeTriggerProps extends HTMLStyledProps {}\n\nconst TreeTrigger = withContext<\"div\", TreeTriggerProps>(\"div\", \"trigger\")()\n\ninterface TreeGroupProps\n extends\n Omit<HTMLStyledProps<\"ul\">, \"transition\">,\n Pick<CollapseProps, \"animationOpacity\" | keyof WithTransitionProps> {}\n\nconst TreeGroup = withContext<\"ul\", TreeGroupProps>((props) => {\n return <Collapse as=\"ul\" {...cast<CollapseProps>(props)} />\n}, \"group\")()\n\ninterface TreeIndicatorProps extends HTMLStyledProps<\"svg\"> {}\n\nconst TreeIndicator = withContext<\"svg\", TreeIndicatorProps>(\n ({ children = <ChevronRightIcon />, ...rest }) => {\n const { indicatorHidden } = useComponentContext()\n\n if (indicatorHidden) return null\n\n if (isValidElement<HTMLProps<\"svg\">>(children))\n return cloneElement(children, { ...rest, ...children.props })\n\n return Children.count(children) > 1 ? Children.only(null) : null\n },\n \"indicator\",\n)()\n\ninterface TreeCheckboxProps extends CheckboxProps {}\n\nconst TreeCheckbox = withContext<\"input\", TreeCheckboxProps>(\n Checkbox,\n \"checkbox\",\n)()\n\ninterface TreeStartElementProps extends HTMLStyledProps {}\n\nconst TreeStartElement = withContext<\"div\", TreeStartElementProps>(\"div\", {\n name: \"TreeStartElement\",\n slot: [\"element\", \"start\"],\n})()\n\ninterface TreeEndElementProps extends HTMLStyledProps {}\n\nconst TreeEndElement = withContext<\"div\", TreeEndElementProps>(\"div\", {\n name: \"TreeEndElement\",\n slot: [\"element\", \"end\"],\n})()\n\ninterface TreeLabelProps extends HTMLStyledProps<\"span\"> {}\n\nconst TreeLabel = withContext<\"span\", TreeLabelProps>(\"span\", \"label\")()\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqEA,MAAM,qBAAqB,UAAuB;AAChD,QAAO,OAAO,KAAK,OAAO,UAAU;EAClC,MAAM,MAAM,MAAM,0DAAmB,MAAM,MAAM,GAAG,MAAM,QAAQ;AAElE,MAAI,cAAc,OAAO;GACvB,MAAM,EAAE,UAAU,GAAG,SAAS;AAE9B,UACE,2CAAC;IAAmB,GAAI;cACrB,kBAAkB,SAAS;MADf,IAEJ;QAGb,QAAO,2CAAC,YAAmB,GAAI,SAAT,IAAkB;GAE1C;;AAGJ,MAAM,0BACJ,MACA,QACA,SAC2C;AAC3C,qDAAa,OAAO,KAAK,WAAW,UAAU,UAAU,QACtD,QAAO,OAAO;UACL,OACT,QAAO;0DACW,KAAK,KAAK,WAAW,QAAQ,UAAU,MACzD,QAAO,KAAK;KAEZ,QAAO;;AA2DX,MAAM,EACJ,kBACA,cAAc,kBACd,qBACA,iBAAiB,qBACjB,aACA,iBACEA,6CACF,QACAC,6BACD;;;;;;AASD,MAAa,WAAW,cACa,EACjC,MACA,UACA,UACA,YACA,WACA,iBACA,OACA,eACA,cACA,eACA,iBACA,YACA,gBACA,WACA,YACA,mBACA,cACA,GAAG,WAC0B;CAC7B,MAAM,4CAAiC;AACrC,MAAI,SAAU,QAAO;AAErB,SAAO,kBAAkB,MAAM;IAC9B,CAAC,UAAU,MAAM,CAAC;CACrB,MAAM,EACJ,kBACA,WACA,cACA,aACA,eACA,UACA,eACA,cACA,oBACA,iBACA,eACA,aACA,kBACA,UACA,qBACEC,yBAAQ;EAAE,GAAG;EAAM,UAAU;EAAkB,CAAC;AAsEpD,QACE,2CAACC;EAAuB,OAAO;YAC7B,2CAACC;GAAY,iCAtER;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACD,GACD;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACD,CACF;aAyCK,2CAAC;IAAiB,iCAvCf;KACL;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACD,GACD;KACE;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACD,CACF;cAMO,2CAACC,uBAAO,MAAG,GAAI,cAAc,GAAI;KAChB;IACP;GACS;GAG7B,QACA,EAAE,eAAe,CAAC,OAAO,EAAE,CAC5B,EAAE;AAwEH,MAAa,WAAW,aACrB,EACC,UAAU,cACV,eAAe,mBACf,YACA,WAAW,eACX,OACA,eACA,cACA,OAAO,4DAAqB,MAAM,GAAG,QAAQ,QAC7C,eACA,iBACA,YACA,gBACA,YACA,mBACA,cACA,GAAG,WACC;CACJ,MAAM,EAAE,cAAcC,iCAAgB;CACtC,MAAM,mBAAmB,qBAAqB;CAC9C,MAAM,UAAUC,kDACd,iBAAiB,iBAAiB,iBAAiB,OACpD;CACD,MAAM,WAAW,gBAAgB,iBAAiB;CAClD,MAAM,YAAY,iBAAiB,iBAAiB;CACpD,MAAM,oBAAoB,uBACxB,SACA,cACA,iBAAiB,aAClB;CACD,MAAM,kBAAkB,uBACtB,SACA,YACA,iBAAiB,WAClB;CACD,MAAM,mBAAmB,uBACvB,QACA,cACA,iBAAiB,aAClB;CACD,MAAM,iBAAiB,uBACrB,QACA,YACA,iBAAiB,WAClB;CACD,MAAM,uCAA4B,YAAY;AAG5C,SAAO,kBAFO,MAAM,qBAAqB,CAEV;IAC9B,CAAC,kBAAkB,CAAC;CACvB,MAAM,EACJ,YACA,UACA,UACA,OACA,cACA,WACA,OACA,OACA,kBACA,mBACA,eACA,mBACA,cACA,eACA,iBACA,cACA,aACA,kBACEC,6BAAY;EACd,GAAG,iBAAiB;EACpB,GAAG;EACH,eAAe,oBAAoB,gBAAgB;EACnD,OAAO;EACR,CAAC;CACF,MAAM,QAAQ;EAAE;EAAU,UAAU;EAAW;CAC/C,MAAM,oCACG;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;CACD,MAAM,qCAA0B,EAAE,WAAW,MAAM,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC;AAE1E,QACE,2CAACC;EAAgB,OAAO;YACrB,QACC,4CAACJ,uBAAO;GAAG,GAAI;GAAU,GAAI,mBAAmB;cAC9C,4CAAC;IACC,GAAI,gBAAgB;KAClB,GAAG,iBAAiB;KACpB,GAAG;KACJ,CAAC;;KAEF,2CAAC;MACC,GAAI,kBAAkB;OACpB,iEAA0B,SAAS;OACnC,GAAG,iBAAiB;OACpB,GAAG;OACJ,CAAC;gBAED,eAAe,2CAAC,YAAU,kDAAW,WAAW,MAAM;OACzC;KACf,YACC,2CAAC;MACC,MAAM,iBAAiB;MACvB,GAAI,iBAAiB;OACnB,GAAG,iBAAiB;OACpB,GAAG;OACJ,CAAC;OACF,GACA;KACH,oBACC,2CAAC;MACC,GAAI,iBAAiB;MACrB,GAAI;+DAEK,mBAAmB,MAAM;OACjB,GACjB;KACH,QACC,2CAAC;MACC,GAAI,cAAc;OAChB,GAAG,iBAAiB;OACpB,GAAG;OACJ,CAAC;gBAED;OACS,GACV;KACH,kBACC,2CAAC;MACC,GAAI,iBAAiB;MACrB,GAAI;+DAEK,iBAAiB,MAAM;OACjB,GACf;;KACQ,EAEd,2CAAC;IACC,UAAU,CAAC,WAAW,IAAI;IAC1B,MAAM;IACN,GAAI,cAAc;KAChB,GAAG,iBAAiB;KACpB,GAAG;KACJ,CAAC;IAED;KACS;IACF,GAEZ,4CAACA,uBAAO;GAAG,GAAI;GAAU,GAAI,cAAc;;IACzC,2CAAC,iBACC,GAAI,kBAAkB;KACpB,eAAe;KACf,GAAG,iBAAiB;KACpB,GAAG;KACJ,CAAC,GACF;IACD,YACC,2CAAC;KACC,MAAM,iBAAiB;KACvB,GAAI,iBAAiB;MACnB,GAAG,iBAAiB;MACpB,GAAG;MACJ,CAAC;MACF,GACA;IACH,mBACC,2CAAC;KACC,GAAI,iBAAiB;KACrB,GAAI;8DAEK,kBAAkB,MAAM;MAChB,GACjB;IACH,QACC,2CAAC;KACC,GAAI,cAAc;MAChB,GAAG,iBAAiB;MACpB,GAAG;MACJ,CAAC;eAED;MACS,GACV;IACH,iBACC,2CAAC;KACC,GAAI,iBAAiB;KACrB,GAAI;8DAEK,gBAAgB,MAAM;MAChB,GACf;;IACM;GAEE;GAGtB,OACD,EAAE;AAIH,MAAM,cAAc,YAAqC,OAAO,UAAU,EAAE;AAO5E,MAAM,YAAY,aAAmC,UAAU;AAC7D,QAAO,2CAACK;EAAS,IAAG;EAAK,+CAAwB,MAAM;GAAI;GAC1D,QAAQ,EAAE;AAIb,MAAM,gBAAgB,aACnB,EAAE,WAAW,2CAACC,gDAAmB,EAAE,GAAG,WAAW;CAChD,MAAM,EAAE,oBAAoB,qBAAqB;AAEjD,KAAI,gBAAiB,QAAO;AAE5B,+BAAqC,SAAS,CAC5C,gCAAoB,UAAU;EAAE,GAAG;EAAM,GAAG,SAAS;EAAO,CAAC;AAE/D,QAAOC,eAAS,MAAM,SAAS,GAAG,IAAIA,eAAS,KAAK,KAAK,GAAG;GAE9D,YACD,EAAE;AAIH,MAAM,eAAe,YACnBC,2BACA,WACD,EAAE;AAIH,MAAM,mBAAmB,YAA0C,OAAO;CACxE,MAAM;CACN,MAAM,CAAC,WAAW,QAAQ;CAC3B,CAAC,EAAE;AAIJ,MAAM,iBAAiB,YAAwC,OAAO;CACpE,MAAM;CACN,MAAM,CAAC,WAAW,MAAM;CACzB,CAAC,EAAE;AAIJ,MAAM,YAAY,YAAoC,QAAQ,QAAQ,EAAE"}