@yamada-ui/react 2.1.4-dev-20260323182837 → 2.2.0-next-20260324183323

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 (242) hide show
  1. package/dist/cjs/components/tree/index.cjs +25 -0
  2. package/dist/cjs/components/tree/tree.cjs +289 -0
  3. package/dist/cjs/components/tree/tree.cjs.map +1 -0
  4. package/dist/cjs/components/tree/tree.namespace.cjs +26 -0
  5. package/dist/cjs/components/tree/tree.namespace.cjs.map +1 -0
  6. package/dist/cjs/components/tree/tree.style.cjs +181 -0
  7. package/dist/cjs/components/tree/tree.style.cjs.map +1 -0
  8. package/dist/cjs/components/tree/use-tree.cjs +556 -0
  9. package/dist/cjs/components/tree/use-tree.cjs.map +1 -0
  10. package/dist/cjs/hooks/use-descendants/index.cjs +19 -9
  11. package/dist/cjs/hooks/use-descendants/index.cjs.map +1 -1
  12. package/dist/cjs/index.cjs +42 -2
  13. package/dist/cjs/index.cjs.map +1 -1
  14. package/dist/esm/components/tree/index.js +6 -0
  15. package/dist/esm/components/tree/tree.js +285 -0
  16. package/dist/esm/components/tree/tree.js.map +1 -0
  17. package/dist/esm/components/tree/tree.namespace.js +21 -0
  18. package/dist/esm/components/tree/tree.namespace.js.map +1 -0
  19. package/dist/esm/components/tree/tree.style.js +181 -0
  20. package/dist/esm/components/tree/tree.style.js.map +1 -0
  21. package/dist/esm/components/tree/use-tree.js +547 -0
  22. package/dist/esm/components/tree/use-tree.js.map +1 -0
  23. package/dist/esm/hooks/use-descendants/index.js +19 -9
  24. package/dist/esm/hooks/use-descendants/index.js.map +1 -1
  25. package/dist/esm/index.js +23 -3
  26. package/dist/esm/index.js.map +1 -1
  27. package/dist/types/components/accordion/accordion.d.ts +2 -2
  28. package/dist/types/components/accordion/accordion.style.d.ts +1 -1
  29. package/dist/types/components/accordion/use-accordion.d.ts +11 -11
  30. package/dist/types/components/airy/airy.d.ts +2 -2
  31. package/dist/types/components/alert/alert.d.ts +2 -2
  32. package/dist/types/components/alpha-slider/alpha-slider.d.ts +2 -2
  33. package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +2 -2
  34. package/dist/types/components/autocomplete/autocomplete.d.ts +2 -2
  35. package/dist/types/components/autocomplete/autocomplete.style.d.ts +1 -1
  36. package/dist/types/components/autocomplete/use-autocomplete.d.ts +5 -5
  37. package/dist/types/components/avatar/avatar.d.ts +5 -5
  38. package/dist/types/components/avatar/use-avatar-group.d.ts +2 -2
  39. package/dist/types/components/badge/badge.d.ts +2 -2
  40. package/dist/types/components/bleed/bleed.d.ts +2 -2
  41. package/dist/types/components/blockquote/blockquote.d.ts +2 -2
  42. package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
  43. package/dist/types/components/breadcrumb/breadcrumb.style.d.ts +1 -1
  44. package/dist/types/components/breadcrumb/use-breadcrumb.d.ts +2 -2
  45. package/dist/types/components/button/button.d.ts +2 -2
  46. package/dist/types/components/button/icon-button.d.ts +2 -2
  47. package/dist/types/components/calendar/calendar.d.ts +2 -2
  48. package/dist/types/components/calendar/calendar.style.d.ts +2 -2
  49. package/dist/types/components/calendar/use-calendar.d.ts +8 -8
  50. package/dist/types/components/card/card.d.ts +2 -2
  51. package/dist/types/components/carousel/carousel.d.ts +2 -2
  52. package/dist/types/components/carousel/carousel.style.d.ts +2 -2
  53. package/dist/types/components/carousel/use-carousel.d.ts +3 -3
  54. package/dist/types/components/center/center.d.ts +2 -2
  55. package/dist/types/components/chart/area-chart.d.ts +2 -2
  56. package/dist/types/components/chart/bar-chart.d.ts +2 -2
  57. package/dist/types/components/chart/chart.d.ts +5 -5
  58. package/dist/types/components/chart/composed-chart.d.ts +2 -2
  59. package/dist/types/components/chart/donut-chart.d.ts +2 -2
  60. package/dist/types/components/chart/line-chart.d.ts +2 -2
  61. package/dist/types/components/chart/pie-chart.d.ts +2 -2
  62. package/dist/types/components/chart/radar-chart.d.ts +2 -2
  63. package/dist/types/components/chart/radial-chart.d.ts +2 -2
  64. package/dist/types/components/chart/use-chart.d.ts +2 -2
  65. package/dist/types/components/checkbox/checkbox.d.ts +5 -5
  66. package/dist/types/components/checkbox/checkbox.style.d.ts +1 -1
  67. package/dist/types/components/checkbox/use-checkbox-group.d.ts +2 -2
  68. package/dist/types/components/checkbox-card/checkbox-card.d.ts +5 -5
  69. package/dist/types/components/checkbox-card/checkbox-card.style.d.ts +1 -1
  70. package/dist/types/components/circle-progress/circle-progress.d.ts +2 -2
  71. package/dist/types/components/close-button/close-button.d.ts +2 -2
  72. package/dist/types/components/code/code.d.ts +2 -2
  73. package/dist/types/components/collapse/collapse.d.ts +2 -2
  74. package/dist/types/components/color-picker/color-picker.d.ts +2 -2
  75. package/dist/types/components/color-picker/color-picker.style.d.ts +1 -1
  76. package/dist/types/components/color-picker/use-color-picker.d.ts +2 -2
  77. package/dist/types/components/color-selector/color-selector.d.ts +2 -2
  78. package/dist/types/components/color-selector/color-selector.style.d.ts +2 -2
  79. package/dist/types/components/color-selector/use-color-selector.d.ts +3 -3
  80. package/dist/types/components/color-swatch/color-swatch.d.ts +2 -2
  81. package/dist/types/components/container/container.d.ts +2 -2
  82. package/dist/types/components/data-list/data-list.d.ts +2 -2
  83. package/dist/types/components/data-list/data-list.style.d.ts +1 -1
  84. package/dist/types/components/date-picker/date-picker.d.ts +2 -2
  85. package/dist/types/components/date-picker/date-picker.style.d.ts +1 -1
  86. package/dist/types/components/date-picker/use-date-picker.d.ts +4 -4
  87. package/dist/types/components/drawer/drawer.d.ts +2 -2
  88. package/dist/types/components/drawer/drawer.style.d.ts +2 -2
  89. package/dist/types/components/dropzone/dropzone.d.ts +4 -4
  90. package/dist/types/components/editable/editable.d.ts +4 -4
  91. package/dist/types/components/editable/editable.style.d.ts +1 -1
  92. package/dist/types/components/editable/use-editable.d.ts +2 -2
  93. package/dist/types/components/em/em.d.ts +2 -2
  94. package/dist/types/components/empty-state/empty-state.d.ts +2 -2
  95. package/dist/types/components/empty-state/empty-state.style.d.ts +2 -2
  96. package/dist/types/components/fade/fade.d.ts +2 -2
  97. package/dist/types/components/field/field.d.ts +3 -3
  98. package/dist/types/components/field/use-field-props.d.ts +4 -4
  99. package/dist/types/components/fieldset/fieldset.d.ts +3 -3
  100. package/dist/types/components/file-button/file-button.d.ts +2 -2
  101. package/dist/types/components/file-button/use-file-button.d.ts +18 -18
  102. package/dist/types/components/file-input/file-input.d.ts +2 -2
  103. package/dist/types/components/file-input/file-input.style.d.ts +1 -1
  104. package/dist/types/components/file-input/use-file-input.d.ts +15 -15
  105. package/dist/types/components/flex/flex.d.ts +2 -2
  106. package/dist/types/components/flip/flip.d.ts +4 -4
  107. package/dist/types/components/flip/flip.style.d.ts +1 -1
  108. package/dist/types/components/float/float.d.ts +2 -2
  109. package/dist/types/components/form/form.d.ts +3 -3
  110. package/dist/types/components/format/format-byte.d.ts +4 -4
  111. package/dist/types/components/format/format-date-time.d.ts +4 -4
  112. package/dist/types/components/format/format-number.d.ts +2 -2
  113. package/dist/types/components/grid/grid-item.d.ts +2 -2
  114. package/dist/types/components/grid/grid.d.ts +2 -2
  115. package/dist/types/components/group/group.d.ts +2 -2
  116. package/dist/types/components/group/use-group.d.ts +2 -2
  117. package/dist/types/components/heading/heading.d.ts +2 -2
  118. package/dist/types/components/hue-slider/hue-slider.d.ts +3 -3
  119. package/dist/types/components/icon/icon.d.ts +5 -5
  120. package/dist/types/components/image/image.d.ts +2 -2
  121. package/dist/types/components/indicator/indicator.d.ts +4 -4
  122. package/dist/types/components/infinite-scroll-area/infinite-scroll-area.d.ts +2 -2
  123. package/dist/types/components/input/input-addon.d.ts +2 -2
  124. package/dist/types/components/input/input-element.d.ts +2 -2
  125. package/dist/types/components/input/input.d.ts +2 -2
  126. package/dist/types/components/kbd/kbd.d.ts +2 -2
  127. package/dist/types/components/link/link.d.ts +2 -2
  128. package/dist/types/components/link-box/link-box.d.ts +2 -2
  129. package/dist/types/components/list/list.d.ts +2 -2
  130. package/dist/types/components/list/list.style.d.ts +2 -2
  131. package/dist/types/components/loading/loading-provider.d.ts +2 -2
  132. package/dist/types/components/loading/loading.d.ts +3 -3
  133. package/dist/types/components/mark/mark.d.ts +2 -2
  134. package/dist/types/components/menu/menu.d.ts +2 -2
  135. package/dist/types/components/menu/menu.style.d.ts +2 -2
  136. package/dist/types/components/menu/use-menu.d.ts +11 -11
  137. package/dist/types/components/modal/modal.d.ts +2 -2
  138. package/dist/types/components/modal/modal.style.d.ts +2 -2
  139. package/dist/types/components/native-accordion/native-accordion.d.ts +2 -2
  140. package/dist/types/components/native-accordion/native-accordion.style.d.ts +2 -2
  141. package/dist/types/components/native-accordion/use-native-accordion.d.ts +2 -2
  142. package/dist/types/components/native-popover/native-popover.d.ts +2 -2
  143. package/dist/types/components/native-select/native-select.d.ts +2 -2
  144. package/dist/types/components/native-select/native-select.style.d.ts +1 -1
  145. package/dist/types/components/native-table/native-table.d.ts +4 -4
  146. package/dist/types/components/notice/notice.style.d.ts +1 -1
  147. package/dist/types/components/number-input/number-input.d.ts +2 -2
  148. package/dist/types/components/number-input/number-input.style.d.ts +1 -1
  149. package/dist/types/components/pagination/pagination.d.ts +2 -2
  150. package/dist/types/components/pagination/pagination.style.d.ts +1 -1
  151. package/dist/types/components/pagination/use-pagination.d.ts +2 -2
  152. package/dist/types/components/password-input/password-input.d.ts +2 -2
  153. package/dist/types/components/password-input/password-input.style.d.ts +1 -1
  154. package/dist/types/components/password-input/strength-meter.d.ts +2 -2
  155. package/dist/types/components/password-input/strength-meter.style.d.ts +1 -1
  156. package/dist/types/components/password-input/use-password-input.d.ts +2 -2
  157. package/dist/types/components/pin-input/pin-input.d.ts +2 -2
  158. package/dist/types/components/pin-input/pin-input.style.d.ts +1 -1
  159. package/dist/types/components/pin-input/use-pin-input.d.ts +7 -7
  160. package/dist/types/components/popover/popover.d.ts +2 -2
  161. package/dist/types/components/progress/progress.d.ts +4 -4
  162. package/dist/types/components/progress/use-progress.d.ts +706 -706
  163. package/dist/types/components/qr-code/qr-code.d.ts +2 -2
  164. package/dist/types/components/radio/radio.d.ts +5 -5
  165. package/dist/types/components/radio/radio.style.d.ts +1 -1
  166. package/dist/types/components/radio/use-radio-group.d.ts +2 -2
  167. package/dist/types/components/radio-card/radio-card.d.ts +5 -5
  168. package/dist/types/components/radio-card/radio-card.style.d.ts +1 -1
  169. package/dist/types/components/rating/rating.style.d.ts +2 -2
  170. package/dist/types/components/rating/use-rating.d.ts +7 -7
  171. package/dist/types/components/reorder/reorder.d.ts +2 -2
  172. package/dist/types/components/reorder/reorder.style.d.ts +1 -1
  173. package/dist/types/components/reorder/use-reorder.d.ts +3 -3
  174. package/dist/types/components/resizable/resizable.d.ts +2 -2
  175. package/dist/types/components/resizable/resizable.style.d.ts +2 -2
  176. package/dist/types/components/resizable/use-resizable.d.ts +2 -2
  177. package/dist/types/components/ripple/ripple.d.ts +2 -2
  178. package/dist/types/components/ripple/use-ripple.d.ts +2 -2
  179. package/dist/types/components/rotate/rotate.d.ts +2 -2
  180. package/dist/types/components/saturation-slider/saturation-slider.d.ts +2 -2
  181. package/dist/types/components/saturation-slider/use-saturation-slider.d.ts +2 -2
  182. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  183. package/dist/types/components/segmented-control/segmented-control.d.ts +2 -2
  184. package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
  185. package/dist/types/components/segmented-control/use-segmented-control.d.ts +9 -9
  186. package/dist/types/components/select/select.d.ts +2 -2
  187. package/dist/types/components/select/select.style.d.ts +1 -1
  188. package/dist/types/components/select/use-select.d.ts +4 -4
  189. package/dist/types/components/separator/separator.d.ts +2 -2
  190. package/dist/types/components/simple-grid/simple-grid.d.ts +2 -2
  191. package/dist/types/components/skeleton/skeleton.d.ts +2 -2
  192. package/dist/types/components/slide/slide.d.ts +2 -2
  193. package/dist/types/components/slide-fade/slide-fade.d.ts +2 -2
  194. package/dist/types/components/slider/slider.d.ts +2 -2
  195. package/dist/types/components/slider/use-slider.d.ts +2 -2
  196. package/dist/types/components/stack/h-stack.d.ts +2 -2
  197. package/dist/types/components/stack/stack.d.ts +2 -2
  198. package/dist/types/components/stack/v-stack.d.ts +2 -2
  199. package/dist/types/components/stack/z-stack.d.ts +2 -2
  200. package/dist/types/components/stat/stat.d.ts +2 -2
  201. package/dist/types/components/stat/stat.style.d.ts +2 -2
  202. package/dist/types/components/status/status.d.ts +2 -2
  203. package/dist/types/components/status/status.style.d.ts +2 -2
  204. package/dist/types/components/steps/steps.d.ts +2 -2
  205. package/dist/types/components/steps/steps.style.d.ts +1 -1
  206. package/dist/types/components/steps/use-steps.d.ts +10 -10
  207. package/dist/types/components/switch/switch.d.ts +2 -2
  208. package/dist/types/components/table/table.d.ts +2 -2
  209. package/dist/types/components/tabs/tabs.d.ts +2 -2
  210. package/dist/types/components/tabs/use-tabs.d.ts +16 -16
  211. package/dist/types/components/tag/tag.d.ts +2 -2
  212. package/dist/types/components/tag/tag.style.d.ts +1 -1
  213. package/dist/types/components/text/text.d.ts +2 -2
  214. package/dist/types/components/textarea/textarea.d.ts +2 -2
  215. package/dist/types/components/textarea/use-autosize.d.ts +2 -2
  216. package/dist/types/components/timeline/timeline.d.ts +5 -5
  217. package/dist/types/components/timeline/timeline.style.d.ts +2 -2
  218. package/dist/types/components/toggle/toggle.d.ts +5 -5
  219. package/dist/types/components/toggle/use-toggle-group.d.ts +2 -2
  220. package/dist/types/components/toggle/use-toggle.d.ts +2 -2
  221. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  222. package/dist/types/components/tree/index.d.ts +5 -0
  223. package/dist/types/components/tree/tree.d.ts +131 -0
  224. package/dist/types/components/tree/tree.namespace.d.ts +10 -0
  225. package/dist/types/components/tree/tree.style.d.ts +173 -0
  226. package/dist/types/components/tree/use-tree.d.ts +253 -0
  227. package/dist/types/components/visually-hidden/visually-hidden.d.ts +2 -2
  228. package/dist/types/components/wrap/wrap.d.ts +2 -2
  229. package/dist/types/core/components/create-component.d.ts +7 -7
  230. package/dist/types/core/system/color-mode-provider.d.ts +2 -2
  231. package/dist/types/core/system/styled.d.ts +2 -2
  232. package/dist/types/core/system/system-provider.d.ts +2 -2
  233. package/dist/types/hooks/use-breakpoint/use-breakpoint-state.d.ts +2 -2
  234. package/dist/types/hooks/use-clickable/index.d.ts +7 -7
  235. package/dist/types/hooks/use-combobox/index.d.ts +12 -12
  236. package/dist/types/hooks/use-field-sizing/index.d.ts +2 -2
  237. package/dist/types/hooks/use-hover/index.d.ts +2 -2
  238. package/dist/types/index.d.ts +7 -2
  239. package/dist/types/providers/i18n-provider/i18n-provider.d.ts +3 -3
  240. package/dist/types/providers/ui-provider/ui-provider.d.ts +2 -2
  241. package/dist/types/utils/children.d.ts +2 -2
  242. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["enabledValue","createContext","mergeRefs"],"sources":["../../../../src/hooks/use-descendants/index.ts"],"sourcesContent":["\"use client\"\n\nimport type { RefCallback } from \"react\"\nimport { useRef } from \"react\"\nimport {\n createContext,\n isNumber,\n isTruthyDataAttr,\n mergeRefs,\n runIfFn,\n useSafeLayoutEffect,\n} from \"../../utils\"\n\nconst sortNodes = (nodes: Node[]) =>\n nodes.sort((a, b) => {\n const compare = a.compareDocumentPosition(b)\n\n if (\n compare & Node.DOCUMENT_POSITION_FOLLOWING ||\n compare & Node.DOCUMENT_POSITION_CONTAINED_BY\n )\n return -1\n\n if (\n compare & Node.DOCUMENT_POSITION_PRECEDING ||\n compare & Node.DOCUMENT_POSITION_CONTAINS\n )\n return 1\n\n if (\n compare & Node.DOCUMENT_POSITION_DISCONNECTED ||\n compare & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n ) {\n console.warn(\"Cannot sort the given nodes.\")\n return 0\n } else {\n return 0\n }\n })\n\nconst getNextIndex = (current: number, max: number, loop: boolean) => {\n let next = current + 1\n\n if (loop && next >= max) next = 0\n\n return next\n}\n\nconst getPrevIndex = (current: number, max: number, loop: boolean) => {\n let next = current - 1\n\n if (loop && next < 0) next = max\n\n return next\n}\n\nconst isMatch =\n <Y extends HTMLElement = HTMLElement, M = {}>(props?: Partial<M>) =>\n (descendant: Descendant<Y, M>) =>\n Object.entries(props ?? {}).every(\n ([key, value]) => descendant[key as keyof Descendant<Y, M>] === value,\n )\n\nexport type DescendantProps<Y extends HTMLElement = HTMLElement, M = {}> = M & {\n disabled?: ((node: Y) => boolean) | boolean\n}\n\nexport type Descendant<\n Y extends HTMLElement = HTMLElement,\n M = {},\n> = DescendantProps<Y, M> & {\n index: number\n node: Y\n recurred?: boolean\n}\n\nconst descendantManager = <Y extends HTMLElement = HTMLElement, M = {}>() => {\n const descendants = new Map<Y, Descendant<Y, M>>()\n\n const setIndexes = (next: Node[]) => {\n descendants.forEach((descendant) => {\n const index = next.indexOf(descendant.node)\n\n descendant.index = index\n descendant.node.dataset.index = descendant.index.toString()\n })\n }\n\n const set = (node: null | Y, props?: DescendantProps<Y, M>) => {\n if (!node || descendants.has(node)) return\n\n const keys = Array.from(descendants.keys()).concat(node)\n const sorted = sortNodes(keys)\n\n const descendant = { ...props, index: -1, node } as Descendant<Y, M>\n\n descendants.set(node, descendant)\n\n setIndexes(sorted)\n }\n\n const destroy = () => descendants.clear()\n\n const register = (props?: DescendantProps<Y, M>): RefCallback<Y> => {\n return (node: null | Y) => set(node, props)\n }\n\n const unregister = (node?: null | Y) => {\n if (node == null) return\n\n descendants.delete(node)\n\n const sorted = sortNodes(Array.from(descendants.keys()))\n\n setIndexes(sorted)\n }\n\n const count = (props?: Partial<M>) => values(props).length\n\n const enabledCount = (props?: Partial<M>) => enabledValues(props).length\n\n const active = (\n target?: Descendant<Y, M> | null | Y,\n options?: FocusOptions,\n ) => {\n if (!target) return\n\n if (!(target instanceof Node)) target = target.node\n\n if (isTruthyDataAttr(target.dataset.activedescendant)) return\n\n const descendants = values()\n\n descendants.forEach(({ node }) => {\n delete node.dataset.activedescendant\n })\n\n target.dataset.activedescendant = \"\"\n\n if (options) target.focus(options)\n }\n\n const indexOf = (target?: Descendant<Y, M> | null | Y) => {\n if (!target) return -1\n\n if (target instanceof Node) {\n return descendants.get(target)?.index ?? -1\n } else {\n return descendants.get(target.node)?.index ?? -1\n }\n }\n\n const enabledIndexOf = (target?: Descendant<Y, M> | null | Y) => {\n if (!target) return -1\n\n if (target instanceof Node) {\n return enabledValues().findIndex(({ node }) => node.isSameNode(target))\n } else {\n return enabledValues().findIndex(({ node }) =>\n node.isSameNode(target.node),\n )\n }\n }\n\n const values = (props?: Partial<M>) =>\n Array.from(descendants.values())\n .filter(isMatch(props))\n .sort((a, b) => a.index - b.index)\n\n const enabledValues = (props?: Partial<M>) =>\n values(props).filter(({ disabled, node }) => !runIfFn(disabled, node))\n\n const value = (indexOrNode: null | number | Y) => {\n if (!count() || indexOrNode == null) return undefined\n\n return isNumber(indexOrNode)\n ? values()[indexOrNode]\n : descendants.get(indexOrNode)\n }\n\n const enabledValue = (indexOrNode: null | number | Y) => {\n if (!enabledCount() || indexOrNode == null) return undefined\n\n return enabledValues()[\n isNumber(indexOrNode) ? indexOrNode : enabledIndexOf(indexOrNode)\n ]\n }\n\n const firstValue = (props?: Partial<M>) => values(props).at(0)\n\n const enabledFirstValue = (props?: Partial<M>) => enabledValues(props).at(0)\n\n const lastValue = (props?: Partial<M>) => values(props).at(-1)\n\n const enabledLastValue = (props?: Partial<M>) => enabledValues(props).at(-1)\n\n const prevValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n const filtered = values(props)\n\n if (!filtered.length || indexOrNode == null) return undefined\n\n const currentIndex = isNumber(indexOrNode)\n ? filtered.findIndex((d) => d.index === indexOrNode)\n : filtered.findIndex((d) =>\n d.node.isSameNode(\n indexOrNode instanceof Node ? indexOrNode : indexOrNode.node,\n ),\n )\n\n if (currentIndex === -1) return undefined\n\n const prevIndex = getPrevIndex(currentIndex, filtered.length - 1, loop)\n\n return filtered[prevIndex]\n }\n\n const enabledPrevValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n if (!enabledCount(props)) return undefined\n\n let index = isNumber(indexOrNode) ? indexOrNode : indexOf(indexOrNode)\n let enabledValue = null\n let recurred = false\n\n while (enabledValue == null) {\n index--\n\n if (index < 0) {\n if (!loop) return\n\n index = count() - 1\n recurred = true\n }\n\n const descendant = value(index)\n\n enabledValue =\n descendant &&\n !runIfFn(descendant.disabled, descendant.node) &&\n isMatch<Y, M>(props)(descendant)\n ? descendant\n : null\n }\n\n if (recurred) enabledValue.recurred = recurred\n\n return enabledValue\n }\n\n const nextValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n const filtered = values(props)\n\n if (!filtered.length || indexOrNode == null) return undefined\n\n const currentIndex = isNumber(indexOrNode)\n ? filtered.findIndex((d) => d.index === indexOrNode)\n : filtered.findIndex((d) =>\n d.node.isSameNode(\n indexOrNode instanceof Node ? indexOrNode : indexOrNode.node,\n ),\n )\n\n if (currentIndex === -1) return undefined\n\n const nextIndex = getNextIndex(currentIndex, filtered.length, loop)\n\n return filtered[nextIndex]\n }\n\n const enabledNextValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n if (!enabledCount(props)) return undefined\n\n let index = isNumber(indexOrNode) ? indexOrNode : indexOf(indexOrNode)\n let enabledValue = null\n let recurred = false\n\n while (enabledValue == null) {\n index++\n\n if (index >= count()) {\n if (!loop) return\n\n index = 0\n recurred = true\n }\n\n const descendant = value(index)\n\n enabledValue =\n descendant &&\n !runIfFn(descendant.disabled, descendant.node) &&\n isMatch<Y, M>(props)(descendant)\n ? descendant\n : null\n }\n\n if (recurred) enabledValue.recurred = recurred\n\n return enabledValue\n }\n\n return {\n active,\n count,\n destroy,\n enabledCount,\n enabledFirstValue,\n enabledIndexOf,\n enabledLastValue,\n enabledNextValue,\n enabledPrevValue,\n enabledValue,\n enabledValues,\n firstValue,\n indexOf,\n lastValue,\n nextValue,\n prevValue,\n register,\n unregister,\n value,\n values,\n }\n}\n\nexport type Descendants<Y extends HTMLElement, M = {}> = ReturnType<\n typeof descendantManager<Y, M>\n>\n\nexport type CreateDescendantRegister<Y extends HTMLElement, M = {}> = (\n props?: DescendantProps<Y, M>,\n) => RefCallback<Y>\n\n/**\n * `useDescendants` is a custom hook that manages descendants.\n *\n * @see https://yamada-ui.com/docs/hooks/use-descendants\n */\nexport const createDescendants = <\n Y extends HTMLElement = HTMLElement,\n M = {},\n>() => {\n const [DescendantsContext, useDescendantsContext] = createContext<\n Descendants<Y, M>\n >({\n name: \"DescendantsContext\",\n })\n\n const useDescendantRegister = (descendants?: Descendants<Y, M>) => {\n const ref = useRef<Y>(null)\n\n useSafeLayoutEffect(() => {\n return () => {\n if (ref.current) descendants?.unregister(ref.current)\n }\n }, [])\n\n return (props?: DescendantProps<Y, M>): RefCallback<Y> =>\n mergeRefs(ref, descendants?.register(props))\n }\n\n const useDescendants = () => {\n const descendants = useRef(descendantManager<Y, M>())\n\n useSafeLayoutEffect(() => {\n return () => descendants.current.destroy()\n })\n\n return descendants.current\n }\n\n const useDescendant = (props?: DescendantProps<Y, M>) => {\n const descendants = useDescendantsContext()\n const createRegister = useDescendantRegister(descendants)\n\n return {\n descendants,\n register: createRegister(props),\n }\n }\n\n return {\n DescendantsContext,\n useDescendant,\n useDescendantRegister,\n useDescendants,\n useDescendantsContext,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["enabledValue","createContext","mergeRefs"],"sources":["../../../../src/hooks/use-descendants/index.ts"],"sourcesContent":["\"use client\"\n\nimport type { RefCallback } from \"react\"\nimport { useRef } from \"react\"\nimport {\n createContext,\n isNumber,\n isTruthyDataAttr,\n mergeRefs,\n runIfFn,\n useSafeLayoutEffect,\n} from \"../../utils\"\n\nconst sortNodes = (nodes: Node[]) =>\n nodes.sort((a, b) => {\n const compare = a.compareDocumentPosition(b)\n\n if (\n compare & Node.DOCUMENT_POSITION_FOLLOWING ||\n compare & Node.DOCUMENT_POSITION_CONTAINED_BY\n )\n return -1\n\n if (\n compare & Node.DOCUMENT_POSITION_PRECEDING ||\n compare & Node.DOCUMENT_POSITION_CONTAINS\n )\n return 1\n\n if (\n compare & Node.DOCUMENT_POSITION_DISCONNECTED ||\n compare & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n ) {\n console.warn(\"Cannot sort the given nodes.\")\n return 0\n } else {\n return 0\n }\n })\n\nconst getNextIndex = (current: number, max: number, loop: boolean) => {\n let next = current + 1\n\n if (loop && next >= max) next = 0\n\n return next\n}\n\nconst getPrevIndex = (current: number, max: number, loop: boolean) => {\n let next = current - 1\n\n if (loop && next < 0) next = max\n\n return next\n}\n\nconst isMatch =\n <Y extends HTMLElement = HTMLElement, M = {}>(props?: Partial<M>) =>\n (descendant: Descendant<Y, M>) =>\n Object.entries(props ?? {}).every(\n ([key, value]) => descendant[key as keyof Descendant<Y, M>] === value,\n )\n\nexport type DescendantProps<Y extends HTMLElement = HTMLElement, M = {}> = M & {\n disabled?: ((node: Y) => boolean) | boolean\n}\n\nexport type Descendant<\n Y extends HTMLElement = HTMLElement,\n M = {},\n> = DescendantProps<Y, M> & {\n index: number\n node: Y\n recurred?: boolean\n}\n\nconst descendantManager = <Y extends HTMLElement = HTMLElement, M = {}>() => {\n const descendants = new Map<Y, Descendant<Y, M>>()\n\n const setIndexes = (next: Node[]) => {\n descendants.forEach((descendant) => {\n const index = next.indexOf(descendant.node)\n\n descendant.index = index\n descendant.node.dataset.index = descendant.index.toString()\n })\n }\n\n const set = (node: null | Y, props?: DescendantProps<Y, M>) => {\n if (!node) return\n\n if (descendants.has(node)) {\n const descendant = descendants.get(node)!\n\n descendants.set(node, {\n ...descendant,\n ...props,\n index: descendant.index,\n node: descendant.node,\n })\n } else {\n const keys = Array.from(descendants.keys()).concat(node)\n const sorted = sortNodes(keys)\n\n const descendant = { ...props, index: -1, node } as Descendant<Y, M>\n\n descendants.set(node, descendant)\n\n setIndexes(sorted)\n }\n }\n\n const destroy = () => descendants.clear()\n\n const register = (props?: DescendantProps<Y, M>): RefCallback<Y> => {\n return (node: null | Y) => set(node, props)\n }\n\n const unregister = (node?: null | Y) => {\n if (node == null) return\n\n descendants.delete(node)\n\n const sorted = sortNodes(Array.from(descendants.keys()))\n\n setIndexes(sorted)\n }\n\n const count = (props?: Partial<M>) => values(props).length\n\n const enabledCount = (props?: Partial<M>) => enabledValues(props).length\n\n const active = (\n target?: Descendant<Y, M> | null | Y,\n options?: FocusOptions,\n ) => {\n if (!target) return\n\n if (!(target instanceof Node)) target = target.node\n\n if (isTruthyDataAttr(target.dataset.activedescendant)) return\n\n const descendants = values()\n\n descendants.forEach(({ node }) => {\n delete node.dataset.activedescendant\n })\n\n target.dataset.activedescendant = \"\"\n\n if (options) target.focus(options)\n }\n\n const indexOf = (target?: Descendant<Y, M> | null | Y) => {\n if (!target) return -1\n\n if (target instanceof Node) {\n return descendants.get(target)?.index ?? -1\n } else {\n return descendants.get(target.node)?.index ?? -1\n }\n }\n\n const enabledIndexOf = (target?: Descendant<Y, M> | null | Y) => {\n if (!target) return -1\n\n if (target instanceof Node) {\n return enabledValues().findIndex(({ node }) => node.isSameNode(target))\n } else {\n return enabledValues().findIndex(({ node }) =>\n node.isSameNode(target.node),\n )\n }\n }\n\n const values = (props?: Partial<M>) =>\n Array.from(descendants.values())\n .filter(isMatch(props))\n .sort((a, b) => a.index - b.index)\n\n const enabledValues = (props?: Partial<M>) =>\n values(props).filter(({ disabled, node }) => !runIfFn(disabled, node))\n\n const value = (indexOrNode: null | number | Y) => {\n if (!count() || indexOrNode == null) return undefined\n\n return isNumber(indexOrNode)\n ? values()[indexOrNode]\n : descendants.get(indexOrNode)\n }\n\n const enabledValue = (indexOrNode: null | number | Y) => {\n if (!enabledCount() || indexOrNode == null) return undefined\n\n return enabledValues()[\n isNumber(indexOrNode) ? indexOrNode : enabledIndexOf(indexOrNode)\n ]\n }\n\n const firstValue = (props?: Partial<M>) => values(props).at(0)\n\n const enabledFirstValue = (props?: Partial<M>) => enabledValues(props).at(0)\n\n const lastValue = (props?: Partial<M>) => values(props).at(-1)\n\n const enabledLastValue = (props?: Partial<M>) => enabledValues(props).at(-1)\n\n const prevValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n const filtered = values(props)\n\n if (!filtered.length || indexOrNode == null) return undefined\n\n const currentIndex = isNumber(indexOrNode)\n ? filtered.findIndex((d) => d.index === indexOrNode)\n : filtered.findIndex((d) =>\n d.node.isSameNode(\n indexOrNode instanceof Node ? indexOrNode : indexOrNode.node,\n ),\n )\n\n if (currentIndex === -1) return undefined\n\n const prevIndex = getPrevIndex(currentIndex, filtered.length - 1, loop)\n\n return filtered[prevIndex]\n }\n\n const enabledPrevValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n if (!enabledCount(props)) return undefined\n\n let index = isNumber(indexOrNode) ? indexOrNode : indexOf(indexOrNode)\n let enabledValue = null\n let recurred = false\n\n while (enabledValue == null) {\n index--\n\n if (index < 0) {\n if (!loop) return\n\n index = count() - 1\n recurred = true\n }\n\n const descendant = value(index)\n\n enabledValue =\n descendant &&\n !runIfFn(descendant.disabled, descendant.node) &&\n isMatch<Y, M>(props)(descendant)\n ? descendant\n : null\n }\n\n if (recurred) enabledValue.recurred = recurred\n\n return enabledValue\n }\n\n const nextValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n const filtered = values(props)\n\n if (!filtered.length || indexOrNode == null) return undefined\n\n const currentIndex = isNumber(indexOrNode)\n ? filtered.findIndex((d) => d.index === indexOrNode)\n : filtered.findIndex((d) =>\n d.node.isSameNode(\n indexOrNode instanceof Node ? indexOrNode : indexOrNode.node,\n ),\n )\n\n if (currentIndex === -1) return undefined\n\n const nextIndex = getNextIndex(currentIndex, filtered.length, loop)\n\n return filtered[nextIndex]\n }\n\n const enabledNextValue = (\n indexOrNode: Descendant<Y, M> | null | number | Y,\n loop = true,\n props?: Partial<M>,\n ) => {\n if (!enabledCount(props)) return undefined\n\n let index = isNumber(indexOrNode) ? indexOrNode : indexOf(indexOrNode)\n let enabledValue = null\n let recurred = false\n\n while (enabledValue == null) {\n index++\n\n if (index >= count()) {\n if (!loop) return\n\n index = 0\n recurred = true\n }\n\n const descendant = value(index)\n\n enabledValue =\n descendant &&\n !runIfFn(descendant.disabled, descendant.node) &&\n isMatch<Y, M>(props)(descendant)\n ? descendant\n : null\n }\n\n if (recurred) enabledValue.recurred = recurred\n\n return enabledValue\n }\n\n return {\n active,\n count,\n destroy,\n enabledCount,\n enabledFirstValue,\n enabledIndexOf,\n enabledLastValue,\n enabledNextValue,\n enabledPrevValue,\n enabledValue,\n enabledValues,\n firstValue,\n indexOf,\n lastValue,\n nextValue,\n prevValue,\n register,\n unregister,\n value,\n values,\n }\n}\n\nexport type Descendants<Y extends HTMLElement, M = {}> = ReturnType<\n typeof descendantManager<Y, M>\n>\n\nexport type CreateDescendantRegister<Y extends HTMLElement, M = {}> = (\n props?: DescendantProps<Y, M>,\n) => RefCallback<Y>\n\n/**\n * `useDescendants` is a custom hook that manages descendants.\n *\n * @see https://yamada-ui.com/docs/hooks/use-descendants\n */\nexport const createDescendants = <\n Y extends HTMLElement = HTMLElement,\n M = {},\n>() => {\n const [DescendantsContext, useDescendantsContext] = createContext<\n Descendants<Y, M>\n >({\n name: \"DescendantsContext\",\n })\n\n const useDescendantRegister = (descendants?: Descendants<Y, M>) => {\n const ref = useRef<Y>(null)\n\n useSafeLayoutEffect(() => {\n return () => {\n if (ref.current) descendants?.unregister(ref.current)\n }\n }, [])\n\n return (props?: DescendantProps<Y, M>): RefCallback<Y> =>\n mergeRefs(ref, descendants?.register(props))\n }\n\n const useDescendants = () => {\n const descendants = useRef(descendantManager<Y, M>())\n\n useSafeLayoutEffect(() => {\n return () => descendants.current.destroy()\n })\n\n return descendants.current\n }\n\n const useDescendant = (props?: DescendantProps<Y, M>) => {\n const descendants = useDescendantsContext()\n const createRegister = useDescendantRegister(descendants)\n\n return {\n descendants,\n register: createRegister(props),\n }\n }\n\n return {\n DescendantsContext,\n useDescendant,\n useDescendantRegister,\n useDescendants,\n useDescendantsContext,\n }\n}\n"],"mappings":"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"}
