@carbon/web-components 2.61.0 → 2.62.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/custom-elements.json +455 -13
- package/es/components/accordion/accordion-item.d.ts +0 -4
- package/es/components/accordion/accordion-item.d.ts.map +1 -1
- package/es/components/accordion/accordion-item.js +2 -6
- package/es/components/accordion/accordion-item.js.map +1 -1
- package/es/components/action-set/action-set.d.ts +107 -0
- package/es/components/action-set/action-set.d.ts.map +1 -0
- package/es/components/action-set/action-set.js +269 -0
- package/es/components/action-set/action-set.js.map +1 -0
- package/es/components/action-set/action-set.scss.js +14 -0
- package/es/components/action-set/action-set.scss.js.map +1 -0
- package/es/components/action-set/index.d.ts +9 -0
- package/es/components/action-set/index.d.ts.map +1 -0
- package/es/components/action-set/index.js +8 -0
- package/es/components/ai-label/ai-label.scss.js +1 -1
- package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es/components/button/button.d.ts.map +1 -1
- package/es/components/button/button.js +7 -2
- package/es/components/button/button.js.map +1 -1
- package/es/components/button/button.scss.js +1 -1
- package/es/components/code-snippet/code-snippet.scss.js +1 -1
- package/es/components/combo-box/combo-box.scss.js +1 -1
- package/es/components/combo-button/combo-button.scss.js +1 -1
- package/es/components/contained-list/contained-list.scss.js +1 -1
- package/es/components/content-switcher/content-switcher.scss.js +1 -1
- package/es/components/copy-button/copy-button.scss.js +1 -1
- package/es/components/data-table/data-table.scss.js +1 -1
- package/es/components/date-picker/date-picker.scss.js +1 -1
- package/es/components/date-picker/date-picker.scss.js.map +1 -1
- package/es/components/date-picker/next/components/date-picker.scss.js +1 -1
- package/es/components/dialog/dialog.scss.js +1 -1
- package/es/components/dropdown/dropdown.scss.js +1 -1
- package/es/components/file-uploader/file-uploader.scss.js +1 -1
- package/es/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
- package/es/components/fluid-date-picker/fluid-date-picker.scss.js +1 -1
- package/es/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
- package/es/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
- package/es/components/fluid-number-input/fluid-number-input.scss.js +1 -1
- package/es/components/fluid-password-input/fluid-password-input.scss.js +1 -1
- package/es/components/fluid-search/fluid-search.scss.js +1 -1
- package/es/components/fluid-text-input/fluid-text-input.scss.js +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
- package/es/components/inline-loading/inline-loading.scss.js +1 -1
- package/es/components/loading/loading.scss.js +1 -1
- package/es/components/menu-button/menu-button.scss.js +1 -1
- package/es/components/modal/modal.scss.js +1 -1
- package/es/components/multi-select/multi-select.scss.js +1 -1
- package/es/components/notification/actionable-notification.scss.js +1 -1
- package/es/components/notification/inline-notification.scss.js +1 -1
- package/es/components/notification/toast-notification.scss.js +1 -1
- package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es/components/overflow-menu/overflow-menu.scss.js.map +1 -1
- package/es/components/pagination/pagination.scss.js +1 -1
- package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
- package/es/components/password-input/password-input.scss.js +1 -1
- package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es/components/resizer/defs.d.ts +73 -0
- package/es/components/resizer/defs.d.ts.map +1 -0
- package/es/components/resizer/defs.js +97 -0
- package/es/components/resizer/defs.js.map +1 -0
- package/es/components/resizer/index.d.ts +11 -0
- package/es/components/resizer/index.d.ts.map +1 -0
- package/es/components/resizer/index.js +11 -0
- package/es/components/resizer/resizer-grid.d.ts +22 -0
- package/es/components/resizer/resizer-grid.d.ts.map +1 -0
- package/es/components/resizer/resizer-grid.js +44 -0
- package/es/components/resizer/resizer-grid.js.map +1 -0
- package/es/components/resizer/resizer-grid.scss.js +14 -0
- package/es/components/resizer/resizer-grid.scss.js.map +1 -0
- package/es/components/resizer/resizer-handle-pivot.d.ts +31 -0
- package/es/components/resizer/resizer-handle-pivot.d.ts.map +1 -0
- package/es/components/resizer/resizer-handle-pivot.js +93 -0
- package/es/components/resizer/resizer-handle-pivot.js.map +1 -0
- package/es/components/resizer/resizer-handle-pivot.scss.js +14 -0
- package/es/components/resizer/resizer-handle-pivot.scss.js.map +1 -0
- package/es/components/resizer/resizer-handle.d.ts +64 -0
- package/es/components/resizer/resizer-handle.d.ts.map +1 -0
- package/es/components/resizer/resizer-handle.js +350 -0
- package/es/components/resizer/resizer-handle.js.map +1 -0
- package/es/components/resizer/resizer-handle.scss.js +14 -0
- package/es/components/resizer/resizer-handle.scss.js.map +1 -0
- package/es/components/resizer/resizer-panel.d.ts +22 -0
- package/es/components/resizer/resizer-panel.d.ts.map +1 -0
- package/es/components/resizer/resizer-panel.js +37 -0
- package/es/components/resizer/resizer-panel.js.map +1 -0
- package/es/components/resizer/resizer-panel.scss.js +14 -0
- package/es/components/resizer/resizer-panel.scss.js.map +1 -0
- package/es/components/search/search.scss.js +1 -1
- package/es/components/side-panel/_story-assets/index.d.ts +9 -0
- package/es/components/side-panel/_story-assets/index.d.ts.map +1 -0
- package/es/components/side-panel/_story-assets/index.js +246 -0
- package/es/components/side-panel/_story-assets/index.js.map +1 -0
- package/es/components/side-panel/defs.d.ts +7 -1
- package/es/components/side-panel/defs.d.ts.map +1 -1
- package/es/components/side-panel/defs.js +7 -1
- package/es/components/side-panel/defs.js.map +1 -1
- package/es/components/side-panel/index.d.ts +3 -1
- package/es/components/side-panel/index.d.ts.map +1 -1
- package/es/components/side-panel/index.js +12 -0
- package/es/components/side-panel/index.js.map +1 -0
- package/es/components/side-panel/side-panel.d.ts +60 -22
- package/es/components/side-panel/side-panel.d.ts.map +1 -1
- package/es/components/side-panel/side-panel.js +268 -126
- package/es/components/side-panel/side-panel.js.map +1 -1
- package/es/components/side-panel/side-panel.scss.js +14 -0
- package/es/components/side-panel/side-panel.scss.js.map +1 -0
- package/es/components/side-panel/story-styles.scss.js +14 -0
- package/es/components/side-panel/story-styles.scss.js.map +1 -0
- package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es/components/slider/slider.d.ts +14 -0
- package/es/components/slider/slider.d.ts.map +1 -1
- package/es/components/slider/slider.js +40 -5
- package/es/components/slider/slider.js.map +1 -1
- package/es/components/slider/slider.scss.js +1 -1
- package/es/components/slug/slug.scss.js +1 -1
- package/es/components/structured-list/structured-list.scss.js +1 -1
- package/es/components/structured-list/structured-list.scss.js.map +1 -1
- package/es/components/tabs/tab.d.ts.map +1 -1
- package/es/components/tabs/tab.js +4 -1
- package/es/components/tabs/tab.js.map +1 -1
- package/es/components/tabs/tabs.scss.js +1 -1
- package/es/components/tabs/tabs.scss.js.map +1 -1
- package/es/components/tag/tag.scss.js +1 -1
- package/es/components/tag/tag.scss.js.map +1 -1
- package/es/components/text-input/text-input.scss.js +1 -1
- package/es/components/textarea/textarea.scss.js +1 -1
- package/es/components/textarea/textarea.scss.js.map +1 -1
- package/es/components/time-picker/time-picker.scss.js +1 -1
- package/es/components/toggle-tip/toggletip.scss.js +1 -1
- package/es/components/tree-view/tree-view.scss.js +1 -1
- package/es/components/truncated-text/index.d.ts +8 -0
- package/es/components/truncated-text/index.d.ts.map +1 -0
- package/es/components/truncated-text/index.js +8 -0
- package/es/components/truncated-text/truncated-text.d.ts +77 -0
- package/es/components/truncated-text/truncated-text.d.ts.map +1 -0
- package/es/components/truncated-text/truncated-text.js +216 -0
- package/es/components/truncated-text/truncated-text.js.map +1 -0
- package/es/components/truncated-text/truncated-text.scss.js +14 -0
- package/es/components/truncated-text/truncated-text.scss.js.map +1 -0
- package/es/components/ui-shell/header.scss.js +1 -1
- package/es/components/ui-shell/side-nav.scss.js +1 -1
- package/es/components/ui-shell/side-nav.scss.js.map +1 -1
- package/es/globals/internal/icon-loader-utils.d.ts +2 -2
- package/es/globals/internal/icon-loader-utils.d.ts.map +1 -1
- package/es/globals/internal/icon-loader-utils.js +1 -1
- package/es/globals/internal/icon-loader-utils.js.map +1 -1
- package/es/index.d.ts.map +1 -1
- package/es-custom/components/accordion/accordion-item.d.ts +0 -4
- package/es-custom/components/accordion/accordion-item.d.ts.map +1 -1
- package/es-custom/components/accordion/accordion-item.js +2 -6
- package/es-custom/components/accordion/accordion-item.js.map +1 -1
- package/es-custom/components/action-set/action-set.d.ts +107 -0
- package/es-custom/components/action-set/action-set.d.ts.map +1 -0
- package/es-custom/components/action-set/action-set.js +269 -0
- package/es-custom/components/action-set/action-set.js.map +1 -0
- package/es-custom/components/action-set/action-set.scss.js +14 -0
- package/es-custom/components/action-set/action-set.scss.js.map +1 -0
- package/es-custom/components/action-set/index.d.ts +9 -0
- package/es-custom/components/action-set/index.d.ts.map +1 -0
- package/es-custom/components/action-set/index.js +8 -0
- package/es-custom/components/ai-label/ai-label.scss.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es-custom/components/button/button.d.ts.map +1 -1
- package/es-custom/components/button/button.js +7 -2
- package/es-custom/components/button/button.js.map +1 -1
- package/es-custom/components/button/button.scss.js +1 -1
- package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
- package/es-custom/components/combo-box/combo-box.scss.js +1 -1
- package/es-custom/components/combo-button/combo-button.scss.js +1 -1
- package/es-custom/components/contained-list/contained-list.scss.js +1 -1
- package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
- package/es-custom/components/copy-button/copy-button.scss.js +1 -1
- package/es-custom/components/data-table/data-table.scss.js +1 -1
- package/es-custom/components/date-picker/date-picker.scss.js +1 -1
- package/es-custom/components/date-picker/date-picker.scss.js.map +1 -1
- package/es-custom/components/date-picker/next/components/date-picker.scss.js +1 -1
- package/es-custom/components/dialog/dialog.scss.js +1 -1
- package/es-custom/components/dropdown/dropdown.scss.js +1 -1
- package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
- package/es-custom/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
- package/es-custom/components/fluid-date-picker/fluid-date-picker.scss.js +1 -1
- package/es-custom/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
- package/es-custom/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
- package/es-custom/components/fluid-number-input/fluid-number-input.scss.js +1 -1
- package/es-custom/components/fluid-password-input/fluid-password-input.scss.js +1 -1
- package/es-custom/components/fluid-search/fluid-search.scss.js +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input.scss.js +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
- package/es-custom/components/inline-loading/inline-loading.scss.js +1 -1
- package/es-custom/components/loading/loading.scss.js +1 -1
- package/es-custom/components/menu-button/menu-button.scss.js +1 -1
- package/es-custom/components/modal/modal.scss.js +1 -1
- package/es-custom/components/multi-select/multi-select.scss.js +1 -1
- package/es-custom/components/notification/actionable-notification.scss.js +1 -1
- package/es-custom/components/notification/inline-notification.scss.js +1 -1
- package/es-custom/components/notification/toast-notification.scss.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.scss.js.map +1 -1
- package/es-custom/components/pagination/pagination.scss.js +1 -1
- package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
- package/es-custom/components/password-input/password-input.scss.js +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es-custom/components/resizer/defs.d.ts +73 -0
- package/es-custom/components/resizer/defs.d.ts.map +1 -0
- package/es-custom/components/resizer/defs.js +97 -0
- package/es-custom/components/resizer/defs.js.map +1 -0
- package/es-custom/components/resizer/index.d.ts +11 -0
- package/es-custom/components/resizer/index.d.ts.map +1 -0
- package/es-custom/components/resizer/index.js +11 -0
- package/es-custom/components/resizer/resizer-grid.d.ts +22 -0
- package/es-custom/components/resizer/resizer-grid.d.ts.map +1 -0
- package/es-custom/components/resizer/resizer-grid.js +44 -0
- package/es-custom/components/resizer/resizer-grid.js.map +1 -0
- package/es-custom/components/resizer/resizer-grid.scss.js +14 -0
- package/es-custom/components/resizer/resizer-grid.scss.js.map +1 -0
- package/es-custom/components/resizer/resizer-handle-pivot.d.ts +31 -0
- package/es-custom/components/resizer/resizer-handle-pivot.d.ts.map +1 -0
- package/es-custom/components/resizer/resizer-handle-pivot.js +93 -0
- package/es-custom/components/resizer/resizer-handle-pivot.js.map +1 -0
- package/es-custom/components/resizer/resizer-handle-pivot.scss.js +14 -0
- package/es-custom/components/resizer/resizer-handle-pivot.scss.js.map +1 -0
- package/es-custom/components/resizer/resizer-handle.d.ts +64 -0
- package/es-custom/components/resizer/resizer-handle.d.ts.map +1 -0
- package/es-custom/components/resizer/resizer-handle.js +350 -0
- package/es-custom/components/resizer/resizer-handle.js.map +1 -0
- package/es-custom/components/resizer/resizer-handle.scss.js +14 -0
- package/es-custom/components/resizer/resizer-handle.scss.js.map +1 -0
- package/es-custom/components/resizer/resizer-panel.d.ts +22 -0
- package/es-custom/components/resizer/resizer-panel.d.ts.map +1 -0
- package/es-custom/components/resizer/resizer-panel.js +37 -0
- package/es-custom/components/resizer/resizer-panel.js.map +1 -0
- package/es-custom/components/resizer/resizer-panel.scss.js +14 -0
- package/es-custom/components/resizer/resizer-panel.scss.js.map +1 -0
- package/es-custom/components/search/search.scss.js +1 -1
- package/es-custom/components/side-panel/_story-assets/index.d.ts +9 -0
- package/es-custom/components/side-panel/_story-assets/index.d.ts.map +1 -0
- package/es-custom/components/side-panel/_story-assets/index.js +246 -0
- package/es-custom/components/side-panel/_story-assets/index.js.map +1 -0
- package/es-custom/components/side-panel/defs.d.ts +7 -1
- package/es-custom/components/side-panel/defs.d.ts.map +1 -1
- package/es-custom/components/side-panel/defs.js +7 -1
- package/es-custom/components/side-panel/defs.js.map +1 -1
- package/es-custom/components/side-panel/index.d.ts +3 -1
- package/es-custom/components/side-panel/index.d.ts.map +1 -1
- package/es-custom/components/side-panel/index.js +12 -0
- package/es-custom/components/side-panel/index.js.map +1 -0
- package/es-custom/components/side-panel/side-panel.d.ts +60 -22
- package/es-custom/components/side-panel/side-panel.d.ts.map +1 -1
- package/es-custom/components/side-panel/side-panel.js +268 -126
- package/es-custom/components/side-panel/side-panel.js.map +1 -1
- package/es-custom/components/side-panel/side-panel.scss.js +14 -0
- package/es-custom/components/side-panel/side-panel.scss.js.map +1 -0
- package/es-custom/components/side-panel/story-styles.scss.js +14 -0
- package/es-custom/components/side-panel/story-styles.scss.js.map +1 -0
- package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es-custom/components/slider/slider.d.ts +14 -0
- package/es-custom/components/slider/slider.d.ts.map +1 -1
- package/es-custom/components/slider/slider.js +40 -5
- package/es-custom/components/slider/slider.js.map +1 -1
- package/es-custom/components/slider/slider.scss.js +1 -1
- package/es-custom/components/slug/slug.scss.js +1 -1
- package/es-custom/components/structured-list/structured-list.scss.js +1 -1
- package/es-custom/components/structured-list/structured-list.scss.js.map +1 -1
- package/es-custom/components/tabs/tab.d.ts.map +1 -1
- package/es-custom/components/tabs/tab.js +4 -1
- package/es-custom/components/tabs/tab.js.map +1 -1
- package/es-custom/components/tabs/tabs.scss.js +1 -1
- package/es-custom/components/tabs/tabs.scss.js.map +1 -1
- package/es-custom/components/tag/tag.scss.js +1 -1
- package/es-custom/components/tag/tag.scss.js.map +1 -1
- package/es-custom/components/text-input/text-input.scss.js +1 -1
- package/es-custom/components/textarea/textarea.scss.js +1 -1
- package/es-custom/components/textarea/textarea.scss.js.map +1 -1
- package/es-custom/components/time-picker/time-picker.scss.js +1 -1
- package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
- package/es-custom/components/tree-view/tree-view.scss.js +1 -1
- package/es-custom/components/truncated-text/index.d.ts +8 -0
- package/es-custom/components/truncated-text/index.d.ts.map +1 -0
- package/es-custom/components/truncated-text/index.js +8 -0
- package/es-custom/components/truncated-text/truncated-text.d.ts +77 -0
- package/es-custom/components/truncated-text/truncated-text.d.ts.map +1 -0
- package/es-custom/components/truncated-text/truncated-text.js +216 -0
- package/es-custom/components/truncated-text/truncated-text.js.map +1 -0
- package/es-custom/components/truncated-text/truncated-text.scss.js +14 -0
- package/es-custom/components/truncated-text/truncated-text.scss.js.map +1 -0
- package/es-custom/components/ui-shell/header.scss.js +1 -1
- package/es-custom/components/ui-shell/side-nav.scss.js +1 -1
- package/es-custom/components/ui-shell/side-nav.scss.js.map +1 -1
- package/es-custom/globals/internal/icon-loader-utils.d.ts +2 -2
- package/es-custom/globals/internal/icon-loader-utils.d.ts.map +1 -1
- package/es-custom/globals/internal/icon-loader-utils.js +1 -1
- package/es-custom/globals/internal/icon-loader-utils.js.map +1 -1
- package/es-custom/index.d.ts.map +1 -1
- package/lib/components/accordion/accordion-item.d.ts +0 -4
- package/lib/components/accordion/accordion-item.d.ts.map +1 -1
- package/lib/components/action-set/action-set.d.ts +107 -0
- package/lib/components/action-set/action-set.d.ts.map +1 -0
- package/lib/components/action-set/index.d.ts +9 -0
- package/lib/components/action-set/index.d.ts.map +1 -0
- package/lib/components/button/button.d.ts.map +1 -1
- package/lib/components/resizer/defs.d.ts +73 -0
- package/lib/components/resizer/defs.d.ts.map +1 -0
- package/lib/components/resizer/defs.js +112 -0
- package/lib/components/resizer/defs.js.map +1 -0
- package/lib/components/resizer/index.d.ts +11 -0
- package/lib/components/resizer/index.d.ts.map +1 -0
- package/lib/components/resizer/resizer-grid.d.ts +22 -0
- package/lib/components/resizer/resizer-grid.d.ts.map +1 -0
- package/lib/components/resizer/resizer-handle-pivot.d.ts +31 -0
- package/lib/components/resizer/resizer-handle-pivot.d.ts.map +1 -0
- package/lib/components/resizer/resizer-handle.d.ts +64 -0
- package/lib/components/resizer/resizer-handle.d.ts.map +1 -0
- package/lib/components/resizer/resizer-panel.d.ts +22 -0
- package/lib/components/resizer/resizer-panel.d.ts.map +1 -0
- package/lib/components/side-panel/_story-assets/index.d.ts +9 -0
- package/lib/components/side-panel/_story-assets/index.d.ts.map +1 -0
- package/lib/components/side-panel/defs.d.ts +7 -1
- package/lib/components/side-panel/defs.d.ts.map +1 -1
- package/lib/components/side-panel/defs.js +7 -1
- package/lib/components/side-panel/defs.js.map +1 -1
- package/lib/components/side-panel/index.d.ts +3 -1
- package/lib/components/side-panel/index.d.ts.map +1 -1
- package/lib/components/side-panel/side-panel.d.ts +60 -22
- package/lib/components/side-panel/side-panel.d.ts.map +1 -1
- package/lib/components/slider/slider.d.ts +14 -0
- package/lib/components/slider/slider.d.ts.map +1 -1
- package/lib/components/tabs/tab.d.ts.map +1 -1
- package/lib/components/truncated-text/index.d.ts +8 -0
- package/lib/components/truncated-text/index.d.ts.map +1 -0
- package/lib/components/truncated-text/truncated-text.d.ts +77 -0
- package/lib/components/truncated-text/truncated-text.d.ts.map +1 -0
- package/lib/globals/internal/icon-loader-utils.d.ts +2 -2
- package/lib/globals/internal/icon-loader-utils.d.ts.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/package.json +7 -7
- package/scss/components/action-set/action-set.scss +93 -0
- package/scss/components/data-table/_table-core.scss +73 -20
- package/scss/components/data-table/_table-selection.scss +31 -14
- package/scss/components/date-picker/date-picker.scss +10 -6
- package/scss/components/overflow-menu/overflow-menu.scss +31 -11
- package/scss/components/resizer/resizer-grid.scss +34 -0
- package/scss/components/resizer/resizer-handle-pivot.scss +39 -0
- package/scss/components/resizer/resizer-handle.scss +127 -0
- package/scss/components/resizer/resizer-panel.scss +10 -0
- package/scss/components/side-panel/side-panel.scss +363 -0
- package/scss/components/side-panel/story-styles.scss +51 -0
- package/scss/components/structured-list/structured-list.scss +10 -8
- package/scss/components/tabs/tabs.scss +4 -0
- package/scss/components/tag/tag.scss +11 -7
- package/scss/components/textarea/textarea.scss +6 -0
- package/scss/components/truncated-text/truncated-text-story.scss +14 -0
- package/scss/components/truncated-text/truncated-text.scss +122 -0
- package/scss/components/ui-shell/side-nav.scss +9 -7
- package/telemetry.yml +26 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import "../../globals/settings.js";
|
|
9
|
+
import { carbonElement } from "../../globals/decorators/carbon-element.js";
|
|
10
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
|
|
11
|
+
import { ARIA, DOUBLE_TAP, EVENTS, KEYBOARD, SELECTORS, SLOTS, calculateFlexRatio, createCustomEvent, determineAxis, formatSplitRatio, getOrientationFromAxis, isWithinDistance, safeClosest, safeQuerySelectorAll, triggerHapticFeedback } from "./defs.js";
|
|
12
|
+
import resizer_handle_default$1 from "./resizer-handle.scss.js";
|
|
13
|
+
import { LitElement, html } from "lit";
|
|
14
|
+
import { property, state } from "lit/decorators.js";
|
|
15
|
+
//#region src/components/resizer/resizer-handle.ts
|
|
16
|
+
/**
|
|
17
|
+
* Copyright IBM Corp. 2026, 2026
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
20
|
+
* LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Resizer handle component for resizing panels.
|
|
24
|
+
* @element cds-resizer-handle
|
|
25
|
+
* @fires resize-start - Fired when dragging starts
|
|
26
|
+
* @fires resize-drag - Fired during dragging (detail: { axis, delta, position })
|
|
27
|
+
* @fires resize-end - Fired when dragging ends (detail: { axis, delta, position })
|
|
28
|
+
* @fires resize-reset - Fired on double-tap / double-click
|
|
29
|
+
*/
|
|
30
|
+
let CDSResizerHandle = class CDSResizerHandle extends LitElement {
|
|
31
|
+
constructor(..._args) {
|
|
32
|
+
super(..._args);
|
|
33
|
+
this.axis = "y";
|
|
34
|
+
this._isDragging = false;
|
|
35
|
+
this._startSize = 0;
|
|
36
|
+
this._endSize = 0;
|
|
37
|
+
this._lastTapTime = 0;
|
|
38
|
+
this._lastTapPosition = {
|
|
39
|
+
x: 0,
|
|
40
|
+
y: 0
|
|
41
|
+
};
|
|
42
|
+
this.startDrag = (e) => {
|
|
43
|
+
this._handlePointerDown(e);
|
|
44
|
+
};
|
|
45
|
+
this.resetSizes = (e) => {
|
|
46
|
+
e.preventDefault();
|
|
47
|
+
this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_RESET));
|
|
48
|
+
if (this._grid) {
|
|
49
|
+
this._grid.style.removeProperty("--start-element-size");
|
|
50
|
+
this._grid.style.removeProperty("--end-element-size");
|
|
51
|
+
const handleTransitionEnd = () => {
|
|
52
|
+
this._updateAriaAttributes();
|
|
53
|
+
this._grid?.removeEventListener("transitionend", handleTransitionEnd);
|
|
54
|
+
};
|
|
55
|
+
this._grid.addEventListener("transitionend", handleTransitionEnd, { once: true });
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
this._handlePointerDown = (e) => {
|
|
59
|
+
if (this._detectDoubleTap(e)) return;
|
|
60
|
+
e.preventDefault();
|
|
61
|
+
this._isDragging = true;
|
|
62
|
+
this.setSyntheticActiveState(true);
|
|
63
|
+
const startPosition = {
|
|
64
|
+
x: e.clientX,
|
|
65
|
+
y: e.clientY
|
|
66
|
+
};
|
|
67
|
+
const startValue = this.axis === "x" ? e.clientX : e.clientY;
|
|
68
|
+
this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_START, {
|
|
69
|
+
axis: this.axis,
|
|
70
|
+
startPosition
|
|
71
|
+
}));
|
|
72
|
+
if (this._grid && this._startNode && this._endNode) {
|
|
73
|
+
const rectStart = this._startNode.getBoundingClientRect();
|
|
74
|
+
const rectEnd = this._endNode.getBoundingClientRect();
|
|
75
|
+
this._startSize = this.axis === "x" ? rectStart.width : rectStart.height;
|
|
76
|
+
this._endSize = this.axis === "x" ? rectEnd.width : rectEnd.height;
|
|
77
|
+
}
|
|
78
|
+
this._boundMove = this._createMoveHandler(startValue);
|
|
79
|
+
this._boundStop = this._createStopHandler(startValue);
|
|
80
|
+
window.addEventListener("pointermove", this._boundMove);
|
|
81
|
+
window.addEventListener("pointerup", this._boundStop);
|
|
82
|
+
};
|
|
83
|
+
this._handleKeyDown = (e) => {
|
|
84
|
+
if (![
|
|
85
|
+
"ArrowUp",
|
|
86
|
+
"ArrowDown",
|
|
87
|
+
"ArrowLeft",
|
|
88
|
+
"ArrowRight",
|
|
89
|
+
"Home",
|
|
90
|
+
"End",
|
|
91
|
+
"PageUp",
|
|
92
|
+
"PageDown"
|
|
93
|
+
].includes(e.key)) return;
|
|
94
|
+
e.preventDefault();
|
|
95
|
+
e.stopPropagation();
|
|
96
|
+
const step = e.shiftKey ? KEYBOARD.LARGE_STEP_PX : KEYBOARD.DEFAULT_STEP_PX;
|
|
97
|
+
const isHorizontal = this.axis === "x";
|
|
98
|
+
let delta = 0;
|
|
99
|
+
if (e.key === "ArrowUp" && !isHorizontal) delta = -step;
|
|
100
|
+
else if (e.key === "ArrowDown" && !isHorizontal) delta = step;
|
|
101
|
+
else if (e.key === "ArrowLeft" && isHorizontal) delta = -step;
|
|
102
|
+
else if (e.key === "ArrowRight" && isHorizontal) delta = step;
|
|
103
|
+
else if (e.key === "Home" && this._grid && this._startNode) {
|
|
104
|
+
const rect = this._startNode.getBoundingClientRect();
|
|
105
|
+
delta = isHorizontal ? -rect.width : -rect.height;
|
|
106
|
+
} else if (e.key === "End" && this._grid && this._endNode) {
|
|
107
|
+
const rect = this._endNode.getBoundingClientRect();
|
|
108
|
+
delta = isHorizontal ? rect.width : rect.height;
|
|
109
|
+
}
|
|
110
|
+
if (delta !== 0) this._handleKeyboardResize(delta);
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
static {
|
|
114
|
+
this.styles = resizer_handle_default$1;
|
|
115
|
+
}
|
|
116
|
+
setSyntheticHoverState(isHovered) {
|
|
117
|
+
this.toggleAttribute("data-synthetic-hover", isHovered);
|
|
118
|
+
this.requestUpdate();
|
|
119
|
+
}
|
|
120
|
+
setSyntheticActiveState(isActive) {
|
|
121
|
+
this.toggleAttribute("data-synthetic-active", isActive);
|
|
122
|
+
this.requestUpdate();
|
|
123
|
+
}
|
|
124
|
+
get pivot() {
|
|
125
|
+
return this._pivot;
|
|
126
|
+
}
|
|
127
|
+
connectedCallback() {
|
|
128
|
+
super.connectedCallback();
|
|
129
|
+
this._initializeComponent();
|
|
130
|
+
this._setupEventListeners();
|
|
131
|
+
}
|
|
132
|
+
firstUpdated() {
|
|
133
|
+
if (this._grid && this._startNode && this._endNode) requestAnimationFrame(() => {
|
|
134
|
+
this._updateAriaAttributes();
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
disconnectedCallback() {
|
|
138
|
+
this._cleanup();
|
|
139
|
+
super.disconnectedCallback();
|
|
140
|
+
}
|
|
141
|
+
_initializeComponent() {
|
|
142
|
+
this._grid = safeClosest(this, SELECTORS.GRID) || void 0;
|
|
143
|
+
const slot = this.getAttribute("slot");
|
|
144
|
+
const cursor = getComputedStyle(this).cursor;
|
|
145
|
+
this.axis = determineAxis(slot, cursor);
|
|
146
|
+
if (this._grid) {
|
|
147
|
+
const panels = safeQuerySelectorAll(this._grid, SELECTORS.PANEL);
|
|
148
|
+
if (this.axis === "x") {
|
|
149
|
+
this._startNode = panels.find((p) => p.slot === SLOTS.LEFT);
|
|
150
|
+
this._endNode = panels.find((p) => p.slot === SLOTS.RIGHT);
|
|
151
|
+
} else {
|
|
152
|
+
this._startNode = panels.find((p) => p.slot === SLOTS.TOP);
|
|
153
|
+
this._endNode = panels.find((p) => p.slot === SLOTS.BOTTOM);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
this._setupAccessibility();
|
|
157
|
+
}
|
|
158
|
+
_setupAccessibility() {
|
|
159
|
+
this.setAttribute("role", ARIA.ROLE_SEPARATOR);
|
|
160
|
+
this.setAttribute("tabindex", "0");
|
|
161
|
+
this.setAttribute("aria-orientation", getOrientationFromAxis(this.axis));
|
|
162
|
+
this.setAttribute("aria-live", ARIA.LIVE_ASSERTIVE);
|
|
163
|
+
if (this._grid && this._startNode && this._endNode) {
|
|
164
|
+
this.setAttribute("aria-valuenow", ARIA.VALUE_DEFAULT);
|
|
165
|
+
this.setAttribute("aria-valuemin", ARIA.VALUE_MIN);
|
|
166
|
+
this.setAttribute("aria-valuemax", ARIA.VALUE_MAX);
|
|
167
|
+
this.setAttribute("aria-valuetext", formatSplitRatio(50));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
_setupEventListeners() {
|
|
171
|
+
this._boundStartDrag = this._handlePointerDown.bind(this);
|
|
172
|
+
this._boundHandleKeyDown = this._handleKeyDown.bind(this);
|
|
173
|
+
this.addEventListener("pointerdown", this._boundStartDrag);
|
|
174
|
+
this.addEventListener("keydown", this._boundHandleKeyDown);
|
|
175
|
+
}
|
|
176
|
+
_cleanup() {
|
|
177
|
+
if (this._boundStartDrag) {
|
|
178
|
+
this.removeEventListener("pointerdown", this._boundStartDrag);
|
|
179
|
+
this._boundStartDrag = void 0;
|
|
180
|
+
}
|
|
181
|
+
if (this._boundHandleKeyDown) {
|
|
182
|
+
this.removeEventListener("keydown", this._boundHandleKeyDown);
|
|
183
|
+
this._boundHandleKeyDown = void 0;
|
|
184
|
+
}
|
|
185
|
+
if (this._boundMove) {
|
|
186
|
+
window.removeEventListener("pointermove", this._boundMove);
|
|
187
|
+
this._boundMove = void 0;
|
|
188
|
+
}
|
|
189
|
+
if (this._boundStop) {
|
|
190
|
+
window.removeEventListener("pointerup", this._boundStop);
|
|
191
|
+
this._boundStop = void 0;
|
|
192
|
+
}
|
|
193
|
+
this.removeAttribute("data-synthetic-hover");
|
|
194
|
+
this.removeAttribute("data-synthetic-active");
|
|
195
|
+
this._isDragging = false;
|
|
196
|
+
}
|
|
197
|
+
get _pivot() {
|
|
198
|
+
const panel = safeClosest(this, SELECTORS.PANEL);
|
|
199
|
+
if (!panel) return void 0;
|
|
200
|
+
const slot = panel.getAttribute("slot");
|
|
201
|
+
if (slot === SLOTS.LEFT) return "end";
|
|
202
|
+
if (slot === SLOTS.RIGHT) return "start";
|
|
203
|
+
}
|
|
204
|
+
_updateAriaAttributes() {
|
|
205
|
+
if (!this._grid || !this._startNode || !this._endNode) return;
|
|
206
|
+
const rectStart = this._startNode.getBoundingClientRect();
|
|
207
|
+
const rectEnd = this._endNode.getBoundingClientRect();
|
|
208
|
+
const isHorizontal = this.axis === "x";
|
|
209
|
+
const startSize = isHorizontal ? rectStart.width : rectStart.height;
|
|
210
|
+
const totalSize = startSize + (isHorizontal ? rectEnd.width : rectEnd.height);
|
|
211
|
+
if (totalSize > 0) {
|
|
212
|
+
const percentage = Math.round(startSize / totalSize * 100);
|
|
213
|
+
this.setAttribute("aria-valuenow", percentage.toString());
|
|
214
|
+
this.setAttribute("aria-valuemin", ARIA.VALUE_MIN);
|
|
215
|
+
this.setAttribute("aria-valuemax", ARIA.VALUE_MAX);
|
|
216
|
+
this.setAttribute("aria-valuetext", formatSplitRatio(percentage));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
_detectDoubleTap(e) {
|
|
220
|
+
const now = Date.now();
|
|
221
|
+
const dt = now - this._lastTapTime;
|
|
222
|
+
const currentPos = {
|
|
223
|
+
x: e.clientX,
|
|
224
|
+
y: e.clientY
|
|
225
|
+
};
|
|
226
|
+
if (dt < DOUBLE_TAP.MAX_TIME_MS && isWithinDistance(currentPos, this._lastTapPosition, DOUBLE_TAP.MAX_DISTANCE_PX)) {
|
|
227
|
+
triggerHapticFeedback(DOUBLE_TAP.VIBRATION_MS);
|
|
228
|
+
this.resetSizes(e);
|
|
229
|
+
this._lastTapTime = 0;
|
|
230
|
+
return true;
|
|
231
|
+
}
|
|
232
|
+
this._lastTapTime = now;
|
|
233
|
+
this._lastTapPosition = currentPos;
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
_createMoveHandler(startValue) {
|
|
237
|
+
return (e) => {
|
|
238
|
+
if (!this._isDragging) return;
|
|
239
|
+
const delta = (this.axis === "x" ? e.clientX : e.clientY) - startValue;
|
|
240
|
+
const position = {
|
|
241
|
+
x: e.clientX,
|
|
242
|
+
y: e.clientY
|
|
243
|
+
};
|
|
244
|
+
this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_DRAG, {
|
|
245
|
+
axis: this.axis,
|
|
246
|
+
delta,
|
|
247
|
+
position
|
|
248
|
+
}));
|
|
249
|
+
if (this._grid && this._startNode && this._endNode) this._updateGridSizes(delta);
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
_createStopHandler(startValue) {
|
|
253
|
+
return (e) => {
|
|
254
|
+
const delta = (this.axis === "x" ? e.clientX : e.clientY) - startValue;
|
|
255
|
+
const position = {
|
|
256
|
+
x: e.clientX,
|
|
257
|
+
y: e.clientY
|
|
258
|
+
};
|
|
259
|
+
this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_END, {
|
|
260
|
+
axis: this.axis,
|
|
261
|
+
delta,
|
|
262
|
+
position
|
|
263
|
+
}));
|
|
264
|
+
if (this._boundMove) {
|
|
265
|
+
window.removeEventListener("pointermove", this._boundMove);
|
|
266
|
+
this._boundMove = void 0;
|
|
267
|
+
}
|
|
268
|
+
if (this._boundStop) {
|
|
269
|
+
window.removeEventListener("pointerup", this._boundStop);
|
|
270
|
+
this._boundStop = void 0;
|
|
271
|
+
}
|
|
272
|
+
if (this._grid) this._grid.style.removeProperty("transition");
|
|
273
|
+
this._isDragging = false;
|
|
274
|
+
this.setSyntheticActiveState(false);
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
_updateGridSizes(delta) {
|
|
278
|
+
if (!this._grid) return;
|
|
279
|
+
this._grid.style.transition = "none";
|
|
280
|
+
const start = this._startSize + delta;
|
|
281
|
+
const end = this._endSize - delta;
|
|
282
|
+
const total = start + end || 1;
|
|
283
|
+
this._grid.style.setProperty("--start-element-size", `${calculateFlexRatio(start, total)}fr`);
|
|
284
|
+
this._grid.style.setProperty("--end-element-size", `${calculateFlexRatio(end, total)}fr`);
|
|
285
|
+
this._updateAriaAttributes();
|
|
286
|
+
}
|
|
287
|
+
_handleKeyboardResize(delta) {
|
|
288
|
+
const position = {
|
|
289
|
+
x: 0,
|
|
290
|
+
y: 0
|
|
291
|
+
};
|
|
292
|
+
this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_START, {
|
|
293
|
+
axis: this.axis,
|
|
294
|
+
startPosition: position
|
|
295
|
+
}));
|
|
296
|
+
if (this._grid && this._startNode && this._endNode) {
|
|
297
|
+
const rectStart = this._startNode.getBoundingClientRect();
|
|
298
|
+
const rectEnd = this._endNode.getBoundingClientRect();
|
|
299
|
+
const isHorizontal = this.axis === "x";
|
|
300
|
+
this._startSize = isHorizontal ? rectStart.width : rectStart.height;
|
|
301
|
+
this._endSize = isHorizontal ? rectEnd.width : rectEnd.height;
|
|
302
|
+
const start = this._startSize + delta;
|
|
303
|
+
const end = this._endSize - delta;
|
|
304
|
+
const total = start + end || 1;
|
|
305
|
+
this._grid.style.setProperty("--start-element-size", `${calculateFlexRatio(start, total)}fr`);
|
|
306
|
+
this._grid.style.setProperty("--end-element-size", `${calculateFlexRatio(end, total)}fr`);
|
|
307
|
+
this._updateAriaAttributes();
|
|
308
|
+
}
|
|
309
|
+
this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_DRAG, {
|
|
310
|
+
axis: this.axis,
|
|
311
|
+
delta,
|
|
312
|
+
position
|
|
313
|
+
}));
|
|
314
|
+
this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_END, {
|
|
315
|
+
axis: this.axis,
|
|
316
|
+
delta,
|
|
317
|
+
position
|
|
318
|
+
}));
|
|
319
|
+
}
|
|
320
|
+
render() {
|
|
321
|
+
return html`
|
|
322
|
+
<div class="handle-content">
|
|
323
|
+
<span class="sr-only">
|
|
324
|
+
Use arrow keys to resize, hold Shift for larger steps. Double-click to
|
|
325
|
+
reset.
|
|
326
|
+
</span>
|
|
327
|
+
<div>
|
|
328
|
+
${this._pivot === "start" ? html`<slot name="${SLOTS.PIVOT}"></slot>` : ""}
|
|
329
|
+
</div>
|
|
330
|
+
<div class="icon-container" part="icon-container">
|
|
331
|
+
<slot name="${SLOTS.ICON}"></slot>
|
|
332
|
+
</div>
|
|
333
|
+
<div>
|
|
334
|
+
${this._pivot === "end" ? html`<slot name="${SLOTS.PIVOT}"></slot>` : ""}
|
|
335
|
+
</div>
|
|
336
|
+
</div>
|
|
337
|
+
`;
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
__decorate([property({
|
|
341
|
+
type: String,
|
|
342
|
+
reflect: true
|
|
343
|
+
})], CDSResizerHandle.prototype, "axis", void 0);
|
|
344
|
+
__decorate([state()], CDSResizerHandle.prototype, "_isDragging", void 0);
|
|
345
|
+
CDSResizerHandle = __decorate([carbonElement(`cds-resizer-handle`)], CDSResizerHandle);
|
|
346
|
+
var resizer_handle_default = CDSResizerHandle;
|
|
347
|
+
//#endregion
|
|
348
|
+
export { resizer_handle_default as default };
|
|
349
|
+
|
|
350
|
+
//# sourceMappingURL=resizer-handle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resizer-handle.js","names":["styles","customElement"],"sources":["../../../src/components/resizer/resizer-handle.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport styles from './resizer-handle.scss?lit';\nimport type { ResizerAxis, Position } from './defs';\nimport {\n DOUBLE_TAP,\n KEYBOARD,\n ARIA,\n SELECTORS,\n SLOTS,\n EVENTS,\n determineAxis,\n calculateFlexRatio,\n formatSplitRatio,\n isWithinDistance,\n triggerHapticFeedback,\n createCustomEvent,\n getOrientationFromAxis,\n safeClosest,\n safeQuerySelectorAll,\n} from './defs';\n\n/**\n * Resizer handle component for resizing panels.\n * @element cds-resizer-handle\n * @fires resize-start - Fired when dragging starts\n * @fires resize-drag - Fired during dragging (detail: { axis, delta, position })\n * @fires resize-end - Fired when dragging ends (detail: { axis, delta, position })\n * @fires resize-reset - Fired on double-tap / double-click\n */\n@customElement(`${prefix}-resizer-handle`)\nclass CDSResizerHandle extends LitElement {\n static styles = styles;\n\n /** Resize axis — determined automatically from slot, or set explicitly. */\n @property({ type: String, reflect: true })\n axis: ResizerAxis = 'y';\n\n @state()\n private _isDragging = false;\n\n private _startNode?: HTMLElement;\n private _endNode?: HTMLElement;\n private _grid?: HTMLElement;\n private _startSize = 0;\n private _endSize = 0;\n private _lastTapTime = 0;\n private _lastTapPosition: Position = { x: 0, y: 0 };\n\n private _boundStartDrag?: (e: PointerEvent) => void;\n private _boundHandleKeyDown?: (e: KeyboardEvent) => void;\n private _boundMove?: (e: PointerEvent) => void;\n private _boundStop?: (e: PointerEvent) => void;\n\n // ─── Public API (used by resizer-handle-pivot) ──────────────────────────────\n\n setSyntheticHoverState(isHovered: boolean): void {\n this.toggleAttribute('data-synthetic-hover', isHovered);\n this.requestUpdate();\n }\n\n setSyntheticActiveState(isActive: boolean): void {\n this.toggleAttribute('data-synthetic-active', isActive);\n this.requestUpdate();\n }\n\n /** Start dragging (called by pivot component). */\n startDrag = (e: PointerEvent): void => {\n this._handlePointerDown(e);\n };\n\n /** Reset panel sizes to default (called by pivot component or double-click). */\n resetSizes = (e: MouseEvent): void => {\n e.preventDefault();\n this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_RESET));\n\n if (this._grid) {\n this._grid.style.removeProperty('--start-element-size');\n this._grid.style.removeProperty('--end-element-size');\n const handleTransitionEnd = () => {\n this._updateAriaAttributes();\n this._grid?.removeEventListener('transitionend', handleTransitionEnd);\n };\n this._grid.addEventListener('transitionend', handleTransitionEnd, {\n once: true,\n });\n }\n };\n\n get pivot(): 'start' | 'end' | undefined {\n return this._pivot;\n }\n\n // ─── Lifecycle ──────────────────────────────────────────────────────────────\n\n connectedCallback() {\n super.connectedCallback();\n this._initializeComponent();\n this._setupEventListeners();\n }\n\n firstUpdated(): void {\n if (this._grid && this._startNode && this._endNode) {\n requestAnimationFrame(() => {\n this._updateAriaAttributes();\n });\n }\n }\n\n disconnectedCallback() {\n this._cleanup();\n super.disconnectedCallback();\n }\n\n // ─── Internals ──────────────────────────────────────────────────────────────\n\n private _initializeComponent(): void {\n this._grid = safeClosest(this, SELECTORS.GRID) || undefined;\n\n const slot = this.getAttribute('slot');\n const cursor = getComputedStyle(this).cursor;\n this.axis = determineAxis(slot, cursor);\n\n if (this._grid) {\n const panels = safeQuerySelectorAll<HTMLElement>(\n this._grid,\n SELECTORS.PANEL\n );\n if (this.axis === 'x') {\n this._startNode = panels.find((p) => p.slot === SLOTS.LEFT);\n this._endNode = panels.find((p) => p.slot === SLOTS.RIGHT);\n } else {\n this._startNode = panels.find((p) => p.slot === SLOTS.TOP);\n this._endNode = panels.find((p) => p.slot === SLOTS.BOTTOM);\n }\n }\n\n this._setupAccessibility();\n }\n\n private _setupAccessibility(): void {\n this.setAttribute('role', ARIA.ROLE_SEPARATOR);\n this.setAttribute('tabindex', '0');\n this.setAttribute('aria-orientation', getOrientationFromAxis(this.axis));\n this.setAttribute('aria-live', ARIA.LIVE_ASSERTIVE);\n if (this._grid && this._startNode && this._endNode) {\n this.setAttribute('aria-valuenow', ARIA.VALUE_DEFAULT);\n this.setAttribute('aria-valuemin', ARIA.VALUE_MIN);\n this.setAttribute('aria-valuemax', ARIA.VALUE_MAX);\n this.setAttribute('aria-valuetext', formatSplitRatio(50));\n }\n }\n\n private _setupEventListeners(): void {\n this._boundStartDrag = this._handlePointerDown.bind(this);\n this._boundHandleKeyDown = this._handleKeyDown.bind(this);\n this.addEventListener('pointerdown', this._boundStartDrag);\n this.addEventListener('keydown', this._boundHandleKeyDown);\n }\n\n private _cleanup(): void {\n if (this._boundStartDrag) {\n this.removeEventListener('pointerdown', this._boundStartDrag);\n this._boundStartDrag = undefined;\n }\n if (this._boundHandleKeyDown) {\n this.removeEventListener('keydown', this._boundHandleKeyDown);\n this._boundHandleKeyDown = undefined;\n }\n if (this._boundMove) {\n window.removeEventListener('pointermove', this._boundMove);\n this._boundMove = undefined;\n }\n if (this._boundStop) {\n window.removeEventListener('pointerup', this._boundStop);\n this._boundStop = undefined;\n }\n this.removeAttribute('data-synthetic-hover');\n this.removeAttribute('data-synthetic-active');\n this._isDragging = false;\n }\n\n private get _pivot(): 'start' | 'end' | undefined {\n const panel = safeClosest(this, SELECTORS.PANEL);\n if (!panel) return undefined;\n const slot = panel.getAttribute('slot');\n if (slot === SLOTS.LEFT) return 'end';\n if (slot === SLOTS.RIGHT) return 'start';\n return undefined;\n }\n\n private _updateAriaAttributes(): void {\n if (!this._grid || !this._startNode || !this._endNode) return;\n const rectStart = this._startNode.getBoundingClientRect();\n const rectEnd = this._endNode.getBoundingClientRect();\n const isHorizontal = this.axis === 'x';\n const startSize = isHorizontal ? rectStart.width : rectStart.height;\n const endSize = isHorizontal ? rectEnd.width : rectEnd.height;\n const totalSize = startSize + endSize;\n if (totalSize > 0) {\n const percentage = Math.round((startSize / totalSize) * 100);\n this.setAttribute('aria-valuenow', percentage.toString());\n this.setAttribute('aria-valuemin', ARIA.VALUE_MIN);\n this.setAttribute('aria-valuemax', ARIA.VALUE_MAX);\n this.setAttribute('aria-valuetext', formatSplitRatio(percentage));\n }\n }\n\n private _detectDoubleTap(e: PointerEvent): boolean {\n const now = Date.now();\n const dt = now - this._lastTapTime;\n const currentPos: Position = { x: e.clientX, y: e.clientY };\n if (\n dt < DOUBLE_TAP.MAX_TIME_MS &&\n isWithinDistance(\n currentPos,\n this._lastTapPosition,\n DOUBLE_TAP.MAX_DISTANCE_PX\n )\n ) {\n triggerHapticFeedback(DOUBLE_TAP.VIBRATION_MS);\n this.resetSizes(e as MouseEvent);\n this._lastTapTime = 0;\n return true;\n }\n this._lastTapTime = now;\n this._lastTapPosition = currentPos;\n return false;\n }\n\n private _handlePointerDown = (e: PointerEvent): void => {\n if (this._detectDoubleTap(e)) return;\n e.preventDefault();\n this._isDragging = true;\n this.setSyntheticActiveState(true);\n\n const startPosition: Position = { x: e.clientX, y: e.clientY };\n const startValue = this.axis === 'x' ? e.clientX : e.clientY;\n\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_START, { axis: this.axis, startPosition })\n );\n\n if (this._grid && this._startNode && this._endNode) {\n const rectStart = this._startNode.getBoundingClientRect();\n const rectEnd = this._endNode.getBoundingClientRect();\n this._startSize = this.axis === 'x' ? rectStart.width : rectStart.height;\n this._endSize = this.axis === 'x' ? rectEnd.width : rectEnd.height;\n }\n\n this._boundMove = this._createMoveHandler(startValue);\n this._boundStop = this._createStopHandler(startValue);\n window.addEventListener('pointermove', this._boundMove);\n window.addEventListener('pointerup', this._boundStop);\n };\n\n private _createMoveHandler(startValue: number): (e: PointerEvent) => void {\n return (e: PointerEvent) => {\n if (!this._isDragging) return;\n const currentValue = this.axis === 'x' ? e.clientX : e.clientY;\n const delta = currentValue - startValue;\n const position: Position = { x: e.clientX, y: e.clientY };\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_DRAG, {\n axis: this.axis,\n delta,\n position,\n })\n );\n if (this._grid && this._startNode && this._endNode) {\n this._updateGridSizes(delta);\n }\n };\n }\n\n private _createStopHandler(startValue: number): (e: PointerEvent) => void {\n return (e: PointerEvent) => {\n const currentValue = this.axis === 'x' ? e.clientX : e.clientY;\n const delta = currentValue - startValue;\n const position: Position = { x: e.clientX, y: e.clientY };\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_END, {\n axis: this.axis,\n delta,\n position,\n })\n );\n if (this._boundMove) {\n window.removeEventListener('pointermove', this._boundMove);\n this._boundMove = undefined;\n }\n if (this._boundStop) {\n window.removeEventListener('pointerup', this._boundStop);\n this._boundStop = undefined;\n }\n if (this._grid) this._grid.style.removeProperty('transition');\n this._isDragging = false;\n this.setSyntheticActiveState(false);\n };\n }\n\n private _updateGridSizes(delta: number): void {\n if (!this._grid) return;\n this._grid.style.transition = 'none';\n const start = this._startSize + delta;\n const end = this._endSize - delta;\n const total = start + end || 1;\n this._grid.style.setProperty(\n '--start-element-size',\n `${calculateFlexRatio(start, total)}fr`\n );\n this._grid.style.setProperty(\n '--end-element-size',\n `${calculateFlexRatio(end, total)}fr`\n );\n this._updateAriaAttributes();\n }\n\n private _handleKeyDown = (e: KeyboardEvent): void => {\n const navKeys = [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n ];\n if (!navKeys.includes(e.key)) return;\n e.preventDefault();\n e.stopPropagation();\n\n const step = e.shiftKey ? KEYBOARD.LARGE_STEP_PX : KEYBOARD.DEFAULT_STEP_PX;\n const isHorizontal = this.axis === 'x';\n let delta = 0;\n\n if (e.key === 'ArrowUp' && !isHorizontal) delta = -step;\n else if (e.key === 'ArrowDown' && !isHorizontal) delta = step;\n else if (e.key === 'ArrowLeft' && isHorizontal) delta = -step;\n else if (e.key === 'ArrowRight' && isHorizontal) delta = step;\n else if (e.key === 'Home' && this._grid && this._startNode) {\n const rect = this._startNode.getBoundingClientRect();\n delta = isHorizontal ? -rect.width : -rect.height;\n } else if (e.key === 'End' && this._grid && this._endNode) {\n const rect = this._endNode.getBoundingClientRect();\n delta = isHorizontal ? rect.width : rect.height;\n }\n\n if (delta !== 0) this._handleKeyboardResize(delta);\n };\n\n private _handleKeyboardResize(delta: number): void {\n const position: Position = { x: 0, y: 0 };\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_START, {\n axis: this.axis,\n startPosition: position,\n })\n );\n if (this._grid && this._startNode && this._endNode) {\n const rectStart = this._startNode.getBoundingClientRect();\n const rectEnd = this._endNode.getBoundingClientRect();\n const isHorizontal = this.axis === 'x';\n this._startSize = isHorizontal ? rectStart.width : rectStart.height;\n this._endSize = isHorizontal ? rectEnd.width : rectEnd.height;\n const start = this._startSize + delta;\n const end = this._endSize - delta;\n const total = start + end || 1;\n this._grid.style.setProperty(\n '--start-element-size',\n `${calculateFlexRatio(start, total)}fr`\n );\n this._grid.style.setProperty(\n '--end-element-size',\n `${calculateFlexRatio(end, total)}fr`\n );\n this._updateAriaAttributes();\n }\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_DRAG, {\n axis: this.axis,\n delta,\n position,\n })\n );\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_END, { axis: this.axis, delta, position })\n );\n }\n\n render() {\n return html`\n <div class=\"handle-content\">\n <span class=\"sr-only\">\n Use arrow keys to resize, hold Shift for larger steps. Double-click to\n reset.\n </span>\n <div>\n ${this._pivot === 'start'\n ? html`<slot name=\"${SLOTS.PIVOT}\"></slot>`\n : ''}\n </div>\n <div class=\"icon-container\" part=\"icon-container\">\n <slot name=\"${SLOTS.ICON}\"></slot>\n </div>\n <div>\n ${this._pivot === 'end'\n ? html`<slot name=\"${SLOTS.PIVOT}\"></slot>`\n : ''}\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cds-resizer-handle': CDSResizerHandle;\n }\n}\n\nexport default CDSResizerHandle;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { css } from "lit";
|
|
9
|
+
//#region src/components/resizer/resizer-handle.scss?lit
|
|
10
|
+
var resizer_handle_default = css([".handle-content{display:flex;block-size:100%;inline-size:100%}.icon-container{display:flex;flex-grow:1;align-items:center;justify-content:center;block-size:100%}:host{display:grid;background:var(--cds-border-subtle);cursor:ns-resize;min-block-size:max(1px,var(--resizer-thickness));min-inline-size:max(1px,var(--resizer-thickness));touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host .icon-container{position:relative}:host .icon-container:before{position:absolute;background-color:var(--resizer-grab-color);block-size:calc(max(1px, var(--resizer-thickness)) + max(0px, var(--resizer-grab-thickness)));content:\"\";inline-size:100%;inset-inline-start:0}@media (prefers-reduced-motion:no-preference){:host(:hover),:host([data-synthetic-hover]){background-color:var(--cds-border-interactive);transition:background-color var(--cds-duration-moderate-01)}}:host(:focus){background-color:var(--cds-border-interactive);outline:none}:host(:active),:host([data-synthetic-active]){background-color:var(--cds-border-interactive)}:host(:focus:not(:focus-visible)){box-shadow:none;outline:none}:host([orientation=horizontal]),:host([slot=handle-horizontal]){cursor:ew-resize}:host([orientation=horizontal]) .icon-container,:host([slot=handle-horizontal]) .icon-container{position:relative}:host([orientation=horizontal]) .icon-container:before,:host([slot=handle-horizontal]) .icon-container:before{position:absolute;background-color:var(--resizer-grab-color);block-size:100%;content:\"\";inline-size:calc(max(1px, var(--resizer-thickness)) + max(0px, var(--resizer-grab-thickness)));inset-block-start:0;inset-inline-start:auto}:host([orientation=vertical]),:host([slot=handle-vertical]){cursor:ns-resize;min-inline-size:0}:host([orientation=vertical]) .icon-container,:host([slot=handle-vertical]) .icon-container{position:relative}:host([orientation=vertical]) .icon-container:before,:host([slot=handle-vertical]) .icon-container:before{position:absolute;background-color:var(--resizer-grab-color);block-size:calc(max(1px, var(--resizer-thickness)) + max(0px, var(--resizer-grab-thickness)));content:\"\";inline-size:100%;inset-inline-start:0}.sr-only{position:absolute;overflow:hidden;padding:0;border:0;margin:-1px;block-size:1px;clip:rect(0,0,0,0);inline-size:1px;white-space:nowrap}"]);
|
|
11
|
+
//#endregion
|
|
12
|
+
export { resizer_handle_default as default };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=resizer-handle.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resizer-handle.scss.js","names":[],"sources":["../../../src/components/resizer/resizer-handle.scss?lit"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n.handle-content {\n display: flex;\n block-size: 100%;\n inline-size: 100%;\n}\n\n.icon-container {\n display: flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n block-size: 100%;\n}\n\n:host {\n display: grid;\n background: var(--cds-border-subtle);\n cursor: ns-resize;\n min-block-size: max(1px, var(--resizer-thickness));\n min-inline-size: max(1px, var(--resizer-thickness));\n touch-action: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n .icon-container {\n position: relative;\n\n &::before {\n position: absolute;\n background-color: var(--resizer-grab-color);\n block-size: calc(\n max(1px, var(--resizer-thickness)) +\n max(0px, var(--resizer-grab-thickness))\n );\n content: '';\n inline-size: 100%;\n inset-inline-start: 0;\n }\n }\n}\n\n:host(:hover),\n:host([data-synthetic-hover]) {\n @media (prefers-reduced-motion: no-preference) {\n background-color: var(--cds-border-interactive);\n transition: background-color var(--cds-duration-moderate-01);\n }\n}\n\n:host(:focus) {\n background-color: var(--cds-border-interactive);\n outline: none;\n}\n\n:host(:active),\n:host([data-synthetic-active]) {\n background-color: var(--cds-border-interactive);\n}\n\n:host(:focus:not(:focus-visible)) {\n box-shadow: none;\n outline: none;\n}\n\n:host([slot='handle-horizontal']),\n:host([orientation='horizontal']) {\n cursor: ew-resize;\n\n .icon-container {\n position: relative;\n\n &::before {\n position: absolute;\n background-color: var(--resizer-grab-color);\n block-size: 100%;\n content: '';\n inline-size: calc(\n max(1px, var(--resizer-thickness)) +\n max(0px, var(--resizer-grab-thickness))\n );\n inset-block-start: 0;\n inset-inline-start: auto;\n }\n }\n}\n\n:host([slot='handle-vertical']),\n:host([orientation='vertical']) {\n cursor: ns-resize;\n min-inline-size: 0;\n\n .icon-container {\n position: relative;\n\n &::before {\n position: absolute;\n background-color: var(--resizer-grab-color);\n block-size: calc(\n max(1px, var(--resizer-thickness)) +\n max(0px, var(--resizer-grab-thickness))\n );\n content: '';\n inline-size: 100%;\n inset-inline-start: 0;\n }\n }\n}\n\n.sr-only {\n position: absolute;\n overflow: hidden;\n padding: 0;\n border: 0;\n margin: -1px;\n block-size: 1px;\n clip: rect(0, 0, 0, 0);\n inline-size: 1px;\n white-space: nowrap;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2026, 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import { LitElement } from 'lit';
|
|
8
|
+
/**
|
|
9
|
+
* Resizer panel component for resizable content areas.
|
|
10
|
+
* @element cds-resizer-panel
|
|
11
|
+
*/
|
|
12
|
+
declare class CDSResizerPanel extends LitElement {
|
|
13
|
+
static styles: any;
|
|
14
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
15
|
+
}
|
|
16
|
+
declare global {
|
|
17
|
+
interface HTMLElementTagNameMap {
|
|
18
|
+
'cds-resizer-panel': CDSResizerPanel;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export default CDSResizerPanel;
|
|
22
|
+
//# sourceMappingURL=resizer-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resizer-panel.d.ts","sourceRoot":"","sources":["../../../src/components/resizer/resizer-panel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC;;;GAGG;AACH,cACM,eAAgB,SAAQ,UAAU;IACtC,MAAM,CAAC,MAAM,MAAU;IAEvB,MAAM;CAGP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,eAAe,CAAC;KACtC;CACF;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import "../../globals/settings.js";
|
|
9
|
+
import { carbonElement } from "../../globals/decorators/carbon-element.js";
|
|
10
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
|
|
11
|
+
import resizer_panel_default$1 from "./resizer-panel.scss.js";
|
|
12
|
+
import { LitElement, html } from "lit";
|
|
13
|
+
//#region src/components/resizer/resizer-panel.ts
|
|
14
|
+
/**
|
|
15
|
+
* Copyright IBM Corp. 2026, 2026
|
|
16
|
+
*
|
|
17
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
18
|
+
* LICENSE file in the root directory of this source tree.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Resizer panel component for resizable content areas.
|
|
22
|
+
* @element cds-resizer-panel
|
|
23
|
+
*/
|
|
24
|
+
let CDSResizerPanel = class CDSResizerPanel extends LitElement {
|
|
25
|
+
static {
|
|
26
|
+
this.styles = resizer_panel_default$1;
|
|
27
|
+
}
|
|
28
|
+
render() {
|
|
29
|
+
return html`<slot></slot>`;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
CDSResizerPanel = __decorate([carbonElement(`cds-resizer-panel`)], CDSResizerPanel);
|
|
33
|
+
var resizer_panel_default = CDSResizerPanel;
|
|
34
|
+
//#endregion
|
|
35
|
+
export { resizer_panel_default as default };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=resizer-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resizer-panel.js","names":["styles","customElement"],"sources":["../../../src/components/resizer/resizer-panel.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html } from 'lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport styles from './resizer-panel.scss?lit';\n\n/**\n * Resizer panel component for resizable content areas.\n * @element cds-resizer-panel\n */\n@customElement(`${prefix}-resizer-panel`)\nclass CDSResizerPanel extends LitElement {\n static styles = styles;\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cds-resizer-panel': CDSResizerPanel;\n }\n}\n\nexport default CDSResizerPanel;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAA,kBAAA,MACM,wBAAwB,WAAW;;gBACvBA;;CAEhB,SAAS;EACP,OAAO,IAAI;CACb;AACF;8BAPCC,cAAc,mBAAyB,CAAA,GAAA,eAAA;AAexC,IAAA,wBAAe"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { css } from "lit";
|
|
9
|
+
//#region src/components/resizer/resizer-panel.scss?lit
|
|
10
|
+
var resizer_panel_default = css([":host{overflow:hidden}"]);
|
|
11
|
+
//#endregion
|
|
12
|
+
export { resizer_panel_default as default };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=resizer-panel.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resizer-panel.scss.js","names":[],"sources":["../../../src/components/resizer/resizer-panel.scss?lit"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n:host {\n overflow: hidden;\n}\n"],"mappings":""}
|