@sellmate/design-system 1.0.62 → 1.0.63

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 (509) hide show
  1. package/dist/cjs/{component.modal-DmQUWbve.js → component.modal-BFelrSMx.js} +14 -0
  2. package/dist/cjs/constants-DJRV1upE.js +5 -0
  3. package/dist/cjs/design-system.cjs.js +3 -4
  4. package/dist/cjs/{index-BQt-JC6r.js → index-nsQP24mV.js} +130 -9
  5. package/dist/cjs/index.cjs.js +103 -32
  6. package/dist/cjs/loader.cjs.js +3 -4
  7. package/dist/cjs/sd-action-modal.cjs.entry.js +3 -3
  8. package/dist/cjs/sd-badge.cjs.entry.js +2 -2
  9. package/dist/cjs/sd-barcode-input.cjs.entry.js +3 -3
  10. package/dist/cjs/sd-button-v2_2.cjs.entry.js +9 -8
  11. package/dist/cjs/sd-button_4.cjs.entry.js +56 -18
  12. package/dist/cjs/sd-calendar.cjs.entry.js +1 -1
  13. package/dist/cjs/sd-card.cjs.entry.js +2 -2
  14. package/dist/cjs/sd-checkbox.cjs.entry.js +30 -5
  15. package/dist/cjs/sd-circle-progress.cjs.entry.js +71 -0
  16. package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +186 -0
  17. package/dist/cjs/sd-date-box.cjs.entry.js +1 -1
  18. package/dist/cjs/sd-date-picker-calendar.cjs.entry.js +3 -3
  19. package/dist/cjs/sd-date-picker-trigger.cjs.entry.js +4 -4
  20. package/dist/cjs/sd-date-picker.cjs.entry.js +4 -4
  21. package/dist/cjs/{sd-date-picker.config-DWC_aiD2.js → sd-date-picker.config-D8xSALVj.js} +3 -3
  22. package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +3 -3
  23. package/dist/cjs/sd-date-range-picker.cjs.entry.js +4 -4
  24. package/dist/cjs/sd-dropdown-button.cjs.entry.js +10 -5
  25. package/dist/cjs/sd-file-picker.cjs.entry.js +1 -1
  26. package/dist/cjs/sd-form.cjs.entry.js +1 -1
  27. package/dist/cjs/sd-ghost-button.cjs.entry.js +15 -6
  28. package/dist/cjs/sd-guide.cjs.entry.js +2 -2
  29. package/dist/cjs/sd-input_2.cjs.entry.js +7 -7
  30. package/dist/cjs/sd-loading-container.cjs.entry.js +29 -0
  31. package/dist/cjs/sd-modal-container.cjs.entry.js +45 -2
  32. package/dist/cjs/sd-number-input.cjs.entry.js +5 -10
  33. package/dist/cjs/{sd-select-v2.cjs.entry.js → sd-pagination_2.cjs.entry.js} +90 -4
  34. package/dist/cjs/sd-popover.cjs.entry.js +4 -4
  35. package/dist/cjs/sd-portal.cjs.entry.js +2 -2
  36. package/dist/cjs/sd-progress.cjs.entry.js +3 -3
  37. package/dist/cjs/sd-radio-button.cjs.entry.js +182 -0
  38. package/dist/cjs/sd-radio-group.cjs.entry.js +1 -1
  39. package/dist/cjs/sd-radio.cjs.entry.js +6 -6
  40. package/dist/cjs/sd-select-dropdown_2.cjs.entry.js +4 -4
  41. package/dist/cjs/sd-select-group.cjs.entry.js +3 -3
  42. package/dist/cjs/sd-select-multiple-group.cjs.entry.js +2 -2
  43. package/dist/cjs/sd-select-multiple.cjs.entry.js +3 -3
  44. package/dist/cjs/sd-select-option-group.cjs.entry.js +4 -4
  45. package/dist/cjs/sd-select-v2-list-item_4.cjs.entry.js +661 -0
  46. package/dist/cjs/sd-select.cjs.entry.js +179 -0
  47. package/dist/cjs/sd-switch.cjs.entry.js +110 -0
  48. package/dist/cjs/sd-table.cjs.entry.js +424 -651
  49. package/dist/cjs/sd-tabs.cjs.entry.js +2 -2
  50. package/dist/cjs/sd-tag.cjs.entry.js +6 -5
  51. package/dist/cjs/sd-tbody.cjs.entry.js +66 -0
  52. package/dist/cjs/sd-td.cjs.entry.js +58 -0
  53. package/dist/cjs/sd-text-link.cjs.entry.js +10 -12
  54. package/dist/cjs/sd-textarea.cjs.entry.js +2 -2
  55. package/dist/cjs/sd-thead.cjs.entry.js +179 -0
  56. package/dist/cjs/sd-toast-container.cjs.entry.js +2 -2
  57. package/dist/cjs/sd-toast.cjs.entry.js +3 -3
  58. package/dist/cjs/sd-toggle.cjs.entry.js +96 -13
  59. package/dist/cjs/sd-tr.cjs.entry.js +171 -0
  60. package/dist/cjs/table-test.cjs.entry.js +96 -0
  61. package/dist/cjs/{tooltipArrow-CRCpqOYA.js → tooltipArrow-DhevfDPX.js} +1 -1
  62. package/dist/collection/__mocks__/nanoid-non-secure.js +13 -0
  63. package/dist/collection/__mocks__/nanoid.js +1 -0
  64. package/dist/collection/collection-manifest.json +11 -4
  65. package/dist/collection/components/sd-action-modal/sd-action-modal.js +1 -1
  66. package/dist/collection/components/sd-badge/sd-badge.js +1 -1
  67. package/dist/collection/components/sd-barcode-input/sd-barcode-input.css +3 -0
  68. package/dist/collection/components/sd-barcode-input/sd-barcode-input.js +1 -1
  69. package/dist/collection/components/sd-button/sd-button.css +37 -37
  70. package/dist/collection/components/sd-button-v2/sd-button-v2.css +44 -44
  71. package/dist/collection/components/sd-button-v2/sd-button-v2.js +31 -6
  72. package/dist/collection/components/sd-card/sd-card.js +1 -1
  73. package/dist/collection/components/sd-checkbox/sd-checkbox.config.js +3 -0
  74. package/dist/collection/components/sd-checkbox/sd-checkbox.css +15 -0
  75. package/dist/collection/components/sd-checkbox/sd-checkbox.js +36 -2
  76. package/dist/collection/components/sd-circle-progress/sd-circle-progress.config.js +24 -0
  77. package/dist/collection/components/sd-circle-progress/sd-circle-progress.css +53 -0
  78. package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +109 -0
  79. package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.css +2 -2
  80. package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +2 -2
  81. package/dist/collection/components/sd-date-picker/sd-date-picker-calendar/sd-date-picker-calendar.js +1 -1
  82. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +2 -2
  83. package/dist/collection/components/sd-date-picker/sd-date-picker.config.js +1 -1
  84. package/dist/collection/components/sd-date-picker/sd-date-picker.js +5 -5
  85. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +1 -1
  86. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +5 -5
  87. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.config.js +5 -0
  88. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.css +46 -36
  89. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +4 -4
  90. package/dist/collection/components/sd-field/sd-field.config.js +21 -0
  91. package/dist/collection/components/sd-field/sd-field.css +19 -16
  92. package/dist/collection/components/sd-field/sd-field.js +46 -11
  93. package/dist/collection/components/sd-file-picker/sd-file-picker.js +5 -5
  94. package/dist/collection/components/sd-ghost-button/sd-ghost-button.config.js +7 -1
  95. package/dist/collection/components/sd-ghost-button/sd-ghost-button.js +3 -3
  96. package/dist/collection/components/sd-guide/sd-guide.css +37 -37
  97. package/dist/collection/components/sd-input/sd-input.css +3 -0
  98. package/dist/collection/components/sd-input/sd-input.js +2 -2
  99. package/dist/collection/components/sd-loading-container/sd-loading-container.config.js +1 -0
  100. package/dist/collection/components/sd-loading-container/sd-loading-container.css +40 -0
  101. package/dist/collection/components/sd-loading-container/sd-loading-container.js +83 -0
  102. package/dist/collection/components/sd-loading-modal/sd-loading-modal.config.js +31 -0
  103. package/dist/collection/components/sd-loading-modal/sd-loading-modal.css +37 -0
  104. package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +184 -0
  105. package/dist/collection/components/sd-modal-container/sd-modal-container.js +89 -3
  106. package/dist/collection/components/sd-number-input/sd-number-input.config.js +0 -2
  107. package/dist/collection/components/sd-number-input/sd-number-input.css +0 -1
  108. package/dist/collection/components/sd-number-input/sd-number-input.js +3 -4
  109. package/dist/collection/components/sd-pagination/sd-pagination.js +3 -3
  110. package/dist/collection/components/sd-popover/sd-popover.js +2 -2
  111. package/dist/collection/components/sd-portal/sd-portal.js +1 -1
  112. package/dist/collection/components/sd-progress/sd-progress.js +2 -2
  113. package/dist/collection/components/sd-radio/sd-radio.config.js +1 -1
  114. package/dist/collection/components/sd-radio-button/sd-radio-button.config.js +45 -0
  115. package/dist/collection/components/sd-radio-button/sd-radio-button.css +71 -0
  116. package/dist/collection/components/{sd-radio-button-group/sd-radio-button-group.js → sd-radio-button/sd-radio-button.js} +49 -18
  117. package/dist/collection/components/sd-select/sd-select-dropdown/sd-select-dropdown.js +2 -2
  118. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
  119. package/dist/collection/components/sd-select/sd-select-search-input/sd-select-search-input.js +3 -3
  120. package/dist/collection/components/sd-select/sd-select.css +4 -0
  121. package/dist/collection/components/sd-select-group/sd-select-group.css +4 -0
  122. package/dist/collection/components/sd-select-group/sd-select-group.js +1 -1
  123. package/dist/collection/components/sd-select-multiple/sd-select-multiple.css +4 -0
  124. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +1 -1
  125. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.css +4 -0
  126. package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
  127. package/dist/collection/components/sd-select-v2/sd-select-v2-list-item/sd-select-v2-list-item.js +2 -2
  128. package/dist/collection/components/sd-select-v2/sd-select-v2-list-item-search/sd-select-v2-list-item-search.css +4 -0
  129. package/dist/collection/components/sd-select-v2/sd-select-v2-list-item-search/sd-select-v2-list-item-search.js +6 -3
  130. package/dist/collection/components/sd-select-v2/sd-select-v2-listbox/sd-select-v2-listbox.css +2 -3
  131. package/dist/collection/components/sd-select-v2/sd-select-v2-listbox/sd-select-v2-listbox.js +2 -1
  132. package/dist/collection/components/sd-select-v2/sd-select-v2-trigger/sd-select-v2-trigger.js +2 -2
  133. package/dist/collection/components/sd-select-v2/sd-select-v2.config.js +1 -0
  134. package/dist/collection/components/sd-select-v2/sd-select-v2.js +3 -3
  135. package/dist/collection/components/sd-switch/sd-switch.config.js +23 -0
  136. package/dist/collection/components/sd-switch/sd-switch.css +54 -0
  137. package/dist/collection/components/{sd-toggle-button/sd-toggle-button.js → sd-switch/sd-switch.js} +30 -27
  138. package/dist/collection/components/sd-table/constants.js +1 -0
  139. package/dist/collection/components/sd-table/sd-table.css +76 -248
  140. package/dist/collection/components/sd-table/sd-table.js +705 -700
  141. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.css +18 -0
  142. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +105 -0
  143. package/dist/collection/components/sd-table/sd-td/sd-td.css +15 -0
  144. package/dist/collection/components/sd-table/sd-td/sd-td.js +121 -0
  145. package/dist/collection/components/sd-table/sd-thead/sd-thead.css +147 -0
  146. package/dist/collection/components/sd-table/sd-thead/sd-thead.js +442 -0
  147. package/dist/collection/components/sd-table/sd-tr/sd-tr.css +111 -0
  148. package/dist/collection/components/sd-table/sd-tr/sd-tr.js +376 -0
  149. package/dist/collection/components/sd-tabs/sd-tabs.js +1 -1
  150. package/dist/collection/components/sd-tag/sd-tag.js +2 -2
  151. package/dist/collection/components/sd-text-link/sd-text-link.css +1 -0
  152. package/dist/collection/components/sd-text-link/sd-text-link.js +7 -13
  153. package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
  154. package/dist/collection/components/sd-toast/sd-toast.js +2 -2
  155. package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
  156. package/dist/collection/components/sd-toggle/sd-toggle.config.js +33 -0
  157. package/dist/collection/components/sd-toggle/sd-toggle.css +38 -50
  158. package/dist/collection/components/sd-toggle/sd-toggle.js +29 -12
  159. package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
  160. package/dist/collection/components/table-test/table-test.css +59 -0
  161. package/dist/collection/components/table-test/table-test.js +316 -0
  162. package/dist/collection/index.js +1 -0
  163. package/dist/collection/utils/loading.js +43 -0
  164. package/dist/collection/utils/modal.js +26 -0
  165. package/dist/components/index.js +1 -1
  166. package/dist/components/p-6LkBUj0w.js +1 -0
  167. package/dist/components/{p-DlujHEXS.js → p-6cueWz-l.js} +1 -1
  168. package/dist/components/{p-D0wZv01W.js → p-AKpbKrkW.js} +1 -1
  169. package/dist/components/p-B1S4ybd6.js +1 -0
  170. package/dist/components/{p-D93Cb_Vw.js → p-B6OgnOKC.js} +1 -1
  171. package/dist/components/{p-lKwhftf9.js → p-B6RvTdqt.js} +1 -1
  172. package/dist/components/p-BLC3AWW8.js +1 -0
  173. package/dist/components/{p-BUAwjF_Z.js → p-BZ7V5xV5.js} +1 -1
  174. package/dist/components/{p-BWgJ9XTj.js → p-BdsI1E5l.js} +1 -1
  175. package/dist/components/{p-DdBIc8AE.js → p-BgRPWxrz.js} +1 -1
  176. package/dist/components/{p-DCv5afjJ.js → p-Bh548Ckv.js} +1 -1
  177. package/dist/components/p-C2r48NLP.js +1 -0
  178. package/dist/components/{p-BtH5wWA5.js → p-CGXwtYAv.js} +1 -1
  179. package/dist/components/p-CGssy8eb.js +1 -0
  180. package/dist/components/{p-BHQirDZt.js → p-CRl8Anfr.js} +1 -1
  181. package/dist/components/p-CU095QAR.js +1 -0
  182. package/dist/components/p-CpclstHV.js +1 -0
  183. package/dist/components/{p-C2Yw3PoX.js → p-Cpu_hXwN.js} +1 -1
  184. package/dist/components/{p-gTPCqs3t.js → p-Cr_74QR7.js} +1 -1
  185. package/dist/components/{p-BsJy4pgR.js → p-D9FDutsj.js} +1 -1
  186. package/dist/components/p-DBnszF5F.js +1 -0
  187. package/dist/components/p-DOXMJi-V.js +1 -0
  188. package/dist/components/p-DRY8HJ-T.js +1 -0
  189. package/dist/components/{p-BVBMsoZP.js → p-DUqX35W_.js} +1 -1
  190. package/dist/components/{p-Ci3yfjxH.js → p-DgYBr7xb.js} +1 -1
  191. package/dist/components/{p-98NWgkAU.js → p-DpsDTjcN.js} +1 -1
  192. package/dist/components/p-DuYi4aqj.js +1 -0
  193. package/dist/components/{p-AdSqif48.js → p-DxzgCf_d.js} +1 -1
  194. package/dist/components/p-TMuoVuhE.js +1 -0
  195. package/dist/components/{p-CE1Hmoij.js → p-VXLJLI30.js} +1 -1
  196. package/dist/components/p-aC4HJHug.js +1 -0
  197. package/dist/components/p-bYCOh35g.js +1 -0
  198. package/dist/components/p-e35Du7-7.js +1 -0
  199. package/dist/components/p-e8HA30H_.js +1 -0
  200. package/dist/components/p-kZ5N_lFC.js +1 -0
  201. package/dist/components/{p-CqU3a1re.js → p-puZ1xlrr.js} +1 -1
  202. package/dist/components/p-sZMi_32I.js +1 -0
  203. package/dist/components/sd-action-modal.js +1 -1
  204. package/dist/components/sd-badge.js +1 -1
  205. package/dist/components/sd-barcode-input.js +1 -1
  206. package/dist/components/sd-button-v2.js +1 -1
  207. package/dist/components/sd-button.js +1 -1
  208. package/dist/components/sd-calendar.js +1 -1
  209. package/dist/components/sd-card.js +1 -1
  210. package/dist/components/sd-checkbox.js +1 -1
  211. package/dist/components/{sd-loading-spinner.d.ts → sd-circle-progress.d.ts} +4 -4
  212. package/dist/components/sd-circle-progress.js +1 -0
  213. package/dist/components/sd-confirm-modal.js +1 -1
  214. package/dist/components/sd-date-box.js +1 -1
  215. package/dist/components/sd-date-picker-calendar.js +1 -1
  216. package/dist/components/sd-date-picker-trigger.js +1 -1
  217. package/dist/components/sd-date-picker.js +1 -1
  218. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  219. package/dist/components/sd-date-range-picker.js +1 -1
  220. package/dist/components/sd-dropdown-button.js +1 -1
  221. package/dist/components/sd-field.js +1 -1
  222. package/dist/components/sd-file-picker.js +1 -1
  223. package/dist/components/sd-floating-portal.js +1 -1
  224. package/dist/components/sd-form.js +1 -1
  225. package/dist/components/sd-ghost-button.js +1 -1
  226. package/dist/components/sd-guide.js +1 -1
  227. package/dist/components/sd-icon.js +1 -1
  228. package/dist/components/sd-input.js +1 -1
  229. package/dist/components/{sd-radio-button-group.d.ts → sd-loading-container.d.ts} +4 -4
  230. package/dist/components/sd-loading-container.js +1 -0
  231. package/dist/components/{sd-toggle-button.d.ts → sd-loading-modal.d.ts} +4 -4
  232. package/dist/components/sd-loading-modal.js +1 -0
  233. package/dist/components/sd-modal-container.js +1 -1
  234. package/dist/components/sd-number-input.js +1 -1
  235. package/dist/components/sd-pagination.js +1 -1
  236. package/dist/components/sd-popover.js +1 -1
  237. package/dist/components/sd-portal.js +1 -1
  238. package/dist/components/sd-progress.js +1 -1
  239. package/dist/components/sd-radio-button.d.ts +11 -0
  240. package/dist/components/sd-radio-button.js +1 -0
  241. package/dist/components/sd-radio-group.js +1 -1
  242. package/dist/components/sd-radio.js +1 -1
  243. package/dist/components/sd-select-dropdown.js +1 -1
  244. package/dist/components/sd-select-group.js +1 -1
  245. package/dist/components/sd-select-multiple-group.js +1 -1
  246. package/dist/components/sd-select-multiple.js +1 -1
  247. package/dist/components/sd-select-option-group.js +1 -1
  248. package/dist/components/sd-select-option.js +1 -1
  249. package/dist/components/sd-select-search-input.js +1 -1
  250. package/dist/components/sd-select-v2-list-item-search.js +1 -1
  251. package/dist/components/sd-select-v2-list-item.js +1 -1
  252. package/dist/components/sd-select-v2-listbox.js +1 -1
  253. package/dist/components/sd-select-v2-trigger.js +1 -1
  254. package/dist/components/sd-select-v2.js +1 -1
  255. package/dist/components/sd-select.js +1 -1
  256. package/dist/components/sd-switch.d.ts +11 -0
  257. package/dist/components/sd-switch.js +1 -0
  258. package/dist/components/sd-table.js +1 -1
  259. package/dist/components/sd-tabs.js +1 -1
  260. package/dist/components/sd-tag.js +1 -1
  261. package/dist/components/sd-tbody.d.ts +11 -0
  262. package/dist/components/sd-tbody.js +1 -0
  263. package/dist/components/sd-td.d.ts +11 -0
  264. package/dist/components/sd-td.js +1 -0
  265. package/dist/components/sd-text-link.js +1 -1
  266. package/dist/components/sd-textarea.js +1 -1
  267. package/dist/components/sd-thead.d.ts +11 -0
  268. package/dist/components/sd-thead.js +1 -0
  269. package/dist/components/sd-toast-container.js +1 -1
  270. package/dist/components/sd-toast.js +1 -1
  271. package/dist/components/sd-toggle.js +1 -1
  272. package/dist/components/sd-tooltip.js +1 -1
  273. package/dist/components/sd-tr.d.ts +11 -0
  274. package/dist/components/sd-tr.js +1 -0
  275. package/dist/components/table-test.d.ts +11 -0
  276. package/dist/components/table-test.js +1 -0
  277. package/dist/design-system/design-system.css +1 -1
  278. package/dist/design-system/design-system.esm.js +1 -1
  279. package/dist/design-system/index.esm.js +1 -1
  280. package/dist/design-system/p-03099a57.entry.js +1 -0
  281. package/dist/design-system/p-04be87a4.entry.js +1 -0
  282. package/dist/design-system/{p-e9c28bdc.entry.js → p-09ba9dbc.entry.js} +1 -1
  283. package/dist/design-system/p-0ca594a4.entry.js +1 -0
  284. package/dist/design-system/p-0fbb6d92.entry.js +1 -0
  285. package/dist/design-system/p-12a03c88.entry.js +1 -0
  286. package/dist/design-system/p-15cda79c.entry.js +1 -0
  287. package/dist/design-system/p-1b9e427e.entry.js +1 -0
  288. package/dist/design-system/p-1cbe4b22.entry.js +1 -0
  289. package/dist/design-system/{p-a03ad24f.entry.js → p-1d310832.entry.js} +1 -1
  290. package/dist/design-system/p-2f64dd95.entry.js +1 -0
  291. package/dist/design-system/p-33e4ce64.entry.js +1 -0
  292. package/dist/design-system/{p-14b67a6e.entry.js → p-363da5ff.entry.js} +1 -1
  293. package/dist/design-system/p-3d341993.entry.js +1 -0
  294. package/dist/design-system/p-3f79f1d1.entry.js +1 -0
  295. package/dist/design-system/{p-c59191d3.entry.js → p-40495e05.entry.js} +1 -1
  296. package/dist/design-system/p-4128c17f.entry.js +1 -0
  297. package/dist/design-system/{p-614c9883.entry.js → p-4a53d7b0.entry.js} +1 -1
  298. package/dist/design-system/{p-9ae589c4.entry.js → p-4dcadde3.entry.js} +1 -1
  299. package/dist/design-system/{p-62992b73.entry.js → p-53bc77f8.entry.js} +1 -1
  300. package/dist/design-system/{p-28058050.entry.js → p-5a63febd.entry.js} +1 -1
  301. package/dist/design-system/p-656acb07.entry.js +1 -0
  302. package/dist/design-system/{p-30055371.entry.js → p-6c71d7b7.entry.js} +1 -1
  303. package/dist/design-system/{p-7a18a52b.entry.js → p-73acee07.entry.js} +1 -1
  304. package/dist/design-system/p-748ece8e.entry.js +1 -0
  305. package/dist/design-system/p-7e09fdd5.entry.js +1 -0
  306. package/dist/design-system/{p-4272b9e6.entry.js → p-84a329fb.entry.js} +1 -1
  307. package/dist/design-system/p-867ec4ee.entry.js +1 -0
  308. package/dist/design-system/p-8acf3b67.entry.js +1 -0
  309. package/dist/design-system/p-8d2328ae.entry.js +1 -0
  310. package/dist/design-system/{p-dee605b1.entry.js → p-9af7e19a.entry.js} +1 -1
  311. package/dist/design-system/p-BqHL8W3c.js +2 -0
  312. package/dist/design-system/{p-DSRYrM1n.js → p-COK6PVLC.js} +1 -1
  313. package/dist/design-system/p-DOXMJi-V.js +1 -0
  314. package/dist/design-system/{p-72b564ed.entry.js → p-a129711d.entry.js} +1 -1
  315. package/dist/design-system/p-a24c3431.entry.js +1 -0
  316. package/dist/design-system/{p-3acd076e.entry.js → p-a27718c1.entry.js} +1 -1
  317. package/dist/design-system/{p-3d10be45.entry.js → p-a9a91e69.entry.js} +1 -1
  318. package/dist/design-system/p-ae1800c0.entry.js +1 -0
  319. package/dist/design-system/p-b1fe12f8.entry.js +1 -0
  320. package/dist/design-system/p-b60ae063.entry.js +1 -0
  321. package/dist/design-system/p-b6e02544.entry.js +1 -0
  322. package/dist/design-system/p-bYCOh35g.js +1 -0
  323. package/dist/design-system/{p-fa8b64c2.entry.js → p-c2f3470f.entry.js} +1 -1
  324. package/dist/design-system/{p-85e22acd.entry.js → p-c4e68815.entry.js} +1 -1
  325. package/dist/design-system/p-c98ed6ae.entry.js +1 -0
  326. package/dist/design-system/p-ca80379a.entry.js +1 -0
  327. package/dist/design-system/{p-5d2e8779.entry.js → p-d04551be.entry.js} +1 -1
  328. package/dist/design-system/p-e0f9e5b5.entry.js +1 -0
  329. package/dist/design-system/p-e1fdd540.entry.js +1 -0
  330. package/dist/design-system/{p-2bd887ca.entry.js → p-e33389b8.entry.js} +1 -1
  331. package/dist/design-system/p-e78faea6.entry.js +1 -0
  332. package/dist/design-system/p-e9f24d23.entry.js +1 -0
  333. package/dist/design-system/{p-00207f08.entry.js → p-ec79fefd.entry.js} +1 -1
  334. package/dist/design-system/{p-067b0b3c.entry.js → p-f3a60f61.entry.js} +1 -1
  335. package/dist/design-system/p-f9b9204d.entry.js +1 -0
  336. package/dist/design-system/{p-13fed1bd.entry.js → p-fd296c73.entry.js} +1 -1
  337. package/dist/design-system/p-sZMi_32I.js +1 -0
  338. package/dist/esm/{component.modal-mO5GcwI3.js → component.modal-DOXMJi-V.js} +14 -0
  339. package/dist/esm/constants-sZMi_32I.js +3 -0
  340. package/dist/esm/design-system.js +3 -4
  341. package/dist/esm/{index-DsU722JF.js → index-BqHL8W3c.js} +128 -10
  342. package/dist/esm/index.js +103 -33
  343. package/dist/esm/loader.js +3 -4
  344. package/dist/esm/sd-action-modal.entry.js +3 -3
  345. package/dist/esm/sd-badge.entry.js +2 -2
  346. package/dist/esm/sd-barcode-input.entry.js +3 -3
  347. package/dist/esm/sd-button-v2_2.entry.js +9 -8
  348. package/dist/esm/sd-button_4.entry.js +56 -18
  349. package/dist/esm/sd-calendar.entry.js +1 -1
  350. package/dist/esm/sd-card.entry.js +2 -2
  351. package/dist/esm/sd-checkbox.entry.js +30 -5
  352. package/dist/esm/sd-circle-progress.entry.js +69 -0
  353. package/dist/esm/sd-confirm-modal_2.entry.js +183 -0
  354. package/dist/esm/sd-date-box.entry.js +1 -1
  355. package/dist/esm/sd-date-picker-calendar.entry.js +3 -3
  356. package/dist/esm/sd-date-picker-trigger.entry.js +4 -4
  357. package/dist/esm/{sd-date-picker.config-C4i826lM.js → sd-date-picker.config-bYCOh35g.js} +3 -3
  358. package/dist/esm/sd-date-picker.entry.js +4 -4
  359. package/dist/esm/sd-date-range-picker-calendar.entry.js +3 -3
  360. package/dist/esm/sd-date-range-picker.entry.js +4 -4
  361. package/dist/esm/sd-dropdown-button.entry.js +10 -5
  362. package/dist/esm/sd-file-picker.entry.js +1 -1
  363. package/dist/esm/sd-form.entry.js +1 -1
  364. package/dist/esm/sd-ghost-button.entry.js +15 -6
  365. package/dist/esm/sd-guide.entry.js +2 -2
  366. package/dist/esm/sd-input_2.entry.js +7 -7
  367. package/dist/esm/sd-loading-container.entry.js +27 -0
  368. package/dist/esm/sd-modal-container.entry.js +45 -2
  369. package/dist/esm/sd-number-input.entry.js +5 -10
  370. package/dist/esm/{sd-select-v2.entry.js → sd-pagination_2.entry.js} +90 -5
  371. package/dist/esm/sd-popover.entry.js +4 -4
  372. package/dist/esm/sd-portal.entry.js +2 -2
  373. package/dist/esm/sd-progress.entry.js +3 -3
  374. package/dist/esm/sd-radio-button.entry.js +180 -0
  375. package/dist/esm/sd-radio-group.entry.js +1 -1
  376. package/dist/esm/sd-radio.entry.js +6 -6
  377. package/dist/esm/sd-select-dropdown_2.entry.js +4 -4
  378. package/dist/esm/sd-select-group.entry.js +3 -3
  379. package/dist/esm/sd-select-multiple-group.entry.js +2 -2
  380. package/dist/esm/sd-select-multiple.entry.js +3 -3
  381. package/dist/esm/sd-select-option-group.entry.js +4 -4
  382. package/dist/esm/sd-select-v2-list-item_4.entry.js +656 -0
  383. package/dist/esm/sd-select.entry.js +177 -0
  384. package/dist/esm/sd-switch.entry.js +108 -0
  385. package/dist/esm/sd-table.entry.js +424 -651
  386. package/dist/esm/sd-tabs.entry.js +2 -2
  387. package/dist/esm/sd-tag.entry.js +6 -5
  388. package/dist/esm/sd-tbody.entry.js +64 -0
  389. package/dist/esm/sd-td.entry.js +56 -0
  390. package/dist/esm/sd-text-link.entry.js +10 -12
  391. package/dist/esm/sd-textarea.entry.js +2 -2
  392. package/dist/esm/sd-thead.entry.js +177 -0
  393. package/dist/esm/sd-toast-container.entry.js +2 -2
  394. package/dist/esm/sd-toast.entry.js +3 -3
  395. package/dist/esm/sd-toggle.entry.js +96 -13
  396. package/dist/esm/sd-tr.entry.js +169 -0
  397. package/dist/esm/table-test.entry.js +94 -0
  398. package/dist/esm/{tooltipArrow-CJuzsrdH.js → tooltipArrow-BcsrQx1U.js} +1 -1
  399. package/dist/types/__mocks__/nanoid-non-secure.d.ts +2 -0
  400. package/dist/types/__mocks__/nanoid.d.ts +1 -0
  401. package/dist/types/components/sd-button-v2/sd-button-v2.d.ts +1 -0
  402. package/dist/types/components/sd-checkbox/sd-checkbox.config.d.ts +3 -0
  403. package/dist/types/components/sd-checkbox/sd-checkbox.d.ts +2 -0
  404. package/dist/types/components/sd-circle-progress/sd-circle-progress.config.d.ts +9 -0
  405. package/dist/types/components/sd-circle-progress/sd-circle-progress.d.ts +8 -0
  406. package/dist/types/components/sd-dropdown-button/sd-dropdown-button.config.d.ts +1 -0
  407. package/dist/types/components/sd-field/sd-field.config.d.ts +9 -0
  408. package/dist/types/components/sd-field/sd-field.d.ts +2 -0
  409. package/dist/types/components/sd-ghost-button/sd-ghost-button.config.d.ts +1 -1
  410. package/dist/types/components/sd-loading-container/sd-loading-container.config.d.ts +4 -0
  411. package/dist/types/components/sd-loading-container/sd-loading-container.d.ts +8 -0
  412. package/dist/types/components/sd-loading-modal/sd-loading-modal.config.d.ts +25 -0
  413. package/dist/types/components/sd-loading-modal/sd-loading-modal.d.ts +15 -0
  414. package/dist/types/components/sd-modal-container/sd-modal-container.config.d.ts +10 -0
  415. package/dist/types/components/sd-modal-container/sd-modal-container.d.ts +6 -2
  416. package/dist/types/components/sd-number-input/sd-number-input.config.d.ts +0 -1
  417. package/dist/types/components/sd-radio-button/sd-radio-button.config.d.ts +44 -0
  418. package/dist/types/components/{sd-radio-button-group/sd-radio-button-group.d.ts → sd-radio-button/sd-radio-button.d.ts} +4 -3
  419. package/dist/types/components/sd-select-v2/sd-select-v2.config.d.ts +1 -0
  420. package/dist/types/components/sd-switch/sd-switch.config.d.ts +22 -0
  421. package/dist/types/components/{sd-toggle-button/sd-toggle-button.d.ts → sd-switch/sd-switch.d.ts} +2 -6
  422. package/dist/types/components/sd-table/constants.d.ts +44 -0
  423. package/dist/types/components/sd-table/sd-table.d.ts +103 -115
  424. package/dist/types/components/sd-table/sd-tbody/sd-tbody.d.ts +14 -0
  425. package/dist/types/components/sd-table/sd-td/sd-td.d.ts +12 -0
  426. package/dist/types/components/sd-table/sd-thead/sd-thead.d.ts +36 -0
  427. package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +34 -0
  428. package/dist/types/components/sd-toggle/sd-toggle.config.d.ts +32 -0
  429. package/dist/types/components/sd-toggle/sd-toggle.d.ts +0 -3
  430. package/dist/types/components/table-test/table-test.d.ts +46 -0
  431. package/dist/types/components.d.ts +532 -141
  432. package/dist/types/index.d.ts +3 -1
  433. package/dist/types/utils/loading.d.ts +7 -0
  434. package/dist/types/utils/modal.d.ts +19 -3
  435. package/hydrate/index.js +2466 -965
  436. package/hydrate/index.mjs +2466 -965
  437. package/package.json +1 -1
  438. package/readme.md +1 -1
  439. package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -5
  440. package/dist/cjs/sd-confirm-modal.cjs.entry.js +0 -106
  441. package/dist/cjs/sd-loading-spinner_3.cjs.entry.js +0 -283
  442. package/dist/cjs/sd-radio-button-group.cjs.entry.js +0 -57
  443. package/dist/cjs/sd-select-v2-list-item_2.cjs.entry.js +0 -150
  444. package/dist/cjs/sd-select-v2-listbox_2.cjs.entry.js +0 -353
  445. package/dist/cjs/sd-select-v2.config-7xBJQhvx.js +0 -171
  446. package/dist/cjs/sd-toggle-button.cjs.entry.js +0 -49
  447. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.css +0 -44
  448. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js +0 -46
  449. package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.css +0 -85
  450. package/dist/collection/components/sd-toggle-button/sd-toggle-button.css +0 -47
  451. package/dist/components/p-5OtzmjLh.js +0 -1
  452. package/dist/components/p-BFaIxm6b.js +0 -1
  453. package/dist/components/p-BP-QKaKz.js +0 -1
  454. package/dist/components/p-BSZadK9N.js +0 -1
  455. package/dist/components/p-BbtO5CEW.js +0 -1
  456. package/dist/components/p-BxPyZJaz.js +0 -1
  457. package/dist/components/p-C-qSDgVU.js +0 -1
  458. package/dist/components/p-C4i826lM.js +0 -1
  459. package/dist/components/p-CEa1HSpw.js +0 -1
  460. package/dist/components/p-CYRGa0VL.js +0 -1
  461. package/dist/components/p-ClgihpRm.js +0 -1
  462. package/dist/components/p-D-Y0-FQk.js +0 -1
  463. package/dist/components/p-D-pFdq6g.js +0 -1
  464. package/dist/components/p-DPipeCRI.js +0 -1
  465. package/dist/components/p-DSYw-7RA.js +0 -1
  466. package/dist/components/p-DXAB0k9r.js +0 -1
  467. package/dist/components/p-mO5GcwI3.js +0 -1
  468. package/dist/components/sd-loading-spinner.js +0 -1
  469. package/dist/components/sd-radio-button-group.js +0 -1
  470. package/dist/components/sd-toggle-button.js +0 -1
  471. package/dist/design-system/p-0e6f5a99.entry.js +0 -1
  472. package/dist/design-system/p-22a4972a.entry.js +0 -1
  473. package/dist/design-system/p-27df33c1.entry.js +0 -1
  474. package/dist/design-system/p-3ac6a626.entry.js +0 -1
  475. package/dist/design-system/p-6610c16b.entry.js +0 -1
  476. package/dist/design-system/p-739ac181.entry.js +0 -1
  477. package/dist/design-system/p-7dce4241.entry.js +0 -1
  478. package/dist/design-system/p-7e4c0a36.entry.js +0 -1
  479. package/dist/design-system/p-8b5b2866.entry.js +0 -1
  480. package/dist/design-system/p-90f51f65.entry.js +0 -1
  481. package/dist/design-system/p-C3eQSZx-.js +0 -1
  482. package/dist/design-system/p-C4i826lM.js +0 -1
  483. package/dist/design-system/p-DQuL1Twl.js +0 -1
  484. package/dist/design-system/p-DsU722JF.js +0 -2
  485. package/dist/design-system/p-a6bc8512.entry.js +0 -1
  486. package/dist/design-system/p-afeb740a.entry.js +0 -1
  487. package/dist/design-system/p-b3e0e6f4.entry.js +0 -1
  488. package/dist/design-system/p-ba90dc5f.entry.js +0 -1
  489. package/dist/design-system/p-bad88292.entry.js +0 -1
  490. package/dist/design-system/p-cbb5575d.entry.js +0 -1
  491. package/dist/design-system/p-ce6a0b0f.entry.js +0 -1
  492. package/dist/design-system/p-d07448fe.entry.js +0 -1
  493. package/dist/design-system/p-d1a94401.entry.js +0 -1
  494. package/dist/design-system/p-d5b5cfc7.entry.js +0 -1
  495. package/dist/design-system/p-d75e0dc0.entry.js +0 -1
  496. package/dist/design-system/p-e9ed9c00.entry.js +0 -1
  497. package/dist/design-system/p-f8567970.entry.js +0 -1
  498. package/dist/design-system/p-fa22f13c.entry.js +0 -1
  499. package/dist/design-system/p-fbac6160.entry.js +0 -1
  500. package/dist/design-system/p-mO5GcwI3.js +0 -1
  501. package/dist/esm/app-globals-DQuL1Twl.js +0 -3
  502. package/dist/esm/sd-confirm-modal.entry.js +0 -104
  503. package/dist/esm/sd-loading-spinner_3.entry.js +0 -279
  504. package/dist/esm/sd-radio-button-group.entry.js +0 -55
  505. package/dist/esm/sd-select-v2-list-item_2.entry.js +0 -147
  506. package/dist/esm/sd-select-v2-listbox_2.entry.js +0 -350
  507. package/dist/esm/sd-select-v2.config-C3eQSZx-.js +0 -158
  508. package/dist/esm/sd-toggle-button.entry.js +0 -47
  509. package/dist/types/components/sd-loading-spinner/sd-loading-spinner.d.ts +0 -5
