@sellmate/design-system 1.20.1 → 1.22.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 (377) hide show
  1. package/dist/cjs/design-system.cjs.js +2 -2
  2. package/dist/cjs/{index-DXm0PH2A.js → index-C-F-JEv_.js} +1 -1
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/sd-action-modal.cjs.entry.js +8 -2
  5. package/dist/cjs/sd-badge.cjs.entry.js +3 -2
  6. package/dist/cjs/sd-barcode-input.cjs.entry.js +35 -2
  7. package/dist/cjs/sd-button_2.cjs.entry.js +16 -7
  8. package/dist/cjs/sd-calendar_2.cjs.entry.js +17 -6
  9. package/dist/cjs/sd-callout.cjs.entry.js +4 -2
  10. package/dist/cjs/sd-card.cjs.entry.js +4 -2
  11. package/dist/cjs/sd-checkbox.cjs.entry.js +21 -12
  12. package/dist/cjs/sd-chip-input.cjs.entry.js +76 -18
  13. package/dist/cjs/sd-chip.cjs.entry.js +19 -2
  14. package/dist/cjs/sd-circle-progress.cjs.entry.js +6 -2
  15. package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +27 -4
  16. package/dist/cjs/sd-date-box.cjs.entry.js +13 -3
  17. package/dist/cjs/sd-date-picker_7.cjs.entry.js +209 -13
  18. package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +7 -2
  19. package/dist/cjs/sd-divider.cjs.entry.js +1 -1
  20. package/dist/cjs/sd-dropdown-button.cjs.entry.js +11 -1
  21. package/dist/cjs/sd-field_3.cjs.entry.js +70 -12
  22. package/dist/cjs/sd-form.cjs.entry.js +10 -2
  23. package/dist/cjs/sd-ghost-button_3.cjs.entry.js +54 -15
  24. package/dist/cjs/sd-guide.cjs.entry.js +9 -3
  25. package/dist/cjs/sd-key-value-table.cjs.entry.js +3 -1
  26. package/dist/cjs/sd-linear-progress.cjs.entry.js +7 -4
  27. package/dist/cjs/sd-loading-container.cjs.entry.js +5 -3
  28. package/dist/cjs/sd-modal-container.cjs.entry.js +7 -1
  29. package/dist/cjs/sd-pagination_4.cjs.entry.js +121 -13
  30. package/dist/cjs/sd-popover.cjs.entry.js +21 -5
  31. package/dist/cjs/sd-popup.cjs.entry.js +7 -3
  32. package/dist/cjs/sd-radio-button.cjs.entry.js +8 -2
  33. package/dist/cjs/sd-radio.cjs.entry.js +7 -2
  34. package/dist/cjs/sd-select-list-item_2.cjs.entry.js +18 -7
  35. package/dist/cjs/sd-select_3.cjs.entry.js +56 -9
  36. package/dist/cjs/sd-switch.cjs.entry.js +6 -2
  37. package/dist/cjs/sd-table.cjs.entry.js +42 -7
  38. package/dist/cjs/sd-tabs.cjs.entry.js +8 -2
  39. package/dist/cjs/sd-td.cjs.entry.js +11 -2
  40. package/dist/cjs/sd-text-link.cjs.entry.js +13 -4
  41. package/dist/cjs/sd-toast-container.cjs.entry.js +11 -2
  42. package/dist/cjs/sd-toast.cjs.entry.js +12 -3
  43. package/dist/cjs/sd-toggle.cjs.entry.js +6 -2
  44. package/dist/cjs/{tooltipArrow-D3P3JC08.js → tooltipArrow-26hYtSrD.js} +1 -1
  45. package/dist/collection/components/assets/CaretDown.js +1 -1
  46. package/dist/collection/components/assets/CaretLeft.js +1 -1
  47. package/dist/collection/components/assets/CaretRight.js +1 -1
  48. package/dist/collection/components/assets/CaretUp.js +1 -1
  49. package/dist/collection/components/sd-action-modal/sd-action-modal.js +13 -7
  50. package/dist/collection/components/sd-badge/sd-badge.js +3 -2
  51. package/dist/collection/components/sd-barcode-input/sd-barcode-input.js +67 -34
  52. package/dist/collection/components/sd-button/sd-button.js +18 -10
  53. package/dist/collection/components/sd-calendar/sd-calendar.js +15 -9
  54. package/dist/collection/components/sd-callout/sd-callout.js +5 -3
  55. package/dist/collection/components/sd-card/sd-card.js +5 -3
  56. package/dist/collection/components/sd-checkbox/sd-checkbox.config.js +5 -3
  57. package/dist/collection/components/sd-checkbox/sd-checkbox.css +16 -0
  58. package/dist/collection/components/sd-checkbox/sd-checkbox.js +5 -3
  59. package/dist/collection/components/sd-chip/sd-chip.js +35 -18
  60. package/dist/collection/components/sd-chip-input/sd-chip-input.css +6 -0
  61. package/dist/collection/components/sd-chip-input/sd-chip-input.js +107 -49
  62. package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +9 -5
  63. package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +32 -17
  64. package/dist/collection/components/sd-date-box/sd-date-box.js +22 -12
  65. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +12 -7
  66. package/dist/collection/components/sd-date-picker/sd-date-picker.js +48 -25
  67. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +11 -6
  68. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +50 -26
  69. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +20 -10
  70. package/dist/collection/components/sd-field/sd-field.js +51 -28
  71. package/dist/collection/components/sd-file-picker/sd-file-picker.js +60 -30
  72. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +32 -11
  73. package/dist/collection/components/sd-form/sd-form.js +17 -9
  74. package/dist/collection/components/sd-ghost-button/sd-ghost-button.js +28 -13
  75. package/dist/collection/components/sd-guide/sd-guide.js +14 -8
  76. package/dist/collection/components/sd-icon/sd-icon.js +2 -1
  77. package/dist/collection/components/sd-input/sd-input.js +82 -42
  78. package/dist/collection/components/sd-key-value-table/sd-key-value-table.js +4 -2
  79. package/dist/collection/components/sd-linear-progress/sd-linear-progress.js +10 -7
  80. package/dist/collection/components/sd-loading-container/sd-loading-container.js +6 -4
  81. package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +17 -9
  82. package/dist/collection/components/sd-modal-container/sd-modal-container.js +12 -6
  83. package/dist/collection/components/sd-number-input/sd-number-input.js +82 -43
  84. package/dist/collection/components/sd-pagination/sd-pagination.js +11 -7
  85. package/dist/collection/components/sd-popover/sd-popover.js +35 -19
  86. package/dist/collection/components/sd-popup/sd-popup.js +11 -7
  87. package/dist/collection/components/sd-portal/sd-portal.js +35 -14
  88. package/dist/collection/components/sd-radio/sd-radio.js +11 -6
  89. package/dist/collection/components/sd-radio-button/sd-radio-button.js +13 -7
  90. package/dist/collection/components/sd-radio-group/sd-radio-group.js +13 -7
  91. package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +16 -9
  92. package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +12 -8
  93. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +22 -12
  94. package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +18 -10
  95. package/dist/collection/components/sd-select/sd-select.js +62 -33
  96. package/dist/collection/components/sd-switch/sd-switch.js +9 -5
  97. package/dist/collection/components/sd-table/sd-table.js +76 -41
  98. package/dist/collection/components/sd-table/sd-table.stories.helpers.js +97 -0
  99. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +4 -3
  100. package/dist/collection/components/sd-table/sd-td/sd-td.js +19 -10
  101. package/dist/collection/components/sd-table/sd-thead/sd-thead.css +21 -0
  102. package/dist/collection/components/sd-table/sd-thead/sd-thead.js +113 -20
  103. package/dist/collection/components/sd-table/sd-tr/sd-tr.js +22 -11
  104. package/dist/collection/components/sd-tabs/sd-tabs.js +13 -7
  105. package/dist/collection/components/sd-tag/sd-tag.js +10 -7
  106. package/dist/collection/components/sd-text-link/sd-text-link.js +21 -12
  107. package/dist/collection/components/sd-textarea/sd-textarea.js +69 -35
  108. package/dist/collection/components/sd-toast/sd-toast.js +20 -11
  109. package/dist/collection/components/sd-toast-container/sd-toast-container.js +19 -10
  110. package/dist/collection/components/sd-toggle/sd-toggle.js +9 -5
  111. package/dist/collection/components/sd-tooltip/sd-tooltip.js +30 -16
  112. package/dist/components/index.js +1 -1
  113. package/dist/components/{p-CUR9smP5.js → p-58DLP3IW.js} +1 -1
  114. package/dist/components/{p-CQozoo2-.js → p-B-Igud6n.js} +1 -1
  115. package/dist/components/{p-BZfVV3gu.js → p-B0myARGe.js} +1 -1
  116. package/dist/components/{p-CTPImLDQ.js → p-B12iH3Zk.js} +1 -1
  117. package/dist/components/{p-CoqA9KgU.js → p-B2bF2KlS.js} +1 -1
  118. package/dist/components/{p-MJG6EZeP.js → p-BFlmHQm9.js} +1 -1
  119. package/dist/{design-system/p-L_He_WSA.js → components/p-BRmilX-4.js} +1 -1
  120. package/dist/components/{p-Dl89_4C3.js → p-BXRgi3NZ.js} +1 -1
  121. package/dist/components/{p-BjcGzaFR.js → p-Bm3NWPaP.js} +1 -1
  122. package/dist/components/p-BpQwjSB8.js +1 -0
  123. package/dist/components/{p-CRwvv7YM.js → p-BpjmheLG.js} +1 -1
  124. package/dist/components/{p-5imde6N9.js → p-Bric-SEs.js} +1 -1
  125. package/dist/components/{p-CB2A3pJ5.js → p-BwTsP0Ak.js} +1 -1
  126. package/dist/components/{p-9Z-q6kKD.js → p-C1QezE7u.js} +1 -1
  127. package/dist/components/p-CCCwPJ5p.js +1 -0
  128. package/dist/components/p-CCO1WtEj.js +1 -0
  129. package/dist/components/p-CEKu7cxA.js +1 -0
  130. package/dist/components/{p-CrT06Uwc.js → p-CHxVi6l1.js} +1 -1
  131. package/dist/components/{p-DNnI3Nru.js → p-Cdzn78dP.js} +1 -1
  132. package/dist/components/p-Cj_1bYZF.js +1 -0
  133. package/dist/components/{p-ZvI5A-_t.js → p-Cjf8PHEl.js} +1 -1
  134. package/dist/components/{p-CJ69QmR3.js → p-Co2ThnbG.js} +1 -1
  135. package/dist/components/{p-gOIeNT-Z.js → p-CwSlRPMm.js} +1 -1
  136. package/dist/components/p-D7StBSjK.js +1 -0
  137. package/dist/components/{p-Bz93hWXV.js → p-DFbj6d3L.js} +1 -1
  138. package/dist/components/{p-B5bya7Gp.js → p-DlXBFtBO.js} +1 -1
  139. package/dist/components/{p-Rwc_ltPn.js → p-Du_qPqW-.js} +1 -1
  140. package/dist/components/{p-DIlNesBH.js → p-DzAvlr8W.js} +1 -1
  141. package/dist/components/{p-D99vy8Ip.js → p-FrqOl9KZ.js} +1 -1
  142. package/dist/components/{p-uSEbiD29.js → p-JMuxVcTW.js} +1 -1
  143. package/dist/components/{p-DertIGhs.js → p-OjchKJGr.js} +1 -1
  144. package/dist/components/p-S2-XqY2R.js +1 -0
  145. package/dist/components/{p-DDAA-zcg.js → p-YCGkwgiM.js} +1 -1
  146. package/dist/components/{p-DZTxHJlP.js → p-ZvP2Ce6J.js} +1 -1
  147. package/dist/components/p-kRH2GOb0.js +1 -0
  148. package/dist/components/{p-FTvXz0-a.js → p-mcMbSkii.js} +1 -1
  149. package/dist/components/{p-BiBLp9_a.js → p-vPS2GNz3.js} +1 -1
  150. package/dist/components/sd-action-modal.js +1 -1
  151. package/dist/components/sd-badge.js +1 -1
  152. package/dist/components/sd-barcode-input.js +1 -1
  153. package/dist/components/sd-button.js +1 -1
  154. package/dist/components/sd-calendar.js +1 -1
  155. package/dist/components/sd-callout.js +1 -1
  156. package/dist/components/sd-card.js +1 -1
  157. package/dist/components/sd-checkbox.js +1 -1
  158. package/dist/components/sd-chip-input.js +1 -1
  159. package/dist/components/sd-chip.js +1 -1
  160. package/dist/components/sd-circle-progress.js +1 -1
  161. package/dist/components/sd-confirm-modal.js +1 -1
  162. package/dist/components/sd-date-box.js +1 -1
  163. package/dist/components/sd-date-picker-trigger.js +1 -1
  164. package/dist/components/sd-date-picker.js +1 -1
  165. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  166. package/dist/components/sd-date-range-picker.js +1 -1
  167. package/dist/components/sd-divider.js +1 -1
  168. package/dist/components/sd-dropdown-button.js +1 -1
  169. package/dist/components/sd-field.js +1 -1
  170. package/dist/components/sd-file-picker.js +1 -1
  171. package/dist/components/sd-floating-portal.js +1 -1
  172. package/dist/components/sd-form.js +1 -1
  173. package/dist/components/sd-ghost-button.js +1 -1
  174. package/dist/components/sd-guide.js +1 -1
  175. package/dist/components/sd-icon.js +1 -1
  176. package/dist/components/sd-input.js +1 -1
  177. package/dist/components/sd-key-value-table.js +1 -1
  178. package/dist/components/sd-linear-progress.js +1 -1
  179. package/dist/components/sd-loading-container.js +1 -1
  180. package/dist/components/sd-loading-modal.js +1 -1
  181. package/dist/components/sd-modal-container.js +1 -1
  182. package/dist/components/sd-number-input.js +1 -1
  183. package/dist/components/sd-pagination.js +1 -1
  184. package/dist/components/sd-popover.js +1 -1
  185. package/dist/components/sd-popup.js +1 -1
  186. package/dist/components/sd-portal.js +1 -1
  187. package/dist/components/sd-radio-button.js +1 -1
  188. package/dist/components/sd-radio-group.js +1 -1
  189. package/dist/components/sd-radio.js +1 -1
  190. package/dist/components/sd-select-list-item-search.js +1 -1
  191. package/dist/components/sd-select-list-item.js +1 -1
  192. package/dist/components/sd-select-listbox.js +1 -1
  193. package/dist/components/sd-select-trigger.js +1 -1
  194. package/dist/components/sd-select.js +1 -1
  195. package/dist/components/sd-switch.js +1 -1
  196. package/dist/components/sd-table.js +1 -1
  197. package/dist/components/sd-tabs.js +1 -1
  198. package/dist/components/sd-tag.js +1 -1
  199. package/dist/components/sd-tbody.js +1 -1
  200. package/dist/components/sd-td.js +1 -1
  201. package/dist/components/sd-text-link.js +1 -1
  202. package/dist/components/sd-textarea.js +1 -1
  203. package/dist/components/sd-thead.js +1 -1
  204. package/dist/components/sd-toast-container.js +1 -1
  205. package/dist/components/sd-toast.js +1 -1
  206. package/dist/components/sd-toggle.js +1 -1
  207. package/dist/components/sd-tooltip.js +1 -1
  208. package/dist/components/sd-tr.js +1 -1
  209. package/dist/design-system/design-system.css +1 -1
  210. package/dist/design-system/design-system.esm.js +1 -1
  211. package/dist/design-system/p-14447dd5.entry.js +1 -0
  212. package/dist/design-system/{p-e9d1dbb5.entry.js → p-274dbc65.entry.js} +1 -1
  213. package/dist/design-system/{p-b291baab.entry.js → p-2ba0b35a.entry.js} +1 -1
  214. package/dist/design-system/{p-52f551a1.entry.js → p-2ca4902b.entry.js} +1 -1
  215. package/dist/design-system/p-2df32f8c.entry.js +1 -0
  216. package/dist/design-system/{p-cb80327c.entry.js → p-35da166a.entry.js} +1 -1
  217. package/dist/design-system/p-35e1e2fa.entry.js +1 -0
  218. package/dist/design-system/p-4bbc894b.entry.js +1 -0
  219. package/dist/design-system/{p-6ce68bf2.entry.js → p-4bc0ce52.entry.js} +1 -1
  220. package/dist/design-system/p-4c1559c8.entry.js +1 -0
  221. package/dist/design-system/{p-da4e2674.entry.js → p-4eeca0cb.entry.js} +1 -1
  222. package/dist/design-system/{p-646a7830.entry.js → p-4f69fde0.entry.js} +1 -1
  223. package/dist/design-system/{p-ccf1a3fc.entry.js → p-50b5cf37.entry.js} +1 -1
  224. package/dist/design-system/p-52e88677.entry.js +1 -0
  225. package/dist/design-system/{p-4acfc5f9.entry.js → p-552acf98.entry.js} +1 -1
  226. package/dist/design-system/{p-23006577.entry.js → p-563a8242.entry.js} +1 -1
  227. package/dist/design-system/{p-e3990243.entry.js → p-68687503.entry.js} +1 -1
  228. package/dist/design-system/{p-1f3c1cca.entry.js → p-6d8a4a23.entry.js} +1 -1
  229. package/dist/design-system/{p-d5032f31.entry.js → p-7c507d39.entry.js} +1 -1
  230. package/dist/design-system/{p-717eba5f.entry.js → p-88926a42.entry.js} +1 -1
  231. package/dist/design-system/{p-35d390f1.entry.js → p-90436be8.entry.js} +1 -1
  232. package/dist/design-system/{p-9289eb14.entry.js → p-99f33027.entry.js} +1 -1
  233. package/dist/design-system/{p-c47198fc.entry.js → p-9a010c12.entry.js} +1 -1
  234. package/dist/design-system/{p-54853a2b.entry.js → p-9dc0c2f9.entry.js} +1 -1
  235. package/dist/{components/p-Bg9XySrz.js → design-system/p-C7HJ-NfO.js} +2 -1
  236. package/dist/{components/p-0VCXAYrh.js → design-system/p-DUyBmuH_.js} +1 -1
  237. package/dist/design-system/{p-d5c3bac9.entry.js → p-a71a8b31.entry.js} +1 -1
  238. package/dist/design-system/{p-a4331364.entry.js → p-a80cc067.entry.js} +1 -1
  239. package/dist/design-system/{p-ae344950.entry.js → p-abcc9367.entry.js} +1 -1
  240. package/dist/design-system/p-ac81b46e.entry.js +1 -0
  241. package/dist/design-system/{p-08343698.entry.js → p-b881bbb6.entry.js} +1 -1
  242. package/dist/design-system/{p-2151e081.entry.js → p-bfba449b.entry.js} +1 -1
  243. package/dist/design-system/p-c684cd96.entry.js +1 -0
  244. package/dist/design-system/{p-b63b8df9.entry.js → p-c93c623f.entry.js} +1 -1
  245. package/dist/design-system/{p-98e0b332.entry.js → p-ccc85130.entry.js} +1 -1
  246. package/dist/design-system/{p-aa1c6202.entry.js → p-ce5df7ef.entry.js} +1 -1
  247. package/dist/design-system/{p-adfddf3b.entry.js → p-ce83eca1.entry.js} +1 -1
  248. package/dist/design-system/{p-7ed8c8f1.entry.js → p-d5b535ad.entry.js} +1 -1
  249. package/dist/design-system/{p-df7c721d.entry.js → p-e310f188.entry.js} +1 -1
  250. package/dist/design-system/p-e7d4b78e.entry.js +1 -0
  251. package/dist/design-system/{p-bdb7492c.entry.js → p-fc65bbe2.entry.js} +1 -1
  252. package/dist/design-system/{p-a5a586da.entry.js → p-ff726fad.entry.js} +1 -1
  253. package/dist/esm/design-system.js +3 -3
  254. package/dist/esm/{index-CAxodB5I.js → index-C7HJ-NfO.js} +1 -1
  255. package/dist/esm/loader.js +3 -3
  256. package/dist/esm/sd-action-modal.entry.js +8 -2
  257. package/dist/esm/sd-badge.entry.js +3 -2
  258. package/dist/esm/sd-barcode-input.entry.js +35 -2
  259. package/dist/esm/sd-button_2.entry.js +16 -7
  260. package/dist/esm/sd-calendar_2.entry.js +17 -6
  261. package/dist/esm/sd-callout.entry.js +4 -2
  262. package/dist/esm/sd-card.entry.js +4 -2
  263. package/dist/esm/sd-checkbox.entry.js +21 -12
  264. package/dist/esm/sd-chip-input.entry.js +76 -18
  265. package/dist/esm/sd-chip.entry.js +19 -2
  266. package/dist/esm/sd-circle-progress.entry.js +6 -2
  267. package/dist/esm/sd-confirm-modal_2.entry.js +27 -4
  268. package/dist/esm/sd-date-box.entry.js +13 -3
  269. package/dist/esm/sd-date-picker_7.entry.js +209 -13
  270. package/dist/esm/sd-date-range-picker-calendar.entry.js +7 -2
  271. package/dist/esm/sd-divider.entry.js +1 -1
  272. package/dist/esm/sd-dropdown-button.entry.js +11 -1
  273. package/dist/esm/sd-field_3.entry.js +70 -12
  274. package/dist/esm/sd-form.entry.js +10 -2
  275. package/dist/esm/sd-ghost-button_3.entry.js +54 -15
  276. package/dist/esm/sd-guide.entry.js +9 -3
  277. package/dist/esm/sd-key-value-table.entry.js +3 -1
  278. package/dist/esm/sd-linear-progress.entry.js +7 -4
  279. package/dist/esm/sd-loading-container.entry.js +5 -3
  280. package/dist/esm/sd-modal-container.entry.js +7 -1
  281. package/dist/esm/sd-pagination_4.entry.js +121 -13
  282. package/dist/esm/sd-popover.entry.js +21 -5
  283. package/dist/esm/sd-popup.entry.js +7 -3
  284. package/dist/esm/sd-radio-button.entry.js +8 -2
  285. package/dist/esm/sd-radio.entry.js +7 -2
  286. package/dist/esm/sd-select-list-item_2.entry.js +18 -7
  287. package/dist/esm/sd-select_3.entry.js +56 -9
  288. package/dist/esm/sd-switch.entry.js +6 -2
  289. package/dist/esm/sd-table.entry.js +42 -7
  290. package/dist/esm/sd-tabs.entry.js +8 -2
  291. package/dist/esm/sd-td.entry.js +11 -2
  292. package/dist/esm/sd-text-link.entry.js +13 -4
  293. package/dist/esm/sd-toast-container.entry.js +11 -2
  294. package/dist/esm/sd-toast.entry.js +12 -3
  295. package/dist/esm/sd-toggle.entry.js +6 -2
  296. package/dist/esm/{tooltipArrow-DLr6VvUK.js → tooltipArrow-Bgf3crs7.js} +1 -1
  297. package/dist/types/components/sd-action-modal/sd-action-modal.d.ts +6 -0
  298. package/dist/types/components/sd-badge/sd-badge.d.ts +1 -0
  299. package/dist/types/components/sd-barcode-input/sd-barcode-input.d.ts +33 -0
  300. package/dist/types/components/sd-button/sd-button.d.ts +8 -0
  301. package/dist/types/components/sd-calendar/sd-calendar.d.ts +6 -0
  302. package/dist/types/components/sd-callout/sd-callout.d.ts +2 -0
  303. package/dist/types/components/sd-card/sd-card.d.ts +2 -0
  304. package/dist/types/components/sd-checkbox/sd-checkbox.config.d.ts +2 -0
  305. package/dist/types/components/sd-chip/sd-chip.d.ts +17 -0
  306. package/dist/types/components/sd-chip-input/sd-chip-input.d.ts +33 -0
  307. package/dist/types/components/sd-circle-progress/sd-circle-progress.d.ts +4 -0
  308. package/dist/types/components/sd-confirm-modal/sd-confirm-modal.d.ts +15 -0
  309. package/dist/types/components/sd-date-box/sd-date-box.d.ts +10 -0
  310. package/dist/types/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.d.ts +5 -0
  311. package/dist/types/components/sd-date-picker/sd-date-picker.d.ts +23 -0
  312. package/dist/types/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.d.ts +5 -0
  313. package/dist/types/components/sd-date-range-picker/sd-date-range-picker.d.ts +24 -0
  314. package/dist/types/components/sd-dropdown-button/sd-dropdown-button.d.ts +10 -0
  315. package/dist/types/components/sd-field/sd-field.d.ts +23 -0
  316. package/dist/types/components/sd-file-picker/sd-file-picker.d.ts +30 -0
  317. package/dist/types/components/sd-floating-portal/sd-floating-portal.d.ts +12 -0
  318. package/dist/types/components/sd-form/sd-form.d.ts +8 -0
  319. package/dist/types/components/sd-ghost-button/sd-ghost-button.d.ts +7 -0
  320. package/dist/types/components/sd-guide/sd-guide.d.ts +6 -0
  321. package/dist/types/components/sd-icon/sd-icon.d.ts +1 -0
  322. package/dist/types/components/sd-input/sd-input.d.ts +40 -0
  323. package/dist/types/components/sd-key-value-table/sd-key-value-table.d.ts +2 -0
  324. package/dist/types/components/sd-linear-progress/sd-linear-progress.d.ts +4 -0
  325. package/dist/types/components/sd-loading-container/sd-loading-container.d.ts +2 -0
  326. package/dist/types/components/sd-loading-modal/sd-loading-modal.d.ts +8 -0
  327. package/dist/types/components/sd-modal-container/sd-modal-container.d.ts +6 -0
  328. package/dist/types/components/sd-number-input/sd-number-input.d.ts +39 -0
  329. package/dist/types/components/sd-pagination/sd-pagination.d.ts +4 -0
  330. package/dist/types/components/sd-popover/sd-popover.d.ts +16 -0
  331. package/dist/types/components/sd-popup/sd-popup.d.ts +5 -0
  332. package/dist/types/components/sd-portal/sd-portal.d.ts +13 -0
  333. package/dist/types/components/sd-radio/sd-radio.d.ts +5 -0
  334. package/dist/types/components/sd-radio-button/sd-radio-button.d.ts +6 -0
  335. package/dist/types/components/sd-radio-group/sd-radio-group.d.ts +6 -0
  336. package/dist/types/components/sd-select/sd-select-list-item/sd-select-list-item.d.ts +7 -0
  337. package/dist/types/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.d.ts +4 -0
  338. package/dist/types/components/sd-select/sd-select-listbox/sd-select-listbox.d.ts +10 -0
  339. package/dist/types/components/sd-select/sd-select-trigger/sd-select-trigger.d.ts +8 -0
  340. package/dist/types/components/sd-select/sd-select.d.ts +29 -0
  341. package/dist/types/components/sd-switch/sd-switch.d.ts +4 -0
  342. package/dist/types/components/sd-table/constants.d.ts +1 -0
  343. package/dist/types/components/sd-table/sd-table.d.ts +35 -0
  344. package/dist/types/components/sd-table/sd-table.stories.helpers.d.ts +10 -0
  345. package/dist/types/components/sd-table/sd-tbody/sd-tbody.d.ts +1 -0
  346. package/dist/types/components/sd-table/sd-td/sd-td.d.ts +9 -0
  347. package/dist/types/components/sd-table/sd-thead/sd-thead.d.ts +21 -0
  348. package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +11 -0
  349. package/dist/types/components/sd-tabs/sd-tabs.d.ts +6 -0
  350. package/dist/types/components/sd-tag/sd-tag.d.ts +4 -0
  351. package/dist/types/components/sd-text-link/sd-text-link.d.ts +9 -0
  352. package/dist/types/components/sd-textarea/sd-textarea.d.ts +34 -0
  353. package/dist/types/components/sd-toast/sd-toast.d.ts +9 -0
  354. package/dist/types/components/sd-toast-container/sd-toast-container.d.ts +9 -0
  355. package/dist/types/components/sd-toggle/sd-toggle.d.ts +4 -0
  356. package/dist/types/components/sd-tooltip/sd-tooltip.d.ts +14 -0
  357. package/dist/types/components.d.ts +1827 -7
  358. package/hydrate/index.js +949 -146
  359. package/hydrate/index.mjs +949 -146
  360. package/package.json +1 -1
  361. package/dist/components/p-B7PHGGFH.js +0 -1
  362. package/dist/components/p-CLlAhEDc.js +0 -1
  363. package/dist/components/p-CXeOxSQ-.js +0 -1
  364. package/dist/components/p-CZfsknba.js +0 -1
  365. package/dist/components/p-CvSqieCH.js +0 -1
  366. package/dist/components/p-P2jWtk8J.js +0 -1
  367. package/dist/components/p-xkRWGISE.js +0 -1
  368. package/dist/design-system/p-17dcf0e4.entry.js +0 -1
  369. package/dist/design-system/p-316b8a08.entry.js +0 -1
  370. package/dist/design-system/p-5039241c.entry.js +0 -1
  371. package/dist/design-system/p-5eaa12af.entry.js +0 -1
  372. package/dist/design-system/p-9c38ee79.entry.js +0 -1
  373. package/dist/design-system/p-CAxodB5I.js +0 -2
  374. package/dist/design-system/p-c995e6c3.entry.js +0 -1
  375. package/dist/design-system/p-eef6d4a3.entry.js +0 -1
  376. package/dist/design-system/p-faf7b64c.entry.js +0 -1
  377. package/dist/design-system/p-fd7abbfa.entry.js +0 -1
