@accelint/design-system 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-4CPMP3H7.js +418 -0
- package/dist/chunk-4CPMP3H7.js.map +1 -0
- package/dist/{styles.css → index.css} +885 -779
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +871 -8
- package/dist/index.js +5278 -66
- package/dist/index.js.map +1 -1
- package/dist/vanilla-DUNpoS8t.d.ts +2514 -0
- package/dist/vanilla.d.ts +9 -30
- package/dist/vanilla.js +3 -27
- package/dist/vanilla.js.map +1 -0
- package/package.json +13 -19
- package/dist/assets/components/button/button.css +0 -55
- package/dist/assets/components/checkbox/checkbox.css +0 -73
- package/dist/assets/components/chip/chip.css +0 -62
- package/dist/assets/components/combo-box/combo-box.css +0 -66
- package/dist/assets/components/dialog/dialog.css +0 -51
- package/dist/assets/components/drawer/drawer.css +0 -135
- package/dist/assets/components/group/group.css +0 -33
- package/dist/assets/components/icon/icon.css +0 -19
- package/dist/assets/components/input/input.css +0 -29
- package/dist/assets/components/menu/menu.css +0 -85
- package/dist/assets/components/options/options.css +0 -82
- package/dist/assets/components/picker/picker.css +0 -47
- package/dist/assets/components/popover/popover.css +0 -26
- package/dist/assets/components/query-builder/query-builder.css +0 -129
- package/dist/assets/components/radio/radio.css +0 -67
- package/dist/assets/components/search-field/search-field.css +0 -62
- package/dist/assets/components/select/select.css +0 -33
- package/dist/assets/components/switch/switch.css +0 -62
- package/dist/assets/components/tabs/tabs.css +0 -144
- package/dist/assets/components/textarea/textarea.css +0 -32
- package/dist/assets/components/tooltip/tooltip.css +0 -54
- package/dist/assets/components/tree/tree.css +0 -157
- package/dist/assets/hooks/use-theme/use-theme.css +0 -6
- package/dist/assets/src/components/button/button.css.ts.vanilla-9uttMYGm.css +0 -55
- package/dist/assets/src/components/checkbox/checkbox.css.ts.vanilla-Bewmypyn.css +0 -73
- package/dist/assets/src/components/chip/chip.css.ts.vanilla-CsGhxrlu.css +0 -62
- package/dist/assets/src/components/combo-box/combo-box.css.ts.vanilla-BNEPKjPm.css +0 -66
- package/dist/assets/src/components/dialog/dialog.css.ts.vanilla-CG0m-NJD.css +0 -51
- package/dist/assets/src/components/drawer/drawer.css.ts.vanilla-DEfHnoNS.css +0 -135
- package/dist/assets/src/components/group/group.css.ts.vanilla-DR69xgQy.css +0 -33
- package/dist/assets/src/components/icon/icon.css.ts.vanilla-CoUAfp2F.css +0 -19
- package/dist/assets/src/components/input/input.css.ts.vanilla-DoK5h9SX.css +0 -29
- package/dist/assets/src/components/menu/menu.css.ts.vanilla-LoWLg-jE.css +0 -85
- package/dist/assets/src/components/options/options.css.ts.vanilla-CWWFBTou.css +0 -82
- package/dist/assets/src/components/picker/picker.css.ts.vanilla-Fe0YXv-c.css +0 -47
- package/dist/assets/src/components/popover/popover.css.ts.vanilla-C5YGwwVD.css +0 -26
- package/dist/assets/src/components/query-builder/query-builder.css.ts.vanilla-B3P9cbCv.css +0 -129
- package/dist/assets/src/components/radio/radio.css.ts.vanilla-gi-KedQc.css +0 -67
- package/dist/assets/src/components/search-field/search-field.css.ts.vanilla-B_JL53f8.css +0 -62
- package/dist/assets/src/components/select/select.css.ts.vanilla-C94A60jf.css +0 -33
- package/dist/assets/src/components/switch/switch.css.ts.vanilla-DkQwtRa6.css +0 -62
- package/dist/assets/src/components/tabs/tabs.css.ts.vanilla-BygIflpl.css +0 -144
- package/dist/assets/src/components/textarea/textarea.css.ts.vanilla-Ba6E5HFc.css +0 -32
- package/dist/assets/src/components/tooltip/tooltip.css.ts.vanilla-BntxAlwN.css +0 -54
- package/dist/assets/src/components/tree/tree.css.ts.vanilla-SLmhk0zZ.css +0 -157
- package/dist/assets/src/hooks/use-theme/use-theme.css.ts.vanilla-zkVHnGkP.css +0 -6
- package/dist/assets/src/styles/layers.css.ts.vanilla-B2GUgnOF.css +0 -21
- package/dist/assets/src/styles/reset.css.ts.vanilla-C8PShXm0.css +0 -31
- package/dist/assets/src/styles/space.css.ts.vanilla-Md6Whc4G.css +0 -18
- package/dist/assets/src/styles/surfaces.css.ts.vanilla-Ckztx7VT.css +0 -24
- package/dist/assets/src/styles/theme.css.ts.vanilla-aDPSIzBK.css +0 -208
- package/dist/assets/src/styles/typography.css.ts.vanilla-DRT9H7rd.css +0 -150
- package/dist/assets/styles/layers.css +0 -21
- package/dist/assets/styles/reset.css +0 -31
- package/dist/assets/styles/space.css +0 -18
- package/dist/assets/styles/surfaces.css +0 -24
- package/dist/assets/styles/theme.css +0 -208
- package/dist/assets/styles/typography.css +0 -150
- package/dist/components/aria/aria.d.ts +0 -19
- package/dist/components/aria/aria.js +0 -36
- package/dist/components/aria/aria.js.map +0 -1
- package/dist/components/aria/index.d.ts +0 -1
- package/dist/components/button/button.css.d.ts +0 -33
- package/dist/components/button/button.d.ts +0 -39
- package/dist/components/button/button.js +0 -71
- package/dist/components/button/button.js.map +0 -1
- package/dist/components/button/button.vanilla.js +0 -8
- package/dist/components/button/button.vanilla.js.map +0 -1
- package/dist/components/button/index.d.ts +0 -3
- package/dist/components/button/types.d.ts +0 -28
- package/dist/components/checkbox/checkbox.css.d.ts +0 -35
- package/dist/components/checkbox/checkbox.d.ts +0 -21
- package/dist/components/checkbox/checkbox.js +0 -68
- package/dist/components/checkbox/checkbox.js.map +0 -1
- package/dist/components/checkbox/checkbox.vanilla.js +0 -9
- package/dist/components/checkbox/checkbox.vanilla.js.map +0 -1
- package/dist/components/checkbox/index.d.ts +0 -3
- package/dist/components/checkbox/types.d.ts +0 -38
- package/dist/components/chip/chip.css.d.ts +0 -31
- package/dist/components/chip/chip.d.ts +0 -30
- package/dist/components/chip/chip.js +0 -106
- package/dist/components/chip/chip.js.map +0 -1
- package/dist/components/chip/chip.vanilla.js +0 -8
- package/dist/components/chip/chip.vanilla.js.map +0 -1
- package/dist/components/chip/index.d.ts +0 -3
- package/dist/components/chip/types.d.ts +0 -31
- package/dist/components/collection/collection.d.ts +0 -13
- package/dist/components/collection/collection.js +0 -15
- package/dist/components/collection/collection.js.map +0 -1
- package/dist/components/collection/index.d.ts +0 -1
- package/dist/components/combo-box/combo-box.css.d.ts +0 -22
- package/dist/components/combo-box/combo-box.d.ts +0 -8
- package/dist/components/combo-box/combo-box.js +0 -87
- package/dist/components/combo-box/combo-box.js.map +0 -1
- package/dist/components/combo-box/combo-box.vanilla.js +0 -8
- package/dist/components/combo-box/combo-box.vanilla.js.map +0 -1
- package/dist/components/combo-box/index.d.ts +0 -3
- package/dist/components/combo-box/types.d.ts +0 -32
- package/dist/components/dialog/dialog.css.d.ts +0 -34
- package/dist/components/dialog/dialog.d.ts +0 -18
- package/dist/components/dialog/dialog.js +0 -146
- package/dist/components/dialog/dialog.js.map +0 -1
- package/dist/components/dialog/dialog.vanilla.js +0 -8
- package/dist/components/dialog/dialog.vanilla.js.map +0 -1
- package/dist/components/dialog/index.d.ts +0 -3
- package/dist/components/dialog/types.d.ts +0 -48
- package/dist/components/drawer/drawer.css.d.ts +0 -33
- package/dist/components/drawer/drawer.d.ts +0 -13
- package/dist/components/drawer/drawer.js +0 -199
- package/dist/components/drawer/drawer.js.map +0 -1
- package/dist/components/drawer/drawer.vanilla.js +0 -10
- package/dist/components/drawer/drawer.vanilla.js.map +0 -1
- package/dist/components/drawer/index.d.ts +0 -3
- package/dist/components/drawer/types.d.ts +0 -71
- package/dist/components/element/element.d.ts +0 -11
- package/dist/components/element/element.js +0 -21
- package/dist/components/element/element.js.map +0 -1
- package/dist/components/element/index.d.ts +0 -2
- package/dist/components/element/types.d.ts +0 -21
- package/dist/components/group/group.css.d.ts +0 -14
- package/dist/components/group/group.d.ts +0 -10
- package/dist/components/group/group.js +0 -44
- package/dist/components/group/group.js.map +0 -1
- package/dist/components/group/group.vanilla.js +0 -7
- package/dist/components/group/group.vanilla.js.map +0 -1
- package/dist/components/group/index.d.ts +0 -3
- package/dist/components/group/types.d.ts +0 -35
- package/dist/components/icon/icon.css.d.ts +0 -18
- package/dist/components/icon/icon.d.ts +0 -12
- package/dist/components/icon/icon.js +0 -26
- package/dist/components/icon/icon.js.map +0 -1
- package/dist/components/icon/icon.vanilla.js +0 -8
- package/dist/components/icon/icon.vanilla.js.map +0 -1
- package/dist/components/icon/index.d.ts +0 -3
- package/dist/components/icon/types.d.ts +0 -13
- package/dist/components/index.d.ts +0 -26
- package/dist/components/input/index.d.ts +0 -3
- package/dist/components/input/input.css.d.ts +0 -29
- package/dist/components/input/input.d.ts +0 -8
- package/dist/components/input/input.js +0 -93
- package/dist/components/input/input.js.map +0 -1
- package/dist/components/input/input.vanilla.js +0 -8
- package/dist/components/input/input.vanilla.js.map +0 -1
- package/dist/components/input/types.d.ts +0 -44
- package/dist/components/menu/index.d.ts +0 -3
- package/dist/components/menu/menu.css.d.ts +0 -75
- package/dist/components/menu/menu.d.ts +0 -24
- package/dist/components/menu/menu.js +0 -155
- package/dist/components/menu/menu.js.map +0 -1
- package/dist/components/menu/menu.vanilla.js +0 -8
- package/dist/components/menu/menu.vanilla.js.map +0 -1
- package/dist/components/menu/types.d.ts +0 -48
- package/dist/components/merge-provider/index.d.ts +0 -2
- package/dist/components/merge-provider/merge-provider.d.ts +0 -14
- package/dist/components/merge-provider/merge-provider.js +0 -40
- package/dist/components/merge-provider/merge-provider.js.map +0 -1
- package/dist/components/merge-provider/types.d.ts +0 -5
- package/dist/components/options/index.d.ts +0 -3
- package/dist/components/options/options.css.d.ts +0 -79
- package/dist/components/options/options.d.ts +0 -20
- package/dist/components/options/options.js +0 -152
- package/dist/components/options/options.js.map +0 -1
- package/dist/components/options/options.vanilla.js +0 -10
- package/dist/components/options/options.vanilla.js.map +0 -1
- package/dist/components/options/types.d.ts +0 -49
- package/dist/components/picker/index.d.ts +0 -3
- package/dist/components/picker/picker.css.d.ts +0 -32
- package/dist/components/picker/picker.d.ts +0 -18
- package/dist/components/picker/picker.js +0 -46
- package/dist/components/picker/picker.js.map +0 -1
- package/dist/components/picker/picker.stories.css.d.ts +0 -3
- package/dist/components/picker/picker.vanilla.js +0 -9
- package/dist/components/picker/picker.vanilla.js.map +0 -1
- package/dist/components/picker/types.d.ts +0 -28
- package/dist/components/popover/index.d.ts +0 -3
- package/dist/components/popover/popover.css.d.ts +0 -31
- package/dist/components/popover/popover.d.ts +0 -8
- package/dist/components/popover/popover.js +0 -110
- package/dist/components/popover/popover.js.map +0 -1
- package/dist/components/popover/popover.vanilla.js +0 -7
- package/dist/components/popover/popover.vanilla.js.map +0 -1
- package/dist/components/popover/types.d.ts +0 -32
- package/dist/components/query-builder/action-element.d.ts +0 -2
- package/dist/components/query-builder/action-element.js +0 -12
- package/dist/components/query-builder/action-element.js.map +0 -1
- package/dist/components/query-builder/constants.d.ts +0 -4
- package/dist/components/query-builder/constants.js +0 -20
- package/dist/components/query-builder/constants.js.map +0 -1
- package/dist/components/query-builder/dataset-sample.d.ts +0 -91
- package/dist/components/query-builder/group.d.ts +0 -5
- package/dist/components/query-builder/group.js +0 -87
- package/dist/components/query-builder/group.js.map +0 -1
- package/dist/components/query-builder/index.d.ts +0 -5
- package/dist/components/query-builder/query-builder.css.d.ts +0 -91
- package/dist/components/query-builder/query-builder.d.ts +0 -2
- package/dist/components/query-builder/query-builder.js +0 -129
- package/dist/components/query-builder/query-builder.js.map +0 -1
- package/dist/components/query-builder/query-builder.vanilla.js +0 -10
- package/dist/components/query-builder/query-builder.vanilla.js.map +0 -1
- package/dist/components/query-builder/rule.d.ts +0 -3
- package/dist/components/query-builder/rule.js +0 -112
- package/dist/components/query-builder/rule.js.map +0 -1
- package/dist/components/query-builder/types.d.ts +0 -128
- package/dist/components/query-builder/utils.d.ts +0 -29
- package/dist/components/query-builder/utils.js +0 -22
- package/dist/components/query-builder/utils.js.map +0 -1
- package/dist/components/query-builder/value-editor.d.ts +0 -4
- package/dist/components/query-builder/value-editor.js +0 -74
- package/dist/components/query-builder/value-editor.js.map +0 -1
- package/dist/components/query-builder/value-selector.d.ts +0 -2
- package/dist/components/query-builder/value-selector.js +0 -28
- package/dist/components/query-builder/value-selector.js.map +0 -1
- package/dist/components/radio/index.d.ts +0 -3
- package/dist/components/radio/radio.css.d.ts +0 -34
- package/dist/components/radio/radio.d.ts +0 -16
- package/dist/components/radio/radio.js +0 -63
- package/dist/components/radio/radio.js.map +0 -1
- package/dist/components/radio/radio.vanilla.js +0 -8
- package/dist/components/radio/radio.vanilla.js.map +0 -1
- package/dist/components/radio/types.d.ts +0 -29
- package/dist/components/search-field/index.d.ts +0 -3
- package/dist/components/search-field/search-field.css.d.ts +0 -16
- package/dist/components/search-field/search-field.d.ts +0 -9
- package/dist/components/search-field/search-field.js +0 -60
- package/dist/components/search-field/search-field.js.map +0 -1
- package/dist/components/search-field/search-field.vanilla.js +0 -7
- package/dist/components/search-field/search-field.vanilla.js.map +0 -1
- package/dist/components/search-field/types.d.ts +0 -29
- package/dist/components/select/index.d.ts +0 -3
- package/dist/components/select/select.css.d.ts +0 -25
- package/dist/components/select/select.d.ts +0 -8
- package/dist/components/select/select.js +0 -80
- package/dist/components/select/select.js.map +0 -1
- package/dist/components/select/select.vanilla.js +0 -8
- package/dist/components/select/select.vanilla.js.map +0 -1
- package/dist/components/select/types.d.ts +0 -30
- package/dist/components/switch/index.d.ts +0 -3
- package/dist/components/switch/switch.css.d.ts +0 -25
- package/dist/components/switch/switch.d.ts +0 -4
- package/dist/components/switch/switch.js +0 -34
- package/dist/components/switch/switch.js.map +0 -1
- package/dist/components/switch/switch.vanilla.js +0 -8
- package/dist/components/switch/switch.vanilla.js.map +0 -1
- package/dist/components/switch/types.d.ts +0 -17
- package/dist/components/tabs/index.d.ts +0 -3
- package/dist/components/tabs/tabs.css.d.ts +0 -49
- package/dist/components/tabs/tabs.d.ts +0 -68
- package/dist/components/tabs/tabs.js +0 -108
- package/dist/components/tabs/tabs.js.map +0 -1
- package/dist/components/tabs/tabs.vanilla.js +0 -11
- package/dist/components/tabs/tabs.vanilla.js.map +0 -1
- package/dist/components/tabs/types.d.ts +0 -82
- package/dist/components/textarea/index.d.ts +0 -3
- package/dist/components/textarea/textarea.css.d.ts +0 -31
- package/dist/components/textarea/textarea.d.ts +0 -14
- package/dist/components/textarea/textarea.js +0 -86
- package/dist/components/textarea/textarea.js.map +0 -1
- package/dist/components/textarea/textarea.vanilla.js +0 -8
- package/dist/components/textarea/textarea.vanilla.js.map +0 -1
- package/dist/components/textarea/types.d.ts +0 -39
- package/dist/components/tooltip/index.d.ts +0 -3
- package/dist/components/tooltip/tooltip.css.d.ts +0 -23
- package/dist/components/tooltip/tooltip.d.ts +0 -23
- package/dist/components/tooltip/tooltip.js +0 -69
- package/dist/components/tooltip/tooltip.js.map +0 -1
- package/dist/components/tooltip/tooltip.vanilla.js +0 -8
- package/dist/components/tooltip/tooltip.vanilla.js.map +0 -1
- package/dist/components/tooltip/types.d.ts +0 -39
- package/dist/components/tree/index.d.ts +0 -3
- package/dist/components/tree/tree.css.d.ts +0 -73
- package/dist/components/tree/tree.d.ts +0 -5
- package/dist/components/tree/tree.js +0 -337
- package/dist/components/tree/tree.js.map +0 -1
- package/dist/components/tree/tree.vanilla.js +0 -11
- package/dist/components/tree/tree.vanilla.js.map +0 -1
- package/dist/components/tree/types.d.ts +0 -114
- package/dist/components/tree/utils.d.ts +0 -8
- package/dist/components/tree/utils.js +0 -75
- package/dist/components/tree/utils.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -8
- package/dist/hooks/use-collection-render/index.d.ts +0 -1
- package/dist/hooks/use-collection-render/use-collection-render.d.ts +0 -9
- package/dist/hooks/use-collection-render/use-collection-render.js +0 -20
- package/dist/hooks/use-collection-render/use-collection-render.js.map +0 -1
- package/dist/hooks/use-context-props/index.d.ts +0 -1
- package/dist/hooks/use-context-props/use-context-props.d.ts +0 -7
- package/dist/hooks/use-context-props/use-context-props.js +0 -15
- package/dist/hooks/use-context-props/use-context-props.js.map +0 -1
- package/dist/hooks/use-defaults/index.d.ts +0 -2
- package/dist/hooks/use-defaults/types.d.ts +0 -67
- package/dist/hooks/use-defaults/use-defaults.d.ts +0 -56
- package/dist/hooks/use-defaults/use-defaults.js +0 -21
- package/dist/hooks/use-defaults/use-defaults.js.map +0 -1
- package/dist/hooks/use-propagating-press/index.d.ts +0 -1
- package/dist/hooks/use-propagating-press/use-propagating-press.d.ts +0 -9
- package/dist/hooks/use-propagating-press/use-propagating-press.js +0 -14
- package/dist/hooks/use-propagating-press/use-propagating-press.js.map +0 -1
- package/dist/hooks/use-slot/index.d.ts +0 -1
- package/dist/hooks/use-slot/use-slot.d.ts +0 -13
- package/dist/hooks/use-slot/use-slot.js +0 -18
- package/dist/hooks/use-slot/use-slot.js.map +0 -1
- package/dist/hooks/use-theme/index.d.ts +0 -2
- package/dist/hooks/use-theme/types.d.ts +0 -86
- package/dist/hooks/use-theme/use-theme.css.d.ts +0 -1
- package/dist/hooks/use-theme/use-theme.d.ts +0 -13
- package/dist/hooks/use-theme/use-theme.js +0 -64
- package/dist/hooks/use-theme/use-theme.js.map +0 -1
- package/dist/hooks/use-theme/use-theme.vanilla.js +0 -4
- package/dist/hooks/use-theme/use-theme.vanilla.js.map +0 -1
- package/dist/hooks/use-tree/index.d.ts +0 -1
- package/dist/hooks/use-tree/use-tree.d.ts +0 -2
- package/dist/hooks/use-tree/use-tree.js +0 -217
- package/dist/hooks/use-tree/use-tree.js.map +0 -1
- package/dist/hooks/use-tree/utils.d.ts +0 -6
- package/dist/hooks/use-tree/utils.js +0 -77
- package/dist/hooks/use-tree/utils.js.map +0 -1
- package/dist/hooks/use-update-effect/index.d.ts +0 -1
- package/dist/hooks/use-update-effect/use-update-effect.d.ts +0 -1
- package/dist/hooks/use-update-effect/use-update-effect.js +0 -20
- package/dist/hooks/use-update-effect/use-update-effect.js.map +0 -1
- package/dist/ladle/actions.d.ts +0 -1
- package/dist/ladle/index.d.ts +0 -1
- package/dist/styles/index.d.ts +0 -6
- package/dist/styles/layers.css.d.ts +0 -16
- package/dist/styles/layers.vanilla.js +0 -4
- package/dist/styles/layers.vanilla.js.map +0 -1
- package/dist/styles/reset.css.d.ts +0 -1
- package/dist/styles/space.css.d.ts +0 -1
- package/dist/styles/surfaces.css.d.ts +0 -4
- package/dist/styles/surfaces.vanilla.js +0 -4
- package/dist/styles/surfaces.vanilla.js.map +0 -1
- package/dist/styles/theme.css.d.ts +0 -334
- package/dist/styles/theme.vanilla.js +0 -31
- package/dist/styles/theme.vanilla.js.map +0 -1
- package/dist/styles/typography.css.d.ts +0 -17
- package/dist/styles/typography.vanilla.js +0 -8
- package/dist/styles/typography.vanilla.js.map +0 -1
- package/dist/test/setup.d.ts +0 -1
- package/dist/types/deckgl.d.ts +0 -1
- package/dist/types/generic.d.ts +0 -3
- package/dist/types/index.d.ts +0 -6
- package/dist/types/props.d.ts +0 -4
- package/dist/types/react-aria.d.ts +0 -91
- package/dist/types/use-tree.d.ts +0 -52
- package/dist/types/vanilla-extract.d.ts +0 -15
- package/dist/utils/css.d.ts +0 -139
- package/dist/utils/css.js +0 -145
- package/dist/utils/css.js.map +0 -1
- package/dist/utils/events.d.ts +0 -10
- package/dist/utils/events.js +0 -5
- package/dist/utils/events.js.map +0 -1
- package/dist/utils/index.d.ts +0 -4
- package/dist/utils/props.d.ts +0 -29
- package/dist/utils/props.js +0 -108
- package/dist/utils/props.js.map +0 -1
- package/dist/utils/validators.d.ts +0 -49
- package/dist/utils/validators.js +0 -37
- package/dist/utils/validators.js.map +0 -1
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { noop } from 'lodash';
|
|
3
|
-
import { createContext, useMemo, useCallback, useContext } from 'react';
|
|
4
|
-
import { usePress } from 'react-aria';
|
|
5
|
-
import { Provider, DropIndicator, useDragAndDrop, GridList, DEFAULT_SLOT, ButtonContext as ButtonContext$1, GridListItem } from 'react-aria-components';
|
|
6
|
-
import { inlineVars } from '../../utils/css.js';
|
|
7
|
-
import { mergeClassNames, callRenderProps } from '../../utils/props.js';
|
|
8
|
-
import { useDefaultProps } from '../../hooks/use-defaults/use-defaults.js';
|
|
9
|
-
import { useTheme } from '../../hooks/use-theme/use-theme.js';
|
|
10
|
-
import { useTree } from '../../hooks/use-tree/use-tree.js';
|
|
11
|
-
import { bodies } from '../../styles/typography.vanilla.js';
|
|
12
|
-
import { AriaTextContext } from '../aria/aria.js';
|
|
13
|
-
import { ToggleButtonContext, ButtonContext, Button } from '../button/button.js';
|
|
14
|
-
import { CheckboxContext } from '../checkbox/checkbox.js';
|
|
15
|
-
import { GroupContext } from '../group/group.js';
|
|
16
|
-
import { Icon } from '../icon/icon.js';
|
|
17
|
-
import { MergeProvider } from '../merge-provider/merge-provider.js';
|
|
18
|
-
import { treeClassNames, treeStateVars, treeIndicatorStateVars, treeGroupStateVars, treeItemStateVars } from './tree.vanilla.js';
|
|
19
|
-
import { createDragAndDropHandlers } from './utils.js';
|
|
20
|
-
|
|
21
|
-
const emptyTree = {
|
|
22
|
-
key: "",
|
|
23
|
-
parentKey: "",
|
|
24
|
-
children: [],
|
|
25
|
-
value: { id: "", label: "" }
|
|
26
|
-
};
|
|
27
|
-
const defaultMapping = {
|
|
28
|
-
actions: {
|
|
29
|
-
sm: {},
|
|
30
|
-
lg: {}
|
|
31
|
-
},
|
|
32
|
-
button: {
|
|
33
|
-
sm: { size: "sm", variant: "icon" },
|
|
34
|
-
lg: { size: "md", variant: "icon" }
|
|
35
|
-
},
|
|
36
|
-
description: {
|
|
37
|
-
sm: bodies.sm,
|
|
38
|
-
lg: bodies.md
|
|
39
|
-
},
|
|
40
|
-
drag: {
|
|
41
|
-
sm: {},
|
|
42
|
-
lg: {}
|
|
43
|
-
},
|
|
44
|
-
expansion: {
|
|
45
|
-
sm: {},
|
|
46
|
-
lg: {}
|
|
47
|
-
},
|
|
48
|
-
visibility: {
|
|
49
|
-
sm: {},
|
|
50
|
-
lg: {}
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
const defaultSize = "lg";
|
|
54
|
-
const TreeStateContext = createContext({
|
|
55
|
-
allowsDragging: true,
|
|
56
|
-
allowsExpansion: true,
|
|
57
|
-
allowsVisibility: false,
|
|
58
|
-
lookup: {},
|
|
59
|
-
selectedKeys: /* @__PURE__ */ new Set(),
|
|
60
|
-
selectionMode: "none",
|
|
61
|
-
tree: emptyTree,
|
|
62
|
-
actions: {
|
|
63
|
-
append: noop,
|
|
64
|
-
getItem: () => emptyTree,
|
|
65
|
-
insert: noop,
|
|
66
|
-
insertAfter: noop,
|
|
67
|
-
insertBefore: noop,
|
|
68
|
-
move: noop,
|
|
69
|
-
prepend: noop,
|
|
70
|
-
remove: noop,
|
|
71
|
-
removeSelectedItems: noop,
|
|
72
|
-
revertIsExpanded: noop,
|
|
73
|
-
setSelectedKeys: noop,
|
|
74
|
-
toggleIsExpanded: noop,
|
|
75
|
-
toggleIsSelected: noop,
|
|
76
|
-
toggleIsViewable: noop,
|
|
77
|
-
update: noop
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
function defaultRenderEmptyState({ isDropTarget }) {
|
|
81
|
-
return isDropTarget ? "Add to this group" : "Nothing to see here";
|
|
82
|
-
}
|
|
83
|
-
function Tree(props) {
|
|
84
|
-
props = useDefaultProps(props, "Tree");
|
|
85
|
-
const { children: childrenProp, allowsDragging = false, allowsExpansion = true, allowsVisibility = false, classNames: classNamesProps, disabledBehavior = "all", keyboardNavigationBehavior = "arrow", mapping: mappingProp, nodes, provider, renderDragPreview, renderEmptyState: renderEmptyStateProp = defaultRenderEmptyState, selectionBehavior = "replace", selectionMode = "none", showTreeLines = true, size = defaultSize, onAction, onScroll, onSelectionChange, onUpdate, ...rest } = props;
|
|
86
|
-
const state = useTree({
|
|
87
|
-
allowsExpansion,
|
|
88
|
-
allowsVisibility,
|
|
89
|
-
nodes,
|
|
90
|
-
selectionMode,
|
|
91
|
-
onSelectionChange,
|
|
92
|
-
onUpdate
|
|
93
|
-
});
|
|
94
|
-
const theme = useTheme();
|
|
95
|
-
const mapping = useMemo(() => ({
|
|
96
|
-
...defaultMapping,
|
|
97
|
-
...mappingProp
|
|
98
|
-
}), [mappingProp]);
|
|
99
|
-
const classNames = useMemo(() => mergeClassNames(treeClassNames, theme.Tree, classNamesProps, {
|
|
100
|
-
item: {
|
|
101
|
-
description: mapping.description[size]
|
|
102
|
-
}
|
|
103
|
-
}) ?? {}, [theme.Tree, classNamesProps, mapping, size]);
|
|
104
|
-
const renderEmptyState = useCallback((renderProps) => jsx("div", { className: classNames?.empty, children: renderEmptyStateProp(renderProps) }), [classNames?.empty, renderEmptyStateProp]);
|
|
105
|
-
const context = useMemo(() => [
|
|
106
|
-
[
|
|
107
|
-
TreeStateContext,
|
|
108
|
-
{
|
|
109
|
-
...state,
|
|
110
|
-
allowsDragging,
|
|
111
|
-
classNames,
|
|
112
|
-
disabledBehavior,
|
|
113
|
-
keyboardNavigationBehavior,
|
|
114
|
-
renderDragPreview,
|
|
115
|
-
renderEmptyState,
|
|
116
|
-
selectionBehavior,
|
|
117
|
-
selectionMode,
|
|
118
|
-
showTreeLines,
|
|
119
|
-
size,
|
|
120
|
-
onAction,
|
|
121
|
-
onScroll
|
|
122
|
-
}
|
|
123
|
-
]
|
|
124
|
-
], [
|
|
125
|
-
state,
|
|
126
|
-
allowsDragging,
|
|
127
|
-
classNames,
|
|
128
|
-
disabledBehavior,
|
|
129
|
-
keyboardNavigationBehavior,
|
|
130
|
-
renderDragPreview,
|
|
131
|
-
renderEmptyState,
|
|
132
|
-
selectionBehavior,
|
|
133
|
-
selectionMode,
|
|
134
|
-
showTreeLines,
|
|
135
|
-
size,
|
|
136
|
-
onAction,
|
|
137
|
-
onScroll
|
|
138
|
-
]);
|
|
139
|
-
const style = useMemo(() => inlineVars(treeStateVars, {
|
|
140
|
-
allowsDragging,
|
|
141
|
-
allowsExpansion: state.allowsExpansion,
|
|
142
|
-
allowsVisibility: state.allowsVisibility,
|
|
143
|
-
showTreeLines,
|
|
144
|
-
size
|
|
145
|
-
}), [
|
|
146
|
-
allowsDragging,
|
|
147
|
-
state.allowsExpansion,
|
|
148
|
-
state.allowsVisibility,
|
|
149
|
-
showTreeLines,
|
|
150
|
-
size
|
|
151
|
-
]);
|
|
152
|
-
const children = useMemo(() => {
|
|
153
|
-
const treeGroupProps = {
|
|
154
|
-
...rest,
|
|
155
|
-
id: state.tree.key,
|
|
156
|
-
nodes: state.tree.children
|
|
157
|
-
};
|
|
158
|
-
return provider ? callRenderProps(childrenProp, { ...state, treeGroupProps }) : jsx(TreeGroup, { ...treeGroupProps, children: childrenProp });
|
|
159
|
-
}, [rest, provider, childrenProp, state]);
|
|
160
|
-
return jsx(Provider, { values: context, children: jsx("div", { className: classNames?.tree?.container, style, children: jsx("div", { className: classNames?.tree?.tree, children }) }) });
|
|
161
|
-
}
|
|
162
|
-
function TreeGroup({ id, children, nodes, types = ["all"], ...rest }) {
|
|
163
|
-
const { actions, allowsDragging, classNames, disabledBehavior, keyboardNavigationBehavior, lookup, renderDragPreview, renderEmptyState, selectedKeys, selectionBehavior, selectionMode, onAction, onScroll } = useContext(TreeStateContext);
|
|
164
|
-
const acceptedDragTypes = useMemo(() => types.map((type) => `tree-${type}`), [types]);
|
|
165
|
-
const renderDropIndicator = useCallback((target) => jsx(DropIndicator, {
|
|
166
|
-
className: classNames?.indicator?.container,
|
|
167
|
-
// eslint-disable-next-line react-perf/jsx-no-new-function-as-prop, react/jsx-no-bind
|
|
168
|
-
style: (renderProps) => inlineVars(treeIndicatorStateVars, {
|
|
169
|
-
...renderProps,
|
|
170
|
-
dropPosition: "dropPosition" in target ? target.dropPosition : "root"
|
|
171
|
-
}),
|
|
172
|
-
target,
|
|
173
|
-
children: jsx("div", { className: classNames?.indicator?.indicator })
|
|
174
|
-
}), [classNames?.indicator?.container, classNames?.indicator?.indicator]);
|
|
175
|
-
const { dragAndDropHooks } = useDragAndDrop({
|
|
176
|
-
isDisabled: !allowsDragging,
|
|
177
|
-
renderDragPreview,
|
|
178
|
-
renderDropIndicator,
|
|
179
|
-
...createDragAndDropHandlers(id, acceptedDragTypes, lookup, actions)
|
|
180
|
-
});
|
|
181
|
-
const style = useCallback((renderProps) => inlineVars(treeGroupStateVars, { ...renderProps, count: nodes.length }), [nodes.length]);
|
|
182
|
-
const indices = useMemo(() => nodes.reduce((acc, node, index) => {
|
|
183
|
-
acc[node.key] = index;
|
|
184
|
-
return acc;
|
|
185
|
-
}, {}), [nodes]);
|
|
186
|
-
return jsx(GridList, { ...rest, className: classNames?.group, disabledBehavior, dragAndDropHooks, items: nodes, keyboardNavigationBehavior, renderEmptyState, selectedKeys, selectionBehavior, selectionMode, style, onAction, onScroll, children: (item) => jsx(TreeItem, { index: indices[item.key] ?? -1, node: item, isFirstChild: indices[item.key] === 0, isLastChild: indices[item.key] === nodes.length - 1, children }) });
|
|
187
|
-
}
|
|
188
|
-
const contextBlocker = [
|
|
189
|
-
[ToggleButtonContext, null],
|
|
190
|
-
[AriaTextContext, null],
|
|
191
|
-
[GroupContext, null],
|
|
192
|
-
[CheckboxContext, null],
|
|
193
|
-
[ButtonContext, null],
|
|
194
|
-
[ButtonContext$1, null]
|
|
195
|
-
];
|
|
196
|
-
function TreeItem({ children: childrenProp, index, mapping: mappingProp, node, isFirstChild, isLastChild, ...rest }) {
|
|
197
|
-
const { actions, allowsExpansion, classNames, size: sizeProp } = useContext(TreeStateContext);
|
|
198
|
-
const mapping = useMemo(() => ({
|
|
199
|
-
...defaultMapping,
|
|
200
|
-
...mappingProp
|
|
201
|
-
}), [mappingProp]);
|
|
202
|
-
const selection = useMemo(() => /* @__PURE__ */ new Set([node.key]), [node.key]);
|
|
203
|
-
const handleToggleExpansion = useCallback(() => actions.toggleIsExpanded(selection), [actions, selection]);
|
|
204
|
-
const handleToggleSelection = useCallback(() => actions.toggleIsSelected(selection), [actions, selection]);
|
|
205
|
-
const handleToggleVisibility = useCallback(() => actions.toggleIsViewable(selection), [actions, selection]);
|
|
206
|
-
const { pressProps } = usePress({
|
|
207
|
-
onPress: handleToggleExpansion
|
|
208
|
-
});
|
|
209
|
-
const style = useCallback((renderProps) => inlineVars(treeItemStateVars, {
|
|
210
|
-
...renderProps,
|
|
211
|
-
count: node.children.length,
|
|
212
|
-
index,
|
|
213
|
-
isExpanded: "nodes" in node.value ? !!node.value.isExpanded : false,
|
|
214
|
-
isFirstChild,
|
|
215
|
-
isGroup: "nodes" in node.value,
|
|
216
|
-
isLastChild,
|
|
217
|
-
isViewable: !!node.value.isViewable,
|
|
218
|
-
isVisible: !!node.value.isVisible
|
|
219
|
-
}), [node.children.length, node.value, index, isFirstChild, isLastChild]);
|
|
220
|
-
const context = useMemo(() => {
|
|
221
|
-
const size = sizeProp ?? defaultSize;
|
|
222
|
-
const buttonProps = mapping.button[size] ?? {};
|
|
223
|
-
return [
|
|
224
|
-
[
|
|
225
|
-
ToggleButtonContext,
|
|
226
|
-
{
|
|
227
|
-
slots: {
|
|
228
|
-
[DEFAULT_SLOT]: buttonProps,
|
|
229
|
-
expansion: {
|
|
230
|
-
...buttonProps,
|
|
231
|
-
...mapping.expansion[size],
|
|
232
|
-
classNames: classNames?.item?.expansion,
|
|
233
|
-
isSelected: "nodes" in node.value ? !!node.value.isExpanded : void 0,
|
|
234
|
-
onPress: handleToggleExpansion
|
|
235
|
-
},
|
|
236
|
-
visibility: {
|
|
237
|
-
...buttonProps,
|
|
238
|
-
...mapping.visibility[size],
|
|
239
|
-
classNames: classNames?.item?.visibility,
|
|
240
|
-
isSelected: !!node.value.isViewable,
|
|
241
|
-
onPress: handleToggleVisibility
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
],
|
|
246
|
-
[
|
|
247
|
-
AriaTextContext,
|
|
248
|
-
{
|
|
249
|
-
slots: {
|
|
250
|
-
[DEFAULT_SLOT]: {},
|
|
251
|
-
description: {
|
|
252
|
-
..."nodes" in node.value ? pressProps : {},
|
|
253
|
-
className: classNames?.item?.description,
|
|
254
|
-
children: node.value.label
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
],
|
|
259
|
-
[
|
|
260
|
-
GroupContext,
|
|
261
|
-
{
|
|
262
|
-
slots: {
|
|
263
|
-
[DEFAULT_SLOT]: {},
|
|
264
|
-
actions: {
|
|
265
|
-
classNames: classNames?.item?.actions,
|
|
266
|
-
context: ButtonContext,
|
|
267
|
-
values: buttonProps
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
],
|
|
272
|
-
[
|
|
273
|
-
CheckboxContext,
|
|
274
|
-
{
|
|
275
|
-
slots: {
|
|
276
|
-
[DEFAULT_SLOT]: {},
|
|
277
|
-
selection: {
|
|
278
|
-
classNames: classNames?.item?.selection,
|
|
279
|
-
onChange: handleToggleSelection
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
],
|
|
284
|
-
[
|
|
285
|
-
ButtonContext,
|
|
286
|
-
{
|
|
287
|
-
slots: {
|
|
288
|
-
[DEFAULT_SLOT]: buttonProps,
|
|
289
|
-
drag: {
|
|
290
|
-
...buttonProps,
|
|
291
|
-
...mapping.drag[size],
|
|
292
|
-
classNames: classNames?.item?.drag
|
|
293
|
-
},
|
|
294
|
-
// We use a non-interactive Button for the lines to try and simplify the
|
|
295
|
-
// consistent use of space when rendered in alignment with other Buttons
|
|
296
|
-
lines: {
|
|
297
|
-
...buttonProps,
|
|
298
|
-
classNames: classNames?.item?.lines,
|
|
299
|
-
isDisabled: true
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
],
|
|
304
|
-
// Need to expand the RAC ButtonContext to allow for additional slots
|
|
305
|
-
[ButtonContext$1, { slots: { [DEFAULT_SLOT]: {}, lines: {} } }]
|
|
306
|
-
];
|
|
307
|
-
}, [
|
|
308
|
-
classNames?.item?.lines,
|
|
309
|
-
classNames?.item?.expansion,
|
|
310
|
-
classNames?.item?.visibility,
|
|
311
|
-
classNames?.item?.description,
|
|
312
|
-
classNames?.item?.actions,
|
|
313
|
-
classNames?.item?.selection,
|
|
314
|
-
classNames?.item?.drag,
|
|
315
|
-
mapping,
|
|
316
|
-
node,
|
|
317
|
-
pressProps,
|
|
318
|
-
sizeProp,
|
|
319
|
-
handleToggleExpansion,
|
|
320
|
-
handleToggleSelection,
|
|
321
|
-
handleToggleVisibility
|
|
322
|
-
]);
|
|
323
|
-
const children = useCallback((renderProps) => jsx(MergeProvider, { values: context, children: jsxs("div", { className: classNames?.item?.item, children: [node.parentKey && jsx(Button, { slot: "lines", children: jsx(Icon, {}) }), jsx("div", { className: classNames?.item?.bar, children: callRenderProps(childrenProp, {
|
|
324
|
-
...renderProps,
|
|
325
|
-
node
|
|
326
|
-
}) }), "nodes" in node.value && (!allowsExpansion || node.value.isExpanded) && jsx(Provider, { values: contextBlocker, children: jsx(TreeGroup, { id: node.key, nodes: node.children, types: node.value.types, "aria-label": node.value.label, children: childrenProp }) })] }) }), [
|
|
327
|
-
context,
|
|
328
|
-
classNames?.item?.item,
|
|
329
|
-
classNames?.item?.bar,
|
|
330
|
-
node,
|
|
331
|
-
childrenProp,
|
|
332
|
-
allowsExpansion
|
|
333
|
-
]);
|
|
334
|
-
return jsx(GridListItem, { ...rest, className: classNames?.item?.container, style, textValue: node.value.label, children });
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
export { Tree, TreeGroup, TreeItem, TreeStateContext };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sources":["../../../src/components/tree/tree.tsx"],"sourcesContent":["import { noop } from 'lodash';\nimport { createContext, useCallback, useContext, useMemo } from 'react';\nimport { usePress, type Key } from 'react-aria';\nimport {\n DEFAULT_SLOT,\n DropIndicator,\n GridList,\n GridListItem,\n Provider,\n ButtonContext as RACButtonContext,\n useDragAndDrop,\n type ContextValue,\n type DropTarget,\n type GridListItemRenderProps,\n type GridListRenderProps,\n type ButtonProps as RACButtonProps,\n type TextProps,\n} from 'react-aria-components';\nimport { useDefaultProps, useTheme, useTree } from '../../hooks';\nimport { bodies } from '../../styles';\nimport { callRenderProps, inlineVars, mergeClassNames } from '../../utils';\nimport { AriaTextContext } from '../aria';\nimport {\n Button,\n ButtonContext,\n ToggleButtonContext,\n type ButtonProps,\n type ToggleButtonProps,\n} from '../button';\nimport { CheckboxContext, type CheckboxProps } from '../checkbox';\nimport { GroupContext, type GroupProps } from '../group';\nimport { Icon } from '../icon';\nimport { MergeProvider } from '../merge-provider';\nimport {\n treeClassNames,\n treeGroupStateVars,\n treeIndicatorStateVars,\n treeItemStateVars,\n treeStateVars,\n} from './tree.css';\nimport type {\n TreeGroupProps,\n TreeIndicatorRenderProps,\n TreeItemProps,\n TreeMapping,\n TreeProps,\n TreeStateContextValue,\n} from './types';\nimport { createDragAndDropHandlers } from './utils';\n\nconst emptyTree = {\n key: '',\n parentKey: '',\n children: [],\n value: { id: '', label: '' },\n};\n\nconst defaultMapping: TreeMapping = {\n actions: {\n sm: {},\n lg: {},\n },\n button: {\n sm: { size: 'sm', variant: 'icon' },\n lg: { size: 'md', variant: 'icon' },\n },\n description: {\n sm: bodies.sm,\n lg: bodies.md,\n },\n drag: {\n sm: {},\n lg: {},\n },\n expansion: {\n sm: {},\n lg: {},\n },\n visibility: {\n sm: {},\n lg: {},\n },\n};\n\nconst defaultSize = 'lg';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const TreeStateContext = createContext<TreeStateContextValue<any>>({\n allowsDragging: true,\n allowsExpansion: true,\n allowsVisibility: false,\n lookup: {},\n selectedKeys: new Set(),\n selectionMode: 'none',\n tree: emptyTree,\n actions: {\n append: noop,\n getItem: () => emptyTree,\n insert: noop,\n insertAfter: noop,\n insertBefore: noop,\n move: noop,\n prepend: noop,\n remove: noop,\n removeSelectedItems: noop,\n revertIsExpanded: noop,\n setSelectedKeys: noop,\n toggleIsExpanded: noop,\n toggleIsSelected: noop,\n toggleIsViewable: noop,\n update: noop,\n },\n});\n\nfunction defaultRenderEmptyState({ isDropTarget }: GridListRenderProps) {\n return isDropTarget ? 'Add to this group' : 'Nothing to see here';\n}\n\nexport function Tree<T>(props: TreeProps<T>) {\n props = useDefaultProps(props as TreeProps<unknown>, 'Tree') as TreeProps<T>;\n\n const {\n children: childrenProp,\n allowsDragging = false,\n allowsExpansion = true,\n allowsVisibility = false,\n classNames: classNamesProps,\n disabledBehavior = 'all',\n keyboardNavigationBehavior = 'arrow',\n mapping: mappingProp,\n nodes,\n provider,\n renderDragPreview,\n renderEmptyState: renderEmptyStateProp = defaultRenderEmptyState,\n selectionBehavior = 'replace',\n selectionMode = 'none',\n showTreeLines = true,\n size = defaultSize,\n onAction,\n onScroll,\n onSelectionChange,\n onUpdate,\n ...rest\n } = props;\n\n const state = useTree({\n allowsExpansion,\n allowsVisibility,\n nodes,\n selectionMode,\n onSelectionChange,\n onUpdate,\n });\n\n const theme = useTheme();\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const classNames = useMemo(\n () =>\n mergeClassNames(treeClassNames, theme.Tree, classNamesProps, {\n item: {\n description: mapping.description[size],\n },\n }) ?? {},\n [theme.Tree, classNamesProps, mapping, size],\n );\n\n const renderEmptyState = useCallback(\n (renderProps: GridListRenderProps) => (\n <div className={classNames?.empty}>\n {renderEmptyStateProp(renderProps)}\n </div>\n ),\n [classNames?.empty, renderEmptyStateProp],\n );\n\n const context = useMemo<\n [[typeof TreeStateContext, TreeStateContextValue<T>]]\n >(\n () => [\n [\n TreeStateContext,\n {\n ...state,\n allowsDragging,\n classNames,\n disabledBehavior,\n keyboardNavigationBehavior,\n renderDragPreview,\n renderEmptyState,\n selectionBehavior,\n selectionMode,\n showTreeLines,\n size,\n onAction,\n onScroll,\n },\n ],\n ],\n [\n state,\n allowsDragging,\n classNames,\n disabledBehavior,\n keyboardNavigationBehavior,\n renderDragPreview,\n renderEmptyState,\n selectionBehavior,\n selectionMode,\n showTreeLines,\n size,\n onAction,\n onScroll,\n ],\n );\n\n const style = useMemo(\n () =>\n inlineVars(treeStateVars, {\n allowsDragging,\n allowsExpansion: state.allowsExpansion,\n allowsVisibility: state.allowsVisibility,\n showTreeLines,\n size,\n }),\n [\n allowsDragging,\n state.allowsExpansion,\n state.allowsVisibility,\n showTreeLines,\n size,\n ],\n );\n\n const children = useMemo(() => {\n const treeGroupProps = {\n ...rest,\n id: state.tree.key,\n nodes: state.tree.children,\n };\n\n return provider ? (\n callRenderProps(childrenProp, { ...state, treeGroupProps })\n ) : (\n <TreeGroup {...treeGroupProps}>{childrenProp}</TreeGroup>\n );\n }, [rest, provider, childrenProp, state]);\n\n return (\n <Provider values={context}>\n <div className={classNames?.tree?.container} style={style}>\n <div className={classNames?.tree?.tree}>{children}</div>\n </div>\n </Provider>\n );\n}\n\nexport function TreeGroup<T>({\n id,\n children,\n nodes,\n types = ['all'],\n ...rest\n}: TreeGroupProps<T>) {\n const {\n actions,\n allowsDragging,\n classNames,\n disabledBehavior,\n keyboardNavigationBehavior,\n lookup,\n renderDragPreview,\n renderEmptyState,\n selectedKeys,\n selectionBehavior,\n selectionMode,\n onAction,\n onScroll,\n } = useContext(TreeStateContext);\n\n const acceptedDragTypes = useMemo(\n () => types.map((type) => `tree-${type}`),\n [types],\n );\n\n // This function cannot be treated as a component and will throw errors if implemented as one (with hooks)\n const renderDropIndicator = useCallback(\n (target: DropTarget) => (\n <DropIndicator\n className={classNames?.indicator?.container}\n // eslint-disable-next-line react-perf/jsx-no-new-function-as-prop, react/jsx-no-bind\n style={(renderProps: TreeIndicatorRenderProps) =>\n inlineVars(treeIndicatorStateVars, {\n ...renderProps,\n dropPosition:\n 'dropPosition' in target ? target.dropPosition : 'root',\n })\n }\n target={target}\n >\n <div className={classNames?.indicator?.indicator} />\n </DropIndicator>\n ),\n [classNames?.indicator?.container, classNames?.indicator?.indicator],\n );\n\n const { dragAndDropHooks } = useDragAndDrop({\n isDisabled: !allowsDragging,\n renderDragPreview,\n renderDropIndicator,\n ...createDragAndDropHandlers(id, acceptedDragTypes, lookup, actions),\n });\n\n const style = useCallback(\n (renderProps: GridListRenderProps) =>\n inlineVars(treeGroupStateVars, { ...renderProps, count: nodes.length }),\n [nodes.length],\n );\n\n const indices = useMemo(\n () =>\n nodes.reduce<Record<Key, number>>((acc, node, index) => {\n acc[node.key] = index;\n\n return acc;\n }, {}),\n [nodes],\n );\n\n return (\n <GridList\n {...rest}\n className={classNames?.group}\n disabledBehavior={disabledBehavior}\n dragAndDropHooks={dragAndDropHooks}\n items={nodes}\n keyboardNavigationBehavior={keyboardNavigationBehavior}\n renderEmptyState={renderEmptyState}\n selectedKeys={selectedKeys}\n selectionBehavior={selectionBehavior}\n selectionMode={selectionMode}\n style={style}\n onAction={onAction}\n onScroll={onScroll}\n >\n {(item) => (\n <TreeItem\n index={indices[item.key] ?? -1}\n node={item}\n isFirstChild={indices[item.key] === 0}\n isLastChild={indices[item.key] === nodes.length - 1}\n >\n {children}\n </TreeItem>\n )}\n </GridList>\n );\n}\n\ntype TreeItemContexts = [\n [\n typeof ToggleButtonContext,\n ContextValue<ToggleButtonProps, HTMLButtonElement>,\n ],\n [typeof AriaTextContext, ContextValue<TextProps, HTMLSpanElement>],\n [\n typeof GroupContext,\n ContextValue<GroupProps<ButtonProps, HTMLButtonElement>, HTMLDivElement>,\n ],\n [typeof CheckboxContext, ContextValue<CheckboxProps, HTMLLabelElement>],\n [typeof ButtonContext, ContextValue<ButtonProps, HTMLButtonElement>],\n [typeof RACButtonContext, ContextValue<RACButtonProps, HTMLButtonElement>],\n];\n\nconst contextBlocker: TreeItemContexts = [\n [ToggleButtonContext, null],\n [AriaTextContext, null],\n [GroupContext, null],\n [CheckboxContext, null],\n [ButtonContext, null],\n [RACButtonContext, null],\n];\n\nexport function TreeItem<T>({\n children: childrenProp,\n index,\n mapping: mappingProp,\n node,\n isFirstChild,\n isLastChild,\n ...rest\n}: TreeItemProps<T>) {\n const {\n actions,\n allowsExpansion,\n classNames,\n size: sizeProp,\n } = useContext(TreeStateContext);\n\n const mapping = useMemo(\n () => ({\n ...defaultMapping,\n ...mappingProp,\n }),\n [mappingProp],\n );\n\n const selection = useMemo(() => new Set([node.key]), [node.key]);\n\n const handleToggleExpansion = useCallback(\n () => actions.toggleIsExpanded(selection),\n [actions, selection],\n );\n\n const handleToggleSelection = useCallback(\n () => actions.toggleIsSelected(selection),\n [actions, selection],\n );\n\n const handleToggleVisibility = useCallback(\n () => actions.toggleIsViewable(selection),\n [actions, selection],\n );\n\n const { pressProps } = usePress({\n onPress: handleToggleExpansion,\n });\n\n const style = useCallback(\n (renderProps: GridListItemRenderProps) =>\n inlineVars(treeItemStateVars, {\n ...renderProps,\n count: node.children.length,\n index,\n isExpanded: 'nodes' in node.value ? !!node.value.isExpanded : false,\n isFirstChild,\n isGroup: 'nodes' in node.value,\n isLastChild,\n isViewable: !!node.value.isViewable,\n isVisible: !!node.value.isVisible,\n }),\n [node.children.length, node.value, index, isFirstChild, isLastChild],\n );\n\n const context = useMemo<TreeItemContexts>(() => {\n const size = sizeProp ?? defaultSize;\n const buttonProps = mapping.button[size] ?? {};\n\n return [\n [\n ToggleButtonContext,\n {\n slots: {\n [DEFAULT_SLOT]: buttonProps,\n expansion: {\n ...buttonProps,\n ...mapping.expansion[size],\n classNames: classNames?.item?.expansion,\n isSelected:\n 'nodes' in node.value ? !!node.value.isExpanded : undefined,\n onPress: handleToggleExpansion,\n },\n visibility: {\n ...buttonProps,\n ...mapping.visibility[size],\n classNames: classNames?.item?.visibility,\n isSelected: !!node.value.isViewable,\n onPress: handleToggleVisibility,\n },\n },\n },\n ],\n [\n AriaTextContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n description: {\n ...('nodes' in node.value ? pressProps : {}),\n className: classNames?.item?.description,\n children: node.value.label,\n },\n },\n },\n ],\n [\n GroupContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n actions: {\n classNames: classNames?.item?.actions,\n context: ButtonContext,\n values: buttonProps,\n },\n },\n },\n ],\n [\n CheckboxContext,\n {\n slots: {\n [DEFAULT_SLOT]: {},\n selection: {\n classNames: classNames?.item?.selection,\n onChange: handleToggleSelection,\n },\n },\n },\n ],\n [\n ButtonContext,\n {\n slots: {\n [DEFAULT_SLOT]: buttonProps,\n drag: {\n ...buttonProps,\n ...mapping.drag[size],\n classNames: classNames?.item?.drag,\n },\n // We use a non-interactive Button for the lines to try and simplify the\n // consistent use of space when rendered in alignment with other Buttons\n lines: {\n ...buttonProps,\n classNames: classNames?.item?.lines,\n isDisabled: true,\n },\n },\n },\n ],\n // Need to expand the RAC ButtonContext to allow for additional slots\n [RACButtonContext, { slots: { [DEFAULT_SLOT]: {}, lines: {} } }],\n ];\n }, [\n classNames?.item?.lines,\n classNames?.item?.expansion,\n classNames?.item?.visibility,\n classNames?.item?.description,\n classNames?.item?.actions,\n classNames?.item?.selection,\n classNames?.item?.drag,\n mapping,\n node,\n pressProps,\n sizeProp,\n handleToggleExpansion,\n handleToggleSelection,\n handleToggleVisibility,\n ]);\n\n /**\n * We need to block the above contexts from being passed into the TreeGroup\n * so that each TreeItem has a distinct context. We only use MergeProvider\n * for the above contexts because the GridListItem provides contexts that\n * we need to merge with\n */\n const children = useCallback(\n (renderProps: GridListItemRenderProps) => (\n <MergeProvider values={context}>\n <div className={classNames?.item?.item}>\n {node.parentKey && (\n <Button slot='lines'>\n <Icon />\n </Button>\n )}\n <div className={classNames?.item?.bar}>\n {callRenderProps(childrenProp, {\n ...renderProps,\n node,\n })}\n </div>\n {'nodes' in node.value &&\n (!allowsExpansion || node.value.isExpanded) && (\n <Provider values={contextBlocker}>\n <TreeGroup\n id={node.key}\n nodes={node.children}\n types={node.value.types}\n aria-label={node.value.label}\n >\n {childrenProp}\n </TreeGroup>\n </Provider>\n )}\n </div>\n </MergeProvider>\n ),\n [\n context,\n classNames?.item?.item,\n classNames?.item?.bar,\n node,\n childrenProp,\n allowsExpansion,\n ],\n );\n\n return (\n <GridListItem\n {...rest}\n className={classNames?.item?.container}\n style={style}\n textValue={node.value.label}\n >\n {children}\n </GridListItem>\n );\n}\n"],"names":["RACButtonContext"],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
var treeClassNames = { tree: { container: "tree_treeClassNames_tree_container__kbtjn31b" }, empty: "tree_treeClassNames_empty__kbtjn31c", group: "tree_treeClassNames_group__kbtjn31d", indicator: { indicator: "tree_treeClassNames_indicator_indicator__kbtjn31e" }, item: { container: "tree_treeClassNames_item_container__kbtjn31f", item: "tree_treeClassNames_item_item__kbtjn31g", bar: "tree_treeClassNames_item_bar__kbtjn31h", lines: { container: "tree_treeClassNames_item_lines_container__kbtjn31i", button: "tree_treeClassNames_item_lines_button__kbtjn31j" }, visibility: { container: "tree_treeClassNames_item_visibility_container__kbtjn31k" }, expansion: { container: "tree_treeClassNames_item_expansion_container__kbtjn31l" }, description: "tree_treeClassNames_item_description__kbtjn31m", actions: { container: "tree_treeClassNames_item_actions_container__kbtjn31n" }, selection: { checkbox: { container: "tree_treeClassNames_item_selection_checkbox_container__kbtjn31o" } }, drag: { container: "tree_treeClassNames_item_drag_container__kbtjn31p" } } };
|
|
3
|
-
var treeColorVars = { bar: { background: "var(--bar-background__kbtjn33)", border: "var(--bar-border__kbtjn34)", color: "var(--bar-color__kbtjn35)" }, indicator: { background: "var(--indicator-background__kbtjn36)", border: "var(--indicator-border__kbtjn37)", color: "var(--indicator-color__kbtjn38)" } };
|
|
4
|
-
var treeContainers = { tree: "tree_treeContainers_tree__kbtjn30", group: "tree_treeContainers_group__kbtjn31", item: "tree_treeContainers_item__kbtjn32" };
|
|
5
|
-
var treeGroupStateVars = { count: "var(--count__kbtjn3k)", layout: "var(--layout__kbtjn3l)", isDropTarget: "var(--isDropTarget__kbtjn3m)", isEmpty: "var(--isEmpty__kbtjn3n)", isFocused: "var(--isFocused__kbtjn3o)", isFocusVisible: "var(--isFocusVisible__kbtjn3p)" };
|
|
6
|
-
var treeIndicatorStateVars = { dropPosition: "var(--dropPosition__kbtjn3q)", isDropTarget: "var(--isDropTarget__kbtjn3r)" };
|
|
7
|
-
var treeItemStateVars = { allowsDragging: "var(--allowsDragging__kbtjn3s)", count: "var(--count__kbtjn3t)", index: "var(--index__kbtjn3u)", selectionMode: "var(--selectionMode__kbtjn3v)", selectionBehavior: "var(--selectionBehavior__kbtjn3w)", isDisabled: "var(--isDisabled__kbtjn3x)", isDragging: "var(--isDragging__kbtjn3y)", isDropTarget: "var(--isDropTarget__kbtjn3z)", isExpanded: "var(--isExpanded__kbtjn310)", isFirstChild: "var(--isFirstChild__kbtjn311)", isFocused: "var(--isFocused__kbtjn312)", isFocusVisible: "var(--isFocusVisible__kbtjn313)", isGroup: "var(--isGroup__kbtjn314)", isHovered: "var(--isHovered__kbtjn315)", isLastChild: "var(--isLastChild__kbtjn316)", isPressed: "var(--isPressed__kbtjn317)", isSelected: "var(--isSelected__kbtjn318)", isViewable: "var(--isViewable__kbtjn319)", isVisible: "var(--isVisible__kbtjn31a)" };
|
|
8
|
-
var treeSpaceVars = { bar: { x: "var(--bar-x__kbtjn39)", y: "var(--bar-y__kbtjn3a)" }, description: { x: "var(--description-x__kbtjn3b)", y: "var(--description-y__kbtjn3c)" }, empty: { x: "var(--empty-x__kbtjn3d)", y: "var(--empty-y__kbtjn3e)" } };
|
|
9
|
-
var treeStateVars = { allowsDragging: "var(--allowsDragging__kbtjn3f)", allowsExpansion: "var(--allowsExpansion__kbtjn3g)", allowsVisibility: "var(--allowsVisibility__kbtjn3h)", showTreeLines: "var(--showTreeLines__kbtjn3i)", size: "var(--size__kbtjn3j)" };
|
|
10
|
-
|
|
11
|
-
export { treeClassNames, treeColorVars, treeContainers, treeGroupStateVars, treeIndicatorStateVars, treeItemStateVars, treeSpaceVars, treeStateVars };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree.vanilla.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import type { AriaLabelingProps } from '@react-types/shared';
|
|
2
|
-
import type { ReactNode } from 'react';
|
|
3
|
-
import type { DragAndDropOptions, DropPosition, GridListItemProps, GridListItemRenderProps, GridListProps, GridListRenderProps, Key, SlotProps } from 'react-aria-components';
|
|
4
|
-
import type { PartialDeep } from 'type-fest';
|
|
5
|
-
import type { AsType, OmitProtectedProps, RenderPropsChildren, TreeGroupNode, TreeNode, UseTreeOptions, UseTreeResult } from '../../types';
|
|
6
|
-
import type { ButtonClassNames, ButtonProps } from '../button/types';
|
|
7
|
-
import type { CheckboxClassNames } from '../checkbox/types';
|
|
8
|
-
import type { GroupClassNames } from '../group/types';
|
|
9
|
-
export type TreeClassNames = PartialDeep<{
|
|
10
|
-
tree: {
|
|
11
|
-
container: string;
|
|
12
|
-
tree: string;
|
|
13
|
-
};
|
|
14
|
-
empty: string;
|
|
15
|
-
group: string;
|
|
16
|
-
indicator: {
|
|
17
|
-
container: string;
|
|
18
|
-
indicator: string;
|
|
19
|
-
};
|
|
20
|
-
item: {
|
|
21
|
-
container: string;
|
|
22
|
-
item: string;
|
|
23
|
-
bar: string;
|
|
24
|
-
lines: ButtonClassNames;
|
|
25
|
-
visibility: ButtonClassNames;
|
|
26
|
-
expansion: ButtonClassNames;
|
|
27
|
-
description: string;
|
|
28
|
-
actions: GroupClassNames;
|
|
29
|
-
selection: CheckboxClassNames;
|
|
30
|
-
drag: ButtonClassNames;
|
|
31
|
-
};
|
|
32
|
-
}>;
|
|
33
|
-
export type TreeSizes = 'sm' | 'lg';
|
|
34
|
-
export type TreeMapping = {
|
|
35
|
-
actions: Partial<Record<TreeSizes, OmitProtectedProps<ButtonProps>>>;
|
|
36
|
-
button: Partial<Record<TreeSizes, OmitProtectedProps<ButtonProps>>>;
|
|
37
|
-
description: Partial<Record<TreeSizes, string>>;
|
|
38
|
-
drag: Partial<Record<TreeSizes, OmitProtectedProps<ButtonProps>>>;
|
|
39
|
-
expansion: Partial<Record<TreeSizes, OmitProtectedProps<ButtonProps>>>;
|
|
40
|
-
visibility: Partial<Record<TreeSizes, OmitProtectedProps<ButtonProps>>>;
|
|
41
|
-
};
|
|
42
|
-
export type TreeRenderProps<T> = UseTreeResult<T> & {
|
|
43
|
-
treeGroupProps: Omit<TreeGroupProps<T>, 'children'>;
|
|
44
|
-
};
|
|
45
|
-
export type TreeGroupRenderProps = Omit<GridListRenderProps, 'state'>;
|
|
46
|
-
export type TreeIndicatorRenderProps = {
|
|
47
|
-
/**
|
|
48
|
-
* Whether the drop indicator is currently the active drop target.
|
|
49
|
-
* @selector [data-drop-target]
|
|
50
|
-
*/
|
|
51
|
-
isDropTarget: boolean;
|
|
52
|
-
};
|
|
53
|
-
export type TreeItemRenderProps<T> = AsType<GridListItemRenderProps> & {
|
|
54
|
-
node: TreeNode<T>;
|
|
55
|
-
};
|
|
56
|
-
type BaseProps<T> = {
|
|
57
|
-
children: RenderPropsChildren<TreeItemRenderProps<T>>;
|
|
58
|
-
mapping?: TreeMapping;
|
|
59
|
-
classNames?: TreeClassNames;
|
|
60
|
-
};
|
|
61
|
-
type BaseTreeProps<T> = Pick<DragAndDropOptions, 'renderDragPreview' | 'renderDropIndicator'> & ({
|
|
62
|
-
/**
|
|
63
|
-
* Tree defaults to automatically rendering the base TreeGroup, pass true
|
|
64
|
-
* to switch rendering modes to enable renderProps children that provides
|
|
65
|
-
* access to the internal state context and allows for customization of
|
|
66
|
-
* layout, but requires that a TreeGroup be manually implemented
|
|
67
|
-
*/
|
|
68
|
-
provider?: false;
|
|
69
|
-
children: RenderPropsChildren<TreeItemRenderProps<T>>;
|
|
70
|
-
} | {
|
|
71
|
-
provider: true;
|
|
72
|
-
children: Exclude<RenderPropsChildren<TreeRenderProps<T>>, ReactNode>;
|
|
73
|
-
}) & {
|
|
74
|
-
allowsDragging?: boolean;
|
|
75
|
-
classNames?: TreeClassNames;
|
|
76
|
-
mapping?: TreeMapping;
|
|
77
|
-
showTreeLines?: boolean;
|
|
78
|
-
size?: TreeSizes;
|
|
79
|
-
};
|
|
80
|
-
type BaseTreeGroupProps<T> = {
|
|
81
|
-
id: Key;
|
|
82
|
-
nodes: TreeNode<T>[];
|
|
83
|
-
};
|
|
84
|
-
type BaseTreeItemProps<T> = {
|
|
85
|
-
index: number;
|
|
86
|
-
node: TreeNode<T>;
|
|
87
|
-
isFirstChild: boolean;
|
|
88
|
-
isLastChild: boolean;
|
|
89
|
-
};
|
|
90
|
-
export type TreeState = Required<Pick<TreeRenderProps<unknown>, 'allowsExpansion' | 'allowsVisibility'>> & Required<Pick<BaseTreeProps<unknown>, 'allowsDragging' | 'showTreeLines' | 'size'>>;
|
|
91
|
-
export type TreeGroupState = TreeGroupRenderProps & {
|
|
92
|
-
/**
|
|
93
|
-
* The number of items in group
|
|
94
|
-
*/
|
|
95
|
-
count: number;
|
|
96
|
-
};
|
|
97
|
-
export type TreeIndicatorState = TreeIndicatorRenderProps & {
|
|
98
|
-
dropPosition: DropPosition | 'root';
|
|
99
|
-
};
|
|
100
|
-
export type TreeItemState = Omit<TreeItemRenderProps<unknown>, 'node'> & Required<Pick<TreeGroupNode<unknown>, 'isExpanded' | 'isViewable' | 'isVisible'>> & Omit<BaseTreeItemProps<unknown>, 'node'> & {
|
|
101
|
-
/**
|
|
102
|
-
* The number of children
|
|
103
|
-
*/
|
|
104
|
-
count: number;
|
|
105
|
-
/**
|
|
106
|
-
* If item has children
|
|
107
|
-
*/
|
|
108
|
-
isGroup: boolean;
|
|
109
|
-
};
|
|
110
|
-
export type TreeStateContextValue<T> = UseTreeResult<T> & Pick<TreeProps<T>, 'allowsDragging' | 'classNames' | 'disabledBehavior' | 'keyboardNavigationBehavior' | 'renderDragPreview' | 'renderEmptyState' | 'selectionBehavior' | 'selectionMode' | 'showTreeLines' | 'size' | 'onAction' | 'onScroll'>;
|
|
111
|
-
export type TreeProps<T> = AriaLabelingProps & Omit<GridListProps<T>, 'id' | 'children' | 'className' | 'dependencies' | 'disallowEmptySelection' | 'items' | 'renderDropIndicator' | 'style'> & UseTreeOptions<T> & BaseTreeProps<T>;
|
|
112
|
-
export type TreeGroupProps<T> = Omit<GridListProps<T>, 'id' | 'children' | 'className' | 'dependencies' | 'items' | 'style'> & Pick<TreeGroupNode<T>, 'types'> & BaseTreeGroupProps<T> & BaseProps<T>;
|
|
113
|
-
export type TreeItemProps<T> = SlotProps & Omit<GridListItemProps, 'children' | 'className' | 'style'> & BaseTreeItemProps<T> & BaseProps<T>;
|
|
114
|
-
export {};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type DropItem, type DropOperation, type Key, type TextDropItem } from 'react-aria';
|
|
2
|
-
import type { DragAndDropOptions } from 'react-aria-components';
|
|
3
|
-
import type { TreeNode, UseTreeResult } from '../../types';
|
|
4
|
-
export declare function createDragAndDropHandlers<T>(id: Key, acceptedDragTypes: string[], lookup: Record<Key, TreeNode<T>>, actions: UseTreeResult<T>['actions']): DragAndDropOptions;
|
|
5
|
-
export declare function getDropOperation(): DropOperation;
|
|
6
|
-
export declare function processDroppedItems(items: DropItem[], acceptedDragTypes: string[]): Promise<any[]>;
|
|
7
|
-
export declare function processDroppedItem(item: TextDropItem, acceptedDragTypes: string[]): Promise<any>;
|
|
8
|
-
export declare function getDroppedItemPayload(item: TextDropItem, acceptedDragTypes: string[]): Promise<string>;
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { isTextDropItem } from 'react-aria';
|
|
2
|
-
|
|
3
|
-
function createDragAndDropHandlers(id, acceptedDragTypes, lookup, actions) {
|
|
4
|
-
return {
|
|
5
|
-
acceptedDragTypes,
|
|
6
|
-
getDropOperation,
|
|
7
|
-
getItems: (keys) => [...keys].map((key) => {
|
|
8
|
-
const node = lookup[key]?.value;
|
|
9
|
-
if (!node) {
|
|
10
|
-
return {};
|
|
11
|
-
}
|
|
12
|
-
const payload = JSON.stringify(node);
|
|
13
|
-
return [
|
|
14
|
-
"all",
|
|
15
|
-
"type" in node ? node.type : void 0,
|
|
16
|
-
..."types" in node ? node.types ?? [] : []
|
|
17
|
-
].reduce((acc, type) => {
|
|
18
|
-
if (!type)
|
|
19
|
-
return acc;
|
|
20
|
-
acc[`tree-${type}`] = payload;
|
|
21
|
-
return acc;
|
|
22
|
-
}, {});
|
|
23
|
-
}),
|
|
24
|
-
onDragEnd: () => actions.revertIsExpanded(),
|
|
25
|
-
onDragStart: ({ keys }) => actions.toggleIsExpanded(keys, false, true),
|
|
26
|
-
onInsert: ({ items, target }) => {
|
|
27
|
-
(async () => {
|
|
28
|
-
const processedItems = await processDroppedItems(items, acceptedDragTypes);
|
|
29
|
-
actions.remove(...processedItems.map((item) => item.id));
|
|
30
|
-
if (target.dropPosition === "before") {
|
|
31
|
-
actions.insertBefore(target.key, ...processedItems);
|
|
32
|
-
} else if (target.dropPosition === "after") {
|
|
33
|
-
actions.insertAfter(target.key, ...processedItems);
|
|
34
|
-
}
|
|
35
|
-
})();
|
|
36
|
-
},
|
|
37
|
-
onReorder({ keys, target }) {
|
|
38
|
-
const values = Array.from(keys).flatMap((key) => {
|
|
39
|
-
const value = lookup[key]?.value;
|
|
40
|
-
if (value) {
|
|
41
|
-
return [value];
|
|
42
|
-
}
|
|
43
|
-
return [];
|
|
44
|
-
});
|
|
45
|
-
actions.remove(...keys);
|
|
46
|
-
if (target.dropPosition === "before") {
|
|
47
|
-
actions.insertBefore(target.key, ...values);
|
|
48
|
-
} else if (target.dropPosition === "after") {
|
|
49
|
-
actions.insertAfter(target.key, ...values);
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
onRootDrop: ({ items }) => {
|
|
53
|
-
(async () => {
|
|
54
|
-
const processedItems = await processDroppedItems(items, acceptedDragTypes);
|
|
55
|
-
actions.remove(...processedItems.map((item) => item.id));
|
|
56
|
-
actions.append(id, ...processedItems);
|
|
57
|
-
})();
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
function getDropOperation() {
|
|
62
|
-
return "move";
|
|
63
|
-
}
|
|
64
|
-
async function processDroppedItems(items, acceptedDragTypes) {
|
|
65
|
-
return await Promise.all(items.filter(isTextDropItem).map((item) => processDroppedItem(item, acceptedDragTypes)));
|
|
66
|
-
}
|
|
67
|
-
async function processDroppedItem(item, acceptedDragTypes) {
|
|
68
|
-
const payload = await getDroppedItemPayload(item, acceptedDragTypes);
|
|
69
|
-
return payload ? JSON.parse(payload) : Promise.reject(new Error("No supported type payload"));
|
|
70
|
-
}
|
|
71
|
-
async function getDroppedItemPayload(item, acceptedDragTypes) {
|
|
72
|
-
return await Promise.any(acceptedDragTypes.map(async (type) => await item.getText(type) ?? Promise.reject(new Error("Unsupported type"))));
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export { createDragAndDropHandlers, getDropOperation, getDroppedItemPayload, processDroppedItem, processDroppedItems };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../src/components/tree/utils.ts"],"sourcesContent":["import {\n type DropItem,\n type DropOperation,\n type Key,\n type TextDropItem,\n isTextDropItem,\n} from 'react-aria';\nimport type { DragAndDropOptions } from 'react-aria-components';\nimport type { TreeNode, UseTreeResult } from '../../types';\n\nexport function createDragAndDropHandlers<T>(\n id: Key,\n acceptedDragTypes: string[],\n lookup: Record<Key, TreeNode<T>>,\n actions: UseTreeResult<T>['actions'],\n): DragAndDropOptions {\n return {\n acceptedDragTypes,\n getDropOperation,\n getItems: (keys: Set<Key>) =>\n [...keys].map((key) => {\n const node = lookup[key]?.value;\n\n if (!node) {\n return {};\n }\n\n const payload = JSON.stringify(node);\n\n return [\n 'all',\n 'type' in node ? node.type : undefined,\n ...('types' in node ? (node.types ?? []) : []),\n ].reduce<Record<string, string>>((acc, type) => {\n if (!type) return acc;\n\n acc[`tree-${type}`] = payload;\n\n return acc;\n }, {});\n }),\n onDragEnd: () => actions.revertIsExpanded(),\n onDragStart: ({ keys }) => actions.toggleIsExpanded(keys, false, true),\n onInsert: ({ items, target }) => {\n // Wrap async return function where void expected, fuck SQ\n (async () => {\n const processedItems = await processDroppedItems(\n items,\n acceptedDragTypes,\n );\n\n actions.remove(...processedItems.map((item) => item.id));\n\n if (target.dropPosition === 'before') {\n actions.insertBefore(target.key, ...processedItems);\n } else if (target.dropPosition === 'after') {\n actions.insertAfter(target.key, ...processedItems);\n }\n })();\n },\n onReorder({ keys, target }) {\n const values = Array.from(keys).flatMap((key) => {\n const value = lookup[key]?.value;\n\n if (value) {\n return [value];\n }\n\n return [];\n });\n\n actions.remove(...keys);\n\n if (target.dropPosition === 'before') {\n actions.insertBefore(target.key, ...values);\n } else if (target.dropPosition === 'after') {\n actions.insertAfter(target.key, ...values);\n }\n },\n onRootDrop: ({ items }) => {\n // See above, thanks SQ for ensuring high quality code\n (async () => {\n const processedItems = await processDroppedItems(\n items,\n acceptedDragTypes,\n );\n\n actions.remove(...processedItems.map((item) => item.id));\n\n actions.append(id, ...processedItems);\n })();\n },\n };\n}\n\nexport function getDropOperation(): DropOperation {\n return 'move';\n}\n\nexport async function processDroppedItems(\n items: DropItem[],\n acceptedDragTypes: string[],\n) {\n return await Promise.all(\n items\n .filter(isTextDropItem)\n .map((item) => processDroppedItem(item, acceptedDragTypes)),\n );\n}\n\nexport async function processDroppedItem(\n item: TextDropItem,\n acceptedDragTypes: string[],\n) {\n const payload = await getDroppedItemPayload(item, acceptedDragTypes);\n\n return payload\n ? JSON.parse(payload)\n : Promise.reject(new Error('No supported type payload'));\n}\n\nexport async function getDroppedItemPayload(\n item: TextDropItem,\n acceptedDragTypes: string[],\n) {\n return await Promise.any(\n acceptedDragTypes.map(\n async (type) =>\n (await item.getText(type)) ??\n Promise.reject(new Error('Unsupported type')),\n ),\n );\n}\n"],"names":[],"mappings":"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"}
|
package/dist/hooks/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { useCollectionRender } from './use-collection-render';
|
|
2
|
-
export { useContextProps } from './use-context-props';
|
|
3
|
-
export { DefaultsProvider, useDefaultProps, useDefaults, type DefaultsContext, type DefaultsProviderProps, } from './use-defaults';
|
|
4
|
-
export { usePropagatingPress } from './use-propagating-press';
|
|
5
|
-
export { useSlot } from './use-slot';
|
|
6
|
-
export { ThemeProvider, useTheme, type ThemeContext, type ThemeVars, } from './use-theme';
|
|
7
|
-
export { useTree } from './use-tree';
|
|
8
|
-
export { useUpdateEffect } from './use-update-effect';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useCollectionRender } from './use-collection-render';
|