@sellmate/design-system 1.29.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.
Files changed (411) hide show
  1. package/dist/cjs/design-system.cjs.js +2 -2
  2. package/dist/cjs/{index-iiJZMzVM.js → index-Cg7X15Hq.js} +1 -1
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/sd-action-modal.cjs.entry.js +2 -2
  5. package/dist/cjs/sd-badge.cjs.entry.js +2 -2
  6. package/dist/cjs/sd-barcode-input.cjs.entry.js +2 -2
  7. package/dist/cjs/sd-button_2.cjs.entry.js +3 -3
  8. package/dist/cjs/sd-calendar_2.cjs.entry.js +8 -9
  9. package/dist/cjs/sd-callout.cjs.entry.js +2 -2
  10. package/dist/cjs/sd-card.cjs.entry.js +2 -2
  11. package/dist/cjs/sd-checkbox.cjs.entry.js +5 -5
  12. package/dist/cjs/sd-chip-input.cjs.entry.js +22 -17
  13. package/dist/cjs/sd-chip.cjs.entry.js +7 -7
  14. package/dist/cjs/sd-circle-progress.cjs.entry.js +3 -3
  15. package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +3 -3
  16. package/dist/cjs/sd-date-box.cjs.entry.js +1 -1
  17. package/dist/cjs/{component.datepicker-zFTQQKMH.js → sd-date-picker.config-CgyNxY03.js} +66 -1
  18. package/dist/cjs/sd-date-picker_8.cjs.entry.js +141 -51
  19. package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +162 -12
  20. package/dist/cjs/sd-divider.cjs.entry.js +3 -3
  21. package/dist/cjs/sd-dropdown-button.cjs.entry.js +2 -2
  22. package/dist/cjs/sd-field_3.cjs.entry.js +51 -52
  23. package/dist/cjs/sd-form.cjs.entry.js +1 -1
  24. package/dist/cjs/sd-ghost-button_3.cjs.entry.js +14 -10
  25. package/dist/cjs/sd-guide.cjs.entry.js +2 -2
  26. package/dist/cjs/sd-key-value-table.cjs.entry.js +2 -2
  27. package/dist/cjs/sd-linear-progress.cjs.entry.js +3 -3
  28. package/dist/cjs/sd-loading-container.cjs.entry.js +3 -3
  29. package/dist/cjs/sd-modal-container.cjs.entry.js +1 -1
  30. package/dist/cjs/sd-pagination.cjs.entry.js +4 -4
  31. package/dist/cjs/sd-popover.cjs.entry.js +134 -44
  32. package/dist/cjs/sd-popup.cjs.entry.js +4 -4
  33. package/dist/cjs/sd-radio-button.cjs.entry.js +3 -3
  34. package/dist/cjs/sd-radio.cjs.entry.js +4 -2
  35. package/dist/cjs/sd-scroll-area.cjs.entry.js +44 -0
  36. package/dist/cjs/sd-select-list-item_4.cjs.entry.js +12 -12
  37. package/dist/cjs/sd-stepper.cjs.entry.js +190 -0
  38. package/dist/cjs/sd-switch.cjs.entry.js +13 -3
  39. package/dist/cjs/sd-tabs.cjs.entry.js +2 -2
  40. package/dist/cjs/sd-text-link.cjs.entry.js +4 -4
  41. package/dist/cjs/sd-time-picker-selector.cjs.entry.js +179 -0
  42. package/dist/cjs/sd-time-picker-trigger.cjs.entry.js +75 -0
  43. package/dist/cjs/sd-time-picker.cjs.entry.js +173 -0
  44. package/dist/cjs/sd-time-picker.config-C7REB08L.js +156 -0
  45. package/dist/cjs/sd-time-range-picker-selector.cjs.entry.js +219 -0
  46. package/dist/cjs/sd-time-range-picker.cjs.entry.js +204 -0
  47. package/dist/cjs/sd-toast-container.cjs.entry.js +2 -2
  48. package/dist/cjs/sd-toast.cjs.entry.js +3 -3
  49. package/dist/cjs/sd-toggle.cjs.entry.js +2 -2
  50. package/dist/cjs/{system-B4KkVpu2.js → system-BGCBFBcM.js} +3 -1
  51. package/dist/cjs/{tooltipArrow-DOOcBlLp.js → tooltipArrow-CZff77W-.js} +1 -1
  52. package/dist/cjs/useDatePicker-j06ymWZ_.js +103 -0
  53. package/dist/collection/collection-manifest.json +10 -3
  54. package/dist/collection/components/sd-action-modal/sd-action-modal.js +1 -1
  55. package/dist/collection/components/sd-badge/sd-badge.js +1 -1
  56. package/dist/collection/components/sd-barcode-input/sd-barcode-input.js +1 -1
  57. package/dist/collection/components/sd-button/sd-button.js +2 -2
  58. package/dist/collection/components/sd-calendar/sd-calendar.js +3 -3
  59. package/dist/collection/components/sd-callout/sd-callout.js +1 -1
  60. package/dist/collection/components/sd-card/sd-card.js +1 -1
  61. package/dist/collection/components/sd-checkbox/sd-checkbox.js +8 -8
  62. package/dist/collection/components/sd-chip/sd-chip.js +8 -8
  63. package/dist/collection/components/sd-chip-input/sd-chip-input.css +3 -0
  64. package/dist/collection/components/sd-chip-input/sd-chip-input.js +43 -17
  65. package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +1 -1
  66. package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +1 -1
  67. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +2 -2
  68. package/dist/collection/components/sd-date-picker/sd-date-picker.js +23 -2
  69. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.css +75 -0
  70. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +152 -6
  71. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.config.js +27 -0
  72. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +59 -3
  73. package/dist/collection/components/sd-divider/sd-divider.js +1 -1
  74. package/dist/collection/components/sd-field/sd-field.css +4 -0
  75. package/dist/collection/components/sd-field/sd-field.js +58 -5
  76. package/dist/collection/components/sd-file-picker/sd-file-picker.config.js +17 -10
  77. package/dist/collection/components/sd-file-picker/sd-file-picker.js +46 -16
  78. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +1 -1
  79. package/dist/collection/components/sd-ghost-button/sd-ghost-button.js +27 -3
  80. package/dist/collection/components/sd-input/sd-input.js +4 -4
  81. package/dist/collection/components/sd-linear-progress/sd-linear-progress.js +1 -1
  82. package/dist/collection/components/sd-loading-container/sd-loading-container.js +2 -2
  83. package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +1 -1
  84. package/dist/collection/components/sd-number-input/sd-number-input.js +58 -7
  85. package/dist/collection/components/sd-pagination/sd-pagination.js +3 -3
  86. package/dist/collection/components/sd-popover/sd-popover.config.js +41 -0
  87. package/dist/collection/components/sd-popover/sd-popover.js +189 -191
  88. package/dist/collection/components/sd-popup/sd-popup.css +40 -0
  89. package/dist/collection/components/sd-popup/sd-popup.js +1 -1
  90. package/dist/collection/components/sd-portal/sd-portal.js +1 -1
  91. package/dist/collection/components/sd-radio/sd-radio.js +25 -4
  92. package/dist/collection/components/sd-radio-button/sd-radio-button.js +6 -6
  93. package/dist/collection/components/sd-radio-group/sd-radio-group.js +7 -7
  94. package/dist/collection/components/sd-scroll-area/sd-scroll-area.config.js +8 -0
  95. package/dist/collection/components/sd-scroll-area/sd-scroll-area.css +61 -0
  96. package/dist/collection/components/sd-scroll-area/sd-scroll-area.js +151 -0
  97. package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +2 -2
  98. package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +4 -4
  99. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.css +33 -9
  100. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +2 -2
  101. package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +2 -2
  102. package/dist/collection/components/sd-select/sd-select.js +4 -4
  103. package/dist/collection/components/sd-stepper/sd-stepper.config.js +35 -0
  104. package/dist/collection/components/sd-stepper/sd-stepper.css +50 -0
  105. package/dist/collection/components/sd-stepper/sd-stepper.js +186 -0
  106. package/dist/collection/components/sd-switch/sd-switch.js +54 -3
  107. package/dist/collection/components/sd-tabs/sd-tabs.js +1 -1
  108. package/dist/collection/components/sd-tag/sd-tag.js +7 -8
  109. package/dist/collection/components/sd-text-link/sd-text-link.js +3 -3
  110. package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
  111. package/dist/collection/components/sd-time-picker/sd-time-picker-selector/sd-time-picker-selector.css +87 -0
  112. package/dist/collection/components/sd-time-picker/sd-time-picker-selector/sd-time-picker-selector.js +266 -0
  113. package/dist/collection/components/sd-time-picker/sd-time-picker-trigger/sd-time-picker-trigger.css +38 -0
  114. package/dist/collection/components/sd-time-picker/sd-time-picker-trigger/sd-time-picker-trigger.js +216 -0
  115. package/dist/collection/components/sd-time-picker/sd-time-picker.config.js +78 -0
  116. package/dist/collection/components/sd-time-picker/sd-time-picker.css +12 -0
  117. package/dist/collection/components/sd-time-picker/sd-time-picker.js +761 -0
  118. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker-selector/sd-time-range-picker-selector.css +102 -0
  119. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker-selector/sd-time-range-picker-selector.js +338 -0
  120. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker.config.js +23 -0
  121. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker.css +12 -0
  122. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker.js +809 -0
  123. package/dist/collection/components/sd-toast/sd-toast.js +2 -2
  124. package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
  125. package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
  126. package/dist/collection/components/sd-tooltip/sd-tooltip.js +36 -189
  127. package/dist/components/index.js +1 -1
  128. package/dist/components/p--BJuy06e.js +1 -0
  129. package/dist/components/p-22hyxPno.js +1 -0
  130. package/dist/components/p-7lGaExLM.js +1 -0
  131. package/dist/components/{p-oYbVr-z0.js → p-B6BgOB_-.js} +1 -1
  132. package/dist/components/{p-R-Sdglj0.js → p-BBAwMOGx.js} +1 -1
  133. package/dist/components/{p-CbS69IvC.js → p-BDULNyBw.js} +1 -1
  134. package/dist/components/p-BI1iKxNN.js +1 -0
  135. package/dist/components/{p-Bpv90tfa.js → p-BPzs63D8.js} +1 -1
  136. package/dist/components/{p-DMoFncVl.js → p-BU1DclrU.js} +1 -1
  137. package/dist/components/{p-OO7xxhkC.js → p-BhLF3gGb.js} +1 -1
  138. package/dist/components/p-Bk6mL1Ml.js +1 -0
  139. package/dist/components/p-BkyM9ded.js +1 -0
  140. package/dist/components/{p-CFTyEfB9.js → p-BoJ_gLp7.js} +1 -1
  141. package/dist/components/{p-Di1q4f5E.js → p-BpTKv3vN.js} +1 -1
  142. package/dist/components/p-C0IFrSzM.js +1 -0
  143. package/dist/components/p-C1KeTx0Z.js +1 -0
  144. package/dist/components/p-C8x8VEb8.js +1 -0
  145. package/dist/components/p-CBx8KWmu.js +1 -0
  146. package/dist/components/p-CNNjhHTA.js +1 -0
  147. package/dist/components/{p-CErFctrV.js → p-CRDS2TOy.js} +1 -1
  148. package/dist/components/p-CdeywvU6.js +1 -0
  149. package/dist/components/{p-BOxGhKKP.js → p-CghFB91T.js} +1 -1
  150. package/dist/components/p-CikPzSw-.js +1 -0
  151. package/dist/components/{p-9Ap2W-Mi.js → p-D0IDp-M3.js} +1 -1
  152. package/dist/components/p-D2oNz1s-.js +1 -0
  153. package/dist/components/p-DApl37Qw.js +1 -0
  154. package/dist/components/{p-BIEPMPWA.js → p-DGAzuK5C.js} +1 -1
  155. package/dist/components/p-DMm_GeZC.js +1 -0
  156. package/dist/components/{p-C_in6AVN.js → p-DONA7SlO.js} +1 -1
  157. package/dist/components/{p-C7mC7a1z.js → p-DVdDYnTl.js} +1 -1
  158. package/dist/components/{p-Dg1UrMqI.js → p-DdYWQ4Z5.js} +1 -1
  159. package/dist/components/p-DtadjLky.js +1 -0
  160. package/dist/components/p-DvlLDBO7.js +1 -0
  161. package/dist/components/p-ETWwVYq6.js +1 -0
  162. package/dist/components/{p-idG6CMO0.js → p-ISXxxDfX.js} +1 -1
  163. package/dist/components/p-UFNg7rhE.js +1 -0
  164. package/dist/{design-system/p-B91K50wC.js → components/p-bXzpfkfN.js} +1 -1
  165. package/dist/components/{p-BHjezpAC.js → p-irA7XFIS.js} +1 -1
  166. package/dist/components/{p-Bth2l1cy.js → p-rayWyWtG.js} +1 -1
  167. package/dist/components/{p-CSr33M9s.js → p-sLMSwbXi.js} +1 -1
  168. package/dist/components/p-vj3gimgB.js +1 -0
  169. package/dist/components/sd-action-modal.js +1 -1
  170. package/dist/components/sd-badge.js +1 -1
  171. package/dist/components/sd-barcode-input.js +1 -1
  172. package/dist/components/sd-button.js +1 -1
  173. package/dist/components/sd-calendar.js +1 -1
  174. package/dist/components/sd-callout.js +1 -1
  175. package/dist/components/sd-card.js +1 -1
  176. package/dist/components/sd-checkbox.js +1 -1
  177. package/dist/components/sd-chip-input.js +1 -1
  178. package/dist/components/sd-chip.js +1 -1
  179. package/dist/components/sd-circle-progress.js +1 -1
  180. package/dist/components/sd-confirm-modal.js +1 -1
  181. package/dist/components/sd-date-box.js +1 -1
  182. package/dist/components/sd-date-picker-trigger.js +1 -1
  183. package/dist/components/sd-date-picker.js +1 -1
  184. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  185. package/dist/components/sd-date-range-picker.js +1 -1
  186. package/dist/components/sd-divider.js +1 -1
  187. package/dist/components/sd-dropdown-button.js +1 -1
  188. package/dist/components/sd-field.js +1 -1
  189. package/dist/components/sd-file-picker.js +1 -1
  190. package/dist/components/sd-floating-portal.js +1 -1
  191. package/dist/components/sd-form.js +1 -1
  192. package/dist/components/sd-ghost-button.js +1 -1
  193. package/dist/components/sd-guide.js +1 -1
  194. package/dist/components/sd-icon.js +1 -1
  195. package/dist/components/sd-input.js +1 -1
  196. package/dist/components/sd-key-value-table.js +1 -1
  197. package/dist/components/sd-linear-progress.js +1 -1
  198. package/dist/components/sd-loading-container.js +1 -1
  199. package/dist/components/sd-loading-modal.js +1 -1
  200. package/dist/components/sd-modal-container.js +1 -1
  201. package/dist/components/sd-number-input.js +1 -1
  202. package/dist/components/sd-pagination.js +1 -1
  203. package/dist/components/sd-popover.js +1 -1
  204. package/dist/components/sd-popup.js +1 -1
  205. package/dist/components/sd-portal.js +1 -1
  206. package/dist/components/sd-radio-button.js +1 -1
  207. package/dist/components/sd-radio-group.js +1 -1
  208. package/dist/components/sd-radio.js +1 -1
  209. package/dist/components/sd-scroll-area.d.ts +11 -0
  210. package/dist/components/sd-scroll-area.js +1 -0
  211. package/dist/components/sd-select-list-item-search.js +1 -1
  212. package/dist/components/sd-select-list-item.js +1 -1
  213. package/dist/components/sd-select-listbox.js +1 -1
  214. package/dist/components/sd-select-trigger.js +1 -1
  215. package/dist/components/sd-select.js +1 -1
  216. package/dist/components/sd-stepper.d.ts +11 -0
  217. package/dist/components/sd-stepper.js +1 -0
  218. package/dist/components/sd-switch.js +1 -1
  219. package/dist/components/sd-tabs.js +1 -1
  220. package/dist/components/sd-tag.js +1 -1
  221. package/dist/components/sd-text-link.js +1 -1
  222. package/dist/components/sd-textarea.js +1 -1
  223. package/dist/components/sd-time-picker-selector.d.ts +11 -0
  224. package/dist/components/sd-time-picker-selector.js +1 -0
  225. package/dist/components/sd-time-picker-trigger.d.ts +11 -0
  226. package/dist/components/sd-time-picker-trigger.js +1 -0
  227. package/dist/components/sd-time-picker.d.ts +11 -0
  228. package/dist/components/sd-time-picker.js +1 -0
  229. package/dist/components/sd-time-range-picker-selector.d.ts +11 -0
  230. package/dist/components/sd-time-range-picker-selector.js +1 -0
  231. package/dist/components/sd-time-range-picker.d.ts +11 -0
  232. package/dist/components/sd-time-range-picker.js +1 -0
  233. package/dist/components/sd-toast-container.js +1 -1
  234. package/dist/components/sd-toast.js +1 -1
  235. package/dist/components/sd-toggle.js +1 -1
  236. package/dist/components/sd-tooltip.js +1 -1
  237. package/dist/design-system/design-system.css +1 -1
  238. package/dist/design-system/design-system.esm.js +1 -1
  239. package/dist/design-system/{p-840006b1.entry.js → p-0cdd05eb.entry.js} +1 -1
  240. package/dist/design-system/p-1c4ba7ae.entry.js +1 -0
  241. package/dist/design-system/{p-c7d2c195.entry.js → p-2a36028d.entry.js} +1 -1
  242. package/dist/design-system/{p-be54fd3a.entry.js → p-2e76157e.entry.js} +1 -1
  243. package/dist/design-system/p-336cb0c1.entry.js +1 -0
  244. package/dist/design-system/{p-26a27312.entry.js → p-34e8dda6.entry.js} +1 -1
  245. package/dist/design-system/p-370b820e.entry.js +1 -0
  246. package/dist/design-system/{p-c5cffcc6.entry.js → p-39db3098.entry.js} +1 -1
  247. package/dist/design-system/p-3a2be559.entry.js +1 -0
  248. package/dist/design-system/p-405cb160.entry.js +1 -0
  249. package/dist/design-system/{p-246aafb9.entry.js → p-456479cc.entry.js} +1 -1
  250. package/dist/design-system/{p-86329ae3.entry.js → p-4d845113.entry.js} +1 -1
  251. package/dist/design-system/p-5761352f.entry.js +1 -0
  252. package/dist/design-system/{p-3cd2751a.entry.js → p-5b725381.entry.js} +1 -1
  253. package/dist/design-system/p-5d7820f7.entry.js +1 -0
  254. package/dist/design-system/p-5dd631fe.entry.js +1 -0
  255. package/dist/design-system/p-66e3fba3.entry.js +1 -0
  256. package/dist/design-system/{p-c1066f40.entry.js → p-6a5540d8.entry.js} +1 -1
  257. package/dist/design-system/{p-55c0be7d.entry.js → p-703bb49a.entry.js} +1 -1
  258. package/dist/design-system/{p-0c1d1a15.entry.js → p-71e7031e.entry.js} +1 -1
  259. package/dist/design-system/p-7837f8f8.entry.js +1 -0
  260. package/dist/design-system/{p-5a257ed9.entry.js → p-814ae5f1.entry.js} +1 -1
  261. package/dist/design-system/p-8804e3f3.entry.js +1 -0
  262. package/dist/design-system/p-8ea038d7.entry.js +1 -0
  263. package/dist/design-system/{p-b585f94b.entry.js → p-937a30af.entry.js} +1 -1
  264. package/dist/design-system/{p-1ed1bfa1.entry.js → p-94d4c093.entry.js} +1 -1
  265. package/dist/design-system/p-97a059b0.entry.js +1 -0
  266. package/dist/design-system/{p-53fe2741.entry.js → p-9afada52.entry.js} +1 -1
  267. package/dist/design-system/{p-d2ce01ac.entry.js → p-9df0dd32.entry.js} +1 -1
  268. package/dist/design-system/{p-BPKiBSGr.js → p-BnUjeY2n.js} +1 -1
  269. package/dist/design-system/p-CHijmX_D.js +1 -0
  270. package/dist/design-system/p-CdvQqvIe.js +2 -0
  271. package/dist/design-system/p-DMm_GeZC.js +1 -0
  272. package/dist/design-system/p-Dz23PPdF.js +1 -0
  273. package/dist/design-system/{p-3595cafb.entry.js → p-a05f4888.entry.js} +1 -1
  274. package/dist/design-system/p-a81e4ae0.entry.js +1 -0
  275. package/dist/design-system/p-aaa551fa.entry.js +1 -0
  276. package/dist/design-system/p-adc218f5.entry.js +1 -0
  277. package/dist/design-system/{p-8ed1d470.entry.js → p-b7e913e7.entry.js} +1 -1
  278. package/dist/design-system/p-b90eaebd.entry.js +1 -0
  279. package/dist/design-system/{p-d9f33192.entry.js → p-c5263a22.entry.js} +1 -1
  280. package/dist/design-system/{p-ec4ad48c.entry.js → p-c5eea64c.entry.js} +1 -1
  281. package/dist/design-system/{p-02f0b906.entry.js → p-c906d22d.entry.js} +1 -1
  282. package/dist/design-system/{p-d204cac5.entry.js → p-defe65db.entry.js} +1 -1
  283. package/dist/design-system/{p-4c85f6f6.entry.js → p-e16725f7.entry.js} +1 -1
  284. package/dist/design-system/p-e4096b72.entry.js +1 -0
  285. package/dist/design-system/{p-8de3b502.entry.js → p-e72706ea.entry.js} +1 -1
  286. package/dist/design-system/p-fb01f963.entry.js +1 -0
  287. package/dist/design-system/{p-adf2f398.entry.js → p-fc9577d9.entry.js} +1 -1
  288. package/dist/design-system/{p-Bth2l1cy.js → p-rayWyWtG.js} +1 -1
  289. package/dist/esm/design-system.js +3 -3
  290. package/dist/esm/{index-Dz490Ukt.js → index-CdvQqvIe.js} +1 -1
  291. package/dist/esm/loader.js +3 -3
  292. package/dist/esm/sd-action-modal.entry.js +2 -2
  293. package/dist/esm/sd-badge.entry.js +2 -2
  294. package/dist/esm/sd-barcode-input.entry.js +2 -2
  295. package/dist/esm/sd-button_2.entry.js +3 -3
  296. package/dist/esm/sd-calendar_2.entry.js +8 -9
  297. package/dist/esm/sd-callout.entry.js +2 -2
  298. package/dist/esm/sd-card.entry.js +2 -2
  299. package/dist/esm/sd-checkbox.entry.js +5 -5
  300. package/dist/esm/sd-chip-input.entry.js +22 -17
  301. package/dist/esm/sd-chip.entry.js +7 -7
  302. package/dist/esm/sd-circle-progress.entry.js +3 -3
  303. package/dist/esm/sd-confirm-modal_2.entry.js +3 -3
  304. package/dist/esm/sd-date-box.entry.js +1 -1
  305. package/dist/esm/{component.datepicker-BOxGhKKP.js → sd-date-picker.config-CdXJcOGr.js} +65 -2
  306. package/dist/esm/sd-date-picker_8.entry.js +141 -51
  307. package/dist/esm/sd-date-range-picker-calendar.entry.js +158 -8
  308. package/dist/esm/sd-divider.entry.js +3 -3
  309. package/dist/esm/sd-dropdown-button.entry.js +2 -2
  310. package/dist/esm/sd-field_3.entry.js +51 -52
  311. package/dist/esm/sd-form.entry.js +1 -1
  312. package/dist/esm/sd-ghost-button_3.entry.js +14 -10
  313. package/dist/esm/sd-guide.entry.js +2 -2
  314. package/dist/esm/sd-key-value-table.entry.js +2 -2
  315. package/dist/esm/sd-linear-progress.entry.js +3 -3
  316. package/dist/esm/sd-loading-container.entry.js +3 -3
  317. package/dist/esm/sd-modal-container.entry.js +1 -1
  318. package/dist/esm/sd-pagination.entry.js +4 -4
  319. package/dist/esm/sd-popover.entry.js +134 -44
  320. package/dist/esm/sd-popup.entry.js +4 -4
  321. package/dist/esm/sd-radio-button.entry.js +3 -3
  322. package/dist/esm/sd-radio.entry.js +4 -2
  323. package/dist/esm/sd-scroll-area.entry.js +42 -0
  324. package/dist/esm/sd-select-list-item_4.entry.js +12 -12
  325. package/dist/esm/sd-stepper.entry.js +188 -0
  326. package/dist/esm/sd-switch.entry.js +13 -3
  327. package/dist/esm/sd-tabs.entry.js +2 -2
  328. package/dist/esm/sd-text-link.entry.js +4 -4
  329. package/dist/esm/sd-time-picker-selector.entry.js +177 -0
  330. package/dist/esm/sd-time-picker-trigger.entry.js +73 -0
  331. package/dist/esm/sd-time-picker.config-DUq29Nhs.js +148 -0
  332. package/dist/esm/sd-time-picker.entry.js +171 -0
  333. package/dist/esm/sd-time-range-picker-selector.entry.js +217 -0
  334. package/dist/esm/sd-time-range-picker.entry.js +202 -0
  335. package/dist/esm/sd-toast-container.entry.js +2 -2
  336. package/dist/esm/sd-toast.entry.js +3 -3
  337. package/dist/esm/sd-toggle.entry.js +2 -2
  338. package/dist/esm/{system-Bth2l1cy.js → system-rayWyWtG.js} +3 -1
  339. package/dist/esm/{tooltipArrow-CEHVt90h.js → tooltipArrow-BsQ__AbZ.js} +1 -1
  340. package/dist/esm/{useDatePicker-BG0lUGJG.js → useDatePicker-DQ5Kyy_D.js} +1 -1
  341. package/dist/types/components/sd-checkbox/sd-checkbox.d.ts +2 -2
  342. package/dist/types/components/sd-chip/sd-chip.d.ts +3 -3
  343. package/dist/types/components/sd-chip-input/sd-chip-input.d.ts +4 -2
  344. package/dist/types/components/sd-date-picker/sd-date-picker.d.ts +2 -0
  345. package/dist/types/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.d.ts +20 -0
  346. package/dist/types/components/sd-date-range-picker/sd-date-range-picker.config.d.ts +25 -0
  347. package/dist/types/components/sd-date-range-picker/sd-date-range-picker.d.ts +9 -0
  348. package/dist/types/components/sd-field/sd-field.d.ts +7 -0
  349. package/dist/types/components/sd-file-picker/sd-file-picker.config.d.ts +28 -0
  350. package/dist/types/components/sd-file-picker/sd-file-picker.d.ts +3 -1
  351. package/dist/types/components/sd-ghost-button/sd-ghost-button.d.ts +5 -0
  352. package/dist/types/components/sd-input/sd-input.d.ts +1 -1
  353. package/dist/types/components/sd-number-input/sd-number-input.d.ts +8 -0
  354. package/dist/types/components/sd-popover/sd-popover.config.d.ts +22 -0
  355. package/dist/types/components/sd-popover/sd-popover.d.ts +29 -36
  356. package/dist/types/components/sd-radio/sd-radio.d.ts +3 -1
  357. package/dist/types/components/sd-radio-button/sd-radio-button.d.ts +2 -2
  358. package/dist/types/components/sd-radio-group/sd-radio-group.d.ts +2 -2
  359. package/dist/types/components/sd-scroll-area/sd-scroll-area.config.d.ts +5 -0
  360. package/dist/types/components/sd-scroll-area/sd-scroll-area.d.ts +14 -0
  361. package/dist/types/components/sd-stepper/sd-stepper.config.d.ts +43 -0
  362. package/dist/types/components/sd-stepper/sd-stepper.d.ts +18 -0
  363. package/dist/types/components/sd-switch/sd-switch.d.ts +8 -1
  364. package/dist/types/components/sd-tag/sd-tag.d.ts +2 -2
  365. package/dist/types/components/sd-time-picker/sd-time-picker-selector/sd-time-picker-selector.d.ts +35 -0
  366. package/dist/types/components/sd-time-picker/sd-time-picker-trigger/sd-time-picker-trigger.d.ts +21 -0
  367. package/dist/types/components/sd-time-picker/sd-time-picker.config.d.ts +71 -0
  368. package/dist/types/components/sd-time-picker/sd-time-picker.d.ts +84 -0
  369. package/dist/types/components/sd-time-range-picker/sd-time-range-picker-selector/sd-time-range-picker-selector.d.ts +40 -0
  370. package/dist/types/components/sd-time-range-picker/sd-time-range-picker.config.d.ts +9 -0
  371. package/dist/types/components/sd-time-range-picker/sd-time-range-picker.d.ts +88 -0
  372. package/dist/types/components/sd-tooltip/sd-tooltip.d.ts +7 -22
  373. package/dist/types/components.d.ts +2630 -1611
  374. package/hydrate/index.js +2163 -436
  375. package/hydrate/index.mjs +2163 -436
  376. package/package.json +1 -1
  377. package/dist/cjs/sd-date-picker.config-Chrd8c4v.js +0 -41
  378. package/dist/cjs/useDatePicker-CgpIfwLA.js +0 -103
  379. package/dist/components/p-BFVfSW9t.js +0 -1
  380. package/dist/components/p-BKu0I6Io.js +0 -1
  381. package/dist/components/p-B_Zwr4Et.js +0 -1
  382. package/dist/components/p-CBoDoYDO.js +0 -1
  383. package/dist/components/p-CYMMLsGt.js +0 -1
  384. package/dist/components/p-C_SG4M4z.js +0 -1
  385. package/dist/components/p-CgSXYw_0.js +0 -1
  386. package/dist/components/p-CmRF12Fy.js +0 -1
  387. package/dist/components/p-CnRfET5y.js +0 -1
  388. package/dist/components/p-Cvsrc0be.js +0 -1
  389. package/dist/components/p-DJ8z7_EG.js +0 -1
  390. package/dist/components/p-DJmxpVkK.js +0 -1
  391. package/dist/components/p-DN7MAx-q.js +0 -1
  392. package/dist/components/p-DS6NVBvu.js +0 -1
  393. package/dist/components/p-D_56BjcD.js +0 -1
  394. package/dist/components/p-Uh9emYrV.js +0 -1
  395. package/dist/components/p-f0aBxUBG.js +0 -1
  396. package/dist/design-system/p-0e014b76.entry.js +0 -1
  397. package/dist/design-system/p-1b5fcf7b.entry.js +0 -1
  398. package/dist/design-system/p-2a4d2ee0.entry.js +0 -1
  399. package/dist/design-system/p-2d6a7d7b.entry.js +0 -1
  400. package/dist/design-system/p-4b474538.entry.js +0 -1
  401. package/dist/design-system/p-BOxGhKKP.js +0 -1
  402. package/dist/design-system/p-BhcvMs8c.js +0 -1
  403. package/dist/design-system/p-Dz490Ukt.js +0 -2
  404. package/dist/design-system/p-a631cd78.entry.js +0 -1
  405. package/dist/design-system/p-cb6ab65c.entry.js +0 -1
  406. package/dist/design-system/p-d51f4170.entry.js +0 -1
  407. package/dist/design-system/p-e7740a5f.entry.js +0 -1
  408. package/dist/design-system/p-e85bf462.entry.js +0 -1
  409. package/dist/design-system/p-ea008087.entry.js +0 -1
  410. package/dist/design-system/p-f962e5d2.entry.js +0 -1
  411. package/dist/esm/sd-date-picker.config-krRuSUsA.js +0 -38
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, a as getElement, h } from './index-Dz490Ukt.js';
2
- import { s as systemTokens } from './system-Bth2l1cy.js';
1
+ import { r as registerInstance, a as getElement, h } from './index-CdvQqvIe.js';
2
+ import { s as systemTokens } from './system-rayWyWtG.js';
3
3
  import { s as sanitizeInlineHtml } from './sanitize-inline-html-BE4tnQ2Z.js';
