@sellmate/design-system 1.0.61 → 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 (511) 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 +3 -3
  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.css +2 -1
  150. package/dist/collection/components/sd-tabs/sd-tabs.js +3 -3
  151. package/dist/collection/components/sd-tag/sd-tag.js +2 -2
  152. package/dist/collection/components/sd-text-link/sd-text-link.css +1 -0
  153. package/dist/collection/components/sd-text-link/sd-text-link.js +7 -13
  154. package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
  155. package/dist/collection/components/sd-toast/sd-toast.js +2 -2
  156. package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
  157. package/dist/collection/components/sd-toggle/sd-toggle.config.js +33 -0
  158. package/dist/collection/components/sd-toggle/sd-toggle.css +38 -50
  159. package/dist/collection/components/sd-toggle/sd-toggle.js +29 -12
  160. package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
  161. package/dist/collection/components/table-test/table-test.css +59 -0
  162. package/dist/collection/components/table-test/table-test.js +316 -0
  163. package/dist/collection/index.js +1 -0
  164. package/dist/collection/utils/loading.js +43 -0
  165. package/dist/collection/utils/modal.js +26 -0
  166. package/dist/components/index.js +1 -1
  167. package/dist/components/p-6LkBUj0w.js +1 -0
  168. package/dist/components/{p-DlujHEXS.js → p-6cueWz-l.js} +1 -1
  169. package/dist/components/{p-D0wZv01W.js → p-AKpbKrkW.js} +1 -1
  170. package/dist/components/p-B1S4ybd6.js +1 -0
  171. package/dist/components/{p-D93Cb_Vw.js → p-B6OgnOKC.js} +1 -1
  172. package/dist/components/{p-lKwhftf9.js → p-B6RvTdqt.js} +1 -1
  173. package/dist/components/p-BLC3AWW8.js +1 -0
  174. package/dist/components/{p-BUAwjF_Z.js → p-BZ7V5xV5.js} +1 -1
  175. package/dist/components/{p-BWgJ9XTj.js → p-BdsI1E5l.js} +1 -1
  176. package/dist/components/{p-DdBIc8AE.js → p-BgRPWxrz.js} +1 -1
  177. package/dist/components/{p-DCv5afjJ.js → p-Bh548Ckv.js} +1 -1
  178. package/dist/components/p-C2r48NLP.js +1 -0
  179. package/dist/components/{p-BtH5wWA5.js → p-CGXwtYAv.js} +1 -1
  180. package/dist/components/p-CGssy8eb.js +1 -0
  181. package/dist/components/{p-BHQirDZt.js → p-CRl8Anfr.js} +1 -1
  182. package/dist/components/p-CU095QAR.js +1 -0
  183. package/dist/components/p-CpclstHV.js +1 -0
  184. package/dist/components/{p-C2Yw3PoX.js → p-Cpu_hXwN.js} +1 -1
  185. package/dist/components/{p-gTPCqs3t.js → p-Cr_74QR7.js} +1 -1
  186. package/dist/components/{p-BsJy4pgR.js → p-D9FDutsj.js} +1 -1
  187. package/dist/components/p-DBnszF5F.js +1 -0
  188. package/dist/components/p-DOXMJi-V.js +1 -0
  189. package/dist/components/p-DRY8HJ-T.js +1 -0
  190. package/dist/components/{p-BVBMsoZP.js → p-DUqX35W_.js} +1 -1
  191. package/dist/components/{p-Ci3yfjxH.js → p-DgYBr7xb.js} +1 -1
  192. package/dist/components/{p-98NWgkAU.js → p-DpsDTjcN.js} +1 -1
  193. package/dist/components/p-DuYi4aqj.js +1 -0
  194. package/dist/components/{p-AdSqif48.js → p-DxzgCf_d.js} +1 -1
  195. package/dist/components/p-TMuoVuhE.js +1 -0
  196. package/dist/components/{p-CE1Hmoij.js → p-VXLJLI30.js} +1 -1
  197. package/dist/components/p-aC4HJHug.js +1 -0
  198. package/dist/components/p-bYCOh35g.js +1 -0
  199. package/dist/components/p-e35Du7-7.js +1 -0
  200. package/dist/components/p-e8HA30H_.js +1 -0
  201. package/dist/components/p-kZ5N_lFC.js +1 -0
  202. package/dist/components/{p-CqU3a1re.js → p-puZ1xlrr.js} +1 -1
  203. package/dist/components/p-sZMi_32I.js +1 -0
  204. package/dist/components/sd-action-modal.js +1 -1
  205. package/dist/components/sd-badge.js +1 -1
  206. package/dist/components/sd-barcode-input.js +1 -1
  207. package/dist/components/sd-button-v2.js +1 -1
  208. package/dist/components/sd-button.js +1 -1
  209. package/dist/components/sd-calendar.js +1 -1
  210. package/dist/components/sd-card.js +1 -1
  211. package/dist/components/sd-checkbox.js +1 -1
  212. package/dist/components/{sd-loading-spinner.d.ts → sd-circle-progress.d.ts} +4 -4
  213. package/dist/components/sd-circle-progress.js +1 -0
  214. package/dist/components/sd-confirm-modal.js +1 -1
  215. package/dist/components/sd-date-box.js +1 -1
  216. package/dist/components/sd-date-picker-calendar.js +1 -1
  217. package/dist/components/sd-date-picker-trigger.js +1 -1
  218. package/dist/components/sd-date-picker.js +1 -1
  219. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  220. package/dist/components/sd-date-range-picker.js +1 -1
  221. package/dist/components/sd-dropdown-button.js +1 -1
  222. package/dist/components/sd-field.js +1 -1
  223. package/dist/components/sd-file-picker.js +1 -1
  224. package/dist/components/sd-floating-portal.js +1 -1
  225. package/dist/components/sd-form.js +1 -1
  226. package/dist/components/sd-ghost-button.js +1 -1
  227. package/dist/components/sd-guide.js +1 -1
  228. package/dist/components/sd-icon.js +1 -1
  229. package/dist/components/sd-input.js +1 -1
  230. package/dist/components/{sd-radio-button-group.d.ts → sd-loading-container.d.ts} +4 -4
  231. package/dist/components/sd-loading-container.js +1 -0
  232. package/dist/components/{sd-toggle-button.d.ts → sd-loading-modal.d.ts} +4 -4
  233. package/dist/components/sd-loading-modal.js +1 -0
  234. package/dist/components/sd-modal-container.js +1 -1
  235. package/dist/components/sd-number-input.js +1 -1
  236. package/dist/components/sd-pagination.js +1 -1
  237. package/dist/components/sd-popover.js +1 -1
  238. package/dist/components/sd-portal.js +1 -1
  239. package/dist/components/sd-progress.js +1 -1
  240. package/dist/components/sd-radio-button.d.ts +11 -0
  241. package/dist/components/sd-radio-button.js +1 -0
  242. package/dist/components/sd-radio-group.js +1 -1
  243. package/dist/components/sd-radio.js +1 -1
  244. package/dist/components/sd-select-dropdown.js +1 -1
  245. package/dist/components/sd-select-group.js +1 -1
  246. package/dist/components/sd-select-multiple-group.js +1 -1
  247. package/dist/components/sd-select-multiple.js +1 -1
  248. package/dist/components/sd-select-option-group.js +1 -1
  249. package/dist/components/sd-select-option.js +1 -1
  250. package/dist/components/sd-select-search-input.js +1 -1
  251. package/dist/components/sd-select-v2-list-item-search.js +1 -1
  252. package/dist/components/sd-select-v2-list-item.js +1 -1
  253. package/dist/components/sd-select-v2-listbox.js +1 -1
  254. package/dist/components/sd-select-v2-trigger.js +1 -1
  255. package/dist/components/sd-select-v2.js +1 -1
  256. package/dist/components/sd-select.js +1 -1
  257. package/dist/components/sd-switch.d.ts +11 -0
  258. package/dist/components/sd-switch.js +1 -0
  259. package/dist/components/sd-table.js +1 -1
  260. package/dist/components/sd-tabs.js +1 -1
  261. package/dist/components/sd-tag.js +1 -1
  262. package/dist/components/sd-tbody.d.ts +11 -0
  263. package/dist/components/sd-tbody.js +1 -0
  264. package/dist/components/sd-td.d.ts +11 -0
  265. package/dist/components/sd-td.js +1 -0
  266. package/dist/components/sd-text-link.js +1 -1
  267. package/dist/components/sd-textarea.js +1 -1
  268. package/dist/components/sd-thead.d.ts +11 -0
  269. package/dist/components/sd-thead.js +1 -0
  270. package/dist/components/sd-toast-container.js +1 -1
  271. package/dist/components/sd-toast.js +1 -1
  272. package/dist/components/sd-toggle.js +1 -1
  273. package/dist/components/sd-tooltip.js +1 -1
  274. package/dist/components/sd-tr.d.ts +11 -0
  275. package/dist/components/sd-tr.js +1 -0
  276. package/dist/components/table-test.d.ts +11 -0
  277. package/dist/components/table-test.js +1 -0
  278. package/dist/design-system/design-system.css +1 -1
  279. package/dist/design-system/design-system.esm.js +1 -1
  280. package/dist/design-system/index.esm.js +1 -1
  281. package/dist/design-system/p-03099a57.entry.js +1 -0
  282. package/dist/design-system/p-04be87a4.entry.js +1 -0
  283. package/dist/design-system/{p-e9c28bdc.entry.js → p-09ba9dbc.entry.js} +1 -1
  284. package/dist/design-system/p-0ca594a4.entry.js +1 -0
  285. package/dist/design-system/p-0fbb6d92.entry.js +1 -0
  286. package/dist/design-system/p-12a03c88.entry.js +1 -0
  287. package/dist/design-system/p-15cda79c.entry.js +1 -0
  288. package/dist/design-system/p-1b9e427e.entry.js +1 -0
  289. package/dist/design-system/p-1cbe4b22.entry.js +1 -0
  290. package/dist/design-system/{p-a03ad24f.entry.js → p-1d310832.entry.js} +1 -1
  291. package/dist/design-system/p-2f64dd95.entry.js +1 -0
  292. package/dist/design-system/p-33e4ce64.entry.js +1 -0
  293. package/dist/design-system/{p-14b67a6e.entry.js → p-363da5ff.entry.js} +1 -1
  294. package/dist/design-system/p-3d341993.entry.js +1 -0
  295. package/dist/design-system/p-3f79f1d1.entry.js +1 -0
  296. package/dist/design-system/{p-c59191d3.entry.js → p-40495e05.entry.js} +1 -1
  297. package/dist/design-system/p-4128c17f.entry.js +1 -0
  298. package/dist/design-system/{p-614c9883.entry.js → p-4a53d7b0.entry.js} +1 -1
  299. package/dist/design-system/{p-9ae589c4.entry.js → p-4dcadde3.entry.js} +1 -1
  300. package/dist/design-system/{p-62992b73.entry.js → p-53bc77f8.entry.js} +1 -1
  301. package/dist/design-system/{p-28058050.entry.js → p-5a63febd.entry.js} +1 -1
  302. package/dist/design-system/p-656acb07.entry.js +1 -0
  303. package/dist/design-system/{p-30055371.entry.js → p-6c71d7b7.entry.js} +1 -1
  304. package/dist/design-system/{p-7a18a52b.entry.js → p-73acee07.entry.js} +1 -1
  305. package/dist/design-system/p-748ece8e.entry.js +1 -0
  306. package/dist/design-system/p-7e09fdd5.entry.js +1 -0
  307. package/dist/design-system/{p-4272b9e6.entry.js → p-84a329fb.entry.js} +1 -1
  308. package/dist/design-system/p-867ec4ee.entry.js +1 -0
  309. package/dist/design-system/p-8acf3b67.entry.js +1 -0
  310. package/dist/design-system/p-8d2328ae.entry.js +1 -0
  311. package/dist/design-system/{p-dee605b1.entry.js → p-9af7e19a.entry.js} +1 -1
  312. package/dist/design-system/p-BqHL8W3c.js +2 -0
  313. package/dist/design-system/{p-DSRYrM1n.js → p-COK6PVLC.js} +1 -1
  314. package/dist/design-system/p-DOXMJi-V.js +1 -0
  315. package/dist/design-system/{p-72b564ed.entry.js → p-a129711d.entry.js} +1 -1
  316. package/dist/design-system/p-a24c3431.entry.js +1 -0
  317. package/dist/design-system/p-a27718c1.entry.js +1 -0
  318. package/dist/design-system/{p-3d10be45.entry.js → p-a9a91e69.entry.js} +1 -1
  319. package/dist/design-system/p-ae1800c0.entry.js +1 -0
  320. package/dist/design-system/p-b1fe12f8.entry.js +1 -0
  321. package/dist/design-system/p-b60ae063.entry.js +1 -0
  322. package/dist/design-system/p-b6e02544.entry.js +1 -0
  323. package/dist/design-system/p-bYCOh35g.js +1 -0
  324. package/dist/design-system/{p-fa8b64c2.entry.js → p-c2f3470f.entry.js} +1 -1
  325. package/dist/design-system/{p-85e22acd.entry.js → p-c4e68815.entry.js} +1 -1
  326. package/dist/design-system/p-c98ed6ae.entry.js +1 -0
  327. package/dist/design-system/p-ca80379a.entry.js +1 -0
  328. package/dist/design-system/{p-5d2e8779.entry.js → p-d04551be.entry.js} +1 -1
  329. package/dist/design-system/p-e0f9e5b5.entry.js +1 -0
  330. package/dist/design-system/p-e1fdd540.entry.js +1 -0
  331. package/dist/design-system/{p-2bd887ca.entry.js → p-e33389b8.entry.js} +1 -1
  332. package/dist/design-system/p-e78faea6.entry.js +1 -0
  333. package/dist/design-system/p-e9f24d23.entry.js +1 -0
  334. package/dist/design-system/{p-00207f08.entry.js → p-ec79fefd.entry.js} +1 -1
  335. package/dist/design-system/{p-067b0b3c.entry.js → p-f3a60f61.entry.js} +1 -1
  336. package/dist/design-system/p-f9b9204d.entry.js +1 -0
  337. package/dist/design-system/{p-13fed1bd.entry.js → p-fd296c73.entry.js} +1 -1
  338. package/dist/design-system/p-sZMi_32I.js +1 -0
  339. package/dist/esm/{component.modal-mO5GcwI3.js → component.modal-DOXMJi-V.js} +14 -0
  340. package/dist/esm/constants-sZMi_32I.js +3 -0
  341. package/dist/esm/design-system.js +3 -4
  342. package/dist/esm/{index-DsU722JF.js → index-BqHL8W3c.js} +128 -10
  343. package/dist/esm/index.js +103 -33
  344. package/dist/esm/loader.js +3 -4
  345. package/dist/esm/sd-action-modal.entry.js +3 -3
  346. package/dist/esm/sd-badge.entry.js +2 -2
  347. package/dist/esm/sd-barcode-input.entry.js +3 -3
  348. package/dist/esm/sd-button-v2_2.entry.js +9 -8
  349. package/dist/esm/sd-button_4.entry.js +56 -18
  350. package/dist/esm/sd-calendar.entry.js +1 -1
  351. package/dist/esm/sd-card.entry.js +2 -2
  352. package/dist/esm/sd-checkbox.entry.js +30 -5
  353. package/dist/esm/sd-circle-progress.entry.js +69 -0
  354. package/dist/esm/sd-confirm-modal_2.entry.js +183 -0
  355. package/dist/esm/sd-date-box.entry.js +1 -1
  356. package/dist/esm/sd-date-picker-calendar.entry.js +3 -3
  357. package/dist/esm/sd-date-picker-trigger.entry.js +4 -4
  358. package/dist/esm/{sd-date-picker.config-C4i826lM.js → sd-date-picker.config-bYCOh35g.js} +3 -3
  359. package/dist/esm/sd-date-picker.entry.js +4 -4
  360. package/dist/esm/sd-date-range-picker-calendar.entry.js +3 -3
  361. package/dist/esm/sd-date-range-picker.entry.js +4 -4
  362. package/dist/esm/sd-dropdown-button.entry.js +10 -5
  363. package/dist/esm/sd-file-picker.entry.js +1 -1
  364. package/dist/esm/sd-form.entry.js +1 -1
  365. package/dist/esm/sd-ghost-button.entry.js +15 -6
  366. package/dist/esm/sd-guide.entry.js +2 -2
  367. package/dist/esm/sd-input_2.entry.js +7 -7
  368. package/dist/esm/sd-loading-container.entry.js +27 -0
  369. package/dist/esm/sd-modal-container.entry.js +45 -2
  370. package/dist/esm/sd-number-input.entry.js +5 -10
  371. package/dist/esm/{sd-select-v2.entry.js → sd-pagination_2.entry.js} +90 -5
  372. package/dist/esm/sd-popover.entry.js +4 -4
  373. package/dist/esm/sd-portal.entry.js +2 -2
  374. package/dist/esm/sd-progress.entry.js +3 -3
  375. package/dist/esm/sd-radio-button.entry.js +180 -0
  376. package/dist/esm/sd-radio-group.entry.js +1 -1
  377. package/dist/esm/sd-radio.entry.js +6 -6
  378. package/dist/esm/sd-select-dropdown_2.entry.js +4 -4
  379. package/dist/esm/sd-select-group.entry.js +3 -3
  380. package/dist/esm/sd-select-multiple-group.entry.js +2 -2
  381. package/dist/esm/sd-select-multiple.entry.js +3 -3
  382. package/dist/esm/sd-select-option-group.entry.js +4 -4
  383. package/dist/esm/sd-select-v2-list-item_4.entry.js +656 -0
  384. package/dist/esm/sd-select.entry.js +177 -0
  385. package/dist/esm/sd-switch.entry.js +108 -0
  386. package/dist/esm/sd-table.entry.js +424 -651
  387. package/dist/esm/sd-tabs.entry.js +3 -3
  388. package/dist/esm/sd-tag.entry.js +6 -5
  389. package/dist/esm/sd-tbody.entry.js +64 -0
  390. package/dist/esm/sd-td.entry.js +56 -0
  391. package/dist/esm/sd-text-link.entry.js +10 -12
  392. package/dist/esm/sd-textarea.entry.js +2 -2
  393. package/dist/esm/sd-thead.entry.js +177 -0
  394. package/dist/esm/sd-toast-container.entry.js +2 -2
  395. package/dist/esm/sd-toast.entry.js +3 -3
  396. package/dist/esm/sd-toggle.entry.js +96 -13
  397. package/dist/esm/sd-tr.entry.js +169 -0
  398. package/dist/esm/table-test.entry.js +94 -0
  399. package/dist/esm/{tooltipArrow-CJuzsrdH.js → tooltipArrow-BcsrQx1U.js} +1 -1
  400. package/dist/types/__mocks__/nanoid-non-secure.d.ts +2 -0
  401. package/dist/types/__mocks__/nanoid.d.ts +1 -0
  402. package/dist/types/components/sd-button-v2/sd-button-v2.d.ts +1 -0
  403. package/dist/types/components/sd-checkbox/sd-checkbox.config.d.ts +3 -0
  404. package/dist/types/components/sd-checkbox/sd-checkbox.d.ts +2 -0
  405. package/dist/types/components/sd-circle-progress/sd-circle-progress.config.d.ts +9 -0
  406. package/dist/types/components/sd-circle-progress/sd-circle-progress.d.ts +8 -0
  407. package/dist/types/components/sd-dropdown-button/sd-dropdown-button.config.d.ts +1 -0
  408. package/dist/types/components/sd-field/sd-field.config.d.ts +9 -0
  409. package/dist/types/components/sd-field/sd-field.d.ts +2 -0
  410. package/dist/types/components/sd-ghost-button/sd-ghost-button.config.d.ts +1 -1
  411. package/dist/types/components/sd-loading-container/sd-loading-container.config.d.ts +4 -0
  412. package/dist/types/components/sd-loading-container/sd-loading-container.d.ts +8 -0
  413. package/dist/types/components/sd-loading-modal/sd-loading-modal.config.d.ts +25 -0
  414. package/dist/types/components/sd-loading-modal/sd-loading-modal.d.ts +15 -0
  415. package/dist/types/components/sd-modal-container/sd-modal-container.config.d.ts +10 -0
  416. package/dist/types/components/sd-modal-container/sd-modal-container.d.ts +6 -2
  417. package/dist/types/components/sd-number-input/sd-number-input.config.d.ts +0 -1
  418. package/dist/types/components/sd-radio-button/sd-radio-button.config.d.ts +44 -0
  419. package/dist/types/components/{sd-radio-button-group/sd-radio-button-group.d.ts → sd-radio-button/sd-radio-button.d.ts} +4 -3
  420. package/dist/types/components/sd-select-v2/sd-select-v2.config.d.ts +1 -0
  421. package/dist/types/components/sd-switch/sd-switch.config.d.ts +22 -0
  422. package/dist/types/components/{sd-toggle-button/sd-toggle-button.d.ts → sd-switch/sd-switch.d.ts} +2 -6
  423. package/dist/types/components/sd-table/constants.d.ts +44 -0
  424. package/dist/types/components/sd-table/sd-table.d.ts +103 -115
  425. package/dist/types/components/sd-table/sd-tbody/sd-tbody.d.ts +14 -0
  426. package/dist/types/components/sd-table/sd-td/sd-td.d.ts +12 -0
  427. package/dist/types/components/sd-table/sd-thead/sd-thead.d.ts +36 -0
  428. package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +34 -0
  429. package/dist/types/components/sd-toggle/sd-toggle.config.d.ts +32 -0
  430. package/dist/types/components/sd-toggle/sd-toggle.d.ts +0 -3
  431. package/dist/types/components/table-test/table-test.d.ts +46 -0
  432. package/dist/types/components.d.ts +532 -141
  433. package/dist/types/index.d.ts +3 -1
  434. package/dist/types/utils/loading.d.ts +7 -0
  435. package/dist/types/utils/modal.d.ts +19 -3
  436. package/hydrate/index.js +2472 -971
  437. package/hydrate/index.mjs +2472 -971
  438. package/package.json +2 -2
  439. package/readme.md +1 -1
  440. package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -5
  441. package/dist/cjs/sd-confirm-modal.cjs.entry.js +0 -106
  442. package/dist/cjs/sd-loading-spinner_3.cjs.entry.js +0 -283
  443. package/dist/cjs/sd-radio-button-group.cjs.entry.js +0 -57
  444. package/dist/cjs/sd-select-v2-list-item_2.cjs.entry.js +0 -150
  445. package/dist/cjs/sd-select-v2-listbox_2.cjs.entry.js +0 -353
  446. package/dist/cjs/sd-select-v2.config-7xBJQhvx.js +0 -171
  447. package/dist/cjs/sd-toggle-button.cjs.entry.js +0 -49
  448. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.css +0 -44
  449. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js +0 -46
  450. package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.css +0 -85
  451. package/dist/collection/components/sd-toggle-button/sd-toggle-button.css +0 -47
  452. package/dist/components/p-5OtzmjLh.js +0 -1
  453. package/dist/components/p-BFaIxm6b.js +0 -1
  454. package/dist/components/p-BP-QKaKz.js +0 -1
  455. package/dist/components/p-BSZadK9N.js +0 -1
  456. package/dist/components/p-BbtO5CEW.js +0 -1
  457. package/dist/components/p-BxPyZJaz.js +0 -1
  458. package/dist/components/p-C-qSDgVU.js +0 -1
  459. package/dist/components/p-C4i826lM.js +0 -1
  460. package/dist/components/p-CEa1HSpw.js +0 -1
  461. package/dist/components/p-CYRGa0VL.js +0 -1
  462. package/dist/components/p-ClgihpRm.js +0 -1
  463. package/dist/components/p-D-Y0-FQk.js +0 -1
  464. package/dist/components/p-D-pFdq6g.js +0 -1
  465. package/dist/components/p-DPipeCRI.js +0 -1
  466. package/dist/components/p-DSYw-7RA.js +0 -1
  467. package/dist/components/p-DXAB0k9r.js +0 -1
  468. package/dist/components/p-mO5GcwI3.js +0 -1
  469. package/dist/components/sd-loading-spinner.js +0 -1
  470. package/dist/components/sd-radio-button-group.js +0 -1
  471. package/dist/components/sd-toggle-button.js +0 -1
  472. package/dist/design-system/p-0e6f5a99.entry.js +0 -1
  473. package/dist/design-system/p-22a4972a.entry.js +0 -1
  474. package/dist/design-system/p-27df33c1.entry.js +0 -1
  475. package/dist/design-system/p-3ac6a626.entry.js +0 -1
  476. package/dist/design-system/p-3f04d68a.entry.js +0 -1
  477. package/dist/design-system/p-6610c16b.entry.js +0 -1
  478. package/dist/design-system/p-739ac181.entry.js +0 -1
  479. package/dist/design-system/p-7dce4241.entry.js +0 -1
  480. package/dist/design-system/p-7e4c0a36.entry.js +0 -1
  481. package/dist/design-system/p-8b5b2866.entry.js +0 -1
  482. package/dist/design-system/p-90f51f65.entry.js +0 -1
  483. package/dist/design-system/p-C3eQSZx-.js +0 -1
  484. package/dist/design-system/p-C4i826lM.js +0 -1
  485. package/dist/design-system/p-DQuL1Twl.js +0 -1
  486. package/dist/design-system/p-DsU722JF.js +0 -2
  487. package/dist/design-system/p-a6bc8512.entry.js +0 -1
  488. package/dist/design-system/p-afeb740a.entry.js +0 -1
  489. package/dist/design-system/p-b3e0e6f4.entry.js +0 -1
  490. package/dist/design-system/p-ba90dc5f.entry.js +0 -1
  491. package/dist/design-system/p-bad88292.entry.js +0 -1
  492. package/dist/design-system/p-cbb5575d.entry.js +0 -1
  493. package/dist/design-system/p-ce6a0b0f.entry.js +0 -1
  494. package/dist/design-system/p-d07448fe.entry.js +0 -1
  495. package/dist/design-system/p-d1a94401.entry.js +0 -1
  496. package/dist/design-system/p-d5b5cfc7.entry.js +0 -1
  497. package/dist/design-system/p-d75e0dc0.entry.js +0 -1
  498. package/dist/design-system/p-e9ed9c00.entry.js +0 -1
  499. package/dist/design-system/p-f8567970.entry.js +0 -1
  500. package/dist/design-system/p-fa22f13c.entry.js +0 -1
  501. package/dist/design-system/p-fbac6160.entry.js +0 -1
  502. package/dist/design-system/p-mO5GcwI3.js +0 -1
  503. package/dist/esm/app-globals-DQuL1Twl.js +0 -3
  504. package/dist/esm/sd-confirm-modal.entry.js +0 -104
  505. package/dist/esm/sd-loading-spinner_3.entry.js +0 -279
  506. package/dist/esm/sd-radio-button-group.entry.js +0 -55
  507. package/dist/esm/sd-select-v2-list-item_2.entry.js +0 -147
  508. package/dist/esm/sd-select-v2-listbox_2.entry.js +0 -350
  509. package/dist/esm/sd-select-v2.config-C3eQSZx-.js +0 -158
  510. package/dist/esm/sd-toggle-button.entry.js +0 -47
  511. package/dist/types/components/sd-loading-spinner/sd-loading-spinner.d.ts +0 -5
