@sellmate/design-system 1.0.78 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/dist/cjs/component.table-CMqGfEui.js +66 -0
  2. package/dist/cjs/design-system.cjs.js +2 -2
  3. package/dist/cjs/{index--F2wGuAi.js → index-Cw-78mnC.js} +1 -1
  4. package/dist/cjs/index.cjs.js +5 -5
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/{resolveColor-LhfOKtTZ.js → resolveColor-B0hzQNLG.js} +2 -2
  7. package/dist/cjs/sd-action-modal.cjs.entry.js +3 -3
  8. package/dist/cjs/sd-badge.cjs.entry.js +2 -3
  9. package/dist/cjs/sd-barcode-input.cjs.entry.js +3 -3
  10. package/dist/cjs/{sd-button-v2.config-CnqCQQMi.js → sd-button.config-DH08UNfl.js} +114 -28
  11. package/dist/cjs/{sd-button-v2_2.cjs.entry.js → sd-button_2.cjs.entry.js} +102 -85
  12. package/dist/cjs/sd-calendar.cjs.entry.js +15 -15
  13. package/dist/cjs/sd-card.cjs.entry.js +2 -2
  14. package/dist/cjs/sd-checkbox.cjs.entry.js +4 -4
  15. package/dist/cjs/sd-chip.cjs.entry.js +4 -4
  16. package/dist/cjs/sd-circle-progress.cjs.entry.js +3 -3
  17. package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +19 -11
  18. package/dist/cjs/sd-date-box.cjs.entry.js +9 -4
  19. package/dist/cjs/{sd-date-picker-calendar.cjs.entry.js → sd-date-picker-calendar_2.cjs.entry.js} +59 -6
  20. package/dist/cjs/{sd-date-picker.config-CRgCT5dn.js → sd-date-picker.config-CjvrFpYK.js} +1 -2
  21. package/dist/cjs/sd-date-picker_7.cjs.entry.js +1235 -0
  22. package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +14 -14
  23. package/dist/cjs/sd-dropdown-button.cjs.entry.js +32 -27
  24. package/dist/cjs/{sd-button_4.cjs.entry.js → sd-field_3.cjs.entry.js} +47 -102
  25. package/dist/cjs/sd-form.cjs.entry.js +5 -5
  26. package/dist/cjs/sd-ghost-button.cjs.entry.js +12 -10
  27. package/dist/cjs/sd-guide.cjs.entry.js +11 -11
  28. package/dist/cjs/sd-key-value-table.cjs.entry.js +230 -0
  29. package/dist/cjs/sd-linear-progress.cjs.entry.js +3 -3
  30. package/dist/cjs/sd-loading-container.cjs.entry.js +3 -3
  31. package/dist/cjs/sd-modal-container.cjs.entry.js +3 -3
  32. package/dist/cjs/{sd-pagination_5.cjs.entry.js → sd-pagination_4.cjs.entry.js} +136 -325
  33. package/dist/cjs/sd-popover.cjs.entry.js +18 -11
  34. package/dist/cjs/sd-popup.cjs.entry.js +112 -0
  35. package/dist/cjs/sd-portal.cjs.entry.js +3 -3
  36. package/dist/cjs/sd-radio-button.cjs.entry.js +9 -6
  37. package/dist/cjs/sd-radio.cjs.entry.js +2 -2
  38. package/dist/cjs/sd-select-list-item_2.cjs.entry.js +159 -0
  39. package/dist/cjs/sd-select.config-B19ptCT2.js +178 -0
  40. package/dist/cjs/{sd-select-list-item_4.cjs.entry.js → sd-select_3.cjs.entry.js} +296 -323
  41. package/dist/cjs/sd-switch.cjs.entry.js +2 -2
  42. package/dist/cjs/sd-table.cjs.entry.js +188 -48
  43. package/dist/cjs/sd-table.config-BIpldZtw.js +76 -0
  44. package/dist/cjs/sd-tabs.cjs.entry.js +8 -3
  45. package/dist/cjs/sd-tag.cjs.entry.js +56 -21
  46. package/dist/cjs/sd-td.cjs.entry.js +52 -10
  47. package/dist/cjs/sd-text-link.cjs.entry.js +13 -5
  48. package/dist/cjs/sd-toast-container.cjs.entry.js +5 -5
  49. package/dist/cjs/sd-toast.cjs.entry.js +35 -5
  50. package/dist/cjs/sd-toggle.cjs.entry.js +2 -2
  51. package/dist/cjs/{system-DpTN1vBC.js → system-VmZRYp6V.js} +4 -2
  52. package/dist/cjs/{tooltipArrow-D1-wcNm1.js → tooltipArrow-BjSFKIUq.js} +1 -1
  53. package/dist/collection/collection-manifest.json +4 -3
  54. package/dist/collection/components/assets/CheckboxCheck.js +5 -0
  55. package/dist/collection/components/assets/CheckboxIndeterminate.js +5 -0
  56. package/dist/collection/components/assets/index.js +4 -0
  57. package/dist/collection/components/sd-action-modal/sd-action-modal.css +1 -1
  58. package/dist/collection/components/sd-action-modal/sd-action-modal.js +7 -7
  59. package/dist/collection/components/sd-badge/sd-badge.config.js +10 -1
  60. package/dist/collection/components/sd-badge/sd-badge.js +1 -22
  61. package/dist/collection/components/sd-barcode-input/sd-barcode-input.js +4 -4
  62. package/dist/collection/components/{sd-button-v2/sd-button-v2.config.js → sd-button/sd-button.config.js} +1 -1
  63. package/dist/collection/components/sd-button/sd-button.css +47 -93
  64. package/dist/collection/components/sd-button/sd-button.js +100 -173
  65. package/dist/collection/components/sd-calendar/sd-calendar.js +14 -14
  66. package/dist/collection/components/sd-card/sd-card.js +1 -1
  67. package/dist/collection/components/sd-checkbox/sd-checkbox.js +3 -3
  68. package/dist/collection/components/sd-chip/sd-chip.js +4 -4
  69. package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +1 -1
  70. package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +13 -8
  71. package/dist/collection/components/sd-date-box/sd-date-box.js +8 -3
  72. package/dist/collection/components/sd-date-picker/sd-date-picker-calendar/sd-date-picker-calendar.js +4 -4
  73. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.css +1 -1
  74. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +13 -6
  75. package/dist/collection/components/sd-date-picker/sd-date-picker.js +4 -4
  76. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +12 -12
  77. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +5 -5
  78. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.config.js +7 -3
  79. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +13 -11
  80. package/dist/collection/components/sd-field/sd-field.css +6 -2
  81. package/dist/collection/components/sd-field/sd-field.js +48 -22
  82. package/dist/collection/components/sd-file-picker/sd-file-picker.js +10 -5
  83. package/dist/collection/components/sd-floating-portal/sd-floating-portal.css +1 -3
  84. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +6 -6
  85. package/dist/collection/components/sd-form/sd-form.js +4 -4
  86. package/dist/collection/components/sd-ghost-button/sd-ghost-button.js +12 -10
  87. package/dist/collection/components/sd-guide/sd-guide.css +8 -172
  88. package/dist/collection/components/sd-guide/sd-guide.js +8 -6
  89. package/dist/collection/components/sd-icon/sd-icon.js +4 -4
  90. package/dist/collection/components/sd-input/sd-input.css +4 -2
  91. package/dist/collection/components/sd-input/sd-input.js +6 -6
  92. package/dist/collection/components/sd-key-value-table/sd-key-value-table.config.js +36 -0
  93. package/dist/collection/components/sd-key-value-table/sd-key-value-table.css +119 -0
  94. package/dist/collection/components/sd-key-value-table/sd-key-value-table.js +301 -0
  95. package/dist/collection/components/sd-linear-progress/sd-linear-progress.js +1 -1
  96. package/dist/collection/components/sd-loading-container/sd-loading-container.js +2 -2
  97. package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +6 -3
  98. package/dist/collection/components/sd-modal-container/sd-modal-container.js +2 -2
  99. package/dist/collection/components/sd-number-input/sd-number-input.css +7 -0
  100. package/dist/collection/components/sd-number-input/sd-number-input.js +8 -5
  101. package/dist/collection/components/sd-pagination/sd-pagination.js +3 -3
  102. package/dist/collection/components/sd-popover/sd-popover.js +129 -36
  103. package/dist/collection/components/sd-popup/sd-popup.config.js +34 -0
  104. package/dist/collection/components/sd-popup/sd-popup.css +73 -0
  105. package/dist/collection/components/sd-popup/sd-popup.js +163 -0
  106. package/dist/collection/components/sd-portal/sd-portal.js +2 -2
  107. package/dist/collection/components/sd-radio/sd-radio.js +1 -1
  108. package/dist/collection/components/sd-radio-button/sd-radio-button.js +8 -5
  109. package/dist/collection/components/sd-radio-group/sd-radio-group.js +2 -2
  110. package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +7 -3
  111. package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.css +4 -4
  112. package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +7 -7
  113. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +8 -8
  114. package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +9 -4
  115. package/dist/collection/components/sd-select/sd-select.js +6 -6
  116. package/dist/collection/components/sd-switch/sd-switch.js +1 -1
  117. package/dist/collection/components/sd-table/sd-table.config.js +6 -2
  118. package/dist/collection/components/sd-table/sd-table.css +30 -11
  119. package/dist/collection/components/sd-table/sd-table.js +233 -50
  120. package/dist/collection/components/sd-table/sd-table.stories.helpers.js +2 -3
  121. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +5 -5
  122. package/dist/collection/components/sd-table/sd-td/sd-td.js +111 -9
  123. package/dist/collection/components/sd-table/sd-thead/sd-thead.js +30 -16
  124. package/dist/collection/components/sd-table/sd-tr/sd-tr.css +24 -1
  125. package/dist/collection/components/sd-table/sd-tr/sd-tr.js +116 -19
  126. package/dist/collection/components/sd-tabs/sd-tabs.js +7 -2
  127. package/dist/collection/components/sd-tag/sd-tag.config.js +43 -11
  128. package/dist/collection/components/sd-tag/sd-tag.js +13 -7
  129. package/dist/collection/components/sd-text-link/sd-text-link.css +1 -0
  130. package/dist/collection/components/sd-text-link/sd-text-link.js +10 -4
  131. package/dist/collection/components/sd-textarea/sd-textarea.css +3 -0
  132. package/dist/collection/components/sd-textarea/sd-textarea.js +2 -2
  133. package/dist/collection/components/sd-toast/sd-toast.config.js +14 -0
  134. package/dist/collection/components/sd-toast/sd-toast.css +3 -5
  135. package/dist/collection/components/sd-toast/sd-toast.js +52 -5
  136. package/dist/collection/components/sd-toast-container/sd-toast-container.js +4 -4
  137. package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
  138. package/dist/collection/components/sd-tooltip/sd-tooltip.js +77 -30
  139. package/dist/collection/utils/color/resolveColor.js +2 -2
  140. package/dist/collection/utils/dropdown-manager.js +1 -1
  141. package/dist/collection/utils/modal.js +1 -1
  142. package/dist/collection/utils/toast.js +4 -4
  143. package/dist/components/index.js +1 -1
  144. package/dist/components/p-2wB9cing.js +1 -0
  145. package/dist/components/p-B-sK7I83.js +1 -0
  146. package/dist/components/p-B3D43x7F.js +1 -0
  147. package/dist/components/p-B7mpdnNl.js +1 -0
  148. package/dist/components/{p-TwGlKfsC.js → p-BAcmO7w0.js} +1 -1
  149. package/dist/components/p-BL0ZcHK8.js +1 -0
  150. package/dist/components/p-BXCyVrle.js +1 -0
  151. package/dist/components/p-BY1LGlfc.js +1 -0
  152. package/dist/components/p-BjkROjjt.js +1 -0
  153. package/dist/components/p-Bm3W_eBv.js +1 -0
  154. package/dist/components/p-BnfUIhUj.js +1 -0
  155. package/dist/components/{p-Dcc2Vm6z.js → p-BorUSgEK.js} +1 -1
  156. package/dist/components/{p-Bvq0Vpln.js → p-BsM-fwYd.js} +1 -1
  157. package/dist/components/p-C5CH-s6a.js +1 -0
  158. package/dist/components/p-C7WLft_0.js +1 -0
  159. package/dist/components/p-CK9ciBIR.js +1 -0
  160. package/dist/components/p-CQI40kiY.js +1 -0
  161. package/dist/components/p-CRL7TjSB.js +1 -0
  162. package/dist/components/p-CdOHomUp.js +1 -0
  163. package/dist/components/p-Ch5Yu1qd.js +1 -0
  164. package/dist/components/p-Cktiasfd.js +1 -0
  165. package/dist/components/p-CsVAx6KV.js +1 -0
  166. package/dist/components/p-D0Jiw-Zk.js +1 -0
  167. package/dist/components/p-D5F7wCNo.js +1 -0
  168. package/dist/components/p-DBFgk0rX.js +1 -0
  169. package/dist/components/p-DFLCjX1a.js +1 -0
  170. package/dist/components/p-DL1ac1QS.js +1 -0
  171. package/dist/components/p-DdLntfiw.js +1 -0
  172. package/dist/components/p-DeQcDHpn.js +1 -0
  173. package/dist/components/p-DfK4DiDI.js +1 -0
  174. package/dist/components/p-DhTcn6jX.js +1 -0
  175. package/dist/components/p-Dl8TIEQu.js +1 -0
  176. package/dist/components/p-DyAnn9ea.js +1 -0
  177. package/dist/components/p-GBlVDmy4.js +1 -0
  178. package/dist/components/p-Jts7ueOa.js +1 -0
  179. package/dist/components/p-arZfxxPn.js +1 -0
  180. package/dist/components/p-mmdt-WnS.js +1 -0
  181. package/dist/components/p-nOCYbyW4.js +1 -0
  182. package/dist/components/p-teN3CfOr.js +1 -0
  183. package/dist/components/p-u8teDaMa.js +1 -0
  184. package/dist/components/p-wCNRlKLa.js +1 -0
  185. package/dist/components/sd-action-modal.js +1 -1
  186. package/dist/components/sd-badge.js +1 -1
  187. package/dist/components/sd-barcode-input.js +1 -1
  188. package/dist/components/sd-button.js +1 -1
  189. package/dist/components/sd-calendar.js +1 -1
  190. package/dist/components/sd-card.js +1 -1
  191. package/dist/components/sd-checkbox.js +1 -1
  192. package/dist/components/sd-chip.js +1 -1
  193. package/dist/components/sd-circle-progress.js +1 -1
  194. package/dist/components/sd-confirm-modal.js +1 -1
  195. package/dist/components/sd-date-box.js +1 -1
  196. package/dist/components/sd-date-picker-calendar.js +1 -1
  197. package/dist/components/sd-date-picker-trigger.js +1 -1
  198. package/dist/components/sd-date-picker.js +1 -1
  199. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  200. package/dist/components/sd-date-range-picker.js +1 -1
  201. package/dist/components/sd-dropdown-button.js +1 -1
  202. package/dist/components/sd-field.js +1 -1
  203. package/dist/components/sd-file-picker.js +1 -1
  204. package/dist/components/sd-floating-portal.js +1 -1
  205. package/dist/components/sd-form.js +1 -1
  206. package/dist/components/sd-ghost-button.js +1 -1
  207. package/dist/components/sd-guide.js +1 -1
  208. package/dist/components/sd-icon.js +1 -1
  209. package/dist/components/sd-input.js +1 -1
  210. package/dist/components/sd-key-value-table.d.ts +11 -0
  211. package/dist/components/sd-key-value-table.js +1 -0
  212. package/dist/components/sd-linear-progress.js +1 -1
  213. package/dist/components/sd-loading-container.js +1 -1
  214. package/dist/components/sd-loading-modal.js +1 -1
  215. package/dist/components/sd-modal-container.js +1 -1
  216. package/dist/components/sd-number-input.js +1 -1
  217. package/dist/components/sd-pagination.js +1 -1
  218. package/dist/components/sd-popover.js +1 -1
  219. package/dist/components/{sd-button-v2.d.ts → sd-popup.d.ts} +4 -4
  220. package/dist/components/sd-popup.js +1 -0
  221. package/dist/components/sd-portal.js +1 -1
  222. package/dist/components/sd-radio-button.js +1 -1
  223. package/dist/components/sd-radio-group.js +1 -1
  224. package/dist/components/sd-radio.js +1 -1
  225. package/dist/components/sd-select-list-item-search.js +1 -1
  226. package/dist/components/sd-select-list-item.js +1 -1
  227. package/dist/components/sd-select-listbox.js +1 -1
  228. package/dist/components/sd-select-trigger.js +1 -1
  229. package/dist/components/sd-select.js +1 -1
  230. package/dist/components/sd-switch.js +1 -1
  231. package/dist/components/sd-table.js +1 -1
  232. package/dist/components/sd-tabs.js +1 -1
  233. package/dist/components/sd-tag.js +1 -1
  234. package/dist/components/sd-tbody.js +1 -1
  235. package/dist/components/sd-td.js +1 -1
  236. package/dist/components/sd-text-link.js +1 -1
  237. package/dist/components/sd-textarea.js +1 -1
  238. package/dist/components/sd-thead.js +1 -1
  239. package/dist/components/sd-toast-container.js +1 -1
  240. package/dist/components/sd-toast.js +1 -1
  241. package/dist/components/sd-toggle.js +1 -1
  242. package/dist/components/sd-tooltip.js +1 -1
  243. package/dist/components/sd-tr.js +1 -1
  244. package/dist/design-system/design-system.css +1 -1
  245. package/dist/design-system/design-system.esm.js +1 -1
  246. package/dist/design-system/index.esm.js +1 -1
  247. package/dist/design-system/p-04fdb4b1.entry.js +1 -0
  248. package/dist/design-system/p-05611ff7.entry.js +1 -0
  249. package/dist/design-system/p-0U6dRjlq.js +2 -0
  250. package/dist/design-system/{p-fe9cef6a.entry.js → p-0fe603a4.entry.js} +1 -1
  251. package/dist/design-system/p-100f5887.entry.js +1 -0
  252. package/dist/design-system/p-18c5ae1a.entry.js +1 -0
  253. package/dist/design-system/p-1baa05ae.entry.js +1 -0
  254. package/dist/design-system/p-2a1ef965.entry.js +1 -0
  255. package/dist/design-system/p-2c63404f.entry.js +1 -0
  256. package/dist/design-system/{p-33bc3176.entry.js → p-435ae69e.entry.js} +1 -1
  257. package/dist/design-system/p-43e97572.entry.js +1 -0
  258. package/dist/design-system/p-44d05570.entry.js +1 -0
  259. package/dist/design-system/p-501fae20.entry.js +1 -0
  260. package/dist/design-system/{p-ead3e688.entry.js → p-5705e6d6.entry.js} +1 -1
  261. package/dist/design-system/p-5cbaf1db.entry.js +1 -0
  262. package/dist/design-system/p-5ed0becf.entry.js +1 -0
  263. package/dist/design-system/p-5f1c39b8.entry.js +1 -0
  264. package/dist/design-system/p-66af0ba0.entry.js +1 -0
  265. package/dist/design-system/p-77690440.entry.js +1 -0
  266. package/dist/design-system/p-78cc0289.entry.js +1 -0
  267. package/dist/design-system/p-790165f8.entry.js +1 -0
  268. package/dist/design-system/p-80466582.entry.js +1 -0
  269. package/dist/design-system/{p-e5cebccd.entry.js → p-857c44e8.entry.js} +1 -1
  270. package/dist/design-system/{p-f522c91d.entry.js → p-87c868c3.entry.js} +1 -1
  271. package/dist/design-system/p-8db7d8f2.entry.js +1 -0
  272. package/dist/design-system/p-8ee990bd.entry.js +1 -0
  273. package/dist/design-system/p-8f22106e.entry.js +1 -0
  274. package/dist/design-system/p-BDjErF_K.js +1 -0
  275. package/dist/design-system/p-BnfUIhUj.js +1 -0
  276. package/dist/{components/p-DkJqVXpD.js → design-system/p-C29HUShl.js} +1 -1
  277. package/dist/design-system/{p-BxPyZJaz.js → p-Ce0cmS4R.js} +1 -1
  278. package/dist/design-system/p-CxOCk_ge.js +1 -0
  279. package/dist/design-system/p-GBlVDmy4.js +1 -0
  280. package/dist/design-system/p-a6545130.entry.js +1 -0
  281. package/dist/design-system/p-ae2d45a2.entry.js +1 -0
  282. package/dist/design-system/{p-797517b5.entry.js → p-aeccfb2b.entry.js} +1 -1
  283. package/dist/design-system/p-b0aad445.entry.js +1 -0
  284. package/dist/design-system/p-b3c144ff.entry.js +1 -0
  285. package/dist/design-system/p-caee95b0.entry.js +1 -0
  286. package/dist/design-system/p-d30c823e.entry.js +1 -0
  287. package/dist/design-system/{p-3f7bc660.entry.js → p-d3212544.entry.js} +1 -1
  288. package/dist/design-system/p-d8c41313.entry.js +1 -0
  289. package/dist/design-system/{p-6bfe3612.entry.js → p-de8bb9ba.entry.js} +1 -1
  290. package/dist/design-system/p-e2334c1c.entry.js +1 -0
  291. package/dist/design-system/p-f4d73a0c.entry.js +1 -0
  292. package/dist/design-system/p-fc973500.entry.js +1 -0
  293. package/dist/design-system/p-fe0a5368.entry.js +1 -0
  294. package/dist/design-system/p-mmdt-WnS.js +1 -0
  295. package/dist/esm/component.table-BnfUIhUj.js +64 -0
  296. package/dist/esm/design-system.js +3 -3
  297. package/dist/esm/{index-Cnwbjz1F.js → index-0U6dRjlq.js} +1 -1
  298. package/dist/esm/index.js +5 -5
  299. package/dist/esm/loader.js +3 -3
  300. package/dist/esm/{resolveColor-BxPyZJaz.js → resolveColor-Ce0cmS4R.js} +2 -2
  301. package/dist/esm/sd-action-modal.entry.js +3 -3
  302. package/dist/esm/sd-badge.entry.js +2 -3
  303. package/dist/esm/sd-barcode-input.entry.js +3 -3
  304. package/dist/esm/{sd-button-v2.config-CV4xelxV.js → sd-button.config-BDjErF_K.js} +88 -3
  305. package/dist/esm/{sd-button-v2_2.entry.js → sd-button_2.entry.js} +102 -85
  306. package/dist/esm/sd-calendar.entry.js +15 -15
  307. package/dist/esm/sd-card.entry.js +2 -2
  308. package/dist/esm/sd-checkbox.entry.js +4 -4
  309. package/dist/esm/sd-chip.entry.js +4 -4
  310. package/dist/esm/sd-circle-progress.entry.js +3 -3
  311. package/dist/esm/sd-confirm-modal_2.entry.js +19 -11
  312. package/dist/esm/sd-date-box.entry.js +9 -4
  313. package/dist/esm/{sd-date-picker-calendar.entry.js → sd-date-picker-calendar_2.entry.js} +59 -7
  314. package/dist/esm/{sd-date-picker.config-C2fDbE9d.js → sd-date-picker.config-B6cqMQaM.js} +1 -2
  315. package/dist/esm/sd-date-picker_7.entry.js +1227 -0
  316. package/dist/esm/sd-date-range-picker-calendar.entry.js +14 -14
  317. package/dist/esm/sd-dropdown-button.entry.js +21 -16
  318. package/dist/esm/{sd-button_4.entry.js → sd-field_3.entry.js} +48 -102
  319. package/dist/esm/sd-form.entry.js +5 -5
  320. package/dist/esm/sd-ghost-button.entry.js +12 -10
  321. package/dist/esm/sd-guide.entry.js +11 -11
  322. package/dist/esm/sd-key-value-table.entry.js +228 -0
  323. package/dist/esm/sd-linear-progress.entry.js +3 -3
  324. package/dist/esm/sd-loading-container.entry.js +3 -3
  325. package/dist/esm/sd-modal-container.entry.js +3 -3
  326. package/dist/esm/{sd-pagination_5.entry.js → sd-pagination_4.entry.js} +137 -325
  327. package/dist/esm/sd-popover.entry.js +18 -11
  328. package/dist/esm/sd-popup.entry.js +110 -0
  329. package/dist/esm/sd-portal.entry.js +3 -3
  330. package/dist/esm/sd-radio-button.entry.js +9 -6
  331. package/dist/esm/sd-radio.entry.js +2 -2
  332. package/dist/esm/sd-select-list-item_2.entry.js +156 -0
  333. package/dist/esm/sd-select.config-CxOCk_ge.js +165 -0
  334. package/dist/esm/{sd-select-list-item_4.entry.js → sd-select_3.entry.js} +281 -307
  335. package/dist/esm/sd-switch.entry.js +2 -2
  336. package/dist/esm/{sd-table.config-Bj-EEo7N.js → sd-table.config-B-VgXXT7.js} +16 -46
  337. package/dist/esm/sd-table.entry.js +188 -48
  338. package/dist/esm/sd-tabs.entry.js +8 -3
  339. package/dist/esm/sd-tag.entry.js +56 -21
  340. package/dist/esm/sd-td.entry.js +52 -10
  341. package/dist/esm/sd-text-link.entry.js +13 -5
  342. package/dist/esm/sd-toast-container.entry.js +5 -5
  343. package/dist/esm/sd-toast.entry.js +35 -5
  344. package/dist/esm/sd-toggle.entry.js +2 -2
  345. package/dist/esm/{system-CZ4ltUOw.js → system-GBlVDmy4.js} +4 -2
  346. package/dist/esm/{tooltipArrow-D8sr81Xw.js → tooltipArrow-O5LOsHae.js} +1 -1
  347. package/dist/types/components/assets/CheckboxCheck.d.ts +1 -0
  348. package/dist/types/components/assets/CheckboxIndeterminate.d.ts +1 -0
  349. package/dist/types/components/assets/index.d.ts +2 -0
  350. package/dist/types/components/sd-action-modal/sd-action-modal.d.ts +2 -2
  351. package/dist/types/components/sd-badge/sd-badge.d.ts +0 -1
  352. package/dist/types/components/{sd-button-v2/sd-button-v2.config.d.ts → sd-button/sd-button.config.d.ts} +9 -15
  353. package/dist/types/components/sd-button/sd-button.d.ts +11 -13
  354. package/dist/types/components/sd-confirm-modal/sd-confirm-modal.config.d.ts +3 -3
  355. package/dist/types/components/sd-confirm-modal/sd-confirm-modal.d.ts +2 -1
  356. package/dist/types/components/sd-dropdown-button/sd-dropdown-button.config.d.ts +6 -5
  357. package/dist/types/components/sd-dropdown-button/sd-dropdown-button.d.ts +1 -0
  358. package/dist/types/components/sd-field/sd-field.d.ts +1 -0
  359. package/dist/types/components/sd-key-value-table/sd-key-value-table.config.d.ts +105 -0
  360. package/dist/types/components/sd-key-value-table/sd-key-value-table.d.ts +38 -0
  361. package/dist/types/components/sd-loading-modal/sd-loading-modal.config.d.ts +2 -2
  362. package/dist/types/components/sd-loading-modal/sd-loading-modal.d.ts +1 -0
  363. package/dist/types/components/sd-modal-container/sd-modal-container.config.d.ts +1 -1
  364. package/dist/types/components/sd-popover/sd-popover.d.ts +16 -10
  365. package/dist/types/components/sd-popup/sd-popup.config.d.ts +30 -0
  366. package/dist/types/components/sd-popup/sd-popup.d.ts +11 -0
  367. package/dist/types/components/sd-table/constants.d.ts +2 -0
  368. package/dist/types/components/sd-table/sd-table.config.d.ts +4 -0
  369. package/dist/types/components/sd-table/sd-table.d.ts +21 -15
  370. package/dist/types/components/sd-table/sd-td/sd-td.d.ts +6 -0
  371. package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +9 -0
  372. package/dist/types/components/sd-tag/sd-tag.d.ts +2 -0
  373. package/dist/types/components/sd-toast/sd-toast.config.d.ts +5 -1
  374. package/dist/types/components/sd-toast/sd-toast.d.ts +2 -0
  375. package/dist/types/components/sd-toast-container/sd-toast-container.config.d.ts +2 -0
  376. package/dist/types/components/sd-tooltip/sd-tooltip.config.d.ts +2 -13
  377. package/dist/types/components/sd-tooltip/sd-tooltip.d.ts +6 -4
  378. package/dist/types/components.d.ts +278 -192
  379. package/dist/types/index.d.ts +1 -1
  380. package/dist/types/types/form.d.ts +1 -1
  381. package/dist/types/types/global.d.ts +14 -13
  382. package/dist/types/utils/toast.d.ts +1 -1
  383. package/hydrate/index.js +5513 -4761
  384. package/hydrate/index.mjs +5513 -4761
  385. package/package.json +111 -97
  386. package/readme.md +13 -7
  387. package/dist/cjs/component.button-cqV-iCG5.js +0 -90
  388. package/dist/cjs/sd-date-picker-trigger.cjs.entry.js +0 -51
  389. package/dist/cjs/sd-date-picker.cjs.entry.js +0 -117
  390. package/dist/cjs/sd-date-range-picker.cjs.entry.js +0 -123
  391. package/dist/cjs/sd-file-picker.cjs.entry.js +0 -244
  392. package/dist/cjs/sd-input.cjs.entry.js +0 -175
  393. package/dist/cjs/sd-number-input.cjs.entry.js +0 -409
  394. package/dist/cjs/sd-radio-group.cjs.entry.js +0 -46
  395. package/dist/cjs/sd-table.config-Cb0Ot3C6.js +0 -105
  396. package/dist/cjs/sd-textarea.cjs.entry.js +0 -146
  397. package/dist/collection/components/sd-button-v2/sd-button-v2.css +0 -125
  398. package/dist/collection/components/sd-button-v2/sd-button-v2.js +0 -273
  399. package/dist/components/p-B1XBwjCW.js +0 -1
  400. package/dist/components/p-B8jXOXtJ.js +0 -1
  401. package/dist/components/p-BE6TxbtX.js +0 -1
  402. package/dist/components/p-BJsHakU2.js +0 -1
  403. package/dist/components/p-BStczlLa.js +0 -1
  404. package/dist/components/p-BcMNA89i.js +0 -1
  405. package/dist/components/p-BheX6lAy.js +0 -1
  406. package/dist/components/p-BmYM7-4v.js +0 -1
  407. package/dist/components/p-BppjYHF6.js +0 -1
  408. package/dist/components/p-BwWDMpJc.js +0 -1
  409. package/dist/components/p-C-kw2p2a.js +0 -1
  410. package/dist/components/p-C5qZtNLl.js +0 -1
  411. package/dist/components/p-C7DajKYn.js +0 -1
  412. package/dist/components/p-CZ4ltUOw.js +0 -1
  413. package/dist/components/p-CeVMl_M9.js +0 -1
  414. package/dist/components/p-D1DpOp6M.js +0 -1
  415. package/dist/components/p-D3gjBBCU.js +0 -1
  416. package/dist/components/p-DC-6inj0.js +0 -1
  417. package/dist/components/p-DRF0He-x.js +0 -1
  418. package/dist/components/p-DegvQLTF.js +0 -1
  419. package/dist/components/p-Dey-lS6x.js +0 -1
  420. package/dist/components/p-DfH_fO01.js +0 -1
  421. package/dist/components/p-DngV3MT1.js +0 -1
  422. package/dist/components/p-EbjZr2OA.js +0 -1
  423. package/dist/components/p-LwWOleLJ.js +0 -1
  424. package/dist/components/p-Nvx13YlG.js +0 -1
  425. package/dist/components/p-ZMpCZhXP.js +0 -1
  426. package/dist/components/p-dNJIFthT.js +0 -1
  427. package/dist/components/p-q0VWISKA.js +0 -1
  428. package/dist/components/p-xnLvZ-xn.js +0 -1
  429. package/dist/components/sd-button-v2.js +0 -1
  430. package/dist/design-system/p-0356c195.entry.js +0 -1
  431. package/dist/design-system/p-045bc426.entry.js +0 -1
  432. package/dist/design-system/p-12dfd239.entry.js +0 -1
  433. package/dist/design-system/p-16d3a485.entry.js +0 -1
  434. package/dist/design-system/p-1706ed6f.entry.js +0 -1
  435. package/dist/design-system/p-182548f7.entry.js +0 -1
  436. package/dist/design-system/p-1a79edce.entry.js +0 -1
  437. package/dist/design-system/p-1cf87e87.entry.js +0 -1
  438. package/dist/design-system/p-25a08e98.entry.js +0 -1
  439. package/dist/design-system/p-2812b9ce.entry.js +0 -1
  440. package/dist/design-system/p-38f661ea.entry.js +0 -1
  441. package/dist/design-system/p-429dab5c.entry.js +0 -1
  442. package/dist/design-system/p-455dccf5.entry.js +0 -1
  443. package/dist/design-system/p-59313838.entry.js +0 -1
  444. package/dist/design-system/p-6af01ab0.entry.js +0 -1
  445. package/dist/design-system/p-70d4903f.entry.js +0 -1
  446. package/dist/design-system/p-767e99f9.entry.js +0 -1
  447. package/dist/design-system/p-7c370335.entry.js +0 -1
  448. package/dist/design-system/p-7fe8be6a.entry.js +0 -1
  449. package/dist/design-system/p-83b262dc.entry.js +0 -1
  450. package/dist/design-system/p-881adaa5.entry.js +0 -1
  451. package/dist/design-system/p-88d7303c.entry.js +0 -1
  452. package/dist/design-system/p-8a601e0f.entry.js +0 -1
  453. package/dist/design-system/p-B1XBwjCW.js +0 -1
  454. package/dist/design-system/p-BsrEibf7.js +0 -1
  455. package/dist/design-system/p-C5qZtNLl.js +0 -1
  456. package/dist/design-system/p-CZ4ltUOw.js +0 -1
  457. package/dist/design-system/p-Cnwbjz1F.js +0 -2
  458. package/dist/design-system/p-DnCBBIoq.js +0 -1
  459. package/dist/design-system/p-a82be987.entry.js +0 -1
  460. package/dist/design-system/p-b917c82a.entry.js +0 -1
  461. package/dist/design-system/p-b9f00eef.entry.js +0 -1
  462. package/dist/design-system/p-bcb53788.entry.js +0 -1
  463. package/dist/design-system/p-c24344ac.entry.js +0 -1
  464. package/dist/design-system/p-d76192bd.entry.js +0 -1
  465. package/dist/design-system/p-d9d8c51b.entry.js +0 -1
  466. package/dist/design-system/p-de67937d.entry.js +0 -1
  467. package/dist/design-system/p-ea5e6c2c.entry.js +0 -1
  468. package/dist/design-system/p-eeb1cac2.entry.js +0 -1
  469. package/dist/design-system/p-f1a74359.entry.js +0 -1
  470. package/dist/design-system/p-f44786a9.entry.js +0 -1
  471. package/dist/design-system/p-f69c7539.entry.js +0 -1
  472. package/dist/esm/component.button-B1XBwjCW.js +0 -88
  473. package/dist/esm/sd-date-picker-trigger.entry.js +0 -49
  474. package/dist/esm/sd-date-picker.entry.js +0 -115
  475. package/dist/esm/sd-date-range-picker.entry.js +0 -121
  476. package/dist/esm/sd-file-picker.entry.js +0 -242
  477. package/dist/esm/sd-input.entry.js +0 -173
  478. package/dist/esm/sd-number-input.entry.js +0 -407
  479. package/dist/esm/sd-radio-group.entry.js +0 -44
  480. package/dist/esm/sd-textarea.entry.js +0 -144
  481. package/dist/types/components/sd-button-v2/sd-button-v2.d.ts +0 -19
  482. /package/dist/components/{p-C2fDbE9d.js → p-B6cqMQaM.js} +0 -0
  483. /package/dist/design-system/{p-C2fDbE9d.js → p-B6cqMQaM.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index--F2wGuAi.js');
4
- var tooltipArrow = require('./tooltipArrow-D1-wcNm1.js');
3
+ var index = require('./index-Cw-78mnC.js');
4
+ var tooltipArrow = require('./tooltipArrow-BjSFKIUq.js');
5
5
 
6
6
  const popover = {
7
7
  bg: "#07284A"};
@@ -23,11 +23,15 @@ const SdPopover = class {
23
23
  icon = 'helpOutline';
24
24
  iconSize = 12;
25
25
  label = '';
26
- buttonSize = 'sm';
27
- buttonVariant = 'primary';
26
+ name = 'primary_sm';
27
+ rightIcon;
28
+ ariaLabel = '';
29
+ disabled = false;
30
+ type = 'button';
28
31
  menuTitle;
29
32
  messages = [];
30
- buttons = [];
33
+ leftLink;
34
+ button;
31
35
  menuClass = '';
32
36
  useClose = false;
33
37
  showChange;
@@ -56,19 +60,22 @@ const SdPopover = class {
56
60
  const color = this.color ?? '#01BB4B';
57
61
  const icon = this.icon ?? 'helpOutline';
58
62
  const iconSize = this.iconSize ?? 12;
59
- const buttonSize = this.buttonSize ?? 'sm';
60
- const buttonVariant = this.buttonVariant ?? 'primary';
61
63
  const menuClass = this.menuClass ?? '';
62
64
  const messages = Array.isArray(this.messages) ? this.messages : [];
63
- const buttons = Array.isArray(this.buttons) ? this.buttons : [];
64
- return (index.h(index.Fragment, { key: 'e576deaacba9395c5aeb76fd13baa0dc1e908d38' }, this.label ? (index.h("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: icon, size: buttonSize, color: color, variant: buttonVariant, class: "sd-popover", onSdClick: () => this.setShow(!this.show) })) : (index.h("sd-icon", { ref: el => (this.buttonEl = el), name: icon, size: iconSize, color: color, class: "sd-popover", onClick: () => this.setShow(!this.show) })), this.show && (index.h("sd-floating-portal", { key: '7520067b46527c22108292a659dd7e8fba85397c', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: placement, offset: this.popoverOffset }, index.h("div", { key: 'ba48632dd93359851bd87f4d55f2341653b0caab', class: {
65
+ const leftLink = this.leftLink;
66
+ const button = this.button;
67
+ const hasFooter = !!leftLink || !!button;
68
+ return (index.h(index.Fragment, { key: '15b78d688d095fb15d5e6188dc848593bfec842e' }, this.label !== '' ? (index.h("sd-button", { ref: el => (this.buttonEl = el), name: this.name ?? 'primary_sm', label: this.label, icon: icon, rightIcon: this.rightIcon, ariaLabel: this.ariaLabel, disabled: this.disabled, type: this.type ?? 'button', class: "sd-popover", onSdClick: () => this.setShow(!this.show) })) : (index.h("sd-icon", { ref: el => (this.buttonEl = el), name: icon, size: iconSize, color: color, class: "sd-popover", onClick: () => this.setShow(!this.show) })), this.show && (index.h("sd-floating-portal", { key: 'c77807f72410fb9c96a94e06fa9bb953ef934b4d', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: placement, offset: this.popoverOffset }, index.h("div", { key: 'dfffd8eada595286469c17ed549d60539d9b3ca6', class: {
65
69
  'sd-floating-menu': true,
66
70
  'sd-floating-menu--popover': true,
67
71
  [`sd-floating-menu--${placement}`]: true,
68
- [menuClass]: !!menuClass,
72
+ [menuClass]: menuClass !== '',
69
73
  }, style: {
70
74
  '--sd-floating-bg': popoverTokens.popover.bg,
71
- } }, index.h("i", { key: 'fce80e5bc6f49f5dbc1772f910eae0fb9bc09a6b', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, index.h(tooltipArrow.TooltipArrow, { key: '32aaa3b00f7ac77d47fd2bc3c968a7a4c20102c6' })), index.h("div", { key: '29b3240126412070466acee7ee1d061d235ba51e', class: "sd-floating-menu__content" }, this.menuTitle && index.h("div", { key: '6cb5cf4531f573e93146a552b34831dc04851661', class: "sd-floating-menu__title" }, this.menuTitle), messages.length > 0 && (index.h("div", { key: 'ba15bb4efc4af37dd89b0da61539f516cc31a2f3', class: "sd-floating-menu__messages" }, messages.map((message, i) => (index.h("div", { key: `msg-${i}` }, message))))), buttons.length > 0 && (index.h("div", { key: '2656545909634d8c54e9d34155e699041b5512f5', class: `sd-floating-menu__buttons sd-floating-menu__buttons--${buttons.length}` }, buttons.map((button, i) => (index.h("sd-button", { key: `btn-${i}`, ...button })))))), this.useClose && (index.h("sd-ghost-button", { key: '315bf10dde1b7cde5727beb101a1a1ad07966138', class: "sd-floating-menu__close-button", icon: "close", ariaLabel: "close", size: "xs", onClick: this.handleClose })))))));
75
+ } }, index.h("i", { key: '0852ebe804a7e305383f58dae7e0088f2456f53a', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, index.h(tooltipArrow.TooltipArrow, { key: 'c470c8ccebdb920b1c14940dffe11ad619560fb7' })), index.h("div", { key: 'fcca2e3bc61cd64110e86da4ee483dc5b1101b7c', class: "sd-floating-menu__content" }, this.menuTitle && index.h("div", { key: 'fad331bcd9c73e72ed013826db69badd8b7a069f', class: "sd-floating-menu__title" }, this.menuTitle), messages.length > 0 && (index.h("div", { key: 'c83d0be758758fc720d1c3d00aaa8f0cb865cf12', class: "sd-floating-menu__messages" }, messages.map((message, i) => (index.h("div", { key: `msg-${i}` }, message))))), hasFooter && (index.h("div", { key: '821a434f478d8aee61e81026ccc37f75579e290e', class: {
76
+ 'sd-floating-menu__buttons': true,
77
+ 'sd-floating-menu__buttons--with-link': !!leftLink,
78
+ } }, leftLink && (index.h("sd-text-link", { key: '4b28ebf22197453c403066daf97d8925b0a4a8e1', class: "sd-floating-menu__left-link", label: leftLink.label, icon: leftLink.icon ?? '', iconColor: leftLink.iconColor ?? '', useArrow: !!leftLink.useArrow, underline: !!leftLink.underline, disabled: !!leftLink.disabled, onSdClick: leftLink.onClick })), button && (index.h("sd-button", { key: 'af8bdfa4a994bafa9b7329e149b62480d5f3d97c', name: button.name ?? 'secondary_xs', label: button.label, icon: button.icon, rightIcon: button.rightIcon, ariaLabel: button.ariaLabel, disabled: button.disabled, type: button.type, onSdClick: button.onClick }))))), this.useClose && (index.h("sd-ghost-button", { key: 'a8031ecc0aa0721adab17031019a079bc2bdce88', class: "sd-floating-menu__close-button", icon: "close", ariaLabel: "close", size: "xs", onClick: this.handleClose })))))));
72
79
  }
73
80
  };