@@ -0,0 +1,656 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index-BqHL8W3c.js';
2
+
3
+ const select = {
4
+ paddingX: "12",
5
+ icon: {
6
+ "default": "#888888",
7
+ disabled: "#BBBBBB"
8
+ },
9
+ gap: "8",
10
+ typography: {
11
+ fontWeight: "400",
12
+ fontSize: "12",
13
+ lineHeight: "20"},
14
+ text: {
15
+ "default": "#222222",
16
+ disabled: "#888888"
17
+ }};
18
+ var selectTokens = {
19
+ select: select
20
+ };
21
+
22
+ const listItem = {
23
+ paddingY: "4",
24
+ paddingRight: "12",
25
+ gap: "8",
26
+ paddingLeft: {
27
+ depth1: "12",
28
+ depth2: "20",
29
+ depth3: "28"
30
+ },
31
+ typography: {
32
+ fontWeight: "400",
33
+ fontSize: "12",
34
+ lineHeight: "20"},
35
+ bg: {
36
+ "default": "#FFFFFF",
37
+ hover: "#0075FF"
38
+ },
39
+ content: {
40
+ "default": "#222222",
41
+ hover: "#FFFFFF",
42
+ disabled: "#888888"
43
+ },
44
+ depth1: {
45
+ bg: {
46
+ "default": "#EFF6FF"},
47
+ border: {
48
+ color: "#E1E1E1",
49
+ width: "1"
50
+ }},
51
+ depth2: {
52
+ middle: {
53
+ bg: "#F6F6F6"}
54
+ }};
55
+ var listItemTokens = {
56
+ listItem: listItem
57
+ };
58
+
59
+ const listBox = {
60
+ radius: "4",
61
+ paddingBottom: "4"
62
+ };
63
+ var listBoxTokens = {
64
+ listBox: listBox
65
+ };
66
+
67
+ // ── Select Trigger Tokens ──
68
+ const SELECT_LAYOUT = {
69
+ paddingX: selectTokens.select.paddingX,
70
+ gap: selectTokens.select.gap};
71
+ const SELECT_TYPOGRAPHY = {
72
+ fontSize: selectTokens.select.typography.fontSize,
73
+ lineHeight: selectTokens.select.typography.lineHeight,
74
+ fontWeight: selectTokens.select.typography.fontWeight,
75
+ };
76
+ const SELECT_COLORS = {
77
+ icon: {
78
+ default: selectTokens.select.icon.default,
79
+ disabled: selectTokens.select.icon.disabled,
80
+ },
81
+ text: {
82
+ default: selectTokens.select.text.default,
83
+ disabled: selectTokens.select.text.disabled,
84
+ },
85
+ };
86
+ // ── ListItem Tokens ──
87
+ const LIST_ITEM_LAYOUT = {
88
+ paddingY: listItemTokens.listItem.paddingY,
89
+ paddingRight: listItemTokens.listItem.paddingRight,
90
+ paddingLeft: {
91
+ depth1: listItemTokens.listItem.paddingLeft.depth1,
92
+ depth2: listItemTokens.listItem.paddingLeft.depth2,
93
+ depth3: listItemTokens.listItem.paddingLeft.depth3,
94
+ },
95
+ gap: listItemTokens.listItem.gap,
96
+ };
97
+ const LIST_ITEM_TYPOGRAPHY = {
98
+ fontSize: listItemTokens.listItem.typography.fontSize,
99
+ lineHeight: listItemTokens.listItem.typography.lineHeight,
100
+ fontWeight: listItemTokens.listItem.typography.fontWeight,
101
+ };
102
+ const LIST_ITEM_COLORS = {
103
+ bg: {
104
+ default: listItemTokens.listItem.bg.default,
105
+ hover: listItemTokens.listItem.bg.hover,
106
+ },
107
+ content: {
108
+ default: listItemTokens.listItem.content.default,
109
+ hover: listItemTokens.listItem.content.hover,
110
+ disabled: listItemTokens.listItem.content.disabled,
111
+ },
112
+ depth1: {
113
+ bg: listItemTokens.listItem.depth1.bg.default,
114
+ border: listItemTokens.listItem.depth1.border.color,
115
+ borderWidth: listItemTokens.listItem.depth1.border.width,
116
+ },
117
+ depth2: {
118
+ bg: listItemTokens.listItem.depth2.middle.bg,
119
+ }};
120
+ // ── ListBox Tokens ──
121
+ const LIST_BOX_LAYOUT = {
122
+ radius: listBoxTokens.listBox.radius,
123
+ paddingBottom: listBoxTokens.listBox.paddingBottom,
124
+ };
125
+ // ── Constants ──
126
+ const SEARCH_THRESHOLD = 11;
127
+ const SEARCH_DEBOUNCE_MS = 1000;
128
+ const EMPTY_MESSAGE = '표시할 항목이 없습니다.';
129
+ // ── Utilities ──
130
+ function countLeaves(options) {
131
+ return options.reduce((sum, option) => {
132
+ if (option.children) {
133
+ return sum + countLeaves(option.children);
134
+ }
135
+ return sum + 1;
136
+ }, 0);
137
+ }
138
+ function filterTree(options, keyword) {
139
+ const lowerKeyword = keyword.toLowerCase();
140
+ return options.reduce((acc, option) => {
141
+ const selfMatch = option.label.toLowerCase().includes(lowerKeyword);
142
+ if (option.children) {
143
+ // 그룹: 자식은 항상 추가로 필터링한다.
144
+ // - 자식 중 일치하는 게 있으면 그 자식들만 노출
145
+ // - 자식 매칭이 없더라도 그룹명이 매칭되면 그룹 헤더는 그대로 노출
146
+ // (이때 children 은 빈 배열로 두고, 선택 동작은 collectVisibleLeaves
147
+ // 의 fallback 이 원본 트리를 사용해 처리한다)
148
+ const filteredChildren = filterTree(option.children, keyword);
149
+ if (filteredChildren.length > 0) {
150
+ acc.push({ ...option, children: filteredChildren });
151
+ }
152
+ else if (selfMatch) {
153
+ acc.push({ ...option, children: [] });
154
+ }
155
+ }
156
+ else if (selfMatch) {
157
+ acc.push({ ...option });
158
+ }
159
+ return acc;
160
+ }, []);
161
+ }
162
+
163
+ const sdSelectV2ListItemCss = () => `sd-select-v2-list-item{display:block}sd-select-v2-list-item .sd-select-v2-list-item{display:flex;align-items:center;gap:var(--list-item-gap);padding:var(--list-item-padding-y) var(--list-item-padding-right) var(--list-item-padding-y) var(--list-item-padding-left);font-size:var(--list-item-font-size);line-height:var(--list-item-line-height);font-weight:var(--list-item-font-weight);background:var(--list-item-bg);color:var(--list-item-color);cursor:default;user-select:none}sd-select-v2-list-item .sd-select-v2-list-item--selectable{cursor:pointer}sd-select-v2-list-item .sd-select-v2-list-item--depth1-group{border-top:var(--list-item-border-top);font-weight:700}sd-select-v2-list-item .sd-select-v2-list-item--depth2-group{font-weight:500}sd-select-v2-list-item .sd-select-v2-list-item--focused.sd-select-v2-list-item--selectable:not(.sd-select-v2-list-item--disabled){background:var(--list-item-bg-hover);color:var(--list-item-color-hover)}sd-select-v2-list-item .sd-select-v2-list-item--selected:not(.sd-select-v2-list-item--group){font-weight:700;color:var(--list-item-bg-hover)}sd-select-v2-list-item .sd-select-v2-list-item--selected.sd-select-v2-list-item--focused{color:var(--list-item-color-hover)}sd-select-v2-list-item .sd-select-v2-list-item--disabled{color:var(--list-item-color-disabled);cursor:not-allowed}sd-select-v2-list-item .sd-select-v2-list-item__label{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}sd-select-v2-list-item .sd-select-v2-list-item__count{flex-shrink:0;font-weight:500;color:var(--list-item-color-disabled)}sd-select-v2-list-item .sd-select-v2-list-item--group.sd-select-v2-list-item--focused .sd-select-v2-list-item__count{color:#ffffff}sd-select-v2-list-item .sd-select-v2-list-item__checkbox{flex-shrink:0}`;
164
+
165
+ const SdSelectV2ListItem = class {
166
+ constructor(hostRef) {
167
+ registerInstance(this, hostRef);
168
+ this.listItemClick = createEvent(this, "sdListItemClick", 7);
169
+ }
170
+ option;
171
+ depth = 1;
172
+ isSelected = false;
173
+ isFocused = false;
174
+ useCheckbox = false;
175
+ countInfo;
176
+ listItemClick;
177
+ get isGroup() {
178
+ return !!this.option.children;
179
+ }
180
+ get isSelectable() {
181
+ return !this.isGroup || this.useCheckbox;
182
+ }
183
+ get depthKey() {
184
+ if (this.depth <= 1)
185
+ return 'depth1';
186
+ if (this.depth === 2)
187
+ return 'depth2';
188
+ return 'depth3';
189
+ }
190
+ get paddingLeft() {
191
+ return `${LIST_ITEM_LAYOUT.paddingLeft[this.depthKey]}px`;
192
+ }
193
+ handleClick = (e) => {
194
+ e.stopPropagation();
195
+ if (this.option.disabled || !this.isSelectable)
196
+ return;
197
+ this.listItemClick.emit(this.option);
198
+ };
199
+ handleCheckboxClick = (e) => {
200
+ e.stopPropagation();
201
+ };
202
+ handleCheckboxUpdate = (e) => {
203
+ e.stopPropagation();
204
+ if (this.option.disabled || !this.isSelectable)
205
+ return;
206
+ this.listItemClick.emit(this.option);
207
+ };
208
+ render() {
209
+ const isGroup = this.isGroup;
210
+ const isDepth1Group = isGroup && this.depth === 1;
211
+ const isDepth2Group = isGroup && this.depth === 2;
212
+ const cssVars = {
213
+ '--list-item-padding-y': `${LIST_ITEM_LAYOUT.paddingY}px`,
214
+ '--list-item-padding-left': this.paddingLeft,
215
+ '--list-item-padding-right': `${LIST_ITEM_LAYOUT.paddingRight}px`,
216
+ '--list-item-gap': `${LIST_ITEM_LAYOUT.gap}px`,
217
+ '--list-item-font-size': `${LIST_ITEM_TYPOGRAPHY.fontSize}px`,
218
+ '--list-item-line-height': `${LIST_ITEM_TYPOGRAPHY.lineHeight}px`,
219
+ '--list-item-font-weight': LIST_ITEM_TYPOGRAPHY.fontWeight,
220
+ '--list-item-bg': isDepth1Group
221
+ ? LIST_ITEM_COLORS.depth1.bg
222
+ : isDepth2Group
223
+ ? LIST_ITEM_COLORS.depth2.bg
224
+ : LIST_ITEM_COLORS.bg.default,
225
+ '--list-item-bg-hover': LIST_ITEM_COLORS.bg.hover,
226
+ '--list-item-color': LIST_ITEM_COLORS.content.default,
227
+ '--list-item-color-hover': LIST_ITEM_COLORS.content.hover,
228
+ '--list-item-color-disabled': LIST_ITEM_COLORS.content.disabled,
229
+ };
230
+ if (isDepth1Group) {
231
+ cssVars['--list-item-border-top'] = `${LIST_ITEM_COLORS.depth1.borderWidth}px solid ${LIST_ITEM_COLORS.depth1.border}`;
232
+ }
233
+ return (h("div", { key: '2c6431785cccc79e4ce7eb0252877f18e799bb03', class: {
234
+ 'sd-select-v2-list-item': true,
235
+ 'sd-select-v2-list-item--group': isGroup,
236
+ 'sd-select-v2-list-item--depth1-group': isDepth1Group,
237
+ 'sd-select-v2-list-item--depth2-group': isDepth2Group,
238
+ 'sd-select-v2-list-item--selected': this.isSelected === true,
239
+ 'sd-select-v2-list-item--indeterminate': this.isSelected === null,
240
+ 'sd-select-v2-list-item--focused': this.isFocused,
241
+ 'sd-select-v2-list-item--selectable': this.isSelectable && !this.option.disabled,
242
+ 'sd-select-v2-list-item--disabled': !!this.option.disabled,
243
+ }, style: cssVars, onClick: this.handleClick }, this.useCheckbox && (h("sd-checkbox", { key: '88751dff8393de63ff2762bf6a52f685b478cbe2', value: this.isSelected === null ? null : !!this.isSelected, disabled: this.option.disabled, inverse: this.isFocused && this.isSelected !== false, class: "sd-select-v2-list-item__checkbox", onClick: this.handleCheckboxClick, onSdUpdate: this.handleCheckboxUpdate })), h("span", { key: '09d711dbd6181ac2da194813cd8d298061428c8e', class: "sd-select-v2-list-item__label" }, this.option.label), this.countInfo && (h("span", { key: '8d0e113be506cfefa1994ee8a43efa7b6f09c707', class: "sd-select-v2-list-item__count" }, "(", this.countInfo.selected, "/", this.countInfo.total, ")"))));
244
+ }
245
+ };
246
+ SdSelectV2ListItem.style = sdSelectV2ListItemCss();
247
+
248
+ const sdSelectV2ListItemSearchCss = () => `sd-select-v2-list-item-search{display:block}sd-select-v2-list-item-search .sd-select-v2-list-item-search{padding:4px 8px;position:sticky;top:0;z-index:1;background:white}sd-select-v2-list-item-search .sd-select-v2-list-item-search--scrolled{box-shadow:0 2px 4px rgba(0, 0, 0, 0.08)}sd-select-v2-list-item-search .sd-select-v2-list-item-search__inner{display:flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid #CCCCCC;border-radius:4px;background:white}sd-select-v2-list-item-search .sd-select-v2-list-item-search__inner:focus-within{border-color:#0075FF}sd-select-v2-list-item-search .sd-select-v2-list-item-search__icon{flex-shrink:0}sd-select-v2-list-item-search .sd-select-v2-list-item-search__input{flex:1;border:none;outline:none;font-size:12px;line-height:20px;color:#222222;background:transparent;min-width:0}sd-select-v2-list-item-search .sd-select-v2-list-item-search__input::placeholder{color:#AAAAAA}sd-select-v2-list-item-search .sd-select-v2-list-item-search__clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:2px;border:none;background:transparent;cursor:pointer;border-radius:2px}sd-select-v2-list-item-search .sd-select-v2-list-item-search__clear:hover{background:#F0F0F0}sd-select-v2-list-item-search .sd-select-v2-list-item-search__clear--hidden{visibility:hidden;pointer-events:none}`;
249
+
250
+ const SdSelectV2ListItemSearch = class {
251
+ constructor(hostRef) {
252
+ registerInstance(this, hostRef);
253
+ this.searchFilter = createEvent(this, "sdSearchFilter", 7);
254
+ this.searchFocus = createEvent(this, "sdSearchFocus", 7);
255
+ }
256
+ isScrolled = false;
257
+ searchText = '';
258
+ searchFilter;
259
+ searchFocus;
260
+ inputEl;
261
+ debounceTimer;
262
+ focusRafId;
263
+ componentDidLoad() {
264
+ requestAnimationFrame(() => {
265
+ this.focusRafId = requestAnimationFrame(() => {
266
+ this.inputEl?.focus();
267
+ });
268
+ });
269
+ }
270
+ async sdFocus() {
271
+ this.inputEl?.focus();
272
+ }
273
+ handleInput = (e) => {
274
+ this.searchText = e.target.value;
275
+ if (this.debounceTimer)
276
+ clearTimeout(this.debounceTimer);
277
+ this.debounceTimer = setTimeout(() => {
278
+ this.searchFilter.emit(this.searchText);
279
+ }, SEARCH_DEBOUNCE_MS);
280
+ };
281
+ handleClear = (e) => {
282
+ e.stopPropagation();
283
+ this.searchText = '';
284
+ if (this.debounceTimer)
285
+ clearTimeout(this.debounceTimer);
286
+ this.searchFilter.emit('');
287
+ this.inputEl?.focus();
288
+ };
289
+ disconnectedCallback() {
290
+ if (this.focusRafId)
291
+ cancelAnimationFrame(this.focusRafId);
292
+ if (this.debounceTimer)
293
+ clearTimeout(this.debounceTimer);
294
+ }
295
+ render() {
296
+ return (h("div", { key: '10f081acd51cad3b6632b2afcd5017c02fe2ed57', class: {
297
+ 'sd-select-v2-list-item-search': true,
298
+ 'sd-select-v2-list-item-search--scrolled': this.isScrolled,
299
+ } }, h("div", { key: '585f29e2826841874e88ce01fa08306cffb39033', class: "sd-select-v2-list-item-search__inner" }, h("sd-icon", { key: 'fe3d85e03b2e7302102babd3736e7aea0b08fcee', name: "search", size: 16, color: "grey_70", class: "sd-select-v2-list-item-search__icon" }), h("input", { key: '62913d0721cf6171bc7dc52fb6548410fa87527e', ref: el => {
300
+ this.inputEl = el;
301
+ }, type: "text", class: "sd-select-v2-list-item-search__input", placeholder: "\uAC80\uC0C9\uC5B4 \uC785\uB825", value: this.searchText, onInput: this.handleInput, onFocus: () => this.searchFocus.emit() }), h("button", { key: '986ea74f6b02e65f138665f2afd19fa10f7f430a', type: "button", class: {
302
+ 'sd-select-v2-list-item-search__clear': true,
303
+ 'sd-select-v2-list-item-search__clear--hidden': !this.searchText,
304
+ }, onClick: this.handleClear, tabindex: this.searchText ? 0 : -1, "aria-hidden": this.searchText ? 'false' : 'true' }, h("sd-icon", { key: '344bbbb25eab6a6a3f4cce5cde8d9a10e9b13f25', name: "close", size: 12, color: "#888888" })))));
305
+ }
306
+ };
307
+ SdSelectV2ListItemSearch.style = sdSelectV2ListItemSearchCss();
308
+
309
+ const sdSelectV2ListboxCss = () => `sd-select-v2-listbox{display:block}sd-select-v2-listbox .sd-select-v2-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}sd-select-v2-listbox .sd-select-v2-listbox__list{flex:1;min-height:0;overflow-y:auto;padding-bottom:var(--listbox-padding-bottom)}sd-select-v2-listbox .sd-select-v2-listbox__empty{padding:12px;text-align:center;font-size:12px;line-height:20px;color:#888888}`;
310
+
311
+ const SdSelectV2Listbox = class {
312
+ constructor(hostRef) {
313
+ registerInstance(this, hostRef);
314
+ this.optionSelect = createEvent(this, "sdOptionSelect", 7);
315
+ }
316
+ name = 'default';
317
+ options = [];
318
+ value = null;
319
+ emitValue = false;
320
+ triggerWidth = '200px';
321
+ maxWidth = '640px';
322
+ maxHeight = '260px';
323
+ searchKeyword = '';
324
+ isScrolled = false;
325
+ focusedIndex = -1;
326
+ optionSelect;
327
+ listEl;
328
+ lastScrolledIndex = -1;
329
+ keydownAttached = false;
330
+ suppressHover = false;
331
+ get isDepth() {
332
+ return this.name === 'default_depth' || this.name === 'multi_depth';
333
+ }
334
+ get isMulti() {
335
+ return this.name === 'multi' || this.name === 'multi_depth';
336
+ }
337
+ get showSearch() {
338
+ const count = this.isDepth ? countLeaves(this.options) : this.options.length;
339
+ return count >= SEARCH_THRESHOLD;
340
+ }
341
+ get filteredOptions() {
342
+ if (!this.searchKeyword)
343
+ return this.options;
344
+ if (this.isDepth)
345
+ return filterTree(this.options, this.searchKeyword);
346
+ const keyword = this.searchKeyword.toLowerCase();
347
+ return this.options.filter(o => o.label.toLowerCase().includes(keyword));
348
+ }
349
+ get isEmpty() {
350
+ if (this.isDepth)
351
+ return countLeaves(this.filteredOptions) === 0 && this.filteredOptions.length === 0;
352
+ return this.filteredOptions.length === 0;
353
+ }
354
+ getSelectedValues() {
355
+ if (!this.value || !Array.isArray(this.value))
356
+ return new Set();
357
+ if (this.emitValue) {
358
+ return new Set(this.value);
359
+ }
360
+ return new Set(this.value.map(s => s.value));
361
+ }
362
+ isOptionSelected(option) {
363
+ if (this.isMulti) {
364
+ return this.getSelectedValues().has(option.value);
365
+ }
366
+ if (this.emitValue) {
367
+ return this.value === option.value;
368
+ }
369
+ if (this.value != null && typeof this.value === 'object' && !Array.isArray(this.value)) {
370
+ return this.value.value === option.value;
371
+ }
372
+ return this.value === option.value;
373
+ }
374
+ getGroupSelectionState(option) {
375
+ if (!this.isMulti || !option.children)
376
+ return false;
377
+ const selectedValues = this.getSelectedValues();
378
+ if (selectedValues.size === 0)
379
+ return false;
380
+ const leaves = this.collectVisibleLeaves(option);
381
+ if (leaves.length === 0)
382
+ return false;
383
+ const selectedCount = leaves.filter(l => selectedValues.has(l.value)).length;
384
+ if (selectedCount === 0)
385
+ return false;
386
+ if (selectedCount === leaves.length)
387
+ return true;
388
+ return null;
389
+ }
390
+ getCountInfo(option) {
391
+ if (!this.isMulti || !option.children)
392
+ return undefined;
393
+ const selectedValues = this.getSelectedValues();
394
+ const leaves = this.collectVisibleLeaves(option);
395
+ const selectedCount = leaves.filter(l => selectedValues.has(l.value)).length;
396
+ return { selected: selectedCount, total: leaves.length };
397
+ }
398
+ findOriginalOption(value, options) {
399
+ for (const opt of options) {
400
+ if (opt.value === value)
401
+ return opt;
402
+ if (opt.children) {
403
+ const found = this.findOriginalOption(value, opt.children);
404
+ if (found)
405
+ return found;
406
+ }
407
+ }
408
+ return undefined;
409
+ }
410
+ collectLeaves(option) {
411
+ if (!option.children)
412
+ return [option];
413
+ return option.children.flatMap(child => this.collectLeaves(child));
414
+ }
415
+ /**
416
+ * Returns the leaves currently visible to the user for the given (possibly
417
+ * filtered) option. When a group's own label matched the search keyword its
418
+ * `children` is emptied by `filterTree`; in that case we fall back to the
419
+ * full original subtree because the user has no way to deselect descendants
420
+ * individually.
421
+ */
422
+ collectVisibleLeaves(option) {
423
+ if (!option.children)
424
+ return [option];
425
+ if (option.children.length === 0) {
426
+ const original = this.findOriginalOption(option.value, this.options);
427
+ return original ? this.collectLeaves(original) : [];
428
+ }
429
+ return option.children.flatMap(child => this.collectVisibleLeaves(child));
430
+ }
431
+ get navigableOptions() {
432
+ const items = [];
433
+ const walk = (opts) => {
434
+ for (const opt of opts) {
435
+ const isGroup = !!opt.children;
436
+ const isSelectable = !isGroup || this.isMulti;
437
+ if (isSelectable && !opt.disabled)
438
+ items.push(opt);
439
+ if (isGroup && opt.children && opt.children.length > 0)
440
+ walk(opt.children);
441
+ }
442
+ };
443
+ walk(this.filteredOptions);
444
+ return items;
445
+ }
446
+ isOptionFocused(option) {
447
+ if (this.focusedIndex < 0)
448
+ return false;
449
+ const focused = this.navigableOptions[this.focusedIndex];
450
+ // filterTree 가 매 호출마다 옵션 객체를 새로 복제하기 때문에 참조 비교
451
+ // (=== / indexOf) 는 검색이 적용된 동안 항상 실패한다. 고유 식별자인
452
+ // value 로 비교해야 한다.
453
+ return !!focused && focused.value === option.value;
454
+ }
455
+ resetFocusOnFilter() {
456
+ // 필터가 바뀌면 이전 인덱스가 가리키던 항목이 사라질 수 있으므로
457
+ // 새 결과의 첫 항목으로 옮긴다. 결과가 비면 -1.
458
+ const items = this.navigableOptions;
459
+ this.focusedIndex = items.length > 0 ? 0 : -1;
460
+ // 키보드 네비게이션 직후 마우스가 한 번도 안 움직인 채로 사용자가
461
+ // 검색을 시작했다면 hover suppression 이 켜진 상태로 남아있을 수 있다.
462
+ // 검색이라는 명백한 사용자 의도 전환 시점에 강제로 해제한다.
463
+ if (this.suppressHover) {
464
+ document.removeEventListener('mousemove', this.releaseHoverSuppress, true);
465
+ this.suppressHover = false;
466
+ }
467
+ }
468
+ handleSearchFilter = (e) => {
469
+ this.searchKeyword = e.detail;
470
+ };
471
+ handleScroll = (e) => {
472
+ this.isScrolled = e.target.scrollTop > 0;
473
+ };
474
+ emitOptionSelect(option) {
475
+ this.optionSelect.emit({
476
+ option,
477
+ leaves: this.collectVisibleLeaves(option),
478
+ });
479
+ }
480
+ handleOptionClick = (e) => {
481
+ e.stopPropagation();
482
+ this.emitOptionSelect(e.detail);
483
+ };
484
+ handleOptionHover = (option) => {
485
+ if (this.suppressHover)
486
+ return;
487
+ const idx = this.navigableOptions.findIndex(o => o.value === option.value);
488
+ if (idx >= 0)
489
+ this.focusedIndex = idx;
490
+ };
491
+ releaseHoverSuppress = () => {
492
+ this.suppressHover = false;
493
+ document.removeEventListener('mousemove', this.releaseHoverSuppress, true);
494
+ };
495
+ handleKeyDown = (e) => {
496
+ const items = this.navigableOptions;
497
+ if (e.key === 'ArrowDown') {
498
+ if (items.length === 0)
499
+ return;
500
+ e.preventDefault();
501
+ e.stopPropagation();
502
+ this.focusedIndex = this.focusedIndex < 0 ? 0 : (this.focusedIndex + 1) % items.length;
503
+ this.beginHoverSuppression();
504
+ }
505
+ else if (e.key === 'ArrowUp') {
506
+ if (items.length === 0)
507
+ return;
508
+ e.preventDefault();
509
+ e.stopPropagation();
510
+ this.focusedIndex = this.focusedIndex <= 0 ? items.length - 1 : this.focusedIndex - 1;
511
+ this.beginHoverSuppression();
512
+ }
513
+ else if (e.key === 'Enter') {
514
+ if (this.focusedIndex < 0 || this.focusedIndex >= items.length)
515
+ return;
516
+ e.preventDefault();
517
+ e.stopPropagation();
518
+ this.emitOptionSelect(items[this.focusedIndex]);
519
+ }
520
+ };
521
+ /**
522
+ * 키보드로 인덱스를 옮기면 자동 스크롤이 일어나는데, 정지한 마우스 커서
523
+ * 아래로 다른 항목이 미끄러져 들어오면서 mouseenter 가 발화해 인덱스를
524
+ * 다시 덮어쓰는 문제를 막는다. 실제로 마우스가 한 번이라도 움직이기 전까지
525
+ * hover 갱신을 무시한다.
526
+ */
527
+ beginHoverSuppression() {
528
+ if (this.suppressHover)
529
+ return;
530
+ this.suppressHover = true;
531
+ document.addEventListener('mousemove', this.releaseHoverSuppress, true);
532
+ }
533
+ /**
534
+ * 리스트 컨테이너 내부에서만 스크롤한다. `scrollIntoView` 는 조상 스크롤
535
+ * 컨테이너(=문서 자체)까지 함께 스크롤시키므로 사용하지 않는다.
536
+ */
537
+ scrollFocusedIntoView() {
538
+ const list = this.listEl;
539
+ const focusedEl = list?.querySelector('.sd-select-v2-list-item--focused');
540
+ if (!list || !focusedEl)
541
+ return;
542
+ const listRect = list.getBoundingClientRect();
543
+ const itemRect = focusedEl.getBoundingClientRect();
544
+ if (itemRect.top < listRect.top) {
545
+ list.scrollTop += itemRect.top - listRect.top;
546
+ }
547
+ else if (itemRect.bottom > listRect.bottom) {
548
+ list.scrollTop += itemRect.bottom - listRect.bottom;
549
+ }
550
+ }
551
+ /**
552
+ * sd-portal 이 슬롯 노드를 body 로 이동시키면서 disconnect → connect 가
553
+ * 발생하므로, 키보드 리스너는 한 번만 실행되는 componentDidLoad 가 아니라
554
+ * connectedCallback / disconnectedCallback 에 묶어 매번 재부착한다.
555
+ * capture phase 로 잡아 포커스가 검색 input 에 있어도 ↑/↓/Enter 가
556
+ * input 의 기본 동작(커서 이동)·페이지 스크롤보다 먼저 처리되도록 한다.
557
+ */
558
+ connectedCallback() {
559
+ if (!this.keydownAttached) {
560
+ document.addEventListener('keydown', this.handleKeyDown, true);
561
+ this.keydownAttached = true;
562
+ }
563
+ }
564
+ disconnectedCallback() {
565
+ if (this.keydownAttached) {
566
+ document.removeEventListener('keydown', this.handleKeyDown, true);
567
+ this.keydownAttached = false;
568
+ }
569
+ if (this.suppressHover) {
570
+ document.removeEventListener('mousemove', this.releaseHoverSuppress, true);
571
+ this.suppressHover = false;
572
+ }
573
+ }
574
+ componentDidRender() {
575
+ if (this.focusedIndex !== this.lastScrolledIndex) {
576
+ this.lastScrolledIndex = this.focusedIndex;
577
+ if (this.focusedIndex >= 0)
578
+ this.scrollFocusedIntoView();
579
+ }
580
+ }
581
+ renderOptions(options, depth = 1) {
582
+ return options.map(option => {
583
+ const isGroup = !!option.children;
584
+ return [
585
+ h("sd-select-v2-list-item", { option: option, depth: depth, isSelected: isGroup ? this.getGroupSelectionState(option) : this.isOptionSelected(option), isFocused: this.isOptionFocused(option), useCheckbox: this.isMulti, countInfo: this.getCountInfo(option), onSdListItemClick: this.handleOptionClick, onMouseEnter: () => this.handleOptionHover(option) }),
586
+ isGroup && option.children ? this.renderOptions(option.children, depth + 1) : null,
587
+ ];
588
+ });
589
+ }
590
+ render() {
591
+ const cssVars = {
592
+ '--listbox-trigger-width': this.triggerWidth,
593
+ '--listbox-max-width': this.maxWidth,
594
+ '--listbox-max-height': this.maxHeight,
595
+ '--listbox-radius': `${LIST_BOX_LAYOUT.radius}px`,
596
+ '--listbox-padding-bottom': `${LIST_BOX_LAYOUT.paddingBottom}px`,
597
+ };
598
+ return (h("div", { key: 'd3f41c72aa6d013efff695f2435e72482f25a28f', class: "sd-select-v2-listbox", style: cssVars }, this.showSearch && (h("sd-select-v2-list-item-search", { key: '6586d230d0eb3466cf30d644b3ebe94482e91847', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), h("div", { key: '9de0cfc6d458f48a3770fa61dfc019411cfd96bb', class: "sd-select-v2-listbox__list", onScroll: this.handleScroll, ref: el => {
599
+ this.listEl = el;
600
+ } }, this.isEmpty ? (h("div", { class: "sd-select-v2-listbox__empty" }, EMPTY_MESSAGE)) : this.isDepth ? (this.renderOptions(this.filteredOptions)) : (this.filteredOptions.map(option => (h("sd-select-v2-list-item", { option: option, depth: 1, isSelected: this.isOptionSelected(option), isFocused: this.isOptionFocused(option), useCheckbox: this.isMulti, onSdListItemClick: this.handleOptionClick, onMouseEnter: () => this.handleOptionHover(option) })))))));
601
+ }
602
+ static get watchers() { return {
603
+ "searchKeyword": [{
604
+ "resetFocusOnFilter": 0
605
+ }]
606
+ }; }
607
+ };
608
+ SdSelectV2Listbox.style = sdSelectV2ListboxCss();
609
+
610
+ const sdSelectV2TriggerCss = () => `sd-select-v2-trigger{display:block;width:100%;height:100%}sd-select-v2-trigger .sd-select-v2-trigger{display:flex;width:100%;height:100%;cursor:pointer;user-select:none;overflow:hidden;border-radius:3px}sd-select-v2-trigger .sd-select-v2-trigger--disabled{cursor:not-allowed}sd-select-v2-trigger .sd-select-v2-trigger__content{display:flex;align-items:center;gap:var(--trigger-gap);flex:1;padding:0 var(--trigger-padding-x);min-width:0}sd-select-v2-trigger .sd-select-v2-trigger__text{flex:1;font-size:var(--trigger-font-size);line-height:var(--trigger-line-height);font-weight:var(--trigger-font-weight);color:var(--trigger-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}sd-select-v2-trigger .sd-select-v2-trigger__icon{flex-shrink:0;transition:transform 0.2s ease}sd-select-v2-trigger .sd-select-v2-trigger__icon--open{transform:rotate(180deg)}`;
611
+
612
+ const SdSelectV2Trigger = class {
613
+ constructor(hostRef) {
614
+ registerInstance(this, hostRef);
615
+ this.triggerClick = createEvent(this, "sdTriggerClick", 7);
616
+ }
617
+ displayText = '';
618
+ placeholder = '선택';
619
+ disabled = false;
620
+ isOpen = false;
621
+ triggerClick;
622
+ handleClick = () => {
623
+ if (this.disabled)
624
+ return;
625
+ this.triggerClick.emit();
626
+ };
627
+ render() {
628
+ const hasValue = !!this.displayText;
629
+ const cssVars = {
630
+ '--trigger-padding-x': `${SELECT_LAYOUT.paddingX}px`,
631
+ '--trigger-gap': `${SELECT_LAYOUT.gap}px`,
632
+ '--trigger-font-size': `${SELECT_TYPOGRAPHY.fontSize}px`,
633
+ '--trigger-line-height': `${SELECT_TYPOGRAPHY.lineHeight}px`,
634
+ '--trigger-font-weight': SELECT_TYPOGRAPHY.fontWeight,
635
+ '--trigger-color': this.disabled
636
+ ? SELECT_COLORS.text.disabled
637
+ : hasValue
638
+ ? SELECT_COLORS.text.default
639
+ : SELECT_COLORS.icon.default,
640
+ '--trigger-icon-color': this.disabled
641
+ ? SELECT_COLORS.icon.disabled
642
+ : SELECT_COLORS.icon.default,
643
+ };
644
+ return (h("div", { key: '906bfdacc9ec8028d61335dd8a6eb9fa887ccd2d', class: {
645
+ 'sd-select-v2-trigger': true,
646
+ 'sd-select-v2-trigger--open': this.isOpen,
647
+ 'sd-select-v2-trigger--disabled': this.disabled,
648
+ }, style: cssVars, onClick: this.handleClick }, h("div", { key: '3688fb32fbc996ce423a92007d1208b950f7baba', class: "sd-select-v2-trigger__content" }, h("span", { key: '1c38cf28cb536aa93541e1bfd0b3736ba8b59782', class: "sd-select-v2-trigger__text" }, hasValue ? this.displayText : this.placeholder), h("sd-icon", { key: '9bfc7681e142766eeaa42dd801c8ff88dec61861', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
649
+ 'sd-select-v2-trigger__icon': true,
650
+ 'sd-select-v2-trigger__icon--open': this.isOpen,
651
+ } }))));
652
+ }
653
+ };
654
+ SdSelectV2Trigger.style = sdSelectV2TriggerCss();
655
+
656
+ export { SdSelectV2ListItem as sd_select_v2_list_item, SdSelectV2ListItemSearch as sd_select_v2_list_item_search, SdSelectV2Listbox as sd_select_v2_listbox, SdSelectV2Trigger as sd_select_v2_trigger };