@@ -2283,6 +2283,13 @@ const require_toggle = require('./components/toggle/toggle.cjs');
2283
2283
  const require_toggle_group = require('./components/toggle/toggle-group.cjs');
2284
2284
  const require_namespace$50 = require('./components/toggle/namespace.cjs');
2285
2285
  require('./components/toggle/index.cjs');
2286
+ const require_tree_style = require('./components/tree/tree.style.cjs');
2287
+ const require_hooks_use_processing_index = require('./hooks/use-processing/index.cjs');
2288
+ const require_hooks_use_async_callback_index = require('./hooks/use-async-callback/index.cjs');
2289
+ const require_use_tree = require('./components/tree/use-tree.cjs');
2290
+ const require_tree = require('./components/tree/tree.cjs');
2291
+ const require_tree_namespace = require('./components/tree/tree.namespace.cjs');
2292
+ require('./components/tree/index.cjs');
2286
2293
  const require_visually_hidden_style = require('./components/visually-hidden/visually-hidden.style.cjs');
2287
2294
  const require_visually_hidden = require('./components/visually-hidden/visually-hidden.cjs');
2288
2295
  require('./components/visually-hidden/index.cjs');
@@ -2291,8 +2298,6 @@ const require_wrap = require('./components/wrap/wrap.cjs');
2291
2298
  require('./components/wrap/index.cjs');
