@carbon/web-components 2.54.0-rc.0 → 2.55.0-rc.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 +213 -161
- package/es/components/accordion/accordion.scss.js +1 -1
- package/es/components/ai-label/ai-label.scss.js +1 -1
- package/es/components/ai-skeleton/ai-skeleton.scss.js +1 -1
- package/es/components/badge-indicator/badge-indicator.scss.js +1 -1
- package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es/components/button/button.d.ts +1 -1
- package/es/components/button/button.js +1 -1
- package/es/components/button/button.js.map +1 -1
- package/es/components/button/button.scss.js +1 -1
- package/es/components/checkbox/checkbox.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/dialog/dialog-body.js +1 -1
- package/es/components/dialog/dialog-close-button.js +1 -1
- package/es/components/dialog/dialog-footer.js +1 -1
- package/es/components/dialog/dialog-subtitle.js +1 -1
- package/es/components/dialog/dialog-title.js +1 -1
- package/es/components/dialog/dialog.d.ts +18 -7
- package/es/components/dialog/dialog.d.ts.map +1 -1
- package/es/components/dialog/dialog.js +51 -17
- package/es/components/dialog/dialog.js.map +1 -1
- package/es/components/dialog/dialog.scss.js +1 -1
- package/es/components/dialog/dialog.scss.js.map +1 -1
- package/es/components/dropdown/dropdown.d.ts +3 -2
- package/es/components/dropdown/dropdown.d.ts.map +1 -1
- package/es/components/dropdown/dropdown.js +9 -2
- package/es/components/dropdown/dropdown.js.map +1 -1
- package/es/components/dropdown/dropdown.scss.js +1 -1
- package/es/components/feature-flags/index.d.ts.map +1 -1
- package/es/components/feature-flags/index.js +8 -3
- package/es/components/feature-flags/index.js.map +1 -1
- package/es/components/file-uploader/file-uploader-button.d.ts.map +1 -1
- package/es/components/file-uploader/file-uploader-button.js +3 -2
- package/es/components/file-uploader/file-uploader-button.js.map +1 -1
- package/es/components/file-uploader/file-uploader-drop-container.d.ts +1 -1
- package/es/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
- package/es/components/file-uploader/file-uploader-drop-container.js +3 -2
- package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
- package/es/components/file-uploader/file-uploader-item.d.ts +4 -0
- package/es/components/file-uploader/file-uploader-item.d.ts.map +1 -1
- package/es/components/file-uploader/file-uploader-item.js +6 -0
- package/es/components/file-uploader/file-uploader-item.js.map +1 -1
- package/es/components/file-uploader/file-uploader.scss.js +1 -1
- package/es/components/file-uploader/file-uploader.scss.js.map +1 -1
- package/es/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
- package/es/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
- package/es/components/fluid-form/fluid-form.d.ts +19 -0
- package/es/components/fluid-form/fluid-form.d.ts.map +1 -0
- package/es/components/fluid-form/fluid-form.js +44 -0
- package/es/components/fluid-form/fluid-form.js.map +1 -0
- package/es/components/fluid-form/fluid-form.scss.js +14 -0
- package/es/components/fluid-form/fluid-form.scss.js.map +1 -0
- package/es/components/fluid-form/index.d.ts +8 -0
- package/es/components/fluid-form/index.d.ts.map +1 -0
- package/es/components/fluid-form/index.js +8 -0
- 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-number-input/fluid-number-input.scss.js.map +1 -1
- package/es/components/fluid-password-input/fluid-password-input.scss.js +1 -1
- package/es/components/fluid-password-input/fluid-password-input.scss.js.map +1 -1
- package/es/components/fluid-search/fluid-search.scss.js +1 -1
- package/es/components/fluid-select/fluid-select.scss.js +1 -1
- package/es/components/fluid-select/fluid-select.scss.js.map +1 -1
- package/es/components/fluid-text-input/fluid-text-input.scss.js +1 -1
- package/es/components/fluid-text-input/fluid-text-input.scss.js.map +1 -1
- package/es/components/fluid-textarea/fluid-textarea.scss.js +1 -1
- package/es/components/fluid-textarea/fluid-textarea.scss.js.map +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
- package/es/components/form/form-item.scss.js +1 -1
- package/es/components/form/form.scss.js +1 -1
- package/es/components/form-group/form-group.scss.js +1 -1
- package/es/components/heading/heading.scss.js +1 -1
- package/es/components/icon/icon.d.ts +1 -1
- package/es/components/icon-button/icon-button.scss.js +1 -1
- package/es/components/icon-indicator/icon-indicator.scss.js +1 -1
- package/es/components/inline-loading/inline-loading.scss.js +1 -1
- package/es/components/link/link.d.ts +1 -1
- package/es/components/link/link.d.ts.map +1 -1
- package/es/components/link/link.js.map +1 -1
- package/es/components/link/link.scss.js +1 -1
- package/es/components/list/list.scss.js +1 -1
- package/es/components/loading/loading.scss.js +1 -1
- package/es/components/menu/menu-item.scss.js +1 -1
- package/es/components/menu/menu.scss.js +1 -1
- package/es/components/menu-button/menu-button.scss.js +1 -1
- package/es/components/modal/modal-base.d.ts +144 -0
- package/es/components/modal/modal-base.d.ts.map +1 -0
- package/es/components/modal/modal-base.js +229 -0
- package/es/components/modal/modal-base.js.map +1 -0
- package/es/components/modal/modal.d.ts +15 -89
- package/es/components/modal/modal.d.ts.map +1 -1
- package/es/components/modal/modal.js +66 -169
- package/es/components/modal/modal.js.map +1 -1
- package/es/components/modal/modal.scss.js +1 -1
- package/es/components/modal/modal.scss.js.map +1 -1
- package/es/components/multi-select/multi-select.scss.js +1 -1
- package/es/components/notification/actionable-notification.d.ts +1 -1
- package/es/components/notification/actionable-notification.scss.js +1 -1
- package/es/components/notification/callout-notification.d.ts +1 -1
- package/es/components/notification/inline-notification.d.ts +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/number-input/number-input.scss.js +1 -1
- package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es/components/page-header/index.d.ts +4 -0
- package/es/components/page-header/index.d.ts.map +1 -1
- package/es/components/page-header/page-header-breadcrumb.d.ts +7 -0
- package/es/components/page-header/page-header-breadcrumb.d.ts.map +1 -1
- package/es/components/page-header/page-header-breadcrumb.js +7 -0
- package/es/components/page-header/page-header-breadcrumb.js.map +1 -1
- package/es/components/page-header/page-header-content-text.d.ts +7 -0
- package/es/components/page-header/page-header-content-text.d.ts.map +1 -1
- package/es/components/page-header/page-header-content-text.js +7 -0
- package/es/components/page-header/page-header-content-text.js.map +1 -1
- package/es/components/page-header/page-header-content.d.ts +7 -0
- package/es/components/page-header/page-header-content.d.ts.map +1 -1
- package/es/components/page-header/page-header-content.js +7 -0
- package/es/components/page-header/page-header-content.js.map +1 -1
- package/es/components/page-header/page-header-hero-image.d.ts +7 -0
- package/es/components/page-header/page-header-hero-image.d.ts.map +1 -1
- package/es/components/page-header/page-header-hero-image.js +7 -0
- package/es/components/page-header/page-header-hero-image.js.map +1 -1
- package/es/components/page-header/page-header-tabs.d.ts +7 -0
- package/es/components/page-header/page-header-tabs.d.ts.map +1 -1
- package/es/components/page-header/page-header-tabs.js +7 -0
- package/es/components/page-header/page-header-tabs.js.map +1 -1
- package/es/components/page-header/page-header.d.ts +7 -0
- package/es/components/page-header/page-header.d.ts.map +1 -1
- package/es/components/page-header/page-header.js +7 -0
- package/es/components/page-header/page-header.js.map +1 -1
- package/es/components/page-header/page-header.scss.js +1 -1
- package/es/components/page-header/page-header.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.d.ts.map +1 -1
- package/es/components/password-input/password-input.js +1 -1
- package/es/components/password-input/password-input.js.map +1 -1
- package/es/components/password-input/password-input.scss.js +1 -1
- package/es/components/popover/popover.scss.js +1 -1
- package/es/components/progress-bar/progress-bar.scss.js +1 -1
- package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es/components/radio-button/radio-button.scss.js +1 -1
- package/es/components/search/search.d.ts +4 -0
- package/es/components/search/search.d.ts.map +1 -1
- package/es/components/search/search.js +4 -1
- package/es/components/search/search.js.map +1 -1
- package/es/components/search/search.scss.js +1 -1
- package/es/components/select/select.scss.js +1 -1
- package/es/components/shape-indicator/shape-indicator.scss.js +1 -1
- package/es/components/side-panel/side-panel.d.ts +1 -1
- package/es/components/side-panel/side-panel.js +1 -1
- package/es/components/side-panel/side-panel.js.map +1 -1
- package/es/components/skeleton-icon/skeleton-icon.scss.js +1 -1
- package/es/components/skeleton-placeholder/skeleton-placeholder.scss.js +1 -1
- package/es/components/skeleton-text/skeleton-text.scss.js +1 -1
- package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es/components/slider/slider.scss.js +1 -1
- package/es/components/slug/slug.scss.js +1 -1
- package/es/components/stack/stack.scss.js +1 -1
- package/es/components/structured-list/structured-list.scss.js +1 -1
- package/es/components/tabs/stories/tabs-wrapper.d.ts +4 -0
- package/es/components/tabs/stories/tabs-wrapper.d.ts.map +1 -1
- package/es/components/tabs/stories/tabs-wrapper.js +22 -10
- package/es/components/tabs/stories/tabs-wrapper.js.map +1 -1
- package/es/components/tabs/tab.d.ts +34 -1
- package/es/components/tabs/tab.d.ts.map +1 -1
- package/es/components/tabs/tab.js +36 -3
- package/es/components/tabs/tab.js.map +1 -1
- package/es/components/tabs/tabs.d.ts +12 -0
- package/es/components/tabs/tabs.d.ts.map +1 -1
- package/es/components/tabs/tabs.js +36 -10
- package/es/components/tabs/tabs.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/tearsheet/tearsheet.d.ts +1 -1
- package/es/components/tearsheet/tearsheet.js +1 -1
- package/es/components/tearsheet/tearsheet.js.map +1 -1
- package/es/components/text-input/text-input.d.ts +2 -1
- package/es/components/text-input/text-input.d.ts.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/tile/clickable-tile.d.ts +1 -1
- package/es/components/tile/clickable-tile.d.ts.map +1 -1
- package/es/components/tile/clickable-tile.js +6 -1
- package/es/components/tile/clickable-tile.js.map +1 -1
- package/es/components/tile/radio-tile.d.ts +4 -1
- package/es/components/tile/radio-tile.d.ts.map +1 -1
- package/es/components/tile/radio-tile.js +23 -6
- package/es/components/tile/radio-tile.js.map +1 -1
- package/es/components/tile/selectable-tile.d.ts +1 -1
- package/es/components/tile/tile.scss.js +1 -1
- package/es/components/tile/tile.scss.js.map +1 -1
- package/es/components/time-picker/time-picker.d.ts +2 -1
- package/es/components/time-picker/time-picker.d.ts.map +1 -1
- package/es/components/time-picker/time-picker.scss.js +1 -1
- package/es/components/toggle/toggle.scss.js +1 -1
- package/es/components/toggle-tip/toggletip.scss.js +1 -1
- package/es/components/tooltip/tooltip.scss.js +1 -1
- package/es/components/tree-view/tree-view.scss.js +1 -1
- package/es/components/ui-shell/header.scss.js +1 -1
- package/es/components/ui-shell/side-nav.scss.js +1 -1
- package/es/globals/decorators/carbon-element.js.map +1 -1
- package/es/globals/directives/spread.d.ts +1 -1
- package/es/globals/directives/spread.d.ts.map +1 -1
- package/es/globals/internal/icon-loader-utils.d.ts +1 -1
- package/es/globals/internal/icon-loader-utils.d.ts.map +1 -1
- package/es/globals/mixins/validity.d.ts +2 -1
- package/es/globals/mixins/validity.d.ts.map +1 -1
- package/es/globals/mixins/validity.js.map +1 -1
- package/es/index.js +1 -1
- package/es-custom/components/accordion/accordion.scss.js +1 -1
- package/es-custom/components/ai-label/ai-label.scss.js +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton.scss.js +1 -1
- package/es-custom/components/badge-indicator/badge-indicator.scss.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es-custom/components/button/button.d.ts +1 -1
- package/es-custom/components/button/button.js +1 -1
- package/es-custom/components/button/button.js.map +1 -1
- package/es-custom/components/button/button.scss.js +1 -1
- package/es-custom/components/checkbox/checkbox.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/dialog/dialog-body.js +1 -1
- package/es-custom/components/dialog/dialog-close-button.js +1 -1
- package/es-custom/components/dialog/dialog-footer.js +1 -1
- package/es-custom/components/dialog/dialog-subtitle.js +1 -1
- package/es-custom/components/dialog/dialog-title.js +1 -1
- package/es-custom/components/dialog/dialog.d.ts +18 -7
- package/es-custom/components/dialog/dialog.d.ts.map +1 -1
- package/es-custom/components/dialog/dialog.js +51 -17
- package/es-custom/components/dialog/dialog.js.map +1 -1
- package/es-custom/components/dialog/dialog.scss.js +1 -1
- package/es-custom/components/dialog/dialog.scss.js.map +1 -1
- package/es-custom/components/dropdown/dropdown.d.ts +3 -2
- package/es-custom/components/dropdown/dropdown.d.ts.map +1 -1
- package/es-custom/components/dropdown/dropdown.js +9 -2
- package/es-custom/components/dropdown/dropdown.js.map +1 -1
- package/es-custom/components/dropdown/dropdown.scss.js +1 -1
- package/es-custom/components/feature-flags/index.d.ts.map +1 -1
- package/es-custom/components/feature-flags/index.js +8 -3
- package/es-custom/components/feature-flags/index.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-button.d.ts.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-button.js +3 -2
- package/es-custom/components/file-uploader/file-uploader-button.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-drop-container.d.ts +1 -1
- package/es-custom/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-drop-container.js +3 -2
- package/es-custom/components/file-uploader/file-uploader-drop-container.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-item.d.ts +4 -0
- package/es-custom/components/file-uploader/file-uploader-item.d.ts.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-item.js +6 -0
- package/es-custom/components/file-uploader/file-uploader-item.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
- package/es-custom/components/file-uploader/file-uploader.scss.js.map +1 -1
- package/es-custom/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
- package/es-custom/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
- package/es-custom/components/fluid-form/fluid-form.d.ts +19 -0
- package/es-custom/components/fluid-form/fluid-form.d.ts.map +1 -0
- package/es-custom/components/fluid-form/fluid-form.js +44 -0
- package/es-custom/components/fluid-form/fluid-form.js.map +1 -0
- package/es-custom/components/fluid-form/fluid-form.scss.js +14 -0
- package/es-custom/components/fluid-form/fluid-form.scss.js.map +1 -0
- package/es-custom/components/fluid-form/index.d.ts +8 -0
- package/es-custom/components/fluid-form/index.d.ts.map +1 -0
- package/es-custom/components/fluid-form/index.js +8 -0
- 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-number-input/fluid-number-input.scss.js.map +1 -1
- package/es-custom/components/fluid-password-input/fluid-password-input.scss.js +1 -1
- package/es-custom/components/fluid-password-input/fluid-password-input.scss.js.map +1 -1
- package/es-custom/components/fluid-search/fluid-search.scss.js +1 -1
- package/es-custom/components/fluid-select/fluid-select.scss.js +1 -1
- package/es-custom/components/fluid-select/fluid-select.scss.js.map +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input.scss.js +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input.scss.js.map +1 -1
- package/es-custom/components/fluid-textarea/fluid-textarea.scss.js +1 -1
- package/es-custom/components/fluid-textarea/fluid-textarea.scss.js.map +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
- package/es-custom/components/form/form-item.scss.js +1 -1
- package/es-custom/components/form/form.scss.js +1 -1
- package/es-custom/components/form-group/form-group.scss.js +1 -1
- package/es-custom/components/heading/heading.scss.js +1 -1
- package/es-custom/components/icon/icon.d.ts +1 -1
- package/es-custom/components/icon-button/icon-button.scss.js +1 -1
- package/es-custom/components/icon-indicator/icon-indicator.scss.js +1 -1
- package/es-custom/components/inline-loading/inline-loading.scss.js +1 -1
- package/es-custom/components/link/link.d.ts +1 -1
- package/es-custom/components/link/link.d.ts.map +1 -1
- package/es-custom/components/link/link.js.map +1 -1
- package/es-custom/components/link/link.scss.js +1 -1
- package/es-custom/components/list/list.scss.js +1 -1
- package/es-custom/components/loading/loading.scss.js +1 -1
- package/es-custom/components/menu/menu-item.scss.js +1 -1
- package/es-custom/components/menu/menu.scss.js +1 -1
- package/es-custom/components/menu-button/menu-button.scss.js +1 -1
- package/es-custom/components/modal/modal-base.d.ts +144 -0
- package/es-custom/components/modal/modal-base.d.ts.map +1 -0
- package/es-custom/components/modal/modal-base.js +229 -0
- package/es-custom/components/modal/modal-base.js.map +1 -0
- package/es-custom/components/modal/modal.d.ts +15 -89
- package/es-custom/components/modal/modal.d.ts.map +1 -1
- package/es-custom/components/modal/modal.js +66 -169
- package/es-custom/components/modal/modal.js.map +1 -1
- package/es-custom/components/modal/modal.scss.js +1 -1
- package/es-custom/components/modal/modal.scss.js.map +1 -1
- package/es-custom/components/multi-select/multi-select.scss.js +1 -1
- package/es-custom/components/notification/actionable-notification.d.ts +1 -1
- package/es-custom/components/notification/actionable-notification.scss.js +1 -1
- package/es-custom/components/notification/callout-notification.d.ts +1 -1
- package/es-custom/components/notification/inline-notification.d.ts +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/number-input/number-input.scss.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es-custom/components/page-header/index.d.ts +4 -0
- package/es-custom/components/page-header/index.d.ts.map +1 -1
- package/es-custom/components/page-header/page-header-breadcrumb.d.ts +7 -0
- package/es-custom/components/page-header/page-header-breadcrumb.d.ts.map +1 -1
- package/es-custom/components/page-header/page-header-breadcrumb.js +7 -0
- package/es-custom/components/page-header/page-header-breadcrumb.js.map +1 -1
- package/es-custom/components/page-header/page-header-content-text.d.ts +7 -0
- package/es-custom/components/page-header/page-header-content-text.d.ts.map +1 -1
- package/es-custom/components/page-header/page-header-content-text.js +7 -0
- package/es-custom/components/page-header/page-header-content-text.js.map +1 -1
- package/es-custom/components/page-header/page-header-content.d.ts +7 -0
- package/es-custom/components/page-header/page-header-content.d.ts.map +1 -1
- package/es-custom/components/page-header/page-header-content.js +7 -0
- package/es-custom/components/page-header/page-header-content.js.map +1 -1
- package/es-custom/components/page-header/page-header-hero-image.d.ts +7 -0
- package/es-custom/components/page-header/page-header-hero-image.d.ts.map +1 -1
- package/es-custom/components/page-header/page-header-hero-image.js +7 -0
- package/es-custom/components/page-header/page-header-hero-image.js.map +1 -1
- package/es-custom/components/page-header/page-header-tabs.d.ts +7 -0
- package/es-custom/components/page-header/page-header-tabs.d.ts.map +1 -1
- package/es-custom/components/page-header/page-header-tabs.js +7 -0
- package/es-custom/components/page-header/page-header-tabs.js.map +1 -1
- package/es-custom/components/page-header/page-header.d.ts +7 -0
- package/es-custom/components/page-header/page-header.d.ts.map +1 -1
- package/es-custom/components/page-header/page-header.js +7 -0
- package/es-custom/components/page-header/page-header.js.map +1 -1
- package/es-custom/components/page-header/page-header.scss.js +1 -1
- package/es-custom/components/page-header/page-header.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.d.ts.map +1 -1
- package/es-custom/components/password-input/password-input.js +1 -1
- package/es-custom/components/password-input/password-input.js.map +1 -1
- package/es-custom/components/password-input/password-input.scss.js +1 -1
- package/es-custom/components/popover/popover.scss.js +1 -1
- package/es-custom/components/progress-bar/progress-bar.scss.js +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es-custom/components/radio-button/radio-button.scss.js +1 -1
- package/es-custom/components/search/search.d.ts +4 -0
- package/es-custom/components/search/search.d.ts.map +1 -1
- package/es-custom/components/search/search.js +4 -1
- package/es-custom/components/search/search.js.map +1 -1
- package/es-custom/components/search/search.scss.js +1 -1
- package/es-custom/components/select/select.scss.js +1 -1
- package/es-custom/components/shape-indicator/shape-indicator.scss.js +1 -1
- package/es-custom/components/side-panel/side-panel.d.ts +1 -1
- package/es-custom/components/side-panel/side-panel.js +1 -1
- package/es-custom/components/side-panel/side-panel.js.map +1 -1
- package/es-custom/components/skeleton-icon/skeleton-icon.scss.js +1 -1
- package/es-custom/components/skeleton-placeholder/skeleton-placeholder.scss.js +1 -1
- package/es-custom/components/skeleton-text/skeleton-text.scss.js +1 -1
- package/es-custom/components/skip-to-content/skip-to-content.scss.js +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/stack/stack.scss.js +1 -1
- package/es-custom/components/structured-list/structured-list.scss.js +1 -1
- package/es-custom/components/tabs/stories/tabs-wrapper.d.ts +4 -0
- package/es-custom/components/tabs/stories/tabs-wrapper.d.ts.map +1 -1
- package/es-custom/components/tabs/stories/tabs-wrapper.js +22 -10
- package/es-custom/components/tabs/stories/tabs-wrapper.js.map +1 -1
- package/es-custom/components/tabs/tab.d.ts +34 -1
- package/es-custom/components/tabs/tab.d.ts.map +1 -1
- package/es-custom/components/tabs/tab.js +36 -3
- package/es-custom/components/tabs/tab.js.map +1 -1
- package/es-custom/components/tabs/tabs.d.ts +12 -0
- package/es-custom/components/tabs/tabs.d.ts.map +1 -1
- package/es-custom/components/tabs/tabs.js +36 -10
- package/es-custom/components/tabs/tabs.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/tearsheet/tearsheet.d.ts +1 -1
- package/es-custom/components/tearsheet/tearsheet.js +1 -1
- package/es-custom/components/tearsheet/tearsheet.js.map +1 -1
- package/es-custom/components/text-input/text-input.d.ts +2 -1
- package/es-custom/components/text-input/text-input.d.ts.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/tile/clickable-tile.d.ts +1 -1
- package/es-custom/components/tile/clickable-tile.d.ts.map +1 -1
- package/es-custom/components/tile/clickable-tile.js +6 -1
- package/es-custom/components/tile/clickable-tile.js.map +1 -1
- package/es-custom/components/tile/radio-tile.d.ts +4 -1
- package/es-custom/components/tile/radio-tile.d.ts.map +1 -1
- package/es-custom/components/tile/radio-tile.js +23 -6
- package/es-custom/components/tile/radio-tile.js.map +1 -1
- package/es-custom/components/tile/selectable-tile.d.ts +1 -1
- package/es-custom/components/tile/tile.scss.js +1 -1
- package/es-custom/components/tile/tile.scss.js.map +1 -1
- package/es-custom/components/time-picker/time-picker.d.ts +2 -1
- package/es-custom/components/time-picker/time-picker.d.ts.map +1 -1
- package/es-custom/components/time-picker/time-picker.scss.js +1 -1
- package/es-custom/components/toggle/toggle.scss.js +1 -1
- package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
- package/es-custom/components/tooltip/tooltip.scss.js +1 -1
- package/es-custom/components/tree-view/tree-view.scss.js +1 -1
- 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/globals/decorators/carbon-element.js.map +1 -1
- package/es-custom/globals/directives/spread.d.ts +1 -1
- package/es-custom/globals/directives/spread.d.ts.map +1 -1
- package/es-custom/globals/internal/icon-loader-utils.d.ts +1 -1
- package/es-custom/globals/internal/icon-loader-utils.d.ts.map +1 -1
- package/es-custom/globals/mixins/validity.d.ts +2 -1
- package/es-custom/globals/mixins/validity.d.ts.map +1 -1
- package/es-custom/globals/mixins/validity.js.map +1 -1
- package/es-custom/index.js +1 -1
- package/lib/components/button/button.d.ts +1 -1
- package/lib/components/dialog/dialog.d.ts +18 -7
- package/lib/components/dialog/dialog.d.ts.map +1 -1
- package/lib/components/dropdown/dropdown.d.ts +3 -2
- package/lib/components/dropdown/dropdown.d.ts.map +1 -1
- package/lib/components/feature-flags/index.d.ts.map +1 -1
- package/lib/components/file-uploader/file-uploader-button.d.ts.map +1 -1
- package/lib/components/file-uploader/file-uploader-drop-container.d.ts +1 -1
- package/lib/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
- package/lib/components/file-uploader/file-uploader-item.d.ts +4 -0
- package/lib/components/file-uploader/file-uploader-item.d.ts.map +1 -1
- package/lib/components/fluid-form/fluid-form.d.ts +19 -0
- package/lib/components/fluid-form/fluid-form.d.ts.map +1 -0
- package/lib/components/fluid-form/index.d.ts +8 -0
- package/lib/components/fluid-form/index.d.ts.map +1 -0
- package/lib/components/icon/icon.d.ts +1 -1
- package/lib/components/link/link.d.ts +1 -1
- package/lib/components/link/link.d.ts.map +1 -1
- package/lib/components/modal/modal-base.d.ts +144 -0
- package/lib/components/modal/modal-base.d.ts.map +1 -0
- package/lib/components/modal/modal.d.ts +15 -89
- package/lib/components/modal/modal.d.ts.map +1 -1
- package/lib/components/notification/actionable-notification.d.ts +1 -1
- package/lib/components/notification/callout-notification.d.ts +1 -1
- package/lib/components/notification/inline-notification.d.ts +1 -1
- package/lib/components/page-header/index.d.ts +4 -0
- package/lib/components/page-header/index.d.ts.map +1 -1
- package/lib/components/page-header/page-header-breadcrumb.d.ts +7 -0
- package/lib/components/page-header/page-header-breadcrumb.d.ts.map +1 -1
- package/lib/components/page-header/page-header-content-text.d.ts +7 -0
- package/lib/components/page-header/page-header-content-text.d.ts.map +1 -1
- package/lib/components/page-header/page-header-content.d.ts +7 -0
- package/lib/components/page-header/page-header-content.d.ts.map +1 -1
- package/lib/components/page-header/page-header-hero-image.d.ts +7 -0
- package/lib/components/page-header/page-header-hero-image.d.ts.map +1 -1
- package/lib/components/page-header/page-header-tabs.d.ts +7 -0
- package/lib/components/page-header/page-header-tabs.d.ts.map +1 -1
- package/lib/components/page-header/page-header.d.ts +7 -0
- package/lib/components/page-header/page-header.d.ts.map +1 -1
- package/lib/components/password-input/password-input.d.ts.map +1 -1
- package/lib/components/search/search.d.ts +4 -0
- package/lib/components/search/search.d.ts.map +1 -1
- package/lib/components/side-panel/side-panel.d.ts +1 -1
- package/lib/components/tabs/stories/tabs-wrapper.d.ts +4 -0
- package/lib/components/tabs/stories/tabs-wrapper.d.ts.map +1 -1
- package/lib/components/tabs/tab.d.ts +34 -1
- package/lib/components/tabs/tab.d.ts.map +1 -1
- package/lib/components/tabs/tabs.d.ts +12 -0
- package/lib/components/tabs/tabs.d.ts.map +1 -1
- package/lib/components/tearsheet/tearsheet.d.ts +1 -1
- package/lib/components/text-input/text-input.d.ts +2 -1
- package/lib/components/text-input/text-input.d.ts.map +1 -1
- package/lib/components/tile/clickable-tile.d.ts +1 -1
- package/lib/components/tile/clickable-tile.d.ts.map +1 -1
- package/lib/components/tile/radio-tile.d.ts +4 -1
- package/lib/components/tile/radio-tile.d.ts.map +1 -1
- package/lib/components/tile/selectable-tile.d.ts +1 -1
- package/lib/components/time-picker/time-picker.d.ts +2 -1
- package/lib/components/time-picker/time-picker.d.ts.map +1 -1
- package/lib/globals/directives/spread.d.ts +1 -1
- package/lib/globals/directives/spread.d.ts.map +1 -1
- package/lib/globals/internal/icon-loader-utils.d.ts +1 -1
- package/lib/globals/internal/icon-loader-utils.d.ts.map +1 -1
- package/lib/globals/mixins/validity.d.ts +2 -1
- package/lib/globals/mixins/validity.d.ts.map +1 -1
- package/package.json +13 -13
- package/scss/components/date-picker/date-picker.scss +2 -1
- package/scss/components/dialog/dialog.scss +10 -4
- package/scss/components/file-uploader/file-uploader.scss +4 -0
- package/scss/components/fluid-form/fluid-form.scss +24 -0
- package/scss/components/fluid-number-input/fluid-number-input.scss +3 -1
- package/scss/components/fluid-password-input/fluid-password-input.scss +1 -1
- package/scss/components/fluid-select/fluid-select.scss +3 -1
- package/scss/components/fluid-text-input/fluid-text-input.scss +3 -1
- package/scss/components/fluid-textarea/fluid-textarea.scss +3 -1
- package/scss/components/modal/modal.scss +28 -0
- package/scss/components/page-header/page-header.scss +2 -0
- package/scss/components/tabs/tabs.scss +121 -1
- package/scss/components/tile/tile.scss +67 -1
- package/telemetry.yml +10 -6
|
@@ -0,0 +1,144 @@
|
|
|
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
|
+
import { LitElement } from 'lit';
|
|
8
|
+
import CDSModalFooter from './modal-footer';
|
|
9
|
+
import '../inline-loading';
|
|
10
|
+
declare const CDSModalBase_base: {
|
|
11
|
+
new (...args: any[]): {
|
|
12
|
+
_handles: Set<import("../../globals/internal/handle").default>;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
disconnectedCallback(): void;
|
|
15
|
+
};
|
|
16
|
+
_hostListeners: {
|
|
17
|
+
[listenerName: string]: {
|
|
18
|
+
[type: string]: {
|
|
19
|
+
options?: boolean | AddEventListenerOptions;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
} & typeof LitElement;
|
|
24
|
+
/**
|
|
25
|
+
* Base class for Modal and Dialog components.
|
|
26
|
+
*/
|
|
27
|
+
export declare class CDSModalBase extends CDSModalBase_base {
|
|
28
|
+
/**
|
|
29
|
+
* The element that had focus before this modal gets open.
|
|
30
|
+
*/
|
|
31
|
+
protected _launcher: Element | null;
|
|
32
|
+
/**
|
|
33
|
+
* The inline loading element that renders when `loading-status` is not `inactive`
|
|
34
|
+
*/
|
|
35
|
+
protected _loadingEl: HTMLElement | null;
|
|
36
|
+
/**
|
|
37
|
+
* Loading statuses that are not `inactive`
|
|
38
|
+
*/
|
|
39
|
+
protected WORKING_LOADING_STATUSES: string[];
|
|
40
|
+
/**
|
|
41
|
+
* Specify the loading status
|
|
42
|
+
*/
|
|
43
|
+
loadingStatus: 'inactive' | 'active' | 'finished' | 'error';
|
|
44
|
+
/**
|
|
45
|
+
* Specify the description for the loading text
|
|
46
|
+
*/
|
|
47
|
+
loadingDescription: string;
|
|
48
|
+
/**
|
|
49
|
+
* Provide a delay for the setTimeout for success
|
|
50
|
+
*/
|
|
51
|
+
loadingSuccessDelay: number;
|
|
52
|
+
/**
|
|
53
|
+
* Specify the description for the loading icon
|
|
54
|
+
*/
|
|
55
|
+
loadingIconDescription: string;
|
|
56
|
+
/**
|
|
57
|
+
* `true` if the modal should be open.
|
|
58
|
+
*/
|
|
59
|
+
open: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Specify whether the Modal is displaying an alert, error or warning.
|
|
62
|
+
* Should go hand in hand with the danger prop.
|
|
63
|
+
*/
|
|
64
|
+
alert: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Prevent closing on click outside of modal
|
|
67
|
+
*/
|
|
68
|
+
preventCloseOnClickOutside: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Prevent the modal from closing after clicking the close button
|
|
71
|
+
*/
|
|
72
|
+
preventClose: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Handles `slotchange` event.
|
|
75
|
+
*/
|
|
76
|
+
protected _handleSlotChange(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Handles `click` event on the modal container.
|
|
79
|
+
*
|
|
80
|
+
* @param event The event.
|
|
81
|
+
*/
|
|
82
|
+
protected _handleClickContainer(event: MouseEvent): void;
|
|
83
|
+
/**
|
|
84
|
+
* Handles user-initiated close request of this modal.
|
|
85
|
+
*
|
|
86
|
+
* @param triggeredBy The element that triggered this close request.
|
|
87
|
+
*/
|
|
88
|
+
protected _handleUserInitiatedClose(triggeredBy: EventTarget | null): void;
|
|
89
|
+
/**
|
|
90
|
+
* Get focusable elements.
|
|
91
|
+
*
|
|
92
|
+
* Querying all tabbable items.
|
|
93
|
+
*
|
|
94
|
+
* @returns {{first: HTMLElement, last: HTMLElement, all: HTMLElement[]}} Returns an object with various elements.
|
|
95
|
+
*/
|
|
96
|
+
protected getFocusable(): {
|
|
97
|
+
first: HTMLElement | undefined;
|
|
98
|
+
last: HTMLElement | undefined;
|
|
99
|
+
all: HTMLElement[];
|
|
100
|
+
};
|
|
101
|
+
protected _getFooterElements(): {
|
|
102
|
+
footer: Element | null;
|
|
103
|
+
primaryButton: HTMLElement | null;
|
|
104
|
+
secondaryButtons: HTMLElement[];
|
|
105
|
+
};
|
|
106
|
+
protected _initializeLoadingEl(footer: CDSModalFooter): HTMLElement | null;
|
|
107
|
+
protected _updateLoadingElement(): void;
|
|
108
|
+
/**
|
|
109
|
+
* @param ms The number of milliseconds.
|
|
110
|
+
* @returns A promise that is resolves after the given milliseconds.
|
|
111
|
+
*/
|
|
112
|
+
protected static _delay(ms?: number): Promise<unknown>;
|
|
113
|
+
/**
|
|
114
|
+
* A selector selecting buttons that should close this modal.
|
|
115
|
+
*/
|
|
116
|
+
static get selectorCloseButton(): string;
|
|
117
|
+
/**
|
|
118
|
+
* A selector selecting tabbable nodes.
|
|
119
|
+
*/
|
|
120
|
+
static get selectorTabbable(): string;
|
|
121
|
+
/**
|
|
122
|
+
* A selector selecting the nodes that should be focused when modal gets open.
|
|
123
|
+
*/
|
|
124
|
+
static get selectorPrimaryFocus(): string;
|
|
125
|
+
/**
|
|
126
|
+
* A selector selecting the modal body component
|
|
127
|
+
*/
|
|
128
|
+
static get selectorModalBody(): string;
|
|
129
|
+
/**
|
|
130
|
+
* The name of the custom event fired before this modal is being closed upon a user gesture.
|
|
131
|
+
* Cancellation of this event stops the user-initiated action of closing this modal.
|
|
132
|
+
*/
|
|
133
|
+
static get eventBeforeClose(): string;
|
|
134
|
+
/**
|
|
135
|
+
* The name of the custom event fired after this modal is closed upon a user gesture.
|
|
136
|
+
*/
|
|
137
|
+
static get eventClose(): string;
|
|
138
|
+
/**
|
|
139
|
+
* The name of the custom event fired when this modal reaches a `finished` loading state
|
|
140
|
+
*/
|
|
141
|
+
static get eventOnLoadingSuccess(): string;
|
|
142
|
+
}
|
|
143
|
+
export default CDSModalBase;
|
|
144
|
+
//# sourceMappingURL=modal-base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal-base.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal-base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAKjC,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,mBAAmB,CAAC;;;;;;;;;;uBAiBtB,CAAA;;;;;AAfL;;GAEG;AACH,qBAAa,YAAa,SAAQ,iBAA6B;IAC7D;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAQ;IAE3C;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAQ;IAEhD;;OAEG;IACH,SAAS,CAAC,wBAAwB,WAAmC;IAErE;;OAEG;IAEH,aAAa,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAc;IAEzE;;OAEG;IAEH,kBAAkB,SAAM;IAExB;;OAEG;IAEH,mBAAmB,SAAQ;IAE3B;;OAEG;IAEH,sBAAsB,SAAa;IAEnC;;OAEG;IAEH,IAAI,UAAS;IAEb;;;OAGG;IAEH,KAAK,UAAS;IAEd;;OAEG;IAEH,0BAA0B,UAAS;IAEnC;;OAEG;IAEH,YAAY,UAAS;IAErB;;OAEG;IACH,SAAS,CAAC,iBAAiB;IAQ3B;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU;IAUjD;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IA6BnE;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,IAAI;QACxB,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;QAC/B,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;QAC9B,GAAG,EAAE,WAAW,EAAE,CAAC;KACpB;IAqBD,SAAS,CAAC,kBAAkB;;;;;IAsB5B,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc;IAiBrD,SAAS,CAAC,qBAAqB;IAmD/B;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAI;IAM9B;;OAEG;IACH,MAAM,KAAK,mBAAmB,WAE7B;IAED;;OAEG;IACH,MAAM,KAAK,gBAAgB,WAE1B;IAED;;OAEG;IACH,MAAM,KAAK,oBAAoB,WAE9B;IAED;;OAEG;IACH,MAAM,KAAK,iBAAiB,WAE3B;IAED;;;OAGG;IACH,MAAM,KAAK,gBAAgB,WAE1B;IAED;;OAEG;IACH,MAAM,KAAK,UAAU,WAEpB;IAED;;OAEG;IACH,MAAM,KAAK,qBAAqB,WAE/B;CACF;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,229 @@
|
|
|
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 { selectorTabbable } from "../../globals/settings.js";
|
|
9
|
+
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
|
|
10
|
+
import HostListenerMixin from "../../globals/mixins/host-listener.js";
|
|
11
|
+
import "../inline-loading/index.js";
|
|
12
|
+
import { LitElement } from "lit";
|
|
13
|
+
import { property } from "lit/decorators.js";
|
|
14
|
+
//#region src/components/modal/modal-base.ts
|
|
15
|
+
/**
|
|
16
|
+
* Copyright IBM Corp. 2026
|
|
17
|
+
*
|
|
18
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
19
|
+
* LICENSE file in the root directory of this source tree.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Base class for Modal and Dialog components.
|
|
23
|
+
*/
|
|
24
|
+
var CDSModalBase = class extends HostListenerMixin(LitElement) {
|
|
25
|
+
constructor(..._args) {
|
|
26
|
+
super(..._args);
|
|
27
|
+
this._launcher = null;
|
|
28
|
+
this._loadingEl = null;
|
|
29
|
+
this.WORKING_LOADING_STATUSES = [
|
|
30
|
+
"active",
|
|
31
|
+
"finished",
|
|
32
|
+
"error"
|
|
33
|
+
];
|
|
34
|
+
this.loadingStatus = "inactive";
|
|
35
|
+
this.loadingDescription = "";
|
|
36
|
+
this.loadingSuccessDelay = 1500;
|
|
37
|
+
this.loadingIconDescription = "Loading";
|
|
38
|
+
this.open = false;
|
|
39
|
+
this.alert = false;
|
|
40
|
+
this.preventCloseOnClickOutside = false;
|
|
41
|
+
this.preventClose = false;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Handles `slotchange` event.
|
|
45
|
+
*/
|
|
46
|
+
_handleSlotChange() {
|
|
47
|
+
if (this.querySelector(`cds-custom-modal-footer`)) this.setAttribute("has-footer", "");
|
|
48
|
+
else this.removeAttribute("has-footer");
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Handles `click` event on the modal container.
|
|
52
|
+
*
|
|
53
|
+
* @param event The event.
|
|
54
|
+
*/
|
|
55
|
+
_handleClickContainer(event) {
|
|
56
|
+
const { selectorCloseButton } = this.constructor;
|
|
57
|
+
if (event.target.matches?.(selectorCloseButton) && !this.preventClose) this._handleUserInitiatedClose(event.target);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Handles user-initiated close request of this modal.
|
|
61
|
+
*
|
|
62
|
+
* @param triggeredBy The element that triggered this close request.
|
|
63
|
+
*/
|
|
64
|
+
_handleUserInitiatedClose(triggeredBy) {
|
|
65
|
+
if (this.open) {
|
|
66
|
+
const init = {
|
|
67
|
+
bubbles: true,
|
|
68
|
+
cancelable: true,
|
|
69
|
+
composed: true,
|
|
70
|
+
detail: { triggeredBy }
|
|
71
|
+
};
|
|
72
|
+
if (this.dispatchEvent(new CustomEvent(this.constructor.eventBeforeClose, init))) {
|
|
73
|
+
this.open = false;
|
|
74
|
+
this.dispatchEvent(new CustomEvent(this.constructor.eventClose, init));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get focusable elements.
|
|
80
|
+
*
|
|
81
|
+
* Querying all tabbable items.
|
|
82
|
+
*
|
|
83
|
+
* @returns {{first: HTMLElement, last: HTMLElement, all: HTMLElement[]}} Returns an object with various elements.
|
|
84
|
+
*/
|
|
85
|
+
getFocusable() {
|
|
86
|
+
const elements = [];
|
|
87
|
+
const tabbableItems = this.querySelectorAll(selectorTabbable);
|
|
88
|
+
if (tabbableItems?.length) elements.push(...tabbableItems);
|
|
89
|
+
const all = elements?.filter((el) => typeof el?.focus === "function");
|
|
90
|
+
return {
|
|
91
|
+
first: all[0],
|
|
92
|
+
last: all[all.length - 1],
|
|
93
|
+
all
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
_getFooterElements() {
|
|
97
|
+
return {
|
|
98
|
+
footer: this.querySelector(`cds-custom-modal-footer`),
|
|
99
|
+
primaryButton: this.querySelector(`cds-custom-modal-footer-button[kind="primary"]`) || this.querySelector(`cds-custom-modal-footer-button[kind="danger"]`) || null,
|
|
100
|
+
secondaryButtons: Array.from(this.querySelectorAll(`cds-custom-modal-footer-button[kind="secondary"]`))
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
_initializeLoadingEl(footer) {
|
|
104
|
+
if (!footer) return null;
|
|
105
|
+
if (!this._loadingEl && this.WORKING_LOADING_STATUSES.includes(this.loadingStatus)) {
|
|
106
|
+
const el = document.createElement(`cds-custom-inline-loading`);
|
|
107
|
+
el.setAttribute("controlled", "");
|
|
108
|
+
el.setAttribute("aria-live", "off");
|
|
109
|
+
footer.appendChild(el);
|
|
110
|
+
this._loadingEl = el;
|
|
111
|
+
}
|
|
112
|
+
return this._loadingEl;
|
|
113
|
+
}
|
|
114
|
+
_updateLoadingElement() {
|
|
115
|
+
const { footer, primaryButton, secondaryButtons } = this._getFooterElements();
|
|
116
|
+
const loader = this._initializeLoadingEl(footer);
|
|
117
|
+
if (!footer || !loader || !primaryButton) return;
|
|
118
|
+
if (this.WORKING_LOADING_STATUSES.includes(this.loadingStatus)) {
|
|
119
|
+
loader.style.display = "inline-flex";
|
|
120
|
+
loader.setAttribute("status", String(this.loadingStatus));
|
|
121
|
+
loader.setAttribute("aria-live", "assertive");
|
|
122
|
+
loader.setAttribute("icon-description", String(this.loadingIconDescription));
|
|
123
|
+
loader.textContent = this.loadingDescription;
|
|
124
|
+
primaryButton.style.display = "none";
|
|
125
|
+
if (secondaryButtons[0]) if (!footer.hasAttribute("has-three-buttons")) secondaryButtons[0].setAttribute("disabled", "");
|
|
126
|
+
else secondaryButtons.forEach((b) => b.removeAttribute("disabled"));
|
|
127
|
+
if (this.loadingStatus === "finished") setTimeout(() => {
|
|
128
|
+
this.dispatchEvent(new CustomEvent(this.constructor.eventOnLoadingSuccess, {
|
|
129
|
+
bubbles: true,
|
|
130
|
+
cancelable: true,
|
|
131
|
+
composed: true
|
|
132
|
+
}));
|
|
133
|
+
}, this.loadingSuccessDelay);
|
|
134
|
+
} else if (this.loadingStatus === "inactive") {
|
|
135
|
+
loader.style.display = "none";
|
|
136
|
+
loader.setAttribute("aria-live", "off");
|
|
137
|
+
if (primaryButton) primaryButton.style.display = "";
|
|
138
|
+
if (secondaryButtons) secondaryButtons.forEach((b) => b.removeAttribute("disabled"));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* @param ms The number of milliseconds.
|
|
143
|
+
* @returns A promise that is resolves after the given milliseconds.
|
|
144
|
+
*/
|
|
145
|
+
static _delay(ms = 0) {
|
|
146
|
+
return new Promise((resolve) => {
|
|
147
|
+
setTimeout(resolve, ms);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* A selector selecting buttons that should close this modal.
|
|
152
|
+
*/
|
|
153
|
+
static get selectorCloseButton() {
|
|
154
|
+
return `[data-modal-close],cds-custom-modal-close-button`;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* A selector selecting tabbable nodes.
|
|
158
|
+
*/
|
|
159
|
+
static get selectorTabbable() {
|
|
160
|
+
return selectorTabbable;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* A selector selecting the nodes that should be focused when modal gets open.
|
|
164
|
+
*/
|
|
165
|
+
static get selectorPrimaryFocus() {
|
|
166
|
+
return `[data-modal-primary-focus],cds-custom-modal-footer cds-custom-button[kind="primary"]`;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* A selector selecting the modal body component
|
|
170
|
+
*/
|
|
171
|
+
static get selectorModalBody() {
|
|
172
|
+
return `cds-custom-modal-body`;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* The name of the custom event fired before this modal is being closed upon a user gesture.
|
|
176
|
+
* Cancellation of this event stops the user-initiated action of closing this modal.
|
|
177
|
+
*/
|
|
178
|
+
static get eventBeforeClose() {
|
|
179
|
+
return `cds-custom-modal-beingclosed`;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* The name of the custom event fired after this modal is closed upon a user gesture.
|
|
183
|
+
*/
|
|
184
|
+
static get eventClose() {
|
|
185
|
+
return `cds-custom-modal-closed`;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* The name of the custom event fired when this modal reaches a `finished` loading state
|
|
189
|
+
*/
|
|
190
|
+
static get eventOnLoadingSuccess() {
|
|
191
|
+
return `cds-custom-modal-on-loadingsuccess`;
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
__decorate([property({
|
|
195
|
+
reflect: true,
|
|
196
|
+
attribute: "loading-status"
|
|
197
|
+
})], CDSModalBase.prototype, "loadingStatus", void 0);
|
|
198
|
+
__decorate([property({
|
|
199
|
+
type: String,
|
|
200
|
+
attribute: "loading-description"
|
|
201
|
+
})], CDSModalBase.prototype, "loadingDescription", void 0);
|
|
202
|
+
__decorate([property({
|
|
203
|
+
type: Number,
|
|
204
|
+
attribute: "loading-success-delay"
|
|
205
|
+
})], CDSModalBase.prototype, "loadingSuccessDelay", void 0);
|
|
206
|
+
__decorate([property({
|
|
207
|
+
type: String,
|
|
208
|
+
attribute: "loading-icon-description"
|
|
209
|
+
})], CDSModalBase.prototype, "loadingIconDescription", void 0);
|
|
210
|
+
__decorate([property({
|
|
211
|
+
type: Boolean,
|
|
212
|
+
reflect: true
|
|
213
|
+
})], CDSModalBase.prototype, "open", void 0);
|
|
214
|
+
__decorate([property({
|
|
215
|
+
type: Boolean,
|
|
216
|
+
reflect: true
|
|
217
|
+
})], CDSModalBase.prototype, "alert", void 0);
|
|
218
|
+
__decorate([property({
|
|
219
|
+
type: Boolean,
|
|
220
|
+
attribute: "prevent-close-on-click-outside"
|
|
221
|
+
})], CDSModalBase.prototype, "preventCloseOnClickOutside", void 0);
|
|
222
|
+
__decorate([property({
|
|
223
|
+
type: Boolean,
|
|
224
|
+
attribute: "prevent-close"
|
|
225
|
+
})], CDSModalBase.prototype, "preventClose", void 0);
|
|
226
|
+
//#endregion
|
|
227
|
+
export { CDSModalBase, CDSModalBase as default };
|
|
228
|
+
|
|
229
|
+
//# sourceMappingURL=modal-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal-base.js","names":[],"sources":["../../../src/components/modal/modal-base.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 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 } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { selectorTabbable } from '../../globals/settings';\nimport CDSModalFooter from './modal-footer';\nimport '../inline-loading';\n\n/**\n * Base class for Modal and Dialog components.\n */\nexport class CDSModalBase extends HostListenerMixin(LitElement) {\n /**\n * The element that had focus before this modal gets open.\n */\n protected _launcher: Element | null = null;\n\n /**\n * The inline loading element that renders when `loading-status` is not `inactive`\n */\n protected _loadingEl: HTMLElement | null = null;\n\n /**\n * Loading statuses that are not `inactive`\n */\n protected WORKING_LOADING_STATUSES = ['active', 'finished', 'error'];\n\n /**\n * Specify the loading status\n */\n @property({ reflect: true, attribute: 'loading-status' })\n loadingStatus: 'inactive' | 'active' | 'finished' | 'error' = 'inactive';\n\n /**\n * Specify the description for the loading text\n */\n @property({ type: String, attribute: 'loading-description' })\n loadingDescription = '';\n\n /**\n * Provide a delay for the setTimeout for success\n */\n @property({ type: Number, attribute: 'loading-success-delay' })\n loadingSuccessDelay = 1500;\n\n /**\n * Specify the description for the loading icon\n */\n @property({ type: String, attribute: 'loading-icon-description' })\n loadingIconDescription = 'Loading';\n\n /**\n * `true` if the modal should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Specify whether the Modal is displaying an alert, error or warning.\n * Should go hand in hand with the danger prop.\n */\n @property({ type: Boolean, reflect: true })\n alert = false;\n\n /**\n * Prevent closing on click outside of modal\n */\n @property({ type: Boolean, attribute: 'prevent-close-on-click-outside' })\n preventCloseOnClickOutside = false;\n\n /**\n * Prevent the modal from closing after clicking the close button\n */\n @property({ type: Boolean, attribute: 'prevent-close' })\n preventClose = false;\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange() {\n if (this.querySelector(`${prefix}-modal-footer`)) {\n this.setAttribute('has-footer', '');\n } else {\n this.removeAttribute('has-footer');\n }\n }\n\n /**\n * Handles `click` event on the modal container.\n *\n * @param event The event.\n */\n protected _handleClickContainer(event: MouseEvent) {\n const { selectorCloseButton } = this.constructor as typeof CDSModalBase;\n if (\n (event.target as Element).matches?.(selectorCloseButton) &&\n !this.preventClose\n ) {\n this._handleUserInitiatedClose(event.target);\n }\n }\n\n /**\n * Handles user-initiated close request of this modal.\n *\n * @param triggeredBy The element that triggered this close request.\n */\n protected _handleUserInitiatedClose(triggeredBy: EventTarget | null) {\n if (this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSModalBase).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSModalBase).eventClose,\n init\n )\n );\n }\n }\n }\n\n /**\n * Get focusable elements.\n *\n * Querying all tabbable items.\n *\n * @returns {{first: HTMLElement, last: HTMLElement, all: HTMLElement[]}} Returns an object with various elements.\n */\n protected getFocusable(): {\n first: HTMLElement | undefined;\n last: HTMLElement | undefined;\n all: HTMLElement[];\n } {\n const elements: HTMLElement[] = [];\n\n // Add tabbable elements inside light DOM\n const tabbableItems = this.querySelectorAll<HTMLElement>(selectorTabbable);\n if (tabbableItems?.length) {\n elements.push(...tabbableItems);\n }\n\n // Flatten NodeList arrays and filter for focusable items\n const all = elements?.filter(\n (el): el is HTMLElement => typeof el?.focus === 'function'\n );\n\n return {\n first: all[0],\n last: all[all.length - 1],\n all,\n };\n }\n\n protected _getFooterElements() {\n const footer = this.querySelector(`${prefix}-modal-footer`);\n\n const primaryButton =\n this.querySelector<HTMLElement>(\n `${prefix}-modal-footer-button[kind=\"primary\"]`\n ) ||\n this.querySelector<HTMLElement>(\n `${prefix}-modal-footer-button[kind=\"danger\"]`\n ) ||\n null;\n\n const secondaryButtons = Array.from(\n this.querySelectorAll<HTMLElement>(\n `${prefix}-modal-footer-button[kind=\"secondary\"]`\n )\n );\n\n return { footer, primaryButton, secondaryButtons };\n }\n\n // Initializes the inline-loading element\n protected _initializeLoadingEl(footer: CDSModalFooter) {\n if (!footer) return null;\n\n if (\n !this._loadingEl &&\n this.WORKING_LOADING_STATUSES.includes(this.loadingStatus)\n ) {\n const el = document.createElement(`${prefix}-inline-loading`);\n el.setAttribute('controlled', '');\n el.setAttribute('aria-live', 'off');\n footer.appendChild(el);\n this._loadingEl = el as HTMLElement;\n }\n return this._loadingEl;\n }\n\n // Updates the inline loading element in the modal footer\n protected _updateLoadingElement() {\n const { footer, primaryButton, secondaryButtons } =\n this._getFooterElements();\n\n const loader = this._initializeLoadingEl(footer as CDSModalFooter);\n if (!footer || !loader || !primaryButton) return;\n\n if (this.WORKING_LOADING_STATUSES.includes(this.loadingStatus)) {\n loader.style.display = 'inline-flex';\n loader.setAttribute('status', String(this.loadingStatus));\n loader.setAttribute('aria-live', 'assertive');\n loader.setAttribute(\n 'icon-description',\n String(this.loadingIconDescription)\n );\n loader.textContent = this.loadingDescription;\n primaryButton.style.display = 'none';\n\n if (secondaryButtons[0]) {\n if (!footer.hasAttribute('has-three-buttons')) {\n secondaryButtons[0].setAttribute('disabled', '');\n } else {\n secondaryButtons.forEach((b) => b.removeAttribute('disabled'));\n }\n }\n\n if (this.loadingStatus === 'finished') {\n // fire event for successful load\n setTimeout(() => {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSModalBase).eventOnLoadingSuccess,\n {\n bubbles: true,\n cancelable: true,\n composed: true,\n }\n )\n );\n }, this.loadingSuccessDelay);\n }\n } else if (this.loadingStatus === 'inactive') {\n loader.style.display = 'none';\n loader.setAttribute('aria-live', 'off');\n\n if (primaryButton) primaryButton.style.display = '';\n if (secondaryButtons)\n secondaryButtons.forEach((b) => b.removeAttribute('disabled'));\n }\n }\n\n /**\n * @param ms The number of milliseconds.\n * @returns A promise that is resolves after the given milliseconds.\n */\n protected static _delay(ms = 0) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n }\n\n /**\n * A selector selecting buttons that should close this modal.\n */\n static get selectorCloseButton() {\n return `[data-modal-close],${prefix}-modal-close-button`;\n }\n\n /**\n * A selector selecting tabbable nodes.\n */\n static get selectorTabbable() {\n return selectorTabbable;\n }\n\n /**\n * A selector selecting the nodes that should be focused when modal gets open.\n */\n static get selectorPrimaryFocus() {\n return `[data-modal-primary-focus],${prefix}-modal-footer ${prefix}-button[kind=\"primary\"]`;\n }\n\n /**\n * A selector selecting the modal body component\n */\n static get selectorModalBody() {\n return `${prefix}-modal-body`;\n }\n\n /**\n * The name of the custom event fired before this modal is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this modal.\n */\n static get eventBeforeClose() {\n return `${prefix}-modal-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this modal is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-modal-closed`;\n }\n\n /**\n * The name of the custom event fired when this modal reaches a `finished` loading state\n */\n static get eventOnLoadingSuccess() {\n return `${prefix}-modal-on-loadingsuccess`;\n }\n}\n\nexport default CDSModalBase;\n"],"mappings":"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"}
|
|
@@ -4,24 +4,10 @@
|
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import { LitElement } from 'lit';
|
|
8
7
|
import { MODAL_SIZE } from './defs';
|
|
9
|
-
import '
|
|
8
|
+
import CDSModalBase from './modal-base';
|
|
9
|
+
import '../dialog/dialog';
|
|
10
10
|
export { MODAL_SIZE };
|
|
11
|
-
declare const CDSModal_base: {
|
|
12
|
-
new (...args: any[]): {
|
|
13
|
-
_handles: Set<import("../../globals/internal/handle").default>;
|
|
14
|
-
connectedCallback(): void;
|
|
15
|
-
disconnectedCallback(): void;
|
|
16
|
-
};
|
|
17
|
-
_hostListeners: {
|
|
18
|
-
[listenerName: string]: {
|
|
19
|
-
[type: string]: {
|
|
20
|
-
options?: boolean | AddEventListenerOptions;
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
} & typeof LitElement;
|
|
25
11
|
/**
|
|
26
12
|
* Modal.
|
|
27
13
|
*
|
|
@@ -32,15 +18,11 @@ declare const CDSModal_base: {
|
|
|
32
18
|
* Cancellation of this event stops the user-initiated action of closing this modal.
|
|
33
19
|
* @fires cds-custom-modal-closed - The custom event fired after this modal is closed upon a user gesture.
|
|
34
20
|
*/
|
|
35
|
-
declare class CDSModal extends
|
|
21
|
+
declare class CDSModal extends CDSModalBase {
|
|
36
22
|
/**
|
|
37
|
-
*
|
|
23
|
+
* Enable the use of native dialog element instead of div with role="dialog"
|
|
38
24
|
*/
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* The inline loading element that renders when `loading-status` is not `inactive`
|
|
42
|
-
*/
|
|
43
|
-
private _loadingEl;
|
|
25
|
+
enableDialogElement: boolean;
|
|
44
26
|
/**
|
|
45
27
|
* MutationObserver that observes the modal-footer
|
|
46
28
|
*/
|
|
@@ -49,16 +31,13 @@ declare class CDSModal extends CDSModal_base {
|
|
|
49
31
|
* MutationObserver that observes the modal-header
|
|
50
32
|
*/
|
|
51
33
|
private _headerObserver?;
|
|
52
|
-
/**
|
|
53
|
-
* Loading statuses that are not `inactive`
|
|
54
|
-
*/
|
|
55
|
-
private WORKING_LOADING_STATUSES;
|
|
56
34
|
/**
|
|
57
35
|
* Handles `click` event on this element.
|
|
58
36
|
*
|
|
59
37
|
* @param event The event.
|
|
60
38
|
*/
|
|
61
39
|
protected _handleClick: (event: MouseEvent) => void;
|
|
40
|
+
protected _handleKeydown: ({ key, target }: KeyboardEvent) => void;
|
|
62
41
|
/**
|
|
63
42
|
* Handle the keydown event.
|
|
64
43
|
* Trap the focus inside the side-panel by tracking keydown.key == `Tab`
|
|
@@ -66,35 +45,21 @@ declare class CDSModal extends CDSModal_base {
|
|
|
66
45
|
* @param {KeyboardEvent} event The keyboard event object.
|
|
67
46
|
*/
|
|
68
47
|
protected _handleHostKeydown: (event: KeyboardEvent) => void;
|
|
69
|
-
protected _handleKeydown: ({ key, target }: KeyboardEvent) => void;
|
|
70
48
|
/**
|
|
71
|
-
*
|
|
49
|
+
* `enable-dialog-element`
|
|
72
50
|
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
51
|
+
* Handles `cds-custom-dialog-closed` event from the nested dialog element.
|
|
52
|
+
* Syncs the open state when the dialog closes, and stops the propagation of the
|
|
53
|
+
* event in favour of `cds-custom-modal-closed`
|
|
76
54
|
*/
|
|
77
|
-
protected
|
|
78
|
-
first: HTMLElement | undefined;
|
|
79
|
-
last: HTMLElement | undefined;
|
|
80
|
-
all: HTMLElement[];
|
|
81
|
-
};
|
|
55
|
+
protected _handleDialogClosed: (event: CustomEvent) => void;
|
|
82
56
|
/**
|
|
83
|
-
*
|
|
57
|
+
* `enable-dialog-element`
|
|
84
58
|
*
|
|
85
|
-
*
|
|
59
|
+
* Handles `cds-custom-dialog-beingclosed` event from the nested dialog element.
|
|
60
|
+
* Stops the propagation of the event in favour of `cds-custom-modal-beingclosed`
|
|
86
61
|
*/
|
|
87
|
-
protected
|
|
88
|
-
/**
|
|
89
|
-
* Handles user-initiated close request of this modal.
|
|
90
|
-
*
|
|
91
|
-
* @param triggeredBy The element that triggered this close request.
|
|
92
|
-
*/
|
|
93
|
-
protected _handleUserInitiatedClose(triggeredBy: EventTarget | null): void;
|
|
94
|
-
/**
|
|
95
|
-
* Handles `slotchange` event.
|
|
96
|
-
*/
|
|
97
|
-
protected _handleSlotChange(): void;
|
|
62
|
+
protected _handleDialogBeingClosed: (event: CustomEvent) => void;
|
|
98
63
|
/**
|
|
99
64
|
* Specify whether the Modal is displaying an alert, error or warning.
|
|
100
65
|
* Should go hand in hand with the danger prop.
|
|
@@ -124,41 +89,10 @@ declare class CDSModal extends CDSModal_base {
|
|
|
124
89
|
* Modal size.
|
|
125
90
|
*/
|
|
126
91
|
size: MODAL_SIZE;
|
|
127
|
-
/**
|
|
128
|
-
* Prevent closing on click outside of modal
|
|
129
|
-
*/
|
|
130
|
-
preventCloseOnClickOutside: boolean;
|
|
131
|
-
/**
|
|
132
|
-
* Specify the loading status
|
|
133
|
-
*/
|
|
134
|
-
loadingStatus: 'inactive' | 'active' | 'finished' | 'error';
|
|
135
|
-
/**
|
|
136
|
-
* Specify the description for the loading text
|
|
137
|
-
*/
|
|
138
|
-
loadingDescription: string;
|
|
139
|
-
/**
|
|
140
|
-
* Provide a delay for the setTimeout for success
|
|
141
|
-
*/
|
|
142
|
-
loadingSuccessDelay: number;
|
|
143
|
-
/**
|
|
144
|
-
* Specify the description for the loading icon
|
|
145
|
-
*/
|
|
146
|
-
loadingIconDescription: string;
|
|
147
92
|
/**
|
|
148
93
|
* Specify if Enter key should be used as "submit" action that clicks the primary footer button
|
|
149
94
|
*/
|
|
150
95
|
shouldSubmitOnEnter: boolean;
|
|
151
|
-
/**
|
|
152
|
-
* Prevent the modal from closing after clicking the close button
|
|
153
|
-
*/
|
|
154
|
-
preventClose: boolean;
|
|
155
|
-
private _initializeLoadingEl;
|
|
156
|
-
protected _getFooterElements(): {
|
|
157
|
-
footer: Element | null;
|
|
158
|
-
primaryButton: HTMLElement | null;
|
|
159
|
-
secondaryButtons: HTMLElement[];
|
|
160
|
-
};
|
|
161
|
-
private _updateLoadingElement;
|
|
162
96
|
firstUpdated(): Promise<void>;
|
|
163
97
|
/**
|
|
164
98
|
* Computes the aria-label of the modal based on (in order of highest to lowest precedence):
|
|
@@ -192,10 +126,6 @@ declare class CDSModal extends CDSModal_base {
|
|
|
192
126
|
* A selector selecting buttons that should close this modal.
|
|
193
127
|
*/
|
|
194
128
|
static get selectorCloseButton(): string;
|
|
195
|
-
/**
|
|
196
|
-
* A selector selecting tabbable nodes.
|
|
197
|
-
*/
|
|
198
|
-
static get selectorTabbable(): string;
|
|
199
129
|
/**
|
|
200
130
|
* A selector selecting the nodes that should be focused when modal gets open.
|
|
201
131
|
*/
|
|
@@ -213,10 +143,6 @@ declare class CDSModal extends CDSModal_base {
|
|
|
213
143
|
* The name of the custom event fired after this modal is closed upon a user gesture.
|
|
214
144
|
*/
|
|
215
145
|
static get eventClose(): string;
|
|
216
|
-
/**
|
|
217
|
-
* The name of the custom event fired when this modal reaches a `finished` loading state
|
|
218
|
-
*/
|
|
219
|
-
static get eventOnLoadingSuccess(): string;
|
|
220
146
|
static styles: any;
|
|
221
147
|
}
|
|
222
148
|
export default CDSModal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGpC,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;;;;;;GASG;AACH,cACM,QAAS,SAAQ,YAAY;IACjC;;OAEG;IAMH,mBAAmB,UAAS;IAE5B;;OAEG;IACH,OAAO,CAAC,eAAe,CAAC,CAAmB;IAE3C;;OAEG;IACH,OAAO,CAAC,eAAe,CAAC,CAAmB;IAE3C;;;;OAIG;IAIH,SAAS,CAAC,YAAY,GAAI,OAAO,UAAU,UAQzC;IAKF,SAAS,CAAC,cAAc,GAAI,iBAAiB,aAAa,UAOxD;IAEF;;;;;OAKG;IAEH,SAAS,CAAC,kBAAkB,GAAI,OAAO,aAAa,UA2ClD;IAEF;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,GAAI,OAAO,WAAW,UAcjD;IAEF;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,GAAI,OAAO,WAAW,UAiBtD;IAEF;;;OAGG;IAEH,KAAK,UAAS;IAEd;;OAEG;IAEH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IAEH,cAAc,SAAM;IAEpB;;OAEG;IAEH,SAAS,UAAS;IAElB;;OAEG;IAMH,mBAAmB,UAAS;IAE5B;;OAEG;IAEH,IAAI,UAAS;IAEb;;OAEG;IAEH,IAAI,aAAqB;IAEzB;;OAEG;IAMH,mBAAmB,UAAS;IAEtB,YAAY;IAalB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IActB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IActB,iBAAiB;IAMjB,oBAAoB;IAMpB,MAAM;IAmDA,OAAO,CAAC,iBAAiB,KAAA;IAiD/B;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAI;IAM9B;;OAEG;IACH,MAAM,KAAK,mBAAmB,WAE7B;IAED;;OAEG;IACH,MAAM,KAAK,oBAAoB,WAE9B;IAED;;OAEG;IACH,MAAM,KAAK,iBAAiB,WAE3B;IAED;;;OAGG;IACH,MAAM,KAAK,gBAAgB,WAE1B;IAED;;OAEG;IACH,MAAM,KAAK,UAAU,WAEpB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,QAAQ,CAAC"}
|