@sellmate/design-system 1.31.0 → 1.32.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-Jr8OU0y9.js → index-Cg7X15Hq.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/sd-action-modal.cjs.entry.js +1 -1
- package/dist/cjs/sd-badge.cjs.entry.js +1 -1
- package/dist/cjs/sd-barcode-input.cjs.entry.js +1 -1
- package/dist/cjs/sd-button_2.cjs.entry.js +1 -1
- package/dist/cjs/sd-calendar_2.cjs.entry.js +1 -1
- package/dist/cjs/sd-callout.cjs.entry.js +1 -1
- package/dist/cjs/sd-card.cjs.entry.js +1 -1
- package/dist/cjs/sd-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/sd-chip-input.cjs.entry.js +2 -2
- package/dist/cjs/sd-chip.cjs.entry.js +1 -1
- package/dist/cjs/sd-circle-progress.cjs.entry.js +2 -2
- package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +1 -1
- package/dist/cjs/sd-date-box.cjs.entry.js +1 -1
- package/dist/cjs/sd-date-picker_8.cjs.entry.js +6 -6
- package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +1 -1
- package/dist/cjs/sd-divider.cjs.entry.js +2 -2
- package/dist/cjs/sd-dropdown-button.cjs.entry.js +2 -2
- package/dist/cjs/sd-field_3.cjs.entry.js +4 -4
- package/dist/cjs/sd-form.cjs.entry.js +1 -1
- package/dist/cjs/sd-ghost-button_3.cjs.entry.js +1 -1
- package/dist/cjs/sd-guide.cjs.entry.js +2 -2
- package/dist/cjs/sd-key-value-table.cjs.entry.js +2 -2
- package/dist/cjs/sd-linear-progress.cjs.entry.js +2 -2
- package/dist/cjs/sd-loading-container.cjs.entry.js +1 -1
- package/dist/cjs/sd-modal-container.cjs.entry.js +1 -1
- package/dist/cjs/sd-pagination.cjs.entry.js +1 -1
- package/dist/cjs/sd-popover.cjs.entry.js +2 -2
- package/dist/cjs/sd-popup.cjs.entry.js +3 -3
- package/dist/cjs/sd-radio-button.cjs.entry.js +1 -1
- package/dist/cjs/sd-radio.cjs.entry.js +1 -1
- package/dist/cjs/sd-scroll-area.cjs.entry.js +44 -0
- package/dist/cjs/sd-select-list-item_4.cjs.entry.js +12 -12
- package/dist/cjs/sd-stepper.cjs.entry.js +190 -0
- package/dist/cjs/sd-switch.cjs.entry.js +2 -2
- package/dist/cjs/sd-tabs.cjs.entry.js +2 -2
- package/dist/cjs/sd-text-link.cjs.entry.js +1 -1
- package/dist/cjs/sd-time-picker-selector.cjs.entry.js +2 -2
- package/dist/cjs/sd-time-picker-trigger.cjs.entry.js +3 -3
- package/dist/cjs/sd-time-picker.cjs.entry.js +3 -3
- package/dist/cjs/sd-time-range-picker-selector.cjs.entry.js +2 -2
- package/dist/cjs/sd-time-range-picker.cjs.entry.js +3 -3
- 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 +2 -2
- package/dist/cjs/{system-B4KkVpu2.js → system-BGCBFBcM.js} +3 -1
- package/dist/cjs/{tooltipArrow-BlrFItn5.js → tooltipArrow-CZff77W-.js} +1 -1
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/sd-popup/sd-popup.css +40 -0
- package/dist/collection/components/sd-scroll-area/sd-scroll-area.config.js +8 -0
- package/dist/collection/components/sd-scroll-area/sd-scroll-area.css +61 -0
- package/dist/collection/components/sd-scroll-area/sd-scroll-area.js +151 -0
- package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +2 -2
- package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +4 -4
- package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.css +33 -9
- package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +2 -2
- package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +2 -2
- package/dist/collection/components/sd-select/sd-select.js +4 -4
- package/dist/collection/components/sd-stepper/sd-stepper.config.js +35 -0
- package/dist/collection/components/sd-stepper/sd-stepper.css +50 -0
- package/dist/collection/components/sd-stepper/sd-stepper.js +186 -0
- package/dist/collection/components/sd-switch/sd-switch.js +1 -1
- package/dist/collection/components/sd-tabs/sd-tabs.js +1 -1
- package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
- package/dist/collection/components/sd-time-picker/sd-time-picker-selector/sd-time-picker-selector.js +1 -1
- package/dist/collection/components/sd-time-picker/sd-time-picker-trigger/sd-time-picker-trigger.js +2 -2
- package/dist/collection/components/sd-time-picker/sd-time-picker.js +2 -2
- package/dist/collection/components/sd-time-range-picker/sd-time-range-picker-selector/sd-time-range-picker-selector.js +1 -1
- package/dist/collection/components/sd-time-range-picker/sd-time-range-picker.js +2 -2
- 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.js +1 -1
- package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
- package/dist/components/index.js +1 -1
- package/dist/components/{p-1DsQj3tv.js → p--BJuy06e.js} +1 -1
- package/dist/components/{p-qZxAQy4p.js → p-22hyxPno.js} +1 -1
- package/dist/components/{p-Ckr9iuVb.js → p-7lGaExLM.js} +1 -1
- package/dist/components/{p-CKV2W-zU.js → p-B6BgOB_-.js} +1 -1
- package/dist/components/{p-DSWD8udu.js → p-BBAwMOGx.js} +1 -1
- package/dist/components/{p-C9IKm4j5.js → p-BDULNyBw.js} +1 -1
- package/dist/components/{p-CzJ9g73f.js → p-BI1iKxNN.js} +1 -1
- package/dist/components/{p-FGII920I.js → p-BU1DclrU.js} +1 -1
- package/dist/components/{p-DE8Ws9As.js → p-BhLF3gGb.js} +1 -1
- package/dist/components/p-Bk6mL1Ml.js +1 -0
- package/dist/components/{p-Bxv2AFOb.js → p-BkyM9ded.js} +1 -1
- package/dist/components/{p-DnlLqzGM.js → p-BoJ_gLp7.js} +1 -1
- package/dist/components/{p-DWnuCSqC.js → p-BpTKv3vN.js} +1 -1
- package/dist/components/{p-OnBLxJAP.js → p-C0IFrSzM.js} +1 -1
- package/dist/components/{p-D9qp3o5Y.js → p-C1KeTx0Z.js} +1 -1
- package/dist/components/{p-C6wuKkUq.js → p-C8x8VEb8.js} +1 -1
- package/dist/components/{p-ClbD4Gsr.js → p-CBx8KWmu.js} +1 -1
- package/dist/components/{p-CTCt17CE.js → p-CNNjhHTA.js} +1 -1
- package/dist/components/{p-Dc9g3-5z.js → p-CRDS2TOy.js} +1 -1
- package/dist/components/{p-Hjv7LqkN.js → p-CdeywvU6.js} +1 -1
- package/dist/components/{p-mcbwNjNT.js → p-CikPzSw-.js} +1 -1
- package/dist/components/{p-DasiqnrU.js → p-D0IDp-M3.js} +1 -1
- package/dist/components/{p-C6o10dl7.js → p-D2oNz1s-.js} +1 -1
- package/dist/components/{p-2g4jlJ3i.js → p-DApl37Qw.js} +1 -1
- package/dist/components/{p-In6mljvA.js → p-DGAzuK5C.js} +1 -1
- package/dist/components/{p-6U1qyU5A.js → p-DONA7SlO.js} +1 -1
- package/dist/components/{p-CwzkplrI.js → p-DVdDYnTl.js} +1 -1
- package/dist/components/{p-BvJ14GuJ.js → p-DdYWQ4Z5.js} +1 -1
- package/dist/components/{p-SYnTIeiO.js → p-DtadjLky.js} +1 -1
- package/dist/components/{p-D8yhjm54.js → p-DvlLDBO7.js} +1 -1
- package/dist/components/{p-CmCOLnc0.js → p-ETWwVYq6.js} +1 -1
- package/dist/components/{p-DOfLrOEu.js → p-ISXxxDfX.js} +1 -1
- package/dist/components/{p-B887QQl2.js → p-UFNg7rhE.js} +1 -1
- package/dist/components/{p-CH9dgzTr.js → p-irA7XFIS.js} +1 -1
- package/dist/components/{p-Bth2l1cy.js → p-rayWyWtG.js} +1 -1
- package/dist/components/{p-B-EV9bey.js → p-sLMSwbXi.js} +1 -1
- package/dist/components/{p-DsZwiWiU.js → p-vj3gimgB.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-scroll-area.d.ts +11 -0
- package/dist/components/sd-scroll-area.js +1 -0
- 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-stepper.d.ts +11 -0
- package/dist/components/sd-stepper.js +1 -0
- package/dist/components/sd-switch.js +1 -1
- package/dist/components/sd-tabs.js +1 -1
- package/dist/components/sd-tag.js +1 -1
- package/dist/components/sd-text-link.js +1 -1
- package/dist/components/sd-textarea.js +1 -1
- package/dist/components/sd-time-picker-selector.js +1 -1
- package/dist/components/sd-time-picker-trigger.js +1 -1
- package/dist/components/sd-time-picker.js +1 -1
- package/dist/components/sd-time-range-picker-selector.js +1 -1
- package/dist/components/sd-time-range-picker.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/design-system/design-system.css +1 -1
- package/dist/design-system/design-system.esm.js +1 -1
- package/dist/design-system/{p-21672bb8.entry.js → p-0cdd05eb.entry.js} +1 -1
- package/dist/design-system/p-1c4ba7ae.entry.js +1 -0
- package/dist/design-system/{p-219288ef.entry.js → p-2a36028d.entry.js} +1 -1
- package/dist/design-system/{p-3859316f.entry.js → p-2e76157e.entry.js} +1 -1
- package/dist/design-system/{p-b97a6cf3.entry.js → p-336cb0c1.entry.js} +1 -1
- package/dist/design-system/{p-570b9e91.entry.js → p-34e8dda6.entry.js} +1 -1
- package/dist/design-system/{p-62ff77e4.entry.js → p-370b820e.entry.js} +1 -1
- package/dist/design-system/{p-22ac9e05.entry.js → p-39db3098.entry.js} +1 -1
- package/dist/design-system/{p-843d1a8a.entry.js → p-3a2be559.entry.js} +1 -1
- package/dist/design-system/{p-e387ec65.entry.js → p-405cb160.entry.js} +1 -1
- package/dist/design-system/{p-52b1be6f.entry.js → p-456479cc.entry.js} +1 -1
- package/dist/design-system/{p-b5229957.entry.js → p-4d845113.entry.js} +1 -1
- package/dist/design-system/{p-a6c292d1.entry.js → p-5761352f.entry.js} +1 -1
- package/dist/design-system/{p-c1e625e5.entry.js → p-5b725381.entry.js} +1 -1
- package/dist/design-system/p-5d7820f7.entry.js +1 -0
- package/dist/design-system/{p-56e7c87b.entry.js → p-5dd631fe.entry.js} +1 -1
- package/dist/design-system/p-66e3fba3.entry.js +1 -0
- package/dist/design-system/{p-1858636f.entry.js → p-6a5540d8.entry.js} +1 -1
- package/dist/design-system/{p-4ae0a64a.entry.js → p-703bb49a.entry.js} +1 -1
- package/dist/design-system/{p-6c4fa9d7.entry.js → p-71e7031e.entry.js} +1 -1
- package/dist/design-system/{p-cdb2433a.entry.js → p-7837f8f8.entry.js} +1 -1
- package/dist/design-system/{p-4a117dd6.entry.js → p-814ae5f1.entry.js} +1 -1
- package/dist/design-system/{p-9c131122.entry.js → p-8804e3f3.entry.js} +1 -1
- package/dist/design-system/{p-e0e4a451.entry.js → p-8ea038d7.entry.js} +1 -1
- package/dist/design-system/{p-129b6330.entry.js → p-937a30af.entry.js} +1 -1
- package/dist/design-system/{p-c7f03dea.entry.js → p-94d4c093.entry.js} +1 -1
- package/dist/design-system/{p-16b9eac4.entry.js → p-97a059b0.entry.js} +1 -1
- package/dist/design-system/{p-46da4e95.entry.js → p-9afada52.entry.js} +1 -1
- package/dist/design-system/{p-8af8e302.entry.js → p-9df0dd32.entry.js} +1 -1
- package/dist/design-system/{p-Cn8LZw1e.js → p-CHijmX_D.js} +1 -1
- package/dist/design-system/{p-C599jhDs.js → p-CdvQqvIe.js} +1 -1
- package/dist/design-system/{p-b2dc1202.entry.js → p-a05f4888.entry.js} +1 -1
- package/dist/design-system/{p-a9cc4697.entry.js → p-a81e4ae0.entry.js} +1 -1
- package/dist/design-system/{p-2534d3d4.entry.js → p-aaa551fa.entry.js} +1 -1
- package/dist/design-system/p-adc218f5.entry.js +1 -0
- package/dist/design-system/{p-809a0a71.entry.js → p-b7e913e7.entry.js} +1 -1
- package/dist/design-system/{p-a0c55a19.entry.js → p-b90eaebd.entry.js} +1 -1
- package/dist/design-system/{p-d5325895.entry.js → p-c5263a22.entry.js} +1 -1
- package/dist/design-system/{p-82cb62a9.entry.js → p-c5eea64c.entry.js} +1 -1
- package/dist/design-system/{p-8836d9ff.entry.js → p-c906d22d.entry.js} +1 -1
- package/dist/design-system/{p-655324cd.entry.js → p-defe65db.entry.js} +1 -1
- package/dist/design-system/{p-efe3601d.entry.js → p-e16725f7.entry.js} +1 -1
- package/dist/design-system/{p-5a113197.entry.js → p-e4096b72.entry.js} +1 -1
- package/dist/design-system/{p-46eb3421.entry.js → p-e72706ea.entry.js} +1 -1
- package/dist/design-system/{p-66cff123.entry.js → p-fb01f963.entry.js} +1 -1
- package/dist/design-system/{p-15f43b9b.entry.js → p-fc9577d9.entry.js} +1 -1
- package/dist/design-system/{p-Bth2l1cy.js → p-rayWyWtG.js} +1 -1
- package/dist/esm/design-system.js +3 -3
- package/dist/esm/{index-C599jhDs.js → index-CdvQqvIe.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/sd-action-modal.entry.js +1 -1
- package/dist/esm/sd-badge.entry.js +1 -1
- package/dist/esm/sd-barcode-input.entry.js +1 -1
- package/dist/esm/sd-button_2.entry.js +1 -1
- package/dist/esm/sd-calendar_2.entry.js +1 -1
- package/dist/esm/sd-callout.entry.js +1 -1
- package/dist/esm/sd-card.entry.js +1 -1
- package/dist/esm/sd-checkbox.entry.js +1 -1
- package/dist/esm/sd-chip-input.entry.js +2 -2
- package/dist/esm/sd-chip.entry.js +1 -1
- package/dist/esm/sd-circle-progress.entry.js +2 -2
- package/dist/esm/sd-confirm-modal_2.entry.js +1 -1
- package/dist/esm/sd-date-box.entry.js +1 -1
- package/dist/esm/sd-date-picker_8.entry.js +6 -6
- package/dist/esm/sd-date-range-picker-calendar.entry.js +1 -1
- package/dist/esm/sd-divider.entry.js +2 -2
- package/dist/esm/sd-dropdown-button.entry.js +2 -2
- package/dist/esm/sd-field_3.entry.js +4 -4
- package/dist/esm/sd-form.entry.js +1 -1
- package/dist/esm/sd-ghost-button_3.entry.js +1 -1
- package/dist/esm/sd-guide.entry.js +2 -2
- package/dist/esm/sd-key-value-table.entry.js +2 -2
- package/dist/esm/sd-linear-progress.entry.js +2 -2
- package/dist/esm/sd-loading-container.entry.js +1 -1
- package/dist/esm/sd-modal-container.entry.js +1 -1
- package/dist/esm/sd-pagination.entry.js +1 -1
- package/dist/esm/sd-popover.entry.js +2 -2
- package/dist/esm/sd-popup.entry.js +3 -3
- package/dist/esm/sd-radio-button.entry.js +1 -1
- package/dist/esm/sd-radio.entry.js +1 -1
- package/dist/esm/sd-scroll-area.entry.js +42 -0
- package/dist/esm/sd-select-list-item_4.entry.js +12 -12
- package/dist/esm/sd-stepper.entry.js +188 -0
- package/dist/esm/sd-switch.entry.js +2 -2
- package/dist/esm/sd-tabs.entry.js +2 -2
- package/dist/esm/sd-text-link.entry.js +1 -1
- package/dist/esm/sd-time-picker-selector.entry.js +2 -2
- package/dist/esm/sd-time-picker-trigger.entry.js +3 -3
- package/dist/esm/sd-time-picker.entry.js +3 -3
- package/dist/esm/sd-time-range-picker-selector.entry.js +2 -2
- package/dist/esm/sd-time-range-picker.entry.js +3 -3
- 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 +2 -2
- package/dist/esm/{system-Bth2l1cy.js → system-rayWyWtG.js} +3 -1
- package/dist/esm/{tooltipArrow-DbLihSLI.js → tooltipArrow-BsQ__AbZ.js} +1 -1
- package/dist/types/components/sd-scroll-area/sd-scroll-area.config.d.ts +5 -0
- package/dist/types/components/sd-scroll-area/sd-scroll-area.d.ts +14 -0
- package/dist/types/components/sd-stepper/sd-stepper.config.d.ts +43 -0
- package/dist/types/components/sd-stepper/sd-stepper.d.ts +18 -0
- package/dist/types/components.d.ts +132 -0
- package/hydrate/index.js +289 -35
- package/hydrate/index.mjs +289 -35
- package/package.json +1 -1
- package/dist/components/p-DYjaQs6e.js +0 -1
- package/dist/design-system/p-4782331f.entry.js +0 -1
- package/dist/design-system/p-b75cc0dd.entry.js +0 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
sd-scroll-area {
|
|
2
|
+
display: block;
|
|
3
|
+
min-width: 0;
|
|
4
|
+
min-height: 0;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.sd-scroll-area__viewport {
|
|
8
|
+
width: 100%;
|
|
9
|
+
height: 100%;
|
|
10
|
+
}
|
|
11
|
+
.sd-scroll-area__viewport::-webkit-scrollbar {
|
|
12
|
+
width: 12px;
|
|
13
|
+
height: 12px;
|
|
14
|
+
background: transparent;
|
|
15
|
+
}
|
|
16
|
+
.sd-scroll-area__viewport::-webkit-scrollbar-track {
|
|
17
|
+
background: transparent;
|
|
18
|
+
}
|
|
19
|
+
.sd-scroll-area__viewport::-webkit-scrollbar-thumb {
|
|
20
|
+
background-color: #CCCCCC;
|
|
21
|
+
border: 2px solid transparent;
|
|
22
|
+
border-radius: 8px;
|
|
23
|
+
background-clip: padding-box;
|
|
24
|
+
}
|
|
25
|
+
@supports not selector(::-webkit-scrollbar) {
|
|
26
|
+
.sd-scroll-area__viewport {
|
|
27
|
+
scrollbar-width: thin;
|
|
28
|
+
scrollbar-color: #CCCCCC transparent;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
.sd-scroll-area__viewport--bg::-webkit-scrollbar, .sd-scroll-area__viewport--bg::-webkit-scrollbar-track {
|
|
32
|
+
background: #F6F6F6;
|
|
33
|
+
}
|
|
34
|
+
@supports not selector(::-webkit-scrollbar) {
|
|
35
|
+
.sd-scroll-area__viewport--bg {
|
|
36
|
+
scrollbar-color: #CCCCCC #F6F6F6;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
.sd-scroll-area__viewport--bordered::-webkit-scrollbar-track:vertical {
|
|
40
|
+
border-left: 1px solid var(--sd-scroll-area-border-color);
|
|
41
|
+
}
|
|
42
|
+
.sd-scroll-area__viewport--bordered::-webkit-scrollbar-track:horizontal {
|
|
43
|
+
border-top: 1px solid var(--sd-scroll-area-border-color);
|
|
44
|
+
}
|
|
45
|
+
.sd-scroll-area__viewport--bordered::-webkit-scrollbar-thumb:vertical {
|
|
46
|
+
border-left-width: 3px;
|
|
47
|
+
}
|
|
48
|
+
.sd-scroll-area__viewport--bordered::-webkit-scrollbar-thumb:horizontal {
|
|
49
|
+
border-top-width: 3px;
|
|
50
|
+
}
|
|
51
|
+
.sd-scroll-area__viewport--vertical {
|
|
52
|
+
overflow-x: hidden;
|
|
53
|
+
overflow-y: auto;
|
|
54
|
+
}
|
|
55
|
+
.sd-scroll-area__viewport--horizontal {
|
|
56
|
+
overflow-x: auto;
|
|
57
|
+
overflow-y: hidden;
|
|
58
|
+
}
|
|
59
|
+
.sd-scroll-area__viewport--both {
|
|
60
|
+
overflow: auto;
|
|
61
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { Host, h } from "@stencil/core";
|
|
2
|
+
import { SCROLL_AREA_COLORS } from "./sd-scroll-area.config";
|
|
3
|
+
export class SdScrollArea {
|
|
4
|
+
/** 스크롤 방향. vertical=세로만, horizontal=가로만, both=양방향 */
|
|
5
|
+
axis = 'both';
|
|
6
|
+
/** true면 스크롤바 트랙 배경을 채운다. 콘텐츠 영역 배경은 바뀌지 않는다. */
|
|
7
|
+
background = false;
|
|
8
|
+
/** true면 스크롤바와 콘텐츠 사이에 1px 구분선을 그린다. 컨테이너 테두리가 아니다. */
|
|
9
|
+
bordered = false;
|
|
10
|
+
/** viewport 최대 높이 (예: '400px'). 비우면 호스트 크기를 따른다. */
|
|
11
|
+
maxHeight = '';
|
|
12
|
+
/** viewport 최대 너비 (예: '480px'). 비우면 호스트 크기를 따른다. */
|
|
13
|
+
maxWidth = '';
|
|
14
|
+
render() {
|
|
15
|
+
const viewportStyle = {
|
|
16
|
+
'--sd-scroll-area-border-color': SCROLL_AREA_COLORS.border,
|
|
17
|
+
};
|
|
18
|
+
if (this.maxHeight !== '')
|
|
19
|
+
viewportStyle.maxHeight = this.maxHeight;
|
|
20
|
+
if (this.maxWidth !== '')
|
|
21
|
+
viewportStyle.maxWidth = this.maxWidth;
|
|
22
|
+
return (h(Host, { key: '4b9b22910436388a2017af0bea5d1c55463a5f94' }, h("div", { key: '13d9301c1bd43dad765a6f18bb11482d7ae4788a', class: {
|
|
23
|
+
'sd-scroll-area__viewport': true,
|
|
24
|
+
[`sd-scroll-area__viewport--${this.axis}`]: true,
|
|
25
|
+
'sd-scroll-area__viewport--bg': this.background,
|
|
26
|
+
'sd-scroll-area__viewport--bordered': this.bordered,
|
|
27
|
+
}, style: viewportStyle }, h("slot", { key: '1d28dd8bac0a3b40d8beca9553b061ae21be8342' }))));
|
|
28
|
+
}
|
|
29
|
+
static get is() { return "sd-scroll-area"; }
|
|
30
|
+
static get originalStyleUrls() {
|
|
31
|
+
return {
|
|
32
|
+
"$": ["sd-scroll-area.scss"]
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
static get styleUrls() {
|
|
36
|
+
return {
|
|
37
|
+
"$": ["sd-scroll-area.css"]
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
static get properties() {
|
|
41
|
+
return {
|
|
42
|
+
"axis": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"mutable": false,
|
|
45
|
+
"complexType": {
|
|
46
|
+
"original": "ScrollAreaAxis",
|
|
47
|
+
"resolved": "\"both\" | \"horizontal\" | \"vertical\"",
|
|
48
|
+
"references": {
|
|
49
|
+
"ScrollAreaAxis": {
|
|
50
|
+
"location": "import",
|
|
51
|
+
"path": "./sd-scroll-area.config",
|
|
52
|
+
"id": "src/components/sd-scroll-area/sd-scroll-area.config.ts::ScrollAreaAxis",
|
|
53
|
+
"referenceLocation": "ScrollAreaAxis"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"required": false,
|
|
58
|
+
"optional": false,
|
|
59
|
+
"docs": {
|
|
60
|
+
"tags": [],
|
|
61
|
+
"text": "\uC2A4\uD06C\uB864 \uBC29\uD5A5. vertical=\uC138\uB85C\uB9CC, horizontal=\uAC00\uB85C\uB9CC, both=\uC591\uBC29\uD5A5"
|
|
62
|
+
},
|
|
63
|
+
"getter": false,
|
|
64
|
+
"setter": false,
|
|
65
|
+
"reflect": true,
|
|
66
|
+
"attribute": "axis",
|
|
67
|
+
"defaultValue": "'both'"
|
|
68
|
+
},
|
|
69
|
+
"background": {
|
|
70
|
+
"type": "boolean",
|
|
71
|
+
"mutable": false,
|
|
72
|
+
"complexType": {
|
|
73
|
+
"original": "boolean",
|
|
74
|
+
"resolved": "boolean",
|
|
75
|
+
"references": {}
|
|
76
|
+
},
|
|
77
|
+
"required": false,
|
|
78
|
+
"optional": false,
|
|
79
|
+
"docs": {
|
|
80
|
+
"tags": [],
|
|
81
|
+
"text": "true\uBA74 \uC2A4\uD06C\uB864\uBC14 \uD2B8\uB799 \uBC30\uACBD\uC744 \uCC44\uC6B4\uB2E4. \uCF58\uD150\uCE20 \uC601\uC5ED \uBC30\uACBD\uC740 \uBC14\uB00C\uC9C0 \uC54A\uB294\uB2E4."
|
|
82
|
+
},
|
|
83
|
+
"getter": false,
|
|
84
|
+
"setter": false,
|
|
85
|
+
"reflect": true,
|
|
86
|
+
"attribute": "background",
|
|
87
|
+
"defaultValue": "false"
|
|
88
|
+
},
|
|
89
|
+
"bordered": {
|
|
90
|
+
"type": "boolean",
|
|
91
|
+
"mutable": false,
|
|
92
|
+
"complexType": {
|
|
93
|
+
"original": "boolean",
|
|
94
|
+
"resolved": "boolean",
|
|
95
|
+
"references": {}
|
|
96
|
+
},
|
|
97
|
+
"required": false,
|
|
98
|
+
"optional": false,
|
|
99
|
+
"docs": {
|
|
100
|
+
"tags": [],
|
|
101
|
+
"text": "true\uBA74 \uC2A4\uD06C\uB864\uBC14\uC640 \uCF58\uD150\uCE20 \uC0AC\uC774\uC5D0 1px \uAD6C\uBD84\uC120\uC744 \uADF8\uB9B0\uB2E4. \uCEE8\uD14C\uC774\uB108 \uD14C\uB450\uB9AC\uAC00 \uC544\uB2C8\uB2E4."
|
|
102
|
+
},
|
|
103
|
+
"getter": false,
|
|
104
|
+
"setter": false,
|
|
105
|
+
"reflect": true,
|
|
106
|
+
"attribute": "bordered",
|
|
107
|
+
"defaultValue": "false"
|
|
108
|
+
},
|
|
109
|
+
"maxHeight": {
|
|
110
|
+
"type": "string",
|
|
111
|
+
"mutable": false,
|
|
112
|
+
"complexType": {
|
|
113
|
+
"original": "string",
|
|
114
|
+
"resolved": "string",
|
|
115
|
+
"references": {}
|
|
116
|
+
},
|
|
117
|
+
"required": false,
|
|
118
|
+
"optional": false,
|
|
119
|
+
"docs": {
|
|
120
|
+
"tags": [],
|
|
121
|
+
"text": "viewport \uCD5C\uB300 \uB192\uC774 (\uC608: '400px'). \uBE44\uC6B0\uBA74 \uD638\uC2A4\uD2B8 \uD06C\uAE30\uB97C \uB530\uB978\uB2E4."
|
|
122
|
+
},
|
|
123
|
+
"getter": false,
|
|
124
|
+
"setter": false,
|
|
125
|
+
"reflect": false,
|
|
126
|
+
"attribute": "max-height",
|
|
127
|
+
"defaultValue": "''"
|
|
128
|
+
},
|
|
129
|
+
"maxWidth": {
|
|
130
|
+
"type": "string",
|
|
131
|
+
"mutable": false,
|
|
132
|
+
"complexType": {
|
|
133
|
+
"original": "string",
|
|
134
|
+
"resolved": "string",
|
|
135
|
+
"references": {}
|
|
136
|
+
},
|
|
137
|
+
"required": false,
|
|
138
|
+
"optional": false,
|
|
139
|
+
"docs": {
|
|
140
|
+
"tags": [],
|
|
141
|
+
"text": "viewport \uCD5C\uB300 \uB108\uBE44 (\uC608: '480px'). \uBE44\uC6B0\uBA74 \uD638\uC2A4\uD2B8 \uD06C\uAE30\uB97C \uB530\uB978\uB2E4."
|
|
142
|
+
},
|
|
143
|
+
"getter": false,
|
|
144
|
+
"setter": false,
|
|
145
|
+
"reflect": false,
|
|
146
|
+
"attribute": "max-width",
|
|
147
|
+
"defaultValue": "''"
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
@@ -78,7 +78,7 @@ export class SdSelectListItem {
|
|
|
78
78
|
return (
|
|
79
79
|
// 키보드 네비게이션은 부모 listbox 의 ArrowUp/Down + Enter 가 담당. 항목 자체는 role=option, tabindex=-1 으로 표시.
|
|
80
80
|
// eslint-disable-next-line jsx-a11y/click-events-have-key-events
|
|
81
|
-
h("div", { key: '
|
|
81
|
+
h("div", { key: 'e4f8fc195a7231cd3218b91a26c77f51df14e6dc', role: "option", tabindex: -1, "aria-selected": this.isSelected === true ? 'true' : 'false', class: {
|
|
82
82
|
'sd-select-list-item': true,
|
|
83
83
|
'sd-select-list-item--group': isGroup,
|
|
84
84
|
'sd-select-list-item--depth1-group': isDepth1Group,
|
|
@@ -88,7 +88,7 @@ export class SdSelectListItem {
|
|
|
88
88
|
'sd-select-list-item--focused': this.isFocused,
|
|
89
89
|
'sd-select-list-item--selectable': this.isSelectable && !this.option.disabled,
|
|
90
90
|
'sd-select-list-item--disabled': !!this.option.disabled,
|
|
91
|
-
}, style: cssVars, onClick: this.handleClick }, this.useCheckbox && (h("sd-checkbox", { key: '
|
|
91
|
+
}, style: cssVars, onClick: this.handleClick }, this.useCheckbox && (h("sd-checkbox", { key: 'a9720067837860a8259b1a16b5eab111f02c7ac4', value: this.isSelected === null ? null : !!this.isSelected, disabled: this.option.disabled, inverse: this.isFocused && this.isSelected !== false, class: "sd-select-list-item__checkbox", onClick: this.handleCheckboxClick, onSdUpdate: this.handleCheckboxUpdate })), isHtmlLabel(this.option.label) ? (h("span", { class: "sd-select-list-item__label", ref: el => el && (el.innerHTML = sanitizeInlineHtml(this.option.label)) })) : (h("span", { class: "sd-select-list-item__label" }, this.option.label)), this.countInfo && (h("span", { key: '8ece77c44bea9aea99883efe099137bca7d89475', class: "sd-select-list-item__count" }, "(", this.countInfo.selected, "/", this.countInfo.total, ")"))));
|
|
92
92
|
}
|
|
93
93
|
static get is() { return "sd-select-list-item"; }
|
|
94
94
|
static get originalStyleUrls() {
|
|
@@ -45,15 +45,15 @@ export class SdSelectListItemSearch {
|
|
|
45
45
|
clearTimeout(this.debounceTimer);
|
|
46
46
|
}
|
|
47
47
|
render() {
|
|
48
|
-
return (h("div", { key: '
|
|
48
|
+
return (h("div", { key: '5e1dc595bd89df5364d9a302dc917abb29fa2c7b', class: {
|
|
49
49
|
'sd-select-list-item-search': true,
|
|
50
50
|
'sd-select-list-item-search--scrolled': this.isScrolled,
|
|
51
|
-
} }, h("div", { key: '
|
|
51
|
+
} }, h("div", { key: 'd07b293bf685652dcc965071f47c0492776f9d41', class: "sd-select-list-item-search__inner" }, h("sd-icon", { key: '065e1df3105048322ababd7237df83d045543fc3', name: "search", size: 16, color: "grey_70", class: "sd-select-list-item-search__icon" }), h("input", { key: '973977bfbd98f5430b1b53f1ad59128383481197', ref: el => {
|
|
52
52
|
this.inputEl = el;
|
|
53
|
-
}, type: "text", class: "sd-select-list-item-search__input", placeholder: "\uAC80\uC0C9\uC5B4 \uC785\uB825", value: this.searchText, onInput: this.handleInput, onFocus: () => this.searchFocus.emit() }), h("button", { key: '
|
|
53
|
+
}, type: "text", class: "sd-select-list-item-search__input", placeholder: "\uAC80\uC0C9\uC5B4 \uC785\uB825", value: this.searchText, onInput: this.handleInput, onFocus: () => this.searchFocus.emit() }), h("button", { key: '2a1386ef266f7398f97ff99adc89ee3cec4a594e', type: "button", class: {
|
|
54
54
|
'sd-select-list-item-search__clear': true,
|
|
55
55
|
'sd-select-list-item-search__clear--hidden': this.searchText === '',
|
|
56
|
-
}, onClick: this.handleClear, tabindex: this.searchText !== '' ? 0 : -1, "aria-hidden": this.searchText !== '' ? 'false' : 'true' }, h("sd-icon", { key: '
|
|
56
|
+
}, onClick: this.handleClear, tabindex: this.searchText !== '' ? 0 : -1, "aria-hidden": this.searchText !== '' ? 'false' : 'true' }, h("sd-icon", { key: '1060c9fe4e3e6ce239800f04b382df9ce83e9d16', name: "close", size: 12, color: "#888888" })))));
|
|
57
57
|
}
|
|
58
58
|
static get is() { return "sd-select-list-item-search"; }
|
|
59
59
|
static get originalStyleUrls() {
|
|
@@ -20,20 +20,44 @@
|
|
|
20
20
|
padding-bottom: 0;
|
|
21
21
|
}
|
|
22
22
|
:host .sd-select-listbox__list::-webkit-scrollbar {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
background:
|
|
23
|
+
width: 12px;
|
|
24
|
+
height: 12px;
|
|
25
|
+
background: transparent;
|
|
26
26
|
}
|
|
27
|
-
:host .sd-select-listbox__list::-webkit-scrollbar
|
|
28
|
-
|
|
27
|
+
:host .sd-select-listbox__list::-webkit-scrollbar-track {
|
|
28
|
+
background: transparent;
|
|
29
29
|
}
|
|
30
30
|
:host .sd-select-listbox__list::-webkit-scrollbar-thumb {
|
|
31
|
-
height: 80px;
|
|
32
31
|
background-color: #CCCCCC;
|
|
33
|
-
border
|
|
32
|
+
border: 2px solid transparent;
|
|
33
|
+
border-radius: 8px;
|
|
34
|
+
background-clip: padding-box;
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
@supports not selector(::-webkit-scrollbar) {
|
|
37
|
+
:host .sd-select-listbox__list {
|
|
38
|
+
scrollbar-width: thin;
|
|
39
|
+
scrollbar-color: #CCCCCC transparent;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
:host .sd-select-listbox__list::-webkit-scrollbar, :host .sd-select-listbox__list::-webkit-scrollbar-track {
|
|
43
|
+
background: #F6F6F6;
|
|
44
|
+
}
|
|
45
|
+
@supports not selector(::-webkit-scrollbar) {
|
|
46
|
+
:host .sd-select-listbox__list {
|
|
47
|
+
scrollbar-color: #CCCCCC #F6F6F6;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
:host .sd-select-listbox__list::-webkit-scrollbar-track:vertical {
|
|
51
|
+
border-left: 1px solid #E1E1E1;
|
|
52
|
+
}
|
|
53
|
+
:host .sd-select-listbox__list::-webkit-scrollbar-track:horizontal {
|
|
54
|
+
border-top: 1px solid #E1E1E1;
|
|
55
|
+
}
|
|
56
|
+
:host .sd-select-listbox__list::-webkit-scrollbar-thumb:vertical {
|
|
57
|
+
border-left-width: 3px;
|
|
58
|
+
}
|
|
59
|
+
:host .sd-select-listbox__list::-webkit-scrollbar-thumb:horizontal {
|
|
60
|
+
border-top-width: 3px;
|
|
37
61
|
}
|
|
38
62
|
:host .sd-select-listbox__empty {
|
|
39
63
|
padding: 12px;
|
|
@@ -361,9 +361,9 @@ export class SdSelectListbox {
|
|
|
361
361
|
'--listbox-max-height': this.maxHeight ?? '260px',
|
|
362
362
|
'--listbox-radius': `${LIST_BOX_LAYOUT.radius}px`,
|
|
363
363
|
};
|
|
364
|
-
return (h("div", { key: '
|
|
364
|
+
return (h("div", { key: '060d455fa7eb31d50fb13251f352643460cc1232', class: "sd-select-listbox", style: cssVars }, this.showSearch && (h("sd-select-list-item-search", { key: '70543defd307911c3885b9ef3a0726465e9e4471', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), h("div", { key: '17aed7b1eb402f3b61044814cfad734e2cd4b922', class: "sd-select-listbox__list", onScroll: this.handleScroll, ref: el => {
|
|
365
365
|
this.listEl = el;
|
|
366
|
-
} }, this.showSelectAll && (h("sd-select-list-item", { key: '
|
|
366
|
+
} }, this.showSelectAll && (h("sd-select-list-item", { key: '1f43ef353e470ebb0f70bfed5c495eb7de227c62', option: SdSelectListbox.SELECT_ALL_OPTION, depth: 1, isSelected: this.selectAllState, isFocused: this.isOptionFocused(SdSelectListbox.SELECT_ALL_OPTION), useCheckbox: true, onSdListItemClick: this.handleSelectAllClick, onMouseEnter: () => this.handleOptionHover(SdSelectListbox.SELECT_ALL_OPTION) })), this.isEmpty ? (h("div", { class: "sd-select-listbox__empty" }, EMPTY_MESSAGE)) : this.isDepth ? (this.renderOptions(this.filteredOptions)) : (this.filteredOptions.map(option => (h("sd-select-list-item", { option: option, depth: 1, isSelected: this.isOptionSelected(option), isFocused: this.isOptionFocused(option), useCheckbox: this.isMulti, onSdListItemClick: this.handleOptionClick, onMouseEnter: () => this.handleOptionHover(option) })))))));
|
|
367
367
|
}
|
|
368
368
|
static get is() { return "sd-select-listbox"; }
|
|
369
369
|
static get encapsulation() { return "shadow"; }
|
|
@@ -51,7 +51,7 @@ export class SdSelectTrigger {
|
|
|
51
51
|
? SELECT_COLORS.icon.disabled
|
|
52
52
|
: SELECT_COLORS.icon.default,
|
|
53
53
|
};
|
|
54
|
-
return (h("div", { key: '
|
|
54
|
+
return (h("div", { key: 'afda44bd2f8dcf0ab75d75b0178b067f96e61707', ref: el => {
|
|
55
55
|
this.triggerEl = el;
|
|
56
56
|
}, role: "button", "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? 'true' : 'false', tabindex: this.disabled ? -1 : 0, class: {
|
|
57
57
|
'sd-select-trigger': true,
|
|
@@ -62,7 +62,7 @@ export class SdSelectTrigger {
|
|
|
62
62
|
e.preventDefault();
|
|
63
63
|
this.handleClick();
|
|
64
64
|
}
|
|
65
|
-
}, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("div", { key: '
|
|
65
|
+
}, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("div", { key: '061acc7d557d222b2616538346d415a6f37a198e', class: "sd-select-trigger__content" }, hasValue && isHtmlLabel(this.displayText) ? (h("span", { class: "sd-select-trigger__text", ref: el => el && (el.innerHTML = sanitizeInlineHtml(this.displayText)) })) : (h("span", { class: "sd-select-trigger__text" }, hasValue ? this.displayText : (this.placeholder ?? '선택'))), h("sd-icon", { key: '6444177838d54360776bbbfa7f08da7a6f556a16', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
|
|
66
66
|
'sd-select-trigger__icon': true,
|
|
67
67
|
'sd-select-trigger__icon--open': this.isOpen,
|
|
68
68
|
} }))));
|
|
@@ -283,15 +283,15 @@ export class SdSelect {
|
|
|
283
283
|
this.closeDropdown();
|
|
284
284
|
},
|
|
285
285
|
};
|
|
286
|
-
return (h("sd-field", { key: '
|
|
286
|
+
return (h("sd-field", { key: '5a224160fc18dff8deb4c3a2a9d1bc024c3ebd5b', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, onMouseEnter: () => {
|
|
287
287
|
this.hovered = true;
|
|
288
288
|
}, onMouseLeave: () => {
|
|
289
289
|
this.hovered = false;
|
|
290
|
-
} }, h("div", { key: '
|
|
290
|
+
} }, h("div", { key: '575ece02e659c99154598ad4ab416e26a7217e52', class: "sd-select", ref: el => {
|
|
291
291
|
this.triggerRef = el;
|
|
292
|
-
} }, h("sd-select-trigger", { key: '
|
|
292
|
+
} }, h("sd-select-trigger", { key: '39f1dc9bbb7e2e94e0ccf3a3b2f339b48f5e0b84', ref: el => {
|
|
293
293
|
this.triggerComponentRef = el;
|
|
294
|
-
}, displayText: this.displayText, placeholder: this.placeholder ?? '선택', disabled: this.disabled, isOpen: this.isOpen, onSdTriggerClick: this.handleTriggerClick, onSdTriggerFocus: this.handleTriggerFocus, onSdTriggerBlur: this.handleTriggerBlur })), (this.isOpen || this.isAnimatingOut) && (h("sd-portal", { key: '
|
|
294
|
+
}, displayText: this.displayText, placeholder: this.placeholder ?? '선택', disabled: this.disabled, isOpen: this.isOpen, onSdTriggerClick: this.handleTriggerClick, onSdTriggerFocus: this.handleTriggerFocus, onSdTriggerBlur: this.handleTriggerBlur })), (this.isOpen || this.isAnimatingOut) && (h("sd-portal", { key: 'c1ec4d1f8f5aebeff2427e8323a3eb74f7c02ebb', ...portalProps }, h("sd-select-listbox", { key: 'd74641151357b007a7293d5a2a0dabb625a5e55b', type: this.type, options: this.options, value: this.value, emitValue: this.emitValue, useSearch: this.useSearch, useSelectAll: this.useSelectAll, triggerWidth: this.dropdownWidth || this.triggerWidth, maxWidth: this.resolvedMaxDropdownWidth, maxHeight: this.resolvedDropdownHeight, onSdOptionSelect: event => this.handleOptionSelect(event.detail) })))));
|
|
295
295
|
}
|
|
296
296
|
static get is() { return "sd-select"; }
|
|
297
297
|
static get originalStyleUrls() {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import stepperTokens from "../../tokens/generated/component.stepper.json";
|
|
2
|
+
const stepper = stepperTokens.stepper;
|
|
3
|
+
export const STEPPER_SIZES = {
|
|
4
|
+
sm: {
|
|
5
|
+
sequenceSize: stepper.sm.sequence.size,
|
|
6
|
+
fontFamily: stepper.sm.typography.default.fontFamily,
|
|
7
|
+
fontSize: stepper.sm.typography.default.fontSize,
|
|
8
|
+
lineHeight: stepper.sm.typography.default.lineHeight,
|
|
9
|
+
fontWeightActive: stepper.sm.typography.active.fontWeight,
|
|
10
|
+
fontWeightDefault: stepper.sm.typography.default.fontWeight,
|
|
11
|
+
},
|
|
12
|
+
lg: {
|
|
13
|
+
sequenceSize: stepper.lg.sequence.size,
|
|
14
|
+
fontFamily: stepper.lg.typography.default.fontFamily,
|
|
15
|
+
fontSize: stepper.lg.typography.default.fontSize,
|
|
16
|
+
lineHeight: stepper.lg.typography.default.lineHeight,
|
|
17
|
+
fontWeightActive: stepper.lg.typography.active.fontWeight,
|
|
18
|
+
fontWeightDefault: stepper.lg.typography.default.fontWeight,
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
export const STEPPER_LAYOUT = {
|
|
22
|
+
containerGap: stepper.container.gap,
|
|
23
|
+
itemGap: stepper.item.gap,
|
|
24
|
+
dashWidth: stepper.dash.width,
|
|
25
|
+
radius: stepper.sequence.radius,
|
|
26
|
+
borderWidth: stepper.sequence.border.witdh,
|
|
27
|
+
iconSize: stepper.sequence.icon,
|
|
28
|
+
};
|
|
29
|
+
export const STEPPER_COLORS = {
|
|
30
|
+
dash: stepper.dash.color,
|
|
31
|
+
sequenceBorder: stepper.sequence.border,
|
|
32
|
+
sequenceBg: stepper.sequence.bg,
|
|
33
|
+
sequenceText: stepper.sequence.text,
|
|
34
|
+
text: stepper.text,
|
|
35
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
sd-stepper {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
}
|
|
4
|
+
sd-stepper .sd-stepper {
|
|
5
|
+
display: inline-flex;
|
|
6
|
+
align-items: center;
|
|
7
|
+
gap: var(--sd-stepper-container-gap);
|
|
8
|
+
font-family: var(--sd-stepper-font-family);
|
|
9
|
+
font-size: var(--sd-stepper-font-size);
|
|
10
|
+
line-height: var(--sd-stepper-line-height);
|
|
11
|
+
}
|
|
12
|
+
sd-stepper .sd-stepper__item {
|
|
13
|
+
display: inline-flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
gap: var(--sd-stepper-item-gap);
|
|
16
|
+
color: var(--sd-stepper-text-default);
|
|
17
|
+
font-weight: var(--sd-stepper-font-weight-default);
|
|
18
|
+
white-space: nowrap;
|
|
19
|
+
}
|
|
20
|
+
sd-stepper .sd-stepper__item--active {
|
|
21
|
+
color: var(--sd-stepper-text-active);
|
|
22
|
+
font-weight: var(--sd-stepper-font-weight-active);
|
|
23
|
+
}
|
|
24
|
+
sd-stepper .sd-stepper__sequence {
|
|
25
|
+
box-sizing: border-box;
|
|
26
|
+
display: inline-flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
justify-content: center;
|
|
29
|
+
width: var(--sd-stepper-sequence-size);
|
|
30
|
+
height: var(--sd-stepper-sequence-size);
|
|
31
|
+
flex: 0 0 var(--sd-stepper-sequence-size);
|
|
32
|
+
border-radius: var(--sd-stepper-sequence-radius);
|
|
33
|
+
border: var(--sd-stepper-sequence-border-width) solid var(--sd-stepper-sequence-border);
|
|
34
|
+
background: var(--sd-stepper-sequence-bg);
|
|
35
|
+
color: var(--sd-stepper-sequence-text);
|
|
36
|
+
font-size: 12px;
|
|
37
|
+
line-height: 20px;
|
|
38
|
+
font-weight: 700;
|
|
39
|
+
}
|
|
40
|
+
sd-stepper .sd-stepper__label {
|
|
41
|
+
color: inherit;
|
|
42
|
+
}
|
|
43
|
+
sd-stepper .sd-stepper__dash {
|
|
44
|
+
display: inline-flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
width: var(--sd-stepper-dash-width);
|
|
47
|
+
height: 1px;
|
|
48
|
+
flex: 0 0 var(--sd-stepper-dash-width);
|
|
49
|
+
color: var(--sd-stepper-dash-color);
|
|
50
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
import { STEPPER_COLORS, STEPPER_LAYOUT, STEPPER_SIZES, } from "./sd-stepper.config";
|
|
3
|
+
export class SdStepper {
|
|
4
|
+
/** 단계 목록 */
|
|
5
|
+
items = [];
|
|
6
|
+
/** 현재 활성 단계 value */
|
|
7
|
+
value = '';
|
|
8
|
+
/** 크기 */
|
|
9
|
+
size = 'sm';
|
|
10
|
+
/** 접근성 레이블 */
|
|
11
|
+
ariaLabel = '진행 단계';
|
|
12
|
+
valueChanged(newValue) {
|
|
13
|
+
this.value = newValue;
|
|
14
|
+
}
|
|
15
|
+
getItemValue(item, index) {
|
|
16
|
+
return item.value ?? String(index + 1);
|
|
17
|
+
}
|
|
18
|
+
getActiveIndex() {
|
|
19
|
+
const found = this.items.findIndex((item, index) => this.getItemValue(item, index) === this.value);
|
|
20
|
+
return found >= 0 ? found : 0;
|
|
21
|
+
}
|
|
22
|
+
getState(index) {
|
|
23
|
+
const activeIndex = this.getActiveIndex();
|
|
24
|
+
if (index < activeIndex)
|
|
25
|
+
return 'completed';
|
|
26
|
+
if (index === activeIndex)
|
|
27
|
+
return 'active';
|
|
28
|
+
return 'default';
|
|
29
|
+
}
|
|
30
|
+
buildCssVars() {
|
|
31
|
+
const size = STEPPER_SIZES[this.size];
|
|
32
|
+
return {
|
|
33
|
+
'--sd-stepper-sequence-size': `${size.sequenceSize}px`,
|
|
34
|
+
'--sd-stepper-font-family': size.fontFamily,
|
|
35
|
+
'--sd-stepper-font-size': `${size.fontSize}px`,
|
|
36
|
+
'--sd-stepper-line-height': `${size.lineHeight}px`,
|
|
37
|
+
'--sd-stepper-font-weight-active': size.fontWeightActive,
|
|
38
|
+
'--sd-stepper-font-weight-default': size.fontWeightDefault,
|
|
39
|
+
'--sd-stepper-container-gap': `${STEPPER_LAYOUT.containerGap}px`,
|
|
40
|
+
'--sd-stepper-item-gap': `${STEPPER_LAYOUT.itemGap}px`,
|
|
41
|
+
'--sd-stepper-dash-width': `${STEPPER_LAYOUT.dashWidth}px`,
|
|
42
|
+
'--sd-stepper-dash-color': STEPPER_COLORS.dash,
|
|
43
|
+
'--sd-stepper-sequence-radius': `${STEPPER_LAYOUT.radius}px`,
|
|
44
|
+
'--sd-stepper-sequence-border-width': `${STEPPER_LAYOUT.borderWidth}px`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
getStateVars(state) {
|
|
48
|
+
return {
|
|
49
|
+
'--sd-stepper-sequence-border': STEPPER_COLORS.sequenceBorder[state],
|
|
50
|
+
'--sd-stepper-sequence-bg': STEPPER_COLORS.sequenceBg[state],
|
|
51
|
+
'--sd-stepper-sequence-text': state === 'completed'
|
|
52
|
+
? STEPPER_COLORS.text.default
|
|
53
|
+
: STEPPER_COLORS.sequenceText[state],
|
|
54
|
+
'--sd-stepper-text-active': STEPPER_COLORS.text.active,
|
|
55
|
+
'--sd-stepper-text-default': STEPPER_COLORS.text.default,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
render() {
|
|
59
|
+
return (h("div", { key: '0255899ce447c38d44a618acc72692d2c746ebc3', class: "sd-stepper", role: "list", "aria-label": this.ariaLabel, style: this.buildCssVars() }, this.items.map((item, index) => {
|
|
60
|
+
const state = this.getState(index);
|
|
61
|
+
const className = [
|
|
62
|
+
'sd-stepper__item',
|
|
63
|
+
`sd-stepper__item--${state}`,
|
|
64
|
+
]
|
|
65
|
+
.filter(Boolean)
|
|
66
|
+
.join(' ');
|
|
67
|
+
return [
|
|
68
|
+
h("span", { class: className, role: "listitem", "aria-current": state === 'active' ? 'step' : undefined, style: this.getStateVars(state) }, h("span", { class: "sd-stepper__sequence", "aria-hidden": "true" }, state === 'completed' ? (h("sd-icon", { name: "check", size: STEPPER_LAYOUT.iconSize, color: "currentColor" })) : (index + 1)), h("span", { class: "sd-stepper__label" }, item.label)),
|
|
69
|
+
index < this.items.length - 1 && (h("span", { class: "sd-stepper__dash", "aria-hidden": "true" }, h("svg", { width: STEPPER_LAYOUT.dashWidth, height: "1", viewBox: `0 0 ${STEPPER_LAYOUT.dashWidth} 1`, fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("rect", { width: "1.6", height: "1", fill: "#888888" }), h("rect", { x: "5", width: "3.3", height: "1", fill: "#888888" }), h("rect", { x: "11.7", width: "3.3", height: "1", fill: "#888888" }), h("rect", { x: "18.4", width: "1.6", height: "1", fill: "#888888" })))),
|
|
70
|
+
];
|
|
71
|
+
})));
|
|
72
|
+
}
|
|
73
|
+
static get is() { return "sd-stepper"; }
|
|
74
|
+
static get originalStyleUrls() {
|
|
75
|
+
return {
|
|
76
|
+
"$": ["sd-stepper.scss"]
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
static get styleUrls() {
|
|
80
|
+
return {
|
|
81
|
+
"$": ["sd-stepper.css"]
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
static get properties() {
|
|
85
|
+
return {
|
|
86
|
+
"items": {
|
|
87
|
+
"type": "unknown",
|
|
88
|
+
"mutable": true,
|
|
89
|
+
"complexType": {
|
|
90
|
+
"original": "StepperItem[]",
|
|
91
|
+
"resolved": "StepperItem[]",
|
|
92
|
+
"references": {
|
|
93
|
+
"StepperItem": {
|
|
94
|
+
"location": "import",
|
|
95
|
+
"path": "./sd-stepper.config",
|
|
96
|
+
"id": "src/components/sd-stepper/sd-stepper.config.ts::StepperItem",
|
|
97
|
+
"referenceLocation": "StepperItem"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"required": false,
|
|
102
|
+
"optional": false,
|
|
103
|
+
"docs": {
|
|
104
|
+
"tags": [],
|
|
105
|
+
"text": "\uB2E8\uACC4 \uBAA9\uB85D"
|
|
106
|
+
},
|
|
107
|
+
"getter": false,
|
|
108
|
+
"setter": false,
|
|
109
|
+
"defaultValue": "[]"
|
|
110
|
+
},
|
|
111
|
+
"value": {
|
|
112
|
+
"type": "string",
|
|
113
|
+
"mutable": true,
|
|
114
|
+
"complexType": {
|
|
115
|
+
"original": "string",
|
|
116
|
+
"resolved": "string",
|
|
117
|
+
"references": {}
|
|
118
|
+
},
|
|
119
|
+
"required": false,
|
|
120
|
+
"optional": false,
|
|
121
|
+
"docs": {
|
|
122
|
+
"tags": [],
|
|
123
|
+
"text": "\uD604\uC7AC \uD65C\uC131 \uB2E8\uACC4 value"
|
|
124
|
+
},
|
|
125
|
+
"getter": false,
|
|
126
|
+
"setter": false,
|
|
127
|
+
"reflect": true,
|
|
128
|
+
"attribute": "value",
|
|
129
|
+
"defaultValue": "''"
|
|
130
|
+
},
|
|
131
|
+
"size": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"mutable": false,
|
|
134
|
+
"complexType": {
|
|
135
|
+
"original": "StepperSize",
|
|
136
|
+
"resolved": "\"lg\" | \"sm\"",
|
|
137
|
+
"references": {
|
|
138
|
+
"StepperSize": {
|
|
139
|
+
"location": "import",
|
|
140
|
+
"path": "./sd-stepper.config",
|
|
141
|
+
"id": "src/components/sd-stepper/sd-stepper.config.ts::StepperSize",
|
|
142
|
+
"referenceLocation": "StepperSize"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"required": false,
|
|
147
|
+
"optional": false,
|
|
148
|
+
"docs": {
|
|
149
|
+
"tags": [],
|
|
150
|
+
"text": "\uD06C\uAE30"
|
|
151
|
+
},
|
|
152
|
+
"getter": false,
|
|
153
|
+
"setter": false,
|
|
154
|
+
"reflect": true,
|
|
155
|
+
"attribute": "size",
|
|
156
|
+
"defaultValue": "'sm'"
|
|
157
|
+
},
|
|
158
|
+
"ariaLabel": {
|
|
159
|
+
"type": "string",
|
|
160
|
+
"mutable": false,
|
|
161
|
+
"complexType": {
|
|
162
|
+
"original": "string",
|
|
163
|
+
"resolved": "string",
|
|
164
|
+
"references": {}
|
|
165
|
+
},
|
|
166
|
+
"required": false,
|
|
167
|
+
"optional": false,
|
|
168
|
+
"docs": {
|
|
169
|
+
"tags": [],
|
|
170
|
+
"text": "\uC811\uADFC\uC131 \uB808\uC774\uBE14"
|
|
171
|
+
},
|
|
172
|
+
"getter": false,
|
|
173
|
+
"setter": false,
|
|
174
|
+
"reflect": false,
|
|
175
|
+
"attribute": "aria-label",
|
|
176
|
+
"defaultValue": "'\uC9C4\uD589 \uB2E8\uACC4'"
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
static get watchers() {
|
|
181
|
+
return [{
|
|
182
|
+
"propName": "value",
|
|
183
|
+
"methodName": "valueChanged"
|
|
184
|
+
}];
|
|
185
|
+
}
|
|
186
|
+
}
|