@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,455 +1,455 @@
|
|
|
1
|
-
import { Component, Event, h, Method, Prop, State, Watch } from '@stencil/core';
|
|
2
|
-
import { scrollIntoView } from '../../utils/scroll';
|
|
3
|
-
const isSidebarItemGroup = (node) => node.tagName.toLowerCase() === 'six-sidebar-item-group';
|
|
4
|
-
/**
|
|
5
|
-
* @since 1.0
|
|
6
|
-
* @status stable
|
|
7
|
-
*
|
|
8
|
-
* @slot - Used to define the nested side bar [group] items.
|
|
9
|
-
*/
|
|
10
|
-
export class SixSidebar {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.willShow = false;
|
|
13
|
-
this.willHide = false;
|
|
14
|
-
this.isVisible = false;
|
|
15
|
-
/** Sidebar position */
|
|
16
|
-
this.position = 'left';
|
|
17
|
-
/** Indicates whether or not the sidebar is open. You can use this in lieu of the show/hide methods. */
|
|
18
|
-
this.open = false;
|
|
19
|
-
/** Sidebar width */
|
|
20
|
-
this.width = '16rem';
|
|
21
|
-
/** Define whether sidebar is toggled meaning only one menu can be open at the same time*/
|
|
22
|
-
this.toggled = false;
|
|
23
|
-
this.handleTransitionEnd = (event) => {
|
|
24
|
-
const target = event.target;
|
|
25
|
-
// Ensure we only emit one event when the target element is no longer visible
|
|
26
|
-
if (event.type === 'transitionend' && target.classList.contains('sidebar__container')) {
|
|
27
|
-
this.resetTransitionVariables();
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
this.closeSiblingDetailsOnShow = (event) => {
|
|
31
|
-
const clickedMenuItem = event.target;
|
|
32
|
-
scrollIntoView(clickedMenuItem, this.sidebar);
|
|
33
|
-
const closeAllSiblingsBySiblingProperty = (getSibling) => {
|
|
34
|
-
let node = clickedMenuItem;
|
|
35
|
-
while (getSibling(node) !== null) {
|
|
36
|
-
node = getSibling(node);
|
|
37
|
-
if (isSidebarItemGroup(node)) {
|
|
38
|
-
node.shadowRoot.querySelector('six-details').open = false;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
// close all previous siblings
|
|
43
|
-
closeAllSiblingsBySiblingProperty((node) => node.previousElementSibling);
|
|
44
|
-
// close all further siblings
|
|
45
|
-
closeAllSiblingsBySiblingProperty((node) => node.nextElementSibling);
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
handleOpenChange() {
|
|
49
|
-
this.open ? this.show() : this.hide();
|
|
50
|
-
}
|
|
51
|
-
componentWillLoad() {
|
|
52
|
-
// Show on init if open
|
|
53
|
-
if (this.open) {
|
|
54
|
-
void this.show();
|
|
55
|
-
// if the sidebar is open by default we need to manually reset the
|
|
56
|
-
// transition variables since there will be no transition event
|
|
57
|
-
this.resetTransitionVariables();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
componentDidRender() {
|
|
61
|
-
this.setupTogglableMenuItems();
|
|
62
|
-
}
|
|
63
|
-
disconnectedCallback() {
|
|
64
|
-
this.sidebar.removeEventListener('six-details-show', this.closeSiblingDetailsOnShow);
|
|
65
|
-
}
|
|
66
|
-
setupTogglableMenuItems() {
|
|
67
|
-
if (!this.toggled) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
this.markAllMenuItemsAsSelectableEmpty();
|
|
71
|
-
this.sidebar.addEventListener('six-details-show', this.closeSiblingDetailsOnShow);
|
|
72
|
-
}
|
|
73
|
-
markAllMenuItemsAsSelectableEmpty() {
|
|
74
|
-
// when you have a toggled menu you also want to close other menu items when you click on an item without children
|
|
75
|
-
// nice benefit this item will then also be highlighted
|
|
76
|
-
const slot = this.sidebar.querySelector('slot');
|
|
77
|
-
const nodes = slot.assignedElements();
|
|
78
|
-
// since we don't just want to make the top level empty menuItems selectable in toggled mode,
|
|
79
|
-
// but also nested items we need to traverse the whole menu item tree
|
|
80
|
-
const menuItems = [];
|
|
81
|
-
while (nodes.length > 0) {
|
|
82
|
-
const node = nodes.pop();
|
|
83
|
-
// collect six-details in the current shadowDOM
|
|
84
|
-
const menuItemsForCurrentNode = node.shadowRoot.querySelectorAll('six-details');
|
|
85
|
-
menuItems.push(...menuItemsForCurrentNode);
|
|
86
|
-
// collect all six-sidebar-item-group children of the current node to afterwards check their shadowDOM too
|
|
87
|
-
const newItemGroups = Array.from(node.children).filter(isSidebarItemGroup);
|
|
88
|
-
nodes.push(...newItemGroups);
|
|
89
|
-
}
|
|
90
|
-
menuItems.forEach((details) => (details.selectableEmpty = true));
|
|
91
|
-
}
|
|
92
|
-
/** Toggles whether the sidebar should be shown or hidden */
|
|
93
|
-
async toggle() {
|
|
94
|
-
if (this.willShow || this.willHide) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
if (this.open) {
|
|
98
|
-
await this.hide();
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
await this.show();
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/** Shows the sidebar */
|
|
105
|
-
async show() {
|
|
106
|
-
if (this.willShow) {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
const sixShow = this.sixShow.emit();
|
|
110
|
-
if (sixShow.defaultPrevented) {
|
|
111
|
-
this.open = false;
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
this.willShow = true;
|
|
115
|
-
this.isVisible = true;
|
|
116
|
-
this.open = true;
|
|
117
|
-
}
|
|
118
|
-
/** Hides the sidebar */
|
|
119
|
-
async hide() {
|
|
120
|
-
if (this.willHide) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
const sixHide = this.sixHide.emit();
|
|
124
|
-
if (sixHide.defaultPrevented) {
|
|
125
|
-
this.open = true;
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
this.willHide = true;
|
|
129
|
-
this.open = false;
|
|
130
|
-
}
|
|
131
|
-
/** Allows to select a menu item programmatically by index */
|
|
132
|
-
async selectItemByIndex(index) {
|
|
133
|
-
const slot = this.sidebar.querySelector('slot');
|
|
134
|
-
const menuItemsOnRootLevel = slot
|
|
135
|
-
.assignedElements()
|
|
136
|
-
.map((el) => el.shadowRoot.querySelector('six-details'));
|
|
137
|
-
if (index < 0 || index > menuItemsOnRootLevel.length - 1) {
|
|
138
|
-
console.error(`Tried to access sidebar menu item by index, but provided index out of range. Provided index: ${index}`);
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
await menuItemsOnRootLevel[index].show();
|
|
142
|
-
}
|
|
143
|
-
/** Allows to select a menu item programmatically by name */
|
|
144
|
-
async selectItemByName(value) {
|
|
145
|
-
const slot = this.sidebar.querySelector('slot');
|
|
146
|
-
const sidebarItemGroups = slot.assignedElements();
|
|
147
|
-
const indexOfSelectedElement = sidebarItemGroups.findIndex((el) => (el === null || el === void 0 ? void 0 : el.name) === value);
|
|
148
|
-
const selectedItem = sidebarItemGroups[indexOfSelectedElement].shadowRoot.querySelector('six-details');
|
|
149
|
-
await selectedItem.show();
|
|
150
|
-
}
|
|
151
|
-
resetTransitionVariables() {
|
|
152
|
-
this.isVisible = this.open;
|
|
153
|
-
this.willShow = false;
|
|
154
|
-
this.willHide = false;
|
|
155
|
-
this.open ? this.sixAfterShow.emit() : this.sixAfterHide.emit();
|
|
156
|
-
}
|
|
157
|
-
render() {
|
|
158
|
-
return (h("host", { class: "six-sidebar" },
|
|
159
|
-
h("div", { class: {
|
|
160
|
-
sidebar__container: true,
|
|
161
|
-
'sidebar--visible': this.isVisible,
|
|
162
|
-
'sidebar--open': this.open,
|
|
163
|
-
'sidebar--left': this.position === 'left',
|
|
164
|
-
'sidebar--right': this.position === 'right',
|
|
165
|
-
}, style: {
|
|
166
|
-
width: this.width,
|
|
167
|
-
[`margin-${this.position}`]: this.open ? '0' : `calc(1rem - ${this.width})`,
|
|
168
|
-
}, ref: (el) => (this.sidebar = el), "aria-hidden": this.open ? 'false' : 'true', onTransitionEnd: this.handleTransitionEnd },
|
|
169
|
-
h("slot", null))));
|
|
170
|
-
}
|
|
171
|
-
static get is() { return "six-sidebar"; }
|
|
172
|
-
static get encapsulation() { return "shadow"; }
|
|
173
|
-
static get originalStyleUrls() { return {
|
|
174
|
-
"$": ["six-sidebar.scss"]
|
|
175
|
-
}; }
|
|
176
|
-
static get styleUrls() { return {
|
|
177
|
-
"$": ["six-sidebar.css"]
|
|
178
|
-
}; }
|
|
179
|
-
static get properties() { return {
|
|
180
|
-
"position": {
|
|
181
|
-
"type": "string",
|
|
182
|
-
"mutable": false,
|
|
183
|
-
"complexType": {
|
|
184
|
-
"original": "'left' | 'right'",
|
|
185
|
-
"resolved": "\"left\" | \"right\"",
|
|
186
|
-
"references": {}
|
|
187
|
-
},
|
|
188
|
-
"required": false,
|
|
189
|
-
"optional": false,
|
|
190
|
-
"docs": {
|
|
191
|
-
"tags": [],
|
|
192
|
-
"text": "Sidebar position"
|
|
193
|
-
},
|
|
194
|
-
"attribute": "position",
|
|
195
|
-
"reflect": false,
|
|
196
|
-
"defaultValue": "'left'"
|
|
197
|
-
},
|
|
198
|
-
"open": {
|
|
199
|
-
"type": "boolean",
|
|
200
|
-
"mutable": true,
|
|
201
|
-
"complexType": {
|
|
202
|
-
"original": "boolean",
|
|
203
|
-
"resolved": "boolean",
|
|
204
|
-
"references": {}
|
|
205
|
-
},
|
|
206
|
-
"required": false,
|
|
207
|
-
"optional": false,
|
|
208
|
-
"docs": {
|
|
209
|
-
"tags": [],
|
|
210
|
-
"text": "Indicates whether or not the sidebar is open. You can use this in lieu of the show/hide methods."
|
|
211
|
-
},
|
|
212
|
-
"attribute": "open",
|
|
213
|
-
"reflect": true,
|
|
214
|
-
"defaultValue": "false"
|
|
215
|
-
},
|
|
216
|
-
"width": {
|
|
217
|
-
"type": "string",
|
|
218
|
-
"mutable": false,
|
|
219
|
-
"complexType": {
|
|
220
|
-
"original": "string",
|
|
221
|
-
"resolved": "string",
|
|
222
|
-
"references": {}
|
|
223
|
-
},
|
|
224
|
-
"required": false,
|
|
225
|
-
"optional": false,
|
|
226
|
-
"docs": {
|
|
227
|
-
"tags": [],
|
|
228
|
-
"text": "Sidebar width"
|
|
229
|
-
},
|
|
230
|
-
"attribute": "width",
|
|
231
|
-
"reflect": false,
|
|
232
|
-
"defaultValue": "'16rem'"
|
|
233
|
-
},
|
|
234
|
-
"toggled": {
|
|
235
|
-
"type": "boolean",
|
|
236
|
-
"mutable": false,
|
|
237
|
-
"complexType": {
|
|
238
|
-
"original": "boolean",
|
|
239
|
-
"resolved": "boolean",
|
|
240
|
-
"references": {}
|
|
241
|
-
},
|
|
242
|
-
"required": false,
|
|
243
|
-
"optional": false,
|
|
244
|
-
"docs": {
|
|
245
|
-
"tags": [],
|
|
246
|
-
"text": "Define whether sidebar is toggled meaning only one menu can be open at the same time"
|
|
247
|
-
},
|
|
248
|
-
"attribute": "toggled",
|
|
249
|
-
"reflect": false,
|
|
250
|
-
"defaultValue": "false"
|
|
251
|
-
}
|
|
252
|
-
}; }
|
|
253
|
-
static get states() { return {
|
|
254
|
-
"isVisible": {}
|
|
255
|
-
}; }
|
|
256
|
-
static get events() { return [{
|
|
257
|
-
"method": "sixShow",
|
|
258
|
-
"name": "six-sidebar-show",
|
|
259
|
-
"bubbles": true,
|
|
260
|
-
"cancelable": true,
|
|
261
|
-
"composed": true,
|
|
262
|
-
"docs": {
|
|
263
|
-
"tags": [],
|
|
264
|
-
"text": "Emitted when the sidebar opens. Calling `event.preventDefault()` will prevent it from being opened."
|
|
265
|
-
},
|
|
266
|
-
"complexType": {
|
|
267
|
-
"original": "EmptyPayload",
|
|
268
|
-
"resolved": "undefined",
|
|
269
|
-
"references": {
|
|
270
|
-
"EmptyPayload": {
|
|
271
|
-
"location": "import",
|
|
272
|
-
"path": "../../utils/types"
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}, {
|
|
277
|
-
"method": "sixAfterShow",
|
|
278
|
-
"name": "six-sidebar-after-show",
|
|
279
|
-
"bubbles": true,
|
|
280
|
-
"cancelable": true,
|
|
281
|
-
"composed": true,
|
|
282
|
-
"docs": {
|
|
283
|
-
"tags": [],
|
|
284
|
-
"text": "Emitted after the sidebar opens and all transitions are complete."
|
|
285
|
-
},
|
|
286
|
-
"complexType": {
|
|
287
|
-
"original": "EmptyPayload",
|
|
288
|
-
"resolved": "undefined",
|
|
289
|
-
"references": {
|
|
290
|
-
"EmptyPayload": {
|
|
291
|
-
"location": "import",
|
|
292
|
-
"path": "../../utils/types"
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
}, {
|
|
297
|
-
"method": "sixHide",
|
|
298
|
-
"name": "six-sidebar-hide",
|
|
299
|
-
"bubbles": true,
|
|
300
|
-
"cancelable": true,
|
|
301
|
-
"composed": true,
|
|
302
|
-
"docs": {
|
|
303
|
-
"tags": [],
|
|
304
|
-
"text": "Emitted when the sidebar closes. Calling `event.preventDefault()` will prevent it from being closed."
|
|
305
|
-
},
|
|
306
|
-
"complexType": {
|
|
307
|
-
"original": "EmptyPayload",
|
|
308
|
-
"resolved": "undefined",
|
|
309
|
-
"references": {
|
|
310
|
-
"EmptyPayload": {
|
|
311
|
-
"location": "import",
|
|
312
|
-
"path": "../../utils/types"
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
}, {
|
|
317
|
-
"method": "sixAfterHide",
|
|
318
|
-
"name": "six-sidebar-after-hide",
|
|
319
|
-
"bubbles": true,
|
|
320
|
-
"cancelable": true,
|
|
321
|
-
"composed": true,
|
|
322
|
-
"docs": {
|
|
323
|
-
"tags": [],
|
|
324
|
-
"text": "Emitted after the sidebar closes and all transitions are complete."
|
|
325
|
-
},
|
|
326
|
-
"complexType": {
|
|
327
|
-
"original": "EmptyPayload",
|
|
328
|
-
"resolved": "undefined",
|
|
329
|
-
"references": {
|
|
330
|
-
"EmptyPayload": {
|
|
331
|
-
"location": "import",
|
|
332
|
-
"path": "../../utils/types"
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}, {
|
|
337
|
-
"method": "sixInitialFocus",
|
|
338
|
-
"name": "six-sidebar-initial-focus",
|
|
339
|
-
"bubbles": true,
|
|
340
|
-
"cancelable": true,
|
|
341
|
-
"composed": true,
|
|
342
|
-
"docs": {
|
|
343
|
-
"tags": [],
|
|
344
|
-
"text": "Emitted when the sidebar opens and the panel gains focus. Calling `event.preventDefault()` will prevent focus and\nallow you to set it on a different element in the sidebar, such as an input or button."
|
|
345
|
-
},
|
|
346
|
-
"complexType": {
|
|
347
|
-
"original": "EmptyPayload",
|
|
348
|
-
"resolved": "undefined",
|
|
349
|
-
"references": {
|
|
350
|
-
"EmptyPayload": {
|
|
351
|
-
"location": "import",
|
|
352
|
-
"path": "../../utils/types"
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
}]; }
|
|
357
|
-
static get methods() { return {
|
|
358
|
-
"toggle": {
|
|
359
|
-
"complexType": {
|
|
360
|
-
"signature": "() => Promise<void>",
|
|
361
|
-
"parameters": [],
|
|
362
|
-
"references": {
|
|
363
|
-
"Promise": {
|
|
364
|
-
"location": "global"
|
|
365
|
-
}
|
|
366
|
-
},
|
|
367
|
-
"return": "Promise<void>"
|
|
368
|
-
},
|
|
369
|
-
"docs": {
|
|
370
|
-
"text": "Toggles whether the sidebar should be shown or hidden",
|
|
371
|
-
"tags": []
|
|
372
|
-
}
|
|
373
|
-
},
|
|
374
|
-
"show": {
|
|
375
|
-
"complexType": {
|
|
376
|
-
"signature": "() => Promise<void>",
|
|
377
|
-
"parameters": [],
|
|
378
|
-
"references": {
|
|
379
|
-
"Promise": {
|
|
380
|
-
"location": "global"
|
|
381
|
-
}
|
|
382
|
-
},
|
|
383
|
-
"return": "Promise<void>"
|
|
384
|
-
},
|
|
385
|
-
"docs": {
|
|
386
|
-
"text": "Shows the sidebar",
|
|
387
|
-
"tags": []
|
|
388
|
-
}
|
|
389
|
-
},
|
|
390
|
-
"hide": {
|
|
391
|
-
"complexType": {
|
|
392
|
-
"signature": "() => Promise<void>",
|
|
393
|
-
"parameters": [],
|
|
394
|
-
"references": {
|
|
395
|
-
"Promise": {
|
|
396
|
-
"location": "global"
|
|
397
|
-
}
|
|
398
|
-
},
|
|
399
|
-
"return": "Promise<void>"
|
|
400
|
-
},
|
|
401
|
-
"docs": {
|
|
402
|
-
"text": "Hides the sidebar",
|
|
403
|
-
"tags": []
|
|
404
|
-
}
|
|
405
|
-
},
|
|
406
|
-
"selectItemByIndex": {
|
|
407
|
-
"complexType": {
|
|
408
|
-
"signature": "(index: number) => Promise<void>",
|
|
409
|
-
"parameters": [{
|
|
410
|
-
"tags": [],
|
|
411
|
-
"text": ""
|
|
412
|
-
}],
|
|
413
|
-
"references": {
|
|
414
|
-
"Promise": {
|
|
415
|
-
"location": "global"
|
|
416
|
-
},
|
|
417
|
-
"HTMLSixDetailsElement": {
|
|
418
|
-
"location": "global"
|
|
419
|
-
}
|
|
420
|
-
},
|
|
421
|
-
"return": "Promise<void>"
|
|
422
|
-
},
|
|
423
|
-
"docs": {
|
|
424
|
-
"text": "Allows to select a menu item programmatically by index",
|
|
425
|
-
"tags": []
|
|
426
|
-
}
|
|
427
|
-
},
|
|
428
|
-
"selectItemByName": {
|
|
429
|
-
"complexType": {
|
|
430
|
-
"signature": "(value: string) => Promise<void>",
|
|
431
|
-
"parameters": [{
|
|
432
|
-
"tags": [],
|
|
433
|
-
"text": ""
|
|
434
|
-
}],
|
|
435
|
-
"references": {
|
|
436
|
-
"Promise": {
|
|
437
|
-
"location": "global"
|
|
438
|
-
},
|
|
439
|
-
"HTMLSixSidebarItemGroupElement": {
|
|
440
|
-
"location": "global"
|
|
441
|
-
}
|
|
442
|
-
},
|
|
443
|
-
"return": "Promise<void>"
|
|
444
|
-
},
|
|
445
|
-
"docs": {
|
|
446
|
-
"text": "Allows to select a menu item programmatically by name",
|
|
447
|
-
"tags": []
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
}; }
|
|
451
|
-
static get watchers() { return [{
|
|
452
|
-
"propName": "open",
|
|
453
|
-
"methodName": "handleOpenChange"
|
|
454
|
-
}]; }
|
|
455
|
-
}
|
|
1
|
+
import { Component, Event, h, Method, Prop, State, Watch } from '@stencil/core';
|
|
2
|
+
import { scrollIntoView } from '../../utils/scroll';
|
|
3
|
+
const isSidebarItemGroup = (node) => node.tagName.toLowerCase() === 'six-sidebar-item-group';
|
|
4
|
+
/**
|
|
5
|
+
* @since 1.0
|
|
6
|
+
* @status stable
|
|
7
|
+
*
|
|
8
|
+
* @slot - Used to define the nested side bar [group] items.
|
|
9
|
+
*/
|
|
10
|
+
export class SixSidebar {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.willShow = false;
|
|
13
|
+
this.willHide = false;
|
|
14
|
+
this.isVisible = false;
|
|
15
|
+
/** Sidebar position */
|
|
16
|
+
this.position = 'left';
|
|
17
|
+
/** Indicates whether or not the sidebar is open. You can use this in lieu of the show/hide methods. */
|
|
18
|
+
this.open = false;
|
|
19
|
+
/** Sidebar width */
|
|
20
|
+
this.width = '16rem';
|
|
21
|
+
/** Define whether sidebar is toggled meaning only one menu can be open at the same time*/
|
|
22
|
+
this.toggled = false;
|
|
23
|
+
this.handleTransitionEnd = (event) => {
|
|
24
|
+
const target = event.target;
|
|
25
|
+
// Ensure we only emit one event when the target element is no longer visible
|
|
26
|
+
if (event.type === 'transitionend' && target.classList.contains('sidebar__container')) {
|
|
27
|
+
this.resetTransitionVariables();
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
this.closeSiblingDetailsOnShow = (event) => {
|
|
31
|
+
const clickedMenuItem = event.target;
|
|
32
|
+
scrollIntoView(clickedMenuItem, this.sidebar);
|
|
33
|
+
const closeAllSiblingsBySiblingProperty = (getSibling) => {
|
|
34
|
+
let node = clickedMenuItem;
|
|
35
|
+
while (getSibling(node) !== null) {
|
|
36
|
+
node = getSibling(node);
|
|
37
|
+
if (isSidebarItemGroup(node)) {
|
|
38
|
+
node.shadowRoot.querySelector('six-details').open = false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
// close all previous siblings
|
|
43
|
+
closeAllSiblingsBySiblingProperty((node) => node.previousElementSibling);
|
|
44
|
+
// close all further siblings
|
|
45
|
+
closeAllSiblingsBySiblingProperty((node) => node.nextElementSibling);
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
handleOpenChange() {
|
|
49
|
+
this.open ? this.show() : this.hide();
|
|
50
|
+
}
|
|
51
|
+
componentWillLoad() {
|
|
52
|
+
// Show on init if open
|
|
53
|
+
if (this.open) {
|
|
54
|
+
void this.show();
|
|
55
|
+
// if the sidebar is open by default we need to manually reset the
|
|
56
|
+
// transition variables since there will be no transition event
|
|
57
|
+
this.resetTransitionVariables();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
componentDidRender() {
|
|
61
|
+
this.setupTogglableMenuItems();
|
|
62
|
+
}
|
|
63
|
+
disconnectedCallback() {
|
|
64
|
+
this.sidebar.removeEventListener('six-details-show', this.closeSiblingDetailsOnShow);
|
|
65
|
+
}
|
|
66
|
+
setupTogglableMenuItems() {
|
|
67
|
+
if (!this.toggled) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
this.markAllMenuItemsAsSelectableEmpty();
|
|
71
|
+
this.sidebar.addEventListener('six-details-show', this.closeSiblingDetailsOnShow);
|
|
72
|
+
}
|
|
73
|
+
markAllMenuItemsAsSelectableEmpty() {
|
|
74
|
+
// when you have a toggled menu you also want to close other menu items when you click on an item without children
|
|
75
|
+
// nice benefit this item will then also be highlighted
|
|
76
|
+
const slot = this.sidebar.querySelector('slot');
|
|
77
|
+
const nodes = slot.assignedElements();
|
|
78
|
+
// since we don't just want to make the top level empty menuItems selectable in toggled mode,
|
|
79
|
+
// but also nested items we need to traverse the whole menu item tree
|
|
80
|
+
const menuItems = [];
|
|
81
|
+
while (nodes.length > 0) {
|
|
82
|
+
const node = nodes.pop();
|
|
83
|
+
// collect six-details in the current shadowDOM
|
|
84
|
+
const menuItemsForCurrentNode = node.shadowRoot.querySelectorAll('six-details');
|
|
85
|
+
menuItems.push(...menuItemsForCurrentNode);
|
|
86
|
+
// collect all six-sidebar-item-group children of the current node to afterwards check their shadowDOM too
|
|
87
|
+
const newItemGroups = Array.from(node.children).filter(isSidebarItemGroup);
|
|
88
|
+
nodes.push(...newItemGroups);
|
|
89
|
+
}
|
|
90
|
+
menuItems.forEach((details) => (details.selectableEmpty = true));
|
|
91
|
+
}
|
|
92
|
+
/** Toggles whether the sidebar should be shown or hidden */
|
|
93
|
+
async toggle() {
|
|
94
|
+
if (this.willShow || this.willHide) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (this.open) {
|
|
98
|
+
await this.hide();
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
await this.show();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/** Shows the sidebar */
|
|
105
|
+
async show() {
|
|
106
|
+
if (this.willShow) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const sixShow = this.sixShow.emit();
|
|
110
|
+
if (sixShow.defaultPrevented) {
|
|
111
|
+
this.open = false;
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
this.willShow = true;
|
|
115
|
+
this.isVisible = true;
|
|
116
|
+
this.open = true;
|
|
117
|
+
}
|
|
118
|
+
/** Hides the sidebar */
|
|
119
|
+
async hide() {
|
|
120
|
+
if (this.willHide) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const sixHide = this.sixHide.emit();
|
|
124
|
+
if (sixHide.defaultPrevented) {
|
|
125
|
+
this.open = true;
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
this.willHide = true;
|
|
129
|
+
this.open = false;
|
|
130
|
+
}
|
|
131
|
+
/** Allows to select a menu item programmatically by index */
|
|
132
|
+
async selectItemByIndex(index) {
|
|
133
|
+
const slot = this.sidebar.querySelector('slot');
|
|
134
|
+
const menuItemsOnRootLevel = slot
|
|
135
|
+
.assignedElements()
|
|
136
|
+
.map((el) => el.shadowRoot.querySelector('six-details'));
|
|
137
|
+
if (index < 0 || index > menuItemsOnRootLevel.length - 1) {
|
|
138
|
+
console.error(`Tried to access sidebar menu item by index, but provided index out of range. Provided index: ${index}`);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
await menuItemsOnRootLevel[index].show();
|
|
142
|
+
}
|
|
143
|
+
/** Allows to select a menu item programmatically by name */
|
|
144
|
+
async selectItemByName(value) {
|
|
145
|
+
const slot = this.sidebar.querySelector('slot');
|
|
146
|
+
const sidebarItemGroups = slot.assignedElements();
|
|
147
|
+
const indexOfSelectedElement = sidebarItemGroups.findIndex((el) => (el === null || el === void 0 ? void 0 : el.name) === value);
|
|
148
|
+
const selectedItem = sidebarItemGroups[indexOfSelectedElement].shadowRoot.querySelector('six-details');
|
|
149
|
+
await selectedItem.show();
|
|
150
|
+
}
|
|
151
|
+
resetTransitionVariables() {
|
|
152
|
+
this.isVisible = this.open;
|
|
153
|
+
this.willShow = false;
|
|
154
|
+
this.willHide = false;
|
|
155
|
+
this.open ? this.sixAfterShow.emit() : this.sixAfterHide.emit();
|
|
156
|
+
}
|
|
157
|
+
render() {
|
|
158
|
+
return (h("host", { class: "six-sidebar" },
|
|
159
|
+
h("div", { class: {
|
|
160
|
+
sidebar__container: true,
|
|
161
|
+
'sidebar--visible': this.isVisible,
|
|
162
|
+
'sidebar--open': this.open,
|
|
163
|
+
'sidebar--left': this.position === 'left',
|
|
164
|
+
'sidebar--right': this.position === 'right',
|
|
165
|
+
}, style: {
|
|
166
|
+
width: this.width,
|
|
167
|
+
[`margin-${this.position}`]: this.open ? '0' : `calc(1rem - ${this.width})`,
|
|
168
|
+
}, ref: (el) => (this.sidebar = el), "aria-hidden": this.open ? 'false' : 'true', onTransitionEnd: this.handleTransitionEnd },
|
|
169
|
+
h("slot", null))));
|
|
170
|
+
}
|
|
171
|
+
static get is() { return "six-sidebar"; }
|
|
172
|
+
static get encapsulation() { return "shadow"; }
|
|
173
|
+
static get originalStyleUrls() { return {
|
|
174
|
+
"$": ["six-sidebar.scss"]
|
|
175
|
+
}; }
|
|
176
|
+
static get styleUrls() { return {
|
|
177
|
+
"$": ["six-sidebar.css"]
|
|
178
|
+
}; }
|
|
179
|
+
static get properties() { return {
|
|
180
|
+
"position": {
|
|
181
|
+
"type": "string",
|
|
182
|
+
"mutable": false,
|
|
183
|
+
"complexType": {
|
|
184
|
+
"original": "'left' | 'right'",
|
|
185
|
+
"resolved": "\"left\" | \"right\"",
|
|
186
|
+
"references": {}
|
|
187
|
+
},
|
|
188
|
+
"required": false,
|
|
189
|
+
"optional": false,
|
|
190
|
+
"docs": {
|
|
191
|
+
"tags": [],
|
|
192
|
+
"text": "Sidebar position"
|
|
193
|
+
},
|
|
194
|
+
"attribute": "position",
|
|
195
|
+
"reflect": false,
|
|
196
|
+
"defaultValue": "'left'"
|
|
197
|
+
},
|
|
198
|
+
"open": {
|
|
199
|
+
"type": "boolean",
|
|
200
|
+
"mutable": true,
|
|
201
|
+
"complexType": {
|
|
202
|
+
"original": "boolean",
|
|
203
|
+
"resolved": "boolean",
|
|
204
|
+
"references": {}
|
|
205
|
+
},
|
|
206
|
+
"required": false,
|
|
207
|
+
"optional": false,
|
|
208
|
+
"docs": {
|
|
209
|
+
"tags": [],
|
|
210
|
+
"text": "Indicates whether or not the sidebar is open. You can use this in lieu of the show/hide methods."
|
|
211
|
+
},
|
|
212
|
+
"attribute": "open",
|
|
213
|
+
"reflect": true,
|
|
214
|
+
"defaultValue": "false"
|
|
215
|
+
},
|
|
216
|
+
"width": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"mutable": false,
|
|
219
|
+
"complexType": {
|
|
220
|
+
"original": "string",
|
|
221
|
+
"resolved": "string",
|
|
222
|
+
"references": {}
|
|
223
|
+
},
|
|
224
|
+
"required": false,
|
|
225
|
+
"optional": false,
|
|
226
|
+
"docs": {
|
|
227
|
+
"tags": [],
|
|
228
|
+
"text": "Sidebar width"
|
|
229
|
+
},
|
|
230
|
+
"attribute": "width",
|
|
231
|
+
"reflect": false,
|
|
232
|
+
"defaultValue": "'16rem'"
|
|
233
|
+
},
|
|
234
|
+
"toggled": {
|
|
235
|
+
"type": "boolean",
|
|
236
|
+
"mutable": false,
|
|
237
|
+
"complexType": {
|
|
238
|
+
"original": "boolean",
|
|
239
|
+
"resolved": "boolean",
|
|
240
|
+
"references": {}
|
|
241
|
+
},
|
|
242
|
+
"required": false,
|
|
243
|
+
"optional": false,
|
|
244
|
+
"docs": {
|
|
245
|
+
"tags": [],
|
|
246
|
+
"text": "Define whether sidebar is toggled meaning only one menu can be open at the same time"
|
|
247
|
+
},
|
|
248
|
+
"attribute": "toggled",
|
|
249
|
+
"reflect": false,
|
|
250
|
+
"defaultValue": "false"
|
|
251
|
+
}
|
|
252
|
+
}; }
|
|
253
|
+
static get states() { return {
|
|
254
|
+
"isVisible": {}
|
|
255
|
+
}; }
|
|
256
|
+
static get events() { return [{
|
|
257
|
+
"method": "sixShow",
|
|
258
|
+
"name": "six-sidebar-show",
|
|
259
|
+
"bubbles": true,
|
|
260
|
+
"cancelable": true,
|
|
261
|
+
"composed": true,
|
|
262
|
+
"docs": {
|
|
263
|
+
"tags": [],
|
|
264
|
+
"text": "Emitted when the sidebar opens. Calling `event.preventDefault()` will prevent it from being opened."
|
|
265
|
+
},
|
|
266
|
+
"complexType": {
|
|
267
|
+
"original": "EmptyPayload",
|
|
268
|
+
"resolved": "undefined",
|
|
269
|
+
"references": {
|
|
270
|
+
"EmptyPayload": {
|
|
271
|
+
"location": "import",
|
|
272
|
+
"path": "../../utils/types"
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}, {
|
|
277
|
+
"method": "sixAfterShow",
|
|
278
|
+
"name": "six-sidebar-after-show",
|
|
279
|
+
"bubbles": true,
|
|
280
|
+
"cancelable": true,
|
|
281
|
+
"composed": true,
|
|
282
|
+
"docs": {
|
|
283
|
+
"tags": [],
|
|
284
|
+
"text": "Emitted after the sidebar opens and all transitions are complete."
|
|
285
|
+
},
|
|
286
|
+
"complexType": {
|
|
287
|
+
"original": "EmptyPayload",
|
|
288
|
+
"resolved": "undefined",
|
|
289
|
+
"references": {
|
|
290
|
+
"EmptyPayload": {
|
|
291
|
+
"location": "import",
|
|
292
|
+
"path": "../../utils/types"
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}, {
|
|
297
|
+
"method": "sixHide",
|
|
298
|
+
"name": "six-sidebar-hide",
|
|
299
|
+
"bubbles": true,
|
|
300
|
+
"cancelable": true,
|
|
301
|
+
"composed": true,
|
|
302
|
+
"docs": {
|
|
303
|
+
"tags": [],
|
|
304
|
+
"text": "Emitted when the sidebar closes. Calling `event.preventDefault()` will prevent it from being closed."
|
|
305
|
+
},
|
|
306
|
+
"complexType": {
|
|
307
|
+
"original": "EmptyPayload",
|
|
308
|
+
"resolved": "undefined",
|
|
309
|
+
"references": {
|
|
310
|
+
"EmptyPayload": {
|
|
311
|
+
"location": "import",
|
|
312
|
+
"path": "../../utils/types"
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}, {
|
|
317
|
+
"method": "sixAfterHide",
|
|
318
|
+
"name": "six-sidebar-after-hide",
|
|
319
|
+
"bubbles": true,
|
|
320
|
+
"cancelable": true,
|
|
321
|
+
"composed": true,
|
|
322
|
+
"docs": {
|
|
323
|
+
"tags": [],
|
|
324
|
+
"text": "Emitted after the sidebar closes and all transitions are complete."
|
|
325
|
+
},
|
|
326
|
+
"complexType": {
|
|
327
|
+
"original": "EmptyPayload",
|
|
328
|
+
"resolved": "undefined",
|
|
329
|
+
"references": {
|
|
330
|
+
"EmptyPayload": {
|
|
331
|
+
"location": "import",
|
|
332
|
+
"path": "../../utils/types"
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}, {
|
|
337
|
+
"method": "sixInitialFocus",
|
|
338
|
+
"name": "six-sidebar-initial-focus",
|
|
339
|
+
"bubbles": true,
|
|
340
|
+
"cancelable": true,
|
|
341
|
+
"composed": true,
|
|
342
|
+
"docs": {
|
|
343
|
+
"tags": [],
|
|
344
|
+
"text": "Emitted when the sidebar opens and the panel gains focus. Calling `event.preventDefault()` will prevent focus and\nallow you to set it on a different element in the sidebar, such as an input or button."
|
|
345
|
+
},
|
|
346
|
+
"complexType": {
|
|
347
|
+
"original": "EmptyPayload",
|
|
348
|
+
"resolved": "undefined",
|
|
349
|
+
"references": {
|
|
350
|
+
"EmptyPayload": {
|
|
351
|
+
"location": "import",
|
|
352
|
+
"path": "../../utils/types"
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}]; }
|
|
357
|
+
static get methods() { return {
|
|
358
|
+
"toggle": {
|
|
359
|
+
"complexType": {
|
|
360
|
+
"signature": "() => Promise<void>",
|
|
361
|
+
"parameters": [],
|
|
362
|
+
"references": {
|
|
363
|
+
"Promise": {
|
|
364
|
+
"location": "global"
|
|
365
|
+
}
|
|
366
|
+
},
|
|
367
|
+
"return": "Promise<void>"
|
|
368
|
+
},
|
|
369
|
+
"docs": {
|
|
370
|
+
"text": "Toggles whether the sidebar should be shown or hidden",
|
|
371
|
+
"tags": []
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
"show": {
|
|
375
|
+
"complexType": {
|
|
376
|
+
"signature": "() => Promise<void>",
|
|
377
|
+
"parameters": [],
|
|
378
|
+
"references": {
|
|
379
|
+
"Promise": {
|
|
380
|
+
"location": "global"
|
|
381
|
+
}
|
|
382
|
+
},
|
|
383
|
+
"return": "Promise<void>"
|
|
384
|
+
},
|
|
385
|
+
"docs": {
|
|
386
|
+
"text": "Shows the sidebar",
|
|
387
|
+
"tags": []
|
|
388
|
+
}
|
|
389
|
+
},
|
|
390
|
+
"hide": {
|
|
391
|
+
"complexType": {
|
|
392
|
+
"signature": "() => Promise<void>",
|
|
393
|
+
"parameters": [],
|
|
394
|
+
"references": {
|
|
395
|
+
"Promise": {
|
|
396
|
+
"location": "global"
|
|
397
|
+
}
|
|
398
|
+
},
|
|
399
|
+
"return": "Promise<void>"
|
|
400
|
+
},
|
|
401
|
+
"docs": {
|
|
402
|
+
"text": "Hides the sidebar",
|
|
403
|
+
"tags": []
|
|
404
|
+
}
|
|
405
|
+
},
|
|
406
|
+
"selectItemByIndex": {
|
|
407
|
+
"complexType": {
|
|
408
|
+
"signature": "(index: number) => Promise<void>",
|
|
409
|
+
"parameters": [{
|
|
410
|
+
"tags": [],
|
|
411
|
+
"text": ""
|
|
412
|
+
}],
|
|
413
|
+
"references": {
|
|
414
|
+
"Promise": {
|
|
415
|
+
"location": "global"
|
|
416
|
+
},
|
|
417
|
+
"HTMLSixDetailsElement": {
|
|
418
|
+
"location": "global"
|
|
419
|
+
}
|
|
420
|
+
},
|
|
421
|
+
"return": "Promise<void>"
|
|
422
|
+
},
|
|
423
|
+
"docs": {
|
|
424
|
+
"text": "Allows to select a menu item programmatically by index",
|
|
425
|
+
"tags": []
|
|
426
|
+
}
|
|
427
|
+
},
|
|
428
|
+
"selectItemByName": {
|
|
429
|
+
"complexType": {
|
|
430
|
+
"signature": "(value: string) => Promise<void>",
|
|
431
|
+
"parameters": [{
|
|
432
|
+
"tags": [],
|
|
433
|
+
"text": ""
|
|
434
|
+
}],
|
|
435
|
+
"references": {
|
|
436
|
+
"Promise": {
|
|
437
|
+
"location": "global"
|
|
438
|
+
},
|
|
439
|
+
"HTMLSixSidebarItemGroupElement": {
|
|
440
|
+
"location": "global"
|
|
441
|
+
}
|
|
442
|
+
},
|
|
443
|
+
"return": "Promise<void>"
|
|
444
|
+
},
|
|
445
|
+
"docs": {
|
|
446
|
+
"text": "Allows to select a menu item programmatically by name",
|
|
447
|
+
"tags": []
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
}; }
|
|
451
|
+
static get watchers() { return [{
|
|
452
|
+
"propName": "open",
|
|
453
|
+
"methodName": "handleOpenChange"
|
|
454
|
+
}]; }
|
|
455
|
+
}
|