2292
2299
  const require_hooks_use_animation_index = require('./hooks/use-animation/index.cjs');
2293
2300
  const require_hooks_use_async_index = require('./hooks/use-async/index.cjs');
2294
- const require_hooks_use_processing_index = require('./hooks/use-processing/index.cjs');
2295
- const require_hooks_use_async_callback_index = require('./hooks/use-async-callback/index.cjs');
2296
2301
  const require_hooks_use_clipboard_index = require('./hooks/use-clipboard/index.cjs');
2297
2302
  const require_hooks_use_hover_index = require('./hooks/use-hover/index.cjs');
2298
2303
  const require_hooks_use_idle_index = require('./hooks/use-idle/index.cjs');
@@ -4476,9 +4481,16 @@ var src_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
4476
4481
  TransgenderIcon: () => require_transgender_icon.TransgenderIcon,
4477
4482
  Trash2Icon: () => require_trash2_icon.Trash2Icon,
4478
4483
  TrashIcon: () => require_trash_icon.TrashIcon,
4484
+ Tree: () => require_tree_namespace.tree_namespace_exports,
4485
+ TreeContext: () => require_use_tree.TreeContext,
4479
4486
  TreeDeciduousIcon: () => require_tree_deciduous_icon.TreeDeciduousIcon,