4
4
 
5
5
  const guide = {
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Dz490Ukt.js';
2
- import { s as systemTokens } from './system-Bth2l1cy.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-CdvQqvIe.js';
2
+ import { s as systemTokens } from './system-rayWyWtG.js';
3
3
 
4
4
  const table = {
5
5
  header: {
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, h, H as Host } from './index-Dz490Ukt.js';
1
+ import { r as registerInstance, h, H as Host } from './index-CdvQqvIe.js';
2
2
  import { p as progressTokens } from './component.progress-BG5nGnBi.js';
3
- import { s as systemTokens } from './system-Bth2l1cy.js';
3
+ import { s as systemTokens } from './system-rayWyWtG.js';
4
4
 
5
5
  const LINEAR_PROGRESS_COLORS = {
6
6
  track: progressTokens.progress.color.track,
@@ -50,7 +50,7 @@ const SdLinearProgress = class {
50
50
  clipPath: `inset(0 ${100 - this.clampedValue}% 0 0)`,
51
51
  };
52
52
  const valueText = `${Math.round(this.clampedValue)}%`;
53
- return (h(Host, { key: 'fb7aacfafc15a5570717f4ba13cd7d6a8193375a', style: hostStyle }, h("div", { key: '7a054e0cac8fcc757c15871ff4d2305a8d190fb9', class: "sd-linear-progress__track" }, h("div", { key: '35b45b58b899e4c7201bf39783d3d4c6be42ede5', class: "sd-linear-progress__fill", style: fillStyle }), !this.indeterminate && (h("span", { key: 'a9b44e03fe2446fe8dbfd9bbd6801d6b9bebfc10', class: "sd-linear-progress__value sd-linear-progress__value--on-track" }, valueText)), !this.indeterminate && (h("span", { key: '363bacb116ca51417892f9f49db58360a97899c4', class: "sd-linear-progress__value sd-linear-progress__value--on-fill", style: valueOnFillStyle }, valueText))), this.label && h("span", { key: 'c8b9c15d2eb85ca1ac46ba8983ae399661012f31', class: "sd-linear-progress__label" }, this.label)));
53
+ return (h(Host, { key: 'bb8b4b933b609a42d1c342b7b480d32a48527321', style: hostStyle }, h("div", { key: 'd127baf4c4cf49d5c6e04ada72636c9d3fd81733', class: "sd-linear-progress__track" }, h("div", { key: '6251da38b070cf9f064b22ed1ecb694da41f63ec', class: "sd-linear-progress__fill", style: fillStyle }), !this.indeterminate && (h("span", { key: '7b15d0383e4cc391a22e4fc7e2a85bc6cd076f80', class: "sd-linear-progress__value sd-linear-progress__value--on-track" }, valueText)), !this.indeterminate && (h("span", { key: '8755f23a83aede79a141a14b73337eacca0fc10d', class: "sd-linear-progress__value sd-linear-progress__value--on-fill", style: valueOnFillStyle }, valueText))), this.label && h("span", { key: 'c874dd1ca0cb86c90a84c318790639c0f4283255', class: "sd-linear-progress__label" }, this.label)));
54
54
  }
55
55
  };
56
56
  SdLinearProgress.style = sdLinearProgressCss();
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h } from './index-Dz490Ukt.js';
1
+ import { r as registerInstance, h } from './index-CdvQqvIe.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
 
