@sellmate/design-system 0.0.55 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{select-keyboard-navigation-6fO_V4En.js → base-dropdown-event-Dc6AuxR4.js} +26 -26
- package/dist/cjs/base-dropdown-event-Dc6AuxR4.js.map +1 -0
- package/dist/cjs/design-system.cjs.js +2 -2
- package/dist/cjs/{index-B7tkxTye.js → index-D_J8ScR5.js} +3 -3
- package/dist/cjs/index-D_J8ScR5.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{resolveColor-DxvExwgo.js → resolveColor-B7Ku3IGq.js} +4 -5
- package/dist/{esm/resolveColor-BYf-ybt2.js.map → cjs/resolveColor-B7Ku3IGq.js.map} +1 -1
- package/dist/cjs/sd-badge.cjs.entry.js +4 -4
- package/dist/cjs/{sd-button_24.cjs.entry.js → sd-button_6.cjs.entry.js} +292 -2842
- package/dist/cjs/sd-card.cjs.entry.js +4 -4
- package/dist/cjs/sd-checkbox.cjs.entry.js +89 -0
- package/dist/cjs/sd-date-box.cjs.entry.js +10 -10
- package/dist/cjs/sd-date-picker.cjs.entry.js +5 -5
- package/dist/cjs/sd-date-range-picker.cjs.entry.js +8 -8
- package/dist/cjs/sd-field_3.cjs.entry.js +422 -0
- package/dist/cjs/sd-file-picker.cjs.entry.js +121 -0
- package/dist/cjs/sd-form.cjs.entry.js +74 -0
- package/dist/cjs/sd-guide.cjs.entry.js +81 -0
- package/dist/cjs/sd-loading-spinner_2.cjs.entry.js +195 -0
- package/dist/cjs/sd-modal-card.cjs.entry.js +8 -8
- package/dist/cjs/sd-number-input.cjs.entry.js +261 -0
- package/dist/cjs/sd-popover.cjs.entry.js +7 -7
- package/dist/cjs/sd-progress.cjs.entry.js +1 -1
- package/dist/cjs/sd-radio-button-group.cjs.entry.js +8 -21
- package/dist/cjs/sd-radio-group.cjs.entry.js +71 -0
- package/dist/cjs/sd-select-dropdown_3.cjs.entry.js +266 -0
- package/dist/cjs/sd-select-multiple-group.cjs.entry.js +446 -0
- package/dist/cjs/sd-select-multiple.cjs.entry.js +74 -152
- package/dist/cjs/sd-select-option-group.cjs.entry.js +69 -0
- package/dist/cjs/sd-table.cjs.entry.js +515 -85
- package/dist/cjs/sd-tabs.cjs.entry.js +66 -0
- package/dist/cjs/sd-tag.cjs.entry.js +57 -0
- package/dist/cjs/sd-toast-message.cjs.entry.js +61 -0
- package/dist/cjs/sd-toggle-button.cjs.entry.js +50 -0
- package/dist/cjs/sd-toggle.cjs.entry.js +46 -0
- package/dist/cjs/{tooltipArrow-8I9A3AOE.js → tooltipArrow-DU2DB2AD.js} +3 -3
- package/dist/cjs/{tooltipArrow-8I9A3AOE.js.map → tooltipArrow-DU2DB2AD.js.map} +1 -1
- package/dist/collection/collection-manifest.json +7 -8
- package/dist/collection/components/sd-badge/sd-badge.css +8 -9
- package/dist/collection/components/sd-badge/sd-badge.js +1 -2
- package/dist/collection/components/sd-badge/sd-badge.js.map +1 -1
- package/dist/collection/components/sd-button/sd-button.css +2 -1
- package/dist/collection/components/sd-button/sd-button.js +2 -34
- package/dist/collection/components/sd-button/sd-button.js.map +1 -1
- package/dist/collection/components/sd-card/sd-card.css +1 -3
- package/dist/collection/components/sd-card/sd-card.js +6 -6
- package/dist/collection/components/sd-card/sd-card.js.map +1 -1
- package/dist/collection/components/sd-checkbox/sd-checkbox.js +16 -16
- package/dist/collection/components/sd-checkbox/sd-checkbox.js.map +1 -1
- package/dist/collection/components/sd-date-box/sd-date-box.css +1 -0
- package/dist/collection/components/sd-date-box/sd-date-box.js +8 -8
- package/dist/collection/components/sd-date-box/sd-date-box.js.map +1 -1
- package/dist/collection/components/sd-date-picker/sd-date-picker.js +5 -5
- package/dist/collection/components/sd-date-picker/sd-date-picker.js.map +1 -1
- package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.css +9 -6
- package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +8 -8
- package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js.map +1 -1
- package/dist/collection/components/sd-field/sd-field.css +100 -0
- package/dist/collection/components/sd-field/sd-field.js +472 -0
- package/dist/collection/components/sd-field/sd-field.js.map +1 -0
- package/dist/collection/components/sd-file-picker/sd-file-picker.css +6 -0
- package/dist/collection/components/sd-file-picker/sd-file-picker.js +8 -8
- package/dist/collection/components/sd-file-picker/sd-file-picker.js.map +1 -1
- package/dist/collection/components/sd-floating-portal/sd-floating-portal.css +103 -0
- package/dist/collection/components/{sd-tooltip-portal/sd-tooltip-portal.js → sd-floating-portal/sd-floating-portal.js} +18 -9
- package/dist/collection/components/sd-floating-portal/sd-floating-portal.js.map +1 -0
- package/dist/collection/components/sd-form/sd-form.js +200 -0
- package/dist/collection/components/sd-form/sd-form.js.map +1 -0
- package/dist/collection/components/sd-guide/sd-guide.css +3 -2
- package/dist/collection/components/sd-guide/sd-guide.js +7 -8
- package/dist/collection/components/sd-guide/sd-guide.js.map +1 -1
- package/dist/collection/components/sd-icon/sd-icon.js +1 -1
- package/dist/collection/components/sd-input/sd-input.css +43 -100
- package/dist/collection/components/sd-input/sd-input.js +285 -114
- package/dist/collection/components/sd-input/sd-input.js.map +1 -1
- package/dist/collection/components/sd-modal-card/sd-modal-card.css +1 -0
- package/dist/collection/components/sd-modal-card/sd-modal-card.js +5 -5
- package/dist/collection/components/sd-modal-card/sd-modal-card.js.map +1 -1
- package/dist/collection/components/sd-number-input/sd-number-input.js +18 -84
- package/dist/collection/components/sd-number-input/sd-number-input.js.map +1 -1
- package/dist/collection/components/sd-pagination/sd-pagination.js +4 -3
- package/dist/collection/components/sd-pagination/sd-pagination.js.map +1 -1
- package/dist/collection/components/sd-popover/sd-popover.css +2 -2
- package/dist/collection/components/sd-popover/sd-popover.js +4 -5
- package/dist/collection/components/sd-popover/sd-popover.js.map +1 -1
- package/dist/collection/components/sd-portal/sd-portal.js +4 -4
- package/dist/collection/components/sd-portal/sd-portal.js.map +1 -1
- package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.js +9 -30
- package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.js.map +1 -1
- package/dist/collection/components/sd-radio-group/sd-radio-group.js +5 -5
- package/dist/collection/components/sd-radio-group/sd-radio-group.js.map +1 -1
- package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.css +52 -0
- package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.js +441 -0
- package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.js.map +1 -0
- package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +4 -4
- package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js.map +1 -1
- package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.css +11 -3
- package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.js +15 -15
- package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.js.map +1 -1
- package/dist/collection/components/sd-select/sd-select.css +9 -97
- package/dist/collection/components/sd-select/sd-select.js +320 -219
- package/dist/collection/components/sd-select/sd-select.js.map +1 -1
- package/dist/collection/components/sd-select-multiple/sd-select-multiple.css +16 -102
- package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +328 -179
- package/dist/collection/components/sd-select-multiple/sd-select-multiple.js.map +1 -1
- package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.css +8 -45
- package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js +265 -47
- package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js.map +1 -1
- package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
- package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js.map +1 -1
- package/dist/collection/components/sd-table/sd-table.css +121 -30
- package/dist/collection/components/sd-table/sd-table.js +629 -92
- package/dist/collection/components/sd-table/sd-table.js.map +1 -1
- package/dist/collection/components/sd-tabs/sd-tabs.css +10 -7
- package/dist/collection/components/sd-tabs/sd-tabs.js +10 -17
- package/dist/collection/components/sd-tabs/sd-tabs.js.map +1 -1
- package/dist/collection/components/sd-tag/sd-tag.js +1 -1
- package/dist/collection/components/sd-textarea/sd-textarea.css +66 -0
- package/dist/collection/components/sd-textarea/sd-textarea.js +400 -0
- package/dist/collection/components/sd-textarea/sd-textarea.js.map +1 -0
- package/dist/collection/components/sd-toast-message/sd-toast-message.js +11 -11
- package/dist/collection/components/sd-toast-message/sd-toast-message.js.map +1 -1
- package/dist/collection/components/sd-toggle/sd-toggle.js +8 -14
- package/dist/collection/components/sd-toggle/sd-toggle.js.map +1 -1
- package/dist/collection/components/sd-toggle-button/sd-toggle-button.js +5 -5
- package/dist/collection/components/sd-toggle-button/sd-toggle-button.js.map +1 -1
- package/dist/collection/components/sd-tooltip/sd-tooltip.css +6 -65
- package/dist/collection/components/sd-tooltip/sd-tooltip.js +12 -29
- package/dist/collection/components/sd-tooltip/sd-tooltip.js.map +1 -1
- package/dist/collection/types/select.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-7xekTQRB.js +104 -0
- package/dist/components/p-7xekTQRB.js.map +1 -0
- package/dist/components/{p-BDkKpeVz.js → p-BKSlQGJv.js} +3 -3
- package/dist/components/{p-BDkKpeVz.js.map → p-BKSlQGJv.js.map} +1 -1
- package/dist/components/{p-njRAT-yp.js → p-CVMprLsE.js} +17 -15
- package/dist/components/p-CVMprLsE.js.map +1 -0
- package/dist/components/p-CdGD6AqM.js +92 -0
- package/dist/components/p-CdGD6AqM.js.map +1 -0
- package/dist/components/p-CpRkV7pg.js +201 -0
- package/dist/components/p-CpRkV7pg.js.map +1 -0
- package/dist/components/p-D2movWkD.js +289 -0
- package/dist/components/p-D2movWkD.js.map +1 -0
- package/dist/components/p-D54IEoI6.js +238 -0
- package/dist/components/p-D54IEoI6.js.map +1 -0
- package/dist/components/{p-D5BkkT2U.js → p-DbebUQwg.js} +7 -7
- package/dist/components/{p-D5BkkT2U.js.map → p-DbebUQwg.js.map} +1 -1
- package/dist/components/{p-BYf-ybt2.js → p-DcGvp3RM.js} +5 -5
- package/dist/components/p-DcGvp3RM.js.map +1 -0
- package/dist/components/{p-nqDJZ_gy.js → p-DdKGhMHk.js} +4 -4
- package/dist/components/{p-nqDJZ_gy.js.map → p-DdKGhMHk.js.map} +1 -1
- package/dist/components/{p-BxPT3VKO.js → p-DlJtPR_C.js} +12 -12
- package/dist/components/p-DlJtPR_C.js.map +1 -0
- package/dist/components/{p-vhe6g4Qt.js → p-DnQF6htq.js} +5 -5
- package/dist/components/{p-vhe6g4Qt.js.map → p-DnQF6htq.js.map} +1 -1
- package/dist/components/{p-BA38jFi5.js → p-DssRJcAn.js} +4 -4
- package/dist/components/{p-BA38jFi5.js.map → p-DssRJcAn.js.map} +1 -1
- package/dist/components/{p-B3H_uLbl.js → p-Dt-KAeBx.js} +3 -3
- package/dist/components/{p-B3H_uLbl.js.map → p-Dt-KAeBx.js.map} +1 -1
- package/dist/components/{p-DRGcUx0C.js → p-DxSmO6Tr.js} +8 -7
- package/dist/components/p-DxSmO6Tr.js.map +1 -0
- package/dist/components/{p-CWwMpVqI.js → p-JF61vPAh.js} +9 -9
- package/dist/components/p-JF61vPAh.js.map +1 -0
- package/dist/components/p-RhBqdixM.js +102 -0
- package/dist/components/p-RhBqdixM.js.map +1 -0
- package/dist/components/{p-CKhzpdPk.js → p-UZEmuyIR.js} +19 -19
- package/dist/components/p-UZEmuyIR.js.map +1 -0
- package/dist/components/{p-CQBrru3e.js → p-YLoygqPr.js} +3 -3
- package/dist/components/p-YLoygqPr.js.map +1 -0
- package/dist/components/p-s4Mg_xSz.js +260 -0
- package/dist/components/p-s4Mg_xSz.js.map +1 -0
- package/dist/components/{p-MRYVk6Qh.js → p-zvZtN3nR.js} +8 -8
- package/dist/components/{p-MRYVk6Qh.js.map → p-zvZtN3nR.js.map} +1 -1
- package/dist/components/sd-badge.js +5 -5
- package/dist/components/sd-badge.js.map +1 -1
- package/dist/components/sd-button.js +1 -1
- package/dist/components/sd-card.js +5 -5
- package/dist/components/sd-card.js.map +1 -1
- package/dist/components/sd-checkbox.js +1 -1
- package/dist/components/sd-date-box.js +1 -1
- package/dist/components/sd-date-picker.js +37 -13
- package/dist/components/sd-date-picker.js.map +1 -1
- package/dist/components/sd-date-range-picker.js +41 -17
- package/dist/components/sd-date-range-picker.js.map +1 -1
- package/dist/components/{sd-td.d.ts → sd-field.d.ts} +4 -4
- package/dist/components/sd-field.js +9 -0
- package/dist/components/sd-field.js.map +1 -0
- package/dist/components/sd-file-picker.js +10 -10
- package/dist/components/sd-file-picker.js.map +1 -1
- package/dist/components/{sd-table-backup.d.ts → sd-floating-portal.d.ts} +4 -4
- package/dist/components/sd-floating-portal.js +9 -0
- package/dist/components/sd-floating-portal.js.map +1 -0
- package/dist/components/{sd-th.d.ts → sd-form.d.ts} +4 -4
- package/dist/components/sd-form.js +99 -0
- package/dist/components/sd-form.js.map +1 -0
- package/dist/components/sd-guide.js +12 -13
- package/dist/components/sd-guide.js.map +1 -1
- package/dist/components/sd-icon.js +1 -1
- package/dist/components/sd-input.js +1 -1
- package/dist/components/sd-loading-spinner.js +1 -1
- package/dist/components/sd-modal-card.js +10 -10
- package/dist/components/sd-modal-card.js.map +1 -1
- package/dist/components/sd-number-input.js +19 -43
- package/dist/components/sd-number-input.js.map +1 -1
- package/dist/components/sd-pagination.js +1 -1
- package/dist/components/sd-popover.js +14 -15
- package/dist/components/sd-popover.js.map +1 -1
- package/dist/components/sd-portal.js +1 -1
- package/dist/components/sd-progress.js +1 -1
- package/dist/components/sd-radio-button-group.js +10 -26
- package/dist/components/sd-radio-button-group.js.map +1 -1
- package/dist/components/sd-radio-group.js +5 -5
- package/dist/components/sd-radio-group.js.map +1 -1
- package/dist/components/{sd-tbody.d.ts → sd-select-dropdown.d.ts} +4 -4
- package/dist/components/sd-select-dropdown.js +9 -0
- package/dist/components/sd-select-dropdown.js.map +1 -0
- package/dist/components/sd-select-multiple-group.js +97 -40
- package/dist/components/sd-select-multiple-group.js.map +1 -1
- package/dist/components/sd-select-multiple.js +133 -168
- package/dist/components/sd-select-multiple.js.map +1 -1
- package/dist/components/sd-select-option-group.js +1 -1
- package/dist/components/sd-select-option.js +1 -1
- package/dist/components/sd-select-search-input.js +1 -1
- package/dist/components/sd-select.js +1 -1
- package/dist/components/sd-table.js +555 -113
- package/dist/components/sd-table.js.map +1 -1
- package/dist/components/sd-tabs.js +13 -16
- package/dist/components/sd-tabs.js.map +1 -1
- package/dist/components/sd-tag.js +1 -1
- package/dist/components/{sd-tr.d.ts → sd-textarea.d.ts} +4 -4
- package/dist/components/sd-textarea.js +145 -0
- package/dist/components/sd-textarea.js.map +1 -0
- package/dist/components/sd-toast-message.js +14 -14
- package/dist/components/sd-toast-message.js.map +1 -1
- package/dist/components/sd-toggle-button.js +5 -5
- package/dist/components/sd-toggle-button.js.map +1 -1
- package/dist/components/sd-toggle.js +9 -11
- package/dist/components/sd-toggle.js.map +1 -1
- package/dist/components/sd-tooltip.js +1 -1
- package/dist/design-system/design-system.css +1 -1
- package/dist/design-system/design-system.esm.js +1 -1
- package/dist/design-system/p-02e23509.entry.js +2 -0
- package/dist/design-system/p-02e23509.entry.js.map +1 -0
- package/dist/design-system/p-0a2f733d.entry.js +2 -0
- package/dist/design-system/p-0a2f733d.entry.js.map +1 -0
- package/dist/design-system/p-0d3f019d.entry.js +2 -0
- package/dist/design-system/p-0d3f019d.entry.js.map +1 -0
- package/dist/design-system/p-15dd1289.entry.js +2 -0
- package/dist/design-system/p-15dd1289.entry.js.map +1 -0
- package/dist/design-system/p-216c6543.entry.js +2 -0
- package/dist/design-system/p-216c6543.entry.js.map +1 -0
- package/dist/design-system/p-2400d67b.entry.js +2 -0
- package/dist/design-system/p-2400d67b.entry.js.map +1 -0
- package/dist/design-system/p-282f4087.entry.js +2 -0
- package/dist/design-system/p-282f4087.entry.js.map +1 -0
- package/dist/design-system/{p-7b94b34e.entry.js → p-388d5b9f.entry.js} +2 -2
- package/dist/design-system/p-4d7bb5b6.entry.js +2 -0
- package/dist/design-system/p-4d7bb5b6.entry.js.map +1 -0
- package/dist/design-system/p-53972259.entry.js +2 -0
- package/dist/design-system/p-53972259.entry.js.map +1 -0
- package/dist/design-system/p-6277b220.entry.js +2 -0
- package/dist/design-system/p-6277b220.entry.js.map +1 -0
- package/dist/design-system/p-652c4d37.entry.js +2 -0
- package/dist/design-system/p-652c4d37.entry.js.map +1 -0
- package/dist/design-system/p-661c4553.entry.js +2 -0
- package/dist/design-system/p-661c4553.entry.js.map +1 -0
- package/dist/design-system/p-686958c5.entry.js +2 -0
- package/dist/design-system/p-686958c5.entry.js.map +1 -0
- package/dist/design-system/p-811c5aa4.entry.js +2 -0
- package/dist/design-system/p-811c5aa4.entry.js.map +1 -0
- package/dist/design-system/p-827ca975.entry.js +2 -0
- package/dist/design-system/p-827ca975.entry.js.map +1 -0
- package/dist/design-system/p-8df72aa2.entry.js +2 -0
- package/dist/design-system/p-8df72aa2.entry.js.map +1 -0
- package/dist/design-system/p-9d2459ed.entry.js +2 -0
- package/dist/design-system/p-9d2459ed.entry.js.map +1 -0
- package/dist/design-system/p-BShXSO5x.js +2 -0
- package/dist/design-system/p-BShXSO5x.js.map +1 -0
- package/dist/design-system/{p-7X2nzJWz.js → p-C3qNZ7Qh.js} +3 -3
- package/dist/design-system/p-C3qNZ7Qh.js.map +1 -0
- package/dist/design-system/{p-CdbtuKYR.js → p-DPxE68eG.js} +2 -2
- package/dist/design-system/{p-CdbtuKYR.js.map → p-DPxE68eG.js.map} +1 -1
- package/dist/design-system/{p-BYf-ybt2.js → p-DcGvp3RM.js} +2 -2
- package/dist/design-system/{p-BYf-ybt2.js.map → p-DcGvp3RM.js.map} +1 -1
- package/dist/design-system/p-a7d4c6bd.entry.js +2 -0
- package/dist/design-system/p-a7d4c6bd.entry.js.map +1 -0
- package/dist/design-system/p-ac29c52c.entry.js +2 -0
- package/dist/design-system/p-ac29c52c.entry.js.map +1 -0
- package/dist/design-system/{p-7a424f6b.entry.js → p-b0277422.entry.js} +2 -2
- package/dist/design-system/p-b0277422.entry.js.map +1 -0
- package/dist/design-system/p-c25c4bd6.entry.js +2 -0
- package/dist/design-system/p-c25c4bd6.entry.js.map +1 -0
- package/dist/design-system/p-c3061828.entry.js +2 -0
- package/dist/design-system/p-c3061828.entry.js.map +1 -0
- package/dist/design-system/p-cde56c79.entry.js +2 -0
- package/dist/design-system/{p-2c57bdea.entry.js.map → p-cde56c79.entry.js.map} +1 -1
- package/dist/design-system/p-d77422e4.entry.js +2 -0
- package/dist/design-system/p-d77422e4.entry.js.map +1 -0
- package/dist/design-system/p-dc410414.entry.js +2 -0
- package/dist/design-system/p-dc410414.entry.js.map +1 -0
- package/dist/design-system/p-f254b09a.entry.js +2 -0
- package/dist/design-system/p-f254b09a.entry.js.map +1 -0
- package/dist/design-system/p-f3287206.entry.js +2 -0
- package/dist/design-system/p-f3287206.entry.js.map +1 -0
- package/dist/esm/{select-keyboard-navigation-C2JaR3A6.js → base-dropdown-event-BShXSO5x.js} +26 -26
- package/dist/esm/base-dropdown-event-BShXSO5x.js.map +1 -0
- package/dist/esm/design-system.js +3 -3
- package/dist/esm/{index-7X2nzJWz.js → index-C3qNZ7Qh.js} +3 -3
- package/dist/esm/index-C3qNZ7Qh.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{resolveColor-BYf-ybt2.js → resolveColor-DcGvp3RM.js} +5 -5
- package/dist/{cjs/resolveColor-DxvExwgo.js.map → esm/resolveColor-DcGvp3RM.js.map} +1 -1
- package/dist/esm/sd-badge.entry.js +4 -4
- package/dist/esm/sd-badge.entry.js.map +1 -1
- package/dist/esm/{sd-button_24.entry.js → sd-button_6.entry.js} +291 -2823
- package/dist/esm/sd-card.entry.js +4 -4
- package/dist/esm/sd-card.entry.js.map +1 -1
- package/dist/esm/sd-checkbox.entry.js +87 -0
- package/dist/esm/sd-checkbox.entry.js.map +1 -0
- package/dist/esm/sd-date-box.entry.js +10 -10
- package/dist/esm/sd-date-box.entry.js.map +1 -1
- package/dist/esm/sd-date-picker.entry.js +5 -5
- package/dist/esm/sd-date-picker.entry.js.map +1 -1
- package/dist/esm/sd-date-range-picker.entry.js +8 -8
- package/dist/esm/sd-date-range-picker.entry.js.map +1 -1
- package/dist/esm/sd-field_3.entry.js +418 -0
- package/dist/esm/sd-file-picker.entry.js +119 -0
- package/dist/esm/sd-file-picker.entry.js.map +1 -0
- package/dist/esm/sd-form.entry.js +72 -0
- package/dist/esm/sd-form.entry.js.map +1 -0
- package/dist/esm/sd-guide.entry.js +79 -0
- package/dist/esm/sd-guide.entry.js.map +1 -0
- package/dist/esm/sd-loading-spinner_2.entry.js +192 -0
- package/dist/esm/sd-modal-card.entry.js +8 -8
- package/dist/esm/sd-modal-card.entry.js.map +1 -1
- package/dist/esm/sd-number-input.entry.js +259 -0
- package/dist/esm/sd-number-input.entry.js.map +1 -0
- package/dist/esm/sd-popover.entry.js +7 -7
- package/dist/esm/sd-popover.entry.js.map +1 -1
- package/dist/esm/sd-progress.entry.js +1 -1
- package/dist/esm/sd-radio-button-group.entry.js +8 -21
- package/dist/esm/sd-radio-button-group.entry.js.map +1 -1
- package/dist/esm/sd-radio-group.entry.js +69 -0
- package/dist/esm/sd-radio-group.entry.js.map +1 -0
- package/dist/esm/sd-select-dropdown_3.entry.js +262 -0
- package/dist/esm/sd-select-multiple-group.entry.js +444 -0
- package/dist/esm/sd-select-multiple-group.entry.js.map +1 -0
- package/dist/esm/sd-select-multiple.entry.js +72 -150
- package/dist/esm/sd-select-multiple.entry.js.map +1 -1
- package/dist/esm/sd-select-option-group.entry.js +67 -0
- package/dist/esm/sd-select-option-group.entry.js.map +1 -0
- package/dist/esm/sd-table.entry.js +515 -85
- package/dist/esm/sd-table.entry.js.map +1 -1
- package/dist/esm/sd-tabs.entry.js +64 -0
- package/dist/esm/sd-tabs.entry.js.map +1 -0
- package/dist/esm/sd-tag.entry.js +55 -0
- package/dist/esm/sd-tag.entry.js.map +1 -0
- package/dist/esm/sd-toast-message.entry.js +59 -0
- package/dist/esm/sd-toast-message.entry.js.map +1 -0
- package/dist/esm/sd-toggle-button.entry.js +48 -0
- package/dist/esm/sd-toggle-button.entry.js.map +1 -0
- package/dist/esm/sd-toggle.entry.js +44 -0
- package/dist/esm/sd-toggle.entry.js.map +1 -0
- package/dist/esm/{tooltipArrow-DFRZWz6D.js → tooltipArrow-Ck_14rXC.js} +3 -3
- package/dist/esm/{tooltipArrow-DFRZWz6D.js.map → tooltipArrow-Ck_14rXC.js.map} +1 -1
- package/dist/types/components/sd-button/sd-button.d.ts +0 -3
- package/dist/types/components/sd-card/sd-card.d.ts +1 -1
- package/dist/types/components/sd-checkbox/sd-checkbox.d.ts +2 -2
- package/dist/types/components/sd-date-box/sd-date-box.d.ts +2 -2
- package/dist/types/components/sd-date-picker/sd-date-picker.d.ts +1 -1
- package/dist/types/components/sd-date-range-picker/sd-date-range-picker.d.ts +1 -1
- package/dist/types/components/sd-field/sd-field.d.ts +34 -0
- package/dist/types/components/sd-file-picker/sd-file-picker.d.ts +1 -1
- package/dist/types/components/{sd-tooltip-portal/sd-tooltip-portal.d.ts → sd-floating-portal/sd-floating-portal.d.ts} +2 -2
- package/dist/types/components/sd-form/sd-form.d.ts +23 -0
- package/dist/types/components/sd-input/sd-input.d.ts +23 -14
- package/dist/types/components/sd-modal-card/sd-modal-card.d.ts +2 -2
- package/dist/types/components/sd-number-input/sd-number-input.d.ts +4 -14
- package/dist/types/components/sd-portal/sd-portal.d.ts +1 -1
- package/dist/types/components/sd-radio-button-group/sd-radio-button-group.d.ts +2 -4
- package/dist/types/components/sd-radio-group/sd-radio-group.d.ts +1 -1
- package/dist/types/components/sd-select/sd-select-dropdown/sd-select-dropdown.d.ts +41 -0
- package/dist/types/components/sd-select/sd-select-option/sd-select-option.d.ts +1 -1
- package/dist/types/components/sd-select/sd-select-search-input/sd-select-search-input.d.ts +4 -4
- package/dist/types/components/sd-select/sd-select.d.ts +28 -21
- package/dist/types/components/sd-select-multiple/sd-select-multiple.d.ts +26 -20
- package/dist/types/components/sd-select-multiple-group/sd-select-multiple-group.d.ts +19 -4
- package/dist/types/components/sd-table/sd-table.d.ts +62 -3
- package/dist/types/components/sd-tabs/sd-tabs.d.ts +1 -2
- package/dist/types/components/sd-textarea/sd-textarea.d.ts +32 -0
- package/dist/types/components/sd-toast-message/sd-toast-message.d.ts +3 -3
- package/dist/types/components/sd-toggle/sd-toggle.d.ts +1 -2
- package/dist/types/components/sd-toggle-button/sd-toggle-button.d.ts +1 -1
- package/dist/types/components/sd-tooltip/sd-tooltip.d.ts +14 -2
- package/dist/types/components.d.ts +705 -399
- package/dist/types/types/form.d.ts +1 -0
- package/dist/types/types/select.d.ts +1 -1
- package/hydrate/index.js +1394 -1322
- package/hydrate/index.mjs +1394 -1322
- package/package.json +4 -3
- package/dist/cjs/index-B7tkxTye.js.map +0 -1
- package/dist/cjs/sd-tbody_3.cjs.entry.js +0 -44
- package/dist/cjs/sd-td.cjs.entry.js +0 -26
- package/dist/cjs/select-keyboard-navigation-6fO_V4En.js.map +0 -1
- package/dist/collection/components/sd-table/sd-tbody/sd-tbody.css +0 -3
- package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +0 -18
- package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js.map +0 -1
- package/dist/collection/components/sd-table/sd-td/sd-td.css +0 -9
- package/dist/collection/components/sd-table/sd-td/sd-td.js +0 -111
- package/dist/collection/components/sd-table/sd-td/sd-td.js.map +0 -1
- package/dist/collection/components/sd-table/sd-th/sd-th.css +0 -8
- package/dist/collection/components/sd-table/sd-th/sd-th.js +0 -18
- package/dist/collection/components/sd-table/sd-th/sd-th.js.map +0 -1
- package/dist/collection/components/sd-table/sd-tr/sd-tr.css +0 -3
- package/dist/collection/components/sd-table/sd-tr/sd-tr.js +0 -18
- package/dist/collection/components/sd-table/sd-tr/sd-tr.js.map +0 -1
- package/dist/collection/components/sd-table-backup/sd-table-backup.css +0 -309
- package/dist/collection/components/sd-table-backup/sd-table-backup.js +0 -1219
- package/dist/collection/components/sd-table-backup/sd-table-backup.js.map +0 -1
- package/dist/collection/components/sd-tooltip-portal/sd-tooltip-portal.js.map +0 -1
- package/dist/components/p-BESbtjDi.js +0 -102
- package/dist/components/p-BESbtjDi.js.map +0 -1
- package/dist/components/p-BLidMbc_.js +0 -34
- package/dist/components/p-BLidMbc_.js.map +0 -1
- package/dist/components/p-BYf-ybt2.js.map +0 -1
- package/dist/components/p-BxPT3VKO.js.map +0 -1
- package/dist/components/p-CKhzpdPk.js.map +0 -1
- package/dist/components/p-CQBrru3e.js.map +0 -1
- package/dist/components/p-CWwMpVqI.js.map +0 -1
- package/dist/components/p-CfKJNKMH.js +0 -175
- package/dist/components/p-CfKJNKMH.js.map +0 -1
- package/dist/components/p-DD9g6GYA.js +0 -34
- package/dist/components/p-DD9g6GYA.js.map +0 -1
- package/dist/components/p-DKoWHxRI.js +0 -34
- package/dist/components/p-DKoWHxRI.js.map +0 -1
- package/dist/components/p-DMqinLuj.js +0 -326
- package/dist/components/p-DMqinLuj.js.map +0 -1
- package/dist/components/p-DRGcUx0C.js.map +0 -1
- package/dist/components/p-DroKiQ6J.js +0 -121
- package/dist/components/p-DroKiQ6J.js.map +0 -1
- package/dist/components/p-QNYqIsvU.js +0 -78
- package/dist/components/p-QNYqIsvU.js.map +0 -1
- package/dist/components/p-njRAT-yp.js.map +0 -1
- package/dist/components/sd-table-backup.js +0 -802
- package/dist/components/sd-table-backup.js.map +0 -1
- package/dist/components/sd-tbody.js +0 -9
- package/dist/components/sd-tbody.js.map +0 -1
- package/dist/components/sd-td.js +0 -50
- package/dist/components/sd-td.js.map +0 -1
- package/dist/components/sd-th.js +0 -9
- package/dist/components/sd-th.js.map +0 -1
- package/dist/components/sd-tooltip-portal.d.ts +0 -11
- package/dist/components/sd-tooltip-portal.js +0 -9
- package/dist/components/sd-tooltip-portal.js.map +0 -1
- package/dist/components/sd-tr.js +0 -9
- package/dist/components/sd-tr.js.map +0 -1
- package/dist/design-system/p-0d2814dc.entry.js +0 -2
- package/dist/design-system/p-0d2814dc.entry.js.map +0 -1
- package/dist/design-system/p-27985b84.entry.js +0 -2
- package/dist/design-system/p-27985b84.entry.js.map +0 -1
- package/dist/design-system/p-2c57bdea.entry.js +0 -2
- package/dist/design-system/p-3bc4effa.entry.js +0 -2
- package/dist/design-system/p-3bc4effa.entry.js.map +0 -1
- package/dist/design-system/p-5acdd14a.entry.js +0 -2
- package/dist/design-system/p-5acdd14a.entry.js.map +0 -1
- package/dist/design-system/p-665c5c48.entry.js +0 -2
- package/dist/design-system/p-665c5c48.entry.js.map +0 -1
- package/dist/design-system/p-7X2nzJWz.js.map +0 -1
- package/dist/design-system/p-7a424f6b.entry.js.map +0 -1
- package/dist/design-system/p-97b271a7.entry.js +0 -2
- package/dist/design-system/p-97b271a7.entry.js.map +0 -1
- package/dist/design-system/p-9ade8cd7.entry.js +0 -2
- package/dist/design-system/p-9ade8cd7.entry.js.map +0 -1
- package/dist/design-system/p-C2JaR3A6.js +0 -2
- package/dist/design-system/p-C2JaR3A6.js.map +0 -1
- package/dist/design-system/p-b1b828e6.entry.js +0 -2
- package/dist/design-system/p-b1b828e6.entry.js.map +0 -1
- package/dist/design-system/p-de826a92.entry.js +0 -2
- package/dist/design-system/p-de826a92.entry.js.map +0 -1
- package/dist/design-system/p-e5065700.entry.js +0 -2
- package/dist/design-system/p-e5065700.entry.js.map +0 -1
- package/dist/design-system/p-fc3580fd.entry.js +0 -2
- package/dist/design-system/p-fc3580fd.entry.js.map +0 -1
- package/dist/esm/index-7X2nzJWz.js.map +0 -1
- package/dist/esm/sd-tbody_3.entry.js +0 -40
- package/dist/esm/sd-td.entry.js +0 -24
- package/dist/esm/sd-td.entry.js.map +0 -1
- package/dist/esm/select-keyboard-navigation-C2JaR3A6.js.map +0 -1
- package/dist/types/components/sd-table/sd-tbody/sd-tbody.d.ts +0 -3
- package/dist/types/components/sd-table/sd-td/sd-td.d.ts +0 -7
- package/dist/types/components/sd-table/sd-th/sd-th.d.ts +0 -3
- package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +0 -3
- package/dist/types/components/sd-table-backup/sd-table-backup.d.ts +0 -135
- /package/dist/design-system/{p-7b94b34e.entry.js.map → p-388d5b9f.entry.js.map} +0 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { p as proxyCustomElement, H, h, c as Host, t as transformTag } from './p-YLoygqPr.js';
|
|
2
|
+
import { d as defineCustomElement$4 } from './p-CdGD6AqM.js';
|
|
3
|
+
import { d as defineCustomElement$3 } from './p-CVMprLsE.js';
|
|
4
|
+
import { d as defineCustomElement$2 } from './p-DnQF6htq.js';
|
|
5
|
+
import { d as defineCustomElement$1 } from './p-7xekTQRB.js';
|
|
6
|
+
|
|
7
|
+
const sdFieldCss = () => `.sd-field{display:inline-flex;flex-flow:column nowrap;height:fit-content;width:fit-content}.sd-field *:focus,.sd-field *:focus-visible,.sd-field *:focus-within{outline:none !important}.sd-field:not(.sd-field--disabled):hover .sd-field__control{border:1px solid #0075ff !important;box-shadow:0px 0px 4px 0px rgba(0, 113, 255, 0.4)}.sd-field.sd-field--disabled{cursor:not-allowed}.sd-field.sd-field--disabled .sd-field__wrapper{cursor:not-allowed !important}.sd-field.sd-field--disabled .sd-field__wrapper .sd-field__label-inside{border-color:#cccccc;color:#888888;cursor:not-allowed !important}.sd-field.sd-field--disabled .sd-field__wrapper .sd-field__control{background-color:#eeeeee;border-color:#cccccc;color:#888888;cursor:not-allowed !important}.sd-field--has-label .sd-field__wrapper .sd-field__label{display:flex;align-items:center;margin-right:12px}.sd-field--has-label .sd-field__wrapper .sd-field__label__required-icon{margin-right:4px}.sd-field--has-label .sd-field__wrapper .sd-field__label__text{font-size:12px;line-height:20px;color:#333333;white-space:nowrap}.sd-field--has-label .sd-field__wrapper .sd-field__label__tooltip{margin-left:2px}.sd-field--has-label-inside .sd-field__wrapper .sd-field__label{margin-right:0;display:flex;align-items:center;justify-content:center;padding:3px 12px;border:1px solid #cccccc;border-right:none;border-radius:4px 0 0 4px;border-color:#aaaaaa;background-color:#f6f6f6}.sd-field__wrapper{width:var(--field-width, 200px);height:28px;display:flex;align-items:center;flex-flow:row nowrap;position:relative;color:#333333;cursor:pointer;-webkit-user-select:none;user-select:none}.sd-field__wrapper .sd-field__control{position:relative;width:100%;height:100%;display:flex;flex:1;border:1px solid #aaaaaa;border-radius:4px;background:white}.sd-field__wrapper .sd-field__control--label-inside{border-top-left-radius:0px;border-bottom-left-radius:0px}.sd-field--error:not(:hover) .sd-field__wrapper .sd-field__control{border:1px solid #fb4444 !important}.sd-field.sd-field--focus .sd-field__wrapper .sd-field__control,.sd-field.sd-field--hover .sd-field__wrapper .sd-field__control{border:1px solid #0075ff !important;box-shadow:0px 0px 4px 0px rgba(0, 113, 255, 0.4)}.sd-field .sd-field__error-message{color:#fb4444;font-size:12px;line-height:20px;margin-top:4px}`;
|
|
8
|
+
|
|
9
|
+
const FORM_PARENT_TAGS = [
|
|
10
|
+
'sd-select',
|
|
11
|
+
'sd-select-multiple',
|
|
12
|
+
'sd-select-multiple-group',
|
|
13
|
+
'sd-input',
|
|
14
|
+
'sd-textarea',
|
|
15
|
+
];
|
|
16
|
+
const SdField = /*@__PURE__*/ proxyCustomElement(class SdField extends H {
|
|
17
|
+
constructor(registerHost) {
|
|
18
|
+
super();
|
|
19
|
+
if (registerHost !== false) {
|
|
20
|
+
this.__registerHost();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
get el() { return this; }
|
|
24
|
+
name = '';
|
|
25
|
+
rules = [];
|
|
26
|
+
error = false;
|
|
27
|
+
disabled = false;
|
|
28
|
+
hovered = false;
|
|
29
|
+
focused = false;
|
|
30
|
+
status;
|
|
31
|
+
// props - label
|
|
32
|
+
label = '';
|
|
33
|
+
insideLabel = false;
|
|
34
|
+
useLabelRequired = false;
|
|
35
|
+
labelTooltip = '';
|
|
36
|
+
labelTooltipProps = null;
|
|
37
|
+
errorMsg = '';
|
|
38
|
+
hostElement = null;
|
|
39
|
+
get value() {
|
|
40
|
+
return this.hostElement?.value ?? null;
|
|
41
|
+
}
|
|
42
|
+
get fieldStatus() {
|
|
43
|
+
let status = '';
|
|
44
|
+
if (!!this.disabled) {
|
|
45
|
+
status = 'disabled';
|
|
46
|
+
return `sd-field--${status}`;
|
|
47
|
+
}
|
|
48
|
+
if (!!this.focused) {
|
|
49
|
+
status = 'focus';
|
|
50
|
+
return `sd-field--${status}`;
|
|
51
|
+
}
|
|
52
|
+
if (!!this.hovered)
|
|
53
|
+
status = 'hover';
|
|
54
|
+
if (!!this.status)
|
|
55
|
+
status = this.status;
|
|
56
|
+
if (!!this.error)
|
|
57
|
+
status = 'error';
|
|
58
|
+
return status ? `sd-field--${status}` : '';
|
|
59
|
+
}
|
|
60
|
+
componentDidLoad() {
|
|
61
|
+
this.hostElement = this.findHostElement();
|
|
62
|
+
this.registerToForm();
|
|
63
|
+
}
|
|
64
|
+
disconnectedCallback() {
|
|
65
|
+
this.unregisterFromForm();
|
|
66
|
+
}
|
|
67
|
+
findHostElement() {
|
|
68
|
+
for (const tag of FORM_PARENT_TAGS) {
|
|
69
|
+
const parent = this.el.closest(tag);
|
|
70
|
+
if (parent && 'value' in parent) {
|
|
71
|
+
return parent;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
registerToForm() {
|
|
77
|
+
if (!this.rules || this.rules.length === 0) {
|
|
78
|
+
console.warn('[sd-form-field] rules prop is required for sd-form integration');
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const formEl = this.el.closest('sd-form');
|
|
82
|
+
if (!formEl)
|
|
83
|
+
return;
|
|
84
|
+
formEl.componentOnReady().then(form => {
|
|
85
|
+
form.sdRegisterField(this);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
unregisterFromForm() {
|
|
89
|
+
if (!this.name)
|
|
90
|
+
return;
|
|
91
|
+
const formEl = this.el.closest('sd-form');
|
|
92
|
+
formEl?.componentOnReady().then(form => {
|
|
93
|
+
form.sdUnregisterField(this.name);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
async sdValidate() {
|
|
97
|
+
if (!this.rules || this.rules.length === 0)
|
|
98
|
+
return true;
|
|
99
|
+
for (const rule of this.rules) {
|
|
100
|
+
const result = rule(this.value ?? '');
|
|
101
|
+
if (result !== true) {
|
|
102
|
+
this.setError(true, result);
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
this.setError(false, '');
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
async sdReset() {
|
|
110
|
+
if (this.hostElement) {
|
|
111
|
+
this.hostElement.value = null;
|
|
112
|
+
}
|
|
113
|
+
this.setError(false, '');
|
|
114
|
+
}
|
|
115
|
+
async sdResetValidation() {
|
|
116
|
+
this.setError(false, '');
|
|
117
|
+
}
|
|
118
|
+
async sdFocus() {
|
|
119
|
+
this.hostElement?.focus?.();
|
|
120
|
+
this.hostElement?.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
|
121
|
+
}
|
|
122
|
+
setError(error, errorMsg) {
|
|
123
|
+
this.errorMsg = errorMsg;
|
|
124
|
+
if (this.hostElement) {
|
|
125
|
+
this.hostElement.error = error;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
render() {
|
|
129
|
+
return (h(Host, { key: '16609b3313318dfc4db917a32bd44e6e2cb2f4e7', class: {
|
|
130
|
+
'sd-field': true,
|
|
131
|
+
'sd-field--has-label': !!this.label,
|
|
132
|
+
'sd-field--has-label-inside': !!this.label && this.insideLabel,
|
|
133
|
+
[this.fieldStatus]: !!this.fieldStatus,
|
|
134
|
+
} }, h("div", { key: '5c3056123cb54f8d6c26406ae76b13219d289f9c', class: "sd-field__wrapper" }, this.renderLabel(this.label), h("div", { key: '786bcd6ec3651bb226013474fae112c592ec6890', class: {
|
|
135
|
+
'sd-field__control': true,
|
|
136
|
+
'sd-field__control--label-inside ': !!this.label && this.insideLabel,
|
|
137
|
+
} }, h("slot", { key: '60ae2f97cc7225930df9d17958fe78d3dd8e01e3' }))), this.errorMsg && h("div", { key: '4984f7e64c6c6611063c46b5c7ea21a0ae0b5343', class: "sd-field__error-message" }, this.errorMsg)));
|
|
138
|
+
}
|
|
139
|
+
renderLabel(label) {
|
|
140
|
+
if (!label)
|
|
141
|
+
return null;
|
|
142
|
+
return (h("label", { class: { 'sd-field__label': true, 'sd-field__label-inside': this.insideLabel } }, this.useLabelRequired && (h("sd-icon", { name: "star", size: "10", color: "brilliantblue_75", class: "sd-field__label__required-icon" })), h("div", { class: "sd-field__label__text" }, label), this.labelTooltip && (h("sd-tooltip", { class: "sd-field__label__tooltip", ...this.labelTooltipProps }, h("div", { slot: "content" }, this.labelTooltip)))));
|
|
143
|
+
}
|
|
144
|
+
static get style() { return sdFieldCss(); }
|
|
145
|
+
}, [772, "sd-field", {
|
|
146
|
+
"name": [1],
|
|
147
|
+
"rules": [16],
|
|
148
|
+
"error": [1028],
|
|
149
|
+
"disabled": [1028],
|
|
150
|
+
"hovered": [1028],
|
|
151
|
+
"focused": [1028],
|
|
152
|
+
"status": [1],
|
|
153
|
+
"label": [1],
|
|
154
|
+
"insideLabel": [4, "inside-label"],
|
|
155
|
+
"useLabelRequired": [4, "use-label-required"],
|
|
156
|
+
"labelTooltip": [1, "label-tooltip"],
|
|
157
|
+
"labelTooltipProps": [16],
|
|
158
|
+
"errorMsg": [32],
|
|
159
|
+
"sdValidate": [64],
|
|
160
|
+
"sdReset": [64],
|
|
161
|
+
"sdResetValidation": [64],
|
|
162
|
+
"sdFocus": [64]
|
|
163
|
+
}]);
|
|
164
|
+
function defineCustomElement() {
|
|
165
|
+
if (typeof customElements === "undefined") {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const components = ["sd-field", "sd-button", "sd-floating-portal", "sd-icon", "sd-tooltip"];
|
|
169
|
+
components.forEach(tagName => { switch (tagName) {
|
|
170
|
+
case "sd-field":
|
|
171
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
172
|
+
customElements.define(transformTag(tagName), SdField);
|
|
173
|
+
}
|
|
174
|
+
break;
|
|
175
|
+
case "sd-button":
|
|
176
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
177
|
+
defineCustomElement$4();
|
|
178
|
+
}
|
|
179
|
+
break;
|
|
180
|
+
case "sd-floating-portal":
|
|
181
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
182
|
+
defineCustomElement$3();
|
|
183
|
+
}
|
|
184
|
+
break;
|
|
185
|
+
case "sd-icon":
|
|
186
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
187
|
+
defineCustomElement$2();
|
|
188
|
+
}
|
|
189
|
+
break;
|
|
190
|
+
case "sd-tooltip":
|
|
191
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
192
|
+
defineCustomElement$1();
|
|
193
|
+
}
|
|
194
|
+
break;
|
|
195
|
+
} });
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
export { SdField as S, defineCustomElement as d };
|
|
199
|
+
//# sourceMappingURL=p-CpRkV7pg.js.map
|
|
200
|
+
|
|
201
|
+
//# sourceMappingURL=p-CpRkV7pg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-CpRkV7pg.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/sd-field/sd-field.scss?tag=sd-field","src/components/sd-field/sd-field.tsx"],"sourcesContent":["@import 'variables';\n\n.sd-field {\n display: inline-flex;\n flex-flow: column nowrap;\n height: fit-content;\n width: fit-content;\n\n *:focus,\n *:focus-visible,\n *:focus-within {\n outline: none !important;\n }\n\n &:not(.sd-field--disabled) {\n &:hover {\n .sd-field__control {\n border: 1px solid $brilliantblue_75 !important;\n box-shadow: 0px 0px 4px 0px #0071ff66;\n }\n }\n }\n\n &.sd-field--disabled {\n cursor: not-allowed;\n\n .sd-field__wrapper {\n cursor: not-allowed !important;\n .sd-field__label-inside {\n border-color: $grey_45;\n color: $grey_65;\n cursor: not-allowed !important;\n }\n\n .sd-field__control {\n background-color: $grey_20;\n border-color: $grey_45;\n color: $grey_65;\n cursor: not-allowed !important;\n }\n }\n }\n\n &--has-label {\n .sd-field__wrapper {\n .sd-field__label {\n display: flex;\n align-items: center;\n margin-right: 12px;\n\n &__required-icon {\n margin-right: 4px;\n }\n\n &__text {\n font-size: 12px;\n line-height: 20px;\n // font-weight: 500;\n color: $grey_90;\n white-space: nowrap;\n }\n\n &__tooltip {\n margin-left: 2px;\n }\n }\n }\n }\n\n &--has-label-inside {\n .sd-field__wrapper {\n .sd-field__label {\n margin-right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 3px 12px;\n border: 1px solid $grey_45;\n border-right: none;\n border-radius: 4px 0 0 4px;\n border-color: $grey_55;\n background-color: $grey_10;\n }\n }\n }\n\n &__wrapper {\n width: var(--field-width, 200px);\n height: 28px;\n display: flex;\n align-items: center;\n flex-flow: row nowrap;\n position: relative;\n color: $grey_90;\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n\n .sd-field__control {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex: 1;\n border: 1px solid $grey_55;\n border-radius: 4px;\n background: white;\n\n &--label-inside {\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n }\n }\n }\n\n &--error:not(:hover) {\n .sd-field__wrapper .sd-field__control {\n border: 1px solid $red_70 !important;\n }\n }\n\n &.sd-field--focus,\n &.sd-field--hover {\n .sd-field__wrapper .sd-field__control {\n border: 1px solid $brilliantblue_75 !important;\n box-shadow: 0px 0px 4px 0px #0071ff66;\n }\n }\n\n .sd-field__error-message {\n color: $red_70;\n font-size: 12px;\n line-height: 20px;\n margin-top: 4px;\n }\n}\n","import { h, Component, Host, Element, Prop, State, Method } from '@stencil/core';\nimport { ValidatableField } from '../sd-form/sd-form';\nimport { Rule } from '../../types/form';\nimport { SdTooltipProps } from '../sd-tooltip/sd-tooltip';\n\nconst FORM_PARENT_TAGS = [\n 'sd-select',\n 'sd-select-multiple',\n 'sd-select-multiple-group',\n 'sd-input',\n 'sd-textarea',\n];\n\ninterface FormHostElement extends HTMLElement {\n value: any;\n error?: boolean;\n errorMsg?: string;\n}\n\n@Component({ tag: 'sd-field', styleUrl: 'sd-field.scss' })\nexport class SdField implements ValidatableField {\n @Element() el!: HTMLElement;\n\n @Prop() name: string = '';\n @Prop() rules?: Rule[] = [];\n\n @Prop({ mutable: true }) error?: boolean = false;\n @Prop({ mutable: true }) disabled?: boolean = false;\n @Prop({ mutable: true }) hovered?: boolean = false;\n @Prop({ mutable: true }) focused?: boolean = false;\n @Prop() status?: 'default' | 'pass' | 'error';\n\n // props - label\n @Prop() label: string = '';\n @Prop() insideLabel: boolean = false;\n @Prop() useLabelRequired: boolean = false;\n @Prop() labelTooltip: string = '';\n @Prop() labelTooltipProps: SdTooltipProps | null = null;\n\n @State() errorMsg: string = '';\n\n private hostElement: FormHostElement | null = null;\n\n get value() {\n return this.hostElement?.value ?? null;\n }\n\n get fieldStatus() {\n let status = '';\n\n if (!!this.disabled) {\n status = 'disabled';\n return `sd-field--${status}`;\n }\n\n if (!!this.focused) {\n status = 'focus';\n return `sd-field--${status}`;\n }\n\n if (!!this.hovered) status = 'hover';\n if (!!this.status) status = this.status;\n if (!!this.error) status = 'error';\n return status ? `sd-field--${status}` : '';\n }\n\n componentDidLoad() {\n this.hostElement = this.findHostElement();\n this.registerToForm();\n }\n\n disconnectedCallback() {\n this.unregisterFromForm();\n }\n\n private findHostElement(): FormHostElement | null {\n for (const tag of FORM_PARENT_TAGS) {\n const parent = this.el.closest<FormHostElement>(tag);\n if (parent && 'value' in parent) {\n return parent;\n }\n }\n return null;\n }\n\n private registerToForm() {\n if (!this.rules || this.rules.length === 0) {\n console.warn('[sd-form-field] rules prop is required for sd-form integration');\n return;\n }\n\n const formEl = this.el.closest<HTMLSdFormElement>('sd-form');\n if (!formEl) return;\n\n formEl.componentOnReady().then(form => {\n form.sdRegisterField(this);\n });\n }\n\n private unregisterFromForm() {\n if (!this.name) return;\n\n const formEl = this.el.closest<HTMLSdFormElement>('sd-form');\n formEl?.componentOnReady().then(form => {\n form.sdUnregisterField(this.name);\n });\n }\n\n @Method()\n async sdValidate(): Promise<boolean> {\n if (!this.rules || this.rules.length === 0) return true;\n\n for (const rule of this.rules) {\n const result = rule(this.value ?? '');\n if (result !== true) {\n this.setError(true, result);\n return false;\n }\n }\n this.setError(false, '');\n return true;\n }\n\n @Method()\n async sdReset() {\n if (this.hostElement) {\n this.hostElement.value = null;\n }\n this.setError(false, '');\n }\n\n @Method()\n async sdResetValidation() {\n this.setError(false, '');\n }\n\n @Method()\n async sdFocus() {\n this.hostElement?.focus?.();\n this.hostElement?.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n\n private setError(error: boolean, errorMsg: string) {\n this.errorMsg = errorMsg;\n\n if (this.hostElement) {\n this.hostElement.error = error;\n }\n }\n\n render() {\n return (\n <Host\n class={{\n 'sd-field': true,\n 'sd-field--has-label': !!this.label,\n 'sd-field--has-label-inside': !!this.label && this.insideLabel,\n [this.fieldStatus]: !!this.fieldStatus,\n }}\n >\n <div class=\"sd-field__wrapper\">\n {this.renderLabel(this.label)}\n <div\n class={{\n 'sd-field__control': true,\n 'sd-field__control--label-inside ': !!this.label && this.insideLabel,\n }}\n >\n <slot></slot>\n </div>\n </div>\n {this.errorMsg && <div class=\"sd-field__error-message\">{this.errorMsg}</div>}\n </Host>\n );\n }\n\n private renderLabel(label?: string) {\n if (!label) return null;\n\n return (\n <label class={{ 'sd-field__label': true, 'sd-field__label-inside': this.insideLabel }}>\n {this.useLabelRequired && (\n <sd-icon\n name=\"star\"\n size=\"10\"\n color=\"brilliantblue_75\"\n class=\"sd-field__label__required-icon\"\n ></sd-icon>\n )}\n <div class=\"sd-field__label__text\">{label}</div>\n {this.labelTooltip && (\n <sd-tooltip class=\"sd-field__label__tooltip\" {...this.labelTooltipProps}>\n <div slot=\"content\">{this.labelTooltip}</div>\n </sd-tooltip>\n )}\n </label>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { p as proxyCustomElement, d as createEvent, h, t as transformTag } from './p-YLoygqPr.js';
|
|
2
|
+
import { B as BaseDropdownEvent, S as SelectKeyboardNavigation } from './p-Dt-KAeBx.js';
|
|
3
|
+
import { d as defineCustomElement$b } from './p-CdGD6AqM.js';
|
|
4
|
+
import { d as defineCustomElement$a } from './p-UZEmuyIR.js';
|
|
5
|
+
import { d as defineCustomElement$9 } from './p-CpRkV7pg.js';
|
|
6
|
+
import { d as defineCustomElement$8 } from './p-CVMprLsE.js';
|
|
7
|
+
import { d as defineCustomElement$7 } from './p-DnQF6htq.js';
|
|
8
|
+
import { d as defineCustomElement$6 } from './p-D54IEoI6.js';
|
|
9
|
+
import { d as defineCustomElement$5 } from './p-DbebUQwg.js';
|
|
10
|
+
import { d as defineCustomElement$4 } from './p-s4Mg_xSz.js';
|
|
11
|
+
import { d as defineCustomElement$3 } from './p-JF61vPAh.js';
|
|
12
|
+
import { d as defineCustomElement$2 } from './p-RhBqdixM.js';
|
|
13
|
+
import { d as defineCustomElement$1 } from './p-7xekTQRB.js';
|
|
14
|
+
|
|
15
|
+
const sdSelectCss = () => `sd-select{display:inline-flex;flex-flow:column nowrap;width:fit-content;height:fit-content}sd-select *:focus,sd-select *:focus-visible,sd-select *:focus-within{outline:none !important}sd-select .sd-select{width:100%}sd-select .sd-select .sd-select__trigger{padding:4px 28px 4px 12px;display:flex;width:100%;height:100%;align-items:center}sd-select .sd-select .sd-select__trigger .sd-select__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400;text-align:left}sd-select .sd-select .sd-select__trigger .sd-select__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select .sd-select .sd-select__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease;margin-left:8px}sd-select .sd-select .sd-select__arrow--open{transform:rotate(180deg)}`;
|
|
16
|
+
|
|
17
|
+
const SdSelect = /*@__PURE__*/ proxyCustomElement(class SdSelect extends BaseDropdownEvent {
|
|
18
|
+
constructor(registerHost) {
|
|
19
|
+
super(false);
|
|
20
|
+
if (registerHost !== false) {
|
|
21
|
+
this.__registerHost();
|
|
22
|
+
}
|
|
23
|
+
this.update = createEvent(this, "sdUpdate");
|
|
24
|
+
this.dropDownShow = createEvent(this, "sdDropDownShow");
|
|
25
|
+
}
|
|
26
|
+
get el() { return this; }
|
|
27
|
+
// props
|
|
28
|
+
value = null;
|
|
29
|
+
options = [];
|
|
30
|
+
placeholder = '선택';
|
|
31
|
+
optionPlaceholder = '옵션이 없습니다.';
|
|
32
|
+
width = '200px';
|
|
33
|
+
dropdownHeight = '260px';
|
|
34
|
+
autoFocus = false;
|
|
35
|
+
disabled = false;
|
|
36
|
+
clearable = false;
|
|
37
|
+
searchable = false;
|
|
38
|
+
// props - label
|
|
39
|
+
label = '';
|
|
40
|
+
insideLabel = false;
|
|
41
|
+
useLabelRequired = false;
|
|
42
|
+
labelTooltip = '';
|
|
43
|
+
labelTooltipProps = null;
|
|
44
|
+
// props - form
|
|
45
|
+
name;
|
|
46
|
+
rules = [];
|
|
47
|
+
error = false;
|
|
48
|
+
// props - custom slots
|
|
49
|
+
optionRenderer;
|
|
50
|
+
// states
|
|
51
|
+
isOpen = false;
|
|
52
|
+
itemIndex = -1;
|
|
53
|
+
isScrolled = false;
|
|
54
|
+
// events
|
|
55
|
+
update;
|
|
56
|
+
dropDownShow;
|
|
57
|
+
selectRef;
|
|
58
|
+
triggerRef;
|
|
59
|
+
formField;
|
|
60
|
+
filteredOptions = this.options;
|
|
61
|
+
dropDownWidth = this.width;
|
|
62
|
+
async sdOpen() {
|
|
63
|
+
this.isOpen = true;
|
|
64
|
+
}
|
|
65
|
+
async sdValidate() {
|
|
66
|
+
this.formField?.sdValidate();
|
|
67
|
+
}
|
|
68
|
+
async sdReset() {
|
|
69
|
+
this.formField?.sdReset();
|
|
70
|
+
}
|
|
71
|
+
async sdResetValidate() {
|
|
72
|
+
this.formField?.sdResetValidation();
|
|
73
|
+
}
|
|
74
|
+
async sdFocus() {
|
|
75
|
+
this.formField?.sdFocus();
|
|
76
|
+
}
|
|
77
|
+
async valueChanged() {
|
|
78
|
+
const selectedOption = this.getSelectedOption();
|
|
79
|
+
this.update?.emit({ value: selectedOption?.value || null, option: selectedOption || null });
|
|
80
|
+
}
|
|
81
|
+
async isOpenChanged() {
|
|
82
|
+
// Base class의 이벤트 관리 호출 - 다른 select와의 이벤트 충돌 방지
|
|
83
|
+
this.onDropdownToggle(this.isOpen);
|
|
84
|
+
this.dropDownShow?.emit({ isOpen: this.isOpen });
|
|
85
|
+
if (this.isOpen === false) {
|
|
86
|
+
await this.formField?.sdValidate();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
componentWillLoad() {
|
|
90
|
+
this.initializeEvent(); // global dropdown Manager에 등록 + 이벤트 핸들러 초기화
|
|
91
|
+
}
|
|
92
|
+
componentDidLoad() {
|
|
93
|
+
if (this.autoFocus) {
|
|
94
|
+
this.selectRef?.focus();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// render 이후 label을 제외한 trigger의 너비를 기준으로 dropdown 너비 설정
|
|
98
|
+
componentDidRender() {
|
|
99
|
+
const trigger = this.triggerRef;
|
|
100
|
+
const rect = trigger?.getBoundingClientRect();
|
|
101
|
+
this.dropDownWidth = rect?.width ? `${rect.width}px` : this.width;
|
|
102
|
+
}
|
|
103
|
+
disconnectedCallback() {
|
|
104
|
+
this.cleanupEvent(); // global dropdown Manager에서 제거 + 이벤트 정리
|
|
105
|
+
}
|
|
106
|
+
handleDocumentClick(event) {
|
|
107
|
+
if (!this.selectRef?.contains(event.target)) {
|
|
108
|
+
this.isOpen = false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
handleDocumentKeydown(keyboardEvent) {
|
|
112
|
+
keyboardEvent.stopPropagation();
|
|
113
|
+
const targetKey = ['ArrowDown', 'ArrowUp', 'Enter', 'Escape'];
|
|
114
|
+
if (!targetKey.includes(keyboardEvent.key))
|
|
115
|
+
return;
|
|
116
|
+
keyboardEvent.preventDefault();
|
|
117
|
+
switch (keyboardEvent.key) {
|
|
118
|
+
case 'ArrowDown':
|
|
119
|
+
case 'ArrowUp':
|
|
120
|
+
const keyboardNavigation = new SelectKeyboardNavigation(this.searchable, this.filteredOptions);
|
|
121
|
+
const nextIndex = keyboardNavigation.getNextIndex(this.itemIndex, keyboardEvent.key);
|
|
122
|
+
this.itemIndex = nextIndex;
|
|
123
|
+
break;
|
|
124
|
+
case 'Enter':
|
|
125
|
+
const selectedOption = this.filteredOptions[this.itemIndex];
|
|
126
|
+
if (selectedOption && !selectedOption.disabled) {
|
|
127
|
+
this.value = selectedOption.value;
|
|
128
|
+
this.isOpen = false;
|
|
129
|
+
}
|
|
130
|
+
break;
|
|
131
|
+
case 'Escape':
|
|
132
|
+
this.isOpen = false;
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
getSelectedOption() {
|
|
137
|
+
return this.options.find(option => option.value === this.value);
|
|
138
|
+
}
|
|
139
|
+
closeDropdown() {
|
|
140
|
+
this.isOpen = false;
|
|
141
|
+
}
|
|
142
|
+
handleTriggerClick = (event) => {
|
|
143
|
+
event.stopPropagation();
|
|
144
|
+
if (!this.disabled) {
|
|
145
|
+
this.isOpen = !this.isOpen;
|
|
146
|
+
this.dropDownShow?.emit({ isOpen: this.isOpen });
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
handleOptionClick = (detail) => {
|
|
150
|
+
const { option, event } = detail;
|
|
151
|
+
event.stopPropagation();
|
|
152
|
+
if (!option.disabled) {
|
|
153
|
+
this.value = option.value;
|
|
154
|
+
this.isOpen = false;
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
render() {
|
|
158
|
+
return (h("sd-field", { key: '507736637b3b7acee4bfef07eac7175c5e196c86', label: this.label, name: this.name, rules: this.rules, error: this.error, disabled: this.disabled, useLabelRequired: this.useLabelRequired, insideLabel: this.insideLabel, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), style: { '--field-width': this.width || '200px' } }, h("div", { key: 'd905202201f5977d04a929af507653900af3ee75', class: {
|
|
159
|
+
'sd-select': true,
|
|
160
|
+
'sd-select--disabled': this.disabled,
|
|
161
|
+
'sd-select--error': !!this.error,
|
|
162
|
+
'sd-select--label': !!this.label,
|
|
163
|
+
}, ref: el => (this.selectRef = el) }, this.renderTrigger(), this.renderDropdown())));
|
|
164
|
+
}
|
|
165
|
+
renderTrigger() {
|
|
166
|
+
const selectedOption = this.getSelectedOption();
|
|
167
|
+
return (h("div", { class: "sd-select__trigger", tabindex: this.disabled ? -1 : 0, onClick: this.handleTriggerClick, ref: el => (this.triggerRef = el) }, h("span", { class: "sd-select__value" }, selectedOption ? selectedOption.label : this.placeholder), this.clearable && selectedOption && !this.disabled && (h("sd-icon", { key: "clear-icon", name: "close", size: 10, color: "#888", class: "sd-select__clear", onClick: async (event) => {
|
|
168
|
+
event.stopPropagation();
|
|
169
|
+
this.value = null;
|
|
170
|
+
await this.formField?.sdValidate();
|
|
171
|
+
} })), h("sd-icon", { key: "arrow-icon", name: "arrowDown", color: "#888", class: { 'sd-select__arrow': true, 'sd-select__arrow--open': this.isOpen } })));
|
|
172
|
+
}
|
|
173
|
+
renderDropdown() {
|
|
174
|
+
if (this.isOpen === false)
|
|
175
|
+
return null;
|
|
176
|
+
const parentRef = (this.selectRef?.querySelector('.sd-select__trigger') ||
|
|
177
|
+
this.selectRef);
|
|
178
|
+
return (h("sd-portal", { open: this.isOpen, parentRef: parentRef, onSdClose: this.closeDropdown }, h("sd-select-dropdown", { value: this.value, options: this.options, itemIndex: this.itemIndex, width: this.dropDownWidth, dropdownHeight: this.dropdownHeight, searchable: this.searchable, optionPlaceholder: this.optionPlaceholder, onSdOptionClick: ({ detail }) => this.handleOptionClick(detail), onSdOptionFiltered: ({ detail }) => (this.filteredOptions = detail) })));
|
|
179
|
+
}
|
|
180
|
+
static get watchers() { return {
|
|
181
|
+
"value": ["valueChanged"],
|
|
182
|
+
"isOpen": ["isOpenChanged"]
|
|
183
|
+
}; }
|
|
184
|
+
static get style() { return sdSelectCss(); }
|
|
185
|
+
}, [768, "sd-select", {
|
|
186
|
+
"value": [1032],
|
|
187
|
+
"options": [1040],
|
|
188
|
+
"placeholder": [1],
|
|
189
|
+
"optionPlaceholder": [1, "option-placeholder"],
|
|
190
|
+
"width": [1],
|
|
191
|
+
"dropdownHeight": [1, "dropdown-height"],
|
|
192
|
+
"autoFocus": [4, "auto-focus"],
|
|
193
|
+
"disabled": [4],
|
|
194
|
+
"clearable": [4],
|
|
195
|
+
"searchable": [4],
|
|
196
|
+
"label": [1],
|
|
197
|
+
"insideLabel": [4, "inside-label"],
|
|
198
|
+
"useLabelRequired": [4, "use-label-required"],
|
|
199
|
+
"labelTooltip": [1, "label-tooltip"],
|
|
200
|
+
"labelTooltipProps": [16],
|
|
201
|
+
"name": [1],
|
|
202
|
+
"rules": [16],
|
|
203
|
+
"error": [4],
|
|
204
|
+
"optionRenderer": [16],
|
|
205
|
+
"isOpen": [32],
|
|
206
|
+
"itemIndex": [32],
|
|
207
|
+
"isScrolled": [32],
|
|
208
|
+
"sdOpen": [64],
|
|
209
|
+
"sdValidate": [64],
|
|
210
|
+
"sdReset": [64],
|
|
211
|
+
"sdResetValidate": [64],
|
|
212
|
+
"sdFocus": [64]
|
|
213
|
+
}, undefined, {
|
|
214
|
+
"value": ["valueChanged"],
|
|
215
|
+
"isOpen": ["isOpenChanged"]
|
|
216
|
+
}]);
|
|
217
|
+
function defineCustomElement() {
|
|
218
|
+
if (typeof customElements === "undefined") {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
const components = ["sd-select", "sd-button", "sd-checkbox", "sd-field", "sd-floating-portal", "sd-icon", "sd-input", "sd-portal", "sd-select-dropdown", "sd-select-option", "sd-select-search-input", "sd-tooltip"];
|
|
222
|
+
components.forEach(tagName => { switch (tagName) {
|
|
223
|
+
case "sd-select":
|
|
224
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
225
|
+
customElements.define(transformTag(tagName), SdSelect);
|
|
226
|
+
}
|
|
227
|
+
break;
|
|
228
|
+
case "sd-button":
|
|
229
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
230
|
+
defineCustomElement$b();
|
|
231
|
+
}
|
|
232
|
+
break;
|
|
233
|
+
case "sd-checkbox":
|
|
234
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
235
|
+
defineCustomElement$a();
|
|
236
|
+
}
|
|
237
|
+
break;
|
|
238
|
+
case "sd-field":
|
|
239
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
240
|
+
defineCustomElement$9();
|
|
241
|
+
}
|
|
242
|
+
break;
|
|
243
|
+
case "sd-floating-portal":
|
|
244
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
245
|
+
defineCustomElement$8();
|
|
246
|
+
}
|
|
247
|
+
break;
|
|
248
|
+
case "sd-icon":
|
|
249
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
250
|
+
defineCustomElement$7();
|
|
251
|
+
}
|
|
252
|
+
break;
|
|
253
|
+
case "sd-input":
|
|
254
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
255
|
+
defineCustomElement$6();
|
|
256
|
+
}
|
|
257
|
+
break;
|
|
258
|
+
case "sd-portal":
|
|
259
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
260
|
+
defineCustomElement$5();
|
|
261
|
+
}
|
|
262
|
+
break;
|
|
263
|
+
case "sd-select-dropdown":
|
|
264
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
265
|
+
defineCustomElement$4();
|
|
266
|
+
}
|
|
267
|
+
break;
|
|
268
|
+
case "sd-select-option":
|
|
269
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
270
|
+
defineCustomElement$3();
|
|
271
|
+
}
|
|
272
|
+
break;
|
|
273
|
+
case "sd-select-search-input":
|
|
274
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
275
|
+
defineCustomElement$2();
|
|
276
|
+
}
|
|
277
|
+
break;
|
|
278
|
+
case "sd-tooltip":
|
|
279
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
280
|
+
defineCustomElement$1();
|
|
281
|
+
}
|
|
282
|
+
break;
|
|
283
|
+
} });
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
export { SdSelect as S, defineCustomElement as d };
|
|
287
|
+
//# sourceMappingURL=p-D2movWkD.js.map
|
|
288
|
+
|
|
289
|
+
//# sourceMappingURL=p-D2movWkD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-D2movWkD.js","mappings":"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","names":["__stencil_proxyCustomElement"],"sources":["src/components/sd-select/sd-select.scss?tag=sd-select","src/components/sd-select/sd-select.tsx"],"sourcesContent":["@import 'variables';\n@import 'extend';\n\nsd-select {\n display: inline-flex;\n flex-flow: column nowrap;\n width: fit-content;\n height: fit-content;\n\n *:focus,\n *:focus-visible,\n *:focus-within {\n outline: none !important;\n }\n\n .sd-select {\n width: 100%;\n\n .sd-select__trigger {\n padding: 4px 28px 4px 12px;\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n\n .sd-select__value {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 20px;\n font-size: 12px;\n font-weight: 400;\n text-align: left;\n }\n\n .sd-select__clear {\n margin: 0 4px;\n width: 8px;\n height: 8px;\n background-color: transparent;\n outline: none;\n border: none;\n }\n }\n\n .sd-select__arrow {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 12px;\n height: 12px;\n color: $grey_65;\n transition: transform 0.3s ease;\n margin-left: 8px;\n\n &--open {\n transform: rotate(180deg);\n }\n }\n }\n}\n","import {\n Component,\n Event,\n EventEmitter,\n Prop,\n State,\n h,\n Element,\n Watch,\n Method,\n} from '@stencil/core';\nimport { BaseDropdownEvent } from '../../utils/base-dropdown-event';\nimport { SelectKeyboardNavigation } from '../../utils/select-keyboard-navigation';\nimport { SdTooltipProps } from '../sd-tooltip/sd-tooltip';\nimport { Rule } from '../../components';\n\nexport interface SelectOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport type SelectGroupOptionType = 'group' | 'subgroup' | 'item' | 'all';\n\nexport interface SelectOptionGroup extends SelectOption {\n type: SelectGroupOptionType;\n parent?: string;\n}\n\nexport interface SelectStyleProps {\n containerStyle?: { [key: string]: string };\n triggerStyle?: { [key: string]: string };\n dropdownStyle?: { [key: string]: string };\n optionStyle?: { [key: string]: string };\n labelStyle?: { [key: string]: string };\n}\n\nexport interface SelectEvents {\n sdUpdate: {\n value: string | number | null;\n option: SelectOption | null;\n };\n dropDownShow: { isOpen: boolean };\n}\n\nexport interface SelectMultipleEvents extends Pick<SelectEvents, 'dropDownShow' | 'dropDownShow'> {\n sdUpdate: SelectOption[] | null;\n}\n\n@Component({\n tag: 'sd-select',\n styleUrl: 'sd-select.scss',\n})\nexport class SdSelect extends BaseDropdownEvent {\n @Element() el!: HTMLElement;\n\n // props\n @Prop({ mutable: true }) value: string | number | null = null;\n @Prop({ mutable: true }) options: SelectOption[] = [];\n @Prop() placeholder: string = '선택';\n @Prop() optionPlaceholder: string = '옵션이 없습니다.';\n @Prop() width: string = '200px';\n @Prop() dropdownHeight: string = '260px';\n @Prop() autoFocus: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() clearable: boolean = false;\n @Prop() searchable: boolean = false;\n\n // props - label\n @Prop() label: string = '';\n @Prop() insideLabel: boolean = false;\n @Prop() useLabelRequired: boolean = false;\n @Prop() labelTooltip: string = '';\n @Prop() labelTooltipProps: SdTooltipProps | null = null;\n\n // props - form\n @Prop() name?: string;\n @Prop() rules?: Rule[] = [];\n @Prop() error?: boolean = false;\n\n // props - custom slots\n @Prop() optionRenderer?: (option: SelectOption, index: number, isSelected: boolean) => any;\n\n // states\n @State() isOpen: boolean = false;\n @State() itemIndex: number = -1;\n @State() isScrolled: boolean = false;\n\n // events\n @Event({ eventName: 'sdUpdate' }) update?: EventEmitter<SelectEvents['sdUpdate']>;\n @Event({ eventName: 'sdDropDownShow' }) dropDownShow?: EventEmitter<SelectEvents['dropDownShow']>;\n\n private selectRef?: HTMLElement;\n private triggerRef?: HTMLElement;\n private formField?: HTMLSdFieldElement;\n private filteredOptions = this.options;\n private dropDownWidth: string = this.width;\n\n @Method()\n async sdOpen() {\n this.isOpen = true;\n }\n\n @Method()\n async sdValidate() {\n this.formField?.sdValidate();\n }\n\n @Method()\n async sdReset() {\n this.formField?.sdReset();\n }\n\n @Method()\n async sdResetValidate() {\n this.formField?.sdResetValidation();\n }\n\n @Method()\n async sdFocus() {\n this.formField?.sdFocus();\n }\n\n @Watch('value')\n async valueChanged() {\n const selectedOption = this.getSelectedOption();\n this.update?.emit({ value: selectedOption?.value || null, option: selectedOption || null });\n }\n\n @Watch('isOpen')\n async isOpenChanged() {\n // Base class의 이벤트 관리 호출 - 다른 select와의 이벤트 충돌 방지\n this.onDropdownToggle(this.isOpen);\n this.dropDownShow?.emit({ isOpen: this.isOpen });\n\n if (this.isOpen === false) {\n await this.formField?.sdValidate();\n }\n }\n\n componentWillLoad() {\n this.initializeEvent(); // global dropdown Manager에 등록 + 이벤트 핸들러 초기화\n }\n\n componentDidLoad() {\n if (this.autoFocus) {\n this.selectRef?.focus();\n }\n }\n\n // render 이후 label을 제외한 trigger의 너비를 기준으로 dropdown 너비 설정\n componentDidRender() {\n const trigger = this.triggerRef;\n const rect = trigger?.getBoundingClientRect();\n this.dropDownWidth = rect?.width ? `${rect.width}px` : this.width;\n }\n\n disconnectedCallback() {\n this.cleanupEvent(); // global dropdown Manager에서 제거 + 이벤트 정리\n }\n\n protected handleDocumentClick(event: Event): void {\n if (!this.selectRef?.contains(event.target as Node)) {\n this.isOpen = false;\n }\n }\n\n protected handleDocumentKeydown(keyboardEvent: KeyboardEvent): void {\n keyboardEvent.stopPropagation();\n const targetKey = ['ArrowDown', 'ArrowUp', 'Enter', 'Escape'];\n if (!targetKey.includes(keyboardEvent.key)) return;\n\n keyboardEvent.preventDefault();\n switch (keyboardEvent.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n const keyboardNavigation = new SelectKeyboardNavigation(this.searchable, this.filteredOptions);\n const nextIndex = keyboardNavigation.getNextIndex(this.itemIndex, keyboardEvent.key);\n this.itemIndex = nextIndex;\n break;\n case 'Enter':\n const selectedOption = this.filteredOptions[this.itemIndex];\n if (selectedOption && !selectedOption.disabled) {\n this.value = selectedOption.value;\n this.isOpen = false;\n }\n break;\n case 'Escape':\n this.isOpen = false;\n break;\n }\n }\n\n private getSelectedOption(): SelectOption | undefined {\n return this.options.find(option => option.value === this.value);\n }\n\n closeDropdown() {\n this.isOpen = false;\n }\n\n handleTriggerClick = (event: Event) => {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n this.dropDownShow?.emit({ isOpen: this.isOpen });\n }\n };\n\n handleOptionClick = (detail: { option: SelectOption; event: Event }) => {\n const { option, event } = detail;\n event.stopPropagation();\n\n if (!option.disabled) {\n this.value = option.value;\n this.isOpen = false;\n }\n };\n\n render() {\n return (\n <sd-field\n label={this.label}\n name={this.name}\n rules={this.rules}\n error={this.error}\n disabled={this.disabled}\n useLabelRequired={this.useLabelRequired}\n insideLabel={this.insideLabel}\n labelTooltip={this.labelTooltip}\n labelTooltipProps={this.labelTooltipProps}\n ref={el => (this.formField = el)}\n style={{ '--field-width': this.width || '200px' }}\n >\n <div\n class={{\n 'sd-select': true,\n 'sd-select--disabled': this.disabled,\n 'sd-select--error': !!this.error,\n 'sd-select--label': !!this.label,\n }}\n ref={el => (this.selectRef = el)}\n >\n {this.renderTrigger()}\n {this.renderDropdown()}\n </div>\n </sd-field>\n );\n }\n\n private renderTrigger() {\n const selectedOption = this.getSelectedOption();\n return (\n <div\n class=\"sd-select__trigger\"\n tabindex={this.disabled ? -1 : 0}\n onClick={this.handleTriggerClick}\n ref={el => (this.triggerRef = el)}\n >\n <span class=\"sd-select__value\">{selectedOption ? selectedOption.label : this.placeholder}</span>\n {this.clearable && selectedOption && !this.disabled && (\n <sd-icon\n key=\"clear-icon\"\n name=\"close\"\n size={10}\n color=\"#888\"\n class=\"sd-select__clear\"\n onClick={async event => {\n event.stopPropagation();\n this.value = null;\n await this.formField?.sdValidate();\n }}\n ></sd-icon>\n )}\n\n <sd-icon\n key=\"arrow-icon\"\n name=\"arrowDown\"\n color=\"#888\"\n class={{ 'sd-select__arrow': true, 'sd-select__arrow--open': this.isOpen }}\n ></sd-icon>\n </div>\n );\n }\n\n private renderDropdown() {\n if (this.isOpen === false) return null;\n\n const parentRef = (this.selectRef?.querySelector('.sd-select__trigger') ||\n this.selectRef) as HTMLElement;\n\n return (\n <sd-portal open={this.isOpen} parentRef={parentRef} onSdClose={this.closeDropdown}>\n <sd-select-dropdown\n value={this.value}\n options={this.options}\n itemIndex={this.itemIndex}\n width={this.dropDownWidth}\n dropdownHeight={this.dropdownHeight}\n searchable={this.searchable}\n optionPlaceholder={this.optionPlaceholder}\n onSdOptionClick={({ detail }) => this.handleOptionClick(detail)}\n onSdOptionFiltered={({ detail }) => (this.filteredOptions = detail)}\n ></sd-select-dropdown>\n </sd-portal>\n );\n }\n}\n"],"version":3}
|