4487
+ TreeDescendantsContext: () => require_use_tree.TreeDescendantsContext,
4488
+ TreeItem: () => require_tree.TreeItem,
4489
+ TreeItemContext: () => require_use_tree.TreeItemContext,
4480
4490
  TreePalmIcon: () => require_tree_palm_icon.TreePalmIcon,
4481
4491
  TreePineIcon: () => require_tree_pine_icon.TreePineIcon,
4492
+ TreePropsContext: () => require_tree.TreePropsContext,
4493
+ TreeRoot: () => require_tree.TreeRoot,
4482
4494
  TreesIcon: () => require_trees_icon.TreesIcon,
4483
4495
  TrelloIcon: () => require_trello_icon.TrelloIcon,
4484
4496
  TrendingDownIcon: () => require_trending_down_icon.TrendingDownIcon,
@@ -4920,6 +4932,7 @@ var src_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
4920
4932
  transformConditionalValue: () => require_css.transformConditionalValue,
4921
4933
  transformInterpolation: () => require_var.transformInterpolation,
4922
4934
  transforms: () => require_config$1.transforms,
4935
+ treeStyle: () => require_tree_style.treeStyle,
4923
4936
  updateMaybeDateValue: () => require_use_calendar.updateMaybeDateValue,
4924
4937
  useAccordion: () => require_use_accordion.useAccordion,
