@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,661 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-nsQP24mV.js');
4
+
5
+ const select = {
6
+ paddingX: "12",
7
+ icon: {
8
+ "default": "#888888",
9
+ disabled: "#BBBBBB"
10
+ },
11
+ gap: "8",
12
+ typography: {
13
+ fontWeight: "400",
14
+ fontSize: "12",
15
+ lineHeight: "20"},
16
+ text: {
17
+ "default": "#222222",
18
+ disabled: "#888888"
19
+ }};
20
+ var selectTokens = {
21
+ select: select
22
+ };
23
+
24
+ const listItem = {
25
+ paddingY: "4",
26
+ paddingRight: "12",
27
+ gap: "8",
28
+ paddingLeft: {
29
+ depth1: "12",
30
+ depth2: "20",
31
+ depth3: "28"
32
+ },
33
+ typography: {
34
+ fontWeight: "400",
35
+ fontSize: "12",
36
+ lineHeight: "20"},
37
+ bg: {
38
+ "default": "#FFFFFF",
39
+ hover: "#0075FF"
40
+ },
41
+ content: {
42
+ "default": "#222222",
43
+ hover: "#FFFFFF",
44
+ disabled: "#888888"
45
+ },
46
+ depth1: {
47
+ bg: {
48
+ "default": "#EFF6FF"},
49
+ border: {
50
+ color: "#E1E1E1",
51
+ width: "1"
52
+ }},
53
+ depth2: {
54
+ middle: {
55
+ bg: "#F6F6F6"}
56
+ }};
57
+ var listItemTokens = {
58
+ listItem: listItem
59
+ };
60
+
61
+ const listBox = {
62
+ radius: "4",
63
+ paddingBottom: "4"
64
+ };
65
+ var listBoxTokens = {
66
+ listBox: listBox
67
+ };
68
+
69
+ // ── Select Trigger Tokens ──
70
+ const SELECT_LAYOUT = {
71
+ paddingX: selectTokens.select.paddingX,
72
+ gap: selectTokens.select.gap};
73
+ const SELECT_TYPOGRAPHY = {
74
+ fontSize: selectTokens.select.typography.fontSize,
75
+ lineHeight: selectTokens.select.typography.lineHeight,
76
+ fontWeight: selectTokens.select.typography.fontWeight,
77
+ };
78
+ const SELECT_COLORS = {
79
+ icon: {
80
+ default: selectTokens.select.icon.default,
81
+ disabled: selectTokens.select.icon.disabled,
82
+ },
83
+ text: {
84
+ default: selectTokens.select.text.default,
85
+ disabled: selectTokens.select.text.disabled,
86
+ },
87
+ };
88
+ // ── ListItem Tokens ──
89
+ const LIST_ITEM_LAYOUT = {
90
+ paddingY: listItemTokens.listItem.paddingY,
91
+ paddingRight: listItemTokens.listItem.paddingRight,
92
+ paddingLeft: {
93
+ depth1: listItemTokens.listItem.paddingLeft.depth1,
94
+ depth2: listItemTokens.listItem.paddingLeft.depth2,
95
+ depth3: listItemTokens.listItem.paddingLeft.depth3,
96
+ },
97
+ gap: listItemTokens.listItem.gap,
98
+ };
99
+ const LIST_ITEM_TYPOGRAPHY = {
100
+ fontSize: listItemTokens.listItem.typography.fontSize,
101
+ lineHeight: listItemTokens.listItem.typography.lineHeight,
102
+ fontWeight: listItemTokens.listItem.typography.fontWeight,
103
+ };
104
+ const LIST_ITEM_COLORS = {
105
+ bg: {
106
+ default: listItemTokens.listItem.bg.default,
107
+ hover: listItemTokens.listItem.bg.hover,
108
+ },
109
+ content: {
110
+ default: listItemTokens.listItem.content.default,
111
+ hover: listItemTokens.listItem.content.hover,
112
+ disabled: listItemTokens.listItem.content.disabled,
113
+ },
114
+ depth1: {
115
+ bg: listItemTokens.listItem.depth1.bg.default,
116
+ border: listItemTokens.listItem.depth1.border.color,
117
+ borderWidth: listItemTokens.listItem.depth1.border.width,
118
+ },
119
+ depth2: {
120
+ bg: listItemTokens.listItem.depth2.middle.bg,
121
+ }};
122
+ // ── ListBox Tokens ──
123
+ const LIST_BOX_LAYOUT = {
124
+ radius: listBoxTokens.listBox.radius,
125
+ paddingBottom: listBoxTokens.listBox.paddingBottom,
126
+ };
127
+ // ── Constants ──
128
+ const SEARCH_THRESHOLD = 11;
129
+ const SEARCH_DEBOUNCE_MS = 1000;
130
+ const EMPTY_MESSAGE = '표시할 항목이 없습니다.';
131
+ // ── Utilities ──
132
+ function countLeaves(options) {
133
+ return options.reduce((sum, option) => {
134
+ if (option.children) {
135
+ return sum + countLeaves(option.children);
136
+ }
137
+ return sum + 1;
138
+ }, 0);
139
+ }
140
+ function filterTree(options, keyword) {
141
+ const lowerKeyword = keyword.toLowerCase();
142
+ return options.reduce((acc, option) => {
143
+ const selfMatch = option.label.toLowerCase().includes(lowerKeyword);
144
+ if (option.children) {
145
+ // 그룹: 자식은 항상 추가로 필터링한다.
146
+ // - 자식 중 일치하는 게 있으면 그 자식들만 노출
147
+ // - 자식 매칭이 없더라도 그룹명이 매칭되면 그룹 헤더는 그대로 노출
148
+ // (이때 children 은 빈 배열로 두고, 선택 동작은 collectVisibleLeaves
149
+ // 의 fallback 이 원본 트리를 사용해 처리한다)
150
+ const filteredChildren = filterTree(option.children, keyword);
151
+ if (filteredChildren.length > 0) {
152
+ acc.push({ ...option, children: filteredChildren });
153
+ }
154
+ else if (selfMatch) {
155
+ acc.push({ ...option, children: [] });
156
+ }
157
+ }
158
+ else if (selfMatch) {
159
+ acc.push({ ...option });
160
+ }
161
+ return acc;
162
+ }, []);
163
+ }
164
+
165
+ 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}`;
166
+
167
+ const SdSelectV2ListItem = class {
168
+ constructor(hostRef) {
169
+ index.registerInstance(this, hostRef);
170
+ this.listItemClick = index.createEvent(this, "sdListItemClick", 7);
171
+ }
172
+ option;
173
+ depth = 1;
174
+ isSelected = false;
175
+ isFocused = false;
176
+ useCheckbox = false;
177
+ countInfo;
178
+ listItemClick;
179
+ get isGroup() {
180
+ return !!this.option.children;
181
+ }
182
+ get isSelectable() {
183
+ return !this.isGroup || this.useCheckbox;
184
+ }
185
+ get depthKey() {
186
+ if (this.depth <= 1)
187
+ return 'depth1';
188
+ if (this.depth === 2)
189
+ return 'depth2';
190
+ return 'depth3';
191
+ }
192
+ get paddingLeft() {
193
+ return `${LIST_ITEM_LAYOUT.paddingLeft[this.depthKey]}px`;
194
+ }
195
+ handleClick = (e) => {
196
+ e.stopPropagation();
197
+ if (this.option.disabled || !this.isSelectable)
198
+ return;
199
+ this.listItemClick.emit(this.option);
200
+ };
201
+ handleCheckboxClick = (e) => {
202
+ e.stopPropagation();
203
+ };
204
+ handleCheckboxUpdate = (e) => {
205
+ e.stopPropagation();
206
+ if (this.option.disabled || !this.isSelectable)
207
+ return;
208
+ this.listItemClick.emit(this.option);
209
+ };
210
+ render() {
211
+ const isGroup = this.isGroup;
212
+ const isDepth1Group = isGroup && this.depth === 1;
213
+ const isDepth2Group = isGroup && this.depth === 2;
214
+ const cssVars = {
215
+ '--list-item-padding-y': `${LIST_ITEM_LAYOUT.paddingY}px`,
216
+ '--list-item-padding-left': this.paddingLeft,
217
+ '--list-item-padding-right': `${LIST_ITEM_LAYOUT.paddingRight}px`,
218
+ '--list-item-gap': `${LIST_ITEM_LAYOUT.gap}px`,
219
+ '--list-item-font-size': `${LIST_ITEM_TYPOGRAPHY.fontSize}px`,
220
+ '--list-item-line-height': `${LIST_ITEM_TYPOGRAPHY.lineHeight}px`,
221
+ '--list-item-font-weight': LIST_ITEM_TYPOGRAPHY.fontWeight,
222
+ '--list-item-bg': isDepth1Group
223
+ ? LIST_ITEM_COLORS.depth1.bg
224
+ : isDepth2Group
225
+ ? LIST_ITEM_COLORS.depth2.bg
226
+ : LIST_ITEM_COLORS.bg.default,
227
+ '--list-item-bg-hover': LIST_ITEM_COLORS.bg.hover,
228
+ '--list-item-color': LIST_ITEM_COLORS.content.default,
229
+ '--list-item-color-hover': LIST_ITEM_COLORS.content.hover,
230
+ '--list-item-color-disabled': LIST_ITEM_COLORS.content.disabled,
231
+ };
232
+ if (isDepth1Group) {
233
+ cssVars['--list-item-border-top'] = `${LIST_ITEM_COLORS.depth1.borderWidth}px solid ${LIST_ITEM_COLORS.depth1.border}`;
234
+ }
235
+ return (index.h("div", { key: '2c6431785cccc79e4ce7eb0252877f18e799bb03', class: {
236
+ 'sd-select-v2-list-item': true,
237
+ 'sd-select-v2-list-item--group': isGroup,
238
+ 'sd-select-v2-list-item--depth1-group': isDepth1Group,
239
+ 'sd-select-v2-list-item--depth2-group': isDepth2Group,
240
+ 'sd-select-v2-list-item--selected': this.isSelected === true,
241
+ 'sd-select-v2-list-item--indeterminate': this.isSelected === null,
242
+ 'sd-select-v2-list-item--focused': this.isFocused,
243
+ 'sd-select-v2-list-item--selectable': this.isSelectable && !this.option.disabled,
244
+ 'sd-select-v2-list-item--disabled': !!this.option.disabled,
245
+ }, style: cssVars, onClick: this.handleClick }, this.useCheckbox && (index.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 })), index.h("span", { key: '09d711dbd6181ac2da194813cd8d298061428c8e', class: "sd-select-v2-list-item__label" }, this.option.label), this.countInfo && (index.h("span", { key: '8d0e113be506cfefa1994ee8a43efa7b6f09c707', class: "sd-select-v2-list-item__count" }, "(", this.countInfo.selected, "/", this.countInfo.total, ")"))));
246
+ }
247
+ };
248
+ SdSelectV2ListItem.style = sdSelectV2ListItemCss();
249
+
250
+ 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}`;
251
+
252
+ const SdSelectV2ListItemSearch = class {
253
+ constructor(hostRef) {
254
+ index.registerInstance(this, hostRef);
255
+ this.searchFilter = index.createEvent(this, "sdSearchFilter", 7);
256
+ this.searchFocus = index.createEvent(this, "sdSearchFocus", 7);
257
+ }
258
+ isScrolled = false;
259
+ searchText = '';
260
+ searchFilter;
261
+ searchFocus;
262
+ inputEl;
263
+ debounceTimer;
264
+ focusRafId;
265
+ componentDidLoad() {
266
+ requestAnimationFrame(() => {
267
+ this.focusRafId = requestAnimationFrame(() => {
268
+ this.inputEl?.focus();
269
+ });
270
+ });
271
+ }
272
+ async sdFocus() {
273
+ this.inputEl?.focus();
274
+ }
275
+ handleInput = (e) => {
276
+ this.searchText = e.target.value;
277
+ if (this.debounceTimer)
278
+ clearTimeout(this.debounceTimer);
279
+ this.debounceTimer = setTimeout(() => {
280
+ this.searchFilter.emit(this.searchText);
281
+ }, SEARCH_DEBOUNCE_MS);
282
+ };
283
+ handleClear = (e) => {
284
+ e.stopPropagation();
285
+ this.searchText = '';
286
+ if (this.debounceTimer)
287
+ clearTimeout(this.debounceTimer);
288
+ this.searchFilter.emit('');
289
+ this.inputEl?.focus();
290
+ };
291
+ disconnectedCallback() {
292
+ if (this.focusRafId)
293
+ cancelAnimationFrame(this.focusRafId);
294
+ if (this.debounceTimer)
295
+ clearTimeout(this.debounceTimer);
296
+ }
297
+ render() {
298
+ return (index.h("div", { key: '10f081acd51cad3b6632b2afcd5017c02fe2ed57', class: {
299
+ 'sd-select-v2-list-item-search': true,
300
+ 'sd-select-v2-list-item-search--scrolled': this.isScrolled,
301
+ } }, index.h("div", { key: '585f29e2826841874e88ce01fa08306cffb39033', class: "sd-select-v2-list-item-search__inner" }, index.h("sd-icon", { key: 'fe3d85e03b2e7302102babd3736e7aea0b08fcee', name: "search", size: 16, color: "grey_70", class: "sd-select-v2-list-item-search__icon" }), index.h("input", { key: '62913d0721cf6171bc7dc52fb6548410fa87527e', ref: el => {
302
+ this.inputEl = el;
303
+ }, 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() }), index.h("button", { key: '986ea74f6b02e65f138665f2afd19fa10f7f430a', type: "button", class: {
304
+ 'sd-select-v2-list-item-search__clear': true,
305
+ 'sd-select-v2-list-item-search__clear--hidden': !this.searchText,
306
+ }, onClick: this.handleClear, tabindex: this.searchText ? 0 : -1, "aria-hidden": this.searchText ? 'false' : 'true' }, index.h("sd-icon", { key: '344bbbb25eab6a6a3f4cce5cde8d9a10e9b13f25', name: "close", size: 12, color: "#888888" })))));
307
+ }
308
+ };
309
+ SdSelectV2ListItemSearch.style = sdSelectV2ListItemSearchCss();
310
+
311
+ 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}`;
312
+
313
+ const SdSelectV2Listbox = class {
314
+ constructor(hostRef) {
315
+ index.registerInstance(this, hostRef);
316
+ this.optionSelect = index.createEvent(this, "sdOptionSelect", 7);
317
+ }
318
+ name = 'default';
319
+ options = [];
320
+ value = null;
321
+ emitValue = false;
322
+ triggerWidth = '200px';
323
+ maxWidth = '640px';
324
+ maxHeight = '260px';
325
+ searchKeyword = '';
326
+ isScrolled = false;
327
+ focusedIndex = -1;
328
+ optionSelect;
329
+ listEl;
330
+ lastScrolledIndex = -1;
331
+ keydownAttached = false;
332
+ suppressHover = false;
333
+ get isDepth() {
334
+ return this.name === 'default_depth' || this.name === 'multi_depth';
335
+ }
336
+ get isMulti() {
337
+ return this.name === 'multi' || this.name === 'multi_depth';
338
+ }
339
+ get showSearch() {
340
+ const count = this.isDepth ? countLeaves(this.options) : this.options.length;
341
+ return count >= SEARCH_THRESHOLD;
342
+ }
343
+ get filteredOptions() {
344
+ if (!this.searchKeyword)
345
+ return this.options;
346
+ if (this.isDepth)
347
+ return filterTree(this.options, this.searchKeyword);
348
+ const keyword = this.searchKeyword.toLowerCase();
349
+ return this.options.filter(o => o.label.toLowerCase().includes(keyword));
350
+ }
351
+ get isEmpty() {
352
+ if (this.isDepth)
353
+ return countLeaves(this.filteredOptions) === 0 && this.filteredOptions.length === 0;
354
+ return this.filteredOptions.length === 0;
355
+ }
356
+ getSelectedValues() {
357
+ if (!this.value || !Array.isArray(this.value))
358
+ return new Set();
359
+ if (this.emitValue) {
360
+ return new Set(this.value);
361
+ }
362
+ return new Set(this.value.map(s => s.value));
363
+ }
364
+ isOptionSelected(option) {
365
+ if (this.isMulti) {
366
+ return this.getSelectedValues().has(option.value);
367
+ }
368
+ if (this.emitValue) {
369
+ return this.value === option.value;
370
+ }
371
+ if (this.value != null && typeof this.value === 'object' && !Array.isArray(this.value)) {
372
+ return this.value.value === option.value;
373
+ }
374
+ return this.value === option.value;
375
+ }
376
+ getGroupSelectionState(option) {
377
+ if (!this.isMulti || !option.children)
378
+ return false;
379
+ const selectedValues = this.getSelectedValues();
380
+ if (selectedValues.size === 0)
381
+ return false;
382
+ const leaves = this.collectVisibleLeaves(option);
383
+ if (leaves.length === 0)
384
+ return false;
385
+ const selectedCount = leaves.filter(l => selectedValues.has(l.value)).length;
386
+ if (selectedCount === 0)
387
+ return false;
388
+ if (selectedCount === leaves.length)
389
+ return true;
390
+ return null;
391
+ }
392
+ getCountInfo(option) {
393
+ if (!this.isMulti || !option.children)
394
+ return undefined;
395
+ const selectedValues = this.getSelectedValues();
396
+ const leaves = this.collectVisibleLeaves(option);
397
+ const selectedCount = leaves.filter(l => selectedValues.has(l.value)).length;
398
+ return { selected: selectedCount, total: leaves.length };
399
+ }
400
+ findOriginalOption(value, options) {
401
+ for (const opt of options) {
402
+ if (opt.value === value)
403
+ return opt;
404
+ if (opt.children) {
405
+ const found = this.findOriginalOption(value, opt.children);
406
+ if (found)
407
+ return found;
408
+ }
409
+ }
410
+ return undefined;
411
+ }
412
+ collectLeaves(option) {
413
+ if (!option.children)
414
+ return [option];
415
+ return option.children.flatMap(child => this.collectLeaves(child));
416
+ }
417
+ /**
418
+ * Returns the leaves currently visible to the user for the given (possibly
419
+ * filtered) option. When a group's own label matched the search keyword its
420
+ * `children` is emptied by `filterTree`; in that case we fall back to the
421
+ * full original subtree because the user has no way to deselect descendants
422
+ * individually.
423
+ */
424
+ collectVisibleLeaves(option) {
425
+ if (!option.children)
426
+ return [option];
427
+ if (option.children.length === 0) {
428
+ const original = this.findOriginalOption(option.value, this.options);
429
+ return original ? this.collectLeaves(original) : [];
430
+ }
431
+ return option.children.flatMap(child => this.collectVisibleLeaves(child));
432
+ }
433
+ get navigableOptions() {
434
+ const items = [];
435
+ const walk = (opts) => {
436
+ for (const opt of opts) {
437
+ const isGroup = !!opt.children;
438
+ const isSelectable = !isGroup || this.isMulti;
439
+ if (isSelectable && !opt.disabled)
440
+ items.push(opt);
441
+ if (isGroup && opt.children && opt.children.length > 0)
442
+ walk(opt.children);
443
+ }
444
+ };
445
+ walk(this.filteredOptions);
446
+ return items;
447
+ }
448
+ isOptionFocused(option) {
449
+ if (this.focusedIndex < 0)
450
+ return false;
451
+ const focused = this.navigableOptions[this.focusedIndex];
452
+ // filterTree 가 매 호출마다 옵션 객체를 새로 복제하기 때문에 참조 비교
453
+ // (=== / indexOf) 는 검색이 적용된 동안 항상 실패한다. 고유 식별자인
454
+ // value 로 비교해야 한다.
455
+ return !!focused && focused.value === option.value;
456
+ }
457
+ resetFocusOnFilter() {
458
+ // 필터가 바뀌면 이전 인덱스가 가리키던 항목이 사라질 수 있으므로
459
+ // 새 결과의 첫 항목으로 옮긴다. 결과가 비면 -1.
460
+ const items = this.navigableOptions;
461
+ this.focusedIndex = items.length > 0 ? 0 : -1;
462
+ // 키보드 네비게이션 직후 마우스가 한 번도 안 움직인 채로 사용자가
463
+ // 검색을 시작했다면 hover suppression 이 켜진 상태로 남아있을 수 있다.
464
+ // 검색이라는 명백한 사용자 의도 전환 시점에 강제로 해제한다.
465
+ if (this.suppressHover) {
466
+ document.removeEventListener('mousemove', this.releaseHoverSuppress, true);
467
+ this.suppressHover = false;
468
+ }
469
+ }
470
+ handleSearchFilter = (e) => {
471
+ this.searchKeyword = e.detail;
472
+ };
473
+ handleScroll = (e) => {
474
+ this.isScrolled = e.target.scrollTop > 0;
475
+ };
476
+ emitOptionSelect(option) {
477
+ this.optionSelect.emit({
478
+ option,
479
+ leaves: this.collectVisibleLeaves(option),
480
+ });
481
+ }
482
+ handleOptionClick = (e) => {
483
+ e.stopPropagation();
484
+ this.emitOptionSelect(e.detail);
485
+ };
486
+ handleOptionHover = (option) => {
487
+ if (this.suppressHover)
488
+ return;
489
+ const idx = this.navigableOptions.findIndex(o => o.value === option.value);
490
+ if (idx >= 0)
491
+ this.focusedIndex = idx;
492
+ };
493
+ releaseHoverSuppress = () => {
494
+ this.suppressHover = false;
495
+ document.removeEventListener('mousemove', this.releaseHoverSuppress, true);
496
+ };
497
+ handleKeyDown = (e) => {
498
+ const items = this.navigableOptions;
499
+ if (e.key === 'ArrowDown') {
500
+ if (items.length === 0)
501
+ return;
502
+ e.preventDefault();
503
+ e.stopPropagation();
504
+ this.focusedIndex = this.focusedIndex < 0 ? 0 : (this.focusedIndex + 1) % items.length;
505
+ this.beginHoverSuppression();
506
+ }
507
+ else if (e.key === 'ArrowUp') {
508
+ if (items.length === 0)
509
+ return;
510
+ e.preventDefault();
511
+ e.stopPropagation();
512
+ this.focusedIndex = this.focusedIndex <= 0 ? items.length - 1 : this.focusedIndex - 1;
513
+ this.beginHoverSuppression();
514
+ }
515
+ else if (e.key === 'Enter') {
516
+ if (this.focusedIndex < 0 || this.focusedIndex >= items.length)
517
+ return;
518
+ e.preventDefault();
519
+ e.stopPropagation();
520
+ this.emitOptionSelect(items[this.focusedIndex]);
521
+ }
522
+ };
523
+ /**
524
+ * 키보드로 인덱스를 옮기면 자동 스크롤이 일어나는데, 정지한 마우스 커서
525
+ * 아래로 다른 항목이 미끄러져 들어오면서 mouseenter 가 발화해 인덱스를
526
+ * 다시 덮어쓰는 문제를 막는다. 실제로 마우스가 한 번이라도 움직이기 전까지
527
+ * hover 갱신을 무시한다.
528
+ */
529
+ beginHoverSuppression() {
530
+ if (this.suppressHover)
531
+ return;
532
+ this.suppressHover = true;
533
+ document.addEventListener('mousemove', this.releaseHoverSuppress, true);
534
+ }
535
+ /**
536
+ * 리스트 컨테이너 내부에서만 스크롤한다. `scrollIntoView` 는 조상 스크롤
537
+ * 컨테이너(=문서 자체)까지 함께 스크롤시키므로 사용하지 않는다.
538
+ */
539
+ scrollFocusedIntoView() {
540
+ const list = this.listEl;
541
+ const focusedEl = list?.querySelector('.sd-select-v2-list-item--focused');
542
+ if (!list || !focusedEl)
543
+ return;
544
+ const listRect = list.getBoundingClientRect();
545
+ const itemRect = focusedEl.getBoundingClientRect();
546
+ if (itemRect.top < listRect.top) {
547
+ list.scrollTop += itemRect.top - listRect.top;
548
+ }
549
+ else if (itemRect.bottom > listRect.bottom) {
550
+ list.scrollTop += itemRect.bottom - listRect.bottom;
551
+ }
552
+ }
553
+ /**
554
+ * sd-portal 이 슬롯 노드를 body 로 이동시키면서 disconnect → connect 가
555
+ * 발생하므로, 키보드 리스너는 한 번만 실행되는 componentDidLoad 가 아니라
556
+ * connectedCallback / disconnectedCallback 에 묶어 매번 재부착한다.
557
+ * capture phase 로 잡아 포커스가 검색 input 에 있어도 ↑/↓/Enter 가
558
+ * input 의 기본 동작(커서 이동)·페이지 스크롤보다 먼저 처리되도록 한다.
559
+ */
560
+ connectedCallback() {
561
+ if (!this.keydownAttached) {
562
+ document.addEventListener('keydown', this.handleKeyDown, true);
563
+ this.keydownAttached = true;
564
+ }
565
+ }
566
+ disconnectedCallback() {
567
+ if (this.keydownAttached) {
568
+ document.removeEventListener('keydown', this.handleKeyDown, true);
569
+ this.keydownAttached = false;
570
+ }
571
+ if (this.suppressHover) {
572
+ document.removeEventListener('mousemove', this.releaseHoverSuppress, true);
573
+ this.suppressHover = false;
574
+ }
575
+ }
576
+ componentDidRender() {
577
+ if (this.focusedIndex !== this.lastScrolledIndex) {
578
+ this.lastScrolledIndex = this.focusedIndex;
579
+ if (this.focusedIndex >= 0)
580
+ this.scrollFocusedIntoView();
581
+ }
582
+ }
583
+ renderOptions(options, depth = 1) {
584
+ return options.map(option => {
585
+ const isGroup = !!option.children;
586
+ return [
587
+ index.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) }),
588
+ isGroup && option.children ? this.renderOptions(option.children, depth + 1) : null,
589
+ ];
590
+ });
591
+ }
592
+ render() {
593
+ const cssVars = {
594
+ '--listbox-trigger-width': this.triggerWidth,
595
+ '--listbox-max-width': this.maxWidth,
596
+ '--listbox-max-height': this.maxHeight,
597
+ '--listbox-radius': `${LIST_BOX_LAYOUT.radius}px`,
598
+ '--listbox-padding-bottom': `${LIST_BOX_LAYOUT.paddingBottom}px`,
599
+ };
600
+ return (index.h("div", { key: 'd3f41c72aa6d013efff695f2435e72482f25a28f', class: "sd-select-v2-listbox", style: cssVars }, this.showSearch && (index.h("sd-select-v2-list-item-search", { key: '6586d230d0eb3466cf30d644b3ebe94482e91847', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), index.h("div", { key: '9de0cfc6d458f48a3770fa61dfc019411cfd96bb', class: "sd-select-v2-listbox__list", onScroll: this.handleScroll, ref: el => {
601
+ this.listEl = el;
602
+ } }, this.isEmpty ? (index.h("div", { class: "sd-select-v2-listbox__empty" }, EMPTY_MESSAGE)) : this.isDepth ? (this.renderOptions(this.filteredOptions)) : (this.filteredOptions.map(option => (index.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) })))))));
603
+ }
604
+ static get watchers() { return {
605
+ "searchKeyword": [{
606
+ "resetFocusOnFilter": 0
607
+ }]
608
+ }; }
609
+ };
610
+ SdSelectV2Listbox.style = sdSelectV2ListboxCss();
611
+
612
+ 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)}`;
613
+
614
+ const SdSelectV2Trigger = class {
615
+ constructor(hostRef) {
616
+ index.registerInstance(this, hostRef);
617
+ this.triggerClick = index.createEvent(this, "sdTriggerClick", 7);
618
+ }
619
+ displayText = '';
620
+ placeholder = '선택';
621
+ disabled = false;
622
+ isOpen = false;
623
+ triggerClick;
624
+ handleClick = () => {
625
+ if (this.disabled)
626
+ return;
627
+ this.triggerClick.emit();
628
+ };
629
+ render() {
630
+ const hasValue = !!this.displayText;
631
+ const cssVars = {
632
+ '--trigger-padding-x': `${SELECT_LAYOUT.paddingX}px`,
633
+ '--trigger-gap': `${SELECT_LAYOUT.gap}px`,
634
+ '--trigger-font-size': `${SELECT_TYPOGRAPHY.fontSize}px`,
635
+ '--trigger-line-height': `${SELECT_TYPOGRAPHY.lineHeight}px`,
636
+ '--trigger-font-weight': SELECT_TYPOGRAPHY.fontWeight,
637
+ '--trigger-color': this.disabled
638
+ ? SELECT_COLORS.text.disabled
639
+ : hasValue
640
+ ? SELECT_COLORS.text.default
641
+ : SELECT_COLORS.icon.default,
642
+ '--trigger-icon-color': this.disabled
643
+ ? SELECT_COLORS.icon.disabled
644
+ : SELECT_COLORS.icon.default,
645
+ };
646
+ return (index.h("div", { key: '906bfdacc9ec8028d61335dd8a6eb9fa887ccd2d', class: {
647
+ 'sd-select-v2-trigger': true,
648
+ 'sd-select-v2-trigger--open': this.isOpen,
649
+ 'sd-select-v2-trigger--disabled': this.disabled,
650
+ }, style: cssVars, onClick: this.handleClick }, index.h("div", { key: '3688fb32fbc996ce423a92007d1208b950f7baba', class: "sd-select-v2-trigger__content" }, index.h("span", { key: '1c38cf28cb536aa93541e1bfd0b3736ba8b59782', class: "sd-select-v2-trigger__text" }, hasValue ? this.displayText : this.placeholder), index.h("sd-icon", { key: '9bfc7681e142766eeaa42dd801c8ff88dec61861', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
651
+ 'sd-select-v2-trigger__icon': true,
652
+ 'sd-select-v2-trigger__icon--open': this.isOpen,
653
+ } }))));
654
+ }
655
+ };
656
+ SdSelectV2Trigger.style = sdSelectV2TriggerCss();
657
+
658
+ exports.sd_select_v2_list_item = SdSelectV2ListItem;
659
+ exports.sd_select_v2_list_item_search = SdSelectV2ListItemSearch;
660
+ exports.sd_select_v2_listbox = SdSelectV2Listbox;
661
+ exports.sd_select_v2_trigger = SdSelectV2Trigger;