@sellmate/design-system 1.27.0 → 1.28.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/{component.field-YIQ9TAhV.js → component.field-C7it8cZm.js} +2 -2
- package/dist/cjs/component.listBox-MHAv4Yy7.js +15 -0
- package/dist/cjs/{component.listItem-Bnh0r_CA.js → component.listItem-cAO_ppOz.js} +0 -7
- package/dist/cjs/{component.table-BrI3b--h.js → component.table-POXY492T.js} +5 -4
- package/dist/cjs/design-system.cjs.js +2 -2
- package/dist/cjs/{index-BTqAmfdr.js → index-D12oddge.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/sd-action-modal.cjs.entry.js +1 -1
- package/dist/cjs/sd-badge.cjs.entry.js +1 -1
- package/dist/cjs/sd-barcode-input.cjs.entry.js +1 -1
- package/dist/cjs/sd-button_2.cjs.entry.js +1 -1
- package/dist/cjs/sd-calendar_2.cjs.entry.js +3 -3
- package/dist/cjs/sd-callout.cjs.entry.js +1 -1
- package/dist/cjs/sd-card.cjs.entry.js +1 -1
- package/dist/cjs/sd-checkbox.cjs.entry.js +2 -3
- package/dist/cjs/sd-chip-input.cjs.entry.js +4 -3
- package/dist/cjs/sd-chip.cjs.entry.js +1 -1
- package/dist/cjs/sd-circle-progress.cjs.entry.js +5 -3
- package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +11 -4
- package/dist/cjs/sd-date-box.cjs.entry.js +1 -1
- package/dist/cjs/{sd-date-picker.config-CtXmufyj.js → sd-date-picker.config-De7ahWIs.js} +1 -1
- package/dist/cjs/sd-date-picker_7.cjs.entry.js +79 -30
- package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +1 -1
- package/dist/cjs/sd-divider.cjs.entry.js +1 -1
- package/dist/cjs/sd-dropdown-button.cjs.entry.js +3 -3
- package/dist/cjs/sd-field_3.cjs.entry.js +18 -12
- package/dist/cjs/sd-form.cjs.entry.js +1 -1
- package/dist/cjs/sd-ghost-button_3.cjs.entry.js +2 -3
- package/dist/cjs/sd-guide.cjs.entry.js +4 -9
- package/dist/cjs/sd-key-value-table.cjs.entry.js +2 -2
- package/dist/cjs/sd-linear-progress.cjs.entry.js +2 -2
- package/dist/cjs/sd-loading-container.cjs.entry.js +23 -3
- package/dist/cjs/sd-modal-container.cjs.entry.js +1 -1
- package/dist/cjs/sd-pagination_4.cjs.entry.js +20 -13
- package/dist/cjs/sd-popover.cjs.entry.js +2 -2
- package/dist/cjs/sd-popup.cjs.entry.js +2 -2
- package/dist/cjs/sd-radio-button.cjs.entry.js +1 -1
- package/dist/cjs/sd-radio.cjs.entry.js +2 -3
- package/dist/cjs/sd-select-list-item_2.cjs.entry.js +10 -9
- package/dist/cjs/{sd-select.config-C9Ohe1QA.js → sd-select.config-omyxekRa.js} +3 -2
- package/dist/cjs/sd-select_3.cjs.entry.js +12 -11
- package/dist/cjs/sd-switch.cjs.entry.js +2 -2
- package/dist/cjs/sd-table.cjs.entry.js +9 -9
- package/dist/cjs/{sd-table.config-DzC55sap.js → sd-table.config-DFy_S4bc.js} +5 -4
- package/dist/cjs/sd-tabs.cjs.entry.js +2 -2
- package/dist/cjs/sd-td.cjs.entry.js +2 -2
- package/dist/cjs/sd-text-link.cjs.entry.js +1 -1
- package/dist/cjs/sd-toast-container.cjs.entry.js +5 -5
- package/dist/cjs/sd-toast.cjs.entry.js +3 -3
- package/dist/cjs/sd-toggle.cjs.entry.js +2 -2
- package/dist/cjs/{tooltipArrow-CiM3irtY.js → tooltipArrow-Dda4ik0V.js} +1 -1
- package/dist/collection/components/sd-circle-progress/sd-circle-progress.css +12 -0
- package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +23 -1
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.config.js +2 -2
- package/dist/collection/components/sd-field/sd-field.css +5 -0
- package/dist/collection/components/sd-field/sd-field.js +30 -4
- package/dist/collection/components/sd-file-picker/sd-file-picker.config.js +9 -0
- package/dist/collection/components/sd-file-picker/sd-file-picker.css +20 -5
- package/dist/collection/components/sd-file-picker/sd-file-picker.js +82 -19
- package/dist/collection/components/sd-floating-portal/sd-floating-portal.css +1 -0
- package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +1 -1
- package/dist/collection/components/sd-guide/sd-guide.config.js +0 -1
- package/dist/collection/components/sd-guide/sd-guide.css +0 -3
- package/dist/collection/components/sd-guide/sd-guide.js +2 -3
- package/dist/collection/components/sd-input/sd-input.js +2 -2
- package/dist/collection/components/sd-linear-progress/sd-linear-progress.js +1 -1
- package/dist/collection/components/sd-loading-container/sd-loading-container.js +22 -2
- package/dist/collection/components/sd-loading-modal/sd-loading-modal.config.js +1 -1
- package/dist/collection/components/sd-loading-modal/sd-loading-modal.css +7 -0
- package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +22 -1
- package/dist/collection/components/sd-number-input/sd-number-input.js +4 -4
- package/dist/collection/components/sd-pagination/sd-pagination.config.js +1 -0
- package/dist/collection/components/sd-pagination/sd-pagination.css +1 -1
- package/dist/collection/components/sd-pagination/sd-pagination.js +4 -3
- package/dist/collection/components/sd-popup/sd-popup.js +1 -1
- package/dist/collection/components/sd-radio-group/sd-radio-group.css +2 -2
- package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +2 -2
- package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +4 -4
- package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +2 -2
- package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +2 -2
- package/dist/collection/components/sd-select/sd-select.js +4 -4
- package/dist/collection/components/sd-switch/sd-switch.js +1 -1
- package/dist/collection/components/sd-table/sd-table.config.js +4 -3
- package/dist/collection/components/sd-table/sd-table.js +6 -6
- package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +2 -2
- package/dist/collection/components/sd-table/sd-td/sd-td.js +1 -1
- package/dist/collection/components/sd-table/sd-thead/sd-thead.js +3 -3
- package/dist/collection/components/sd-table/sd-tr/sd-tr.js +3 -1
- package/dist/collection/components/sd-tabs/sd-tabs.js +1 -1
- package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
- package/dist/collection/components/sd-toast/sd-toast.js +2 -2
- package/dist/collection/components/sd-toast-container/sd-toast-container.js +4 -4
- package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
- package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
- package/dist/components/index.js +1 -1
- package/dist/components/{p-CJYl_ssf.js → p-1i6Q61TF.js} +1 -1
- package/dist/components/p-4S0_Ykmo.js +1 -0
- package/dist/components/p-5pkzwl5N.js +1 -0
- package/dist/components/p-B-pJW3nY.js +1 -0
- package/dist/components/{p-CygiHfH3.js → p-B2pYDEK7.js} +1 -1
- package/dist/components/{p-B0NEmngm.js → p-B3HYnTGx.js} +1 -1
- package/dist/components/{p-C-xm1A4R.js → p-B6ezDhRg.js} +1 -1
- package/dist/components/{p-CHvrvQsZ.js → p-BAVsc1Ml.js} +1 -1
- package/dist/components/{p-Dv7x-UAd.js → p-BCxePXvg.js} +1 -1
- package/dist/components/{p-DObwsGYE.js → p-BE6ymp9E.js} +1 -1
- package/dist/components/{p-DTEO2eLq.js → p-BKV1WAFb.js} +1 -1
- package/dist/components/{p-CDiIm8f6.js → p-BNHhtZUf.js} +1 -1
- package/dist/components/{p-DYHntcvV.js → p-BQ4Okfcm.js} +1 -1
- package/dist/components/p-BSxleKw8.js +1 -0
- package/dist/components/{p-B8qPlbcL.js → p-BUgGuigd.js} +1 -1
- package/dist/components/{p-BIFt5zIX.js → p-BWHQn4fD.js} +1 -1
- package/dist/components/{p-DJsKwChT.js → p-BZXgIBUG.js} +1 -1
- package/dist/components/p-Bgxca9o5.js +1 -0
- package/dist/components/{p-BJoG95Kt.js → p-BnI9HUOv.js} +1 -1
- package/dist/components/{p-CD0706HD.js → p-BuADVB78.js} +1 -1
- package/dist/components/{p-B7Fy6FMY.js → p-Bxb7TcZh.js} +1 -1
- package/dist/components/p-C0tnN4yn.js +1 -0
- package/dist/components/{p-DgK8EUjx.js → p-CHHlQceE.js} +1 -1
- package/dist/components/{p-P6SE7iQV.js → p-CMvHDxR5.js} +1 -1
- package/dist/components/{p-7NIombHr.js → p-CSh-DcM7.js} +1 -1
- package/dist/components/{p-D60P6BdJ.js → p-CTDPl65u.js} +1 -1
- package/dist/components/p-Cf62Nvrx.js +1 -0
- package/dist/components/{p-BKg1YV-H.js → p-ClD0nx1l.js} +1 -1
- package/dist/components/{p-DuMx_9he.js → p-DNbbdJIc.js} +1 -1
- package/dist/components/p-DbPS61bp.js +1 -0
- package/dist/components/{p-mbe7jmT5.js → p-DckXBMgo.js} +1 -1
- package/dist/components/{p-BOJJ_sQS.js → p-DjKOoQuF.js} +1 -1
- package/dist/components/p-DlJaYVWf.js +1 -0
- package/dist/components/p-DmAnTwUx.js +1 -0
- package/dist/components/{p-BArxAQLx.js → p-E8OA_psS.js} +1 -1
- package/dist/components/{p-BKBd44No.js → p-IDlLs_KA.js} +1 -1
- package/dist/components/p-PFLrdhQj.js +1 -0
- package/dist/components/{p-DHINsZ60.js → p-l9RiSWRc.js} +1 -1
- package/dist/components/{p-BeR_5Fwe.js → p-paSLRXAR.js} +1 -1
- package/dist/components/{p-BL9Vy4Fd.js → p-pwGA4sDj.js} +1 -1
- package/dist/components/{p-hd2Gc2Z3.js → p-vtuEYpc6.js} +1 -1
- package/dist/components/p-x9AWBHPy.js +1 -0
- package/dist/components/{p-V8hUcpnj.js → p-yxZBh03f.js} +1 -1
- package/dist/components/sd-action-modal.js +1 -1
- package/dist/components/sd-badge.js +1 -1
- package/dist/components/sd-barcode-input.js +1 -1
- package/dist/components/sd-button.js +1 -1
- package/dist/components/sd-calendar.js +1 -1
- package/dist/components/sd-callout.js +1 -1
- package/dist/components/sd-card.js +1 -1
- package/dist/components/sd-checkbox.js +1 -1
- package/dist/components/sd-chip-input.js +1 -1
- package/dist/components/sd-chip.js +1 -1
- package/dist/components/sd-circle-progress.js +1 -1
- package/dist/components/sd-confirm-modal.js +1 -1
- package/dist/components/sd-date-box.js +1 -1
- package/dist/components/sd-date-picker-trigger.js +1 -1
- package/dist/components/sd-date-picker.js +1 -1
- package/dist/components/sd-date-range-picker-calendar.js +1 -1
- package/dist/components/sd-date-range-picker.js +1 -1
- package/dist/components/sd-divider.js +1 -1
- package/dist/components/sd-dropdown-button.js +1 -1
- package/dist/components/sd-field.js +1 -1
- package/dist/components/sd-file-picker.js +1 -1
- package/dist/components/sd-floating-portal.js +1 -1
- package/dist/components/sd-form.js +1 -1
- package/dist/components/sd-ghost-button.js +1 -1
- package/dist/components/sd-guide.js +1 -1
- package/dist/components/sd-icon.js +1 -1
- package/dist/components/sd-input.js +1 -1
- package/dist/components/sd-key-value-table.js +1 -1
- package/dist/components/sd-linear-progress.js +1 -1
- package/dist/components/sd-loading-container.js +1 -1
- package/dist/components/sd-loading-modal.js +1 -1
- package/dist/components/sd-modal-container.js +1 -1
- package/dist/components/sd-number-input.js +1 -1
- package/dist/components/sd-pagination.js +1 -1
- package/dist/components/sd-popover.js +1 -1
- package/dist/components/sd-popup.js +1 -1
- package/dist/components/sd-portal.js +1 -1
- package/dist/components/sd-radio-button.js +1 -1
- package/dist/components/sd-radio-group.js +1 -1
- package/dist/components/sd-radio.js +1 -1
- package/dist/components/sd-select-list-item-search.js +1 -1
- package/dist/components/sd-select-list-item.js +1 -1
- package/dist/components/sd-select-listbox.js +1 -1
- package/dist/components/sd-select-trigger.js +1 -1
- package/dist/components/sd-select.js +1 -1
- package/dist/components/sd-switch.js +1 -1
- package/dist/components/sd-table.js +1 -1
- package/dist/components/sd-tabs.js +1 -1
- package/dist/components/sd-tag.js +1 -1
- package/dist/components/sd-tbody.js +1 -1
- package/dist/components/sd-td.js +1 -1
- package/dist/components/sd-text-link.js +1 -1
- package/dist/components/sd-textarea.js +1 -1
- package/dist/components/sd-thead.js +1 -1
- package/dist/components/sd-toast-container.js +1 -1
- package/dist/components/sd-toast.js +1 -1
- package/dist/components/sd-toggle.js +1 -1
- package/dist/components/sd-tooltip.js +1 -1
- package/dist/components/sd-tr.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-0048de73.entry.js +1 -0
- package/dist/design-system/{p-9991485c.entry.js → p-071e73e0.entry.js} +1 -1
- package/dist/design-system/{p-a2796cd6.entry.js → p-0b8c86c3.entry.js} +1 -1
- package/dist/design-system/{p-8e428210.entry.js → p-1230b51b.entry.js} +1 -1
- package/dist/design-system/p-20f69606.entry.js +1 -0
- package/dist/design-system/{p-e0fa6937.entry.js → p-2553bb1f.entry.js} +1 -1
- package/dist/design-system/{p-29b84d12.entry.js → p-26f2f4c2.entry.js} +1 -1
- package/dist/design-system/p-27197194.entry.js +1 -0
- package/dist/design-system/{p-d7e1a303.entry.js → p-287d8016.entry.js} +1 -1
- package/dist/design-system/p-3b3a46cd.entry.js +1 -0
- package/dist/design-system/{p-4f4b3dab.entry.js → p-4970f1ff.entry.js} +1 -1
- package/dist/design-system/p-4S0_Ykmo.js +1 -0
- package/dist/design-system/p-5687ed0c.entry.js +1 -0
- package/dist/design-system/{p-93c7c640.entry.js → p-58ec51db.entry.js} +1 -1
- package/dist/design-system/{p-030b0602.entry.js → p-5c8f4d9c.entry.js} +1 -1
- package/dist/design-system/p-5pkzwl5N.js +1 -0
- package/dist/design-system/{p-0dfdcfed.entry.js → p-61f5d5ea.entry.js} +1 -1
- package/dist/design-system/{p-df3faae8.entry.js → p-67f19734.entry.js} +1 -1
- package/dist/design-system/{p-c561595a.entry.js → p-70608fec.entry.js} +1 -1
- package/dist/design-system/{p-59ecccb2.entry.js → p-750a9112.entry.js} +1 -1
- package/dist/design-system/p-75726e20.entry.js +1 -0
- package/dist/design-system/{p-9adb306b.entry.js → p-7abf62f3.entry.js} +1 -1
- package/dist/design-system/p-7ae27a26.entry.js +1 -0
- package/dist/design-system/p-84d0181b.entry.js +1 -0
- package/dist/design-system/{p-e0d4193a.entry.js → p-91f7be74.entry.js} +1 -1
- package/dist/design-system/p-94d6b7b4.entry.js +1 -0
- package/dist/design-system/{p-c5bd0dc9.entry.js → p-9b21773a.entry.js} +1 -1
- package/dist/design-system/{p-ceda6367.entry.js → p-9c0bca09.entry.js} +1 -1
- package/dist/design-system/{p-C2-fl-Dc.js → p-CRWmn35N.js} +1 -1
- package/dist/design-system/p-Cf62Nvrx.js +1 -0
- package/dist/design-system/p-CuAh9n2o.js +1 -0
- package/dist/design-system/{p-d24F7UcR.js → p-D2S9Zafz.js} +1 -1
- package/dist/design-system/p-DDNBPrZh.js +2 -0
- package/dist/design-system/{p-BOJJ_sQS.js → p-DjKOoQuF.js} +1 -1
- package/dist/design-system/p-DlJaYVWf.js +1 -0
- package/dist/design-system/{p-f43dd680.entry.js → p-a12d7362.entry.js} +1 -1
- package/dist/design-system/{p-d6bb5c82.entry.js → p-a938ffee.entry.js} +1 -1
- package/dist/design-system/{p-089235d2.entry.js → p-b831eded.entry.js} +1 -1
- package/dist/design-system/{p-e2dabf85.entry.js → p-bab692c6.entry.js} +1 -1
- package/dist/design-system/{p-d87b75ff.entry.js → p-bbd24816.entry.js} +1 -1
- package/dist/design-system/{p-669dfbe4.entry.js → p-c5502585.entry.js} +1 -1
- package/dist/design-system/p-c81898a0.entry.js +1 -0
- package/dist/design-system/{p-b0b9995e.entry.js → p-d4e2f412.entry.js} +1 -1
- package/dist/design-system/{p-12eabcc9.entry.js → p-d6b3d78b.entry.js} +1 -1
- package/dist/design-system/{p-63804698.entry.js → p-d7e302af.entry.js} +1 -1
- package/dist/design-system/{p-3f347a3a.entry.js → p-dbfa3931.entry.js} +1 -1
- package/dist/design-system/p-f16985c9.entry.js +1 -0
- package/dist/design-system/{p-b6a139b7.entry.js → p-fa967329.entry.js} +1 -1
- package/dist/design-system/{p-024c1605.entry.js → p-fbeed0e4.entry.js} +1 -1
- package/dist/esm/{component.field-BOJJ_sQS.js → component.field-DjKOoQuF.js} +2 -2
- package/dist/esm/component.listBox-DlJaYVWf.js +13 -0
- package/dist/esm/{component.listItem-U8VaRj9c.js → component.listItem-4S0_Ykmo.js} +1 -7
- package/dist/esm/{component.table-D9tQwTWy.js → component.table-5pkzwl5N.js} +5 -4
- package/dist/esm/design-system.js +3 -3
- package/dist/esm/{index-BwIs2-fm.js → index-DDNBPrZh.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/sd-action-modal.entry.js +1 -1
- package/dist/esm/sd-badge.entry.js +1 -1
- package/dist/esm/sd-barcode-input.entry.js +1 -1
- package/dist/esm/sd-button_2.entry.js +1 -1
- package/dist/esm/sd-calendar_2.entry.js +3 -3
- package/dist/esm/sd-callout.entry.js +1 -1
- package/dist/esm/sd-card.entry.js +1 -1
- package/dist/esm/sd-checkbox.entry.js +2 -3
- package/dist/esm/sd-chip-input.entry.js +3 -2
- package/dist/esm/sd-chip.entry.js +1 -1
- package/dist/esm/sd-circle-progress.entry.js +5 -3
- package/dist/esm/sd-confirm-modal_2.entry.js +11 -4
- package/dist/esm/sd-date-box.entry.js +1 -1
- package/dist/esm/{sd-date-picker.config-6dvDZPGx.js → sd-date-picker.config-D-ks6qNf.js} +1 -1
- package/dist/esm/sd-date-picker_7.entry.js +79 -30
- package/dist/esm/sd-date-range-picker-calendar.entry.js +1 -1
- package/dist/esm/sd-divider.entry.js +1 -1
- package/dist/esm/sd-dropdown-button.entry.js +3 -3
- package/dist/esm/sd-field_3.entry.js +18 -12
- package/dist/esm/sd-form.entry.js +1 -1
- package/dist/esm/sd-ghost-button_3.entry.js +2 -3
- package/dist/esm/sd-guide.entry.js +4 -9
- package/dist/esm/sd-key-value-table.entry.js +2 -2
- package/dist/esm/sd-linear-progress.entry.js +2 -2
- package/dist/esm/sd-loading-container.entry.js +23 -3
- package/dist/esm/sd-modal-container.entry.js +1 -1
- package/dist/esm/sd-pagination_4.entry.js +20 -13
- package/dist/esm/sd-popover.entry.js +2 -2
- package/dist/esm/sd-popup.entry.js +2 -2
- package/dist/esm/sd-radio-button.entry.js +1 -1
- package/dist/esm/sd-radio.entry.js +2 -3
- package/dist/esm/sd-select-list-item_2.entry.js +10 -9
- package/dist/esm/{sd-select.config-D6ktrl7E.js → sd-select.config-CeHGlqOT.js} +2 -1
- package/dist/esm/sd-select_3.entry.js +12 -11
- package/dist/esm/sd-switch.entry.js +2 -2
- package/dist/esm/{sd-table.config-BbIWNUE2.js → sd-table.config-DmOBlnsM.js} +5 -4
- package/dist/esm/sd-table.entry.js +9 -9
- package/dist/esm/sd-tabs.entry.js +2 -2
- package/dist/esm/sd-td.entry.js +2 -2
- package/dist/esm/sd-text-link.entry.js +1 -1
- package/dist/esm/sd-toast-container.entry.js +5 -5
- package/dist/esm/sd-toast.entry.js +3 -3
- package/dist/esm/sd-toggle.entry.js +2 -2
- package/dist/esm/{tooltipArrow-CJxhdfqT.js → tooltipArrow-blL0aWPE.js} +1 -1
- package/dist/types/components/sd-circle-progress/sd-circle-progress.d.ts +2 -0
- package/dist/types/components/sd-field/sd-field.d.ts +5 -0
- package/dist/types/components/sd-file-picker/sd-file-picker.config.d.ts +6 -0
- package/dist/types/components/sd-file-picker/sd-file-picker.d.ts +11 -1
- package/dist/types/components/sd-guide/sd-guide.config.d.ts +0 -1
- package/dist/types/components/sd-loading-container/sd-loading-container.d.ts +6 -0
- package/dist/types/components/sd-loading-modal/sd-loading-modal.d.ts +4 -0
- package/dist/types/components/sd-pagination/sd-pagination.config.d.ts +1 -0
- package/dist/types/components/sd-table/sd-table.config.d.ts +1 -0
- package/dist/types/components.d.ts +40 -2
- package/hydrate/index.js +210 -115
- package/hydrate/index.mjs +210 -115
- package/package.json +1 -1
- package/dist/components/p-BXcizROm.js +0 -1
- package/dist/components/p-Bcp4vs0m.js +0 -1
- package/dist/components/p-BsJ3_flK.js +0 -1
- package/dist/components/p-BuubsWWz.js +0 -1
- package/dist/components/p-CbsRJTHs.js +0 -1
- package/dist/components/p-CrpzIzUy.js +0 -1
- package/dist/components/p-D9tQwTWy.js +0 -1
- package/dist/components/p-DvvGi4J_.js +0 -1
- package/dist/components/p-KSTsd4qM.js +0 -1
- package/dist/components/p-U8VaRj9c.js +0 -1
- package/dist/components/p-b9Q4MYgR.js +0 -1
- package/dist/design-system/p-0f3d40f2.entry.js +0 -1
- package/dist/design-system/p-2b2aaa32.entry.js +0 -1
- package/dist/design-system/p-36275d32.entry.js +0 -1
- package/dist/design-system/p-6324bbde.entry.js +0 -1
- package/dist/design-system/p-66cb4a7c.entry.js +0 -1
- package/dist/design-system/p-7e1f14a6.entry.js +0 -1
- package/dist/design-system/p-8d340091.entry.js +0 -1
- package/dist/design-system/p-9860b9d9.entry.js +0 -1
- package/dist/design-system/p-BXcizROm.js +0 -1
- package/dist/design-system/p-BwIs2-fm.js +0 -2
- package/dist/design-system/p-CAFz8W8_.js +0 -1
- package/dist/design-system/p-D9tQwTWy.js +0 -1
- package/dist/design-system/p-U8VaRj9c.js +0 -1
- package/dist/design-system/p-b8394ddb.entry.js +0 -1
- package/dist/design-system/p-ef60be0f.entry.js +0 -1
- package/dist/design-system/p-f7123e89.entry.js +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-D12oddge.js');
|
|
4
4
|
|
|
5
5
|
const toggle = {
|
|
6
6
|
height: "28",
|
|
@@ -123,7 +123,7 @@ const SdToggle = class {
|
|
|
123
123
|
'--sd-toggle-content-select': TOGGLE_COLORS.content.select,
|
|
124
124
|
'--sd-toggle-content-disabled': TOGGLE_COLORS.content.disabled,
|
|
125
125
|
};
|
|
126
|
-
return (index.h("label", { key: '
|
|
126
|
+
return (index.h("label", { key: 'e60aa1379566c4586ea4f7e852425f8829e806d1', class: this.toggleClasses, style: cssVars, "aria-label": this.label || 'toggle' }, this.label, index.h("input", { key: '9f2260749b392c0c72ad2a53b515f0b886e62c3a', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
|
|
127
127
|
}
|
|
128
128
|
};
|
|
129
129
|
SdToggle.style = sdToggleCss();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-D12oddge.js');
|
|
4
4
|
|
|
5
5
|
const TooltipArrow = (props) => (index.h("svg", { width: "16", height: "12", viewBox: "0 0 16 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, index.h("path", { d: "M8.83205 10.7519C8.43623 11.3457 7.56377 11.3457 7.16795 10.7519L1.04907e-06 -1.39876e-06L16 0L8.83205 10.7519Z", fill: "currentColor" })));
|
|
6
6
|
|
|
@@ -34,6 +34,18 @@ sd-circle-progress .sd-circle-progress__label {
|
|
|
34
34
|
font-weight: 400;
|
|
35
35
|
line-height: 20px;
|
|
36
36
|
}
|
|
37
|
+
sd-circle-progress {
|
|
38
|
+
/* innerValue 모드: 퍼센트를 원 가운데에 오버레이 */
|
|
39
|
+
}
|
|
40
|
+
sd-circle-progress[inner-value] {
|
|
41
|
+
position: relative;
|
|
42
|
+
}
|
|
43
|
+
sd-circle-progress[inner-value] .sd-circle-progress__percent {
|
|
44
|
+
position: absolute;
|
|
45
|
+
top: 40px;
|
|
46
|
+
left: 50%;
|
|
47
|
+
transform: translate(-50%, -50%);
|
|
48
|
+
}
|
|
37
49
|
sd-circle-progress {
|
|
38
50
|
/* indeterminate 모드: 회전 + dasharray grow/shrink 애니메이션 */
|
|
39
51
|
}
|
|
@@ -9,6 +9,8 @@ export class SdCircleProgress {
|
|
|
9
9
|
type = 'primary';
|
|
10
10
|
/** 원 하단에 표시할 레이블 텍스트 */
|
|
11
11
|
label;
|
|
12
|
+
/** true면 퍼센트를 원 아래가 아닌 원 가운데에 표시 */
|
|
13
|
+
innerValue = false;
|
|
12
14
|
get clampedValue() {
|
|
13
15
|
if (!Number.isFinite(this.value))
|
|
14
16
|
return 0;
|
|
@@ -31,7 +33,7 @@ export class SdCircleProgress {
|
|
|
31
33
|
}
|
|
32
34
|
const c = CIRCLE_PROGRESS_VIEWBOX_SIZE / 2;
|
|
33
35
|
const showPercent = !this.indeterminate;
|
|
34
|
-
return (h(Host, { key: '
|
|
36
|
+
return (h(Host, { key: '869ec15d8df4b3e240b70599d8ba72618cda4c87', style: hostStyle }, h("svg", { key: '446fa350f3c7e225e455f5f6c12b4aab45d20287', class: "sd-circle-progress", viewBox: `0 0 ${CIRCLE_PROGRESS_VIEWBOX_SIZE} ${CIRCLE_PROGRESS_VIEWBOX_SIZE}`, xmlns: "http://www.w3.org/2000/svg" }, h("circle", { key: 'c3555674067f60ab1a1458d789d62fc9bbc8015f', class: "sd-circle-progress__track", cx: c, cy: c, r: CIRCLE_PROGRESS_RADIUS, fill: "none", "stroke-width": CIRCLE_PROGRESS_STROKE_WIDTH }), h("circle", { key: '62716c5645d957be08ea0e0818e47edda2c9e471', class: "sd-circle-progress__arc", cx: c, cy: c, r: CIRCLE_PROGRESS_RADIUS, fill: "none", "stroke-width": CIRCLE_PROGRESS_STROKE_WIDTH, "stroke-linecap": "round", style: arcStyle })), showPercent && (h("span", { key: 'b56d75c0c40cb82d4c4c87161913b28063a9d369', class: "sd-circle-progress__percent" }, Math.round(this.clampedValue), "%")), this.label && h("span", { key: '65cfb5cd0426c7cbf5ee7aefeaf675471abccaaf', class: "sd-circle-progress__label" }, this.label)));
|
|
35
37
|
}
|
|
36
38
|
static get is() { return "sd-circle-progress"; }
|
|
37
39
|
static get originalStyleUrls() {
|
|
@@ -131,6 +133,26 @@ export class SdCircleProgress {
|
|
|
131
133
|
"setter": false,
|
|
132
134
|
"reflect": false,
|
|
133
135
|
"attribute": "label"
|
|
136
|
+
},
|
|
137
|
+
"innerValue": {
|
|
138
|
+
"type": "boolean",
|
|
139
|
+
"mutable": false,
|
|
140
|
+
"complexType": {
|
|
141
|
+
"original": "boolean",
|
|
142
|
+
"resolved": "boolean",
|
|
143
|
+
"references": {}
|
|
144
|
+
},
|
|
145
|
+
"required": false,
|
|
146
|
+
"optional": false,
|
|
147
|
+
"docs": {
|
|
148
|
+
"tags": [],
|
|
149
|
+
"text": "true\uBA74 \uD37C\uC13C\uD2B8\uB97C \uC6D0 \uC544\uB798\uAC00 \uC544\uB2CC \uC6D0 \uAC00\uC6B4\uB370\uC5D0 \uD45C\uC2DC"
|
|
150
|
+
},
|
|
151
|
+
"getter": false,
|
|
152
|
+
"setter": false,
|
|
153
|
+
"reflect": true,
|
|
154
|
+
"attribute": "inner-value",
|
|
155
|
+
"defaultValue": "false"
|
|
134
156
|
}
|
|
135
157
|
};
|
|
136
158
|
}
|
|
@@ -54,8 +54,8 @@ export const DROPDOWN_CHEVRON_ICON_SIZE = {
|
|
|
54
54
|
// 버튼 자체의 min-width (px). split 여부에 따라 chevron 버튼이 추가되므로 별도 값을 지정.
|
|
55
55
|
// TODO: 디자인 토큰으로 관리될 때 대체 예정
|
|
56
56
|
export const DROPDOWN_BUTTON_MIN_WIDTH = {
|
|
57
|
-
xs: { default:
|
|
58
|
-
sm: { default:
|
|
57
|
+
xs: { default: 64, split: 72 },
|
|
58
|
+
sm: { default: 72, split: 88 },
|
|
59
59
|
md: { default: 100, split: 106 },
|
|
60
60
|
};
|
|
61
61
|
export const DROPDOWN_DISABLED_BACKGROUND = buttonTokens.button.bg.disabled;
|
|
@@ -112,6 +112,11 @@ sd-field .sd-field.sd-field--focus:not(.sd-field--readonly) .sd-field__wrapper .
|
|
|
112
112
|
border: 1px solid var(--sd-system-color-field-border-focus) !important;
|
|
113
113
|
box-shadow: 0px 0px 4px 0px rgba(0, 113, 255, 0.4);
|
|
114
114
|
}
|
|
115
|
+
sd-field .sd-field.sd-field--borderless .sd-field__wrapper .sd-field__control, sd-field .sd-field.sd-field--borderless.sd-field--error .sd-field__wrapper .sd-field__control:not(:hover), sd-field .sd-field.sd-field--borderless.sd-field--pass .sd-field__wrapper .sd-field__control, sd-field .sd-field.sd-field--borderless:not(.sd-field--disabled):not(.sd-field--readonly) .sd-field__wrapper .sd-field__control:hover, sd-field .sd-field.sd-field--borderless.sd-field--focus:not(.sd-field--readonly) .sd-field__wrapper .sd-field__control {
|
|
116
|
+
border-color: transparent !important;
|
|
117
|
+
background: transparent !important;
|
|
118
|
+
box-shadow: none !important;
|
|
119
|
+
}
|
|
115
120
|
sd-field .sd-field .sd-field__error-message {
|
|
116
121
|
color: var(--sd-field-error-message-color);
|
|
117
122
|
font-size: var(--sd-field-error-message-font-size);
|
|
@@ -38,6 +38,11 @@ export class SdField {
|
|
|
38
38
|
width = '';
|
|
39
39
|
/** 필드 크기 */
|
|
40
40
|
size = 'sm';
|
|
41
|
+
/**
|
|
42
|
+
* 테두리 박스 제거 (inline 컨트롤용) — border/배경/hover·focus 강조만 사라지고
|
|
43
|
+
* label·hint·errorMessage 등 나머지 필드 구성은 그대로 동작한다.
|
|
44
|
+
*/
|
|
45
|
+
borderless = false;
|
|
41
46
|
// props - label
|
|
42
47
|
/** 레이블 텍스트 */
|
|
43
48
|
label = '';
|
|
@@ -205,18 +210,19 @@ export class SdField {
|
|
|
205
210
|
: {}),
|
|
206
211
|
}
|
|
207
212
|
: {};
|
|
208
|
-
return (h("div", { key: '
|
|
213
|
+
return (h("div", { key: 'bce0bc8ccc19e41c2a61980bd12f07d7f8838569', class: {
|
|
209
214
|
'sd-field': true,
|
|
210
215
|
'sd-field--has-label': this.label !== '',
|
|
211
216
|
'sd-field--has-addon': addon !== '',
|
|
217
|
+
'sd-field--borderless': this.borderless,
|
|
212
218
|
[this.fieldStatus]: this.fieldStatus !== '',
|
|
213
|
-
}, style: { ...sizeCssVars, ...labelCssVars, ...addonCssVars, ...messageCssVars } }, h("div", { key: '
|
|
219
|
+
}, style: { ...sizeCssVars, ...labelCssVars, ...addonCssVars, ...messageCssVars } }, h("div", { key: 'c6c4e3ec6e018ebd0dc6fbbae5fbaef4ea6503e5', class: "sd-field__wrapper" }, this.renderLabel(this.label), h("div", { key: 'bd778a24325412924e0a331db592535e4b4e542b', class: "sd-field__main" }, h("div", { key: '485cfbdbfa7299cb27d84e61306d6e2cf196d071', class: {
|
|
214
220
|
'sd-field__control': true,
|
|
215
221
|
'sd-field__control--has-addon': addon !== '',
|
|
216
222
|
}, style: this.width !== '' && this.width !== 0
|
|
217
223
|
? { width: typeof this.width === 'number' ? `${this.width}px` : this.width }
|
|
218
|
-
: {} }, addon && (h("div", { key: '
|
|
219
|
-
Number(FIELD_LABEL_SIZE_MAP[(this.size in FIELD_LABEL_SIZE_MAP ? this.size : 'sm')].icon), color: this.icon.color, rotate: this.icon.rotate })), addon)), h("slot", { key: '
|
|
224
|
+
: {} }, addon && (h("div", { key: '510238ac22b7e923724cc20abf2541adbddcb594', class: "sd-field__addon" }, this.icon && (h("sd-icon", { key: '2cca5b62cbe56050acd536764c33cbc3009f740b', name: this.icon.name, size: this.icon.size ??
|
|
225
|
+
Number(FIELD_LABEL_SIZE_MAP[(this.size in FIELD_LABEL_SIZE_MAP ? this.size : 'sm')].icon), color: this.icon.color, rotate: this.icon.rotate })), addon)), h("slot", { key: '470c0d559409a11f1c5650e88a50555a4656d3f9' })), this.errorMsg !== '' || this.errorMessage !== '' ? (h("div", { class: "sd-field__error-message" }, this.errorMsg !== '' ? this.errorMsg : this.errorMessage)) : (this.hint !== '' && h("div", { class: "sd-field__hint" }, this.hint))))));
|
|
220
226
|
}
|
|
221
227
|
renderLabel(label) {
|
|
222
228
|
if (label == null || label === '')
|
|
@@ -488,6 +494,26 @@ export class SdField {
|
|
|
488
494
|
"attribute": "size",
|
|
489
495
|
"defaultValue": "'sm'"
|
|
490
496
|
},
|
|
497
|
+
"borderless": {
|
|
498
|
+
"type": "boolean",
|
|
499
|
+
"mutable": false,
|
|
500
|
+
"complexType": {
|
|
501
|
+
"original": "boolean",
|
|
502
|
+
"resolved": "boolean",
|
|
503
|
+
"references": {}
|
|
504
|
+
},
|
|
505
|
+
"required": false,
|
|
506
|
+
"optional": false,
|
|
507
|
+
"docs": {
|
|
508
|
+
"tags": [],
|
|
509
|
+
"text": "\uD14C\uB450\uB9AC \uBC15\uC2A4 \uC81C\uAC70 (inline \uCEE8\uD2B8\uB864\uC6A9) \u2014 border/\uBC30\uACBD/hover\u00B7focus \uAC15\uC870\uB9CC \uC0AC\uB77C\uC9C0\uACE0\nlabel\u00B7hint\u00B7errorMessage \uB4F1 \uB098\uBA38\uC9C0 \uD544\uB4DC \uAD6C\uC131\uC740 \uADF8\uB300\uB85C \uB3D9\uC791\uD55C\uB2E4."
|
|
510
|
+
},
|
|
511
|
+
"getter": false,
|
|
512
|
+
"setter": false,
|
|
513
|
+
"reflect": false,
|
|
514
|
+
"attribute": "borderless",
|
|
515
|
+
"defaultValue": "false"
|
|
516
|
+
},
|
|
491
517
|
"label": {
|
|
492
518
|
"type": "string",
|
|
493
519
|
"mutable": false,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import filePickerTokens from "../../tokens/generated/component.filepicker.json";
|
|
2
2
|
import fieldTokens from "../../tokens/generated/component.field.json";
|
|
3
|
+
import listBoxTokens from "../../tokens/generated/component.listBox.json";
|
|
3
4
|
const fp = filePickerTokens.filepicker;
|
|
4
5
|
export const FILE_PICKER_LAYOUT = {
|
|
5
6
|
height: fp.sm.height,
|
|
@@ -22,3 +23,11 @@ export const FILE_PICKER_COLORS = {
|
|
|
22
23
|
disabled: fp.icon.disabled,
|
|
23
24
|
},
|
|
24
25
|
};
|
|
26
|
+
// useMultipleListBox 모드에서 파일 칩을 담는 floating 리스트박스 카드
|
|
27
|
+
// (sd-select-listbox 와 동일한 배경/radius/그림자 토큰 사용)
|
|
28
|
+
export const FILE_PICKER_LIST_BOX = {
|
|
29
|
+
radius: listBoxTokens.listBox.radius,
|
|
30
|
+
bg: listBoxTokens.listBox.bg,
|
|
31
|
+
chipPadding: listBoxTokens.listBox.chip.paddingXY,
|
|
32
|
+
chipGap: listBoxTokens.listBox.chip.gap,
|
|
33
|
+
};
|
|
@@ -12,7 +12,7 @@ sd-file-picker {
|
|
|
12
12
|
|
|
13
13
|
.sd-file-picker__chip-list {
|
|
14
14
|
display: flex;
|
|
15
|
-
flex-
|
|
15
|
+
flex-flow: row wrap;
|
|
16
16
|
gap: 8px;
|
|
17
17
|
margin-top: 8px;
|
|
18
18
|
}
|
|
@@ -62,6 +62,24 @@ sd-file-picker {
|
|
|
62
62
|
opacity: 0.7;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
.sd-file-picker__caret {
|
|
66
|
+
flex-shrink: 0;
|
|
67
|
+
cursor: pointer;
|
|
68
|
+
transition: transform 0.15s ease;
|
|
69
|
+
}
|
|
70
|
+
.sd-file-picker__caret--open {
|
|
71
|
+
transform: rotate(180deg);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.sd-file-picker__listbox {
|
|
75
|
+
display: flex;
|
|
76
|
+
flex-direction: column;
|
|
77
|
+
align-items: stretch;
|
|
78
|
+
box-sizing: border-box;
|
|
79
|
+
max-width: 100%;
|
|
80
|
+
box-shadow: 2px 2px 12px 2px rgba(0, 0, 0, 0.1);
|
|
81
|
+
}
|
|
82
|
+
|
|
65
83
|
.sd-file-picker__input {
|
|
66
84
|
display: none;
|
|
67
85
|
}
|
|
@@ -90,15 +108,12 @@ sd-file-picker {
|
|
|
90
108
|
}
|
|
91
109
|
|
|
92
110
|
.sd-file-picker--inline .sd-file-picker__content {
|
|
93
|
-
border: none;
|
|
94
|
-
background-color: transparent;
|
|
95
111
|
padding: 0;
|
|
96
|
-
height: auto;
|
|
97
112
|
}
|
|
98
113
|
.sd-file-picker--inline .sd-file-picker__text {
|
|
99
114
|
color: var(--sd-file-picker-placeholder-color);
|
|
100
115
|
}
|
|
101
|
-
.sd-file-picker--inline:
|
|
116
|
+
.sd-file-picker--inline:not(.sd-file-picker--inline-disabled) .sd-file-picker__content:hover .sd-file-picker__text {
|
|
102
117
|
color: var(--sd-file-picker-text-color);
|
|
103
118
|
}
|
|
104
119
|
.sd-file-picker--inline .sd-file-picker__text--active {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { h, } from "@stencil/core";
|
|
2
2
|
import { nanoid } from "nanoid/non-secure";
|
|
3
|
-
import { FILE_PICKER_LAYOUT, FILE_PICKER_COLORS } from "./sd-file-picker.config";
|
|
3
|
+
import { FILE_PICKER_LAYOUT, FILE_PICKER_COLORS, FILE_PICKER_LIST_BOX, } from "./sd-file-picker.config";
|
|
4
4
|
export class SdFilePicker {
|
|
5
5
|
el;
|
|
6
6
|
/** 선택된 파일 값 */
|
|
@@ -9,10 +9,12 @@ export class SdFilePicker {
|
|
|
9
9
|
placeholder = 'Click to upload';
|
|
10
10
|
/** 비활성 상태 여부 */
|
|
11
11
|
disabled = false;
|
|
12
|
-
/** sd-field
|
|
12
|
+
/** 인라인 표시 — sd-field 테두리 박스만 사라지고 label/rules/hint 는 그대로 동작 */
|
|
13
13
|
inline = false;
|
|
14
14
|
/** 다중 파일 선택 여부 */
|
|
15
15
|
multiple = false;
|
|
16
|
+
/** multiple 파일 목록을 필드 아래 칩 대신, caret(▼) 클릭 시 열리는 리스트박스 카드로 표시 */
|
|
17
|
+
useMultipleListBox = false;
|
|
16
18
|
/** 허용할 파일 타입 (input accept 속성과 동일) */
|
|
17
19
|
accept;
|
|
18
20
|
/** 파일 한 개의 최대 크기 (bytes) */
|
|
@@ -56,9 +58,13 @@ export class SdFilePicker {
|
|
|
56
58
|
hovered = false;
|
|
57
59
|
internalValue = null;
|
|
58
60
|
showTooltip = false;
|
|
61
|
+
isListboxOpen = false;
|
|
62
|
+
listboxWidth = '';
|
|
59
63
|
fileInputRef;
|
|
60
64
|
fileNamesRef;
|
|
65
|
+
contentRef;
|
|
61
66
|
formField;
|
|
67
|
+
static VIEWPORT_PADDING = 20;
|
|
62
68
|
/** 파일 선택 또는 삭제 시 현재 파일 값을 전달합니다. */
|
|
63
69
|
update;
|
|
64
70
|
/** 파일이 크기·개수 제한을 초과하여 거부됐을 때 발생합니다. */
|
|
@@ -160,6 +166,7 @@ export class SdFilePicker {
|
|
|
160
166
|
this.value = clearedValue;
|
|
161
167
|
this.internalValue = clearedValue;
|
|
162
168
|
this.update?.emit(clearedValue);
|
|
169
|
+
this.isListboxOpen = false;
|
|
163
170
|
if (this.fileInputRef) {
|
|
164
171
|
this.fileInputRef.value = '';
|
|
165
172
|
}
|
|
@@ -169,15 +176,28 @@ export class SdFilePicker {
|
|
|
169
176
|
return;
|
|
170
177
|
this.fileInputRef?.click();
|
|
171
178
|
};
|
|
179
|
+
/** caret(▼) 클릭 시 파일 목록 리스트박스를 토글한다. */
|
|
180
|
+
handleListboxToggle = (event) => {
|
|
181
|
+
event.stopPropagation();
|
|
182
|
+
if (this.disabled)
|
|
183
|
+
return;
|
|
184
|
+
if (this.isListboxOpen) {
|
|
185
|
+
this.isListboxOpen = false;
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
if (this.contentRef) {
|
|
189
|
+
this.listboxWidth = `${this.contentRef.offsetWidth}px`;
|
|
190
|
+
}
|
|
191
|
+
this.isListboxOpen = true;
|
|
192
|
+
};
|
|
193
|
+
closeListbox = () => {
|
|
194
|
+
this.isListboxOpen = false;
|
|
195
|
+
};
|
|
172
196
|
hasFiles() {
|
|
173
|
-
if (this.multiple)
|
|
174
|
-
return false;
|
|
175
|
-
if (!this.internalValue)
|
|
176
|
-
return false;
|
|
177
197
|
if (Array.isArray(this.internalValue)) {
|
|
178
198
|
return this.internalValue.length > 0;
|
|
179
199
|
}
|
|
180
|
-
return
|
|
200
|
+
return !!this.internalValue;
|
|
181
201
|
}
|
|
182
202
|
hasChips() {
|
|
183
203
|
return Array.isArray(this.internalValue) && this.internalValue.length > 0;
|
|
@@ -185,6 +205,9 @@ export class SdFilePicker {
|
|
|
185
205
|
getDisplayText() {
|
|
186
206
|
if (!this.hasFiles())
|
|
187
207
|
return this.placeholder ?? 'Click to upload';
|
|
208
|
+
if (this.multiple && Array.isArray(this.internalValue)) {
|
|
209
|
+
return this.internalValue.map(f => f.name).join(', ');
|
|
210
|
+
}
|
|
188
211
|
return this.internalValue?.name || (this.placeholder ?? 'Click to upload');
|
|
189
212
|
}
|
|
190
213
|
handleChipRemove = (index) => {
|
|
@@ -195,12 +218,28 @@ export class SdFilePicker {
|
|
|
195
218
|
this.internalValue = newFiles;
|
|
196
219
|
this.value = newFiles;
|
|
197
220
|
this.update?.emit(this.value);
|
|
221
|
+
// 리스트박스에서 마지막 파일을 지우면 caret 이 사라지므로 함께 닫는다.
|
|
222
|
+
if (newFiles.length === 0) {
|
|
223
|
+
this.isListboxOpen = false;
|
|
224
|
+
}
|
|
198
225
|
};
|
|
199
226
|
renderChipList() {
|
|
200
227
|
if (!this.hasChips())
|
|
201
228
|
return null;
|
|
202
229
|
return (h("div", { class: "sd-file-picker__chip-list" }, this.internalValue.map((file, index) => (h("sd-chip", { value: file.name, onSdRemove: () => this.handleChipRemove(index) })))));
|
|
203
230
|
}
|
|
231
|
+
renderListbox() {
|
|
232
|
+
if (!this.hasChips() || !this.isListboxOpen)
|
|
233
|
+
return null;
|
|
234
|
+
const listboxStyle = {
|
|
235
|
+
width: this.listboxWidth,
|
|
236
|
+
padding: `${FILE_PICKER_LIST_BOX.chipPadding}px`,
|
|
237
|
+
gap: `${FILE_PICKER_LIST_BOX.chipGap}px`,
|
|
238
|
+
borderRadius: `${FILE_PICKER_LIST_BOX.radius}px`,
|
|
239
|
+
background: FILE_PICKER_LIST_BOX.bg,
|
|
240
|
+
};
|
|
241
|
+
return (h("sd-portal", { open: this.isListboxOpen, parentRef: this.contentRef, viewportPadding: SdFilePicker.VIEWPORT_PADDING, onSdClose: this.closeListbox }, h("div", { class: "sd-file-picker__listbox", style: listboxStyle }, this.internalValue.map((file, index) => (h("sd-chip", { value: file.name, editable: false, onSdRemove: () => this.handleChipRemove(index) }))))));
|
|
242
|
+
}
|
|
204
243
|
checkOverflow() {
|
|
205
244
|
if (!this.fileNamesRef)
|
|
206
245
|
return;
|
|
@@ -226,23 +265,25 @@ export class SdFilePicker {
|
|
|
226
265
|
'--sd-system-size-field-sm-height': `${FILE_PICKER_LAYOUT.height}px`,
|
|
227
266
|
'--sd-system-radius-field-sm': `${FILE_PICKER_LAYOUT.radius}px`,
|
|
228
267
|
};
|
|
229
|
-
const
|
|
268
|
+
const showListbox = this.multiple && this.useMultipleListBox;
|
|
269
|
+
const content = (h("div", { key: '692bb28ba1adaa90317e18c6b824ab7d2287eb96', role: "button", tabindex: this.disabled ? -1 : 0, class: "sd-file-picker__content", ref: el => (this.contentRef = el), onClick: this.handleClick, onKeyDown: e => {
|
|
230
270
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
231
271
|
e.preventDefault();
|
|
232
272
|
this.handleClick();
|
|
233
273
|
}
|
|
234
|
-
} }, h("input", { ref: el => (this.fileInputRef = el), type: "file", class: "sd-file-picker__input", disabled: this.disabled, multiple: this.multiple, accept: this.accept, onInput: this.handleFileChange, "aria-label": this.placeholder ?? 'Click to upload' }), h("sd-icon", { name: "attachFile", size: Number(FILE_PICKER_LAYOUT.iconSize), color: this.getIconColor(), class: "sd-file-picker__icon" }), h("div", { ref: el => (this.fileNamesRef = el), class: {
|
|
274
|
+
} }, h("input", { key: '7a1cddff8097952c0c9eda9ae8d1b46b4a18967e', ref: el => (this.fileInputRef = el), type: "file", class: "sd-file-picker__input", disabled: this.disabled, multiple: this.multiple, accept: this.accept, onInput: this.handleFileChange, "aria-label": this.placeholder ?? 'Click to upload' }), h("sd-icon", { key: '2f7dffb5bfc39efb0eace252a45aaaa23091d337', name: "attachFile", size: Number(FILE_PICKER_LAYOUT.iconSize), color: this.getIconColor(), class: "sd-file-picker__icon" }), h("div", { key: '1a6ae3daa59c7befebcfcfdcbbb2c46a32c6c40c', ref: el => (this.fileNamesRef = el), class: {
|
|
235
275
|
'sd-file-picker__text': true,
|
|
236
276
|
'sd-file-picker__text--placeholder': !hasFiles,
|
|
237
277
|
'sd-file-picker__text--active': hasFiles,
|
|
238
|
-
} }, displayText), !this.disabled &&
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
278
|
+
} }, displayText), showListbox && hasFiles && !this.disabled && (h("sd-ghost-button", { key: '895eafa47b1e1d851794fd471b304f8458bcac0f', icon: "caretDown", size: "xxs", ariaLabel: "toggle file list", disabled: this.disabled, class: {
|
|
279
|
+
'sd-file-picker__caret': true,
|
|
280
|
+
'sd-file-picker__caret--open': this.isListboxOpen,
|
|
281
|
+
}, onClick: this.handleListboxToggle })), !this.disabled && hasFiles && (h("sd-ghost-button", { key: '38d3fe31be05ae66a170671ffb4855bce4984630', icon: "close", size: "xxs", ariaLabel: "clear", disabled: this.disabled, class: "sd-file-picker__clear-icon", onClick: this.handleClear })), this.showTooltip && hasFiles && this.hovered && (h("div", { key: 'bb94815d7149ce9f1117828f893224c8bc1dbc50', class: "sd-file-picker__tooltip" }, displayText))));
|
|
282
|
+
return (h("div", { key: '3ada174508214a9fafd4f7f228ff52eb60aa76e4', class: {
|
|
283
|
+
'sd-file-picker__wrapper': true,
|
|
284
|
+
'sd-file-picker--inline': this.inline,
|
|
285
|
+
'sd-file-picker--inline-disabled': this.inline && this.disabled,
|
|
286
|
+
}, style: cssVars }, h("sd-field", { key: '29314b3ba5fc7c6b7d2f1a93a14381d9fb91bcfc', borderless: this.inline, name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, status: this.status, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false) }, content), this.useMultipleListBox ? this.renderListbox() : this.renderChipList()));
|
|
246
287
|
}
|
|
247
288
|
static get is() { return "sd-file-picker"; }
|
|
248
289
|
static get originalStyleUrls() {
|
|
@@ -332,7 +373,7 @@ export class SdFilePicker {
|
|
|
332
373
|
"optional": false,
|
|
333
374
|
"docs": {
|
|
334
375
|
"tags": [],
|
|
335
|
-
"text": "sd-field \
|
|
376
|
+
"text": "\uC778\uB77C\uC778 \uD45C\uC2DC \u2014 sd-field \uD14C\uB450\uB9AC \uBC15\uC2A4\uB9CC \uC0AC\uB77C\uC9C0\uACE0 label/rules/hint \uB294 \uADF8\uB300\uB85C \uB3D9\uC791"
|
|
336
377
|
},
|
|
337
378
|
"getter": false,
|
|
338
379
|
"setter": false,
|
|
@@ -360,6 +401,26 @@ export class SdFilePicker {
|
|
|
360
401
|
"attribute": "multiple",
|
|
361
402
|
"defaultValue": "false"
|
|
362
403
|
},
|
|
404
|
+
"useMultipleListBox": {
|
|
405
|
+
"type": "boolean",
|
|
406
|
+
"mutable": false,
|
|
407
|
+
"complexType": {
|
|
408
|
+
"original": "boolean",
|
|
409
|
+
"resolved": "boolean",
|
|
410
|
+
"references": {}
|
|
411
|
+
},
|
|
412
|
+
"required": false,
|
|
413
|
+
"optional": false,
|
|
414
|
+
"docs": {
|
|
415
|
+
"tags": [],
|
|
416
|
+
"text": "multiple \uD30C\uC77C \uBAA9\uB85D\uC744 \uD544\uB4DC \uC544\uB798 \uCE69 \uB300\uC2E0, caret(\u25BC) \uD074\uB9AD \uC2DC \uC5F4\uB9AC\uB294 \uB9AC\uC2A4\uD2B8\uBC15\uC2A4 \uCE74\uB4DC\uB85C \uD45C\uC2DC"
|
|
417
|
+
},
|
|
418
|
+
"getter": false,
|
|
419
|
+
"setter": false,
|
|
420
|
+
"reflect": true,
|
|
421
|
+
"attribute": "use-multiple-list-box",
|
|
422
|
+
"defaultValue": "false"
|
|
423
|
+
},
|
|
363
424
|
"accept": {
|
|
364
425
|
"type": "string",
|
|
365
426
|
"mutable": false,
|
|
@@ -779,7 +840,9 @@ export class SdFilePicker {
|
|
|
779
840
|
static get states() {
|
|
780
841
|
return {
|
|
781
842
|
"internalValue": {},
|
|
782
|
-
"showTooltip": {}
|
|
843
|
+
"showTooltip": {},
|
|
844
|
+
"isListboxOpen": {},
|
|
845
|
+
"listboxWidth": {}
|
|
783
846
|
};
|
|
784
847
|
}
|
|
785
848
|
static get events() {
|
|
@@ -173,7 +173,7 @@ export class SdFloatingPopover {
|
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
render() {
|
|
176
|
-
return h("slot", { key: '
|
|
176
|
+
return h("slot", { key: '7bdfc66c7baa0a195d1c0438e6bdd0705a7e5ffd' });
|
|
177
177
|
}
|
|
178
178
|
static get is() { return "sd-floating-portal"; }
|
|
179
179
|
static get originalStyleUrls() {
|
|
@@ -29,7 +29,6 @@ export const GUIDE_CONFIG = {
|
|
|
29
29
|
paddingX: `${contents.paddingX}px`,
|
|
30
30
|
paddingY: `${contents.paddingY}px`,
|
|
31
31
|
gap: `${contents.gap}px`,
|
|
32
|
-
rowGap: `${contents.row.gap}px`,
|
|
33
32
|
bodyGap: `${contents.body.gap}px`,
|
|
34
33
|
titleGap: `${contents.title.gap}px`,
|
|
35
34
|
radius: `${contents.radius}px`,
|
|
@@ -124,9 +124,6 @@ sd-guide {
|
|
|
124
124
|
margin-right: 12px;
|
|
125
125
|
flex-shrink: 0;
|
|
126
126
|
}
|
|
127
|
-
.sd-guide__popup__list__item--depth-1:not(:first-child) {
|
|
128
|
-
margin-top: var(--sd-guide-contents-row-gap);
|
|
129
|
-
}
|
|
130
127
|
.sd-guide__popup__list__item--depth-2 {
|
|
131
128
|
margin-top: var(--sd-guide-contents-body-gap);
|
|
132
129
|
}
|
|
@@ -60,7 +60,6 @@ export class SdGuide {
|
|
|
60
60
|
'--sd-guide-contents-padding-x': contents.paddingX,
|
|
61
61
|
'--sd-guide-contents-padding-y': contents.paddingY,
|
|
62
62
|
'--sd-guide-contents-gap': contents.gap,
|
|
63
|
-
'--sd-guide-contents-row-gap': contents.rowGap,
|
|
64
63
|
'--sd-guide-contents-body-gap': contents.bodyGap,
|
|
65
64
|
'--sd-guide-contents-title-gap': contents.titleGap,
|
|
66
65
|
'--sd-guide-contents-radius': contents.radius,
|
|
@@ -83,10 +82,10 @@ export class SdGuide {
|
|
|
83
82
|
const buttonClasses = ['sd-guide__button', `sd-guide__button--type-${this.type ?? 'tip'}`];
|
|
84
83
|
if (isActive)
|
|
85
84
|
buttonClasses.push('sd-guide__button--active');
|
|
86
|
-
return (h("div", { key: '
|
|
85
|
+
return (h("div", { key: '7d85d4650de1bef19699cdacaceeeab69a7f221c', class: "sd-guide", style: this.guideStyle }, h("sd-button", { key: 'b4cd191ba9593ce83343097e9b24fb56d86c6859', ref: el => (this.guideRef = el), class: buttonClasses.join(' '), name: isActive ? 'primary_sm' : 'neutral_outline_sm', label: this.label || defaultLabel, icon: iconName, onSdClick: this.handleClickGuide }), this.popupShow && (h("sd-portal", { key: '2523de8af47987b2f0761c999817bf1ca595b4e6', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, h("div", { key: '2fcc5a768d626d5ba97427ad99dc1c6155b5c36b', class: "sd-guide__popup", style: {
|
|
87
86
|
...this.guideStyle,
|
|
88
87
|
width: this.popupWidth != null ? this.popupWidth + 'px' : '426px',
|
|
89
|
-
} }, h("sd-ghost-button", { key: '
|
|
88
|
+
} }, h("sd-ghost-button", { key: 'de6b053ff6373bf2690d0874d01692e456a38991', class: "sd-guide__popup__close", icon: "close", ariaLabel: "close", size: "sm", onSdClick: this.closeDropdown }), h("div", { key: '10f2de0819a6a97571719ca2e04101833c78f1d3', class: "sd-guide__popup__header" }, h("sd-icon", { key: 'b11478e02574f5e211cd9d2478080d2c9895cb5d', name: iconName, size: 24, color: popupIconColor }), h("h3", { key: 'ef361769bc0363ebb7215b6fbd1fdb38b2864434', class: "sd-guide__popup__title" }, this.popupTitle || defaultLabel)), h("ul", { key: '914ae5fa0fa7ae52954df58e17beb187ddc2a966', class: "sd-guide__popup__list" }, this.renderListItem(this.message)))))));
|
|
90
89
|
}
|
|
91
90
|
// 현재 2depth까지만 스타일 적용
|
|
92
91
|
renderListItem(message, depth = 0) {
|
|
@@ -152,12 +152,12 @@ export class SdInput {
|
|
|
152
152
|
'--sd-system-size-field-sm-height': `${sizeTokens.height}px`,
|
|
153
153
|
'--sd-system-radius-field-sm': `${sizeTokens.radius}px`,
|
|
154
154
|
};
|
|
155
|
-
return (h("sd-field", { key: '
|
|
155
|
+
return (h("sd-field", { key: '7ec67f4433bff2a7d2f1b44935f761d79f0e8681', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, readonly: this.readonly, focused: this.focused, hovered: this.hovered, status: this.status, size: this.size, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("label", { key: '6c0118c2610f06d13d4a38a857bf37c7ad9508d0', class: "sd-input__content" }, h("slot", { key: '31cd8fe72ab21cb7a562accff98545fdf59efa80', name: "prefix" }), h("input", { key: '47579f31e9255bda6d5623eca8071ffdafd0ca55', name: this.name, ref: el => (this.nativeEl = el), class: `sd-input__native ${this.inputClass}`, type: this.type === 'password' && this.passwordVisible ? 'text' : (this.type ?? 'text'), value: this.internalValue || '', placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, autocomplete: this.autocomplete || undefined, maxlength: this.maxlength, minlength: this.minlength, inputmode: this.inputmode, enterkeyhint: this.enterkeyhint, spellcheck: this.spellcheck, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.inputStyle }), h("slot", { key: 'f2d6e313c8c542d88c252e26cbb2618977fda5fa', name: "suffix" }), this.clearable && this.internalValue && !this.disabled && !this.readonly && (h("sd-ghost-button", { key: 'b24cb32d5963b244aef76e31f1c0f350d316be5c', icon: "close", ariaLabel: "clear", size: "xxs", disabled: this.disabled, class: "sd-input__clear-icon", onClick: async () => {
|
|
156
156
|
if (this.disabled || this.readonly)
|
|
157
157
|
return;
|
|
158
158
|
this.internalValue = '';
|
|
159
159
|
await this.formField?.sdValidate();
|
|
160
|
-
} })), this.type === 'password' && (h("sd-ghost-button", { key: '
|
|
160
|
+
} })), this.type === 'password' && (h("sd-ghost-button", { key: '9592350fd3820fa8c8af637cb84f2d4517d6decd', icon: this.passwordVisible ? 'visibilityOn' : 'visibilityOff', ariaLabel: "visibility", size: "xxs", disabled: this.disabled || this.readonly, class: "sd-input__password-icon", onClick: () => {
|
|
161
161
|
if (this.disabled || this.readonly)
|
|
162
162
|
return;
|
|
163
163
|
this.passwordVisible = !this.passwordVisible;
|
|
@@ -31,7 +31,7 @@ export class SdLinearProgress {
|
|
|
31
31
|
clipPath: `inset(0 ${100 - this.clampedValue}% 0 0)`,
|
|
32
32
|
};
|
|
33
33
|
const valueText = `${Math.round(this.clampedValue)}%`;
|
|
34
|
-
return (h(Host, { key: '
|
|
34
|
+
return (h(Host, { key: 'c87705d4ca2e7d61de15412af8df8fe32aec6e56', style: hostStyle }, h("div", { key: '0343b5d209cf49e7d25bb7ede349eae791890e29', class: "sd-linear-progress__track" }, h("div", { key: '7771c6589c061d7bba7eb2ae88e1752d80912357', class: "sd-linear-progress__fill", style: fillStyle }), !this.indeterminate && (h("span", { key: '66f85b9d5f87d7c2aeafd6eadcdc3fb1739124c9', class: "sd-linear-progress__value sd-linear-progress__value--on-track" }, valueText)), !this.indeterminate && (h("span", { key: 'd8581b453770e4c8db55abddc6c57f9b90701786', class: "sd-linear-progress__value sd-linear-progress__value--on-fill", style: valueOnFillStyle }, valueText))), this.label && h("span", { key: '4223bfa7292cc9adeb9dca1ce18ee45cefc8d670', class: "sd-linear-progress__label" }, this.label)));
|
|
35
35
|
}
|
|
36
36
|
static get is() { return "sd-linear-progress"; }
|
|
37
37
|
static get originalStyleUrls() {
|
|
@@ -2,20 +2,40 @@ import { h } from "@stencil/core";
|
|
|
2
2
|
export class SdLoadingContainer {
|
|
3
3
|
visible = false;
|
|
4
4
|
message = '';
|
|
5
|
+
prevBodyOverflow = null;
|
|
5
6
|
/** 로딩 오버레이를 표시합니다. */
|
|
6
7
|
async show(options = {}) {
|
|
7
8
|
this.message = options.message ?? '';
|
|
8
9
|
this.visible = true;
|
|
10
|
+
this.lockScroll();
|
|
9
11
|
}
|
|
10
12
|
/** 로딩 오버레이를 숨깁니다. */
|
|
11
13
|
async hide() {
|
|
12
14
|
this.visible = false;
|
|
15
|
+
this.unlockScroll();
|
|
16
|
+
}
|
|
17
|
+
disconnectedCallback() {
|
|
18
|
+
this.unlockScroll();
|
|
19
|
+
}
|
|
20
|
+
/** 오버레이 표시 중 배경 스크롤을 차단합니다. */
|
|
21
|
+
lockScroll() {
|
|
22
|
+
if (this.prevBodyOverflow !== null)
|
|
23
|
+
return;
|
|
24
|
+
this.prevBodyOverflow = document.body.style.overflow;
|
|
25
|
+
document.body.style.overflow = 'hidden';
|
|
26
|
+
}
|
|
27
|
+
/** 배경 스크롤 차단을 해제합니다. */
|
|
28
|
+
unlockScroll() {
|
|
29
|
+
if (this.prevBodyOverflow === null)
|
|
30
|
+
return;
|
|
31
|
+
document.body.style.overflow = this.prevBodyOverflow;
|
|
32
|
+
this.prevBodyOverflow = null;
|
|
13
33
|
}
|
|
14
34
|
render() {
|
|
15
|
-
return (h("div", { key: '
|
|
35
|
+
return (h("div", { key: 'c2dad1bed0e513341a447f164fecbb2f879ed523', class: {
|
|
16
36
|
'sd-loading-container': true,
|
|
17
37
|
'sd-loading-container--visible': this.visible,
|
|
18
|
-
}, "aria-hidden": this.visible ? 'false' : 'true' }, h("div", { key: '
|
|
38
|
+
}, "aria-hidden": this.visible ? 'false' : 'true' }, h("div", { key: '254c3cb5eeb25b6c69b3812fbaada2a26d6620e0', class: "sd-loading-container__backdrop" }), h("div", { key: '58ca4033b25302d8a7ea3f25e6b5e8aa7ce9f51c', class: "sd-loading-container__content" }, h("sd-circle-progress", { key: 'c8d48fa1814186a674d3f7c8b63bcd26541299ba', indeterminate: true, type: "inverse" }), this.message && h("p", { key: '899a5f32ceecb23b4f88b750aa634106bb42b394', class: "sd-loading-container__message" }, this.message))));
|
|
19
39
|
}
|
|
20
40
|
static get is() { return "sd-loading-container"; }
|
|
21
41
|
static get originalStyleUrls() {
|
|
@@ -21,7 +21,7 @@ export const LOADING_MODAL_TYPOGRAPHY = {
|
|
|
21
21
|
lineHeight: Number(modalTokens.modal.loading.message.typography.lineHeight),
|
|
22
22
|
};
|
|
23
23
|
export const LOADING_MODAL_DEFAULT_MESSAGE = {
|
|
24
|
-
loading: '
|
|
24
|
+
loading: '작업 진행중...',
|
|
25
25
|
error: '작업에 실패하였습니다. 다시 시도해 주세요.',
|
|
26
26
|
};
|
|
27
27
|
export const LOADING_MODAL_DEFAULT_BUTTON_LABEL = {
|