74
81
  SdPopover.style = sdPopoverCss();
@@ -0,0 +1,112 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-Cw-78mnC.js');
4
+
5
+ const popup$1 = {
6
+ header: {
7
+ bg: {
8
+ "default": "#07284A",
9
+ inverse: "#FFFFFF"
10
+ },
11
+ title: {
12
+ "default": "#FFFFFF",
13
+ inverse: "#004290"
14
+ },
15
+ typography: {
16
+ fontFamily: "Pretendard Variable, Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Segoe UI, Apple SD Gothic Neo, Noto Sans KR, Malgun Gothic, Apple Color Emoji, Segoe UI Emoji, sans-serif",
17
+ fontWeight: "700",
18
+ fontSize: "18",
19
+ lineHeight: "30"}
20
+ },
21
+ footer: {
22
+ bg: "#FFFFFF",
23
+ paddingX: "20",
24
+ paddingY: "8",
25
+ gap: "16"
26
+ },
27
+ bg: "#EEEEEE"
28
+ };
29
+ var popupTokens = {
30
+ popup: popup$1
31
+ };
32
+
33
+ const { popup } = popupTokens;
34
+ const POPUP_LAYOUT = {
35
+ bodyBg: popup.bg,
36
+ };
37
+ const POPUP_HEADER = {
38
+ bg: {
39
+ default: popup.header.bg.default,
40
+ light: popup.header.bg.inverse,
41
+ },
42
+ titleColor: {
43
+ default: popup.header.title.default,
44
+ light: popup.header.title.inverse,
45
+ },
46
+ fontFamily: popup.header.typography.fontFamily,
47
+ fontWeight: popup.header.typography.fontWeight,
48
+ fontSize: Number(popup.header.typography.fontSize),
49
+ lineHeight: Number(popup.header.typography.lineHeight),
50
+ // TODO: 토큰 반영 후 교체
51
+ height: 50,
52
+ paddingX: 16,
53
+ paddingY: 10,
54
+ };
55
+ const POPUP_FOOTER = {
56
+ bg: popup.footer.bg,
57
+ paddingX: Number(popup.footer.paddingX),
58
+ paddingY: Number(popup.footer.paddingY),
59
+ gap: Number(popup.footer.gap),
60
+ // TODO: 토큰 반영 후 교체
61
+ height: 52,
62
+ slotHeight: 36,
63
+ // TODO: shadow/spread/md 토큰 반영 후 교체
64
+ shadow: '0 -2px 8px 0 rgba(0, 0, 0, 0.08)',
65
+ };
66
+
67
+ const sdPopupCss = () => `sd-popup{display:block;width:100%;height:100%}sd-popup .sd-popup{display:flex;flex-direction:column;width:100%;height:100%;background:var(--sd-popup-bg);overflow:hidden;box-sizing:border-box}sd-popup .sd-popup__header{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:100%;height:var(--sd-popup-header-height);padding:var(--sd-popup-header-padding-y) var(--sd-popup-header-padding-x);background:var(--sd-popup-header-bg);box-sizing:border-box}sd-popup .sd-popup__title{margin:0;color:var(--sd-popup-header-title-color);font-family:var(--sd-popup-header-font-family);font-weight:var(--sd-popup-header-font-weight);font-size:var(--sd-popup-header-font-size);line-height:var(--sd-popup-header-line-height);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}sd-popup .sd-popup__body{flex:1 1 auto;min-height:0;overflow:auto}sd-popup .sd-popup__footer{display:flex;align-items:center;flex-shrink:0;width:100%;height:var(--sd-popup-footer-height);padding:var(--sd-popup-footer-padding-y) var(--sd-popup-footer-padding-x);gap:var(--sd-popup-footer-gap);background:var(--sd-popup-footer-bg);box-shadow:var(--sd-popup-footer-shadow);box-sizing:border-box;position:relative;z-index:1}sd-popup .sd-popup__footer-slot{display:flex;align-items:center;height:var(--sd-popup-footer-slot-height)}sd-popup .sd-popup__footer-slot--left{justify-content:flex-start;flex:1 1 auto;min-width:0}sd-popup .sd-popup__footer-slot:empty{display:none}sd-popup .sd-popup__submit{flex-shrink:0;margin-left:auto}`;
68
+
69
+ const DEFAULT_SUBMIT_BUTTON_PROPS = {
70
+ name: 'primary_md',
71
+ label: '확인',
72
+ };
73
+ const SdPopup = class {
74
+ constructor(hostRef) {
75
+ index.registerInstance(this, hostRef);
76
+ this.submit = index.createEvent(this, "sdSubmit", 7);
77
+ }
78
+ popupTitle = '';
79
+ type = 'default';
80
+ useFooter = true;
81
+ submitButtonProps;
82
+ submit;
83
+ render() {
84
+ const cssVars = {
85
+ '--sd-popup-bg': POPUP_LAYOUT.bodyBg,
86
+ '--sd-popup-header-bg': POPUP_HEADER.bg[this.type],
87
+ '--sd-popup-header-title-color': POPUP_HEADER.titleColor[this.type],
88
+ '--sd-popup-header-font-family': POPUP_HEADER.fontFamily,
89
+ '--sd-popup-header-font-weight': POPUP_HEADER.fontWeight,
90
+ '--sd-popup-header-font-size': `${POPUP_HEADER.fontSize}px`,
91
+ '--sd-popup-header-line-height': `${POPUP_HEADER.lineHeight}px`,
92
+ '--sd-popup-header-height': `${POPUP_HEADER.height}px`,
93
+ '--sd-popup-header-padding-x': `${POPUP_HEADER.paddingX}px`,
94
+ '--sd-popup-header-padding-y': `${POPUP_HEADER.paddingY}px`,
95
+ '--sd-popup-footer-bg': POPUP_FOOTER.bg,
96
+ '--sd-popup-footer-padding-x': `${POPUP_FOOTER.paddingX}px`,
97
+ '--sd-popup-footer-padding-y': `${POPUP_FOOTER.paddingY}px`,
98
+ '--sd-popup-footer-gap': `${POPUP_FOOTER.gap}px`,
99
+ '--sd-popup-footer-height': `${POPUP_FOOTER.height}px`,
100
+ '--sd-popup-footer-slot-height': `${POPUP_FOOTER.slotHeight}px`,
101
+ '--sd-popup-footer-shadow': POPUP_FOOTER.shadow,
102
+ };
103
+ const submitButtonProps = {
104
+ ...DEFAULT_SUBMIT_BUTTON_PROPS,
105
+ ...this.submitButtonProps,
106
+ };
107
+ return (index.h("div", { key: '15e86848fe487b9df5b09a91e5319b35d7332a6e', class: `sd-popup sd-popup--${this.type}`, style: cssVars }, index.h("header", { key: 'd8281c73a80fe5a4b8ce3ca219e967932b0ec1d3', class: "sd-popup__header" }, index.h("h2", { key: '31031d3988bae465e023cc94713fb39ef9299250', class: "sd-popup__title" }, this.popupTitle)), index.h("div", { key: 'dfa941b0dc100b55fc08ab8cb9fce2835aaa62a5', class: "sd-popup__body" }, index.h("slot", { key: 'd7532a39c61746e8f517973e6fd4f7f3ac10fae0' })), this.useFooter && (index.h("footer", { key: 'aacedcc4c2f2e4336449bc0fbafc9f67d70cc763', class: "sd-popup__footer" }, index.h("div", { key: '8f093e0a8c24b03fa28e872b025cb159006d3449', class: "sd-popup__footer-slot sd-popup__footer-slot--left" }, index.h("slot", { key: '11e2cd175c7ae3151408ca7e564df0a37d6eebb5', name: "footer-left" })), index.h("sd-button", { key: '49b98d39181bd30392b7388dc7acc66caaca6038', ...submitButtonProps, class: "sd-popup__submit", onSdClick: () => this.submit.emit() })))));
108
+ }
109
+ };
110
+ SdPopup.style = sdPopupCss();
111
+
112
+ exports.sd_popup = SdPopup;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index--F2wGuAi.js');
3
+ var index = require('./index-Cw-78mnC.js');
4
4
 