4925
4938
  useAccordionContext: () => require_use_accordion.useAccordionContext,
@@ -5261,6 +5274,13 @@ var src_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
5261
5274
  useTooltip: () => require_use_tooltip.useTooltip,
5262
5275
  useTooltipProps: () => require_use_tooltip.useTooltipProps,
5263
5276
  useTooltipPropsContext: () => require_tooltip.useTooltipPropsContext,
5277
+ useTree: () => require_use_tree.useTree,
5278
+ useTreeContext: () => require_use_tree.useTreeContext,
5279
+ useTreeDescendant: () => require_use_tree.useTreeDescendant,
5280
+ useTreeDescendants: () => require_use_tree.useTreeDescendants,
5281
+ useTreeItem: () => require_use_tree.useTreeItem,
5282
+ useTreeItemContext: () => require_use_tree.useTreeItemContext,
5283
+ useTreePropsContext: () => require_tree.useTreePropsContext,
5264
5284
  useUnmountEffect: () => require_effect.useUnmountEffect,
5265
5285
  useUpdateBreakpointEffect: () => require_use_update_breakpoint_effect.useUpdateBreakpointEffect,
5266
5286
  useUpdateEffect: () => require_effect.useUpdateEffect,
@@ -7766,9 +7786,21 @@ exports.TramFrontIcon = require_tram_front_icon.TramFrontIcon;
7766
7786
  exports.TransgenderIcon = require_transgender_icon.TransgenderIcon;
7767
7787
  exports.Trash2Icon = require_trash2_icon.Trash2Icon;
7768
7788
  exports.TrashIcon = require_trash_icon.TrashIcon;
7789
+ Object.defineProperty(exports, 'Tree', {
7790
+ enumerable: true,
7791
+ get: function () {
7792
+ return require_tree_namespace.tree_namespace_exports;
7793
+ }
7794
+ });
7795
+ exports.TreeContext = require_use_tree.TreeContext;
7769
7796
  exports.TreeDeciduousIcon = require_tree_deciduous_icon.TreeDeciduousIcon;
7797
+ exports.TreeDescendantsContext = require_use_tree.TreeDescendantsContext;
7798
+ exports.TreeItem = require_tree.TreeItem;
7799
+ exports.TreeItemContext = require_use_tree.TreeItemContext;
7770
7800
  exports.TreePalmIcon = require_tree_palm_icon.TreePalmIcon;
7771
7801
  exports.TreePineIcon = require_tree_pine_icon.TreePineIcon;
7802
+ exports.TreePropsContext = require_tree.TreePropsContext;
7803
+ exports.TreeRoot = require_tree.TreeRoot;
7772
7804
  exports.TreesIcon = require_trees_icon.TreesIcon;
7773
7805
  exports.TrelloIcon = require_trello_icon.TrelloIcon;
7774
7806
  exports.TrendingDownIcon = require_trending_down_icon.TrendingDownIcon;
@@ -8215,6 +8247,7 @@ exports.tooltipStyle = require_tooltip_style.tooltipStyle;
8215
8247
  exports.transformConditionalValue = require_css.transformConditionalValue;
8216
8248
  exports.transformInterpolation = require_var.transformInterpolation;
8217
8249
  exports.transforms = require_config$1.transforms;
8250
+ exports.treeStyle = require_tree_style.treeStyle;
8218
8251
  exports.updateMaybeDateValue = require_use_calendar.updateMaybeDateValue;
8219
8252
  exports.useAccordion = require_use_accordion.useAccordion;
8220
8253
  exports.useAccordionContext = require_use_accordion.useAccordionContext;
@@ -8556,6 +8589,13 @@ exports.useTogglePropsContext = require_toggle.useTogglePropsContext;
8556
8589
  exports.useTooltip = require_use_tooltip.useTooltip;
8557
8590
  exports.useTooltipProps = require_use_tooltip.useTooltipProps;
8558
8591
  exports.useTooltipPropsContext = require_tooltip.useTooltipPropsContext;
8592
+ exports.useTree = require_use_tree.useTree;
8593
+ exports.useTreeContext = require_use_tree.useTreeContext;
8594
+ exports.useTreeDescendant = require_use_tree.useTreeDescendant;
8595
+ exports.useTreeDescendants = require_use_tree.useTreeDescendants;
8596
+ exports.useTreeItem = require_use_tree.useTreeItem;
8597
+ exports.useTreeItemContext = require_use_tree.useTreeItemContext;
8598
+ exports.useTreePropsContext = require_tree.useTreePropsContext;
8559
8599
  exports.useUnmountEffect = require_effect.useUnmountEffect;