@@ -2,18 +2,27 @@ import { h, Host, forceUpdate } from "@stencil/core";
2
2
  import { TABLE_ID_ATTR } from "../constants";
3
3
  export class SdTd {
4
4
  el;
5
+ /** 데이터 필드명 (슬롯 이름 생성에 사용) */
5
6
  field;
7
+ /** 행 식별 키 */
6
8
  rowKey;
9
+ /** 셀 내용 정렬 */
7
10
  align;
11
+ /** 행 병합 수 */
8
12
  rowspan;
13
+ /** 열 병합 수 */
9
14
  colspan;
10
15
  // sd-tr가 그리는 실제 <td>에 머지될 사용자 클래스.
11
16
  // <sd-td> 호스트는 display:contents라 호스트의 class는 시각 효과가 없기 때문에,
12
17
  // 이 prop을 통해 sd-table 레지스트리에 등록 → sd-tr가 td 렌더 시 합쳐 사용한다.
18
+ /** td에 병합할 사용자 클래스 */
13
19
  sdClass;
20
+ /** 좌측 구분선 표시 여부 */
14
21
  dividerLeft = false;
22
+ /** 우측 구분선 표시 여부 */
15
23
  dividerRight = false;
16
24
  // true이면 이 셀이 속한 행 전체가 dense를 무시하고 default 레이아웃으로 동작한다.
25
+ /** frame 레이아웃 사용 여부 */
17
26
  useFrame = false;
18
27
  handleFieldChange(_newField, oldField) {
19
28
  this.syncSlotName();
@@ -150,7 +159,7 @@ export class SdTd {
150
159
  }
151
160
  }
152
161
  render() {
153
- return (h(Host, { key: 'ed5419d9190514381bb8fe43a8588c7d88983527', class: { [`align-${this.align}`]: Boolean(this.align) } }, h("slot", { key: '308d16388614375c94bd4c5efc8e173b56b4af2a' })));
162
+ return (h(Host, { key: 'd7cea28b006a4903fab00e7a709252e6009f911f', class: { [`align-${this.align}`]: Boolean(this.align) } }, h("slot", { key: '1d8695ff6c6890838e4b18ec4da1d7ff6a5c8858' })));
154
163
  }
155
164
  static get is() { return "sd-td"; }
156
165
  static get originalStyleUrls() {
@@ -177,7 +186,7 @@ export class SdTd {
177
186
  "optional": false,
178
187
  "docs": {
179
188
  "tags": [],
180
- "text": ""
189
+ "text": "\uB370\uC774\uD130 \uD544\uB4DC\uBA85 (\uC2AC\uB86F \uC774\uB984 \uC0DD\uC131\uC5D0 \uC0AC\uC6A9)"
181
190
  },
182
191
  "getter": false,
183
192
  "setter": false,
@@ -196,7 +205,7 @@ export class SdTd {
196
205
  "optional": false,
197
206
  "docs": {
198
207
  "tags": [],
199
- "text": ""
208
+ "text": "\uD589 \uC2DD\uBCC4 \uD0A4"
200
209
  },
201
210
  "getter": false,
202
211
  "setter": false,
@@ -215,7 +224,7 @@ export class SdTd {
215
224
  "optional": true,
216
225
  "docs": {
217
226
  "tags": [],
218
- "text": ""
227
+ "text": "\uC140 \uB0B4\uC6A9 \uC815\uB82C"
219
228
  },
220
229
  "getter": false,
221
230
  "setter": false,
@@ -234,7 +243,7 @@ export class SdTd {
234
243
  "optional": true,
235
244
  "docs": {
236
245
  "tags": [],
237
- "text": ""
246
+ "text": "\uD589 \uBCD1\uD569 \uC218"
238
247
  },
239
248
  "getter": false,
240
249
  "setter": false,
@@ -253,7 +262,7 @@ export class SdTd {
253
262
  "optional": true,
254
263
  "docs": {
255
264
  "tags": [],
256
- "text": ""
265
+ "text": "\uC5F4 \uBCD1\uD569 \uC218"
257
266
  },
258
267
  "getter": false,
259
268
  "setter": false,
@@ -272,7 +281,7 @@ export class SdTd {
272
281
  "optional": true,
273
282
  "docs": {
274
283
  "tags": [],
275
- "text": ""
284
+ "text": "td\uC5D0 \uBCD1\uD569\uD560 \uC0AC\uC6A9\uC790 \uD074\uB798\uC2A4"
276
285
  },
277
286
  "getter": false,
278
287
  "setter": false,
@@ -291,7 +300,7 @@ export class SdTd {
291
300
  "optional": false,
292
301
  "docs": {
293
302
  "tags": [],
294
- "text": ""
303
+ "text": "\uC88C\uCE21 \uAD6C\uBD84\uC120 \uD45C\uC2DC \uC5EC\uBD80"
295
304
  },
296
305
  "getter": false,
297
306
  "setter": false,
@@ -311,7 +320,7 @@ export class SdTd {
311
320
  "optional": false,
312
321
  "docs": {
313
322
  "tags": [],
314
- "text": ""
323
+ "text": "\uC6B0\uCE21 \uAD6C\uBD84\uC120 \uD45C\uC2DC \uC5EC\uBD80"
315
324
  },
316
325
  "getter": false,
317
326
  "setter": false,
@@ -331,7 +340,7 @@ export class SdTd {
331
340
  "optional": false,
332
341
  "docs": {
333
342
  "tags": [],
334
- "text": ""
343
+ "text": "frame \uB808\uC774\uC544\uC6C3 \uC0AC\uC6A9 \uC5EC\uBD80"
335
344
  },
336
345
  "getter": false,
337
346
  "setter": false,
@@ -143,6 +143,27 @@ sd-thead * {
143
143
  background-color: var(--table-header-resizer-color, #CCCCCC);
144
144
  }
145
145
 
146
+ .th__dropdown-trigger {
147
+ display: flex;
148
+ align-items: center;
149
+ justify-content: center;
150
+ flex-shrink: 0;
151
+ width: 16px;
152
+ height: 16px;
153
+ padding: 0;
154
+ border: none;
155
+ background: transparent;
156
+ cursor: pointer;
157
+ color: inherit;
158
+ border-radius: 2px;
159
+ }
160
+ .th__dropdown-trigger sd-icon {
161
+ transition: transform 0.15s ease;
162
+ }
163
+ .th__dropdown-trigger--open sd-icon {
164
+ transform: rotate(180deg);
165
+ }
166
+
146
167
  .th__resizer {
147
168
  position: absolute;
148
169
  top: 50%;
@@ -3,15 +3,25 @@ import { TABLE_ID_ATTR, } from "../constants";
3
3
  import { resolveTableIconColor, resolveSortIconName, TABLE_HEADER_LAYOUT, TABLE_HEADER_TYPOGRAPHY, TABLE_HEADER_COLORS, TABLE_HEADER_RESIZING_BAR, TABLE_BORDER, TABLE_SELECTABLE_COLUMN_WIDTH, } from "../sd-table.config";
4
4
  export class SdThead {
5
5
  el;
6
+ /** 테이블 컬럼 목록 */
6
7
  columns;
8
+ /** 행 선택 기능 사용 여부 */
7
9
  selectable;
10
+ /** 컬럼 너비 조절 가능 여부 */
8
11
  resizable;
12
+ /** 고정 컬럼 설정 */
9
13
  stickyColumn;
14
+ /** 헤더 고정 여부 */
10
15
  stickyHeader;
16
+ /** 좌측 스크롤 여부 */
11
17
  scrolledLeft;
18
+ /** 우측 스크롤 여부 */
12
19
  scrolledRight;
20
+ /** 전체 선택 체크박스용 행 데이터 */
13
21
  rows = [];
22
+ /** 컬럼 너비 목록 */
14
23
  columnWidths = [];
24
+ /** 컬럼 정렬 버튼 클릭 시 발생합니다. */
15
25
  sdColumnSort;
16
26
  tableId = '';
17
27
  _columns = [];
@@ -21,14 +31,29 @@ export class SdThead {
21
31
  _stickyHeader = false;
22
32
  _scrolledLeft = false;
23
33
  _scrolledRight = false;
34
+ dropdownOpenMap = {};
24
35
  tableEl = null;
36
+ dropdownRefs = {};
37
+ dropdownThRefs = {};
38
+ dropdownPortals = {};
25
39
  handleColumnsChange(newCols) {
26
40
  if (Array.isArray(newCols) && (this.columnWidths ?? []).length === 0) {
27
41
  this.columnWidths = newCols.map(c => (c.autoWidth ? 0 : parseInt(c.width || '120', 10)));
28
42
  }
29
43
  }
44
+ disconnectedCallback() {
45
+ const portals = this.dropdownPortals ?? {};
46
+ Object.values(portals).forEach(portal => {
47
+ if (portal?.parentNode != null)
48
+ portal.parentNode.removeChild(portal);
49
+ });
50
+ }
30
51
  componentWillLoad() {
31
52
  this.syncTableContext();
53
+ this.dropdownOpenMap = this.dropdownOpenMap ?? {};
54
+ this.dropdownRefs = this.dropdownRefs ?? {};
55
+ this.dropdownThRefs = this.dropdownThRefs ?? {};
56
+ this.dropdownPortals = this.dropdownPortals ?? {};
32
57
  this.columnWidths = Array.isArray(this.columnWidths) ? this.columnWidths : [];
33
58
  this.resolveConfig();
34
59
  if ((this.columnWidths ?? []).length === 0) {
@@ -38,6 +63,36 @@ export class SdThead {
38
63
  componentDidLoad() {
39
64
  this.syncTableContext();
40
65
  this.resolveConfig();
66
+ this.initDropdownPortals();
67
+ }
68
+ // sd-portal을 body에 붙여 CSS transform 영향 없이 정확한 위치에 패널을 표시한다.
69
+ // <slot>을 render에 두지 않고 직접 DOM 이동(slot 속성 제거)으로 Stencil 슬롯 에뮬레이션 충돌을 피한다.
70
+ initDropdownPortals() {
71
+ const cols = this._columns ?? [];
72
+ const hasDropdownCols = cols.filter(c => c.hasDropdown === true);
73
+ if (hasDropdownCols.length === 0)
74
+ return;
75
+ for (const col of hasDropdownCols) {
76
+ const colName = col.name;
77
+ // 이미 포탈이 생성된 컬럼은 건너뜀 (refreshConfig 재호출 대비)
78
+ if ((this.dropdownPortals ?? {})[colName] != null)
79
+ continue;
80
+ const slotContent = this.el.querySelector(`[slot="dropdown-${colName}"]`);
81
+ if (slotContent == null)
82
+ continue;
83
+ // slot 속성 제거: Stencil 슬롯 에뮬레이션이 재배포하지 못하게 한다
84
+ slotContent.removeAttribute('slot');
85
+ const portal = document.createElement('sd-portal');
86
+ portal.parentRef = this.dropdownThRefs[colName] ?? null;
87
+ portal.open = false;
88
+ // 첫 open 전까지 포탈 호스트 자체를 숨긴다.
89
+ // moveSlotContent()가 open=true 시 children을 독립 wrapper div로 이동하므로 이후 동작에 영향 없음.
90
+ portal.style.display = 'none';
91
+ portal.addEventListener('sdClose', () => this.closeDropdown(colName));
92
+ portal.appendChild(slotContent);
93
+ document.body.appendChild(portal);
94
+ this.dropdownPortals[colName] = portal;
95
+ }
41
96
  }
42
97
  syncTableContext() {
43
98
  // sd-table이 shadow:true이므로 fallback content로 렌더되면 closest가 경계를 못 넘는다.
@@ -77,12 +132,16 @@ export class SdThead {
77
132
  this.columnWidths = [];
78
133
  }
79
134
  }
135
+ /** 테이블 설정을 다시 불러옵니다. */
80
136
  async refreshConfig() {
81
137
  this.resolveConfig();
138
+ this.initDropdownPortals();
82
139
  }
140
+ /** 컬럼 너비를 업데이트합니다. */
83
141
  async setColumnWidths(widths) {
84
142
  this.columnWidths = Array.isArray(widths) ? widths : [];
85
143
  }
144
+ /** 전체 선택 체크박스 상태를 갱신합니다. */
86
145
  async refreshSelection() {
87
146
  const checkbox = this.el.querySelector('sd-checkbox');
88
147
  if (checkbox) {
@@ -121,6 +180,28 @@ export class SdThead {
121
180
  handleColumnSort = (col) => {
122
181
  this.sdColumnSort.emit({ column: col });
123
182
  };
183
+ toggleDropdown(name) {
184
+ const isOpen = this.dropdownOpenMap[name] !== true;
185
+ const portals = this.dropdownPortals ?? {};
186
+ const newMap = { ...this.dropdownOpenMap };
187
+ // _columns 기준으로 순회: portals가 비어도 dropdownOpenMap은 항상 갱신됨
188
+ for (const col of (this._columns ?? []).filter(c => c.hasDropdown === true)) {
189
+ const shouldBeOpen = col.name === name ? isOpen : false;
190
+ newMap[col.name] = shouldBeOpen;
191
+ const portal = portals[col.name];
192
+ if (portal != null)
193
+ portal.open = shouldBeOpen;
194
+ }
195
+ this.dropdownOpenMap = newMap;
196
+ }
197
+ closeDropdown(name) {
198
+ if (this.dropdownOpenMap[name] !== true)
199
+ return;
200
+ this.dropdownOpenMap = { ...this.dropdownOpenMap, [name]: false };
201
+ const portal = (this.dropdownPortals ?? {})[name];
202
+ if (portal != null)
203
+ portal.open = false;
204
+ }
124
205
  handleSelectAll(checked) {
125
206
  const nextChecked = !!checked;
126
207
  const safeRows = Array.isArray(this.rows) ? this.rows : [];
@@ -137,6 +218,8 @@ export class SdThead {
137
218
  }
138
219
  render() {
139
220
  const safeRows = Array.isArray(this.rows) ? this.rows : [];
221
+ const dropdownOpenMap = this.dropdownOpenMap ?? {};
222
+ const dropdownRefs = this.dropdownRefs ?? {};
140
223
  const stickyLeftCount = this._stickyColumn.left || 0;
141
224
  const stickyRightCount = this._stickyColumn.right || 0;
142
225
  const stickyLeftCols = this.visibleColumns.slice(0, stickyLeftCount);
@@ -158,22 +241,25 @@ export class SdThead {
158
241
  '--table-border-color': TABLE_BORDER.color,
159
242
  '--table-border-width': `${TABLE_BORDER.width}px`,
160
243
  };
161
- return (h(Host, { key: 'c25f6f9704c079d4cb93da7e65c8c15b6dedcb67', slot: `${this.tableId}-head`, style: headStyle }, h("thead", { key: 'd91019378caafa2ec32dfa838eaa4d1fe815fb0d', class: {
244
+ return (h(Host, { key: '947f5e5b0e59e7e6f8a73e4fd44dbfa646cb630a', slot: `${this.tableId}-head`, style: headStyle }, h("thead", { key: '2e0ffbfe9d96528c6e0082d4883fa462a18831d6', class: {
162
245
  'thead': true,
163
246
  'thead--sticky': this._stickyHeader,
164
- } }, h("tr", { key: '84e581f5c564693d356f56525f57d6b1da211442', class: "tr" }, this._selectable && (h("th", { key: 'fb92e978229c32d560f46af4e90e0980c9c0a213', class: {
247
+ } }, h("tr", { key: '5843a18e1548bc6546e447d4c9213375116af0e9', class: "tr" }, this._selectable && (h("th", { key: '914024ca35874747e39f1819337cd4ad1cbe733d', class: {
165
248
  'th': true,
166
249
  'th--selected': true,
167
250
  'sticky-left': true,
168
251
  'sticky-left-edge': stickyLeftCount === 0,
169
252
  'is-scrolled-left': stickyLeftCount === 0 && this._scrolledLeft,
170
- }, style: { '--sticky-left-offset': '0px' } }, h("sd-checkbox", { key: '157f59b56a4ef2a8529318c8beaf6f59b91e12f0', value: this.getIsAllChecked(), disabled: safeRows.length === 0, onSdUpdate: (e) => this.handleSelectAll(e.detail) }), h("div", { key: 'b65e099ebe4940b26cc251961e66a375400f2379', class: "th__bar" }))), stickyLeftCols.map((col, idx) => (h("th", { key: col.name, class: {
253
+ }, style: { '--sticky-left-offset': '0px' } }, h("sd-checkbox", { key: 'e07232f1f5fa02589573ddaae53ebdadbdb97674', value: this.getIsAllChecked(), disabled: safeRows.length === 0, onSdUpdate: (e) => this.handleSelectAll(e.detail) }), h("div", { key: '08b504cfd4f420e76e91d649eed28c7068517044', class: "th__bar" }))), stickyLeftCols.map((col, idx) => (h("th", { key: col.name, class: {
171
254
  'th': true,
172
255
  [`${col.thClass}`]: Boolean(col.thClass),
173
256
  'sticky-left': true,
174
257
  'sticky-left-edge': idx === stickyLeftCount - 1,
175
258
  'is-scrolled-left': idx === stickyLeftCount - 1 && this._scrolledLeft,
176
- }, style: { ...col.thStyle, ...this.getStickyStyle(idx) } }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text))))))), this._resizable && idx !== lastColIdx && (
259
+ }, style: { ...col.thStyle, ...this.getStickyStyle(idx) }, ref: col.hasDropdown === true ? (el => { this.dropdownThRefs[col.name] = el; }) : undefined }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text)))))), col.hasDropdown === true && (h("button", { class: {
260
+ 'th__dropdown-trigger': true,
261
+ 'th__dropdown-trigger--open': dropdownOpenMap[col.name] === true,
262
+ }, ref: el => { dropdownRefs[col.name] = el; }, onClick: () => this.toggleDropdown(col.name), "aria-haspopup": "listbox", "aria-expanded": dropdownOpenMap[col.name] === true ? 'true' : 'false' }, h("sd-icon", { name: "chevronDown", size: "12" })))), this._resizable && idx !== lastColIdx && (
177
263
  // column resize 는 마우스 드래그 전용 인터랙션이라 키보드 핸들러를 두지 않는다.
178
264
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
179
265
  h("div", { class: "th__resizer", onMouseDown: (evt) => this.handleResize(idx, evt) }))))), middleCols.map((col, relativeIdx) => {
@@ -181,7 +267,10 @@ export class SdThead {
181
267
  return (h("th", { key: col.name, class: {
182
268
  th: true,
183
269
  [`${col.thClass}`]: Boolean(col.thClass),
184
- }, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) } }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text))))))), this._resizable && actualColIdx !== lastColIdx && (
270
+ }, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) }, ref: col.hasDropdown === true ? (el => { this.dropdownThRefs[col.name] = el; }) : undefined }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text)))))), col.hasDropdown === true && (h("button", { class: {
271
+ 'th__dropdown-trigger': true,
272
+ 'th__dropdown-trigger--open': this.dropdownOpenMap[col.name] === true,
273
+ }, ref: el => { this.dropdownRefs[col.name] = el; }, onClick: () => this.toggleDropdown(col.name), "aria-haspopup": "listbox", "aria-expanded": this.dropdownOpenMap[col.name] === true ? 'true' : 'false' }, h("sd-icon", { name: "chevronDown", size: "12" })))), this._resizable && actualColIdx !== lastColIdx && (
185
274
  // column resize 는 마우스 드래그 전용 인터랙션이라 키보드 핸들러를 두지 않는다.
186
275
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
187
276
  h("div", { class: "th__resizer", onMouseDown: (evt) => this.handleResize(actualColIdx, evt) }))));
@@ -193,7 +282,10 @@ export class SdThead {
193
282
  'sticky-right': true,
194
283
  'sticky-right-edge': relativeIdx === 0,
195
284
  'is-scrolled-right': relativeIdx === 0 && this._scrolledRight,
196
- }, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) } }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text))))))), this._resizable && (
285
+ }, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) }, ref: col.hasDropdown === true ? (el => { this.dropdownThRefs[col.name] = el; }) : undefined }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text)))))), col.hasDropdown === true && (h("button", { class: {
286
+ 'th__dropdown-trigger': true,
287
+ 'th__dropdown-trigger--open': this.dropdownOpenMap[col.name] === true,
288
+ }, ref: el => { this.dropdownRefs[col.name] = el; }, onClick: () => this.toggleDropdown(col.name), "aria-haspopup": "listbox", "aria-expanded": this.dropdownOpenMap[col.name] === true ? 'true' : 'false' }, h("sd-icon", { name: "chevronDown", size: "12" })))), this._resizable && (
197
289
  // column resize 는 마우스 드래그 전용 인터랙션이라 키보드 핸들러를 두지 않는다.
198
290
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
199
291
  h("div", { class: "th__resizer th__resizer--left", onMouseDown: (evt) => this.handleResize(actualColIdx, evt, true) }))));