5
5
  const SdPortal = class {
6
6
  constructor(hostRef) {
@@ -110,7 +110,7 @@ const SdPortal = class {
110
110
  }
111
111
  // 위치 갱신 (scroll / resize)
112
112
  updatePosition() {
113
- if (this.rafId)
113
+ if (this.rafId !== undefined)
114
114
  cancelAnimationFrame(this.rafId);
115
115
  this.rafId = requestAnimationFrame(() => {
116
116
  if (!this.parentRef || !this.wrapper)
@@ -227,7 +227,7 @@ const SdPortal = class {
227
227
  this.close.emit();
228
228
  }
229
229
  render() {
230
- return index.h("slot", { key: '28858d6833d8ff7f86295f7e445d51ffc84db99a' });
230
+ return index.h("slot", { key: '8b728e4a9a97cb1c4dbdaf8b6a6d85b37fc07af7' });
231
231
  }
232
232
  static get watchers() { return {
233
233
  "open": [{
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index--F2wGuAi.js');
3
+ var index = require('./index-Cw-78mnC.js');
4
4
 
5
5
  const radioButton = {
6
6
  xs: {
@@ -140,18 +140,21 @@ const SdRadioButton = class {
140
140
  return classes.join(' ');
141
141
  }
142
142
  getGroupClasses() {
143
- const classes = ['sd-radio-button', `sd-radio-button--${this.size}`];
143
+ const classes = ['sd-radio-button', `sd-radio-button--${this.size ?? 'sm'}`];
144
144
  return classes.join(' ');
145
145
  }
146
146
  _groupName;
147
147
  get groupName() {
148
- if (!this._groupName) {
149
- this._groupName = this.name || `sd-radio-button-${crypto.randomUUID()}`;
148
+ if (this._groupName == null || this._groupName === '') {
149
+ this._groupName =
150
+ this.name != null && this.name !== ''
151
+ ? this.name
152
+ : `sd-radio-button-${crypto.randomUUID()}`;
150
153
  }
151
154
  return this._groupName;
152
155
  }
153
156
  render() {
154
- const sizeTokens = RADIO_BUTTON_SIZES[this.size];
157
+ const sizeTokens = RADIO_BUTTON_SIZES[this.size ?? 'sm'] ?? RADIO_BUTTON_SIZES.sm;
155
158
  const cssVars = {
156
159
  '--sd-radio-button-height': `${sizeTokens.height}px`,
157
160
  '--sd-radio-button-padding-x': `${sizeTokens.paddingX}px`,
@@ -175,7 +178,7 @@ const SdRadioButton = class {
175
178
  '--sd-radio-button-content-select': RADIO_BUTTON_COLORS.content.select,
176
179
  '--sd-radio-button-content-disabled': RADIO_BUTTON_COLORS.content.disabled,
177
180
  };
178
- return (index.h("div", { key: 'fbc0246d9cf615956121295e29bf8c702ee73edc', class: this.getGroupClasses(), style: cssVars, role: "radiogroup", "aria-disabled": this.disabled.toString() }, this.options.map(option => {
181
+ return (index.h("div", { key: '0eef3b536855ef3883628ce92a5dcb2846976d86', class: this.getGroupClasses(), style: cssVars, role: "radiogroup", "aria-disabled": this.disabled.toString() }, this.options.map(option => {
179
182
  const isSelected = this.isOptionSelected(option);
180
183
  const isDisabled = this.isOptionDisabled(option);
181
184
  return (index.h("label", { key: `radio-${option.value}`, class: this.getButtonClasses(option), "aria-label": option.label || 'radio option', "data-label": option.label }, index.h("input", { type: "radio", name: this.groupName, value: option.value.toString(), checked: isSelected, disabled: isDisabled, onInput: () => this.handleRadioChange(option.value, option.disabled) }), option.label && index.h("span", { class: "sd-radio-button__label" }, option.label)));
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index--F2wGuAi.js');
3
+ var index = require('./index-Cw-78mnC.js');
4
4
 
5
5
  const radio = {
6
6
  size: "16",
@@ -118,7 +118,7 @@ const SdRadio = class {
118
118
  '--sd-radio-disabled-dot': RADIO_COLORS.disabled.dot,
119
119
  '--sd-radio-label-color': RADIO_COLORS.label,
120
120
  };
121
- return (index.h("label", { key: '2b809f1f3ce39e6dd2429cf1c48a935500287614', class: this.radioClasses, style: cssVars, "aria-checked": this.isSelected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, index.h("input", { key: '1f44ab44d741ef40152318ce6fd437bb091c3cfb', type: "radio", name: String(this.val), value: String(this.val), checked: this.isSelected, disabled: this.disabled, "aria-label": this.label || String(this.val), onInput: this.handleRadioChange }), index.h("span", { key: '941fddbb939a46afbe72c642d3b6f6f252f143f1', class: "sd-radio__circle" }), this.label && index.h("span", { key: 'e30139892e82b8da251525e3c717549a2b7522d0', class: "sd-radio__label" }, this.label)));
121
+ return (index.h("label", { key: 'bbbca45f706514a12be434ba877de0bd0f82c944', class: this.radioClasses, style: cssVars, "aria-checked": this.isSelected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, index.h("input", { key: 'e2cacd52037790cfe2d0eacacb975864858f73f8', type: "radio", name: String(this.val), value: String(this.val), checked: this.isSelected, disabled: this.disabled, "aria-label": this.label || String(this.val), onInput: this.handleRadioChange }), index.h("span", { key: 'bfbfdcb93536cef9fecbf1cc3a5dc5c2adbf5dd0', class: "sd-radio__circle" }), this.label && index.h("span", { key: '04c8d1e8de88bbb8d4041ebbbda00f58f8dc460c', class: "sd-radio__label" }, this.label)));
122
122
  }
123
123
  static get watchers() { return {
124
124
  "value": [{
@@ -0,0 +1,159 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-Cw-78mnC.js');
4
+ var sdSelect_config = require('./sd-select.config-B19ptCT2.js');
5
+
6
+ const sdSelectListItemCss = () => `sd-select-list-item{display:block}sd-select-list-item .sd-select-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-list-item .sd-select-list-item--selectable{cursor:pointer}sd-select-list-item .sd-select-list-item--depth1-group{border-top:var(--list-item-border-top);font-weight:700}sd-select-list-item .sd-select-list-item--depth2-group{font-weight:500}sd-select-list-item .sd-select-list-item--focused.sd-select-list-item--selectable:not(.sd-select-list-item--disabled){background:var(--list-item-bg-hover);color:var(--list-item-color-hover)}sd-select-list-item .sd-select-list-item--selected:not(.sd-select-list-item--group){font-weight:var(--list-item-font-weight-selected);color:var(--list-item-color-selected)}sd-select-list-item .sd-select-list-item--selected.sd-select-list-item--focused{color:var(--list-item-color-hover)}sd-select-list-item .sd-select-list-item--disabled{color:var(--list-item-color-disabled);cursor:not-allowed}sd-select-list-item .sd-select-list-item__label{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}sd-select-list-item .sd-select-list-item__count{flex-shrink:0;font-weight:500;color:var(--list-item-color-disabled)}sd-select-list-item .sd-select-list-item--group.sd-select-list-item--focused .sd-select-list-item__count{color:#ffffff}sd-select-list-item .sd-select-list-item__checkbox{flex-shrink:0}`;
7
+
8
+ const SdSelectListItem = class {
9
+ constructor(hostRef) {
10
+ index.registerInstance(this, hostRef);
11
+ this.listItemClick = index.createEvent(this, "sdListItemClick", 7);
12
+ }
13
+ option;
14
+ depth = 1;
15
+ isSelected = false;
16
+ isFocused = false;
17
+ useCheckbox = false;
18
+ countInfo;
19
+ listItemClick;
20
+ get isGroup() {
21
+ return !!this.option.children;
22
+ }
23
+ get isSelectable() {
24
+ return !this.isGroup || this.useCheckbox;
25
+ }
26
+ get depthKey() {
27
+ if (this.depth <= 1)
28
+ return 'depth1';
29
+ if (this.depth === 2)
30
+ return 'depth2';
31
+ return 'depth3';
32
+ }
33
+ get paddingLeft() {
34
+ return `${sdSelect_config.LIST_ITEM_LAYOUT.paddingLeft[this.depthKey]}px`;
35
+ }
36
+ handleClick = (e) => {
37
+ e.stopPropagation();
38
+ if (this.option.disabled || !this.isSelectable)
39
+ return;
40
+ this.listItemClick.emit(this.option);
41
+ };
42
+ handleCheckboxClick = (e) => {
43
+ e.stopPropagation();
44
+ };
45
+ handleCheckboxUpdate = (e) => {
46
+ e.stopPropagation();
47
+ if (this.option.disabled || !this.isSelectable)
48
+ return;
49
+ this.listItemClick.emit(this.option);
50
+ };
51
+ render() {
52
+ const isGroup = this.isGroup;
53
+ const isDepth1Group = isGroup && this.depth === 1;
54
+ const isDepth2Group = isGroup && this.depth === 2;
55
+ const cssVars = {
56
+ '--list-item-padding-y': `${sdSelect_config.LIST_ITEM_LAYOUT.paddingY}px`,
57
+ '--list-item-padding-left': this.paddingLeft,
58
+ '--list-item-padding-right': `${sdSelect_config.LIST_ITEM_LAYOUT.paddingRight}px`,
59
+ '--list-item-gap': `${sdSelect_config.LIST_ITEM_LAYOUT.gap}px`,
60
+ '--list-item-font-size': `${sdSelect_config.LIST_ITEM_TYPOGRAPHY.fontSize}px`,
61
+ '--list-item-line-height': `${sdSelect_config.LIST_ITEM_TYPOGRAPHY.lineHeight}px`,
62
+ '--list-item-font-weight': sdSelect_config.LIST_ITEM_TYPOGRAPHY.fontWeight,
63
+ '--list-item-bg': isDepth1Group
64
+ ? sdSelect_config.LIST_ITEM_COLORS.depth1.bg
65
+ : isDepth2Group
66
+ ? sdSelect_config.LIST_ITEM_COLORS.depth2.bg
67
+ : sdSelect_config.LIST_ITEM_COLORS.bg.default,
68
+ '--list-item-bg-hover': sdSelect_config.LIST_ITEM_COLORS.bg.hover,
69
+ '--list-item-color': sdSelect_config.LIST_ITEM_COLORS.content.default,
70
+ '--list-item-color-hover': sdSelect_config.LIST_ITEM_COLORS.content.hover,
71
+ '--list-item-color-disabled': sdSelect_config.LIST_ITEM_COLORS.content.disabled,
72
+ '--list-item-color-selected': sdSelect_config.LIST_ITEM_COLORS.content.selected,
73
+ '--list-item-font-weight-selected': sdSelect_config.LIST_ITEM_TYPOGRAPHY.selectedFontWeight,
74
+ };
75
+ if (isDepth1Group) {
76
+ cssVars['--list-item-border-top'] =
77
+ `${sdSelect_config.LIST_ITEM_COLORS.depth1.borderWidth}px solid ${sdSelect_config.LIST_ITEM_COLORS.depth1.border}`;
78
+ }
79
+ return (
80
+ // 키보드 네비게이션은 부모 listbox 의 ArrowUp/Down + Enter 가 담당. 항목 자체는 role=option, tabindex=-1 으로 표시.
81
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events
82
+ index.h("div", { key: '8382966892edc2a46602733400aa579d0caa3128', role: "option", tabindex: -1, "aria-selected": this.isSelected === true ? 'true' : 'false', class: {
83
+ 'sd-select-list-item': true,
84
+ 'sd-select-list-item--group': isGroup,
85
+ 'sd-select-list-item--depth1-group': isDepth1Group,
86
+ 'sd-select-list-item--depth2-group': isDepth2Group,
87
+ 'sd-select-list-item--selected': this.isSelected === true,
88
+ 'sd-select-list-item--indeterminate': this.isSelected === null,
89
+ 'sd-select-list-item--focused': this.isFocused,
90
+ 'sd-select-list-item--selectable': this.isSelectable && !this.option.disabled,
91
+ 'sd-select-list-item--disabled': !!this.option.disabled,
92
+ }, style: cssVars, onClick: this.handleClick }, this.useCheckbox && (index.h("sd-checkbox", { key: 'f8d1bb696416265861cc3b61ca1dcaec52dc2d4a', value: this.isSelected === null ? null : !!this.isSelected, disabled: this.option.disabled, inverse: this.isFocused && this.isSelected !== false, class: "sd-select-list-item__checkbox", onClick: this.handleCheckboxClick, onSdUpdate: this.handleCheckboxUpdate })), index.h("span", { key: '0ce20554fb96ad650104a98d779f3ff64fabe381', class: "sd-select-list-item__label" }, this.option.label), this.countInfo && (index.h("span", { key: '4d2d8f5bd63373906544882ff5852134e3ecd4d3', class: "sd-select-list-item__count" }, "(", this.countInfo.selected, "/", this.countInfo.total, ")"))));
93
+ }
94
+ };
95
+ SdSelectListItem.style = sdSelectListItemCss();
96
+
97
+ const sdSelectListItemSearchCss = () => `sd-select-list-item-search{display:block}sd-select-list-item-search .sd-select-list-item-search{padding:4px 8px;position:sticky;top:0;z-index:1;background:white}sd-select-list-item-search .sd-select-list-item-search--scrolled{box-shadow:0 2px 4px rgba(0, 0, 0, 0.08)}sd-select-list-item-search .sd-select-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-list-item-search .sd-select-list-item-search__inner:focus-within{border-color:#0075ff}sd-select-list-item-search .sd-select-list-item-search__icon{flex-shrink:0}sd-select-list-item-search .sd-select-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-list-item-search .sd-select-list-item-search__input::placeholder{color:#aaaaaa}sd-select-list-item-search .sd-select-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-list-item-search .sd-select-list-item-search__clear:hover{background:#f0f0f0}sd-select-list-item-search .sd-select-list-item-search__clear--hidden{visibility:hidden;pointer-events:none}`;
98
+
99
+ const SdSelectListItemSearch = class {
100
+ constructor(hostRef) {
101
+ index.registerInstance(this, hostRef);
102
+ this.searchFilter = index.createEvent(this, "sdSearchFilter", 7);
103
+ this.searchFocus = index.createEvent(this, "sdSearchFocus", 7);
104
+ }
105
+ isScrolled = false;
106
+ searchText = '';
107
+ searchFilter;
108
+ searchFocus;
109
+ inputEl;
110
+ debounceTimer;
111
+ focusRafId;
112
+ componentDidLoad() {
113
+ requestAnimationFrame(() => {
114
+ this.focusRafId = requestAnimationFrame(() => {
115
+ this.inputEl?.focus();
116
+ });
117
+ });
118
+ }
119
+ async sdFocus() {
120
+ this.inputEl?.focus();
121
+ }
122
+ handleInput = (e) => {
123
+ this.searchText = e.target.value;
124
+ if (this.debounceTimer)
125
+ clearTimeout(this.debounceTimer);
126
+ this.debounceTimer = setTimeout(() => {
127
+ this.searchFilter.emit(this.searchText);
128
+ }, sdSelect_config.SEARCH_DEBOUNCE_MS);
129
+ };
130
+ handleClear = (e) => {
131
+ e.stopPropagation();
132
+ this.searchText = '';
133
+ if (this.debounceTimer)
134
+ clearTimeout(this.debounceTimer);
135
+ this.searchFilter.emit('');
136
+ this.inputEl?.focus();
137
+ };
138
+ disconnectedCallback() {
139
+ if (this.focusRafId !== undefined)
140
+ cancelAnimationFrame(this.focusRafId);
141
+ if (this.debounceTimer !== undefined)
142
+ clearTimeout(this.debounceTimer);
143
+ }
144
+ render() {
145
+ return (index.h("div", { key: '6872376ea0f47c256273f751fad367f2c49a9160', class: {
146
+ 'sd-select-list-item-search': true,
147
+ 'sd-select-list-item-search--scrolled': this.isScrolled,
148
+ } }, index.h("div", { key: 'f6c872e0252b6d7ba81f49938a4f5a647f0fb486', class: "sd-select-list-item-search__inner" }, index.h("sd-icon", { key: '49f10ed222e855ef6f0f5f12a65a74e1fec95bb5', name: "search", size: 16, color: "grey_70", class: "sd-select-list-item-search__icon" }), index.h("input", { key: '76d88aa4ce7eee598db2709d2d5442465b1798cb', ref: el => {
149
+ this.inputEl = el;
150
+ }, type: "text", class: "sd-select-list-item-search__input", placeholder: "\uAC80\uC0C9\uC5B4 \uC785\uB825", value: this.searchText, onInput: this.handleInput, onFocus: () => this.searchFocus.emit() }), index.h("button", { key: 'e94d1661c6ed26754d4ee7e186808ebd9f057ec9', type: "button", class: {
151
+ 'sd-select-list-item-search__clear': true,
152
+ 'sd-select-list-item-search__clear--hidden': this.searchText === '',
153
+ }, onClick: this.handleClear, tabindex: this.searchText !== '' ? 0 : -1, "aria-hidden": this.searchText !== '' ? 'false' : 'true' }, index.h("sd-icon", { key: 'ad89b3421ec345f47c8d67d78f20cae86869d4c1', name: "close", size: 12, color: "#888888" })))));
154
+ }
155
+ };
156
+ SdSelectListItemSearch.style = sdSelectListItemSearchCss();
157
+
158
+ exports.sd_select_list_item = SdSelectListItem;
159
+ exports.sd_select_list_item_search = SdSelectListItemSearch;
@@ -0,0 +1,178 @@
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
+ "default": {
33
+ fontWeight: "400",
34
+ fontSize: "12",
35
+ lineHeight: "20"},
36
+ selected: {
37
+ fontWeight: "700"}
38
+ },
39
+ bg: {
40
+ "default": "#FFFFFF",
41
+ hover: "#0075FF"
42
+ },
43
+ content: {
44
+ "default": "#222222",
45
+ hover: "#FFFFFF",
46
+ disabled: "#888888",
47
+ selected: "#0075FF"
48
+ },
49
+ depth1: {
50
+ bg: {
51
+ "default": "#EFF6FF"},
52
+ border: {
53
+ color: "#E1E1E1",
54
+ width: "1"
55
+ }},
56
+ depth2: {
57
+ middle: {
58
+ bg: "#F6F6F6"}
59
+ }};
60
+ var listItemTokens = {
61
+ listItem: listItem
62
+ };
63
+
64
+ const listBox = {
65
+ radius: "4"};
66
+ var listBoxTokens = {
67
+ listBox: listBox
68
+ };
69
+
70
+ // ── Select Trigger Tokens ──
71
+ const SELECT_LAYOUT = {
72
+ paddingX: selectTokens.select.paddingX,
73
+ gap: selectTokens.select.gap};
74
+ const SELECT_TYPOGRAPHY = {
75
+ fontSize: selectTokens.select.typography.fontSize,
76
+ lineHeight: selectTokens.select.typography.lineHeight,
77
+ fontWeight: selectTokens.select.typography.fontWeight,
78
+ };
79
+ const SELECT_COLORS = {
80
+ icon: {
81
+ default: selectTokens.select.icon.default,
82
+ disabled: selectTokens.select.icon.disabled,
83
+ },
84
+ text: {
85
+ default: selectTokens.select.text.default,
86
+ disabled: selectTokens.select.text.disabled,
87
+ },
88
+ };
89
+ // ── ListItem Tokens ──
90
+ const LIST_ITEM_LAYOUT = {
91
+ paddingY: listItemTokens.listItem.paddingY,
92
+ paddingRight: listItemTokens.listItem.paddingRight,
93
+ paddingLeft: {
94
+ depth1: listItemTokens.listItem.paddingLeft.depth1,
95
+ depth2: listItemTokens.listItem.paddingLeft.depth2,
96
+ depth3: listItemTokens.listItem.paddingLeft.depth3,
97
+ },
98
+ gap: listItemTokens.listItem.gap,
99
+ };
100
+ const LIST_ITEM_TYPOGRAPHY = {
101
+ fontSize: listItemTokens.listItem.typography.default.fontSize,
102
+ lineHeight: listItemTokens.listItem.typography.default.lineHeight,
103
+ fontWeight: listItemTokens.listItem.typography.default.fontWeight,
104
+ selectedFontWeight: listItemTokens.listItem.typography.selected.fontWeight,
105
+ };
106
+ const LIST_ITEM_COLORS = {
107
+ bg: {
108
+ default: listItemTokens.listItem.bg.default,
109
+ hover: listItemTokens.listItem.bg.hover,
110
+ },
111
+ content: {
112
+ default: listItemTokens.listItem.content.default,
113
+ hover: listItemTokens.listItem.content.hover,
114
+ disabled: listItemTokens.listItem.content.disabled,
115
+ selected: listItemTokens.listItem.content.selected,
116
+ },
117
+ depth1: {
118
+ bg: listItemTokens.listItem.depth1.bg.default,
119
+ border: listItemTokens.listItem.depth1.border.color,
120
+ borderWidth: listItemTokens.listItem.depth1.border.width,
121
+ },
122
+ depth2: {
123
+ bg: listItemTokens.listItem.depth2.middle.bg,
124
+ }};
125
+ // ── ListBox Tokens ──
126
+ const LIST_BOX_LAYOUT = {
127
+ radius: listBoxTokens.listBox.radius,
128
+ };
129
+ // ── Constants ──
130
+ const SEARCH_THRESHOLD = 11;
131
+ const SEARCH_DEBOUNCE_MS = 1000;
132
+ const EMPTY_MESSAGE = '표시할 항목이 없습니다.';
133
+ // ── Utilities ──
134
+ function countLeaves(options) {
135
+ return options.reduce((sum, option) => {
136
+ if (option.children) {
137
+ return sum + countLeaves(option.children);
138
+ }
139
+ return sum + 1;
140
+ }, 0);
141
+ }
142
+ function filterTree(options, keyword) {
143
+ const lowerKeyword = keyword.toLowerCase();
144
+ return options.reduce((acc, option) => {
145
+ const selfMatch = option.label.toLowerCase().includes(lowerKeyword);
146
+ if (option.children) {
147
+ // 그룹: 자식은 항상 추가로 필터링한다.
148
+ // - 자식 중 일치하는 게 있으면 그 자식들만 노출
149
+ // - 자식 매칭이 없더라도 그룹명이 매칭되면 그룹 헤더는 그대로 노출
150
+ // (이때 children 은 빈 배열로 두고, 선택 동작은 collectVisibleLeaves
151
+ // 의 fallback 이 원본 트리를 사용해 처리한다)
152
+ const filteredChildren = filterTree(option.children, keyword);
153
+ if (filteredChildren.length > 0) {
154
+ acc.push({ ...option, children: filteredChildren });
155
+ }
156
+ else if (selfMatch) {
157
+ acc.push({ ...option, children: [] });
158
+ }
159
+ }
160
+ else if (selfMatch) {
161
+ acc.push({ ...option });
162
+ }
163
+ return acc;
164
+ }, []);
165
+ }
166
+
167
+ exports.EMPTY_MESSAGE = EMPTY_MESSAGE;
168
+ exports.LIST_BOX_LAYOUT = LIST_BOX_LAYOUT;
169
+ exports.LIST_ITEM_COLORS = LIST_ITEM_COLORS;
170
+ exports.LIST_ITEM_LAYOUT = LIST_ITEM_LAYOUT;
171
+ exports.LIST_ITEM_TYPOGRAPHY = LIST_ITEM_TYPOGRAPHY;
172
+ exports.SEARCH_DEBOUNCE_MS = SEARCH_DEBOUNCE_MS;
173
+ exports.SEARCH_THRESHOLD = SEARCH_THRESHOLD;
174
+ exports.SELECT_COLORS = SELECT_COLORS;
175
+ exports.SELECT_LAYOUT = SELECT_LAYOUT;
176
+ exports.SELECT_TYPOGRAPHY = SELECT_TYPOGRAPHY;
177
+ exports.countLeaves = countLeaves;
178
+ exports.filterTree = filterTree;