@sellmate/design-system 1.20.1 → 1.22.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/design-system.cjs.js +2 -2
- package/dist/cjs/{index-DXm0PH2A.js → index-C-F-JEv_.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/sd-action-modal.cjs.entry.js +8 -2
- package/dist/cjs/sd-badge.cjs.entry.js +3 -2
- package/dist/cjs/sd-barcode-input.cjs.entry.js +35 -2
- package/dist/cjs/sd-button_2.cjs.entry.js +16 -7
- package/dist/cjs/sd-calendar_2.cjs.entry.js +17 -6
- package/dist/cjs/sd-callout.cjs.entry.js +4 -2
- package/dist/cjs/sd-card.cjs.entry.js +4 -2
- package/dist/cjs/sd-checkbox.cjs.entry.js +21 -12
- package/dist/cjs/sd-chip-input.cjs.entry.js +76 -18
- package/dist/cjs/sd-chip.cjs.entry.js +19 -2
- package/dist/cjs/sd-circle-progress.cjs.entry.js +6 -2
- package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +27 -4
- package/dist/cjs/sd-date-box.cjs.entry.js +13 -3
- package/dist/cjs/sd-date-picker_7.cjs.entry.js +209 -13
- package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +7 -2
- package/dist/cjs/sd-divider.cjs.entry.js +1 -1
- package/dist/cjs/sd-dropdown-button.cjs.entry.js +11 -1
- package/dist/cjs/sd-field_3.cjs.entry.js +70 -12
- package/dist/cjs/sd-form.cjs.entry.js +10 -2
- package/dist/cjs/sd-ghost-button_3.cjs.entry.js +54 -15
- package/dist/cjs/sd-guide.cjs.entry.js +9 -3
- package/dist/cjs/sd-key-value-table.cjs.entry.js +3 -1
- package/dist/cjs/sd-linear-progress.cjs.entry.js +7 -4
- package/dist/cjs/sd-loading-container.cjs.entry.js +5 -3
- package/dist/cjs/sd-modal-container.cjs.entry.js +7 -1
- package/dist/cjs/sd-pagination_4.cjs.entry.js +121 -13
- package/dist/cjs/sd-popover.cjs.entry.js +21 -5
- package/dist/cjs/sd-popup.cjs.entry.js +7 -3
- package/dist/cjs/sd-radio-button.cjs.entry.js +8 -2
- package/dist/cjs/sd-radio.cjs.entry.js +7 -2
- package/dist/cjs/sd-select-list-item_2.cjs.entry.js +18 -7
- package/dist/cjs/sd-select_3.cjs.entry.js +56 -9
- package/dist/cjs/sd-switch.cjs.entry.js +6 -2
- package/dist/cjs/sd-table.cjs.entry.js +42 -7
- package/dist/cjs/sd-tabs.cjs.entry.js +8 -2
- package/dist/cjs/sd-td.cjs.entry.js +11 -2
- package/dist/cjs/sd-text-link.cjs.entry.js +13 -4
- package/dist/cjs/sd-toast-container.cjs.entry.js +11 -2
- package/dist/cjs/sd-toast.cjs.entry.js +12 -3
- package/dist/cjs/sd-toggle.cjs.entry.js +6 -2
- package/dist/cjs/{tooltipArrow-D3P3JC08.js → tooltipArrow-26hYtSrD.js} +1 -1
- package/dist/collection/components/assets/CaretDown.js +1 -1
- package/dist/collection/components/assets/CaretLeft.js +1 -1
- package/dist/collection/components/assets/CaretRight.js +1 -1
- package/dist/collection/components/assets/CaretUp.js +1 -1
- package/dist/collection/components/sd-action-modal/sd-action-modal.js +13 -7
- package/dist/collection/components/sd-badge/sd-badge.js +3 -2
- package/dist/collection/components/sd-barcode-input/sd-barcode-input.js +67 -34
- package/dist/collection/components/sd-button/sd-button.js +18 -10
- package/dist/collection/components/sd-calendar/sd-calendar.js +15 -9
- package/dist/collection/components/sd-callout/sd-callout.js +5 -3
- package/dist/collection/components/sd-card/sd-card.js +5 -3
- package/dist/collection/components/sd-checkbox/sd-checkbox.config.js +5 -3
- package/dist/collection/components/sd-checkbox/sd-checkbox.css +16 -0
- package/dist/collection/components/sd-checkbox/sd-checkbox.js +5 -3
- package/dist/collection/components/sd-chip/sd-chip.js +35 -18
- package/dist/collection/components/sd-chip-input/sd-chip-input.css +6 -0
- package/dist/collection/components/sd-chip-input/sd-chip-input.js +107 -49
- package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +9 -5
- package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +32 -17
- package/dist/collection/components/sd-date-box/sd-date-box.js +22 -12
- package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +12 -7
- package/dist/collection/components/sd-date-picker/sd-date-picker.js +48 -25
- package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +11 -6
- package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +50 -26
- package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +20 -10
- package/dist/collection/components/sd-field/sd-field.js +51 -28
- package/dist/collection/components/sd-file-picker/sd-file-picker.js +60 -30
- package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +32 -11
- package/dist/collection/components/sd-form/sd-form.js +17 -9
- package/dist/collection/components/sd-ghost-button/sd-ghost-button.js +28 -13
- package/dist/collection/components/sd-guide/sd-guide.js +14 -8
- package/dist/collection/components/sd-icon/sd-icon.js +2 -1
- package/dist/collection/components/sd-input/sd-input.js +82 -42
- package/dist/collection/components/sd-key-value-table/sd-key-value-table.js +4 -2
- package/dist/collection/components/sd-linear-progress/sd-linear-progress.js +10 -7
- package/dist/collection/components/sd-loading-container/sd-loading-container.js +6 -4
- package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +17 -9
- package/dist/collection/components/sd-modal-container/sd-modal-container.js +12 -6
- package/dist/collection/components/sd-number-input/sd-number-input.js +82 -43
- package/dist/collection/components/sd-pagination/sd-pagination.js +11 -7
- package/dist/collection/components/sd-popover/sd-popover.js +35 -19
- package/dist/collection/components/sd-popup/sd-popup.js +11 -7
- package/dist/collection/components/sd-portal/sd-portal.js +35 -14
- package/dist/collection/components/sd-radio/sd-radio.js +11 -6
- package/dist/collection/components/sd-radio-button/sd-radio-button.js +13 -7
- package/dist/collection/components/sd-radio-group/sd-radio-group.js +13 -7
- package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +16 -9
- package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +12 -8
- package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +22 -12
- package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +18 -10
- package/dist/collection/components/sd-select/sd-select.js +62 -33
- package/dist/collection/components/sd-switch/sd-switch.js +9 -5
- package/dist/collection/components/sd-table/sd-table.js +76 -41
- package/dist/collection/components/sd-table/sd-table.stories.helpers.js +97 -0
- package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +4 -3
- package/dist/collection/components/sd-table/sd-td/sd-td.js +19 -10
- package/dist/collection/components/sd-table/sd-thead/sd-thead.css +21 -0
- package/dist/collection/components/sd-table/sd-thead/sd-thead.js +113 -20
- package/dist/collection/components/sd-table/sd-tr/sd-tr.js +22 -11
- package/dist/collection/components/sd-tabs/sd-tabs.js +13 -7
- package/dist/collection/components/sd-tag/sd-tag.js +10 -7
- package/dist/collection/components/sd-text-link/sd-text-link.js +21 -12
- package/dist/collection/components/sd-textarea/sd-textarea.js +69 -35
- package/dist/collection/components/sd-toast/sd-toast.js +20 -11
- package/dist/collection/components/sd-toast-container/sd-toast-container.js +19 -10
- package/dist/collection/components/sd-toggle/sd-toggle.js +9 -5
- package/dist/collection/components/sd-tooltip/sd-tooltip.js +30 -16
- package/dist/components/index.js +1 -1
- package/dist/components/{p-CUR9smP5.js → p-58DLP3IW.js} +1 -1
- package/dist/components/{p-CQozoo2-.js → p-B-Igud6n.js} +1 -1
- package/dist/components/{p-BZfVV3gu.js → p-B0myARGe.js} +1 -1
- package/dist/components/{p-CTPImLDQ.js → p-B12iH3Zk.js} +1 -1
- package/dist/components/{p-CoqA9KgU.js → p-B2bF2KlS.js} +1 -1
- package/dist/components/{p-MJG6EZeP.js → p-BFlmHQm9.js} +1 -1
- package/dist/{design-system/p-L_He_WSA.js → components/p-BRmilX-4.js} +1 -1
- package/dist/components/{p-Dl89_4C3.js → p-BXRgi3NZ.js} +1 -1
- package/dist/components/{p-BjcGzaFR.js → p-Bm3NWPaP.js} +1 -1
- package/dist/components/p-BpQwjSB8.js +1 -0
- package/dist/components/{p-CRwvv7YM.js → p-BpjmheLG.js} +1 -1
- package/dist/components/{p-5imde6N9.js → p-Bric-SEs.js} +1 -1
- package/dist/components/{p-CB2A3pJ5.js → p-BwTsP0Ak.js} +1 -1
- package/dist/components/{p-9Z-q6kKD.js → p-C1QezE7u.js} +1 -1
- package/dist/components/p-CCCwPJ5p.js +1 -0
- package/dist/components/p-CCO1WtEj.js +1 -0
- package/dist/components/p-CEKu7cxA.js +1 -0
- package/dist/components/{p-CrT06Uwc.js → p-CHxVi6l1.js} +1 -1
- package/dist/components/{p-DNnI3Nru.js → p-Cdzn78dP.js} +1 -1
- package/dist/components/p-Cj_1bYZF.js +1 -0
- package/dist/components/{p-ZvI5A-_t.js → p-Cjf8PHEl.js} +1 -1
- package/dist/components/{p-CJ69QmR3.js → p-Co2ThnbG.js} +1 -1
- package/dist/components/{p-gOIeNT-Z.js → p-CwSlRPMm.js} +1 -1
- package/dist/components/p-D7StBSjK.js +1 -0
- package/dist/components/{p-Bz93hWXV.js → p-DFbj6d3L.js} +1 -1
- package/dist/components/{p-B5bya7Gp.js → p-DlXBFtBO.js} +1 -1
- package/dist/components/{p-Rwc_ltPn.js → p-Du_qPqW-.js} +1 -1
- package/dist/components/{p-DIlNesBH.js → p-DzAvlr8W.js} +1 -1
- package/dist/components/{p-D99vy8Ip.js → p-FrqOl9KZ.js} +1 -1
- package/dist/components/{p-uSEbiD29.js → p-JMuxVcTW.js} +1 -1
- package/dist/components/{p-DertIGhs.js → p-OjchKJGr.js} +1 -1
- package/dist/components/p-S2-XqY2R.js +1 -0
- package/dist/components/{p-DDAA-zcg.js → p-YCGkwgiM.js} +1 -1
- package/dist/components/{p-DZTxHJlP.js → p-ZvP2Ce6J.js} +1 -1
- package/dist/components/p-kRH2GOb0.js +1 -0
- package/dist/components/{p-FTvXz0-a.js → p-mcMbSkii.js} +1 -1
- package/dist/components/{p-BiBLp9_a.js → p-vPS2GNz3.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-14447dd5.entry.js +1 -0
- package/dist/design-system/{p-e9d1dbb5.entry.js → p-274dbc65.entry.js} +1 -1
- package/dist/design-system/{p-b291baab.entry.js → p-2ba0b35a.entry.js} +1 -1
- package/dist/design-system/{p-52f551a1.entry.js → p-2ca4902b.entry.js} +1 -1
- package/dist/design-system/p-2df32f8c.entry.js +1 -0
- package/dist/design-system/{p-cb80327c.entry.js → p-35da166a.entry.js} +1 -1
- package/dist/design-system/p-35e1e2fa.entry.js +1 -0
- package/dist/design-system/p-4bbc894b.entry.js +1 -0
- package/dist/design-system/{p-6ce68bf2.entry.js → p-4bc0ce52.entry.js} +1 -1
- package/dist/design-system/p-4c1559c8.entry.js +1 -0
- package/dist/design-system/{p-da4e2674.entry.js → p-4eeca0cb.entry.js} +1 -1
- package/dist/design-system/{p-646a7830.entry.js → p-4f69fde0.entry.js} +1 -1
- package/dist/design-system/{p-ccf1a3fc.entry.js → p-50b5cf37.entry.js} +1 -1
- package/dist/design-system/p-52e88677.entry.js +1 -0
- package/dist/design-system/{p-4acfc5f9.entry.js → p-552acf98.entry.js} +1 -1
- package/dist/design-system/{p-23006577.entry.js → p-563a8242.entry.js} +1 -1
- package/dist/design-system/{p-e3990243.entry.js → p-68687503.entry.js} +1 -1
- package/dist/design-system/{p-1f3c1cca.entry.js → p-6d8a4a23.entry.js} +1 -1
- package/dist/design-system/{p-d5032f31.entry.js → p-7c507d39.entry.js} +1 -1
- package/dist/design-system/{p-717eba5f.entry.js → p-88926a42.entry.js} +1 -1
- package/dist/design-system/{p-35d390f1.entry.js → p-90436be8.entry.js} +1 -1
- package/dist/design-system/{p-9289eb14.entry.js → p-99f33027.entry.js} +1 -1
- package/dist/design-system/{p-c47198fc.entry.js → p-9a010c12.entry.js} +1 -1
- package/dist/design-system/{p-54853a2b.entry.js → p-9dc0c2f9.entry.js} +1 -1
- package/dist/{components/p-Bg9XySrz.js → design-system/p-C7HJ-NfO.js} +2 -1
- package/dist/{components/p-0VCXAYrh.js → design-system/p-DUyBmuH_.js} +1 -1
- package/dist/design-system/{p-d5c3bac9.entry.js → p-a71a8b31.entry.js} +1 -1
- package/dist/design-system/{p-a4331364.entry.js → p-a80cc067.entry.js} +1 -1
- package/dist/design-system/{p-ae344950.entry.js → p-abcc9367.entry.js} +1 -1
- package/dist/design-system/p-ac81b46e.entry.js +1 -0
- package/dist/design-system/{p-08343698.entry.js → p-b881bbb6.entry.js} +1 -1
- package/dist/design-system/{p-2151e081.entry.js → p-bfba449b.entry.js} +1 -1
- package/dist/design-system/p-c684cd96.entry.js +1 -0
- package/dist/design-system/{p-b63b8df9.entry.js → p-c93c623f.entry.js} +1 -1
- package/dist/design-system/{p-98e0b332.entry.js → p-ccc85130.entry.js} +1 -1
- package/dist/design-system/{p-aa1c6202.entry.js → p-ce5df7ef.entry.js} +1 -1
- package/dist/design-system/{p-adfddf3b.entry.js → p-ce83eca1.entry.js} +1 -1
- package/dist/design-system/{p-7ed8c8f1.entry.js → p-d5b535ad.entry.js} +1 -1
- package/dist/design-system/{p-df7c721d.entry.js → p-e310f188.entry.js} +1 -1
- package/dist/design-system/p-e7d4b78e.entry.js +1 -0
- package/dist/design-system/{p-bdb7492c.entry.js → p-fc65bbe2.entry.js} +1 -1
- package/dist/design-system/{p-a5a586da.entry.js → p-ff726fad.entry.js} +1 -1
- package/dist/esm/design-system.js +3 -3
- package/dist/esm/{index-CAxodB5I.js → index-C7HJ-NfO.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/sd-action-modal.entry.js +8 -2
- package/dist/esm/sd-badge.entry.js +3 -2
- package/dist/esm/sd-barcode-input.entry.js +35 -2
- package/dist/esm/sd-button_2.entry.js +16 -7
- package/dist/esm/sd-calendar_2.entry.js +17 -6
- package/dist/esm/sd-callout.entry.js +4 -2
- package/dist/esm/sd-card.entry.js +4 -2
- package/dist/esm/sd-checkbox.entry.js +21 -12
- package/dist/esm/sd-chip-input.entry.js +76 -18
- package/dist/esm/sd-chip.entry.js +19 -2
- package/dist/esm/sd-circle-progress.entry.js +6 -2
- package/dist/esm/sd-confirm-modal_2.entry.js +27 -4
- package/dist/esm/sd-date-box.entry.js +13 -3
- package/dist/esm/sd-date-picker_7.entry.js +209 -13
- package/dist/esm/sd-date-range-picker-calendar.entry.js +7 -2
- package/dist/esm/sd-divider.entry.js +1 -1
- package/dist/esm/sd-dropdown-button.entry.js +11 -1
- package/dist/esm/sd-field_3.entry.js +70 -12
- package/dist/esm/sd-form.entry.js +10 -2
- package/dist/esm/sd-ghost-button_3.entry.js +54 -15
- package/dist/esm/sd-guide.entry.js +9 -3
- package/dist/esm/sd-key-value-table.entry.js +3 -1
- package/dist/esm/sd-linear-progress.entry.js +7 -4
- package/dist/esm/sd-loading-container.entry.js +5 -3
- package/dist/esm/sd-modal-container.entry.js +7 -1
- package/dist/esm/sd-pagination_4.entry.js +121 -13
- package/dist/esm/sd-popover.entry.js +21 -5
- package/dist/esm/sd-popup.entry.js +7 -3
- package/dist/esm/sd-radio-button.entry.js +8 -2
- package/dist/esm/sd-radio.entry.js +7 -2
- package/dist/esm/sd-select-list-item_2.entry.js +18 -7
- package/dist/esm/sd-select_3.entry.js +56 -9
- package/dist/esm/sd-switch.entry.js +6 -2
- package/dist/esm/sd-table.entry.js +42 -7
- package/dist/esm/sd-tabs.entry.js +8 -2
- package/dist/esm/sd-td.entry.js +11 -2
- package/dist/esm/sd-text-link.entry.js +13 -4
- package/dist/esm/sd-toast-container.entry.js +11 -2
- package/dist/esm/sd-toast.entry.js +12 -3
- package/dist/esm/sd-toggle.entry.js +6 -2
- package/dist/esm/{tooltipArrow-DLr6VvUK.js → tooltipArrow-Bgf3crs7.js} +1 -1
- package/dist/types/components/sd-action-modal/sd-action-modal.d.ts +6 -0
- package/dist/types/components/sd-badge/sd-badge.d.ts +1 -0
- package/dist/types/components/sd-barcode-input/sd-barcode-input.d.ts +33 -0
- package/dist/types/components/sd-button/sd-button.d.ts +8 -0
- package/dist/types/components/sd-calendar/sd-calendar.d.ts +6 -0
- package/dist/types/components/sd-callout/sd-callout.d.ts +2 -0
- package/dist/types/components/sd-card/sd-card.d.ts +2 -0
- package/dist/types/components/sd-checkbox/sd-checkbox.config.d.ts +2 -0
- package/dist/types/components/sd-chip/sd-chip.d.ts +17 -0
- package/dist/types/components/sd-chip-input/sd-chip-input.d.ts +33 -0
- package/dist/types/components/sd-circle-progress/sd-circle-progress.d.ts +4 -0
- package/dist/types/components/sd-confirm-modal/sd-confirm-modal.d.ts +15 -0
- package/dist/types/components/sd-date-box/sd-date-box.d.ts +10 -0
- package/dist/types/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.d.ts +5 -0
- package/dist/types/components/sd-date-picker/sd-date-picker.d.ts +23 -0
- package/dist/types/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.d.ts +5 -0
- package/dist/types/components/sd-date-range-picker/sd-date-range-picker.d.ts +24 -0
- package/dist/types/components/sd-dropdown-button/sd-dropdown-button.d.ts +10 -0
- package/dist/types/components/sd-field/sd-field.d.ts +23 -0
- package/dist/types/components/sd-file-picker/sd-file-picker.d.ts +30 -0
- package/dist/types/components/sd-floating-portal/sd-floating-portal.d.ts +12 -0
- package/dist/types/components/sd-form/sd-form.d.ts +8 -0
- package/dist/types/components/sd-ghost-button/sd-ghost-button.d.ts +7 -0
- package/dist/types/components/sd-guide/sd-guide.d.ts +6 -0
- package/dist/types/components/sd-icon/sd-icon.d.ts +1 -0
- package/dist/types/components/sd-input/sd-input.d.ts +40 -0
- package/dist/types/components/sd-key-value-table/sd-key-value-table.d.ts +2 -0
- package/dist/types/components/sd-linear-progress/sd-linear-progress.d.ts +4 -0
- package/dist/types/components/sd-loading-container/sd-loading-container.d.ts +2 -0
- package/dist/types/components/sd-loading-modal/sd-loading-modal.d.ts +8 -0
- package/dist/types/components/sd-modal-container/sd-modal-container.d.ts +6 -0
- package/dist/types/components/sd-number-input/sd-number-input.d.ts +39 -0
- package/dist/types/components/sd-pagination/sd-pagination.d.ts +4 -0
- package/dist/types/components/sd-popover/sd-popover.d.ts +16 -0
- package/dist/types/components/sd-popup/sd-popup.d.ts +5 -0
- package/dist/types/components/sd-portal/sd-portal.d.ts +13 -0
- package/dist/types/components/sd-radio/sd-radio.d.ts +5 -0
- package/dist/types/components/sd-radio-button/sd-radio-button.d.ts +6 -0
- package/dist/types/components/sd-radio-group/sd-radio-group.d.ts +6 -0
- package/dist/types/components/sd-select/sd-select-list-item/sd-select-list-item.d.ts +7 -0
- package/dist/types/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.d.ts +4 -0
- package/dist/types/components/sd-select/sd-select-listbox/sd-select-listbox.d.ts +10 -0
- package/dist/types/components/sd-select/sd-select-trigger/sd-select-trigger.d.ts +8 -0
- package/dist/types/components/sd-select/sd-select.d.ts +29 -0
- package/dist/types/components/sd-switch/sd-switch.d.ts +4 -0
- package/dist/types/components/sd-table/constants.d.ts +1 -0
- package/dist/types/components/sd-table/sd-table.d.ts +35 -0
- package/dist/types/components/sd-table/sd-table.stories.helpers.d.ts +10 -0
- package/dist/types/components/sd-table/sd-tbody/sd-tbody.d.ts +1 -0
- package/dist/types/components/sd-table/sd-td/sd-td.d.ts +9 -0
- package/dist/types/components/sd-table/sd-thead/sd-thead.d.ts +21 -0
- package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +11 -0
- package/dist/types/components/sd-tabs/sd-tabs.d.ts +6 -0
- package/dist/types/components/sd-tag/sd-tag.d.ts +4 -0
- package/dist/types/components/sd-text-link/sd-text-link.d.ts +9 -0
- package/dist/types/components/sd-textarea/sd-textarea.d.ts +34 -0
- package/dist/types/components/sd-toast/sd-toast.d.ts +9 -0
- package/dist/types/components/sd-toast-container/sd-toast-container.d.ts +9 -0
- package/dist/types/components/sd-toggle/sd-toggle.d.ts +4 -0
- package/dist/types/components/sd-tooltip/sd-tooltip.d.ts +14 -0
- package/dist/types/components.d.ts +1827 -7
- package/hydrate/index.js +949 -146
- package/hydrate/index.mjs +949 -146
- package/package.json +1 -1
- package/dist/components/p-B7PHGGFH.js +0 -1
- package/dist/components/p-CLlAhEDc.js +0 -1
- package/dist/components/p-CXeOxSQ-.js +0 -1
- package/dist/components/p-CZfsknba.js +0 -1
- package/dist/components/p-CvSqieCH.js +0 -1
- package/dist/components/p-P2jWtk8J.js +0 -1
- package/dist/components/p-xkRWGISE.js +0 -1
- package/dist/design-system/p-17dcf0e4.entry.js +0 -1
- package/dist/design-system/p-316b8a08.entry.js +0 -1
- package/dist/design-system/p-5039241c.entry.js +0 -1
- package/dist/design-system/p-5eaa12af.entry.js +0 -1
- package/dist/design-system/p-9c38ee79.entry.js +0 -1
- package/dist/design-system/p-CAxodB5I.js +0 -2
- package/dist/design-system/p-c995e6c3.entry.js +0 -1
- package/dist/design-system/p-eef6d4a3.entry.js +0 -1
- package/dist/design-system/p-faf7b64c.entry.js +0 -1
- package/dist/design-system/p-fd7abbfa.entry.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h } from './index-
|
|
1
|
+
import { r as registerInstance, h } from './index-C7HJ-NfO.js';
|
|
2
2
|
|
|
3
3
|
const sdLoadingContainerCss = () => `sd-loading-container .sd-loading-container{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:var(--sd-loading-container-z-index, 999);opacity:0;visibility:hidden;transition:opacity 0.2s ease, visibility 0s linear 0.2s;pointer-events:none}sd-loading-container .sd-loading-container--visible{opacity:1;visibility:visible;transition:opacity 0.2s ease, visibility 0s linear 0s;pointer-events:auto}sd-loading-container .sd-loading-container__backdrop{position:absolute;inset:0;background:rgba(0, 0, 0, 0.4)}sd-loading-container .sd-loading-container__content{position:relative;display:flex;flex-direction:column;align-items:center;gap:16px}sd-loading-container .sd-loading-container__message{margin:0;color:#ffffff;font-size:14px;font-weight:500;line-height:22px;text-align:center;max-width:400px;word-break:keep-all}`;
|
|
4
4
|
|
|
@@ -8,18 +8,20 @@ const SdLoadingContainer = class {
|
|
|
8
8
|
}
|
|
9
9
|
visible = false;
|
|
10
10
|
message = '';
|
|
11
|
+
/** 로딩 오버레이를 표시합니다. */
|
|
11
12
|
async show(options = {}) {
|
|
12
13
|
this.message = options.message ?? '';
|
|
13
14
|
this.visible = true;
|
|
14
15
|
}
|
|
16
|
+
/** 로딩 오버레이를 숨깁니다. */
|
|
15
17
|
async hide() {
|
|
16
18
|
this.visible = false;
|
|
17
19
|
}
|
|
18
20
|
render() {
|
|
19
|
-
return (h("div", { key: '
|
|
21
|
+
return (h("div", { key: 'b8efbc6422fded2472a6e575c9a7102375f90600', class: {
|
|
20
22
|
'sd-loading-container': true,
|
|
21
23
|
'sd-loading-container--visible': this.visible,
|
|
22
|
-
}, "aria-hidden": this.visible ? 'false' : 'true' }, h("div", { key: '
|
|
24
|
+
}, "aria-hidden": this.visible ? 'false' : 'true' }, h("div", { key: '1ff327157be008e278636d49069945e553c1ecbd', class: "sd-loading-container__backdrop" }), h("div", { key: 'd55d2ab11528e35c04e8dd98f8c10d0f913a536e', class: "sd-loading-container__content" }, h("sd-circle-progress", { key: '29060ee18eb4e5a47bae25462abe11b8d5abfb0c', indeterminate: true, type: "inverse" }), this.message && h("p", { key: 'cf0478da282996ba4f7ecb920d8262181369af8a', class: "sd-loading-container__message" }, this.message))));
|
|
23
25
|
}
|
|
24
26
|
};
|
|
25
27
|
SdLoadingContainer.style = sdLoadingContainerCss();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, a as getElement, h } from './index-
|
|
1
|
+
import { r as registerInstance, a as getElement, h } from './index-C7HJ-NfO.js';
|
|
2
2
|
import { u as unregisterModal, r as registerModal, s as setModalInteractive, i as isTopInteractiveModal, a as requestCloseForModal } from './modal-stack-DRVnqiWc.js';
|
|
3
3
|
|
|
4
4
|
const sdModalContainerCss = () => `sd-modal-container{display:block}sd-modal-container .sd-modal-container{position:fixed;inset:0;z-index:var(--sd-modal-container-z-index, 997);pointer-events:none}sd-modal-container .sd-modal-container__layer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}sd-modal-container .sd-modal-container__backdrop{position:absolute;inset:0;background:rgba(0, 0, 0, 0.4);opacity:0;transition:opacity 0.3s ease-out;pointer-events:none}sd-modal-container .sd-modal-container__backdrop--visible{opacity:1;pointer-events:auto}sd-modal-container .sd-modal-container__modal{position:relative;z-index:1;opacity:0;transform:scale(0);pointer-events:auto;transition:opacity 0.3s ease-out, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)}sd-modal-container .sd-modal-container__modal--visible{opacity:1;transform:scale(1)}sd-modal-container .sd-modal-container__modal--shake{animation:modal-shake 0.3s ease-out}@keyframes modal-shake{0%,100%{transform:scale(1)}25%{transform:scale(1.03)}50%{transform:scale(0.97)}75%{transform:scale(1.01)}}`;
|
|
@@ -11,9 +11,11 @@ const SdModalContainer = class {
|
|
|
11
11
|
registerInstance(this, hostRef);
|
|
12
12
|
}
|
|
13
13
|
get el() { return getElement(this); }
|
|
14
|
+
/** 마지막 모달이 닫힐 때 자신을 DOM에서 제거할지 여부 */
|
|
14
15
|
autoRemove = false;
|
|
15
16
|
entries = [];
|
|
16
17
|
layerRefs = new Map();
|
|
18
|
+
/** 확인 모달을 열고 모달 ID를 반환합니다. */
|
|
17
19
|
async open(options, modalRef) {
|
|
18
20
|
const id = `modal-${++modalIdCounter}`;
|
|
19
21
|
const modalEl = this.createConfirmModal(id, options);
|
|
@@ -28,6 +30,7 @@ const SdModalContainer = class {
|
|
|
28
30
|
});
|
|
29
31
|
return id;
|
|
30
32
|
}
|
|
33
|
+
/** 로딩 모달을 열고 모달 ID를 반환합니다. */
|
|
31
34
|
async openLoading(options, modalRef) {
|
|
32
35
|
const id = `modal-${++modalIdCounter}`;
|
|
33
36
|
const modalEl = this.createLoadingModal(id, options);
|
|
@@ -42,6 +45,7 @@ const SdModalContainer = class {
|
|
|
42
45
|
});
|
|
43
46
|
return id;
|
|
44
47
|
}
|
|
48
|
+
/** 커스텀 엘리먼트를 모달로 등록하고 모달 ID를 반환합니다. */
|
|
45
49
|
async createCustom(element, options, modalRef) {
|
|
46
50
|
const id = `modal-${++modalIdCounter}`;
|
|
47
51
|
element.setAttribute('data-modal-id', id);
|
|
@@ -87,12 +91,14 @@ const SdModalContainer = class {
|
|
|
87
91
|
unregisterModal(entry.id);
|
|
88
92
|
}
|
|
89
93
|
}
|
|
94
|
+
/** 지정한 ID의 모달을 닫습니다. */
|
|
90
95
|
async dismissById(id, reason) {
|
|
91
96
|
const entry = this.entries.find(e => e.id === id);
|
|
92
97
|
if (!entry)
|
|
93
98
|
return;
|
|
94
99
|
this.requestDismiss(id, reason);
|
|
95
100
|
}
|
|
101
|
+
/** 열려있는 모달의 props를 동적으로 업데이트합니다. */
|
|
96
102
|
async update(id, props) {
|
|
97
103
|
const entry = this.entries.find(e => e.id === id && !e.closing);
|
|
98
104
|
if (!entry)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, F as Fragment, a as getElement, H as Host } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, F as Fragment, a as getElement, H as Host } from './index-C7HJ-NfO.js';
|
|
2
2
|
import { T as TABLE_ID_ATTR } from './constants-sZMi_32I.js';
|
|
3
3
|
import { a as TABLE_SELECTABLE_COLUMN_WIDTH, r as resolveTableIconColor, e as resolveSortIconName, c as TABLE_BORDER, f as TABLE_HEADER_RESIZING_BAR, g as TABLE_HEADER_TYPOGRAPHY, h as TABLE_HEADER_COLORS, i as TABLE_HEADER_LAYOUT, T as TABLE_BODY_LAYOUT, j as TABLE_SEPARATOR, b as TABLE_BODY_TYPOGRAPHY } from './sd-table.config-B3wuA5wX.js';
|
|
4
4
|
import './component.table-D6GUzecR.js';
|
|
@@ -78,9 +78,13 @@ const SdPagination = class {
|
|
|
78
78
|
registerInstance(this, hostRef);
|
|
79
79
|
this.pageChange = createEvent(this, "sdPageChange", 7);
|
|
80
80
|
}
|
|
81
|
+
/** 현재 페이지 번호 */
|
|
81
82
|
currentPage = 1;
|
|
83
|
+
/** 마지막 페이지 번호 */
|
|
82
84
|
lastPage = 1;
|
|
85
|
+
/** true이면 현재/마지막 페이지만 표시하는 단순 모드 */
|
|
83
86
|
simple = false;
|
|
87
|
+
/** 페이지가 변경될 때 새 페이지 번호를 전달합니다. */
|
|
84
88
|
pageChange;
|
|
85
89
|
get pageNumbers() {
|
|
86
90
|
const start = Math.floor((this.currentPage - 1) / PER_PAGE) * PER_PAGE + 1;
|
|
@@ -152,13 +156,13 @@ const SdPagination = class {
|
|
|
152
156
|
'--sd-pagination-bg-selected': PAGINATION_COLORS.bgSelected,
|
|
153
157
|
'--sd-pagination-item-width': `${this.buttonWidth}px`,
|
|
154
158
|
};
|
|
155
|
-
return (h("div", { key: '
|
|
159
|
+
return (h("div", { key: '733bf7952c4e38a65a1042c6a8784d6502c81667', class: {
|
|
156
160
|
'sd-pagination': true,
|
|
157
161
|
'sd-pagination--simple': this.simple,
|
|
158
|
-
}, style: cssVars }, h("div", { key: '
|
|
162
|
+
}, style: cssVars }, h("div", { key: '4c23bdfb9a58950a04107fc4b4c921bbafa4e601', class: "sd-pagination__group sd-pagination__group--prev" }, this.renderPrevButtons()), this.simple ? (h("div", { class: "sd-pagination__info" }, h("span", { class: "sd-pagination__current" }, this.currentPage), h("span", { class: "sd-pagination__divider" }, "/"), h("span", { class: "sd-pagination__last" }, this.lastPage))) : (h("div", { class: "sd-pagination__numbers" }, this.pageNumbers.map(n => (h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
|
|
159
163
|
'sd-pagination__item': true,
|
|
160
164
|
'sd-pagination__item--selected': this.currentPage === n,
|
|
161
|
-
}, onClick: () => this.handlePageChange(n) }, n))))), h("div", { key: '
|
|
165
|
+
}, onClick: () => this.handlePageChange(n) }, n))))), h("div", { key: 'a0406c1f9cd13970d47f25ed88095ac1c684203c', class: "sd-pagination__group sd-pagination__group--next" }, this.renderNextButtons())));
|
|
162
166
|
}
|
|
163
167
|
};
|
|
164
168
|
SdPagination.style = sdPaginationCss();
|
|
@@ -170,6 +174,7 @@ const SdTbody = class {
|
|
|
170
174
|
registerInstance(this, hostRef);
|
|
171
175
|
}
|
|
172
176
|
get el() { return getElement(this); }
|
|
177
|
+
/** 렌더링할 행 데이터 목록 */
|
|
173
178
|
rows = [];
|
|
174
179
|
tableId = '';
|
|
175
180
|
topSpacerHeight = 0;
|
|
@@ -213,9 +218,9 @@ const SdTbody = class {
|
|
|
213
218
|
}
|
|
214
219
|
}
|
|
215
220
|
render() {
|
|
216
|
-
return (h(Host, { key: '
|
|
221
|
+
return (h(Host, { key: '0f85168b22221551714f3c75bd12c366538cc5ec', slot: `${this.tableId}-body` }, h("tbody", { key: 'f9a8528d40c51988cfbca2c349905dafdafce8d3', class: { tbody: true } }, [
|
|
217
222
|
this.topSpacerHeight > 0 && (h("tr", { key: "spacer-top", class: "tbody__spacer", style: { height: `${this.topSpacerHeight}px`, display: 'block' } })),
|
|
218
|
-
h("slot", { key: '
|
|
223
|
+
h("slot", { key: '7ecfe2f730b4c909d394fdee2d9aa015c5410cb4' }),
|
|
219
224
|
this.bottomSpacerHeight > 0 && (h("tr", { key: "spacer-bottom", class: "tbody__spacer", style: { height: `${this.bottomSpacerHeight}px`, display: 'block' } })),
|
|
220
225
|
])));
|
|
221
226
|
}
|
|
@@ -227,7 +232,7 @@ const SdTbody = class {
|
|
|
227
232
|
};
|
|
228
233
|
SdTbody.style = sdTbodyCss();
|
|
229
234
|
|
|
230
|
-
const sdTheadCss = () => `sd-thead{display:contents}sd-thead *{box-sizing:border-box}.thead{display:table-header-group;height:var(--table-header-height, 36px)}.thead--sticky{position:sticky;top:0;z-index:120}.tr{display:table-row;width:100%}.th{display:table-cell;background:var(--table-header-bg, #F5FAFF);height:var(--table-header-height, 36px);padding:0 var(--table-header-padding-x, 16px);font-family:var(--table-header-font-family, inherit);font-weight:var(--table-header-font-weight, 500);font-size:var(--table-header-font-size, 12px);line-height:var(--table-header-line-height, 20px);text-decoration:var(--table-header-text-decoration, none);vertical-align:middle;border-bottom:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.th--selected{position:relative;width:var(--table-selectable-width, 48px) !important;max-width:var(--table-selectable-width, 48px) !important;min-width:var(--table-selectable-width, 48px) !important;text-align:center}.th--selected sd-checkbox label{position:relative}.th--selected sd-checkbox label:before{content:"";position:absolute;inset:-6px}.th.sticky-left{position:sticky;background-color:var(--table-header-bg, #F5FAFF);z-index:110 !important;left:var(--sticky-left-offset, 0)}.th.sticky-right{position:sticky;background-color:var(--table-header-bg, #F5FAFF);z-index:110 !important;right:var(--sticky-right-offset, 0)}.th.sticky-left-edge:after{content:"";position:absolute;top:0;left:100%;right:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset 12px 0 20px -25px;opacity:0;pointer-events:none;transition:opacity 0.2s}.th.sticky-right-edge:after{content:"";position:absolute;top:0;left:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset -12px 0 20px -25px;opacity:0;pointer-events:none;transition:opacity 0.2s}.th.sticky-left-edge.is-scrolled-left{overflow:visible}.th.sticky-left-edge.is-scrolled-left:after{opacity:1}.th.sticky-right-edge.is-scrolled-right{overflow:visible}.th.sticky-right-edge.is-scrolled-right:after{opacity:1}.th__content{display:flex;flex-flow:row nowrap;align-items:center;gap:var(--table-header-gap, 4px)}.th__content--left{justify-content:flex-start}.th__content--center{justify-content:center}.th__content--right{justify-content:flex-end}.th__content--label{white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.th__bar{position:absolute;top:50%;right:0;transform:translateY(-50%);width:var(--table-border-width, 1px);height:var(--table-header-resizer-height, 16px);z-index:3;background-color:var(--table-header-resizer-color, #CCCCCC)}.th__resizer{position:absolute;top:50%;right:0;transform:translateY(-50%);width:4px;height:var(--table-header-resizer-height, 16px);cursor:col-resize;z-index:3;border-left:var(--table-border-width, 1px) solid var(--table-header-resizer-color, #CCCCCC);border-right:var(--table-border-width, 1px) solid var(--table-header-resizer-color, #CCCCCC)}.th__resizer--left{right:auto;left:0}`;
|
|
235
|
+
const sdTheadCss = () => `sd-thead{display:contents}sd-thead *{box-sizing:border-box}.thead{display:table-header-group;height:var(--table-header-height, 36px)}.thead--sticky{position:sticky;top:0;z-index:120}.tr{display:table-row;width:100%}.th{display:table-cell;background:var(--table-header-bg, #F5FAFF);height:var(--table-header-height, 36px);padding:0 var(--table-header-padding-x, 16px);font-family:var(--table-header-font-family, inherit);font-weight:var(--table-header-font-weight, 500);font-size:var(--table-header-font-size, 12px);line-height:var(--table-header-line-height, 20px);text-decoration:var(--table-header-text-decoration, none);vertical-align:middle;border-bottom:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.th--selected{position:relative;width:var(--table-selectable-width, 48px) !important;max-width:var(--table-selectable-width, 48px) !important;min-width:var(--table-selectable-width, 48px) !important;text-align:center}.th--selected sd-checkbox label{position:relative}.th--selected sd-checkbox label:before{content:"";position:absolute;inset:-6px}.th.sticky-left{position:sticky;background-color:var(--table-header-bg, #F5FAFF);z-index:110 !important;left:var(--sticky-left-offset, 0)}.th.sticky-right{position:sticky;background-color:var(--table-header-bg, #F5FAFF);z-index:110 !important;right:var(--sticky-right-offset, 0)}.th.sticky-left-edge:after{content:"";position:absolute;top:0;left:100%;right:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset 12px 0 20px -25px;opacity:0;pointer-events:none;transition:opacity 0.2s}.th.sticky-right-edge:after{content:"";position:absolute;top:0;left:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset -12px 0 20px -25px;opacity:0;pointer-events:none;transition:opacity 0.2s}.th.sticky-left-edge.is-scrolled-left{overflow:visible}.th.sticky-left-edge.is-scrolled-left:after{opacity:1}.th.sticky-right-edge.is-scrolled-right{overflow:visible}.th.sticky-right-edge.is-scrolled-right:after{opacity:1}.th__content{display:flex;flex-flow:row nowrap;align-items:center;gap:var(--table-header-gap, 4px)}.th__content--left{justify-content:flex-start}.th__content--center{justify-content:center}.th__content--right{justify-content:flex-end}.th__content--label{white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.th__bar{position:absolute;top:50%;right:0;transform:translateY(-50%);width:var(--table-border-width, 1px);height:var(--table-header-resizer-height, 16px);z-index:3;background-color:var(--table-header-resizer-color, #CCCCCC)}.th__dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;padding:0;border:none;background:transparent;cursor:pointer;color:inherit;border-radius:2px}.th__dropdown-trigger sd-icon{transition:transform 0.15s ease}.th__dropdown-trigger--open sd-icon{transform:rotate(180deg)}.th__resizer{position:absolute;top:50%;right:0;transform:translateY(-50%);width:4px;height:var(--table-header-resizer-height, 16px);cursor:col-resize;z-index:3;border-left:var(--table-border-width, 1px) solid var(--table-header-resizer-color, #CCCCCC);border-right:var(--table-border-width, 1px) solid var(--table-header-resizer-color, #CCCCCC)}.th__resizer--left{right:auto;left:0}`;
|
|
231
236
|
|
|
232
237
|
const SdThead = class {
|
|
233
238
|
constructor(hostRef) {
|
|
@@ -235,15 +240,25 @@ const SdThead = class {
|
|
|
235
240
|
this.sdColumnSort = createEvent(this, "sdColumnSort", 7);
|
|
236
241
|
}
|
|
237
242
|
get el() { return getElement(this); }
|
|
243
|
+
/** 테이블 컬럼 목록 */
|
|
238
244
|
columns;
|
|
245
|
+
/** 행 선택 기능 사용 여부 */
|
|
239
246
|
selectable;
|
|
247
|
+
/** 컬럼 너비 조절 가능 여부 */
|
|
240
248
|
resizable;
|
|
249
|
+
/** 고정 컬럼 설정 */
|
|
241
250
|
stickyColumn;
|
|
251
|
+
/** 헤더 고정 여부 */
|
|
242
252
|
stickyHeader;
|
|
253
|
+
/** 좌측 스크롤 여부 */
|
|
243
254
|
scrolledLeft;
|
|
255
|
+
/** 우측 스크롤 여부 */
|
|
244
256
|
scrolledRight;
|
|
257
|
+
/** 전체 선택 체크박스용 행 데이터 */
|
|
245
258
|
rows = [];
|
|
259
|
+
/** 컬럼 너비 목록 */
|
|
246
260
|
columnWidths = [];
|
|
261
|
+
/** 컬럼 정렬 버튼 클릭 시 발생합니다. */
|
|
247
262
|
sdColumnSort;
|
|
248
263
|
tableId = '';
|
|
249
264
|
_columns = [];
|
|
@@ -253,14 +268,29 @@ const SdThead = class {
|
|
|
253
268
|
_stickyHeader = false;
|
|
254
269
|
_scrolledLeft = false;
|
|
255
270
|
_scrolledRight = false;
|
|
271
|
+
dropdownOpenMap = {};
|
|
256
272
|
tableEl = null;
|
|
273
|
+
dropdownRefs = {};
|
|
274
|
+
dropdownThRefs = {};
|
|
275
|
+
dropdownPortals = {};
|
|
257
276
|
handleColumnsChange(newCols) {
|
|
258
277
|
if (Array.isArray(newCols) && (this.columnWidths ?? []).length === 0) {
|
|
259
278
|
this.columnWidths = newCols.map(c => (c.autoWidth ? 0 : parseInt(c.width || '120', 10)));
|
|
260
279
|
}
|
|
261
280
|
}
|
|
281
|
+
disconnectedCallback() {
|
|
282
|
+
const portals = this.dropdownPortals ?? {};
|
|
283
|
+
Object.values(portals).forEach(portal => {
|
|
284
|
+
if (portal?.parentNode != null)
|
|
285
|
+
portal.parentNode.removeChild(portal);
|
|
286
|
+
});
|
|
287
|
+
}
|
|
262
288
|
componentWillLoad() {
|
|
263
289
|
this.syncTableContext();
|
|
290
|
+
this.dropdownOpenMap = this.dropdownOpenMap ?? {};
|
|
291
|
+
this.dropdownRefs = this.dropdownRefs ?? {};
|
|
292
|
+
this.dropdownThRefs = this.dropdownThRefs ?? {};
|
|
293
|
+
this.dropdownPortals = this.dropdownPortals ?? {};
|
|
264
294
|
this.columnWidths = Array.isArray(this.columnWidths) ? this.columnWidths : [];
|
|
265
295
|
this.resolveConfig();
|
|
266
296
|
if ((this.columnWidths ?? []).length === 0) {
|
|
@@ -270,6 +300,36 @@ const SdThead = class {
|
|
|
270
300
|
componentDidLoad() {
|
|
271
301
|
this.syncTableContext();
|
|
272
302
|
this.resolveConfig();
|
|
303
|
+
this.initDropdownPortals();
|
|
304
|
+
}
|
|
305
|
+
// sd-portal을 body에 붙여 CSS transform 영향 없이 정확한 위치에 패널을 표시한다.
|
|
306
|
+
// <slot>을 render에 두지 않고 직접 DOM 이동(slot 속성 제거)으로 Stencil 슬롯 에뮬레이션 충돌을 피한다.
|
|
307
|
+
initDropdownPortals() {
|
|
308
|
+
const cols = this._columns ?? [];
|
|
309
|
+
const hasDropdownCols = cols.filter(c => c.hasDropdown === true);
|
|
310
|
+
if (hasDropdownCols.length === 0)
|
|
311
|
+
return;
|
|
312
|
+
for (const col of hasDropdownCols) {
|
|
313
|
+
const colName = col.name;
|
|
314
|
+
// 이미 포탈이 생성된 컬럼은 건너뜀 (refreshConfig 재호출 대비)
|
|
315
|
+
if ((this.dropdownPortals ?? {})[colName] != null)
|
|
316
|
+
continue;
|
|
317
|
+
const slotContent = this.el.querySelector(`[slot="dropdown-${colName}"]`);
|
|
318
|
+
if (slotContent == null)
|
|
319
|
+
continue;
|
|
320
|
+
// slot 속성 제거: Stencil 슬롯 에뮬레이션이 재배포하지 못하게 한다
|
|
321
|
+
slotContent.removeAttribute('slot');
|
|
322
|
+
const portal = document.createElement('sd-portal');
|
|
323
|
+
portal.parentRef = this.dropdownThRefs[colName] ?? null;
|
|
324
|
+
portal.open = false;
|
|
325
|
+
// 첫 open 전까지 포탈 호스트 자체를 숨긴다.
|
|
326
|
+
// moveSlotContent()가 open=true 시 children을 독립 wrapper div로 이동하므로 이후 동작에 영향 없음.
|
|
327
|
+
portal.style.display = 'none';
|
|
328
|
+
portal.addEventListener('sdClose', () => this.closeDropdown(colName));
|
|
329
|
+
portal.appendChild(slotContent);
|
|
330
|
+
document.body.appendChild(portal);
|
|
331
|
+
this.dropdownPortals[colName] = portal;
|
|
332
|
+
}
|
|
273
333
|
}
|
|
274
334
|
syncTableContext() {
|
|
275
335
|
// sd-table이 shadow:true이므로 fallback content로 렌더되면 closest가 경계를 못 넘는다.
|
|
@@ -309,12 +369,16 @@ const SdThead = class {
|
|
|
309
369
|
this.columnWidths = [];
|
|
310
370
|
}
|
|
311
371
|
}
|
|
372
|
+
/** 테이블 설정을 다시 불러옵니다. */
|
|
312
373
|
async refreshConfig() {
|
|
313
374
|
this.resolveConfig();
|
|
375
|
+
this.initDropdownPortals();
|
|
314
376
|
}
|
|
377
|
+
/** 컬럼 너비를 업데이트합니다. */
|
|
315
378
|
async setColumnWidths(widths) {
|
|
316
379
|
this.columnWidths = Array.isArray(widths) ? widths : [];
|
|
317
380
|
}
|
|
381
|
+
/** 전체 선택 체크박스 상태를 갱신합니다. */
|
|
318
382
|
async refreshSelection() {
|
|
319
383
|
const checkbox = this.el.querySelector('sd-checkbox');
|
|
320
384
|
if (checkbox) {
|
|
@@ -353,6 +417,28 @@ const SdThead = class {
|
|
|
353
417
|
handleColumnSort = (col) => {
|
|
354
418
|
this.sdColumnSort.emit({ column: col });
|
|
355
419
|
};
|
|
420
|
+
toggleDropdown(name) {
|
|
421
|
+
const isOpen = this.dropdownOpenMap[name] !== true;
|
|
422
|
+
const portals = this.dropdownPortals ?? {};
|
|
423
|
+
const newMap = { ...this.dropdownOpenMap };
|
|
424
|
+
// _columns 기준으로 순회: portals가 비어도 dropdownOpenMap은 항상 갱신됨
|
|
425
|
+
for (const col of (this._columns ?? []).filter(c => c.hasDropdown === true)) {
|
|
426
|
+
const shouldBeOpen = col.name === name ? isOpen : false;
|
|
427
|
+
newMap[col.name] = shouldBeOpen;
|
|
428
|
+
const portal = portals[col.name];
|
|
429
|
+
if (portal != null)
|
|
430
|
+
portal.open = shouldBeOpen;
|
|
431
|
+
}
|
|
432
|
+
this.dropdownOpenMap = newMap;
|
|
433
|
+
}
|
|
434
|
+
closeDropdown(name) {
|
|
435
|
+
if (this.dropdownOpenMap[name] !== true)
|
|
436
|
+
return;
|
|
437
|
+
this.dropdownOpenMap = { ...this.dropdownOpenMap, [name]: false };
|
|
438
|
+
const portal = (this.dropdownPortals ?? {})[name];
|
|
439
|
+
if (portal != null)
|
|
440
|
+
portal.open = false;
|
|
441
|
+
}
|
|
356
442
|
handleSelectAll(checked) {
|
|
357
443
|
const nextChecked = !!checked;
|
|
358
444
|
const safeRows = Array.isArray(this.rows) ? this.rows : [];
|
|
@@ -369,6 +455,8 @@ const SdThead = class {
|
|
|
369
455
|
}
|
|
370
456
|
render() {
|
|
371
457
|
const safeRows = Array.isArray(this.rows) ? this.rows : [];
|
|
458
|
+
const dropdownOpenMap = this.dropdownOpenMap ?? {};
|
|
459
|
+
const dropdownRefs = this.dropdownRefs ?? {};
|
|
372
460
|
const stickyLeftCount = this._stickyColumn.left || 0;
|
|
373
461
|
const stickyRightCount = this._stickyColumn.right || 0;
|
|
374
462
|
const stickyLeftCols = this.visibleColumns.slice(0, stickyLeftCount);
|
|
@@ -390,22 +478,25 @@ const SdThead = class {
|
|
|
390
478
|
'--table-border-color': TABLE_BORDER.color,
|
|
391
479
|
'--table-border-width': `${TABLE_BORDER.width}px`,
|
|
392
480
|
};
|
|
393
|
-
return (h(Host, { key: '
|
|
481
|
+
return (h(Host, { key: '947f5e5b0e59e7e6f8a73e4fd44dbfa646cb630a', slot: `${this.tableId}-head`, style: headStyle }, h("thead", { key: '2e0ffbfe9d96528c6e0082d4883fa462a18831d6', class: {
|
|
394
482
|
'thead': true,
|
|
395
483
|
'thead--sticky': this._stickyHeader,
|
|
396
|
-
} }, h("tr", { key: '
|
|
484
|
+
} }, h("tr", { key: '5843a18e1548bc6546e447d4c9213375116af0e9', class: "tr" }, this._selectable && (h("th", { key: '914024ca35874747e39f1819337cd4ad1cbe733d', class: {
|
|
397
485
|
'th': true,
|
|
398
486
|
'th--selected': true,
|
|
399
487
|
'sticky-left': true,
|
|
400
488
|
'sticky-left-edge': stickyLeftCount === 0,
|
|
401
489
|
'is-scrolled-left': stickyLeftCount === 0 && this._scrolledLeft,
|
|
402
|
-
}, style: { '--sticky-left-offset': '0px' } }, h("sd-checkbox", { key: '
|
|
490
|
+
}, style: { '--sticky-left-offset': '0px' } }, h("sd-checkbox", { key: 'e07232f1f5fa02589573ddaae53ebdadbdb97674', value: this.getIsAllChecked(), disabled: safeRows.length === 0, onSdUpdate: (e) => this.handleSelectAll(e.detail) }), h("div", { key: '08b504cfd4f420e76e91d649eed28c7068517044', class: "th__bar" }))), stickyLeftCols.map((col, idx) => (h("th", { key: col.name, class: {
|
|
403
491
|
'th': true,
|
|
404
492
|
[`${col.thClass}`]: Boolean(col.thClass),
|
|
405
493
|
'sticky-left': true,
|
|
406
494
|
'sticky-left-edge': idx === stickyLeftCount - 1,
|
|
407
495
|
'is-scrolled-left': idx === stickyLeftCount - 1 && this._scrolledLeft,
|
|
408
|
-
}, style: { ...col.thStyle, ...this.getStickyStyle(idx) } }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text))))))
|
|
496
|
+
}, style: { ...col.thStyle, ...this.getStickyStyle(idx) }, ref: col.hasDropdown === true ? (el => { this.dropdownThRefs[col.name] = el; }) : undefined }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text)))))), col.hasDropdown === true && (h("button", { class: {
|
|
497
|
+
'th__dropdown-trigger': true,
|
|
498
|
+
'th__dropdown-trigger--open': dropdownOpenMap[col.name] === true,
|
|
499
|
+
}, ref: el => { dropdownRefs[col.name] = el; }, onClick: () => this.toggleDropdown(col.name), "aria-haspopup": "listbox", "aria-expanded": dropdownOpenMap[col.name] === true ? 'true' : 'false' }, h("sd-icon", { name: "chevronDown", size: "12" })))), this._resizable && idx !== lastColIdx && (
|
|
409
500
|
// column resize 는 마우스 드래그 전용 인터랙션이라 키보드 핸들러를 두지 않는다.
|
|
410
501
|
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
411
502
|
h("div", { class: "th__resizer", onMouseDown: (evt) => this.handleResize(idx, evt) }))))), middleCols.map((col, relativeIdx) => {
|
|
@@ -413,7 +504,10 @@ const SdThead = class {
|
|
|
413
504
|
return (h("th", { key: col.name, class: {
|
|
414
505
|
th: true,
|
|
415
506
|
[`${col.thClass}`]: Boolean(col.thClass),
|
|
416
|
-
}, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) } }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text))))))
|
|
507
|
+
}, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) }, ref: col.hasDropdown === true ? (el => { this.dropdownThRefs[col.name] = el; }) : undefined }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text)))))), col.hasDropdown === true && (h("button", { class: {
|
|
508
|
+
'th__dropdown-trigger': true,
|
|
509
|
+
'th__dropdown-trigger--open': this.dropdownOpenMap[col.name] === true,
|
|
510
|
+
}, ref: el => { this.dropdownRefs[col.name] = el; }, onClick: () => this.toggleDropdown(col.name), "aria-haspopup": "listbox", "aria-expanded": this.dropdownOpenMap[col.name] === true ? 'true' : 'false' }, h("sd-icon", { name: "chevronDown", size: "12" })))), this._resizable && actualColIdx !== lastColIdx && (
|
|
417
511
|
// column resize 는 마우스 드래그 전용 인터랙션이라 키보드 핸들러를 두지 않는다.
|
|
418
512
|
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
419
513
|
h("div", { class: "th__resizer", onMouseDown: (evt) => this.handleResize(actualColIdx, evt) }))));
|
|
@@ -425,7 +519,10 @@ const SdThead = class {
|
|
|
425
519
|
'sticky-right': true,
|
|
426
520
|
'sticky-right-edge': relativeIdx === 0,
|
|
427
521
|
'is-scrolled-right': relativeIdx === 0 && this._scrolledRight,
|
|
428
|
-
}, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) } }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text))))))
|
|
522
|
+
}, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) }, ref: col.hasDropdown === true ? (el => { this.dropdownThRefs[col.name] = el; }) : undefined }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text)))))), col.hasDropdown === true && (h("button", { class: {
|
|
523
|
+
'th__dropdown-trigger': true,
|
|
524
|
+
'th__dropdown-trigger--open': this.dropdownOpenMap[col.name] === true,
|
|
525
|
+
}, ref: el => { this.dropdownRefs[col.name] = el; }, onClick: () => this.toggleDropdown(col.name), "aria-haspopup": "listbox", "aria-expanded": this.dropdownOpenMap[col.name] === true ? 'true' : 'false' }, h("sd-icon", { name: "chevronDown", size: "12" })))), this._resizable && (
|
|
429
526
|
// column resize 는 마우스 드래그 전용 인터랙션이라 키보드 핸들러를 두지 않는다.
|
|
430
527
|
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
431
528
|
h("div", { class: "th__resizer th__resizer--left", onMouseDown: (evt) => this.handleResize(actualColIdx, evt, true) }))));
|
|
@@ -446,11 +543,17 @@ const SdTr = class {
|
|
|
446
543
|
registerInstance(this, hostRef);
|
|
447
544
|
}
|
|
448
545
|
get el() { return getElement(this); }
|
|
546
|
+
/** 테이블 컬럼 목록 */
|
|
449
547
|
columns;
|
|
548
|
+
/** 행 선택 기능 사용 여부 */
|
|
450
549
|
selectable;
|
|
550
|
+
/** 고정 컬럼 설정 */
|
|
451
551
|
stickyColumn;
|
|
552
|
+
/** 행 식별 키 */
|
|
452
553
|
rowKey = '';
|
|
554
|
+
/** 행 데이터 객체 */
|
|
453
555
|
row = {};
|
|
556
|
+
/** 구분선 높이 (4 또는 6px, null이면 일반 행) */
|
|
454
557
|
separator = null;
|
|
455
558
|
tableId = '';
|
|
456
559
|
columnWidths = [];
|
|
@@ -503,12 +606,15 @@ const SdTr = class {
|
|
|
503
606
|
this.columnWidths = [...config.columnWidths];
|
|
504
607
|
}
|
|
505
608
|
}
|
|
609
|
+
/** 테이블 설정을 다시 불러옵니다. */
|
|
506
610
|
async refreshConfig() {
|
|
507
611
|
this.resolveConfig();
|
|
508
612
|
}
|
|
613
|
+
/** 셀 병합 버전을 갱신해 td를 재렌더링합니다. */
|
|
509
614
|
async bumpSpansVersion() {
|
|
510
615
|
this.spansVersion = this.spansVersion + 1;
|
|
511
616
|
}
|
|
617
|
+
/** 페이지네이션에 따른 행 표시 여부를 갱신합니다. */
|
|
512
618
|
async updateVisibility() {
|
|
513
619
|
this.updateVisibilitySync();
|
|
514
620
|
}
|
|
@@ -521,9 +627,11 @@ const SdTr = class {
|
|
|
521
627
|
}
|
|
522
628
|
this.isVisible = rowIndex >= pageInfo.startIndex && rowIndex < pageInfo.endIndex;
|
|
523
629
|
}
|
|
630
|
+
/** 컬럼 너비를 업데이트합니다. */
|
|
524
631
|
async setColumnWidths(widths) {
|
|
525
632
|
this.columnWidths = widths;
|
|
526
633
|
}
|
|
634
|
+
/** 체크박스 선택 상태를 갱신합니다. */
|
|
527
635
|
async refreshSelection() {
|
|
528
636
|
const checkbox = this.el.querySelector('sd-checkbox');
|
|
529
637
|
if (checkbox) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, a as getElement, h, F as Fragment } from './index-
|
|
2
|
-
import { T as TooltipArrow } from './tooltipArrow-
|
|
1
|
+
import { r as registerInstance, c as createEvent, a as getElement, h, F as Fragment } from './index-C7HJ-NfO.js';
|
|
2
|
+
import { T as TooltipArrow } from './tooltipArrow-Bgf3crs7.js';
|
|
3
3
|
|
|
4
4
|
const popover = {
|
|
5
5
|
"default": {
|
|
@@ -16,22 +16,38 @@ const SdPopover = class {
|
|
|
16
16
|
this.showChange = createEvent(this, "sdShowChange", 7);
|
|
17
17
|
}
|
|
18
18
|
get el() { return getElement(this); }
|
|
19
|
+
/** 팝오버 표시 여부 */
|
|
19
20
|
show = false;
|
|
21
|
+
/** 팝오버를 표시할 방향 */
|
|
20
22
|
placement = 'bottom';
|
|
23
|
+
/** 아이콘 트리거 색상 */
|
|
21
24
|
color = '#01BB4B';
|
|
25
|
+
/** 아이콘 트리거 아이콘명 */
|
|
22
26
|
icon = 'helpOutline';
|
|
27
|
+
/** 아이콘 트리거 크기 */
|
|
23
28
|
iconSize = 12;
|
|
29
|
+
/** 버튼 트리거 레이블 (있으면 아이콘 대신 버튼 렌더링) */
|
|
24
30
|
label = '';
|
|
31
|
+
/** 버튼 트리거 프리셋 */
|
|
25
32
|
name = 'primary_sm';
|
|
33
|
+
/** 버튼 트리거 우측 아이콘 */
|
|
26
34
|
rightIcon;
|
|
35
|
+
/** 스크린리더용 접근성 레이블 */
|
|
27
36
|
ariaLabel = '';
|
|
37
|
+
/** 비활성 상태 여부 */
|
|
28
38
|
disabled = false;
|
|
39
|
+
/** 버튼 type 속성 */
|
|
29
40
|
type = 'button';
|
|
41
|
+
/** 팝오버 메뉴 제목 */
|
|
30
42
|
menuTitle;
|
|
43
|
+
/** 팝오버 하단 좌측 링크 옵션 */
|
|
31
44
|
leftLink;
|
|
45
|
+
/** 팝오버 하단 버튼 옵션 */
|
|
32
46
|
button;
|
|
47
|
+
/** 팝오버 메뉴에 추가할 클래스 */
|
|
33
48
|
menuClass = '';
|
|
34
49
|
slotContentHTML = '';
|
|
50
|
+
/** 팝오버 표시 상태가 바뀔 때 발생합니다. */
|
|
35
51
|
showChange;
|
|
36
52
|
buttonEl;
|
|
37
53
|
setShow = (next) => {
|
|
@@ -66,17 +82,17 @@ const SdPopover = class {
|
|
|
66
82
|
const leftLink = this.leftLink;
|
|
67
83
|
const button = this.button;
|
|
68
84
|
const hasFooter = !!leftLink || !!button;
|
|
69
|
-
return (h(Fragment, { key: '
|
|
85
|
+
return (h(Fragment, { key: '94fcf54c8b20ffd1bcf2c7f540de31e1f41154fa' }, this.label !== '' ? (h("sd-button", { ref: el => (this.buttonEl = el), name: this.name ?? 'primary_sm', label: this.label, icon: icon, rightIcon: this.rightIcon, ariaLabel: this.ariaLabel || this.label || icon || 'Open popover', disabled: this.disabled, type: this.type ?? 'button', class: "sd-popover", onSdClick: () => this.setShow(!this.show) })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: icon, size: iconSize, color: color, class: "sd-popover", onClick: () => this.setShow(!this.show) })), this.show && (h("sd-floating-portal", { key: '9f1585f2d268452f3d5c713e30ff865c3fc5fbac', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: placement, offset: this.popoverOffset }, h("div", { key: '2cd2103f56c45364df5db9b73a2d89447b7c2bcc', class: {
|
|
70
86
|
'sd-floating-menu': true,
|
|
71
87
|
'sd-floating-menu--popover': true,
|
|
72
88
|
[`sd-floating-menu--${placement}`]: true,
|
|
73
89
|
[menuClass]: menuClass !== '',
|
|
74
90
|
}, style: {
|
|
75
91
|
'--sd-floating-bg': popoverTokens.popover.default.bg,
|
|
76
|
-
} }, h("i", { key: '
|
|
92
|
+
} }, h("i", { key: '5fd6c333790d3bb45bf4d43391ed1457d5eb54c3', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, h(TooltipArrow, { key: '062b11e3b6cee1e87f20064ab62a589a23f3eb26' })), h("div", { key: 'b863abd8e31c8ce0dfddfdb25b6a49be69f34da1', class: "sd-floating-menu__content" }, this.menuTitle && h("div", { key: '1873c595d7ad91b3a7c71d979414820694c23ff5', class: "sd-floating-menu__title" }, this.menuTitle), this.slotContentHTML && (h("div", { key: '7a197b43d34a59ec298ed5e733cae0f3390c87a3', class: "sd-floating-menu__messages", innerHTML: this.slotContentHTML })), hasFooter && (h("div", { key: 'be9034b4150421be08c17978beba643e73c5568d', class: {
|
|
77
93
|
'sd-floating-menu__buttons': true,
|
|
78
94
|
'sd-floating-menu__buttons--with-link': !!leftLink,
|
|
79
|
-
} }, leftLink && (h("sd-text-link", { key: '
|
|
95
|
+
} }, leftLink && (h("sd-text-link", { key: '890a163609b8544450ad1b8c009648d73ef0d269', class: "sd-floating-menu__left-link", label: leftLink.label, icon: leftLink.icon ?? '', iconColor: leftLink.iconColor ?? '', rightArrow: leftLink.rightArrow ?? 'none', underline: !!leftLink.underline, disabled: !!leftLink.disabled, onSdClick: leftLink.onClick })), button && (h("sd-button", { key: '128270add7ea99f7c9f61abe9f2a113f152465d8', name: button.name ?? 'secondary_xs', label: button.label, icon: button.icon, rightIcon: button.rightIcon, ariaLabel: button.ariaLabel || button.label || button.icon || 'Open popover', disabled: button.disabled, type: button.type, onSdClick: button.onClick }))))), h("sd-ghost-button", { key: 'bc4c4d982da8fe72c85cd4ae7ba6cd2e09154164', class: "sd-floating-menu__close-button", icon: "close", ariaLabel: "close", size: "xs", onClick: this.handleClose }))))));
|
|
80
96
|
}
|
|
81
97
|
};
|
|
82
98
|
SdPopover.style = sdPopoverCss();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h } from './index-C7HJ-NfO.js';
|
|
2
2
|
import { s as systemTokens } from './system-BJfiMC9H.js';
|
|
3
3
|
|
|
4
4
|
const popup$1 = {
|
|
@@ -72,12 +72,16 @@ const SdPopup = class {
|
|
|
72
72
|
registerInstance(this, hostRef);
|
|
73
73
|
this.submit = createEvent(this, "sdSubmit", 7);
|
|
74
74
|
}
|
|
75
|
+
/** 팝업 헤더에 표시할 제목 */
|
|
75
76
|
popupTitle = '';
|
|
77
|
+
/** 팝업 타입 */
|
|
76
78
|
type = 'default';
|
|
77
79
|
// 기본 footer 표시가 자연스러운 UX. prop 이름 변경(hideFooter 등)은 public API breaking 이라 별도 이슈로 분리.
|
|
78
|
-
|
|
80
|
+
/** 하단 footer 영역 표시 여부 */
|
|
79
81
|
useFooter = true;
|
|
82
|
+
/** 확인 버튼 커스텀 props */
|
|
80
83
|
submitButtonProps;
|
|
84
|
+
/** 확인 버튼 클릭 시 발생합니다. */
|
|
81
85
|
submit;
|
|
82
86
|
render() {
|
|
83
87
|
const cssVars = {
|
|
@@ -103,7 +107,7 @@ const SdPopup = class {
|
|
|
103
107
|
...DEFAULT_SUBMIT_BUTTON_PROPS,
|
|
104
108
|
...this.submitButtonProps,
|
|
105
109
|
};
|
|
106
|
-
return (h("div", { key: '
|
|
110
|
+
return (h("div", { key: '4455120f02fc1df1b1661062a22f3d82508627c4', class: `sd-popup sd-popup--${this.type}`, style: cssVars }, h("header", { key: '96a5e7cdc21fa239e4275f4b57379f36246048f4', class: "sd-popup__header" }, h("h2", { key: 'cdf8d05561f470fef31c46e6508e1e0c41aa7fa9', class: "sd-popup__title" }, this.popupTitle)), h("div", { key: 'ddb32332f8822634f544f2fa5a246c5f37c7fcc2', class: "sd-popup__body" }, h("slot", { key: '8f36daf8c918da6babcbb4383957e979930bfd73' })), this.useFooter && (h("footer", { key: '2b84ed134a8d53633bb4feb7ab423e58955dfdae', class: "sd-popup__footer" }, h("div", { key: '95e55875b38102ff809e752a3cc647dc830699a9', class: "sd-popup__footer-slot sd-popup__footer-slot--left" }, h("slot", { key: 'fbd86c77e1117018793279c9b90fd8e2f6db4934', name: "footer-left" })), h("sd-button", { key: 'e8710c15d20e52d0476e7f656e800cda008187d8', ...submitButtonProps, class: "sd-popup__submit", onSdClick: () => this.submit.emit() })))));
|
|
107
111
|
}
|
|
108
112
|
};
|
|
109
113
|
SdPopup.style = sdPopupCss();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h } from './index-C7HJ-NfO.js';
|
|
2
2
|
|
|
3
3
|
const radioButton = {
|
|
4
4
|
xs: {
|
|
@@ -102,11 +102,17 @@ const SdRadioButton = class {
|
|
|
102
102
|
registerInstance(this, hostRef);
|
|
103
103
|
this.change = createEvent(this, "sdUpdate", 7);
|
|
104
104
|
}
|
|
105
|
+
/** 현재 선택된 값 */
|
|
105
106
|
value;
|
|
107
|
+
/** 라디오 버튼 옵션 목록 */
|
|
106
108
|
options = [];
|
|
109
|
+
/** 버튼 크기 */
|
|
107
110
|
size = 'sm';
|
|
111
|
+
/** 비활성 상태 여부 */
|
|
108
112
|
disabled = false;
|
|
113
|
+
/** input name 속성 (없으면 자동 생성) */
|
|
109
114
|
name;
|
|
115
|
+
/** 선택 값이 변경될 때 발생합니다. */
|
|
110
116
|
change;
|
|
111
117
|
componentWillLoad() {
|
|
112
118
|
this.size ??= 'sm';
|
|
@@ -176,7 +182,7 @@ const SdRadioButton = class {
|
|
|
176
182
|
'--sd-radio-button-content-select': RADIO_BUTTON_COLORS.content.select,
|
|
177
183
|
'--sd-radio-button-content-disabled': RADIO_BUTTON_COLORS.content.disabled,
|
|
178
184
|
};
|
|
179
|
-
return (h("div", { key: '
|
|
185
|
+
return (h("div", { key: 'c0ed4c6927bd32a7335e003856de4b43ead97b1c', class: this.getGroupClasses(), style: cssVars, role: "radiogroup", "aria-disabled": this.disabled.toString() }, this.options.map(option => {
|
|
180
186
|
const isSelected = this.isOptionSelected(option);
|
|
181
187
|
const isDisabled = this.isOptionDisabled(option);
|
|
182
188
|
return (h("label", { key: `radio-${option.value}`, class: this.getButtonClasses(option), "aria-label": option.label || 'radio option', "data-label": option.label }, h("input", { type: "radio", name: this.groupName, value: option.value.toString(), checked: isSelected, disabled: isDisabled, onInput: () => this.handleRadioChange(option.value, option.disabled) }), option.label && h("span", { class: "sd-radio-button__label" }, option.label)));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h } from './index-C7HJ-NfO.js';
|
|
2
2
|
|
|
3
3
|
const radio = {
|
|
4
4
|
size: "16",
|
|
@@ -82,10 +82,15 @@ const SdRadio = class {
|
|
|
82
82
|
registerInstance(this, hostRef);
|
|
83
83
|
this.update = createEvent(this, "sdUpdate", 7);
|
|
84
84
|
}
|
|
85
|
+
/** 라디오 그룹의 현재 선택 값 */
|
|
85
86
|
value;
|
|
87
|
+
/** 이 라디오 아이템의 값 */
|
|
86
88
|
val;
|
|
89
|
+
/** 비활성 상태 여부 */
|
|
87
90
|
disabled = false;
|
|
91
|
+
/** 표시할 라벨 텍스트 */
|
|
88
92
|
label;
|
|
93
|
+
/** 선택 값이 변경될 때 발생합니다. */
|
|
89
94
|
update;
|
|
90
95
|
valueChanged(newValue) {
|
|
91
96
|
this.value = newValue;
|
|
@@ -128,7 +133,7 @@ const SdRadio = class {
|
|
|
128
133
|
'--sd-radio-label-color': RADIO_COLORS.label.default,
|
|
129
134
|
'--sd-radio-label-disabled-color': RADIO_COLORS.label.disabled,
|
|
130
135
|
};
|
|
131
|
-
return (h("label", { key: '
|
|
136
|
+
return (h("label", { key: 'f220a45add2be550bc696cd2442b8520ea0143f0', class: this.radioClasses, style: cssVars, "aria-checked": this.isSelected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, h("input", { key: '64692f5bf49783f166be9327877a474816a556ca', type: "radio", name: String(this.val), value: String(this.val), checked: this.isSelected, disabled: this.disabled, "aria-label": this.label || String(this.val), onInput: this.handleRadioChange }), h("span", { key: '3c30268adcbd735857b4163ecba444b5a57cba08', class: "sd-radio__circle" }), this.label && (h("span", { key: 'b641086ab4ff9161ba4fb733b87c751b6863fe06', class: "sd-radio__label", "data-label": this.label }, this.label))));
|
|
132
137
|
}
|
|
133
138
|
static get watchers() { return {
|
|
134
139
|
"value": [{
|