8560
8600
  exports.useUpdateBreakpointEffect = require_use_update_breakpoint_effect.useUpdateBreakpointEffect;
8561
8601
  exports.useUpdateEffect = require_effect.useUpdateEffect;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./core\"\nexport * from \"./theme\"\nexport * from \"./utils\"\n\nexport * from \"./components/accordion\"\nexport * from \"./components/airy\"\nexport * from \"./components/alert\"\nexport * from \"./components/alpha-slider\"\nexport * from \"./components/aspect-ratio\"\nexport * from \"./components/autocomplete\"\nexport * from \"./components/avatar\"\nexport * from \"./components/badge\"\nexport * from \"./components/bleed\"\nexport * from \"./components/blockquote\"\nexport * from \"./components/box\"\nexport * from \"./components/breadcrumb\"\nexport * from \"./components/button\"\nexport * from \"./components/calendar\"\nexport * from \"./components/card\"\nexport * from \"./components/carousel\"\nexport * from \"./components/center\"\nexport * from \"./components/chart\"\nexport * from \"./components/checkbox\"\nexport * from \"./components/checkbox-card\"\nexport * from \"./components/circle-progress\"\nexport * from \"./components/client-only\"\nexport * from \"./components/close-button\"\nexport * from \"./components/code\"\nexport * from \"./components/collapse\"\nexport * from \"./components/color-picker\"\nexport * from \"./components/color-selector\"\nexport * from \"./components/color-swatch\"\nexport * from \"./components/container\"\nexport * from \"./components/data-list\"\nexport * from \"./components/date-picker\"\nexport * from \"./components/drawer\"\nexport * from \"./components/dropzone\"\nexport * from \"./components/editable\"\nexport * from \"./components/em\"\nexport * from \"./components/empty-state\"\nexport * from \"./components/fade\"\nexport * from \"./components/fade-scale\"\nexport * from \"./components/field\"\nexport * from \"./components/fieldset\"\nexport * from \"./components/file-button\"\nexport * from \"./components/file-input\"\nexport * from \"./components/flex\"\nexport * from \"./components/flip\"\nexport * from \"./components/float\"\nexport * from \"./components/focus-lock\"\nexport * from \"./components/for\"\nexport * from \"./components/form\"\nexport * from \"./components/format\"\nexport * from \"./components/grid\"\nexport * from \"./components/group\"\nexport * from \"./components/heading\"\nexport * from \"./components/highlight\"\nexport * from \"./components/hue-slider\"\nexport * from \"./components/icon\"\nexport * from \"./components/image\"\nexport * from \"./components/indicator\"\nexport * from \"./components/infinite-scroll-area\"\nexport * from \"./components/input\"\nexport * from \"./components/kbd\"\nexport * from \"./components/link\"\nexport * from \"./components/link-box\"\nexport * from \"./components/list\"\nexport * from \"./components/loading\"\nexport * from \"./components/mark\"\nexport * from \"./components/menu\"\nexport * from \"./components/modal\"\nexport * from \"./components/motion\"\nexport * from \"./components/native-accordion\"\nexport * from \"./components/native-popover\"\nexport * from \"./components/native-select\"\nexport * from \"./components/native-table\"\nexport * from \"./components/notice\"\nexport * from \"./components/number-input\"\nexport * from \"./components/pagination\"\nexport * from \"./components/password-input\"\nexport * from \"./components/picture\"\nexport * from \"./components/pin-input\"\nexport * from \"./components/popover\"\nexport * from \"./components/portal\"\nexport * from \"./components/progress\"\nexport * from \"./components/qr-code\"\nexport * from \"./components/radio\"\nexport * from \"./components/radio-card\"\nexport * from \"./components/rating\"\nexport * from \"./components/reorder\"\nexport * from \"./components/resizable\"\nexport * from \"./components/ripple\"\nexport * from \"./components/rotate\"\nexport * from \"./components/saturation-slider\"\nexport * from \"./components/scroll-area\"\nexport * from \"./components/segmented-control\"\nexport * from \"./components/select\"\nexport * from \"./components/separator\"\nexport * from \"./components/show\"\nexport * from \"./components/simple-grid\"\nexport * from \"./components/skeleton\"\nexport * from \"./components/slide\"\nexport * from \"./components/slide-fade\"\nexport * from \"./components/slider\"\nexport * from \"./components/slot\"\nexport * from \"./components/snacks\"\nexport * from \"./components/stack\"\nexport * from \"./components/stat\"\nexport * from \"./components/status\"\nexport * from \"./components/steps\"\nexport * from \"./components/switch\"\nexport * from \"./components/table\"\nexport * from \"./components/tabs\"\nexport * from \"./components/tag\"\nexport * from \"./components/text\"\nexport * from \"./components/textarea\"\nexport * from \"./components/timeline\"\nexport * from \"./components/tip\"\nexport * from \"./components/toggle\"\nexport * from \"./components/tooltip\"\nexport * from \"./components/visually-hidden\"\nexport * from \"./components/wrap\"\n\nexport * from \"./hooks/use-animation\"\nexport * from \"./hooks/use-async\"\nexport * from \"./hooks/use-async-callback\"\nexport * from \"./hooks/use-boolean\"\nexport * from \"./hooks/use-breakpoint\"\nexport * from \"./hooks/use-clickable\"\nexport * from \"./hooks/use-clipboard\"\nexport * from \"./hooks/use-combobox\"\nexport * from \"./hooks/use-controllable-state\"\nexport * from \"./hooks/use-counter\"\nexport * from \"./hooks/use-descendants\"\nexport * from \"./hooks/use-disclosure\"\nexport * from \"./hooks/use-event-listener\"\nexport * from \"./hooks/use-eye-dropper\"\nexport * from \"./hooks/use-field-sizing\"\nexport * from \"./hooks/use-focus\"\nexport * from \"./hooks/use-hover\"\nexport * from \"./hooks/use-idle\"\nexport * from \"./hooks/use-interval\"\nexport * from \"./hooks/use-lazy-mount\"\nexport * from \"./hooks/use-local-storage\"\nexport * from \"./hooks/use-media-query\"\nexport * from \"./hooks/use-mounted\"\nexport * from \"./hooks/use-online\"\nexport * from \"./hooks/use-os\"\nexport * from \"./hooks/use-outside-click\"\nexport * from \"./hooks/use-pan-event\"\nexport * from \"./hooks/use-popper\"\nexport * from \"./hooks/use-previous\"\nexport * from \"./hooks/use-processing\"\nexport * from \"./hooks/use-resize-observer\"\nexport * from \"./hooks/use-timeout\"\nexport * from \"./hooks/use-value\"\nexport * from \"./hooks/use-window-event\"\n\nexport * from \"./providers/i18n-provider\"\nexport * from \"./providers/ui-provider\"\n"],"mappings":""}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./core\"\nexport * from \"./theme\"\nexport * from \"./utils\"\n\nexport * from \"./components/accordion\"\nexport * from \"./components/airy\"\nexport * from \"./components/alert\"\nexport * from \"./components/alpha-slider\"\nexport * from \"./components/aspect-ratio\"\nexport * from \"./components/autocomplete\"\nexport * from \"./components/avatar\"\nexport * from \"./components/badge\"\nexport * from \"./components/bleed\"\nexport * from \"./components/blockquote\"\nexport * from \"./components/box\"\nexport * from \"./components/breadcrumb\"\nexport * from \"./components/button\"\nexport * from \"./components/calendar\"\nexport * from \"./components/card\"\nexport * from \"./components/carousel\"\nexport * from \"./components/center\"\nexport * from \"./components/chart\"\nexport * from \"./components/checkbox\"\nexport * from \"./components/checkbox-card\"\nexport * from \"./components/circle-progress\"\nexport * from \"./components/client-only\"\nexport * from \"./components/close-button\"\nexport * from \"./components/code\"\nexport * from \"./components/collapse\"\nexport * from \"./components/color-picker\"\nexport * from \"./components/color-selector\"\nexport * from \"./components/color-swatch\"\nexport * from \"./components/container\"\nexport * from \"./components/data-list\"\nexport * from \"./components/date-picker\"\nexport * from \"./components/drawer\"\nexport * from \"./components/dropzone\"\nexport * from \"./components/editable\"\nexport * from \"./components/em\"\nexport * from \"./components/empty-state\"\nexport * from \"./components/fade\"\nexport * from \"./components/fade-scale\"\nexport * from \"./components/field\"\nexport * from \"./components/fieldset\"\nexport * from \"./components/file-button\"\nexport * from \"./components/file-input\"\nexport * from \"./components/flex\"\nexport * from \"./components/flip\"\nexport * from \"./components/float\"\nexport * from \"./components/focus-lock\"\nexport * from \"./components/for\"\nexport * from \"./components/form\"\nexport * from \"./components/format\"\nexport * from \"./components/grid\"\nexport * from \"./components/group\"\nexport * from \"./components/heading\"\nexport * from \"./components/highlight\"\nexport * from \"./components/hue-slider\"\nexport * from \"./components/icon\"\nexport * from \"./components/image\"\nexport * from \"./components/indicator\"\nexport * from \"./components/infinite-scroll-area\"\nexport * from \"./components/input\"\nexport * from \"./components/kbd\"\nexport * from \"./components/link\"\nexport * from \"./components/link-box\"\nexport * from \"./components/list\"\nexport * from \"./components/loading\"\nexport * from \"./components/mark\"\nexport * from \"./components/menu\"\nexport * from \"./components/modal\"\nexport * from \"./components/motion\"\nexport * from \"./components/native-accordion\"\nexport * from \"./components/native-popover\"\nexport * from \"./components/native-select\"\nexport * from \"./components/native-table\"\nexport * from \"./components/notice\"\nexport * from \"./components/number-input\"\nexport * from \"./components/pagination\"\nexport * from \"./components/password-input\"\nexport * from \"./components/picture\"\nexport * from \"./components/pin-input\"\nexport * from \"./components/popover\"\nexport * from \"./components/portal\"\nexport * from \"./components/progress\"\nexport * from \"./components/qr-code\"\nexport * from \"./components/radio\"\nexport * from \"./components/radio-card\"\nexport * from \"./components/rating\"\nexport * from \"./components/reorder\"\nexport * from \"./components/resizable\"\nexport * from \"./components/ripple\"\nexport * from \"./components/rotate\"\nexport * from \"./components/saturation-slider\"\nexport * from \"./components/scroll-area\"\nexport * from \"./components/segmented-control\"\nexport * from \"./components/select\"\nexport * from \"./components/separator\"\nexport * from \"./components/show\"\nexport * from \"./components/simple-grid\"\nexport * from \"./components/skeleton\"\nexport * from \"./components/slide\"\nexport * from \"./components/slide-fade\"\nexport * from \"./components/slider\"\nexport * from \"./components/slot\"\nexport * from \"./components/snacks\"\nexport * from \"./components/stack\"\nexport * from \"./components/stat\"\nexport * from \"./components/status\"\nexport * from \"./components/steps\"\nexport * from \"./components/switch\"\nexport * from \"./components/table\"\nexport * from \"./components/tabs\"\nexport * from \"./components/tag\"\nexport * from \"./components/text\"\nexport * from \"./components/textarea\"\nexport * from \"./components/timeline\"\nexport * from \"./components/tip\"\nexport * from \"./components/toggle\"\nexport * from \"./components/tooltip\"\nexport * from \"./components/tree\"\nexport * from \"./components/visually-hidden\"\nexport * from \"./components/wrap\"\n\nexport * from \"./hooks/use-animation\"\nexport * from \"./hooks/use-async\"\nexport * from \"./hooks/use-async-callback\"\nexport * from \"./hooks/use-boolean\"\nexport * from \"./hooks/use-breakpoint\"\nexport * from \"./hooks/use-clickable\"\nexport * from \"./hooks/use-clipboard\"\nexport * from \"./hooks/use-combobox\"\nexport * from \"./hooks/use-controllable-state\"\nexport * from \"./hooks/use-counter\"\nexport * from \"./hooks/use-descendants\"\nexport * from \"./hooks/use-disclosure\"\nexport * from \"./hooks/use-event-listener\"\nexport * from \"./hooks/use-eye-dropper\"\nexport * from \"./hooks/use-field-sizing\"\nexport * from \"./hooks/use-focus\"\nexport * from \"./hooks/use-hover\"\nexport * from \"./hooks/use-idle\"\nexport * from \"./hooks/use-interval\"\nexport * from \"./hooks/use-lazy-mount\"\nexport * from \"./hooks/use-local-storage\"\nexport * from \"./hooks/use-media-query\"\nexport * from \"./hooks/use-mounted\"\nexport * from \"./hooks/use-online\"\nexport * from \"./hooks/use-os\"\nexport * from \"./hooks/use-outside-click\"\nexport * from \"./hooks/use-pan-event\"\nexport * from \"./hooks/use-popper\"\nexport * from \"./hooks/use-previous\"\nexport * from \"./hooks/use-processing\"\nexport * from \"./hooks/use-resize-observer\"\nexport * from \"./hooks/use-timeout\"\nexport * from \"./hooks/use-value\"\nexport * from \"./hooks/use-window-event\"\n\nexport * from \"./providers/i18n-provider\"\nexport * from \"./providers/ui-provider\"\n"],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { treeStyle } from "./tree.style.js";