@@ -231,7 +323,7 @@ export class SdThead {
231
323
  "optional": true,
232
324
  "docs": {
233
325
  "tags": [],
234
- "text": ""
326
+ "text": "\uD14C\uC774\uBE14 \uCEEC\uB7FC \uBAA9\uB85D"
235
327
  },
236
328
  "getter": false,
237
329
  "setter": false
@@ -248,7 +340,7 @@ export class SdThead {
248
340
  "optional": true,
249
341
  "docs": {
250
342
  "tags": [],
251
- "text": ""
343
+ "text": "\uD589 \uC120\uD0DD \uAE30\uB2A5 \uC0AC\uC6A9 \uC5EC\uBD80"
252
344
  },
253
345
  "getter": false,
254
346
  "setter": false,
@@ -267,7 +359,7 @@ export class SdThead {
267
359
  "optional": true,
268
360
  "docs": {
269
361
  "tags": [],
270
- "text": ""
362
+ "text": "\uCEEC\uB7FC \uB108\uBE44 \uC870\uC808 \uAC00\uB2A5 \uC5EC\uBD80"
271
363
  },
272
364
  "getter": false,
273
365
  "setter": false,
@@ -293,7 +385,7 @@ export class SdThead {
293
385
  "optional": true,
294
386
  "docs": {
295
387
  "tags": [],
296
- "text": ""
388
+ "text": "\uACE0\uC815 \uCEEC\uB7FC \uC124\uC815"
297
389
  },
298
390
  "getter": false,
299
391
  "setter": false
@@ -310,7 +402,7 @@ export class SdThead {
310
402
  "optional": true,
311
403
  "docs": {
312
404
  "tags": [],
313
- "text": ""
405
+ "text": "\uD5E4\uB354 \uACE0\uC815 \uC5EC\uBD80"
314
406
  },
315
407
  "getter": false,
316
408
  "setter": false,
@@ -329,7 +421,7 @@ export class SdThead {
329
421
  "optional": true,
330
422
  "docs": {
331
423
  "tags": [],
332
- "text": ""
424
+ "text": "\uC88C\uCE21 \uC2A4\uD06C\uB864 \uC5EC\uBD80"
333
425
  },
334
426
  "getter": false,
335
427
  "setter": false,
@@ -348,7 +440,7 @@ export class SdThead {
348
440
  "optional": true,
349
441
  "docs": {
350
442
  "tags": [],
351
- "text": ""
443
+ "text": "\uC6B0\uCE21 \uC2A4\uD06C\uB864 \uC5EC\uBD80"
352
444
  },
353
445
  "getter": false,
354
446
  "setter": false,
@@ -374,7 +466,7 @@ export class SdThead {
374
466
  "optional": false,
375
467
  "docs": {
376
468
  "tags": [],
377
- "text": ""
469
+ "text": "\uC804\uCCB4 \uC120\uD0DD \uCCB4\uD06C\uBC15\uC2A4\uC6A9 \uD589 \uB370\uC774\uD130"
378
470
  },
379
471
  "getter": false,
380
472
  "setter": false,
@@ -392,7 +484,7 @@ export class SdThead {
392
484
  "optional": false,
393
485
  "docs": {
394
486
  "tags": [],
395
- "text": ""
487
+ "text": "\uCEEC\uB7FC \uB108\uBE44 \uBAA9\uB85D"
396
488
  },
397
489
  "getter": false,
398
490
  "setter": false,
@@ -409,7 +501,8 @@ export class SdThead {
409
501
  "_stickyColumn": {},
410
502
  "_stickyHeader": {},
411
503
  "_scrolledLeft": {},
412
- "_scrolledRight": {}
504
+ "_scrolledRight": {},
505
+ "dropdownOpenMap": {}
413
506
  };
414
507
  }
415
508
  static get events() {
@@ -421,7 +514,7 @@ export class SdThead {
421
514
  "composed": true,
422
515
  "docs": {
423
516
  "tags": [],
424
- "text": ""
517
+ "text": "\uCEEC\uB7FC \uC815\uB82C \uBC84\uD2BC \uD074\uB9AD \uC2DC \uBC1C\uC0DD\uD569\uB2C8\uB2E4."
425
518
  },
426
519
  "complexType": {
427
520
  "original": "{ column: SdTableColumn }",
@@ -452,7 +545,7 @@ export class SdThead {
452
545
  "return": "Promise<void>"
453
546
  },
454
547
  "docs": {
455
- "text": "",
548
+ "text": "\uD14C\uC774\uBE14 \uC124\uC815\uC744 \uB2E4\uC2DC \uBD88\uB7EC\uC635\uB2C8\uB2E4.",
456
549
  "tags": []
457
550
  }
458
551
  },
@@ -473,7 +566,7 @@ export class SdThead {
473
566
  "return": "Promise<void>"
474
567
  },
475
568
  "docs": {
476
- "text": "",
569
+ "text": "\uCEEC\uB7FC \uB108\uBE44\uB97C \uC5C5\uB370\uC774\uD2B8\uD569\uB2C8\uB2E4.",
477
570
  "tags": []
478
571
  }
479
572
  },
@@ -490,7 +583,7 @@ export class SdThead {
490
583
  "return": "Promise<void>"
491
584
  },
492
585
  "docs": {
493
- "text": "",
586
+ "text": "\uC804\uCCB4 \uC120\uD0DD \uCCB4\uD06C\uBC15\uC2A4 \uC0C1\uD0DC\uB97C \uAC31\uC2E0\uD569\uB2C8\uB2E4.",
494
587
  "tags": []
495
588
  }
496
589
  }
@@ -3,11 +3,17 @@ import { TABLE_ID_ATTR, } from "../constants";
3
3
  import { TABLE_BODY_LAYOUT, TABLE_BODY_TYPOGRAPHY, TABLE_BORDER, TABLE_SEPARATOR, } from "../sd-table.config";
4
4
  export class SdTr {
5
5
  el;
6
+ /** 테이블 컬럼 목록 */
6
7
  columns;
8
+ /** 행 선택 기능 사용 여부 */
7
9
  selectable;
10
+ /** 고정 컬럼 설정 */
8
11
  stickyColumn;
12
+ /** 행 식별 키 */
9
13
  rowKey = '';
14
+ /** 행 데이터 객체 */
10
15
  row = {};
16
+ /** 구분선 높이 (4 또는 6px, null이면 일반 행) */
11
17
  separator = null;
12
18
  tableId = '';
13
19
  columnWidths = [];
@@ -60,12 +66,15 @@ export class SdTr {
60
66
  this.columnWidths = [...config.columnWidths];
61
67
  }
62
68
  }
69
+ /** 테이블 설정을 다시 불러옵니다. */
63
70
  async refreshConfig() {
64
71
  this.resolveConfig();
65
72
  }
73
+ /** 셀 병합 버전을 갱신해 td를 재렌더링합니다. */
66
74
  async bumpSpansVersion() {
67
75
  this.spansVersion = this.spansVersion + 1;
68
76
  }
77
+ /** 페이지네이션에 따른 행 표시 여부를 갱신합니다. */
69
78
  async updateVisibility() {
70
79
  this.updateVisibilitySync();
71
80
  }
@@ -78,9 +87,11 @@ export class SdTr {
78
87
  }
79
88
  this.isVisible = rowIndex >= pageInfo.startIndex && rowIndex < pageInfo.endIndex;
80
89
  }
90
+ /** 컬럼 너비를 업데이트합니다. */
81
91
  async setColumnWidths(widths) {
82
92
  this.columnWidths = widths;
83
93
  }
94
+ /** 체크박스 선택 상태를 갱신합니다. */
84
95
  async refreshSelection() {
85
96
  const checkbox = this.el.querySelector('sd-checkbox');
86
97
  if (checkbox) {
@@ -291,7 +302,7 @@ export class SdTr {
291
302
  "optional": true,
292
303
  "docs": {
293
304
  "tags": [],
294
- "text": ""
305
+ "text": "\uD14C\uC774\uBE14 \uCEEC\uB7FC \uBAA9\uB85D"
295
306
  },
296
307
  "getter": false,
297
308
  "setter": false
@@ -308,7 +319,7 @@ export class SdTr {
308
319
  "optional": true,
309
320
  "docs": {
310
321
  "tags": [],
311
- "text": ""
322
+ "text": "\uD589 \uC120\uD0DD \uAE30\uB2A5 \uC0AC\uC6A9 \uC5EC\uBD80"
312
323
  },
313
324
  "getter": false,
314
325
  "setter": false,
@@ -334,7 +345,7 @@ export class SdTr {
334
345
  "optional": true,
335
346
  "docs": {
336
347
  "tags": [],
337
- "text": ""
348
+ "text": "\uACE0\uC815 \uCEEC\uB7FC \uC124\uC815"
338
349
  },
339
350
  "getter": false,
340
351
  "setter": false
@@ -351,7 +362,7 @@ export class SdTr {
351
362
  "optional": false,
352
363
  "docs": {
353
364
  "tags": [],
354
- "text": ""
365
+ "text": "\uD589 \uC2DD\uBCC4 \uD0A4"
355
366
  },
356
367
  "getter": false,
357
368
  "setter": false,
@@ -378,7 +389,7 @@ export class SdTr {
378
389
  "optional": false,
379
390
  "docs": {
380
391
  "tags": [],
381
- "text": ""
392
+ "text": "\uD589 \uB370\uC774\uD130 \uAC1D\uCCB4"
382
393
  },
383
394
  "getter": false,
384
395
  "setter": false,
@@ -396,7 +407,7 @@ export class SdTr {
396
407
  "optional": true,
397
408
  "docs": {
398
409
  "tags": [],
399
- "text": ""
410
+ "text": "\uAD6C\uBD84\uC120 \uB192\uC774 (4 \uB610\uB294 6px, null\uC774\uBA74 \uC77C\uBC18 \uD589)"
400
411
  },
401
412
  "getter": false,
402
413
  "setter": false,
@@ -435,7 +446,7 @@ export class SdTr {
435
446
  "return": "Promise<void>"
436
447
  },
437
448
  "docs": {
438
- "text": "",
449
+ "text": "\uD14C\uC774\uBE14 \uC124\uC815\uC744 \uB2E4\uC2DC \uBD88\uB7EC\uC635\uB2C8\uB2E4.",
439
450
  "tags": []
440
451
  }
441
452
  },
@@ -452,7 +463,7 @@ export class SdTr {
452
463
  "return": "Promise<void>"
453
464
  },
454
465
  "docs": {
455
- "text": "",
466
+ "text": "\uC140 \uBCD1\uD569 \uBC84\uC804\uC744 \uAC31\uC2E0\uD574 td\uB97C \uC7AC\uB80C\uB354\uB9C1\uD569\uB2C8\uB2E4.",
456
467
  "tags": []
457
468
  }
458
469
  },
@@ -469,7 +480,7 @@ export class SdTr {
469
480
  "return": "Promise<void>"
470
481
  },
471
482
  "docs": {
472
- "text": "",
483
+ "text": "\uD398\uC774\uC9C0\uB124\uC774\uC158\uC5D0 \uB530\uB978 \uD589 \uD45C\uC2DC \uC5EC\uBD80\uB97C \uAC31\uC2E0\uD569\uB2C8\uB2E4.",
473
484
  "tags": []
474
485
  }
475
486
  },
@@ -490,7 +501,7 @@ export class SdTr {
490
501
  "return": "Promise<void>"
491
502
  },
492
503
  "docs": {
493
- "text": "",
504
+ "text": "\uCEEC\uB7FC \uB108\uBE44\uB97C \uC5C5\uB370\uC774\uD2B8\uD569\uB2C8\uB2E4.",
494
505
  "tags": []
495
506
  }
496
507
  },
@@ -507,7 +518,7 @@ export class SdTr {
507
518
  "return": "Promise<void>"
508
519
  },
509
520
  "docs": {
510
- "text": "",
521
+ "text": "\uCCB4\uD06C\uBC15\uC2A4 \uC120\uD0DD \uC0C1\uD0DC\uB97C \uAC31\uC2E0\uD569\uB2C8\uB2E4.",
511
522
  "tags": []
512
523
  }
513
524
  }