@accelint/design-toolkit 8.1.2 → 9.0.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/README.md +1 -0
- package/catalog-info.yaml +5 -7
- package/dist/components/accordion/context.d.ts +19 -5
- package/dist/components/accordion/context.js +21 -1
- package/dist/components/accordion/context.js.map +1 -1
- package/dist/components/accordion/group.d.ts +25 -6
- package/dist/components/accordion/group.js +38 -1
- package/dist/components/accordion/group.js.map +1 -1
- package/dist/components/accordion/header.d.ts +22 -6
- package/dist/components/accordion/header.js +47 -1
- package/dist/components/accordion/header.js.map +1 -1
- package/dist/components/accordion/index.d.ts +23 -7
- package/dist/components/accordion/index.js +82 -1
- package/dist/components/accordion/index.js.map +1 -1
- package/dist/components/accordion/panel.d.ts +23 -6
- package/dist/components/accordion/panel.js +31 -1
- package/dist/components/accordion/panel.js.map +1 -1
- package/dist/components/accordion/styles.module.css +14 -2
- package/dist/components/accordion/trigger.d.ts +22 -6
- package/dist/components/accordion/trigger.js +47 -1
- package/dist/components/accordion/trigger.js.map +1 -1
- package/dist/components/accordion/types.d.ts +24 -10
- package/dist/components/accordion/types.js +12 -2
- package/dist/components/action-bar/index.d.ts +23 -5
- package/dist/components/action-bar/index.js +51 -1
- package/dist/components/action-bar/index.js.map +1 -1
- package/dist/components/action-bar/styles.module.css +1 -1
- package/dist/components/action-bar/types.d.ts +18 -4
- package/dist/components/action-bar/types.js +12 -2
- package/dist/components/avatar/context.d.ts +25 -8
- package/dist/components/avatar/context.js +28 -1
- package/dist/components/avatar/context.js.map +1 -1
- package/dist/components/avatar/index.d.ts +23 -6
- package/dist/components/avatar/index.js +92 -1
- package/dist/components/avatar/index.js.map +1 -1
- package/dist/components/avatar/styles.module.css +1 -1
- package/dist/components/avatar/types.d.ts +27 -13
- package/dist/components/avatar/types.js +12 -2
- package/dist/components/badge/context.d.ts +25 -8
- package/dist/components/badge/context.js +28 -1
- package/dist/components/badge/context.js.map +1 -1
- package/dist/components/badge/index.d.ts +23 -6
- package/dist/components/badge/index.js +61 -1
- package/dist/components/badge/index.js.map +1 -1
- package/dist/components/badge/styles.module.css +1 -1
- package/dist/components/badge/types.d.ts +25 -11
- package/dist/components/badge/types.js +12 -2
- package/dist/components/breadcrumbs/index.d.ts +22 -4
- package/dist/components/breadcrumbs/index.js +41 -1
- package/dist/components/breadcrumbs/index.js.map +1 -1
- package/dist/components/breadcrumbs/item.d.ts +23 -4
- package/dist/components/breadcrumbs/item.js +40 -1
- package/dist/components/breadcrumbs/item.js.map +1 -1
- package/dist/components/breadcrumbs/styles.module.css +1 -1
- package/dist/components/breadcrumbs/types.d.ts +30 -16
- package/dist/components/breadcrumbs/types.js +12 -2
- package/dist/components/button/context.d.ts +35 -11
- package/dist/components/button/context.js +42 -1
- package/dist/components/button/context.js.map +1 -1
- package/dist/components/button/index.d.ts +23 -7
- package/dist/components/button/index.js +74 -1
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/button/link.d.ts +23 -7
- package/dist/components/button/link.js +74 -1
- package/dist/components/button/link.js.map +1 -1
- package/dist/components/button/styles.module.css +1 -1
- package/dist/components/button/toggle.d.ts +23 -7
- package/dist/components/button/toggle.js +76 -1
- package/dist/components/button/toggle.js.map +1 -1
- package/dist/components/button/types.d.ts +22 -9
- package/dist/components/button/types.js +12 -2
- package/dist/components/checkbox/context.d.ts +20 -7
- package/dist/components/checkbox/context.js +22 -1
- package/dist/components/checkbox/context.js.map +1 -1
- package/dist/components/checkbox/group.d.ts +21 -7
- package/dist/components/checkbox/group.js +41 -1
- package/dist/components/checkbox/group.js.map +1 -1
- package/dist/components/checkbox/index.d.ts +23 -8
- package/dist/components/checkbox/index.js +78 -1
- package/dist/components/checkbox/index.js.map +1 -1
- package/dist/components/checkbox/styles.module.css +1 -1
- package/dist/components/checkbox/types.d.ts +31 -17
- package/dist/components/checkbox/types.js +12 -2
- package/dist/components/chip/context.d.ts +25 -7
- package/dist/components/chip/context.js +28 -1
- package/dist/components/chip/context.js.map +1 -1
- package/dist/components/chip/deletable.d.ts +21 -5
- package/dist/components/chip/deletable.js +53 -1
- package/dist/components/chip/deletable.js.map +1 -1
- package/dist/components/chip/index.d.ts +52 -17
- package/dist/components/chip/index.js +94 -1
- package/dist/components/chip/index.js.map +1 -1
- package/dist/components/chip/list.d.ts +23 -6
- package/dist/components/chip/list.js +48 -1
- package/dist/components/chip/list.js.map +1 -1
- package/dist/components/chip/selectable.d.ts +21 -5
- package/dist/components/chip/selectable.js +35 -1
- package/dist/components/chip/selectable.js.map +1 -1
- package/dist/components/chip/styles.module.css +1 -1
- package/dist/components/chip/types.d.ts +25 -11
- package/dist/components/chip/types.js +12 -2
- package/dist/components/classification-badge/context.d.ts +25 -8
- package/dist/components/classification-badge/context.js +28 -1
- package/dist/components/classification-badge/context.js.map +1 -1
- package/dist/components/classification-badge/index.d.ts +22 -6
- package/dist/components/classification-badge/index.js +58 -1
- package/dist/components/classification-badge/index.js.map +1 -1
- package/dist/components/classification-badge/styles.module.css +1 -1
- package/dist/components/classification-badge/types.d.ts +19 -5
- package/dist/components/classification-badge/types.js +12 -2
- package/dist/components/classification-banner/context.d.ts +25 -7
- package/dist/components/classification-banner/context.js +28 -1
- package/dist/components/classification-banner/context.js.map +1 -1
- package/dist/components/classification-banner/index.d.ts +22 -5
- package/dist/components/classification-banner/index.js +54 -1
- package/dist/components/classification-banner/index.js.map +1 -1
- package/dist/components/classification-banner/styles.module.css +1 -1
- package/dist/components/classification-banner/types.d.ts +18 -4
- package/dist/components/classification-banner/types.js +12 -2
- package/dist/components/clock/index.d.ts +23 -5
- package/dist/components/clock/index.js +65 -1
- package/dist/components/clock/index.js.map +1 -1
- package/dist/components/clock/types.d.ts +18 -4
- package/dist/components/clock/types.js +12 -2
- package/dist/components/color-picker/index.d.ts +24 -6
- package/dist/components/color-picker/index.js +74 -1
- package/dist/components/color-picker/index.js.map +1 -1
- package/dist/components/color-picker/styles.module.css +1 -1
- package/dist/components/color-picker/types.d.ts +24 -10
- package/dist/components/color-picker/types.js +12 -2
- package/dist/components/combobox-field/context.d.ts +26 -10
- package/dist/components/combobox-field/context.js +28 -1
- package/dist/components/combobox-field/context.js.map +1 -1
- package/dist/components/combobox-field/index.d.ts +23 -10
- package/dist/components/combobox-field/index.js +91 -1
- package/dist/components/combobox-field/index.js.map +1 -1
- package/dist/components/combobox-field/styles.module.css +1 -1
- package/dist/components/combobox-field/types.d.ts +34 -22
- package/dist/components/combobox-field/types.js +12 -2
- package/dist/components/coordinate-field/context.d.ts +34 -13
- package/dist/components/coordinate-field/context.js +102 -1
- package/dist/components/coordinate-field/context.js.map +1 -1
- package/dist/components/coordinate-field/coordinate-utils.d.ts +28 -16
- package/dist/components/coordinate-field/coordinate-utils.js +792 -1
- package/dist/components/coordinate-field/coordinate-utils.js.map +1 -1
- package/dist/components/coordinate-field/index.d.ts +23 -6
- package/dist/components/coordinate-field/index.js +302 -1
- package/dist/components/coordinate-field/index.js.map +1 -1
- package/dist/components/coordinate-field/segment-configs.d.ts +16 -25
- package/dist/components/coordinate-field/segment-configs.js +474 -1
- package/dist/components/coordinate-field/segment-configs.js.map +1 -1
- package/dist/components/coordinate-field/segment.d.ts +38 -6
- package/dist/components/coordinate-field/segment.js +142 -1
- package/dist/components/coordinate-field/segment.js.map +1 -1
- package/dist/components/coordinate-field/styles.module.css +5 -1
- package/dist/components/coordinate-field/types.d.ts +152 -138
- package/dist/components/coordinate-field/types.js +48 -1
- package/dist/components/coordinate-field/types.js.map +1 -1
- package/dist/components/coordinate-field/width-utils.d.ts +16 -4
- package/dist/components/coordinate-field/width-utils.js +52 -1
- package/dist/components/coordinate-field/width-utils.js.map +1 -1
- package/dist/components/date-field/index.d.ts +34 -6
- package/dist/components/date-field/index.js +133 -1
- package/dist/components/date-field/index.js.map +1 -1
- package/dist/components/date-field/styles.module.css +1 -1
- package/dist/components/date-field/types.d.ts +34 -20
- package/dist/components/date-field/types.js +12 -2
- package/dist/components/details-list/context.d.ts +25 -7
- package/dist/components/details-list/context.js +28 -1
- package/dist/components/details-list/context.js.map +1 -1
- package/dist/components/details-list/index.d.ts +23 -6
- package/dist/components/details-list/index.js +69 -1
- package/dist/components/details-list/index.js.map +1 -1
- package/dist/components/details-list/label.d.ts +18 -5
- package/dist/components/details-list/label.js +28 -1
- package/dist/components/details-list/label.js.map +1 -1
- package/dist/components/details-list/styles.module.css +1 -1
- package/dist/components/details-list/types.d.ts +24 -10
- package/dist/components/details-list/types.js +12 -2
- package/dist/components/details-list/value.d.ts +18 -5
- package/dist/components/details-list/value.js +28 -1
- package/dist/components/details-list/value.js.map +1 -1
- package/dist/components/dialog/content.d.ts +21 -3
- package/dist/components/dialog/content.js +28 -1
- package/dist/components/dialog/content.js.map +1 -1
- package/dist/components/dialog/context.d.ts +19 -4
- package/dist/components/dialog/context.js +21 -1
- package/dist/components/dialog/context.js.map +1 -1
- package/dist/components/dialog/footer.d.ts +21 -3
- package/dist/components/dialog/footer.js +42 -1
- package/dist/components/dialog/footer.js.map +1 -1
- package/dist/components/dialog/index.d.ts +23 -6
- package/dist/components/dialog/index.js +72 -1
- package/dist/components/dialog/index.js.map +1 -1
- package/dist/components/dialog/styles.module.css +1 -1
- package/dist/components/dialog/title.d.ts +21 -3
- package/dist/components/dialog/title.js +30 -1
- package/dist/components/dialog/title.js.map +1 -1
- package/dist/components/dialog/trigger.d.ts +17 -2
- package/dist/components/dialog/trigger.js +23 -1
- package/dist/components/dialog/trigger.js.map +1 -1
- package/dist/components/dialog/types.d.ts +25 -11
- package/dist/components/dialog/types.js +12 -2
- package/dist/components/divider/context.d.ts +25 -7
- package/dist/components/divider/context.js +28 -1
- package/dist/components/divider/context.js.map +1 -1
- package/dist/components/divider/index.d.ts +22 -5
- package/dist/components/divider/index.js +59 -1
- package/dist/components/divider/index.js.map +1 -1
- package/dist/components/divider/styles.module.css +1 -1
- package/dist/components/divider/types.d.ts +22 -8
- package/dist/components/divider/types.js +12 -2
- package/dist/components/drawer/back.d.ts +17 -2
- package/dist/components/drawer/back.js +36 -1
- package/dist/components/drawer/back.js.map +1 -1
- package/dist/components/drawer/close.d.ts +17 -2
- package/dist/components/drawer/close.js +33 -1
- package/dist/components/drawer/close.js.map +1 -1
- package/dist/components/drawer/content.d.ts +20 -3
- package/dist/components/drawer/content.js +27 -1
- package/dist/components/drawer/content.js.map +1 -1
- package/dist/components/drawer/context.d.ts +35 -27
- package/dist/components/drawer/context.js +47 -1
- package/dist/components/drawer/context.js.map +1 -1
- package/dist/components/drawer/events.d.ts +6 -4
- package/dist/components/drawer/events.js +23 -1
- package/dist/components/drawer/events.js.map +1 -1
- package/dist/components/drawer/footer.d.ts +20 -3
- package/dist/components/drawer/footer.js +27 -1
- package/dist/components/drawer/footer.js.map +1 -1
- package/dist/components/drawer/header-title.d.ts +22 -14
- package/dist/components/drawer/header-title.js +34 -1
- package/dist/components/drawer/header-title.js.map +1 -1
- package/dist/components/drawer/header.d.ts +23 -3
- package/dist/components/drawer/header.js +44 -1
- package/dist/components/drawer/header.js.map +1 -1
- package/dist/components/drawer/index.d.ts +29 -14
- package/dist/components/drawer/index.js +105 -1
- package/dist/components/drawer/index.js.map +1 -1
- package/dist/components/drawer/layout-main.d.ts +20 -3
- package/dist/components/drawer/layout-main.js +27 -1
- package/dist/components/drawer/layout-main.js.map +1 -1
- package/dist/components/drawer/layout.d.ts +22 -13
- package/dist/components/drawer/layout.js +29 -1
- package/dist/components/drawer/layout.js.map +1 -1
- package/dist/components/drawer/menu-item.d.ts +25 -13
- package/dist/components/drawer/menu-item.js +64 -1
- package/dist/components/drawer/menu-item.js.map +1 -1
- package/dist/components/drawer/menu.d.ts +22 -13
- package/dist/components/drawer/menu.js +28 -1
- package/dist/components/drawer/menu.js.map +1 -1
- package/dist/components/drawer/panel.d.ts +20 -3
- package/dist/components/drawer/panel.js +27 -1
- package/dist/components/drawer/panel.js.map +1 -1
- package/dist/components/drawer/styles.module.css +1 -1
- package/dist/components/drawer/trigger.d.ts +21 -13
- package/dist/components/drawer/trigger.js +41 -1
- package/dist/components/drawer/trigger.js.map +1 -1
- package/dist/components/drawer/types.d.ts +178 -165
- package/dist/components/drawer/types.js +12 -2
- package/dist/components/drawer/view.d.ts +24 -8
- package/dist/components/drawer/view.js +45 -1
- package/dist/components/drawer/view.js.map +1 -1
- package/dist/components/flashcard/index.d.ts +32 -19
- package/dist/components/flashcard/index.js +140 -1
- package/dist/components/flashcard/index.js.map +1 -1
- package/dist/components/flashcard/styles.module.css +1 -1
- package/dist/components/flashcard/types.d.ts +21 -8
- package/dist/components/flashcard/types.js +12 -2
- package/dist/components/hero/context.d.ts +19 -4
- package/dist/components/hero/context.js +21 -1
- package/dist/components/hero/context.js.map +1 -1
- package/dist/components/hero/index.d.ts +23 -5
- package/dist/components/hero/index.js +79 -1
- package/dist/components/hero/index.js.map +1 -1
- package/dist/components/hero/styles.module.css +1 -1
- package/dist/components/hero/subtitle.d.ts +18 -3
- package/dist/components/hero/subtitle.js +21 -1
- package/dist/components/hero/subtitle.js.map +1 -1
- package/dist/components/hero/title.d.ts +18 -3
- package/dist/components/hero/title.js +21 -1
- package/dist/components/hero/title.js.map +1 -1
- package/dist/components/hero/types.d.ts +24 -10
- package/dist/components/hero/types.js +12 -2
- package/dist/components/hotkey/context.d.ts +25 -7
- package/dist/components/hotkey/context.js +28 -1
- package/dist/components/hotkey/context.js.map +1 -1
- package/dist/components/hotkey/index.d.ts +24 -5
- package/dist/components/hotkey/index.js +65 -1
- package/dist/components/hotkey/index.js.map +1 -1
- package/dist/components/hotkey/set.d.ts +21 -3
- package/dist/components/hotkey/set.js +32 -1
- package/dist/components/hotkey/set.js.map +1 -1
- package/dist/components/hotkey/styles.module.css +1 -1
- package/dist/components/hotkey/types.d.ts +18 -4
- package/dist/components/hotkey/types.js +12 -2
- package/dist/components/icon/context.d.ts +25 -7
- package/dist/components/icon/context.js +28 -1
- package/dist/components/icon/context.js.map +1 -1
- package/dist/components/icon/index.d.ts +23 -5
- package/dist/components/icon/index.js +64 -1
- package/dist/components/icon/index.js.map +1 -1
- package/dist/components/icon/styles.module.css +1 -1
- package/dist/components/icon/types.d.ts +18 -4
- package/dist/components/icon/types.js +12 -2
- package/dist/components/input/context.d.ts +19 -6
- package/dist/components/input/context.js +21 -1
- package/dist/components/input/context.js.map +1 -1
- package/dist/components/input/index.d.ts +23 -8
- package/dist/components/input/index.js +126 -1
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/input/styles.module.css +1 -1
- package/dist/components/input/types.d.ts +33 -20
- package/dist/components/input/types.js +12 -2
- package/dist/components/kanban/card-body.d.ts +22 -9
- package/dist/components/kanban/card-body.js +29 -1
- package/dist/components/kanban/card-body.js.map +1 -1
- package/dist/components/kanban/card-header-actions.d.ts +22 -9
- package/dist/components/kanban/card-header-actions.js +29 -1
- package/dist/components/kanban/card-header-actions.js.map +1 -1
- package/dist/components/kanban/card-header-title.d.ts +22 -9
- package/dist/components/kanban/card-header-title.js +29 -1
- package/dist/components/kanban/card-header-title.js.map +1 -1
- package/dist/components/kanban/card-header.d.ts +22 -9
- package/dist/components/kanban/card-header.js +30 -1
- package/dist/components/kanban/card-header.js.map +1 -1
- package/dist/components/kanban/card.d.ts +24 -9
- package/dist/components/kanban/card.js +48 -1
- package/dist/components/kanban/card.js.map +1 -1
- package/dist/components/kanban/column-actions.d.ts +22 -9
- package/dist/components/kanban/column-actions.js +37 -1
- package/dist/components/kanban/column-actions.js.map +1 -1
- package/dist/components/kanban/column-container.d.ts +22 -9
- package/dist/components/kanban/column-container.js +29 -1
- package/dist/components/kanban/column-container.js.map +1 -1
- package/dist/components/kanban/column-content.d.ts +23 -9
- package/dist/components/kanban/column-content.js +34 -1
- package/dist/components/kanban/column-content.js.map +1 -1
- package/dist/components/kanban/column-header-actions.d.ts +23 -9
- package/dist/components/kanban/column-header-actions.js +30 -1
- package/dist/components/kanban/column-header-actions.js.map +1 -1
- package/dist/components/kanban/column-header-drag-handle.d.ts +17 -2
- package/dist/components/kanban/column-header-drag-handle.js +29 -1
- package/dist/components/kanban/column-header-drag-handle.js.map +1 -1
- package/dist/components/kanban/column-header-title.d.ts +22 -9
- package/dist/components/kanban/column-header-title.js +29 -1
- package/dist/components/kanban/column-header-title.js.map +1 -1
- package/dist/components/kanban/column-header.d.ts +22 -9
- package/dist/components/kanban/column-header.js +29 -1
- package/dist/components/kanban/column-header.js.map +1 -1
- package/dist/components/kanban/column.d.ts +23 -9
- package/dist/components/kanban/column.js +34 -1
- package/dist/components/kanban/column.js.map +1 -1
- package/dist/components/kanban/context.d.ts +77 -58
- package/dist/components/kanban/context.js +201 -1
- package/dist/components/kanban/context.js.map +1 -1
- package/dist/components/kanban/header-actions.d.ts +22 -9
- package/dist/components/kanban/header-actions.js +29 -1
- package/dist/components/kanban/header-actions.js.map +1 -1
- package/dist/components/kanban/header-search.d.ts +21 -9
- package/dist/components/kanban/header-search.js +29 -1
- package/dist/components/kanban/header-search.js.map +1 -1
- package/dist/components/kanban/header-title.d.ts +22 -9
- package/dist/components/kanban/header-title.js +30 -1
- package/dist/components/kanban/header-title.js.map +1 -1
- package/dist/components/kanban/header.d.ts +22 -9
- package/dist/components/kanban/header.js +29 -1
- package/dist/components/kanban/header.js.map +1 -1
- package/dist/components/kanban/index.d.ts +15 -9
- package/dist/components/kanban/index.js +16 -2
- package/dist/components/kanban/kanban.d.ts +27 -13
- package/dist/components/kanban/kanban.js +81 -1
- package/dist/components/kanban/kanban.js.map +1 -1
- package/dist/components/kanban/mock-data.d.ts +11 -9
- package/dist/components/kanban/mock-data.js +89 -1
- package/dist/components/kanban/mock-data.js.map +1 -1
- package/dist/components/kanban/styles.module.css +1 -1
- package/dist/components/kanban/types.d.ts +39 -29
- package/dist/components/kanban/types.js +12 -2
- package/dist/components/label/context.d.ts +25 -7
- package/dist/components/label/context.js +28 -1
- package/dist/components/label/context.js.map +1 -1
- package/dist/components/label/index.d.ts +23 -6
- package/dist/components/label/index.js +54 -1
- package/dist/components/label/index.js.map +1 -1
- package/dist/components/label/styles.module.css +1 -1
- package/dist/components/label/types.d.ts +20 -6
- package/dist/components/label/types.js +12 -2
- package/dist/components/lines/index.d.ts +23 -5
- package/dist/components/lines/index.js +37 -1
- package/dist/components/lines/index.js.map +1 -1
- package/dist/components/lines/styles.module.css +1 -1
- package/dist/components/lines/types.d.ts +20 -6
- package/dist/components/lines/types.js +12 -2
- package/dist/components/link/context.d.ts +22 -6
- package/dist/components/link/context.js +27 -1
- package/dist/components/link/context.js.map +1 -1
- package/dist/components/link/index.d.ts +22 -6
- package/dist/components/link/index.js +42 -1
- package/dist/components/link/index.js.map +1 -1
- package/dist/components/link/styles.module.css +1 -1
- package/dist/components/link/types.d.ts +20 -6
- package/dist/components/link/types.js +12 -2
- package/dist/components/menu/context.d.ts +19 -5
- package/dist/components/menu/context.js +21 -1
- package/dist/components/menu/context.js.map +1 -1
- package/dist/components/menu/index.d.ts +47 -7
- package/dist/components/menu/index.js +128 -1
- package/dist/components/menu/index.js.map +1 -1
- package/dist/components/menu/item-description.d.ts +22 -3
- package/dist/components/menu/item-description.js +31 -1
- package/dist/components/menu/item-description.js.map +1 -1
- package/dist/components/menu/item-label.d.ts +22 -3
- package/dist/components/menu/item-label.js +31 -1
- package/dist/components/menu/item-label.js.map +1 -1
- package/dist/components/menu/item.d.ts +23 -6
- package/dist/components/menu/item.js +52 -1
- package/dist/components/menu/item.js.map +1 -1
- package/dist/components/menu/section.d.ts +24 -6
- package/dist/components/menu/section.js +36 -1
- package/dist/components/menu/section.js.map +1 -1
- package/dist/components/menu/separator.d.ts +21 -3
- package/dist/components/menu/separator.js +29 -1
- package/dist/components/menu/separator.js.map +1 -1
- package/dist/components/menu/styles.module.css +1 -1
- package/dist/components/menu/submenu.d.ts +18 -3
- package/dist/components/menu/submenu.js +21 -1
- package/dist/components/menu/submenu.js.map +1 -1
- package/dist/components/menu/trigger.d.ts +17 -2
- package/dist/components/menu/trigger.js +21 -1
- package/dist/components/menu/trigger.js.map +1 -1
- package/dist/components/menu/types.d.ts +38 -24
- package/dist/components/menu/types.js +12 -2
- package/dist/components/notice/events.d.ts +8 -6
- package/dist/components/notice/events.js +25 -1
- package/dist/components/notice/events.js.map +1 -1
- package/dist/components/notice/index.d.ts +32 -10
- package/dist/components/notice/index.js +88 -1
- package/dist/components/notice/index.js.map +1 -1
- package/dist/components/notice/list.d.ts +29 -10
- package/dist/components/notice/list.js +102 -1
- package/dist/components/notice/list.js.map +1 -1
- package/dist/components/notice/notice-icon.d.ts +21 -10
- package/dist/components/notice/notice-icon.js +34 -1
- package/dist/components/notice/notice-icon.js.map +1 -1
- package/dist/components/notice/styles.module.css +1 -1
- package/dist/components/notice/types.d.ts +67 -55
- package/dist/components/notice/types.js +12 -2
- package/dist/components/notice/utils.d.ts +17 -1
- package/dist/components/notice/utils.js +24 -1
- package/dist/components/notice/utils.js.map +1 -1
- package/dist/components/options/context.d.ts +19 -5
- package/dist/components/options/context.js +21 -1
- package/dist/components/options/context.js.map +1 -1
- package/dist/components/options/index.d.ts +23 -7
- package/dist/components/options/index.js +76 -1
- package/dist/components/options/index.js.map +1 -1
- package/dist/components/options/item-content.d.ts +20 -3
- package/dist/components/options/item-content.js +27 -1
- package/dist/components/options/item-content.js.map +1 -1
- package/dist/components/options/item-description.d.ts +20 -3
- package/dist/components/options/item-description.js +29 -1
- package/dist/components/options/item-description.js.map +1 -1
- package/dist/components/options/item-label.d.ts +20 -3
- package/dist/components/options/item-label.js +29 -1
- package/dist/components/options/item-label.js.map +1 -1
- package/dist/components/options/item.d.ts +24 -6
- package/dist/components/options/item.js +38 -1
- package/dist/components/options/item.js.map +1 -1
- package/dist/components/options/section.d.ts +22 -6
- package/dist/components/options/section.js +35 -1
- package/dist/components/options/section.js.map +1 -1
- package/dist/components/options/styles.module.css +1 -1
- package/dist/components/options/types.d.ts +32 -18
- package/dist/components/options/types.js +12 -2
- package/dist/components/pagination/context.d.ts +18 -6
- package/dist/components/pagination/context.js +26 -1
- package/dist/components/pagination/context.js.map +1 -1
- package/dist/components/pagination/index.d.ts +28 -8
- package/dist/components/pagination/index.js +63 -1
- package/dist/components/pagination/index.js.map +1 -1
- package/dist/components/pagination/next.d.ts +21 -7
- package/dist/components/pagination/next.js +44 -1
- package/dist/components/pagination/next.js.map +1 -1
- package/dist/components/pagination/pages.d.ts +21 -7
- package/dist/components/pagination/pages.js +45 -1
- package/dist/components/pagination/pages.js.map +1 -1
- package/dist/components/pagination/prev.d.ts +21 -7
- package/dist/components/pagination/prev.js +44 -1
- package/dist/components/pagination/prev.js.map +1 -1
- package/dist/components/pagination/styles.module.css +1 -1
- package/dist/components/pagination/types.d.ts +36 -24
- package/dist/components/pagination/types.js +12 -2
- package/dist/components/pagination/utils.d.ts +5 -3
- package/dist/components/pagination/utils.js +59 -1
- package/dist/components/pagination/utils.js.map +1 -1
- package/dist/components/popover/content.d.ts +21 -3
- package/dist/components/popover/content.js +28 -1
- package/dist/components/popover/content.js.map +1 -1
- package/dist/components/popover/footer.d.ts +21 -3
- package/dist/components/popover/footer.js +28 -1
- package/dist/components/popover/footer.js.map +1 -1
- package/dist/components/popover/index.d.ts +24 -6
- package/dist/components/popover/index.js +64 -1
- package/dist/components/popover/index.js.map +1 -1
- package/dist/components/popover/styles.module.css +1 -1
- package/dist/components/popover/title.d.ts +21 -3
- package/dist/components/popover/title.js +30 -1
- package/dist/components/popover/title.js.map +1 -1
- package/dist/components/popover/trigger.d.ts +22 -5
- package/dist/components/popover/trigger.js +33 -1
- package/dist/components/popover/trigger.js.map +1 -1
- package/dist/components/popover/types.d.ts +23 -9
- package/dist/components/popover/types.js +12 -2
- package/dist/components/query-builder/action-element.d.ts +23 -3
- package/dist/components/query-builder/action-element.js +36 -1
- package/dist/components/query-builder/action-element.js.map +1 -1
- package/dist/components/query-builder/actions.d.ts +32 -5
- package/dist/components/query-builder/actions.js +53 -1
- package/dist/components/query-builder/actions.js.map +1 -1
- package/dist/components/query-builder/combinator-selector.d.ts +22 -3
- package/dist/components/query-builder/combinator-selector.js +47 -1
- package/dist/components/query-builder/combinator-selector.js.map +1 -1
- package/dist/components/query-builder/constants.d.ts +3 -1
- package/dist/components/query-builder/constants.js +24 -1
- package/dist/components/query-builder/constants.js.map +1 -1
- package/dist/components/query-builder/index.d.ts +26 -7
- package/dist/components/query-builder/index.js +119 -1
- package/dist/components/query-builder/index.js.map +1 -1
- package/dist/components/query-builder/rule-group.d.ts +20 -5
- package/dist/components/query-builder/rule-group.js +167 -1
- package/dist/components/query-builder/rule-group.js.map +1 -1
- package/dist/components/query-builder/rule.d.ts +18 -3
- package/dist/components/query-builder/rule.js +148 -1
- package/dist/components/query-builder/rule.js.map +1 -1
- package/dist/components/query-builder/styles.module.css +1 -1
- package/dist/components/query-builder/types.d.ts +21 -7
- package/dist/components/query-builder/types.js +12 -2
- package/dist/components/query-builder/utils.d.ts +16 -2
- package/dist/components/query-builder/utils.js +26 -1
- package/dist/components/query-builder/utils.js.map +1 -1
- package/dist/components/query-builder/value-editor.d.ts +18 -3
- package/dist/components/query-builder/value-editor.js +156 -1
- package/dist/components/query-builder/value-editor.js.map +1 -1
- package/dist/components/query-builder/value-selector.d.ts +18 -3
- package/dist/components/query-builder/value-selector.js +57 -1
- package/dist/components/query-builder/value-selector.js.map +1 -1
- package/dist/components/radio/context.d.ts +20 -6
- package/dist/components/radio/context.js +26 -1
- package/dist/components/radio/context.js.map +1 -1
- package/dist/components/radio/group.d.ts +22 -7
- package/dist/components/radio/group.js +46 -1
- package/dist/components/radio/group.js.map +1 -1
- package/dist/components/radio/index.d.ts +24 -7
- package/dist/components/radio/index.js +64 -1
- package/dist/components/radio/index.js.map +1 -1
- package/dist/components/radio/styles.module.css +1 -1
- package/dist/components/radio/types.d.ts +29 -15
- package/dist/components/radio/types.js +12 -2
- package/dist/components/search-field/context.d.ts +26 -10
- package/dist/components/search-field/context.js +38 -1
- package/dist/components/search-field/context.js.map +1 -1
- package/dist/components/search-field/index.d.ts +28 -12
- package/dist/components/search-field/index.js +88 -1
- package/dist/components/search-field/index.js.map +1 -1
- package/dist/components/search-field/styles.module.css +1 -2
- package/dist/components/search-field/types.d.ts +31 -18
- package/dist/components/search-field/types.js +12 -2
- package/dist/components/select-field/context.d.ts +25 -9
- package/dist/components/select-field/context.js +28 -1
- package/dist/components/select-field/context.js.map +1 -1
- package/dist/components/select-field/index.d.ts +23 -9
- package/dist/components/select-field/index.js +119 -1
- package/dist/components/select-field/index.js.map +1 -1
- package/dist/components/select-field/styles.module.css +1 -1
- package/dist/components/select-field/types.d.ts +32 -19
- package/dist/components/select-field/types.js +12 -2
- package/dist/components/sidenav/avatar.d.ts +23 -9
- package/dist/components/sidenav/avatar.js +48 -1
- package/dist/components/sidenav/avatar.js.map +1 -1
- package/dist/components/sidenav/content.d.ts +23 -9
- package/dist/components/sidenav/content.js +39 -1
- package/dist/components/sidenav/content.js.map +1 -1
- package/dist/components/sidenav/context.d.ts +18 -7
- package/dist/components/sidenav/context.js +25 -1
- package/dist/components/sidenav/context.js.map +1 -1
- package/dist/components/sidenav/events.d.ts +6 -4
- package/dist/components/sidenav/events.js +23 -1
- package/dist/components/sidenav/events.js.map +1 -1
- package/dist/components/sidenav/footer.d.ts +18 -9
- package/dist/components/sidenav/footer.js +27 -1
- package/dist/components/sidenav/footer.js.map +1 -1
- package/dist/components/sidenav/header.d.ts +23 -9
- package/dist/components/sidenav/header.js +50 -1
- package/dist/components/sidenav/header.js.map +1 -1
- package/dist/components/sidenav/index.d.ts +26 -9
- package/dist/components/sidenav/index.js +112 -1
- package/dist/components/sidenav/index.js.map +1 -1
- package/dist/components/sidenav/item.d.ts +24 -9
- package/dist/components/sidenav/item.js +54 -1
- package/dist/components/sidenav/item.js.map +1 -1
- package/dist/components/sidenav/link.d.ts +24 -9
- package/dist/components/sidenav/link.js +58 -1
- package/dist/components/sidenav/link.js.map +1 -1
- package/dist/components/sidenav/menu-item.d.ts +22 -9
- package/dist/components/sidenav/menu-item.js +34 -1
- package/dist/components/sidenav/menu-item.js.map +1 -1
- package/dist/components/sidenav/menu.d.ts +25 -9
- package/dist/components/sidenav/menu.js +87 -1
- package/dist/components/sidenav/menu.js.map +1 -1
- package/dist/components/sidenav/styles.module.css +9 -1
- package/dist/components/sidenav/trigger.d.ts +23 -9
- package/dist/components/sidenav/trigger.js +38 -1
- package/dist/components/sidenav/trigger.js.map +1 -1
- package/dist/components/sidenav/types.d.ts +55 -41
- package/dist/components/sidenav/types.js +12 -2
- package/dist/components/skeleton/index.d.ts +23 -5
- package/dist/components/skeleton/index.js +57 -1
- package/dist/components/skeleton/index.js.map +1 -1
- package/dist/components/skeleton/styles.module.css +1 -1
- package/dist/components/skeleton/types.d.ts +18 -4
- package/dist/components/skeleton/types.js +12 -2
- package/dist/components/slider/index.d.ts +63 -5
- package/dist/components/slider/index.js +269 -1
- package/dist/components/slider/index.js.map +1 -1
- package/dist/components/slider/styles.module.css +67 -9
- package/dist/components/slider/types.d.ts +65 -19
- package/dist/components/slider/types.js +12 -2
- package/dist/components/switch/context.d.ts +26 -8
- package/dist/components/switch/context.js +38 -1
- package/dist/components/switch/context.js.map +1 -1
- package/dist/components/switch/index.d.ts +23 -6
- package/dist/components/switch/index.js +73 -1
- package/dist/components/switch/index.js.map +1 -1
- package/dist/components/switch/styles.module.css +1 -1
- package/dist/components/switch/types.d.ts +24 -10
- package/dist/components/switch/types.js +12 -2
- package/dist/components/table/body.d.ts +23 -6
- package/dist/components/table/body.js +29 -1
- package/dist/components/table/body.js.map +1 -1
- package/dist/components/table/cell.d.ts +23 -6
- package/dist/components/table/cell.js +39 -1
- package/dist/components/table/cell.js.map +1 -1
- package/dist/components/table/constants/table.d.ts +22 -8
- package/dist/components/table/constants/table.js +30 -1
- package/dist/components/table/constants/table.js.map +1 -1
- package/dist/components/table/context.d.ts +17 -5
- package/dist/components/table/context.js +34 -1
- package/dist/components/table/context.js.map +1 -1
- package/dist/components/table/header-cell.d.ts +23 -6
- package/dist/components/table/header-cell.js +113 -1
- package/dist/components/table/header-cell.js.map +1 -1
- package/dist/components/table/header.d.ts +24 -6
- package/dist/components/table/header.js +28 -1
- package/dist/components/table/header.js.map +1 -1
- package/dist/components/table/index.d.ts +40 -8
- package/dist/components/table/index.js +250 -1
- package/dist/components/table/index.js.map +1 -1
- package/dist/components/table/row.d.ts +23 -6
- package/dist/components/table/row.js +33 -1
- package/dist/components/table/row.js.map +1 -1
- package/dist/components/table/styles.module.css +1 -1
- package/dist/components/table/types.d.ts +152 -142
- package/dist/components/table/types.js +12 -2
- package/dist/components/tabs/context.d.ts +26 -8
- package/dist/components/tabs/context.js +38 -1
- package/dist/components/tabs/context.js.map +1 -1
- package/dist/components/tabs/index.d.ts +23 -6
- package/dist/components/tabs/index.js +80 -1
- package/dist/components/tabs/index.js.map +1 -1
- package/dist/components/tabs/list.d.ts +23 -4
- package/dist/components/tabs/list.js +35 -1
- package/dist/components/tabs/list.js.map +1 -1
- package/dist/components/tabs/panel.d.ts +23 -4
- package/dist/components/tabs/panel.js +35 -1
- package/dist/components/tabs/panel.js.map +1 -1
- package/dist/components/tabs/styles.module.css +1 -1
- package/dist/components/tabs/tab.d.ts +23 -4
- package/dist/components/tabs/tab.js +35 -1
- package/dist/components/tabs/tab.js.map +1 -1
- package/dist/components/tabs/types.d.ts +18 -4
- package/dist/components/tabs/types.js +12 -2
- package/dist/components/text-area-field/context.d.ts +26 -8
- package/dist/components/text-area-field/context.js +38 -1
- package/dist/components/text-area-field/context.js.map +1 -1
- package/dist/components/text-area-field/index.d.ts +23 -6
- package/dist/components/text-area-field/index.js +80 -1
- package/dist/components/text-area-field/index.js.map +1 -1
- package/dist/components/text-area-field/styles.module.css +1 -1
- package/dist/components/text-area-field/types.d.ts +28 -14
- package/dist/components/text-area-field/types.js +12 -2
- package/dist/components/text-field/context.d.ts +25 -10
- package/dist/components/text-field/context.js +28 -1
- package/dist/components/text-field/context.js.map +1 -1
- package/dist/components/text-field/index.d.ts +23 -10
- package/dist/components/text-field/index.js +154 -1
- package/dist/components/text-field/index.js.map +1 -1
- package/dist/components/text-field/styles.module.css +1 -1
- package/dist/components/text-field/types.d.ts +31 -19
- package/dist/components/text-field/types.js +12 -2
- package/dist/components/time-field/index.d.ts +34 -5
- package/dist/components/time-field/index.js +83 -1
- package/dist/components/time-field/index.js.map +1 -1
- package/dist/components/time-field/styles.module.css +1 -1
- package/dist/components/time-field/types.d.ts +30 -16
- package/dist/components/time-field/types.js +12 -2
- package/dist/components/tooltip/context.d.ts +19 -4
- package/dist/components/tooltip/context.js +21 -1
- package/dist/components/tooltip/context.js.map +1 -1
- package/dist/components/tooltip/index.d.ts +27 -6
- package/dist/components/tooltip/index.js +81 -1
- package/dist/components/tooltip/index.js.map +1 -1
- package/dist/components/tooltip/styles.module.css +1 -1
- package/dist/components/tooltip/trigger.d.ts +21 -5
- package/dist/components/tooltip/trigger.js +47 -1
- package/dist/components/tooltip/trigger.js.map +1 -1
- package/dist/components/tooltip/types.d.ts +19 -5
- package/dist/components/tooltip/types.js +12 -2
- package/dist/components/tree/context.d.ts +20 -8
- package/dist/components/tree/context.js +39 -1
- package/dist/components/tree/context.js.map +1 -1
- package/dist/components/tree/index.d.ts +36 -8
- package/dist/components/tree/index.js +125 -1
- package/dist/components/tree/index.js.map +1 -1
- package/dist/components/tree/item-actions.d.ts +23 -6
- package/dist/components/tree/item-actions.js +35 -1
- package/dist/components/tree/item-actions.js.map +1 -1
- package/dist/components/tree/item-content.d.ts +20 -8
- package/dist/components/tree/item-content.js +102 -1
- package/dist/components/tree/item-content.js.map +1 -1
- package/dist/components/tree/item-description.d.ts +21 -4
- package/dist/components/tree/item-description.js +37 -1
- package/dist/components/tree/item-description.js.map +1 -1
- package/dist/components/tree/item-label.d.ts +21 -4
- package/dist/components/tree/item-label.js +33 -1
- package/dist/components/tree/item-label.js.map +1 -1
- package/dist/components/tree/item-prefix-icon.d.ts +21 -5
- package/dist/components/tree/item-prefix-icon.js +33 -1
- package/dist/components/tree/item-prefix-icon.js.map +1 -1
- package/dist/components/tree/item.d.ts +23 -8
- package/dist/components/tree/item.js +50 -1
- package/dist/components/tree/item.js.map +1 -1
- package/dist/components/tree/lines.d.ts +19 -5
- package/dist/components/tree/lines.js +36 -1
- package/dist/components/tree/lines.js.map +1 -1
- package/dist/components/tree/styles.module.css +5 -1
- package/dist/components/tree/types.d.ts +42 -29
- package/dist/components/tree/types.js +12 -2
- package/dist/components/view-stack/context.d.ts +28 -16
- package/dist/components/view-stack/context.js +58 -1
- package/dist/components/view-stack/context.js.map +1 -1
- package/dist/components/view-stack/events.d.ts +7 -5
- package/dist/components/view-stack/events.js +24 -1
- package/dist/components/view-stack/events.js.map +1 -1
- package/dist/components/view-stack/index.d.ts +25 -9
- package/dist/components/view-stack/index.js +114 -1
- package/dist/components/view-stack/index.js.map +1 -1
- package/dist/components/view-stack/trigger.d.ts +22 -9
- package/dist/components/view-stack/trigger.js +45 -1
- package/dist/components/view-stack/trigger.js.map +1 -1
- package/dist/components/view-stack/types.d.ts +55 -41
- package/dist/components/view-stack/types.js +12 -2
- package/dist/components/view-stack/view.d.ts +22 -9
- package/dist/components/view-stack/view.js +42 -1
- package/dist/components/view-stack/view.js.map +1 -1
- package/dist/hooks/coordinate-field/index.d.ts +19 -9
- package/dist/hooks/coordinate-field/index.js +21 -2
- package/dist/hooks/coordinate-field/use-coordinate-copy.d.ts +31 -14
- package/dist/hooks/coordinate-field/use-coordinate-copy.js +87 -1
- package/dist/hooks/coordinate-field/use-coordinate-copy.js.map +1 -1
- package/dist/hooks/coordinate-field/use-coordinate-field-state.d.ts +43 -23
- package/dist/hooks/coordinate-field/use-coordinate-field-state.js +146 -1
- package/dist/hooks/coordinate-field/use-coordinate-field-state.js.map +1 -1
- package/dist/hooks/coordinate-field/use-coordinate-field.d.ts +57 -45
- package/dist/hooks/coordinate-field/use-coordinate-field.js +106 -1
- package/dist/hooks/coordinate-field/use-coordinate-field.js.map +1 -1
- package/dist/hooks/coordinate-field/use-coordinate-focus.d.ts +31 -16
- package/dist/hooks/coordinate-field/use-coordinate-focus.js +65 -1
- package/dist/hooks/coordinate-field/use-coordinate-focus.js.map +1 -1
- package/dist/hooks/coordinate-field/use-coordinate-paste.d.ts +31 -16
- package/dist/hooks/coordinate-field/use-coordinate-paste.js +80 -1
- package/dist/hooks/coordinate-field/use-coordinate-paste.js.map +1 -1
- package/dist/hooks/coordinate-field/use-timeout-cleanup.d.ts +5 -3
- package/dist/hooks/coordinate-field/use-timeout-cleanup.js +32 -1
- package/dist/hooks/coordinate-field/use-timeout-cleanup.js.map +1 -1
- package/dist/hooks/kanban/index.d.ts +31 -22
- package/dist/hooks/kanban/index.js +120 -1
- package/dist/hooks/kanban/index.js.map +1 -1
- package/dist/hooks/use-tree/actions/cache.d.ts +79 -63
- package/dist/hooks/use-tree/actions/cache.js +254 -1
- package/dist/hooks/use-tree/actions/cache.js.map +1 -1
- package/dist/hooks/use-tree/actions/index.d.ts +21 -6
- package/dist/hooks/use-tree/actions/index.js +179 -1
- package/dist/hooks/use-tree/actions/index.js.map +1 -1
- package/dist/hooks/use-tree/state/index.d.ts +19 -5
- package/dist/hooks/use-tree/state/index.js +107 -1
- package/dist/hooks/use-tree/state/index.js.map +1 -1
- package/dist/hooks/use-tree/state/utils.d.ts +16 -2
- package/dist/hooks/use-tree/state/utils.js +29 -1
- package/dist/hooks/use-tree/state/utils.js.map +1 -1
- package/dist/hooks/use-tree/types.d.ts +160 -146
- package/dist/hooks/use-tree/types.js +12 -2
- package/dist/index.d.ts +268 -270
- package/dist/index.js +220 -2
- package/dist/lib/types.d.ts +28 -14
- package/dist/lib/types.js +12 -2
- package/dist/lib/utils.d.ts +19 -5
- package/dist/lib/utils.js +23 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/providers/portal.d.ts +24 -6
- package/dist/providers/portal.js +46 -1
- package/dist/providers/portal.js.map +1 -1
- package/dist/providers/theme-provider.d.ts +34 -14
- package/dist/providers/theme-provider.js +62 -1
- package/dist/providers/theme-provider.js.map +1 -1
- package/package.json +376 -132
- package/dist/components/accordion/types.js.map +0 -1
- package/dist/components/action-bar/types.js.map +0 -1
- package/dist/components/avatar/types.js.map +0 -1
- package/dist/components/badge/types.js.map +0 -1
- package/dist/components/breadcrumbs/types.js.map +0 -1
- package/dist/components/button/types.js.map +0 -1
- package/dist/components/checkbox/types.js.map +0 -1
- package/dist/components/chip/types.js.map +0 -1
- package/dist/components/classification-badge/types.js.map +0 -1
- package/dist/components/classification-banner/types.js.map +0 -1
- package/dist/components/clock/types.js.map +0 -1
- package/dist/components/color-picker/types.js.map +0 -1
- package/dist/components/combobox-field/types.js.map +0 -1
- package/dist/components/date-field/types.js.map +0 -1
- package/dist/components/details-list/types.js.map +0 -1
- package/dist/components/dialog/types.js.map +0 -1
- package/dist/components/divider/types.js.map +0 -1
- package/dist/components/drawer/types.js.map +0 -1
- package/dist/components/flashcard/types.js.map +0 -1
- package/dist/components/hero/types.js.map +0 -1
- package/dist/components/hotkey/types.js.map +0 -1
- package/dist/components/icon/types.js.map +0 -1
- package/dist/components/input/types.js.map +0 -1
- package/dist/components/kanban/index.js.map +0 -1
- package/dist/components/kanban/types.js.map +0 -1
- package/dist/components/label/types.js.map +0 -1
- package/dist/components/lines/types.js.map +0 -1
- package/dist/components/link/types.js.map +0 -1
- package/dist/components/menu/types.js.map +0 -1
- package/dist/components/notice/types.js.map +0 -1
- package/dist/components/options/types.js.map +0 -1
- package/dist/components/pagination/types.js.map +0 -1
- package/dist/components/popover/types.js.map +0 -1
- package/dist/components/query-builder/types.js.map +0 -1
- package/dist/components/radio/types.js.map +0 -1
- package/dist/components/search-field/types.js.map +0 -1
- package/dist/components/select-field/types.js.map +0 -1
- package/dist/components/sidenav/types.js.map +0 -1
- package/dist/components/skeleton/types.js.map +0 -1
- package/dist/components/slider/types.js.map +0 -1
- package/dist/components/switch/types.js.map +0 -1
- package/dist/components/table/types.js.map +0 -1
- package/dist/components/tabs/types.js.map +0 -1
- package/dist/components/text-area-field/types.js.map +0 -1
- package/dist/components/text-field/types.js.map +0 -1
- package/dist/components/time-field/types.js.map +0 -1
- package/dist/components/tooltip/types.js.map +0 -1
- package/dist/components/tree/types.js.map +0 -1
- package/dist/components/view-stack/types.js.map +0 -1
- package/dist/foundation/token-data.d.ts +0 -17
- package/dist/foundation/token-data.js +0 -2
- package/dist/foundation/token-data.js.map +0 -1
- package/dist/hooks/coordinate-field/index.js.map +0 -1
- package/dist/hooks/use-tree/types.js.map +0 -1
- package/dist/icons/catalog.d.ts +0 -48
- package/dist/icons/catalog.js +0 -2
- package/dist/icons/catalog.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.module.css +0 -19
- package/dist/lib/types.js.map +0 -1
- package/dist/metafile-esm.json +0 -1
|
@@ -1,2 +1,121 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at https://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import { calculateClosestEdge } from "../../components/kanban/context.js";
|
|
15
|
+
import { useDndContext, useDroppable } from "@dnd-kit/core";
|
|
16
|
+
import { useSortable } from "@dnd-kit/sortable";
|
|
17
|
+
import { CSS } from "@dnd-kit/utilities";
|
|
18
|
+
|
|
19
|
+
//#region src/hooks/kanban/index.ts
|
|
20
|
+
/**
|
|
21
|
+
* Hook that provides drag-and-drop interactions for a kanban column.
|
|
22
|
+
*
|
|
23
|
+
* This hook integrates with `@dnd-kit/core` to enable dropping cards into columns.
|
|
24
|
+
* It tracks hover states, validates drop targets based on the column's `canDrop` property,
|
|
25
|
+
* and provides visual feedback states for both the column itself and cards within it.
|
|
26
|
+
*
|
|
27
|
+
* @param column - The kanban column data object containing the column's id, canDrop status, and other properties
|
|
28
|
+
*
|
|
29
|
+
* @returns An object containing:
|
|
30
|
+
* - `ref` - Ref callback to attach to the droppable column DOM element
|
|
31
|
+
* - `isHighlighted` - Boolean indicating if the column should be visually highlighted (when a card from another column is being dragged)
|
|
32
|
+
* - `isActive` - Boolean indicating if the column is actively being hovered over and can accept the drop
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```tsx
|
|
36
|
+
* function KanbanColumn({ column }: { column: KanbanColumnData }) {
|
|
37
|
+
* const { ref, isHighlighted, isActive } = useColumnInteractions(column);
|
|
38
|
+
*
|
|
39
|
+
* return (
|
|
40
|
+
* <div
|
|
41
|
+
* ref={ref}
|
|
42
|
+
* className={cn({
|
|
43
|
+
* 'ring-2 ring-blue-300': isHighlighted && !isActive, // Potential drop target
|
|
44
|
+
* 'ring-2 ring-blue-500 bg-blue-50': isActive, // Active drop target
|
|
45
|
+
* })}
|
|
46
|
+
* >
|
|
47
|
+
* <h2>{column.title}</h2>
|
|
48
|
+
* {column.cards.map(card => <Card key={card.id} card={card} />)}
|
|
49
|
+
* </div>
|
|
50
|
+
* );
|
|
51
|
+
* }
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
function useColumnInteractions(column) {
|
|
55
|
+
const { setNodeRef, isOver, active } = useDroppable({
|
|
56
|
+
id: column.id,
|
|
57
|
+
data: column
|
|
58
|
+
});
|
|
59
|
+
const { over } = useDndContext();
|
|
60
|
+
const isOverColumn = isOver || over?.data?.current?.columnId === column.id;
|
|
61
|
+
return {
|
|
62
|
+
ref: setNodeRef,
|
|
63
|
+
isHighlighted: Boolean(isOverColumn || active && active.data.current?.columnId !== column.id && column.canDrop !== false),
|
|
64
|
+
isActive: isOverColumn && column.canDrop !== false
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Hook that provides drag-and-drop interactions for a kanban card.
|
|
69
|
+
*
|
|
70
|
+
* This hook integrates with `@dnd-kit/sortable` to enable dragging, dropping, and reordering
|
|
71
|
+
* of cards within and between columns. It handles transform animations, drag state tracking,
|
|
72
|
+
* and edge detection for insertion positioning.
|
|
73
|
+
*
|
|
74
|
+
* @param card - The kanban card data object containing the card's id and other properties
|
|
75
|
+
*
|
|
76
|
+
* @returns An object containing:
|
|
77
|
+
* - `ref` - Ref callback to attach to the draggable card DOM element
|
|
78
|
+
* - `isDragging` - Boolean indicating if this card is currently being dragged
|
|
79
|
+
* - `closestEdge` - The closest edge ('top' or 'bottom') when another card is hovering over this card, or null if not hovering
|
|
80
|
+
* - `style` - CSS style object with transform and transition properties for drag animations
|
|
81
|
+
* - `attributes` - Accessibility and drag attributes to spread on the card element
|
|
82
|
+
* - `listeners` - Event listeners to spread on the drag handle element
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```tsx
|
|
86
|
+
* function KanbanCard({ card }: { card: KanbanCardData }) {
|
|
87
|
+
* const { ref, isDragging, closestEdge, style, attributes, listeners } = useCardInteractions(card);
|
|
88
|
+
*
|
|
89
|
+
* return (
|
|
90
|
+
* <div ref={ref} style={style} {...attributes} {...listeners}>
|
|
91
|
+
* {card.title}
|
|
92
|
+
* {closestEdge && <DropIndicator edge={closestEdge} />}
|
|
93
|
+
* </div>
|
|
94
|
+
* );
|
|
95
|
+
* }
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
function useCardInteractions(card) {
|
|
99
|
+
const { attributes, listeners, setNodeRef, transform, transition, isDragging, over, active } = useSortable({
|
|
100
|
+
id: card.id,
|
|
101
|
+
data: card
|
|
102
|
+
});
|
|
103
|
+
const style = {
|
|
104
|
+
transform: CSS.Transform.toString(transform),
|
|
105
|
+
transition
|
|
106
|
+
};
|
|
107
|
+
let closestEdge;
|
|
108
|
+
if (over && over.id === card.id && active) closestEdge = calculateClosestEdge(over, active);
|
|
109
|
+
return {
|
|
110
|
+
ref: setNodeRef,
|
|
111
|
+
isDragging,
|
|
112
|
+
closestEdge,
|
|
113
|
+
style,
|
|
114
|
+
attributes,
|
|
115
|
+
listeners
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
//#endregion
|
|
120
|
+
export { useCardInteractions, useColumnInteractions };
|
|
2
121
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["closestEdge: 'top' | 'bottom' | undefined"],"sources":["../../../src/hooks/kanban/index.ts"],"sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { useDndContext, useDroppable } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { calculateClosestEdge } from '@/components/kanban/context';\nimport type {\n KanbanCardData,\n KanbanColumnData,\n} from '@/components/kanban/types';\n\n/**\n * Hook that provides drag-and-drop interactions for a kanban column.\n *\n * This hook integrates with `@dnd-kit/core` to enable dropping cards into columns.\n * It tracks hover states, validates drop targets based on the column's `canDrop` property,\n * and provides visual feedback states for both the column itself and cards within it.\n *\n * @param column - The kanban column data object containing the column's id, canDrop status, and other properties\n *\n * @returns An object containing:\n * - `ref` - Ref callback to attach to the droppable column DOM element\n * - `isHighlighted` - Boolean indicating if the column should be visually highlighted (when a card from another column is being dragged)\n * - `isActive` - Boolean indicating if the column is actively being hovered over and can accept the drop\n *\n * @example\n * ```tsx\n * function KanbanColumn({ column }: { column: KanbanColumnData }) {\n * const { ref, isHighlighted, isActive } = useColumnInteractions(column);\n *\n * return (\n * <div\n * ref={ref}\n * className={cn({\n * 'ring-2 ring-blue-300': isHighlighted && !isActive, // Potential drop target\n * 'ring-2 ring-blue-500 bg-blue-50': isActive, // Active drop target\n * })}\n * >\n * <h2>{column.title}</h2>\n * {column.cards.map(card => <Card key={card.id} card={card} />)}\n * </div>\n * );\n * }\n * ```\n */\nexport function useColumnInteractions(column: KanbanColumnData) {\n const { setNodeRef, isOver, active } = useDroppable({\n id: column.id,\n data: column,\n });\n\n // Get the global over state to detect when hovering over cards in this column\n const { over } = useDndContext();\n\n // Check if we're over the column itself OR over a card that belongs to this column\n const isOverColumn = isOver || over?.data?.current?.columnId === column.id;\n\n const isHighlighted = Boolean(\n isOverColumn ||\n (active &&\n active.data.current?.columnId !== column.id &&\n column.canDrop !== false),\n );\n\n const isActive = isOverColumn && column.canDrop !== false;\n\n return {\n ref: setNodeRef,\n isHighlighted,\n isActive,\n };\n}\n\n/**\n * Hook that provides drag-and-drop interactions for a kanban card.\n *\n * This hook integrates with `@dnd-kit/sortable` to enable dragging, dropping, and reordering\n * of cards within and between columns. It handles transform animations, drag state tracking,\n * and edge detection for insertion positioning.\n *\n * @param card - The kanban card data object containing the card's id and other properties\n *\n * @returns An object containing:\n * - `ref` - Ref callback to attach to the draggable card DOM element\n * - `isDragging` - Boolean indicating if this card is currently being dragged\n * - `closestEdge` - The closest edge ('top' or 'bottom') when another card is hovering over this card, or null if not hovering\n * - `style` - CSS style object with transform and transition properties for drag animations\n * - `attributes` - Accessibility and drag attributes to spread on the card element\n * - `listeners` - Event listeners to spread on the drag handle element\n *\n * @example\n * ```tsx\n * function KanbanCard({ card }: { card: KanbanCardData }) {\n * const { ref, isDragging, closestEdge, style, attributes, listeners } = useCardInteractions(card);\n *\n * return (\n * <div ref={ref} style={style} {...attributes} {...listeners}>\n * {card.title}\n * {closestEdge && <DropIndicator edge={closestEdge} />}\n * </div>\n * );\n * }\n * ```\n */\nexport function useCardInteractions(card: KanbanCardData) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n over,\n active,\n } = useSortable({\n id: card.id,\n data: card,\n });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n // Determine closest edge based on over position\n let closestEdge: 'top' | 'bottom' | undefined;\n\n if (over && over.id === card.id && active) {\n closestEdge = calculateClosestEdge(over, active);\n }\n\n return {\n ref: setNodeRef,\n isDragging,\n closestEdge,\n style,\n attributes,\n listeners,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDA,SAAgB,sBAAsB,QAA0B;CAC9D,MAAM,EAAE,YAAY,QAAQ,WAAW,aAAa;EAClD,IAAI,OAAO;EACX,MAAM;EACP,CAAC;CAGF,MAAM,EAAE,SAAS,eAAe;CAGhC,MAAM,eAAe,UAAU,MAAM,MAAM,SAAS,aAAa,OAAO;AAWxE,QAAO;EACL,KAAK;EACL,eAXoB,QACpB,gBACG,UACC,OAAO,KAAK,SAAS,aAAa,OAAO,MACzC,OAAO,YAAY,MACxB;EAOC,UALe,gBAAgB,OAAO,YAAY;EAMnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCH,SAAgB,oBAAoB,MAAsB;CACxD,MAAM,EACJ,YACA,WACA,YACA,WACA,YACA,YACA,MACA,WACE,YAAY;EACd,IAAI,KAAK;EACT,MAAM;EACP,CAAC;CAEF,MAAM,QAAQ;EACZ,WAAW,IAAI,UAAU,SAAS,UAAU;EAC5C;EACD;CAGD,IAAIA;AAEJ,KAAI,QAAQ,KAAK,OAAO,KAAK,MAAM,OACjC,eAAc,qBAAqB,MAAM,OAAO;AAGlD,QAAO;EACL,KAAK;EACL;EACA;EACA;EACA;EACA;EACD"}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at https://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
5
12
|
|
|
13
|
+
import { TreeNode } from "../types.js";
|
|
14
|
+
import { Key } from "@react-types/shared";
|
|
15
|
+
|
|
16
|
+
//#region src/hooks/use-tree/actions/cache.d.ts
|
|
6
17
|
type CacheTreeNode<T> = Omit<TreeNode<T>, 'children'> & {
|
|
7
|
-
|
|
18
|
+
children?: Key[];
|
|
8
19
|
};
|
|
9
20
|
/**
|
|
10
21
|
* This is a cache created only for performance reasons and is considered
|
|
@@ -16,63 +27,68 @@ type CacheTreeNode<T> = Omit<TreeNode<T>, 'children'> & {
|
|
|
16
27
|
* updated with each tree operation.
|
|
17
28
|
*/
|
|
18
29
|
declare class Cache<T> {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
30
|
+
protected cache: {
|
|
31
|
+
lookup: Map<Key, CacheTreeNode<T>>;
|
|
32
|
+
roots: Key[];
|
|
33
|
+
};
|
|
34
|
+
constructor(nodes?: TreeNode<T>[]);
|
|
35
|
+
/**
|
|
36
|
+
* Recursively creates the cache object from tree data
|
|
37
|
+
*/
|
|
38
|
+
rebuild(nodes: TreeNode<T>[], lookup?: Map<Key, CacheTreeNode<T>>, parentKey?: Key | null): {
|
|
39
|
+
lookup: Map<Key, CacheTreeNode<T>>;
|
|
40
|
+
roots: Key[];
|
|
41
|
+
};
|
|
42
|
+
protected get(key: Key): CacheTreeNode<T>;
|
|
43
|
+
protected set(key: Key, node: CacheTreeNode<T>): void;
|
|
44
|
+
protected delete(key: Key): void;
|
|
45
|
+
protected addToParent(parentKey: Key, childKey: Key, idx: number): void;
|
|
46
|
+
protected addToRoot(key: Key, idx: number): void;
|
|
47
|
+
protected removeFromParent(parentKey: Key, childKey: Key): void;
|
|
48
|
+
protected removeFromRoot(key: Key): void;
|
|
49
|
+
protected parentOrSibling(target: Key | null, position: 'before' | 'after'): {
|
|
50
|
+
parentKey: Key | null;
|
|
51
|
+
index: number;
|
|
52
|
+
};
|
|
53
|
+
protected traverse(key: Key): void;
|
|
54
|
+
protected calculateVisibility(key: Key): boolean;
|
|
55
|
+
protected deriveVisibility(): void[];
|
|
56
|
+
/**
|
|
57
|
+
* Recursively builds a TreeNode from a key
|
|
58
|
+
*
|
|
59
|
+
* @param key
|
|
60
|
+
*/
|
|
61
|
+
protected buildNode(key: Key): TreeNode<T>;
|
|
62
|
+
/**
|
|
63
|
+
* Builds a tree structure from cache
|
|
64
|
+
*
|
|
65
|
+
* TODO: optimization - rebuild only from change to root
|
|
66
|
+
* Rebuild only from the changed node up the tree to avoid
|
|
67
|
+
* rebuilding the entire tree
|
|
68
|
+
*
|
|
69
|
+
* @param deriveVisible boolean - if true, will recompute visibility for nodes based on ancestry
|
|
70
|
+
*/
|
|
71
|
+
toTree(deriveVisible?: boolean): TreeNode<T>[];
|
|
72
|
+
/**
|
|
73
|
+
* CACHE FUNCTIONS
|
|
74
|
+
* These manage cache operations. No cache operations should ever be done
|
|
75
|
+
* outside this file.
|
|
76
|
+
**/
|
|
77
|
+
getNode(key: Key): TreeNode<T>;
|
|
78
|
+
getAllKeys(): MapIterator<Key>;
|
|
79
|
+
getAllNodes(): MapIterator<CacheTreeNode<T>>;
|
|
80
|
+
setNode(key: Key, node: TreeNode<T>): void;
|
|
81
|
+
setAllNodes({
|
|
82
|
+
parentKey,
|
|
83
|
+
children,
|
|
84
|
+
...rest
|
|
85
|
+
}: Partial<TreeNode<T>>): void;
|
|
86
|
+
deleteNode(key: Key): void;
|
|
87
|
+
addNodes(target: Key | null, nodes: TreeNode<T>[], position: 'before' | 'after'): void;
|
|
88
|
+
insertNode(parentKey: Key | null, node: TreeNode<T>, idx: number): void;
|
|
89
|
+
moveNodes(target: Key | null, nodes: Set<Key>, position: 'before' | 'after'): void;
|
|
90
|
+
moveNode(parentKey: Key | null, key: Key, idx: number): void;
|
|
76
91
|
}
|
|
77
|
-
|
|
92
|
+
//#endregion
|
|
78
93
|
export { Cache };
|
|
94
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -1,2 +1,255 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at https://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
//#region src/hooks/use-tree/actions/cache.ts
|
|
15
|
+
/**
|
|
16
|
+
* This is a cache created only for performance reasons and is considered
|
|
17
|
+
* to be only a temporary mirror of the data. The data is *always* correct
|
|
18
|
+
* cache should be updated according to the data, only. If the data and
|
|
19
|
+
* the cache do not match, the cache is invalidated and rebuilt.
|
|
20
|
+
*
|
|
21
|
+
* This will initialize once on load with data, then
|
|
22
|
+
* updated with each tree operation.
|
|
23
|
+
*/
|
|
24
|
+
var Cache = class {
|
|
25
|
+
cache = {
|
|
26
|
+
lookup: /* @__PURE__ */ new Map(),
|
|
27
|
+
roots: []
|
|
28
|
+
};
|
|
29
|
+
constructor(nodes = []) {
|
|
30
|
+
this.rebuild(nodes);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Recursively creates the cache object from tree data
|
|
34
|
+
*/
|
|
35
|
+
rebuild(nodes, lookup = /* @__PURE__ */ new Map(), parentKey = null) {
|
|
36
|
+
nodes.forEach((node) => {
|
|
37
|
+
const { children, ...rest } = node;
|
|
38
|
+
lookup.set(node.key, {
|
|
39
|
+
isDisabled: false,
|
|
40
|
+
isExpanded: false,
|
|
41
|
+
isSelected: false,
|
|
42
|
+
isVisible: false,
|
|
43
|
+
isVisibleComputed: false,
|
|
44
|
+
...rest,
|
|
45
|
+
parentKey,
|
|
46
|
+
...children ? { children: children.map((child) => child.key) } : {}
|
|
47
|
+
});
|
|
48
|
+
if (node.children) this.rebuild(node.children, lookup, node.key);
|
|
49
|
+
});
|
|
50
|
+
const cache = {
|
|
51
|
+
lookup,
|
|
52
|
+
roots: nodes.map((node) => node.key)
|
|
53
|
+
};
|
|
54
|
+
if (!parentKey) this.cache = cache;
|
|
55
|
+
this.deriveVisibility();
|
|
56
|
+
return cache;
|
|
57
|
+
}
|
|
58
|
+
get(key) {
|
|
59
|
+
const node = this.cache.lookup.get(key);
|
|
60
|
+
if (node === void 0) throw new Error(`Key of ${key} does not exist in tree`);
|
|
61
|
+
return node;
|
|
62
|
+
}
|
|
63
|
+
set(key, node) {
|
|
64
|
+
this.cache.lookup.set(key, node);
|
|
65
|
+
}
|
|
66
|
+
delete(key) {
|
|
67
|
+
this.cache.lookup.delete(key);
|
|
68
|
+
}
|
|
69
|
+
addToParent(parentKey, childKey, idx) {
|
|
70
|
+
const parent = this.get(parentKey);
|
|
71
|
+
const child = this.get(childKey);
|
|
72
|
+
const index = Math.max(0, idx);
|
|
73
|
+
this.set(childKey, {
|
|
74
|
+
...child,
|
|
75
|
+
parentKey
|
|
76
|
+
});
|
|
77
|
+
const children = (parent.children ?? []).slice(0);
|
|
78
|
+
children.splice(index, 0, childKey);
|
|
79
|
+
this.set(parentKey, {
|
|
80
|
+
...parent,
|
|
81
|
+
children
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
addToRoot(key, idx) {
|
|
85
|
+
const node = this.get(key);
|
|
86
|
+
const index = Math.max(0, idx);
|
|
87
|
+
this.set(key, {
|
|
88
|
+
...node,
|
|
89
|
+
parentKey: null
|
|
90
|
+
});
|
|
91
|
+
this.cache.roots.splice(index, 0, key);
|
|
92
|
+
}
|
|
93
|
+
removeFromParent(parentKey, childKey) {
|
|
94
|
+
const parent = this.get(parentKey);
|
|
95
|
+
const child = this.get(childKey);
|
|
96
|
+
this.set(childKey, {
|
|
97
|
+
...child,
|
|
98
|
+
parentKey: null
|
|
99
|
+
});
|
|
100
|
+
this.cache.lookup.set(parentKey, {
|
|
101
|
+
...parent,
|
|
102
|
+
children: parent.children?.filter((key) => key !== childKey)
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
removeFromRoot(key) {
|
|
106
|
+
const node = this.get(key);
|
|
107
|
+
const idx = this.cache.roots.indexOf(key);
|
|
108
|
+
if (idx >= 0) {
|
|
109
|
+
this.set(key, {
|
|
110
|
+
...node,
|
|
111
|
+
parentKey: null
|
|
112
|
+
});
|
|
113
|
+
this.cache.roots.splice(idx, 1);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
parentOrSibling(target, position) {
|
|
117
|
+
let index;
|
|
118
|
+
let parentKey = null;
|
|
119
|
+
if (target === null) index = position === "before" ? 0 : this.cache.roots.length;
|
|
120
|
+
else {
|
|
121
|
+
const targetNode = this.get(target);
|
|
122
|
+
if (targetNode.parentKey) {
|
|
123
|
+
const parent = this.get(targetNode.parentKey);
|
|
124
|
+
parentKey = parent.key;
|
|
125
|
+
index = parent.children?.indexOf(target) ?? 0;
|
|
126
|
+
} else index = this.cache.roots.indexOf(target);
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
parentKey,
|
|
130
|
+
index
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
traverse(key) {
|
|
134
|
+
const node = this.get(key);
|
|
135
|
+
this.cache.lookup.set(key, {
|
|
136
|
+
...node,
|
|
137
|
+
isVisibleComputed: this.calculateVisibility(key)
|
|
138
|
+
});
|
|
139
|
+
node.children?.map((child) => this.traverse(child));
|
|
140
|
+
}
|
|
141
|
+
calculateVisibility(key) {
|
|
142
|
+
let current = this.get(key);
|
|
143
|
+
const ancestry = [current];
|
|
144
|
+
while (current.parentKey) {
|
|
145
|
+
const parent = this.get(current.parentKey);
|
|
146
|
+
if (parent) ancestry.push(parent);
|
|
147
|
+
current = parent;
|
|
148
|
+
}
|
|
149
|
+
return ancestry.every((n) => n.isVisible);
|
|
150
|
+
}
|
|
151
|
+
deriveVisibility() {
|
|
152
|
+
return this.cache.roots.map((key) => this.traverse(key));
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Recursively builds a TreeNode from a key
|
|
156
|
+
*
|
|
157
|
+
* @param key
|
|
158
|
+
*/
|
|
159
|
+
buildNode(key) {
|
|
160
|
+
const node = this.get(key);
|
|
161
|
+
const children = (node.children ?? []).reduce((acc, child) => {
|
|
162
|
+
const childNode = this.cache.lookup.get(child);
|
|
163
|
+
if (childNode && childNode.parentKey === key) acc.push(this.buildNode(child));
|
|
164
|
+
return acc;
|
|
165
|
+
}, []);
|
|
166
|
+
return {
|
|
167
|
+
...node,
|
|
168
|
+
children
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Builds a tree structure from cache
|
|
173
|
+
*
|
|
174
|
+
* TODO: optimization - rebuild only from change to root
|
|
175
|
+
* Rebuild only from the changed node up the tree to avoid
|
|
176
|
+
* rebuilding the entire tree
|
|
177
|
+
*
|
|
178
|
+
* @param deriveVisible boolean - if true, will recompute visibility for nodes based on ancestry
|
|
179
|
+
*/
|
|
180
|
+
toTree(deriveVisible) {
|
|
181
|
+
if (deriveVisible) this.deriveVisibility();
|
|
182
|
+
return this.cache.roots.map((key) => this.buildNode(key));
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* CACHE FUNCTIONS
|
|
186
|
+
* These manage cache operations. No cache operations should ever be done
|
|
187
|
+
* outside this file.
|
|
188
|
+
**/
|
|
189
|
+
getNode(key) {
|
|
190
|
+
const node = this.get(key);
|
|
191
|
+
return {
|
|
192
|
+
...node,
|
|
193
|
+
children: node.children?.map((key$1) => this.buildNode(key$1))
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
getAllKeys() {
|
|
197
|
+
return this.cache.lookup.keys();
|
|
198
|
+
}
|
|
199
|
+
getAllNodes() {
|
|
200
|
+
return this.cache.lookup.values();
|
|
201
|
+
}
|
|
202
|
+
setNode(key, node) {
|
|
203
|
+
this.set(key, {
|
|
204
|
+
...node,
|
|
205
|
+
children: (node.children ?? []).map((child) => child.key)
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
setAllNodes({ parentKey, children, ...rest }) {
|
|
209
|
+
for (const node of this.cache.lookup.values()) this.set(node.key, {
|
|
210
|
+
...node,
|
|
211
|
+
...rest
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
deleteNode(key) {
|
|
215
|
+
const node = this.cache.lookup.get(key);
|
|
216
|
+
if (!node) return;
|
|
217
|
+
node.children?.map((key$1) => this.deleteNode(key$1));
|
|
218
|
+
node.parentKey ? this.removeFromParent(node.parentKey, key) : this.removeFromRoot(key);
|
|
219
|
+
this.delete(key);
|
|
220
|
+
}
|
|
221
|
+
addNodes(target, nodes, position) {
|
|
222
|
+
const { parentKey, index } = this.parentOrSibling(target, position);
|
|
223
|
+
const idx = index + (position === "before" ? 0 : 1);
|
|
224
|
+
nodes.map((node, i) => this.insertNode(parentKey, node, idx + i));
|
|
225
|
+
}
|
|
226
|
+
insertNode(parentKey, node, idx) {
|
|
227
|
+
const { children, ...rest } = node;
|
|
228
|
+
this.set(node.key, {
|
|
229
|
+
isDisabled: false,
|
|
230
|
+
isExpanded: false,
|
|
231
|
+
isSelected: false,
|
|
232
|
+
isVisible: false,
|
|
233
|
+
isVisibleComputed: false,
|
|
234
|
+
...rest,
|
|
235
|
+
parentKey,
|
|
236
|
+
...children ? { children: children.map((child) => child.key) } : {}
|
|
237
|
+
});
|
|
238
|
+
node.children?.map((child, i) => this.insertNode(node.key, child, i));
|
|
239
|
+
parentKey === null ? this.addToRoot(node.key, idx) : this.addToParent(parentKey, node.key, idx);
|
|
240
|
+
}
|
|
241
|
+
moveNodes(target, nodes, position) {
|
|
242
|
+
const { parentKey, index } = this.parentOrSibling(target, position);
|
|
243
|
+
const idx = index + (position === "before" ? 0 : 1);
|
|
244
|
+
Array.from(nodes).map((key, i) => this.moveNode(parentKey, key, idx + i));
|
|
245
|
+
}
|
|
246
|
+
moveNode(parentKey, key, idx) {
|
|
247
|
+
const node = this.get(key);
|
|
248
|
+
node.parentKey ? this.removeFromParent(node.parentKey, key) : this.removeFromRoot(key);
|
|
249
|
+
parentKey ? this.addToParent(parentKey, key, idx) : this.addToRoot(key, idx);
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
//#endregion
|
|
254
|
+
export { Cache };
|
|
2
255
|
//# sourceMappingURL=cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/hooks/use-tree/actions/cache.ts"],"names":["Cache","nodes","lookup","parentKey","node","children","rest","child","cache","key","childKey","idx","parent","index","target","position","targetNode","current","ancestry","n","acc","childNode","deriveVisible","i"],"mappings":"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","file":"cache.js","sourcesContent":["// __private-exports\n/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type { Key } from '@react-types/shared';\nimport type { TreeNode } from '../types';\n\ntype CacheTreeNode<T> = Omit<TreeNode<T>, 'children'> & {\n children?: Key[];\n};\n\n/**\n * This is a cache created only for performance reasons and is considered\n * to be only a temporary mirror of the data. The data is *always* correct\n * cache should be updated according to the data, only. If the data and\n * the cache do not match, the cache is invalidated and rebuilt.\n *\n * This will initialize once on load with data, then\n * updated with each tree operation.\n */\nexport class Cache<T> {\n protected cache: { lookup: Map<Key, CacheTreeNode<T>>; roots: Key[] } = {\n lookup: new Map(),\n roots: [],\n };\n\n constructor(nodes: TreeNode<T>[] = []) {\n this.rebuild(nodes);\n }\n\n /**\n * Recursively creates the cache object from tree data\n */\n rebuild(\n nodes: TreeNode<T>[],\n lookup: Map<Key, CacheTreeNode<T>> = new Map(),\n parentKey: Key | null = null,\n ) {\n nodes.forEach((node) => {\n const { children, ...rest } = node;\n\n lookup.set(node.key, {\n isDisabled: false,\n isExpanded: false,\n isSelected: false,\n isVisible: false,\n isVisibleComputed: false,\n ...rest,\n parentKey,\n ...(children ? { children: children.map((child) => child.key) } : {}),\n });\n\n if (node.children) {\n this.rebuild(node.children, lookup, node.key);\n }\n });\n\n const cache = { lookup, roots: nodes.map((node) => node.key) };\n\n if (!parentKey) {\n this.cache = cache;\n }\n\n this.deriveVisibility();\n return cache;\n }\n\n protected get(key: Key) {\n const node = this.cache.lookup.get(key);\n\n if (node === undefined) {\n throw new Error(`Key of ${key} does not exist in tree`);\n }\n\n return node;\n }\n\n protected set(key: Key, node: CacheTreeNode<T>) {\n this.cache.lookup.set(key, node);\n }\n\n protected delete(key: Key) {\n this.cache.lookup.delete(key);\n }\n\n protected addToParent(parentKey: Key, childKey: Key, idx: number) {\n const parent = this.get(parentKey);\n const child = this.get(childKey);\n const index = Math.max(0, idx);\n\n this.set(childKey, {\n ...child,\n parentKey,\n });\n\n const children = (parent.children ?? []).slice(0);\n\n children.splice(index, 0, childKey);\n\n this.set(parentKey, {\n ...parent,\n children,\n });\n }\n\n protected addToRoot(key: Key, idx: number) {\n const node = this.get(key);\n const index = Math.max(0, idx);\n\n this.set(key, {\n ...node,\n parentKey: null,\n });\n\n this.cache.roots.splice(index, 0, key);\n }\n\n protected removeFromParent(parentKey: Key, childKey: Key) {\n const parent = this.get(parentKey);\n const child = this.get(childKey);\n\n this.set(childKey, {\n ...child,\n parentKey: null,\n });\n\n this.cache.lookup.set(parentKey, {\n ...parent,\n children: parent.children?.filter((key) => key !== childKey),\n });\n }\n\n protected removeFromRoot(key: Key) {\n const node = this.get(key);\n const idx = this.cache.roots.indexOf(key);\n\n if (idx >= 0) {\n this.set(key, {\n ...node,\n parentKey: null,\n });\n\n this.cache.roots.splice(idx, 1);\n }\n }\n\n protected parentOrSibling(target: Key | null, position: 'before' | 'after') {\n let index: number;\n let parentKey: Key | null = null;\n\n if (target === null) {\n index = position === 'before' ? 0 : this.cache.roots.length;\n } else {\n const targetNode = this.get(target);\n\n if (targetNode.parentKey) {\n const parent = this.get(targetNode.parentKey);\n\n parentKey = parent.key;\n index = parent.children?.indexOf(target) ?? 0;\n } else {\n index = this.cache.roots.indexOf(target);\n }\n }\n\n return { parentKey, index };\n }\n\n protected traverse(key: Key) {\n const node = this.get(key);\n\n this.cache.lookup.set(key, {\n ...node,\n isVisibleComputed: this.calculateVisibility(key),\n });\n\n node.children?.map((child) => this.traverse(child));\n }\n\n protected calculateVisibility(key: Key) {\n let current = this.get(key);\n const ancestry = [current];\n\n while (current.parentKey) {\n const parent = this.get(current.parentKey);\n if (parent) {\n ancestry.push(parent);\n }\n current = parent;\n }\n\n return ancestry.every((n) => n.isVisible);\n }\n\n protected deriveVisibility() {\n return this.cache.roots.map((key) => this.traverse(key));\n }\n /**\n * Recursively builds a TreeNode from a key\n *\n * @param key\n */\n protected buildNode(key: Key): TreeNode<T> {\n const node = this.get(key);\n\n const children = (node.children ?? []).reduce(\n (acc: TreeNode<T>[], child) => {\n const childNode = this.cache.lookup.get(child);\n\n if (childNode && childNode.parentKey === key) {\n acc.push(this.buildNode(child));\n }\n\n return acc;\n },\n [],\n );\n\n return {\n ...node,\n children,\n };\n }\n\n /**\n * Builds a tree structure from cache\n *\n * TODO: optimization - rebuild only from change to root\n * Rebuild only from the changed node up the tree to avoid\n * rebuilding the entire tree\n *\n * @param deriveVisible boolean - if true, will recompute visibility for nodes based on ancestry\n */\n toTree(deriveVisible?: boolean): TreeNode<T>[] {\n if (deriveVisible) {\n this.deriveVisibility();\n }\n return this.cache.roots.map((key) => this.buildNode(key));\n }\n\n /**\n * CACHE FUNCTIONS\n * These manage cache operations. No cache operations should ever be done\n * outside this file.\n **/\n getNode(key: Key): TreeNode<T> {\n const node = this.get(key);\n\n return {\n ...node,\n children: node.children?.map((key) => this.buildNode(key)),\n };\n }\n\n getAllKeys() {\n return this.cache.lookup.keys();\n }\n\n getAllNodes() {\n return this.cache.lookup.values();\n }\n\n setNode(key: Key, node: TreeNode<T>) {\n this.set(key, {\n ...node,\n children: (node.children ?? []).map((child) => child.key),\n });\n }\n\n setAllNodes({ parentKey, children, ...rest }: Partial<TreeNode<T>>) {\n for (const node of this.cache.lookup.values()) {\n this.set(node.key, {\n ...node,\n ...rest,\n });\n }\n }\n\n deleteNode(key: Key) {\n const node = this.cache.lookup.get(key);\n\n if (!node) {\n return;\n }\n\n // remove children\n node.children?.map((key) => this.deleteNode(key));\n\n // remove node from previous parent or root\n node.parentKey\n ? this.removeFromParent(node.parentKey, key)\n : this.removeFromRoot(key);\n\n // remove the actual node\n this.delete(key);\n }\n\n addNodes(\n target: Key | null,\n nodes: TreeNode<T>[],\n position: 'before' | 'after',\n ) {\n const { parentKey, index } = this.parentOrSibling(target, position);\n const idx = index + (position === 'before' ? 0 : 1);\n\n nodes.map((node, i) => this.insertNode(parentKey, node, idx + i));\n }\n\n insertNode(parentKey: Key | null, node: TreeNode<T>, idx: number) {\n const { children, ...rest } = node;\n\n this.set(node.key, {\n isDisabled: false,\n isExpanded: false,\n isSelected: false,\n isVisible: false,\n isVisibleComputed: false,\n ...rest,\n parentKey,\n ...(children ? { children: children.map((child) => child.key) } : {}),\n });\n\n node.children?.map((child, i) => this.insertNode(node.key, child, i));\n\n parentKey === null\n ? this.addToRoot(node.key, idx)\n : this.addToParent(parentKey, node.key, idx);\n }\n\n moveNodes(target: Key | null, nodes: Set<Key>, position: 'before' | 'after') {\n const { parentKey, index } = this.parentOrSibling(target, position);\n const idx = index + (position === 'before' ? 0 : 1);\n\n Array.from(nodes).map((key, i) => this.moveNode(parentKey, key, idx + i));\n }\n\n moveNode(parentKey: Key | null, key: Key, idx: number) {\n const node = this.get(key);\n\n // remove from previous parent\n node.parentKey\n ? this.removeFromParent(node.parentKey, key)\n : this.removeFromRoot(key);\n\n // add as child to new parent or root at position\n parentKey\n ? this.addToParent(parentKey, key, idx)\n : this.addToRoot(key, idx);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"cache.js","names":["index: number","parentKey: Key | null","key"],"sources":["../../../../src/hooks/use-tree/actions/cache.ts"],"sourcesContent":["// __private-exports\n/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type { Key } from '@react-types/shared';\nimport type { TreeNode } from '../types';\n\ntype CacheTreeNode<T> = Omit<TreeNode<T>, 'children'> & {\n children?: Key[];\n};\n\n/**\n * This is a cache created only for performance reasons and is considered\n * to be only a temporary mirror of the data. The data is *always* correct\n * cache should be updated according to the data, only. If the data and\n * the cache do not match, the cache is invalidated and rebuilt.\n *\n * This will initialize once on load with data, then\n * updated with each tree operation.\n */\nexport class Cache<T> {\n protected cache: { lookup: Map<Key, CacheTreeNode<T>>; roots: Key[] } = {\n lookup: new Map(),\n roots: [],\n };\n\n constructor(nodes: TreeNode<T>[] = []) {\n this.rebuild(nodes);\n }\n\n /**\n * Recursively creates the cache object from tree data\n */\n rebuild(\n nodes: TreeNode<T>[],\n lookup: Map<Key, CacheTreeNode<T>> = new Map(),\n parentKey: Key | null = null,\n ) {\n nodes.forEach((node) => {\n const { children, ...rest } = node;\n\n lookup.set(node.key, {\n isDisabled: false,\n isExpanded: false,\n isSelected: false,\n isVisible: false,\n isVisibleComputed: false,\n ...rest,\n parentKey,\n ...(children ? { children: children.map((child) => child.key) } : {}),\n });\n\n if (node.children) {\n this.rebuild(node.children, lookup, node.key);\n }\n });\n\n const cache = { lookup, roots: nodes.map((node) => node.key) };\n\n if (!parentKey) {\n this.cache = cache;\n }\n\n this.deriveVisibility();\n return cache;\n }\n\n protected get(key: Key) {\n const node = this.cache.lookup.get(key);\n\n if (node === undefined) {\n throw new Error(`Key of ${key} does not exist in tree`);\n }\n\n return node;\n }\n\n protected set(key: Key, node: CacheTreeNode<T>) {\n this.cache.lookup.set(key, node);\n }\n\n protected delete(key: Key) {\n this.cache.lookup.delete(key);\n }\n\n protected addToParent(parentKey: Key, childKey: Key, idx: number) {\n const parent = this.get(parentKey);\n const child = this.get(childKey);\n const index = Math.max(0, idx);\n\n this.set(childKey, {\n ...child,\n parentKey,\n });\n\n const children = (parent.children ?? []).slice(0);\n\n children.splice(index, 0, childKey);\n\n this.set(parentKey, {\n ...parent,\n children,\n });\n }\n\n protected addToRoot(key: Key, idx: number) {\n const node = this.get(key);\n const index = Math.max(0, idx);\n\n this.set(key, {\n ...node,\n parentKey: null,\n });\n\n this.cache.roots.splice(index, 0, key);\n }\n\n protected removeFromParent(parentKey: Key, childKey: Key) {\n const parent = this.get(parentKey);\n const child = this.get(childKey);\n\n this.set(childKey, {\n ...child,\n parentKey: null,\n });\n\n this.cache.lookup.set(parentKey, {\n ...parent,\n children: parent.children?.filter((key) => key !== childKey),\n });\n }\n\n protected removeFromRoot(key: Key) {\n const node = this.get(key);\n const idx = this.cache.roots.indexOf(key);\n\n if (idx >= 0) {\n this.set(key, {\n ...node,\n parentKey: null,\n });\n\n this.cache.roots.splice(idx, 1);\n }\n }\n\n protected parentOrSibling(target: Key | null, position: 'before' | 'after') {\n let index: number;\n let parentKey: Key | null = null;\n\n if (target === null) {\n index = position === 'before' ? 0 : this.cache.roots.length;\n } else {\n const targetNode = this.get(target);\n\n if (targetNode.parentKey) {\n const parent = this.get(targetNode.parentKey);\n\n parentKey = parent.key;\n index = parent.children?.indexOf(target) ?? 0;\n } else {\n index = this.cache.roots.indexOf(target);\n }\n }\n\n return { parentKey, index };\n }\n\n protected traverse(key: Key) {\n const node = this.get(key);\n\n this.cache.lookup.set(key, {\n ...node,\n isVisibleComputed: this.calculateVisibility(key),\n });\n\n node.children?.map((child) => this.traverse(child));\n }\n\n protected calculateVisibility(key: Key) {\n let current = this.get(key);\n const ancestry = [current];\n\n while (current.parentKey) {\n const parent = this.get(current.parentKey);\n if (parent) {\n ancestry.push(parent);\n }\n current = parent;\n }\n\n return ancestry.every((n) => n.isVisible);\n }\n\n protected deriveVisibility() {\n return this.cache.roots.map((key) => this.traverse(key));\n }\n /**\n * Recursively builds a TreeNode from a key\n *\n * @param key\n */\n protected buildNode(key: Key): TreeNode<T> {\n const node = this.get(key);\n\n const children = (node.children ?? []).reduce(\n (acc: TreeNode<T>[], child) => {\n const childNode = this.cache.lookup.get(child);\n\n if (childNode && childNode.parentKey === key) {\n acc.push(this.buildNode(child));\n }\n\n return acc;\n },\n [],\n );\n\n return {\n ...node,\n children,\n };\n }\n\n /**\n * Builds a tree structure from cache\n *\n * TODO: optimization - rebuild only from change to root\n * Rebuild only from the changed node up the tree to avoid\n * rebuilding the entire tree\n *\n * @param deriveVisible boolean - if true, will recompute visibility for nodes based on ancestry\n */\n toTree(deriveVisible?: boolean): TreeNode<T>[] {\n if (deriveVisible) {\n this.deriveVisibility();\n }\n return this.cache.roots.map((key) => this.buildNode(key));\n }\n\n /**\n * CACHE FUNCTIONS\n * These manage cache operations. No cache operations should ever be done\n * outside this file.\n **/\n getNode(key: Key): TreeNode<T> {\n const node = this.get(key);\n\n return {\n ...node,\n children: node.children?.map((key) => this.buildNode(key)),\n };\n }\n\n getAllKeys() {\n return this.cache.lookup.keys();\n }\n\n getAllNodes() {\n return this.cache.lookup.values();\n }\n\n setNode(key: Key, node: TreeNode<T>) {\n this.set(key, {\n ...node,\n children: (node.children ?? []).map((child) => child.key),\n });\n }\n\n setAllNodes({ parentKey, children, ...rest }: Partial<TreeNode<T>>) {\n for (const node of this.cache.lookup.values()) {\n this.set(node.key, {\n ...node,\n ...rest,\n });\n }\n }\n\n deleteNode(key: Key) {\n const node = this.cache.lookup.get(key);\n\n if (!node) {\n return;\n }\n\n // remove children\n node.children?.map((key) => this.deleteNode(key));\n\n // remove node from previous parent or root\n node.parentKey\n ? this.removeFromParent(node.parentKey, key)\n : this.removeFromRoot(key);\n\n // remove the actual node\n this.delete(key);\n }\n\n addNodes(\n target: Key | null,\n nodes: TreeNode<T>[],\n position: 'before' | 'after',\n ) {\n const { parentKey, index } = this.parentOrSibling(target, position);\n const idx = index + (position === 'before' ? 0 : 1);\n\n nodes.map((node, i) => this.insertNode(parentKey, node, idx + i));\n }\n\n insertNode(parentKey: Key | null, node: TreeNode<T>, idx: number) {\n const { children, ...rest } = node;\n\n this.set(node.key, {\n isDisabled: false,\n isExpanded: false,\n isSelected: false,\n isVisible: false,\n isVisibleComputed: false,\n ...rest,\n parentKey,\n ...(children ? { children: children.map((child) => child.key) } : {}),\n });\n\n node.children?.map((child, i) => this.insertNode(node.key, child, i));\n\n parentKey === null\n ? this.addToRoot(node.key, idx)\n : this.addToParent(parentKey, node.key, idx);\n }\n\n moveNodes(target: Key | null, nodes: Set<Key>, position: 'before' | 'after') {\n const { parentKey, index } = this.parentOrSibling(target, position);\n const idx = index + (position === 'before' ? 0 : 1);\n\n Array.from(nodes).map((key, i) => this.moveNode(parentKey, key, idx + i));\n }\n\n moveNode(parentKey: Key | null, key: Key, idx: number) {\n const node = this.get(key);\n\n // remove from previous parent\n node.parentKey\n ? this.removeFromParent(node.parentKey, key)\n : this.removeFromRoot(key);\n\n // add as child to new parent or root at position\n parentKey\n ? this.addToParent(parentKey, key, idx)\n : this.addToRoot(key, idx);\n }\n}\n"],"mappings":"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"}
|