@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,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Cnwbjz1F.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-0U6dRjlq.js';
2
2
 
3
3
  var switchTokens = {
4
4
  "switch": {
@@ -100,7 +100,7 @@ const SdSwitch = class {
100
100
  '--sd-switch-line-height': `${SWITCH_TYPOGRAPHY.lineHeight}px`,
101
101
  '--sd-switch-text-decoration': SWITCH_TYPOGRAPHY.textDecoration,
102
102
  };
103
- return (h("label", { key: '54ebe92b29a80537e2e4380ffe096a252f883d10', "aria-label": this.label || 'switch', class: this.switchClasses, style: cssVars }, h("input", { key: 'd18abbbf293434f07ae7dfa18b983b47cac1b774', type: "checkbox", checked: this.value, disabled: this.disabled, onInput: this.handleChange }), h("div", { key: '76fef910e632b541c0b33c508e6001529df5614f', class: "sd-switch__track" }, h("div", { key: 'a66f4ecca5787f00febe19216a93ec62916e0541', class: "sd-switch__knob" })), this.label && h("span", { key: '948d2b7afc6e171ee329752cb85f8e361f6bbed8', class: "sd-switch__label" }, this.label)));
103
+ return (h("label", { key: 'a37c1387905456007de46a6050616b025ad06b37', "aria-label": this.label || 'switch', class: this.switchClasses, style: cssVars }, h("input", { key: '5fcc9f72e177956e015e4cb009936edc60c4c3ec', type: "checkbox", checked: this.value, disabled: this.disabled, onInput: this.handleChange }), h("div", { key: 'bf1fa22a94b2b245a2ddf805df4cd1c204524710', class: "sd-switch__track" }, h("div", { key: '11dafcd812c560acb7a63f7267f40f8ed67da95b', class: "sd-switch__knob" })), this.label && h("span", { key: '6609d2e33e82e843ffd5bbb2d2010de3e299f081', class: "sd-switch__label" }, this.label)));
104
104
  }
105
105
  };
106
106
  SdSwitch.style = sdSwitchCss();
@@ -1,45 +1,5 @@
1
- import { s as systemTokens } from './system-CZ4ltUOw.js';
2
-
3
- const table = {
4
- header: {
5
- height: "36",
6
- paddingX: "16",
7
- gap: "4",
8
- bg: "#F5FAFF",
9
- typography: {
10
- 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",
11
- fontWeight: "500",
12
- fontSize: "12",
13
- lineHeight: "20",
14
- textDecoration: "none"
15
- },
16
- resizingBar: {
17
- color: "#CCCCCC",
18
- height: "16"
19
- }
20
- },
21
- body: {
22
- "default": {
23
- height: "44"},
24
- paddingX: "16",
25
- typography: {
26
- 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",
27
- fontWeight: "400",
28
- fontSize: "12",
29
- lineHeight: "20",
30
- textDecoration: "none"
31
- }
32
- },
33
- border: {
34
- "default": "#E1E1E1",
35
- width: {
36
- width: "1"
37
- }
38
- },
39
- radius: "8"};
40
- var tableTokens = {
41
- table: table
42
- };
1
+ import { t as tableTokens } from './component.table-BnfUIhUj.js';
2
+ import { s as systemTokens } from './system-GBlVDmy4.js';
43
3
 
44
4
  // ── Header Tokens ──
