@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.
- package/dist/cjs/components/tree/index.cjs +25 -0
- package/dist/cjs/components/tree/tree.cjs +289 -0
- package/dist/cjs/components/tree/tree.cjs.map +1 -0
- package/dist/cjs/components/tree/tree.namespace.cjs +26 -0
- package/dist/cjs/components/tree/tree.namespace.cjs.map +1 -0
- package/dist/cjs/components/tree/tree.style.cjs +181 -0
- package/dist/cjs/components/tree/tree.style.cjs.map +1 -0
- package/dist/cjs/components/tree/use-tree.cjs +556 -0
- package/dist/cjs/components/tree/use-tree.cjs.map +1 -0
- package/dist/cjs/hooks/use-descendants/index.cjs +19 -9
- package/dist/cjs/hooks/use-descendants/index.cjs.map +1 -1
- package/dist/cjs/index.cjs +42 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/components/tree/index.js +6 -0
- package/dist/esm/components/tree/tree.js +285 -0
- package/dist/esm/components/tree/tree.js.map +1 -0
- package/dist/esm/components/tree/tree.namespace.js +21 -0
- package/dist/esm/components/tree/tree.namespace.js.map +1 -0
- package/dist/esm/components/tree/tree.style.js +181 -0
- package/dist/esm/components/tree/tree.style.js.map +1 -0
- package/dist/esm/components/tree/use-tree.js +547 -0
- package/dist/esm/components/tree/use-tree.js.map +1 -0
- package/dist/esm/hooks/use-descendants/index.js +19 -9
- package/dist/esm/hooks/use-descendants/index.js.map +1 -1
- package/dist/esm/index.js +23 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/types/components/accordion/accordion.d.ts +2 -2
- package/dist/types/components/accordion/accordion.style.d.ts +1 -1
- package/dist/types/components/accordion/use-accordion.d.ts +11 -11
- package/dist/types/components/airy/airy.d.ts +2 -2
- package/dist/types/components/alert/alert.d.ts +2 -2
- package/dist/types/components/alpha-slider/alpha-slider.d.ts +2 -2
- package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +2 -2
- package/dist/types/components/autocomplete/autocomplete.d.ts +2 -2
- package/dist/types/components/autocomplete/autocomplete.style.d.ts +1 -1
- package/dist/types/components/autocomplete/use-autocomplete.d.ts +5 -5
- package/dist/types/components/avatar/avatar.d.ts +5 -5
- package/dist/types/components/avatar/use-avatar-group.d.ts +2 -2
- package/dist/types/components/badge/badge.d.ts +2 -2
- package/dist/types/components/bleed/bleed.d.ts +2 -2
- package/dist/types/components/blockquote/blockquote.d.ts +2 -2
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
- package/dist/types/components/breadcrumb/breadcrumb.style.d.ts +1 -1
- package/dist/types/components/breadcrumb/use-breadcrumb.d.ts +2 -2
- package/dist/types/components/button/button.d.ts +2 -2
- package/dist/types/components/button/icon-button.d.ts +2 -2
- package/dist/types/components/calendar/calendar.d.ts +2 -2
- package/dist/types/components/calendar/calendar.style.d.ts +2 -2
- package/dist/types/components/calendar/use-calendar.d.ts +8 -8
- package/dist/types/components/card/card.d.ts +2 -2
- package/dist/types/components/carousel/carousel.d.ts +2 -2
- package/dist/types/components/carousel/carousel.style.d.ts +2 -2
- package/dist/types/components/carousel/use-carousel.d.ts +3 -3
- package/dist/types/components/center/center.d.ts +2 -2
- package/dist/types/components/chart/area-chart.d.ts +2 -2
- package/dist/types/components/chart/bar-chart.d.ts +2 -2
- package/dist/types/components/chart/chart.d.ts +5 -5
- package/dist/types/components/chart/composed-chart.d.ts +2 -2
- package/dist/types/components/chart/donut-chart.d.ts +2 -2
- package/dist/types/components/chart/line-chart.d.ts +2 -2
- package/dist/types/components/chart/pie-chart.d.ts +2 -2
- package/dist/types/components/chart/radar-chart.d.ts +2 -2
- package/dist/types/components/chart/radial-chart.d.ts +2 -2
- package/dist/types/components/chart/use-chart.d.ts +2 -2
- package/dist/types/components/checkbox/checkbox.d.ts +5 -5
- package/dist/types/components/checkbox/checkbox.style.d.ts +1 -1
- package/dist/types/components/checkbox/use-checkbox-group.d.ts +2 -2
- package/dist/types/components/checkbox-card/checkbox-card.d.ts +5 -5
- package/dist/types/components/checkbox-card/checkbox-card.style.d.ts +1 -1
- package/dist/types/components/circle-progress/circle-progress.d.ts +2 -2
- package/dist/types/components/close-button/close-button.d.ts +2 -2
- package/dist/types/components/code/code.d.ts +2 -2
- package/dist/types/components/collapse/collapse.d.ts +2 -2
- package/dist/types/components/color-picker/color-picker.d.ts +2 -2
- package/dist/types/components/color-picker/color-picker.style.d.ts +1 -1
- package/dist/types/components/color-picker/use-color-picker.d.ts +2 -2
- package/dist/types/components/color-selector/color-selector.d.ts +2 -2
- package/dist/types/components/color-selector/color-selector.style.d.ts +2 -2
- package/dist/types/components/color-selector/use-color-selector.d.ts +3 -3
- package/dist/types/components/color-swatch/color-swatch.d.ts +2 -2
- package/dist/types/components/container/container.d.ts +2 -2
- package/dist/types/components/data-list/data-list.d.ts +2 -2
- package/dist/types/components/data-list/data-list.style.d.ts +1 -1
- package/dist/types/components/date-picker/date-picker.d.ts +2 -2
- package/dist/types/components/date-picker/date-picker.style.d.ts +1 -1
- package/dist/types/components/date-picker/use-date-picker.d.ts +4 -4
- package/dist/types/components/drawer/drawer.d.ts +2 -2
- package/dist/types/components/drawer/drawer.style.d.ts +2 -2
- package/dist/types/components/dropzone/dropzone.d.ts +4 -4
- package/dist/types/components/editable/editable.d.ts +4 -4
- package/dist/types/components/editable/editable.style.d.ts +1 -1
- package/dist/types/components/editable/use-editable.d.ts +2 -2
- package/dist/types/components/em/em.d.ts +2 -2
- package/dist/types/components/empty-state/empty-state.d.ts +2 -2
- package/dist/types/components/empty-state/empty-state.style.d.ts +2 -2
- package/dist/types/components/fade/fade.d.ts +2 -2
- package/dist/types/components/field/field.d.ts +3 -3
- package/dist/types/components/field/use-field-props.d.ts +4 -4
- package/dist/types/components/fieldset/fieldset.d.ts +3 -3
- package/dist/types/components/file-button/file-button.d.ts +2 -2
- package/dist/types/components/file-button/use-file-button.d.ts +18 -18
- package/dist/types/components/file-input/file-input.d.ts +2 -2
- package/dist/types/components/file-input/file-input.style.d.ts +1 -1
- package/dist/types/components/file-input/use-file-input.d.ts +15 -15
- package/dist/types/components/flex/flex.d.ts +2 -2
- package/dist/types/components/flip/flip.d.ts +4 -4
- package/dist/types/components/flip/flip.style.d.ts +1 -1
- package/dist/types/components/float/float.d.ts +2 -2
- package/dist/types/components/form/form.d.ts +3 -3
- package/dist/types/components/format/format-byte.d.ts +4 -4
- package/dist/types/components/format/format-date-time.d.ts +4 -4
- package/dist/types/components/format/format-number.d.ts +2 -2
- package/dist/types/components/grid/grid-item.d.ts +2 -2
- package/dist/types/components/grid/grid.d.ts +2 -2
- package/dist/types/components/group/group.d.ts +2 -2
- package/dist/types/components/group/use-group.d.ts +2 -2
- package/dist/types/components/heading/heading.d.ts +2 -2
- package/dist/types/components/hue-slider/hue-slider.d.ts +3 -3
- package/dist/types/components/icon/icon.d.ts +5 -5
- package/dist/types/components/image/image.d.ts +2 -2
- package/dist/types/components/indicator/indicator.d.ts +4 -4
- package/dist/types/components/infinite-scroll-area/infinite-scroll-area.d.ts +2 -2
- package/dist/types/components/input/input-addon.d.ts +2 -2
- package/dist/types/components/input/input-element.d.ts +2 -2
- package/dist/types/components/input/input.d.ts +2 -2
- package/dist/types/components/kbd/kbd.d.ts +2 -2
- package/dist/types/components/link/link.d.ts +2 -2
- package/dist/types/components/link-box/link-box.d.ts +2 -2
- package/dist/types/components/list/list.d.ts +2 -2
- package/dist/types/components/list/list.style.d.ts +2 -2
- package/dist/types/components/loading/loading-provider.d.ts +2 -2
- package/dist/types/components/loading/loading.d.ts +3 -3
- package/dist/types/components/mark/mark.d.ts +2 -2
- package/dist/types/components/menu/menu.d.ts +2 -2
- package/dist/types/components/menu/menu.style.d.ts +2 -2
- package/dist/types/components/menu/use-menu.d.ts +11 -11
- package/dist/types/components/modal/modal.d.ts +2 -2
- package/dist/types/components/modal/modal.style.d.ts +2 -2
- package/dist/types/components/native-accordion/native-accordion.d.ts +2 -2
- package/dist/types/components/native-accordion/native-accordion.style.d.ts +2 -2
- package/dist/types/components/native-accordion/use-native-accordion.d.ts +2 -2
- package/dist/types/components/native-popover/native-popover.d.ts +2 -2
- package/dist/types/components/native-select/native-select.d.ts +2 -2
- package/dist/types/components/native-select/native-select.style.d.ts +1 -1
- package/dist/types/components/native-table/native-table.d.ts +4 -4
- package/dist/types/components/notice/notice.style.d.ts +1 -1
- package/dist/types/components/number-input/number-input.d.ts +2 -2
- package/dist/types/components/number-input/number-input.style.d.ts +1 -1
- package/dist/types/components/pagination/pagination.d.ts +2 -2
- package/dist/types/components/pagination/pagination.style.d.ts +1 -1
- package/dist/types/components/pagination/use-pagination.d.ts +2 -2
- package/dist/types/components/password-input/password-input.d.ts +2 -2
- package/dist/types/components/password-input/password-input.style.d.ts +1 -1
- package/dist/types/components/password-input/strength-meter.d.ts +2 -2
- package/dist/types/components/password-input/strength-meter.style.d.ts +1 -1
- package/dist/types/components/password-input/use-password-input.d.ts +2 -2
- package/dist/types/components/pin-input/pin-input.d.ts +2 -2
- package/dist/types/components/pin-input/pin-input.style.d.ts +1 -1
- package/dist/types/components/pin-input/use-pin-input.d.ts +7 -7
- package/dist/types/components/popover/popover.d.ts +2 -2
- package/dist/types/components/progress/progress.d.ts +4 -4
- package/dist/types/components/progress/use-progress.d.ts +706 -706
- package/dist/types/components/qr-code/qr-code.d.ts +2 -2
- package/dist/types/components/radio/radio.d.ts +5 -5
- package/dist/types/components/radio/radio.style.d.ts +1 -1
- package/dist/types/components/radio/use-radio-group.d.ts +2 -2
- package/dist/types/components/radio-card/radio-card.d.ts +5 -5
- package/dist/types/components/radio-card/radio-card.style.d.ts +1 -1
- package/dist/types/components/rating/rating.style.d.ts +2 -2
- package/dist/types/components/rating/use-rating.d.ts +7 -7
- package/dist/types/components/reorder/reorder.d.ts +2 -2
- package/dist/types/components/reorder/reorder.style.d.ts +1 -1
- package/dist/types/components/reorder/use-reorder.d.ts +3 -3
- package/dist/types/components/resizable/resizable.d.ts +2 -2
- package/dist/types/components/resizable/resizable.style.d.ts +2 -2
- package/dist/types/components/resizable/use-resizable.d.ts +2 -2
- package/dist/types/components/ripple/ripple.d.ts +2 -2
- package/dist/types/components/ripple/use-ripple.d.ts +2 -2
- package/dist/types/components/rotate/rotate.d.ts +2 -2
- package/dist/types/components/saturation-slider/saturation-slider.d.ts +2 -2
- package/dist/types/components/saturation-slider/use-saturation-slider.d.ts +2 -2
- package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
- package/dist/types/components/segmented-control/segmented-control.d.ts +2 -2
- package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
- package/dist/types/components/segmented-control/use-segmented-control.d.ts +9 -9
- package/dist/types/components/select/select.d.ts +2 -2
- package/dist/types/components/select/select.style.d.ts +1 -1
- package/dist/types/components/select/use-select.d.ts +4 -4
- package/dist/types/components/separator/separator.d.ts +2 -2
- package/dist/types/components/simple-grid/simple-grid.d.ts +2 -2
- package/dist/types/components/skeleton/skeleton.d.ts +2 -2
- package/dist/types/components/slide/slide.d.ts +2 -2
- package/dist/types/components/slide-fade/slide-fade.d.ts +2 -2
- package/dist/types/components/slider/slider.d.ts +2 -2
- package/dist/types/components/slider/use-slider.d.ts +2 -2
- package/dist/types/components/stack/h-stack.d.ts +2 -2
- package/dist/types/components/stack/stack.d.ts +2 -2
- package/dist/types/components/stack/v-stack.d.ts +2 -2
- package/dist/types/components/stack/z-stack.d.ts +2 -2
- package/dist/types/components/stat/stat.d.ts +2 -2
- package/dist/types/components/stat/stat.style.d.ts +2 -2
- package/dist/types/components/status/status.d.ts +2 -2
- package/dist/types/components/status/status.style.d.ts +2 -2
- package/dist/types/components/steps/steps.d.ts +2 -2
- package/dist/types/components/steps/steps.style.d.ts +1 -1
- package/dist/types/components/steps/use-steps.d.ts +10 -10
- package/dist/types/components/switch/switch.d.ts +2 -2
- package/dist/types/components/table/table.d.ts +2 -2
- package/dist/types/components/tabs/tabs.d.ts +2 -2
- package/dist/types/components/tabs/use-tabs.d.ts +16 -16
- package/dist/types/components/tag/tag.d.ts +2 -2
- package/dist/types/components/tag/tag.style.d.ts +1 -1
- package/dist/types/components/text/text.d.ts +2 -2
- package/dist/types/components/textarea/textarea.d.ts +2 -2
- package/dist/types/components/textarea/use-autosize.d.ts +2 -2
- package/dist/types/components/timeline/timeline.d.ts +5 -5
- package/dist/types/components/timeline/timeline.style.d.ts +2 -2
- package/dist/types/components/toggle/toggle.d.ts +5 -5
- package/dist/types/components/toggle/use-toggle-group.d.ts +2 -2
- package/dist/types/components/toggle/use-toggle.d.ts +2 -2
- package/dist/types/components/tooltip/tooltip.d.ts +2 -2
- package/dist/types/components/tree/index.d.ts +5 -0
- package/dist/types/components/tree/tree.d.ts +131 -0
- package/dist/types/components/tree/tree.namespace.d.ts +10 -0
- package/dist/types/components/tree/tree.style.d.ts +173 -0
- package/dist/types/components/tree/use-tree.d.ts +253 -0
- package/dist/types/components/visually-hidden/visually-hidden.d.ts +2 -2
- package/dist/types/components/wrap/wrap.d.ts +2 -2
- package/dist/types/core/components/create-component.d.ts +7 -7
- package/dist/types/core/system/color-mode-provider.d.ts +2 -2
- package/dist/types/core/system/styled.d.ts +2 -2
- package/dist/types/core/system/system-provider.d.ts +2 -2
- package/dist/types/hooks/use-breakpoint/use-breakpoint-state.d.ts +2 -2
- package/dist/types/hooks/use-clickable/index.d.ts +7 -7
- package/dist/types/hooks/use-combobox/index.d.ts +12 -12
- package/dist/types/hooks/use-field-sizing/index.d.ts +2 -2
- package/dist/types/hooks/use-hover/index.d.ts +2 -2
- package/dist/types/index.d.ts +7 -2
- package/dist/types/providers/i18n-provider/i18n-provider.d.ts +3 -3
- package/dist/types/providers/ui-provider/ui-provider.d.ts +2 -2
- package/dist/types/utils/children.d.ts +2 -2
- 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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"}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -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;
|
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -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":""}
|