@six-group/ui-library 0.0.0-insider.24fcc9e → 0.0.0-insider.2c99825
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/README.md +9 -0
- package/dist/cjs/event-listeners-9fb878f1.js +61 -0
- package/dist/cjs/event-listeners-9fb878f1.js.map +1 -0
- package/dist/cjs/{execution-control-46f388e0.js → execution-control-d728da70.js} +15 -12
- package/dist/cjs/execution-control-d728da70.js.map +1 -0
- package/dist/cjs/focus-visible-e2c9255a.js +47 -0
- package/dist/cjs/focus-visible-e2c9255a.js.map +1 -0
- package/dist/cjs/form-9ebaae7c.js +20 -0
- package/dist/cjs/form-9ebaae7c.js.map +1 -0
- package/dist/cjs/form-control-f9bc25dd.js +36 -0
- package/dist/cjs/form-control-f9bc25dd.js.map +1 -0
- package/dist/cjs/{index-2f6daa5b.js → index-3baddcdc.js} +724 -180
- package/dist/cjs/index-3baddcdc.js.map +1 -0
- package/dist/cjs/index.cjs.js +109 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +3 -12
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/modal-3ce015be.js +52 -0
- package/dist/cjs/modal-3ce015be.js.map +1 -0
- package/dist/cjs/{popover-f743f62b.js → popover-1e7c09f1.js} +109 -101
- package/dist/cjs/popover-1e7c09f1.js.map +1 -0
- package/dist/cjs/popup-e854acda.js +103 -0
- package/dist/cjs/popup-e854acda.js.map +1 -0
- package/dist/cjs/scroll-68033901.js +68 -0
- package/dist/{esm/scroll-180b53fd.js.map → cjs/scroll-68033901.js.map} +1 -1
- package/dist/cjs/set-attributes_2.cjs.entry.js +50 -48
- package/dist/cjs/set-attributes_2.cjs.entry.js.map +1 -1
- package/dist/cjs/six-alert.cjs.entry.js +108 -113
- package/dist/cjs/six-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/six-avatar.cjs.entry.js +20 -23
- package/dist/cjs/six-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/six-badge.cjs.entry.js +22 -22
- package/dist/cjs/six-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/six-button.cjs.entry.js +94 -92
- package/dist/cjs/six-button.cjs.entry.js.map +1 -1
- package/dist/cjs/six-card.cjs.entry.js +7 -7
- package/dist/cjs/six-card.cjs.entry.js.map +1 -1
- package/dist/cjs/six-checkbox.cjs.entry.js +112 -144
- package/dist/cjs/six-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/six-datepicker.cjs.entry.js +848 -979
- package/dist/cjs/six-datepicker.cjs.entry.js.map +1 -1
- package/dist/cjs/six-details.cjs.entry.js +127 -126
- package/dist/cjs/six-details.cjs.entry.js.map +1 -1
- package/dist/cjs/six-dialog.cjs.entry.js +127 -131
- package/dist/cjs/six-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/six-drawer.cjs.entry.js +144 -148
- package/dist/cjs/six-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/six-dropdown_2.cjs.entry.js +636 -617
- package/dist/cjs/six-dropdown_2.cjs.entry.js.map +1 -1
- package/dist/cjs/six-error-page.cjs.entry.js +82 -84
- package/dist/cjs/six-error-page.cjs.entry.js.map +1 -1
- package/dist/cjs/six-error.cjs.entry.js +21 -0
- package/dist/cjs/six-error.cjs.entry.js.map +1 -0
- package/dist/cjs/six-file-list-item.cjs.entry.js +33 -33
- package/dist/cjs/six-file-list-item.cjs.entry.js.map +1 -1
- package/dist/cjs/six-file-list.cjs.entry.js +7 -7
- package/dist/cjs/six-file-list.cjs.entry.js.map +1 -1
- package/dist/cjs/six-file-upload.cjs.entry.js +99 -99
- package/dist/cjs/six-file-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/six-footer.cjs.entry.js +7 -7
- package/dist/cjs/six-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/six-group-label.cjs.entry.js +43 -42
- package/dist/cjs/six-group-label.cjs.entry.js.map +1 -1
- package/dist/cjs/six-header.cjs.entry.js +172 -135
- package/dist/cjs/six-header.cjs.entry.js.map +1 -1
- package/dist/cjs/six-icon-button.cjs.entry.js +32 -32
- package/dist/cjs/six-icon-button.cjs.entry.js.map +1 -1
- package/dist/cjs/six-icon.cjs.entry.js +22 -22
- package/dist/cjs/six-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/six-input.cjs.entry.js +191 -221
- package/dist/cjs/six-input.cjs.entry.js.map +1 -1
- package/dist/cjs/six-item-picker.cjs.entry.js +413 -336
- package/dist/cjs/six-item-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/six-language-switcher.cjs.entry.js +46 -46
- package/dist/cjs/six-language-switcher.cjs.entry.js.map +1 -1
- package/dist/cjs/six-layout-grid.cjs.entry.js +21 -19
- package/dist/cjs/six-layout-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/six-main-container.cjs.entry.js +9 -9
- package/dist/cjs/six-main-container.cjs.entry.js.map +1 -1
- package/dist/cjs/six-menu-divider.cjs.entry.js +7 -7
- package/dist/cjs/six-menu-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/six-menu-item.cjs.entry.js +49 -47
- package/dist/cjs/six-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/six-menu-label.cjs.entry.js +7 -7
- package/dist/cjs/six-menu-label.cjs.entry.js.map +1 -1
- package/dist/cjs/six-picto.cjs.entry.js +14 -11
- package/dist/cjs/six-picto.cjs.entry.js.map +1 -1
- package/dist/cjs/six-progress-bar.cjs.entry.js +14 -14
- package/dist/cjs/six-progress-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/six-progress-ring.cjs.entry.js +28 -28
- package/dist/cjs/six-progress-ring.cjs.entry.js.map +1 -1
- package/dist/cjs/six-radio.cjs.entry.js +103 -112
- package/dist/cjs/six-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/six-range.cjs.entry.js +185 -181
- package/dist/cjs/six-range.cjs.entry.js.map +1 -1
- package/dist/cjs/six-root.cjs.entry.js +30 -30
- package/dist/cjs/six-root.cjs.entry.js.map +1 -1
- package/dist/cjs/six-search-field.cjs.entry.js +43 -38
- package/dist/cjs/six-search-field.cjs.entry.js.map +1 -1
- package/dist/cjs/six-select.cjs.entry.js +366 -396
- package/dist/cjs/six-select.cjs.entry.js.map +1 -1
- package/dist/cjs/six-sidebar-item-group.cjs.entry.js +56 -41
- package/dist/cjs/six-sidebar-item-group.cjs.entry.js.map +1 -1
- package/dist/cjs/six-sidebar-item.cjs.entry.js +17 -15
- package/dist/cjs/six-sidebar-item.cjs.entry.js.map +1 -1
- package/dist/cjs/six-sidebar.cjs.entry.js +175 -154
- package/dist/cjs/six-sidebar.cjs.entry.js.map +1 -1
- package/dist/cjs/six-spinner.cjs.entry.js +14 -14
- package/dist/cjs/six-spinner.cjs.entry.js.map +1 -1
- package/dist/cjs/six-switch.cjs.entry.js +107 -95
- package/dist/cjs/six-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/six-tab-group.cjs.entry.js +226 -213
- package/dist/cjs/six-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/six-tab-panel.cjs.entry.js +13 -13
- package/dist/cjs/six-tab-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/six-tab.cjs.entry.js +55 -37
- package/dist/cjs/six-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/six-tag.cjs.entry.js +55 -36
- package/dist/cjs/six-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/six-textarea.cjs.entry.js +182 -205
- package/dist/cjs/six-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/six-tile.cjs.entry.js +74 -77
- package/dist/cjs/six-tile.cjs.entry.js.map +1 -1
- package/dist/cjs/six-timepicker.cjs.entry.js +343 -404
- package/dist/cjs/six-timepicker.cjs.entry.js.map +1 -1
- package/dist/cjs/six-tooltip.cjs.entry.js +145 -148
- package/dist/cjs/six-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/slot-9821749e.js +53 -0
- package/dist/cjs/slot-9821749e.js.map +1 -0
- package/dist/cjs/types-0a6d66f6.js +17 -0
- package/dist/cjs/types-0a6d66f6.js.map +1 -0
- package/dist/cjs/ui-library.cjs.js +3 -6
- package/dist/cjs/ui-library.cjs.js.map +1 -1
- package/dist/collection/collection-manifest.json +55 -55
- package/dist/collection/components/six-alert/six-alert.js +339 -337
- package/dist/collection/components/six-alert/six-alert.js.map +1 -1
- package/dist/collection/components/six-alert/test/six-alert.spec.js +25 -0
- package/dist/collection/components/six-alert/test/six-alert.spec.js.map +1 -0
- package/dist/collection/components/six-avatar/six-avatar.js +112 -115
- package/dist/collection/components/six-avatar/six-avatar.js.map +1 -1
- package/dist/collection/components/six-avatar/test/six-avatar.spec.js +26 -0
- package/dist/collection/components/six-avatar/test/six-avatar.spec.js.map +1 -0
- package/dist/collection/components/six-badge/six-badge.js +91 -91
- package/dist/collection/components/six-badge/six-badge.js.map +1 -1
- package/dist/collection/components/six-badge/test/six-badge.spec.js +20 -0
- package/dist/collection/components/six-badge/test/six-badge.spec.js.map +1 -0
- package/dist/collection/components/six-button/six-button.css +5 -30
- package/dist/collection/components/six-button/six-button.js +449 -440
- package/dist/collection/components/six-button/six-button.js.map +1 -1
- package/dist/collection/components/six-button/test/six-button.spec.js +69 -0
- package/dist/collection/components/six-button/test/six-button.spec.js.map +1 -0
- package/dist/collection/components/six-card/six-card.js +16 -16
- package/dist/collection/components/six-card/six-card.js.map +1 -1
- package/dist/collection/components/six-card/test/six-card.spec.js +18 -0
- package/dist/collection/components/six-card/test/six-card.spec.js.map +1 -0
- package/dist/collection/components/six-checkbox/six-checkbox.css +9 -1
- package/dist/collection/components/six-checkbox/six-checkbox.js +425 -517
- package/dist/collection/components/six-checkbox/six-checkbox.js.map +1 -1
- package/dist/collection/components/six-checkbox/test/six-checkbox.spec.js +83 -0
- package/dist/collection/components/six-checkbox/test/six-checkbox.spec.js.map +1 -0
- package/dist/collection/components/six-datepicker/components/day-selection.js +10 -10
- package/dist/collection/components/six-datepicker/components/day-selection.js.map +1 -1
- package/dist/collection/components/six-datepicker/components/month-selection.js +11 -10
- package/dist/collection/components/six-datepicker/components/month-selection.js.map +1 -1
- package/dist/collection/components/six-datepicker/components/year-selection.js +11 -8
- package/dist/collection/components/six-datepicker/components/year-selection.js.map +1 -1
- package/dist/collection/components/six-datepicker/six-date-formats.js +20 -20
- package/dist/collection/components/six-datepicker/six-date-formats.js.map +1 -1
- package/dist/collection/components/six-datepicker/six-datepicker.js +1052 -1217
- package/dist/collection/components/six-datepicker/six-datepicker.js.map +1 -1
- package/dist/collection/components/six-datepicker/test/six-datepicker.spec.js +26 -0
- package/dist/collection/components/six-datepicker/test/six-datepicker.spec.js.map +1 -0
- package/dist/collection/components/six-datepicker/test/six-datepicker.test-helpers.js +14 -14
- package/dist/collection/components/six-datepicker/test/six-datepicker.test-helpers.js.map +1 -1
- package/dist/collection/components/six-details/six-details.css +3 -1
- package/dist/collection/components/six-details/six-details.js +409 -402
- package/dist/collection/components/six-details/six-details.js.map +1 -1
- package/dist/collection/components/six-details/test/six-details.spec.js +36 -0
- package/dist/collection/components/six-details/test/six-details.spec.js.map +1 -0
- package/dist/collection/components/six-dialog/six-dialog.js +361 -357
- package/dist/collection/components/six-dialog/six-dialog.js.map +1 -1
- package/dist/collection/components/six-dialog/test/six-dialog.spec.js +34 -0
- package/dist/collection/components/six-dialog/test/six-dialog.spec.js.map +1 -0
- package/dist/collection/components/six-drawer/six-drawer.js +414 -410
- package/dist/collection/components/six-drawer/six-drawer.js.map +1 -1
- package/dist/collection/components/six-drawer/test/six-drawer.spec.js +34 -0
- package/dist/collection/components/six-drawer/test/six-drawer.spec.js.map +1 -0
- package/dist/collection/components/six-dropdown/six-dropdown.css +2 -1
- package/dist/collection/components/six-dropdown/six-dropdown.js +894 -870
- package/dist/collection/components/six-dropdown/six-dropdown.js.map +1 -1
- package/dist/collection/components/six-dropdown/test/six-dropdown.spec.js +122 -0
- package/dist/collection/components/six-dropdown/test/six-dropdown.spec.js.map +1 -0
- package/dist/collection/components/six-error/six-error.css +5 -0
- package/dist/collection/components/six-error/six-error.js +25 -0
- package/dist/collection/components/six-error/six-error.js.map +1 -0
- package/dist/collection/components/six-error-page/six-error-page.js +178 -180
- package/dist/collection/components/six-error-page/six-error-page.js.map +1 -1
- package/dist/collection/components/six-error-page/test/six-error-page.spec.js +240 -0
- package/dist/collection/components/six-error-page/test/six-error-page.spec.js.map +1 -0
- package/dist/collection/components/six-file-list/six-file-list.js +16 -16
- package/dist/collection/components/six-file-list/six-file-list.js.map +1 -1
- package/dist/collection/components/six-file-list/test/six-file-list.spec.js +67 -0
- package/dist/collection/components/six-file-list/test/six-file-list.spec.js.map +1 -0
- package/dist/collection/components/six-file-list-item/six-file-list-item.js +196 -194
- package/dist/collection/components/six-file-list-item/six-file-list-item.js.map +1 -1
- package/dist/collection/components/six-file-list-item/test/six-file-list-item.spec.js +169 -0
- package/dist/collection/components/six-file-list-item/test/six-file-list-item.spec.js.map +1 -0
- package/dist/collection/components/six-file-upload/six-file-upload.js +293 -291
- package/dist/collection/components/six-file-upload/six-file-upload.js.map +1 -1
- package/dist/collection/components/six-file-upload/test/six-file-upload.spec.js +103 -0
- package/dist/collection/components/six-file-upload/test/six-file-upload.spec.js.map +1 -0
- package/dist/collection/components/six-footer/six-footer.js +16 -16
- package/dist/collection/components/six-footer/six-footer.js.map +1 -1
- package/dist/collection/components/six-footer/test/six-footer.spec.js +21 -0
- package/dist/collection/components/six-footer/test/six-footer.spec.js.map +1 -0
- package/dist/collection/components/six-group-label/six-group-label.css +4 -1
- package/dist/collection/components/six-group-label/six-group-label.js +158 -156
- package/dist/collection/components/six-group-label/six-group-label.js.map +1 -1
- package/dist/collection/components/six-group-label/test/six-group-label.spec.js +45 -0
- package/dist/collection/components/six-group-label/test/six-group-label.spec.js.map +1 -0
- package/dist/collection/components/six-header/six-header.css +4 -0
- package/dist/collection/components/six-header/six-header.js +443 -380
- package/dist/collection/components/six-header/six-header.js.map +1 -1
- package/dist/collection/components/six-header/test/six-header.spec.js +177 -0
- package/dist/collection/components/six-header/test/six-header.spec.js.map +1 -0
- package/dist/collection/components/six-icon/six-icon.css +7 -0
- package/dist/collection/components/six-icon/six-icon.js +72 -72
- package/dist/collection/components/six-icon/six-icon.js.map +1 -1
- package/dist/collection/components/six-icon/test/six-icon.spec.js +20 -0
- package/dist/collection/components/six-icon/test/six-icon.spec.js.map +1 -0
- package/dist/collection/components/six-icon-button/six-icon-button.css +4 -4
- package/dist/collection/components/six-icon-button/six-icon-button.js +133 -133
- package/dist/collection/components/six-icon-button/six-icon-button.js.map +1 -1
- package/dist/collection/components/six-icon-button/test/six-icon-button.spec.js +23 -0
- package/dist/collection/components/six-icon-button/test/six-icon-button.spec.js.map +1 -0
- package/dist/collection/components/six-input/six-input.css +5 -2
- package/dist/collection/components/six-input/six-input.js +946 -1096
- package/dist/collection/components/six-input/six-input.js.map +1 -1
- package/dist/collection/components/six-input/test/six-input.spec.js +39 -0
- package/dist/collection/components/six-input/test/six-input.spec.js.map +1 -0
- package/dist/collection/components/six-item-picker/six-item-picker.css +8 -0
- package/dist/collection/components/six-item-picker/six-item-picker.js +739 -658
- package/dist/collection/components/six-item-picker/six-item-picker.js.map +1 -1
- package/dist/collection/components/six-item-picker/test/six-item-picker.spec.js +90 -0
- package/dist/collection/components/six-item-picker/test/six-item-picker.spec.js.map +1 -0
- package/dist/collection/components/six-item-picker/types.js +7 -7
- package/dist/collection/components/six-item-picker/types.js.map +1 -1
- package/dist/collection/components/six-language-switcher/six-language-switcher.js +125 -123
- package/dist/collection/components/six-language-switcher/six-language-switcher.js.map +1 -1
- package/dist/collection/components/six-language-switcher/test/six-language-switcher.spec.js +196 -0
- package/dist/collection/components/six-language-switcher/test/six-language-switcher.spec.js.map +1 -0
- package/dist/collection/components/six-layout-grid/six-layout-grid.js +56 -54
- package/dist/collection/components/six-layout-grid/six-layout-grid.js.map +1 -1
- package/dist/collection/components/six-layout-grid/test/six-layout-grid.spec.js +18 -0
- package/dist/collection/components/six-layout-grid/test/six-layout-grid.spec.js.map +1 -0
- package/dist/collection/components/six-main-container/six-main-container.js +42 -42
- package/dist/collection/components/six-main-container/six-main-container.js.map +1 -1
- package/dist/collection/components/six-main-container/test/six-main-container.spec.js +22 -0
- package/dist/collection/components/six-main-container/test/six-main-container.spec.js.map +1 -0
- package/dist/collection/components/six-menu/six-menu.js +368 -358
- package/dist/collection/components/six-menu/six-menu.js.map +1 -1
- package/dist/collection/components/six-menu/test/six-menu.spec.js +93 -0
- package/dist/collection/components/six-menu/test/six-menu.spec.js.map +1 -0
- package/dist/collection/components/six-menu-divider/six-menu-divider.js +16 -16
- package/dist/collection/components/six-menu-divider/six-menu-divider.js.map +1 -1
- package/dist/collection/components/six-menu-divider/test/six-menu-divider.spec.js +18 -0
- package/dist/collection/components/six-menu-divider/test/six-menu-divider.spec.js.map +1 -0
- package/dist/collection/components/six-menu-item/six-menu-item.js +182 -176
- package/dist/collection/components/six-menu-item/six-menu-item.js.map +1 -1
- package/dist/collection/components/six-menu-item/test/six-menu-item.spec.js +33 -0
- package/dist/collection/components/six-menu-item/test/six-menu-item.spec.js.map +1 -0
- package/dist/collection/components/six-menu-label/six-menu-label.js +16 -16
- package/dist/collection/components/six-menu-label/six-menu-label.js.map +1 -1
- package/dist/collection/components/six-menu-label/test/six-menu-label.spec.js +20 -0
- package/dist/collection/components/six-menu-label/test/six-menu-label.spec.js.map +1 -0
- package/dist/collection/components/six-picto/six-picto.js +47 -44
- package/dist/collection/components/six-picto/six-picto.js.map +1 -1
- package/dist/collection/components/six-picto/test/six-picto.spec.js +33 -0
- package/dist/collection/components/six-picto/test/six-picto.spec.js.map +1 -0
- package/dist/collection/components/six-progress-bar/six-progress-bar.js +65 -65
- package/dist/collection/components/six-progress-bar/six-progress-bar.js.map +1 -1
- package/dist/collection/components/six-progress-bar/test/six-progress-bar.spec.js +24 -0
- package/dist/collection/components/six-progress-bar/test/six-progress-bar.spec.js.map +1 -0
- package/dist/collection/components/six-progress-ring/six-progress-ring.js +100 -99
- package/dist/collection/components/six-progress-ring/six-progress-ring.js.map +1 -1
- package/dist/collection/components/six-progress-ring/test/six-progress-ring.spec.js +26 -0
- package/dist/collection/components/six-progress-ring/test/six-progress-ring.spec.js.map +1 -0
- package/dist/collection/components/six-radio/six-radio.js +322 -388
- package/dist/collection/components/six-radio/six-radio.js.map +1 -1
- package/dist/collection/components/six-radio/test/six-radio.spec.js +63 -0
- package/dist/collection/components/six-radio/test/six-radio.spec.js.map +1 -0
- package/dist/collection/components/six-range/six-range.css +4 -1
- package/dist/collection/components/six-range/six-range.js +571 -591
- package/dist/collection/components/six-range/six-range.js.map +1 -1
- package/dist/collection/components/six-range/test/six-range.spec.js +34 -0
- package/dist/collection/components/six-range/test/six-range.spec.js.map +1 -0
- package/dist/collection/components/six-root/six-root.js +155 -153
- package/dist/collection/components/six-root/six-root.js.map +1 -1
- package/dist/collection/components/six-root/test/six-root.spec.js +43 -0
- package/dist/collection/components/six-root/test/six-root.spec.js.map +1 -0
- package/dist/collection/components/six-search-field/six-search-field.js +172 -166
- package/dist/collection/components/six-search-field/six-search-field.js.map +1 -1
- package/dist/collection/components/six-search-field/test/six-search-field.spec.js +22 -0
- package/dist/collection/components/six-search-field/test/six-search-field.spec.js.map +1 -0
- package/dist/collection/components/six-select/six-select.css +10 -10
- package/dist/collection/components/six-select/six-select.js +937 -1030
- package/dist/collection/components/six-select/six-select.js.map +1 -1
- package/dist/collection/components/six-select/test/six-select.spec.js +86 -0
- package/dist/collection/components/six-select/test/six-select.spec.js.map +1 -0
- package/dist/collection/components/six-select/test/util.spec.js +81 -0
- package/dist/collection/components/six-select/test/util.spec.js.map +1 -0
- package/dist/collection/components/six-select/util.js +52 -0
- package/dist/collection/components/six-select/util.js.map +1 -0
- package/dist/collection/components/six-sidebar/six-sidebar.js +468 -435
- package/dist/collection/components/six-sidebar/six-sidebar.js.map +1 -1
- package/dist/collection/components/six-sidebar/test/six-sidebar.spec.js +22 -0
- package/dist/collection/components/six-sidebar/test/six-sidebar.spec.js.map +1 -0
- package/dist/collection/components/six-sidebar-item/six-sidebar-item.css +6 -1
- package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +102 -83
- package/dist/collection/components/six-sidebar-item/six-sidebar-item.js.map +1 -1
- package/dist/collection/components/six-sidebar-item/test/six-sidebar-item.spec.js +50 -0
- package/dist/collection/components/six-sidebar-item/test/six-sidebar-item.spec.js.map +1 -0
- package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.css +11 -0
- package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js +183 -151
- package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js.map +1 -1
- package/dist/collection/components/six-sidebar-item-group/test/six-sidebar-item-group.spec.js +53 -0
- package/dist/collection/components/six-sidebar-item-group/test/six-sidebar-item-group.spec.js.map +1 -0
- package/dist/collection/components/six-spinner/six-spinner.js +48 -47
- package/dist/collection/components/six-spinner/six-spinner.js.map +1 -1
- package/dist/collection/components/six-spinner/test/six-spinner.spec.js +37 -0
- package/dist/collection/components/six-spinner/test/six-spinner.spec.js.map +1 -0
- package/dist/collection/components/six-stage-indicator/six-stage-indicator.js +46 -45
- package/dist/collection/components/six-stage-indicator/six-stage-indicator.js.map +1 -1
- package/dist/collection/components/six-stage-indicator/test/six-stage-indicator.spec.js +117 -0
- package/dist/collection/components/six-stage-indicator/test/six-stage-indicator.spec.js.map +1 -0
- package/dist/collection/components/six-switch/six-switch.css +80 -0
- package/dist/collection/components/six-switch/six-switch.js +388 -378
- package/dist/collection/components/six-switch/six-switch.js.map +1 -1
- package/dist/collection/components/six-switch/test/six-switch.spec.js +73 -0
- package/dist/collection/components/six-switch/test/six-switch.spec.js.map +1 -0
- package/dist/collection/components/six-tab/six-tab.css +54 -5
- package/dist/collection/components/six-tab/six-tab.js +206 -184
- package/dist/collection/components/six-tab/six-tab.js.map +1 -1
- package/dist/collection/components/six-tab-group/six-tab-group.css +0 -31
- package/dist/collection/components/six-tab-group/six-tab-group.js +315 -335
- package/dist/collection/components/six-tab-group/six-tab-group.js.map +1 -1
- package/dist/collection/components/six-tab-panel/six-tab-panel.js +64 -64
- package/dist/collection/components/six-tab-panel/six-tab-panel.js.map +1 -1
- package/dist/collection/components/six-tab-panel/test/six-tab-panel.spec.js +20 -0
- package/dist/collection/components/six-tab-panel/test/six-tab-panel.spec.js.map +1 -0
- package/dist/collection/components/six-tag/six-tag.css +6 -0
- package/dist/collection/components/six-tag/six-tag.js +162 -142
- package/dist/collection/components/six-tag/six-tag.js.map +1 -1
- package/dist/collection/components/six-tag/test/six-tag.spec.js +54 -0
- package/dist/collection/components/six-tag/test/six-tag.spec.js.map +1 -0
- package/dist/collection/components/six-textarea/six-textarea.css +4 -1
- package/dist/collection/components/six-textarea/six-textarea.js +788 -882
- package/dist/collection/components/six-textarea/six-textarea.js.map +1 -1
- package/dist/collection/components/six-textarea/test/six-textarea.spec.js +119 -0
- package/dist/collection/components/six-textarea/test/six-textarea.spec.js.map +1 -0
- package/dist/collection/components/six-tile/six-tile.js +300 -299
- package/dist/collection/components/six-tile/six-tile.js.map +1 -1
- package/dist/collection/components/six-tile/test/six-tile.spec.js +69 -0
- package/dist/collection/components/six-tile/test/six-tile.spec.js.map +1 -0
- package/dist/collection/components/six-timepicker/six-timepicker.js +828 -911
- package/dist/collection/components/six-timepicker/six-timepicker.js.map +1 -1
- package/dist/collection/components/six-timepicker/test/six-timepicker.spec.js +496 -0
- package/dist/collection/components/six-timepicker/test/six-timepicker.spec.js.map +1 -0
- package/dist/collection/components/six-tooltip/six-tooltip.css +1 -1
- package/dist/collection/components/six-tooltip/six-tooltip.js +405 -402
- package/dist/collection/components/six-tooltip/six-tooltip.js.map +1 -1
- package/dist/collection/components/six-tooltip/test/six-tooltip.spec.js +28 -0
- package/dist/collection/components/six-tooltip/test/six-tooltip.spec.js.map +1 -0
- package/dist/collection/functional-components/form-control/form-control.js +20 -19
- package/dist/collection/functional-components/form-control/form-control.js.map +1 -1
- package/dist/collection/index.js +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/testUtil/delay.js +1 -1
- package/dist/collection/testUtil/delay.js.map +1 -1
- package/dist/collection/utils/animation.js +34 -0
- package/dist/collection/utils/animation.js.map +1 -0
- package/dist/collection/utils/date-util.js +511 -502
- package/dist/collection/utils/date-util.js.map +1 -1
- package/dist/collection/utils/date-util.spec.js +995 -0
- package/dist/collection/utils/date-util.spec.js.map +1 -0
- package/dist/collection/utils/error-messages.js +105 -0
- package/dist/collection/utils/error-messages.js.map +1 -0
- package/dist/collection/utils/event-listeners.js +53 -37
- package/dist/collection/utils/event-listeners.js.map +1 -1
- package/dist/collection/utils/execution-control.js +14 -13
- package/dist/collection/utils/execution-control.js.map +1 -1
- package/dist/collection/utils/focus-visible.js +28 -28
- package/dist/collection/utils/focus-visible.js.map +1 -1
- package/dist/collection/utils/form.js +15 -0
- package/dist/collection/utils/form.js.map +1 -0
- package/dist/collection/utils/modal.js +25 -24
- package/dist/collection/utils/modal.js.map +1 -1
- package/dist/collection/utils/offset.js +4 -4
- package/dist/collection/utils/offset.js.map +1 -1
- package/dist/collection/utils/popover.js +104 -90
- package/dist/collection/utils/popover.js.map +1 -1
- package/dist/collection/utils/popup.js +95 -0
- package/dist/collection/utils/popup.js.map +1 -0
- package/dist/collection/utils/scroll.js +28 -28
- package/dist/collection/utils/scroll.js.map +1 -1
- package/dist/collection/utils/scroll.spec.js +122 -0
- package/dist/collection/utils/scroll.spec.js.map +1 -0
- package/dist/collection/utils/slot.js +30 -45
- package/dist/collection/utils/slot.js.map +1 -1
- package/dist/collection/utils/support.js +10 -10
- package/dist/collection/utils/support.js.map +1 -1
- package/dist/collection/utils/tabbable.js +17 -17
- package/dist/collection/utils/tabbable.js.map +1 -1
- package/dist/collection/utils/time.util.js +73 -59
- package/dist/collection/utils/time.util.js.map +1 -1
- package/dist/collection/utils/time.util.spec.js +368 -0
- package/dist/collection/utils/time.util.spec.js.map +1 -0
- package/dist/collection/utils/type-check.js +0 -1
- package/dist/collection/utils/type-check.js.map +1 -1
- package/dist/collection/wrappers/set-attributes/set-attributes.js +66 -64
- package/dist/collection/wrappers/set-attributes/set-attributes.js.map +1 -1
- package/dist/collection/wrappers/set-attributes/test/set-attributes.spec.js +16 -0
- package/dist/collection/wrappers/set-attributes/test/set-attributes.spec.js.map +1 -0
- package/dist/components/event-listeners.js +53 -37
- package/dist/components/event-listeners.js.map +1 -1
- package/dist/components/execution-control.js +14 -11
- package/dist/components/execution-control.js.map +1 -1
- package/dist/components/focus-visible.js +28 -28
- package/dist/components/focus-visible.js.map +1 -1
- package/dist/components/form-control.js +26 -24
- package/dist/components/form-control.js.map +1 -1
- package/dist/components/form.js +18 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.js +169 -64
- package/dist/components/index.js.map +1 -1
- package/dist/components/modal.js +35 -34
- package/dist/components/modal.js.map +1 -1
- package/dist/components/popover.js +108 -100
- package/dist/components/popover.js.map +1 -1
- package/dist/components/scroll.js +32 -32
- package/dist/components/scroll.js.map +1 -1
- package/dist/components/set-attributes.d.ts +2 -2
- package/dist/components/set-attributes2.js +58 -54
- package/dist/components/set-attributes2.js.map +1 -1
- package/dist/components/six-alert.d.ts +2 -2
- package/dist/components/six-alert.js +143 -145
- package/dist/components/six-alert.js.map +1 -1
- package/dist/components/six-avatar.d.ts +2 -2
- package/dist/components/six-avatar.js +44 -47
- package/dist/components/six-avatar.js.map +1 -1
- package/dist/components/six-badge.d.ts +2 -2
- package/dist/components/six-badge.js +39 -39
- package/dist/components/six-badge.js.map +1 -1
- package/dist/components/six-button.d.ts +2 -2
- package/dist/components/six-button.js +132 -130
- package/dist/components/six-button.js.map +1 -1
- package/dist/components/six-card.d.ts +2 -2
- package/dist/components/six-card.js +20 -20
- package/dist/components/six-card.js.map +1 -1
- package/dist/components/six-checkbox.d.ts +2 -2
- package/dist/components/six-checkbox.js +149 -174
- package/dist/components/six-checkbox.js.map +1 -1
- package/dist/components/six-datepicker.d.ts +2 -2
- package/dist/components/six-datepicker.js +920 -1044
- package/dist/components/six-datepicker.js.map +1 -1
- package/dist/components/six-details.d.ts +2 -2
- package/dist/components/six-details2.js +158 -155
- package/dist/components/six-details2.js.map +1 -1
- package/dist/components/six-dialog.d.ts +2 -2
- package/dist/components/six-dialog.js +157 -159
- package/dist/components/six-dialog.js.map +1 -1
- package/dist/components/six-drawer.d.ts +2 -2
- package/dist/components/six-drawer.js +176 -178
- package/dist/components/six-drawer.js.map +1 -1
- package/dist/components/six-dropdown.d.ts +2 -2
- package/dist/components/six-dropdown2.js +471 -446
- package/dist/components/six-dropdown2.js.map +1 -1
- package/dist/components/six-error-page.d.ts +2 -2
- package/dist/components/six-error-page.js +106 -108
- package/dist/components/six-error-page.js.map +1 -1
- package/dist/components/{six-form.d.ts → six-error.d.ts} +4 -4
- package/dist/components/six-error.js +8 -0
- package/dist/components/six-error.js.map +1 -0
- package/dist/components/six-error2.js +32 -0
- package/dist/components/six-error2.js.map +1 -0
- package/dist/components/six-file-list-item.d.ts +2 -2
- package/dist/components/six-file-list-item.js +58 -58
- package/dist/components/six-file-list-item.js.map +1 -1
- package/dist/components/six-file-list.d.ts +2 -2
- package/dist/components/six-file-list.js +20 -20
- package/dist/components/six-file-list.js.map +1 -1
- package/dist/components/six-file-upload.d.ts +2 -2
- package/dist/components/six-file-upload.js +124 -124
- package/dist/components/six-file-upload.js.map +1 -1
- package/dist/components/six-footer.d.ts +2 -2
- package/dist/components/six-footer.js +20 -20
- package/dist/components/six-footer.js.map +1 -1
- package/dist/components/six-group-label.d.ts +2 -2
- package/dist/components/six-group-label.js +71 -61
- package/dist/components/six-group-label.js.map +1 -1
- package/dist/components/six-header.d.ts +2 -2
- package/dist/components/six-header.js +233 -187
- package/dist/components/six-header.js.map +1 -1
- package/dist/components/six-icon-button.d.ts +2 -2
- package/dist/components/six-icon-button2.js +55 -55
- package/dist/components/six-icon-button2.js.map +1 -1
- package/dist/components/six-icon.d.ts +2 -2
- package/dist/components/six-icon2.js +38 -38
- package/dist/components/six-icon2.js.map +1 -1
- package/dist/components/six-input.d.ts +2 -2
- package/dist/components/six-input2.js +257 -283
- package/dist/components/six-input2.js.map +1 -1
- package/dist/components/six-item-picker.d.ts +2 -2
- package/dist/components/six-item-picker2.js +456 -375
- package/dist/components/six-item-picker2.js.map +1 -1
- package/dist/components/six-language-switcher.d.ts +2 -2
- package/dist/components/six-language-switcher.js +64 -62
- package/dist/components/six-language-switcher.js.map +1 -1
- package/dist/components/six-layout-grid.d.ts +2 -2
- package/dist/components/six-layout-grid.js +38 -34
- package/dist/components/six-layout-grid.js.map +1 -1
- package/dist/components/six-main-container.d.ts +2 -2
- package/dist/components/six-main-container.js +24 -24
- package/dist/components/six-main-container.js.map +1 -1
- package/dist/components/six-menu-divider.d.ts +2 -2
- package/dist/components/six-menu-divider.js +20 -20
- package/dist/components/six-menu-divider.js.map +1 -1
- package/dist/components/six-menu-item.d.ts +2 -2
- package/dist/components/six-menu-item2.js +74 -72
- package/dist/components/six-menu-item2.js.map +1 -1
- package/dist/components/six-menu-label.d.ts +2 -2
- package/dist/components/six-menu-label.js +20 -20
- package/dist/components/six-menu-label.js.map +1 -1
- package/dist/components/six-menu.d.ts +2 -2
- package/dist/components/six-menu2.js +233 -226
- package/dist/components/six-menu2.js.map +1 -1
- package/dist/components/six-picto.d.ts +2 -2
- package/dist/components/six-picto2.js +29 -26
- package/dist/components/six-picto2.js.map +1 -1
- package/dist/components/six-progress-bar.d.ts +2 -2
- package/dist/components/six-progress-bar.js +30 -30
- package/dist/components/six-progress-bar.js.map +1 -1
- package/dist/components/six-progress-ring.d.ts +2 -2
- package/dist/components/six-progress-ring.js +47 -45
- package/dist/components/six-progress-ring.js.map +1 -1
- package/dist/components/six-radio.d.ts +2 -2
- package/dist/components/six-radio.js +128 -138
- package/dist/components/six-radio.js.map +1 -1
- package/dist/components/six-range.d.ts +2 -2
- package/dist/components/six-range.js +233 -218
- package/dist/components/six-range.js.map +1 -1
- package/dist/components/six-root.d.ts +2 -2
- package/dist/components/six-root.js +66 -64
- package/dist/components/six-root.js.map +1 -1
- package/dist/components/six-search-field.d.ts +2 -2
- package/dist/components/six-search-field.js +78 -65
- package/dist/components/six-search-field.js.map +1 -1
- package/dist/components/six-select.d.ts +2 -2
- package/dist/components/six-select.js +471 -486
- package/dist/components/six-select.js.map +1 -1
- package/dist/components/six-sidebar-item-group.d.ts +2 -2
- package/dist/components/six-sidebar-item-group.js +87 -71
- package/dist/components/six-sidebar-item-group.js.map +1 -1
- package/dist/components/six-sidebar-item.d.ts +2 -2
- package/dist/components/six-sidebar-item.js +35 -32
- package/dist/components/six-sidebar-item.js.map +1 -1
- package/dist/components/six-sidebar.d.ts +2 -2
- package/dist/components/six-sidebar.js +200 -177
- package/dist/components/six-sidebar.js.map +1 -1
- package/dist/components/six-spinner.d.ts +2 -2
- package/dist/components/six-spinner2.js +29 -29
- package/dist/components/six-spinner2.js.map +1 -1
- package/dist/components/six-stage-indicator.d.ts +2 -2
- package/dist/components/six-stage-indicator2.js +28 -28
- package/dist/components/six-stage-indicator2.js.map +1 -1
- package/dist/components/six-switch.d.ts +2 -2
- package/dist/components/six-switch.js +144 -122
- package/dist/components/six-switch.js.map +1 -1
- package/dist/components/six-tab-group.d.ts +2 -2
- package/dist/components/six-tab-group.js +256 -241
- package/dist/components/six-tab-group.js.map +1 -1
- package/dist/components/six-tab-panel.d.ts +2 -2
- package/dist/components/six-tab-panel.js +29 -29
- package/dist/components/six-tab-panel.js.map +1 -1
- package/dist/components/six-tab.d.ts +2 -2
- package/dist/components/six-tab.js +85 -67
- package/dist/components/six-tab.js.map +1 -1
- package/dist/components/six-tag.d.ts +2 -2
- package/dist/components/six-tag2.js +91 -66
- package/dist/components/six-tag2.js.map +1 -1
- package/dist/components/six-textarea.d.ts +2 -2
- package/dist/components/six-textarea.js +231 -246
- package/dist/components/six-textarea.js.map +1 -1
- package/dist/components/six-tile.d.ts +2 -2
- package/dist/components/six-tile.js +115 -118
- package/dist/components/six-tile.js.map +1 -1
- package/dist/components/six-timepicker.d.ts +2 -2
- package/dist/components/six-timepicker.js +1 -1
- package/dist/components/six-timepicker2.js +507 -514
- package/dist/components/six-timepicker2.js.map +1 -1
- package/dist/components/six-tooltip.d.ts +2 -2
- package/dist/components/six-tooltip2.js +169 -170
- package/dist/components/six-tooltip2.js.map +1 -1
- package/dist/components/slot.js +31 -30
- package/dist/components/slot.js.map +1 -1
- package/dist/components.d.ts +361 -88
- package/dist/components.json +4646 -953
- package/dist/esm/event-listeners-706d4309.js +59 -0
- package/dist/esm/event-listeners-706d4309.js.map +1 -0
- package/dist/esm/{execution-control-1a60d709.js → execution-control-2ebaf4ef.js} +15 -12
- package/dist/esm/execution-control-2ebaf4ef.js.map +1 -0
- package/dist/esm/focus-visible-d9dbfeef.js +45 -0
- package/dist/esm/focus-visible-d9dbfeef.js.map +1 -0
- package/dist/esm/form-4b145b7a.js +18 -0
- package/dist/esm/form-4b145b7a.js.map +1 -0
- package/dist/esm/form-control-6b30894f.js +34 -0
- package/dist/esm/form-control-6b30894f.js.map +1 -0
- package/dist/esm/{index-5c0f6628.js → index-17d8173e.js} +724 -180
- package/dist/esm/index-17d8173e.js.map +1 -0
- package/dist/esm/index.js +105 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +4 -13
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/modal-96526245.js +49 -0
- package/dist/esm/modal-96526245.js.map +1 -0
- package/dist/esm/{popover-bd2c2fca.js → popover-25996e62.js} +109 -101
- package/dist/esm/popover-25996e62.js.map +1 -0
- package/dist/esm/popup-7209e9d5.js +98 -0
- package/dist/esm/popup-7209e9d5.js.map +1 -0
- package/dist/esm/scroll-3e16851e.js +64 -0
- package/dist/esm/scroll-3e16851e.js.map +1 -0
- package/dist/esm/set-attributes_2.entry.js +50 -48
- package/dist/esm/set-attributes_2.entry.js.map +1 -1
- package/dist/esm/six-alert.entry.js +108 -113
- package/dist/esm/six-alert.entry.js.map +1 -1
- package/dist/esm/six-avatar.entry.js +20 -23
- package/dist/esm/six-avatar.entry.js.map +1 -1
- package/dist/esm/six-badge.entry.js +22 -22
- package/dist/esm/six-badge.entry.js.map +1 -1
- package/dist/esm/six-button.entry.js +94 -92
- package/dist/esm/six-button.entry.js.map +1 -1
- package/dist/esm/six-card.entry.js +7 -7
- package/dist/esm/six-card.entry.js.map +1 -1
- package/dist/esm/six-checkbox.entry.js +112 -144
- package/dist/esm/six-checkbox.entry.js.map +1 -1
- package/dist/esm/six-datepicker.entry.js +849 -980
- package/dist/esm/six-datepicker.entry.js.map +1 -1
- package/dist/esm/six-details.entry.js +127 -126
- package/dist/esm/six-details.entry.js.map +1 -1
- package/dist/esm/six-dialog.entry.js +127 -131
- package/dist/esm/six-dialog.entry.js.map +1 -1
- package/dist/esm/six-drawer.entry.js +144 -148
- package/dist/esm/six-drawer.entry.js.map +1 -1
- package/dist/esm/six-dropdown_2.entry.js +636 -617
- package/dist/esm/six-dropdown_2.entry.js.map +1 -1
- package/dist/esm/six-error-page.entry.js +82 -84
- package/dist/esm/six-error-page.entry.js.map +1 -1
- package/dist/esm/six-error.entry.js +17 -0
- package/dist/esm/six-error.entry.js.map +1 -0
- package/dist/esm/six-file-list-item.entry.js +33 -33
- package/dist/esm/six-file-list-item.entry.js.map +1 -1
- package/dist/esm/six-file-list.entry.js +7 -7
- package/dist/esm/six-file-list.entry.js.map +1 -1
- package/dist/esm/six-file-upload.entry.js +99 -99
- package/dist/esm/six-file-upload.entry.js.map +1 -1
- package/dist/esm/six-footer.entry.js +7 -7
- package/dist/esm/six-footer.entry.js.map +1 -1
- package/dist/esm/six-group-label.entry.js +43 -42
- package/dist/esm/six-group-label.entry.js.map +1 -1
- package/dist/esm/six-header.entry.js +172 -135
- package/dist/esm/six-header.entry.js.map +1 -1
- package/dist/esm/six-icon-button.entry.js +32 -32
- package/dist/esm/six-icon-button.entry.js.map +1 -1
- package/dist/esm/six-icon.entry.js +22 -22
- package/dist/esm/six-icon.entry.js.map +1 -1
- package/dist/esm/six-input.entry.js +191 -221
- package/dist/esm/six-input.entry.js.map +1 -1
- package/dist/esm/six-item-picker.entry.js +413 -336
- package/dist/esm/six-item-picker.entry.js.map +1 -1
- package/dist/esm/six-language-switcher.entry.js +46 -46
- package/dist/esm/six-language-switcher.entry.js.map +1 -1
- package/dist/esm/six-layout-grid.entry.js +21 -19
- package/dist/esm/six-layout-grid.entry.js.map +1 -1
- package/dist/esm/six-main-container.entry.js +9 -9
- package/dist/esm/six-main-container.entry.js.map +1 -1
- package/dist/esm/six-menu-divider.entry.js +7 -7
- package/dist/esm/six-menu-divider.entry.js.map +1 -1
- package/dist/esm/six-menu-item.entry.js +49 -47
- package/dist/esm/six-menu-item.entry.js.map +1 -1
- package/dist/esm/six-menu-label.entry.js +7 -7
- package/dist/esm/six-menu-label.entry.js.map +1 -1
- package/dist/esm/six-picto.entry.js +14 -11
- package/dist/esm/six-picto.entry.js.map +1 -1
- package/dist/esm/six-progress-bar.entry.js +14 -14
- package/dist/esm/six-progress-bar.entry.js.map +1 -1
- package/dist/esm/six-progress-ring.entry.js +28 -28
- package/dist/esm/six-progress-ring.entry.js.map +1 -1
- package/dist/esm/six-radio.entry.js +103 -112
- package/dist/esm/six-radio.entry.js.map +1 -1
- package/dist/esm/six-range.entry.js +185 -181
- package/dist/esm/six-range.entry.js.map +1 -1
- package/dist/esm/six-root.entry.js +30 -30
- package/dist/esm/six-root.entry.js.map +1 -1
- package/dist/esm/six-search-field.entry.js +43 -38
- package/dist/esm/six-search-field.entry.js.map +1 -1
- package/dist/esm/six-select.entry.js +366 -396
- package/dist/esm/six-select.entry.js.map +1 -1
- package/dist/esm/six-sidebar-item-group.entry.js +56 -41
- package/dist/esm/six-sidebar-item-group.entry.js.map +1 -1
- package/dist/esm/six-sidebar-item.entry.js +17 -15
- package/dist/esm/six-sidebar-item.entry.js.map +1 -1
- package/dist/esm/six-sidebar.entry.js +175 -154
- package/dist/esm/six-sidebar.entry.js.map +1 -1
- package/dist/esm/six-spinner.entry.js +14 -14
- package/dist/esm/six-spinner.entry.js.map +1 -1
- package/dist/esm/six-switch.entry.js +107 -95
- package/dist/esm/six-switch.entry.js.map +1 -1
- package/dist/esm/six-tab-group.entry.js +226 -213
- package/dist/esm/six-tab-group.entry.js.map +1 -1
- package/dist/esm/six-tab-panel.entry.js +13 -13
- package/dist/esm/six-tab-panel.entry.js.map +1 -1
- package/dist/esm/six-tab.entry.js +55 -37
- package/dist/esm/six-tab.entry.js.map +1 -1
- package/dist/esm/six-tag.entry.js +55 -36
- package/dist/esm/six-tag.entry.js.map +1 -1
- package/dist/esm/six-textarea.entry.js +182 -205
- package/dist/esm/six-textarea.entry.js.map +1 -1
- package/dist/esm/six-tile.entry.js +74 -77
- package/dist/esm/six-tile.entry.js.map +1 -1
- package/dist/esm/six-timepicker.entry.js +343 -404
- package/dist/esm/six-timepicker.entry.js.map +1 -1
- package/dist/esm/six-tooltip.entry.js +145 -148
- package/dist/esm/six-tooltip.entry.js.map +1 -1
- package/dist/esm/slot-41bc439a.js +48 -0
- package/dist/esm/slot-41bc439a.js.map +1 -0
- package/dist/esm/types-07748c42.js +17 -0
- package/dist/esm/types-07748c42.js.map +1 -0
- package/dist/esm/ui-library.js +4 -7
- package/dist/esm/ui-library.js.map +1 -1
- package/dist/types/components/six-alert/six-alert.d.ts +40 -42
- package/dist/types/components/six-avatar/six-avatar.d.ts +11 -12
- package/dist/types/components/six-badge/six-badge.d.ts +7 -8
- package/dist/types/components/six-button/six-button.d.ts +48 -49
- package/dist/types/components/six-card/six-card.d.ts +1 -1
- package/dist/types/components/six-checkbox/six-checkbox.d.ts +58 -67
- package/dist/types/components/six-datepicker/components/day-selection.d.ts +9 -5
- package/dist/types/components/six-datepicker/components/month-selection.d.ts +8 -5
- package/dist/types/components/six-datepicker/components/year-selection.d.ts +7 -5
- package/dist/types/components/six-datepicker/six-date-formats.d.ts +20 -20
- package/dist/types/components/six-datepicker/six-datepicker.d.ts +189 -198
- package/dist/types/components/six-details/six-details.d.ts +42 -42
- package/dist/types/components/six-dialog/six-dialog.d.ts +50 -51
- package/dist/types/components/six-drawer/six-drawer.d.ts +58 -59
- package/dist/types/components/six-dropdown/six-dropdown.d.ts +112 -116
- package/dist/types/components/six-error/six-error.d.ts +9 -0
- package/dist/types/components/six-error-page/six-error-page.d.ts +25 -25
- package/dist/types/components/six-file-list/six-file-list.d.ts +1 -1
- package/dist/types/components/six-file-list-item/six-file-list-item.d.ts +23 -23
- package/dist/types/components/six-file-upload/six-file-upload.d.ts +33 -33
- package/dist/types/components/six-footer/six-footer.d.ts +1 -1
- package/dist/types/components/six-group-label/six-group-label.d.ts +22 -22
- package/dist/types/components/six-header/six-header.d.ts +59 -66
- package/dist/types/components/six-icon/six-icon.d.ts +5 -5
- package/dist/types/components/six-icon-button/six-icon-button.d.ts +18 -18
- package/dist/types/components/six-input/six-input.d.ts +108 -138
- package/dist/types/components/six-item-picker/six-item-picker.d.ts +97 -93
- package/dist/types/components/six-item-picker/types.d.ts +7 -7
- package/dist/types/components/six-language-switcher/six-language-switcher.d.ts +15 -15
- package/dist/types/components/six-layout-grid/six-layout-grid.d.ts +6 -6
- package/dist/types/components/six-main-container/six-main-container.d.ts +4 -4
- package/dist/types/components/six-menu/six-menu.d.ts +63 -64
- package/dist/types/components/six-menu-divider/six-menu-divider.d.ts +1 -1
- package/dist/types/components/six-menu-item/six-menu-item.d.ts +21 -21
- package/dist/types/components/six-menu-label/six-menu-label.d.ts +1 -1
- package/dist/types/components/six-picto/six-picto.d.ts +6 -6
- package/dist/types/components/six-progress-bar/six-progress-bar.d.ts +5 -5
- package/dist/types/components/six-progress-ring/six-progress-ring.d.ts +11 -11
- package/dist/types/components/six-radio/six-radio.d.ts +38 -49
- package/dist/types/components/six-range/six-range.d.ts +75 -83
- package/dist/types/components/six-root/six-root.d.ts +20 -20
- package/dist/types/components/six-search-field/six-search-field.d.ts +20 -21
- package/dist/types/components/six-select/six-select.d.ts +122 -136
- package/dist/types/components/six-select/util.d.ts +7 -0
- package/dist/types/components/six-sidebar/six-sidebar.d.ts +45 -45
- package/dist/types/components/six-sidebar-item/six-sidebar-item.d.ts +12 -7
- package/dist/types/components/six-sidebar-item-group/six-sidebar-item-group.d.ts +26 -19
- package/dist/types/components/six-spinner/six-spinner.d.ts +6 -5
- package/dist/types/components/six-stage-indicator/six-stage-indicator.d.ts +3 -3
- package/dist/types/components/six-switch/six-switch.d.ts +49 -45
- package/dist/types/components/six-tab/six-tab.d.ts +20 -20
- package/dist/types/components/six-tab-group/six-tab-group.d.ts +36 -40
- package/dist/types/components/six-tab-panel/six-tab-panel.d.ts +7 -7
- package/dist/types/components/six-tag/six-tag.d.ts +20 -14
- package/dist/types/components/six-textarea/six-textarea.d.ts +89 -114
- package/dist/types/components/six-tile/six-tile.d.ts +31 -32
- package/dist/types/components/six-timepicker/six-timepicker.d.ts +156 -170
- package/dist/types/components/six-tooltip/six-tooltip.d.ts +55 -57
- package/dist/types/components.d.ts +694 -440
- package/dist/types/functional-components/form-control/form-control.d.ts +34 -31
- package/dist/types/index.d.ts +1 -0
- package/dist/types/stencil-public-runtime.d.ts +49 -5
- package/dist/types/testUtil/delay.d.ts +1 -1
- package/dist/types/types.d.ts +2 -0
- package/dist/types/utils/animation.d.ts +12 -0
- package/dist/types/utils/date-util.d.ts +65 -57
- package/dist/types/utils/error-messages.d.ts +43 -0
- package/dist/types/utils/event-listeners.d.ts +11 -10
- package/dist/types/utils/execution-control.d.ts +1 -3
- package/dist/types/utils/focus-visible.d.ts +2 -2
- package/dist/types/utils/form.d.ts +1 -0
- package/dist/types/utils/modal.d.ts +8 -8
- package/dist/types/utils/offset.d.ts +2 -2
- package/dist/types/utils/popover.d.ts +22 -22
- package/dist/types/utils/popup.d.ts +9 -0
- package/dist/types/utils/slot.d.ts +2 -7
- package/dist/types/utils/tabbable.d.ts +1 -1
- package/dist/types/utils/time.util.d.ts +18 -9
- package/dist/types/utils/type-check.d.ts +3 -4
- package/dist/types/utils/types.d.ts +1 -1
- package/dist/types/wrappers/set-attributes/set-attributes.d.ts +7 -7
- package/dist/ui-library/index.esm.js +1 -1
- package/dist/ui-library/index.esm.js.map +1 -1
- package/dist/ui-library/p-06ba4450.js +2 -0
- package/dist/ui-library/p-06ba4450.js.map +1 -0
- package/dist/ui-library/{p-25a3bf57.js → p-0861899a.js} +1 -1
- package/dist/ui-library/p-0861899a.js.map +1 -0
- package/dist/ui-library/p-0a81b42c.entry.js +2 -0
- package/dist/ui-library/p-0a81b42c.entry.js.map +1 -0
- package/dist/ui-library/p-0beec94f.js +3 -0
- package/dist/ui-library/p-0beec94f.js.map +1 -0
- package/dist/ui-library/p-0e7332db.entry.js +2 -0
- package/dist/ui-library/p-0e7332db.entry.js.map +1 -0
- package/dist/ui-library/{p-097cced4.entry.js → p-178f5782.entry.js} +2 -2
- package/dist/ui-library/p-178f5782.entry.js.map +1 -0
- package/dist/ui-library/p-19a61686.entry.js +2 -0
- package/dist/ui-library/p-19a61686.entry.js.map +1 -0
- package/dist/ui-library/{p-73597d13.entry.js → p-1d0c5929.entry.js} +2 -2
- package/dist/ui-library/p-1d0c5929.entry.js.map +1 -0
- package/dist/ui-library/p-23c02c98.entry.js +2 -0
- package/dist/ui-library/p-23c02c98.entry.js.map +1 -0
- package/dist/ui-library/p-28221447.entry.js +2 -0
- package/dist/ui-library/p-28221447.entry.js.map +1 -0
- package/dist/ui-library/p-2eed9d8d.entry.js +2 -0
- package/dist/ui-library/p-2eed9d8d.entry.js.map +1 -0
- package/dist/ui-library/p-3187bc23.entry.js +2 -0
- package/dist/ui-library/p-3187bc23.entry.js.map +1 -0
- package/dist/ui-library/p-32e1a5ab.entry.js +2 -0
- package/dist/ui-library/p-32e1a5ab.entry.js.map +1 -0
- package/dist/ui-library/{p-baa03951.entry.js → p-3d54ecf2.entry.js} +2 -2
- package/dist/ui-library/p-3d54ecf2.entry.js.map +1 -0
- package/dist/ui-library/p-4229f7e8.entry.js +2 -0
- package/dist/ui-library/p-4229f7e8.entry.js.map +1 -0
- package/dist/ui-library/p-4468dd26.entry.js +2 -0
- package/dist/ui-library/p-4468dd26.entry.js.map +1 -0
- package/dist/ui-library/p-479d8087.entry.js +2 -0
- package/dist/ui-library/p-479d8087.entry.js.map +1 -0
- package/dist/ui-library/p-49aa8d1e.entry.js +2 -0
- package/dist/ui-library/p-49aa8d1e.entry.js.map +1 -0
- package/dist/ui-library/{p-af793d04.entry.js → p-58661675.entry.js} +2 -2
- package/dist/ui-library/p-58661675.entry.js.map +1 -0
- package/dist/ui-library/p-5d43ea07.entry.js +2 -0
- package/dist/ui-library/p-5d43ea07.entry.js.map +1 -0
- package/dist/ui-library/p-6907a7dc.js +2 -0
- package/dist/ui-library/p-6907a7dc.js.map +1 -0
- package/dist/ui-library/p-6aa2929a.entry.js +2 -0
- package/dist/ui-library/p-6aa2929a.entry.js.map +1 -0
- package/dist/ui-library/p-7432d409.entry.js +2 -0
- package/dist/ui-library/p-7432d409.entry.js.map +1 -0
- package/dist/ui-library/{p-19b50b5a.entry.js → p-74a714c0.entry.js} +2 -2
- package/dist/ui-library/p-74a714c0.entry.js.map +1 -0
- package/dist/ui-library/p-76825395.entry.js +2 -0
- package/dist/ui-library/p-76825395.entry.js.map +1 -0
- package/dist/ui-library/p-7f856f00.js +2 -0
- package/dist/ui-library/p-7f856f00.js.map +1 -0
- package/dist/ui-library/{p-820c23f0.entry.js → p-816f857d.entry.js} +2 -2
- package/dist/ui-library/p-816f857d.entry.js.map +1 -0
- package/dist/ui-library/{p-eb8f05a9.js → p-8227aaed.js} +2 -2
- package/dist/ui-library/p-8227aaed.js.map +1 -0
- package/dist/ui-library/p-842b492e.js +2 -0
- package/dist/ui-library/p-842b492e.js.map +1 -0
- package/dist/ui-library/p-882fbf6f.entry.js +2 -0
- package/dist/ui-library/p-882fbf6f.entry.js.map +1 -0
- package/dist/ui-library/{p-c349d1d4.entry.js → p-88fd4973.entry.js} +2 -2
- package/dist/ui-library/p-88fd4973.entry.js.map +1 -0
- package/dist/ui-library/p-8b750c9e.entry.js +2 -0
- package/dist/ui-library/p-8b750c9e.entry.js.map +1 -0
- package/dist/ui-library/p-8bfb4bfc.js +2 -0
- package/dist/ui-library/p-8bfb4bfc.js.map +1 -0
- package/dist/ui-library/p-911eb578.entry.js +2 -0
- package/dist/ui-library/p-911eb578.entry.js.map +1 -0
- package/dist/ui-library/p-93fcda4a.entry.js +2 -0
- package/dist/ui-library/p-93fcda4a.entry.js.map +1 -0
- package/dist/ui-library/p-981b3228.entry.js +2 -0
- package/dist/ui-library/p-981b3228.entry.js.map +1 -0
- package/dist/ui-library/{p-4f8394d7.js → p-998de05d.js} +2 -2
- package/dist/ui-library/p-998de05d.js.map +1 -0
- package/dist/ui-library/p-9b1ff147.entry.js +2 -0
- package/dist/ui-library/p-9b1ff147.entry.js.map +1 -0
- package/dist/ui-library/p-a0658b26.entry.js +2 -0
- package/dist/ui-library/p-a0658b26.entry.js.map +1 -0
- package/dist/ui-library/p-a1502802.js +2 -0
- package/dist/ui-library/p-a1502802.js.map +1 -0
- package/dist/ui-library/p-a4e4620c.entry.js +2 -0
- package/dist/ui-library/p-a4e4620c.entry.js.map +1 -0
- package/dist/ui-library/{p-6d75f216.entry.js → p-ada23fe3.entry.js} +2 -2
- package/dist/ui-library/p-ada23fe3.entry.js.map +1 -0
- package/dist/ui-library/{p-a1d4f6cf.entry.js → p-b5ac1219.entry.js} +2 -2
- package/dist/ui-library/p-b5ac1219.entry.js.map +1 -0
- package/dist/ui-library/p-ba247565.entry.js +2 -0
- package/dist/ui-library/p-ba247565.entry.js.map +1 -0
- package/dist/ui-library/p-bdb79948.entry.js +2 -0
- package/dist/ui-library/p-bdb79948.entry.js.map +1 -0
- package/dist/ui-library/p-bee65dd9.entry.js +2 -0
- package/dist/ui-library/p-bee65dd9.entry.js.map +1 -0
- package/dist/ui-library/p-c07b1240.entry.js +2 -0
- package/dist/ui-library/p-c07b1240.entry.js.map +1 -0
- package/dist/ui-library/p-c12a94ce.entry.js +2 -0
- package/dist/ui-library/p-c12a94ce.entry.js.map +1 -0
- package/dist/ui-library/p-c1675a45.entry.js +2 -0
- package/dist/ui-library/p-c1675a45.entry.js.map +1 -0
- package/dist/ui-library/p-c2df8c27.entry.js +2 -0
- package/dist/ui-library/p-c2df8c27.entry.js.map +1 -0
- package/dist/ui-library/p-c86aa5b3.entry.js +2 -0
- package/dist/ui-library/p-c86aa5b3.entry.js.map +1 -0
- package/dist/ui-library/p-cd35b3c6.entry.js +2 -0
- package/dist/ui-library/p-cd35b3c6.entry.js.map +1 -0
- package/dist/ui-library/{p-63703ba3.entry.js → p-ce373da5.entry.js} +2 -2
- package/dist/ui-library/p-ce373da5.entry.js.map +1 -0
- package/dist/ui-library/p-d2cf4280.entry.js +2 -0
- package/dist/ui-library/p-d2cf4280.entry.js.map +1 -0
- package/dist/ui-library/{p-19364560.entry.js → p-d310a6dd.entry.js} +2 -2
- package/dist/ui-library/p-d310a6dd.entry.js.map +1 -0
- package/dist/ui-library/{p-21859bca.entry.js → p-dfb6bff6.entry.js} +2 -2
- package/dist/ui-library/p-dfb6bff6.entry.js.map +1 -0
- package/dist/ui-library/{p-9328e5bc.entry.js → p-ee71e3a3.entry.js} +2 -2
- package/dist/ui-library/p-ee71e3a3.entry.js.map +1 -0
- package/dist/ui-library/{p-97323ad7.entry.js → p-ef317d69.entry.js} +2 -2
- package/dist/ui-library/p-ef317d69.entry.js.map +1 -0
- package/dist/ui-library/p-f136a6b2.js +2 -0
- package/dist/ui-library/p-f136a6b2.js.map +1 -0
- package/dist/ui-library/p-f385f1c2.entry.js +2 -0
- package/dist/ui-library/p-f385f1c2.entry.js.map +1 -0
- package/dist/ui-library/p-f73a6bdc.entry.js +2 -0
- package/dist/ui-library/p-f73a6bdc.entry.js.map +1 -0
- package/dist/ui-library/p-faa04bb5.js +2 -0
- package/dist/ui-library/p-faa04bb5.js.map +1 -0
- package/dist/ui-library/p-fcd57e0a.entry.js +2 -0
- package/dist/ui-library/p-fcd57e0a.entry.js.map +1 -0
- package/dist/ui-library/ui-library.css +2 -2
- package/dist/ui-library/ui-library.esm.js +1 -1
- package/dist/ui-library/ui-library.esm.js.map +1 -1
- package/loader/index.d.ts +1 -1
- package/package.json +27 -26
- package/dist/cjs/event-listeners-74715e62.js +0 -45
- package/dist/cjs/event-listeners-74715e62.js.map +0 -1
- package/dist/cjs/execution-control-46f388e0.js.map +0 -1
- package/dist/cjs/focus-visible-0b352c74.js +0 -47
- package/dist/cjs/focus-visible-0b352c74.js.map +0 -1
- package/dist/cjs/form-control-2c17c573.js +0 -34
- package/dist/cjs/form-control-2c17c573.js.map +0 -1
- package/dist/cjs/index-2f6daa5b.js.map +0 -1
- package/dist/cjs/modal-48d42228.js +0 -51
- package/dist/cjs/modal-48d42228.js.map +0 -1
- package/dist/cjs/popover-f743f62b.js.map +0 -1
- package/dist/cjs/scroll-76e6f5d7.js +0 -69
- package/dist/cjs/scroll-76e6f5d7.js.map +0 -1
- package/dist/cjs/six-form.cjs.entry.js +0 -231
- package/dist/cjs/six-form.cjs.entry.js.map +0 -1
- package/dist/cjs/six-timepicker.types-c19ebff3.js +0 -56
- package/dist/cjs/six-timepicker.types-c19ebff3.js.map +0 -1
- package/dist/cjs/slot-ad537f24.js +0 -52
- package/dist/cjs/slot-ad537f24.js.map +0 -1
- package/dist/cjs/types-64878648.js +0 -17
- package/dist/cjs/types-64878648.js.map +0 -1
- package/dist/collection/components/six-form/six-form.css +0 -11
- package/dist/collection/components/six-form/six-form.js +0 -419
- package/dist/collection/components/six-form/six-form.js.map +0 -1
- package/dist/collection/components/six-timepicker/six-time-format.js +0 -15
- package/dist/collection/components/six-timepicker/six-time-format.js.map +0 -1
- package/dist/collection/components/six-timepicker/six-timepicker.types.js +0 -41
- package/dist/collection/components/six-timepicker/six-timepicker.types.js.map +0 -1
- package/dist/collection/utils/as-array.js +0 -2
- package/dist/collection/utils/as-array.js.map +0 -1
- package/dist/collection/utils/matchers.js +0 -3
- package/dist/collection/utils/matchers.js.map +0 -1
- package/dist/collection/utils/testing.js +0 -39
- package/dist/collection/utils/testing.js.map +0 -1
- package/dist/components/six-form.js +0 -252
- package/dist/components/six-form.js.map +0 -1
- package/dist/esm/event-listeners-570a24ea.js +0 -43
- package/dist/esm/event-listeners-570a24ea.js.map +0 -1
- package/dist/esm/execution-control-1a60d709.js.map +0 -1
- package/dist/esm/focus-visible-97933ea9.js +0 -45
- package/dist/esm/focus-visible-97933ea9.js.map +0 -1
- package/dist/esm/form-control-3b440ea1.js +0 -32
- package/dist/esm/form-control-3b440ea1.js.map +0 -1
- package/dist/esm/index-5c0f6628.js.map +0 -1
- package/dist/esm/modal-5ebdc320.js +0 -48
- package/dist/esm/modal-5ebdc320.js.map +0 -1
- package/dist/esm/polyfills/css-shim.js +0 -1
- package/dist/esm/popover-bd2c2fca.js.map +0 -1
- package/dist/esm/scroll-180b53fd.js +0 -64
- package/dist/esm/six-form.entry.js +0 -227
- package/dist/esm/six-form.entry.js.map +0 -1
- package/dist/esm/six-timepicker.types-e161a447.js +0 -50
- package/dist/esm/six-timepicker.types-e161a447.js.map +0 -1
- package/dist/esm/slot-6f3984c7.js +0 -47
- package/dist/esm/slot-6f3984c7.js.map +0 -1
- package/dist/esm/types-4b10b413.js +0 -17
- package/dist/esm/types-4b10b413.js.map +0 -1
- package/dist/types/components/six-form/six-form.d.ts +0 -69
- package/dist/types/components/six-timepicker/six-time-format.d.ts +0 -13
- package/dist/types/components/six-timepicker/six-timepicker.types.d.ts +0 -36
- package/dist/types/utils/as-array.d.ts +0 -1
- package/dist/types/utils/matchers.d.ts +0 -2
- package/dist/types/utils/popper.d.ts +0 -33
- package/dist/types/utils/testing.d.ts +0 -2
- package/dist/ui-library/p-054e12cc.entry.js +0 -2
- package/dist/ui-library/p-054e12cc.entry.js.map +0 -1
- package/dist/ui-library/p-0786fa7c.js +0 -2
- package/dist/ui-library/p-0786fa7c.js.map +0 -1
- package/dist/ui-library/p-097cced4.entry.js.map +0 -1
- package/dist/ui-library/p-0d79b0c6.entry.js +0 -2
- package/dist/ui-library/p-0d79b0c6.entry.js.map +0 -1
- package/dist/ui-library/p-14f20bbb.entry.js +0 -2
- package/dist/ui-library/p-14f20bbb.entry.js.map +0 -1
- package/dist/ui-library/p-18e5f772.entry.js +0 -2
- package/dist/ui-library/p-18e5f772.entry.js.map +0 -1
- package/dist/ui-library/p-18ea0c56.js +0 -2
- package/dist/ui-library/p-18ea0c56.js.map +0 -1
- package/dist/ui-library/p-19364560.entry.js.map +0 -1
- package/dist/ui-library/p-19b50b5a.entry.js.map +0 -1
- package/dist/ui-library/p-21859bca.entry.js.map +0 -1
- package/dist/ui-library/p-25a3bf57.js.map +0 -1
- package/dist/ui-library/p-2e48c8d2.entry.js +0 -2
- package/dist/ui-library/p-2e48c8d2.entry.js.map +0 -1
- package/dist/ui-library/p-308261c4.entry.js +0 -2
- package/dist/ui-library/p-308261c4.entry.js.map +0 -1
- package/dist/ui-library/p-33f7e22b.entry.js +0 -2
- package/dist/ui-library/p-33f7e22b.entry.js.map +0 -1
- package/dist/ui-library/p-4ae91795.entry.js +0 -2
- package/dist/ui-library/p-4ae91795.entry.js.map +0 -1
- package/dist/ui-library/p-4f8394d7.js.map +0 -1
- package/dist/ui-library/p-53a13db5.entry.js +0 -2
- package/dist/ui-library/p-53a13db5.entry.js.map +0 -1
- package/dist/ui-library/p-559c87f0.entry.js +0 -2
- package/dist/ui-library/p-559c87f0.entry.js.map +0 -1
- package/dist/ui-library/p-611e1978.entry.js +0 -2
- package/dist/ui-library/p-611e1978.entry.js.map +0 -1
- package/dist/ui-library/p-63703ba3.entry.js.map +0 -1
- package/dist/ui-library/p-6403fd87.entry.js +0 -2
- package/dist/ui-library/p-6403fd87.entry.js.map +0 -1
- package/dist/ui-library/p-6433c0da.entry.js +0 -2
- package/dist/ui-library/p-6433c0da.entry.js.map +0 -1
- package/dist/ui-library/p-6d75f216.entry.js.map +0 -1
- package/dist/ui-library/p-73597d13.entry.js.map +0 -1
- package/dist/ui-library/p-79eee01b.js +0 -2
- package/dist/ui-library/p-79eee01b.js.map +0 -1
- package/dist/ui-library/p-7e0cc4ae.entry.js +0 -2
- package/dist/ui-library/p-7e0cc4ae.entry.js.map +0 -1
- package/dist/ui-library/p-820c23f0.entry.js.map +0 -1
- package/dist/ui-library/p-835c3ff7.entry.js +0 -2
- package/dist/ui-library/p-835c3ff7.entry.js.map +0 -1
- package/dist/ui-library/p-8a970a40.entry.js +0 -2
- package/dist/ui-library/p-8a970a40.entry.js.map +0 -1
- package/dist/ui-library/p-90824648.entry.js +0 -2
- package/dist/ui-library/p-90824648.entry.js.map +0 -1
- package/dist/ui-library/p-90dc6af4.entry.js +0 -2
- package/dist/ui-library/p-90dc6af4.entry.js.map +0 -1
- package/dist/ui-library/p-9328e5bc.entry.js.map +0 -1
- package/dist/ui-library/p-97323ad7.entry.js.map +0 -1
- package/dist/ui-library/p-9a860acc.js +0 -2
- package/dist/ui-library/p-9a860acc.js.map +0 -1
- package/dist/ui-library/p-9d1d222f.entry.js +0 -2
- package/dist/ui-library/p-9d1d222f.entry.js.map +0 -1
- package/dist/ui-library/p-a1d4f6cf.entry.js.map +0 -1
- package/dist/ui-library/p-ac4f4d45.js +0 -3
- package/dist/ui-library/p-ac4f4d45.js.map +0 -1
- package/dist/ui-library/p-af793d04.entry.js.map +0 -1
- package/dist/ui-library/p-b0e5658f.entry.js +0 -2
- package/dist/ui-library/p-b0e5658f.entry.js.map +0 -1
- package/dist/ui-library/p-b1e66136.js +0 -2
- package/dist/ui-library/p-b1e66136.js.map +0 -1
- package/dist/ui-library/p-b4dfb7cf.js +0 -2
- package/dist/ui-library/p-b4dfb7cf.js.map +0 -1
- package/dist/ui-library/p-b997e43c.entry.js +0 -2
- package/dist/ui-library/p-b997e43c.entry.js.map +0 -1
- package/dist/ui-library/p-baa03951.entry.js.map +0 -1
- package/dist/ui-library/p-c0cb6436.entry.js +0 -2
- package/dist/ui-library/p-c0cb6436.entry.js.map +0 -1
- package/dist/ui-library/p-c30f9e0b.entry.js +0 -2
- package/dist/ui-library/p-c30f9e0b.entry.js.map +0 -1
- package/dist/ui-library/p-c349d1d4.entry.js.map +0 -1
- package/dist/ui-library/p-c53a63f9.entry.js +0 -2
- package/dist/ui-library/p-c53a63f9.entry.js.map +0 -1
- package/dist/ui-library/p-c640c2d8.entry.js +0 -2
- package/dist/ui-library/p-c640c2d8.entry.js.map +0 -1
- package/dist/ui-library/p-c94d0b07.entry.js +0 -2
- package/dist/ui-library/p-c94d0b07.entry.js.map +0 -1
- package/dist/ui-library/p-d12c6092.js +0 -2
- package/dist/ui-library/p-d12c6092.js.map +0 -1
- package/dist/ui-library/p-d5633a29.entry.js +0 -2
- package/dist/ui-library/p-d5633a29.entry.js.map +0 -1
- package/dist/ui-library/p-dd3c76f1.entry.js +0 -2
- package/dist/ui-library/p-dd3c76f1.entry.js.map +0 -1
- package/dist/ui-library/p-df655bc9.entry.js +0 -2
- package/dist/ui-library/p-df655bc9.entry.js.map +0 -1
- package/dist/ui-library/p-e19a6c95.entry.js +0 -2
- package/dist/ui-library/p-e19a6c95.entry.js.map +0 -1
- package/dist/ui-library/p-eb8f05a9.js.map +0 -1
- package/dist/ui-library/p-edc96efc.entry.js +0 -2
- package/dist/ui-library/p-edc96efc.entry.js.map +0 -1
- package/dist/ui-library/p-f18ba86f.entry.js +0 -2
- package/dist/ui-library/p-f18ba86f.entry.js.map +0 -1
- package/dist/ui-library/p-f4938771.entry.js +0 -2
- package/dist/ui-library/p-f4938771.entry.js.map +0 -1
- package/dist/ui-library/p-f70e2403.entry.js +0 -2
- package/dist/ui-library/p-f70e2403.entry.js.map +0 -1
- package/dist/ui-library/p-f9d345e0.entry.js +0 -2
- package/dist/ui-library/p-f9d345e0.entry.js.map +0 -1
- package/dist/ui-library/p-fed07a1f.entry.js +0 -2
- package/dist/ui-library/p-fed07a1f.entry.js.map +0 -1
- package/dist/ui-library/p-ff0257bf.entry.js +0 -2
- package/dist/ui-library/p-ff0257bf.entry.js.map +0 -1
- package/readme.md +0 -156
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sixMenuItemCss","SixMenuItem","connectedCallback","this","handleBlur","bind","handleFocus","handleMouseEnter","handleMouseLeave","setFocus","options","_a","menuItem","focus","removeFocus","blur","getTextLabel","Promise","resolve","getTextContent","defaultSlot","hasFocus","render","h","ref","el","part","class","checked","disabled","role","tabIndex","undefined","onFocus","onBlur","onMouseEnter","onMouseLeave","name","size"],"sources":["src/components/six-menu-item/six-menu-item.scss?tag=six-menu-item&encapsulation=shadow","src/components/six-menu-item/six-menu-item.tsx"],"sourcesContent":["@import 'src/global/component';\n\n:host {\n display: block;\n}\n\n.menu-item {\n position: relative;\n display: flex;\n align-items: stretch;\n font-family: var(--six-font-sans);\n font-size: var(--six-font-size-small);\n font-weight: var(--six-font-weight-normal);\n line-height: var(--six-line-height-normal);\n letter-spacing: var(--six-letter-spacing-normal);\n text-align: left;\n color: var(--six-input-color);\n border-radius: var(--six-border-radius-medium);\n padding: var(--six-spacing-medium) var(--six-spacing-medium);\n transition: var(--six-transition-fast) fill;\n user-select: none;\n white-space: nowrap;\n cursor: pointer;\n\n &.menu-item--focused:not(.menu-item--disabled) {\n outline: none;\n background-color: var(--six-menu-item-background-color);\n }\n\n &.menu-item--disabled {\n outline: none;\n color: var(--six-input-color-disabled);\n cursor: not-allowed;\n }\n\n .menu-item__label {\n flex: 1 1 auto;\n align-self: center;\n }\n\n .menu-item__prefix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n\n ::slotted(:last-child) {\n margin-right: 0.5em;\n }\n }\n\n .menu-item__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n\n ::slotted(:first-child) {\n margin-left: 0.5em;\n }\n }\n\n .menu-item__check {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n margin-left: var(--six-spacing-small);\n visibility: hidden;\n font-size: inherit;\n }\n}\n\n.menu-item--checked .menu-item__check {\n visibility: visible;\n}\n","import { Component, h, Method, Prop, State } from '@stencil/core';\nimport { getTextContent } from '../../utils/slot';\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The menu item's label.\n * @slot prefix - Used to prepend an icon or similar element to the menu item.\n * @slot suffix - Used to append an icon or similar element to the menu item.\n *\n * @part base - The component's base wrapper.\n * @part checked-icon - The container that wraps the checked icon.\n * @part prefix - The prefix container.\n * @part label - The menu item label.\n * @part suffix - The suffix container.\n */\n\n@Component({\n tag: 'six-menu-item',\n styleUrl: 'six-menu-item.scss',\n shadow: true,\n})\nexport class SixMenuItem {\n private menuItem?: HTMLElement;\n private defaultSlot?: HTMLSlotElement;\n\n @State() hasFocus = false;\n\n /** Set to true to draw the item in a checked state. */\n @Prop({ reflect: true }) checked = false;\n\n /** A unique value to store in the menu item. This can be used as a way to identify menu items when selected. */\n @Prop({ reflect: true }) value = '';\n\n /** Set to true to draw the menu item in a disabled state. */\n @Prop({ reflect: true }) disabled = false;\n\n connectedCallback() {\n this.handleBlur = this.handleBlur.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n }\n\n /** Sets focus on the button. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.menuItem?.focus(options);\n }\n\n /** Removes focus from the button. */\n @Method()\n async removeFocus() {\n this.menuItem?.blur();\n }\n\n /** Returns a text label based on the contents of the menu item's default slot. */\n @Method()\n getTextLabel() {\n return Promise.resolve(getTextContent(this.defaultSlot));\n }\n\n private handleBlur() {\n this.hasFocus = false;\n }\n\n private handleFocus() {\n this.hasFocus = true;\n }\n\n private handleMouseEnter() {\n return this.setFocus();\n }\n\n private handleMouseLeave() {\n return this.removeFocus();\n }\n\n render() {\n return (\n <div\n ref={(el) => (this.menuItem = el)}\n part=\"base\"\n class={{\n 'menu-item': true,\n 'menu-item--checked': this.checked,\n 'menu-item--disabled': this.disabled,\n 'menu-item--focused': this.hasFocus,\n }}\n role=\"menuitem\"\n aria-disabled={this.disabled ? 'true' : 'false'}\n aria-checked={this.checked ? 'true' : 'false'}\n tabIndex={!this.disabled ? 0 : undefined}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n <span part=\"prefix\" class=\"menu-item__prefix\">\n <slot name=\"prefix\" />\n </span>\n\n <span part=\"label\" class=\"menu-item__label\">\n <slot ref={(el) => (this.defaultSlot = el as HTMLSlotElement)} />\n </span>\n\n <span part=\"suffix\" class=\"menu-item__suffix\">\n <slot name=\"suffix\" />\n </span>\n\n <span part=\"checked-icon\" class=\"menu-item__check\">\n <six-icon size=\"small\" aria-hidden=\"true\">\n check\n </six-icon>\n </span>\n </div>\n );\n }\n}\n"],"mappings":"+EAAA,MAAMA,EAAiB,64C,MCyBVC,EAAW,M,uCAIF,M,aAGe,M,WAGF,G,cAGG,K,CAEpC,iBAAAC,GACEC,KAAKC,WAAaD,KAAKC,WAAWC,KAAKF,MACvCA,KAAKG,YAAcH,KAAKG,YAAYD,KAAKF,MACzCA,KAAKI,iBAAmBJ,KAAKI,iBAAiBF,KAAKF,MACnDA,KAAKK,iBAAmBL,KAAKK,iBAAiBH,KAAKF,K,CAKrD,cAAMM,CAASC,G,OACbC,EAAAR,KAAKS,YAAQ,MAAAD,SAAA,SAAAA,EAAEE,MAAMH,E,CAKvB,iBAAMI,G,OACJH,EAAAR,KAAKS,YAAQ,MAAAD,SAAA,SAAAA,EAAEI,M,CAKjB,YAAAC,GACE,OAAOC,QAAQC,QAAQC,EAAehB,KAAKiB,a,CAGrC,UAAAhB,GACND,KAAKkB,SAAW,K,CAGV,WAAAf,GACNH,KAAKkB,SAAW,I,CAGV,gBAAAd,GACN,OAAOJ,KAAKM,U,CAGN,gBAAAD,GACN,OAAOL,KAAKW,a,CAGd,MAAAQ,GACE,OACEC,EAAA,OACEC,IAAMC,GAAQtB,KAAKS,SAAWa,EAC9BC,KAAK,OACLC,MAAO,CACL,YAAa,KACb,qBAAsBxB,KAAKyB,QAC3B,sBAAuBzB,KAAK0B,SAC5B,qBAAsB1B,KAAKkB,UAE7BS,KAAK,WAAU,gBACA3B,KAAK0B,SAAW,OAAS,QAAO,eACjC1B,KAAKyB,QAAU,OAAS,QACtCG,UAAW5B,KAAK0B,SAAW,EAAIG,UAC/BC,QAAS9B,KAAKG,YACd4B,OAAQ/B,KAAKC,WACb+B,aAAchC,KAAKI,iBACnB6B,aAAcjC,KAAKK,kBAEnBe,EAAA,QAAMG,KAAK,SAASC,MAAM,qBACxBJ,EAAA,QAAMc,KAAK,YAGbd,EAAA,QAAMG,KAAK,QAAQC,MAAM,oBACvBJ,EAAA,QAAMC,IAAMC,GAAQtB,KAAKiB,YAAcK,KAGzCF,EAAA,QAAMG,KAAK,SAASC,MAAM,qBACxBJ,EAAA,QAAMc,KAAK,YAGbd,EAAA,QAAMG,KAAK,eAAeC,MAAM,oBAC9BJ,EAAA,YAAUe,KAAK,QAAO,cAAa,QAAM,U"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as i,c as s,h as t}from"./p-0beec94f.js";import{s as e}from"./p-8227aaed.js";const o=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host{display:block;height:100%}.sidebar__container{height:100%;overflow:auto}.sidebar__container.sidebar--open{box-shadow:var(--six-elevation-1dp)}.sidebar__container:not(.sidebar--visible){position:absolute;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;pointer-events:none;visibility:hidden}.sidebar--left{color:var(--six-sidebar-color);background-color:var(--six-sidebar-background-color);transition:var(--six-transition-medium) margin-left;background-size:300vw 70%;background-position:bottom;background-repeat:no-repeat}.sidebar--right{transition:var(--six-transition-medium) margin-right}.sidebar--open.sidebar--left{margin-right:2px}.sidebar--open.sidebar--right{margin-left:2px}";const n=i=>{var s;return((s=i===null||i===void 0?void 0:i.tagName)===null||s===void 0?void 0:s.toLowerCase())==="six-sidebar-item-group"};const r=class{constructor(t){i(this,t);this.sixShow=s(this,"six-sidebar-show",7);this.sixAfterShow=s(this,"six-sidebar-after-show",7);this.sixHide=s(this,"six-sidebar-hide",7);this.sixAfterHide=s(this,"six-sidebar-after-hide",7);this.sixInitialFocus=s(this,"six-sidebar-initial-focus",7);this.willShow=false;this.willHide=false;this.handleTransitionEnd=i=>{const s=i.target;if(i.type==="transitionend"&&s.classList.contains("sidebar__container")){this.resetTransitionVariables()}};this.closeSiblingDetailsOnShow=i=>{const s=i.target;if(this.sidebar!=null){e(s,this.sidebar)}const t=i=>{var t;let e=s;while(i(e)!=null){e=i(e);if(n(e)){const i=(t=e===null||e===void 0?void 0:e.shadowRoot)===null||t===void 0?void 0:t.querySelector("six-details");if(i!=null){i.open=false}}}};t((i=>i===null||i===void 0?void 0:i.previousElementSibling));t((i=>i===null||i===void 0?void 0:i.nextElementSibling))};this.isVisible=false;this.position="left";this.open=false;this.width="16rem";this.toggled=false}handleOpenChange(){this.open?this.show():this.hide()}componentWillLoad(){if(this.open){void this.show();this.resetTransitionVariables()}}componentDidRender(){this.setupTogglableMenuItems()}disconnectedCallback(){var i;(i=this.sidebar)===null||i===void 0?void 0:i.removeEventListener("six-details-show",this.closeSiblingDetailsOnShow)}setupTogglableMenuItems(){if(!this.toggled||this.sidebar==null)return;this.markAllMenuItemsAsSelectableEmpty();this.sidebar.addEventListener("six-details-show",this.closeSiblingDetailsOnShow)}markAllMenuItemsAsSelectableEmpty(){var i;const s=(i=this.sidebar)===null||i===void 0?void 0:i.querySelector("slot");const t=(s===null||s===void 0?void 0:s.assignedElements())||[];const e=[];while(t.length>0){const i=t.pop();if((i===null||i===void 0?void 0:i.shadowRoot)==null){continue}const s=i.shadowRoot.querySelectorAll("six-details");e.push(...s);const o=Array.from(i.children).filter(n);t.push(...o)}e.forEach((i=>i.selectableEmpty=true))}async toggle(){if(this.willShow||this.willHide){return}if(this.open){await this.hide()}else{await this.show()}}async show(){if(this.willShow){return}const i=this.sixShow.emit();if(i.defaultPrevented){this.open=false;return}this.willShow=true;this.isVisible=true;this.open=true}async hide(){if(this.willHide){return}const i=this.sixHide.emit();if(i.defaultPrevented){this.open=true;return}this.willHide=true;this.open=false}async selectItemByIndex(i){if(this.sidebar==null)return;const s=this.sidebar.querySelector("slot");const t=((s===null||s===void 0?void 0:s.assignedElements())||[]).flatMap((i=>{var s;const t=(s=i.shadowRoot)===null||s===void 0?void 0:s.querySelector("six-details");if(t==null){return[]}return[t]}));if(i<0||i>t.length-1){console.error(`Tried to access sidebar menu item by index, but provided index out of range. Provided index: ${i}`);return}await t[i].show()}async selectItemByName(i){var s,t,e;const o=(s=this.sidebar)===null||s===void 0?void 0:s.querySelector("slot");const n=o===null||o===void 0?void 0:o.assignedElements();if(n==null){return}const r=n.findIndex((s=>(s===null||s===void 0?void 0:s.name)===i));const a=(e=(t=n.at(r))===null||t===void 0?void 0:t.shadowRoot)===null||e===void 0?void 0:e.querySelector("six-details");await(a===null||a===void 0?void 0:a.show())}resetTransitionVariables(){this.isVisible=this.open;this.willShow=false;this.willHide=false;this.open?this.sixAfterShow.emit():this.sixAfterHide.emit()}render(){return t("host",{class:"six-sidebar"},t("div",{class:{sidebar__container:true,"sidebar--visible":this.isVisible,"sidebar--open":this.open,"sidebar--left":this.position==="left","sidebar--right":this.position==="right"},style:{width:this.width,[`margin-${this.position}`]:this.open?"0":`calc(1rem - ${this.width})`},ref:i=>this.sidebar=i,"aria-hidden":this.open?"false":"true",onTransitionEnd:this.handleTransitionEnd},t("slot",null)))}static get watchers(){return{open:["handleOpenChange"]}}};r.style=o;export{r as six_sidebar};
|
|
2
|
+
//# sourceMappingURL=p-8b750c9e.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sixSidebarCss","isSidebarItemGroup","node","_a","tagName","toLowerCase","SixSidebar","this","willShow","willHide","handleTransitionEnd","event","target","type","classList","contains","resetTransitionVariables","closeSiblingDetailsOnShow","clickedMenuItem","sidebar","scrollIntoView","closeAllSiblingsBySiblingProperty","getSibling","detailsElement","shadowRoot","querySelector","open","previousElementSibling","nextElementSibling","handleOpenChange","show","hide","componentWillLoad","componentDidRender","setupTogglableMenuItems","disconnectedCallback","removeEventListener","toggled","markAllMenuItemsAsSelectableEmpty","addEventListener","slot","nodes","assignedElements","menuItems","length","pop","menuItemsForCurrentNode","querySelectorAll","push","newItemGroups","Array","from","children","filter","forEach","details","selectableEmpty","toggle","sixShow","emit","defaultPrevented","isVisible","sixHide","selectItemByIndex","index","menuItemsOnRootLevel","flatMap","el","console","error","selectItemByName","value","sidebarItemGroups","indexOfSelectedElement","findIndex","name","selectedItem","_c","_b","at","sixAfterShow","sixAfterHide","render","h","class","sidebar__container","position","style","width","ref","onTransitionEnd"],"sources":["src/components/six-sidebar/six-sidebar.scss?tag=six-sidebar&encapsulation=shadow","src/components/six-sidebar/six-sidebar.tsx"],"sourcesContent":["@import 'src/global/component';\n@import 'src/global/mixins/hidden';\n@import 'src/global/mixins/scrollbar';\n\n:host {\n display: block;\n height: 100%;\n}\n\n.sidebar {\n &__container {\n // scroll\n height: 100%;\n overflow: auto;\n\n &.sidebar--open {\n box-shadow: var(--six-elevation-1dp);\n }\n\n &:not(.sidebar--visible) {\n @include hidden;\n }\n }\n\n &--left {\n color: var(--six-sidebar-color);\n background-color: var(--six-sidebar-background-color);\n // collapse\n transition: var(--six-transition-medium) margin-left;\n // six background\n background-size: 300vw 70%;\n background-position: bottom;\n background-repeat: no-repeat;\n }\n\n &--right {\n // collapse\n transition: var(--six-transition-medium) margin-right;\n }\n\n // if the sidebar is embedded within six-root it cuts-off the border styling, for thus we need to guarante a margin\n &--open {\n &.sidebar--left {\n margin-right: 2px;\n }\n\n &.sidebar--right {\n margin-left: 2px;\n }\n }\n}\n","import { Component, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { EmptyPayload } from '../../utils/types';\nimport { scrollIntoView } from '../../utils/scroll';\n\nconst isSidebarItemGroup = (node?: Element | null): boolean =>\n node?.tagName?.toLowerCase() === 'six-sidebar-item-group';\n\n/**\n * @since 1.0\n * @status stable\n *\n * @slot - Used to define the nested side bar [group] items.\n */\n\n@Component({\n tag: 'six-sidebar',\n styleUrl: 'six-sidebar.scss',\n shadow: true,\n})\nexport class SixSidebar {\n private willShow = false;\n private willHide = false;\n\n private sidebar?: HTMLElement;\n\n @State() isVisible = false;\n\n /** Sidebar position */\n @Prop() position: 'left' | 'right' = 'left';\n\n /** Indicates whether the sidebar is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** Sidebar width */\n @Prop() width = '16rem';\n\n /** Define whether sidebar is toggled meaning only one menu can be open at the same time*/\n @Prop() toggled = false;\n\n /** Emitted when the sidebar opens. Calling `event.preventDefault()` will prevent it from being opened. */\n @Event({ eventName: 'six-sidebar-show' }) sixShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the sidebar opens and all transitions are complete. */\n @Event({ eventName: 'six-sidebar-after-show' }) sixAfterShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the sidebar closes. Calling `event.preventDefault()` will prevent it from being closed. */\n @Event({ eventName: 'six-sidebar-hide' }) sixHide!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the sidebar closes and all transitions are complete. */\n @Event({ eventName: 'six-sidebar-after-hide' }) sixAfterHide!: EventEmitter<EmptyPayload>;\n\n /**\n * Emitted when the sidebar opens and the panel gains focus. Calling `event.preventDefault()` will prevent focus and\n * allow you to set it on a different element in the sidebar, such as an input or button.\n */\n @Event({ eventName: 'six-sidebar-initial-focus' }) sixInitialFocus!: EventEmitter<EmptyPayload>;\n\n @Watch('open')\n handleOpenChange() {\n this.open ? this.show() : this.hide();\n }\n\n private handleTransitionEnd = (event: TransitionEvent) => {\n const target = event.target as HTMLElement;\n\n // Ensure we only emit one event when the target element is no longer visible\n if (event.type === 'transitionend' && target.classList.contains('sidebar__container')) {\n this.resetTransitionVariables();\n }\n };\n\n componentWillLoad() {\n // Show on init if open\n if (this.open) {\n void this.show();\n // if the sidebar is open by default we need to manually reset the\n // transition variables since there will be no transition event\n this.resetTransitionVariables();\n }\n }\n\n componentDidRender() {\n this.setupTogglableMenuItems();\n }\n\n disconnectedCallback() {\n this.sidebar?.removeEventListener('six-details-show', this.closeSiblingDetailsOnShow);\n }\n\n private closeSiblingDetailsOnShow = (event: Event) => {\n const clickedMenuItem = event.target as HTMLElement;\n if (this.sidebar != null) {\n scrollIntoView(clickedMenuItem, this.sidebar);\n }\n\n const closeAllSiblingsBySiblingProperty = (\n getSibling: (node: Element | null | undefined) => Element | null | undefined\n ) => {\n let node: Element | null | undefined = clickedMenuItem;\n while (getSibling(node) != null) {\n node = getSibling(node);\n if (isSidebarItemGroup(node)) {\n const detailsElement = node?.shadowRoot?.querySelector('six-details');\n if (detailsElement != null) {\n detailsElement.open = false;\n }\n }\n }\n };\n\n // close all previous siblings\n closeAllSiblingsBySiblingProperty((node) => node?.previousElementSibling);\n // close all further siblings\n closeAllSiblingsBySiblingProperty((node) => node?.nextElementSibling);\n };\n\n private setupTogglableMenuItems() {\n if (!this.toggled || this.sidebar == null) return;\n this.markAllMenuItemsAsSelectableEmpty();\n this.sidebar.addEventListener('six-details-show', this.closeSiblingDetailsOnShow);\n }\n\n private markAllMenuItemsAsSelectableEmpty() {\n // when you have a toggled menu you also want to close other menu items when you click on an item without children\n // nice benefit this item will then also be highlighted\n const slot = this.sidebar?.querySelector('slot');\n const nodes = slot?.assignedElements() || [];\n\n // since we don't just want to make the top level empty menuItems selectable in toggled mode,\n // but also nested items we need to traverse the whole menu item tree\n const menuItems = [];\n while (nodes.length > 0) {\n const node = nodes.pop();\n if (node?.shadowRoot == null) {\n continue;\n }\n\n // collect six-details in the current shadowDOM\n const menuItemsForCurrentNode = node.shadowRoot.querySelectorAll('six-details');\n menuItems.push(...menuItemsForCurrentNode);\n\n // collect all six-sidebar-item-group children of the current node to afterwards check their shadowDOM too\n const newItemGroups = Array.from(node.children).filter(isSidebarItemGroup);\n nodes.push(...newItemGroups);\n }\n\n menuItems.forEach((details) => (details.selectableEmpty = true));\n }\n\n /** Toggles whether the sidebar should be shown or hidden */\n @Method()\n async toggle() {\n if (this.willShow || this.willHide) {\n return;\n }\n\n if (this.open) {\n await this.hide();\n } else {\n await this.show();\n }\n }\n\n /** Shows the sidebar */\n @Method()\n async show() {\n if (this.willShow) {\n return;\n }\n\n const sixShow = this.sixShow.emit();\n if (sixShow.defaultPrevented) {\n this.open = false;\n return;\n }\n\n this.willShow = true;\n this.isVisible = true;\n this.open = true;\n }\n\n /** Hides the sidebar */\n @Method()\n async hide() {\n if (this.willHide) {\n return;\n }\n\n const sixHide = this.sixHide.emit();\n if (sixHide.defaultPrevented) {\n this.open = true;\n return;\n }\n\n this.willHide = true;\n this.open = false;\n }\n\n /** Allows to select a menu item programmatically by index */\n @Method()\n async selectItemByIndex(index: number) {\n if (this.sidebar == null) return;\n\n const slot = this.sidebar.querySelector('slot');\n const menuItemsOnRootLevel: HTMLSixDetailsElement[] = (slot?.assignedElements() || []).flatMap((el) => {\n const detailsElement = el.shadowRoot?.querySelector('six-details');\n if (detailsElement == null) {\n return [];\n }\n return [detailsElement];\n });\n if (index < 0 || index > menuItemsOnRootLevel.length - 1) {\n console.error(\n `Tried to access sidebar menu item by index, but provided index out of range. Provided index: ${index}`\n );\n return;\n }\n await menuItemsOnRootLevel[index].show();\n }\n\n /** Allows to select a menu item programmatically by name */\n @Method()\n async selectItemByName(value: string) {\n const slot = this.sidebar?.querySelector('slot');\n const sidebarItemGroups = slot?.assignedElements() as HTMLSixSidebarItemGroupElement[];\n if (sidebarItemGroups == null) {\n return;\n }\n\n const indexOfSelectedElement = sidebarItemGroups.findIndex((el) => el?.name === value);\n const selectedItem = sidebarItemGroups.at(indexOfSelectedElement)?.shadowRoot?.querySelector('six-details');\n await selectedItem?.show();\n }\n\n private resetTransitionVariables() {\n this.isVisible = this.open;\n this.willShow = false;\n this.willHide = false;\n this.open ? this.sixAfterShow.emit() : this.sixAfterHide.emit();\n }\n\n render() {\n return (\n <host class=\"six-sidebar\">\n <div\n class={{\n sidebar__container: true,\n 'sidebar--visible': this.isVisible,\n 'sidebar--open': this.open,\n 'sidebar--left': this.position === 'left',\n 'sidebar--right': this.position === 'right',\n }}\n style={{\n width: this.width,\n [`margin-${this.position}`]: this.open ? '0' : `calc(1rem - ${this.width})`,\n }}\n ref={(el) => (this.sidebar = el)}\n aria-hidden={this.open ? 'false' : 'true'}\n onTransitionEnd={this.handleTransitionEnd}\n >\n <slot />\n </div>\n </host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
class e{constructor(){this.eventListeners=[];this.add=(e,t,s,n=null)=>{this.eventListeners.push({el:e,name:t,listener:s,identifier:n});e.addEventListener(t,s)};this.remove=(e,t,s)=>{this.eventListeners=this.getFilteredEventListeners((n=>n.listener==s&&n.el===e&&n.name===t))};this.removeByIdentifier=e=>{const t=t=>t.identifier===e;const s=this.eventListeners.find(t)!==undefined;if(!s){return}this.eventListeners=this.getFilteredEventListeners(t)};this.removeAll=()=>{while(this.eventListeners.length>0){const e=this.eventListeners.pop();if(e!=null){e.el.removeEventListener(e.name,e.listener)}}}}getFilteredEventListeners(e){return this.eventListeners.filter((t=>{if(e(t)){t.el.removeEventListener(t.name,t.listener);return false}else{return true}}))}forward(e,t,s){switch(t){case"input":this.add(s,e,(()=>s.dispatchEvent(new InputEvent(t,{bubbles:true,cancelable:true}))));break;case"change":this.add(s,e,(()=>s.dispatchEvent(new InputEvent(t,{bubbles:true,cancelable:true}))));break;case"blur":this.add(s,e,(()=>s.dispatchEvent(new FocusEvent(t,{bubbles:true,cancelable:true}))));break;case"focus":this.add(s,e,(()=>s.dispatchEvent(new FocusEvent(t,{bubbles:true,cancelable:true}))));break}}}export{e as E};
|
|
2
|
+
//# sourceMappingURL=p-8bfb4bfc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EventListeners","constructor","this","eventListeners","add","el","name","listener","identifier","push","addEventListener","remove","getFilteredEventListeners","eventListener","removeByIdentifier","sameItem","foundListener","find","undefined","removeAll","length","pop","removeEventListener","filter","item","forward","from","to","host","dispatchEvent","InputEvent","bubbles","cancelable","FocusEvent"],"sources":["src/utils/event-listeners.ts"],"sourcesContent":["interface EventListener {\n el: GlobalEventHandlers;\n name: string;\n listener: EventListenerOrEventListenerObject;\n identifier?: string | null;\n}\n\nexport class EventListeners {\n eventListeners: EventListener[] = [];\n\n add = <T extends GlobalEventHandlers>(\n el: T,\n name: string,\n listener: EventListenerOrEventListenerObject,\n identifier: string | null | undefined = null\n ) => {\n this.eventListeners.push({ el, name, listener, identifier });\n el.addEventListener(name, listener);\n };\n\n remove = <T extends GlobalEventHandlers>(el: T, name: string, listener: EventListenerOrEventListenerObject) => {\n this.eventListeners = this.getFilteredEventListeners(\n (eventListener: EventListener) =>\n eventListener.listener == listener && eventListener.el === el && eventListener.name === name\n );\n };\n\n removeByIdentifier = (identifier: string) => {\n const sameItem = (el: EventListener) => el.identifier === identifier;\n const foundListener = this.eventListeners.find(sameItem) !== undefined;\n if (!foundListener) {\n return;\n }\n this.eventListeners = this.getFilteredEventListeners(sameItem);\n };\n\n private getFilteredEventListeners(sameItem: (el: EventListener) => boolean) {\n return this.eventListeners.filter((item) => {\n if (sameItem(item)) {\n item.el.removeEventListener(item.name, item.listener);\n return false;\n } else {\n return true;\n }\n });\n }\n\n removeAll = () => {\n while (this.eventListeners.length > 0) {\n const eventListener: EventListener | undefined = this.eventListeners.pop();\n if (eventListener != null) {\n eventListener.el.removeEventListener(eventListener.name, eventListener.listener);\n }\n }\n };\n\n forward(from: string, to: 'input' | 'change' | 'blur' | 'focus', host: HTMLElement) {\n switch (to) {\n case 'input':\n this.add(host, from, () => host.dispatchEvent(new InputEvent(to, { bubbles: true, cancelable: true })));\n break;\n case 'change':\n this.add(host, from, () => host.dispatchEvent(new InputEvent(to, { bubbles: true, cancelable: true })));\n break;\n case 'blur':\n this.add(host, from, () => host.dispatchEvent(new FocusEvent(to, { bubbles: true, cancelable: true })));\n break;\n case 'focus':\n this.add(host, from, () => host.dispatchEvent(new FocusEvent(to, { bubbles: true, cancelable: true })));\n break;\n }\n }\n}\n"],"mappings":"MAOaA,EAAb,WAAAC,GACEC,KAAAC,eAAkC,GAElCD,KAAAE,IAAM,CACJC,EACAC,EACAC,EACAC,EAAwC,QAExCN,KAAKC,eAAeM,KAAK,CAAEJ,KAAIC,OAAMC,WAAUC,eAC/CH,EAAGK,iBAAiBJ,EAAMC,EAAS,EAGrCL,KAAAS,OAAS,CAAgCN,EAAOC,EAAcC,KAC5DL,KAAKC,eAAiBD,KAAKU,2BACxBC,GACCA,EAAcN,UAAYA,GAAYM,EAAcR,KAAOA,GAAMQ,EAAcP,OAASA,GAC3F,EAGHJ,KAAAY,mBAAsBN,IACpB,MAAMO,EAAYV,GAAsBA,EAAGG,aAAeA,EAC1D,MAAMQ,EAAgBd,KAAKC,eAAec,KAAKF,KAAcG,UAC7D,IAAKF,EAAe,CAClB,M,CAEFd,KAAKC,eAAiBD,KAAKU,0BAA0BG,EAAS,EAchEb,KAAAiB,UAAY,KACV,MAAOjB,KAAKC,eAAeiB,OAAS,EAAG,CACrC,MAAMP,EAA2CX,KAAKC,eAAekB,MACrE,GAAIR,GAAiB,KAAM,CACzBA,EAAcR,GAAGiB,oBAAoBT,EAAcP,KAAMO,EAAcN,S,IAfrE,yBAAAK,CAA0BG,GAChC,OAAOb,KAAKC,eAAeoB,QAAQC,IACjC,GAAIT,EAASS,GAAO,CAClBA,EAAKnB,GAAGiB,oBAAoBE,EAAKlB,KAAMkB,EAAKjB,UAC5C,OAAO,K,KACF,CACL,OAAO,I,KAcb,OAAAkB,CAAQC,EAAcC,EAA2CC,GAC/D,OAAQD,GACN,IAAK,QACHzB,KAAKE,IAAIwB,EAAMF,GAAM,IAAME,EAAKC,cAAc,IAAIC,WAAWH,EAAI,CAAEI,QAAS,KAAMC,WAAY,UAC9F,MACF,IAAK,SACH9B,KAAKE,IAAIwB,EAAMF,GAAM,IAAME,EAAKC,cAAc,IAAIC,WAAWH,EAAI,CAAEI,QAAS,KAAMC,WAAY,UAC9F,MACF,IAAK,OACH9B,KAAKE,IAAIwB,EAAMF,GAAM,IAAME,EAAKC,cAAc,IAAII,WAAWN,EAAI,CAAEI,QAAS,KAAMC,WAAY,UAC9F,MACF,IAAK,QACH9B,KAAKE,IAAIwB,EAAMF,GAAM,IAAME,EAAKC,cAAc,IAAII,WAAWN,EAAI,CAAEI,QAAS,KAAMC,WAAY,UAC9F,M"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as i,c as r,h as a}from"./p-0beec94f.js";import{a as s}from"./p-faa04bb5.js";import{a as t}from"./p-a1502802.js";const o=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host{display:inline-block;overflow:hidden}.tag{display:flex;align-items:center;border:solid 1px;font-family:var(--six-font-family);line-height:1;white-space:nowrap;user-select:none;cursor:default}.tag__content{text-overflow:ellipsis;overflow:hidden}.tag__clear::part(base){color:inherit;padding:0}.tag--info{color:var(--six-color-white);background-color:var(--six-color-web-rock-900);border-color:var(--six-color-web-rock-900)}.tag--success{color:var(--six-color-web-rock-900);border-color:var(--six-color-success-500);background-color:var(--six-color-success-500)}.tag--primary{color:var(--six-color-web-rock-900);border-color:var(--six-color-clay-50);background-color:var(--six-color-clay-50)}.tag--warning{color:var(--six-color-web-rock-900);border-color:var(--six-color-warning-700);background-color:var(--six-color-warning-700)}.tag--danger{color:var(--six-color-white);border-color:var(--six-color-danger-800);background-color:var(--six-color-danger-800)}.tag--action{color:var(--six-color-white);border-color:var(--six-color-action-500);background-color:var(--six-color-action-500)}.tag--small{font-size:var(--six-button-font-size-small);height:calc(var(--six-height-small) * 0.8);line-height:calc(var(--six-height-small) - var(--six-border-width) * 2);border-radius:var(--six-input-border-radius-small);padding:0 var(--six-spacing-x-small)}.tag--small .tag__clear{margin-left:var(--six-spacing-xx-small);margin-right:calc(-1 * var(--six-spacing-xxx-small))}.tag--medium{font-size:var(--six-button-font-size-medium);height:calc(var(--six-height-medium) * 0.8);line-height:calc(var(--six-height-medium) - var(--six-border-width) * 2);border-radius:var(--six-input-border-radius-medium);padding:0 var(--six-spacing-small)}.tag--medium .tag__clear{margin-left:var(--six-spacing-xx-small);margin-right:calc(-1 * var(--six-spacing-xx-small))}.tag--large{font-size:var(--six-button-font-size-large);height:calc(var(--six-height-large) * 0.8);line-height:calc(var(--six-height-large) - var(--six-border-width) * 2);border-radius:var(--six-input-border-radius-large);padding:0 var(--six-spacing-medium)}.tag--large .tag__clear{margin-left:var(--six-spacing-xx-small);margin-right:calc(-1 * var(--six-spacing-x-small))}.tag--pill{border-radius:var(--six-border-radius-pill)}";const l=class{constructor(a){i(this,a);this.sixClear=r(this,"six-tag-clear",7);this.resizeObserver=new ResizeObserver(t((()=>this.updateTooltip())));this.updateTooltip=()=>{if(this.tooltipElement!=null&&this.contentSlotElement!=null&&this.contentElement!=null){this.tooltipElement.content=s(this.contentSlotElement);this.tooltipElement.disabled=!(this.contentElement.offsetWidth<this.contentElement.scrollWidth)}};this.handleClearClick=()=>{this.sixClear.emit()};this.type="primary";this.size="medium";this.pill=false;this.clearable=false}connectedCallback(){if(this.contentElement!=null){this.resizeObserver.observe(this.contentElement)}}componentDidLoad(){if(this.contentElement!=null){this.resizeObserver.observe(this.contentElement)}}disconnectedCallback(){this.resizeObserver.disconnect()}render(){return a("span",{part:"base",class:{tag:true,"tag--primary":this.type==="primary","tag--success":this.type==="success","tag--info":this.type==="info","tag--warning":this.type==="warning","tag--danger":this.type==="danger","tag--action":this.type==="action","tag--text":this.type==="text","tag--small":this.size==="small","tag--medium":this.size==="medium","tag--large":this.size==="large","tag--pill":this.pill,"tag--clear":this.clearable}},a("six-tooltip",{ref:i=>this.tooltipElement=i},a("span",{ref:i=>this.contentElement=i,part:"content",class:"tag__content"},a("slot",{ref:i=>this.contentSlotElement=i}))),this.clearable&&a("six-icon-button",{exportparts:"base:clear-button",size:"xSmall",name:"clear",class:"tag__clear",onClick:this.handleClearClick}))}};l.style=o;export{l as six_tag};
|
|
2
|
+
//# sourceMappingURL=p-911eb578.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sixTagCss","SixTag","this","resizeObserver","ResizeObserver","debounce","updateTooltip","tooltipElement","contentSlotElement","contentElement","content","getTextContent","disabled","offsetWidth","scrollWidth","handleClearClick","sixClear","emit","connectedCallback","observe","componentDidLoad","disconnectedCallback","disconnect","render","h","part","class","tag","type","size","pill","clearable","ref","el","exportparts","name","onClick"],"sources":["src/components/six-tag/six-tag.scss?tag=six-tag&encapsulation=shadow","src/components/six-tag/six-tag.tsx"],"sourcesContent":["@import 'src/global/component';\n\n:host {\n display: inline-block;\n overflow: hidden;\n}\n\n.tag {\n display: flex;\n align-items: center;\n border: solid 1px;\n font-family: var(--six-font-family);\n line-height: 1;\n white-space: nowrap;\n user-select: none;\n cursor: default;\n}\n\n.tag__content {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.tag__clear::part(base) {\n color: inherit;\n padding: 0;\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Type modifiers\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.tag--info {\n color: var(--six-color-white);\n background-color: var(--six-color-web-rock-900);\n border-color: var(--six-color-web-rock-900);\n}\n\n.tag--success {\n color: var(--six-color-web-rock-900);\n border-color: var(--six-color-success-500);\n background-color: var(--six-color-success-500);\n}\n\n.tag--primary {\n color: var(--six-color-web-rock-900);\n border-color: var(--six-color-clay-50);\n background-color: var(--six-color-clay-50);\n}\n\n.tag--warning {\n color: var(--six-color-web-rock-900);\n border-color: var(--six-color-warning-700);\n background-color: var(--six-color-warning-700);\n}\n\n.tag--danger {\n color: var(--six-color-white);\n border-color: var(--six-color-danger-800);\n background-color: var(--six-color-danger-800);\n}\n\n.tag--action {\n color: var(--six-color-white);\n border-color: var(--six-color-action-500);\n background-color: var(--six-color-action-500);\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Size modifiers\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.tag--small {\n font-size: var(--six-button-font-size-small);\n height: calc(var(--six-height-small) * 0.8);\n line-height: calc(var(--six-height-small) - var(--six-border-width) * 2);\n border-radius: var(--six-input-border-radius-small);\n padding: 0 var(--six-spacing-x-small);\n\n .tag__clear {\n margin-left: var(--six-spacing-xx-small);\n margin-right: calc(-1 * var(--six-spacing-xxx-small));\n }\n}\n\n.tag--medium {\n font-size: var(--six-button-font-size-medium);\n height: calc(var(--six-height-medium) * 0.8);\n line-height: calc(var(--six-height-medium) - var(--six-border-width) * 2);\n border-radius: var(--six-input-border-radius-medium);\n padding: 0 var(--six-spacing-small);\n\n .tag__clear {\n margin-left: var(--six-spacing-xx-small);\n margin-right: calc(-1 * var(--six-spacing-xx-small));\n }\n}\n\n.tag--large {\n font-size: var(--six-button-font-size-large);\n height: calc(var(--six-height-large) * 0.8);\n line-height: calc(var(--six-height-large) - var(--six-border-width) * 2);\n border-radius: var(--six-input-border-radius-large);\n padding: 0 var(--six-spacing-medium);\n\n .tag__clear {\n margin-left: var(--six-spacing-xx-small);\n margin-right: calc(-1 * var(--six-spacing-x-small));\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Pill modifier\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.tag--pill {\n border-radius: var(--six-border-radius-pill);\n}\n","import { Component, Event, EventEmitter, h, Prop } from '@stencil/core';\nimport { EmptyPayload } from '../../utils/types';\nimport { getTextContent } from '../../utils/slot';\nimport { debounce } from '../../utils/execution-control';\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The tag's content.\n *\n * @part base - The component's base wrapper.\n * @part content - The tag content.\n * @part clear-button - The clear button.\n */\n\n@Component({\n tag: 'six-tag',\n styleUrl: 'six-tag.scss',\n shadow: true,\n})\nexport class SixTag {\n /** The tag's type. */\n @Prop({ reflect: true }) type: 'primary' | 'success' | 'info' | 'warning' | 'danger' | 'action' | 'text' = 'primary';\n\n /** The tag's size. */\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Set to true to draw a pill-style tag with rounded edges. */\n @Prop({ reflect: true }) pill = false;\n\n /** Set to true to make the tag clearable. */\n @Prop({ reflect: true }) clearable = false;\n\n /** Emitted when the clear button is activated. */\n @Event({ eventName: 'six-tag-clear' }) sixClear!: EventEmitter<EmptyPayload>;\n\n private contentSlotElement: HTMLSlotElement | undefined;\n private tooltipElement: HTMLSixTooltipElement | undefined;\n private contentElement: HTMLElement | undefined;\n private resizeObserver = new ResizeObserver(debounce(() => this.updateTooltip()));\n\n connectedCallback() {\n if (this.contentElement != null) {\n this.resizeObserver.observe(this.contentElement);\n }\n }\n\n componentDidLoad() {\n if (this.contentElement != null) {\n this.resizeObserver.observe(this.contentElement);\n }\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n }\n\n private updateTooltip = () => {\n if (this.tooltipElement != null && this.contentSlotElement != null && this.contentElement != null) {\n this.tooltipElement.content = getTextContent(this.contentSlotElement);\n this.tooltipElement.disabled = !(this.contentElement.offsetWidth < this.contentElement.scrollWidth);\n }\n };\n\n private handleClearClick = () => {\n this.sixClear.emit();\n };\n\n render() {\n return (\n <span\n part=\"base\"\n class={{\n tag: true,\n\n // Types\n 'tag--primary': this.type === 'primary',\n 'tag--success': this.type === 'success',\n 'tag--info': this.type === 'info',\n 'tag--warning': this.type === 'warning',\n 'tag--danger': this.type === 'danger',\n 'tag--action': this.type === 'action',\n 'tag--text': this.type === 'text',\n\n // Sizes\n 'tag--small': this.size === 'small',\n 'tag--medium': this.size === 'medium',\n 'tag--large': this.size === 'large',\n\n // Modifers\n 'tag--pill': this.pill,\n 'tag--clear': this.clearable,\n }}\n >\n <six-tooltip ref={(el) => (this.tooltipElement = el)}>\n <span ref={(el) => (this.contentElement = el)} part=\"content\" class=\"tag__content\">\n <slot ref={(el) => (this.contentSlotElement = el as HTMLSlotElement)} />\n </span>\n </six-tooltip>\n\n {this.clearable && (\n <six-icon-button\n exportparts=\"base:clear-button\"\n size=\"xSmall\"\n name=\"clear\"\n class=\"tag__clear\"\n onClick={this.handleClearClick}\n />\n )}\n </span>\n );\n }\n}\n"],"mappings":"0HAAA,MAAMA,EAAY,00E,MCuBLC,EAAM,M,iEAmBTC,KAAAC,eAAiB,IAAIC,eAAeC,GAAS,IAAMH,KAAKI,mBAkBxDJ,KAAAI,cAAgB,KACtB,GAAIJ,KAAKK,gBAAkB,MAAQL,KAAKM,oBAAsB,MAAQN,KAAKO,gBAAkB,KAAM,CACjGP,KAAKK,eAAeG,QAAUC,EAAeT,KAAKM,oBAClDN,KAAKK,eAAeK,WAAaV,KAAKO,eAAeI,YAAcX,KAAKO,eAAeK,Y,GAInFZ,KAAAa,iBAAmB,KACzBb,KAAKc,SAASC,MAAM,E,UA3CqF,U,UAG7C,S,UAG9B,M,eAGK,K,CAUrC,iBAAAC,GACE,GAAIhB,KAAKO,gBAAkB,KAAM,CAC/BP,KAAKC,eAAegB,QAAQjB,KAAKO,e,EAIrC,gBAAAW,GACE,GAAIlB,KAAKO,gBAAkB,KAAM,CAC/BP,KAAKC,eAAegB,QAAQjB,KAAKO,e,EAIrC,oBAAAY,GACEnB,KAAKC,eAAemB,Y,CActB,MAAAC,GACE,OACEC,EAAA,QACEC,KAAK,OACLC,MAAO,CACLC,IAAK,KAGL,eAAgBzB,KAAK0B,OAAS,UAC9B,eAAgB1B,KAAK0B,OAAS,UAC9B,YAAa1B,KAAK0B,OAAS,OAC3B,eAAgB1B,KAAK0B,OAAS,UAC9B,cAAe1B,KAAK0B,OAAS,SAC7B,cAAe1B,KAAK0B,OAAS,SAC7B,YAAa1B,KAAK0B,OAAS,OAG3B,aAAc1B,KAAK2B,OAAS,QAC5B,cAAe3B,KAAK2B,OAAS,SAC7B,aAAc3B,KAAK2B,OAAS,QAG5B,YAAa3B,KAAK4B,KAClB,aAAc5B,KAAK6B,YAGrBP,EAAA,eAAaQ,IAAMC,GAAQ/B,KAAKK,eAAiB0B,GAC/CT,EAAA,QAAMQ,IAAMC,GAAQ/B,KAAKO,eAAiBwB,EAAKR,KAAK,UAAUC,MAAM,gBAClEF,EAAA,QAAMQ,IAAMC,GAAQ/B,KAAKM,mBAAqByB,MAIjD/B,KAAK6B,WACJP,EAAA,mBACEU,YAAY,oBACZL,KAAK,SACLM,KAAK,QACLT,MAAM,aACNU,QAASlC,KAAKa,mB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as e,h as s,g as i}from"./p-0beec94f.js";import{h as l,a as o}from"./p-faa04bb5.js";import{F as r}from"./p-6907a7dc.js";import{E as a}from"./p-8bfb4bfc.js";import{D as n,a as h}from"./p-a1502802.js";function c(t){if(Array.isArray(t)){return t.length===0}return t===""}const d=':host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.form-control .form-control__label{display:none}.form-control .form-control__help-text{display:none}.form-control .form-control__error-text{display:none;text-align:left}.form-control--has-label .form-control__label{display:inline-block;color:var(--six-input-label-color);font-weight:var(--six-font-weight-bold);margin-bottom:var(--six-spacing-x-small)}.form-control--has-label .form-control__label__required::after{color:var(--six-color-danger-800);content:"*";transform:scale(1.1);margin-left:var(--six-spacing-xxx-small);position:absolute}.form-control--has-label.form-control--small .form-control__label{font-size:var(--six-input-label-font-size-small)}.form-control--has-label.form-control--medium .form-control__label{font-size:var(--six-input-label-font-size-medium)}.form-control--has-label.form-control--large .form-control_label{font-size:var(--six-input-label-font-size-large)}.form-control--has-help-text .form-control__help-text{display:block;color:var(--six-input-help-text-color);margin-top:var(--six-spacing-x-small)}.form-control--has-help-text .form-control__help-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-help-text.form-control--small .form-control__help-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-help-text.form-control--medium .form-control__help-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-help-text.form-control--large .form-control__help-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--has-error-text .form-control__error-text{display:block;margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text .form-control__error-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text.form-control--small .form-control__error-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-error-text.form-control--medium .form-control__error-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-error-text.form-control--large .form-control__error-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--disabled .form-control__help-text{color:var(--six-input-help-text-color-disabled)}.form-control--disabled .form-control__label{color:var(--six-input-label-color-disabled)}.form-control--invalid:not(.form-control--disabled) .form-control__label{color:var(--six-input-label-color)}:host{display:block}.select{display:block}.select__box{display:inline-flex;align-items:center;justify-content:start;position:relative;width:100%;font-family:var(--six-font-family);font-weight:var(--six-input-font-weight);font-size:var(--six-input-font-size-medium);letter-spacing:var(--six-input-letter-spacing);background-color:var(--six-input-background-color);border:solid var(--six-border-width) var(--six-input-border-color);vertical-align:middle;transition:var(--six-transition-fast) color, var(--six-transition-fast) border, var(--six-transition-fast) box-shadow;cursor:pointer}.select__box--line{border:none;border-bottom:solid var(--six-border-width) var(--six-input-border-color)}.select__box--autocomplete{border:none;overflow:initial}.select:not(.select--disabled) .select__box:hover{background-color:var(--six-input-background-color-hover);color:var(--six-input-color-hover);border-bottom-color:var(--six-input-border-color-hover)}.select:not(.select--disabled) .select__box:hover:not(.select__box--line){border-color:var(--six-input-border-color-hover)}.select:not(.select--disabled) .select__box:focus{background-color:var(--six-input-background-color-focus);outline:none;color:var(--six-input-color-focus);border-bottom-color:var(--six-input-border-color-focus);box-shadow:0 1px 0 0 var(--six-input-border-color-focus)}.select:not(.select--disabled) .select__box:focus:not(.select__box--line){border-color:var(--six-input-border-color-focus);box-shadow:var(--six-input-focus-shadow)}.select--disabled .select__box{background-color:var(--six-input-background-color-disabled);color:var(--six-input-color-disabled);cursor:not-allowed;outline:none}.select--disabled .select__box:not(.select__box--line){border-color:var(--six-input-border-color-disabled)}.select--disabled .select__tags,.select--disabled .select__clear{pointer-events:none}.select--invalid:not(.select--disabled):not(.select--focused) .select__box{border-bottom-color:var(--six-input-border-color-danger)}.select--invalid:not(.select--disabled):not(.select--focused) .select__box:not(.input--line){border-color:var(--six-input-border-color-danger)}.select__label{flex-shrink:1;flex-grow:1;align-items:center;user-select:none;width:0;scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto;overflow-y:hidden;text-overflow:ellipsis}.select__label::-webkit-scrollbar{width:0;height:0}.select__label--single{white-space:nowrap}.select__clear{flex-shrink:0;flex-grow:0;display:inline}.select__icon{flex-shrink:0;flex-grow:0;display:inline;transition:var(--six-transition-medium) transform ease}.select--open .select__icon{transform:rotate(-180deg)}.select--placeholder-visible .select__label{color:var(--six-input-placeholder-color)}.select--disabled.select--placeholder-visible .select__label{color:var(--six-input-placeholder-color-disabled)}.select__tags{display:flex;align-items:center;flex-wrap:wrap;justify-content:left;margin-left:var(--six-spacing-xx-small)}.select__hidden-select{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.select__input{position:absolute;top:0;left:0;width:100%;height:100%}.select--small .select__box{border-radius:var(--six-input-border-radius-small);font-size:var(--six-input-font-size-small);min-height:var(--six-height-small)}.select--small .select__box--line{border:none;border-bottom:solid var(--six-border-width) var(--six-input-border-color)}.select--small .select__label{margin:0 var(--six-input-spacing-small)}.select--small .select__clear{margin-right:var(--six-spacing-xxx-small)}.select--small .select__icon{margin-right:var(--six-spacing-x-small)}.select--small .select__tags{padding-bottom:2px}.select--small .select__tags six-tag{padding-top:2px;margin-right:var(--six-spacing-xx-small)}.select--small.select--has-tags .select__label{margin-left:0}.select--medium .select__box{border-radius:var(--six-input-border-radius-medium);font-size:var(--six-input-font-size-medium);min-height:var(--six-height-medium)}.select--medium .select__box--line{border:none;border-bottom:solid var(--six-border-width) var(--six-input-border-color)}.select--medium .select__label{margin:0 var(--six-input-spacing-medium)}.select--medium .select__clear{margin-right:var(--six-spacing-xxx-small)}.select--medium .select__icon{margin-right:var(--six-spacing-x-small)}.select--medium .select__tags{padding-bottom:3px}.select--medium .select__tags six-tag{padding-top:3px;margin-right:var(--six-spacing-xx-small)}.select--medium.select--has-tags .select__label{margin-left:0}.select--large .select__box{border-radius:var(--six-input-border-radius-large);font-size:var(--six-input-font-size-large);min-height:var(--six-height-large)}.select--large .select__box--line{border:none;border-bottom:solid var(--six-border-width) var(--six-input-border-color)}.select--large .select__label{margin:0 var(--six-input-spacing-large)}.select--large .select__clear{margin-right:var(--six-spacing-xxx-small)}.select--large .select__icon{margin-right:var(--six-spacing-x-small)}.select--large .select__tags{padding-bottom:4px}.select--large .select__tags six-tag{padding-top:4px;margin-right:var(--six-spacing-xx-small)}.select--large.select--has-tags .select__label{margin-left:0}.select--pill.select--small .select__box{border-radius:var(--six-height-small)}.select--pill.select--medium .select__box{border-radius:var(--six-height-medium)}.select--pill.select--large .select__box{border-radius:var(--six-height-large)}.select__menu{max-width:50vw;width:fit-content}.select__menu--filtered{width:100% !important}.select__menu--hidden{display:none}six-icon-button::part(base){padding-top:0;padding-bottom:0}';let x=0;const u=class{constructor(s){t(this,s);this.sixChange=e(this,"six-select-change",7);this.sixFocus=e(this,"six-select-focus",7);this.sixBlur=e(this,"six-select-blur",7);this.inputId=`select-${++x}`;this.labelId=`select-label-${x}`;this.helpTextId=`select-help-text-${x}`;this.errorTextId=`select-error-text-${x}`;this.touched=false;this.eventListeners=new a;this.handleBlur=()=>{this.hasFocus=false;this.sixBlur.emit()};this.handleFocus=()=>{this.hasFocus=true;this.sixFocus.emit()};this.handleClearClick=t=>{t.stopPropagation();this.clearValues();this.sixChange.emit({value:this.value,isSelected:true})};this.handleSelectAll=t=>{const e=this.getItems().filter((t=>t.style.display!=="none"));const s=t.key;const i=t.code;if(s==="Control"){return}if(this.isOpen&&this.multiple&&i==="KeyA"&&t.ctrlKey){t.preventDefault();const s=e.some((t=>!t.disabled&&!t.checked));e.filter((t=>!t.disabled)).forEach((t=>t.checked=s));const i=e.filter((t=>t.checked)).map((t=>t.value));this.value=s?i:[];this.sixChange.emit({value:this.value,isSelected:true})}};this.handleKeyDown=t=>{var e,s,i,l;const o=t.target;const r=this.getItems();const a=r[0];const n=r[r.length-1];if(o.tagName.toLowerCase()==="six-tag"){return}if(t.key==="Tab"){if(this.isOpen){(e=this.dropdown)===null||e===void 0?void 0:e.hide()}return}if(["ArrowDown","ArrowUp"].includes(t.key)){t.preventDefault();if(!this.isOpen){(s=this.dropdown)===null||s===void 0?void 0:s.show()}if(t.key==="ArrowDown"&&a){a.setFocus();return}if(t.key==="ArrowUp"&&n){n.setFocus();return}}if(!this.isOpen){t.stopPropagation();t.preventDefault();(i=this.dropdown)===null||i===void 0?void 0:i.show();(l=this.menu)===null||l===void 0?void 0:l.typeToSelect(t.key)}};this.handleLabelClick=()=>{var t;(t=this.box)===null||t===void 0?void 0:t.focus()};this.handleMenuSelect=t=>{const e=t.detail.item;const s=()=>{if(this.multiple){return this.value.includes(e.value)?this.value.filter((t=>t!==e.value)):[...this.value,e.value]}else{return e.value}};this.value=s();this.syncItemsFromValue();this.sixChange.emit({value:this.value,isSelected:true})};this.handleMenuShow=t=>{var e;if(this.disabled){t.preventDefault();return}this.resizeMenu();(e=this.resizeObserver)===null||e===void 0?void 0:e.observe(this.host);this.isOpen=true};this.handleMenuHide=()=>{var t;(t=this.resizeObserver)===null||t===void 0?void 0:t.unobserve(this.host);this.isOpen=false};this.handleSlotChange=()=>{this.hasHelpTextSlot=l(this.host,"help-text");this.hasLabelSlot=l(this.host,"label");this.hasErrorTextSlot=l(this.host,"error-text");this.syncItemsFromValue()};this.handleTagInteraction=t=>{const e=t.composedPath();const s=e.find((t=>{if(t instanceof HTMLElement){const e=t;return e.classList.contains("tag__clear")}}));if(s){t.stopPropagation();this.sixChange.emit({value:this.value,isSelected:true})}};this.hasFocus=false;this.hasHelpTextSlot=false;this.hasLabelSlot=false;this.hasErrorTextSlot=false;this.isOpen=false;this.displayLabel="";this.displayTags=[];this.multiple=false;this.maxTagsVisible=3;this.disabled=false;this.name="";this.placeholder="";this.filterPlaceholder=undefined;this.filterDebounce=n;this.size="medium";this.hoist=false;this.value="";this.pill=false;this.helpText="";this.required=false;this.clearable=false;this.label="";this.errorText="";this.errorTextCount=undefined;this.invalid=false;this.line=false;this.filter=false;this.asyncFilter=false;this.autocomplete=false;this.inputDebounce=n;this.options=null;this.virtualScroll=false}handleDisabledChange(){var t;if(this.disabled&&this.isOpen){(t=this.dropdown)===null||t===void 0?void 0:t.hide()}}handleLabelChange(){this.handleSlotChange()}handleMultipleChange(){const t=this.getValueAsArray();this.value=this.multiple?t:t[0]||"";this.syncItemsFromValue()}async handleValueChange(){if(this.multiple&&!Array.isArray(this.value)){this.value=[]}if(!this.multiple&&typeof this.value!=="string"){this.value=""}await this.syncItemsFromValue()}connectedCallback(){var t;if(this.virtualScroll&&this.options===null){console.error("Options must be defined when using virtual scrolling")}(t=this.host.shadowRoot)===null||t===void 0?void 0:t.addEventListener("slotchange",this.handleSlotChange);this.eventListeners.forward("six-select-change","change",this.host);this.eventListeners.forward("six-select-blur","blur",this.host);this.eventListeners.forward("six-select-focus","focus",this.host)}componentWillLoad(){this.handleSlotChange();if(this.multiple&&this.value!=null){this.value=this.getValueAsArray()}}componentDidLoad(){if(this.input==null)return;const t=this.input;this.resizeObserver=new ResizeObserver((()=>this.resizeMenu()));requestAnimationFrame((()=>this.syncItemsFromValue()));this.eventListeners.add(t,"six-input-input",h((e=>{const s=t.value;this.clearValues();this.sixChange.emit({value:s,isSelected:false});e.stopPropagation()}),this.inputDebounce));t.value=this.hasSelection()?this.displayLabel:""}disconnectedCallback(){var t;(t=this.host.shadowRoot)===null||t===void 0?void 0:t.removeEventListener("slotchange",this.handleSlotChange);this.eventListeners.removeAll()}async setFocus(t){var e;this.hasFocus=true;(e=this.box)===null||e===void 0?void 0:e.focus(t)}getItemLabel(t){var e,s;const i=(e=t.shadowRoot)===null||e===void 0?void 0:e.querySelector("slot:not([name])");if(i!=null){return o(i)}else{return(s=t.textContent)!==null&&s!==void 0?s:""}}getItems(){if(this.options!==null){return this.options.map((t=>s("six-menu-item",{value:t.value},t.label)))}return[...this.host.querySelectorAll("six-menu-item")]}hasMenuItems(){return this.getItems().length>0}getValueAsArray(){const t=Array.isArray(this.value)?this.value:this.value===""?[]:[this.value];return t.map(String)}clearValues(){this.value=this.multiple?[]:"";this.syncItemsFromValue()}resizeMenu(){if(this.menu==null||this.box==null)return;this.menu.style.minWidth=`${this.box.clientWidth}px`;if(this.dropdown){this.dropdown.reposition()}}async syncItemsFromValue(){const t=this.getItems();const e=this.getValueAsArray();t.forEach((t=>t.checked=e.includes(t.value)));if(this.multiple){const i=[];e.forEach((e=>t.map((t=>t.value===e?i.push(t):null))));this.displayTags=i.map((t=>s("six-tag",{exportparts:"base:tag",type:"primary",size:this.size,pill:this.pill,clearable:true,onClick:this.handleTagInteraction,onKeyDown:this.handleTagInteraction,"onSix-tag-clear":e=>{e.stopPropagation();if(!this.disabled){t.checked=false;this.syncValueFromItems()}}},this.getItemLabel(t))));if(this.maxTagsVisible>0&&this.displayTags.length>this.maxTagsVisible){const t=this.displayTags.length;this.displayLabel="";this.displayTags=this.displayTags.slice(0,this.maxTagsVisible);this.displayTags.push(s("six-tag",{exportparts:"base:tag",type:"info",size:this.size},"+",t-this.maxTagsVisible))}}else{this.displayLabel=this.extractLabelForSelectedItem(e,t);this.displayTags=[]}if(!c(this.value)){this.touched=true}if(this.touched&&this.input!=null){this.input.value=Array.isArray(this.value)?this.value.join(","):this.value}}extractLabelForSelectedItem(t,e){if(t.length===0||t.length===1&&t[0]===""){return""}if(this.options!==null){const e=this.options.find((e=>e.value===t[0]));return(e===null||e===void 0?void 0:e.value)||""}const s=e.find((e=>e.value===t[0]));return s?this.getItemLabel(s):""}syncValueFromItems(){const t=this.getItems();const e=t.filter((t=>t.checked));const s=e.map((t=>t.value));this.value=this.multiple?this.getValueAsArray().filter((t=>s.includes(t))):s.length>0?s[0]:""}render(){var t;const e=this.hasSelection();return s(r,{inputId:this.inputId,label:this.label,labelId:this.labelId,hasLabelSlot:this.hasLabelSlot,helpTextId:this.helpTextId,helpText:this.helpText,hasHelpTextSlot:this.hasHelpTextSlot,errorTextId:this.errorTextId,errorText:this.errorText,errorTextCount:this.errorTextCount,hasErrorTextSlot:this.hasErrorTextSlot,size:this.size,onLabelClick:this.handleLabelClick,disabled:this.disabled,required:this.required,displayError:this.invalid},s("six-dropdown",{part:"base",ref:t=>this.dropdown=t,hoist:this.hoist,closeOnSelect:!this.multiple,containingElement:this.host,disableHideOnEnterAndSpace:this.autocomplete,class:{select:true,"select--open":this.isOpen,"select--empty":((t=this.value)===null||t===void 0?void 0:t.length)===0,"select--focused":this.hasFocus,"select--clearable":this.clearable,"select--disabled":this.disabled,"select--multiple":this.multiple,"select--has-tags":this.multiple&&e,"select--placeholder-visible":this.displayLabel==="","select--small":this.size==="small","select--medium":this.size==="medium","select--large":this.size==="large","select--pill":this.pill,"select--invalid":this.invalid},onKeyDown:this.handleSelectAll,"onSix-dropdown-show":this.handleMenuShow,"onSix-dropdown-hide":this.handleMenuHide,filterPlaceholder:this.filterPlaceholder,filterDebounce:this.filterDebounce,filter:this.filter,asyncFilter:this.asyncFilter},s("div",{slot:"trigger",ref:t=>this.box=t,id:this.inputId,class:{select__box:true,"select__box--line":this.line,"select__box--autocomplete":this.autocomplete},role:"combobox","aria-labelledby":this.labelId,"aria-describedby":this.helpTextId,"aria-haspopup":"true","aria-expanded":this.isOpen?"true":"false",tabIndex:this.disabled?-1:0,onBlur:this.handleBlur,onFocus:this.handleFocus,onKeyDown:this.handleKeyDown},s("span",{class:{select__label:true,"select__label--single":!this.displayTags.length}},this.displayTags.length>0?s("span",{part:"tags",class:"select__tags"},this.displayTags):this.displayLabel||this.placeholder),this.clearable&&e&&s("six-icon-button",{exportparts:"base:clear-button",class:"select__clear",name:"clear",size:"small",onClick:this.handleClearClick,tabindex:"-1"}),this.hasMenuItems()&&s("span",{part:"icon",class:"select__icon"},s("six-icon",{size:"medium"},"expand_more")),s("six-input",{ref:t=>this.input=t,class:{select__input:true,"select__hidden-select":!this.autocomplete},"aria-hidden":"true",required:this.required,onFocus:this.handleFocus,clearable:this.clearable,placeholder:this.placeholder,pill:this.pill,disabled:this.disabled,size:this.size,tabIndex:-1})),s("six-menu",{ref:t=>this.menu=t,part:"menu",class:{select__menu:true,"select__menu--filtered":this.filter||this.asyncFilter,"select__menu--hidden":!this.hasMenuItems()},"onSix-menu-item-selected":this.handleMenuSelect,items:this.options,virtualScroll:this.virtualScroll,"remove-box-shadow":true},s("slot",{onSlotchange:this.handleSlotChange}))))}hasSelection(){return this.multiple?this.value.length>0:this.value!==""}get host(){return i(this)}static get watchers(){return{disabled:["handleDisabledChange"],helpText:["handleLabelChange"],errorText:["handleLabelChange"],label:["handleLabelChange"],multiple:["handleMultipleChange"],value:["handleValueChange"]}}};u.style=d;export{u as six_select};
|
|
2
|
+
//# sourceMappingURL=p-93fcda4a.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isValueEmpty","value","Array","isArray","length","sixSelectCss","id","SixSelect","this","inputId","labelId","helpTextId","errorTextId","touched","eventListeners","EventListeners","handleBlur","hasFocus","sixBlur","emit","handleFocus","sixFocus","handleClearClick","event","stopPropagation","clearValues","sixChange","isSelected","handleSelectAll","nonFilteredItems","getItems","filter","item","style","display","keyName","key","keyCode","code","isOpen","multiple","ctrlKey","preventDefault","hasDeselectedOptions","some","opt","disabled","checked","option","forEach","checkedItems","map","handleKeyDown","target","items","firstItem","lastItem","tagName","toLowerCase","_a","dropdown","hide","includes","_b","show","setFocus","_c","_d","menu","typeToSelect","handleLabelClick","box","focus","handleMenuSelect","detail","getValue","v","syncItemsFromValue","handleMenuShow","resizeMenu","resizeObserver","observe","host","handleMenuHide","unobserve","handleSlotChange","hasHelpTextSlot","hasSlot","hasLabelSlot","hasErrorTextSlot","handleTagInteraction","path","composedPath","clearButton","find","el","HTMLElement","element","classList","contains","DEFAULT_DEBOUNCE_FAST","handleDisabledChange","handleLabelChange","handleMultipleChange","getValueAsArray","handleValueChange","connectedCallback","virtualScroll","options","console","error","shadowRoot","addEventListener","forward","componentWillLoad","componentDidLoad","input","ResizeObserver","requestAnimationFrame","add","debounce","enteredValue","inputDebounce","hasSelection","displayLabel","disconnectedCallback","removeEventListener","removeAll","getItemLabel","slot","querySelector","getTextContent","textContent","h","label","querySelectorAll","hasMenuItems","values","String","minWidth","clientWidth","reposition","val","push","displayTags","exportparts","type","size","pill","clearable","onClick","onKeyDown","syncValueFromItems","maxTagsVisible","total","slice","extractLabelForSelectedItem","join","selectedOption","checkedItem","checkedValues","render","FormControl","helpText","errorText","errorTextCount","onLabelClick","required","displayError","invalid","part","ref","hoist","closeOnSelect","containingElement","disableHideOnEnterAndSpace","autocomplete","class","select","filterPlaceholder","filterDebounce","asyncFilter","select__box","line","role","tabIndex","onBlur","onFocus","select__label","placeholder","name","tabindex","select__input","select__menu","onSlotchange"],"sources":["src/components/six-select/util.ts","src/components/six-select/six-select.scss?tag=six-select&encapsulation=shadow","src/components/six-select/six-select.tsx"],"sourcesContent":["export interface MenuItem {\n value: string;\n}\n\nexport function getValue(value: unknown, multiple: boolean, menuItems: MenuItem[]): string | string[] {\n if (multiple) {\n if (Array.isArray(value)) {\n return getSelectedValues(value, menuItems);\n } else {\n return getSelectedValuesFromString(value, menuItems);\n }\n }\n\n return getSelectedMenuItem(value, menuItems)?.value ?? '';\n}\n\nexport function isValidValue(value: unknown, multiple: boolean, menuItems: MenuItem[]): boolean {\n if (value === '') {\n return true;\n }\n\n if (multiple) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return true;\n }\n return getSelectedValues(value, menuItems).length === value.length;\n }\n return getSelectedValuesFromString(value, menuItems).length > 0;\n }\n\n return getSelectedMenuItem(value, menuItems) != null;\n}\n\nexport function valueEquals(a: string | string[], b: string | string[]): boolean {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((element, index) => element === b[index]);\n } else if (typeof a === 'string' && typeof b === 'string') {\n return a === b;\n }\n return false;\n}\n\nexport function isValueEmpty(value: string | string[]): boolean {\n if (Array.isArray(value)) {\n return value.length === 0;\n }\n return value === '';\n}\n\nfunction getSelectedValues(values: unknown[], menuItems: MenuItem[]): string[] {\n return menuItems.filter((menuItem) => values.includes(menuItem.value)).map((menuItem) => menuItem.value);\n}\n\nfunction getSelectedValuesFromString(value: unknown, menuItems: MenuItem[]): string[] {\n return menuItems.filter((menuItem) => value === menuItem.value).map((menuItem) => menuItem.value);\n}\n\nfunction getSelectedMenuItem(value: unknown, menuItems: MenuItem[]): MenuItem | undefined {\n return menuItems.find((item) => value === item.value);\n}\n","@import 'src/global/component';\n@import '../../functional-components/form-control/form-control';\n@import 'src/global/mixins/hidden';\n@import 'src/global/mixins/hide-scrollbar';\n\n:host {\n display: block;\n}\n\n.select {\n display: block;\n}\n\n.select__box {\n display: inline-flex;\n align-items: center;\n justify-content: start;\n position: relative;\n width: 100%;\n font-family: var(--six-font-family);\n font-weight: var(--six-input-font-weight);\n font-size: var(--six-input-font-size-medium);\n letter-spacing: var(--six-input-letter-spacing);\n background-color: var(--six-input-background-color);\n border: solid var(--six-border-width) var(--six-input-border-color);\n vertical-align: middle;\n transition: var(--six-transition-fast) color, var(--six-transition-fast) border, var(--six-transition-fast) box-shadow;\n cursor: pointer;\n\n &--line {\n border: none;\n border-bottom: solid var(--six-border-width) var(--six-input-border-color);\n }\n\n &--autocomplete {\n border: none;\n overflow: initial;\n }\n}\n\n.select:not(.select--disabled) .select__box:hover {\n background-color: var(--six-input-background-color-hover);\n color: var(--six-input-color-hover);\n\n border-bottom-color: var(--six-input-border-color-hover);\n\n &:not(.select__box--line) {\n border-color: var(--six-input-border-color-hover);\n }\n}\n\n.select:not(.select--disabled) .select__box:focus {\n background-color: var(--six-input-background-color-focus);\n outline: none;\n color: var(--six-input-color-focus);\n\n border-bottom-color: var(--six-input-border-color-focus);\n box-shadow: 0 1px 0 0 var(--six-input-border-color-focus);\n\n &:not(.select__box--line) {\n border-color: var(--six-input-border-color-focus);\n box-shadow: var(--six-input-focus-shadow);\n }\n}\n\n.select--disabled {\n .select__box {\n background-color: var(--six-input-background-color-disabled);\n color: var(--six-input-color-disabled);\n cursor: not-allowed;\n outline: none;\n\n &:not(.select__box--line) {\n border-color: var(--six-input-border-color-disabled);\n }\n }\n\n .select__tags,\n .select__clear {\n pointer-events: none;\n }\n}\n\n.select--invalid:not(.select--disabled):not(.select--focused) {\n .select__box {\n border-bottom-color: var(--six-input-border-color-danger);\n\n &:not(.input--line) {\n border-color: var(--six-input-border-color-danger);\n }\n }\n}\n\n.select__label {\n flex-shrink: 1;\n flex-grow: 1;\n align-items: center;\n user-select: none;\n width: 0; /* needed for firefox because due to \"white-space: nowrap\" the default is set to max-content */\n\n @include hide-scrollbar;\n overflow-x: auto;\n overflow-y: hidden;\n text-overflow: ellipsis;\n}\n\n.select__label--single {\n white-space: nowrap;\n}\n\n.select__clear {\n flex-shrink: 0;\n flex-grow: 0;\n display: inline;\n}\n\n.select__icon {\n flex-shrink: 0;\n flex-grow: 0;\n display: inline;\n transition: var(--six-transition-medium) transform ease;\n}\n\n.select--open .select__icon {\n transform: rotate(-180deg);\n}\n\n// Placeholder\n.select--placeholder-visible .select__label {\n color: var(--six-input-placeholder-color);\n}\n\n.select--disabled.select--placeholder-visible .select__label {\n color: var(--six-input-placeholder-color-disabled);\n}\n\n// Tags\n.select__tags {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n justify-content: left;\n margin-left: var(--six-spacing-xx-small);\n}\n\n// Hidden input (for form control validation to show)\n.select__hidden-select {\n @include visually-hidden();\n}\n\n.select__input {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Size modifiers\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.select--small {\n .select__box {\n border-radius: var(--six-input-border-radius-small);\n font-size: var(--six-input-font-size-small);\n min-height: var(--six-height-small);\n\n &--line {\n border: none;\n border-bottom: solid var(--six-border-width) var(--six-input-border-color);\n }\n }\n\n .select__label {\n margin: 0 var(--six-input-spacing-small);\n }\n\n .select__clear {\n margin-right: var(--six-spacing-xxx-small);\n }\n\n .select__icon {\n margin-right: var(--six-spacing-x-small);\n }\n\n .select__tags {\n padding-bottom: 2px;\n\n six-tag {\n padding-top: 2px;\n margin-right: var(--six-spacing-xx-small);\n }\n }\n\n &.select--has-tags .select__label {\n margin-left: 0;\n }\n}\n\n.select--medium {\n .select__box {\n border-radius: var(--six-input-border-radius-medium);\n font-size: var(--six-input-font-size-medium);\n min-height: var(--six-height-medium);\n\n &--line {\n border: none;\n border-bottom: solid var(--six-border-width) var(--six-input-border-color);\n }\n }\n\n .select__label {\n margin: 0 var(--six-input-spacing-medium);\n }\n\n .select__clear {\n margin-right: var(--six-spacing-xxx-small);\n }\n\n .select__icon {\n margin-right: var(--six-spacing-x-small);\n }\n\n .select__tags {\n padding-bottom: 3px;\n\n six-tag {\n padding-top: 3px;\n margin-right: var(--six-spacing-xx-small);\n }\n }\n\n &.select--has-tags .select__label {\n margin-left: 0;\n }\n}\n\n.select--large {\n .select__box {\n border-radius: var(--six-input-border-radius-large);\n font-size: var(--six-input-font-size-large);\n min-height: var(--six-height-large);\n\n &--line {\n border: none;\n border-bottom: solid var(--six-border-width) var(--six-input-border-color);\n }\n }\n\n .select__label {\n margin: 0 var(--six-input-spacing-large);\n }\n\n .select__clear {\n margin-right: var(--six-spacing-xxx-small);\n }\n\n .select__icon {\n margin-right: var(--six-spacing-x-small);\n }\n\n .select__tags {\n padding-bottom: 4px;\n\n six-tag {\n padding-top: 4px;\n margin-right: var(--six-spacing-xx-small);\n }\n }\n\n &.select--has-tags .select__label {\n margin-left: 0;\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Pill modifier\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.select--pill {\n &.select--small .select__box {\n border-radius: var(--six-height-small);\n }\n\n &.select--medium .select__box {\n border-radius: var(--six-height-medium);\n }\n\n &.select--large .select__box {\n border-radius: var(--six-height-large);\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Menu\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n.select {\n &__menu {\n max-width: 50vw;\n width: fit-content;\n\n &--filtered {\n // fixes problem where when filter is enabled the popup has the width of the input field but the menu has the width\n // of the trigger element and we thus get weird UI glitches when trigger is narrower than filter input field\n width: 100% !important;\n }\n\n &--hidden {\n // hide the menu panel if there are no menu items\n display: none;\n }\n }\n}\n\n// fixes problem where six-select height changes when size=\"small\" and clearing button is visible\nsix-icon-button::part(base) {\n padding-top: 0;\n padding-bottom: 0;\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { getTextContent, hasSlot } from '../../utils/slot';\nimport FormControl from '../../functional-components/form-control/form-control';\nimport { EmptyPayload } from '../../utils/types';\nimport { EventListeners } from '../../utils/event-listeners';\nimport { debounce, DEFAULT_DEBOUNCE_FAST } from '../../utils/execution-control';\nimport { SixMenuItemData } from '../six-menu/six-menu';\nimport { isValueEmpty } from './util';\n\nexport interface SixSelectChangePayload {\n value: string | string[];\n isSelected: boolean;\n}\n\nlet id = 0;\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The select's options in the form of menu items.\n * @slot label - The select's label. Alternatively, you can use the label prop.\n * @slot help-text - Help text that describes how to use the select.\n * @slot error-text - Error text that is shown for validation errors. Alternatively, you can use the error-text prop.\n *\n * @part base - The component's base wrapper.\n * @part clear-button - The input's clear button, exported from six-input.\n * @part form-control - The form control that wraps the label, input, and help text.\n * @part help-text - The select's help text.\n * @part icon - The select's icon.\n * @part label - The select's label.\n * @part menu - The select menu, a six-menu element.\n * @part tag - The multiselect option, a six-tag element.\n * @part tags - The container in which multiselect options are rendered.\n */\n\n@Component({\n tag: 'six-select',\n styleUrl: 'six-select.scss',\n shadow: true,\n})\nexport class SixSelect {\n private box?: HTMLElement;\n private dropdown?: HTMLSixDropdownElement;\n private input?: HTMLSixInputElement;\n private inputId = `select-${++id}`;\n private labelId = `select-label-${id}`;\n private helpTextId = `select-help-text-${id}`;\n private errorTextId = `select-error-text-${id}`;\n private menu?: HTMLSixMenuElement;\n private resizeObserver?: ResizeObserver;\n private touched = false;\n private eventListeners = new EventListeners();\n\n @Element() host!: HTMLSixSelectElement;\n\n @State() hasFocus = false;\n @State() hasHelpTextSlot = false;\n @State() hasLabelSlot = false;\n @State() hasErrorTextSlot = false;\n @State() isOpen = false;\n @State() displayLabel = '';\n @State() displayTags: HTMLSixTagElement[] = [];\n\n /** Set to true to enable multiselect. */\n @Prop() multiple = false;\n\n /**\n * The maximum number of tags to show when `multiple` is true. After the maximum, \"+n\" will be shown to indicate the\n * number of additional items that are selected. Set to -1 to remove the limit.\n */\n @Prop() maxTagsVisible = 3;\n\n /** Set to true to disable the select control. */\n @Prop() disabled = false;\n\n /** The select's name. */\n @Prop() name = '';\n\n /** The select's placeholder text. */\n @Prop() placeholder = '';\n\n /** The filter's placeholder text. */\n @Prop() filterPlaceholder?: string;\n\n /** The debounce for the filter callbacks. */\n @Prop() filterDebounce = DEFAULT_DEBOUNCE_FAST;\n\n /** The select's size. */\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`.\n */\n @Prop() hoist = false;\n\n /** The value of the control. This will be a string or an array depending on `multiple`. */\n @Prop({ mutable: true }) value: string | string[] = '';\n\n /** Set to true to draw a pill-style select with rounded edges. */\n @Prop() pill = false;\n\n /** The select's help text. Alternatively, you can use the help-text slot. */\n @Prop() helpText = '';\n\n /** Set to true to show an asterisk beneath the label. */\n @Prop() required = false;\n\n /** Set to true to add a clear button when the select is populated. */\n @Prop() clearable = false;\n\n /** The label text. */\n @Prop() label = '';\n\n /** The error message shown, if `invalid` is set to true. */\n @Prop() errorText: string | string[] = '';\n\n /** The number of error texts to be shown (if the error-text slot isn't used). Defaults to 1 */\n @Prop() errorTextCount?: number;\n\n /** If this property is set to true and an error message is provided by `errorText`, the error message is displayed. */\n @Prop({ reflect: true }) invalid = false;\n\n /** Set to render as line */\n @Prop() line = false;\n\n /** Set to true to allow filtering for entries in the dropdown */\n @Prop() filter = false;\n\n /**\n * Set to true to allow async filtering.\n * When you enter something in the search field the component will only emit an event but not filter any elements itself.\n * You can then simply listen to the 'six-async-filter-fired' event to manage the shown menu-items yourself\n */\n @Prop() asyncFilter = false;\n\n /**\n * Set to true to turn the six-select into an autocomplete.\n */\n @Prop() autocomplete = false;\n\n /** The debounce for when the input changes for autocompletes should be emitted */\n @Prop() inputDebounce = DEFAULT_DEBOUNCE_FAST;\n\n /** Set the options to be shown in the dropdown (alternative to setting the elements via html) */\n @Prop() options: SixMenuItemData[] | null = null;\n\n /** Defines whether the menu list will be rendered virtually i.e. only the elements actually shown (and a couple around)\n * are actually rendered in the DOM. If you use virtual scrolling pass the elements via prop instead of via slot. */\n @Prop() virtualScroll = false;\n\n @Watch('disabled')\n handleDisabledChange() {\n if (this.disabled && this.isOpen) {\n this.dropdown?.hide();\n }\n }\n\n @Watch('helpText')\n @Watch('errorText')\n @Watch('label')\n handleLabelChange() {\n this.handleSlotChange();\n }\n\n @Watch('multiple')\n handleMultipleChange() {\n // Cast to array | string based on `this.multiple`\n const value = this.getValueAsArray();\n this.value = this.multiple ? value : value[0] || '';\n this.syncItemsFromValue();\n }\n\n @Watch('value')\n async handleValueChange() {\n if (this.multiple && !Array.isArray(this.value)) {\n this.value = [];\n }\n\n if (!this.multiple && typeof this.value !== 'string') {\n this.value = '';\n }\n\n await this.syncItemsFromValue();\n }\n\n /** Emitted when the control's value changes. */\n @Event({ eventName: 'six-select-change' }) sixChange!: EventEmitter<SixSelectChangePayload>;\n\n /** Emitted when the control gains focus. */\n @Event({ eventName: 'six-select-focus' }) sixFocus!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the control loses focus. */\n @Event({ eventName: 'six-select-blur' }) sixBlur!: EventEmitter<EmptyPayload>;\n\n connectedCallback() {\n if (this.virtualScroll && this.options === null) {\n console.error('Options must be defined when using virtual scrolling');\n }\n this.host.shadowRoot?.addEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.forward('six-select-change', 'change', this.host);\n this.eventListeners.forward('six-select-blur', 'blur', this.host);\n this.eventListeners.forward('six-select-focus', 'focus', this.host);\n }\n\n componentWillLoad() {\n this.handleSlotChange();\n if (this.multiple && this.value != null) {\n this.value = this.getValueAsArray();\n }\n }\n\n componentDidLoad() {\n if (this.input == null) return;\n const input = this.input;\n this.resizeObserver = new ResizeObserver(() => this.resizeMenu());\n\n // We need to do an initial sync after the component has rendered, so this will suppress the re-render warning\n requestAnimationFrame(() => this.syncItemsFromValue());\n\n this.eventListeners.add(\n input,\n 'six-input-input',\n debounce((event) => {\n const enteredValue = input.value;\n this.clearValues();\n this.sixChange.emit({ value: enteredValue, isSelected: false });\n event.stopPropagation();\n }, this.inputDebounce)\n );\n\n input.value = this.hasSelection() ? this.displayLabel : '';\n }\n\n disconnectedCallback() {\n this.host.shadowRoot?.removeEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.removeAll();\n }\n\n /** Sets focus on the select. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.hasFocus = true;\n this.box?.focus(options);\n }\n\n private getItemLabel(item: HTMLSixMenuItemElement): string {\n const slot = item.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (slot != null) {\n return getTextContent(slot);\n } else {\n // bugfix/COMSLI-203-six-select-value-is-not-updated-if-the-slot-is-changed\n return item.textContent ?? '';\n }\n }\n\n private getItems(): HTMLSixMenuItemElement[] {\n if (this.options !== null) {\n return this.options.map((option) => <six-menu-item value={option.value}>{option.label}</six-menu-item>);\n }\n\n return [...this.host.querySelectorAll('six-menu-item')];\n }\n\n private hasMenuItems() {\n return this.getItems().length > 0;\n }\n\n private getValueAsArray() {\n const values = Array.isArray(this.value) ? this.value : this.value === '' ? [] : [this.value];\n // enforce that the values are converted to 'string' before the value is compared\n return values.map(String);\n }\n\n private handleBlur = () => {\n this.hasFocus = false;\n this.sixBlur.emit();\n };\n\n private handleFocus = () => {\n this.hasFocus = true;\n this.sixFocus.emit();\n };\n\n private handleClearClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.clearValues();\n this.sixChange.emit({ value: this.value, isSelected: true });\n };\n\n private clearValues() {\n this.value = this.multiple ? [] : '';\n this.syncItemsFromValue();\n }\n\n private handleSelectAll = (event: KeyboardEvent) => {\n const nonFilteredItems = this.getItems().filter((item) => item.style.display !== 'none');\n const keyName = event.key;\n const keyCode = event.code;\n\n if (keyName === 'Control') {\n return;\n }\n\n if (this.isOpen && this.multiple && keyCode === 'KeyA' && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = nonFilteredItems.some((opt) => !opt.disabled && !opt.checked);\n\n nonFilteredItems\n .filter((option) => !option.disabled)\n .forEach((option) => (option.checked = hasDeselectedOptions));\n const checkedItems = nonFilteredItems.filter((option) => option.checked).map((option) => option.value);\n this.value = hasDeselectedOptions ? checkedItems : [];\n this.sixChange.emit({ value: this.value, isSelected: true });\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const target = event.target as HTMLElement;\n\n const items = this.getItems();\n const firstItem = items[0];\n const lastItem = items[items.length - 1];\n\n // Ignore key presses on tags\n if (target.tagName.toLowerCase() === 'six-tag') {\n return;\n }\n\n // Tabbing out of the control closes it\n if (event.key === 'Tab') {\n if (this.isOpen) {\n this.dropdown?.hide();\n }\n return;\n }\n\n // Up/down opens the menu\n if (['ArrowDown', 'ArrowUp'].includes(event.key)) {\n event.preventDefault();\n\n // Show the menu if it's not already open\n if (!this.isOpen) {\n this.dropdown?.show();\n }\n\n // Focus on a menu item\n if (event.key === 'ArrowDown' && firstItem) {\n firstItem.setFocus();\n return;\n }\n\n if (event.key === 'ArrowUp' && lastItem) {\n lastItem.setFocus();\n return;\n }\n }\n\n // All other keys open the menu and initiate type to select\n if (!this.isOpen) {\n event.stopPropagation();\n event.preventDefault();\n this.dropdown?.show();\n this.menu?.typeToSelect(event.key);\n }\n };\n\n private handleLabelClick = () => {\n this.box?.focus();\n };\n\n private handleMenuSelect = (event: CustomEvent) => {\n const item = event.detail.item;\n\n const getValue = () => {\n if (this.multiple) {\n return this.value.includes(item.value)\n ? (this.value as []).filter((v) => v !== item.value)\n : [...this.value, item.value];\n } else {\n return item.value;\n }\n };\n\n this.value = getValue();\n\n this.syncItemsFromValue();\n this.sixChange.emit({ value: this.value, isSelected: true });\n };\n\n private handleMenuShow = (event: CustomEvent) => {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n this.resizeMenu();\n this.resizeObserver?.observe(this.host);\n this.isOpen = true;\n };\n\n private handleMenuHide = () => {\n this.resizeObserver?.unobserve(this.host);\n this.isOpen = false;\n };\n\n private handleSlotChange = () => {\n this.hasHelpTextSlot = hasSlot(this.host, 'help-text');\n this.hasLabelSlot = hasSlot(this.host, 'label');\n this.hasErrorTextSlot = hasSlot(this.host, 'error-text');\n this.syncItemsFromValue();\n };\n\n private handleTagInteraction = (event: KeyboardEvent | MouseEvent) => {\n // Don't toggle the menu when a tag's clear button is activated\n const path = event.composedPath() as EventTarget[];\n const clearButton = path.find((el) => {\n if (el instanceof HTMLElement) {\n const element = el as HTMLElement;\n return element.classList.contains('tag__clear');\n }\n });\n\n if (clearButton) {\n event.stopPropagation();\n this.sixChange.emit({ value: this.value, isSelected: true });\n }\n };\n\n private resizeMenu() {\n if (this.menu == null || this.box == null) return;\n this.menu.style.minWidth = `${this.box.clientWidth}px`;\n\n if (this.dropdown) {\n this.dropdown.reposition();\n }\n }\n\n private async syncItemsFromValue() {\n const items = this.getItems();\n const value = this.getValueAsArray();\n\n // Sync checked states\n items.forEach((item) => (item.checked = value.includes(item.value)));\n\n // Sync display label\n if (this.multiple) {\n const checkedItems: HTMLSixMenuItemElement[] = [];\n value.forEach((val) => items.map((item) => (item.value === val ? checkedItems.push(item) : null)));\n\n this.displayTags = checkedItems.map((item) => {\n return (\n <six-tag\n exportparts=\"base:tag\"\n type=\"primary\"\n size={this.size}\n pill={this.pill}\n clearable\n onClick={this.handleTagInteraction}\n onKeyDown={this.handleTagInteraction}\n onSix-tag-clear={(event) => {\n event.stopPropagation();\n if (!this.disabled) {\n item.checked = false;\n this.syncValueFromItems();\n }\n }}\n >\n {this.getItemLabel(item)}\n </six-tag>\n );\n });\n\n if (this.maxTagsVisible > 0 && this.displayTags.length > this.maxTagsVisible) {\n const total = this.displayTags.length;\n this.displayLabel = '';\n this.displayTags = this.displayTags.slice(0, this.maxTagsVisible);\n this.displayTags.push(\n <six-tag exportparts=\"base:tag\" type=\"info\" size={this.size}>\n +{total - this.maxTagsVisible}\n </six-tag>\n );\n }\n } else {\n this.displayLabel = this.extractLabelForSelectedItem(value, items);\n this.displayTags = [];\n }\n\n if (!isValueEmpty(this.value)) {\n this.touched = true;\n }\n if (this.touched && this.input != null) {\n this.input.value = Array.isArray(this.value) ? this.value.join(',') : this.value;\n }\n }\n\n private extractLabelForSelectedItem(value: string[], items: HTMLSixMenuItemElement[]): string {\n if (value.length === 0 || (value.length === 1 && value[0] === '')) {\n return '';\n }\n\n if (this.options !== null) {\n const selectedOption = this.options.find((item) => item.value === value[0]);\n return selectedOption?.value || '';\n }\n\n const checkedItem = items.find((item) => item.value === value[0]);\n return checkedItem ? this.getItemLabel(checkedItem) : '';\n }\n\n private syncValueFromItems() {\n const items = this.getItems();\n const checkedItems = items.filter((item) => item.checked);\n const checkedValues = checkedItems.map((item) => item.value);\n this.value = this.multiple\n ? this.getValueAsArray().filter((val) => checkedValues.includes(val))\n : checkedValues.length > 0\n ? checkedValues[0]\n : '';\n }\n\n render() {\n const hasSelection = this.hasSelection();\n\n return (\n <FormControl\n inputId={this.inputId}\n label={this.label}\n labelId={this.labelId}\n hasLabelSlot={this.hasLabelSlot}\n helpTextId={this.helpTextId}\n helpText={this.helpText}\n hasHelpTextSlot={this.hasHelpTextSlot}\n errorTextId={this.errorTextId}\n errorText={this.errorText}\n errorTextCount={this.errorTextCount}\n hasErrorTextSlot={this.hasErrorTextSlot}\n size={this.size}\n onLabelClick={this.handleLabelClick}\n disabled={this.disabled}\n required={this.required}\n displayError={this.invalid}\n >\n <six-dropdown\n part=\"base\"\n ref={(el) => (this.dropdown = el)}\n hoist={this.hoist}\n closeOnSelect={!this.multiple}\n containingElement={this.host}\n disableHideOnEnterAndSpace={this.autocomplete}\n class={{\n select: true,\n 'select--open': this.isOpen,\n 'select--empty': this.value?.length === 0,\n 'select--focused': this.hasFocus,\n 'select--clearable': this.clearable,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--has-tags': this.multiple && hasSelection,\n 'select--placeholder-visible': this.displayLabel === '',\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n 'select--pill': this.pill,\n 'select--invalid': this.invalid,\n }}\n onKeyDown={this.handleSelectAll}\n onSix-dropdown-show={this.handleMenuShow}\n onSix-dropdown-hide={this.handleMenuHide}\n filterPlaceholder={this.filterPlaceholder}\n filterDebounce={this.filterDebounce}\n filter={this.filter}\n asyncFilter={this.asyncFilter}\n >\n <div\n slot=\"trigger\"\n ref={(el) => (this.box = el)}\n id={this.inputId}\n class={{\n select__box: true,\n 'select__box--line': this.line,\n 'select__box--autocomplete': this.autocomplete,\n }}\n role=\"combobox\"\n aria-labelledby={this.labelId}\n aria-describedby={this.helpTextId}\n aria-haspopup=\"true\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n tabIndex={this.disabled ? -1 : 0}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n >\n <span class={{ select__label: true, 'select__label--single': !this.displayTags.length }}>\n {this.displayTags.length > 0 ? (\n <span part=\"tags\" class=\"select__tags\">\n {this.displayTags}\n </span>\n ) : (\n this.displayLabel || this.placeholder\n )}\n </span>\n\n {this.clearable && hasSelection && (\n <six-icon-button\n exportparts=\"base:clear-button\"\n class=\"select__clear\"\n name=\"clear\"\n size=\"small\"\n onClick={this.handleClearClick}\n tabindex=\"-1\"\n />\n )}\n\n {this.hasMenuItems() && (\n <span part=\"icon\" class=\"select__icon\">\n <six-icon size=\"medium\">expand_more</six-icon>\n </span>\n )}\n\n {/*\n The hidden input tricks the browser's built-in validation so it works as expected. We use an input instead\n of a select because, otherwise, iOS will show a list of options during validation.\n */}\n <six-input\n ref={(el) => (this.input = el)}\n class={{\n select__input: true,\n 'select__hidden-select': !this.autocomplete,\n }}\n aria-hidden=\"true\"\n required={this.required}\n onFocus={this.handleFocus}\n clearable={this.clearable}\n placeholder={this.placeholder}\n pill={this.pill}\n disabled={this.disabled}\n size={this.size}\n tabIndex={-1}\n />\n </div>\n\n <six-menu\n ref={(el) => (this.menu = el)}\n part=\"menu\"\n class={{\n select__menu: true,\n 'select__menu--filtered': this.filter || this.asyncFilter,\n 'select__menu--hidden': !this.hasMenuItems(),\n }}\n onSix-menu-item-selected={this.handleMenuSelect}\n items={this.options}\n virtualScroll={this.virtualScroll}\n remove-box-shadow\n >\n <slot onSlotchange={this.handleSlotChange} />\n </six-menu>\n </six-dropdown>\n </FormControl>\n );\n }\n\n private hasSelection() {\n return this.multiple ? this.value.length > 0 : this.value !== '';\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as i,h as e,g as r}from"./p-0beec94f.js";import{u as s,l as a}from"./p-8227aaed.js";import{h as o}from"./p-faa04bb5.js";import{i as n,M as h}from"./p-998de05d.js";const l=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host{--size:25rem;display:contents}.drawer{top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.drawer:not(.drawer--visible){position:absolute;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;pointer-events:none;visibility:hidden}.drawer--contained{position:absolute;z-index:initial}.drawer--fixed{position:fixed;z-index:var(--six-z-index-drawer)}.drawer__panel{position:absolute;display:flex;flex-direction:column;z-index:2;max-width:100%;max-height:100%;background-color:var(--six-drawer-background-color);color:var(--six-drawer-color);box-shadow:var(--six-shadow-x-large);transition:var(--six-transition-medium) transform;overflow:auto;pointer-events:all}.drawer__panel:focus{outline:none}.drawer--top .drawer__panel{top:0;right:auto;bottom:auto;left:0;width:100%;height:var(--size);transform:translate(0, -100%)}.drawer--right .drawer__panel{top:0;right:0;bottom:auto;left:auto;width:var(--size);height:100%;transform:translate(100%, 0)}.drawer--bottom .drawer__panel{top:auto;right:auto;bottom:0;left:0;width:100%;height:var(--size);transform:translate(0, 100%)}.drawer--left .drawer__panel{top:0;right:auto;bottom:auto;left:0;width:var(--size);height:100%;transform:translate(-100%, 0)}.drawer--open .drawer__panel{transform:none}.drawer__header{display:flex}.drawer__title{flex:1 1 auto;font-size:var(--six-font-size-large);line-height:var(--six-line-height-dense);padding:var(--six-spacing-large)}.drawer__close{flex:0 0 auto;display:flex;align-items:center;font-size:var(--six-font-size-x-large);padding:0 var(--six-spacing-large)}.drawer__body{flex:1 1 auto;padding:var(--six-spacing-large);overflow:auto;-webkit-overflow-scrolling:touch}.drawer__footer{text-align:right;padding:var(--six-spacing-large)}.drawer__footer ::slotted(six-button:not(:last-of-type)){margin-right:var(--six-spacing-x-small)}.drawer:not(.drawer--has-footer) .drawer__footer{display:none}.drawer__overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--six-overlay-background-color);opacity:0;transition:var(--six-transition-medium) opacity;pointer-events:all}.drawer--contained .drawer__overlay{position:absolute}.drawer--open .drawer__overlay{opacity:0.4}";const d=n();let f=0;const p=class{constructor(e){t(this,e);this.sixShow=i(this,"six-drawer-show",7);this.sixAfterShow=i(this,"six-drawer-after-show",7);this.sixHide=i(this,"six-drawer-hide",7);this.sixAfterHide=i(this,"six-drawer-after-hide",7);this.sixInitialFocus=i(this,"six-drawer-initial-focus",7);this.sixOverlayDismiss=i(this,"six-drawer-overlay-dismiss",7);this.componentId=`drawer-${++f}`;this.willShow=false;this.willHide=false;this.handleCloseClick=()=>{this.hide()};this.handleKeyDown=t=>{if(t.key==="Escape"){this.hide()}};this.handleOverlayClick=()=>{const t=this.sixOverlayDismiss.emit();if(!t.defaultPrevented){this.hide()}};this.handleSlotChange=()=>{this.hasFooter=o(this.host,"footer")};this.handleTransitionEnd=t=>{const i=t.target;if(t.propertyName==="transform"&&i.classList.contains("drawer__panel")){this.resetTransitionVariables()}};this.hasFooter=false;this.isVisible=false;this.open=false;this.label="";this.placement="right";this.contained=false;this.noHeader=false}handleOpenChange(){this.open?this.show():this.hide()}connectedCallback(){this.modal=new h(this.host,{onFocusOut:()=>{var t;return this.contained?null:(t=this.panel)===null||t===void 0?void 0:t.focus()}})}componentWillLoad(){this.handleSlotChange();if(this.open){this.show();this.resetTransitionVariables()}}disconnectedCallback(){s(this.host)}async show(){if(this.willShow||this.modal==null||this.panel==null||this.drawer==null){return}const t=this.panel;const i=this.sixShow.emit();if(i.defaultPrevented){this.open=false;return}this.willShow=true;this.isVisible=true;this.open=true;if(!this.contained){this.modal.activate();a(this.host)}if(this.open){if(d){requestAnimationFrame((()=>{const i=this.sixInitialFocus.emit();if(!i.defaultPrevented){t.focus({preventScroll:true})}}))}else{this.drawer.addEventListener("transitionend",(()=>{const i=this.sixInitialFocus.emit();if(!i.defaultPrevented){t.focus()}}),{once:true})}}}async hide(){if(this.willHide||this.modal==null){return}const t=this.sixHide.emit();if(t.defaultPrevented){this.open=true;return}this.willHide=true;this.open=false;this.modal.deactivate();s(this.host)}resetTransitionVariables(){this.isVisible=this.open;this.willShow=false;this.willHide=false;this.open?this.sixAfterShow.emit():this.sixAfterHide.emit()}render(){return e("div",{ref:t=>this.drawer=t,part:"base",class:{drawer:true,"drawer--open":this.open,"drawer--visible":this.isVisible,"drawer--top":this.placement==="top","drawer--right":this.placement==="right","drawer--bottom":this.placement==="bottom","drawer--left":this.placement==="left","drawer--contained":this.contained,"drawer--fixed":!this.contained,"drawer--has-footer":this.hasFooter},onKeyDown:this.handleKeyDown,onTransitionEnd:this.handleTransitionEnd},e("div",{part:"overlay",class:"drawer__overlay",onClick:this.handleOverlayClick,tabIndex:-1}),e("div",{ref:t=>this.panel=t,part:"panel",class:"drawer__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},!this.noHeader&&e("header",{part:"header",class:"drawer__header"},e("span",{part:"title",class:"drawer__title",id:`${this.componentId}-title`},e("slot",{name:"label"},this.label||String.fromCharCode(65279))),e("six-icon-button",{exportparts:"base:close-button",class:"drawer__close",name:"close",onClick:this.handleCloseClick})),e("div",{part:"body",class:"drawer__body"},e("slot",null)),e("footer",{part:"footer",class:"drawer__footer"},e("slot",{name:"footer",onSlotchange:this.handleSlotChange}))))}get host(){return r(this)}static get watchers(){return{open:["handleOpenChange"]}}};p.style=l;export{p as six_drawer};
|
|
2
|
+
//# sourceMappingURL=p-981b3228.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sixDrawerCss","hasPreventScroll","isPreventScrollSupported","id","SixDrawer","this","componentId","willShow","willHide","handleCloseClick","hide","handleKeyDown","event","key","handleOverlayClick","sixOverlayDismiss","emit","defaultPrevented","handleSlotChange","hasFooter","hasSlot","host","handleTransitionEnd","target","propertyName","classList","contains","resetTransitionVariables","handleOpenChange","open","show","connectedCallback","modal","Modal","onFocusOut","_a","contained","panel","focus","componentWillLoad","disconnectedCallback","unlockBodyScrolling","drawer","sixShow","isVisible","activate","lockBodyScrolling","requestAnimationFrame","sixInitialFocus","preventScroll","addEventListener","once","sixHide","deactivate","sixAfterShow","sixAfterHide","render","h","ref","el","part","class","placement","onKeyDown","onTransitionEnd","onClick","tabIndex","role","noHeader","label","name","String","fromCharCode","exportparts","onSlotchange"],"sources":["src/components/six-drawer/six-drawer.scss?tag=six-drawer&encapsulation=shadow","src/components/six-drawer/six-drawer.tsx"],"sourcesContent":["@import 'src/global/component';\n@import 'src/global/mixins/hidden';\n\n/**\n * @prop --size: The preferred size of the drawer. This will be applied to the drawer's width or height depending on its\n * `placement`. Note that the drawer will shrink to accommodate smaller screens.\n */\n:host {\n --size: 25rem;\n\n display: contents;\n}\n\n.drawer {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: hidden;\n\n &:not(.drawer--visible) {\n @include hidden;\n }\n}\n\n.drawer--contained {\n position: absolute;\n z-index: initial;\n}\n\n.drawer--fixed {\n position: fixed;\n z-index: var(--six-z-index-drawer);\n}\n\n.drawer__panel {\n position: absolute;\n display: flex;\n flex-direction: column;\n z-index: 2;\n max-width: 100%;\n max-height: 100%;\n background-color: var(--six-drawer-background-color);\n color: var(--six-drawer-color);\n box-shadow: var(--six-shadow-x-large);\n transition: var(--six-transition-medium) transform;\n overflow: auto;\n pointer-events: all;\n\n &:focus {\n outline: none;\n }\n}\n\n.drawer--top .drawer__panel {\n top: 0;\n right: auto;\n bottom: auto;\n left: 0;\n width: 100%;\n height: var(--size);\n transform: translate(0, -100%);\n}\n\n.drawer--right .drawer__panel {\n top: 0;\n right: 0;\n bottom: auto;\n left: auto;\n width: var(--size);\n height: 100%;\n transform: translate(100%, 0);\n}\n\n.drawer--bottom .drawer__panel {\n top: auto;\n right: auto;\n bottom: 0;\n left: 0;\n width: 100%;\n height: var(--size);\n transform: translate(0, 100%);\n}\n\n.drawer--left .drawer__panel {\n top: 0;\n right: auto;\n bottom: auto;\n left: 0;\n width: var(--size);\n height: 100%;\n transform: translate(-100%, 0);\n}\n\n.drawer--open .drawer__panel {\n // don't use translate here or it will cause problems with popovers inside the drawer e.g. dropdown, select etc.\n transform: none;\n}\n\n.drawer__header {\n display: flex;\n}\n\n.drawer__title {\n flex: 1 1 auto;\n font-size: var(--six-font-size-large);\n line-height: var(--six-line-height-dense);\n padding: var(--six-spacing-large);\n}\n\n.drawer__close {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n font-size: var(--six-font-size-x-large);\n padding: 0 var(--six-spacing-large);\n}\n\n.drawer__body {\n flex: 1 1 auto;\n padding: var(--six-spacing-large);\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.drawer__footer {\n text-align: right;\n padding: var(--six-spacing-large);\n\n ::slotted(six-button:not(:last-of-type)) {\n margin-right: var(--six-spacing-x-small);\n }\n}\n\n.drawer:not(.drawer--has-footer) .drawer__footer {\n display: none;\n}\n\n.drawer__overlay {\n display: block;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: var(--six-overlay-background-color);\n opacity: 0;\n transition: var(--six-transition-medium) opacity;\n pointer-events: all;\n}\n\n.drawer--contained .drawer__overlay {\n position: absolute;\n}\n\n.drawer--open .drawer__overlay {\n opacity: 0.4;\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { lockBodyScrolling, unlockBodyScrolling } from '../../utils/scroll';\nimport { hasSlot } from '../../utils/slot';\nimport { isPreventScrollSupported } from '../../utils/support';\nimport Modal from '../../utils/modal';\nimport { EmptyPayload } from '../../utils/types';\n\nconst hasPreventScroll = isPreventScrollSupported();\nlet id = 0;\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The drawer's content.\n * @slot label - The drawer's label. Alternatively, you can use the label prop.\n * @slot footer - The drawer's footer, usually one or more buttons representing various options.\n *\n * @part base - The component's base wrapper.\n * @part overlay - The overlay.\n * @part panel - The drawer panel (where the drawer and its content is rendered).\n * @part header - The drawer header.\n * @part title - The drawer title.\n * @part close-button - The close button.\n * @part body - The drawer body.\n * @part footer - The drawer footer.\n */\n\n@Component({\n tag: 'six-drawer',\n styleUrl: 'six-drawer.scss',\n shadow: true,\n})\nexport class SixDrawer {\n private componentId = `drawer-${++id}`;\n private drawer?: HTMLElement;\n private modal?: Modal;\n private panel?: HTMLElement;\n private willShow = false;\n private willHide = false;\n\n @Element() host!: HTMLSixDrawerElement;\n\n @State() hasFooter = false;\n @State() isVisible = false;\n\n /** Indicates whether the drawer is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /**\n * The drawer'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.\n */\n @Prop() label = '';\n\n /** The direction from which the drawer will open. */\n @Prop() placement: 'top' | 'right' | 'bottom' | 'left' = 'right';\n\n /**\n * By default, the drawer slides out of its containing block (usually the viewport). To make the drawer slide out of\n * its parent element, set this prop and add `position: relative` to the parent.\n */\n @Prop() contained = false;\n\n /**\n * Removes the header. This will also remove the default close button, so please ensure you provide an easy,\n * accessible way for users to dismiss the drawer.\n */\n @Prop() noHeader = false;\n\n @Watch('open')\n handleOpenChange() {\n this.open ? this.show() : this.hide();\n }\n\n /** Emitted when the drawer opens. Calling `event.preventDefault()` will prevent it from being opened. */\n @Event({ eventName: 'six-drawer-show' }) sixShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the drawer opens and all transitions are complete. */\n @Event({ eventName: 'six-drawer-after-show' }) sixAfterShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the drawer closes. Calling `event.preventDefault()` will prevent it from being closed. */\n @Event({ eventName: 'six-drawer-hide' }) sixHide!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the drawer closes and all transitions are complete. */\n @Event({ eventName: 'six-drawer-after-hide' }) sixAfterHide!: EventEmitter<EmptyPayload>;\n\n /**\n * Emitted when the drawer opens and the panel gains focus. Calling `event.preventDefault()` will prevent focus and\n * allow you to set it on a different element in the drawer, such as an input or button.\n */\n @Event({ eventName: 'six-drawer-initial-focus' }) sixInitialFocus!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the overlay is clicked. Calling `event.preventDefault()` will prevent the drawer from closing. */\n @Event({ eventName: 'six-drawer-overlay-dismiss' }) sixOverlayDismiss!: EventEmitter<EmptyPayload>;\n\n connectedCallback() {\n this.modal = new Modal(this.host, {\n onFocusOut: () => (this.contained ? null : this.panel?.focus()),\n });\n }\n\n componentWillLoad() {\n this.handleSlotChange();\n\n // Show on init if open\n if (this.open) {\n this.show();\n // if the sidebar is open by default we need to manually reset the\n // transition variables since there will be no transition event\n this.resetTransitionVariables();\n }\n }\n\n disconnectedCallback() {\n unlockBodyScrolling(this.host);\n }\n\n /** Shows the drawer */\n @Method()\n async show() {\n if (this.willShow || this.modal == null || this.panel == null || this.drawer == null) {\n return;\n }\n const panel = this.panel;\n\n const sixShow = this.sixShow.emit();\n if (sixShow.defaultPrevented) {\n this.open = false;\n return;\n }\n\n this.willShow = true;\n this.isVisible = true;\n this.open = true;\n\n // Lock body scrolling only if the drawer isn't contained\n if (!this.contained) {\n this.modal.activate();\n lockBodyScrolling(this.host);\n }\n\n if (this.open) {\n if (hasPreventScroll) {\n // Wait for the next frame before setting initial focus so the dialog is technically visible\n requestAnimationFrame(() => {\n const sixInitialFocus = this.sixInitialFocus.emit();\n if (!sixInitialFocus.defaultPrevented) {\n panel.focus({ preventScroll: true });\n }\n });\n } else {\n // Once Safari supports { preventScroll: true } we can remove this nasty little hack, but until then we need to\n // wait for the transition to complete before setting focus, otherwise the panel may render in a buggy way its\n // out of view initially.\n //\n // Fiddle: https://jsfiddle.net/g6buoafq/1/\n // Safari: https://bugs.webkit.org/show_bug.cgi?id=178583\n //\n this.drawer.addEventListener(\n 'transitionend',\n () => {\n const sixInitialFocus = this.sixInitialFocus.emit();\n if (!sixInitialFocus.defaultPrevented) {\n panel.focus();\n }\n },\n { once: true }\n );\n }\n }\n }\n\n /** Hides the drawer */\n @Method()\n async hide() {\n if (this.willHide || this.modal == null) {\n return;\n }\n\n const sixHide = this.sixHide.emit();\n if (sixHide.defaultPrevented) {\n this.open = true;\n return;\n }\n\n this.willHide = true;\n this.open = false;\n this.modal.deactivate();\n\n unlockBodyScrolling(this.host);\n }\n\n private handleCloseClick = () => {\n this.hide();\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.hide();\n }\n };\n\n private handleOverlayClick = () => {\n const sixOverlayDismiss = this.sixOverlayDismiss.emit();\n\n if (!sixOverlayDismiss.defaultPrevented) {\n this.hide();\n }\n };\n\n private handleSlotChange = () => {\n this.hasFooter = hasSlot(this.host, 'footer');\n };\n\n private handleTransitionEnd = (event: TransitionEvent) => {\n const target = event.target as HTMLElement;\n\n // Ensure we only emit one event when the target element is no longer visible\n if (event.propertyName === 'transform' && target.classList.contains('drawer__panel')) {\n this.resetTransitionVariables();\n }\n };\n\n private resetTransitionVariables() {\n this.isVisible = this.open;\n this.willShow = false;\n this.willHide = false;\n this.open ? this.sixAfterShow.emit() : this.sixAfterHide.emit();\n }\n\n render() {\n return (\n <div\n ref={(el) => (this.drawer = el)}\n part=\"base\"\n class={{\n drawer: true,\n 'drawer--open': this.open,\n 'drawer--visible': this.isVisible,\n 'drawer--top': this.placement === 'top',\n 'drawer--right': this.placement === 'right',\n 'drawer--bottom': this.placement === 'bottom',\n 'drawer--left': this.placement === 'left',\n 'drawer--contained': this.contained,\n 'drawer--fixed': !this.contained,\n 'drawer--has-footer': this.hasFooter,\n }}\n onKeyDown={this.handleKeyDown}\n onTransitionEnd={this.handleTransitionEnd}\n >\n <div part=\"overlay\" class=\"drawer__overlay\" onClick={this.handleOverlayClick} tabIndex={-1} />\n\n <div\n ref={(el) => (this.panel = el)}\n part=\"panel\"\n class=\"drawer__panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden={this.open ? 'false' : 'true'}\n aria-label={this.noHeader ? this.label : null}\n aria-labelledby={!this.noHeader ? `${this.componentId}-title` : null}\n tabIndex={0}\n >\n {!this.noHeader && (\n <header part=\"header\" class=\"drawer__header\">\n <span part=\"title\" class=\"drawer__title\" id={`${this.componentId}-title`}>\n <slot name=\"label\">\n {/* If there's no label, use an invisible character to prevent the heading from collapsing */}\n {this.label || String.fromCharCode(65279)}\n </slot>\n </span>\n <six-icon-button\n exportparts=\"base:close-button\"\n class=\"drawer__close\"\n name=\"close\"\n onClick={this.handleCloseClick}\n />\n </header>\n )}\n\n <div part=\"body\" class=\"drawer__body\">\n <slot />\n </div>\n\n <footer part=\"footer\" class=\"drawer__footer\">\n <slot name=\"footer\" onSlotchange={this.handleSlotChange} />\n </footer>\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const t=()=>{let t=false;const s=document.createElement("div");s.focus&&s.focus({get preventScroll(){t=true;return false}});return t};let s=[];class i{constructor(t,s){this.element=t;this.options=s;this.handleFocusIn=this.handleFocusIn.bind(this)}activate(){s.push(this.element);document.addEventListener("focusin",this.handleFocusIn)}deactivate(){s=s.filter((t=>t!==this.element));document.removeEventListener("focusin",this.handleFocusIn)}isActive(){return s[s.length-1]===this.element}handleFocusIn(t){const
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
const t=()=>{let t=false;const s=document.createElement("div");s.focus&&s.focus({get preventScroll(){t=true;return false}});return t};let s=[];class i{constructor(t,s){this.element=t;this.options=s;this.handleFocusIn=this.handleFocusIn.bind(this)}activate(){s.push(this.element);document.addEventListener("focusin",this.handleFocusIn)}deactivate(){s=s.filter((t=>t!==this.element));document.removeEventListener("focusin",this.handleFocusIn)}isActive(){return s[s.length-1]===this.element}handleFocusIn(t){var s,i;const e=t.target;const n=this.element.tagName.toLowerCase();if(this.isActive()&&e.closest(n)!==this.element&&typeof((s=this.options)===null||s===void 0?void 0:s.onFocusOut)==="function"){(i=this.options)===null||i===void 0?void 0:i.onFocusOut(t)}}}export{i as M,t as i};
|
|
2
|
+
//# sourceMappingURL=p-998de05d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isPreventScrollSupported","supported","element","document","createElement","focus","preventScroll","activeModals","Modal","constructor","options","this","handleFocusIn","bind","activate","push","addEventListener","deactivate","filter","modal","removeEventListener","isActive","length","event","target","tagName","toLowerCase","closest","_a","onFocusOut","_b"],"sources":["src/utils/support.ts","src/utils/modal.ts"],"sourcesContent":["//\n// Determines if the browser supports focus({ preventScroll })\n//\nexport const isPreventScrollSupported = () => {\n let supported = false;\n\n const element = document.createElement('div');\n element.focus &&\n element.focus({\n get preventScroll() {\n supported = true;\n return false;\n },\n });\n\n return supported;\n};\n","interface ModalOptions {\n onFocusOut?: (event: Event) => void;\n}\n\nlet activeModals: HTMLElement[] = [];\n\nexport default class Modal {\n element: HTMLElement;\n options?: ModalOptions;\n\n constructor(element: HTMLElement, options?: ModalOptions) {\n this.element = element;\n this.options = options;\n this.handleFocusIn = this.handleFocusIn.bind(this);\n }\n\n activate() {\n activeModals.push(this.element);\n document.addEventListener('focusin', this.handleFocusIn);\n }\n\n deactivate() {\n activeModals = activeModals.filter((modal) => modal !== this.element);\n document.removeEventListener('focusin', this.handleFocusIn);\n }\n\n isActive() {\n // The \"active\" modal is always the most recent one shown\n return activeModals[activeModals.length - 1] === this.element;\n }\n\n handleFocusIn(event: Event) {\n const target = event.target as HTMLElement;\n const tagName = this.element.tagName.toLowerCase();\n\n // If focus is lost while the modal is active, run the onFocusOut callback\n if (this.isActive() && target.closest(tagName) !== this.element && typeof this.options?.onFocusOut === 'function') {\n this.options?.onFocusOut(event);\n }\n }\n}\n"],"mappings":"MAGaA,EAA2B,KACtC,IAAIC,EAAY,MAEhB,MAAMC,EAAUC,SAASC,cAAc,OACvCF,EAAQG,OACNH,EAAQG,MAAM,CACZ,iBAAIC,GACFL,EAAY,KACZ,OAAO,K,IAIb,OAAOA,CAAS,ECXlB,IAAIM,EAA8B,G,MAEbC,EAInB,WAAAC,CAAYP,EAAsBQ,GAChCC,KAAKT,QAAUA,EACfS,KAAKD,QAAUA,EACfC,KAAKC,cAAgBD,KAAKC,cAAcC,KAAKF,K,CAG/C,QAAAG,GACEP,EAAaQ,KAAKJ,KAAKT,SACvBC,SAASa,iBAAiB,UAAWL,KAAKC,c,CAG5C,UAAAK,GACEV,EAAeA,EAAaW,QAAQC,GAAUA,IAAUR,KAAKT,UAC7DC,SAASiB,oBAAoB,UAAWT,KAAKC,c,CAG/C,QAAAS,GAEE,OAAOd,EAAaA,EAAae,OAAS,KAAOX,KAAKT,O,CAGxD,aAAAU,CAAcW,G,QACZ,MAAMC,EAASD,EAAMC,OACrB,MAAMC,EAAUd,KAAKT,QAAQuB,QAAQC,cAGrC,GAAIf,KAAKU,YAAcG,EAAOG,QAAQF,KAAad,KAAKT,iBAAkB0B,EAAAjB,KAAKD,WAAO,MAAAkB,SAAA,SAAAA,EAAEC,cAAe,WAAY,EACjHC,EAAAnB,KAAKD,WAAO,MAAAoB,SAAA,SAAAA,EAAED,WAAWN,E"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as i,h as s,g as e}from"./p-0beec94f.js";const o=":host{display:block;overflow:hidden;height:inherit}.six-root{display:grid;grid-template:auto 1fr auto/auto 1fr auto;height:100%}.six-root__container--padded{padding:var(--six-spacing-xxx-large)}.six-root__left-sidebar{height:100%;overflow:scroll;grid-column:1/2}.six-root__right-sidebar{height:100%;overflow:scroll;grid-column:3/4}.six-root nav{overflow:hidden}header{grid-column:1/4;position:sticky;top:0;z-index:var(--six-z-index-header);margin-right:2px}main{height:100%;display:flex;flex-direction:column;justify-content:space-between;grid-column:2/3;overflow:auto}footer{grid-column:1/4}";const r=class{constructor(s){t(this,s);this.collapsedEvent=i(this,"six-root-collapsed",7);this.resizeObserver=new ResizeObserver((([t])=>{const{width:i}=t.contentRect;this.collapse=i<this.breakpoint}));this.breakpoint=1024;this.padded=true;this.stage=null;this.version="";this.collapse=false}handleCollapsed(t){this.collapsedEvent.emit({collapsed:t})}componentWillLoad(){this.resizeObserver.observe(this.host)}disconnectedCallback(){this.resizeObserver.disconnect()}render(){return s("host",{class:"six-root"},s("header",{part:"header"},this.stage&&s("six-stage-indicator",{stage:this.stage},this.version),s("slot",{name:"header"})),s("nav",{class:"six-root__left-sidebar",part:"left-sidebar"},s("set-attributes",{value:{open:!this.collapse}},s("slot",{name:"left-sidebar"}))),s("main",{part:"main"},s("div",{class:{"six-root__container":true,"six-root__container--padded":this.padded},part:"container"},s("slot",{name:"main"})),s("div",{class:"six-root__footer"},s("slot",{name:"footer"}))),s("nav",{class:"six-root__right-sidebar",part:"right-sidebar"},s("slot",{name:"right-sidebar"})))}get host(){return e(this)}static get watchers(){return{collapse:["handleCollapsed"]}}};r.style=o;export{r as six_root};
|
|
2
|
+
//# sourceMappingURL=p-9b1ff147.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sixRootCss","SixRoot","this","resizeObserver","ResizeObserver","host","width","contentRect","collapse","breakpoint","handleCollapsed","collapsed","collapsedEvent","emit","componentWillLoad","observe","disconnectedCallback","disconnect","render","h","class","part","stage","version","name","value","open","padded"],"sources":["src/components/six-root/six-root.scss?tag=six-root&encapsulation=shadow","src/components/six-root/six-root.tsx"],"sourcesContent":["@import 'src/global/mixins/scrollbar';\n\n:host {\n display: block;\n overflow: hidden;\n height: inherit;\n}\n\n.six-root {\n display: grid;\n grid-template: auto 1fr auto / auto 1fr auto;\n height: 100%;\n\n &__container {\n &--padded {\n padding: var(--six-spacing-xxx-large);\n }\n }\n\n &__left-sidebar {\n height: 100%;\n overflow: scroll;\n grid-column: 1 / 2;\n }\n\n &__right-sidebar {\n height: 100%;\n overflow: scroll;\n grid-column: 3 / 4;\n }\n\n nav {\n overflow: hidden;\n }\n}\n\nheader {\n grid-column: 1 / 4;\n position: sticky;\n top: 0;\n z-index: var(--six-z-index-header);\n // border fix\n margin-right: 2px;\n}\n\nmain {\n height: 100%;\n\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n grid-column: 2 / 3;\n overflow: auto;\n}\n\nfooter {\n grid-column: 1 / 4;\n}\n","import { Component, Element, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\nimport { StageType } from '../six-stage-indicator/six-stage-indicator';\n\nexport interface SixRootCollapsedPayload {\n collapsed: boolean;\n}\n\n/**\n * @since 1.0\n * @status stable\n *\n * @slot header - Used to define the header component.\n * @slot main - Used to define the components in the main area.\n * @slot left-sidebar - Used to define the sidebar on the left side.\n * @slot right-sidebar - Used to define the sidebar on the right side.\n * @slot footer - Used to define the footer component.\n */\n\n@Component({\n tag: 'six-root',\n styleUrl: 'six-root.scss',\n shadow: true,\n})\nexport class SixRoot {\n @Element() host!: HTMLSixRootElement;\n\n /** Breakpoint for smaller screens when the right sidebar is collapsed by default. */\n @Prop() breakpoint = 1024;\n\n /** Defines whether the content section should be padded */\n @Prop() padded = true;\n\n /** Defines the stage of the application*/\n @Prop() stage: StageType = null;\n\n /** Defines the version of the application*/\n @Prop() version = '';\n\n /** Emitted when display size is updated. */\n @Event({ eventName: 'six-root-collapsed' }) collapsedEvent!: EventEmitter<SixRootCollapsedPayload>;\n\n @State() collapse = false;\n\n private resizeObserver = new ResizeObserver(([host]) => {\n const { width } = host.contentRect;\n this.collapse = width < this.breakpoint;\n });\n\n @Watch('collapse')\n handleCollapsed(collapsed: boolean) {\n this.collapsedEvent.emit({ collapsed });\n }\n\n componentWillLoad() {\n this.resizeObserver.observe(this.host);\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n }\n\n render() {\n return (\n <host class=\"six-root\">\n <header part=\"header\">\n {this.stage && <six-stage-indicator stage={this.stage}>{this.version}</six-stage-indicator>}\n <slot name=\"header\" />\n </header>\n <nav class=\"six-root__left-sidebar\" part=\"left-sidebar\">\n <set-attributes value={{ open: !this.collapse }}>\n <slot name=\"left-sidebar\" />\n </set-attributes>\n </nav>\n <main part=\"main\">\n <div class={{ 'six-root__container': true, 'six-root__container--padded': this.padded }} part=\"container\">\n <slot name=\"main\" />\n </div>\n <div class=\"six-root__footer\">\n <slot name=\"footer\" />\n </div>\n </main>\n <nav class=\"six-root__right-sidebar\" part=\"right-sidebar\">\n <slot name=\"right-sidebar\" />\n </nav>\n </host>\n );\n }\n}\n"],"mappings":"yDAAA,MAAMA,EAAa,mlB,MCuBNC,EAAO,M,4EAoBVC,KAAAC,eAAiB,IAAIC,gBAAe,EAAEC,MAC5C,MAAMC,MAAEA,GAAUD,EAAKE,YACvBL,KAAKM,SAAWF,EAAQJ,KAAKO,UAAU,I,gBAlBpB,K,YAGJ,K,WAGU,K,aAGT,G,cAKE,K,CAQpB,eAAAC,CAAgBC,GACdT,KAAKU,eAAeC,KAAK,CAAEF,a,CAG7B,iBAAAG,GACEZ,KAAKC,eAAeY,QAAQb,KAAKG,K,CAGnC,oBAAAW,GACEd,KAAKC,eAAec,Y,CAGtB,MAAAC,GACE,OACEC,EAAA,QAAMC,MAAM,YACVD,EAAA,UAAQE,KAAK,UACVnB,KAAKoB,OAASH,EAAA,uBAAqBG,MAAOpB,KAAKoB,OAAQpB,KAAKqB,SAC7DJ,EAAA,QAAMK,KAAK,YAEbL,EAAA,OAAKC,MAAM,yBAAyBC,KAAK,gBACvCF,EAAA,kBAAgBM,MAAO,CAAEC,MAAOxB,KAAKM,WACnCW,EAAA,QAAMK,KAAK,mBAGfL,EAAA,QAAME,KAAK,QACTF,EAAA,OAAKC,MAAO,CAAE,sBAAuB,KAAM,8BAA+BlB,KAAKyB,QAAUN,KAAK,aAC5FF,EAAA,QAAMK,KAAK,UAEbL,EAAA,OAAKC,MAAM,oBACTD,EAAA,QAAMK,KAAK,aAGfL,EAAA,OAAKC,MAAM,0BAA0BC,KAAK,iBACxCF,EAAA,QAAMK,KAAK,mB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as i,c as t,h as s,g as e}from"./p-0beec94f.js";import{I as r}from"./p-0861899a.js";import{D as n,b as o,a as h}from"./p-a1502802.js";import{E as a}from"./p-8bfb4bfc.js";import{h as c}from"./p-faa04bb5.js";import{a as l,m as p}from"./p-f136a6b2.js";const u=()=>{const i=new Date;return{hours:i.getHours(),minutes:i.getMinutes(),seconds:i.getSeconds(),milliseconds:i.getMilliseconds(),has24Hours:true}};const m=12;const d=i=>i>m?i-m:i;const f=()=>{const i=new Date;const t=i.getHours();return{hours:d(t),minutes:i.getMinutes(),seconds:i.getSeconds(),milliseconds:i.getMilliseconds(),has24Hours:false,period:t>=m?"PM":"AM"}};const g=(i=true)=>i?u():f();const x=(i,t)=>{const s=i.split(":");const e=t.split(":");return s.length===e.length};const b=(i,t)=>{const s=i.split(":");const e=t.split(":");if(!x(i,t)){console.error(`Timestring did not match expected format.\nExpected format: ${t}\nReceived timestring: ${i}`)}const r={};s.forEach(((i,t)=>{const s=e[t];switch(s){case"HH":r.hours=Number(i);r.has24Hours=true;break;case"hh":r.hours=Number(i);r.has24Hours=false;break;case"mm":r.minutes=Number(i);break;case"ss":r.seconds=Number(i);break;case"ms":r.milliseconds=Number(i);break;case"aa":r.period=i.toUpperCase()==="PM"?"PM":"AM"}}));return r};const k=(i,t)=>{if(i==null){return""}const s=t.split(":");return s.map((t=>{switch(t){case"HH":case"hh":return String(i.hours).padStart(2,"0");case"mm":return String(i.minutes).padStart(2,"0");case"ss":return String(i.seconds).padStart(2,"0");case"ms":return String(i.milliseconds).padStart(3,"0");case"aa":return String(i.period)}})).join(":")};const v=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host{display:block;font-family:var(--six-font-family)}.timepicker_clear{display:inline-flex;align-items:center;font-size:inherit;color:var(--six-input-icon-color);border:none;background:none;padding:0;transition:var(--six-transition-fast) color;cursor:pointer}.timepicker_clear:hover{color:var(--six-input-icon-color-hover)}.timepicker_clear:focus{outline:none}.timepicker_clear--right{right:0;position:absolute}.timepicker_clear--left{right:35px;position:absolute}.timepicker__container{position:relative}.timepicker__popup{display:flex;justify-content:center;min-width:min-content;min-height:145px;background-color:white;padding:0.5em 0.5em 1.5em;box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);user-select:none;position:absolute;z-index:var(--six-z-index-dropdown);right:0;left:0}.timepicker__popup--is-up{bottom:100%}.timepicker__popup--is-inline{position:initial;box-shadow:none;border:1px solid var(--six-color-web-rock-400)}.timepicker__separator{display:flex;align-items:center}.timepicker__item--wide{padding-left:0.5rem;padding-right:0.5rem}.input--empty .timepicker_clear{visibility:hidden}.input--hide{display:none}.prefix{cursor:pointer}.prefix--right{right:0;display:inline-flex;position:absolute;font-size:inherit;color:var(--six-input-icon-color);border:none;background:none;margin-right:var(--six-input-spacing-medium);transition:var(--six-transition-fast) color}";const _=145;const y=class{constructor(s){i(this,s);this.sixChange=t(this,"six-timepicker-change",7);this.sixChangeDebounced=t(this,"six-timepicker-change-debounced",7);this.sixClear=t(this,"six-timepicker-clear",7);this.eventListeners=new a;this.handlePickerChange=(i,t)=>{i.stopPropagation();if(this.popupValue==null){return}this.popupValue[t]=i.detail;const s=k(this.popupValue,this.format);this.value=s;this.sixChange.emit({changedProperty:t,value:this.popupValue,valueAsString:s})};this.handleDocumentMouseDown=i=>{const t=i.composedPath();if(!t.includes(this.host)){this.closePopup();return}};this.handleClearClick=i=>{i.stopPropagation();this.value="";this.sixClear.emit();this.sixChange.emit({value:{},valueAsString:""})};this.format="HH:mm:ss";this.separator=":";this.value="";this.open=false;this.inline=false;this.readonly=false;this.disabled=false;this.placement=undefined;this.size="medium";this.required=false;this.placeholder=undefined;this.errorText="";this.errorTextCount=undefined;this.label="";this.invalid=false;this.name="";this.clearable=false;this.iconPosition="left";this.hoist=false;this.timeout=n;this.interval=o;this.defaultTime=undefined;this.debounce=n;this.isPopupContentUp=false;this.isDropDownContentUp=false;this.popupValue={}}async resizeHandler(){this.calcIsPopupContentUp();this.moveOpenHoistedPopup()}async scrollHandler(){this.calcIsPopupContentUp();this.moveOpenHoistedPopup()}valueChanged(){this.updateValue()}async setFocus(i){var t;(t=this.inputElement)===null||t===void 0?void 0:t.setFocus(i)}connectedCallback(){this.eventListeners.forward("six-timepicker-change","change",this.host)}componentWillLoad(){this.updateValue();if(this.inline){this.open=true}if(this.open){this.eventListeners.add(document,"mousedown",this.handleDocumentMouseDown)}}componentDidLoad(){if(this.inputElement==null)return;const i=this.inputElement;this.eventListeners.add(this.host,"six-timepicker-change",h((i=>this.sixChangeDebounced.emit(i.detail)),this.debounce));this.eventListeners.add(i,"six-input-input",h((t=>{t.stopPropagation();if(!x(i.value,this.format)){this.value=i.value;this.sixChange.emit({value:{},valueAsString:""});return}this.value=i.value;this.popupValue=b(i.value,this.format);this.sixChange.emit({value:this.popupValue,valueAsString:k(this.popupValue,this.format)})}),this.debounce))}componentDidRender(){l(this.hoist,this.popup,this.inputElement,this.wrapper,_,(i=>this.isDropDownContentUp=i))}disconnectedCallback(){this.eventListeners.removeAll()}updateValue(){if(typeof this.value!=="string"||!x(this.value,this.format)){this.value=""}if(this.value===""){if(this.defaultTime==null){this.popupValue=g(this.is24HourClock())}else{this.popupValue=b(this.defaultTime,this.format)}}else{this.popupValue=b(this.value,this.format)}}calcIsPopupContentUp(){if(this.inputElement==null||this.wrapper==null){return}const i=this.inputElement.getBoundingClientRect();const t=this.wrapper.getBoundingClientRect();const s=Math.max(t.height,_);const e=i.y>window.innerHeight/2;this.isPopupContentUp=e&&window.innerHeight<i.bottom+s}moveOpenHoistedPopup(){p(this.hoist,this.open,this.popup,this.inputElement,this.wrapper,_)}getSixTimeUnitPicker(i){return s("six-item-picker",{class:i.class,timeout:this.timeout,interval:this.interval,padded:true,min:i.min,max:i.max,value:this.popupValue[i.propertyName],items:i.items,type:i.type||r.NUMBER,"padding-length":i.paddingLength,"onSix-item-picker-change":t=>this.handlePickerChange(t,i.propertyName)})}getHour24Picker(){if(!this.is24HourClock()){return}return this.getSixTimeUnitPicker({min:0,max:23,propertyName:"hours"})}is24HourClock(){return this.format.includes("HH")}getHour12Picker(){if(!this.is12HourClock()){return}return this.getSixTimeUnitPicker({min:0,max:11,propertyName:"hours"})}is12HourClock(){return this.format.includes("hh")}getAmPmPicker(){if(!this.is12HourClock()){return}const i=["AM","PM"];return this.getSixTimeUnitPicker({items:i,type:r.CUSTOM,propertyName:"period"})}getMinutePicker(){if(!this.format.includes("mm")){return}return this.getSixTimeUnitPicker({min:0,max:59,propertyName:"minutes"})}getSecondsPicker(){if(!this.format.includes("ss")){return}return this.getSixTimeUnitPicker({min:0,max:59,propertyName:"seconds"})}getMillisecondsPicker(){if(!this.format.includes("ms")){return}return this.getSixTimeUnitPicker({min:0,max:999,class:"timepicker__item--wide",paddingLength:3,propertyName:"milliseconds"})}getSeparator(){return s("div",{class:"timepicker__separator"},s("span",null,this.separator))}getContent(){const i=[this.getHour24Picker(),this.getHour12Picker(),this.getMinutePicker(),this.getSecondsPicker(),this.getMillisecondsPicker()];const t=i.filter((i=>i!==undefined));return t.map(((i,s)=>{if(s===t.length-1){return[i]}return[i,this.getSeparator()]}))}openPopup(){if(!this.open&&!this.disabled){this.open=true;this.eventListeners.add(document,"mousedown",this.handleDocumentMouseDown)}}closePopup(){if(this.inline){return}this.open=false;this.eventListeners.remove(document,"mousedown",this.handleDocumentMouseDown)}renderClearable(){return this.clearable&&s("button",{slot:"suffix",class:{timepicker_clear:true,"timepicker_clear--right":this.iconPosition==="left","timepicker_clear--left":this.iconPosition==="right"},type:"button",onClick:this.handleClearClick,tabindex:"-1"},s("six-icon",{size:"small"},"clear"))}renderCustomIcon(){const i=c(this.host,"custom-icon")?s("slot",{name:"custom-icon"}):s("six-icon",{size:this.size==="large"?"medium":this.size},"watch_later");return s("span",{slot:"prefix",part:"icon",class:{prefix:true,"prefix--right":this.iconPosition==="right"}},i)}render(){return s("div",{part:"container",ref:i=>this.wrapper=i,class:"timepicker__container"},s("six-input",{ref:i=>this.inputElement=i,part:"input",onClick:()=>this.openPopup(),value:this.value,placeholder:this.placeholder,readonly:this.readonly,disabled:this.disabled,errorTextCount:this.errorTextCount,errorText:this.errorText,invalid:this.invalid,size:this.size,name:this.name,label:this.label,required:this.required,class:{"input--empty":this.value==="","input--hide":this.inline}},this.renderCustomIcon(),this.renderClearable(),c(this.host,"label")?s("span",{slot:"label"},s("slot",{name:"label"})):null,c(this.host,"error-text")?s("span",{slot:"error-text"},s("slot",{name:"error-text"})):null),this.open&&s("div",{ref:i=>this.popup=i,part:"popup",class:{timepicker__popup:true,"timepicker__popup--is-up":this.placement==null?this.placement==="top":this.isPopupContentUp,"timepicker__popup--is-inline":this.inline}},...this.getContent(),this.getAmPmPicker()))}get host(){return e(this)}static get watchers(){return{value:["valueChanged"]}}};y.style=v;export{y as six_timepicker};
|
|
2
|
+
//# sourceMappingURL=p-a0658b26.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getCurrentTimeIn24Hours","now","Date","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","has24Hours","HOURS_IN_12_HOUR_CLOCK_FORMAT","getHoursIn12HourFormat","getCurrentTimeIn12Hours","period","getCurrentTime","isValidTimeString","timeStr","format","timeStringParts","split","timeFormatParts","length","parseTimeString","timeParts","formatParts","console","error","time","forEach","timeStringPart","i","formatStringPart","Number","toUpperCase","createTimeString","map","timeFormatPart","String","padStart","join","sixTimepickerCss","MIN_POPUP_HEIGHT","SixTimepicker","this","eventListeners","EventListeners","handlePickerChange","event","property","stopPropagation","popupValue","detail","timeString","value","sixChange","emit","changedProperty","valueAsString","handleDocumentMouseDown","path","composedPath","includes","host","closePopup","handleClearClick","sixClear","DEFAULT_DEBOUNCE_FAST","DEFAULT_DEBOUNCE_INSANELY_FAST","resizeHandler","calcIsPopupContentUp","moveOpenHoistedPopup","scrollHandler","valueChanged","updateValue","setFocus","options","_a","inputElement","connectedCallback","forward","componentWillLoad","inline","open","add","document","componentDidLoad","debounce","sixChangeDebounced","componentDidRender","adjustPopupForHoisting","hoist","popup","wrapper","isUp","isDropDownContentUp","disconnectedCallback","removeAll","defaultTime","is24HourClock","inputBoundingRect","getBoundingClientRect","wrapperBoundingRect","minPopupHeight","Math","max","height","moreSpaceInTop","y","window","innerHeight","isPopupContentUp","bottom","movePopup","getSixTimeUnitPicker","params","h","class","timeout","interval","padded","min","propertyName","items","type","ItemPickerType","NUMBER","paddingLength","getHour24Picker","getHour12Picker","is12HourClock","getAmPmPicker","CUSTOM","getMinutePicker","getSecondsPicker","getMillisecondsPicker","getSeparator","separator","getContent","elementsInOrder","visibleElements","filter","el","undefined","idx","openPopup","disabled","remove","renderClearable","clearable","slot","timepicker_clear","iconPosition","onClick","tabindex","size","renderCustomIcon","icon","hasSlot","name","part","prefix","render","ref","placeholder","readonly","errorTextCount","errorText","invalid","label","required","timepicker__popup","placement"],"sources":["src/utils/time.util.ts","src/components/six-timepicker/six-timepicker.scss?tag=six-timepicker&encapsulation=shadow","src/components/six-timepicker/six-timepicker.tsx"],"sourcesContent":["export type TimePeriod = 'AM' | 'PM';\n\nexport interface Time {\n hours?: number;\n minutes?: number;\n seconds?: number;\n milliseconds?: number;\n has24Hours?: boolean; // true => 24h, false => 12h\n period?: TimePeriod; // only needed for 12-hour clock\n}\n\nexport type TimeProperties = keyof Time;\n\nexport type TimeFormatChar =\n | 'HH' // 24h\n | 'hh' // 12h\n | 'mm' // minutes\n | 'ss' // seconds\n | 'ms' // milliseconds\n | 'aa'; // period (AM/PM)\n\n/*\n * Supported time formats\n */\nexport type TimeFormat =\n | 'HH:mm:ss'\n | 'hh:mm:ss:aa'\n | 'HH:mm:ss:ms'\n | 'hh:mm:ss:ms:aa'\n | 'HH:mm'\n | 'hh:mm:aa'\n | 'HH'\n | 'hh:aa'\n | 'mm'\n | 'ss'\n | 'ms';\n\nexport const getCurrentTimeIn24Hours = (): Time => {\n const now = new Date();\n return {\n hours: now.getHours(),\n minutes: now.getMinutes(),\n seconds: now.getSeconds(),\n milliseconds: now.getMilliseconds(),\n has24Hours: true,\n };\n};\n\nconst HOURS_IN_12_HOUR_CLOCK_FORMAT = 12;\n\nexport const getHoursIn12HourFormat = (hours: number) =>\n hours > HOURS_IN_12_HOUR_CLOCK_FORMAT ? hours - HOURS_IN_12_HOUR_CLOCK_FORMAT : hours;\n\nexport const getCurrentTimeIn12Hours = (): Time => {\n const now = new Date();\n const hours = now.getHours();\n return {\n hours: getHoursIn12HourFormat(hours),\n minutes: now.getMinutes(),\n seconds: now.getSeconds(),\n milliseconds: now.getMilliseconds(),\n has24Hours: false,\n period: hours >= HOURS_IN_12_HOUR_CLOCK_FORMAT ? 'PM' : 'AM',\n };\n};\n\nexport const getCurrentTime = (has24Hours = true): Time => {\n return has24Hours ? getCurrentTimeIn24Hours() : getCurrentTimeIn12Hours();\n};\n\nexport const isValidTimeString = (timeStr: string, format: TimeFormat) => {\n const timeStringParts = timeStr.split(':');\n const timeFormatParts = format.split(':');\n return timeStringParts.length === timeFormatParts.length;\n};\n\nexport const parseTimeString = (timeStr: string, format: TimeFormat): Time => {\n const timeParts = timeStr.split(':');\n const formatParts = format.split(':') as TimeFormatChar[];\n\n if (!isValidTimeString(timeStr, format)) {\n console.error(\n `Timestring did not match expected format.\\nExpected format: ${format}\\nReceived timestring: ${timeStr}`\n );\n }\n\n const time: Time = {};\n\n timeParts.forEach((timeStringPart, i) => {\n const formatStringPart: TimeFormatChar = formatParts[i];\n switch (formatStringPart) {\n case 'HH':\n time.hours = Number(timeStringPart);\n time.has24Hours = true;\n break;\n case 'hh':\n time.hours = Number(timeStringPart);\n time.has24Hours = false;\n break;\n case 'mm':\n time.minutes = Number(timeStringPart);\n break;\n case 'ss':\n time.seconds = Number(timeStringPart);\n break;\n case 'ms':\n time.milliseconds = Number(timeStringPart);\n break;\n case 'aa':\n time.period = timeStringPart.toUpperCase() === 'PM' ? 'PM' : 'AM';\n }\n });\n return time;\n};\n\nexport const createTimeString = (time: Time | undefined, format: TimeFormat): string => {\n if (time == null) {\n return '';\n }\n\n const formatParts = format.split(':') as TimeFormatChar[];\n\n return formatParts\n .map((timeFormatPart) => {\n switch (timeFormatPart) {\n case 'HH':\n case 'hh':\n return String(time.hours).padStart(2, '0');\n case 'mm':\n return String(time.minutes).padStart(2, '0');\n case 'ss':\n return String(time.seconds).padStart(2, '0');\n case 'ms':\n return String(time.milliseconds).padStart(3, '0');\n case 'aa':\n return String(time.period);\n }\n })\n .join(':');\n};\n","@import 'src/global/component';\n\n:host {\n display: block;\n font-family: var(--six-font-family);\n}\n\n.timepicker {\n &_clear {\n display: inline-flex;\n align-items: center;\n font-size: inherit;\n color: var(--six-input-icon-color);\n border: none;\n background: none;\n padding: 0;\n transition: var(--six-transition-fast) color;\n cursor: pointer;\n\n &:hover {\n color: var(--six-input-icon-color-hover);\n }\n\n &:focus {\n outline: none;\n }\n\n &--right {\n right: 0;\n position: absolute;\n }\n\n &--left {\n right: 35px;\n position: absolute;\n }\n }\n\n &__container {\n position: relative;\n }\n\n &__popup {\n display: flex;\n justify-content: center;\n min-width: min-content;\n min-height: 145px;\n background-color: white;\n padding: 0.5em 0.5em 1.5em;\n box-shadow: 0 2px 4px -1px rgb(0 0 0 / 20%), 0 4px 5px 0 rgb(0 0 0 / 14%), 0 1px 10px 0 rgb(0 0 0 / 12%);\n user-select: none;\n position: absolute;\n z-index: var(--six-z-index-dropdown);\n right: 0;\n left: 0;\n\n &--is-up {\n bottom: 100%;\n }\n\n &--is-inline {\n position: initial;\n box-shadow: none;\n border: 1px solid var(--six-color-web-rock-400);\n }\n }\n\n &__separator {\n display: flex;\n align-items: center;\n }\n\n &__item {\n &--wide {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n }\n}\n\n.input--empty .timepicker_clear {\n visibility: hidden;\n}\n\n.input--hide {\n display: none;\n}\n\n// Icon position\n.prefix {\n cursor: pointer;\n\n &--right {\n right: 0;\n display: inline-flex;\n position: absolute;\n font-size: inherit;\n color: var(--six-input-icon-color);\n border: none;\n background: none;\n margin-right: var(--six-input-spacing-medium);\n transition: var(--six-transition-fast) color;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Method, Prop, State, Watch } from '@stencil/core';\nimport { ItemPickerType } from '../six-item-picker/types';\nimport {\n createTimeString,\n getCurrentTime,\n isValidTimeString,\n parseTimeString,\n Time,\n TimeFormat,\n TimeProperties,\n} from '../../utils/time.util';\nimport { debounce, DEFAULT_DEBOUNCE_FAST, DEFAULT_DEBOUNCE_INSANELY_FAST } from '../../utils/execution-control';\nimport { SixItemPickerChangePayload } from '../six-item-picker/six-item-picker';\nimport { EventListeners } from '../../utils/event-listeners';\nimport { hasSlot } from '../../utils/slot';\nimport { EmptyPayload } from '../../utils/types';\nimport { adjustPopupForHoisting, movePopup } from '../../utils/popup';\n\nexport interface SixTimepickerChange {\n value?: Time;\n valueAsString: string;\n changedProperty?: string;\n}\n\ninterface SixTimeUnitPickerParams {\n min?: number;\n max?: number;\n items?: string[];\n type?: ItemPickerType;\n class?: string;\n paddingLength?: number;\n propertyName: TimeProperties;\n}\n\nconst MIN_POPUP_HEIGHT = 145;\n\n/**\n * @since 2.0.0\n * @status experimental\n *\n * @slot error-text - Error text that is shown for validation errors. Alternatively, you can use the error-text prop.\n *\n * @part input - The input field\n * @part container - The container of whole component\n * @part popup - The popup of the timepicker component\n *\n */\n@Component({\n tag: 'six-timepicker',\n styleUrl: 'six-timepicker.scss',\n shadow: true,\n})\nexport class SixTimepicker {\n private eventListeners = new EventListeners();\n private popup?: HTMLElement;\n private wrapper?: HTMLElement;\n private inputElement?: HTMLSixInputElement;\n\n @Element() host!: HTMLSixTimepickerElement;\n\n /**\n * Define the time format. Valid formats are:\n *\n * HH:mm:ss\n * hh:mm:ss:aa\n * HH:mm:ss:ms\n * hh:mm:ss:ms:aa\n * HH:mm\n * hh:mm:aa\n * HH\n * hh:aa\n * mm\n * ss\n * ms\n *\n * where HH is the 24 hour format\n * and hh is the 12 hour format\n *\n * Please notice that when using the 12-hour-clock (hh)\n * you always need a period indicator (aa). So the time can be parsed as either am or pm\n * */\n @Prop() format: TimeFormat = 'HH:mm:ss';\n\n /**\n * Define the separator to be shown between the time unit pickers.\n * Please be aware that this property will modify the displayed separator only.\n * The separator for a timestring is always expected to be a colon (eg. '13:52:20')\n * */\n @Prop() separator = ':';\n\n /**\n * The value of the timepicker provided as a string. The string mast match the provided format (or default format)\n */\n @Prop({ mutable: true }) value = '';\n\n /** Indicates whether the timepicker dropdown is open on startup. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /** Indicates whether the timepicker should be shown as an inline (always open) component */\n @Prop({ reflect: true }) inline = false;\n\n /**\n * If `true` the user can only select a time via the timepicker but not directly edit the input field.\n */\n @Prop() readonly = false;\n\n /**\n * If `true` the component is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * The enforced placement of the dropdown panel.\n */\n @Prop() placement?: 'top' | 'bottom';\n\n /** Timepicker size. */\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Set to true to show an asterisk beneath the label. */\n @Prop() required = false;\n\n /**\n * The placeholder defines what text to be shown on the input element\n */\n @Prop() placeholder?: string;\n\n /** The input's error text. Alternatively, you can use the error-text slot. */\n @Prop() errorText: string | string[] = '';\n\n /** The number of error texts to be shown (if the error-text slot isn't used). Defaults to 1 */\n @Prop() errorTextCount?: number;\n\n /** The input's label. Alternatively, you can use the label slot. */\n @Prop() label = '';\n\n /** If this property is set to true and an error message is provided by `errorText`, the error message is displayed. */\n @Prop({ reflect: true }) invalid = false;\n\n /** The input's name attribute. */\n @Prop({ reflect: true }) name = '';\n\n /** Set to true to add a clear button when the input is populated. */\n @Prop() clearable = false;\n\n /** Set the position of the icon */\n @Prop() iconPosition: 'left' | 'right' = 'left';\n\n /**\n * Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`.\n */\n @Prop() hoist = false;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger faster switching between timeunits (e.g. hours).\n */\n @Prop() timeout = DEFAULT_DEBOUNCE_FAST;\n\n /**\n * Set the amount of time, in milliseconds, to wait between switching to next timeunit (e.g. next hour) when mouse button is held pressed.\n */\n @Prop() interval = DEFAULT_DEBOUNCE_INSANELY_FAST;\n\n /**\n * The defaultTime defines the default setting for the timepicker when you open the popup. Default time must match the provided format.\n */\n @Prop() defaultTime?: string;\n\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `six-timepicker-change-debounced` event.\n * If you want your change debounce event to not trigger when keeping the nav button pressed before, make sure debounce\n * is a bit bigger than timeout, otherwise keeping the button pressed will trigger the event twice: once you click\n * (and keep pressed) and once you release\n */\n @Prop() debounce = DEFAULT_DEBOUNCE_FAST;\n\n /**\n * Emitted when the timepicker's value changes\n */\n @Event({ eventName: 'six-timepicker-change' }) sixChange!: EventEmitter<SixTimepickerChange>;\n\n /**\n * Emitted when the timepicker's value changes, but debounced\n */\n @Event({ eventName: 'six-timepicker-change-debounced' }) sixChangeDebounced!: EventEmitter<SixTimepickerChange>;\n\n /**\n * Emitted when the clear button is activated.\n */\n @Event({ eventName: 'six-timepicker-clear' }) sixClear!: EventEmitter<EmptyPayload>;\n\n @State() isPopupContentUp = false;\n\n @State() isDropDownContentUp = false;\n\n @Listen('resize', { target: 'window' })\n async resizeHandler() {\n this.calcIsPopupContentUp();\n this.moveOpenHoistedPopup();\n }\n\n @Listen('scroll', { target: 'window' })\n async scrollHandler() {\n this.calcIsPopupContentUp();\n this.moveOpenHoistedPopup();\n }\n\n /**\n * Update the native input element when the value changes\n */\n @Watch('value')\n protected valueChanged() {\n this.updateValue();\n }\n\n /** Sets focus on the datepickers input. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.inputElement?.setFocus(options);\n }\n\n /*\n * Internally the six-timepicker uses a standardized representation of time, so we don't have a mess,\n * when switching between formats\n */\n @State() private popupValue: Time = {};\n\n connectedCallback() {\n this.eventListeners.forward('six-timepicker-change', 'change', this.host);\n }\n\n componentWillLoad() {\n this.updateValue();\n\n if (this.inline) {\n this.open = true;\n }\n\n if (this.open) {\n this.eventListeners.add(document, 'mousedown', this.handleDocumentMouseDown);\n }\n }\n\n componentDidLoad() {\n if (this.inputElement == null) return;\n const inputElement = this.inputElement;\n\n // emit debounced change event\n this.eventListeners.add(\n this.host,\n 'six-timepicker-change',\n debounce((event: Event) => this.sixChangeDebounced.emit((event as CustomEvent).detail), this.debounce)\n );\n\n // update value and popup value based on input-element value\n this.eventListeners.add(\n inputElement,\n 'six-input-input',\n debounce((event: Event) => {\n event.stopPropagation();\n\n // emit empty event if time string is invalid\n if (!isValidTimeString(inputElement.value, this.format)) {\n this.value = inputElement.value;\n this.sixChange.emit({\n value: {},\n valueAsString: '',\n });\n return;\n }\n\n // update value and popup value, and emit the new value\n this.value = inputElement.value;\n this.popupValue = parseTimeString(inputElement.value, this.format);\n this.sixChange.emit({\n value: this.popupValue,\n valueAsString: createTimeString(this.popupValue, this.format),\n });\n }, this.debounce)\n );\n }\n\n componentDidRender() {\n adjustPopupForHoisting(\n this.hoist,\n this.popup,\n this.inputElement,\n this.wrapper,\n MIN_POPUP_HEIGHT,\n (isUp) => (this.isDropDownContentUp = isUp)\n );\n }\n\n disconnectedCallback() {\n this.eventListeners.removeAll();\n }\n private updateValue() {\n // normalize value\n if (typeof this.value !== 'string' || !isValidTimeString(this.value, this.format)) {\n this.value = '';\n }\n\n // update popup value\n if (this.value === '') {\n if (this.defaultTime == null) {\n this.popupValue = getCurrentTime(this.is24HourClock());\n } else {\n this.popupValue = parseTimeString(this.defaultTime, this.format);\n }\n } else {\n this.popupValue = parseTimeString(this.value, this.format);\n }\n }\n\n private calcIsPopupContentUp() {\n if (this.inputElement == null || this.wrapper == null) {\n return;\n }\n\n const inputBoundingRect = this.inputElement.getBoundingClientRect();\n const wrapperBoundingRect = this.wrapper.getBoundingClientRect();\n const minPopupHeight = Math.max(wrapperBoundingRect.height, MIN_POPUP_HEIGHT);\n\n const moreSpaceInTop = inputBoundingRect.y > window.innerHeight / 2;\n this.isPopupContentUp = moreSpaceInTop && window.innerHeight < inputBoundingRect.bottom + minPopupHeight;\n }\n\n private moveOpenHoistedPopup() {\n movePopup(this.hoist, this.open, this.popup, this.inputElement, this.wrapper, MIN_POPUP_HEIGHT);\n }\n\n private handlePickerChange = (event: CustomEvent<SixItemPickerChangePayload>, property: TimeProperties) => {\n // stop propagation, since the timepicker should not expose the events of the underlying item-picker\n event.stopPropagation();\n if (this.popupValue == null) {\n return;\n }\n\n // update the internal state\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.popupValue[property] = event.detail;\n\n const timeString = createTimeString(this.popupValue, this.format);\n\n // update the input value\n this.value = timeString;\n\n // emit change event\n this.sixChange.emit({\n changedProperty: property,\n value: this.popupValue,\n valueAsString: timeString,\n });\n };\n\n private getSixTimeUnitPicker(params: SixTimeUnitPickerParams) {\n return (\n <six-item-picker\n class={params.class}\n timeout={this.timeout}\n interval={this.interval}\n padded\n min={params.min}\n max={params.max}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n value={this.popupValue[params.propertyName]}\n items={params.items}\n type={params.type || ItemPickerType.NUMBER}\n padding-length={params.paddingLength}\n onSix-item-picker-change={(event) => this.handlePickerChange(event, params.propertyName)}\n ></six-item-picker>\n );\n }\n\n private getHour24Picker() {\n if (!this.is24HourClock()) {\n return;\n }\n return this.getSixTimeUnitPicker({ min: 0, max: 23, propertyName: 'hours' });\n }\n\n private is24HourClock() {\n return this.format.includes('HH');\n }\n\n private getHour12Picker() {\n if (!this.is12HourClock()) {\n return;\n }\n return this.getSixTimeUnitPicker({ min: 0, max: 11, propertyName: 'hours' });\n }\n\n private is12HourClock() {\n return this.format.includes('hh');\n }\n\n private getAmPmPicker() {\n if (!this.is12HourClock()) {\n return;\n }\n const items = ['AM', 'PM'];\n return this.getSixTimeUnitPicker({\n items,\n type: ItemPickerType.CUSTOM,\n propertyName: 'period',\n });\n }\n\n private getMinutePicker() {\n if (!this.format.includes('mm')) {\n return;\n }\n\n return this.getSixTimeUnitPicker({ min: 0, max: 59, propertyName: 'minutes' });\n }\n\n private getSecondsPicker() {\n if (!this.format.includes('ss')) {\n return;\n }\n\n return this.getSixTimeUnitPicker({ min: 0, max: 59, propertyName: 'seconds' });\n }\n\n private getMillisecondsPicker() {\n if (!this.format.includes('ms')) {\n return;\n }\n\n return this.getSixTimeUnitPicker({\n min: 0,\n max: 999,\n class: 'timepicker__item--wide',\n paddingLength: 3,\n propertyName: 'milliseconds',\n });\n }\n\n private getSeparator() {\n return (\n <div class=\"timepicker__separator\">\n <span>{this.separator}</span>\n </div>\n );\n }\n\n private getContent() {\n const elementsInOrder = [\n this.getHour24Picker(),\n this.getHour12Picker(),\n this.getMinutePicker(),\n this.getSecondsPicker(),\n this.getMillisecondsPicker(),\n ];\n\n const visibleElements = elementsInOrder.filter((el) => el !== undefined);\n\n return visibleElements.map((el, idx) => {\n if (idx === visibleElements.length - 1) {\n return [el];\n }\n\n return [el, this.getSeparator()];\n });\n }\n\n private openPopup() {\n if (!this.open && !this.disabled) {\n this.open = true;\n this.eventListeners.add(document, 'mousedown', this.handleDocumentMouseDown);\n }\n }\n\n private closePopup() {\n if (this.inline) {\n return;\n }\n\n this.open = false;\n this.eventListeners.remove(document, 'mousedown', this.handleDocumentMouseDown);\n }\n\n private handleDocumentMouseDown = (event: Event) => {\n // Close when clicking outside the containing element\n const path = event.composedPath() as EventTarget[];\n if (!path.includes(this.host)) {\n this.closePopup();\n return;\n }\n };\n\n private handleClearClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.value = '';\n this.sixClear.emit();\n this.sixChange.emit({\n value: {},\n valueAsString: '',\n });\n };\n\n private renderClearable() {\n return (\n this.clearable && (\n <button\n slot=\"suffix\"\n class={{\n timepicker_clear: true,\n 'timepicker_clear--right': this.iconPosition === 'left',\n 'timepicker_clear--left': this.iconPosition === 'right',\n }}\n type=\"button\"\n onClick={this.handleClearClick}\n tabindex=\"-1\"\n >\n <six-icon size=\"small\">clear</six-icon>\n </button>\n )\n );\n }\n\n private renderCustomIcon() {\n const icon = hasSlot(this.host, 'custom-icon') ? (\n <slot name=\"custom-icon\"></slot>\n ) : (\n <six-icon size={this.size === 'large' ? 'medium' : this.size}>watch_later</six-icon>\n );\n\n return (\n <span\n slot=\"prefix\"\n part=\"icon\"\n class={{\n prefix: true,\n 'prefix--right': this.iconPosition === 'right',\n }}\n >\n {icon}\n </span>\n );\n }\n\n render() {\n return (\n <div part=\"container\" ref={(el) => (this.wrapper = el)} class=\"timepicker__container\">\n <six-input\n ref={(el) => (this.inputElement = el)}\n part=\"input\"\n onClick={() => this.openPopup()}\n value={this.value}\n placeholder={this.placeholder}\n readonly={this.readonly}\n disabled={this.disabled}\n errorTextCount={this.errorTextCount}\n errorText={this.errorText}\n invalid={this.invalid}\n size={this.size}\n name={this.name}\n label={this.label}\n required={this.required}\n class={{\n 'input--empty': this.value === '',\n 'input--hide': this.inline,\n }}\n >\n {this.renderCustomIcon()}\n {this.renderClearable()}\n {hasSlot(this.host, 'label') ? (\n <span slot=\"label\">\n <slot name=\"label\" />\n </span>\n ) : null}\n {hasSlot(this.host, 'error-text') ? (\n <span slot=\"error-text\">\n <slot name=\"error-text\" />\n </span>\n ) : null}\n </six-input>\n {this.open && (\n <div\n ref={(el) => (this.popup = el)}\n part=\"popup\"\n class={{\n timepicker__popup: true,\n 'timepicker__popup--is-up': this.placement == null ? this.placement === 'top' : this.isPopupContentUp,\n 'timepicker__popup--is-inline': this.inline,\n }}\n >\n {...this.getContent()}\n {this.getAmPmPicker()}\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"kQAqCO,MAAMA,EAA0B,KACrC,MAAMC,EAAM,IAAIC,KAChB,MAAO,CACLC,MAAOF,EAAIG,WACXC,QAASJ,EAAIK,aACbC,QAASN,EAAIO,aACbC,aAAcR,EAAIS,kBAClBC,WAAY,KACb,EAGH,MAAMC,EAAgC,GAE/B,MAAMC,EAA0BV,GACrCA,EAAQS,EAAgCT,EAAQS,EAAgCT,EAE3E,MAAMW,EAA0B,KACrC,MAAMb,EAAM,IAAIC,KAChB,MAAMC,EAAQF,EAAIG,WAClB,MAAO,CACLD,MAAOU,EAAuBV,GAC9BE,QAASJ,EAAIK,aACbC,QAASN,EAAIO,aACbC,aAAcR,EAAIS,kBAClBC,WAAY,MACZI,OAAQZ,GAASS,EAAgC,KAAO,KACzD,EAGI,MAAMI,EAAiB,CAACL,EAAa,OACnCA,EAAaX,IAA4Bc,IAG3C,MAAMG,EAAoB,CAACC,EAAiBC,KACjD,MAAMC,EAAkBF,EAAQG,MAAM,KACtC,MAAMC,EAAkBH,EAAOE,MAAM,KACrC,OAAOD,EAAgBG,SAAWD,EAAgBC,MAAM,EAGnD,MAAMC,EAAkB,CAACN,EAAiBC,KAC/C,MAAMM,EAAYP,EAAQG,MAAM,KAChC,MAAMK,EAAcP,EAAOE,MAAM,KAEjC,IAAKJ,EAAkBC,EAASC,GAAS,CACvCQ,QAAQC,MACN,+DAA+DT,2BAAgCD,I,CAInG,MAAMW,EAAa,GAEnBJ,EAAUK,SAAQ,CAACC,EAAgBC,KACjC,MAAMC,EAAmCP,EAAYM,GACrD,OAAQC,GACN,IAAK,KACHJ,EAAK1B,MAAQ+B,OAAOH,GACpBF,EAAKlB,WAAa,KAClB,MACF,IAAK,KACHkB,EAAK1B,MAAQ+B,OAAOH,GACpBF,EAAKlB,WAAa,MAClB,MACF,IAAK,KACHkB,EAAKxB,QAAU6B,OAAOH,GACtB,MACF,IAAK,KACHF,EAAKtB,QAAU2B,OAAOH,GACtB,MACF,IAAK,KACHF,EAAKpB,aAAeyB,OAAOH,GAC3B,MACF,IAAK,KACHF,EAAKd,OAASgB,EAAeI,gBAAkB,KAAO,KAAO,K,IAGnE,OAAON,CAAI,EAGN,MAAMO,EAAmB,CAACP,EAAwBV,KACvD,GAAIU,GAAQ,KAAM,CAChB,MAAO,E,CAGT,MAAMH,EAAcP,EAAOE,MAAM,KAEjC,OAAOK,EACJW,KAAKC,IACJ,OAAQA,GACN,IAAK,KACL,IAAK,KACH,OAAOC,OAAOV,EAAK1B,OAAOqC,SAAS,EAAG,KACxC,IAAK,KACH,OAAOD,OAAOV,EAAKxB,SAASmC,SAAS,EAAG,KAC1C,IAAK,KACH,OAAOD,OAAOV,EAAKtB,SAASiC,SAAS,EAAG,KAC1C,IAAK,KACH,OAAOD,OAAOV,EAAKpB,cAAc+B,SAAS,EAAG,KAC/C,IAAK,KACH,OAAOD,OAAOV,EAAKd,Q,IAGxB0B,KAAK,IAAI,EC1Id,MAAMC,EAAmB,8gDCkCzB,MAAMC,EAAmB,I,MAkBZC,EAAa,M,6LAChBC,KAAAC,eAAiB,IAAIC,EAuRrBF,KAAAG,mBAAqB,CAACC,EAAgDC,KAE5ED,EAAME,kBACN,GAAIN,KAAKO,YAAc,KAAM,CAC3B,M,CAMFP,KAAKO,WAAWF,GAAYD,EAAMI,OAElC,MAAMC,EAAalB,EAAiBS,KAAKO,WAAYP,KAAK1B,QAG1D0B,KAAKU,MAAQD,EAGbT,KAAKW,UAAUC,KAAK,CAClBC,gBAAiBR,EACjBK,MAAOV,KAAKO,WACZO,cAAeL,GACf,EAmIIT,KAAAe,wBAA2BX,IAEjC,MAAMY,EAAOZ,EAAMa,eACnB,IAAKD,EAAKE,SAASlB,KAAKmB,MAAO,CAC7BnB,KAAKoB,aACL,M,GAIIpB,KAAAqB,iBAAoBjB,IAC1BA,EAAME,kBACNN,KAAKU,MAAQ,GACbV,KAAKsB,SAASV,OACdZ,KAAKW,UAAUC,KAAK,CAClBF,MAAO,GACPI,cAAe,IACf,E,YApayB,W,eAOT,I,WAKa,G,UAGc,M,YAGb,M,cAKf,M,cAKA,M,mCAQ0B,S,cAG1B,M,0CAQoB,G,yCAMvB,G,aAGmB,M,UAGH,G,eAGZ,M,kBAGqB,O,WAMzB,M,aAKES,E,cAKCC,E,yCAaAD,E,sBAiBS,M,yBAEG,M,gBAgCK,E,CA7BpC,mBAAME,GACJzB,KAAK0B,uBACL1B,KAAK2B,sB,CAIP,mBAAMC,GACJ5B,KAAK0B,uBACL1B,KAAK2B,sB,CAOG,YAAAE,GACR7B,KAAK8B,a,CAKP,cAAMC,CAASC,G,OACbC,EAAAjC,KAAKkC,gBAAY,MAAAD,SAAA,SAAAA,EAAEF,SAASC,E,CAS9B,iBAAAG,GACEnC,KAAKC,eAAemC,QAAQ,wBAAyB,SAAUpC,KAAKmB,K,CAGtE,iBAAAkB,GACErC,KAAK8B,cAEL,GAAI9B,KAAKsC,OAAQ,CACftC,KAAKuC,KAAO,I,CAGd,GAAIvC,KAAKuC,KAAM,CACbvC,KAAKC,eAAeuC,IAAIC,SAAU,YAAazC,KAAKe,wB,EAIxD,gBAAA2B,GACE,GAAI1C,KAAKkC,cAAgB,KAAM,OAC/B,MAAMA,EAAelC,KAAKkC,aAG1BlC,KAAKC,eAAeuC,IAClBxC,KAAKmB,KACL,wBACAwB,GAAUvC,GAAiBJ,KAAK4C,mBAAmBhC,KAAMR,EAAsBI,SAASR,KAAK2C,WAI/F3C,KAAKC,eAAeuC,IAClBN,EACA,kBACAS,GAAUvC,IACRA,EAAME,kBAGN,IAAKlC,EAAkB8D,EAAaxB,MAAOV,KAAK1B,QAAS,CACvD0B,KAAKU,MAAQwB,EAAaxB,MAC1BV,KAAKW,UAAUC,KAAK,CAClBF,MAAO,GACPI,cAAe,KAEjB,M,CAIFd,KAAKU,MAAQwB,EAAaxB,MAC1BV,KAAKO,WAAa5B,EAAgBuD,EAAaxB,MAAOV,KAAK1B,QAC3D0B,KAAKW,UAAUC,KAAK,CAClBF,MAAOV,KAAKO,WACZO,cAAevB,EAAiBS,KAAKO,WAAYP,KAAK1B,SACtD,GACD0B,KAAK2C,U,CAIZ,kBAAAE,GACEC,EACE9C,KAAK+C,MACL/C,KAAKgD,MACLhD,KAAKkC,aACLlC,KAAKiD,QACLnD,GACCoD,GAAUlD,KAAKmD,oBAAsBD,G,CAI1C,oBAAAE,GACEpD,KAAKC,eAAeoD,W,CAEd,WAAAvB,GAEN,UAAW9B,KAAKU,QAAU,WAAatC,EAAkB4B,KAAKU,MAAOV,KAAK1B,QAAS,CACjF0B,KAAKU,MAAQ,E,CAIf,GAAIV,KAAKU,QAAU,GAAI,CACrB,GAAIV,KAAKsD,aAAe,KAAM,CAC5BtD,KAAKO,WAAapC,EAAe6B,KAAKuD,gB,KACjC,CACLvD,KAAKO,WAAa5B,EAAgBqB,KAAKsD,YAAatD,KAAK1B,O,MAEtD,CACL0B,KAAKO,WAAa5B,EAAgBqB,KAAKU,MAAOV,KAAK1B,O,EAI/C,oBAAAoD,GACN,GAAI1B,KAAKkC,cAAgB,MAAQlC,KAAKiD,SAAW,KAAM,CACrD,M,CAGF,MAAMO,EAAoBxD,KAAKkC,aAAauB,wBAC5C,MAAMC,EAAsB1D,KAAKiD,QAAQQ,wBACzC,MAAME,EAAiBC,KAAKC,IAAIH,EAAoBI,OAAQhE,GAE5D,MAAMiE,EAAiBP,EAAkBQ,EAAIC,OAAOC,YAAc,EAClElE,KAAKmE,iBAAmBJ,GAAkBE,OAAOC,YAAcV,EAAkBY,OAAST,C,CAGpF,oBAAAhC,GACN0C,EAAUrE,KAAK+C,MAAO/C,KAAKuC,KAAMvC,KAAKgD,MAAOhD,KAAKkC,aAAclC,KAAKiD,QAASnD,E,CA4BxE,oBAAAwE,CAAqBC,GAC3B,OACEC,EAAA,mBACEC,MAAOF,EAAOE,MACdC,QAAS1E,KAAK0E,QACdC,SAAU3E,KAAK2E,SACfC,OAAM,KACNC,IAAKN,EAAOM,IACZhB,IAAKU,EAAOV,IAGZnD,MAAOV,KAAKO,WAAWgE,EAAOO,cAC9BC,MAAOR,EAAOQ,MACdC,KAAMT,EAAOS,MAAQC,EAAeC,OAAM,iBAC1BX,EAAOY,cAAa,2BACT/E,GAAUJ,KAAKG,mBAAmBC,EAAOmE,EAAOO,e,CAKzE,eAAAM,GACN,IAAKpF,KAAKuD,gBAAiB,CACzB,M,CAEF,OAAOvD,KAAKsE,qBAAqB,CAAEO,IAAK,EAAGhB,IAAK,GAAIiB,aAAc,S,CAG5D,aAAAvB,GACN,OAAOvD,KAAK1B,OAAO4C,SAAS,K,CAGtB,eAAAmE,GACN,IAAKrF,KAAKsF,gBAAiB,CACzB,M,CAEF,OAAOtF,KAAKsE,qBAAqB,CAAEO,IAAK,EAAGhB,IAAK,GAAIiB,aAAc,S,CAG5D,aAAAQ,GACN,OAAOtF,KAAK1B,OAAO4C,SAAS,K,CAGtB,aAAAqE,GACN,IAAKvF,KAAKsF,gBAAiB,CACzB,M,CAEF,MAAMP,EAAQ,CAAC,KAAM,MACrB,OAAO/E,KAAKsE,qBAAqB,CAC/BS,QACAC,KAAMC,EAAeO,OACrBV,aAAc,U,CAIV,eAAAW,GACN,IAAKzF,KAAK1B,OAAO4C,SAAS,MAAO,CAC/B,M,CAGF,OAAOlB,KAAKsE,qBAAqB,CAAEO,IAAK,EAAGhB,IAAK,GAAIiB,aAAc,W,CAG5D,gBAAAY,GACN,IAAK1F,KAAK1B,OAAO4C,SAAS,MAAO,CAC/B,M,CAGF,OAAOlB,KAAKsE,qBAAqB,CAAEO,IAAK,EAAGhB,IAAK,GAAIiB,aAAc,W,CAG5D,qBAAAa,GACN,IAAK3F,KAAK1B,OAAO4C,SAAS,MAAO,CAC/B,M,CAGF,OAAOlB,KAAKsE,qBAAqB,CAC/BO,IAAK,EACLhB,IAAK,IACLY,MAAO,yBACPU,cAAe,EACfL,aAAc,gB,CAIV,YAAAc,GACN,OACEpB,EAAA,OAAKC,MAAM,yBACTD,EAAA,YAAOxE,KAAK6F,W,CAKV,UAAAC,GACN,MAAMC,EAAkB,CACtB/F,KAAKoF,kBACLpF,KAAKqF,kBACLrF,KAAKyF,kBACLzF,KAAK0F,mBACL1F,KAAK2F,yBAGP,MAAMK,EAAkBD,EAAgBE,QAAQC,GAAOA,IAAOC,YAE9D,OAAOH,EAAgBxG,KAAI,CAAC0G,EAAIE,KAC9B,GAAIA,IAAQJ,EAAgBtH,OAAS,EAAG,CACtC,MAAO,CAACwH,E,CAGV,MAAO,CAACA,EAAIlG,KAAK4F,eAAe,G,CAI5B,SAAAS,GACN,IAAKrG,KAAKuC,OAASvC,KAAKsG,SAAU,CAChCtG,KAAKuC,KAAO,KACZvC,KAAKC,eAAeuC,IAAIC,SAAU,YAAazC,KAAKe,wB,EAIhD,UAAAK,GACN,GAAIpB,KAAKsC,OAAQ,CACf,M,CAGFtC,KAAKuC,KAAO,MACZvC,KAAKC,eAAesG,OAAO9D,SAAU,YAAazC,KAAKe,wB,CAsBjD,eAAAyF,GACN,OACExG,KAAKyG,WACHjC,EAAA,UACEkC,KAAK,SACLjC,MAAO,CACLkC,iBAAkB,KAClB,0BAA2B3G,KAAK4G,eAAiB,OACjD,yBAA0B5G,KAAK4G,eAAiB,SAElD5B,KAAK,SACL6B,QAAS7G,KAAKqB,iBACdyF,SAAS,MAETtC,EAAA,YAAUuC,KAAK,SAAO,S,CAMtB,gBAAAC,GACN,MAAMC,EAAOC,EAAQlH,KAAKmB,KAAM,eAC9BqD,EAAA,QAAM2C,KAAK,gBAEX3C,EAAA,YAAUuC,KAAM/G,KAAK+G,OAAS,QAAU,SAAW/G,KAAK+G,MAAI,eAG9D,OACEvC,EAAA,QACEkC,KAAK,SACLU,KAAK,OACL3C,MAAO,CACL4C,OAAQ,KACR,gBAAiBrH,KAAK4G,eAAiB,UAGxCK,E,CAKP,MAAAK,GACE,OACE9C,EAAA,OAAK4C,KAAK,YAAYG,IAAMrB,GAAQlG,KAAKiD,QAAUiD,EAAKzB,MAAM,yBAC5DD,EAAA,aACE+C,IAAMrB,GAAQlG,KAAKkC,aAAegE,EAClCkB,KAAK,QACLP,QAAS,IAAM7G,KAAKqG,YACpB3F,MAAOV,KAAKU,MACZ8G,YAAaxH,KAAKwH,YAClBC,SAAUzH,KAAKyH,SACfnB,SAAUtG,KAAKsG,SACfoB,eAAgB1H,KAAK0H,eACrBC,UAAW3H,KAAK2H,UAChBC,QAAS5H,KAAK4H,QACdb,KAAM/G,KAAK+G,KACXI,KAAMnH,KAAKmH,KACXU,MAAO7H,KAAK6H,MACZC,SAAU9H,KAAK8H,SACfrD,MAAO,CACL,eAAgBzE,KAAKU,QAAU,GAC/B,cAAeV,KAAKsC,SAGrBtC,KAAKgH,mBACLhH,KAAKwG,kBACLU,EAAQlH,KAAKmB,KAAM,SAClBqD,EAAA,QAAMkC,KAAK,SACTlC,EAAA,QAAM2C,KAAK,WAEX,KACHD,EAAQlH,KAAKmB,KAAM,cAClBqD,EAAA,QAAMkC,KAAK,cACTlC,EAAA,QAAM2C,KAAK,gBAEX,MAELnH,KAAKuC,MACJiC,EAAA,OACE+C,IAAMrB,GAAQlG,KAAKgD,MAAQkD,EAC3BkB,KAAK,QACL3C,MAAO,CACLsD,kBAAmB,KACnB,2BAA4B/H,KAAKgI,WAAa,KAAOhI,KAAKgI,YAAc,MAAQhI,KAAKmE,iBACrF,+BAAgCnE,KAAKsC,YAGnCtC,KAAK8F,aACR9F,KAAKuF,iB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_DEBOUNCE_INSANELY_FAST","DEFAULT_DEBOUNCE_FAST","debounce","callback","timeout","timer","args","clearTimeout","setTimeout","debounceEvent","event","original","_original","emit","bind"],"sources":["src/utils/execution-control.ts"],"sourcesContent":["import { EventEmitter } from '@stencil/core';\n\nexport const DEFAULT_DEBOUNCE_INSANELY_FAST = 35;\nexport const DEFAULT_DEBOUNCE_FAST = 300;\n\n/**\n * Debounce function to implement a timeframe to wait for no new changes before executing a callback\n\n * example usages:\n * debounce(() => saveInput());\n * debounce(() => saveInput(), 750);\n * this.searchInput.addEventListener('six-input-input', debounce((event) => this.searchInputChange(event)));\n *\n * regarding default timeout check https://lawsofux.com/doherty-threshold/\n *\n * @param callback\n * @param timeout\n */\nexport const debounce = <T>(callback: (x: T) => void, timeout = DEFAULT_DEBOUNCE_FAST) => {\n let timer: number;\n return (args: T) => {\n clearTimeout(timer);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n timer = setTimeout(() => callback(args), timeout);\n };\n};\n\n/**\n * Debounce an event\n *\n * @param event\n * @param timeout\n */\nexport const debounceEvent = (event: EventEmitter, timeout: number): EventEmitter => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = (event as any)._original || event;\n const emit = debounce(original.emit.bind(original), timeout) as (_: unknown) => CustomEvent;\n return {\n _original: event,\n emit: emit,\n } as EventEmitter;\n};\n"],"mappings":"MAEaA,EAAiC,G,MACjCC,EAAwB,I,MAexBC,EAAW,CAAIC,EAA0BC,EAAUH,KAC9D,IAAII,EACJ,OAAQC,IACNC,aAAaF,GAGbA,EAAQG,YAAW,IAAML,EAASG,IAAOF,EAAQ,CAClD,E,MASUK,EAAgB,CAACC,EAAqBN,KAEjD,MAAMO,EAAYD,EAAcE,WAAaF,EAC7C,MAAMG,EAAOX,EAASS,EAASE,KAAKC,KAAKH,GAAWP,GACpD,MAAO,CACLQ,UAAWF,EACXG,KAAMA,EACS,S"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as o,h as i,g as r}from"./p-0beec94f.js";import{s}from"./p-8227aaed.js";function a(t,o,i={duration:150,easing:"ease",fill:"both"}){const r=o.getBoundingClientRect();const s=t.getBoundingClientRect();const a=r.left-s.left;const l=r.top-s.top;const e=r.width/s.width;const n=r.height/s.height;t.animate([{transformOrigin:"top left",transform:`translate(${a}px, ${l}px) scale(${e}, ${n})`},{transformOrigin:"top left",transform:"none"}],i)}const l=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host{display:block}.tab-group{display:flex;border:solid 1px transparent;border-radius:0}.tab-group .tab-group__tabs{display:flex;position:relative}.tab-group--has-scroll-controls .tab-group__nav-container{position:relative;padding:0 var(--six-spacing-x-large)}.tab-group__scroll-button{display:flex;align-items:center;justify-content:center;position:absolute;top:0;bottom:0;width:var(--six-spacing-x-large)}.tab-group__scroll-button--left{left:0}.tab-group__scroll-button--right{right:0}.tab-group--top{flex-direction:column}.tab-group--top .tab-group__nav-container{order:1}.tab-group--top .tab-group__nav{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tab-group--top .tab-group__nav::-webkit-scrollbar{width:0;height:0}.tab-group--top .tab-group__tabs{flex:1 1 auto;position:relative;flex-direction:row}.tab-group--top .tab-group__body{order:2}.tab-group--bottom{flex-direction:column}.tab-group--bottom .tab-group__nav-container{order:2}.tab-group--bottom .tab-group__nav{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tab-group--bottom .tab-group__nav::-webkit-scrollbar{width:0;height:0}.tab-group--bottom .tab-group__tabs{flex:1 1 auto;position:relative;flex-direction:row}.tab-group--bottom .tab-group__body{order:1}.tab-group--left{flex-direction:row}.tab-group--left .tab-group__nav-container{order:1}.tab-group--left .tab-group__tabs{flex:0 0 auto;flex-direction:column}.tab-group--left .tab-group__body{flex:1 1 auto;order:2}.tab-group--right{flex-direction:row}.tab-group--right .tab-group__nav-container{order:2}.tab-group--right .tab-group__tabs{flex:0 0 auto;flex-direction:column}.tab-group--right .tab-group__body{flex:1 1 auto;order:1}";const e=class{constructor(i){t(this,i);this.sixTabShow=o(this,"six-tab-show",7);this.sixTabHide=o(this,"six-tab-hide",7);this.handleClick=t=>{const o=t.target;const i=o.closest("six-tab");const r=i===null||i===void 0?void 0:i.closest("six-tab-group");if(r!==this.host){return false}if(i!=null){this.setActiveTab(i)}};this.handleKeyDown=t=>{if(this.nav==null)return;const o=t.target;const i=o.closest("six-tab");const r=i===null||i===void 0?void 0:i.closest("six-tab-group");if(r!==this.host){return false}if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(t.key)){const o=document.activeElement;if(o&&o.tagName.toLowerCase()==="six-tab"){const i=this.getAllTabs();let r=i.indexOf(o);if(t.key==="Home"){r=0}else if(t.key==="End"){r=i.length-1}else if(t.key==="ArrowLeft"){r=Math.max(0,r-1)}else if(t.key==="ArrowRight"){r=Math.min(i.length-1,r+1)}i[r].setFocus({preventScroll:true});this.setActiveTab(i[r]);if(["top","bottom"].includes(this.placement)){s(i[r],this.nav,"horizontal")}t.preventDefault()}}};this.handleScrollLeft=()=>{if(this.nav==null)return;this.nav.scroll({left:this.nav.scrollLeft-this.nav.clientWidth,behavior:"smooth"})};this.handleScrollRight=()=>{if(this.nav==null)return;this.nav.scroll({left:this.nav.scrollLeft+this.nav.clientWidth,behavior:"smooth"})};this.hasScrollControls=false;this.placement="top";this.noScrollControls=false}handleNoScrollControlsChange(){this.updateScrollControls()}componentDidLoad(){if(this.tabGroup==null||this.nav==null)return;const t=new IntersectionObserver(((t,o)=>{if(t[0].intersectionRatio>0){this.setAriaLabels();this.setActiveTab(this.getActiveTab()||this.getAllTabs()[0],false);o.unobserve(t[0].target)}}));t.observe(this.host);this.resizeObserver=new ResizeObserver((()=>this.updateScrollControls()));this.resizeObserver.observe(this.nav);requestAnimationFrame((()=>this.updateScrollControls()));this.mutationObserver=new MutationObserver((t=>{if(t.some((t=>{var o;return!["aria-labelledby","aria-controls"].includes((o=t.attributeName)!==null&&o!==void 0?o:"")}))){setTimeout((()=>this.setAriaLabels()))}}));this.mutationObserver.observe(this.host,{attributes:true,childList:true,subtree:true})}disconnectedCallback(){if(this.mutationObserver==null||this.tabGroup==null||this.nav==null||this.resizeObserver==null){return}this.mutationObserver.disconnect();this.resizeObserver.unobserve(this.nav)}async show(t){const o=this.getAllTabs();const i=o.find((o=>o.panel===t));if(i!=null){this.setActiveTab(i)}}getAllTabs(t=false){var o;const i=(o=this.tabs)===null||o===void 0?void 0:o.querySelector("slot");if(i==null)return[];return[...i.assignedElements()].filter((o=>t?o.tagName.toLowerCase()==="six-tab":o.tagName.toLowerCase()==="six-tab"&&!o.disabled))}getAllPanels(){var t;const o=(t=this.body)===null||t===void 0?void 0:t.querySelector("slot");if(o==null)return[];return[...o.assignedElements()].filter((t=>t.tagName.toLowerCase()==="six-tab-panel"))}getActiveTab(){return this.getAllTabs().find((t=>t.active))}updateScrollControls(){if(this.nav==null)return;this.hasScrollControls=this.noScrollControls?false:["top","bottom"].includes(this.placement)&&this.nav.scrollWidth>this.nav.clientWidth}setActiveTab(t,o=true){var i,r,l;if(this.nav==null)return;const e=(i=t===null||t===void 0?void 0:t.shadowRoot)===null||i===void 0?void 0:i.querySelector(".tab__indicator");const n=(l=(r=this.getActiveTab())===null||r===void 0?void 0:r.shadowRoot)===null||l===void 0?void 0:l.querySelector(".tab__indicator");if(n!=null&&e!=null){a(e,n)}if(t!==this.activeTab&&!t.disabled){const i=this.activeTab;this.activeTab=t;this.getAllTabs().map((t=>t.active=t===this.activeTab));this.getAllPanels().map((t=>{var o;return t.active=t.name===((o=this.activeTab)===null||o===void 0?void 0:o.panel)}));if(["top","bottom"].includes(this.placement)){s(this.activeTab,this.nav,"horizontal")}if(o){if(i!=null){this.sixTabHide.emit({name:i.panel})}this.sixTabShow.emit({name:this.activeTab.panel})}}}setAriaLabels(){const t=this.getAllTabs();const o=this.getAllPanels();t.map((t=>{var i,r;const s=o.find((o=>o.name===t.panel));if(s!=null){t.setAttribute("aria-controls",(i=s.getAttribute("id"))!==null&&i!==void 0?i:"");s.setAttribute("aria-labelledby",(r=t.getAttribute("id"))!==null&&r!==void 0?r:"")}}))}render(){return i("div",{part:"base",ref:t=>this.tabGroup=t,class:{"tab-group":true,"tab-group--top":this.placement==="top","tab-group--bottom":this.placement==="bottom","tab-group--left":this.placement==="left","tab-group--right":this.placement==="right","tab-group--has-scroll-controls":this.hasScrollControls},onClick:this.handleClick,onKeyDown:this.handleKeyDown},i("div",{class:"tab-group__nav-container"},this.hasScrollControls&&i("six-icon-button",{class:"tab-group__scroll-button tab-group__scroll-button--left",exportparts:"base:scroll-button",name:"chevron_left",onClick:this.handleScrollLeft}),i("div",{ref:t=>this.nav=t,key:"nav",part:"nav",class:"tab-group__nav"},i("div",{ref:t=>this.tabs=t,part:"tabs",class:"tab-group__tabs",role:"tablist"},i("slot",{name:"nav"}))),this.hasScrollControls&&i("six-icon-button",{class:"tab-group__scroll-button tab-group__scroll-button--right",exportparts:"base:scroll-button",name:"chevron_right",onClick:this.handleScrollRight})),i("div",{ref:t=>this.body=t,part:"body",class:"tab-group__body"},i("slot",null)))}get host(){return r(this)}static get watchers(){return{noScrollControls:["handleNoScrollControlsChange"]}}};e.style=l;export{e as six_tab_group};
|
|
2
|
+
//# sourceMappingURL=p-a4e4620c.entry.js.map
|