@six-group/ui-library 3.0.0-beta.1.7 → 3.0.0-beta.1.8
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/dist/cjs/{event-listeners-4a8d66d5.js → event-listeners-74715e62.js} +38 -38
- package/dist/cjs/{execution-control-3bc9c7c4.js → execution-control-46f388e0.js} +35 -35
- package/dist/cjs/{focus-visible-b08d956f.js → focus-visible-0b352c74.js} +40 -40
- package/dist/cjs/{form-control-9e4dffd1.js → form-control-866bbece.js} +25 -25
- package/dist/cjs/{modal-a9679ddf.js → modal-48d42228.js} +41 -41
- package/dist/cjs/{popover-e3781f5a.js → popover-1d2a037c.js} +95 -95
- package/dist/cjs/{scroll-5b8676ba.js → scroll-76e6f5d7.js} +57 -57
- package/dist/cjs/set-attributes_2.cjs.entry.js +57 -57
- package/dist/cjs/six-alert.cjs.entry.js +131 -131
- package/dist/cjs/six-avatar.cjs.entry.js +28 -28
- package/dist/cjs/six-badge.cjs.entry.js +26 -26
- package/dist/cjs/six-button.cjs.entry.js +97 -97
- package/dist/cjs/six-card.cjs.entry.js +8 -8
- package/dist/cjs/six-checkbox.cjs.entry.js +152 -152
- package/dist/cjs/six-datepicker.cjs.entry.js +1189 -1189
- package/dist/cjs/six-details.cjs.entry.js +139 -139
- package/dist/cjs/six-dialog.cjs.entry.js +152 -152
- package/dist/cjs/six-drawer.cjs.entry.js +174 -174
- package/dist/cjs/six-dropdown_3.cjs.entry.js +728 -728
- package/dist/cjs/six-error-page.cjs.entry.js +94 -94
- package/dist/cjs/six-file-list-item.cjs.entry.js +38 -38
- package/dist/cjs/six-file-list.cjs.entry.js +8 -8
- package/dist/cjs/six-file-upload.cjs.entry.js +96 -96
- package/dist/cjs/six-footer.cjs.entry.js +8 -8
- package/dist/cjs/six-form.cjs.entry.js +219 -219
- package/dist/cjs/six-group-label.cjs.entry.js +46 -46
- package/dist/cjs/six-header.cjs.entry.js +149 -149
- package/dist/cjs/six-icon-button.cjs.entry.js +33 -33
- package/dist/cjs/six-icon.cjs.entry.js +24 -24
- package/dist/cjs/six-input.cjs.entry.js +230 -230
- package/dist/cjs/six-item-picker.cjs.entry.js +361 -361
- package/dist/cjs/six-language-switcher.cjs.entry.js +52 -52
- package/dist/cjs/six-layout-grid.cjs.entry.js +19 -19
- package/dist/cjs/six-main-container.cjs.entry.js +11 -11
- package/dist/cjs/six-menu-divider.cjs.entry.js +8 -8
- package/dist/cjs/six-menu-label.cjs.entry.js +8 -8
- package/dist/cjs/six-picto.cjs.entry.js +15 -15
- package/dist/cjs/six-progress-bar.cjs.entry.js +17 -17
- package/dist/cjs/six-progress-ring.cjs.entry.js +31 -31
- package/dist/cjs/six-radio.cjs.entry.js +121 -121
- package/dist/cjs/six-range.cjs.entry.js +198 -198
- package/dist/cjs/six-root.cjs.entry.js +34 -34
- package/dist/cjs/six-search-field.cjs.entry.js +43 -43
- package/dist/cjs/six-select.cjs.entry.js +447 -447
- package/dist/cjs/six-sidebar-item-group.cjs.entry.js +42 -42
- package/dist/cjs/six-sidebar-item.cjs.entry.js +18 -18
- package/dist/cjs/six-sidebar.cjs.entry.js +171 -171
- package/dist/cjs/six-spinner.cjs.entry.js +16 -16
- package/dist/cjs/six-switch.cjs.entry.js +100 -100
- package/dist/cjs/six-tab-group.cjs.entry.js +226 -226
- package/dist/cjs/six-tab-panel.cjs.entry.js +17 -17
- package/dist/cjs/six-tab.cjs.entry.js +42 -42
- package/dist/cjs/six-table-cell_4.cjs.entry.js +70 -70
- package/dist/cjs/six-table.cjs.entry.js +145 -145
- package/dist/cjs/six-tag.cjs.entry.js +40 -40
- package/dist/cjs/six-textarea.cjs.entry.js +211 -211
- package/dist/cjs/six-tile.cjs.entry.js +89 -89
- package/dist/cjs/six-timepicker.cjs.entry.js +489 -489
- package/dist/cjs/{six-timepicker.types-c58cc88b.js → six-timepicker.types-c19ebff3.js} +43 -43
- package/dist/cjs/six-tooltip.cjs.entry.js +172 -172
- package/dist/cjs/{slot-8abe833c.js → slot-ad537f24.js} +42 -42
- package/dist/cjs/{types-65e5c95b.js → types-581e8ff0.js} +12 -12
- package/dist/cjs/{types-0c28e484.js → types-64878648.js} +12 -12
- package/dist/collection/components/six-alert/six-alert.js +366 -366
- package/dist/collection/components/six-avatar/six-avatar.js +131 -131
- package/dist/collection/components/six-badge/six-badge.js +101 -101
- package/dist/collection/components/six-button/six-button.js +466 -466
- package/dist/collection/components/six-card/six-card.js +21 -21
- package/dist/collection/components/six-checkbox/six-checkbox.js +550 -550
- package/dist/collection/components/six-datepicker/components/day-selection.js +13 -13
- package/dist/collection/components/six-datepicker/components/month-selection.js +12 -12
- package/dist/collection/components/six-datepicker/components/year-selection.js +10 -10
- package/dist/collection/components/six-datepicker/six-date-formats.js +23 -23
- package/dist/collection/components/six-datepicker/six-datepicker.js +1343 -1343
- package/dist/collection/components/six-datepicker/test/six-datepicker.test-helpers.js +16 -16
- package/dist/collection/components/six-details/six-details.js +432 -432
- package/dist/collection/components/six-dialog/six-dialog.js +401 -401
- package/dist/collection/components/six-drawer/six-drawer.js +458 -458
- package/dist/collection/components/six-dropdown/six-dropdown.js +939 -939
- package/dist/collection/components/six-error-page/six-error-page.js +199 -199
- package/dist/collection/components/six-file-list/six-file-list.js +20 -20
- package/dist/collection/components/six-file-list-item/six-file-list-item.js +203 -203
- package/dist/collection/components/six-file-upload/six-file-upload.js +272 -272
- package/dist/collection/components/six-footer/six-footer.js +21 -21
- package/dist/collection/components/six-form/six-form.js +408 -408
- package/dist/collection/components/six-group-label/six-group-label.js +166 -166
- package/dist/collection/components/six-header/six-header.js +420 -420
- package/dist/collection/components/six-icon/six-icon.js +77 -77
- package/dist/collection/components/six-icon-button/six-icon-button.js +142 -142
- package/dist/collection/components/six-input/six-input.js +1141 -1141
- package/dist/collection/components/six-item-picker/six-item-picker.js +688 -688
- package/dist/collection/components/six-item-picker/types.js +13 -13
- package/dist/collection/components/six-language-switcher/six-language-switcher.js +128 -128
- package/dist/collection/components/six-layout-grid/six-layout-grid.js +52 -52
- package/dist/collection/components/six-main-container/six-main-container.js +53 -53
- package/dist/collection/components/six-menu/six-menu.js +406 -406
- package/dist/collection/components/six-menu-divider/six-menu-divider.js +22 -22
- package/dist/collection/components/six-menu-item/six-menu-item.js +177 -177
- package/dist/collection/components/six-menu-label/six-menu-label.js +25 -25
- package/dist/collection/components/six-picto/six-picto.js +50 -50
- package/dist/collection/components/six-progress-bar/six-progress-bar.js +77 -77
- package/dist/collection/components/six-progress-ring/six-progress-ring.js +111 -111
- package/dist/collection/components/six-radio/six-radio.js +410 -410
- package/dist/collection/components/six-range/six-range.js +620 -620
- package/dist/collection/components/six-root/six-root.js +167 -167
- package/dist/collection/components/six-search-field/six-search-field.js +171 -171
- package/dist/collection/components/six-select/six-select.js +1105 -1105
- package/dist/collection/components/six-sidebar/six-sidebar.js +455 -455
- package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +89 -89
- package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js +158 -158
- package/dist/collection/components/six-spinner/six-spinner.js +55 -55
- package/dist/collection/components/six-stage-indicator/six-stage-indicator.js +46 -46
- package/dist/collection/components/six-switch/six-switch.js +393 -393
- package/dist/collection/components/six-tab/six-tab.js +198 -198
- package/dist/collection/components/six-tab-group/six-tab-group.js +362 -362
- package/dist/collection/components/six-tab-panel/six-tab-panel.js +75 -75
- package/dist/collection/components/six-table/six-table.js +209 -209
- package/dist/collection/components/six-table/test/helpers.js +13 -13
- package/dist/collection/components/six-table/types.js +8 -8
- package/dist/collection/components/six-table/util/filter-by.js +34 -34
- package/dist/collection/components/six-table/util/from-data.js +33 -33
- package/dist/collection/components/six-table/util/is.js +3 -3
- package/dist/collection/components/six-table/util/quick-filter-by.js +13 -13
- package/dist/collection/components/six-table/util/sort-by.js +25 -25
- package/dist/collection/components/six-table-cell/six-table-cell.js +21 -21
- package/dist/collection/components/six-table-header/six-table-header.js +21 -21
- package/dist/collection/components/six-table-header-cell/get-next-state.js +7 -7
- package/dist/collection/components/six-table-header-cell/icons.js +12 -12
- package/dist/collection/components/six-table-header-cell/six-table-header-cell.js +174 -174
- package/dist/collection/components/six-table-header-cell/types.js +13 -13
- package/dist/collection/components/six-table-header-cell/util/create-model.js +6 -6
- package/dist/collection/components/six-table-header-cell/util/get-next-state.js +7 -7
- package/dist/collection/components/six-table-row/six-table-row.js +21 -21
- package/dist/collection/components/six-tag/six-tag.js +157 -157
- package/dist/collection/components/six-textarea/six-textarea.js +912 -912
- package/dist/collection/components/six-tile/six-tile.js +315 -315
- package/dist/collection/components/six-timepicker/six-time-format.js +14 -14
- package/dist/collection/components/six-timepicker/six-timepicker.js +980 -980
- package/dist/collection/components/six-timepicker/six-timepicker.types.js +40 -40
- package/dist/collection/components/six-tooltip/six-tooltip.js +435 -435
- package/dist/collection/functional-components/form-control/form-control.js +28 -28
- package/dist/collection/index.js +1 -1
- package/dist/collection/testUtil/delay.js +3 -3
- package/dist/collection/utils/as-array.js +1 -1
- package/dist/collection/utils/date-util.js +712 -712
- package/dist/collection/utils/event-listeners.js +39 -39
- package/dist/collection/utils/execution-control.js +38 -38
- package/dist/collection/utils/focus-visible.js +41 -41
- package/dist/collection/utils/matchers.js +2 -2
- package/dist/collection/utils/modal.js +28 -28
- package/dist/collection/utils/offset.js +13 -13
- package/dist/collection/utils/popover.js +113 -113
- package/dist/collection/utils/scroll.js +47 -47
- package/dist/collection/utils/slot.js +59 -59
- package/dist/collection/utils/support.js +15 -15
- package/dist/collection/utils/tabbable.js +22 -22
- package/dist/collection/utils/testing.js +38 -38
- package/dist/collection/utils/time.util.js +74 -74
- package/dist/collection/utils/type-check.js +5 -5
- package/dist/collection/utils/types.js +1 -1
- package/dist/collection/wrappers/set-attributes/set-attributes.js +68 -68
- package/dist/components.json +1 -1
- package/dist/custom-elements/index.js +7595 -7595
- package/dist/esm/{event-listeners-1bef934e.js → event-listeners-570a24ea.js} +38 -38
- package/dist/esm/{execution-control-235f5126.js → execution-control-1a60d709.js} +35 -35
- package/dist/esm/{focus-visible-4b7946aa.js → focus-visible-97933ea9.js} +40 -40
- package/dist/esm/{form-control-17478ad2.js → form-control-24f446af.js} +25 -25
- package/dist/esm/{modal-e5709f6b.js → modal-5ebdc320.js} +41 -41
- package/dist/esm/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- package/dist/esm/{popover-5a51f84d.js → popover-1c7a1139.js} +95 -95
- package/dist/esm/{scroll-99b214c2.js → scroll-180b53fd.js} +57 -57
- package/dist/esm/set-attributes_2.entry.js +57 -57
- package/dist/esm/six-alert.entry.js +131 -131
- package/dist/esm/six-avatar.entry.js +28 -28
- package/dist/esm/six-badge.entry.js +26 -26
- package/dist/esm/six-button.entry.js +97 -97
- package/dist/esm/six-card.entry.js +8 -8
- package/dist/esm/six-checkbox.entry.js +152 -152
- package/dist/esm/six-datepicker.entry.js +1189 -1189
- package/dist/esm/six-details.entry.js +139 -139
- package/dist/esm/six-dialog.entry.js +152 -152
- package/dist/esm/six-drawer.entry.js +174 -174
- package/dist/esm/six-dropdown_3.entry.js +728 -728
- package/dist/esm/six-error-page.entry.js +94 -94
- package/dist/esm/six-file-list-item.entry.js +38 -38
- package/dist/esm/six-file-list.entry.js +8 -8
- package/dist/esm/six-file-upload.entry.js +96 -96
- package/dist/esm/six-footer.entry.js +8 -8
- package/dist/esm/six-form.entry.js +219 -219
- package/dist/esm/six-group-label.entry.js +46 -46
- package/dist/esm/six-header.entry.js +149 -149
- package/dist/esm/six-icon-button.entry.js +33 -33
- package/dist/esm/six-icon.entry.js +24 -24
- package/dist/esm/six-input.entry.js +230 -230
- package/dist/esm/six-item-picker.entry.js +361 -361
- package/dist/esm/six-language-switcher.entry.js +52 -52
- package/dist/esm/six-layout-grid.entry.js +19 -19
- package/dist/esm/six-main-container.entry.js +11 -11
- package/dist/esm/six-menu-divider.entry.js +8 -8
- package/dist/esm/six-menu-label.entry.js +8 -8
- package/dist/esm/six-picto.entry.js +15 -15
- package/dist/esm/six-progress-bar.entry.js +17 -17
- package/dist/esm/six-progress-ring.entry.js +31 -31
- package/dist/esm/six-radio.entry.js +121 -121
- package/dist/esm/six-range.entry.js +198 -198
- package/dist/esm/six-root.entry.js +34 -34
- package/dist/esm/six-search-field.entry.js +43 -43
- package/dist/esm/six-select.entry.js +447 -447
- package/dist/esm/six-sidebar-item-group.entry.js +42 -42
- package/dist/esm/six-sidebar-item.entry.js +18 -18
- package/dist/esm/six-sidebar.entry.js +171 -171
- package/dist/esm/six-spinner.entry.js +16 -16
- package/dist/esm/six-switch.entry.js +100 -100
- package/dist/esm/six-tab-group.entry.js +226 -226
- package/dist/esm/six-tab-panel.entry.js +17 -17
- package/dist/esm/six-tab.entry.js +42 -42
- package/dist/esm/six-table-cell_4.entry.js +70 -70
- package/dist/esm/six-table.entry.js +145 -145
- package/dist/esm/six-tag.entry.js +40 -40
- package/dist/esm/six-textarea.entry.js +211 -211
- package/dist/esm/six-tile.entry.js +89 -89
- package/dist/esm/six-timepicker.entry.js +489 -489
- package/dist/esm/{six-timepicker.types-cd6bac03.js → six-timepicker.types-e161a447.js} +43 -43
- package/dist/esm/six-tooltip.entry.js +172 -172
- package/dist/esm/{slot-5253e199.js → slot-6f3984c7.js} +42 -42
- package/dist/esm/{types-a37c1695.js → types-4b10b413.js} +12 -12
- package/dist/esm/{types-33d15673.js → types-ed860f7c.js} +12 -12
- package/dist/types/components/six-alert/six-alert.d.ts +60 -60
- package/dist/types/components/six-avatar/six-avatar.d.ts +27 -27
- package/dist/types/components/six-badge/six-badge.d.ts +20 -20
- package/dist/types/components/six-button/six-button.d.ts +69 -69
- package/dist/types/components/six-card/six-card.d.ts +9 -9
- package/dist/types/components/six-checkbox/six-checkbox.d.ts +86 -86
- package/dist/types/components/six-datepicker/components/day-selection.d.ts +5 -5
- package/dist/types/components/six-datepicker/components/month-selection.d.ts +5 -5
- package/dist/types/components/six-datepicker/components/year-selection.d.ts +5 -5
- package/dist/types/components/six-datepicker/six-date-formats.d.ts +22 -22
- package/dist/types/components/six-datepicker/six-datepicker.d.ts +214 -214
- package/dist/types/components/six-datepicker/test/six-datepicker.test-helpers.d.ts +1 -1
- package/dist/types/components/six-details/six-details.d.ts +61 -61
- package/dist/types/components/six-dialog/six-dialog.d.ts +75 -75
- package/dist/types/components/six-drawer/six-drawer.d.ts +82 -82
- package/dist/types/components/six-dropdown/six-dropdown.d.ts +140 -140
- package/dist/types/components/six-error-page/six-error-page.d.ts +27 -27
- package/dist/types/components/six-file-list/six-file-list.d.ts +8 -8
- package/dist/types/components/six-file-list-item/six-file-list-item.d.ts +35 -35
- package/dist/types/components/six-file-upload/six-file-upload.d.ts +42 -42
- package/dist/types/components/six-footer/six-footer.d.ts +9 -9
- package/dist/types/components/six-form/six-form.d.ts +69 -69
- package/dist/types/components/six-group-label/six-group-label.d.ts +37 -37
- package/dist/types/components/six-header/six-header.d.ts +90 -90
- package/dist/types/components/six-icon/six-icon.d.ts +13 -13
- package/dist/types/components/six-icon-button/six-icon-button.d.ts +28 -28
- package/dist/types/components/six-input/six-input.d.ts +165 -165
- package/dist/types/components/six-item-picker/six-item-picker.d.ts +106 -106
- package/dist/types/components/six-item-picker/types.d.ts +11 -11
- package/dist/types/components/six-language-switcher/six-language-switcher.d.ts +25 -25
- package/dist/types/components/six-layout-grid/six-layout-grid.d.ts +14 -14
- package/dist/types/components/six-main-container/six-main-container.d.ts +16 -16
- package/dist/types/components/six-menu/six-menu.d.ts +81 -81
- package/dist/types/components/six-menu-divider/six-menu-divider.d.ts +11 -11
- package/dist/types/components/six-menu-item/six-menu-item.d.ts +36 -36
- package/dist/types/components/six-menu-label/six-menu-label.d.ts +13 -13
- package/dist/types/components/six-picto/six-picto.d.ts +14 -14
- package/dist/types/components/six-progress-bar/six-progress-bar.d.ts +19 -19
- package/dist/types/components/six-progress-ring/six-progress-ring.d.ts +24 -24
- package/dist/types/components/six-radio/six-radio.d.ts +66 -66
- package/dist/types/components/six-range/six-range.d.ts +101 -101
- package/dist/types/components/six-root/six-root.d.ts +34 -34
- package/dist/types/components/six-search-field/six-search-field.d.ts +32 -32
- package/dist/types/components/six-select/six-select.d.ts +163 -163
- package/dist/types/components/six-sidebar/six-sidebar.d.ts +55 -55
- package/dist/types/components/six-sidebar-item/six-sidebar-item.d.ts +15 -15
- package/dist/types/components/six-sidebar-item-group/six-sidebar-item-group.d.ts +26 -26
- package/dist/types/components/six-spinner/six-spinner.d.ts +15 -15
- package/dist/types/components/six-stage-indicator/six-stage-indicator.d.ts +6 -6
- package/dist/types/components/six-switch/six-switch.d.ts +62 -62
- package/dist/types/components/six-tab/six-tab.d.ts +35 -35
- package/dist/types/components/six-tab-group/six-tab-group.d.ts +62 -62
- package/dist/types/components/six-tab-panel/six-tab-panel.d.ts +19 -19
- package/dist/types/components/six-table/six-table.d.ts +30 -30
- package/dist/types/components/six-table/test/helpers.d.ts +2 -2
- package/dist/types/components/six-table/types.d.ts +33 -33
- package/dist/types/components/six-table/util/filter-by.d.ts +2 -2
- package/dist/types/components/six-table/util/from-data.d.ts +8 -8
- package/dist/types/components/six-table/util/is.d.ts +3 -3
- package/dist/types/components/six-table/util/quick-filter-by.d.ts +2 -2
- package/dist/types/components/six-table/util/sort-by.d.ts +2 -2
- package/dist/types/components/six-table-cell/six-table-cell.d.ts +9 -9
- package/dist/types/components/six-table-header/six-table-header.d.ts +9 -9
- package/dist/types/components/six-table-header-cell/get-next-state.d.ts +2 -2
- package/dist/types/components/six-table-header-cell/icons.d.ts +3 -3
- package/dist/types/components/six-table-header-cell/six-table-header-cell.d.ts +32 -32
- package/dist/types/components/six-table-header-cell/types.d.ts +11 -11
- package/dist/types/components/six-table-header-cell/util/create-model.d.ts +4 -4
- package/dist/types/components/six-table-header-cell/util/get-next-state.d.ts +3 -3
- package/dist/types/components/six-table-row/six-table-row.d.ts +9 -9
- package/dist/types/components/six-tag/six-tag.d.ts +30 -30
- package/dist/types/components/six-textarea/six-textarea.d.ts +134 -134
- package/dist/types/components/six-tile/six-tile.d.ts +40 -40
- package/dist/types/components/six-timepicker/six-time-format.d.ts +13 -13
- package/dist/types/components/six-timepicker/six-timepicker.d.ts +184 -184
- package/dist/types/components/six-timepicker/six-timepicker.types.d.ts +36 -36
- package/dist/types/components/six-tooltip/six-tooltip.d.ts +72 -72
- package/dist/types/functional-components/form-control/form-control.d.ts +34 -34
- package/dist/types/index.d.ts +1 -1
- package/dist/types/testUtil/delay.d.ts +1 -1
- package/dist/types/utils/as-array.d.ts +1 -1
- package/dist/types/utils/date-util.d.ts +194 -194
- package/dist/types/utils/event-listeners.d.ts +15 -15
- package/dist/types/utils/execution-control.d.ts +26 -26
- package/dist/types/utils/focus-visible.d.ts +6 -6
- package/dist/types/utils/matchers.d.ts +2 -2
- package/dist/types/utils/modal.d.ts +13 -13
- package/dist/types/utils/offset.d.ts +4 -4
- package/dist/types/utils/popover.d.ts +27 -27
- package/dist/types/utils/scroll.d.ts +3 -3
- package/dist/types/utils/slot.d.ts +9 -9
- package/dist/types/utils/support.d.ts +1 -1
- package/dist/types/utils/tabbable.d.ts +2 -2
- package/dist/types/utils/testing.d.ts +2 -2
- package/dist/types/utils/time.util.d.ts +10 -10
- package/dist/types/utils/type-check.d.ts +4 -4
- package/dist/types/utils/types.d.ts +4 -4
- package/dist/types/wrappers/set-attributes/set-attributes.d.ts +9 -9
- package/dist/ui-library/{p-a8c225f2.entry.js → p-007bc8e8.entry.js} +1 -1
- package/dist/ui-library/{p-f9c0cfb7.entry.js → p-044b784e.entry.js} +1 -1
- package/dist/ui-library/{p-c733dead.js → p-0786fa7c.js} +0 -0
- package/dist/ui-library/{p-12cc24c3.js → p-07d1e830.js} +0 -0
- package/dist/ui-library/{p-48ea4419.entry.js → p-09cb13fa.entry.js} +1 -1
- package/dist/ui-library/{p-e96dcf96.entry.js → p-0c596054.entry.js} +1 -1
- package/dist/ui-library/{p-a77a6442.entry.js → p-1b8dc7b7.entry.js} +1 -1
- package/dist/ui-library/{p-68d31736.js → p-25a3bf57.js} +0 -0
- package/dist/ui-library/{p-ebaea182.entry.js → p-281e8c2d.entry.js} +1 -1
- package/dist/ui-library/{p-9f2dc381.entry.js → p-2924f82f.entry.js} +1 -1
- package/dist/ui-library/{p-ea1fcff2.entry.js → p-2d7ed407.entry.js} +1 -1
- package/dist/ui-library/{p-89f68e76.entry.js → p-4162dcdd.entry.js} +1 -1
- package/dist/ui-library/{p-6f67f986.entry.js → p-4d3a4e93.entry.js} +1 -1
- package/dist/ui-library/{p-8bd0873f.entry.js → p-4ed023b8.entry.js} +1 -1
- package/dist/ui-library/{p-af3d757c.js → p-4f8394d7.js} +0 -0
- package/dist/ui-library/{p-1b92cc7a.entry.js → p-530ea6ec.entry.js} +1 -1
- package/dist/ui-library/{p-19543c96.entry.js → p-531ab886.entry.js} +1 -1
- package/dist/ui-library/{p-fdb455d7.entry.js → p-54c48654.entry.js} +1 -1
- package/dist/ui-library/{p-c948d3db.entry.js → p-55c64cbc.entry.js} +1 -1
- package/dist/ui-library/{p-1c9f0dc6.js → p-5f1c6a5f.js} +0 -0
- package/dist/ui-library/{p-60491176.entry.js → p-675a8243.entry.js} +1 -1
- package/dist/ui-library/{p-b9fb8455.entry.js → p-6d622ed0.entry.js} +1 -1
- package/dist/ui-library/{p-572e3690.js → p-75297ad7.js} +0 -0
- package/dist/ui-library/{p-2ff97cdf.entry.js → p-90b26447.entry.js} +1 -1
- package/dist/ui-library/{p-fcd2356c.entry.js → p-93945629.entry.js} +1 -1
- package/dist/ui-library/{p-7735d99f.js → p-9a860acc.js} +0 -0
- package/dist/ui-library/{p-4cc01afc.entry.js → p-aa37e45a.entry.js} +1 -1
- package/dist/ui-library/{p-191f958b.js → p-b1e66136.js} +0 -0
- package/dist/ui-library/{p-c09dc3a9.js → p-b4dfb7cf.js} +0 -0
- package/dist/ui-library/{p-968c5169.entry.js → p-c24292b3.entry.js} +1 -1
- package/dist/ui-library/{p-ed21cc57.entry.js → p-cd79de73.entry.js} +1 -1
- package/dist/ui-library/{p-34e6d8e8.js → p-d12c6092.js} +0 -0
- package/dist/ui-library/{p-f0e91e17.entry.js → p-d28ac80a.entry.js} +1 -1
- package/dist/ui-library/{p-5ead7b2f.entry.js → p-d837e5a8.entry.js} +1 -1
- package/dist/ui-library/{p-ec1ecc2a.entry.js → p-dd3cae68.entry.js} +1 -1
- package/dist/ui-library/{p-044c6bf9.js → p-eb8f05a9.js} +0 -0
- package/dist/ui-library/ui-library.esm.js +1 -1
- package/package.json +1 -1
|
@@ -1,401 +1,401 @@
|
|
|
1
|
-
import { Component, Element, Event, Method, Prop, State, Watch, h } from '@stencil/core';
|
|
2
|
-
import { lockBodyScrolling, unlockBodyScrolling } from '../../utils/scroll';
|
|
3
|
-
import { hasSlot } from '../../utils/slot';
|
|
4
|
-
import { isPreventScrollSupported } from '../../utils/support';
|
|
5
|
-
import Modal from '../../utils/modal';
|
|
6
|
-
const hasPreventScroll = isPreventScrollSupported();
|
|
7
|
-
let id = 0;
|
|
8
|
-
/**
|
|
9
|
-
* @since 1.0
|
|
10
|
-
* @status stable
|
|
11
|
-
*
|
|
12
|
-
* Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.
|
|
13
|
-
*
|
|
14
|
-
* @slot - The dialog's content.
|
|
15
|
-
* @slot label - The dialog's label. Alternatively, you can use the label prop.
|
|
16
|
-
* @slot footer - The dialog's footer, usually one or more buttons representing various options.
|
|
17
|
-
*
|
|
18
|
-
* @part base - The component's base wrapper.
|
|
19
|
-
* @part overlay - The overlay.
|
|
20
|
-
* @part panel - The dialog panel (where the dialog and its content is rendered).
|
|
21
|
-
* @part header - The dialog header.
|
|
22
|
-
* @part title - The dialog title.
|
|
23
|
-
* @part close-button - The close button.
|
|
24
|
-
* @part body - The dialog body.
|
|
25
|
-
* @part footer - The dialog footer.
|
|
26
|
-
*
|
|
27
|
-
*/
|
|
28
|
-
export class SixDialog {
|
|
29
|
-
constructor() {
|
|
30
|
-
this.componentId = `dialog-${++id}`;
|
|
31
|
-
this.willShow = false;
|
|
32
|
-
this.willHide = false;
|
|
33
|
-
this.hasFooter = false;
|
|
34
|
-
this.isVisible = false;
|
|
35
|
-
/** Indicates whether or not the dialog is open. You can use this in lieu of the show/hide methods. */
|
|
36
|
-
this.open = false;
|
|
37
|
-
/**
|
|
38
|
-
* The dialog's label as displayed in the header. You should always include a relevant label even when using
|
|
39
|
-
* `no-header`, as it is required for proper accessibility.
|
|
40
|
-
*/
|
|
41
|
-
this.label = '';
|
|
42
|
-
/**
|
|
43
|
-
* Set to true to disable the header. This will also remove the default close button, so please ensure you provide an
|
|
44
|
-
* easy, accessible way for users to dismiss the dialog.
|
|
45
|
-
*/
|
|
46
|
-
this.noHeader = false;
|
|
47
|
-
}
|
|
48
|
-
handleOpenChange() {
|
|
49
|
-
this.open ? this.show() : this.hide();
|
|
50
|
-
}
|
|
51
|
-
connectedCallback() {
|
|
52
|
-
this.handleCloseClick = this.handleCloseClick.bind(this);
|
|
53
|
-
this.handleTransitionEnd = this.handleTransitionEnd.bind(this);
|
|
54
|
-
this.handleKeyDown = this.handleKeyDown.bind(this);
|
|
55
|
-
this.handleOverlayClick = this.handleOverlayClick.bind(this);
|
|
56
|
-
this.handleSlotChange = this.handleSlotChange.bind(this);
|
|
57
|
-
this.modal = new Modal(this.host, {
|
|
58
|
-
onFocusOut: () => this.panel.focus(),
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
componentWillLoad() {
|
|
62
|
-
this.handleSlotChange();
|
|
63
|
-
// Show on init if open
|
|
64
|
-
if (this.open) {
|
|
65
|
-
this.show();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
disconnectedCallback() {
|
|
69
|
-
unlockBodyScrolling(this.host);
|
|
70
|
-
}
|
|
71
|
-
/** Shows the dialog */
|
|
72
|
-
async show() {
|
|
73
|
-
if (this.willShow) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
const sixShow = this.sixShow.emit();
|
|
77
|
-
if (sixShow.defaultPrevented) {
|
|
78
|
-
this.open = false;
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
this.willShow = true;
|
|
82
|
-
this.isVisible = true;
|
|
83
|
-
this.open = true;
|
|
84
|
-
this.modal.activate();
|
|
85
|
-
lockBodyScrolling(this.host);
|
|
86
|
-
if (this.open) {
|
|
87
|
-
if (hasPreventScroll) {
|
|
88
|
-
// Wait for the next frame before setting initial focus so the dialog is technically visible
|
|
89
|
-
requestAnimationFrame(() => {
|
|
90
|
-
const sixInitialFocus = this.sixInitialFocus.emit();
|
|
91
|
-
if (!sixInitialFocus.defaultPrevented) {
|
|
92
|
-
this.panel.focus({ preventScroll: true });
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
// Once Safari supports { preventScroll: true } we can remove this nasty little hack, but until then we need to
|
|
98
|
-
// wait for the transition to complete before setting focus, otherwise the panel may render in a buggy way its
|
|
99
|
-
// out of view initially.
|
|
100
|
-
//
|
|
101
|
-
// Fiddle: https://jsfiddle.net/g6buoafq/1/
|
|
102
|
-
// Safari: https://bugs.webkit.org/show_bug.cgi?id=178583
|
|
103
|
-
//
|
|
104
|
-
this.dialog.addEventListener('transitionend', () => {
|
|
105
|
-
const sixInitialFocus = this.sixInitialFocus.emit();
|
|
106
|
-
if (!sixInitialFocus.defaultPrevented) {
|
|
107
|
-
this.panel.focus();
|
|
108
|
-
}
|
|
109
|
-
}, { once: true });
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
/** Hides the dialog */
|
|
114
|
-
async hide() {
|
|
115
|
-
if (this.willHide) {
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
const sixHide = this.sixHide.emit();
|
|
119
|
-
if (sixHide.defaultPrevented) {
|
|
120
|
-
this.open = true;
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
this.willHide = true;
|
|
124
|
-
this.open = false;
|
|
125
|
-
this.modal.deactivate();
|
|
126
|
-
unlockBodyScrolling(this.host);
|
|
127
|
-
}
|
|
128
|
-
handleCloseClick() {
|
|
129
|
-
this.hide();
|
|
130
|
-
}
|
|
131
|
-
handleKeyDown(event) {
|
|
132
|
-
if (event.key === 'Escape') {
|
|
133
|
-
this.hide();
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
handleOverlayClick() {
|
|
137
|
-
const sixOverlayDismiss = this.sixOverlayDismiss.emit();
|
|
138
|
-
if (!sixOverlayDismiss.defaultPrevented) {
|
|
139
|
-
this.hide();
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
handleSlotChange() {
|
|
143
|
-
this.hasFooter = hasSlot(this.host, 'footer');
|
|
144
|
-
}
|
|
145
|
-
handleTransitionEnd(event) {
|
|
146
|
-
const target = event.target;
|
|
147
|
-
// Ensure we only emit one event when the target element is no longer visible
|
|
148
|
-
if (event.propertyName === 'opacity' && target.classList.contains('dialog__panel')) {
|
|
149
|
-
this.isVisible = this.open;
|
|
150
|
-
this.willShow = false;
|
|
151
|
-
this.willHide = false;
|
|
152
|
-
this.open ? this.sixAfterShow.emit() : this.sixAfterHide.emit();
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
render() {
|
|
156
|
-
return (h("div", { ref: (el) => (this.dialog = el), part: "base", class: {
|
|
157
|
-
dialog: true,
|
|
158
|
-
'dialog--open': this.open,
|
|
159
|
-
'dialog--visible': this.isVisible,
|
|
160
|
-
'dialog--has-footer': this.hasFooter,
|
|
161
|
-
}, onKeyDown: this.handleKeyDown, onTransitionEnd: this.handleTransitionEnd },
|
|
162
|
-
h("div", { part: "overlay", class: "dialog__overlay", onClick: this.handleOverlayClick }),
|
|
163
|
-
h("div", { ref: (el) => (this.panel = el), part: "panel", class: "dialog__panel", role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? 'false' : 'true', "aria-label": this.noHeader ? this.label : null, "aria-labelledby": !this.noHeader ? `${this.componentId}-title` : null, tabIndex: 0 },
|
|
164
|
-
!this.noHeader && (h("header", { part: "header", class: "dialog__header" },
|
|
165
|
-
h("span", { part: "title", class: "dialog__title", id: `${this.componentId}-title` },
|
|
166
|
-
h("slot", { name: "label" }, this.label || String.fromCharCode(65279))),
|
|
167
|
-
h("six-icon-button", { exportparts: "base:close-button", class: "dialog__close", name: "close", onClick: this.handleCloseClick }))),
|
|
168
|
-
h("div", { part: "body", class: "dialog__body" },
|
|
169
|
-
h("slot", null)),
|
|
170
|
-
h("footer", { part: "footer", class: "dialog__footer" },
|
|
171
|
-
h("slot", { name: "footer", onSlotchange: this.handleSlotChange })))));
|
|
172
|
-
}
|
|
173
|
-
static get is() { return "six-dialog"; }
|
|
174
|
-
static get encapsulation() { return "shadow"; }
|
|
175
|
-
static get originalStyleUrls() { return {
|
|
176
|
-
"$": ["six-dialog.scss"]
|
|
177
|
-
}; }
|
|
178
|
-
static get styleUrls() { return {
|
|
179
|
-
"$": ["six-dialog.css"]
|
|
180
|
-
}; }
|
|
181
|
-
static get properties() { return {
|
|
182
|
-
"open": {
|
|
183
|
-
"type": "boolean",
|
|
184
|
-
"mutable": true,
|
|
185
|
-
"complexType": {
|
|
186
|
-
"original": "boolean",
|
|
187
|
-
"resolved": "boolean",
|
|
188
|
-
"references": {}
|
|
189
|
-
},
|
|
190
|
-
"required": false,
|
|
191
|
-
"optional": false,
|
|
192
|
-
"docs": {
|
|
193
|
-
"tags": [],
|
|
194
|
-
"text": "Indicates whether or not the dialog is open. You can use this in lieu of the show/hide methods."
|
|
195
|
-
},
|
|
196
|
-
"attribute": "open",
|
|
197
|
-
"reflect": true,
|
|
198
|
-
"defaultValue": "false"
|
|
199
|
-
},
|
|
200
|
-
"label": {
|
|
201
|
-
"type": "string",
|
|
202
|
-
"mutable": false,
|
|
203
|
-
"complexType": {
|
|
204
|
-
"original": "string",
|
|
205
|
-
"resolved": "string",
|
|
206
|
-
"references": {}
|
|
207
|
-
},
|
|
208
|
-
"required": false,
|
|
209
|
-
"optional": false,
|
|
210
|
-
"docs": {
|
|
211
|
-
"tags": [],
|
|
212
|
-
"text": "The dialog's label as displayed in the header. You should always include a relevant label even when using\n`no-header`, as it is required for proper accessibility."
|
|
213
|
-
},
|
|
214
|
-
"attribute": "label",
|
|
215
|
-
"reflect": false,
|
|
216
|
-
"defaultValue": "''"
|
|
217
|
-
},
|
|
218
|
-
"noHeader": {
|
|
219
|
-
"type": "boolean",
|
|
220
|
-
"mutable": false,
|
|
221
|
-
"complexType": {
|
|
222
|
-
"original": "boolean",
|
|
223
|
-
"resolved": "boolean",
|
|
224
|
-
"references": {}
|
|
225
|
-
},
|
|
226
|
-
"required": false,
|
|
227
|
-
"optional": false,
|
|
228
|
-
"docs": {
|
|
229
|
-
"tags": [],
|
|
230
|
-
"text": "Set to true to disable the header. This will also remove the default close button, so please ensure you provide an\neasy, accessible way for users to dismiss the dialog."
|
|
231
|
-
},
|
|
232
|
-
"attribute": "no-header",
|
|
233
|
-
"reflect": false,
|
|
234
|
-
"defaultValue": "false"
|
|
235
|
-
}
|
|
236
|
-
}; }
|
|
237
|
-
static get states() { return {
|
|
238
|
-
"hasFooter": {},
|
|
239
|
-
"isVisible": {}
|
|
240
|
-
}; }
|
|
241
|
-
static get events() { return [{
|
|
242
|
-
"method": "sixShow",
|
|
243
|
-
"name": "six-dialog-show",
|
|
244
|
-
"bubbles": true,
|
|
245
|
-
"cancelable": true,
|
|
246
|
-
"composed": true,
|
|
247
|
-
"docs": {
|
|
248
|
-
"tags": [],
|
|
249
|
-
"text": "Emitted when the dialog opens. Calling `event.preventDefault()` will prevent it from being opened."
|
|
250
|
-
},
|
|
251
|
-
"complexType": {
|
|
252
|
-
"original": "EmptyPayload",
|
|
253
|
-
"resolved": "undefined",
|
|
254
|
-
"references": {
|
|
255
|
-
"EmptyPayload": {
|
|
256
|
-
"location": "import",
|
|
257
|
-
"path": "../../utils/types"
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}, {
|
|
262
|
-
"method": "sixAfterShow",
|
|
263
|
-
"name": "six-dialog-after-show",
|
|
264
|
-
"bubbles": true,
|
|
265
|
-
"cancelable": true,
|
|
266
|
-
"composed": true,
|
|
267
|
-
"docs": {
|
|
268
|
-
"tags": [],
|
|
269
|
-
"text": "Emitted after the dialog opens and all transitions are complete."
|
|
270
|
-
},
|
|
271
|
-
"complexType": {
|
|
272
|
-
"original": "EmptyPayload",
|
|
273
|
-
"resolved": "undefined",
|
|
274
|
-
"references": {
|
|
275
|
-
"EmptyPayload": {
|
|
276
|
-
"location": "import",
|
|
277
|
-
"path": "../../utils/types"
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
}, {
|
|
282
|
-
"method": "sixHide",
|
|
283
|
-
"name": "six-dialog-hide",
|
|
284
|
-
"bubbles": true,
|
|
285
|
-
"cancelable": true,
|
|
286
|
-
"composed": true,
|
|
287
|
-
"docs": {
|
|
288
|
-
"tags": [],
|
|
289
|
-
"text": "Emitted when the dialog closes. Calling `event.preventDefault()` will prevent it from being closed."
|
|
290
|
-
},
|
|
291
|
-
"complexType": {
|
|
292
|
-
"original": "EmptyPayload",
|
|
293
|
-
"resolved": "undefined",
|
|
294
|
-
"references": {
|
|
295
|
-
"EmptyPayload": {
|
|
296
|
-
"location": "import",
|
|
297
|
-
"path": "../../utils/types"
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
}, {
|
|
302
|
-
"method": "sixAfterHide",
|
|
303
|
-
"name": "six-dialog-after-hide",
|
|
304
|
-
"bubbles": true,
|
|
305
|
-
"cancelable": true,
|
|
306
|
-
"composed": true,
|
|
307
|
-
"docs": {
|
|
308
|
-
"tags": [],
|
|
309
|
-
"text": "Emitted after the dialog closes and all transitions are complete."
|
|
310
|
-
},
|
|
311
|
-
"complexType": {
|
|
312
|
-
"original": "EmptyPayload",
|
|
313
|
-
"resolved": "undefined",
|
|
314
|
-
"references": {
|
|
315
|
-
"EmptyPayload": {
|
|
316
|
-
"location": "import",
|
|
317
|
-
"path": "../../utils/types"
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
}, {
|
|
322
|
-
"method": "sixInitialFocus",
|
|
323
|
-
"name": "six-dialog-initial-focus",
|
|
324
|
-
"bubbles": true,
|
|
325
|
-
"cancelable": true,
|
|
326
|
-
"composed": true,
|
|
327
|
-
"docs": {
|
|
328
|
-
"tags": [],
|
|
329
|
-
"text": "Emitted when the dialog opens and the panel gains focus. Calling `event.preventDefault()` will prevent focus and\nallow you to set it on a different element in the dialog, such as an input or button."
|
|
330
|
-
},
|
|
331
|
-
"complexType": {
|
|
332
|
-
"original": "EmptyPayload",
|
|
333
|
-
"resolved": "undefined",
|
|
334
|
-
"references": {
|
|
335
|
-
"EmptyPayload": {
|
|
336
|
-
"location": "import",
|
|
337
|
-
"path": "../../utils/types"
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
}, {
|
|
342
|
-
"method": "sixOverlayDismiss",
|
|
343
|
-
"name": "six-dialog-overlay-dismiss",
|
|
344
|
-
"bubbles": true,
|
|
345
|
-
"cancelable": true,
|
|
346
|
-
"composed": true,
|
|
347
|
-
"docs": {
|
|
348
|
-
"tags": [],
|
|
349
|
-
"text": "Emitted when the overlay is clicked. Calling `event.preventDefault()` will prevent the dialog from closing."
|
|
350
|
-
},
|
|
351
|
-
"complexType": {
|
|
352
|
-
"original": "EmptyPayload",
|
|
353
|
-
"resolved": "undefined",
|
|
354
|
-
"references": {
|
|
355
|
-
"EmptyPayload": {
|
|
356
|
-
"location": "import",
|
|
357
|
-
"path": "../../utils/types"
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
}]; }
|
|
362
|
-
static get methods() { return {
|
|
363
|
-
"show": {
|
|
364
|
-
"complexType": {
|
|
365
|
-
"signature": "() => Promise<void>",
|
|
366
|
-
"parameters": [],
|
|
367
|
-
"references": {
|
|
368
|
-
"Promise": {
|
|
369
|
-
"location": "global"
|
|
370
|
-
}
|
|
371
|
-
},
|
|
372
|
-
"return": "Promise<void>"
|
|
373
|
-
},
|
|
374
|
-
"docs": {
|
|
375
|
-
"text": "Shows the dialog",
|
|
376
|
-
"tags": []
|
|
377
|
-
}
|
|
378
|
-
},
|
|
379
|
-
"hide": {
|
|
380
|
-
"complexType": {
|
|
381
|
-
"signature": "() => Promise<void>",
|
|
382
|
-
"parameters": [],
|
|
383
|
-
"references": {
|
|
384
|
-
"Promise": {
|
|
385
|
-
"location": "global"
|
|
386
|
-
}
|
|
387
|
-
},
|
|
388
|
-
"return": "Promise<void>"
|
|
389
|
-
},
|
|
390
|
-
"docs": {
|
|
391
|
-
"text": "Hides the dialog",
|
|
392
|
-
"tags": []
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
}; }
|
|
396
|
-
static get elementRef() { return "host"; }
|
|
397
|
-
static get watchers() { return [{
|
|
398
|
-
"propName": "open",
|
|
399
|
-
"methodName": "handleOpenChange"
|
|
400
|
-
}]; }
|
|
401
|
-
}
|
|
1
|
+
import { Component, Element, Event, Method, Prop, State, Watch, h } from '@stencil/core';
|
|
2
|
+
import { lockBodyScrolling, unlockBodyScrolling } from '../../utils/scroll';
|
|
3
|
+
import { hasSlot } from '../../utils/slot';
|
|
4
|
+
import { isPreventScrollSupported } from '../../utils/support';
|
|
5
|
+
import Modal from '../../utils/modal';
|
|
6
|
+
const hasPreventScroll = isPreventScrollSupported();
|
|
7
|
+
let id = 0;
|
|
8
|
+
/**
|
|
9
|
+
* @since 1.0
|
|
10
|
+
* @status stable
|
|
11
|
+
*
|
|
12
|
+
* Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.
|
|
13
|
+
*
|
|
14
|
+
* @slot - The dialog's content.
|
|
15
|
+
* @slot label - The dialog's label. Alternatively, you can use the label prop.
|
|
16
|
+
* @slot footer - The dialog's footer, usually one or more buttons representing various options.
|
|
17
|
+
*
|
|
18
|
+
* @part base - The component's base wrapper.
|
|
19
|
+
* @part overlay - The overlay.
|
|
20
|
+
* @part panel - The dialog panel (where the dialog and its content is rendered).
|
|
21
|
+
* @part header - The dialog header.
|
|
22
|
+
* @part title - The dialog title.
|
|
23
|
+
* @part close-button - The close button.
|
|
24
|
+
* @part body - The dialog body.
|
|
25
|
+
* @part footer - The dialog footer.
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
export class SixDialog {
|
|
29
|
+
constructor() {
|
|
30
|
+
this.componentId = `dialog-${++id}`;
|
|
31
|
+
this.willShow = false;
|
|
32
|
+
this.willHide = false;
|
|
33
|
+
this.hasFooter = false;
|
|
34
|
+
this.isVisible = false;
|
|
35
|
+
/** Indicates whether or not the dialog is open. You can use this in lieu of the show/hide methods. */
|
|
36
|
+
this.open = false;
|
|
37
|
+
/**
|
|
38
|
+
* The dialog's label as displayed in the header. You should always include a relevant label even when using
|
|
39
|
+
* `no-header`, as it is required for proper accessibility.
|
|
40
|
+
*/
|
|
41
|
+
this.label = '';
|
|
42
|
+
/**
|
|
43
|
+
* Set to true to disable the header. This will also remove the default close button, so please ensure you provide an
|
|
44
|
+
* easy, accessible way for users to dismiss the dialog.
|
|
45
|
+
*/
|
|
46
|
+
this.noHeader = false;
|
|
47
|
+
}
|
|
48
|
+
handleOpenChange() {
|
|
49
|
+
this.open ? this.show() : this.hide();
|
|
50
|
+
}
|
|
51
|
+
connectedCallback() {
|
|
52
|
+
this.handleCloseClick = this.handleCloseClick.bind(this);
|
|
53
|
+
this.handleTransitionEnd = this.handleTransitionEnd.bind(this);
|
|
54
|
+
this.handleKeyDown = this.handleKeyDown.bind(this);
|
|
55
|
+
this.handleOverlayClick = this.handleOverlayClick.bind(this);
|
|
56
|
+
this.handleSlotChange = this.handleSlotChange.bind(this);
|
|
57
|
+
this.modal = new Modal(this.host, {
|
|
58
|
+
onFocusOut: () => this.panel.focus(),
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
componentWillLoad() {
|
|
62
|
+
this.handleSlotChange();
|
|
63
|
+
// Show on init if open
|
|
64
|
+
if (this.open) {
|
|
65
|
+
this.show();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
disconnectedCallback() {
|
|
69
|
+
unlockBodyScrolling(this.host);
|
|
70
|
+
}
|
|
71
|
+
/** Shows the dialog */
|
|
72
|
+
async show() {
|
|
73
|
+
if (this.willShow) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const sixShow = this.sixShow.emit();
|
|
77
|
+
if (sixShow.defaultPrevented) {
|
|
78
|
+
this.open = false;
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
this.willShow = true;
|
|
82
|
+
this.isVisible = true;
|
|
83
|
+
this.open = true;
|
|
84
|
+
this.modal.activate();
|
|
85
|
+
lockBodyScrolling(this.host);
|
|
86
|
+
if (this.open) {
|
|
87
|
+
if (hasPreventScroll) {
|
|
88
|
+
// Wait for the next frame before setting initial focus so the dialog is technically visible
|
|
89
|
+
requestAnimationFrame(() => {
|
|
90
|
+
const sixInitialFocus = this.sixInitialFocus.emit();
|
|
91
|
+
if (!sixInitialFocus.defaultPrevented) {
|
|
92
|
+
this.panel.focus({ preventScroll: true });
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// Once Safari supports { preventScroll: true } we can remove this nasty little hack, but until then we need to
|
|
98
|
+
// wait for the transition to complete before setting focus, otherwise the panel may render in a buggy way its
|
|
99
|
+
// out of view initially.
|
|
100
|
+
//
|
|
101
|
+
// Fiddle: https://jsfiddle.net/g6buoafq/1/
|
|
102
|
+
// Safari: https://bugs.webkit.org/show_bug.cgi?id=178583
|
|
103
|
+
//
|
|
104
|
+
this.dialog.addEventListener('transitionend', () => {
|
|
105
|
+
const sixInitialFocus = this.sixInitialFocus.emit();
|
|
106
|
+
if (!sixInitialFocus.defaultPrevented) {
|
|
107
|
+
this.panel.focus();
|
|
108
|
+
}
|
|
109
|
+
}, { once: true });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/** Hides the dialog */
|
|
114
|
+
async hide() {
|
|
115
|
+
if (this.willHide) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const sixHide = this.sixHide.emit();
|
|
119
|
+
if (sixHide.defaultPrevented) {
|
|
120
|
+
this.open = true;
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
this.willHide = true;
|
|
124
|
+
this.open = false;
|
|
125
|
+
this.modal.deactivate();
|
|
126
|
+
unlockBodyScrolling(this.host);
|
|
127
|
+
}
|
|
128
|
+
handleCloseClick() {
|
|
129
|
+
this.hide();
|
|
130
|
+
}
|
|
131
|
+
handleKeyDown(event) {
|
|
132
|
+
if (event.key === 'Escape') {
|
|
133
|
+
this.hide();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
handleOverlayClick() {
|
|
137
|
+
const sixOverlayDismiss = this.sixOverlayDismiss.emit();
|
|
138
|
+
if (!sixOverlayDismiss.defaultPrevented) {
|
|
139
|
+
this.hide();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
handleSlotChange() {
|
|
143
|
+
this.hasFooter = hasSlot(this.host, 'footer');
|
|
144
|
+
}
|
|
145
|
+
handleTransitionEnd(event) {
|
|
146
|
+
const target = event.target;
|
|
147
|
+
// Ensure we only emit one event when the target element is no longer visible
|
|
148
|
+
if (event.propertyName === 'opacity' && target.classList.contains('dialog__panel')) {
|
|
149
|
+
this.isVisible = this.open;
|
|
150
|
+
this.willShow = false;
|
|
151
|
+
this.willHide = false;
|
|
152
|
+
this.open ? this.sixAfterShow.emit() : this.sixAfterHide.emit();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
render() {
|
|
156
|
+
return (h("div", { ref: (el) => (this.dialog = el), part: "base", class: {
|
|
157
|
+
dialog: true,
|
|
158
|
+
'dialog--open': this.open,
|
|
159
|
+
'dialog--visible': this.isVisible,
|
|
160
|
+
'dialog--has-footer': this.hasFooter,
|
|
161
|
+
}, onKeyDown: this.handleKeyDown, onTransitionEnd: this.handleTransitionEnd },
|
|
162
|
+
h("div", { part: "overlay", class: "dialog__overlay", onClick: this.handleOverlayClick }),
|
|
163
|
+
h("div", { ref: (el) => (this.panel = el), part: "panel", class: "dialog__panel", role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? 'false' : 'true', "aria-label": this.noHeader ? this.label : null, "aria-labelledby": !this.noHeader ? `${this.componentId}-title` : null, tabIndex: 0 },
|
|
164
|
+
!this.noHeader && (h("header", { part: "header", class: "dialog__header" },
|
|
165
|
+
h("span", { part: "title", class: "dialog__title", id: `${this.componentId}-title` },
|
|
166
|
+
h("slot", { name: "label" }, this.label || String.fromCharCode(65279))),
|
|
167
|
+
h("six-icon-button", { exportparts: "base:close-button", class: "dialog__close", name: "close", onClick: this.handleCloseClick }))),
|
|
168
|
+
h("div", { part: "body", class: "dialog__body" },
|
|
169
|
+
h("slot", null)),
|
|
170
|
+
h("footer", { part: "footer", class: "dialog__footer" },
|
|
171
|
+
h("slot", { name: "footer", onSlotchange: this.handleSlotChange })))));
|
|
172
|
+
}
|
|
173
|
+
static get is() { return "six-dialog"; }
|
|
174
|
+
static get encapsulation() { return "shadow"; }
|
|
175
|
+
static get originalStyleUrls() { return {
|
|
176
|
+
"$": ["six-dialog.scss"]
|
|
177
|
+
}; }
|
|
178
|
+
static get styleUrls() { return {
|
|
179
|
+
"$": ["six-dialog.css"]
|
|
180
|
+
}; }
|
|
181
|
+
static get properties() { return {
|
|
182
|
+
"open": {
|
|
183
|
+
"type": "boolean",
|
|
184
|
+
"mutable": true,
|
|
185
|
+
"complexType": {
|
|
186
|
+
"original": "boolean",
|
|
187
|
+
"resolved": "boolean",
|
|
188
|
+
"references": {}
|
|
189
|
+
},
|
|
190
|
+
"required": false,
|
|
191
|
+
"optional": false,
|
|
192
|
+
"docs": {
|
|
193
|
+
"tags": [],
|
|
194
|
+
"text": "Indicates whether or not the dialog is open. You can use this in lieu of the show/hide methods."
|
|
195
|
+
},
|
|
196
|
+
"attribute": "open",
|
|
197
|
+
"reflect": true,
|
|
198
|
+
"defaultValue": "false"
|
|
199
|
+
},
|
|
200
|
+
"label": {
|
|
201
|
+
"type": "string",
|
|
202
|
+
"mutable": false,
|
|
203
|
+
"complexType": {
|
|
204
|
+
"original": "string",
|
|
205
|
+
"resolved": "string",
|
|
206
|
+
"references": {}
|
|
207
|
+
},
|
|
208
|
+
"required": false,
|
|
209
|
+
"optional": false,
|
|
210
|
+
"docs": {
|
|
211
|
+
"tags": [],
|
|
212
|
+
"text": "The dialog's label as displayed in the header. You should always include a relevant label even when using\n`no-header`, as it is required for proper accessibility."
|
|
213
|
+
},
|
|
214
|
+
"attribute": "label",
|
|
215
|
+
"reflect": false,
|
|
216
|
+
"defaultValue": "''"
|
|
217
|
+
},
|
|
218
|
+
"noHeader": {
|
|
219
|
+
"type": "boolean",
|
|
220
|
+
"mutable": false,
|
|
221
|
+
"complexType": {
|
|
222
|
+
"original": "boolean",
|
|
223
|
+
"resolved": "boolean",
|
|
224
|
+
"references": {}
|
|
225
|
+
},
|
|
226
|
+
"required": false,
|
|
227
|
+
"optional": false,
|
|
228
|
+
"docs": {
|
|
229
|
+
"tags": [],
|
|
230
|
+
"text": "Set to true to disable the header. This will also remove the default close button, so please ensure you provide an\neasy, accessible way for users to dismiss the dialog."
|
|
231
|
+
},
|
|
232
|
+
"attribute": "no-header",
|
|
233
|
+
"reflect": false,
|
|
234
|
+
"defaultValue": "false"
|
|
235
|
+
}
|
|
236
|
+
}; }
|
|
237
|
+
static get states() { return {
|
|
238
|
+
"hasFooter": {},
|
|
239
|
+
"isVisible": {}
|
|
240
|
+
}; }
|
|
241
|
+
static get events() { return [{
|
|
242
|
+
"method": "sixShow",
|
|
243
|
+
"name": "six-dialog-show",
|
|
244
|
+
"bubbles": true,
|
|
245
|
+
"cancelable": true,
|
|
246
|
+
"composed": true,
|
|
247
|
+
"docs": {
|
|
248
|
+
"tags": [],
|
|
249
|
+
"text": "Emitted when the dialog opens. Calling `event.preventDefault()` will prevent it from being opened."
|
|
250
|
+
},
|
|
251
|
+
"complexType": {
|
|
252
|
+
"original": "EmptyPayload",
|
|
253
|
+
"resolved": "undefined",
|
|
254
|
+
"references": {
|
|
255
|
+
"EmptyPayload": {
|
|
256
|
+
"location": "import",
|
|
257
|
+
"path": "../../utils/types"
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}, {
|
|
262
|
+
"method": "sixAfterShow",
|
|
263
|
+
"name": "six-dialog-after-show",
|
|
264
|
+
"bubbles": true,
|
|
265
|
+
"cancelable": true,
|
|
266
|
+
"composed": true,
|
|
267
|
+
"docs": {
|
|
268
|
+
"tags": [],
|
|
269
|
+
"text": "Emitted after the dialog opens and all transitions are complete."
|
|
270
|
+
},
|
|
271
|
+
"complexType": {
|
|
272
|
+
"original": "EmptyPayload",
|
|
273
|
+
"resolved": "undefined",
|
|
274
|
+
"references": {
|
|
275
|
+
"EmptyPayload": {
|
|
276
|
+
"location": "import",
|
|
277
|
+
"path": "../../utils/types"
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}, {
|
|
282
|
+
"method": "sixHide",
|
|
283
|
+
"name": "six-dialog-hide",
|
|
284
|
+
"bubbles": true,
|
|
285
|
+
"cancelable": true,
|
|
286
|
+
"composed": true,
|
|
287
|
+
"docs": {
|
|
288
|
+
"tags": [],
|
|
289
|
+
"text": "Emitted when the dialog closes. Calling `event.preventDefault()` will prevent it from being closed."
|
|
290
|
+
},
|
|
291
|
+
"complexType": {
|
|
292
|
+
"original": "EmptyPayload",
|
|
293
|
+
"resolved": "undefined",
|
|
294
|
+
"references": {
|
|
295
|
+
"EmptyPayload": {
|
|
296
|
+
"location": "import",
|
|
297
|
+
"path": "../../utils/types"
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}, {
|
|
302
|
+
"method": "sixAfterHide",
|
|
303
|
+
"name": "six-dialog-after-hide",
|
|
304
|
+
"bubbles": true,
|
|
305
|
+
"cancelable": true,
|
|
306
|
+
"composed": true,
|
|
307
|
+
"docs": {
|
|
308
|
+
"tags": [],
|
|
309
|
+
"text": "Emitted after the dialog closes and all transitions are complete."
|
|
310
|
+
},
|
|
311
|
+
"complexType": {
|
|
312
|
+
"original": "EmptyPayload",
|
|
313
|
+
"resolved": "undefined",
|
|
314
|
+
"references": {
|
|
315
|
+
"EmptyPayload": {
|
|
316
|
+
"location": "import",
|
|
317
|
+
"path": "../../utils/types"
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}, {
|
|
322
|
+
"method": "sixInitialFocus",
|
|
323
|
+
"name": "six-dialog-initial-focus",
|
|
324
|
+
"bubbles": true,
|
|
325
|
+
"cancelable": true,
|
|
326
|
+
"composed": true,
|
|
327
|
+
"docs": {
|
|
328
|
+
"tags": [],
|
|
329
|
+
"text": "Emitted when the dialog opens and the panel gains focus. Calling `event.preventDefault()` will prevent focus and\nallow you to set it on a different element in the dialog, such as an input or button."
|
|
330
|
+
},
|
|
331
|
+
"complexType": {
|
|
332
|
+
"original": "EmptyPayload",
|
|
333
|
+
"resolved": "undefined",
|
|
334
|
+
"references": {
|
|
335
|
+
"EmptyPayload": {
|
|
336
|
+
"location": "import",
|
|
337
|
+
"path": "../../utils/types"
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}, {
|
|
342
|
+
"method": "sixOverlayDismiss",
|
|
343
|
+
"name": "six-dialog-overlay-dismiss",
|
|
344
|
+
"bubbles": true,
|
|
345
|
+
"cancelable": true,
|
|
346
|
+
"composed": true,
|
|
347
|
+
"docs": {
|
|
348
|
+
"tags": [],
|
|
349
|
+
"text": "Emitted when the overlay is clicked. Calling `event.preventDefault()` will prevent the dialog from closing."
|
|
350
|
+
},
|
|
351
|
+
"complexType": {
|
|
352
|
+
"original": "EmptyPayload",
|
|
353
|
+
"resolved": "undefined",
|
|
354
|
+
"references": {
|
|
355
|
+
"EmptyPayload": {
|
|
356
|
+
"location": "import",
|
|
357
|
+
"path": "../../utils/types"
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}]; }
|
|
362
|
+
static get methods() { return {
|
|
363
|
+
"show": {
|
|
364
|
+
"complexType": {
|
|
365
|
+
"signature": "() => Promise<void>",
|
|
366
|
+
"parameters": [],
|
|
367
|
+
"references": {
|
|
368
|
+
"Promise": {
|
|
369
|
+
"location": "global"
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
"return": "Promise<void>"
|
|
373
|
+
},
|
|
374
|
+
"docs": {
|
|
375
|
+
"text": "Shows the dialog",
|
|
376
|
+
"tags": []
|
|
377
|
+
}
|
|
378
|
+
},
|
|
379
|
+
"hide": {
|
|
380
|
+
"complexType": {
|
|
381
|
+
"signature": "() => Promise<void>",
|
|
382
|
+
"parameters": [],
|
|
383
|
+
"references": {
|
|
384
|
+
"Promise": {
|
|
385
|
+
"location": "global"
|
|
386
|
+
}
|
|
387
|
+
},
|
|
388
|
+
"return": "Promise<void>"
|
|
389
|
+
},
|
|
390
|
+
"docs": {
|
|
391
|
+
"text": "Hides the dialog",
|
|
392
|
+
"tags": []
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}; }
|
|
396
|
+
static get elementRef() { return "host"; }
|
|
397
|
+
static get watchers() { return [{
|
|
398
|
+
"propName": "open",
|
|
399
|
+
"methodName": "handleOpenChange"
|
|
400
|
+
}]; }
|
|
401
|
+
}
|