@@ -38,10 +38,10 @@ const SdLoadingContainer = class {
38
38
  this.prevBodyOverflow = null;
39
39
  }
40
40
  render() {
41
- return (h("div", { key: '89949c219d7ace3858c7539f3db4843a20a2c67e', class: {
41
+ return (h("div", { key: 'c7821d4c50651217e48f424cbdfb9a32006afda4', class: {
42
42
  'sd-loading-container': true,
43
43
  'sd-loading-container--visible': this.visible,
44
- }, "aria-hidden": this.visible ? 'false' : 'true' }, h("div", { key: '0c538680987653059a8baae6e6f6d2b7dabeda69', class: "sd-loading-container__backdrop" }), h("div", { key: '8b5b01c51e97d9ebdd63be32aff8f228449c1e47', class: "sd-loading-container__content" }, h("sd-circle-progress", { key: 'ccf47434cf4c7b3e948cc10741e63fe362bd9316', indeterminate: true, type: "inverse" }), this.message && h("p", { key: 'db63acff8b44e5725e9c8e29fed7d9957f18aa9d', class: "sd-loading-container__message" }, this.message))));
44
+ }, "aria-hidden": this.visible ? 'false' : 'true' }, h("div", { key: 'f7674699f3dd15edd74fc3224203b59ad2a96735', class: "sd-loading-container__backdrop" }), h("div", { key: 'cd361e1a1f470109298459cc2872be104e382015', class: "sd-loading-container__content" }, h("sd-circle-progress", { key: 'c856a1e9ab203040dd8bf0d01dbdf151718aaa3e', indeterminate: true, type: "inverse" }), this.message && h("p", { key: '8af15dba086fb024b652db5f776d384f00fd9cf7', class: "sd-loading-container__message" }, this.message))));
45
45
  }