2
+ import { TreeContext, TreeDescendantsContext, TreeItemContext, useTree, useTreeContext, useTreeDescendant, useTreeDescendants, useTreeItem, useTreeItemContext } from "./use-tree.js";
3
+ import { TreeItem, TreePropsContext, TreeRoot, useTreePropsContext } from "./tree.js";
4
+ import { tree_namespace_exports } from "./tree.namespace.js";
5
+
6
+ export { tree_namespace_exports as Tree, TreeContext, TreeDescendantsContext, TreeItem, TreeItemContext, TreePropsContext, TreeRoot, treeStyle, useTree, useTreeContext, useTreeDescendant, useTreeDescendants, useTreeItem, useTreeItemContext, useTreePropsContext };
@@ -0,0 +1,285 @@
1
+ "use client";
2
+
3
+ import { utils_exports } from "../../utils/index.js";
4
+ import { styled } from "../../core/system/factory.js";
5
+ import { createSlotComponent } from "../../core/components/create-component.js";
6
+ import "../../core/index.js";
7
+ import { ChevronRightIcon } from "../icon/icons/chevron-right-icon.js";
8
+ import "../icon/index.js";
9
+ import { Collapse } from "../collapse/collapse.js";
10
+ import "../collapse/index.js";
11
+ import { useLoadingComponent } from "../loading/use-loading-component.js";
12
+ import "../loading/index.js";
13
+ import { Checkbox } from "../checkbox/checkbox.js";
14
+ import "../checkbox/index.js";
15
+ import { treeStyle } from "./tree.style.js";
16
+ import { TreeContext, TreeDescendantsContext, TreeItemContext, useTree, useTreeContext, useTreeItem } from "./use-tree.js";
17
+ import { Children, cloneElement, isValidElement, useCallback, useMemo } from "react";
18
+ import { jsx, jsxs } from "react/jsx-runtime";
19
+
20
+ //#region src/components/tree/tree.tsx
21
+ const recursiveTreeItem = (items) => {
22
+ return items?.map((props, index) => {
23
+ const key = props.value || ((0, utils_exports.isString)(props.label) ? props.label : index);
24
+ if ("children" in props) {
25
+ const { children, ...rest } = props;
26
+ return /* @__PURE__ */ jsx(TreeItem, {
27
+ ...rest,
28
+ children: recursiveTreeItem(children)
29
+ }, key);
30
+ } else return /* @__PURE__ */ jsx(TreeItem, { ...props }, key);
31
+ });
32
+ };
33
+ const getReactNodeOrFunction = (type, custom, root) => {
34
+ if ((0, utils_exports.isObject)(custom) && ("group" in custom || "item" in custom)) return custom[type];
35
+ else if (custom) return custom;
36
+ else if ((0, utils_exports.isObject)(root) && ("group" in root || "item" in root)) return root[type];
37
+ else return root;
38
+ };
39
+ const { ComponentContext, PropsContext: TreePropsContext, useComponentContext, usePropsContext: useTreePropsContext, withContext, withProvider } = createSlotComponent("tree", treeStyle);
40
+ /**
41
+ * `Tree` is a component used to display hierarchical data structures in an expandable tree format.
42
+ *
43
+ * @see https://yamada-ui.com/docs/components/tree
44
+ */
45
+ const TreeRoot = withProvider(({ size, animated, children, endElement, indicator, indicatorHidden, items, loadingScheme, startElement, checkboxProps, endElementProps, groupProps, indicatorProps, itemProps, labelProps, startElementProps, triggerProps, ...rest }) => {
46
+ const computedChildren = useMemo(() => {
47
+ if (children) return children;
48
+ return recursiveTreeItem(items);
49
+ }, [children, items]);
50
+ const { activeDescendant, checkable, checkedValue, descendants, expandedValue, multiple, selectedValue, getRootProps, onActiveDescendant, onCheckedChange, onCollapseAll, onExpandAll, onExpandedChange, onSearch, onSelectedChange } = useTree({
51
+ ...rest,
52
+ children: computedChildren
53
+ });
54
+ return /* @__PURE__ */ jsx(TreeDescendantsContext, {
55
+ value: descendants,
56
+ children: /* @__PURE__ */ jsx(TreeContext, {
57
+ value: useMemo(() => ({
58
+ activeDescendant,
59
+ checkable,
60
+ checkedValue,
61
+ expandedValue,
62
+ multiple,
63
+ selectedValue,
64
+ onActiveDescendant,
65
+ onCheckedChange,
66
+ onCollapseAll,
67
+ onExpandAll,
68
+ onExpandedChange,
69
+ onSearch,
70
+ onSelectedChange
71
+ }), [
72
+ activeDescendant,
73
+ checkable,
74
+ checkedValue,
75
+ expandedValue,
76
+ multiple,
77
+ selectedValue,
78
+ onActiveDescendant,
79
+ onCheckedChange,
80
+ onSearch,
81
+ onCollapseAll,
82
+ onExpandAll,
83
+ onExpandedChange,
84
+ onSelectedChange
85
+ ]),
86
+ children: /* @__PURE__ */ jsx(ComponentContext, {
87
+ value: useMemo(() => ({
88
+ size,
89
+ animated,
90
+ endElement,
91
+ indicator,
92
+ indicatorHidden,
93
+ loadingScheme,
94
+ startElement,
95
+ checkboxProps,
96
+ endElementProps,
97
+ groupProps,
98
+ indicatorProps,
99
+ itemProps,
100
+ labelProps,
101
+ startElementProps,
102
+ triggerProps
103
+ }), [
104
+ size,
105
+ animated,
106
+ endElement,
107
+ indicator,
108
+ indicatorHidden,
109
+ startElement,
110
+ endElementProps,
111
+ groupProps,
112
+ indicatorProps,
113
+ itemProps,
114
+ labelProps,
115
+ startElementProps,
116
+ triggerProps,
117
+ checkboxProps,
118
+ loadingScheme
119
+ ]),
120
+ children: /* @__PURE__ */ jsx(styled.ul, { ...getRootProps() })
121
+ })
122
+ })
123
+ });
124
+ }, "root", { transferProps: ["size"] })();
125
+ const TreeItem = withContext(({ animated: animatedProp, asyncChildren: asyncChildrenProp, endElement, indicator: indicatorProp, label, loadingScheme, startElement, value: valueProp = (0, utils_exports.isString)(label) ? label : void 0, checkboxProps, endElementProps, groupProps, indicatorProps, labelProps, startElementProps, triggerProps, ...rest }) => {
126
+ const { checkable } = useTreeContext();
127
+ const componentContext = useComponentContext();
128
+ const Loading = useLoadingComponent(loadingScheme ?? componentContext.loadingScheme ?? "oval");
129
+ const animated = animatedProp ?? componentContext.animated;
130
+ const indicator = indicatorProp ?? componentContext.indicator;
131
+ const groupStartElement = getReactNodeOrFunction("group", startElement, componentContext.startElement);
132
+ const groupEndElement = getReactNodeOrFunction("group", endElement, componentContext.endElement);
133
+ const itemStartElement = getReactNodeOrFunction("item", startElement, componentContext.startElement);
134
+ const itemEndElement = getReactNodeOrFunction("item", endElement, componentContext.endElement);
135
+ const asyncChildren = useCallback(async () => {
136
+ return recursiveTreeItem(await asyncChildrenProp?.());
137
+ }, [asyncChildrenProp]);
138
+ const { branchOpen, children, disabled, group, groupLoading, groupOpen, level, value, getCheckboxProps, getGroupItemProps, getGroupProps, getIndicatorProps, getItemProps, getLabelProps, getTriggerProps, onGroupClose, onGroupOpen, onGroupToggle } = useTreeItem({
139
+ ...componentContext.itemProps,
140
+ ...rest,
141
+ asyncChildren: asyncChildrenProp ? asyncChildren : void 0,
142
+ value: valueProp
143
+ });
144
+ const props = {
145
+ disabled,
146
+ expanded: groupOpen
147
+ };
148
+ const context = useMemo(() => ({
149
+ branchOpen,
150
+ groupOpen,
151
+ level,
152
+ value,
153
+ onGroupClose,
154
+ onGroupOpen,
155
+ onGroupToggle
156
+ }), [
157
+ branchOpen,
158
+ groupOpen,
159
+ level,
160
+ value,
161
+ onGroupClose,
162
+ onGroupOpen,
163
+ onGroupToggle
164
+ ]);
165
+ const varProps = useMemo(() => ({ "--level": level.toString() }), [level]);
166
+ return /* @__PURE__ */ jsx(TreeItemContext, {
167
+ value: context,
168
+ children: group ? /* @__PURE__ */ jsxs(styled.li, {
169
+ ...varProps,
170
+ ...getGroupItemProps(),
171
+ children: [/* @__PURE__ */ jsxs(TreeTrigger, {
172
+ ...getTriggerProps({
173
+ ...componentContext.triggerProps,
174
+ ...triggerProps
175
+ }),
176
+ children: [
177
+ /* @__PURE__ */ jsx(TreeIndicator, {
178
+ ...getIndicatorProps({
179
+ "data-animated": (0, utils_exports.dataAttr)(animated),
180
+ ...componentContext.indicatorProps,
181
+ ...indicatorProps
182
+ }),
183
+ children: groupLoading ? /* @__PURE__ */ jsx(Loading, {}) : (0, utils_exports.runIfFn)(indicator, props)
184
+ }),
185
+ checkable ? /* @__PURE__ */ jsx(TreeCheckbox, {
186
+ size: componentContext.size,
187
+ ...getCheckboxProps({
188
+ ...componentContext.checkboxProps,
189
+ ...checkboxProps
190
+ })
191
+ }) : null,
192
+ groupStartElement ? /* @__PURE__ */ jsx(TreeStartElement, {
193
+ ...componentContext.startElementProps,
194
+ ...startElementProps,
195
+ children: (0, utils_exports.runIfFn)(groupStartElement, props)
196
+ }) : null,
197
+ label ? /* @__PURE__ */ jsx(TreeLabel, {
198
+ ...getLabelProps({
199
+ ...componentContext.labelProps,
200
+ ...labelProps
201
+ }),
202
+ children: label
203
+ }) : null,
204
+ groupEndElement ? /* @__PURE__ */ jsx(TreeEndElement, {
205
+ ...componentContext.endElementProps,
206
+ ...endElementProps,
207
+ children: (0, utils_exports.runIfFn)(groupEndElement, props)
208
+ }) : null
209
+ ]
210
+ }), /* @__PURE__ */ jsx(TreeGroup, {
211
+ duration: !animated ? 0 : void 0,
212
+ open: groupOpen,
213
+ ...getGroupProps({
214
+ ...componentContext.groupProps,
215
+ ...groupProps
216
+ }),
217
+ children
218
+ })]
219
+ }) : /* @__PURE__ */ jsxs(styled.li, {
220
+ ...varProps,
221
+ ...getItemProps(),
222
+ children: [
223
+ /* @__PURE__ */ jsx(TreeIndicator, { ...getIndicatorProps({
224
+ "data-hidden": "",
225
+ ...componentContext.indicatorProps,
226
+ ...indicatorProps
227
+ }) }),
228
+ checkable ? /* @__PURE__ */ jsx(TreeCheckbox, {
229
+ size: componentContext.size,
230
+ ...getCheckboxProps({
231
+ ...componentContext.checkboxProps,
232
+ ...checkboxProps
233
+ })
234
+ }) : null,
235
+ itemStartElement ? /* @__PURE__ */ jsx(TreeStartElement, {
236
+ ...componentContext.startElementProps,
237
+ ...startElementProps,
238
+ children: (0, utils_exports.runIfFn)(itemStartElement, props)
239
+ }) : null,
240
+ label ? /* @__PURE__ */ jsx(TreeLabel, {
241
+ ...getLabelProps({
242
+ ...componentContext.labelProps,
243
+ ...labelProps
244
+ }),
245
+ children: label
246
+ }) : null,
247
+ itemEndElement ? /* @__PURE__ */ jsx(TreeEndElement, {
248
+ ...componentContext.endElementProps,
249
+ ...endElementProps,
250
+ children: (0, utils_exports.runIfFn)(itemEndElement, props)
251
+ }) : null
252
+ ]
253
+ })
254
+ });
255
+ }, "item")();
256
+ const TreeTrigger = withContext("div", "trigger")();
257
+ const TreeGroup = withContext((props) => {
258
+ return /* @__PURE__ */ jsx(Collapse, {
259
+ as: "ul",
260
+ ...(0, utils_exports.cast)(props)
261
+ });
262
+ }, "group")();
263
+ const TreeIndicator = withContext(({ children = /* @__PURE__ */ jsx(ChevronRightIcon, {}), ...rest }) => {
264
+ const { indicatorHidden } = useComponentContext();
265
+ if (indicatorHidden) return null;
266
+ if (isValidElement(children)) return cloneElement(children, {
267
+ ...rest,
268
+ ...children.props
269
+ });
270
+ return Children.count(children) > 1 ? Children.only(null) : null;
271
+ }, "indicator")();
272
+ const TreeCheckbox = withContext(Checkbox, "checkbox")();
273
+ const TreeStartElement = withContext("div", {
274
+ name: "TreeStartElement",
275
+ slot: ["element", "start"]
276
+ })();
277
+ const TreeEndElement = withContext("div", {
278
+ name: "TreeEndElement",
279
+ slot: ["element", "end"]
280
+ })();
281
+ const TreeLabel = withContext("span", "label")();
282
+
283
+ //#endregion
284
+ export { TreeItem, TreePropsContext, TreeRoot, useTreePropsContext };
285
+ //# sourceMappingURL=tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.js","names":[],"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":"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"}
@@ -0,0 +1,21 @@
1
+ import { __exportAll } from "../../_virtual/rolldown_runtime.js";
2
+ import { TreeContext, TreeDescendantsContext, useTreeContext, useTreeDescendant, useTreeDescendants, useTreeItemContext } from "./use-tree.js";
3
+ import { TreeItem, TreePropsContext, TreeRoot, useTreePropsContext } from "./tree.js";
4
+
5
+ //#region src/components/tree/tree.namespace.ts
6
+ var tree_namespace_exports = /* @__PURE__ */ __exportAll({
7
+ Context: () => TreeContext,
8
+ DescendantsContext: () => TreeDescendantsContext,
9
+ Item: () => TreeItem,
10
+ PropsContext: () => TreePropsContext,
11
+ Root: () => TreeRoot,
12
+ useContext: () => useTreeContext,
13
+ useDescendant: () => useTreeDescendant,
14
+ useDescendants: () => useTreeDescendants,
15
+ useItemContext: () => useTreeItemContext,
16
+ usePropsContext: () => useTreePropsContext
17
+ });
18
+
19
+ //#endregion
20
+ export { tree_namespace_exports };
21
+ //# sourceMappingURL=tree.namespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.namespace.js","names":[],"sources":["../../../../src/components/tree/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":""}