@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","names":["CloseIcon","components: Record<string, FunctionComponent<IDockviewPanelProps>>"],"sources":["../../../src/components/floating-card/provider.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 { clsx } from '@accelint/design-foundation/lib/utils';\nimport CloseIcon from '@accelint/icons/cancel';\nimport {\n type DockviewApi,\n DockviewReact,\n type DockviewReadyEvent,\n type IDockviewHeaderActionsProps,\n type IDockviewPanelProps,\n} from 'dockview-react';\nimport {\n type FunctionComponent,\n type PropsWithChildren,\n type ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { Button } from '../button';\nimport { Divider } from '../divider';\nimport { Icon } from '../icon';\nimport {\n FloatingCardContext,\n type FloatingCardContextValue,\n useFloatingCard,\n} from './context';\nimport styles from './styles.module.css';\nimport type { UniqueId } from '@accelint/core/utility/uuid';\n\n/** A value that is either `T` directly, or a function that receives the active card id and returns `T`. */\ntype MaybeFactory<T> = T | ((cardId: string) => T);\n\ntype FloatingCardHeaderProps = {\n id?: string;\n title?: string;\n icon?: ReactNode;\n closeGroup: () => void;\n headerActions?: (\n | {\n icon: ReactNode;\n onClick: () => void;\n }\n | 'divider'\n )[];\n};\n\n/**\n * Internal component that registers a DOM ref for a card container.\n * Used by the floating card engine to mount portal targets.\n */\nfunction FloatingCardContainer(props: Readonly<IDockviewPanelProps>) {\n const { addRef } = useFloatingCard();\n\n const refCallback = useCallback(\n (ref: HTMLDivElement | null) => {\n addRef(props.api.id as UniqueId, ref);\n },\n [addRef, props.api.id],\n );\n\n return <div className={styles.cardContent} ref={refCallback} />;\n}\n\n/**\n * Default left header showing an optional custom icon (or a placeholder) and the card's title.\n */\nfunction DefaultLeftHeader({\n title,\n icon,\n id,\n}: Readonly<FloatingCardHeaderProps>) {\n return (\n <div className={styles.headerSide}>\n {icon ? <Icon size='small'>{icon}</Icon> : null}\n {title && title !== id ? (\n <div className={styles.headerTitle}>{title}</div>\n ) : null}\n </div>\n );\n}\n\n/**\n * Default right header showing optional action buttons and an always-present close button.\n */\nfunction DefaultRightHeader({\n closeGroup,\n headerActions,\n id,\n}: Readonly<FloatingCardHeaderProps>) {\n return (\n <div className={styles.headerSide}>\n {headerActions?.map((action, index) => {\n if (action === 'divider') {\n return (\n // biome-ignore lint/suspicious/noArrayIndexKey: Using index as key is acceptable here because the order of actions is unlikely to change.\n <Divider key={`${id}-divider-${index}`} orientation='vertical' />\n );\n }\n return (\n <Button\n key={`${id}-${\n // biome-ignore lint/suspicious/noArrayIndexKey: Using index as key is acceptable here because the order of actions is unlikely to change.\n index\n }`}\n variant='icon'\n size='small'\n onClick={action.onClick}\n >\n <Icon>{action.icon}</Icon>\n </Button>\n );\n })}\n <Button variant='icon' size='small' onClick={closeGroup}>\n <Icon>\n <CloseIcon />\n </Icon>\n </Button>\n </div>\n );\n}\n\ntype HeaderAdapterOptions = {\n icon?: MaybeFactory<ReactNode>;\n headerActions?: MaybeFactory<FloatingCardHeaderProps['headerActions']>;\n};\n\n/**\n * Creates an adapter component to map Dockview's header action props to our custom header component props.\n */\nfunction createHeaderAdapter(\n Component: FunctionComponent<FloatingCardHeaderProps>,\n options?: HeaderAdapterOptions,\n): FunctionComponent<IDockviewHeaderActionsProps> {\n function HeaderAdapter(props: Readonly<IDockviewHeaderActionsProps>) {\n const panelId = props.panels[0]?.id ?? '';\n const [title, setTitle] = useState(props.activePanel?.title);\n\n useEffect(() => {\n const panel = props.activePanel;\n\n if (!panel) {\n return;\n }\n\n setTitle(panel.title);\n\n const disposable = panel.api.onDidTitleChange(() => {\n setTitle(panel.title);\n });\n\n return () => {\n disposable.dispose();\n };\n }, [props.activePanel]);\n const icon = props.activePanel\n ? typeof options?.icon === 'function'\n ? options.icon(panelId)\n : options?.icon\n : undefined;\n const headerActions =\n typeof options?.headerActions === 'function'\n ? options.headerActions(panelId)\n : options?.headerActions;\n return (\n <Component\n icon={icon}\n headerActions={headerActions}\n title={title}\n id={props.activePanel?.id}\n closeGroup={() => props.api.close()}\n />\n );\n }\n\n HeaderAdapter.displayName = `HeaderAdapter(${Component.displayName ?? Component.name ?? 'Anonymous'})`;\n return HeaderAdapter;\n}\n\nexport type FloatingCardProviderProps = Readonly<\n PropsWithChildren<{\n /**\n * Optional icon rendered at the very start of the floating card header.\n * Can be a `ReactNode` or a function `(cardId: string) => ReactNode`.\n */\n icon?: MaybeFactory<ReactNode>;\n /**\n * Optional action buttons rendered in the floating card header before the close button.\n * Can include dividers to separate groups of actions.\n * Can be an array or a function `(cardId: string) => array` to return\n * per-floating card actions.\n */\n headerActions?: MaybeFactory<\n (\n | {\n icon: ReactNode;\n onClick: () => void;\n }\n | 'divider'\n )[]\n >;\n className?: string;\n }>\n>;\n\nconst components: Record<string, FunctionComponent<IDockviewPanelProps>> = {\n default: FloatingCardContainer,\n};\n\n/**\n * Provides a context and layout area for floating cards within the application.\n *\n * Wraps its children with floating card context and renders a floating card engine instance\n * to manage docking and layout.\n *\n * @param props - The props for the FloatingCardProvider component.\n * @param props.children - Child components rendered inside the floating card provider.\n * @param props.icon - Optional icon.\n * @param props.headerActions - Optional actions for the header.\n * @param props.className - Additional CSS class names for styling.\n *\n * @returns The FloatingCardProvider component that manages floating card layout and context.\n *\n * @remarks\n * - Manages registration and unregistration of floating card references.\n * - Exposes `closeCard` via context for child components.\n * - Ensures floating cards are bounded within the viewport.\n */\nexport function FloatingCardProvider({\n children,\n icon,\n headerActions,\n className,\n}: FloatingCardProviderProps) {\n const [api, setApi] = useState<DockviewApi | null>(null);\n const [cards, setCards] = useState<Record<UniqueId, HTMLDivElement>>({});\n\n const closeCard = useCallback(\n (id: UniqueId) => {\n api?.getPanel(id)?.api.close();\n },\n [api],\n );\n\n const removeRef = useCallback((view: UniqueId) => {\n setCards((prev) => {\n const newCards = { ...prev };\n delete newCards[view];\n return newCards;\n });\n }, []);\n\n const addRef = useCallback((id: UniqueId, ref: HTMLDivElement | null) => {\n if (ref) {\n setCards((prev) => {\n if (prev[id]) {\n return prev;\n }\n return { ...prev, [id]: ref };\n });\n }\n }, []);\n\n // Clean up stale refs when cards are removed via any path\n // (drag close, group close, API close, etc.)\n useEffect(() => {\n if (!api) {\n return;\n }\n\n const disposable = api.onDidRemovePanel((event) => {\n removeRef(event.id as UniqueId);\n });\n\n return () => {\n disposable.dispose();\n };\n }, [api, removeRef]);\n\n const contextValue = useMemo<FloatingCardContextValue>(\n () => ({\n cards,\n addRef,\n removeRef,\n closeCard,\n api,\n }),\n [cards, closeCard, removeRef, api, addRef],\n );\n\n const leftAdapter = useMemo(\n () => createHeaderAdapter(DefaultLeftHeader, { icon }),\n [icon],\n );\n\n const rightAdapter = useMemo(\n () => createHeaderAdapter(DefaultRightHeader, { headerActions }),\n [headerActions],\n );\n\n const theme = useMemo(\n () => ({\n name: 'accelint',\n className: styles.floatingCardProvider ?? '',\n }),\n [],\n );\n\n const onReady = useCallback((event: DockviewReadyEvent) => {\n setApi(event.api);\n }, []);\n\n return (\n <FloatingCardContext.Provider value={contextValue}>\n <div className={clsx(styles.providerRoot, className)}>\n <DockviewReact\n locked\n floatingGroupBounds={'boundedWithinViewport'}\n components={components}\n prefixHeaderActionsComponent={leftAdapter}\n rightHeaderActionsComponent={rightAdapter}\n onReady={onReady}\n theme={theme}\n />\n {children}\n </div>\n </FloatingCardContext.Provider>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","names":["CloseIcon","components: Record<string, FunctionComponent<IDockviewPanelProps>>"],"sources":["../../../src/components/floating-card/provider.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 { clsx } from '@accelint/design-foundation/lib/utils';\nimport CloseIcon from '@accelint/icons/cancel';\nimport PinIcon from '@accelint/icons/pin';\nimport {\n type DockviewApi,\n DockviewReact,\n type DockviewReadyEvent,\n type IDockviewPanelProps,\n} from 'dockview-react';\nimport {\n type FunctionComponent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from 'react';\nimport { Button } from '../button';\nimport { Divider } from '../divider';\nimport { Icon } from '../icon';\nimport { FloatingCardContext, useFloatingCard } from './context';\nimport styles from './styles.module.css';\nimport { createHeaderAdapter, type FloatingCardHeaderProps } from './utils';\nimport type { UniqueId } from '@accelint/core/utility/uuid';\nimport type {\n FloatingCardContextValue,\n FloatingCardProviderProps,\n} from './types';\n\n/**\n * Internal component that registers a DOM ref for a card container.\n *\n * Used by the floating card engine to mount portal targets. Also manages\n * the data-pinned attribute on the resize container to control drag handle visibility.\n *\n * @param props - Dockview panel props containing the card ID.\n */\nfunction FloatingCardContainer(props: Readonly<IDockviewPanelProps>) {\n const { addRef, isPinned, subscribeToPinState } = useFloatingCard();\n const cardId = props.api.id as UniqueId;\n\n const pinned = useSyncExternalStore(\n subscribeToPinState,\n () => isPinned(cardId),\n () => false,\n );\n\n const cardRef = useRef<HTMLDivElement | null>(null);\n\n const refCallback = useCallback(\n (ref: HTMLDivElement | null) => {\n cardRef.current = ref;\n addRef(cardId, ref);\n },\n [addRef, cardId],\n );\n\n // Toggle a data-pinned attribute on the ancestor .dv-resize-container\n // so CSS can disable pointer-events on the drag handle.\n useEffect(() => {\n const el = cardRef.current;\n const container = el?.closest<HTMLElement>('.dv-resize-container');\n\n if (!container) {\n return;\n }\n\n if (pinned) {\n container.dataset.pinned = '';\n } else {\n delete container.dataset.pinned;\n }\n }, [pinned]);\n\n return <div className={styles.cardContent} ref={refCallback} />;\n}\n\n/**\n * Default left header showing an optional custom icon and the card's title.\n */\nfunction DefaultLeftHeader({\n title,\n icon,\n id,\n}: Readonly<FloatingCardHeaderProps>) {\n return (\n <div className={styles.headerSide}>\n {icon ? <Icon size='small'>{icon}</Icon> : null}\n {title && title !== id ? (\n <div className={styles.headerTitleContainer}>\n <div className={styles.headerTitle}>{title}</div>\n </div>\n ) : null}\n </div>\n );\n}\n\n/** Stable no-op subscribe for useSyncExternalStore when no pin subscription is available. */\nconst noopSubscribe = () => () => undefined;\n\n/**\n * Default right header showing optional action buttons and an always-present close button.\n *\n * @remarks Handles rendering of 'divider' and 'pin' action types specially.\n */\nfunction DefaultRightHeader({\n closeGroup,\n headerActions,\n id,\n togglePinCard,\n isPinned,\n subscribeToPinState,\n}: Readonly<FloatingCardHeaderProps>) {\n const pinned = useSyncExternalStore(\n subscribeToPinState ?? noopSubscribe,\n () => (id && isPinned ? isPinned(id as UniqueId) : false),\n () => false,\n );\n\n return (\n <div className={styles.headerSide}>\n {headerActions?.map((action, index) => {\n if (action === 'divider') {\n return (\n // biome-ignore lint/suspicious/noArrayIndexKey: Using index as key is acceptable here because the order of actions is unlikely to change.\n <Divider key={`${id}-divider-${index}`} orientation='vertical' />\n );\n }\n if (action === 'pin') {\n return (\n <Button\n className={styles.pinButton}\n // biome-ignore lint/suspicious/noArrayIndexKey: Using index as key is acceptable here because the order of actions is unlikely to change.\n key={`${id}-pin-${index}`}\n variant='icon'\n size='small'\n color={pinned ? 'accent' : undefined}\n aria-label='Pin'\n aria-pressed={pinned}\n onClick={() => {\n if (id && togglePinCard) {\n togglePinCard(id as UniqueId);\n }\n }}\n >\n <Icon>\n <PinIcon />\n </Icon>\n </Button>\n );\n }\n return (\n <Button\n key={`${id}-${\n // biome-ignore lint/suspicious/noArrayIndexKey: Using index as key is acceptable here because the order of actions is unlikely to change.\n index\n }`}\n variant='icon'\n size='small'\n onClick={action.onClick}\n >\n <Icon>{action.icon}</Icon>\n </Button>\n );\n })}\n <Button variant='icon' size='small' onClick={closeGroup}>\n <Icon>\n <CloseIcon />\n </Icon>\n </Button>\n </div>\n );\n}\n\nconst components: Record<string, FunctionComponent<IDockviewPanelProps>> = {\n default: FloatingCardContainer,\n};\n\n/**\n * Provides a context and layout area for floating cards within the application.\n *\n * Wraps children with floating card context and renders a Dockview instance to manage\n * docking, dragging, and layout of floating cards.\n *\n * @param props - The props for the FloatingCardProvider component.\n * @param props.children - Child components rendered inside the floating card provider.\n * @param props.icon - Optional icon rendered in all card headers (static or factory).\n * @param props.headerActions - Optional action buttons for card headers (static or factory).\n * @param props.className - Additional CSS class names for styling.\n * @returns The FloatingCardProvider component that manages floating card layout and context.\n *\n * @remarks\n * - Manages registration and cleanup of floating card DOM references\n * - Exposes closeCard, togglePinCard, and isPinned via context\n * - Automatically cleans up refs when cards are removed via any path (drag close, group close, API close)\n * - Cards are bounded within the viewport\n *\n * @example\n * ```tsx\n * <FloatingCardProvider\n * icon={<AppLogo />}\n * headerActions={[\n * { icon: <SettingsIcon />, onClick: openSettings },\n * 'divider',\n * 'pin'\n * ]}\n * >\n * <FloatingCard id=\"panel-1\" title=\"My Panel\">\n * <div>Panel content</div>\n * </FloatingCard>\n * </FloatingCardProvider>\n * ```\n */\nexport function FloatingCardProvider({\n children,\n icon,\n headerActions,\n initialPinned,\n className,\n}: FloatingCardProviderProps) {\n const [api, setApi] = useState<DockviewApi | null>(null);\n const [cards, setCards] = useState<Record<UniqueId, HTMLDivElement>>({});\n const pinnedCardsRef = useRef<Set<UniqueId>>(new Set(initialPinned));\n const pinListenersRef = useRef<Set<() => void>>(new Set());\n\n const closeCard = useCallback(\n (id: UniqueId) => {\n api?.getPanel(id)?.api.close();\n },\n [api],\n );\n\n const togglePinCard = useCallback((id: UniqueId) => {\n const next = new Set(pinnedCardsRef.current);\n if (next.has(id)) {\n next.delete(id);\n } else {\n next.add(id);\n }\n pinnedCardsRef.current = next;\n for (const listener of pinListenersRef.current) {\n listener();\n }\n }, []);\n\n const isPinned = useCallback(\n (id: UniqueId) => pinnedCardsRef.current.has(id),\n [],\n );\n\n const subscribeToPinState = useCallback((callback: () => void) => {\n pinListenersRef.current.add(callback);\n return () => {\n pinListenersRef.current.delete(callback);\n };\n }, []);\n\n const removeRef = useCallback((view: UniqueId) => {\n setCards((prev) => {\n const newCards = { ...prev };\n delete newCards[view];\n return newCards;\n });\n if (pinnedCardsRef.current.has(view)) {\n const next = new Set(pinnedCardsRef.current);\n next.delete(view);\n pinnedCardsRef.current = next;\n for (const listener of pinListenersRef.current) {\n listener();\n }\n }\n }, []);\n\n const addRef = useCallback((id: UniqueId, ref: HTMLDivElement | null) => {\n if (ref) {\n setCards((prev) => {\n if (prev[id]) {\n return prev;\n }\n return { ...prev, [id]: ref };\n });\n }\n }, []);\n\n // Clean up stale refs when cards are removed via any path\n // (drag close, group close, API close, etc.)\n useEffect(() => {\n if (!api) {\n return;\n }\n\n const disposable = api.onDidRemovePanel((event) => {\n removeRef(event.id as UniqueId);\n });\n\n return () => {\n disposable.dispose();\n };\n }, [api, removeRef]);\n\n const contextValue = useMemo<FloatingCardContextValue>(\n () => ({\n cards,\n addRef,\n removeRef,\n closeCard,\n togglePinCard,\n isPinned,\n subscribeToPinState,\n api,\n }),\n [\n cards,\n closeCard,\n removeRef,\n api,\n addRef,\n togglePinCard,\n isPinned,\n subscribeToPinState,\n ],\n );\n\n const leftAdapter = useMemo(\n () =>\n createHeaderAdapter(DefaultLeftHeader, {\n icon,\n }),\n [icon],\n );\n\n const rightAdapter = useMemo(\n () =>\n createHeaderAdapter(DefaultRightHeader, {\n headerActions,\n togglePinCard,\n isPinned,\n subscribeToPinState,\n }),\n [headerActions, togglePinCard, isPinned, subscribeToPinState],\n );\n\n const theme = useMemo(\n () => ({\n name: 'accelint',\n className: styles.floatingCardProvider ?? '',\n }),\n [],\n );\n\n const onReady = useCallback((event: DockviewReadyEvent) => {\n setApi(event.api);\n }, []);\n\n return (\n <FloatingCardContext.Provider value={contextValue}>\n <div className={clsx(styles.providerRoot, className)}>\n <DockviewReact\n locked\n floatingGroupBounds={'boundedWithinViewport'}\n components={components}\n prefixHeaderActionsComponent={leftAdapter}\n rightHeaderActionsComponent={rightAdapter}\n onReady={onReady}\n theme={theme}\n />\n {children}\n </div>\n </FloatingCardContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,SAAS,sBAAsB,OAAsC;CACnE,MAAM,EAAE,QAAQ,UAAU,wBAAwB,iBAAiB;CACnE,MAAM,SAAS,MAAM,IAAI;CAEzB,MAAM,SAAS,qBACb,2BACM,SAAS,OAAO,QAChB,MACP;CAED,MAAM,UAAU,OAA8B,KAAK;CAEnD,MAAM,cAAc,aACjB,QAA+B;AAC9B,UAAQ,UAAU;AAClB,SAAO,QAAQ,IAAI;IAErB,CAAC,QAAQ,OAAO,CACjB;AAID,iBAAgB;EAEd,MAAM,YADK,QAAQ,SACG,QAAqB,uBAAuB;AAElE,MAAI,CAAC,UACH;AAGF,MAAI,OACF,WAAU,QAAQ,SAAS;MAE3B,QAAO,UAAU,QAAQ;IAE1B,CAAC,OAAO,CAAC;AAEZ,QAAO,oBAAC;EAAI,WAAW,OAAO;EAAa,KAAK;GAAe;;;;;AAMjE,SAAS,kBAAkB,EACzB,OACA,MACA,MACoC;AACpC,QACE,qBAAC;EAAI,WAAW,OAAO;aACpB,OAAO,oBAAC;GAAK,MAAK;aAAS;IAAY,GAAG,MAC1C,SAAS,UAAU,KAClB,oBAAC;GAAI,WAAW,OAAO;aACrB,oBAAC;IAAI,WAAW,OAAO;cAAc;KAAY;IAC7C,GACJ;GACA;;;AAKV,MAAM,4BAA4B;;;;;;AAOlC,SAAS,mBAAmB,EAC1B,YACA,eACA,IACA,eACA,UACA,uBACoC;CACpC,MAAM,SAAS,qBACb,uBAAuB,qBAChB,MAAM,WAAW,SAAS,GAAe,GAAG,aAC7C,MACP;AAED,QACE,qBAAC;EAAI,WAAW,OAAO;aACpB,eAAe,KAAK,QAAQ,UAAU;AACrC,OAAI,WAAW,UACb,QAEE,oBAAC,WAAuC,aAAY,cAAtC,GAAG,GAAG,WAAW,QAAkC;AAGrE,OAAI,WAAW,MACb,QACE,oBAAC;IACC,WAAW,OAAO;IAGlB,SAAQ;IACR,MAAK;IACL,OAAO,SAAS,WAAW;IAC3B,cAAW;IACX,gBAAc;IACd,eAAe;AACb,SAAI,MAAM,cACR,eAAc,GAAe;;cAIjC,oBAAC,kBACC,oBAAC,YAAU,GACN;MAdF,GAAG,GAAG,OAAO,QAeX;AAGb,UACE,oBAAC;IAKC,SAAQ;IACR,MAAK;IACL,SAAS,OAAO;cAEhB,oBAAC,kBAAM,OAAO,OAAY;MARrB,GAAG,GAAG,GAET,QAOK;IAEX,EACF,oBAAC;GAAO,SAAQ;GAAO,MAAK;GAAQ,SAAS;aAC3C,oBAAC,kBACC,oBAACA,WAAY,GACR;IACA;GACL;;AAIV,MAAMC,aAAqE,EACzE,SAAS,uBACV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCD,SAAgB,qBAAqB,EACnC,UACA,MACA,eACA,eACA,aAC4B;CAC5B,MAAM,CAAC,KAAK,UAAU,SAA6B,KAAK;CACxD,MAAM,CAAC,OAAO,YAAY,SAA2C,EAAE,CAAC;CACxE,MAAM,iBAAiB,OAAsB,IAAI,IAAI,cAAc,CAAC;CACpE,MAAM,kBAAkB,uBAAwB,IAAI,KAAK,CAAC;CAE1D,MAAM,YAAY,aACf,OAAiB;AAChB,OAAK,SAAS,GAAG,EAAE,IAAI,OAAO;IAEhC,CAAC,IAAI,CACN;CAED,MAAM,gBAAgB,aAAa,OAAiB;EAClD,MAAM,OAAO,IAAI,IAAI,eAAe,QAAQ;AAC5C,MAAI,KAAK,IAAI,GAAG,CACd,MAAK,OAAO,GAAG;MAEf,MAAK,IAAI,GAAG;AAEd,iBAAe,UAAU;AACzB,OAAK,MAAM,YAAY,gBAAgB,QACrC,WAAU;IAEX,EAAE,CAAC;CAEN,MAAM,WAAW,aACd,OAAiB,eAAe,QAAQ,IAAI,GAAG,EAChD,EAAE,CACH;CAED,MAAM,sBAAsB,aAAa,aAAyB;AAChE,kBAAgB,QAAQ,IAAI,SAAS;AACrC,eAAa;AACX,mBAAgB,QAAQ,OAAO,SAAS;;IAEzC,EAAE,CAAC;CAEN,MAAM,YAAY,aAAa,SAAmB;AAChD,YAAU,SAAS;GACjB,MAAM,WAAW,EAAE,GAAG,MAAM;AAC5B,UAAO,SAAS;AAChB,UAAO;IACP;AACF,MAAI,eAAe,QAAQ,IAAI,KAAK,EAAE;GACpC,MAAM,OAAO,IAAI,IAAI,eAAe,QAAQ;AAC5C,QAAK,OAAO,KAAK;AACjB,kBAAe,UAAU;AACzB,QAAK,MAAM,YAAY,gBAAgB,QACrC,WAAU;;IAGb,EAAE,CAAC;CAEN,MAAM,SAAS,aAAa,IAAc,QAA+B;AACvE,MAAI,IACF,WAAU,SAAS;AACjB,OAAI,KAAK,IACP,QAAO;AAET,UAAO;IAAE,GAAG;KAAO,KAAK;IAAK;IAC7B;IAEH,EAAE,CAAC;AAIN,iBAAgB;AACd,MAAI,CAAC,IACH;EAGF,MAAM,aAAa,IAAI,kBAAkB,UAAU;AACjD,aAAU,MAAM,GAAe;IAC/B;AAEF,eAAa;AACX,cAAW,SAAS;;IAErB,CAAC,KAAK,UAAU,CAAC;CAEpB,MAAM,eAAe,eACZ;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;CAED,MAAM,cAAc,cAEhB,oBAAoB,mBAAmB,EACrC,MACD,CAAC,EACJ,CAAC,KAAK,CACP;CAED,MAAM,eAAe,cAEjB,oBAAoB,oBAAoB;EACtC;EACA;EACA;EACA;EACD,CAAC,EACJ;EAAC;EAAe;EAAe;EAAU;EAAoB,CAC9D;CAED,MAAM,QAAQ,eACL;EACL,MAAM;EACN,WAAW,OAAO,wBAAwB;EAC3C,GACD,EAAE,CACH;CAED,MAAM,UAAU,aAAa,UAA8B;AACzD,SAAO,MAAM,IAAI;IAChB,EAAE,CAAC;AAEN,QACE,oBAAC,oBAAoB;EAAS,OAAO;YACnC,qBAAC;GAAI,WAAW,KAAK,OAAO,cAAc,UAAU;cAClD,oBAAC;IACC;IACA,qBAAqB;IACT;IACZ,8BAA8B;IAC9B,6BAA6B;IACpB;IACF;KACP,EACD;IACG;GACuB"}
|
|
@@ -25,8 +25,21 @@
|
|
|
25
25
|
@apply gap-xs flex h-full items-center;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
/* Zero width + pointer-events-none lets the title visually overflow the
|
|
29
|
+
flex row without consuming drag-handle space or intercepting pointer
|
|
30
|
+
gestures meant for dockview's drag handle (.dv-void-container). */
|
|
31
|
+
.headerTitleContainer {
|
|
32
|
+
@apply text-header-m pl-xs pointer-events-none h-full w-0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Explicit width based on the header's container query width so long titles
|
|
36
|
+
truncate within the header rather than pushing siblings or overflowing.
|
|
37
|
+
The 10rem reserves space for the leading icon, header padding, gap, and
|
|
38
|
+
right-side action buttons; adjust when those change.
|
|
39
|
+
The @min-[1rem]/floating-card-header variant scopes the rule to cases
|
|
40
|
+
where the named container exists, so cqw never falls back to the viewport. */
|
|
28
41
|
.headerTitle {
|
|
29
|
-
@apply
|
|
42
|
+
@apply h-full truncate leading-24 @min-[1rem]/floating-card-header:w-[calc(100cqw-10rem)];
|
|
30
43
|
}
|
|
31
44
|
|
|
32
45
|
.floatingCardProvider {
|
|
@@ -48,7 +61,7 @@
|
|
|
48
61
|
|
|
49
62
|
:global(.dv-tabs-and-actions-container) {
|
|
50
63
|
--dv-tabs-and-actions-container-height: 32px;
|
|
51
|
-
@apply p-xs text-header-m;
|
|
64
|
+
@apply p-xs text-header-m @container/floating-card-header;
|
|
52
65
|
}
|
|
53
66
|
:global(.dv-scrollable) {
|
|
54
67
|
display: none;
|
|
@@ -56,5 +69,10 @@
|
|
|
56
69
|
:global(.dv-void-container) {
|
|
57
70
|
cursor: grab;
|
|
58
71
|
}
|
|
72
|
+
|
|
73
|
+
:global(.dv-resize-container[data-pinned]) :global(.dv-void-container) {
|
|
74
|
+
pointer-events: none;
|
|
75
|
+
cursor: default;
|
|
76
|
+
}
|
|
59
77
|
}
|
|
60
78
|
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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
|
+
import { MaybeFactory } from "./utils.js";
|
|
14
|
+
import { PropsWithChildren, ReactNode } from "react";
|
|
15
|
+
import { DockviewApi } from "dockview-react";
|
|
16
|
+
import { UniqueId } from "@accelint/core/utility/uuid";
|
|
17
|
+
|
|
18
|
+
//#region src/components/floating-card/types.d.ts
|
|
19
|
+
/**
|
|
20
|
+
* Context value providing floating card management functionality.
|
|
21
|
+
*
|
|
22
|
+
* @remarks
|
|
23
|
+
* Exposed via FloatingCardProvider to child components. Use useFloatingCard() hook to access.
|
|
24
|
+
*/
|
|
25
|
+
type FloatingCardContextValue = {
|
|
26
|
+
/** Registry mapping card IDs to their rendered DOM containers */
|
|
27
|
+
cards: Record<UniqueId, HTMLDivElement>;
|
|
28
|
+
/** Registers a DOM ref for a card container after it mounts */
|
|
29
|
+
addRef: (id: UniqueId, ref: HTMLDivElement | null) => void;
|
|
30
|
+
/** Unregisters a card's DOM ref when it's removed */
|
|
31
|
+
removeRef: (view: UniqueId) => void;
|
|
32
|
+
/** Programmatically closes a floating card by ID */
|
|
33
|
+
closeCard: (id: UniqueId) => void;
|
|
34
|
+
/** Toggles pin state for a floating card, disabling drag when pinned */
|
|
35
|
+
togglePinCard: (id: UniqueId) => void;
|
|
36
|
+
/** Checks if a floating card is currently pinned */
|
|
37
|
+
isPinned: (id: UniqueId) => boolean;
|
|
38
|
+
/** Subscribes to pin state changes; returns an unsubscribe function */
|
|
39
|
+
subscribeToPinState: (callback: () => void) => () => void;
|
|
40
|
+
/** Dockview API instance, null until FloatingCardProvider's onReady fires */
|
|
41
|
+
api: DockviewApi | null;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Props for the FloatingCard component.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```tsx
|
|
48
|
+
* const props: FloatingCardProps = {
|
|
49
|
+
* id: 'panel-123' as UniqueId,
|
|
50
|
+
* title: 'My Panel',
|
|
51
|
+
* isOpen: true,
|
|
52
|
+
* initialDimensions: { width: 350, height: 450 }
|
|
53
|
+
* };
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
type FloatingCardProps = Readonly<{
|
|
57
|
+
/** Unique identifier for the floating card */
|
|
58
|
+
id: UniqueId;
|
|
59
|
+
/** Optional title displayed in the floating card header */
|
|
60
|
+
title?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Controls whether the floating card is rendered.
|
|
63
|
+
*
|
|
64
|
+
* When `true`, the card registers with the floating card engine and renders its
|
|
65
|
+
* children via a portal. When `false`, the card is closed and removed.
|
|
66
|
+
*
|
|
67
|
+
* @defaultValue true
|
|
68
|
+
*/
|
|
69
|
+
isOpen?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Initial dimensions of the floating card panel.
|
|
72
|
+
*
|
|
73
|
+
* @defaultValue { width: 300, height: 400 }
|
|
74
|
+
*/
|
|
75
|
+
initialDimensions?: Readonly<{
|
|
76
|
+
width: number;
|
|
77
|
+
height: number;
|
|
78
|
+
}>;
|
|
79
|
+
/**
|
|
80
|
+
* Initial position of the floating card panel.
|
|
81
|
+
*
|
|
82
|
+
* When provided, sets the x and y coordinates of the floating card.
|
|
83
|
+
*/
|
|
84
|
+
initialPosition?: Readonly<{
|
|
85
|
+
x: number;
|
|
86
|
+
y: number;
|
|
87
|
+
}>;
|
|
88
|
+
}>;
|
|
89
|
+
/**
|
|
90
|
+
* Configuration for header action buttons in floating cards.
|
|
91
|
+
*
|
|
92
|
+
* Can be a custom button (with icon and onClick), a visual separator ('divider'),
|
|
93
|
+
* or the built-in pin toggle ('pin').
|
|
94
|
+
*
|
|
95
|
+
* @remarks
|
|
96
|
+
* - Custom buttons: Rendered as icon buttons with your provided onClick handler
|
|
97
|
+
* - 'divider': Inserts a vertical divider between action groups
|
|
98
|
+
* - 'pin': Adds built-in pin toggle button (disables dragging when pinned)
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```tsx
|
|
102
|
+
* const headerActions: FloatingCardHeaderAction[] = [
|
|
103
|
+
* { icon: <SettingsIcon />, onClick: () => openSettings() },
|
|
104
|
+
* 'divider',
|
|
105
|
+
* 'pin'
|
|
106
|
+
* ];
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
type FloatingCardHeaderAction = {
|
|
110
|
+
/** Icon to display in the action button */
|
|
111
|
+
icon: ReactNode;
|
|
112
|
+
/** Handler called when the action button is clicked */
|
|
113
|
+
onClick: () => void;
|
|
114
|
+
} | 'divider' | 'pin';
|
|
115
|
+
/**
|
|
116
|
+
* Props for the FloatingCardProvider component.
|
|
117
|
+
*
|
|
118
|
+
* Configures default icon and header actions for all floating cards. Both can be
|
|
119
|
+
* static values or factory functions that receive the card ID for per-card customization.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```tsx
|
|
123
|
+
* <FloatingCardProvider
|
|
124
|
+
* icon={<AppIcon />}
|
|
125
|
+
* headerActions={(cardId) => {
|
|
126
|
+
* if (cardId === 'settings') {
|
|
127
|
+
* return [{ icon: <CogIcon />, onClick: openSettings }, 'pin'];
|
|
128
|
+
* }
|
|
129
|
+
* return ['pin'];
|
|
130
|
+
* }}
|
|
131
|
+
* >
|
|
132
|
+
* {children}
|
|
133
|
+
* </FloatingCardProvider>
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
type FloatingCardProviderProps = Readonly<PropsWithChildren<{
|
|
137
|
+
/**
|
|
138
|
+
* Optional icon rendered at the very start of the floating card header.
|
|
139
|
+
* Can be a `ReactNode` or a function `(cardId: string) => ReactNode`.
|
|
140
|
+
*/
|
|
141
|
+
icon?: MaybeFactory<ReactNode>;
|
|
142
|
+
/**
|
|
143
|
+
* Optional action buttons rendered in the floating card header before the close button.
|
|
144
|
+
* Can include `'divider'` to separate groups and `'pin'` to add a pin toggle button.
|
|
145
|
+
* Can be an array or a function `(cardId: string) => array` to return
|
|
146
|
+
* per-floating card actions.
|
|
147
|
+
*/
|
|
148
|
+
headerActions?: MaybeFactory<FloatingCardHeaderAction[]>;
|
|
149
|
+
/**
|
|
150
|
+
* Optional set of card IDs that should be pinned when the provider first mounts.
|
|
151
|
+
*
|
|
152
|
+
* Like other `initial*` props, this value is only read once at mount time.
|
|
153
|
+
* Changes after mount have no effect.
|
|
154
|
+
*/
|
|
155
|
+
initialPinned?: readonly UniqueId[];
|
|
156
|
+
/** Additional CSS class names for styling */
|
|
157
|
+
className?: string;
|
|
158
|
+
}>>;
|
|
159
|
+
//#endregion
|
|
160
|
+
export { FloatingCardContextValue, FloatingCardHeaderAction, FloatingCardProps, FloatingCardProviderProps };
|
|
161
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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
|
+
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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
|
+
import { FloatingCardHeaderAction } from "./types.js";
|
|
14
|
+
import { FunctionComponent, ReactNode } from "react";
|
|
15
|
+
import { IDockviewHeaderActionsProps } from "dockview-react";
|
|
16
|
+
import { UniqueId } from "@accelint/core/utility/uuid";
|
|
17
|
+
|
|
18
|
+
//#region src/components/floating-card/utils.d.ts
|
|
19
|
+
/**
|
|
20
|
+
* A value that can be static or dynamically computed per floating card.
|
|
21
|
+
*
|
|
22
|
+
* Enables per-card customization of props by passing a factory function
|
|
23
|
+
* that receives the card ID and returns the appropriate value.
|
|
24
|
+
*
|
|
25
|
+
* @template T - The type of the static value or factory return type.
|
|
26
|
+
*/
|
|
27
|
+
type MaybeFactory<T> = T | ((cardId: string) => T);
|
|
28
|
+
/**
|
|
29
|
+
* Configuration options passed to floating card header adapter functions.
|
|
30
|
+
*
|
|
31
|
+
* Used internally by the floating card system to provide header components
|
|
32
|
+
* with the necessary props and callbacks for rendering customizable headers.
|
|
33
|
+
*
|
|
34
|
+
* @remarks
|
|
35
|
+
* This type is primarily used when creating custom header adapters that need
|
|
36
|
+
* access to icon, actions, and pin state management from the FloatingCardProvider.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```tsx
|
|
40
|
+
* function createHeaderAdapter(options: HeaderAdapterOptions) {
|
|
41
|
+
* return (props: DockviewHeaderProps) => {
|
|
42
|
+
* const icon = typeof options.icon === 'function'
|
|
43
|
+
* ? options.icon(props.id)
|
|
44
|
+
* : options.icon;
|
|
45
|
+
* const actions = typeof options.headerActions === 'function'
|
|
46
|
+
* ? options.headerActions(props.id)
|
|
47
|
+
* : options.headerActions;
|
|
48
|
+
*
|
|
49
|
+
* return (
|
|
50
|
+
* <CustomHeader
|
|
51
|
+
* icon={icon}
|
|
52
|
+
* actions={actions}
|
|
53
|
+
* isPinned={options.isPinned?.(props.id)}
|
|
54
|
+
* onTogglePin={() => options.togglePinCard?.(props.id)}
|
|
55
|
+
* />
|
|
56
|
+
* );
|
|
57
|
+
* };
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
type HeaderAdapterOptions = {
|
|
62
|
+
icon?: MaybeFactory<ReactNode>;
|
|
63
|
+
headerActions?: MaybeFactory<FloatingCardHeaderProps['headerActions']>;
|
|
64
|
+
togglePinCard?: (id: UniqueId) => void;
|
|
65
|
+
isPinned?: (id: UniqueId) => boolean;
|
|
66
|
+
subscribeToPinState?: (callback: () => void) => () => void;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Props passed to floating card header components.
|
|
70
|
+
*
|
|
71
|
+
* @remarks Internal type used by header adapters to map Dockview props to custom header components.
|
|
72
|
+
*/
|
|
73
|
+
type FloatingCardHeaderProps = {
|
|
74
|
+
/** ID of the active floating card panel */
|
|
75
|
+
id?: string;
|
|
76
|
+
/** Title text displayed in the header */
|
|
77
|
+
title?: string;
|
|
78
|
+
/** Optional icon displayed at the start of the header */
|
|
79
|
+
icon?: ReactNode;
|
|
80
|
+
/** Callback to close the entire card group */
|
|
81
|
+
closeGroup: () => void;
|
|
82
|
+
/** Toggles pin state for the specified card */
|
|
83
|
+
togglePinCard?: (id: UniqueId) => void;
|
|
84
|
+
/** Checks if the specified card is pinned */
|
|
85
|
+
isPinned?: (id: UniqueId) => boolean;
|
|
86
|
+
/** Subscribes to pin state changes; returns an unsubscribe function */
|
|
87
|
+
subscribeToPinState?: (callback: () => void) => () => void;
|
|
88
|
+
/** Custom action buttons to render in the header */
|
|
89
|
+
headerActions?: FloatingCardHeaderAction[];
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Creates an adapter component to map Dockview's header action props to custom header component props.
|
|
93
|
+
*
|
|
94
|
+
* Handles title change subscriptions and resolves MaybeFactory options (icon, headerActions)
|
|
95
|
+
* either as static values or by invoking factory functions with the active card ID.
|
|
96
|
+
*
|
|
97
|
+
* @param Component - The header component to wrap.
|
|
98
|
+
* @param options - Configuration options including icon and headerActions (static or factory).
|
|
99
|
+
* @returns Adapter component compatible with Dockview's header API.
|
|
100
|
+
*/
|
|
101
|
+
declare function createHeaderAdapter(Component: FunctionComponent<FloatingCardHeaderProps>, options: HeaderAdapterOptions): FunctionComponent<IDockviewHeaderActionsProps>;
|
|
102
|
+
//#endregion
|
|
103
|
+
export { FloatingCardHeaderProps, MaybeFactory, createHeaderAdapter };
|
|
104
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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 { useEffect, useState } from "react";
|
|
15
|
+
import { jsx } from "react/jsx-runtime";
|
|
16
|
+
|
|
17
|
+
//#region src/components/floating-card/utils.tsx
|
|
18
|
+
/**
|
|
19
|
+
* Creates an adapter component to map Dockview's header action props to custom header component props.
|
|
20
|
+
*
|
|
21
|
+
* Handles title change subscriptions and resolves MaybeFactory options (icon, headerActions)
|
|
22
|
+
* either as static values or by invoking factory functions with the active card ID.
|
|
23
|
+
*
|
|
24
|
+
* @param Component - The header component to wrap.
|
|
25
|
+
* @param options - Configuration options including icon and headerActions (static or factory).
|
|
26
|
+
* @returns Adapter component compatible with Dockview's header API.
|
|
27
|
+
*/
|
|
28
|
+
function createHeaderAdapter(Component, options) {
|
|
29
|
+
function HeaderAdapter(props) {
|
|
30
|
+
const panelId = props.panels[0]?.id ?? "";
|
|
31
|
+
const [title, setTitle] = useState(props.activePanel?.title);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
const panel = props.activePanel;
|
|
34
|
+
if (!panel) return;
|
|
35
|
+
setTitle(panel.title);
|
|
36
|
+
const disposable = panel.api.onDidTitleChange(() => {
|
|
37
|
+
setTitle(panel.title);
|
|
38
|
+
});
|
|
39
|
+
return () => {
|
|
40
|
+
disposable.dispose();
|
|
41
|
+
};
|
|
42
|
+
}, [props.activePanel]);
|
|
43
|
+
return /* @__PURE__ */ jsx(Component, {
|
|
44
|
+
icon: props.activePanel ? typeof options?.icon === "function" ? options.icon(panelId) : options?.icon : void 0,
|
|
45
|
+
headerActions: typeof options?.headerActions === "function" ? options.headerActions(panelId) : options?.headerActions,
|
|
46
|
+
title,
|
|
47
|
+
id: props.activePanel?.id,
|
|
48
|
+
closeGroup: () => props.api.close(),
|
|
49
|
+
togglePinCard: options.togglePinCard,
|
|
50
|
+
isPinned: options.isPinned,
|
|
51
|
+
subscribeToPinState: options.subscribeToPinState
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
HeaderAdapter.displayName = `HeaderAdapter(${Component.displayName ?? Component.name ?? "Anonymous"})`;
|
|
55
|
+
return HeaderAdapter;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
//#endregion
|
|
59
|
+
export { createHeaderAdapter };
|
|
60
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../../../src/components/floating-card/utils.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 {\n type FunctionComponent,\n type ReactNode,\n useEffect,\n useState,\n} from 'react';\nimport type { UniqueId } from '@accelint/core/utility/uuid';\nimport type { IDockviewHeaderActionsProps } from 'dockview-react';\nimport type { FloatingCardHeaderAction } from './types';\n\n/**\n * A value that can be static or dynamically computed per floating card.\n *\n * Enables per-card customization of props by passing a factory function\n * that receives the card ID and returns the appropriate value.\n *\n * @template T - The type of the static value or factory return type.\n */\nexport type MaybeFactory<T> = T | ((cardId: string) => T);\n\n/**\n * Configuration options passed to floating card header adapter functions.\n *\n * Used internally by the floating card system to provide header components\n * with the necessary props and callbacks for rendering customizable headers.\n *\n * @remarks\n * This type is primarily used when creating custom header adapters that need\n * access to icon, actions, and pin state management from the FloatingCardProvider.\n *\n * @example\n * ```tsx\n * function createHeaderAdapter(options: HeaderAdapterOptions) {\n * return (props: DockviewHeaderProps) => {\n * const icon = typeof options.icon === 'function'\n * ? options.icon(props.id)\n * : options.icon;\n * const actions = typeof options.headerActions === 'function'\n * ? options.headerActions(props.id)\n * : options.headerActions;\n *\n * return (\n * <CustomHeader\n * icon={icon}\n * actions={actions}\n * isPinned={options.isPinned?.(props.id)}\n * onTogglePin={() => options.togglePinCard?.(props.id)}\n * />\n * );\n * };\n * }\n * ```\n */\ntype HeaderAdapterOptions = {\n icon?: MaybeFactory<ReactNode>;\n headerActions?: MaybeFactory<FloatingCardHeaderProps['headerActions']>;\n togglePinCard?: (id: UniqueId) => void;\n isPinned?: (id: UniqueId) => boolean;\n subscribeToPinState?: (callback: () => void) => () => void;\n};\n\n/**\n * Props passed to floating card header components.\n *\n * @remarks Internal type used by header adapters to map Dockview props to custom header components.\n */\nexport type FloatingCardHeaderProps = {\n /** ID of the active floating card panel */\n id?: string;\n /** Title text displayed in the header */\n title?: string;\n /** Optional icon displayed at the start of the header */\n icon?: ReactNode;\n /** Callback to close the entire card group */\n closeGroup: () => void;\n /** Toggles pin state for the specified card */\n togglePinCard?: (id: UniqueId) => void;\n /** Checks if the specified card is pinned */\n isPinned?: (id: UniqueId) => boolean;\n /** Subscribes to pin state changes; returns an unsubscribe function */\n subscribeToPinState?: (callback: () => void) => () => void;\n /** Custom action buttons to render in the header */\n headerActions?: FloatingCardHeaderAction[];\n};\n\n/**\n * Creates an adapter component to map Dockview's header action props to custom header component props.\n *\n * Handles title change subscriptions and resolves MaybeFactory options (icon, headerActions)\n * either as static values or by invoking factory functions with the active card ID.\n *\n * @param Component - The header component to wrap.\n * @param options - Configuration options including icon and headerActions (static or factory).\n * @returns Adapter component compatible with Dockview's header API.\n */\nexport function createHeaderAdapter(\n Component: FunctionComponent<FloatingCardHeaderProps>,\n options: HeaderAdapterOptions,\n): FunctionComponent<IDockviewHeaderActionsProps> {\n function HeaderAdapter(props: Readonly<IDockviewHeaderActionsProps>) {\n const panelId = props.panels[0]?.id ?? '';\n const [title, setTitle] = useState(props.activePanel?.title);\n\n useEffect(() => {\n const panel = props.activePanel;\n\n if (!panel) {\n return;\n }\n\n setTitle(panel.title);\n\n const disposable = panel.api.onDidTitleChange(() => {\n setTitle(panel.title);\n });\n\n return () => {\n disposable.dispose();\n };\n }, [props.activePanel]);\n const icon = props.activePanel\n ? typeof options?.icon === 'function'\n ? options.icon(panelId)\n : options?.icon\n : undefined;\n const headerActions =\n typeof options?.headerActions === 'function'\n ? options.headerActions(panelId)\n : options?.headerActions;\n return (\n <Component\n icon={icon}\n headerActions={headerActions}\n title={title}\n id={props.activePanel?.id}\n closeGroup={() => props.api.close()}\n togglePinCard={options.togglePinCard}\n isPinned={options.isPinned}\n subscribeToPinState={options.subscribeToPinState}\n />\n );\n }\n\n HeaderAdapter.displayName = `HeaderAdapter(${Component.displayName ?? Component.name ?? 'Anonymous'})`;\n return HeaderAdapter;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA4GA,SAAgB,oBACd,WACA,SACgD;CAChD,SAAS,cAAc,OAA8C;EACnE,MAAM,UAAU,MAAM,OAAO,IAAI,MAAM;EACvC,MAAM,CAAC,OAAO,YAAY,SAAS,MAAM,aAAa,MAAM;AAE5D,kBAAgB;GACd,MAAM,QAAQ,MAAM;AAEpB,OAAI,CAAC,MACH;AAGF,YAAS,MAAM,MAAM;GAErB,MAAM,aAAa,MAAM,IAAI,uBAAuB;AAClD,aAAS,MAAM,MAAM;KACrB;AAEF,gBAAa;AACX,eAAW,SAAS;;KAErB,CAAC,MAAM,YAAY,CAAC;AAUvB,SACE,oBAAC;GACC,MAXS,MAAM,cACf,OAAO,SAAS,SAAS,aACvB,QAAQ,KAAK,QAAQ,GACrB,SAAS,OACX;GAQA,eANF,OAAO,SAAS,kBAAkB,aAC9B,QAAQ,cAAc,QAAQ,GAC9B,SAAS;GAKJ;GACP,IAAI,MAAM,aAAa;GACvB,kBAAkB,MAAM,IAAI,OAAO;GACnC,eAAe,QAAQ;GACvB,UAAU,QAAQ;GAClB,qBAAqB,QAAQ;IAC7B;;AAIN,eAAc,cAAc,iBAAiB,UAAU,eAAe,UAAU,QAAQ,YAAY;AACpG,QAAO"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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
|
+
import { GanttRowElementColorProp } from "../../types.js";
|
|
14
|
+
import { HTMLAttributes, PropsWithChildren } from "react";
|
|
15
|
+
import * as react_jsx_runtime235 from "react/jsx-runtime";
|
|
16
|
+
|
|
17
|
+
//#region src/components/gantt/components/base-elements/point.d.ts
|
|
18
|
+
/** Props for point-based Gantt elements (markers, brackets). */
|
|
19
|
+
type PointProps = HTMLAttributes<HTMLDivElement> & {
|
|
20
|
+
/** Timestamp in epoch milliseconds for the point position on the timeline. */
|
|
21
|
+
timeMs: number;
|
|
22
|
+
/** Visual color variant. @default 'accent' */
|
|
23
|
+
color?: GanttRowElementColorProp;
|
|
24
|
+
};
|
|
25
|
+
declare function Point(props: PropsWithChildren<PointProps>): react_jsx_runtime235.JSX.Element | null;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { Point, PointProps };
|
|
28
|
+
//# sourceMappingURL=point.d.ts.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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 { timestampWithinBounds } from "../../utils/helpers.js";
|
|
15
|
+
import { useTemporalDataContext } from "../../context/temporal-data/index.js";
|
|
16
|
+
import { usePointElementLayout } from "./use-point-element-layout/index.js";
|
|
17
|
+
import { useCallback, useState } from "react";
|
|
18
|
+
import { jsx } from "react/jsx-runtime";
|
|
19
|
+
|
|
20
|
+
//#region src/components/gantt/components/base-elements/point.tsx
|
|
21
|
+
function PointInner({ children, timeMs, color = "accent", ...rest }) {
|
|
22
|
+
const [element, setElement] = useState(null);
|
|
23
|
+
usePointElementLayout({
|
|
24
|
+
element,
|
|
25
|
+
timeMs
|
|
26
|
+
});
|
|
27
|
+
return /* @__PURE__ */ jsx("div", {
|
|
28
|
+
ref: useCallback((node) => {
|
|
29
|
+
setElement(node);
|
|
30
|
+
}, []),
|
|
31
|
+
"data-color": color,
|
|
32
|
+
...rest,
|
|
33
|
+
children
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function Point(props) {
|
|
37
|
+
const { renderedRegionBounds } = useTemporalDataContext();
|
|
38
|
+
if (!timestampWithinBounds(props.timeMs, renderedRegionBounds)) return null;
|
|
39
|
+
return /* @__PURE__ */ jsx(PointInner, { ...props });
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
//#endregion
|
|
43
|
+
export { Point };
|
|
44
|
+
//# sourceMappingURL=point.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"point.js","names":[],"sources":["../../../../../src/components/gantt/components/base-elements/point.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 {\n type HTMLAttributes,\n type PropsWithChildren,\n useCallback,\n useState,\n} from 'react';\nimport { useTemporalDataContext } from '@/components/gantt/context/temporal-data';\nimport { timestampWithinBounds } from '@/components/gantt/utils/helpers';\nimport { usePointElementLayout } from './use-point-element-layout';\nimport type { GanttRowElementColorProp } from '@/components/gantt/types';\n\n/** Props for point-based Gantt elements (markers, brackets). */\nexport type PointProps = HTMLAttributes<HTMLDivElement> & {\n /** Timestamp in epoch milliseconds for the point position on the timeline. */\n timeMs: number;\n /** Visual color variant. @default 'accent' */\n color?: GanttRowElementColorProp;\n};\n\nfunction PointInner({\n children,\n timeMs,\n color = 'accent',\n ...rest\n}: PropsWithChildren<PointProps>) {\n const [element, setElement] = useState<HTMLDivElement | null>(null);\n\n usePointElementLayout({\n element,\n timeMs,\n });\n\n const assignElementRef = useCallback((node: HTMLDivElement | null) => {\n setElement(node);\n }, []);\n\n return (\n <div ref={assignElementRef} data-color={color} {...rest}>\n {children}\n </div>\n );\n}\n\nexport function Point(props: PropsWithChildren<PointProps>) {\n const { renderedRegionBounds } = useTemporalDataContext();\n\n if (!timestampWithinBounds(props.timeMs, renderedRegionBounds)) {\n return null;\n }\n\n return <PointInner {...props} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAgCA,SAAS,WAAW,EAClB,UACA,QACA,QAAQ,UACR,GAAG,QAC6B;CAChC,MAAM,CAAC,SAAS,cAAc,SAAgC,KAAK;AAEnE,uBAAsB;EACpB;EACA;EACD,CAAC;AAMF,QACE,oBAAC;EAAI,KALkB,aAAa,SAAgC;AACpE,cAAW,KAAK;KACf,EAAE,CAAC;EAGwB,cAAY;EAAO,GAAI;EAChD;GACG;;AAIV,SAAgB,MAAM,OAAsC;CAC1D,MAAM,EAAE,yBAAyB,wBAAwB;AAEzD,KAAI,CAAC,sBAAsB,MAAM,QAAQ,qBAAqB,CAC5D,QAAO;AAGT,QAAO,oBAAC,cAAW,GAAI,QAAS"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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
|
+
import { GanttRowElementColorProp } from "../../types.js";
|
|
14
|
+
import { HTMLAttributes, PropsWithChildren } from "react";
|
|
15
|
+
import * as react_jsx_runtime220 from "react/jsx-runtime";
|
|
16
|
+
|
|
17
|
+
//#region src/components/gantt/components/base-elements/range.d.ts
|
|
18
|
+
/** Props for range-based Gantt elements (blocks, spacers). */
|
|
19
|
+
type RangeProps = HTMLAttributes<HTMLDivElement> & {
|
|
20
|
+
/** Start timestamp in epoch milliseconds for the range element. */
|
|
21
|
+
startTimeMs: number;
|
|
22
|
+
/** End timestamp in epoch milliseconds for the range element. */
|
|
23
|
+
endTimeMs: number;
|
|
24
|
+
/** Visual color variant. @default 'accent' */
|
|
25
|
+
color?: GanttRowElementColorProp;
|
|
26
|
+
};
|
|
27
|
+
declare function Range(props: PropsWithChildren<RangeProps>): react_jsx_runtime220.JSX.Element | null;
|
|
28
|
+
//#endregion
|
|
29
|
+
export { Range, RangeProps };
|
|
30
|
+
//# sourceMappingURL=range.d.ts.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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 { shouldRenderRangeElement } from "../../utils/helpers.js";
|
|
15
|
+
import { useTemporalDataContext } from "../../context/temporal-data/index.js";
|
|
16
|
+
import { useRangeElementLayout } from "./use-range-element-layout/index.js";
|
|
17
|
+
import { useCallback, useState } from "react";
|
|
18
|
+
import { jsx } from "react/jsx-runtime";
|
|
19
|
+
|
|
20
|
+
//#region src/components/gantt/components/base-elements/range.tsx
|
|
21
|
+
function RangeInner({ children, startTimeMs, endTimeMs, color = "accent", ...rest }) {
|
|
22
|
+
const [element, setElement] = useState(null);
|
|
23
|
+
useRangeElementLayout({
|
|
24
|
+
element,
|
|
25
|
+
timeBounds: {
|
|
26
|
+
startMs: startTimeMs,
|
|
27
|
+
endMs: endTimeMs
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return /* @__PURE__ */ jsx("div", {
|
|
31
|
+
ref: useCallback((node) => {
|
|
32
|
+
setElement(node);
|
|
33
|
+
}, []),
|
|
34
|
+
"data-color": color,
|
|
35
|
+
...rest,
|
|
36
|
+
children
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function Range(props) {
|
|
40
|
+
const { renderedRegionBounds } = useTemporalDataContext();
|
|
41
|
+
const { startTimeMs, endTimeMs } = props;
|
|
42
|
+
if (!shouldRenderRangeElement(renderedRegionBounds, {
|
|
43
|
+
startMs: startTimeMs,
|
|
44
|
+
endMs: endTimeMs
|
|
45
|
+
})) return null;
|
|
46
|
+
return /* @__PURE__ */ jsx(RangeInner, { ...props });
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
//#endregion
|
|
50
|
+
export { Range };
|
|
51
|
+
//# sourceMappingURL=range.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.js","names":[],"sources":["../../../../../src/components/gantt/components/base-elements/range.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 {\n type HTMLAttributes,\n type PropsWithChildren,\n useCallback,\n useState,\n} from 'react';\nimport { useTemporalDataContext } from '@/components/gantt/context/temporal-data';\nimport { shouldRenderRangeElement } from '@/components/gantt/utils/helpers';\nimport { useRangeElementLayout } from './use-range-element-layout';\nimport type { GanttRowElementColorProp } from '@/components/gantt/types';\n\n/** Props for range-based Gantt elements (blocks, spacers). */\nexport type RangeProps = HTMLAttributes<HTMLDivElement> & {\n /** Start timestamp in epoch milliseconds for the range element. */\n startTimeMs: number;\n /** End timestamp in epoch milliseconds for the range element. */\n endTimeMs: number;\n /** Visual color variant. @default 'accent' */\n color?: GanttRowElementColorProp;\n};\n\nfunction RangeInner({\n children,\n startTimeMs,\n endTimeMs,\n color = 'accent',\n ...rest\n}: PropsWithChildren<RangeProps>) {\n const [element, setElement] = useState<HTMLDivElement | null>(null);\n\n useRangeElementLayout({\n element,\n timeBounds: {\n startMs: startTimeMs,\n endMs: endTimeMs,\n },\n });\n\n const assignElementRef = useCallback((node: HTMLDivElement | null) => {\n setElement(node);\n }, []);\n\n return (\n <div ref={assignElementRef} data-color={color} {...rest}>\n {children}\n </div>\n );\n}\n\nexport function Range(props: PropsWithChildren<RangeProps>) {\n const { renderedRegionBounds } = useTemporalDataContext();\n const { startTimeMs, endTimeMs } = props;\n\n if (\n !shouldRenderRangeElement(renderedRegionBounds, {\n startMs: startTimeMs,\n endMs: endTimeMs,\n })\n ) {\n return null;\n }\n\n return <RangeInner {...props} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkCA,SAAS,WAAW,EAClB,UACA,aACA,WACA,QAAQ,UACR,GAAG,QAC6B;CAChC,MAAM,CAAC,SAAS,cAAc,SAAgC,KAAK;AAEnE,uBAAsB;EACpB;EACA,YAAY;GACV,SAAS;GACT,OAAO;GACR;EACF,CAAC;AAMF,QACE,oBAAC;EAAI,KALkB,aAAa,SAAgC;AACpE,cAAW,KAAK;KACf,EAAE,CAAC;EAGwB,cAAY;EAAO,GAAI;EAChD;GACG;;AAIV,SAAgB,MAAM,OAAsC;CAC1D,MAAM,EAAE,yBAAyB,wBAAwB;CACzD,MAAM,EAAE,aAAa,cAAc;AAEnC,KACE,CAAC,yBAAyB,sBAAsB;EAC9C,SAAS;EACT,OAAO;EACR,CAAC,CAEF,QAAO;AAGT,QAAO,oBAAC,cAAW,GAAI,QAAS"}
|