46
46
  };
47
47
  SdLoadingContainer.style = sdLoadingContainerCss();
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, a as getElement, h } from './index-Dz490Ukt.js';
1
+ import { r as registerInstance, a as getElement, h } from './index-CdvQqvIe.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)}}`;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, F as Fragment } from './index-Dz490Ukt.js';
1
+ import { r as registerInstance, c as createEvent, h, F as Fragment } from './index-CdvQqvIe.js';
2
2
 
3
3
  const pagination = {
4
4
  height: "24",
@@ -157,13 +157,13 @@ const SdPagination = class {
157
157
  '--sd-pagination-bg-selected': PAGINATION_COLORS.bgSelected,
158
158
  '--sd-pagination-item-width': `${this.buttonWidth}px`,
159
159
  };
160
- return (h("div", { key: '78ef11e415c8d086e0a5f582fa5b4568ed3e49a4', class: {
160
+ return (h("div", { key: '0b5a2e9aec83e6f6a8de3426e57b3f9a53623652', class: {
161
161
  'sd-pagination': true,
162
162
  'sd-pagination--simple': this.simple,
163
- }, style: cssVars }, h("div", { key: '360cdb85715508d2f8155851b11928031015909c', 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: {
163
+ }, style: cssVars }, h("div", { key: 'aa53d0366ae4678950ecd3917fd0d7011dd9608d', 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: {
164
164
  'sd-pagination__item': true,
165
165
  'sd-pagination__item--selected': this.currentPage === n,
166
- }, onClick: () => this.handlePageChange(n) }, n))))), h("div", { key: '3726aaab29e0347cf7ae5e2aebad268e33eb33c7', class: "sd-pagination__group sd-pagination__group--next" }, this.renderNextButtons())));
166
+ }, onClick: () => this.handlePageChange(n) }, n))))), h("div", { key: '1aa72933c849af4fc886cc4e5f8962710c6c40bf', class: "sd-pagination__group sd-pagination__group--next" }, this.renderNextButtons())));
167
167
  }