45
5
  const TABLE_HEADER_LAYOUT = {
@@ -64,7 +24,13 @@ const TABLE_HEADER_RESIZING_BAR = {
64
24
  // ── Body Tokens ──
65
25
  const TABLE_BODY_LAYOUT = {
66
26
  default: {
67
- height: tableTokens.table.body.default.height},
27
+ height: tableTokens.table.body.default.height,
28
+ paddingY: tableTokens.table.body.default.paddingY,
29
+ },
30
+ dense: {
31
+ height: tableTokens.table.body.dense.height,
32
+ paddingY: tableTokens.table.body.dense.paddingY,
33
+ },
68
34
  paddingX: tableTokens.table.body.paddingX};
69
35
  const TABLE_BODY_TYPOGRAPHY = {
70
36
  fontFamily: tableTokens.table.body.typography.fontFamily,
@@ -75,8 +41,12 @@ const TABLE_BODY_TYPOGRAPHY = {
75
41
  };
76
42
  // ── Frame / Border Tokens ──
77
43
  const TABLE_BORDER = {
78
- color: tableTokens.table.border.default,
79
- width: tableTokens.table.border.width.width,
44
+ color: tableTokens.table.border.color,
45
+ width: tableTokens.table.border.width,
46
+ };
47
+ const TABLE_SEPARATOR = {
48
+ color: tableTokens.table.separator.color,
49
+ width: tableTokens.table.separator.Width,
80
50
  };
81
51
  const TABLE_RADIUS = tableTokens.table.radius;
82
52
  // ── Header Icon Color Defaults ──
@@ -91,4 +61,4 @@ const ICON_DEFAULT_COLOR = {
91
61
  const resolveTableIconColor = (name, override) => override ?? ICON_DEFAULT_COLOR[name];
92
62
  const resolveSortIconName = (sort) => sort === 'asc' ? 'arrowDown' : sort === 'desc' ? 'arrowUp' : 'updown';
93
63
 
94
- export { TABLE_BODY_TYPOGRAPHY as T, TABLE_BORDER as a, TABLE_RADIUS as b, resolveSortIconName as c, TABLE_HEADER_RESIZING_BAR as d, TABLE_HEADER_TYPOGRAPHY as e, TABLE_HEADER_COLORS as f, TABLE_HEADER_LAYOUT as g, TABLE_BODY_LAYOUT as h, resolveTableIconColor as r };
64
+ export { TABLE_BODY_LAYOUT as T, TABLE_BODY_TYPOGRAPHY as a, TABLE_BORDER as b, TABLE_RADIUS as c, resolveSortIconName as d, TABLE_HEADER_RESIZING_BAR as e, TABLE_HEADER_TYPOGRAPHY as f, TABLE_HEADER_COLORS as g, TABLE_HEADER_LAYOUT as h, TABLE_SEPARATOR as i, resolveTableIconColor as r };
@@ -1,9 +1,10 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, d as readTask, f as forceUpdate, h, H as Host } from './index-Cnwbjz1F.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, d as readTask, f as forceUpdate, h, H as Host } from './index-0U6dRjlq.js';
2
2
  import { T as TABLE_ID_ATTR } from './constants-sZMi_32I.js';
3
- import { T as TABLE_BODY_TYPOGRAPHY, a as TABLE_BORDER, b as TABLE_RADIUS } from './sd-table.config-Bj-EEo7N.js';
4
- import './system-CZ4ltUOw.js';
3
+ import { T as TABLE_BODY_LAYOUT, a as TABLE_BODY_TYPOGRAPHY, b as TABLE_BORDER, c as TABLE_RADIUS } from './sd-table.config-B-VgXXT7.js';
4
+ import './component.table-BnfUIhUj.js';
5
+ import './system-GBlVDmy4.js';
5
6
 
6
- const urlAlphabet =
7
+ let urlAlphabet =
7
8
  'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';
8
9
 
9
10
  /* @ts-self-types="./index.d.ts" */
@@ -16,7 +17,7 @@ let nanoid = (size = 21) => {
16
17
  return id
17
18
  };
18
19
 
19
- const sdTableCss = () => `sd-table,:host{display:block;width:100%;max-width:100%;min-width:0}sd-table *,:host *{box-sizing:border-box}.sd-table__container{height:var(--table-height, 100%);width:var(--table-width, 100%);max-width:100%;min-width:0;color:#222222;display:flex;flex-direction:column}.sd-table__clip{width:100%;min-width:0;height:var(--table-container-height, 400px);border:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);border-radius:var(--table-radius, 8px);overflow:hidden}.sd-table__clip--has-pagination{border-radius:var(--table-radius, 8px) var(--table-radius, 8px) 0 0}.sd-table__wrapper{width:100%;height:100%;display:flex;flex-direction:column;position:relative;font-family:var(--table-body-font-family, inherit);font-weight:var(--table-body-font-weight, 400);font-size:var(--table-body-font-size, 12px);line-height:var(--table-body-line-height, 20px);text-decoration:var(--table-body-text-decoration, none);overflow:auto;background:#FFFFFF}.sd-table__wrapper--loading{overflow:hidden !important;pointer-events:none}.sd-table__wrapper--no-data{overflow:hidden;pointer-events:none}.sd-table__no-data{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--table-body-font-size, 12px);color:#888888;pointer-events:none;z-index:200;background:rgba(255, 255, 255, 0.6)}.sd-table__no-data ::slotted(*),.sd-table__no-data span{pointer-events:auto}.sd-table__loading{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center;pointer-events:none}.sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table--selectable sd-thead,.sd-table--selectable sd-tbody{--selectable:true}.sd-table--sticky-header sd-thead thead{position:sticky;top:0;z-index:120}.sd-table--sticky-column sd-thead,.sd-table--sticky-column sd-tbody{--sticky-column:true}.sd-table--scrolled-left sd-thead,.sd-table--scrolled-left sd-tbody{--scrolled-left:true}.sd-table--scrolled-right sd-thead,.sd-table--scrolled-right sd-tbody{--scrolled-right:true}.sd-table--resizable sd-thead{--resizable:true}.sd-table--no-data sd-thead{opacity:0.4}.sd-table__pagination{position:relative;background:#F9F9F9;height:48px;display:flex;align-items:center;justify-content:center;border:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);border-top:none;border-radius:0 0 var(--table-radius, 8px) var(--table-radius, 8px)}.sd-table__pagination sd-select{position:absolute;right:10px;top:50%;transform:translateY(-50%)}`;
20
+ const sdTableCss = () => `sd-table,:host{display:block;width:100%;max-width:100%;min-width:0}sd-table *,:host *{box-sizing:border-box}.sd-table__container{height:var(--table-height, 100%);width:var(--table-width, 100%);max-width:100%;min-width:0;color:#222222;display:flex;flex-direction:column}.sd-table__wrapper{width:100%;min-width:0;height:var(--table-container-height, 400px);border:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);border-radius:var(--table-radius, 8px);overflow:hidden}.sd-table__wrapper--radius-use-top{border-radius:0 0 var(--table-radius, 8px) var(--table-radius, 8px)}.sd-table__scroll-container{width:100%;height:100%;display:flex;flex-direction:column;position:relative;font-family:var(--table-body-font-family, inherit);font-weight:var(--table-body-font-weight, 400);font-size:var(--table-body-font-size, 12px);line-height:var(--table-body-line-height, 20px);text-decoration:var(--table-body-text-decoration, none);overflow:auto;background:#FFFFFF}.sd-table__scroll-container--loading{overflow:hidden !important;pointer-events:none}.sd-table__scroll-container--no-data{overflow:hidden;pointer-events:none}.sd-table__no-data{position:absolute;top:36px;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:var(--table-body-font-size, 12px);color:#888888;pointer-events:none;z-index:200;background:rgba(255, 255, 255, 0.6)}.sd-table__no-data-header-overlay{position:absolute;top:0;left:0;right:0;height:36px;background:rgba(255, 255, 255, 0.6);z-index:210;pointer-events:none}.sd-table__no-data-content{pointer-events:auto;min-height:60px;width:100%;display:flex;align-items:center;justify-content:center}.sd-table__loading{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center;pointer-events:none}.sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table--selectable sd-thead,.sd-table--selectable sd-tbody{--selectable:true}.sd-table--sticky-header sd-thead thead{position:sticky;top:0;z-index:120}.sd-table--sticky-column sd-thead,.sd-table--sticky-column sd-tbody{--sticky-column:true}.sd-table--scrolled-left sd-thead,.sd-table--scrolled-left sd-tbody{--scrolled-left:true}.sd-table--scrolled-right sd-thead,.sd-table--scrolled-right sd-tbody{--scrolled-right:true}.sd-table--resizable sd-thead{--resizable:true}.sd-table--no-data sd-thead{opacity:0.4}.sd-table__pagination{position:relative;background:#F9F9F9;height:48px;display:flex;align-items:center;justify-content:center;border:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);margin-top:-1px;border-radius:var(--table-radius, 8px)}.sd-table__pagination sd-select{position:absolute;right:10px;top:50%;transform:translateY(-50%)}`;
20
21
 
21
22
  const SdTable = class {
22
23
  constructor(hostRef) {
@@ -41,15 +42,22 @@ const SdTable = class {
41
42
  height;
42
43
  stickyHeader = false;
43
44
  stickyColumn = { left: 0, right: 0 };
45
+ radius = 'default';
44
46
  noDataLabel = SdTable.DEFAULT_NO_DATA_LABEL;
45
47
  resolvedNoDataLabel = SdTable.DEFAULT_NO_DATA_LABEL;
46
48
  isLoading = false;
47
49
  pagination;
48
50
  useInternalPagination = false;
49
51
  useRowsPerPageSelect = false;
52
+ dense = false;
50
53
  // ─── Virtual Scroll ───────────────────────────────────────────────
51
54
  useVirtualScroll = false;
52
- rowHeight = 40;
55
+ rowHeight;
56
+ get effectiveRowHeight() {
57
+ if (this.rowHeight != null)
58
+ return this.rowHeight;
59
+ return this.dense ? Number(TABLE_BODY_LAYOUT.dense.height) : Number(TABLE_BODY_LAYOUT.default.height);
60
+ }
53
61
  virtualBuffer = 5;
54
62
  virtualEndThreshold = 10;
55
63
  // ─────────────────────────────────────────────────────────────────
@@ -72,6 +80,7 @@ const SdTable = class {
72
80
  scrolledRight = false;
73
81
  rowCount = 0;
74
82
  loadingScrollTop = 0;
83
+ noDataBodyHeight = 60;
75
84
  // light DOM에 sd-thead / sd-tbody 자식이 없으면 sd-table이 직접 렌더해야 함을 알리는 플래그.
76
85
  // componentWillLoad에서 한 번 결정되며, 이후 동적 토글은 지원하지 않는다.
77
86
  autoThead = false;
@@ -80,12 +89,19 @@ const SdTable = class {
80
89
  vsEnd = 0;
81
90
  lastReachEndNotifiedRowCount = -1;
82
91
  scrollContainer = null;
92
+ noDataContentEl = null;
93
+ noDataContentResizeObserver;
83
94
  onScroll;
84
95
  // 키: `${rowKey}::${field}` → { rowspan, colspan }
85
96
  spanRegistry = new Map();
97
+ // rowKey → Set<field>: useFrame=true인 sd-td가 있는 행을 추적한다.
98
+ // 하나라도 등록되면 해당 행은 dense를 무시하고 default 레이아웃으로 렌더된다.
99
+ useFrameRegistry = new Map();
86
100
  // 키: `${rowKey}::${field}` → sd-td의 sdClass 문자열
87
101
  // sd-tr가 td를 그릴 때 머지해서 셀-단위 커스텀 클래스를 적용한다.
88
102
  cellClassRegistry = new Map();
103
+ // separator 직전 행의 시각적 인덱스 집합
104
+ separatorPrevIndices = new Set();
89
105
  // rowKey 문자열 → rows 배열에서의 visual index.
90
106
  // rowspan 위쪽 행 스캔에서 "내 위에 있느냐"를 판정하기 위한 시각적 순서 소스.
91
107
  // rows prop이 있으면 채워지고, 없으면 비어 있어 Number(rowKey) fallback이 사용된다.
@@ -144,6 +160,7 @@ const SdTable = class {
144
160
  if (newVal) {
145
161
  this.loadingScrollTop = this.scrollContainer?.scrollTop ?? 0;
146
162
  }
163
+ this.syncNoDataContentObserver();
147
164
  }
148
165
  handleUseVirtualScrollChange(newVal) {
149
166
  if (newVal) {
@@ -152,7 +169,7 @@ const SdTable = class {
152
169
  }
153
170
  }
154
171
  handleColumnsChange(newCols) {
155
- this.columnWidths = newCols.map(c => parseInt(c.width || '120', 10));
172
+ this.columnWidths = newCols.map(c => (c.autoWidth ? 0 : parseInt(c.width || '120', 10)));
156
173
  this.refreshChildrenConfig();
157
174
  }
158
175
  handleRowsChange(newRows) {
@@ -163,6 +180,7 @@ const SdTable = class {
163
180
  if (this.useVirtualScroll)
164
181
  this.propagateVirtualUpdate(true);
165
182
  this.pushRowsToChildren(newRows);
183
+ this.syncNoDataContentObserver();
166
184
  }
167
185
  handleRowKeyChange() {
168
186
  this.rebuildRowIndexMap();
@@ -188,10 +206,10 @@ const SdTable = class {
188
206
  this.innerSelected = new Set(newSelected);
189
207
  }
190
208
  handlePaginationChange(newVal) {
191
- if (newVal?.page && newVal.page !== this.currentPage) {
209
+ if (newVal?.page != null && newVal.page !== this.currentPage) {
192
210
  this.currentPage = newVal.page;
193
211
  }
194
- if (newVal?.rowsPerPage && newVal.rowsPerPage !== this.innerRowsPerPage) {
212
+ if (newVal?.rowsPerPage != null && newVal.rowsPerPage !== this.innerRowsPerPage) {
195
213
  this.innerRowsPerPage = newVal.rowsPerPage;
196
214
  }
197
215
  }
@@ -206,12 +224,12 @@ const SdTable = class {
206
224
  this.handleNoDataLabelChange(this.noDataLabel);
207
225
  this.detectChildren();
208
226
  this.innerSelected = new Set(this.selected || []);
209
- this.columnWidths = (this.columns || []).map(c => parseInt(c.width || '120', 10));
227
+ this.columnWidths = (this.columns || []).map(c => c.autoWidth ? 0 : parseInt(c.width || '120', 10));
210
228
  this.rebuildRowIndexMap();
211
- if (this.pagination?.page) {
229
+ if (this.pagination?.page != null) {
212
230
  this.currentPage = this.pagination.page;
213
231
  }
214
- if (this.pagination?.rowsPerPage) {
232
+ if (this.pagination?.rowsPerPage != null) {
215
233
  this.innerRowsPerPage = this.pagination.rowsPerPage;
216
234
  }
217
235
  const el = this.el;
@@ -232,10 +250,17 @@ const SdTable = class {
232
250
  el.unregisterSpanSync = this.unregisterSpanSync.bind(this);
233
251
  el.getSpanSync = this.getSpanSync.bind(this);
234
252
  el.isCoveredSync = this.isCoveredSync.bind(this);
253
+ el.isVisualLastRowSync = this.isVisualLastRowSync.bind(this);
254
+ el.registerSeparatorSync = this.registerSeparatorSync.bind(this);
255
+ el.unregisterSeparatorSync = this.unregisterSeparatorSync.bind(this);
256
+ el.isVisualLastRowBeforeSeparatorSync = this.isVisualLastRowBeforeSeparatorSync.bind(this);
235
257
  el.hasRowspanSync = this.hasRowspanSync.bind(this);
236
258
  el.registerCellClassSync = this.registerCellClassSync.bind(this);
237
259
  el.unregisterCellClassSync = this.unregisterCellClassSync.bind(this);
238
260
  el.getCellClassSync = this.getCellClassSync.bind(this);
261
+ el.registerUseFrameSync = this.registerUseFrameSync.bind(this);
262
+ el.unregisterUseFrameSync = this.unregisterUseFrameSync.bind(this);
263
+ el.hasUseFrameInRowSync = this.hasUseFrameInRowSync.bind(this);
239
264
  if (Array.isArray(this.rows)) {
240
265
  this.rowCount = this.rows.length;
241
266
  this.pushRowsToChildren(this.rows);
@@ -246,7 +271,7 @@ const SdTable = class {
246
271
  this.pushRowsToChildren(this.rows);
247
272
  }
248
273
  readTask(() => {
249
- const wrapper = this.el.shadowRoot?.querySelector('.sd-table__wrapper');
274
+ const wrapper = this.el.shadowRoot?.querySelector('.sd-table__scroll-container');
250
275
  if (!wrapper)
251
276
  return;
252
277
  let rafPending = false;
@@ -278,11 +303,43 @@ const SdTable = class {
278
303
  this.propagateVirtualUpdate(); // 초기 렌더
279
304
  }
280
305
  });
306
+ this.syncNoDataContentObserver();
281
307
  }
282
308
  disconnectedCallback() {
283
309
  if (this.scrollContainer && this.onScroll) {
284
310
  this.scrollContainer.removeEventListener('scroll', this.onScroll);
285
311
  }
312
+ this.noDataContentResizeObserver?.disconnect();
313
+ this.noDataContentResizeObserver = undefined;
314
+ }
315
+ syncNoDataContentObserver() {
316
+ const isNoData = this.rowCount === 0 && !this.isLoading;
317
+ if (!isNoData) {
318
+ this.noDataContentResizeObserver?.disconnect();
319
+ this.noDataContentResizeObserver = undefined;
320
+ this.noDataBodyHeight = 60;
321
+ return;
322
+ }
323
+ this.observeNoDataContentHeight();
324
+ }
325
+ // observer를 붙이고 콘텐츠 높이를 측정해 noDataBodyHeight를 갱신하는 함수
326
+ observeNoDataContentHeight() {
327
+ if (typeof ResizeObserver === 'undefined')
328
+ return;
329
+ const target = this.noDataContentEl;
330
+ if (!target)
331
+ return;
332
+ this.noDataContentResizeObserver?.disconnect();
333
+ this.noDataContentResizeObserver = new ResizeObserver(() => {
334
+ const measured = Math.ceil(target.scrollHeight);
335
+ const nextHeight = Math.max(60, measured);
336
+ if (nextHeight !== this.noDataBodyHeight) {
337
+ this.noDataBodyHeight = nextHeight;
338
+ }
339
+ });
340
+ this.noDataContentResizeObserver.observe(target);
341
+ const measured = Math.ceil(target.scrollHeight);
342
+ this.noDataBodyHeight = Math.max(60, measured);
286
343
  }
287
344
  // light DOM(manual mode 자식)과 shadow DOM(autoThead/autoTbody fallback) 양쪽 모두에서 자식을 찾는다.
288
345
  queryChildEl(selector) {
@@ -347,8 +404,8 @@ const SdTable = class {
347
404
  return;
348
405
  this.vsStart = start;
349
406
  this.vsEnd = end;
350
- const topHeight = start * this.rowHeight;
351
- const bottomHeight = Math.max(0, (this.rowCount - end) * this.rowHeight);
407
+ const topHeight = start * this.effectiveRowHeight;
408
+ const bottomHeight = Math.max(0, (this.rowCount - end) * this.effectiveRowHeight);
352
409
  const tbody = this.queryChildEl('sd-tbody');
353
410
  tbody?.setSpacersSync?.(topHeight, bottomHeight);
354
411
  if (rangeChanged) {
@@ -362,7 +419,7 @@ const SdTable = class {
362
419
  getVirtualScrollConfigSync() {
363
420
  return {
364
421
  useVirtualScroll: this.useVirtualScroll,
365
- rowHeight: this.rowHeight,
422
+ rowHeight: this.effectiveRowHeight,
366
423
  virtualBuffer: this.virtualBuffer,
367
424
  vsStart: this.vsStart,
368
425
  vsEnd: this.vsEnd,
@@ -379,10 +436,35 @@ const SdTable = class {
379
436
  scrolledLeft: this.scrolledLeft,
380
437
  scrolledRight: this.scrolledRight,
381
438
  columnWidths: this.columnWidths,
439
+ dense: this.dense,
382
440
  };
383
441
  }
442
+ registerUseFrameSync(rowKey, field) {
443
+ if (rowKey == null || field === '')
444
+ return;
445
+ let fields = this.useFrameRegistry.get(rowKey);
446
+ if (!fields) {
447
+ fields = new Set();
448
+ this.useFrameRegistry.set(rowKey, fields);
449
+ }
450
+ fields.add(field);
451
+ }
452
+ unregisterUseFrameSync(rowKey, field) {
453
+ if (rowKey == null || field === '')
454
+ return;
455
+ const fields = this.useFrameRegistry.get(rowKey);
456
+ if (!fields)
457
+ return;
458
+ fields.delete(field);
459
+ if (fields.size === 0)
460
+ this.useFrameRegistry.delete(rowKey);
461
+ }
462
+ hasUseFrameInRowSync(rowKey) {
463
+ const fields = this.useFrameRegistry.get(rowKey);
464
+ return fields != null && fields.size > 0;
465
+ }
384
466
  isRowSelectedSync(row) {
385
- return Array.from(this.innerSelected).some(r => r[this.rowKey] === row[this.rowKey]);
467
+ return Array.from(this.innerSelected).some(r => r[this.rowKey ?? 'id'] === row[this.rowKey ?? 'id']);
386
468
  }
387
469
  async isRowSelected(row) {
388
470
  return this.isRowSelectedSync(row);
@@ -391,7 +473,7 @@ const SdTable = class {
391
473
  const selectedArray = Array.from(this.innerSelected);
392
474
  const exists = this.isRowSelectedSync(row);
393
475
  const newSelected = exists
394
- ? selectedArray.filter(r => r[this.rowKey] !== row[this.rowKey])
476
+ ? selectedArray.filter(r => r[this.rowKey ?? 'id'] !== row[this.rowKey ?? 'id'])
395
477
  : [...selectedArray, row];
396
478
  if (newSelected.length === selectedArray.length)
397
479
  return;
@@ -409,8 +491,8 @@ const SdTable = class {
409
491
  this.innerSelected = new Set([...this.innerSelected, ...pageRows]);
410
492
  }
411
493
  else {
412
- const currentPageKeys = rows.map(r => r[this.rowKey]);
413
- this.innerSelected = new Set([...this.innerSelected].filter(r => !currentPageKeys.includes(r[this.rowKey])));
494
+ const currentPageKeys = rows.map(r => r[this.rowKey ?? 'id']);
495
+ this.innerSelected = new Set([...this.innerSelected].filter(r => !currentPageKeys.includes(r[this.rowKey ?? 'id'])));
414
496
  }
415
497
  this.selected = Array.from(this.innerSelected);
416
498
  this.sdSelectChange.emit(Array.from(this.innerSelected));
@@ -421,7 +503,7 @@ const SdTable = class {
421
503
  }
422
504
  getIsAllCheckedSync(rows) {
423
505
  const total = rows.length;
424
- const selectedCount = rows.filter(row => Array.from(this.innerSelected).some(selectedRow => selectedRow[this.rowKey] === row[this.rowKey])).length;
506
+ const selectedCount = rows.filter(row => Array.from(this.innerSelected).some(selectedRow => selectedRow[this.rowKey ?? 'id'] === row[this.rowKey ?? 'id'])).length;
425
507
  if (selectedCount === 0)
426
508
  return false;
427
509
  if (selectedCount === total)
@@ -444,7 +526,7 @@ const SdTable = class {
444
526
  this.queryAllTr().forEach(tr => tr?.updateVisibility?.());
445
527
  }
446
528
  changeRowsPerPage(perPage) {
447
- const changedRowsPerPage = perPage ? Number(perPage) : 0;
529
+ const changedRowsPerPage = perPage != null && perPage !== '' ? Number(perPage) : 0;
448
530
  if (!this.useInternalPagination) {
449
531
  this.sdRowsPerPageChange.emit(changedRowsPerPage);
450
532
  return;
@@ -471,7 +553,7 @@ const SdTable = class {
471
553
  const startWidth = this.columnWidths[index];
472
554
  const handleMouseMove = (moveEvent) => {
473
555
  const col = this.columns[index];
474
- if (!col)
556
+ if (col == null)
475
557
  return;
476
558
  const minWidth = col.minWidth || 50;
477
559
  const maxWidth = col.maxWidth || 9999;
@@ -506,13 +588,17 @@ const SdTable = class {
506
588
  this.columns.filter(c => c.visible !== false).length -
507
589
  (this.stickyColumn?.right || 0) && i > colIdx)
508
590
  .reduce((a, b) => a + b, 0);
509
- return {
591
+ const visibleCol = this.columns.filter(c => c.visible !== false)[colIdx];
592
+ const base = {
510
593
  '--sticky-left-offset': `${leftOffset}px`,
511
594
  '--sticky-right-offset': `${rightOffset}px`,
512
- 'width': `${this.columnWidths[colIdx]}px`,
513
- 'minWidth': `${this.columnWidths[colIdx]}px`,
514
- 'maxWidth': `${this.columnWidths[colIdx]}px`,
515
595
  };
596
+ if (!visibleCol?.autoWidth) {
597
+ base['width'] = `${this.columnWidths[colIdx]}px`;
598
+ base['minWidth'] = `${this.columnWidths[colIdx]}px`;
599
+ base['maxWidth'] = `${this.columnWidths[colIdx]}px`;
600
+ }
601
+ return base;
516
602
  }
517
603
  async getStickyStyle(colIdx) {
518
604
  return this.getStickyStyleSync(colIdx);
@@ -541,7 +627,7 @@ const SdTable = class {
541
627
  });
542
628
  }
543
629
  registerSpanSync(rowKey, field, rowspan, colspan) {
544
- if (rowKey == null || !field)
630
+ if (rowKey == null || field === '')
545
631
  return;
546
632
  const safeRowspan = Math.max(1, Math.floor(rowspan || 1));
547
633
  const safeColspan = Math.max(1, Math.floor(colspan || 1));
@@ -560,7 +646,7 @@ const SdTable = class {
560
646
  this.requestAllTrUpdate();
561
647
  }
562
648
  unregisterSpanSync(rowKey, field) {
563
- if (rowKey == null || !field)
649
+ if (rowKey == null || field === '')
564
650
  return;
565
651
  const key = this.spanKey(rowKey, field);
566
652
  if (!this.spanRegistry.has(key))
@@ -575,18 +661,18 @@ const SdTable = class {
575
661
  // span과 달리 다른 셀에 영향이 없으므로 형제 sd-tr 전체를 재렌더하지 않고,
576
662
  // sd-td 쪽에서 자기 부모 tr만 bumpSpansVersion으로 새로 그린다.
577
663
  registerCellClassSync(rowKey, field, cls) {
578
- if (rowKey == null || !field)
664
+ if (rowKey == null || field === '')
579
665
  return;
580
666
  const key = this.spanKey(rowKey, field);
581
667
  const safe = (cls ?? '').trim();
582
- if (!safe) {
668
+ if (safe === '') {
583
669
  this.cellClassRegistry.delete(key);
584
670
  return;
585
671
  }
586
672
  this.cellClassRegistry.set(key, safe);
587
673
  }
588
674
  unregisterCellClassSync(rowKey, field) {
589
- if (rowKey == null || !field)
675
+ if (rowKey == null || field === '')
590
676
  return;
591
677
  this.cellClassRegistry.delete(this.spanKey(rowKey, field));
592
678
  }
@@ -609,7 +695,7 @@ const SdTable = class {
609
695
  // 1. 같은 행 왼쪽 스캔 — colspan으로 이 위치를 덮는 셀이 있는가
610
696
  for (let i = 0; i < colIdx; i++) {
611
697
  const c = visibleCols[i];
612
- if (!c)
698
+ if (c == null)
613
699
  continue;
614
700
  const field = typeof c.field === 'string' ? c.field : c.name;
615
701
  const span = this.spanRegistry.get(this.spanKey(rowKey, field));
@@ -647,6 +733,50 @@ const SdTable = class {
647
733
  }
648
734
  return false;
649
735
  }
736
+ // rowspan을 반영한 셀의 시각적 하단 행 인덱스를 반환한다.
737
+ // isVisualLastRowSync·isVisualLastRowBeforeSeparatorSync 공통 헬퍼.
738
+ resolveVisualBottom(rowKey, field) {
739
+ const myRowIdx = this.resolveRowIndex(rowKey);
740
+ if (myRowIdx == null)
741
+ return null;
742
+ const span = this.spanRegistry.get(this.spanKey(rowKey, field));
743
+ const rs = Math.max(1, span?.rowspan ?? 1);
744
+ return myRowIdx + rs - 1;
745
+ }
746
+ // 셀의 시각적 하단이 테이블(또는 현재 페이지)의 마지막 행인지 판정.
747
+ // 마지막 행에 border-bottom: none을 적용하기 위함.
748
+ isVisualLastRowSync(rowKey, field) {
749
+ if (this.rowCount <= 0)
750
+ return false;
751
+ const visualBottom = this.resolveVisualBottom(rowKey, field);
752
+ if (visualBottom == null)
753
+ return false;
754
+ const pageInfo = this.getPaginationInfoSync();
755
+ const lastVisibleIdx = pageInfo
756
+ ? Math.min(pageInfo.endIndex - 1, this.rowCount - 1)
757
+ : this.rowCount - 1;
758
+ return visualBottom === lastVisibleIdx;
759
+ }
760
+ registerSeparatorSync(prevRowKey) {
761
+ const idx = this.resolveRowIndex(prevRowKey);
762
+ if (idx != null)
763
+ this.separatorPrevIndices.add(idx);
764
+ }
765
+ unregisterSeparatorSync(prevRowKey) {
766
+ const idx = this.resolveRowIndex(prevRowKey);
767
+ if (idx != null)
768
+ this.separatorPrevIndices.delete(idx);
769
+ }
770
+ // 셀의 시각적 하단이 separator 바로 앞 행인지 판정.
771
+ // 해당 셀에 border-bottom: none을 적용하기 위함.
772
+ isVisualLastRowBeforeSeparatorSync(rowKey, field) {
773
+ if (this.separatorPrevIndices.size === 0)
774
+ return false;
775
+ const visualBottom = this.resolveVisualBottom(rowKey, field);
776
+ if (visualBottom == null)
777
+ return false;
778
+ return this.separatorPrevIndices.has(visualBottom);
779
+ }
650
780
  setRowCountSync(count) {
651
781
  const safeCount = Math.max(0, Math.floor(this.toFiniteNumber(count, 0)));
652
782
  if (safeCount !== this.rowCount) {
@@ -661,7 +791,7 @@ const SdTable = class {
661
791
  this.setRowCountSync(count);
662
792
  }
663
793
  calculateVisibleRange(scrollTop, containerHeight) {
664
- const safeRowHeight = Math.max(1, this.toFiniteNumber(this.rowHeight, 40));
794
+ const safeRowHeight = Math.max(1, this.toFiniteNumber(this.effectiveRowHeight, 40));
665
795
  const safeBuffer = Math.max(0, Math.floor(this.toFiniteNumber(this.virtualBuffer, 5)));
666
796
  const safeScrollTop = Math.max(0, this.toFiniteNumber(scrollTop, 0));
667
797
  const safeContainerHeight = Math.max(0, this.toFiniteNumber(containerHeight, 0));
@@ -727,6 +857,12 @@ const SdTable = class {
727
857
  }
728
858
  render() {
729
859
  const resolvedTableId = this.getResolvedTableId();
860
+ const isNoData = this.rowCount === 0 && !this.isLoading;
861
+ const paginationHeight = this.pagination && this.rowCount > 0 && !this.useVirtualScroll ? 48 : 0;
862
+ const noDataTotalHeight = 36 + this.noDataBodyHeight;
863
+ const effectiveTableHeight = isNoData
864
+ ? `max(${this.height || '96px'}, ${noDataTotalHeight}px)`
865
+ : this.height || '100%';
730
866
  const hostStyle = {
731
867
  '--table-radius': `${TABLE_RADIUS}px`,
732
868
  '--table-border-color': TABLE_BORDER.color,
@@ -737,24 +873,25 @@ const SdTable = class {
737
873
  '--table-body-line-height': `${TABLE_BODY_TYPOGRAPHY.lineHeight}px`,
738
874
  '--table-body-text-decoration': TABLE_BODY_TYPOGRAPHY.textDecoration,
739
875
  };
740
- return (h(Host, { key: 'c20a7cc6d5917c9d09c699f2c40ac2b6d07747e1', style: hostStyle }, h("div", { key: '94f76e75da5c6ff9d0ef93b6c2aa3def4ec1766e', class: "sd-table__container", style: {
876
+ return (h(Host, { key: 'f7d92943fcb354f69d99c1e4fd37749cc06185c7', style: hostStyle }, h("div", { key: '53d6ac0eedc2c2a56c05bf5a751be43bc18f9fe7', class: "sd-table__container", style: {
741
877
  '--table-width': this.width,
742
- '--table-height': this.height,
743
- '--table-container-height': `calc(${this.height || '100%'} - ${this.pagination && this.rowCount > 0 && !this.useVirtualScroll ? 48 : 0}px)`,
744
- } }, h("div", { key: '3b98c828c7dc42de3d4f9bb645279b20d9079ac4', class: {
745
- 'sd-table__clip': true,
746
- 'sd-table__clip--has-pagination': !!(this.pagination &&
747
- this.pagination.rowsPerPage > 0 &&
748
- this.rowCount > 0 &&
749
- !this.useVirtualScroll),
750
- } }, h("div", { key: 'b6d04ec953d7b75fb8ad8bc32e2662550d38c5c7', class: {
878
+ '--table-height': effectiveTableHeight,
879
+ '--table-container-height': `calc(${effectiveTableHeight} - ${paginationHeight}px)`,
880
+ } }, h("div", { key: 'b85980b8307b2a50ee1554262d025b58bad42e87', class: {
751
881
  'sd-table__wrapper': true,
752
- 'sd-table__wrapper--loading': this.isLoading,
753
- 'sd-table__wrapper--no-data': this.rowCount === 0 && !this.isLoading,
754
- } }, this.isLoading && (h("div", { key: '3050275c7ecde0aeda3ec881257be4334ebd06fc', class: "sd-table__loading", style: { top: `${this.loadingScrollTop}px` } }, h("sd-circle-progress", { key: '7a26c4365e4e28a5ebce1c35bb52a302440542f7', indeterminate: true }))), this.rowCount === 0 && !this.isLoading && (h("div", { key: '31442f92321eb4aaf5c36c5995a1c25d8069b6ea', class: "sd-table__no-data" }, h("slot", { key: '42f3208fb1c86d118f50e8b1974bff3ede253032', name: "no-data" }, h("span", { key: 'ce7368c64b3502eee2fae7a28e0508d4d1622c25' }, this.resolvedNoDataLabel)))), h("table", { key: '170203f34b4bb11fce0a064622265d093ccbab2a', class: this.tableClasses }, this.autoThead ? (h("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange }, h("sd-thead", { rows: this.rows ?? [] }))) : (h("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange })), this.autoTbody ? (h("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }, h("sd-tbody", { rows: this.rows ?? [] }, this.renderAutoRows()))) : (h("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }))))), this.pagination &&
882
+ 'sd-table__wrapper--radius-use-top': this.radius === 'useTop',
883
+ } }, h("div", { key: 'acf9816ceaaea06b807056606d684befebe9dcd0', class: {
884
+ 'sd-table__scroll-container': true,
885
+ 'sd-table__scroll-container--loading': this.isLoading,
886
+ 'sd-table__scroll-container--no-data': isNoData,
887
+ } }, this.isLoading && (h("div", { key: '8a1a18cbf500a8e9ad519438a59e084186d9f339', class: "sd-table__loading", style: { top: `${this.loadingScrollTop}px` } }, h("sd-circle-progress", { key: '443ffcfb06edbae8ac94be7e8e5a94c1e2b68588', indeterminate: true }))), isNoData && (h(h.Fragment, null, h("div", { key: '3aefe27935a816df9658ec89adf261d11c0e8e77', class: "sd-table__no-data-header-overlay" }), h("div", { key: 'db89a7d1cbbf041bdd30be9e0a205147073891e2', class: "sd-table__no-data" }, h("div", { key: 'a9bf47e80db21c30ffa651b03b203e5e205134c9', class: "sd-table__no-data-content", ref: el => {
888
+ this.noDataContentEl = el;
889
+ if (el)
890
+ this.syncNoDataContentObserver();
891
+ } }, h("slot", { key: '20f0c0b43534ef344864bf2450abb4c2a8fb704b', name: "no-data" }, h("span", { key: 'a19688e4da7961e7c828694124819c4e60a6700f' }, this.resolvedNoDataLabel)))))), h("table", { key: '2b03aa5c5d59e0ac85051f90a022b59b8dbb871a', class: this.tableClasses }, this.autoThead ? (h("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange }, h("sd-thead", { rows: this.rows ?? [] }))) : (h("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange })), this.autoTbody ? (h("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }, h("sd-tbody", { rows: this.rows ?? [] }, this.renderAutoRows()))) : (h("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }))))), this.pagination &&
755
892
  this.pagination.rowsPerPage > 0 &&
756
893
  this.rowCount > 0 &&
757
- !this.useVirtualScroll && (h("div", { key: 'cfbd5ee8e706c9ef7a2b6a4be8901b7aae47249e', class: "sd-table__pagination" }, h("sd-pagination", { key: '57dad16199d9145fcec0c5ed46beeeac1f08af02', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onSdPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (h("sd-select", { key: '1314e296ba913600436045b4af54eb0bc1d95d0d', value: this.useInternalPagination
894
+ !this.useVirtualScroll && (h("div", { key: 'dc4a0132898490ef7e87e26a75fca8e3b2056a49', class: "sd-table__pagination" }, h("sd-pagination", { key: '9030b0965e8d2c1a54fce07cfc4067f49edb2375', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onSdPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (h("sd-select", { key: '0d95ba3138da081d6c15202748ff3db1e23def01', value: this.useInternalPagination
758
895
  ? this.innerRowsPerPage
759
896
  : this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", emitValue: true, onSdUpdate: e => {
760
897
  if (!this.isRowsPerPageValue(e.detail))
@@ -796,6 +933,9 @@ const SdTable = class {
796
933
  "stickyHeader": [{
797
934
  "handleConfigChange": 0
798
935
  }],
936
+ "dense": [{
937
+ "handleConfigChange": 0
938
+ }],
799
939
  "selected": [{
800
940
  "handleSelectedChange": 0
801
941
  }],
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Cnwbjz1F.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-0U6dRjlq.js';
2
2
 
3
3
  const tab = {
4
4
  main: {
@@ -186,9 +186,14 @@ const SdTabs = class {
186
186
  };
187
187
  }
188
188
  render() {
189
- return (h("div", { key: 'ff758fbab0a594c28968074a26ad92a28cd4850b', class: this.getContainerClasses(), style: this.buildCssVars() }, this.tabs.map((tab, index) => {
189
+ return (h("div", { key: 'dd4377850ef052d22b6eb790b7766a3521a41c1c', class: this.getContainerClasses(), style: this.buildCssVars() }, this.tabs.map((tab, index) => {
190
190
  const badgeName = this.getBadgeName(tab);
191
- return (h("div", { key: `tab-${index}`, class: this.getTabClasses(tab), "aria-label": tab.label || 'tab', onClick: () => this.handleTabClick(tab) }, h("span", { "data-label": tab.label, class: "sd-tabs__label" }, tab.label), tab.badge !== undefined && tab.badge !== null && tab.badge !== '' && (h("sd-tag", { name: badgeName, label: tab.badge.toString() }))));
191
+ return (h("div", { key: `tab-${index}`, role: "tab", tabindex: 0, "aria-selected": tab.value === this.value ? 'true' : 'false', class: this.getTabClasses(tab), "aria-label": tab.label || 'tab', onClick: () => this.handleTabClick(tab), onKeyDown: e => {
192
+ if (e.key === 'Enter' || e.key === ' ') {
193
+ e.preventDefault();
194
+ this.handleTabClick(tab);
195
+ }
196
+ } }, h("span", { "data-label": tab.label, class: "sd-tabs__label" }, tab.label), tab.badge !== undefined && tab.badge !== null && tab.badge !== '' && (h("sd-tag", { name: badgeName, label: tab.badge.toString() }))));
192
197
  })));
193
198
  }
194
199
  static get watchers() { return {