@sellmate/design-system 1.0.62 → 1.0.64
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.modal-DmQUWbve.js → component.modal-BFelrSMx.js} +14 -0
- package/dist/cjs/constants-DJRV1upE.js +5 -0
- package/dist/cjs/design-system.cjs.js +3 -4
- package/dist/cjs/{index-BQt-JC6r.js → index-nsQP24mV.js} +130 -9
- package/dist/cjs/index.cjs.js +103 -32
- package/dist/cjs/loader.cjs.js +3 -4
- package/dist/cjs/sd-action-modal.cjs.entry.js +3 -3
- package/dist/cjs/sd-badge.cjs.entry.js +2 -2
- package/dist/cjs/sd-barcode-input.cjs.entry.js +4 -3
- package/dist/cjs/sd-button-v2_2.cjs.entry.js +9 -8
- package/dist/cjs/sd-button_4.cjs.entry.js +62 -18
- package/dist/cjs/sd-calendar.cjs.entry.js +1 -1
- package/dist/cjs/sd-card.cjs.entry.js +2 -2
- package/dist/cjs/sd-checkbox.cjs.entry.js +30 -5
- package/dist/cjs/sd-circle-progress.cjs.entry.js +71 -0
- package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +186 -0
- package/dist/cjs/sd-date-box.cjs.entry.js +1 -1
- package/dist/cjs/sd-date-picker-calendar.cjs.entry.js +3 -3
- package/dist/cjs/sd-date-picker-trigger.cjs.entry.js +4 -4
- package/dist/cjs/sd-date-picker.cjs.entry.js +5 -4
- package/dist/cjs/{sd-date-picker.config-DWC_aiD2.js → sd-date-picker.config-D8xSALVj.js} +3 -3
- package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +3 -3
- package/dist/cjs/sd-date-range-picker.cjs.entry.js +5 -4
- package/dist/cjs/sd-dropdown-button.cjs.entry.js +10 -5
- package/dist/cjs/sd-file-picker.cjs.entry.js +3 -2
- package/dist/cjs/sd-form.cjs.entry.js +1 -1
- package/dist/cjs/sd-ghost-button.cjs.entry.js +15 -6
- package/dist/cjs/sd-guide.cjs.entry.js +2 -2
- package/dist/cjs/sd-input_2.cjs.entry.js +8 -7
- package/dist/cjs/sd-loading-container.cjs.entry.js +29 -0
- package/dist/cjs/sd-modal-container.cjs.entry.js +45 -2
- package/dist/cjs/sd-number-input.cjs.entry.js +6 -10
- package/dist/cjs/{sd-select-v2.cjs.entry.js → sd-pagination_2.cjs.entry.js} +91 -4
- package/dist/cjs/sd-popover.cjs.entry.js +4 -4
- package/dist/cjs/sd-portal.cjs.entry.js +2 -2
- package/dist/cjs/sd-progress.cjs.entry.js +3 -3
- package/dist/cjs/sd-radio-button.cjs.entry.js +182 -0
- package/dist/cjs/sd-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/sd-radio.cjs.entry.js +6 -6
- package/dist/cjs/sd-select-dropdown_2.cjs.entry.js +4 -4
- package/dist/cjs/sd-select-group.cjs.entry.js +4 -3
- package/dist/cjs/sd-select-multiple-group.cjs.entry.js +4 -3
- package/dist/cjs/sd-select-multiple.cjs.entry.js +4 -3
- package/dist/cjs/sd-select-option-group.cjs.entry.js +4 -4
- package/dist/cjs/sd-select-v2-list-item_4.cjs.entry.js +661 -0
- package/dist/cjs/sd-select.cjs.entry.js +180 -0
- package/dist/cjs/sd-switch.cjs.entry.js +110 -0
- package/dist/cjs/sd-table.cjs.entry.js +424 -651
- package/dist/cjs/sd-tabs.cjs.entry.js +2 -2
- package/dist/cjs/sd-tag.cjs.entry.js +6 -5
- package/dist/cjs/sd-tbody.cjs.entry.js +66 -0
- package/dist/cjs/sd-td.cjs.entry.js +58 -0
- package/dist/cjs/sd-text-link.cjs.entry.js +10 -12
- package/dist/cjs/sd-textarea.cjs.entry.js +3 -2
- package/dist/cjs/sd-thead.cjs.entry.js +179 -0
- package/dist/cjs/sd-toast-container.cjs.entry.js +2 -2
- package/dist/cjs/sd-toast.cjs.entry.js +3 -3
- package/dist/cjs/sd-toggle.cjs.entry.js +96 -13
- package/dist/cjs/sd-tr.cjs.entry.js +171 -0
- package/dist/cjs/table-test.cjs.entry.js +96 -0
- package/dist/cjs/{tooltipArrow-CRCpqOYA.js → tooltipArrow-DhevfDPX.js} +1 -1
- package/dist/collection/__mocks__/nanoid-non-secure.js +13 -0
- package/dist/collection/__mocks__/nanoid.js +1 -0
- package/dist/collection/collection-manifest.json +11 -4
- package/dist/collection/components/sd-action-modal/sd-action-modal.js +1 -1
- package/dist/collection/components/sd-badge/sd-badge.js +1 -1
- package/dist/collection/components/sd-barcode-input/sd-barcode-input.css +3 -0
- package/dist/collection/components/sd-barcode-input/sd-barcode-input.js +22 -1
- package/dist/collection/components/sd-button/sd-button.css +37 -37
- package/dist/collection/components/sd-button-v2/sd-button-v2.css +44 -44
- package/dist/collection/components/sd-button-v2/sd-button-v2.js +31 -6
- package/dist/collection/components/sd-card/sd-card.js +1 -1
- package/dist/collection/components/sd-checkbox/sd-checkbox.config.js +3 -0
- package/dist/collection/components/sd-checkbox/sd-checkbox.css +15 -0
- package/dist/collection/components/sd-checkbox/sd-checkbox.js +36 -2
- package/dist/collection/components/sd-circle-progress/sd-circle-progress.config.js +24 -0
- package/dist/collection/components/sd-circle-progress/sd-circle-progress.css +53 -0
- package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +109 -0
- package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.css +2 -2
- package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +2 -2
- package/dist/collection/components/sd-date-picker/sd-date-picker-calendar/sd-date-picker-calendar.js +1 -1
- package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +2 -2
- package/dist/collection/components/sd-date-picker/sd-date-picker.config.js +1 -1
- package/dist/collection/components/sd-date-picker/sd-date-picker.js +26 -5
- package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +1 -1
- package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +26 -5
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.config.js +5 -0
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.css +46 -36
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +4 -4
- package/dist/collection/components/sd-field/sd-field.config.js +21 -0
- package/dist/collection/components/sd-field/sd-field.css +26 -16
- package/dist/collection/components/sd-field/sd-field.js +72 -11
- package/dist/collection/components/sd-file-picker/sd-file-picker.js +27 -6
- package/dist/collection/components/sd-ghost-button/sd-ghost-button.config.js +7 -1
- package/dist/collection/components/sd-ghost-button/sd-ghost-button.js +3 -3
- package/dist/collection/components/sd-guide/sd-guide.css +37 -37
- package/dist/collection/components/sd-input/sd-input.css +3 -0
- package/dist/collection/components/sd-input/sd-input.js +23 -2
- package/dist/collection/components/sd-loading-container/sd-loading-container.config.js +1 -0
- package/dist/collection/components/sd-loading-container/sd-loading-container.css +40 -0
- package/dist/collection/components/sd-loading-container/sd-loading-container.js +83 -0
- package/dist/collection/components/sd-loading-modal/sd-loading-modal.config.js +31 -0
- package/dist/collection/components/sd-loading-modal/sd-loading-modal.css +37 -0
- package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +184 -0
- package/dist/collection/components/sd-modal-container/sd-modal-container.js +89 -3
- package/dist/collection/components/sd-number-input/sd-number-input.config.js +0 -2
- package/dist/collection/components/sd-number-input/sd-number-input.css +0 -1
- package/dist/collection/components/sd-number-input/sd-number-input.js +24 -4
- package/dist/collection/components/sd-pagination/sd-pagination.js +3 -3
- package/dist/collection/components/sd-popover/sd-popover.js +2 -2
- package/dist/collection/components/sd-portal/sd-portal.js +1 -1
- package/dist/collection/components/sd-progress/sd-progress.js +2 -2
- package/dist/collection/components/sd-radio/sd-radio.config.js +1 -1
- package/dist/collection/components/sd-radio-button/sd-radio-button.config.js +45 -0
- package/dist/collection/components/sd-radio-button/sd-radio-button.css +71 -0
- package/dist/collection/components/{sd-radio-button-group/sd-radio-button-group.js → sd-radio-button/sd-radio-button.js} +49 -18
- package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.js +2 -2
- package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
- package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.js +3 -3
- package/dist/collection/components/sd-select/sd-select.css +4 -0
- package/dist/collection/components/sd-select/sd-select.js +22 -1
- package/dist/collection/components/sd-select-group/sd-select-group.css +4 -0
- package/dist/collection/components/sd-select-group/sd-select-group.js +22 -1
- package/dist/collection/components/sd-select-multiple/sd-select-multiple.css +4 -0
- package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +22 -1
- package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.css +4 -0
- package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js +22 -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-v2/sd-select-v2-list-item/sd-select-v2-list-item.js +2 -2
- package/dist/collection/components/sd-select-v2/sd-select-v2-list-item-search/sd-select-v2-list-item-search.css +4 -0
- package/dist/collection/components/sd-select-v2/sd-select-v2-list-item-search/sd-select-v2-list-item-search.js +6 -3
- package/dist/collection/components/sd-select-v2/sd-select-v2-listbox/sd-select-v2-listbox.css +2 -3
- package/dist/collection/components/sd-select-v2/sd-select-v2-listbox/sd-select-v2-listbox.js +2 -1
- package/dist/collection/components/sd-select-v2/sd-select-v2-trigger/sd-select-v2-trigger.js +2 -2
- package/dist/collection/components/sd-select-v2/sd-select-v2.config.js +1 -0
- package/dist/collection/components/sd-select-v2/sd-select-v2.js +24 -3
- package/dist/collection/components/sd-switch/sd-switch.config.js +23 -0
- package/dist/collection/components/sd-switch/sd-switch.css +54 -0
- package/dist/collection/components/{sd-toggle-button/sd-toggle-button.js → sd-switch/sd-switch.js} +30 -27
- package/dist/collection/components/sd-table/constants.js +1 -0
- package/dist/collection/components/sd-table/sd-table.css +76 -248
- package/dist/collection/components/sd-table/sd-table.js +705 -700
- package/dist/collection/components/sd-table/sd-tbody/sd-tbody.css +18 -0
- package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +105 -0
- package/dist/collection/components/sd-table/sd-td/sd-td.css +15 -0
- package/dist/collection/components/sd-table/sd-td/sd-td.js +121 -0
- package/dist/collection/components/sd-table/sd-thead/sd-thead.css +147 -0
- package/dist/collection/components/sd-table/sd-thead/sd-thead.js +442 -0
- package/dist/collection/components/sd-table/sd-tr/sd-tr.css +111 -0
- package/dist/collection/components/sd-table/sd-tr/sd-tr.js +376 -0
- package/dist/collection/components/sd-tabs/sd-tabs.js +1 -1
- package/dist/collection/components/sd-tag/sd-tag.js +2 -2
- package/dist/collection/components/sd-text-link/sd-text-link.css +1 -0
- package/dist/collection/components/sd-text-link/sd-text-link.js +7 -13
- package/dist/collection/components/sd-textarea/sd-textarea.js +22 -1
- package/dist/collection/components/sd-toast/sd-toast.js +2 -2
- package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
- package/dist/collection/components/sd-toggle/sd-toggle.config.js +33 -0
- package/dist/collection/components/sd-toggle/sd-toggle.css +38 -50
- package/dist/collection/components/sd-toggle/sd-toggle.js +29 -12
- package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
- package/dist/collection/components/table-test/table-test.css +59 -0
- package/dist/collection/components/table-test/table-test.js +316 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/utils/loading.js +43 -0
- package/dist/collection/utils/modal.js +26 -0
- package/dist/components/index.js +1 -1
- package/dist/components/p-6LkBUj0w.js +1 -0
- package/dist/components/{p-DlujHEXS.js → p-6cueWz-l.js} +1 -1
- package/dist/components/{p-D0wZv01W.js → p-AKpbKrkW.js} +1 -1
- package/dist/components/p-B1S4ybd6.js +1 -0
- package/dist/components/{p-D93Cb_Vw.js → p-B6OgnOKC.js} +1 -1
- package/dist/components/{p-lKwhftf9.js → p-B6RvTdqt.js} +1 -1
- package/dist/components/p-BLC3AWW8.js +1 -0
- package/dist/components/{p-BUAwjF_Z.js → p-BZ7V5xV5.js} +1 -1
- package/dist/components/{p-BWgJ9XTj.js → p-BdsI1E5l.js} +1 -1
- package/dist/components/{p-DdBIc8AE.js → p-BgRPWxrz.js} +1 -1
- package/dist/components/{p-DCv5afjJ.js → p-Bh548Ckv.js} +1 -1
- package/dist/components/p-BjjrNz4C.js +1 -0
- package/dist/components/{p-BVBMsoZP.js → p-BkUclgga.js} +1 -1
- package/dist/components/p-C2r48NLP.js +1 -0
- package/dist/components/{p-BtH5wWA5.js → p-CGXwtYAv.js} +1 -1
- package/dist/components/p-CGssy8eb.js +1 -0
- package/dist/components/p-CKU8CeW3.js +1 -0
- package/dist/components/{p-BHQirDZt.js → p-CRl8Anfr.js} +1 -1
- package/dist/components/p-CU095QAR.js +1 -0
- package/dist/components/p-CpclstHV.js +1 -0
- package/dist/components/{p-C2Yw3PoX.js → p-Cpu_hXwN.js} +1 -1
- package/dist/components/{p-gTPCqs3t.js → p-Cr_74QR7.js} +1 -1
- package/dist/components/{p-BsJy4pgR.js → p-D9FDutsj.js} +1 -1
- package/dist/components/p-DBnszF5F.js +1 -0
- package/dist/components/p-DC9KYl3L.js +1 -0
- package/dist/components/p-DOXMJi-V.js +1 -0
- package/dist/components/p-DRY8HJ-T.js +1 -0
- package/dist/components/{p-98NWgkAU.js → p-DpsDTjcN.js} +1 -1
- package/dist/components/p-DuYi4aqj.js +1 -0
- package/dist/components/{p-AdSqif48.js → p-DxzgCf_d.js} +1 -1
- package/dist/components/p-TMuoVuhE.js +1 -0
- package/dist/components/{p-CE1Hmoij.js → p-VXLJLI30.js} +1 -1
- package/dist/components/p-bYCOh35g.js +1 -0
- package/dist/components/p-kZ5N_lFC.js +1 -0
- package/dist/components/{p-CqU3a1re.js → p-puZ1xlrr.js} +1 -1
- package/dist/components/p-sZMi_32I.js +1 -0
- package/dist/components/{p-Ci3yfjxH.js → p-xmvTLf74.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-v2.js +1 -1
- package/dist/components/sd-button.js +1 -1
- package/dist/components/sd-calendar.js +1 -1
- package/dist/components/sd-card.js +1 -1
- package/dist/components/sd-checkbox.js +1 -1
- package/dist/components/{sd-loading-spinner.d.ts → sd-circle-progress.d.ts} +4 -4
- package/dist/components/sd-circle-progress.js +1 -0
- package/dist/components/sd-confirm-modal.js +1 -1
- package/dist/components/sd-date-box.js +1 -1
- package/dist/components/sd-date-picker-calendar.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-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-radio-button-group.d.ts → sd-loading-container.d.ts} +4 -4
- package/dist/components/sd-loading-container.js +1 -0
- package/dist/components/{sd-toggle-button.d.ts → sd-loading-modal.d.ts} +4 -4
- package/dist/components/sd-loading-modal.js +1 -0
- 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-portal.js +1 -1
- package/dist/components/sd-progress.js +1 -1
- package/dist/components/sd-radio-button.d.ts +11 -0
- package/dist/components/sd-radio-button.js +1 -0
- package/dist/components/sd-radio-group.js +1 -1
- package/dist/components/sd-radio.js +1 -1
- package/dist/components/sd-select-dropdown.js +1 -1
- package/dist/components/sd-select-group.js +1 -1
- package/dist/components/sd-select-multiple-group.js +1 -1
- package/dist/components/sd-select-multiple.js +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-v2-list-item-search.js +1 -1
- package/dist/components/sd-select-v2-list-item.js +1 -1
- package/dist/components/sd-select-v2-listbox.js +1 -1
- package/dist/components/sd-select-v2-trigger.js +1 -1
- package/dist/components/sd-select-v2.js +1 -1
- package/dist/components/sd-select.js +1 -1
- package/dist/components/sd-switch.d.ts +11 -0
- package/dist/components/sd-switch.js +1 -0
- 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.d.ts +11 -0
- package/dist/components/sd-tbody.js +1 -0
- package/dist/components/sd-td.d.ts +11 -0
- package/dist/components/sd-td.js +1 -0
- package/dist/components/sd-text-link.js +1 -1
- package/dist/components/sd-textarea.js +1 -1
- package/dist/components/sd-thead.d.ts +11 -0
- package/dist/components/sd-thead.js +1 -0
- 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.d.ts +11 -0
- package/dist/components/sd-tr.js +1 -0
- package/dist/components/table-test.d.ts +11 -0
- package/dist/components/table-test.js +1 -0
- package/dist/design-system/design-system.css +1 -1
- package/dist/design-system/design-system.esm.js +1 -1
- package/dist/design-system/index.esm.js +1 -1
- package/dist/design-system/p-010e4f47.entry.js +1 -0
- package/dist/design-system/p-03099a57.entry.js +1 -0
- package/dist/design-system/p-04be87a4.entry.js +1 -0
- package/dist/design-system/{p-e9c28bdc.entry.js → p-09ba9dbc.entry.js} +1 -1
- package/dist/design-system/p-0fbb6d92.entry.js +1 -0
- package/dist/design-system/p-12a03c88.entry.js +1 -0
- package/dist/design-system/p-15cda79c.entry.js +1 -0
- package/dist/design-system/{p-a03ad24f.entry.js → p-1d310832.entry.js} +1 -1
- package/dist/design-system/p-2ae97b1c.entry.js +1 -0
- package/dist/design-system/p-2f64dd95.entry.js +1 -0
- package/dist/design-system/p-33e4ce64.entry.js +1 -0
- package/dist/design-system/{p-14b67a6e.entry.js → p-363da5ff.entry.js} +1 -1
- package/dist/design-system/p-3d341993.entry.js +1 -0
- package/dist/design-system/p-3f79f1d1.entry.js +1 -0
- package/dist/design-system/{p-c59191d3.entry.js → p-40495e05.entry.js} +1 -1
- package/dist/design-system/p-4128c17f.entry.js +1 -0
- package/dist/design-system/{p-614c9883.entry.js → p-4a53d7b0.entry.js} +1 -1
- package/dist/design-system/{p-9ae589c4.entry.js → p-4dcadde3.entry.js} +1 -1
- package/dist/design-system/{p-62992b73.entry.js → p-53bc77f8.entry.js} +1 -1
- package/dist/design-system/{p-28058050.entry.js → p-5a63febd.entry.js} +1 -1
- package/dist/design-system/p-6644c4a0.entry.js +1 -0
- package/dist/design-system/{p-30055371.entry.js → p-6c71d7b7.entry.js} +1 -1
- package/dist/design-system/{p-7a18a52b.entry.js → p-73acee07.entry.js} +1 -1
- package/dist/design-system/p-7e09fdd5.entry.js +1 -0
- package/dist/design-system/{p-4272b9e6.entry.js → p-84a329fb.entry.js} +1 -1
- package/dist/design-system/p-867ec4ee.entry.js +1 -0
- package/dist/design-system/p-8acf3b67.entry.js +1 -0
- package/dist/design-system/p-8d2328ae.entry.js +1 -0
- package/dist/design-system/p-96b14db1.entry.js +1 -0
- package/dist/design-system/p-BqHL8W3c.js +2 -0
- package/dist/design-system/{p-DSRYrM1n.js → p-COK6PVLC.js} +1 -1
- package/dist/design-system/p-DOXMJi-V.js +1 -0
- package/dist/design-system/{p-72b564ed.entry.js → p-a129711d.entry.js} +1 -1
- package/dist/design-system/{p-3acd076e.entry.js → p-a27718c1.entry.js} +1 -1
- package/dist/design-system/p-a983560d.entry.js +1 -0
- package/dist/design-system/{p-3d10be45.entry.js → p-a9a91e69.entry.js} +1 -1
- package/dist/design-system/p-ae1800c0.entry.js +1 -0
- package/dist/design-system/p-b1fe12f8.entry.js +1 -0
- package/dist/design-system/p-b3279f07.entry.js +1 -0
- package/dist/design-system/p-b60ae063.entry.js +1 -0
- package/dist/design-system/p-b6e02544.entry.js +1 -0
- package/dist/design-system/p-b81e0493.entry.js +1 -0
- package/dist/design-system/p-bYCOh35g.js +1 -0
- package/dist/design-system/{p-85e22acd.entry.js → p-c4e68815.entry.js} +1 -1
- package/dist/design-system/p-cb65a9e4.entry.js +1 -0
- package/dist/design-system/p-cf1156cb.entry.js +1 -0
- package/dist/design-system/p-d040ec6f.entry.js +1 -0
- package/dist/design-system/{p-5d2e8779.entry.js → p-d04551be.entry.js} +1 -1
- package/dist/design-system/p-d8eb17a8.entry.js +1 -0
- package/dist/design-system/p-e0f9e5b5.entry.js +1 -0
- package/dist/design-system/p-e1fdd540.entry.js +1 -0
- package/dist/design-system/{p-2bd887ca.entry.js → p-e33389b8.entry.js} +1 -1
- package/dist/design-system/p-e78faea6.entry.js +1 -0
- package/dist/design-system/p-ed61fe19.entry.js +1 -0
- package/dist/design-system/p-f3d082c8.entry.js +1 -0
- package/dist/design-system/p-f9b9204d.entry.js +1 -0
- package/dist/design-system/{p-13fed1bd.entry.js → p-fd296c73.entry.js} +1 -1
- package/dist/design-system/p-sZMi_32I.js +1 -0
- package/dist/esm/{component.modal-mO5GcwI3.js → component.modal-DOXMJi-V.js} +14 -0
- package/dist/esm/constants-sZMi_32I.js +3 -0
- package/dist/esm/design-system.js +3 -4
- package/dist/esm/{index-DsU722JF.js → index-BqHL8W3c.js} +128 -10
- package/dist/esm/index.js +103 -33
- package/dist/esm/loader.js +3 -4
- package/dist/esm/sd-action-modal.entry.js +3 -3
- package/dist/esm/sd-badge.entry.js +2 -2
- package/dist/esm/sd-barcode-input.entry.js +4 -3
- package/dist/esm/sd-button-v2_2.entry.js +9 -8
- package/dist/esm/sd-button_4.entry.js +62 -18
- package/dist/esm/sd-calendar.entry.js +1 -1
- package/dist/esm/sd-card.entry.js +2 -2
- package/dist/esm/sd-checkbox.entry.js +30 -5
- package/dist/esm/sd-circle-progress.entry.js +69 -0
- package/dist/esm/sd-confirm-modal_2.entry.js +183 -0
- package/dist/esm/sd-date-box.entry.js +1 -1
- package/dist/esm/sd-date-picker-calendar.entry.js +3 -3
- package/dist/esm/sd-date-picker-trigger.entry.js +4 -4
- package/dist/esm/{sd-date-picker.config-C4i826lM.js → sd-date-picker.config-bYCOh35g.js} +3 -3
- package/dist/esm/sd-date-picker.entry.js +5 -4
- package/dist/esm/sd-date-range-picker-calendar.entry.js +3 -3
- package/dist/esm/sd-date-range-picker.entry.js +5 -4
- package/dist/esm/sd-dropdown-button.entry.js +10 -5
- package/dist/esm/sd-file-picker.entry.js +3 -2
- package/dist/esm/sd-form.entry.js +1 -1
- package/dist/esm/sd-ghost-button.entry.js +15 -6
- package/dist/esm/sd-guide.entry.js +2 -2
- package/dist/esm/sd-input_2.entry.js +8 -7
- package/dist/esm/sd-loading-container.entry.js +27 -0
- package/dist/esm/sd-modal-container.entry.js +45 -2
- package/dist/esm/sd-number-input.entry.js +6 -10
- package/dist/esm/{sd-select-v2.entry.js → sd-pagination_2.entry.js} +91 -5
- package/dist/esm/sd-popover.entry.js +4 -4
- package/dist/esm/sd-portal.entry.js +2 -2
- package/dist/esm/sd-progress.entry.js +3 -3
- package/dist/esm/sd-radio-button.entry.js +180 -0
- package/dist/esm/sd-radio-group.entry.js +1 -1
- package/dist/esm/sd-radio.entry.js +6 -6
- package/dist/esm/sd-select-dropdown_2.entry.js +4 -4
- package/dist/esm/sd-select-group.entry.js +4 -3
- package/dist/esm/sd-select-multiple-group.entry.js +4 -3
- package/dist/esm/sd-select-multiple.entry.js +4 -3
- package/dist/esm/sd-select-option-group.entry.js +4 -4
- package/dist/esm/sd-select-v2-list-item_4.entry.js +656 -0
- package/dist/esm/sd-select.entry.js +178 -0
- package/dist/esm/sd-switch.entry.js +108 -0
- package/dist/esm/sd-table.entry.js +424 -651
- package/dist/esm/sd-tabs.entry.js +2 -2
- package/dist/esm/sd-tag.entry.js +6 -5
- package/dist/esm/sd-tbody.entry.js +64 -0
- package/dist/esm/sd-td.entry.js +56 -0
- package/dist/esm/sd-text-link.entry.js +10 -12
- package/dist/esm/sd-textarea.entry.js +3 -2
- package/dist/esm/sd-thead.entry.js +177 -0
- package/dist/esm/sd-toast-container.entry.js +2 -2
- package/dist/esm/sd-toast.entry.js +3 -3
- package/dist/esm/sd-toggle.entry.js +96 -13
- package/dist/esm/sd-tr.entry.js +169 -0
- package/dist/esm/table-test.entry.js +94 -0
- package/dist/esm/{tooltipArrow-CJuzsrdH.js → tooltipArrow-BcsrQx1U.js} +1 -1
- package/dist/types/__mocks__/nanoid-non-secure.d.ts +2 -0
- package/dist/types/__mocks__/nanoid.d.ts +1 -0
- package/dist/types/components/sd-barcode-input/sd-barcode-input.d.ts +1 -0
- package/dist/types/components/sd-button-v2/sd-button-v2.d.ts +1 -0
- package/dist/types/components/sd-checkbox/sd-checkbox.config.d.ts +3 -0
- package/dist/types/components/sd-checkbox/sd-checkbox.d.ts +2 -0
- package/dist/types/components/sd-circle-progress/sd-circle-progress.config.d.ts +9 -0
- package/dist/types/components/sd-circle-progress/sd-circle-progress.d.ts +8 -0
- package/dist/types/components/sd-date-picker/sd-date-picker.d.ts +1 -0
- package/dist/types/components/sd-date-range-picker/sd-date-range-picker.d.ts +1 -0
- package/dist/types/components/sd-dropdown-button/sd-dropdown-button.config.d.ts +1 -0
- package/dist/types/components/sd-field/sd-field.config.d.ts +9 -0
- package/dist/types/components/sd-field/sd-field.d.ts +3 -0
- package/dist/types/components/sd-file-picker/sd-file-picker.d.ts +1 -0
- package/dist/types/components/sd-ghost-button/sd-ghost-button.config.d.ts +1 -1
- package/dist/types/components/sd-input/sd-input.d.ts +1 -0
- package/dist/types/components/sd-loading-container/sd-loading-container.config.d.ts +4 -0
- package/dist/types/components/sd-loading-container/sd-loading-container.d.ts +8 -0
- package/dist/types/components/sd-loading-modal/sd-loading-modal.config.d.ts +25 -0
- package/dist/types/components/sd-loading-modal/sd-loading-modal.d.ts +15 -0
- package/dist/types/components/sd-modal-container/sd-modal-container.config.d.ts +10 -0
- package/dist/types/components/sd-modal-container/sd-modal-container.d.ts +6 -2
- package/dist/types/components/sd-number-input/sd-number-input.config.d.ts +0 -1
- package/dist/types/components/sd-number-input/sd-number-input.d.ts +1 -0
- package/dist/types/components/sd-radio-button/sd-radio-button.config.d.ts +44 -0
- package/dist/types/components/{sd-radio-button-group/sd-radio-button-group.d.ts → sd-radio-button/sd-radio-button.d.ts} +4 -3
- package/dist/types/components/sd-select/sd-select.d.ts +1 -0
- package/dist/types/components/sd-select-group/sd-select-group.d.ts +1 -0
- package/dist/types/components/sd-select-multiple/sd-select-multiple.d.ts +1 -0
- package/dist/types/components/sd-select-multiple-group/sd-select-multiple-group.d.ts +1 -0
- package/dist/types/components/sd-select-v2/sd-select-v2.config.d.ts +1 -0
- package/dist/types/components/sd-select-v2/sd-select-v2.d.ts +1 -0
- package/dist/types/components/sd-switch/sd-switch.config.d.ts +22 -0
- package/dist/types/components/{sd-toggle-button/sd-toggle-button.d.ts → sd-switch/sd-switch.d.ts} +2 -6
- package/dist/types/components/sd-table/constants.d.ts +44 -0
- package/dist/types/components/sd-table/sd-table.d.ts +103 -115
- package/dist/types/components/sd-table/sd-tbody/sd-tbody.d.ts +14 -0
- package/dist/types/components/sd-table/sd-td/sd-td.d.ts +12 -0
- package/dist/types/components/sd-table/sd-thead/sd-thead.d.ts +36 -0
- package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +34 -0
- package/dist/types/components/sd-textarea/sd-textarea.d.ts +1 -0
- package/dist/types/components/sd-toggle/sd-toggle.config.d.ts +32 -0
- package/dist/types/components/sd-toggle/sd-toggle.d.ts +0 -3
- package/dist/types/components/table-test/table-test.d.ts +46 -0
- package/dist/types/components.d.ts +649 -141
- package/dist/types/index.d.ts +3 -1
- package/dist/types/utils/loading.d.ts +7 -0
- package/dist/types/utils/modal.d.ts +19 -3
- package/hydrate/index.js +2500 -968
- package/hydrate/index.mjs +2500 -968
- package/package.json +1 -1
- package/readme.md +1 -1
- package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -5
- package/dist/cjs/sd-confirm-modal.cjs.entry.js +0 -106
- package/dist/cjs/sd-loading-spinner_3.cjs.entry.js +0 -283
- package/dist/cjs/sd-radio-button-group.cjs.entry.js +0 -57
- package/dist/cjs/sd-select-v2-list-item_2.cjs.entry.js +0 -150
- package/dist/cjs/sd-select-v2-listbox_2.cjs.entry.js +0 -353
- package/dist/cjs/sd-select-v2.config-7xBJQhvx.js +0 -171
- package/dist/cjs/sd-toggle-button.cjs.entry.js +0 -49
- package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.css +0 -44
- package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js +0 -46
- package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.css +0 -85
- package/dist/collection/components/sd-toggle-button/sd-toggle-button.css +0 -47
- package/dist/components/p-5OtzmjLh.js +0 -1
- package/dist/components/p-BFaIxm6b.js +0 -1
- package/dist/components/p-BP-QKaKz.js +0 -1
- package/dist/components/p-BSZadK9N.js +0 -1
- package/dist/components/p-BbtO5CEW.js +0 -1
- package/dist/components/p-BxPyZJaz.js +0 -1
- package/dist/components/p-C-qSDgVU.js +0 -1
- package/dist/components/p-C4i826lM.js +0 -1
- package/dist/components/p-CEa1HSpw.js +0 -1
- package/dist/components/p-CYRGa0VL.js +0 -1
- package/dist/components/p-ClgihpRm.js +0 -1
- package/dist/components/p-D-Y0-FQk.js +0 -1
- package/dist/components/p-D-pFdq6g.js +0 -1
- package/dist/components/p-DPipeCRI.js +0 -1
- package/dist/components/p-DSYw-7RA.js +0 -1
- package/dist/components/p-DXAB0k9r.js +0 -1
- package/dist/components/p-mO5GcwI3.js +0 -1
- package/dist/components/sd-loading-spinner.js +0 -1
- package/dist/components/sd-radio-button-group.js +0 -1
- package/dist/components/sd-toggle-button.js +0 -1
- package/dist/design-system/p-00207f08.entry.js +0 -1
- package/dist/design-system/p-067b0b3c.entry.js +0 -1
- package/dist/design-system/p-0e6f5a99.entry.js +0 -1
- package/dist/design-system/p-22a4972a.entry.js +0 -1
- package/dist/design-system/p-27df33c1.entry.js +0 -1
- package/dist/design-system/p-3ac6a626.entry.js +0 -1
- package/dist/design-system/p-6610c16b.entry.js +0 -1
- package/dist/design-system/p-739ac181.entry.js +0 -1
- package/dist/design-system/p-7dce4241.entry.js +0 -1
- package/dist/design-system/p-7e4c0a36.entry.js +0 -1
- package/dist/design-system/p-8b5b2866.entry.js +0 -1
- package/dist/design-system/p-90f51f65.entry.js +0 -1
- package/dist/design-system/p-C3eQSZx-.js +0 -1
- package/dist/design-system/p-C4i826lM.js +0 -1
- package/dist/design-system/p-DQuL1Twl.js +0 -1
- package/dist/design-system/p-DsU722JF.js +0 -2
- package/dist/design-system/p-a6bc8512.entry.js +0 -1
- package/dist/design-system/p-afeb740a.entry.js +0 -1
- package/dist/design-system/p-b3e0e6f4.entry.js +0 -1
- package/dist/design-system/p-ba90dc5f.entry.js +0 -1
- package/dist/design-system/p-bad88292.entry.js +0 -1
- package/dist/design-system/p-cbb5575d.entry.js +0 -1
- package/dist/design-system/p-ce6a0b0f.entry.js +0 -1
- package/dist/design-system/p-d07448fe.entry.js +0 -1
- package/dist/design-system/p-d1a94401.entry.js +0 -1
- package/dist/design-system/p-d5b5cfc7.entry.js +0 -1
- package/dist/design-system/p-d75e0dc0.entry.js +0 -1
- package/dist/design-system/p-dee605b1.entry.js +0 -1
- package/dist/design-system/p-e9ed9c00.entry.js +0 -1
- package/dist/design-system/p-f8567970.entry.js +0 -1
- package/dist/design-system/p-fa22f13c.entry.js +0 -1
- package/dist/design-system/p-fa8b64c2.entry.js +0 -1
- package/dist/design-system/p-fbac6160.entry.js +0 -1
- package/dist/design-system/p-mO5GcwI3.js +0 -1
- package/dist/esm/app-globals-DQuL1Twl.js +0 -3
- package/dist/esm/sd-confirm-modal.entry.js +0 -104
- package/dist/esm/sd-loading-spinner_3.entry.js +0 -279
- package/dist/esm/sd-radio-button-group.entry.js +0 -55
- package/dist/esm/sd-select-v2-list-item_2.entry.js +0 -147
- package/dist/esm/sd-select-v2-listbox_2.entry.js +0 -350
- package/dist/esm/sd-select-v2.config-C3eQSZx-.js +0 -158
- package/dist/esm/sd-toggle-button.entry.js +0 -47
- package/dist/types/components/sd-loading-spinner/sd-loading-spinner.d.ts +0 -5
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h } from './index-DsU722JF.js';
|
|
2
|
-
import { e as LIST_ITEM_LAYOUT, g as LIST_ITEM_COLORS, h as LIST_ITEM_TYPOGRAPHY, i as SEARCH_DEBOUNCE_MS } from './sd-select-v2.config-C3eQSZx-.js';
|
|
3
|
-
|
|
4
|
-
const sdSelectV2ListItemCss = () => `sd-select-v2-list-item{display:block}sd-select-v2-list-item .sd-select-v2-list-item{display:flex;align-items:center;gap:var(--list-item-gap);padding:var(--list-item-padding-y) var(--list-item-padding-right) var(--list-item-padding-y) var(--list-item-padding-left);font-size:var(--list-item-font-size);line-height:var(--list-item-line-height);font-weight:var(--list-item-font-weight);background:var(--list-item-bg);color:var(--list-item-color);cursor:default;user-select:none}sd-select-v2-list-item .sd-select-v2-list-item--selectable{cursor:pointer}sd-select-v2-list-item .sd-select-v2-list-item--depth1-group{border-top:var(--list-item-border-top);font-weight:700}sd-select-v2-list-item .sd-select-v2-list-item--depth2-group{font-weight:500}sd-select-v2-list-item .sd-select-v2-list-item--focused.sd-select-v2-list-item--selectable:not(.sd-select-v2-list-item--disabled){background:var(--list-item-bg-hover);color:var(--list-item-color-hover)}sd-select-v2-list-item .sd-select-v2-list-item--selected:not(.sd-select-v2-list-item--group){font-weight:700;color:var(--list-item-bg-hover)}sd-select-v2-list-item .sd-select-v2-list-item--selected.sd-select-v2-list-item--focused{color:var(--list-item-color-hover)}sd-select-v2-list-item .sd-select-v2-list-item--disabled{color:var(--list-item-color-disabled);cursor:not-allowed}sd-select-v2-list-item .sd-select-v2-list-item__label{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}sd-select-v2-list-item .sd-select-v2-list-item__count{flex-shrink:0;font-weight:500;color:var(--list-item-color-disabled)}sd-select-v2-list-item .sd-select-v2-list-item--group.sd-select-v2-list-item--focused .sd-select-v2-list-item__count{color:#ffffff}sd-select-v2-list-item .sd-select-v2-list-item__checkbox{flex-shrink:0}`;
|
|
5
|
-
|
|
6
|
-
const SdSelectV2ListItem = class {
|
|
7
|
-
constructor(hostRef) {
|
|
8
|
-
registerInstance(this, hostRef);
|
|
9
|
-
this.listItemClick = createEvent(this, "sdListItemClick", 7);
|
|
10
|
-
}
|
|
11
|
-
option;
|
|
12
|
-
depth = 1;
|
|
13
|
-
isSelected = false;
|
|
14
|
-
isFocused = false;
|
|
15
|
-
useCheckbox = false;
|
|
16
|
-
countInfo;
|
|
17
|
-
listItemClick;
|
|
18
|
-
get isGroup() {
|
|
19
|
-
return !!this.option.children;
|
|
20
|
-
}
|
|
21
|
-
get isSelectable() {
|
|
22
|
-
return !this.isGroup || this.useCheckbox;
|
|
23
|
-
}
|
|
24
|
-
get depthKey() {
|
|
25
|
-
if (this.depth <= 1)
|
|
26
|
-
return 'depth1';
|
|
27
|
-
if (this.depth === 2)
|
|
28
|
-
return 'depth2';
|
|
29
|
-
return 'depth3';
|
|
30
|
-
}
|
|
31
|
-
get paddingLeft() {
|
|
32
|
-
return `${LIST_ITEM_LAYOUT.paddingLeft[this.depthKey]}px`;
|
|
33
|
-
}
|
|
34
|
-
handleClick = (e) => {
|
|
35
|
-
e.stopPropagation();
|
|
36
|
-
if (this.option.disabled || !this.isSelectable)
|
|
37
|
-
return;
|
|
38
|
-
this.listItemClick.emit(this.option);
|
|
39
|
-
};
|
|
40
|
-
handleCheckboxClick = (e) => {
|
|
41
|
-
e.stopPropagation();
|
|
42
|
-
};
|
|
43
|
-
handleCheckboxUpdate = (e) => {
|
|
44
|
-
e.stopPropagation();
|
|
45
|
-
if (this.option.disabled || !this.isSelectable)
|
|
46
|
-
return;
|
|
47
|
-
this.listItemClick.emit(this.option);
|
|
48
|
-
};
|
|
49
|
-
render() {
|
|
50
|
-
const isGroup = this.isGroup;
|
|
51
|
-
const isDepth1Group = isGroup && this.depth === 1;
|
|
52
|
-
const isDepth2Group = isGroup && this.depth === 2;
|
|
53
|
-
const cssVars = {
|
|
54
|
-
'--list-item-padding-y': `${LIST_ITEM_LAYOUT.paddingY}px`,
|
|
55
|
-
'--list-item-padding-left': this.paddingLeft,
|
|
56
|
-
'--list-item-padding-right': `${LIST_ITEM_LAYOUT.paddingRight}px`,
|
|
57
|
-
'--list-item-gap': `${LIST_ITEM_LAYOUT.gap}px`,
|
|
58
|
-
'--list-item-font-size': `${LIST_ITEM_TYPOGRAPHY.fontSize}px`,
|
|
59
|
-
'--list-item-line-height': `${LIST_ITEM_TYPOGRAPHY.lineHeight}px`,
|
|
60
|
-
'--list-item-font-weight': LIST_ITEM_TYPOGRAPHY.fontWeight,
|
|
61
|
-
'--list-item-bg': isDepth1Group
|
|
62
|
-
? LIST_ITEM_COLORS.depth1.bg
|
|
63
|
-
: isDepth2Group
|
|
64
|
-
? LIST_ITEM_COLORS.depth2.bg
|
|
65
|
-
: LIST_ITEM_COLORS.bg.default,
|
|
66
|
-
'--list-item-bg-hover': LIST_ITEM_COLORS.bg.hover,
|
|
67
|
-
'--list-item-color': LIST_ITEM_COLORS.content.default,
|
|
68
|
-
'--list-item-color-hover': LIST_ITEM_COLORS.content.hover,
|
|
69
|
-
'--list-item-color-disabled': LIST_ITEM_COLORS.content.disabled,
|
|
70
|
-
};
|
|
71
|
-
if (isDepth1Group) {
|
|
72
|
-
cssVars['--list-item-border-top'] = `${LIST_ITEM_COLORS.depth1.borderWidth}px solid ${LIST_ITEM_COLORS.depth1.border}`;
|
|
73
|
-
}
|
|
74
|
-
return (h("div", { key: '8cd297b8d4ff1a7ef5c64bcaefef9cc54b3de357', class: {
|
|
75
|
-
'sd-select-v2-list-item': true,
|
|
76
|
-
'sd-select-v2-list-item--group': isGroup,
|
|
77
|
-
'sd-select-v2-list-item--depth1-group': isDepth1Group,
|
|
78
|
-
'sd-select-v2-list-item--depth2-group': isDepth2Group,
|
|
79
|
-
'sd-select-v2-list-item--selected': this.isSelected === true,
|
|
80
|
-
'sd-select-v2-list-item--indeterminate': this.isSelected === null,
|
|
81
|
-
'sd-select-v2-list-item--focused': this.isFocused,
|
|
82
|
-
'sd-select-v2-list-item--selectable': this.isSelectable && !this.option.disabled,
|
|
83
|
-
'sd-select-v2-list-item--disabled': !!this.option.disabled,
|
|
84
|
-
}, style: cssVars, onClick: this.handleClick }, this.useCheckbox && (h("sd-checkbox", { key: '11597153f05d17fc172920a65d26d74b4b7aa239', value: this.isSelected === null ? null : !!this.isSelected, disabled: this.option.disabled, class: "sd-select-v2-list-item__checkbox", onClick: this.handleCheckboxClick, onSdUpdate: this.handleCheckboxUpdate })), h("span", { key: '1dc78dcbffc3f3826fac7a9a3b8aa300c3754de6', class: "sd-select-v2-list-item__label" }, this.option.label), this.countInfo && (h("span", { key: '5b96136bc54b241359e60849ebd1e792eb749c0d', class: "sd-select-v2-list-item__count" }, "(", this.countInfo.selected, "/", this.countInfo.total, ")"))));
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
SdSelectV2ListItem.style = sdSelectV2ListItemCss();
|
|
88
|
-
|
|
89
|
-
const sdSelectV2ListItemSearchCss = () => `sd-select-v2-list-item-search{display:block}sd-select-v2-list-item-search .sd-select-v2-list-item-search{padding:4px 8px;position:sticky;top:0;z-index:1;background:white}sd-select-v2-list-item-search .sd-select-v2-list-item-search--scrolled{box-shadow:0 2px 4px rgba(0, 0, 0, 0.08)}sd-select-v2-list-item-search .sd-select-v2-list-item-search__inner{display:flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid #CCCCCC;border-radius:4px;background:white}sd-select-v2-list-item-search .sd-select-v2-list-item-search__inner:focus-within{border-color:#0075FF}sd-select-v2-list-item-search .sd-select-v2-list-item-search__icon{flex-shrink:0}sd-select-v2-list-item-search .sd-select-v2-list-item-search__input{flex:1;border:none;outline:none;font-size:12px;line-height:20px;color:#222222;background:transparent;min-width:0}sd-select-v2-list-item-search .sd-select-v2-list-item-search__input::placeholder{color:#AAAAAA}sd-select-v2-list-item-search .sd-select-v2-list-item-search__clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:2px;border:none;background:transparent;cursor:pointer;border-radius:2px}sd-select-v2-list-item-search .sd-select-v2-list-item-search__clear:hover{background:#F0F0F0}`;
|
|
90
|
-
|
|
91
|
-
const SdSelectV2ListItemSearch = class {
|
|
92
|
-
constructor(hostRef) {
|
|
93
|
-
registerInstance(this, hostRef);
|
|
94
|
-
this.searchFilter = createEvent(this, "sdSearchFilter", 7);
|
|
95
|
-
this.searchFocus = createEvent(this, "sdSearchFocus", 7);
|
|
96
|
-
}
|
|
97
|
-
isScrolled = false;
|
|
98
|
-
searchText = '';
|
|
99
|
-
searchFilter;
|
|
100
|
-
searchFocus;
|
|
101
|
-
inputEl;
|
|
102
|
-
debounceTimer;
|
|
103
|
-
focusRafId;
|
|
104
|
-
componentDidLoad() {
|
|
105
|
-
requestAnimationFrame(() => {
|
|
106
|
-
this.focusRafId = requestAnimationFrame(() => {
|
|
107
|
-
this.inputEl?.focus();
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
async sdFocus() {
|
|
112
|
-
this.inputEl?.focus();
|
|
113
|
-
}
|
|
114
|
-
handleInput = (e) => {
|
|
115
|
-
this.searchText = e.target.value;
|
|
116
|
-
if (this.debounceTimer)
|
|
117
|
-
clearTimeout(this.debounceTimer);
|
|
118
|
-
this.debounceTimer = setTimeout(() => {
|
|
119
|
-
this.searchFilter.emit(this.searchText);
|
|
120
|
-
}, SEARCH_DEBOUNCE_MS);
|
|
121
|
-
};
|
|
122
|
-
handleClear = (e) => {
|
|
123
|
-
e.stopPropagation();
|
|
124
|
-
this.searchText = '';
|
|
125
|
-
if (this.debounceTimer)
|
|
126
|
-
clearTimeout(this.debounceTimer);
|
|
127
|
-
this.searchFilter.emit('');
|
|
128
|
-
this.inputEl?.focus();
|
|
129
|
-
};
|
|
130
|
-
disconnectedCallback() {
|
|
131
|
-
if (this.focusRafId)
|
|
132
|
-
cancelAnimationFrame(this.focusRafId);
|
|
133
|
-
if (this.debounceTimer)
|
|
134
|
-
clearTimeout(this.debounceTimer);
|
|
135
|
-
}
|
|
136
|
-
render() {
|
|
137
|
-
return (h("div", { key: '8ccebea10b658edba2c417893f2a939a7361ef1b', class: {
|
|
138
|
-
'sd-select-v2-list-item-search': true,
|
|
139
|
-
'sd-select-v2-list-item-search--scrolled': this.isScrolled,
|
|
140
|
-
} }, h("div", { key: '4007afb556220e746c2379f643afb38445345853', class: "sd-select-v2-list-item-search__inner" }, h("sd-icon", { key: '1afc1ef8aa6f3d26ee1001212ac9ea7d0bf3d1e4', name: "search", size: 16, color: "grey_70", class: "sd-select-v2-list-item-search__icon" }), h("input", { key: 'a32ddcc18a401217f1a624e544c56bd499b0f47e', ref: el => {
|
|
141
|
-
this.inputEl = el;
|
|
142
|
-
}, type: "text", class: "sd-select-v2-list-item-search__input", placeholder: "\uAC80\uC0C9\uC5B4 \uC785\uB825", value: this.searchText, onInput: this.handleInput, onFocus: () => this.searchFocus.emit() }), this.searchText && (h("button", { key: '150d5aca71d6ac6277917177ed4e4e157e4ba33f', type: "button", class: "sd-select-v2-list-item-search__clear", onClick: this.handleClear }, h("sd-icon", { key: 'f0397c023e5dd5972eb6dfd20f9fb1ac1027fb2f', name: "close", size: 12, color: "#888888" }))))));
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
SdSelectV2ListItemSearch.style = sdSelectV2ListItemSearchCss();
|
|
146
|
-
|
|
147
|
-
export { SdSelectV2ListItem as sd_select_v2_list_item, SdSelectV2ListItemSearch as sd_select_v2_list_item_search };
|
|
@@ -1,350 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h } from './index-DsU722JF.js';
|
|
2
|
-
import { c as countLeaves, S as SEARCH_THRESHOLD, f as filterTree, E as EMPTY_MESSAGE, L as LIST_BOX_LAYOUT, a as SELECT_COLORS, b as SELECT_TYPOGRAPHY, d as SELECT_LAYOUT } from './sd-select-v2.config-C3eQSZx-.js';
|
|
3
|
-
|
|
4
|
-
const sdSelectV2ListboxCss = () => `sd-select-v2-listbox{display:block}sd-select-v2-listbox .sd-select-v2-listbox{display:flex;flex-direction:column;min-width:var(--listbox-trigger-width);max-width:var(--listbox-max-width);max-height:var(--listbox-max-height);width:fit-content;border-radius:var(--listbox-radius);background:white;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);overflow:hidden;outline:none}sd-select-v2-listbox .sd-select-v2-listbox__list{flex:1;min-height:0;overflow-y:auto;padding-bottom:0}sd-select-v2-listbox .sd-select-v2-listbox__empty{padding:12px;text-align:center;font-size:12px;line-height:20px;color:#888888}`;
|
|
5
|
-
|
|
6
|
-
const SdSelectV2Listbox = class {
|
|
7
|
-
constructor(hostRef) {
|
|
8
|
-
registerInstance(this, hostRef);
|
|
9
|
-
this.optionSelect = createEvent(this, "sdOptionSelect", 7);
|
|
10
|
-
}
|
|
11
|
-
name = 'default';
|
|
12
|
-
options = [];
|
|
13
|
-
value = null;
|
|
14
|
-
emitValue = false;
|
|
15
|
-
triggerWidth = '200px';
|
|
16
|
-
maxWidth = '640px';
|
|
17
|
-
maxHeight = '260px';
|
|
18
|
-
searchKeyword = '';
|
|
19
|
-
isScrolled = false;
|
|
20
|
-
focusedIndex = -1;
|
|
21
|
-
optionSelect;
|
|
22
|
-
listEl;
|
|
23
|
-
lastScrolledIndex = -1;
|
|
24
|
-
keydownAttached = false;
|
|
25
|
-
suppressHover = false;
|
|
26
|
-
get isDepth() {
|
|
27
|
-
return this.name === 'default_depth' || this.name === 'multi_depth';
|
|
28
|
-
}
|
|
29
|
-
get isMulti() {
|
|
30
|
-
return this.name === 'multi' || this.name === 'multi_depth';
|
|
31
|
-
}
|
|
32
|
-
get showSearch() {
|
|
33
|
-
const count = this.isDepth ? countLeaves(this.options) : this.options.length;
|
|
34
|
-
return count >= SEARCH_THRESHOLD;
|
|
35
|
-
}
|
|
36
|
-
get filteredOptions() {
|
|
37
|
-
if (!this.searchKeyword)
|
|
38
|
-
return this.options;
|
|
39
|
-
if (this.isDepth)
|
|
40
|
-
return filterTree(this.options, this.searchKeyword);
|
|
41
|
-
const keyword = this.searchKeyword.toLowerCase();
|
|
42
|
-
return this.options.filter(o => o.label.toLowerCase().includes(keyword));
|
|
43
|
-
}
|
|
44
|
-
get isEmpty() {
|
|
45
|
-
if (this.isDepth)
|
|
46
|
-
return countLeaves(this.filteredOptions) === 0 && this.filteredOptions.length === 0;
|
|
47
|
-
return this.filteredOptions.length === 0;
|
|
48
|
-
}
|
|
49
|
-
getSelectedValues() {
|
|
50
|
-
if (!this.value || !Array.isArray(this.value))
|
|
51
|
-
return new Set();
|
|
52
|
-
if (this.emitValue) {
|
|
53
|
-
return new Set(this.value);
|
|
54
|
-
}
|
|
55
|
-
return new Set(this.value.map(s => s.value));
|
|
56
|
-
}
|
|
57
|
-
isOptionSelected(option) {
|
|
58
|
-
if (this.isMulti) {
|
|
59
|
-
return this.getSelectedValues().has(option.value);
|
|
60
|
-
}
|
|
61
|
-
if (this.emitValue) {
|
|
62
|
-
return this.value === option.value;
|
|
63
|
-
}
|
|
64
|
-
if (this.value != null && typeof this.value === 'object' && !Array.isArray(this.value)) {
|
|
65
|
-
return this.value.value === option.value;
|
|
66
|
-
}
|
|
67
|
-
return this.value === option.value;
|
|
68
|
-
}
|
|
69
|
-
getGroupSelectionState(option) {
|
|
70
|
-
if (!this.isMulti || !option.children)
|
|
71
|
-
return false;
|
|
72
|
-
const selectedValues = this.getSelectedValues();
|
|
73
|
-
if (selectedValues.size === 0)
|
|
74
|
-
return false;
|
|
75
|
-
const leaves = this.collectVisibleLeaves(option);
|
|
76
|
-
if (leaves.length === 0)
|
|
77
|
-
return false;
|
|
78
|
-
const selectedCount = leaves.filter(l => selectedValues.has(l.value)).length;
|
|
79
|
-
if (selectedCount === 0)
|
|
80
|
-
return false;
|
|
81
|
-
if (selectedCount === leaves.length)
|
|
82
|
-
return true;
|
|
83
|
-
return null;
|
|
84
|
-
}
|
|
85
|
-
getCountInfo(option) {
|
|
86
|
-
if (!this.isMulti || !option.children)
|
|
87
|
-
return undefined;
|
|
88
|
-
const selectedValues = this.getSelectedValues();
|
|
89
|
-
const leaves = this.collectVisibleLeaves(option);
|
|
90
|
-
const selectedCount = leaves.filter(l => selectedValues.has(l.value)).length;
|
|
91
|
-
return { selected: selectedCount, total: leaves.length };
|
|
92
|
-
}
|
|
93
|
-
findOriginalOption(value, options) {
|
|
94
|
-
for (const opt of options) {
|
|
95
|
-
if (opt.value === value)
|
|
96
|
-
return opt;
|
|
97
|
-
if (opt.children) {
|
|
98
|
-
const found = this.findOriginalOption(value, opt.children);
|
|
99
|
-
if (found)
|
|
100
|
-
return found;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return undefined;
|
|
104
|
-
}
|
|
105
|
-
collectLeaves(option) {
|
|
106
|
-
if (!option.children)
|
|
107
|
-
return [option];
|
|
108
|
-
return option.children.flatMap(child => this.collectLeaves(child));
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Returns the leaves currently visible to the user for the given (possibly
|
|
112
|
-
* filtered) option. When a group's own label matched the search keyword its
|
|
113
|
-
* `children` is emptied by `filterTree`; in that case we fall back to the
|
|
114
|
-
* full original subtree because the user has no way to deselect descendants
|
|
115
|
-
* individually.
|
|
116
|
-
*/
|
|
117
|
-
collectVisibleLeaves(option) {
|
|
118
|
-
if (!option.children)
|
|
119
|
-
return [option];
|
|
120
|
-
if (option.children.length === 0) {
|
|
121
|
-
const original = this.findOriginalOption(option.value, this.options);
|
|
122
|
-
return original ? this.collectLeaves(original) : [];
|
|
123
|
-
}
|
|
124
|
-
return option.children.flatMap(child => this.collectVisibleLeaves(child));
|
|
125
|
-
}
|
|
126
|
-
get navigableOptions() {
|
|
127
|
-
const items = [];
|
|
128
|
-
const walk = (opts) => {
|
|
129
|
-
for (const opt of opts) {
|
|
130
|
-
const isGroup = !!opt.children;
|
|
131
|
-
const isSelectable = !isGroup || this.isMulti;
|
|
132
|
-
if (isSelectable && !opt.disabled)
|
|
133
|
-
items.push(opt);
|
|
134
|
-
if (isGroup && opt.children && opt.children.length > 0)
|
|
135
|
-
walk(opt.children);
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
walk(this.filteredOptions);
|
|
139
|
-
return items;
|
|
140
|
-
}
|
|
141
|
-
isOptionFocused(option) {
|
|
142
|
-
if (this.focusedIndex < 0)
|
|
143
|
-
return false;
|
|
144
|
-
const focused = this.navigableOptions[this.focusedIndex];
|
|
145
|
-
// filterTree 가 매 호출마다 옵션 객체를 새로 복제하기 때문에 참조 비교
|
|
146
|
-
// (=== / indexOf) 는 검색이 적용된 동안 항상 실패한다. 고유 식별자인
|
|
147
|
-
// value 로 비교해야 한다.
|
|
148
|
-
return !!focused && focused.value === option.value;
|
|
149
|
-
}
|
|
150
|
-
resetFocusOnFilter() {
|
|
151
|
-
// 필터가 바뀌면 이전 인덱스가 가리키던 항목이 사라질 수 있으므로
|
|
152
|
-
// 새 결과의 첫 항목으로 옮긴다. 결과가 비면 -1.
|
|
153
|
-
const items = this.navigableOptions;
|
|
154
|
-
this.focusedIndex = items.length > 0 ? 0 : -1;
|
|
155
|
-
// 키보드 네비게이션 직후 마우스가 한 번도 안 움직인 채로 사용자가
|
|
156
|
-
// 검색을 시작했다면 hover suppression 이 켜진 상태로 남아있을 수 있다.
|
|
157
|
-
// 검색이라는 명백한 사용자 의도 전환 시점에 강제로 해제한다.
|
|
158
|
-
if (this.suppressHover) {
|
|
159
|
-
document.removeEventListener('mousemove', this.releaseHoverSuppress, true);
|
|
160
|
-
this.suppressHover = false;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
handleSearchFilter = (e) => {
|
|
164
|
-
this.searchKeyword = e.detail;
|
|
165
|
-
};
|
|
166
|
-
handleScroll = (e) => {
|
|
167
|
-
this.isScrolled = e.target.scrollTop > 0;
|
|
168
|
-
};
|
|
169
|
-
emitOptionSelect(option) {
|
|
170
|
-
this.optionSelect.emit({
|
|
171
|
-
option,
|
|
172
|
-
leaves: this.collectVisibleLeaves(option),
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
handleOptionClick = (e) => {
|
|
176
|
-
e.stopPropagation();
|
|
177
|
-
this.emitOptionSelect(e.detail);
|
|
178
|
-
};
|
|
179
|
-
handleOptionHover = (option) => {
|
|
180
|
-
if (this.suppressHover)
|
|
181
|
-
return;
|
|
182
|
-
const idx = this.navigableOptions.findIndex(o => o.value === option.value);
|
|
183
|
-
if (idx >= 0)
|
|
184
|
-
this.focusedIndex = idx;
|
|
185
|
-
};
|
|
186
|
-
releaseHoverSuppress = () => {
|
|
187
|
-
this.suppressHover = false;
|
|
188
|
-
document.removeEventListener('mousemove', this.releaseHoverSuppress, true);
|
|
189
|
-
};
|
|
190
|
-
handleKeyDown = (e) => {
|
|
191
|
-
const items = this.navigableOptions;
|
|
192
|
-
if (e.key === 'ArrowDown') {
|
|
193
|
-
if (items.length === 0)
|
|
194
|
-
return;
|
|
195
|
-
e.preventDefault();
|
|
196
|
-
e.stopPropagation();
|
|
197
|
-
this.focusedIndex = this.focusedIndex < 0 ? 0 : (this.focusedIndex + 1) % items.length;
|
|
198
|
-
this.beginHoverSuppression();
|
|
199
|
-
}
|
|
200
|
-
else if (e.key === 'ArrowUp') {
|
|
201
|
-
if (items.length === 0)
|
|
202
|
-
return;
|
|
203
|
-
e.preventDefault();
|
|
204
|
-
e.stopPropagation();
|
|
205
|
-
this.focusedIndex = this.focusedIndex <= 0 ? items.length - 1 : this.focusedIndex - 1;
|
|
206
|
-
this.beginHoverSuppression();
|
|
207
|
-
}
|
|
208
|
-
else if (e.key === 'Enter') {
|
|
209
|
-
if (this.focusedIndex < 0 || this.focusedIndex >= items.length)
|
|
210
|
-
return;
|
|
211
|
-
e.preventDefault();
|
|
212
|
-
e.stopPropagation();
|
|
213
|
-
this.emitOptionSelect(items[this.focusedIndex]);
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
/**
|
|
217
|
-
* 키보드로 인덱스를 옮기면 자동 스크롤이 일어나는데, 정지한 마우스 커서
|
|
218
|
-
* 아래로 다른 항목이 미끄러져 들어오면서 mouseenter 가 발화해 인덱스를
|
|
219
|
-
* 다시 덮어쓰는 문제를 막는다. 실제로 마우스가 한 번이라도 움직이기 전까지
|
|
220
|
-
* hover 갱신을 무시한다.
|
|
221
|
-
*/
|
|
222
|
-
beginHoverSuppression() {
|
|
223
|
-
if (this.suppressHover)
|
|
224
|
-
return;
|
|
225
|
-
this.suppressHover = true;
|
|
226
|
-
document.addEventListener('mousemove', this.releaseHoverSuppress, true);
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* 리스트 컨테이너 내부에서만 스크롤한다. `scrollIntoView` 는 조상 스크롤
|
|
230
|
-
* 컨테이너(=문서 자체)까지 함께 스크롤시키므로 사용하지 않는다.
|
|
231
|
-
*/
|
|
232
|
-
scrollFocusedIntoView() {
|
|
233
|
-
const list = this.listEl;
|
|
234
|
-
const focusedEl = list?.querySelector('.sd-select-v2-list-item--focused');
|
|
235
|
-
if (!list || !focusedEl)
|
|
236
|
-
return;
|
|
237
|
-
const listRect = list.getBoundingClientRect();
|
|
238
|
-
const itemRect = focusedEl.getBoundingClientRect();
|
|
239
|
-
if (itemRect.top < listRect.top) {
|
|
240
|
-
list.scrollTop += itemRect.top - listRect.top;
|
|
241
|
-
}
|
|
242
|
-
else if (itemRect.bottom > listRect.bottom) {
|
|
243
|
-
list.scrollTop += itemRect.bottom - listRect.bottom;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* sd-portal 이 슬롯 노드를 body 로 이동시키면서 disconnect → connect 가
|
|
248
|
-
* 발생하므로, 키보드 리스너는 한 번만 실행되는 componentDidLoad 가 아니라
|
|
249
|
-
* connectedCallback / disconnectedCallback 에 묶어 매번 재부착한다.
|
|
250
|
-
* capture phase 로 잡아 포커스가 검색 input 에 있어도 ↑/↓/Enter 가
|
|
251
|
-
* input 의 기본 동작(커서 이동)·페이지 스크롤보다 먼저 처리되도록 한다.
|
|
252
|
-
*/
|
|
253
|
-
connectedCallback() {
|
|
254
|
-
if (!this.keydownAttached) {
|
|
255
|
-
document.addEventListener('keydown', this.handleKeyDown, true);
|
|
256
|
-
this.keydownAttached = true;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
disconnectedCallback() {
|
|
260
|
-
if (this.keydownAttached) {
|
|
261
|
-
document.removeEventListener('keydown', this.handleKeyDown, true);
|
|
262
|
-
this.keydownAttached = false;
|
|
263
|
-
}
|
|
264
|
-
if (this.suppressHover) {
|
|
265
|
-
document.removeEventListener('mousemove', this.releaseHoverSuppress, true);
|
|
266
|
-
this.suppressHover = false;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
componentDidRender() {
|
|
270
|
-
if (this.focusedIndex !== this.lastScrolledIndex) {
|
|
271
|
-
this.lastScrolledIndex = this.focusedIndex;
|
|
272
|
-
if (this.focusedIndex >= 0)
|
|
273
|
-
this.scrollFocusedIntoView();
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
renderOptions(options, depth = 1) {
|
|
277
|
-
return options.map(option => {
|
|
278
|
-
const isGroup = !!option.children;
|
|
279
|
-
return [
|
|
280
|
-
h("sd-select-v2-list-item", { option: option, depth: depth, isSelected: isGroup ? this.getGroupSelectionState(option) : this.isOptionSelected(option), isFocused: this.isOptionFocused(option), useCheckbox: this.isMulti, countInfo: this.getCountInfo(option), onSdListItemClick: this.handleOptionClick, onMouseEnter: () => this.handleOptionHover(option) }),
|
|
281
|
-
isGroup && option.children ? this.renderOptions(option.children, depth + 1) : null,
|
|
282
|
-
];
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
render() {
|
|
286
|
-
const cssVars = {
|
|
287
|
-
'--listbox-trigger-width': this.triggerWidth,
|
|
288
|
-
'--listbox-max-width': this.maxWidth,
|
|
289
|
-
'--listbox-max-height': this.maxHeight,
|
|
290
|
-
'--listbox-radius': `${LIST_BOX_LAYOUT.radius}px`,
|
|
291
|
-
};
|
|
292
|
-
return (h("div", { key: '92289973077789bd6f9657bb5b2e5567845bdc19', class: "sd-select-v2-listbox", style: cssVars }, this.showSearch && (h("sd-select-v2-list-item-search", { key: 'a26b9ba36f42165ab80347ea4f0194b98746a9a6', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), h("div", { key: 'd563a179278ec5c6eaa0b4c71d18cc5055bbebb5', class: "sd-select-v2-listbox__list", onScroll: this.handleScroll, ref: el => {
|
|
293
|
-
this.listEl = el;
|
|
294
|
-
} }, this.isEmpty ? (h("div", { class: "sd-select-v2-listbox__empty" }, EMPTY_MESSAGE)) : this.isDepth ? (this.renderOptions(this.filteredOptions)) : (this.filteredOptions.map(option => (h("sd-select-v2-list-item", { option: option, depth: 1, isSelected: this.isOptionSelected(option), isFocused: this.isOptionFocused(option), useCheckbox: this.isMulti, onSdListItemClick: this.handleOptionClick, onMouseEnter: () => this.handleOptionHover(option) })))))));
|
|
295
|
-
}
|
|
296
|
-
static get watchers() { return {
|
|
297
|
-
"searchKeyword": [{
|
|
298
|
-
"resetFocusOnFilter": 0
|
|
299
|
-
}]
|
|
300
|
-
}; }
|
|
301
|
-
};
|
|
302
|
-
SdSelectV2Listbox.style = sdSelectV2ListboxCss();
|
|
303
|
-
|
|
304
|
-
const sdSelectV2TriggerCss = () => `sd-select-v2-trigger{display:block;width:100%;height:100%}sd-select-v2-trigger .sd-select-v2-trigger{display:flex;width:100%;height:100%;cursor:pointer;user-select:none;overflow:hidden;border-radius:3px}sd-select-v2-trigger .sd-select-v2-trigger--disabled{cursor:not-allowed}sd-select-v2-trigger .sd-select-v2-trigger__content{display:flex;align-items:center;gap:var(--trigger-gap);flex:1;padding:0 var(--trigger-padding-x);min-width:0}sd-select-v2-trigger .sd-select-v2-trigger__text{flex:1;font-size:var(--trigger-font-size);line-height:var(--trigger-line-height);font-weight:var(--trigger-font-weight);color:var(--trigger-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}sd-select-v2-trigger .sd-select-v2-trigger__icon{flex-shrink:0;transition:transform 0.2s ease}sd-select-v2-trigger .sd-select-v2-trigger__icon--open{transform:rotate(180deg)}`;
|
|
305
|
-
|
|
306
|
-
const SdSelectV2Trigger = class {
|
|
307
|
-
constructor(hostRef) {
|
|
308
|
-
registerInstance(this, hostRef);
|
|
309
|
-
this.triggerClick = createEvent(this, "sdTriggerClick", 7);
|
|
310
|
-
}
|
|
311
|
-
displayText = '';
|
|
312
|
-
placeholder = '선택';
|
|
313
|
-
disabled = false;
|
|
314
|
-
isOpen = false;
|
|
315
|
-
triggerClick;
|
|
316
|
-
handleClick = () => {
|
|
317
|
-
if (this.disabled)
|
|
318
|
-
return;
|
|
319
|
-
this.triggerClick.emit();
|
|
320
|
-
};
|
|
321
|
-
render() {
|
|
322
|
-
const hasValue = !!this.displayText;
|
|
323
|
-
const cssVars = {
|
|
324
|
-
'--trigger-padding-x': `${SELECT_LAYOUT.paddingX}px`,
|
|
325
|
-
'--trigger-gap': `${SELECT_LAYOUT.gap}px`,
|
|
326
|
-
'--trigger-font-size': `${SELECT_TYPOGRAPHY.fontSize}px`,
|
|
327
|
-
'--trigger-line-height': `${SELECT_TYPOGRAPHY.lineHeight}px`,
|
|
328
|
-
'--trigger-font-weight': SELECT_TYPOGRAPHY.fontWeight,
|
|
329
|
-
'--trigger-color': this.disabled
|
|
330
|
-
? SELECT_COLORS.text.disabled
|
|
331
|
-
: hasValue
|
|
332
|
-
? SELECT_COLORS.text.default
|
|
333
|
-
: SELECT_COLORS.icon.default,
|
|
334
|
-
'--trigger-icon-color': this.disabled
|
|
335
|
-
? SELECT_COLORS.icon.disabled
|
|
336
|
-
: SELECT_COLORS.icon.default,
|
|
337
|
-
};
|
|
338
|
-
return (h("div", { key: '02e382b2a1867fa8816c11e2d07bb042a15027fb', class: {
|
|
339
|
-
'sd-select-v2-trigger': true,
|
|
340
|
-
'sd-select-v2-trigger--open': this.isOpen,
|
|
341
|
-
'sd-select-v2-trigger--disabled': this.disabled,
|
|
342
|
-
}, style: cssVars, onClick: this.handleClick }, h("div", { key: 'e08360c05f765ccc0c9dbefe8e402a66edd1c242', class: "sd-select-v2-trigger__content" }, h("span", { key: 'dc00441e24e17b9bb28a36892ff3564d4bb40a42', class: "sd-select-v2-trigger__text" }, hasValue ? this.displayText : this.placeholder), h("sd-icon", { key: '3d78221139a6df71aa349277ed0f8d73fbba23ba', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
|
|
343
|
-
'sd-select-v2-trigger__icon': true,
|
|
344
|
-
'sd-select-v2-trigger__icon--open': this.isOpen,
|
|
345
|
-
} }))));
|
|
346
|
-
}
|
|
347
|
-
};
|
|
348
|
-
SdSelectV2Trigger.style = sdSelectV2TriggerCss();
|
|
349
|
-
|
|
350
|
-
export { SdSelectV2Listbox as sd_select_v2_listbox, SdSelectV2Trigger as sd_select_v2_trigger };
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
const select = {
|
|
2
|
-
paddingX: "12",
|
|
3
|
-
icon: {
|
|
4
|
-
"default": "#888888",
|
|
5
|
-
disabled: "#BBBBBB"
|
|
6
|
-
},
|
|
7
|
-
gap: "8",
|
|
8
|
-
typography: {
|
|
9
|
-
fontWeight: "400",
|
|
10
|
-
fontSize: "12",
|
|
11
|
-
lineHeight: "20"},
|
|
12
|
-
text: {
|
|
13
|
-
"default": "#222222",
|
|
14
|
-
disabled: "#888888"
|
|
15
|
-
}};
|
|
16
|
-
var selectTokens = {
|
|
17
|
-
select: select
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
const listItem = {
|
|
21
|
-
paddingY: "4",
|
|
22
|
-
paddingRight: "12",
|
|
23
|
-
gap: "8",
|
|
24
|
-
paddingLeft: {
|
|
25
|
-
depth1: "12",
|
|
26
|
-
depth2: "20",
|
|
27
|
-
depth3: "28"
|
|
28
|
-
},
|
|
29
|
-
typography: {
|
|
30
|
-
fontWeight: "400",
|
|
31
|
-
fontSize: "12",
|
|
32
|
-
lineHeight: "20"},
|
|
33
|
-
bg: {
|
|
34
|
-
"default": "#FFFFFF",
|
|
35
|
-
hover: "#0075FF"
|
|
36
|
-
},
|
|
37
|
-
content: {
|
|
38
|
-
"default": "#222222",
|
|
39
|
-
hover: "#FFFFFF",
|
|
40
|
-
disabled: "#888888"
|
|
41
|
-
},
|
|
42
|
-
depth1: {
|
|
43
|
-
bg: {
|
|
44
|
-
"default": "#EFF6FF"},
|
|
45
|
-
border: {
|
|
46
|
-
color: "#E1E1E1",
|
|
47
|
-
width: "1"
|
|
48
|
-
}},
|
|
49
|
-
depth2: {
|
|
50
|
-
middle: {
|
|
51
|
-
bg: "#F6F6F6"}
|
|
52
|
-
}};
|
|
53
|
-
var listItemTokens = {
|
|
54
|
-
listItem: listItem
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
const listBox = {
|
|
58
|
-
radius: "4"};
|
|
59
|
-
var listBoxTokens = {
|
|
60
|
-
listBox: listBox
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
// ── Select Trigger Tokens ──
|
|
64
|
-
const SELECT_LAYOUT = {
|
|
65
|
-
paddingX: selectTokens.select.paddingX,
|
|
66
|
-
gap: selectTokens.select.gap};
|
|
67
|
-
const SELECT_TYPOGRAPHY = {
|
|
68
|
-
fontSize: selectTokens.select.typography.fontSize,
|
|
69
|
-
lineHeight: selectTokens.select.typography.lineHeight,
|
|
70
|
-
fontWeight: selectTokens.select.typography.fontWeight,
|
|
71
|
-
};
|
|
72
|
-
const SELECT_COLORS = {
|
|
73
|
-
icon: {
|
|
74
|
-
default: selectTokens.select.icon.default,
|
|
75
|
-
disabled: selectTokens.select.icon.disabled,
|
|
76
|
-
},
|
|
77
|
-
text: {
|
|
78
|
-
default: selectTokens.select.text.default,
|
|
79
|
-
disabled: selectTokens.select.text.disabled,
|
|
80
|
-
},
|
|
81
|
-
};
|
|
82
|
-
// ── ListItem Tokens ──
|
|
83
|
-
const LIST_ITEM_LAYOUT = {
|
|
84
|
-
paddingY: listItemTokens.listItem.paddingY,
|
|
85
|
-
paddingRight: listItemTokens.listItem.paddingRight,
|
|
86
|
-
paddingLeft: {
|
|
87
|
-
depth1: listItemTokens.listItem.paddingLeft.depth1,
|
|
88
|
-
depth2: listItemTokens.listItem.paddingLeft.depth2,
|
|
89
|
-
depth3: listItemTokens.listItem.paddingLeft.depth3,
|
|
90
|
-
},
|
|
91
|
-
gap: listItemTokens.listItem.gap,
|
|
92
|
-
};
|
|
93
|
-
const LIST_ITEM_TYPOGRAPHY = {
|
|
94
|
-
fontSize: listItemTokens.listItem.typography.fontSize,
|
|
95
|
-
lineHeight: listItemTokens.listItem.typography.lineHeight,
|
|
96
|
-
fontWeight: listItemTokens.listItem.typography.fontWeight,
|
|
97
|
-
};
|
|
98
|
-
const LIST_ITEM_COLORS = {
|
|
99
|
-
bg: {
|
|
100
|
-
default: listItemTokens.listItem.bg.default,
|
|
101
|
-
hover: listItemTokens.listItem.bg.hover,
|
|
102
|
-
},
|
|
103
|
-
content: {
|
|
104
|
-
default: listItemTokens.listItem.content.default,
|
|
105
|
-
hover: listItemTokens.listItem.content.hover,
|
|
106
|
-
disabled: listItemTokens.listItem.content.disabled,
|
|
107
|
-
},
|
|
108
|
-
depth1: {
|
|
109
|
-
bg: listItemTokens.listItem.depth1.bg.default,
|
|
110
|
-
border: listItemTokens.listItem.depth1.border.color,
|
|
111
|
-
borderWidth: listItemTokens.listItem.depth1.border.width,
|
|
112
|
-
},
|
|
113
|
-
depth2: {
|
|
114
|
-
bg: listItemTokens.listItem.depth2.middle.bg,
|
|
115
|
-
}};
|
|
116
|
-
// ── ListBox Tokens ──
|
|
117
|
-
const LIST_BOX_LAYOUT = {
|
|
118
|
-
radius: listBoxTokens.listBox.radius,
|
|
119
|
-
};
|
|
120
|
-
// ── Constants ──
|
|
121
|
-
const SEARCH_THRESHOLD = 11;
|
|
122
|
-
const SEARCH_DEBOUNCE_MS = 1000;
|
|
123
|
-
const EMPTY_MESSAGE = '표시할 항목이 없습니다.';
|
|
124
|
-
// ── Utilities ──
|
|
125
|
-
function countLeaves(options) {
|
|
126
|
-
return options.reduce((sum, option) => {
|
|
127
|
-
if (option.children) {
|
|
128
|
-
return sum + countLeaves(option.children);
|
|
129
|
-
}
|
|
130
|
-
return sum + 1;
|
|
131
|
-
}, 0);
|
|
132
|
-
}
|
|
133
|
-
function filterTree(options, keyword) {
|
|
134
|
-
const lowerKeyword = keyword.toLowerCase();
|
|
135
|
-
return options.reduce((acc, option) => {
|
|
136
|
-
const selfMatch = option.label.toLowerCase().includes(lowerKeyword);
|
|
137
|
-
if (option.children) {
|
|
138
|
-
// 그룹: 자식은 항상 추가로 필터링한다.
|
|
139
|
-
// - 자식 중 일치하는 게 있으면 그 자식들만 노출
|
|
140
|
-
// - 자식 매칭이 없더라도 그룹명이 매칭되면 그룹 헤더는 그대로 노출
|
|
141
|
-
// (이때 children 은 빈 배열로 두고, 선택 동작은 collectVisibleLeaves
|
|
142
|
-
// 의 fallback 이 원본 트리를 사용해 처리한다)
|
|
143
|
-
const filteredChildren = filterTree(option.children, keyword);
|
|
144
|
-
if (filteredChildren.length > 0) {
|
|
145
|
-
acc.push({ ...option, children: filteredChildren });
|
|
146
|
-
}
|
|
147
|
-
else if (selfMatch) {
|
|
148
|
-
acc.push({ ...option, children: [] });
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
else if (selfMatch) {
|
|
152
|
-
acc.push({ ...option });
|
|
153
|
-
}
|
|
154
|
-
return acc;
|
|
155
|
-
}, []);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
export { EMPTY_MESSAGE as E, LIST_BOX_LAYOUT as L, SEARCH_THRESHOLD as S, SELECT_COLORS as a, SELECT_TYPOGRAPHY as b, countLeaves as c, SELECT_LAYOUT as d, LIST_ITEM_LAYOUT as e, filterTree as f, LIST_ITEM_COLORS as g, LIST_ITEM_TYPOGRAPHY as h, SEARCH_DEBOUNCE_MS as i };
|