168
168
  };
169
169
  SdPagination.style = sdPaginationCss();
@@ -1,59 +1,137 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h, F as Fragment } from './index-Dz490Ukt.js';
2
- import { T as TooltipArrow } from './tooltipArrow-CEHVt90h.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h, F as Fragment } from './index-CdvQqvIe.js';
2
+ import { T as TooltipArrow } from './tooltipArrow-BsQ__AbZ.js';
3
3
 
4
4
  const popover = {
5
5
  "default": {
6
- bg: "#07284A"}};
6
+ bg: "#07284A",
7
+ title: "#FFFFFF",
8
+ description: "#FFFFFF",
9
+ subAction: "#D8D8D8"
10
+ },
11
+ title: {
12
+ leadingIcon: "16",
13
+ gap: "8"
14
+ },
15
+ danger: {
16
+ bg: "#FCEFEF",
17
+ title: "#FB4444"
18
+ },
19
+ warning: {
20
+ bg: "#FEF1EA",
21
+ title: "#FF6B00"
22
+ },
23
+ accent: {
24
+ bg: "#E6F1FF",
25
+ title: "#0075FF"
26
+ },
27
+ light: {
28
+ description: "#555555",
29
+ subAction: "#888888"
30
+ }
31
+ };
7
32
  var popoverTokens = {
8
33
  popover: popover
9
34
  };
10
35
 
36
+ const t = popoverTokens.popover;
37
+ /** 제목-아이콘 간격 */
38
+ const POPOVER_TITLE_GAP = t.title.gap;
39
+ /** 제목 좌측 아이콘 크기 */
40
+ const POPOVER_TITLE_ICON_SIZE = t.title.leadingIcon;
41
+ /**
42
+ * popoverType별 색상·버튼 매핑.
43
+ * - default·accent: 하단 버튼 primary(solid) / danger: danger outline / warning: neutral outline
44
+ * - default: 다크 배경 + 흰색 텍스트 / danger·warning·accent: 라이트 배경 + 타입 색상 제목 + light 계열 본문·링크 색상
45
+ */
46
+ const POPOVER_TYPE_CONFIG = {
47
+ default: {
48
+ bg: t.default.bg,
49
+ title: t.default.title,
50
+ description: t.default.description,
51
+ subAction: t.default.subAction,
52
+ buttonName: 'primary_xs',
53
+ },
54
+ danger: {
55
+ bg: t.danger.bg,
56
+ title: t.danger.title,
57
+ description: t.light.description,
58
+ subAction: t.light.subAction,
59
+ buttonName: 'danger_outline_xs',
60
+ },
61
+ warning: {
62
+ bg: t.warning.bg,
63
+ title: t.warning.title,
64
+ description: t.light.description,
65
+ subAction: t.light.subAction,
66
+ buttonName: 'neutral_outline_xs',
67
+ },
68
+ accent: {
69
+ bg: t.accent.bg,
70
+ title: t.accent.title,
71
+ description: t.light.description,
72
+ subAction: t.light.subAction,
73
+ buttonName: 'primary_xs',
74
+ },
75
+ };
76
+
11
77
  const sdPopoverCss = () => `sd-popover{position:relative;cursor:pointer;display:inline-flex}`;
12
78
 
