@accelint/design-toolkit 9.9.2 → 9.11.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/catalog-info.yaml +3 -3
- package/dist/components/accordion/context.d.ts +3 -3
- package/dist/components/accordion/context.js.map +1 -1
- package/dist/components/accordion/group.d.ts +2 -2
- package/dist/components/accordion/group.js +2 -1
- package/dist/components/accordion/group.js.map +1 -1
- package/dist/components/accordion/header.d.ts +2 -2
- package/dist/components/accordion/header.js +2 -1
- package/dist/components/accordion/header.js.map +1 -1
- package/dist/components/accordion/index.d.ts +2 -2
- package/dist/components/accordion/index.js +3 -1
- package/dist/components/accordion/index.js.map +1 -1
- package/dist/components/accordion/panel.d.ts +2 -2
- package/dist/components/accordion/panel.js +2 -1
- package/dist/components/accordion/panel.js.map +1 -1
- package/dist/components/accordion/styles.module.css +19 -3
- package/dist/components/accordion/trigger.d.ts +2 -2
- package/dist/components/accordion/trigger.js +4 -3
- package/dist/components/accordion/trigger.js.map +1 -1
- package/dist/components/accordion/types.d.ts +3 -1
- package/dist/components/action-bar/index.d.ts +2 -2
- package/dist/components/action-bar/index.js +1 -1
- package/dist/components/action-bar/index.js.map +1 -1
- package/dist/components/audio/index.d.ts +2 -2
- package/dist/components/avatar/context.d.ts +5 -5
- package/dist/components/avatar/context.js.map +1 -1
- package/dist/components/avatar/index.d.ts +2 -2
- package/dist/components/avatar/index.js +1 -1
- package/dist/components/avatar/index.js.map +1 -1
- package/dist/components/badge/context.d.ts +5 -5
- package/dist/components/badge/context.js.map +1 -1
- package/dist/components/badge/index.d.ts +2 -2
- package/dist/components/badge/index.js +1 -1
- package/dist/components/badge/index.js.map +1 -1
- package/dist/components/breadcrumbs/index.d.ts +3 -3
- package/dist/components/breadcrumbs/index.js +1 -1
- package/dist/components/breadcrumbs/index.js.map +1 -1
- package/dist/components/breadcrumbs/item.d.ts +2 -2
- package/dist/components/breadcrumbs/item.js +3 -1
- package/dist/components/breadcrumbs/item.js.map +1 -1
- package/dist/components/breadcrumbs/types.d.ts +2 -1
- package/dist/components/button/__internal__/clear.js +2 -1
- package/dist/components/button/__internal__/clear.js.map +1 -1
- package/dist/components/button/context.d.ts +10 -10
- package/dist/components/button/context.js.map +1 -1
- package/dist/components/button/index.d.ts +2 -2
- package/dist/components/button/index.js +3 -1
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/button/link.d.ts +2 -2
- package/dist/components/button/link.js +3 -1
- package/dist/components/button/link.js.map +1 -1
- package/dist/components/button/styles.module.css +16 -0
- package/dist/components/button/toggle.d.ts +2 -2
- package/dist/components/button/toggle.js +3 -1
- package/dist/components/button/toggle.js.map +1 -1
- package/dist/components/button/types.d.ts +3 -1
- package/dist/components/carousel/context.d.ts +40 -0
- package/dist/components/carousel/context.js +55 -0
- package/dist/components/carousel/context.js.map +1 -0
- package/dist/components/carousel/gallery.d.ts +38 -0
- package/dist/components/carousel/gallery.js +84 -0
- package/dist/components/carousel/gallery.js.map +1 -0
- package/dist/components/carousel/index.d.ts +56 -0
- package/dist/components/carousel/index.js +66 -0
- package/dist/components/carousel/index.js.map +1 -0
- package/dist/components/carousel/navigation.d.ts +51 -0
- package/dist/components/carousel/navigation.js +82 -0
- package/dist/components/carousel/navigation.js.map +1 -0
- package/dist/components/carousel/position.d.ts +33 -0
- package/dist/components/carousel/position.js +48 -0
- package/dist/components/carousel/position.js.map +1 -0
- package/dist/components/carousel/select.d.ts +38 -0
- package/dist/components/carousel/select.js +69 -0
- package/dist/components/carousel/select.js.map +1 -0
- package/dist/components/carousel/style.module.css +62 -0
- package/dist/components/carousel/types.d.ts +87 -0
- package/dist/components/carousel/types.js +12 -0
- package/dist/components/carousel/viewer.d.ts +40 -0
- package/dist/components/carousel/viewer.js +75 -0
- package/dist/components/carousel/viewer.js.map +1 -0
- package/dist/components/checkbox/context.d.ts +5 -5
- package/dist/components/checkbox/context.js.map +1 -1
- package/dist/components/checkbox/group.d.ts +2 -2
- package/dist/components/checkbox/group.js +5 -3
- package/dist/components/checkbox/group.js.map +1 -1
- package/dist/components/checkbox/index.d.ts +2 -2
- package/dist/components/checkbox/index.js +3 -1
- package/dist/components/checkbox/index.js.map +1 -1
- package/dist/components/checkbox/types.d.ts +4 -3
- package/dist/components/chip/context.d.ts +3 -3
- package/dist/components/chip/context.js.map +1 -1
- package/dist/components/chip/deletable.d.ts +2 -2
- package/dist/components/chip/deletable.js +5 -3
- package/dist/components/chip/deletable.js.map +1 -1
- package/dist/components/chip/index.d.ts +2 -2
- package/dist/components/chip/index.js +2 -1
- package/dist/components/chip/index.js.map +1 -1
- package/dist/components/chip/list.d.ts +4 -4
- package/dist/components/chip/list.js +3 -1
- package/dist/components/chip/list.js.map +1 -1
- package/dist/components/chip/selectable.d.ts +2 -2
- package/dist/components/chip/selectable.js +3 -1
- package/dist/components/chip/selectable.js.map +1 -1
- package/dist/components/chip/types.d.ts +3 -2
- package/dist/components/classification-badge/context.d.ts +5 -5
- package/dist/components/classification-badge/context.js.map +1 -1
- package/dist/components/classification-badge/index.d.ts +2 -2
- package/dist/components/classification-badge/index.js +1 -1
- package/dist/components/classification-badge/index.js.map +1 -1
- package/dist/components/classification-banner/context.d.ts +5 -5
- package/dist/components/classification-banner/context.js.map +1 -1
- package/dist/components/classification-banner/index.d.ts +2 -2
- package/dist/components/classification-banner/index.js +1 -1
- package/dist/components/classification-banner/index.js.map +1 -1
- package/dist/components/clock/index.d.ts +2 -2
- package/dist/components/color-picker/index.d.ts +2 -2
- package/dist/components/color-picker/index.js +4 -3
- package/dist/components/color-picker/index.js.map +1 -1
- package/dist/components/color-picker/types.d.ts +2 -1
- package/dist/components/combobox-field/context.d.ts +5 -5
- package/dist/components/combobox-field/context.js.map +1 -1
- package/dist/components/combobox-field/index.d.ts +2 -2
- package/dist/components/combobox-field/index.js +12 -12
- package/dist/components/combobox-field/index.js.map +1 -1
- package/dist/components/combobox-field/styles.module.css +12 -0
- package/dist/components/combobox-field/types.d.ts +8 -4
- package/dist/components/coordinate-field/context.d.ts +7 -7
- package/dist/components/coordinate-field/context.js.map +1 -1
- package/dist/components/coordinate-field/index.d.ts +2 -2
- package/dist/components/coordinate-field/index.js +28 -23
- package/dist/components/coordinate-field/index.js.map +1 -1
- package/dist/components/coordinate-field/segment.d.ts +2 -2
- package/dist/components/coordinate-field/types.d.ts +3 -1
- package/dist/components/coordinate-field/types.js.map +1 -1
- package/dist/components/date-field/index.d.ts +2 -2
- package/dist/components/date-field/index.js +4 -3
- package/dist/components/date-field/index.js.map +1 -1
- package/dist/components/date-field/types.d.ts +1 -1
- package/dist/components/deferred-collection/index.d.ts +2 -2
- package/dist/components/details-list/context.d.ts +5 -5
- package/dist/components/details-list/context.js.map +1 -1
- package/dist/components/details-list/index.d.ts +2 -2
- package/dist/components/details-list/index.js +2 -1
- package/dist/components/details-list/index.js.map +1 -1
- package/dist/components/details-list/label.d.ts +2 -2
- package/dist/components/details-list/label.js +1 -1
- package/dist/components/details-list/label.js.map +1 -1
- package/dist/components/details-list/types.d.ts +1 -1
- package/dist/components/details-list/value.d.ts +2 -2
- package/dist/components/details-list/value.js +1 -1
- package/dist/components/details-list/value.js.map +1 -1
- package/dist/components/dialog/content.d.ts +2 -2
- package/dist/components/dialog/context.d.ts +4 -4
- package/dist/components/dialog/context.js.map +1 -1
- package/dist/components/dialog/footer.d.ts +2 -2
- package/dist/components/dialog/footer.js +1 -1
- package/dist/components/dialog/footer.js.map +1 -1
- package/dist/components/dialog/index.d.ts +2 -2
- package/dist/components/dialog/index.js +3 -1
- package/dist/components/dialog/index.js.map +1 -1
- package/dist/components/dialog/styles.module.css +23 -0
- package/dist/components/dialog/title.d.ts +3 -3
- package/dist/components/dialog/title.js +1 -1
- package/dist/components/dialog/title.js.map +1 -1
- package/dist/components/dialog/trigger.d.ts +1 -1
- package/dist/components/dialog/trigger.js +1 -1
- package/dist/components/dialog/trigger.js.map +1 -1
- package/dist/components/dialog/types.d.ts +1 -1
- package/dist/components/divider/context.d.ts +5 -5
- package/dist/components/divider/context.js.map +1 -1
- package/dist/components/divider/index.d.ts +2 -2
- package/dist/components/divider/index.js +1 -1
- package/dist/components/divider/index.js.map +1 -1
- package/dist/components/drawer/back.d.ts +2 -2
- package/dist/components/drawer/close.d.ts +2 -2
- package/dist/components/drawer/content.d.ts +2 -2
- package/dist/components/drawer/context.d.ts +2 -2
- package/dist/components/drawer/footer.d.ts +2 -2
- package/dist/components/drawer/header-title.d.ts +2 -2
- package/dist/components/drawer/header-title.js +1 -1
- package/dist/components/drawer/header-title.js.map +1 -1
- package/dist/components/drawer/header.d.ts +2 -2
- package/dist/components/drawer/header.js +3 -3
- package/dist/components/drawer/header.js.map +1 -1
- package/dist/components/drawer/index.d.ts +2 -2
- package/dist/components/drawer/layout-main.d.ts +2 -2
- package/dist/components/drawer/layout.d.ts +2 -2
- package/dist/components/drawer/menu-item.d.ts +2 -2
- package/dist/components/drawer/menu-item.js +7 -7
- package/dist/components/drawer/menu-item.js.map +1 -1
- package/dist/components/drawer/menu.d.ts +2 -2
- package/dist/components/drawer/panel.d.ts +2 -2
- package/dist/components/drawer/styles.module.css +54 -2
- package/dist/components/drawer/trigger.d.ts +2 -2
- package/dist/components/drawer/trigger.js +1 -1
- package/dist/components/drawer/trigger.js.map +1 -1
- package/dist/components/drawer/types.d.ts +3 -3
- package/dist/components/drawer/view.d.ts +2 -2
- package/dist/components/flashcard/index.d.ts +9 -9
- package/dist/components/flashcard/index.js +2 -1
- package/dist/components/flashcard/index.js.map +1 -1
- package/dist/components/floating-card/context.d.ts +22 -15
- package/dist/components/floating-card/context.js +18 -3
- package/dist/components/floating-card/context.js.map +1 -1
- package/dist/components/floating-card/index.d.ts +32 -27
- package/dist/components/floating-card/index.js +41 -11
- package/dist/components/floating-card/index.js.map +1 -1
- package/dist/components/floating-card/provider.d.ts +30 -32
- package/dist/components/floating-card/provider.js +110 -49
- package/dist/components/floating-card/provider.js.map +1 -1
- package/dist/components/floating-card/styles.module.css +20 -2
- package/dist/components/floating-card/types.d.ts +161 -0
- package/dist/components/floating-card/types.js +12 -0
- package/dist/components/floating-card/utils.d.ts +104 -0
- package/dist/components/floating-card/utils.js +60 -0
- package/dist/components/floating-card/utils.js.map +1 -0
- package/dist/components/gantt/components/base-elements/point.d.ts +28 -0
- package/dist/components/gantt/components/base-elements/point.js +44 -0
- package/dist/components/gantt/components/base-elements/point.js.map +1 -0
- package/dist/components/gantt/components/base-elements/range.d.ts +30 -0
- package/dist/components/gantt/components/base-elements/range.js +51 -0
- package/dist/components/gantt/components/base-elements/range.js.map +1 -0
- package/dist/components/gantt/components/base-elements/use-point-element-layout/index.d.ts +12 -0
- package/dist/components/gantt/components/base-elements/use-point-element-layout/index.js +42 -0
- package/dist/components/gantt/components/base-elements/use-point-element-layout/index.js.map +1 -0
- package/dist/components/gantt/components/base-elements/use-range-element-layout/index.d.ts +23 -0
- package/dist/components/gantt/components/base-elements/use-range-element-layout/index.js +50 -0
- package/dist/components/gantt/components/base-elements/use-range-element-layout/index.js.map +1 -0
- package/dist/components/gantt/components/containers/external/gantt-content-container/index.d.ts +23 -0
- package/dist/components/gantt/components/containers/external/gantt-content-container/index.js +40 -0
- package/dist/components/gantt/components/containers/external/gantt-content-container/index.js.map +1 -0
- package/dist/components/gantt/components/containers/external/gantt-panel-container/index.d.ts +23 -0
- package/dist/components/gantt/components/containers/external/gantt-panel-container/index.js +33 -0
- package/dist/components/gantt/components/containers/external/gantt-panel-container/index.js.map +1 -0
- package/dist/components/gantt/components/containers/external/styles.module.css +32 -0
- package/dist/components/gantt/components/containers/internal/index.d.ts +22 -0
- package/dist/components/gantt/components/containers/internal/index.js +35 -0
- package/dist/components/gantt/components/containers/internal/index.js.map +1 -0
- package/dist/components/gantt/components/containers/internal/layout-container/index.d.ts +22 -0
- package/dist/components/gantt/components/containers/internal/layout-container/index.js +27 -0
- package/dist/components/gantt/components/containers/internal/layout-container/index.js.map +1 -0
- package/dist/components/gantt/components/containers/internal/styles.module.css +35 -0
- package/dist/components/gantt/components/containers/internal/virtualized-content-height-container/index.d.ts +22 -0
- package/dist/components/gantt/components/containers/internal/virtualized-content-height-container/index.js +38 -0
- package/dist/components/gantt/components/containers/internal/virtualized-content-height-container/index.js.map +1 -0
- package/dist/components/gantt/components/content-row/block.d.ts +27 -0
- package/dist/components/gantt/components/content-row/block.js +39 -0
- package/dist/components/gantt/components/content-row/block.js.map +1 -0
- package/dist/components/gantt/components/content-row/bracket.d.ts +23 -0
- package/dist/components/gantt/components/content-row/bracket.js +48 -0
- package/dist/components/gantt/components/content-row/bracket.js.map +1 -0
- package/dist/components/gantt/components/content-row/icon-marker.d.ts +27 -0
- package/dist/components/gantt/components/content-row/icon-marker.js +41 -0
- package/dist/components/gantt/components/content-row/icon-marker.js.map +1 -0
- package/dist/components/gantt/components/content-row/index.d.ts +24 -0
- package/dist/components/gantt/components/content-row/index.js +32 -0
- package/dist/components/gantt/components/content-row/index.js.map +1 -0
- package/dist/components/gantt/components/content-row/marker.d.ts +21 -0
- package/dist/components/gantt/components/content-row/marker.js +35 -0
- package/dist/components/gantt/components/content-row/marker.js.map +1 -0
- package/dist/components/gantt/components/content-row/spacer.d.ts +23 -0
- package/dist/components/gantt/components/content-row/spacer.js +35 -0
- package/dist/components/gantt/components/content-row/spacer.js.map +1 -0
- package/dist/components/gantt/components/content-row/styles.module.css +198 -0
- package/dist/components/gantt/components/content-row/use-elapsed-percentage/index.d.ts +19 -0
- package/dist/components/gantt/components/content-row/use-elapsed-percentage/index.js +27 -0
- package/dist/components/gantt/components/content-row/use-elapsed-percentage/index.js.map +1 -0
- package/dist/components/gantt/components/content-row/use-is-elapsed/index.d.ts +10 -0
- package/dist/components/gantt/components/content-row/use-is-elapsed/index.js +24 -0
- package/dist/components/gantt/components/content-row/use-is-elapsed/index.js.map +1 -0
- package/dist/components/gantt/components/current-time/index.d.ts +28 -0
- package/dist/components/gantt/components/current-time/index.js +63 -0
- package/dist/components/gantt/components/current-time/index.js.map +1 -0
- package/dist/components/gantt/components/current-time/styles.module.css +42 -0
- package/dist/components/gantt/components/current-time/use-current-time-layout/index.d.ts +31 -0
- package/dist/components/gantt/components/current-time/use-current-time-layout/index.js +58 -0
- package/dist/components/gantt/components/current-time/use-current-time-layout/index.js.map +1 -0
- package/dist/components/gantt/components/header/index.d.ts +25 -0
- package/dist/components/gantt/components/header/index.js +41 -0
- package/dist/components/gantt/components/header/index.js.map +1 -0
- package/dist/components/gantt/components/header/styles.module.css +23 -0
- package/dist/components/gantt/components/panel-row/index.d.ts +24 -0
- package/dist/components/gantt/components/panel-row/index.js +33 -0
- package/dist/components/gantt/components/panel-row/index.js.map +1 -0
- package/dist/components/gantt/components/panel-row/styles.module.css +24 -0
- package/dist/components/gantt/components/rows-virtualizer/index.d.ts +25 -0
- package/dist/components/gantt/components/rows-virtualizer/index.js +67 -0
- package/dist/components/gantt/components/rows-virtualizer/index.js.map +1 -0
- package/dist/components/gantt/components/rows-virtualizer/styles.module.css +30 -0
- package/dist/components/gantt/components/rows-virtualizer/use-rendered-rows/index.d.ts +29 -0
- package/dist/components/gantt/components/rows-virtualizer/use-rendered-rows/index.js +57 -0
- package/dist/components/gantt/components/rows-virtualizer/use-rendered-rows/index.js.map +1 -0
- package/dist/components/gantt/components/rows-virtualizer/use-scroll-sync/index.d.ts +10 -0
- package/dist/components/gantt/components/rows-virtualizer/use-scroll-sync/index.js +58 -0
- package/dist/components/gantt/components/rows-virtualizer/use-scroll-sync/index.js.map +1 -0
- package/dist/components/gantt/components/styles.module.css +46 -0
- package/dist/components/gantt/components/timeline/index.d.ts +19 -0
- package/dist/components/gantt/components/timeline/index.js +45 -0
- package/dist/components/gantt/components/timeline/index.js.map +1 -0
- package/dist/components/gantt/components/timeline/use-timeline-transform/index.d.ts +29 -0
- package/dist/components/gantt/components/timeline/use-timeline-transform/index.js +33 -0
- package/dist/components/gantt/components/timeline/use-timeline-transform/index.js.map +1 -0
- package/dist/components/gantt/components/timeline-chunk/index.d.ts +25 -0
- package/dist/components/gantt/components/timeline-chunk/index.js +43 -0
- package/dist/components/gantt/components/timeline-chunk/index.js.map +1 -0
- package/dist/components/gantt/constants.d.ts +31 -0
- package/dist/components/gantt/constants.js +57 -0
- package/dist/components/gantt/constants.js.map +1 -0
- package/dist/components/gantt/context/index.d.ts +60 -0
- package/dist/components/gantt/context/index.js +78 -0
- package/dist/components/gantt/context/index.js.map +1 -0
- package/dist/components/gantt/context/store/index.d.ts +45 -0
- package/dist/components/gantt/context/store/index.js +42 -0
- package/dist/components/gantt/context/store/index.js.map +1 -0
- package/dist/components/gantt/context/temporal-data/index.d.ts +48 -0
- package/dist/components/gantt/context/temporal-data/index.js +80 -0
- package/dist/components/gantt/context/temporal-data/index.js.map +1 -0
- package/dist/components/gantt/gantt.d.ts +50 -0
- package/dist/components/gantt/gantt.js +51 -0
- package/dist/components/gantt/gantt.js.map +1 -0
- package/dist/components/gantt/hooks/use-horizontal-scroll-update/index.d.ts +22 -0
- package/dist/components/gantt/hooks/use-horizontal-scroll-update/index.js +36 -0
- package/dist/components/gantt/hooks/use-horizontal-scroll-update/index.js.map +1 -0
- package/dist/components/gantt/hooks/use-layout-subscription/index.d.ts +26 -0
- package/dist/components/gantt/hooks/use-layout-subscription/index.js +45 -0
- package/dist/components/gantt/hooks/use-layout-subscription/index.js.map +1 -0
- package/dist/components/gantt/hooks/use-resize-intersection-effect/index.d.ts +26 -0
- package/dist/components/gantt/hooks/use-resize-intersection-effect/index.js +50 -0
- package/dist/components/gantt/hooks/use-resize-intersection-effect/index.js.map +1 -0
- package/dist/components/gantt/hooks/use-root-element-height/index.d.ts +5 -0
- package/dist/components/gantt/hooks/use-root-element-height/index.js +24 -0
- package/dist/components/gantt/hooks/use-root-element-height/index.js.map +1 -0
- package/dist/components/gantt/hooks/use-scrollbar-height/index.d.ts +5 -0
- package/dist/components/gantt/hooks/use-scrollbar-height/index.js +40 -0
- package/dist/components/gantt/hooks/use-scrollbar-height/index.js.map +1 -0
- package/dist/components/gantt/hooks/use-total-data-region-thresholds/index.d.ts +19 -0
- package/dist/components/gantt/hooks/use-total-data-region-thresholds/index.js +87 -0
- package/dist/components/gantt/hooks/use-total-data-region-thresholds/index.js.map +1 -0
- package/dist/components/gantt/hooks/use-vertical-scroll-update/index.d.ts +22 -0
- package/dist/components/gantt/hooks/use-vertical-scroll-update/index.js +38 -0
- package/dist/components/gantt/hooks/use-vertical-scroll-update/index.js.map +1 -0
- package/dist/components/gantt/public-types.d.ts +31 -0
- package/dist/components/gantt/public-types.js +12 -0
- package/dist/components/gantt/store.d.ts +51 -0
- package/dist/components/gantt/store.js +46 -0
- package/dist/components/gantt/store.js.map +1 -0
- package/dist/components/gantt/styles.module.css +30 -0
- package/dist/components/gantt/types.d.ts +67 -0
- package/dist/components/gantt/types.js +12 -0
- package/dist/components/gantt/utils/conversions.d.ts +23 -0
- package/dist/components/gantt/utils/conversions.js +34 -0
- package/dist/components/gantt/utils/conversions.js.map +1 -0
- package/dist/components/gantt/utils/dates.d.ts +11 -0
- package/dist/components/gantt/utils/dates.js +41 -0
- package/dist/components/gantt/utils/dates.js.map +1 -0
- package/dist/components/gantt/utils/formatting.d.ts +5 -0
- package/dist/components/gantt/utils/formatting.js +54 -0
- package/dist/components/gantt/utils/formatting.js.map +1 -0
- package/dist/components/gantt/utils/generation.d.ts +19 -0
- package/dist/components/gantt/utils/generation.js +37 -0
- package/dist/components/gantt/utils/generation.js.map +1 -0
- package/dist/components/gantt/utils/helpers.d.ts +26 -0
- package/dist/components/gantt/utils/helpers.js +55 -0
- package/dist/components/gantt/utils/helpers.js.map +1 -0
- package/dist/components/gantt/utils/layout.d.ts +32 -0
- package/dist/components/gantt/utils/layout.js +55 -0
- package/dist/components/gantt/utils/layout.js.map +1 -0
- package/dist/components/gantt/utils/thresholds.d.ts +52 -0
- package/dist/components/gantt/utils/thresholds.js +116 -0
- package/dist/components/gantt/utils/thresholds.js.map +1 -0
- package/dist/components/hero/context.d.ts +3 -3
- package/dist/components/hero/context.js.map +1 -1
- package/dist/components/hero/index.d.ts +2 -2
- package/dist/components/hero/index.js +4 -1
- package/dist/components/hero/index.js.map +1 -1
- package/dist/components/hero/subtitle.d.ts +3 -3
- package/dist/components/hero/subtitle.js +1 -1
- package/dist/components/hero/subtitle.js.map +1 -1
- package/dist/components/hero/title.d.ts +3 -3
- package/dist/components/hero/title.js +1 -1
- package/dist/components/hero/title.js.map +1 -1
- package/dist/components/hotkey/context.d.ts +5 -5
- package/dist/components/hotkey/context.js.map +1 -1
- package/dist/components/hotkey/index.d.ts +2 -2
- package/dist/components/hotkey/index.js +2 -1
- package/dist/components/hotkey/index.js.map +1 -1
- package/dist/components/hotkey/set.d.ts +2 -2
- package/dist/components/icon/context.d.ts +5 -5
- package/dist/components/icon/context.js.map +1 -1
- package/dist/components/icon/index.d.ts +2 -2
- package/dist/components/icon/index.js +1 -1
- package/dist/components/icon/index.js.map +1 -1
- package/dist/components/input/context.d.ts +4 -4
- package/dist/components/input/context.js.map +1 -1
- package/dist/components/input/index.d.ts +2 -2
- package/dist/components/input/index.js +4 -2
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/input/types.d.ts +3 -3
- package/dist/components/kanban/card-body.d.ts +2 -2
- package/dist/components/kanban/card-header-actions.d.ts +2 -2
- package/dist/components/kanban/card-header-title.d.ts +2 -2
- package/dist/components/kanban/card-header.d.ts +2 -2
- package/dist/components/kanban/card.d.ts +2 -2
- package/dist/components/kanban/column-actions.d.ts +2 -2
- package/dist/components/kanban/column-container.d.ts +2 -2
- package/dist/components/kanban/column-content.d.ts +2 -2
- package/dist/components/kanban/column-header-actions.d.ts +2 -2
- package/dist/components/kanban/column-header-drag-handle.d.ts +2 -2
- package/dist/components/kanban/column-header-title.d.ts +2 -2
- package/dist/components/kanban/column-header.d.ts +2 -2
- package/dist/components/kanban/column.d.ts +2 -2
- package/dist/components/kanban/context.d.ts +2 -2
- package/dist/components/kanban/header-actions.d.ts +2 -2
- package/dist/components/kanban/header-search.d.ts +2 -2
- package/dist/components/kanban/header-title.d.ts +2 -2
- package/dist/components/kanban/header-title.js +1 -1
- package/dist/components/kanban/header-title.js.map +1 -1
- package/dist/components/kanban/header.d.ts +2 -2
- package/dist/components/kanban/kanban.d.ts +4 -4
- package/dist/components/label/context.d.ts +6 -6
- package/dist/components/label/context.js.map +1 -1
- package/dist/components/label/index.d.ts +2 -2
- package/dist/components/label/index.js +2 -1
- package/dist/components/label/index.js.map +1 -1
- package/dist/components/label/types.d.ts +1 -1
- package/dist/components/lines/index.d.ts +2 -2
- package/dist/components/link/context.d.ts +2 -2
- package/dist/components/link/context.js +1 -1
- package/dist/components/link/context.js.map +1 -1
- package/dist/components/link/index.d.ts +2 -2
- package/dist/components/link/index.js +3 -1
- package/dist/components/link/index.js.map +1 -1
- package/dist/components/link/types.d.ts +1 -1
- package/dist/components/list/context.d.ts +3 -3
- package/dist/components/list/context.js.map +1 -1
- package/dist/components/list/index.d.ts +2 -2
- package/dist/components/list/index.js +3 -1
- package/dist/components/list/index.js.map +1 -1
- package/dist/components/list/item-content.d.ts +2 -2
- package/dist/components/list/item-description.d.ts +2 -2
- package/dist/components/list/item-title.d.ts +2 -2
- package/dist/components/list/item.d.ts +2 -2
- package/dist/components/list/item.js +2 -1
- package/dist/components/list/item.js.map +1 -1
- package/dist/components/list/types.d.ts +1 -1
- package/dist/components/media-controls/context.d.ts +4 -4
- package/dist/components/media-controls/fullscreen-button.d.ts +2 -2
- package/dist/components/media-controls/index.d.ts +2 -2
- package/dist/components/media-controls/mute-button.d.ts +2 -2
- package/dist/components/media-controls/play-button.d.ts +2 -2
- package/dist/components/media-controls/playback-rate.d.ts +2 -2
- package/dist/components/media-controls/seek-button.d.ts +2 -2
- package/dist/components/media-controls/time-display.d.ts +2 -2
- package/dist/components/media-controls/time-range.d.ts +2 -2
- package/dist/components/media-controls/volume-slider.d.ts +2 -2
- package/dist/components/menu/context.d.ts +4 -4
- package/dist/components/menu/context.js.map +1 -1
- package/dist/components/menu/index.d.ts +2 -2
- package/dist/components/menu/index.js +4 -1
- package/dist/components/menu/index.js.map +1 -1
- package/dist/components/menu/item-description.d.ts +3 -3
- package/dist/components/menu/item-description.js +1 -1
- package/dist/components/menu/item-description.js.map +1 -1
- package/dist/components/menu/item-label.d.ts +3 -3
- package/dist/components/menu/item-label.js +1 -1
- package/dist/components/menu/item-label.js.map +1 -1
- package/dist/components/menu/item.d.ts +2 -2
- package/dist/components/menu/item.js +5 -1
- package/dist/components/menu/item.js.map +1 -1
- package/dist/components/menu/section.d.ts +2 -2
- package/dist/components/menu/section.js +1 -1
- package/dist/components/menu/section.js.map +1 -1
- package/dist/components/menu/separator.d.ts +3 -3
- package/dist/components/menu/separator.js +1 -1
- package/dist/components/menu/separator.js.map +1 -1
- package/dist/components/menu/styles.module.css +12 -0
- package/dist/components/menu/submenu.d.ts +3 -3
- package/dist/components/menu/submenu.js +1 -1
- package/dist/components/menu/submenu.js.map +1 -1
- package/dist/components/menu/trigger.d.ts +1 -1
- package/dist/components/menu/trigger.js +1 -1
- package/dist/components/menu/trigger.js.map +1 -1
- package/dist/components/menu/types.d.ts +1 -1
- package/dist/components/notice/index.d.ts +2 -2
- package/dist/components/notice/index.js +6 -5
- package/dist/components/notice/index.js.map +1 -1
- package/dist/components/notice/list.d.ts +2 -2
- package/dist/components/notice/list.js +16 -6
- package/dist/components/notice/list.js.map +1 -1
- package/dist/components/notice/notice-icon.d.ts +2 -2
- package/dist/components/notice/styles.module.css +27 -0
- package/dist/components/notice/types.d.ts +4 -4
- package/dist/components/options/context.d.ts +3 -3
- package/dist/components/options/context.js.map +1 -1
- package/dist/components/options/index.d.ts +2 -2
- package/dist/components/options/index.js +3 -1
- package/dist/components/options/index.js.map +1 -1
- package/dist/components/options/item-content.d.ts +3 -3
- package/dist/components/options/item-content.js.map +1 -1
- package/dist/components/options/item-description.d.ts +3 -3
- package/dist/components/options/item-description.js +1 -1
- package/dist/components/options/item-description.js.map +1 -1
- package/dist/components/options/item-label.d.ts +3 -3
- package/dist/components/options/item-label.js +2 -1
- package/dist/components/options/item-label.js.map +1 -1
- package/dist/components/options/item.d.ts +2 -2
- package/dist/components/options/item.js +2 -1
- package/dist/components/options/item.js.map +1 -1
- package/dist/components/options/section.d.ts +2 -2
- package/dist/components/options/section.js +1 -1
- package/dist/components/options/section.js.map +1 -1
- package/dist/components/options/types.d.ts +2 -2
- package/dist/components/pagination/context.d.ts +2 -2
- package/dist/components/pagination/index.d.ts +2 -2
- package/dist/components/pagination/index.js +1 -1
- package/dist/components/pagination/index.js.map +1 -1
- package/dist/components/pagination/next.d.ts +2 -2
- package/dist/components/pagination/next.js +3 -3
- package/dist/components/pagination/next.js.map +1 -1
- package/dist/components/pagination/pages.d.ts +2 -2
- package/dist/components/pagination/pages.js +3 -3
- package/dist/components/pagination/pages.js.map +1 -1
- package/dist/components/pagination/prev.d.ts +2 -2
- package/dist/components/pagination/prev.js +3 -3
- package/dist/components/pagination/prev.js.map +1 -1
- package/dist/components/popover/content.d.ts +2 -2
- package/dist/components/popover/footer.d.ts +2 -2
- package/dist/components/popover/index.d.ts +2 -2
- package/dist/components/popover/index.js +1 -1
- package/dist/components/popover/index.js.map +1 -1
- package/dist/components/popover/styles.module.css +34 -0
- package/dist/components/popover/title.d.ts +3 -3
- package/dist/components/popover/title.js +1 -1
- package/dist/components/popover/title.js.map +1 -1
- package/dist/components/popover/trigger.d.ts +2 -2
- package/dist/components/popover/trigger.js +3 -3
- package/dist/components/popover/trigger.js.map +1 -1
- package/dist/components/popover/types.d.ts +1 -1
- package/dist/components/query-builder/action-element.d.ts +2 -2
- package/dist/components/query-builder/actions.d.ts +4 -4
- package/dist/components/query-builder/combinator-selector.d.ts +2 -2
- package/dist/components/query-builder/index.d.ts +2 -2
- package/dist/components/query-builder/rule-group.d.ts +4 -4
- package/dist/components/query-builder/rule.d.ts +2 -2
- package/dist/components/query-builder/value-editor.d.ts +2 -2
- package/dist/components/query-builder/value-selector.d.ts +2 -2
- package/dist/components/query-builder/value-selector.js +1 -1
- package/dist/components/radio/context.d.ts +5 -5
- package/dist/components/radio/context.js.map +1 -1
- package/dist/components/radio/group.d.ts +2 -2
- package/dist/components/radio/group.js +5 -3
- package/dist/components/radio/group.js.map +1 -1
- package/dist/components/radio/index.d.ts +2 -2
- package/dist/components/radio/index.js +3 -1
- package/dist/components/radio/index.js.map +1 -1
- package/dist/components/radio/types.d.ts +3 -3
- package/dist/components/search-field/context.d.ts +6 -6
- package/dist/components/search-field/context.js.map +1 -1
- package/dist/components/search-field/index.d.ts +2 -2
- package/dist/components/search-field/index.js +3 -1
- package/dist/components/search-field/index.js.map +1 -1
- package/dist/components/search-field/types.d.ts +3 -3
- package/dist/components/select-field/context.d.ts +5 -5
- package/dist/components/select-field/context.js.map +1 -1
- package/dist/components/select-field/index.d.ts +2 -2
- package/dist/components/select-field/index.js +6 -3
- package/dist/components/select-field/index.js.map +1 -1
- package/dist/components/select-field/types.d.ts +8 -5
- package/dist/components/sidenav/avatar.d.ts +2 -2
- package/dist/components/sidenav/avatar.js +3 -1
- package/dist/components/sidenav/avatar.js.map +1 -1
- package/dist/components/sidenav/content.d.ts +2 -2
- package/dist/components/sidenav/content.js +1 -1
- package/dist/components/sidenav/content.js.map +1 -1
- package/dist/components/sidenav/context.d.ts +2 -2
- package/dist/components/sidenav/footer.d.ts +2 -2
- package/dist/components/sidenav/header.d.ts +2 -2
- package/dist/components/sidenav/header.js +3 -1
- package/dist/components/sidenav/header.js.map +1 -1
- package/dist/components/sidenav/index.d.ts +2 -2
- package/dist/components/sidenav/index.js +2 -1
- package/dist/components/sidenav/index.js.map +1 -1
- package/dist/components/sidenav/item.d.ts +2 -2
- package/dist/components/sidenav/item.js +8 -5
- package/dist/components/sidenav/item.js.map +1 -1
- package/dist/components/sidenav/link.d.ts +2 -2
- package/dist/components/sidenav/link.js +8 -5
- package/dist/components/sidenav/link.js.map +1 -1
- package/dist/components/sidenav/menu-item.d.ts +2 -2
- package/dist/components/sidenav/menu-item.js +2 -1
- package/dist/components/sidenav/menu-item.js.map +1 -1
- package/dist/components/sidenav/menu.d.ts +2 -2
- package/dist/components/sidenav/menu.js +10 -5
- package/dist/components/sidenav/menu.js.map +1 -1
- package/dist/components/sidenav/styles.module.css +10 -2
- package/dist/components/sidenav/trigger.d.ts +2 -2
- package/dist/components/sidenav/trigger.js +1 -1
- package/dist/components/sidenav/trigger.js.map +1 -1
- package/dist/components/sidenav/types.d.ts +6 -1
- package/dist/components/skeleton/index.d.ts +2 -2
- package/dist/components/slider/index.d.ts +2 -2
- package/dist/components/slider/index.js +9 -6
- package/dist/components/slider/index.js.map +1 -1
- package/dist/components/slider/types.d.ts +1 -1
- package/dist/components/status-indicator/index.d.ts +2 -2
- package/dist/components/switch/context.d.ts +6 -6
- package/dist/components/switch/context.js.map +1 -1
- package/dist/components/switch/index.d.ts +2 -2
- package/dist/components/switch/index.js +3 -1
- package/dist/components/switch/index.js.map +1 -1
- package/dist/components/switch/styles.module.css +8 -0
- package/dist/components/switch/types.d.ts +1 -1
- package/dist/components/table/body.d.ts +2 -2
- package/dist/components/table/cell.d.ts +2 -2
- package/dist/components/table/context.d.ts +2 -2
- package/dist/components/table/header-cell.d.ts +2 -2
- package/dist/components/table/header.d.ts +2 -2
- package/dist/components/table/index.d.ts +2 -2
- package/dist/components/table/index.js +4 -4
- package/dist/components/table/index.js.map +1 -1
- package/dist/components/table/row.d.ts +2 -2
- package/dist/components/tabs/context.d.ts +8 -8
- package/dist/components/tabs/context.js.map +1 -1
- package/dist/components/tabs/index.d.ts +2 -2
- package/dist/components/tabs/index.js +3 -1
- package/dist/components/tabs/index.js.map +1 -1
- package/dist/components/tabs/list.d.ts +3 -3
- package/dist/components/tabs/list.js +2 -1
- package/dist/components/tabs/list.js.map +1 -1
- package/dist/components/tabs/panel.d.ts +3 -3
- package/dist/components/tabs/panel.js +2 -1
- package/dist/components/tabs/panel.js.map +1 -1
- package/dist/components/tabs/tab.d.ts +2 -2
- package/dist/components/tabs/tab.js +3 -1
- package/dist/components/tabs/tab.js.map +1 -1
- package/dist/components/tabs/types.d.ts +1 -1
- package/dist/components/text-area-field/context.d.ts +5 -5
- package/dist/components/text-area-field/context.js.map +1 -1
- package/dist/components/text-area-field/index.d.ts +2 -2
- package/dist/components/text-area-field/index.js +8 -3
- package/dist/components/text-area-field/index.js.map +1 -1
- package/dist/components/text-area-field/types.d.ts +3 -1
- package/dist/components/text-field/context.d.ts +6 -6
- package/dist/components/text-field/context.js.map +1 -1
- package/dist/components/text-field/index.d.ts +2 -2
- package/dist/components/text-field/index.js +9 -5
- package/dist/components/text-field/index.js.map +1 -1
- package/dist/components/text-field/types.d.ts +7 -6
- package/dist/components/time-field/index.d.ts +3 -3
- package/dist/components/time-field/index.js +4 -3
- package/dist/components/time-field/index.js.map +1 -1
- package/dist/components/time-field/types.d.ts +1 -1
- package/dist/components/tooltip/context.d.ts +3 -3
- package/dist/components/tooltip/context.js.map +1 -1
- package/dist/components/tooltip/index.d.ts +2 -2
- package/dist/components/tooltip/index.js +3 -2
- package/dist/components/tooltip/index.js.map +1 -1
- package/dist/components/tooltip/styles.module.css +35 -0
- package/dist/components/tooltip/trigger.d.ts +2 -2
- package/dist/components/tooltip/trigger.js +6 -3
- package/dist/components/tooltip/trigger.js.map +1 -1
- package/dist/components/tooltip/types.d.ts +8 -3
- package/dist/components/tree/context.d.ts +3 -3
- package/dist/components/tree/index.d.ts +4 -2
- package/dist/components/tree/index.js +31 -16
- package/dist/components/tree/index.js.map +1 -1
- package/dist/components/tree/item-actions.d.ts +2 -2
- package/dist/components/tree/item-content.d.ts +2 -2
- package/dist/components/tree/item-content.js +10 -9
- package/dist/components/tree/item-content.js.map +1 -1
- package/dist/components/tree/item-description.d.ts +3 -3
- package/dist/components/tree/item-description.js +1 -1
- package/dist/components/tree/item-description.js.map +1 -1
- package/dist/components/tree/item-label.d.ts +3 -3
- package/dist/components/tree/item-label.js +1 -1
- package/dist/components/tree/item-label.js.map +1 -1
- package/dist/components/tree/item-prefix-icon.d.ts +2 -2
- package/dist/components/tree/item.d.ts +2 -2
- package/dist/components/tree/item.js +14 -7
- package/dist/components/tree/item.js.map +1 -1
- package/dist/components/tree/lines.d.ts +2 -2
- package/dist/components/tree/types.d.ts +30 -15
- package/dist/components/video/index.d.ts +2 -2
- package/dist/components/view-stack/context.d.ts +2 -2
- package/dist/components/view-stack/index.d.ts +2 -2
- package/dist/components/view-stack/trigger.d.ts +2 -2
- package/dist/components/view-stack/trigger.js +1 -1
- package/dist/components/view-stack/trigger.js.map +1 -1
- package/dist/components/view-stack/types.d.ts +1 -1
- package/dist/components/view-stack/view.d.ts +2 -2
- package/dist/hooks/coordinate-field/use-coordinate-field.d.ts +1 -1
- package/dist/hooks/coordinate-field/use-coordinate-field.js +1 -1
- package/dist/hooks/coordinate-field/use-coordinate-field.js.map +1 -1
- package/dist/hooks/use-tree/actions/cache.d.ts +406 -17
- package/dist/hooks/use-tree/actions/cache.js +488 -16
- package/dist/hooks/use-tree/actions/cache.js.map +1 -1
- package/dist/hooks/use-tree/actions/index.d.ts +36 -22
- package/dist/hooks/use-tree/actions/index.js +103 -36
- package/dist/hooks/use-tree/actions/index.js.map +1 -1
- package/dist/hooks/use-tree/state/index.d.ts +25 -2
- package/dist/hooks/use-tree/state/index.js +27 -3
- package/dist/hooks/use-tree/state/index.js.map +1 -1
- package/dist/hooks/use-tree/state/utils.d.ts +28 -0
- 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 +66 -24
- package/dist/index.d.ts +27 -7
- package/dist/index.js +27 -10
- package/dist/lib/utils.d.ts +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/providers/portal.d.ts +2 -2
- package/dist/providers/portal.js +2 -2
- package/dist/providers/portal.js.map +1 -1
- package/dist/providers/theme-provider.d.ts +4 -4
- package/dist/providers/theme-provider.js +6 -7
- package/dist/providers/theme-provider.js.map +1 -1
- package/package.json +77 -36
- package/dist/node_modules/.pnpm/@react-aria_collections@3.0.0-rc.7_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@react-aria/collections/dist/BaseCollection.js +0 -134
- package/dist/node_modules/.pnpm/@react-aria_collections@3.0.0-rc.7_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@react-aria/collections/dist/BaseCollection.js.map +0 -1
|
@@ -10,27 +10,34 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import { UniqueId } from "@accelint/core/utility/uuid";
|
|
13
|
+
import { FloatingCardContextValue } from "./types.js";
|
|
14
|
+
import * as react13 from "react";
|
|
16
15
|
|
|
17
16
|
//#region src/components/floating-card/context.d.ts
|
|
18
|
-
|
|
19
|
-
cards: Record<UniqueId, HTMLDivElement>;
|
|
20
|
-
addRef: (id: UniqueId, ref: HTMLDivElement | null) => void;
|
|
21
|
-
removeRef: (view: UniqueId) => void;
|
|
22
|
-
closeCard: (id: UniqueId) => void;
|
|
23
|
-
api: DockviewApi | null;
|
|
24
|
-
};
|
|
25
|
-
declare const FloatingCardContext: react25.Context<FloatingCardContextValue | null>;
|
|
17
|
+
declare const FloatingCardContext: react13.Context<FloatingCardContextValue | null>;
|
|
26
18
|
/**
|
|
27
|
-
* Hook to access
|
|
28
|
-
* Must be used within a FloatingCardProvider.
|
|
19
|
+
* Hook to access floating card management functionality.
|
|
29
20
|
*
|
|
21
|
+
* Provides access to card registry, ref management, and programmatic control
|
|
22
|
+
* over opening, closing, and pinning floating cards.
|
|
23
|
+
*
|
|
24
|
+
* @returns Context value with card management methods and state.
|
|
30
25
|
* @throws {Error} If used outside of a FloatingCardProvider.
|
|
31
|
-
*
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```tsx
|
|
29
|
+
* function MyComponent() {
|
|
30
|
+
* const { closeCard, togglePinCard } = useFloatingCard();
|
|
31
|
+
*
|
|
32
|
+
* return (
|
|
33
|
+
* <button onClick={() => closeCard('my-card-id' as UniqueId)}>
|
|
34
|
+
* Close Card
|
|
35
|
+
* </button>
|
|
36
|
+
* );
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
32
39
|
*/
|
|
33
40
|
declare function useFloatingCard(): FloatingCardContextValue;
|
|
34
41
|
//#endregion
|
|
35
|
-
export { FloatingCardContext,
|
|
42
|
+
export { FloatingCardContext, useFloatingCard };
|
|
36
43
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -16,11 +16,26 @@ import { createContext, useContext } from "react";
|
|
|
16
16
|
//#region src/components/floating-card/context.tsx
|
|
17
17
|
const FloatingCardContext = createContext(null);
|
|
18
18
|
/**
|
|
19
|
-
* Hook to access
|
|
20
|
-
* Must be used within a FloatingCardProvider.
|
|
19
|
+
* Hook to access floating card management functionality.
|
|
21
20
|
*
|
|
21
|
+
* Provides access to card registry, ref management, and programmatic control
|
|
22
|
+
* over opening, closing, and pinning floating cards.
|
|
23
|
+
*
|
|
24
|
+
* @returns Context value with card management methods and state.
|
|
22
25
|
* @throws {Error} If used outside of a FloatingCardProvider.
|
|
23
|
-
*
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```tsx
|
|
29
|
+
* function MyComponent() {
|
|
30
|
+
* const { closeCard, togglePinCard } = useFloatingCard();
|
|
31
|
+
*
|
|
32
|
+
* return (
|
|
33
|
+
* <button onClick={() => closeCard('my-card-id' as UniqueId)}>
|
|
34
|
+
* Close Card
|
|
35
|
+
* </button>
|
|
36
|
+
* );
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
24
39
|
*/
|
|
25
40
|
function useFloatingCard() {
|
|
26
41
|
const context = useContext(FloatingCardContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/floating-card/context.tsx"],"sourcesContent":["// __private-exports\n/*\n * Copyright 2026 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 { createContext, useContext } from 'react';\nimport type {
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../src/components/floating-card/context.tsx"],"sourcesContent":["// __private-exports\n/*\n * Copyright 2026 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 { createContext, useContext } from 'react';\nimport type { FloatingCardContextValue } from './types';\n\nexport const FloatingCardContext =\n createContext<FloatingCardContextValue | null>(null);\n/**\n * Hook to access floating card management functionality.\n *\n * Provides access to card registry, ref management, and programmatic control\n * over opening, closing, and pinning floating cards.\n *\n * @returns Context value with card management methods and state.\n * @throws {Error} If used outside of a FloatingCardProvider.\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { closeCard, togglePinCard } = useFloatingCard();\n *\n * return (\n * <button onClick={() => closeCard('my-card-id' as UniqueId)}>\n * Close Card\n * </button>\n * );\n * }\n * ```\n */\nexport function useFloatingCard(): FloatingCardContextValue {\n const context = useContext(FloatingCardContext);\n if (!context) {\n throw new Error(\n 'useFloatingCard must be used within a FloatingCardProvider.',\n );\n }\n return context;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAgBA,MAAa,sBACX,cAA+C,KAAK;;;;;;;;;;;;;;;;;;;;;;;AAuBtD,SAAgB,kBAA4C;CAC1D,MAAM,UAAU,WAAW,oBAAoB;AAC/C,KAAI,CAAC,QACH,OAAM,IAAI,MACR,8DACD;AAEH,QAAO"}
|
|
@@ -10,33 +10,12 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import
|
|
13
|
+
import { FloatingCardProps } from "./types.js";
|
|
14
|
+
import * as react14 from "react";
|
|
14
15
|
import { PropsWithChildren } from "react";
|
|
15
|
-
import { UniqueId } from "@accelint/core";
|
|
16
16
|
|
|
17
17
|
//#region src/components/floating-card/index.d.ts
|
|
18
|
-
|
|
19
|
-
id: UniqueId;
|
|
20
|
-
title?: string;
|
|
21
|
-
/**
|
|
22
|
-
* Controls whether the floating card is rendered.
|
|
23
|
-
*
|
|
24
|
-
* When `true`, the card registers with the floating card engine and renders its
|
|
25
|
-
* children via a portal. When `false`, the card is closed and removed.
|
|
26
|
-
*
|
|
27
|
-
* @defaultValue true
|
|
28
|
-
*/
|
|
29
|
-
isOpen?: boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Initial dimensions of the floating card panel.
|
|
32
|
-
*
|
|
33
|
-
* @defaultValue { width: 300, height: 400 }
|
|
34
|
-
*/
|
|
35
|
-
initialDimensions?: Readonly<{
|
|
36
|
-
width: number;
|
|
37
|
-
height: number;
|
|
38
|
-
}>;
|
|
39
|
-
}>;
|
|
18
|
+
|
|
40
19
|
/**
|
|
41
20
|
* Renders its children into a floating card using React portals.
|
|
42
21
|
*
|
|
@@ -47,19 +26,45 @@ type FloatingCardProps = Readonly<{
|
|
|
47
26
|
* @param title - Optional title displayed in the floating card header.
|
|
48
27
|
* @param isOpen - Whether the floating card is rendered. Defaults to `true`.
|
|
49
28
|
* @param initialDimensions - Initial width and height of the floating card. Defaults to `{ width: 300, height: 400 }`.
|
|
29
|
+
* @param initialPosition - Initial x and y coordinates of the floating card.
|
|
50
30
|
* @param children - React children to render inside the floating card.
|
|
31
|
+
* @returns The floating card component (portaled content) or null.
|
|
51
32
|
*
|
|
52
33
|
* @remarks
|
|
53
34
|
* - Requires `FloatingCardProvider` as an ancestor.
|
|
54
35
|
* - The floating card is only rendered if a valid DOM reference exists for the given `id`.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* import { uuid } from '@accelint/core/utility/uuid';
|
|
40
|
+
*
|
|
41
|
+
* const cardId = uuid();
|
|
42
|
+
* const [isOpen, setIsOpen] = useState(true);
|
|
43
|
+
*
|
|
44
|
+
* <FloatingCardProvider>
|
|
45
|
+
* <FloatingCard
|
|
46
|
+
* id={cardId}
|
|
47
|
+
* title="Settings Panel"
|
|
48
|
+
* isOpen={isOpen}
|
|
49
|
+
* initialDimensions={{ width: 400, height: 500 }}
|
|
50
|
+
* >
|
|
51
|
+
* <SettingsForm />
|
|
52
|
+
* </FloatingCard>
|
|
53
|
+
*
|
|
54
|
+
* <button onClick={() => setIsOpen(!isOpen)}>
|
|
55
|
+
* Toggle Panel
|
|
56
|
+
* </button>
|
|
57
|
+
* </FloatingCardProvider>
|
|
58
|
+
* ```
|
|
55
59
|
*/
|
|
56
60
|
declare function FloatingCard({
|
|
57
61
|
id,
|
|
58
62
|
children,
|
|
59
63
|
title,
|
|
60
64
|
isOpen,
|
|
61
|
-
initialDimensions
|
|
62
|
-
|
|
65
|
+
initialDimensions,
|
|
66
|
+
initialPosition
|
|
67
|
+
}: PropsWithChildren<FloatingCardProps>): react14.ReactPortal | null;
|
|
63
68
|
//#endregion
|
|
64
|
-
export { FloatingCard
|
|
69
|
+
export { FloatingCard };
|
|
65
70
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -30,29 +30,57 @@ const defaultDimensions = {
|
|
|
30
30
|
* @param title - Optional title displayed in the floating card header.
|
|
31
31
|
* @param isOpen - Whether the floating card is rendered. Defaults to `true`.
|
|
32
32
|
* @param initialDimensions - Initial width and height of the floating card. Defaults to `{ width: 300, height: 400 }`.
|
|
33
|
+
* @param initialPosition - Initial x and y coordinates of the floating card.
|
|
33
34
|
* @param children - React children to render inside the floating card.
|
|
35
|
+
* @returns The floating card component (portaled content) or null.
|
|
34
36
|
*
|
|
35
37
|
* @remarks
|
|
36
38
|
* - Requires `FloatingCardProvider` as an ancestor.
|
|
37
39
|
* - The floating card is only rendered if a valid DOM reference exists for the given `id`.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```tsx
|
|
43
|
+
* import { uuid } from '@accelint/core/utility/uuid';
|
|
44
|
+
*
|
|
45
|
+
* const cardId = uuid();
|
|
46
|
+
* const [isOpen, setIsOpen] = useState(true);
|
|
47
|
+
*
|
|
48
|
+
* <FloatingCardProvider>
|
|
49
|
+
* <FloatingCard
|
|
50
|
+
* id={cardId}
|
|
51
|
+
* title="Settings Panel"
|
|
52
|
+
* isOpen={isOpen}
|
|
53
|
+
* initialDimensions={{ width: 400, height: 500 }}
|
|
54
|
+
* >
|
|
55
|
+
* <SettingsForm />
|
|
56
|
+
* </FloatingCard>
|
|
57
|
+
*
|
|
58
|
+
* <button onClick={() => setIsOpen(!isOpen)}>
|
|
59
|
+
* Toggle Panel
|
|
60
|
+
* </button>
|
|
61
|
+
* </FloatingCardProvider>
|
|
62
|
+
* ```
|
|
38
63
|
*/
|
|
39
|
-
function FloatingCard({ id, children, title, isOpen = true, initialDimensions }) {
|
|
40
|
-
const
|
|
64
|
+
function FloatingCard({ id, children, title, isOpen = true, initialDimensions, initialPosition }) {
|
|
65
|
+
const { cards, api: floatingCardApi } = useFloatingCard();
|
|
41
66
|
const { width, height } = initialDimensions ?? defaultDimensions;
|
|
67
|
+
const { x, y } = initialPosition ?? {};
|
|
42
68
|
useEffect(() => {
|
|
43
|
-
if (!
|
|
69
|
+
if (!floatingCardApi) return;
|
|
44
70
|
if (!isOpen) {
|
|
45
|
-
|
|
71
|
+
floatingCardApi.getPanel(id)?.api.close();
|
|
46
72
|
return;
|
|
47
73
|
}
|
|
48
|
-
if (!
|
|
49
|
-
const panel =
|
|
74
|
+
if (!floatingCardApi.getPanel(id)) {
|
|
75
|
+
const panel = floatingCardApi.addPanel({
|
|
50
76
|
id,
|
|
51
77
|
title,
|
|
52
78
|
component: "default",
|
|
53
79
|
floating: {
|
|
54
80
|
width,
|
|
55
|
-
height
|
|
81
|
+
height,
|
|
82
|
+
x,
|
|
83
|
+
y
|
|
56
84
|
}
|
|
57
85
|
});
|
|
58
86
|
panel.group.locked = "no-drop-target";
|
|
@@ -63,17 +91,19 @@ function FloatingCard({ id, children, title, isOpen = true, initialDimensions })
|
|
|
63
91
|
isOpen,
|
|
64
92
|
width,
|
|
65
93
|
height,
|
|
66
|
-
|
|
94
|
+
x,
|
|
95
|
+
y,
|
|
96
|
+
floatingCardApi
|
|
67
97
|
]);
|
|
68
98
|
useEffect(() => {
|
|
69
|
-
const panel =
|
|
99
|
+
const panel = floatingCardApi?.getPanel(id);
|
|
70
100
|
if (panel) panel.setTitle(title ?? id);
|
|
71
101
|
}, [
|
|
72
102
|
title,
|
|
73
|
-
|
|
103
|
+
floatingCardApi,
|
|
74
104
|
id
|
|
75
105
|
]);
|
|
76
|
-
return isOpen &&
|
|
106
|
+
return isOpen && cards[id] ? createPortal(children, cards[id]) : null;
|
|
77
107
|
}
|
|
78
108
|
|
|
79
109
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/floating-card/index.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 PropsWithChildren, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useFloatingCard } from './context';\nimport type {
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/floating-card/index.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 PropsWithChildren, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useFloatingCard } from './context';\nimport type { FloatingCardProps } from './types';\n\nconst defaultDimensions = { width: 300, height: 400 } as const;\n\n/**\n * Renders its children into a floating card using React portals.\n *\n * The `FloatingCard` component registers itself with the floating card engine on mount\n * and renders its children into the corresponding DOM node via a portal.\n *\n * @param id - Unique identifier for the floating card.\n * @param title - Optional title displayed in the floating card header.\n * @param isOpen - Whether the floating card is rendered. Defaults to `true`.\n * @param initialDimensions - Initial width and height of the floating card. Defaults to `{ width: 300, height: 400 }`.\n * @param initialPosition - Initial x and y coordinates of the floating card.\n * @param children - React children to render inside the floating card.\n * @returns The floating card component (portaled content) or null.\n *\n * @remarks\n * - Requires `FloatingCardProvider` as an ancestor.\n * - The floating card is only rendered if a valid DOM reference exists for the given `id`.\n *\n * @example\n * ```tsx\n * import { uuid } from '@accelint/core/utility/uuid';\n *\n * const cardId = uuid();\n * const [isOpen, setIsOpen] = useState(true);\n *\n * <FloatingCardProvider>\n * <FloatingCard\n * id={cardId}\n * title=\"Settings Panel\"\n * isOpen={isOpen}\n * initialDimensions={{ width: 400, height: 500 }}\n * >\n * <SettingsForm />\n * </FloatingCard>\n *\n * <button onClick={() => setIsOpen(!isOpen)}>\n * Toggle Panel\n * </button>\n * </FloatingCardProvider>\n * ```\n */\nexport function FloatingCard({\n id,\n children,\n title,\n isOpen = true,\n initialDimensions,\n initialPosition,\n}: PropsWithChildren<FloatingCardProps>) {\n const { cards, api: floatingCardApi } = useFloatingCard();\n\n const { width, height } = initialDimensions ?? defaultDimensions;\n const { x, y } = initialPosition ?? {};\n\n // Register card with Dockview API when isOpen changes.\n // Early return if API not ready (Dockview not fully initialized).\n useEffect(() => {\n if (!floatingCardApi) {\n return;\n }\n if (!isOpen) {\n floatingCardApi.getPanel(id)?.api.close();\n return;\n }\n\n if (!floatingCardApi.getPanel(id)) {\n const panel = floatingCardApi.addPanel({\n id,\n title,\n component: 'default',\n floating: { width, height, x, y },\n });\n\n panel.group.locked = 'no-drop-target';\n }\n\n // Cleanup not included here. Cleanup is done at the provider level when the card is removed from the `cards` registry.\n }, [id, title, isOpen, width, height, x, y, floatingCardApi]);\n\n useEffect(() => {\n const panel = floatingCardApi?.getPanel(id);\n if (panel) {\n panel.setTitle(title ?? id);\n }\n }, [title, floatingCardApi, id]);\n\n return isOpen && cards[id] ? createPortal(children, cards[id]) : null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,MAAM,oBAAoB;CAAE,OAAO;CAAK,QAAQ;CAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CrD,SAAgB,aAAa,EAC3B,IACA,UACA,OACA,SAAS,MACT,mBACA,mBACuC;CACvC,MAAM,EAAE,OAAO,KAAK,oBAAoB,iBAAiB;CAEzD,MAAM,EAAE,OAAO,WAAW,qBAAqB;CAC/C,MAAM,EAAE,GAAG,MAAM,mBAAmB,EAAE;AAItC,iBAAgB;AACd,MAAI,CAAC,gBACH;AAEF,MAAI,CAAC,QAAQ;AACX,mBAAgB,SAAS,GAAG,EAAE,IAAI,OAAO;AACzC;;AAGF,MAAI,CAAC,gBAAgB,SAAS,GAAG,EAAE;GACjC,MAAM,QAAQ,gBAAgB,SAAS;IACrC;IACA;IACA,WAAW;IACX,UAAU;KAAE;KAAO;KAAQ;KAAG;KAAG;IAClC,CAAC;AAEF,SAAM,MAAM,SAAS;;IAItB;EAAC;EAAI;EAAO;EAAQ;EAAO;EAAQ;EAAG;EAAG;EAAgB,CAAC;AAE7D,iBAAgB;EACd,MAAM,QAAQ,iBAAiB,SAAS,GAAG;AAC3C,MAAI,MACF,OAAM,SAAS,SAAS,GAAG;IAE5B;EAAC;EAAO;EAAiB;EAAG,CAAC;AAEhC,QAAO,UAAU,MAAM,MAAM,aAAa,UAAU,MAAM,IAAI,GAAG"}
|
|
@@ -10,55 +10,53 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {
|
|
14
|
-
import * as
|
|
13
|
+
import { FloatingCardProviderProps } from "./types.js";
|
|
14
|
+
import * as react_jsx_runtime50 from "react/jsx-runtime";
|
|
15
15
|
|
|
16
16
|
//#region src/components/floating-card/provider.d.ts
|
|
17
|
-
|
|
18
|
-
type MaybeFactory<T> = T | ((cardId: string) => T);
|
|
19
|
-
type FloatingCardProviderProps = Readonly<PropsWithChildren<{
|
|
20
|
-
/**
|
|
21
|
-
* Optional icon rendered at the very start of the floating card header.
|
|
22
|
-
* Can be a `ReactNode` or a function `(cardId: string) => ReactNode`.
|
|
23
|
-
*/
|
|
24
|
-
icon?: MaybeFactory<ReactNode>;
|
|
25
|
-
/**
|
|
26
|
-
* Optional action buttons rendered in the floating card header before the close button.
|
|
27
|
-
* Can include dividers to separate groups of actions.
|
|
28
|
-
* Can be an array or a function `(cardId: string) => array` to return
|
|
29
|
-
* per-floating card actions.
|
|
30
|
-
*/
|
|
31
|
-
headerActions?: MaybeFactory<({
|
|
32
|
-
icon: ReactNode;
|
|
33
|
-
onClick: () => void;
|
|
34
|
-
} | 'divider')[]>;
|
|
35
|
-
className?: string;
|
|
36
|
-
}>>;
|
|
17
|
+
|
|
37
18
|
/**
|
|
38
19
|
* Provides a context and layout area for floating cards within the application.
|
|
39
20
|
*
|
|
40
|
-
* Wraps
|
|
41
|
-
*
|
|
21
|
+
* Wraps children with floating card context and renders a Dockview instance to manage
|
|
22
|
+
* docking, dragging, and layout of floating cards.
|
|
42
23
|
*
|
|
43
24
|
* @param props - The props for the FloatingCardProvider component.
|
|
44
25
|
* @param props.children - Child components rendered inside the floating card provider.
|
|
45
|
-
* @param props.icon - Optional icon.
|
|
46
|
-
* @param props.headerActions - Optional
|
|
26
|
+
* @param props.icon - Optional icon rendered in all card headers (static or factory).
|
|
27
|
+
* @param props.headerActions - Optional action buttons for card headers (static or factory).
|
|
47
28
|
* @param props.className - Additional CSS class names for styling.
|
|
48
|
-
*
|
|
49
29
|
* @returns The FloatingCardProvider component that manages floating card layout and context.
|
|
50
30
|
*
|
|
51
31
|
* @remarks
|
|
52
|
-
* - Manages registration and
|
|
53
|
-
* - Exposes
|
|
54
|
-
* -
|
|
32
|
+
* - Manages registration and cleanup of floating card DOM references
|
|
33
|
+
* - Exposes closeCard, togglePinCard, and isPinned via context
|
|
34
|
+
* - Automatically cleans up refs when cards are removed via any path (drag close, group close, API close)
|
|
35
|
+
* - Cards are bounded within the viewport
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* <FloatingCardProvider
|
|
40
|
+
* icon={<AppLogo />}
|
|
41
|
+
* headerActions={[
|
|
42
|
+
* { icon: <SettingsIcon />, onClick: openSettings },
|
|
43
|
+
* 'divider',
|
|
44
|
+
* 'pin'
|
|
45
|
+
* ]}
|
|
46
|
+
* >
|
|
47
|
+
* <FloatingCard id="panel-1" title="My Panel">
|
|
48
|
+
* <div>Panel content</div>
|
|
49
|
+
* </FloatingCard>
|
|
50
|
+
* </FloatingCardProvider>
|
|
51
|
+
* ```
|
|
55
52
|
*/
|
|
56
53
|
declare function FloatingCardProvider({
|
|
57
54
|
children,
|
|
58
55
|
icon,
|
|
59
56
|
headerActions,
|
|
57
|
+
initialPinned,
|
|
60
58
|
className
|
|
61
|
-
}: FloatingCardProviderProps):
|
|
59
|
+
}: FloatingCardProviderProps): react_jsx_runtime50.JSX.Element;
|
|
62
60
|
//#endregion
|
|
63
|
-
export { FloatingCardProvider
|
|
61
|
+
export { FloatingCardProvider };
|
|
64
62
|
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -15,30 +15,46 @@ import { Icon } from "../icon/index.js";
|
|
|
15
15
|
import { Button } from "../button/index.js";
|
|
16
16
|
import { Divider } from "../divider/index.js";
|
|
17
17
|
import { FloatingCardContext, useFloatingCard } from "./context.js";
|
|
18
|
-
import {
|
|
18
|
+
import { createHeaderAdapter } from "./utils.js";
|
|
19
|
+
import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
19
20
|
import { clsx } from "@accelint/design-foundation/lib/utils";
|
|
20
21
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
21
22
|
import Cancel from "@accelint/icons/cancel";
|
|
23
|
+
import PinIcon from "@accelint/icons/pin";
|
|
22
24
|
import { DockviewReact } from "dockview-react";
|
|
23
25
|
import styles from "./styles.module.css";
|
|
24
26
|
|
|
25
27
|
//#region src/components/floating-card/provider.tsx
|
|
26
28
|
/**
|
|
27
29
|
* Internal component that registers a DOM ref for a card container.
|
|
28
|
-
*
|
|
30
|
+
*
|
|
31
|
+
* Used by the floating card engine to mount portal targets. Also manages
|
|
32
|
+
* the data-pinned attribute on the resize container to control drag handle visibility.
|
|
33
|
+
*
|
|
34
|
+
* @param props - Dockview panel props containing the card ID.
|
|
29
35
|
*/
|
|
30
36
|
function FloatingCardContainer(props) {
|
|
31
|
-
const { addRef } = useFloatingCard();
|
|
37
|
+
const { addRef, isPinned, subscribeToPinState } = useFloatingCard();
|
|
38
|
+
const cardId = props.api.id;
|
|
39
|
+
const pinned = useSyncExternalStore(subscribeToPinState, () => isPinned(cardId), () => false);
|
|
40
|
+
const cardRef = useRef(null);
|
|
32
41
|
const refCallback = useCallback((ref) => {
|
|
33
|
-
|
|
34
|
-
|
|
42
|
+
cardRef.current = ref;
|
|
43
|
+
addRef(cardId, ref);
|
|
44
|
+
}, [addRef, cardId]);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
const container = cardRef.current?.closest(".dv-resize-container");
|
|
47
|
+
if (!container) return;
|
|
48
|
+
if (pinned) container.dataset.pinned = "";
|
|
49
|
+
else delete container.dataset.pinned;
|
|
50
|
+
}, [pinned]);
|
|
35
51
|
return /* @__PURE__ */ jsx("div", {
|
|
36
52
|
className: styles.cardContent,
|
|
37
53
|
ref: refCallback
|
|
38
54
|
});
|
|
39
55
|
}
|
|
40
56
|
/**
|
|
41
|
-
* Default left header showing an optional custom icon
|
|
57
|
+
* Default left header showing an optional custom icon and the card's title.
|
|
42
58
|
*/
|
|
43
59
|
function DefaultLeftHeader({ title, icon, id }) {
|
|
44
60
|
return /* @__PURE__ */ jsxs("div", {
|
|
@@ -47,19 +63,39 @@ function DefaultLeftHeader({ title, icon, id }) {
|
|
|
47
63
|
size: "small",
|
|
48
64
|
children: icon
|
|
49
65
|
}) : null, title && title !== id ? /* @__PURE__ */ jsx("div", {
|
|
50
|
-
className: styles.
|
|
51
|
-
children:
|
|
66
|
+
className: styles.headerTitleContainer,
|
|
67
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
68
|
+
className: styles.headerTitle,
|
|
69
|
+
children: title
|
|
70
|
+
})
|
|
52
71
|
}) : null]
|
|
53
72
|
});
|
|
54
73
|
}
|
|
74
|
+
/** Stable no-op subscribe for useSyncExternalStore when no pin subscription is available. */
|
|
75
|
+
const noopSubscribe = () => () => void 0;
|
|
55
76
|
/**
|
|
56
77
|
* Default right header showing optional action buttons and an always-present close button.
|
|
78
|
+
*
|
|
79
|
+
* @remarks Handles rendering of 'divider' and 'pin' action types specially.
|
|
57
80
|
*/
|
|
58
|
-
function DefaultRightHeader({ closeGroup, headerActions, id }) {
|
|
81
|
+
function DefaultRightHeader({ closeGroup, headerActions, id, togglePinCard, isPinned, subscribeToPinState }) {
|
|
82
|
+
const pinned = useSyncExternalStore(subscribeToPinState ?? noopSubscribe, () => id && isPinned ? isPinned(id) : false, () => false);
|
|
59
83
|
return /* @__PURE__ */ jsxs("div", {
|
|
60
84
|
className: styles.headerSide,
|
|
61
85
|
children: [headerActions?.map((action, index) => {
|
|
62
86
|
if (action === "divider") return /* @__PURE__ */ jsx(Divider, { orientation: "vertical" }, `${id}-divider-${index}`);
|
|
87
|
+
if (action === "pin") return /* @__PURE__ */ jsx(Button, {
|
|
88
|
+
className: styles.pinButton,
|
|
89
|
+
variant: "icon",
|
|
90
|
+
size: "small",
|
|
91
|
+
color: pinned ? "accent" : void 0,
|
|
92
|
+
"aria-label": "Pin",
|
|
93
|
+
"aria-pressed": pinned,
|
|
94
|
+
onClick: () => {
|
|
95
|
+
if (id && togglePinCard) togglePinCard(id);
|
|
96
|
+
},
|
|
97
|
+
children: /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(PinIcon, {}) })
|
|
98
|
+
}, `${id}-pin-${index}`);
|
|
63
99
|
return /* @__PURE__ */ jsx(Button, {
|
|
64
100
|
variant: "icon",
|
|
65
101
|
size: "small",
|
|
@@ -74,67 +110,76 @@ function DefaultRightHeader({ closeGroup, headerActions, id }) {
|
|
|
74
110
|
})]
|
|
75
111
|
});
|
|
76
112
|
}
|
|
77
|
-
/**
|
|
78
|
-
* Creates an adapter component to map Dockview's header action props to our custom header component props.
|
|
79
|
-
*/
|
|
80
|
-
function createHeaderAdapter(Component, options) {
|
|
81
|
-
function HeaderAdapter(props) {
|
|
82
|
-
const panelId = props.panels[0]?.id ?? "";
|
|
83
|
-
const [title, setTitle] = useState(props.activePanel?.title);
|
|
84
|
-
useEffect(() => {
|
|
85
|
-
const panel = props.activePanel;
|
|
86
|
-
if (!panel) return;
|
|
87
|
-
setTitle(panel.title);
|
|
88
|
-
const disposable = panel.api.onDidTitleChange(() => {
|
|
89
|
-
setTitle(panel.title);
|
|
90
|
-
});
|
|
91
|
-
return () => {
|
|
92
|
-
disposable.dispose();
|
|
93
|
-
};
|
|
94
|
-
}, [props.activePanel]);
|
|
95
|
-
return /* @__PURE__ */ jsx(Component, {
|
|
96
|
-
icon: props.activePanel ? typeof options?.icon === "function" ? options.icon(panelId) : options?.icon : void 0,
|
|
97
|
-
headerActions: typeof options?.headerActions === "function" ? options.headerActions(panelId) : options?.headerActions,
|
|
98
|
-
title,
|
|
99
|
-
id: props.activePanel?.id,
|
|
100
|
-
closeGroup: () => props.api.close()
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
HeaderAdapter.displayName = `HeaderAdapter(${Component.displayName ?? Component.name ?? "Anonymous"})`;
|
|
104
|
-
return HeaderAdapter;
|
|
105
|
-
}
|
|
106
113
|
const components = { default: FloatingCardContainer };
|
|
107
114
|
/**
|
|
108
115
|
* Provides a context and layout area for floating cards within the application.
|
|
109
116
|
*
|
|
110
|
-
* Wraps
|
|
111
|
-
*
|
|
117
|
+
* Wraps children with floating card context and renders a Dockview instance to manage
|
|
118
|
+
* docking, dragging, and layout of floating cards.
|
|
112
119
|
*
|
|
113
120
|
* @param props - The props for the FloatingCardProvider component.
|
|
114
121
|
* @param props.children - Child components rendered inside the floating card provider.
|
|
115
|
-
* @param props.icon - Optional icon.
|
|
116
|
-
* @param props.headerActions - Optional
|
|
122
|
+
* @param props.icon - Optional icon rendered in all card headers (static or factory).
|
|
123
|
+
* @param props.headerActions - Optional action buttons for card headers (static or factory).
|
|
117
124
|
* @param props.className - Additional CSS class names for styling.
|
|
118
|
-
*
|
|
119
125
|
* @returns The FloatingCardProvider component that manages floating card layout and context.
|
|
120
126
|
*
|
|
121
127
|
* @remarks
|
|
122
|
-
* - Manages registration and
|
|
123
|
-
* - Exposes
|
|
124
|
-
* -
|
|
128
|
+
* - Manages registration and cleanup of floating card DOM references
|
|
129
|
+
* - Exposes closeCard, togglePinCard, and isPinned via context
|
|
130
|
+
* - Automatically cleans up refs when cards are removed via any path (drag close, group close, API close)
|
|
131
|
+
* - Cards are bounded within the viewport
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```tsx
|
|
135
|
+
* <FloatingCardProvider
|
|
136
|
+
* icon={<AppLogo />}
|
|
137
|
+
* headerActions={[
|
|
138
|
+
* { icon: <SettingsIcon />, onClick: openSettings },
|
|
139
|
+
* 'divider',
|
|
140
|
+
* 'pin'
|
|
141
|
+
* ]}
|
|
142
|
+
* >
|
|
143
|
+
* <FloatingCard id="panel-1" title="My Panel">
|
|
144
|
+
* <div>Panel content</div>
|
|
145
|
+
* </FloatingCard>
|
|
146
|
+
* </FloatingCardProvider>
|
|
147
|
+
* ```
|
|
125
148
|
*/
|
|
126
|
-
function FloatingCardProvider({ children, icon, headerActions, className }) {
|
|
149
|
+
function FloatingCardProvider({ children, icon, headerActions, initialPinned, className }) {
|
|
127
150
|
const [api, setApi] = useState(null);
|
|
128
151
|
const [cards, setCards] = useState({});
|
|
152
|
+
const pinnedCardsRef = useRef(new Set(initialPinned));
|
|
153
|
+
const pinListenersRef = useRef(/* @__PURE__ */ new Set());
|
|
129
154
|
const closeCard = useCallback((id) => {
|
|
130
155
|
api?.getPanel(id)?.api.close();
|
|
131
156
|
}, [api]);
|
|
157
|
+
const togglePinCard = useCallback((id) => {
|
|
158
|
+
const next = new Set(pinnedCardsRef.current);
|
|
159
|
+
if (next.has(id)) next.delete(id);
|
|
160
|
+
else next.add(id);
|
|
161
|
+
pinnedCardsRef.current = next;
|
|
162
|
+
for (const listener of pinListenersRef.current) listener();
|
|
163
|
+
}, []);
|
|
164
|
+
const isPinned = useCallback((id) => pinnedCardsRef.current.has(id), []);
|
|
165
|
+
const subscribeToPinState = useCallback((callback) => {
|
|
166
|
+
pinListenersRef.current.add(callback);
|
|
167
|
+
return () => {
|
|
168
|
+
pinListenersRef.current.delete(callback);
|
|
169
|
+
};
|
|
170
|
+
}, []);
|
|
132
171
|
const removeRef = useCallback((view) => {
|
|
133
172
|
setCards((prev) => {
|
|
134
173
|
const newCards = { ...prev };
|
|
135
174
|
delete newCards[view];
|
|
136
175
|
return newCards;
|
|
137
176
|
});
|
|
177
|
+
if (pinnedCardsRef.current.has(view)) {
|
|
178
|
+
const next = new Set(pinnedCardsRef.current);
|
|
179
|
+
next.delete(view);
|
|
180
|
+
pinnedCardsRef.current = next;
|
|
181
|
+
for (const listener of pinListenersRef.current) listener();
|
|
182
|
+
}
|
|
138
183
|
}, []);
|
|
139
184
|
const addRef = useCallback((id, ref) => {
|
|
140
185
|
if (ref) setCards((prev) => {
|
|
@@ -159,16 +204,32 @@ function FloatingCardProvider({ children, icon, headerActions, className }) {
|
|
|
159
204
|
addRef,
|
|
160
205
|
removeRef,
|
|
161
206
|
closeCard,
|
|
207
|
+
togglePinCard,
|
|
208
|
+
isPinned,
|
|
209
|
+
subscribeToPinState,
|
|
162
210
|
api
|
|
163
211
|
}), [
|
|
164
212
|
cards,
|
|
165
213
|
closeCard,
|
|
166
214
|
removeRef,
|
|
167
215
|
api,
|
|
168
|
-
addRef
|
|
216
|
+
addRef,
|
|
217
|
+
togglePinCard,
|
|
218
|
+
isPinned,
|
|
219
|
+
subscribeToPinState
|
|
169
220
|
]);
|
|
170
221
|
const leftAdapter = useMemo(() => createHeaderAdapter(DefaultLeftHeader, { icon }), [icon]);
|
|
171
|
-
const rightAdapter = useMemo(() => createHeaderAdapter(DefaultRightHeader, {
|
|
222
|
+
const rightAdapter = useMemo(() => createHeaderAdapter(DefaultRightHeader, {
|
|
223
|
+
headerActions,
|
|
224
|
+
togglePinCard,
|
|
225
|
+
isPinned,
|
|
226
|
+
subscribeToPinState
|
|
227
|
+
}), [
|
|
228
|
+
headerActions,
|
|
229
|
+
togglePinCard,
|
|
230
|
+
isPinned,
|
|
231
|
+
subscribeToPinState
|
|
232
|
+
]);
|
|
172
233
|
const theme = useMemo(() => ({
|
|
173
234
|
name: "accelint",
|
|
174
235
|
className: styles.floatingCardProvider ?? ""
|