@@ -1,353 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-BQt-JC6r.js');
4
- var sdSelectV2_config = require('./sd-select-v2.config-7xBJQhvx.js');
5
-
6
- const sdSelectV2ListboxCss = () => `sd-select-v2-listbox{display:block}sd-select-v2-listbox .sd-select-v2-listbox{display:flex;flex-direction:column;min-width:var(--listbox-trigger-width);max-width:var(--listbox-max-width);max-height:var(--listbox-max-height);width:fit-content;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:0}sd-select-v2-listbox .sd-select-v2-listbox__empty{padding:12px;text-align:center;font-size:12px;line-height:20px;color:#888888}`;
7
-
8
- const SdSelectV2Listbox = class {
9
- constructor(hostRef) {
10
- index.registerInstance(this, hostRef);
11
- this.optionSelect = index.createEvent(this, "sdOptionSelect", 7);
12
- }
13
- name = 'default';
14
- options = [];
15
- value = null;
16
- emitValue = false;
17
- triggerWidth = '200px';
18
- maxWidth = '640px';
19
- maxHeight = '260px';
20
- searchKeyword = '';
21
- isScrolled = false;
22
- focusedIndex = -1;
23
- optionSelect;
24
- listEl;
25
- lastScrolledIndex = -1;
26
- keydownAttached = false;
27
- suppressHover = false;
28
- get isDepth() {
29
- return this.name === 'default_depth' || this.name === 'multi_depth';
30
- }
31
- get isMulti() {
32
- return this.name === 'multi' || this.name === 'multi_depth';
33
- }
34
- get showSearch() {
35
- const count = this.isDepth ? sdSelectV2_config.countLeaves(this.options) : this.options.length;
36
- return count >= sdSelectV2_config.SEARCH_THRESHOLD;
37
- }
38
- get filteredOptions() {
39
- if (!this.searchKeyword)
40
- return this.options;
41
- if (this.isDepth)
42
- return sdSelectV2_config.filterTree(this.options, this.searchKeyword);
43
- const keyword = this.searchKeyword.toLowerCase();
44
- return this.options.filter(o => o.label.toLowerCase().includes(keyword));
45
- }
46
- get isEmpty() {
47
- if (this.isDepth)
48
- return sdSelectV2_config.countLeaves(this.filteredOptions) === 0 && this.filteredOptions.length === 0;
49
- return this.filteredOptions.length === 0;
50
- }
51
- getSelectedValues() {
52
- if (!this.value || !Array.isArray(this.value))
53
- return new Set();
54
- if (this.emitValue) {
55
- return new Set(this.value);
56
- }
57
- return new Set(this.value.map(s => s.value));
58
- }
59
- isOptionSelected(option) {
60
- if (this.isMulti) {
61
- return this.getSelectedValues().has(option.value);
62
- }
63
- if (this.emitValue) {
64
- return this.value === option.value;
65
- }
66
- if (this.value != null && typeof this.value === 'object' && !Array.isArray(this.value)) {
67
- return this.value.value === option.value;
68
- }
69
- return this.value === option.value;
70
- }
71
- getGroupSelectionState(option) {
72
- if (!this.isMulti || !option.children)
73
- return false;
74
- const selectedValues = this.getSelectedValues();
75
- if (selectedValues.size === 0)
76
- return false;
77
- const leaves = this.collectVisibleLeaves(option);
78
- if (leaves.length === 0)
79
- return false;
80
- const selectedCount = leaves.filter(l => selectedValues.has(l.value)).length;
81
- if (selectedCount === 0)
82
- return false;
83
- if (selectedCount === leaves.length)
84
- return true;
85
- return null;
86
- }
87
- getCountInfo(option) {
88
- if (!this.isMulti || !option.children)
89
- return undefined;
90
- const selectedValues = this.getSelectedValues();
91
- const leaves = this.collectVisibleLeaves(option);
92
- const selectedCount = leaves.filter(l => selectedValues.has(l.value)).length;
93
- return { selected: selectedCount, total: leaves.length };
94
- }
95
- findOriginalOption(value, options) {
96
- for (const opt of options) {
97
- if (opt.value === value)
98
- return opt;
99
- if (opt.children) {
100
- const found = this.findOriginalOption(value, opt.children);
101
- if (found)
102
- return found;
103
- }
104
- }
105
- return undefined;
106
- }
107
- collectLeaves(option) {
108
- if (!option.children)
109
- return [option];
110
- return option.children.flatMap(child => this.collectLeaves(child));
111
- }
112
- /**
113
- * Returns the leaves currently visible to the user for the given (possibly
114
- * filtered) option. When a group's own label matched the search keyword its
115
- * `children` is emptied by `filterTree`; in that case we fall back to the
116
- * full original subtree because the user has no way to deselect descendants
117
- * individually.
118
- */
119
- collectVisibleLeaves(option) {
120
- if (!option.children)
121
- return [option];
122
- if (option.children.length === 0) {
123
- const original = this.findOriginalOption(option.value, this.options);
124
- return original ? this.collectLeaves(original) : [];
125
- }
126
- return option.children.flatMap(child => this.collectVisibleLeaves(child));
127
- }
128
- get navigableOptions() {
129
- const items = [];
130
- const walk = (opts) => {
131
- for (const opt of opts) {
132
- const isGroup = !!opt.children;
133
- const isSelectable = !isGroup || this.isMulti;
134
- if (isSelectable && !opt.disabled)
135
- items.push(opt);
136
- if (isGroup && opt.children && opt.children.length > 0)
137
- walk(opt.children);
138
- }
139
- };
140
- walk(this.filteredOptions);
141
- return items;
142
- }
143
- isOptionFocused(option) {
144
- if (this.focusedIndex < 0)
145
- return false;
146
- const focused = this.navigableOptions[this.focusedIndex];
147
- // filterTree 가 매 호출마다 옵션 객체를 새로 복제하기 때문에 참조 비교
148
- // (=== / indexOf) 는 검색이 적용된 동안 항상 실패한다. 고유 식별자인
149
- // value 로 비교해야 한다.
150
- return !!focused && focused.value === option.value;
151
- }
152
- resetFocusOnFilter() {
153
- // 필터가 바뀌면 이전 인덱스가 가리키던 항목이 사라질 수 있으므로
154
- // 새 결과의 첫 항목으로 옮긴다. 결과가 비면 -1.
155
- const items = this.navigableOptions;
156
- this.focusedIndex = items.length > 0 ? 0 : -1;
157
- // 키보드 네비게이션 직후 마우스가 한 번도 안 움직인 채로 사용자가
158
- // 검색을 시작했다면 hover suppression 이 켜진 상태로 남아있을 수 있다.
159
- // 검색이라는 명백한 사용자 의도 전환 시점에 강제로 해제한다.
160
- if (this.suppressHover) {
161
- document.removeEventListener('mousemove', this.releaseHoverSuppress, true);
162
- this.suppressHover = false;
163
- }
164
- }
165
- handleSearchFilter = (e) => {
166
- this.searchKeyword = e.detail;
167
- };
168
- handleScroll = (e) => {
169
- this.isScrolled = e.target.scrollTop > 0;
170
- };
171
- emitOptionSelect(option) {
172
- this.optionSelect.emit({
173
- option,
174
- leaves: this.collectVisibleLeaves(option),
175
- });
176
- }
177
- handleOptionClick = (e) => {
178
- e.stopPropagation();
179
- this.emitOptionSelect(e.detail);
180
- };
181
- handleOptionHover = (option) => {
182
- if (this.suppressHover)
183
- return;
184
- const idx = this.navigableOptions.findIndex(o => o.value === option.value);
185
- if (idx >= 0)
186
- this.focusedIndex = idx;
187
- };
188
- releaseHoverSuppress = () => {
189
- this.suppressHover = false;
190
- document.removeEventListener('mousemove', this.releaseHoverSuppress, true);
191
- };
192
- handleKeyDown = (e) => {
193
- const items = this.navigableOptions;
194
- if (e.key === 'ArrowDown') {
195
- if (items.length === 0)
196
- return;
197
- e.preventDefault();
198
- e.stopPropagation();
199
- this.focusedIndex = this.focusedIndex < 0 ? 0 : (this.focusedIndex + 1) % items.length;
200
- this.beginHoverSuppression();
201
- }
202
- else if (e.key === 'ArrowUp') {
203
- if (items.length === 0)
204
- return;
205
- e.preventDefault();
206
- e.stopPropagation();
207
- this.focusedIndex = this.focusedIndex <= 0 ? items.length - 1 : this.focusedIndex - 1;
208
- this.beginHoverSuppression();
209
- }
210
- else if (e.key === 'Enter') {
211
- if (this.focusedIndex < 0 || this.focusedIndex >= items.length)
212
- return;
213
- e.preventDefault();
214
- e.stopPropagation();
215
- this.emitOptionSelect(items[this.focusedIndex]);
216
- }
217
- };
218
- /**
219
- * 키보드로 인덱스를 옮기면 자동 스크롤이 일어나는데, 정지한 마우스 커서
220
- * 아래로 다른 항목이 미끄러져 들어오면서 mouseenter 가 발화해 인덱스를
221
- * 다시 덮어쓰는 문제를 막는다. 실제로 마우스가 한 번이라도 움직이기 전까지
222
- * hover 갱신을 무시한다.
223
- */
224
- beginHoverSuppression() {
225
- if (this.suppressHover)
226
- return;
227
- this.suppressHover = true;
228
- document.addEventListener('mousemove', this.releaseHoverSuppress, true);
229
- }
230
- /**
231
- * 리스트 컨테이너 내부에서만 스크롤한다. `scrollIntoView` 는 조상 스크롤
232
- * 컨테이너(=문서 자체)까지 함께 스크롤시키므로 사용하지 않는다.
233
- */
234
- scrollFocusedIntoView() {
235
- const list = this.listEl;
236
- const focusedEl = list?.querySelector('.sd-select-v2-list-item--focused');
237
- if (!list || !focusedEl)
238
- return;
239
- const listRect = list.getBoundingClientRect();
240
- const itemRect = focusedEl.getBoundingClientRect();
241
- if (itemRect.top < listRect.top) {
242
- list.scrollTop += itemRect.top - listRect.top;
243
- }
244
- else if (itemRect.bottom > listRect.bottom) {
245
- list.scrollTop += itemRect.bottom - listRect.bottom;
246
- }
247
- }
248
- /**
249
- * sd-portal 이 슬롯 노드를 body 로 이동시키면서 disconnect → connect 가
250
- * 발생하므로, 키보드 리스너는 한 번만 실행되는 componentDidLoad 가 아니라
251
- * connectedCallback / disconnectedCallback 에 묶어 매번 재부착한다.
252
- * capture phase 로 잡아 포커스가 검색 input 에 있어도 ↑/↓/Enter 가
253
- * input 의 기본 동작(커서 이동)·페이지 스크롤보다 먼저 처리되도록 한다.
254
- */
255
- connectedCallback() {
256
- if (!this.keydownAttached) {
257
- document.addEventListener('keydown', this.handleKeyDown, true);
258
- this.keydownAttached = true;
259
- }
260
- }
261
- disconnectedCallback() {
262
- if (this.keydownAttached) {
263
- document.removeEventListener('keydown', this.handleKeyDown, true);
264
- this.keydownAttached = false;
265
- }
266
- if (this.suppressHover) {
267
- document.removeEventListener('mousemove', this.releaseHoverSuppress, true);
268
- this.suppressHover = false;
269
- }
270
- }
271
- componentDidRender() {
272
- if (this.focusedIndex !== this.lastScrolledIndex) {
273
- this.lastScrolledIndex = this.focusedIndex;
274
- if (this.focusedIndex >= 0)
275
- this.scrollFocusedIntoView();
276
- }
277
- }
278
- renderOptions(options, depth = 1) {
279
- return options.map(option => {
280
- const isGroup = !!option.children;
281
- return [
282
- 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) }),
283
- isGroup && option.children ? this.renderOptions(option.children, depth + 1) : null,
284
- ];
285
- });
286
- }
287
- render() {
288
- const cssVars = {
289
- '--listbox-trigger-width': this.triggerWidth,
290
- '--listbox-max-width': this.maxWidth,
291
- '--listbox-max-height': this.maxHeight,
292
- '--listbox-radius': `${sdSelectV2_config.LIST_BOX_LAYOUT.radius}px`,
293
- };
294
- return (index.h("div", { key: '92289973077789bd6f9657bb5b2e5567845bdc19', class: "sd-select-v2-listbox", style: cssVars }, this.showSearch && (index.h("sd-select-v2-list-item-search", { key: 'a26b9ba36f42165ab80347ea4f0194b98746a9a6', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), index.h("div", { key: 'd563a179278ec5c6eaa0b4c71d18cc5055bbebb5', class: "sd-select-v2-listbox__list", onScroll: this.handleScroll, ref: el => {
295
- this.listEl = el;
296
- } }, this.isEmpty ? (index.h("div", { class: "sd-select-v2-listbox__empty" }, sdSelectV2_config.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) })))))));
297
- }
298
- static get watchers() { return {
299
- "searchKeyword": [{
300
- "resetFocusOnFilter": 0
301
- }]
302
- }; }
303
- };
304
- SdSelectV2Listbox.style = sdSelectV2ListboxCss();
305
-
306
- 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)}`;
307
-
308
- const SdSelectV2Trigger = class {
309
- constructor(hostRef) {
310
- index.registerInstance(this, hostRef);
311
- this.triggerClick = index.createEvent(this, "sdTriggerClick", 7);
312
- }
313
- displayText = '';
314
- placeholder = '선택';
315
- disabled = false;
316
- isOpen = false;
317
- triggerClick;
318
- handleClick = () => {
319
- if (this.disabled)
320
- return;
321
- this.triggerClick.emit();
322
- };
323
- render() {
324
- const hasValue = !!this.displayText;
325
- const cssVars = {
326
- '--trigger-padding-x': `${sdSelectV2_config.SELECT_LAYOUT.paddingX}px`,
327
- '--trigger-gap': `${sdSelectV2_config.SELECT_LAYOUT.gap}px`,
328
- '--trigger-font-size': `${sdSelectV2_config.SELECT_TYPOGRAPHY.fontSize}px`,
329
- '--trigger-line-height': `${sdSelectV2_config.SELECT_TYPOGRAPHY.lineHeight}px`,
330
- '--trigger-font-weight': sdSelectV2_config.SELECT_TYPOGRAPHY.fontWeight,
331
- '--trigger-color': this.disabled
332
- ? sdSelectV2_config.SELECT_COLORS.text.disabled
333
- : hasValue
334
- ? sdSelectV2_config.SELECT_COLORS.text.default
335
- : sdSelectV2_config.SELECT_COLORS.icon.default,
336
- '--trigger-icon-color': this.disabled
337
- ? sdSelectV2_config.SELECT_COLORS.icon.disabled
338
- : sdSelectV2_config.SELECT_COLORS.icon.default,
339
- };
340
- return (index.h("div", { key: '02e382b2a1867fa8816c11e2d07bb042a15027fb', class: {
341
- 'sd-select-v2-trigger': true,
342
- 'sd-select-v2-trigger--open': this.isOpen,
343
- 'sd-select-v2-trigger--disabled': this.disabled,
344
- }, style: cssVars, onClick: this.handleClick }, index.h("div", { key: 'e08360c05f765ccc0c9dbefe8e402a66edd1c242', class: "sd-select-v2-trigger__content" }, index.h("span", { key: 'dc00441e24e17b9bb28a36892ff3564d4bb40a42', class: "sd-select-v2-trigger__text" }, hasValue ? this.displayText : this.placeholder), index.h("sd-icon", { key: '3d78221139a6df71aa349277ed0f8d73fbba23ba', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
345
- 'sd-select-v2-trigger__icon': true,
346
- 'sd-select-v2-trigger__icon--open': this.isOpen,
347
- } }))));
348
- }
349
- };
350
- SdSelectV2Trigger.style = sdSelectV2TriggerCss();
351
-
352
- exports.sd_select_v2_listbox = SdSelectV2Listbox;
353
- exports.sd_select_v2_trigger = SdSelectV2Trigger;
@@ -1,171 +0,0 @@
1
- 'use strict';
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
- var listBoxTokens = {
62
- listBox: listBox
63
- };
64
-
65
- // ── Select Trigger Tokens ──
66
- const SELECT_LAYOUT = {
67
- paddingX: selectTokens.select.paddingX,
68
- gap: selectTokens.select.gap};
69
- const SELECT_TYPOGRAPHY = {
70
- fontSize: selectTokens.select.typography.fontSize,
71
- lineHeight: selectTokens.select.typography.lineHeight,
72
- fontWeight: selectTokens.select.typography.fontWeight,
73
- };
74
- const SELECT_COLORS = {
75
- icon: {
76
- default: selectTokens.select.icon.default,
77
- disabled: selectTokens.select.icon.disabled,
78
- },
79
- text: {
80
- default: selectTokens.select.text.default,
81
- disabled: selectTokens.select.text.disabled,
82
- },
83
- };
84
- // ── ListItem Tokens ──
85
- const LIST_ITEM_LAYOUT = {
86
- paddingY: listItemTokens.listItem.paddingY,
87
- paddingRight: listItemTokens.listItem.paddingRight,
88
- paddingLeft: {
89
- depth1: listItemTokens.listItem.paddingLeft.depth1,
90
- depth2: listItemTokens.listItem.paddingLeft.depth2,
91
- depth3: listItemTokens.listItem.paddingLeft.depth3,
92
- },
93
- gap: listItemTokens.listItem.gap,
94
- };
95
- const LIST_ITEM_TYPOGRAPHY = {
96
- fontSize: listItemTokens.listItem.typography.fontSize,
97
- lineHeight: listItemTokens.listItem.typography.lineHeight,
98
- fontWeight: listItemTokens.listItem.typography.fontWeight,
99
- };
100
- const LIST_ITEM_COLORS = {
101
- bg: {
102
- default: listItemTokens.listItem.bg.default,
103
- hover: listItemTokens.listItem.bg.hover,
104
- },
105
- content: {
106
- default: listItemTokens.listItem.content.default,
107
- hover: listItemTokens.listItem.content.hover,
108
- disabled: listItemTokens.listItem.content.disabled,
109
- },
110
- depth1: {
111
- bg: listItemTokens.listItem.depth1.bg.default,
112
- border: listItemTokens.listItem.depth1.border.color,
113
- borderWidth: listItemTokens.listItem.depth1.border.width,
114
- },
115
- depth2: {
116
- bg: listItemTokens.listItem.depth2.middle.bg,
117
- }};
118
- // ── ListBox Tokens ──
119
- const LIST_BOX_LAYOUT = {
120
- radius: listBoxTokens.listBox.radius,
121
- };
122
- // ── Constants ──
123
- const SEARCH_THRESHOLD = 11;
124
- const SEARCH_DEBOUNCE_MS = 1000;
125
- const EMPTY_MESSAGE = '표시할 항목이 없습니다.';
126
- // ── Utilities ──
127
- function countLeaves(options) {
128
- return options.reduce((sum, option) => {
129
- if (option.children) {
130
- return sum + countLeaves(option.children);
131
- }
132
- return sum + 1;
133
- }, 0);
134
- }
135
- function filterTree(options, keyword) {
136
- const lowerKeyword = keyword.toLowerCase();
137
- return options.reduce((acc, option) => {
138
- const selfMatch = option.label.toLowerCase().includes(lowerKeyword);
139
- if (option.children) {
140
- // 그룹: 자식은 항상 추가로 필터링한다.
141
- // - 자식 중 일치하는 게 있으면 그 자식들만 노출
142
- // - 자식 매칭이 없더라도 그룹명이 매칭되면 그룹 헤더는 그대로 노출
143
- // (이때 children 은 빈 배열로 두고, 선택 동작은 collectVisibleLeaves
144
- // 의 fallback 이 원본 트리를 사용해 처리한다)
145
- const filteredChildren = filterTree(option.children, keyword);
146
- if (filteredChildren.length > 0) {
147
- acc.push({ ...option, children: filteredChildren });
148
- }
149
- else if (selfMatch) {
150
- acc.push({ ...option, children: [] });
151
- }
152
- }
153
- else if (selfMatch) {
154
- acc.push({ ...option });
155
- }
156
- return acc;
157
- }, []);
158
- }
159
-
160
- exports.EMPTY_MESSAGE = EMPTY_MESSAGE;
161
- exports.LIST_BOX_LAYOUT = LIST_BOX_LAYOUT;
162
- exports.LIST_ITEM_COLORS = LIST_ITEM_COLORS;
163
- exports.LIST_ITEM_LAYOUT = LIST_ITEM_LAYOUT;
164
- exports.LIST_ITEM_TYPOGRAPHY = LIST_ITEM_TYPOGRAPHY;
165
- exports.SEARCH_DEBOUNCE_MS = SEARCH_DEBOUNCE_MS;
166
- exports.SEARCH_THRESHOLD = SEARCH_THRESHOLD;
167
- exports.SELECT_COLORS = SELECT_COLORS;
168
- exports.SELECT_LAYOUT = SELECT_LAYOUT;
169
- exports.SELECT_TYPOGRAPHY = SELECT_TYPOGRAPHY;
170
- exports.countLeaves = countLeaves;
171
- exports.filterTree = filterTree;
@@ -1,49 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-BQt-JC6r.js');
4
-
5
- const sdToggleButtonCss = () => `sd-toggle-button{display:inline-block;line-height:0}.sd-toggle-button{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:4px 12px;gap:6px;border-radius:14px;border:1px solid #888888;background-color:#FFFFFF;color:#737373;font-size:12px;line-height:20px;font-weight:400;cursor:pointer;transition:border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;white-space:nowrap;user-select:none;box-sizing:border-box}.sd-toggle-button--active{border-color:#0075FF;color:#0075FF}.sd-toggle-button--disabled{background-color:#EEEEEE;border-color:#CCCCCC;color:#888888;cursor:not-allowed}.sd-toggle-button--disabled.sd-toggle-button--active{background-color:#EEEEEE;border-color:#CCCCCC;color:#888888}.sd-toggle-button:hover:not(.sd-toggle-button--disabled):not(.sd-toggle-button--active){border-color:#737373}.sd-toggle-button:hover:not(.sd-toggle-button--disabled).sd-toggle-button--active{border-color:#005CC9;color:#005CC9}`;
6
-
7
- const SdToggleButton = class {
8
- constructor(hostRef) {
9
- index.registerInstance(this, hostRef);
10
- this.change = index.createEvent(this, "sdUpdate", 7);
11
- }
12
- value = false;
13
- label = '';
14
- disabled = false;
15
- isActive = false;
16
- change;
17
- componentWillLoad() {
18
- this.updateActiveState(this.value);
19
- }
20
- componentWillRender() {
21
- this.updateActiveState(this.value);
22
- }
23
- updateActiveState(value) {
24
- this.isActive = value;
25
- }
26
- get buttonClasses() {
27
- const classes = ['sd-toggle-button'];
28
- if (this.isActive) {
29
- classes.push('sd-toggle-button--active');
30
- }
31
- if (this.disabled) {
32
- classes.push('sd-toggle-button--disabled');
33
- }
34
- return classes.join(' ');
35
- }
36
- handleChange = () => {
37
- if (this.disabled)
38
- return;
39
- const newValue = !this.value;
40
- this.value = newValue;
41
- this.change.emit(newValue);
42
- };
43
- render() {
44
- return (index.h("label", { key: '0e933c52b633eec101beec8aa6ec888dc6bc3448', class: this.buttonClasses, "aria-label": this.label || 'toggle button' }, this.label, index.h("input", { key: '833e7c26895e310cb6322b7231345f76f0a409dc', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
45
- }
46
- };
47
- SdToggleButton.style = sdToggleButtonCss();
48
-
49
- exports.sd_toggle_button = SdToggleButton;
@@ -1,44 +0,0 @@
1
- sd-loading-spinner {
2
- display: inline-flex;
3
- width: fit-content;
4
- height: fit-content;
5
- align-items: center;
6
- }
7
- sd-loading-spinner .sd-loading-spinner {
8
- animation: sd-loading-spin 2s linear infinite;
9
- transform-origin: center center;
10
- }
11
- sd-loading-spinner .sd-loading-spinner .path {
12
- animation: sd-loading-spin-path 1.5s ease-in-out infinite;
13
- }
14
- @keyframes sd-loading-spin {
15
- 0% {
16
- transform: rotate3d(0, 0, 1, 0deg);
17
- }
18
- 25% {
19
- transform: rotate3d(0, 0, 1, 90deg);
20
- }
21
- 50% {
22
- transform: rotate3d(0, 0, 1, 180deg);
23
- }
24
- 75% {
25
- transform: rotate3d(0, 0, 1, 270deg);
26
- }
27
- 100% {
28
- transform: rotate3d(0, 0, 1, 359deg);
29
- }
30
- }
31
- @keyframes sd-loading-spin-path {
32
- 0% {
33
- stroke-dasharray: 1, 200;
34
- stroke-dashoffset: 0;
35
- }
36
- 50% {
37
- stroke-dasharray: 89, 200;
38
- stroke-dashoffset: -35px;
39
- }
40
- 100% {
41
- stroke-dasharray: 89, 200;
42
- stroke-dashoffset: -124px;
43
- }
44
- }
@@ -1,46 +0,0 @@
1
- import { Fragment, h } from "@stencil/core";
2
- import { resolveColor } from "../../utils/color";
3
- export class SdLoadingSpinner {
4
- color = '#0075ff';
5
- get resolvedColor() {
6
- return resolveColor(this.color);
7
- }
8
- render() {
9
- return (h(Fragment, { key: 'a86933f554042c2d4b18836d37bb762d17080202' }, h("svg", { key: 'd0f301366f4b28855bf609dc048fdc7d76fd0433', class: "sd-loading-spinner", width: "72px", height: "72px", viewBox: "25 25 50 50", style: { color: this.resolvedColor } }, h("circle", { key: '64068446f4a6ec1892a00ca92da7a3f1f566891c', class: "path", cx: "50", cy: "50", r: "20", fill: "none", stroke: "currentColor", "stroke-width": "5", "stroke-miterlimit": "10" }))));
10
- }
11
- static get is() { return "sd-loading-spinner"; }
12
- static get originalStyleUrls() {
13
- return {
14
- "$": ["sd-loading-spinner.scss"]
15
- };
16
- }
17
- static get styleUrls() {
18
- return {
19
- "$": ["sd-loading-spinner.css"]
20
- };
21
- }
22
- static get properties() {
23
- return {
24
- "color": {
25
- "type": "string",
26
- "mutable": false,
27
- "complexType": {
28
- "original": "string",
29
- "resolved": "string | undefined",
30
- "references": {}
31
- },
32
- "required": false,
33
- "optional": true,
34
- "docs": {
35
- "tags": [],
36
- "text": ""
37
- },
38
- "getter": false,
39
- "setter": false,
40
- "reflect": false,
41
- "attribute": "color",
42
- "defaultValue": "'#0075ff'"
43
- }
44
- };
45
- }
46
- }