13
79
  const SdPopover = class {
14
80
  constructor(hostRef) {
15
81
  registerInstance(this, hostRef);
16
82
  this.showChange = createEvent(this, "sdShowChange", 7);
83
+ this.buttonClick = createEvent(this, "sdButtonClick", 7);
84
+ this.leftLinkClick = createEvent(this, "sdLeftLinkClick", 7);
17
85
  }
18
86
  get el() { return getElement(this); }
19
- /** 팝오버 표시 여부 */
20
- show = false;
87
+ /** 표시 여부 (제어). 미지정 시 defaultOpen 기반 비제어로 동작 */
88
+ open;
89
+ /** 기본 표시 여부 (비제어) */
90
+ defaultOpen = false;
21
91
  /** 팝오버를 표시할 방향 */
22
92
  placement = 'bottom';
23
- /** 아이콘 트리거 색상 */
24
- color = '#01BB4B';
25
- /** 아이콘 트리거 아이콘명 */
93
+ /** 색상 타입 (default=다크 배경 / danger·warning·accent=라이트 배경) */
94
+ type = 'default';
95
+ /** 메뉴 제목 (필수) */
96
+ menuTitle;
97
+ /** 제목 좌측 아이콘 (선택) */
98
+ titleIcon;
99
+ /** 기본(아이콘) 트리거 아이콘명. slot="trigger" 가 있으면 무시 */
26
100
  icon = 'helpOutline';
27
- /** 아이콘 트리거 크기 */
101
+ /** 기본(아이콘) 트리거 크기 */
28
102
  iconSize = 12;
29
- /** 버튼 트리거 레이블 (있으면 아이콘 대신 버튼 렌더링) */
30
- label = '';
31
- /** 버튼 트리거 프리셋 */
32
- name = 'primary_sm';
33
- /** 버튼 트리거 우측 아이콘 */
34
- rightIcon;
103
+ /** 기본(아이콘) 트리거 색상 */
104
+ color = '#01BB4B';
105
+ /** 하단 좌측 링크 레이블 (선택) */
106
+ leftLinkLabel;
107
+ /** 하단 우측 버튼 레이블 (필수). 색상/스타일은 type 별로 고정 */
108
+ buttonLabel;
35
109
  /** 스크린리더용 접근성 레이블 */
36
110
  ariaLabel = '';
37
- /** 비활성 상태 여부 */
38
- disabled = false;
39
- /** 버튼 type 속성 */
40
- type = 'button';
41
- /** 팝오버 메뉴 제목 */
42
- menuTitle;
43
- /** 팝오버 하단 좌측 링크 옵션 */
44
- leftLink;
45
- /** 팝오버 하단 버튼 옵션 */
46
- button;
47
111
  /** 팝오버 메뉴에 추가할 클래스 */
48
- menuClass = '';
112
+ menuClassName = '';
113
+ internalOpen = false;
49
114
  slotContentHTML = '';
115
+ triggerHTML = '';
50
116
  /** 팝오버 표시 상태가 바뀔 때 발생합니다. */
51
117
  showChange;
52
- buttonEl;
53
- setShow = (next) => {
54
- if (this.show === next)
118
+ /** 하단 우측 버튼 클릭 시 발생합니다. */
119
+ buttonClick;
120
+ /** 하단 좌측 링크 클릭 시 발생합니다. */
121
+ leftLinkClick;
122
+ triggerEl;
123
+ get isOpen() {
124
+ return this.open !== undefined ? this.open : this.internalOpen;
125
+ }
126
+ setOpen = (next) => {
127
+ if (this.isOpen === next)
55
128
  return;
56
- this.show = next;
129
+ if (this.open === undefined) {
130
+ this.internalOpen = next;
131
+ }
132
+ else {
133
+ this.open = next;
134
+ }
57
135
  this.showChange.emit(next);
58
136
  };
59
137
  get popoverOffset() {
@@ -68,31 +146,43 @@ const SdPopover = class {
68
146
  return [4, 0];
69
147
  }
70
148
  }
71
- handleClose = () => this.setShow(false);
149
+ handleClose = () => this.setOpen(false);
72
150
  componentWillLoad() {
151
+ this.internalOpen = this.defaultOpen;
152
+ // slot="trigger" 커스텀 트리거를 분리해 두고, 나머지 라이트 DOM은 메뉴 본문으로 캡처한다.
153
+ const triggerSlot = this.el.querySelector('[slot="trigger"]');
154
+ if (triggerSlot) {
155
+ this.triggerHTML = triggerSlot.outerHTML;
156
+ triggerSlot.remove();
157
+ }
73
158
  this.slotContentHTML = this.el.innerHTML;
74
159
  this.el.innerHTML = '';
75
160
  }
76
161
  render() {
77
162
  const placement = this.placement ?? 'bottom';
78
- const color = this.color ?? '#01BB4B';
79
- const icon = this.icon ?? 'helpOutline';
80
- const iconSize = this.iconSize ?? 12;
81
- const menuClass = this.menuClass ?? '';
82
- const leftLink = this.leftLink;
83
- const button = this.button;
84
- const hasFooter = !!leftLink || !!button;
85
- return (h(Fragment, { key: '163802d6f0954b87902bbf957831f311829e63dc' }, 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: '1bd73048fd65916a400840c572d988c445dd662b', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: placement, offset: this.popoverOffset }, h("div", { key: 'f3791b078c7970174d9394ffcbb19beb450f12c5', class: {
163
+ const typeConfig = POPOVER_TYPE_CONFIG[this.type ?? 'default'] ?? POPOVER_TYPE_CONFIG.default;
164
+ const menuClassName = this.menuClassName ?? '';
165
+ const hasLeftLink = this.leftLinkLabel !== undefined && this.leftLinkLabel !== '';
166
+ return (h(Fragment, { key: '16cc231907c02de80749163ce4b639303e969f4a' }, this.triggerHTML !== '' ? (
167
+ // 사용자가 넘긴 slot="trigger" 콘텐츠를 감싸 클릭을 전달하는 래퍼(키보드 상호작용은 내부 트리거가 담당)
168
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events
169
+ h("span", { ref: el => (this.triggerEl = el), class: "sd-popover", "aria-label": this.ariaLabel || undefined, innerHTML: this.triggerHTML, onClick: () => this.setOpen(!this.isOpen) })) : (h("sd-icon", { ref: el => (this.triggerEl = el), name: this.icon ?? 'helpOutline', size: this.iconSize ?? 12, color: this.color ?? '#01BB4B', class: "sd-popover", "aria-label": this.ariaLabel || undefined, onClick: () => this.setOpen(!this.isOpen) })), this.isOpen && (h("sd-floating-portal", { key: 'c59ec7fb1b7ea137b95542f7e8f775c6bd837975', parentRef: this.triggerEl, onSdClose: this.handleClose, placement: placement, offset: this.popoverOffset }, h("div", { key: '97e68e0246997a0a73beb3e984331daa57161e8e', class: {
86
170
  'sd-floating-menu': true,
87
171
  'sd-floating-menu--popover': true,
88
172
  [`sd-floating-menu--${placement}`]: true,
89
- [menuClass]: menuClass !== '',
173
+ [menuClassName]: menuClassName !== '',
90
174
  }, style: {
91
- '--sd-floating-bg': popoverTokens.popover.default.bg,
92
- } }, h("i", { key: 'f9ab66a933669a057a1da5188cb82ca9e5f17ed6', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, h(TooltipArrow, { key: '6ea9ca3bacd2c84c468e5f00fa33e93e61a6bf9d' })), h("div", { key: '91d094cd45973bcc5ea6e6016510006f41956546', class: "sd-floating-menu__content" }, this.menuTitle && h("div", { key: 'ebe9a1e130792d7e60ca9abef9020dff6c0bd4c4', class: "sd-floating-menu__title" }, this.menuTitle), this.slotContentHTML && (h("div", { key: 'b898402e77f125099b29f6bd8eb5384a70aa671a', class: "sd-floating-menu__messages", innerHTML: this.slotContentHTML })), hasFooter && (h("div", { key: 'e797202b27ff538d4148f3b6782b33f58fc6bc2f', class: {
175
+ '--sd-floating-bg': typeConfig.bg,
176
+ '--sd-floating-content': typeConfig.description,
177
+ } }, h("i", { key: 'b96d7dc623a1fab61ee84f612c68c9f7bbac7405', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, h(TooltipArrow, { key: '92c6e5ef1258d6e99f744c75cef7ee3dd26d0367' })), h("div", { key: '9c9f3cfcc8a3d60e5282a5f6f2653e2cce17cf56', class: "sd-floating-menu__content" }, this.menuTitle && (h("div", { key: '044ae6b271fbf0cede0b4983e074d56882d5f50f', class: "sd-floating-menu__title", style: {
178
+ color: typeConfig.title,
179
+ display: 'flex',
180
+ alignItems: 'center',
181
+ gap: `${POPOVER_TITLE_GAP}px`,
182
+ } }, this.titleIcon && (h("sd-icon", { key: '360cf55b73ee395191836ee13a2d492460059f4a', name: this.titleIcon, size: Number(POPOVER_TITLE_ICON_SIZE), color: typeConfig.title })), h("span", { key: '5cc44d0806971433b42c41e48a48e7ea8cc2c975' }, this.menuTitle))), this.slotContentHTML && (h("div", { key: 'a5343a56938c0d6d5d5fd07fb83b7ccee4e81cf0', class: "sd-floating-menu__messages", innerHTML: this.slotContentHTML })), h("div", { key: '1f6a0f46b2b6b5f08a0d453cae2a868f93015ac7', class: {
93
183
  'sd-floating-menu__buttons': true,
94
- 'sd-floating-menu__buttons--with-link': !!leftLink,
95
- } }, leftLink && (h("sd-text-link", { key: 'fdeacc2b97c997d0c7385bab5260e060a70292e6', 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: '4a56e7e714517edcbea075e7d4521f0a54388e9f', 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: 'ca713f6a07637b014c58923db2ff7af1f3ae98a8', class: "sd-floating-menu__close-button", icon: "close", ariaLabel: "close", size: "xs", onClick: this.handleClose }))))));
184
+ 'sd-floating-menu__buttons--with-link': hasLeftLink,
185
+ } }, hasLeftLink && (h("sd-text-link", { key: '5ec7502837f7417266810769885e2318c80ad986', class: "sd-floating-menu__left-link", style: { '--sd-text-link-color': typeConfig.subAction }, label: this.leftLinkLabel, onSdClick: () => this.leftLinkClick.emit() })), h("sd-button", { key: '3d9df22cd0b65add5cd18b3750888248dc235408', name: typeConfig.buttonName, label: this.buttonLabel, ariaLabel: this.buttonLabel || 'confirm', onSdClick: () => this.buttonClick.emit() }))), h("sd-ghost-button", { key: '7e1ca491a2539b52ded454aca8afd26a92dc2ef6', class: "sd-floating-menu__close-button", icon: "close", ariaLabel: "close", size: "xs", onClick: this.handleClose }))))));
96
186
  }
97
187
  };
98
188
  SdPopover.style = sdPopoverCss();
@@ -1,6 +1,6 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Dz490Ukt.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-CdvQqvIe.js';
2
2
  import { o as overlayTokens } from './component.overlay-De0OtxK5.js';
3
- import { s as systemTokens } from './system-Bth2l1cy.js';
3
+ import { s as systemTokens } from './system-rayWyWtG.js';
4
4
 
5
5
  const popup$1 = {
6
6
  header: {
@@ -56,7 +56,7 @@ const POPUP_FOOTER = {
56
56
  shadow: `${shadowSpreadMd.x}px ${shadowSpreadMd.y}px ${shadowSpreadMd.blur}px ${shadowSpreadMd.spread}px ${shadowSpreadMd.color}`,
57
57
  };
58
58
 
59
- const sdPopupCss = () => `sd-popup{display:block;width:100%;height:100%}sd-popup .sd-popup{display:flex;flex-direction:column;width:100%;height:100%;background:var(--sd-popup-bg);overflow:hidden;box-sizing:border-box}sd-popup .sd-popup__header{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:100%;height:var(--sd-popup-header-height);padding:var(--sd-popup-header-padding-y) var(--sd-popup-header-padding-x);background:var(--sd-popup-header-bg);box-sizing:border-box}sd-popup .sd-popup__title{margin:0;color:var(--sd-popup-header-title-color);font-family:var(--sd-popup-header-font-family);font-weight:var(--sd-popup-header-font-weight);font-size:var(--sd-popup-header-font-size);line-height:var(--sd-popup-header-line-height);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}sd-popup .sd-popup__body{flex:1 1 auto;min-height:0;overflow:auto}sd-popup .sd-popup__footer{display:flex;align-items:center;flex-shrink:0;width:100%;height:var(--sd-popup-footer-height);padding:var(--sd-popup-footer-padding-y) var(--sd-popup-footer-padding-x);gap:var(--sd-popup-footer-gap);background:var(--sd-popup-footer-bg);box-shadow:var(--sd-popup-footer-shadow);box-sizing:border-box;position:relative;z-index:1}sd-popup .sd-popup__footer-slot{display:flex;align-items:center;height:var(--sd-popup-footer-slot-height)}sd-popup .sd-popup__footer-slot--left{justify-content:flex-start;flex:1 1 auto;min-width:0}sd-popup .sd-popup__footer-slot:empty{display:none}sd-popup .sd-popup__submit{flex-shrink:0;margin-left:auto}`;
59
+ const sdPopupCss = () => `sd-popup{display:block;width:100%;height:100%}sd-popup .sd-popup{display:flex;flex-direction:column;width:100%;height:100%;background:var(--sd-popup-bg);overflow:hidden;box-sizing:border-box}sd-popup .sd-popup__header{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:100%;height:var(--sd-popup-header-height);padding:var(--sd-popup-header-padding-y) var(--sd-popup-header-padding-x);background:var(--sd-popup-header-bg);box-sizing:border-box}sd-popup .sd-popup__title{margin:0;color:var(--sd-popup-header-title-color);font-family:var(--sd-popup-header-font-family);font-weight:var(--sd-popup-header-font-weight);font-size:var(--sd-popup-header-font-size);line-height:var(--sd-popup-header-line-height);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}sd-popup .sd-popup__body{flex:1 1 auto;min-height:0;overflow:auto}sd-popup .sd-popup__body::-webkit-scrollbar{width:12px;height:12px;background:transparent}sd-popup .sd-popup__body::-webkit-scrollbar-track{background:transparent}sd-popup .sd-popup__body::-webkit-scrollbar-thumb{background-color:#CCCCCC;border:2px solid transparent;border-radius:8px;background-clip:padding-box}@supports not selector(::-webkit-scrollbar){sd-popup .sd-popup__body{scrollbar-width:thin;scrollbar-color:#CCCCCC transparent}}sd-popup .sd-popup__body::-webkit-scrollbar,sd-popup .sd-popup__body::-webkit-scrollbar-track{background:#F6F6F6}@supports not selector(::-webkit-scrollbar){sd-popup .sd-popup__body{scrollbar-color:#CCCCCC #F6F6F6}}sd-popup .sd-popup__body::-webkit-scrollbar-track:vertical{border-left:1px solid #E1E1E1}sd-popup .sd-popup__body::-webkit-scrollbar-track:horizontal{border-top:1px solid #E1E1E1}sd-popup .sd-popup__body::-webkit-scrollbar-thumb:vertical{border-left-width:3px}sd-popup .sd-popup__body::-webkit-scrollbar-thumb:horizontal{border-top-width:3px}sd-popup .sd-popup__footer{display:flex;align-items:center;flex-shrink:0;width:100%;height:var(--sd-popup-footer-height);padding:var(--sd-popup-footer-padding-y) var(--sd-popup-footer-padding-x);gap:var(--sd-popup-footer-gap);background:var(--sd-popup-footer-bg);box-shadow:var(--sd-popup-footer-shadow);box-sizing:border-box;position:relative;z-index:1}sd-popup .sd-popup__footer-slot{display:flex;align-items:center;height:var(--sd-popup-footer-slot-height)}sd-popup .sd-popup__footer-slot--left{justify-content:flex-start;flex:1 1 auto;min-width:0}sd-popup .sd-popup__footer-slot:empty{display:none}sd-popup .sd-popup__submit{flex-shrink:0;margin-left:auto}`;
60
60
 
61
61
  const DEFAULT_SUBMIT_BUTTON_PROPS = {
62
62
  name: 'primary_md',
@@ -102,7 +102,7 @@ const SdPopup = class {
102
102
  ...DEFAULT_SUBMIT_BUTTON_PROPS,
103
103
  ...this.submitButtonProps,
104
104
  };
105
- return (h("div", { key: 'd86bb173d6fe8540e8b96f5dff4c8285cbf9ff91', class: `sd-popup sd-popup--${this.type}`, style: cssVars }, h("header", { key: '0f006173fda3be589cdc208f382ed1898c49396a', class: "sd-popup__header" }, h("h2", { key: '62179c692f08b21e6386175b153d4f8c1013ea53', class: "sd-popup__title" }, this.popupTitle)), h("div", { key: 'a1a786d9d71f0a17eb4f3bce3a6b1ae8a1fa3367', class: "sd-popup__body" }, h("slot", { key: '40b772fd34963ef78507dddf81474eb5e1a58174' })), this.useFooter && (h("footer", { key: '40c981163f237b44764dec66205e01203a0d150d', class: "sd-popup__footer" }, h("div", { key: '0c91d37584c0bc5f74b510430a83889aea4abb93', class: "sd-popup__footer-slot sd-popup__footer-slot--left" }, h("slot", { key: '120c41484fee23d160a1fa7b5ab7cd70c1422d12', name: "footer-left" })), h("sd-button", { key: '6dadd08ab99380d0e55730888fbbd2fea88bcfe9', ...submitButtonProps, class: "sd-popup__submit", onSdClick: () => this.submit.emit() })))));
105
+ return (h("div", { key: '1b8dc171a7b0dea5216aa63425ccc72ae80e3a3e', class: `sd-popup sd-popup--${this.type}`, style: cssVars }, h("header", { key: '1ae57ef360ad124a2afac3340258dce481bb7bc7', class: "sd-popup__header" }, h("h2", { key: '3d0cc0df6ba901b4dc9e0917103e57d6279cde31', class: "sd-popup__title" }, this.popupTitle)), h("div", { key: 'a0fee226ac513744243d6f78ddce6125170700da', class: "sd-popup__body" }, h("slot", { key: '55c5f94dff5413810f2c4648c9684e520db7268b' })), this.useFooter && (h("footer", { key: 'f8f0dc3751324ac5976aef55bec974341db036c1', class: "sd-popup__footer" }, h("div", { key: 'ea2f7e63c857d135eeffd7c2a43b171619067161', class: "sd-popup__footer-slot sd-popup__footer-slot--left" }, h("slot", { key: '0d56c0c25e1e10f6900af0f632c7bb339b736032', name: "footer-left" })), h("sd-button", { key: 'd334174cd98be32856a6f3b1b3348ca2ebea3cdd', ...submitButtonProps, class: "sd-popup__submit", onSdClick: () => this.submit.emit() })))));
106
106
  }
107
107
  };
108
108
  SdPopup.style = sdPopupCss();
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Dz490Ukt.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-CdvQqvIe.js';
2
2
 
3
3
  const radioButton = {
4
4
  xs: {
@@ -102,7 +102,7 @@ const SdRadioButton = class {
102
102
  registerInstance(this, hostRef);
103
103
  this.change = createEvent(this, "sdUpdate", 7);
104
104
  }
105
- /** 현재 선택된 값 */
105
+ /** 현재 선택된 값 (미지정 시 선택 없음) */
106
106
  value;
107
107
  /** 라디오 버튼 옵션 목록 */
108
108
  options = [];
@@ -182,7 +182,7 @@ const SdRadioButton = class {
182
182
  '--sd-radio-button-content-select': RADIO_BUTTON_COLORS.content.select,
183
183
  '--sd-radio-button-content-disabled': RADIO_BUTTON_COLORS.content.disabled,
184
184
  };
185
- return (h("div", { key: '17355ebde09f652f5b94b4f70f09f68ef44cd29d', class: this.getGroupClasses(), style: cssVars, role: "radiogroup", "aria-disabled": this.disabled.toString() }, this.options.map(option => {
185
+ return (h("div", { key: '7621cf9885bb69bc18083dc076b4e6babc86ff62', class: this.getGroupClasses(), style: cssVars, role: "radiogroup", "aria-disabled": this.disabled.toString() }, this.options.map(option => {
186
186
  const isSelected = this.isOptionSelected(option);
187
187
  const isDisabled = this.isOptionDisabled(option);
188
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-Dz490Ukt.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-CdvQqvIe.js';
2
2
 
3
3
  const radio = {
4
4
  size: "16",
@@ -89,6 +89,8 @@ const SdRadio = class {
89
89
  disabled = false;
90
90
  /** 표시할 라벨 텍스트 */
91
91
  label;
92
+ /** native radio 그룹핑을 위한 name 속성 (미지정 시 val을 name으로 사용) */
93
+ name;
92
94
  /** 선택 값이 변경될 때 발생합니다. */
93
95
  update;
94
96
  valueChanged(newValue) {
@@ -132,7 +134,7 @@ const SdRadio = class {
132
134
  '--sd-radio-label-color': RADIO_COLORS.label.default,
133
135
  '--sd-radio-label-disabled-color': RADIO_COLORS.label.disabled,
134
136
  };
135
- return (h("label", { key: 'cc7ff62ac992791ef81db9212bb5986989f6b4d6', class: this.radioClasses, style: cssVars, "aria-checked": this.isSelected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, h("input", { key: '20bfeaf5bc322335f5300955ebf653213d662fa6', 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: '61d8bdfdb5f8309b8832b89ea2979db5b80968c8', class: "sd-radio__circle" }), this.label && (h("span", { key: 'cc2a5402e4745aaae897c8f37d5fc287a2ba9b29', class: "sd-radio__label", "data-label": this.label }, this.label))));
137
+ return (h("label", { key: 'c4179fa98fcfdb885e7760a99acad56106cf2445', class: this.radioClasses, style: cssVars, "aria-checked": this.isSelected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, h("input", { key: '0fe92e2cf0a539ebe2562e907f41c0055eb5d54e', type: "radio", name: this.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: 'abf2338b324ee693edf3c98564f2e8f63028e584', class: "sd-radio__circle" }), this.label && (h("span", { key: '738c30cf39dd497bc2b710d5384be9634bbf74bf', class: "sd-radio__label", "data-label": this.label }, this.label))));
136
138
  }
137
139
  static get watchers() { return {
138
140
  "value": [{
@@ -0,0 +1,42 @@
1
+ import { r as registerInstance, h, H as Host } from './index-CdvQqvIe.js';
2
+ import { s as systemTokens } from './system-rayWyWtG.js';
3
+
4
+ const SCROLL_AREA_COLORS = {
5
+ border: systemTokens.color.border.default,
6
+ };
7
+
8
+ const sdScrollAreaCss = () => `sd-scroll-area{display:block;min-width:0;min-height:0}.sd-scroll-area__viewport{width:100%;height:100%}.sd-scroll-area__viewport::-webkit-scrollbar{width:12px;height:12px;background:transparent}.sd-scroll-area__viewport::-webkit-scrollbar-track{background:transparent}.sd-scroll-area__viewport::-webkit-scrollbar-thumb{background-color:#CCCCCC;border:2px solid transparent;border-radius:8px;background-clip:padding-box}@supports not selector(::-webkit-scrollbar){.sd-scroll-area__viewport{scrollbar-width:thin;scrollbar-color:#CCCCCC transparent}}.sd-scroll-area__viewport--bg::-webkit-scrollbar,.sd-scroll-area__viewport--bg::-webkit-scrollbar-track{background:#F6F6F6}@supports not selector(::-webkit-scrollbar){.sd-scroll-area__viewport--bg{scrollbar-color:#CCCCCC #F6F6F6}}.sd-scroll-area__viewport--bordered::-webkit-scrollbar-track:vertical{border-left:1px solid var(--sd-scroll-area-border-color)}.sd-scroll-area__viewport--bordered::-webkit-scrollbar-track:horizontal{border-top:1px solid var(--sd-scroll-area-border-color)}.sd-scroll-area__viewport--bordered::-webkit-scrollbar-thumb:vertical{border-left-width:3px}.sd-scroll-area__viewport--bordered::-webkit-scrollbar-thumb:horizontal{border-top-width:3px}.sd-scroll-area__viewport--vertical{overflow-x:hidden;overflow-y:auto}.sd-scroll-area__viewport--horizontal{overflow-x:auto;overflow-y:hidden}.sd-scroll-area__viewport--both{overflow:auto}`;
9
+
10
+ const SdScrollArea = class {
11
+ constructor(hostRef) {
12
+ registerInstance(this, hostRef);
13
+ }
14
+ /** 스크롤 방향. vertical=세로만, horizontal=가로만, both=양방향 */
15
+ axis = 'both';
16
+ /** true면 스크롤바 트랙 배경을 채운다. 콘텐츠 영역 배경은 바뀌지 않는다. */
17
+ background = false;
18
+ /** true면 스크롤바와 콘텐츠 사이에 1px 구분선을 그린다. 컨테이너 테두리가 아니다. */
19
+ bordered = false;
20
+ /** viewport 최대 높이 (예: '400px'). 비우면 호스트 크기를 따른다. */
21
+ maxHeight = '';
22
+ /** viewport 최대 너비 (예: '480px'). 비우면 호스트 크기를 따른다. */
23
+ maxWidth = '';
24
+ render() {
25
+ const viewportStyle = {
26
+ '--sd-scroll-area-border-color': SCROLL_AREA_COLORS.border,
27
+ };
28
+ if (this.maxHeight !== '')
29
+ viewportStyle.maxHeight = this.maxHeight;
30
+ if (this.maxWidth !== '')
31
+ viewportStyle.maxWidth = this.maxWidth;
32
+ return (h(Host, { key: '4b9b22910436388a2017af0bea5d1c55463a5f94' }, h("div", { key: '13d9301c1bd43dad765a6f18bb11482d7ae4788a', class: {
33
+ 'sd-scroll-area__viewport': true,
34
+ [`sd-scroll-area__viewport--${this.axis}`]: true,
35
+ 'sd-scroll-area__viewport--bg': this.background,
36
+ 'sd-scroll-area__viewport--bordered': this.bordered,
37
+ }, style: viewportStyle }, h("slot", { key: '1d28dd8bac0a3b40d8beca9553b061ae21be8342' }))));
38
+ }
39
+ };
40
+ SdScrollArea.style = sdScrollAreaCss();
41
+
42
+ export { SdScrollArea as sd_scroll_area };
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Dz490Ukt.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-CdvQqvIe.js';
2
2
  import { l as listItemTokens } from './component.listItem-4S0_Ykmo.js';
3
3
  import { l as listBoxTokens } from './component.listBox-DlJaYVWf.js';
4
4
  import { s as sanitizeInlineHtml } from './sanitize-inline-html-BE4tnQ2Z.js';
@@ -211,7 +211,7 @@ const SdSelectListItem = class {
211
211
  return (
212
212
  // 키보드 네비게이션은 부모 listbox 의 ArrowUp/Down + Enter 가 담당. 항목 자체는 role=option, tabindex=-1 으로 표시.
213
213
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events
214
- h("div", { key: '86ebbdb437d7799cefb9a9466997df44ea346e44', role: "option", tabindex: -1, "aria-selected": this.isSelected === true ? 'true' : 'false', class: {
214
+ h("div", { key: 'e4f8fc195a7231cd3218b91a26c77f51df14e6dc', role: "option", tabindex: -1, "aria-selected": this.isSelected === true ? 'true' : 'false', class: {
215
215
  'sd-select-list-item': true,
216
216
  'sd-select-list-item--group': isGroup,
217
217
  'sd-select-list-item--depth1-group': isDepth1Group,
@@ -221,7 +221,7 @@ const SdSelectListItem = class {
221
221
  'sd-select-list-item--focused': this.isFocused,
222
222
  'sd-select-list-item--selectable': this.isSelectable && !this.option.disabled,
223
223
  'sd-select-list-item--disabled': !!this.option.disabled,
224
- }, style: cssVars, onClick: this.handleClick }, this.useCheckbox && (h("sd-checkbox", { key: '297067b88bedf8eed648f60050688e23e9dfcbdd', 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: 'e71dbbfcd454a43fe2364aa0205f14805de20653', class: "sd-select-list-item__count" }, "(", this.countInfo.selected, "/", this.countInfo.total, ")"))));
224
+ }, 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, ")"))));
225
225
  }
226
226
  };
227
227
  SdSelectListItem.style = sdSelectListItemCss();
@@ -278,20 +278,20 @@ const SdSelectListItemSearch = class {
278
278
  clearTimeout(this.debounceTimer);
279
279
  }
280
280
  render() {
281
- return (h("div", { key: 'fd13ed863fa624bb672a80594a1397831c55b859', class: {
281
+ return (h("div", { key: '5e1dc595bd89df5364d9a302dc917abb29fa2c7b', class: {
282
282
  'sd-select-list-item-search': true,
283
283
  'sd-select-list-item-search--scrolled': this.isScrolled,
284
- } }, h("div", { key: 'c36783523de2c29b04ce300307770a666daad9df', class: "sd-select-list-item-search__inner" }, h("sd-icon", { key: '6e21aebf25090024c882dda1e9fec46219dce8ee', name: "search", size: 16, color: "grey_70", class: "sd-select-list-item-search__icon" }), h("input", { key: '2ed89f33de74c98cde3caa4e8924ef2e7b3baa0f', ref: el => {
284
+ } }, 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 => {
285
285
  this.inputEl = el;
286
- }, 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: 'c16ed94bbddd24e829548b4ff063a6a3095f955a', type: "button", class: {
286
+ }, 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: {
287
287
  'sd-select-list-item-search__clear': true,
288
288
  'sd-select-list-item-search__clear--hidden': this.searchText === '',
289
- }, onClick: this.handleClear, tabindex: this.searchText !== '' ? 0 : -1, "aria-hidden": this.searchText !== '' ? 'false' : 'true' }, h("sd-icon", { key: 'f2808e3b1b5ae6937bd818e4f29f999d04286b60', name: "close", size: 12, color: "#888888" })))));
289
+ }, 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" })))));
290
290
  }
291
291
  };
292
292
  SdSelectListItemSearch.style = sdSelectListItemSearchCss();
293
293
 
294
- const sdSelectListboxCss = () => `:host{display:block}:host .sd-select-listbox{display:flex;flex-direction:column;width:var(--listbox-trigger-width);max-width:var(--listbox-max-width);max-height:var(--listbox-max-height);border-radius:var(--listbox-radius);background:white;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);overflow:hidden;outline:none}:host .sd-select-listbox__list{flex:1;min-height:0;overflow-y:auto;padding-bottom:0}:host .sd-select-listbox__list::-webkit-scrollbar{opacity:0;width:8px;background:#E5E5E5}:host .sd-select-listbox__list::-webkit-scrollbar:horizontal{height:8px}:host .sd-select-listbox__list::-webkit-scrollbar-thumb{height:80px;background-color:#CCCCCC;border-radius:4px}:host .sd-select-listbox__list::-webkit-scrollbar-track{background-color:#E5E5E5}:host .sd-select-listbox__empty{padding:12px;text-align:center;font-size:12px;line-height:20px;color:#888888}`;
294
+ const sdSelectListboxCss = () => `:host{display:block}:host .sd-select-listbox{display:flex;flex-direction:column;width:var(--listbox-trigger-width);max-width:var(--listbox-max-width);max-height:var(--listbox-max-height);border-radius:var(--listbox-radius);background:white;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);overflow:hidden;outline:none}:host .sd-select-listbox__list{flex:1;min-height:0;overflow-y:auto;padding-bottom:0}:host .sd-select-listbox__list::-webkit-scrollbar{width:12px;height:12px;background:transparent}:host .sd-select-listbox__list::-webkit-scrollbar-track{background:transparent}:host .sd-select-listbox__list::-webkit-scrollbar-thumb{background-color:#CCCCCC;border:2px solid transparent;border-radius:8px;background-clip:padding-box}@supports not selector(::-webkit-scrollbar){:host .sd-select-listbox__list{scrollbar-width:thin;scrollbar-color:#CCCCCC transparent}}:host .sd-select-listbox__list::-webkit-scrollbar,:host .sd-select-listbox__list::-webkit-scrollbar-track{background:#F6F6F6}@supports not selector(::-webkit-scrollbar){:host .sd-select-listbox__list{scrollbar-color:#CCCCCC #F6F6F6}}:host .sd-select-listbox__list::-webkit-scrollbar-track:vertical{border-left:1px solid #E1E1E1}:host .sd-select-listbox__list::-webkit-scrollbar-track:horizontal{border-top:1px solid #E1E1E1}:host .sd-select-listbox__list::-webkit-scrollbar-thumb:vertical{border-left-width:3px}:host .sd-select-listbox__list::-webkit-scrollbar-thumb:horizontal{border-top-width:3px}:host .sd-select-listbox__empty{padding:12px;text-align:center;font-size:12px;line-height:20px;color:#888888}`;
295
295
 
296
296
  const SdSelectListbox = class {
297
297
  constructor(hostRef) {
@@ -658,9 +658,9 @@ const SdSelectListbox = class {
658
658
  '--listbox-max-height': this.maxHeight ?? '260px',
659
659
  '--listbox-radius': `${LIST_BOX_LAYOUT.radius}px`,
660
660
  };
661
- return (h("div", { key: 'cec8e4e12dd806a93375853386a1d7cc3ac6b269', class: "sd-select-listbox", style: cssVars }, this.showSearch && (h("sd-select-list-item-search", { key: '9e07a7e742e956df314796e9babf6c0a7fb21d7f', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), h("div", { key: 'd5ff5620c63b5c53e69b6348f2c9cd6cb73cbe88', class: "sd-select-listbox__list", onScroll: this.handleScroll, ref: el => {
661
+ 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 => {
662
662
  this.listEl = el;
663
- } }, this.showSelectAll && (h("sd-select-list-item", { key: '9b36cdd7466b639c65497da94ee1e3c5129566cb', 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) })))))));
663
+ } }, 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) })))))));
664
664
  }
665
665
  static get watchers() { return {
666
666
  "searchKeyword": [{
@@ -728,7 +728,7 @@ const SdSelectTrigger = class {
728
728
  ? SELECT_COLORS.icon.disabled
729
729
  : SELECT_COLORS.icon.default,
730
730
  };
731
- return (h("div", { key: '2ec5e736c0742a10fdfa9b4b12b0820e99c30f7f', ref: el => {
731
+ return (h("div", { key: 'afda44bd2f8dcf0ab75d75b0178b067f96e61707', ref: el => {
732
732
  this.triggerEl = el;
733
733
  }, role: "button", "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? 'true' : 'false', tabindex: this.disabled ? -1 : 0, class: {
734
734
  'sd-select-trigger': true,
@@ -739,7 +739,7 @@ const SdSelectTrigger = class {
739
739
  e.preventDefault();
740
740
  this.handleClick();
741
741
  }
742
- }, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("div", { key: '6b71e60a76d430bfe14bc5b7c59d82130be27c8a', 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: 'e34eae87f518f1b015e1d59bacf97bec66b6ec6d', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
742
+ }, 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: {
743
743
  'sd-select-trigger__icon': true,
744
744
  'sd-select-trigger__icon--open': this.isOpen,
745
745
  } }))));