@sellmate/design-system 1.1.0 → 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 (345) hide show
  1. package/dist/cjs/{component.table-B7brIpIQ.js → component.table-CMqGfEui.js} +11 -1
  2. package/dist/cjs/design-system.cjs.js +2 -2
  3. package/dist/cjs/{index-BlxrCRYi.js → index-Cw-78mnC.js} +1 -1
  4. package/dist/cjs/index.cjs.js +1 -1
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/sd-action-modal.cjs.entry.js +1 -1
  7. package/dist/cjs/sd-badge.cjs.entry.js +1 -1
  8. package/dist/cjs/sd-barcode-input.cjs.entry.js +1 -1
  9. package/dist/cjs/sd-button_2.cjs.entry.js +10 -9
  10. package/dist/cjs/sd-calendar.cjs.entry.js +1 -1
  11. package/dist/cjs/sd-card.cjs.entry.js +1 -1
  12. package/dist/cjs/sd-checkbox.cjs.entry.js +1 -1
  13. package/dist/cjs/sd-chip.cjs.entry.js +4 -4
  14. package/dist/cjs/sd-circle-progress.cjs.entry.js +1 -1
  15. package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +1 -1
  16. package/dist/cjs/sd-date-box.cjs.entry.js +8 -3
  17. package/dist/cjs/sd-date-picker-calendar_2.cjs.entry.js +13 -8
  18. package/dist/cjs/sd-date-picker_7.cjs.entry.js +22 -17
  19. package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +13 -13
  20. package/dist/cjs/sd-dropdown-button.cjs.entry.js +7 -3
  21. package/dist/cjs/sd-field_3.cjs.entry.js +31 -30
  22. package/dist/cjs/sd-form.cjs.entry.js +5 -5
  23. package/dist/cjs/sd-ghost-button.cjs.entry.js +4 -4
  24. package/dist/cjs/sd-guide.cjs.entry.js +5 -5
  25. package/dist/cjs/sd-key-value-table.cjs.entry.js +10 -10
  26. package/dist/cjs/sd-linear-progress.cjs.entry.js +1 -1
  27. package/dist/cjs/sd-loading-container.cjs.entry.js +1 -1
  28. package/dist/cjs/sd-modal-container.cjs.entry.js +3 -3
  29. package/dist/cjs/sd-pagination_4.cjs.entry.js +113 -40
  30. package/dist/cjs/sd-popover.cjs.entry.js +6 -6
  31. package/dist/cjs/sd-popup.cjs.entry.js +1 -1
  32. package/dist/cjs/sd-portal.cjs.entry.js +3 -3
  33. package/dist/cjs/sd-radio-button.cjs.entry.js +7 -4
  34. package/dist/cjs/sd-radio.cjs.entry.js +1 -1
  35. package/dist/cjs/sd-select-list-item_2.cjs.entry.js +15 -11
  36. package/dist/cjs/sd-select_3.cjs.entry.js +20 -15
  37. package/dist/cjs/sd-switch.cjs.entry.js +1 -1
  38. package/dist/cjs/sd-table.cjs.entry.js +170 -47
  39. package/dist/cjs/{sd-table.config-CDyioyE2.js → sd-table.config-BIpldZtw.js} +13 -2
  40. package/dist/cjs/sd-tabs.cjs.entry.js +8 -3
  41. package/dist/cjs/sd-tag.cjs.entry.js +10 -10
  42. package/dist/cjs/sd-td.cjs.entry.js +52 -10
  43. package/dist/cjs/sd-text-link.cjs.entry.js +9 -4
  44. package/dist/cjs/sd-toast-container.cjs.entry.js +2 -2
  45. package/dist/cjs/sd-toast.cjs.entry.js +3 -3
  46. package/dist/cjs/sd-toggle.cjs.entry.js +2 -2
  47. package/dist/cjs/{tooltipArrow-N6nQ1QT-.js → tooltipArrow-BjSFKIUq.js} +1 -1
  48. package/dist/collection/components/sd-button/sd-button.js +9 -8
  49. package/dist/collection/components/sd-chip/sd-chip.js +4 -4
  50. package/dist/collection/components/sd-date-box/sd-date-box.js +7 -2
  51. package/dist/collection/components/sd-date-picker/sd-date-picker-calendar/sd-date-picker-calendar.js +4 -4
  52. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +8 -3
  53. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +12 -12
  54. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +3 -3
  55. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.config.js +6 -2
  56. package/dist/collection/components/sd-field/sd-field.js +23 -22
  57. package/dist/collection/components/sd-file-picker/sd-file-picker.js +7 -2
  58. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +4 -4
  59. package/dist/collection/components/sd-form/sd-form.js +4 -4
  60. package/dist/collection/components/sd-ghost-button/sd-ghost-button.js +3 -3
  61. package/dist/collection/components/sd-guide/sd-guide.js +4 -4
  62. package/dist/collection/components/sd-input/sd-input.js +3 -3
  63. package/dist/collection/components/sd-key-value-table/sd-key-value-table.js +8 -8
  64. package/dist/collection/components/sd-modal-container/sd-modal-container.js +2 -2
  65. package/dist/collection/components/sd-number-input/sd-number-input.js +6 -6
  66. package/dist/collection/components/sd-popover/sd-popover.js +4 -4
  67. package/dist/collection/components/sd-portal/sd-portal.js +2 -2
  68. package/dist/collection/components/sd-radio-button/sd-radio-button.js +6 -3
  69. package/dist/collection/components/sd-radio-group/sd-radio-group.js +1 -1
  70. package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +7 -3
  71. package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +7 -7
  72. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +5 -5
  73. package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +9 -4
  74. package/dist/collection/components/sd-select/sd-select.js +5 -5
  75. package/dist/collection/components/sd-table/sd-table.config.js +4 -0
  76. package/dist/collection/components/sd-table/sd-table.css +22 -3
  77. package/dist/collection/components/sd-table/sd-table.js +197 -50
  78. package/dist/collection/components/sd-table/sd-table.stories.helpers.js +2 -3
  79. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +5 -5
  80. package/dist/collection/components/sd-table/sd-td/sd-td.js +111 -9
  81. package/dist/collection/components/sd-table/sd-thead/sd-thead.js +30 -16
  82. package/dist/collection/components/sd-table/sd-tr/sd-tr.css +20 -1
  83. package/dist/collection/components/sd-table/sd-tr/sd-tr.js +97 -18
  84. package/dist/collection/components/sd-tabs/sd-tabs.js +7 -2
  85. package/dist/collection/components/sd-tag/sd-tag.config.js +3 -3
  86. package/dist/collection/components/sd-tag/sd-tag.js +6 -3
  87. package/dist/collection/components/sd-text-link/sd-text-link.js +8 -3
  88. package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
  89. package/dist/collection/components/sd-toast/sd-toast.js +2 -2
  90. package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
  91. package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
  92. package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
  93. package/dist/collection/utils/modal.js +1 -1
  94. package/dist/components/index.js +1 -1
  95. package/dist/components/p-2wB9cing.js +1 -0
  96. package/dist/components/p-B-sK7I83.js +1 -0
  97. package/dist/components/p-B3D43x7F.js +1 -0
  98. package/dist/components/p-B7mpdnNl.js +1 -0
  99. package/dist/components/{p-DG45uNxd.js → p-BAcmO7w0.js} +1 -1
  100. package/dist/components/p-BL0ZcHK8.js +1 -0
  101. package/dist/components/p-BXCyVrle.js +1 -0
  102. package/dist/components/p-BY1LGlfc.js +1 -0
  103. package/dist/components/p-BjkROjjt.js +1 -0
  104. package/dist/components/p-Bm3W_eBv.js +1 -0
  105. package/dist/components/p-BnfUIhUj.js +1 -0
  106. package/dist/components/{p-D5TRyquv.js → p-BorUSgEK.js} +1 -1
  107. package/dist/components/{p-BfkuCNCI.js → p-BsM-fwYd.js} +1 -1
  108. package/dist/components/p-C5CH-s6a.js +1 -0
  109. package/dist/components/p-C7WLft_0.js +1 -0
  110. package/dist/components/{p-CGBnxqG2.js → p-CK9ciBIR.js} +1 -1
  111. package/dist/components/{p-BeK8amzx.js → p-CQI40kiY.js} +1 -1
  112. package/dist/components/{p-Dr1AMbBj.js → p-CRL7TjSB.js} +1 -1
  113. package/dist/components/p-CdOHomUp.js +1 -0
  114. package/dist/components/p-Ch5Yu1qd.js +1 -0
  115. package/dist/components/{p-D8WAP9T3.js → p-Cktiasfd.js} +1 -1
  116. package/dist/components/p-CsVAx6KV.js +1 -0
  117. package/dist/components/p-D0Jiw-Zk.js +1 -0
  118. package/dist/components/p-D5F7wCNo.js +1 -0
  119. package/dist/components/p-DBFgk0rX.js +1 -0
  120. package/dist/components/p-DFLCjX1a.js +1 -0
  121. package/dist/components/p-DL1ac1QS.js +1 -0
  122. package/dist/components/p-DeQcDHpn.js +1 -0
  123. package/dist/components/p-DfK4DiDI.js +1 -0
  124. package/dist/components/p-DhTcn6jX.js +1 -0
  125. package/dist/components/p-Dl8TIEQu.js +1 -0
  126. package/dist/components/{p--t9jBTYS.js → p-DyAnn9ea.js} +1 -1
  127. package/dist/components/p-Jts7ueOa.js +1 -0
  128. package/dist/components/{p-B1MabGRR.js → p-arZfxxPn.js} +1 -1
  129. package/dist/components/p-mmdt-WnS.js +1 -0
  130. package/dist/components/p-nOCYbyW4.js +1 -0
  131. package/dist/components/{p-MQTl8fGT.js → p-teN3CfOr.js} +1 -1
  132. package/dist/components/{p-ofkgu5aS.js → p-u8teDaMa.js} +1 -1
  133. package/dist/components/{p-BPsOJlCP.js → p-wCNRlKLa.js} +1 -1
  134. package/dist/components/sd-action-modal.js +1 -1
  135. package/dist/components/sd-badge.js +1 -1
  136. package/dist/components/sd-barcode-input.js +1 -1
  137. package/dist/components/sd-button.js +1 -1
  138. package/dist/components/sd-calendar.js +1 -1
  139. package/dist/components/sd-card.js +1 -1
  140. package/dist/components/sd-checkbox.js +1 -1
  141. package/dist/components/sd-chip.js +1 -1
  142. package/dist/components/sd-circle-progress.js +1 -1
  143. package/dist/components/sd-confirm-modal.js +1 -1
  144. package/dist/components/sd-date-box.js +1 -1
  145. package/dist/components/sd-date-picker-calendar.js +1 -1
  146. package/dist/components/sd-date-picker-trigger.js +1 -1
  147. package/dist/components/sd-date-picker.js +1 -1
  148. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  149. package/dist/components/sd-date-range-picker.js +1 -1
  150. package/dist/components/sd-dropdown-button.js +1 -1
  151. package/dist/components/sd-field.js +1 -1
  152. package/dist/components/sd-file-picker.js +1 -1
  153. package/dist/components/sd-floating-portal.js +1 -1
  154. package/dist/components/sd-form.js +1 -1
  155. package/dist/components/sd-ghost-button.js +1 -1
  156. package/dist/components/sd-guide.js +1 -1
  157. package/dist/components/sd-icon.js +1 -1
  158. package/dist/components/sd-input.js +1 -1
  159. package/dist/components/sd-key-value-table.js +1 -1
  160. package/dist/components/sd-linear-progress.js +1 -1
  161. package/dist/components/sd-loading-container.js +1 -1
  162. package/dist/components/sd-loading-modal.js +1 -1
  163. package/dist/components/sd-modal-container.js +1 -1
  164. package/dist/components/sd-number-input.js +1 -1
  165. package/dist/components/sd-pagination.js +1 -1
  166. package/dist/components/sd-popover.js +1 -1
  167. package/dist/components/sd-popup.js +1 -1
  168. package/dist/components/sd-portal.js +1 -1
  169. package/dist/components/sd-radio-button.js +1 -1
  170. package/dist/components/sd-radio-group.js +1 -1
  171. package/dist/components/sd-radio.js +1 -1
  172. package/dist/components/sd-select-list-item-search.js +1 -1
  173. package/dist/components/sd-select-list-item.js +1 -1
  174. package/dist/components/sd-select-listbox.js +1 -1
  175. package/dist/components/sd-select-trigger.js +1 -1
  176. package/dist/components/sd-select.js +1 -1
  177. package/dist/components/sd-switch.js +1 -1
  178. package/dist/components/sd-table.js +1 -1
  179. package/dist/components/sd-tabs.js +1 -1
  180. package/dist/components/sd-tag.js +1 -1
  181. package/dist/components/sd-tbody.js +1 -1
  182. package/dist/components/sd-td.js +1 -1
  183. package/dist/components/sd-text-link.js +1 -1
  184. package/dist/components/sd-textarea.js +1 -1
  185. package/dist/components/sd-thead.js +1 -1
  186. package/dist/components/sd-toast-container.js +1 -1
  187. package/dist/components/sd-toast.js +1 -1
  188. package/dist/components/sd-toggle.js +1 -1
  189. package/dist/components/sd-tooltip.js +1 -1
  190. package/dist/components/sd-tr.js +1 -1
  191. package/dist/design-system/design-system.css +1 -1
  192. package/dist/design-system/design-system.esm.js +1 -1
  193. package/dist/design-system/index.esm.js +1 -1
  194. package/dist/design-system/{p-b96c694c.entry.js → p-04fdb4b1.entry.js} +1 -1
  195. package/dist/design-system/p-05611ff7.entry.js +1 -0
  196. package/dist/design-system/p-0U6dRjlq.js +2 -0
  197. package/dist/design-system/{p-cd8e4dd6.entry.js → p-0fe603a4.entry.js} +1 -1
  198. package/dist/design-system/p-100f5887.entry.js +1 -0
  199. package/dist/design-system/p-18c5ae1a.entry.js +1 -0
  200. package/dist/design-system/p-1baa05ae.entry.js +1 -0
  201. package/dist/design-system/p-2a1ef965.entry.js +1 -0
  202. package/dist/design-system/p-2c63404f.entry.js +1 -0
  203. package/dist/design-system/{p-feeb0cc5.entry.js → p-435ae69e.entry.js} +1 -1
  204. package/dist/design-system/{p-cbda9194.entry.js → p-43e97572.entry.js} +1 -1
  205. package/dist/design-system/{p-e1c0a3c9.entry.js → p-44d05570.entry.js} +1 -1
  206. package/dist/design-system/{p-328fae12.entry.js → p-501fae20.entry.js} +1 -1
  207. package/dist/design-system/{p-b6ca4461.entry.js → p-5705e6d6.entry.js} +1 -1
  208. package/dist/design-system/p-5cbaf1db.entry.js +1 -0
  209. package/dist/design-system/p-5ed0becf.entry.js +1 -0
  210. package/dist/design-system/p-5f1c39b8.entry.js +1 -0
  211. package/dist/design-system/p-66af0ba0.entry.js +1 -0
  212. package/dist/design-system/{p-a942dfbe.entry.js → p-77690440.entry.js} +1 -1
  213. package/dist/design-system/p-78cc0289.entry.js +1 -0
  214. package/dist/design-system/{p-b04b22c6.entry.js → p-790165f8.entry.js} +1 -1
  215. package/dist/design-system/p-80466582.entry.js +1 -0
  216. package/dist/design-system/{p-c0f60b00.entry.js → p-857c44e8.entry.js} +1 -1
  217. package/dist/design-system/{p-4e2953eb.entry.js → p-87c868c3.entry.js} +1 -1
  218. package/dist/design-system/{p-f60cc7be.entry.js → p-8db7d8f2.entry.js} +1 -1
  219. package/dist/design-system/{p-18466728.entry.js → p-8ee990bd.entry.js} +1 -1
  220. package/dist/design-system/p-8f22106e.entry.js +1 -0
  221. package/dist/design-system/p-BnfUIhUj.js +1 -0
  222. package/dist/{components/p-CT3dfy3K.js → design-system/p-C29HUShl.js} +1 -1
  223. package/dist/design-system/p-a6545130.entry.js +1 -0
  224. package/dist/design-system/p-ae2d45a2.entry.js +1 -0
  225. package/dist/design-system/{p-f3cfff78.entry.js → p-aeccfb2b.entry.js} +1 -1
  226. package/dist/design-system/{p-20a50702.entry.js → p-b0aad445.entry.js} +1 -1
  227. package/dist/design-system/p-b3c144ff.entry.js +1 -0
  228. package/dist/design-system/{p-b1bb0d72.entry.js → p-caee95b0.entry.js} +1 -1
  229. package/dist/design-system/p-d30c823e.entry.js +1 -0
  230. package/dist/design-system/{p-f5576a0d.entry.js → p-d3212544.entry.js} +1 -1
  231. package/dist/design-system/p-d8c41313.entry.js +1 -0
  232. package/dist/design-system/{p-7882e388.entry.js → p-de8bb9ba.entry.js} +1 -1
  233. package/dist/design-system/{p-29ed11e5.entry.js → p-e2334c1c.entry.js} +1 -1
  234. package/dist/design-system/{p-d78fbe16.entry.js → p-f4d73a0c.entry.js} +1 -1
  235. package/dist/design-system/p-fc973500.entry.js +1 -0
  236. package/dist/design-system/p-fe0a5368.entry.js +1 -0
  237. package/dist/design-system/p-mmdt-WnS.js +1 -0
  238. package/dist/esm/{component.table-BQ6at17Y.js → component.table-BnfUIhUj.js} +11 -1
  239. package/dist/esm/design-system.js +3 -3
  240. package/dist/esm/{index-CLCoul8o.js → index-0U6dRjlq.js} +1 -1
  241. package/dist/esm/index.js +1 -1
  242. package/dist/esm/loader.js +3 -3
  243. package/dist/esm/sd-action-modal.entry.js +1 -1
  244. package/dist/esm/sd-badge.entry.js +1 -1
  245. package/dist/esm/sd-barcode-input.entry.js +1 -1
  246. package/dist/esm/sd-button_2.entry.js +10 -9
  247. package/dist/esm/sd-calendar.entry.js +1 -1
  248. package/dist/esm/sd-card.entry.js +1 -1
  249. package/dist/esm/sd-checkbox.entry.js +1 -1
  250. package/dist/esm/sd-chip.entry.js +4 -4
  251. package/dist/esm/sd-circle-progress.entry.js +1 -1
  252. package/dist/esm/sd-confirm-modal_2.entry.js +1 -1
  253. package/dist/esm/sd-date-box.entry.js +8 -3
  254. package/dist/esm/sd-date-picker-calendar_2.entry.js +13 -8
  255. package/dist/esm/sd-date-picker_7.entry.js +22 -17
  256. package/dist/esm/sd-date-range-picker-calendar.entry.js +13 -13
  257. package/dist/esm/sd-dropdown-button.entry.js +7 -3
  258. package/dist/esm/sd-field_3.entry.js +31 -30
  259. package/dist/esm/sd-form.entry.js +5 -5
  260. package/dist/esm/sd-ghost-button.entry.js +4 -4
  261. package/dist/esm/sd-guide.entry.js +5 -5
  262. package/dist/esm/sd-key-value-table.entry.js +10 -10
  263. package/dist/esm/sd-linear-progress.entry.js +1 -1
  264. package/dist/esm/sd-loading-container.entry.js +1 -1
  265. package/dist/esm/sd-modal-container.entry.js +3 -3
  266. package/dist/esm/sd-pagination_4.entry.js +113 -40
  267. package/dist/esm/sd-popover.entry.js +6 -6
  268. package/dist/esm/sd-popup.entry.js +1 -1
  269. package/dist/esm/sd-portal.entry.js +3 -3
  270. package/dist/esm/sd-radio-button.entry.js +7 -4
  271. package/dist/esm/sd-radio.entry.js +1 -1
  272. package/dist/esm/sd-select-list-item_2.entry.js +15 -11
  273. package/dist/esm/sd-select_3.entry.js +20 -15
  274. package/dist/esm/sd-switch.entry.js +1 -1
  275. package/dist/esm/{sd-table.config-0Te8GLCI.js → sd-table.config-B-VgXXT7.js} +13 -3
  276. package/dist/esm/sd-table.entry.js +170 -47
  277. package/dist/esm/sd-tabs.entry.js +8 -3
  278. package/dist/esm/sd-tag.entry.js +10 -10
  279. package/dist/esm/sd-td.entry.js +52 -10
  280. package/dist/esm/sd-text-link.entry.js +9 -4
  281. package/dist/esm/sd-toast-container.entry.js +2 -2
  282. package/dist/esm/sd-toast.entry.js +3 -3
  283. package/dist/esm/sd-toggle.entry.js +2 -2
  284. package/dist/esm/{tooltipArrow-Bc-yw2nt.js → tooltipArrow-O5LOsHae.js} +1 -1
  285. package/dist/types/components/sd-dropdown-button/sd-dropdown-button.config.d.ts +3 -2
  286. package/dist/types/components/sd-table/constants.d.ts +2 -0
  287. package/dist/types/components/sd-table/sd-table.config.d.ts +4 -0
  288. package/dist/types/components/sd-table/sd-table.d.ts +19 -15
  289. package/dist/types/components/sd-table/sd-td/sd-td.d.ts +6 -0
  290. package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +7 -0
  291. package/dist/types/components/sd-tag/sd-tag.d.ts +1 -0
  292. package/dist/types/components.d.ts +41 -8
  293. package/hydrate/index.js +552 -244
  294. package/hydrate/index.mjs +552 -244
  295. package/package.json +1 -1
  296. package/dist/components/p-At6nBeyO.js +0 -1
  297. package/dist/components/p-B73VhbYi.js +0 -1
  298. package/dist/components/p-BDQQllAo.js +0 -1
  299. package/dist/components/p-BDr27lvk.js +0 -1
  300. package/dist/components/p-BQ6at17Y.js +0 -1
  301. package/dist/components/p-BW_sBt7X.js +0 -1
  302. package/dist/components/p-BX3TJuQY.js +0 -1
  303. package/dist/components/p-Bm_T3qE0.js +0 -1
  304. package/dist/components/p-BnzK4uU4.js +0 -1
  305. package/dist/components/p-BqkJ0rZv.js +0 -1
  306. package/dist/components/p-C4PmGpW8.js +0 -1
  307. package/dist/components/p-C9CszVFl.js +0 -1
  308. package/dist/components/p-CGQWERwE.js +0 -1
  309. package/dist/components/p-CZmKBmKx.js +0 -1
  310. package/dist/components/p-CnarDyZi.js +0 -1
  311. package/dist/components/p-Cr2ghUra.js +0 -1
  312. package/dist/components/p-Cspm6LxP.js +0 -1
  313. package/dist/components/p-Cx3jXw9J.js +0 -1
  314. package/dist/components/p-DG-4Ifco.js +0 -1
  315. package/dist/components/p-DfXAgw0E.js +0 -1
  316. package/dist/components/p-MMkRcTBd.js +0 -1
  317. package/dist/components/p-ZstG0XdT.js +0 -1
  318. package/dist/components/p-h7eBUL4i.js +0 -1
  319. package/dist/components/p-lyB7zSp-.js +0 -1
  320. package/dist/components/p-oIM6jNZe.js +0 -1
  321. package/dist/components/p-oKHZl8yu.js +0 -1
  322. package/dist/design-system/p-02289728.entry.js +0 -1
  323. package/dist/design-system/p-17d66d85.entry.js +0 -1
  324. package/dist/design-system/p-1bb86d69.entry.js +0 -1
  325. package/dist/design-system/p-21874054.entry.js +0 -1
  326. package/dist/design-system/p-282cbefa.entry.js +0 -1
  327. package/dist/design-system/p-35dce399.entry.js +0 -1
  328. package/dist/design-system/p-39ff56b4.entry.js +0 -1
  329. package/dist/design-system/p-3cb712a6.entry.js +0 -1
  330. package/dist/design-system/p-7610153d.entry.js +0 -1
  331. package/dist/design-system/p-7722ddeb.entry.js +0 -1
  332. package/dist/design-system/p-7bfa0cf9.entry.js +0 -1
  333. package/dist/design-system/p-824ecfb5.entry.js +0 -1
  334. package/dist/design-system/p-9a04b341.entry.js +0 -1
  335. package/dist/design-system/p-BQ6at17Y.js +0 -1
  336. package/dist/design-system/p-CGQWERwE.js +0 -1
  337. package/dist/design-system/p-CLCoul8o.js +0 -2
  338. package/dist/design-system/p-Dmf0PYdM.js +0 -1
  339. package/dist/design-system/p-a7a0ca14.entry.js +0 -1
  340. package/dist/design-system/p-baed13e4.entry.js +0 -1
  341. package/dist/design-system/p-bd45e65d.entry.js +0 -1
  342. package/dist/design-system/p-bf4156d8.entry.js +0 -1
  343. package/dist/design-system/p-c228c2c7.entry.js +0 -1
  344. package/dist/design-system/p-cf382479.entry.js +0 -1
  345. package/dist/design-system/p-d0de34fd.entry.js +0 -1
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h } from './index-CLCoul8o.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-0U6dRjlq.js';
2
2
  import { n as nanoid } from './index-CCwNgVmC.js';
3
3
  import { c as countLeaves, S as SEARCH_THRESHOLD, f as filterTree, E as EMPTY_MESSAGE, L as LIST_BOX_LAYOUT, a as SELECT_COLORS, b as SELECT_TYPOGRAPHY, d as SELECT_LAYOUT } from './sd-select.config-CxOCk_ge.js';
4
4
 
@@ -119,7 +119,7 @@ const SdSelect = class {
119
119
  }
120
120
  getSelectedOptions() {
121
121
  const val = this.value;
122
- if (!val || !Array.isArray(val))
122
+ if (val == null || !Array.isArray(val))
123
123
  return [];
124
124
  if (this.emitValue) {
125
125
  return val
@@ -263,15 +263,15 @@ const SdSelect = class {
263
263
  this.closeDropdown();
264
264
  },
265
265
  };
266
- return (h("sd-field", { key: '18edcdfdc3a9a2bd17ae0e3852eec94151275e18', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, onMouseEnter: () => {
266
+ return (h("sd-field", { key: '668df27ea03b5c2479f89649c494375bacd762ec', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, onMouseEnter: () => {
267
267
  this.hovered = true;
268
268
  }, onMouseLeave: () => {
269
269
  this.hovered = false;
270
- } }, h("div", { key: '39efa02a58acbc53315087cceb732b488920dbe8', class: "sd-select", ref: el => {
270
+ } }, h("div", { key: '7d391d2c0719c165e9d19f5fdc34d39c374401e9', class: "sd-select", ref: el => {
271
271
  this.triggerRef = el;
272
- } }, h("sd-select-trigger", { key: 'e03ce9208f4af5226461ecdfb0d15bade4f277dd', ref: el => {
272
+ } }, h("sd-select-trigger", { key: 'b09a0f9dcb0071b79a21c8184deb7d07ba54185f', ref: el => {
273
273
  this.triggerComponentRef = el;
274
- }, displayText: this.displayText, placeholder: this.placeholder ?? '선택', disabled: this.disabled, isOpen: this.isOpen, onSdTriggerClick: this.handleTriggerClick, onSdTriggerFocus: this.handleTriggerFocus, onSdTriggerBlur: this.handleTriggerBlur })), (this.isOpen || this.isAnimatingOut) && (h("sd-portal", { key: '9181fd551885e001f139cab9634a2ac3b0f89d47', ...portalProps }, h("sd-select-listbox", { key: '6ed356d2ceea79562ce448584514c23fbff20090', type: this.type, options: this.options, value: this.value, emitValue: this.emitValue, useSearch: this.useSearch, useSelectAll: this.useSelectAll, triggerWidth: this.triggerWidth, maxWidth: this.resolvedMaxDropdownWidth, maxHeight: this.resolvedDropdownHeight, onSdOptionSelect: event => this.handleOptionSelect(event.detail) })))));
274
+ }, displayText: this.displayText, placeholder: this.placeholder ?? '선택', disabled: this.disabled, isOpen: this.isOpen, onSdTriggerClick: this.handleTriggerClick, onSdTriggerFocus: this.handleTriggerFocus, onSdTriggerBlur: this.handleTriggerBlur })), (this.isOpen || this.isAnimatingOut) && (h("sd-portal", { key: '2ae67c5e98c66c2a74ba96f4602ea14d53dd0177', ...portalProps }, h("sd-select-listbox", { key: '97ee517fa777abd4926f8105fd046e39dfeeb5ff', type: this.type, options: this.options, value: this.value, emitValue: this.emitValue, useSearch: this.useSearch, useSelectAll: this.useSelectAll, triggerWidth: this.triggerWidth, maxWidth: this.resolvedMaxDropdownWidth, maxHeight: this.resolvedDropdownHeight, onSdOptionSelect: event => this.handleOptionSelect(event.detail) })))));
275
275
  }
276
276
  static get watchers() { return {
277
277
  "isOpen": [{
@@ -349,7 +349,7 @@ const SdSelectListbox = class {
349
349
  return count >= SEARCH_THRESHOLD;
350
350
  }
351
351
  get filteredOptions() {
352
- if (!this.searchKeyword)
352
+ if (this.searchKeyword === '')
353
353
  return this.options;
354
354
  if (this.isDepth)
355
355
  return filterTree(this.options, this.searchKeyword);
@@ -362,7 +362,7 @@ const SdSelectListbox = class {
362
362
  return this.filteredOptions.length === 0;
363
363
  }
364
364
  getSelectedValues() {
365
- if (!this.value || !Array.isArray(this.value))
365
+ if (this.value == null || !Array.isArray(this.value))
366
366
  return new Set();
367
367
  if (this.emitValue) {
368
368
  return new Set(this.value);
@@ -485,7 +485,7 @@ const SdSelectListbox = class {
485
485
  // filterTree 가 매 호출마다 옵션 객체를 새로 복제하기 때문에 참조 비교
486
486
  // (=== / indexOf) 는 검색이 적용된 동안 항상 실패한다. 고유 식별자인
487
487
  // value 로 비교해야 한다.
488
- return !!focused && focused.value === option.value;
488
+ return focused != null && focused.value === option.value;
489
489
  }
490
490
  resetFocusOnFilter() {
491
491
  // 필터가 바뀌면 이전 인덱스가 가리키던 항목이 사라질 수 있으므로
@@ -635,9 +635,9 @@ const SdSelectListbox = class {
635
635
  '--listbox-max-height': this.maxHeight ?? '260px',
636
636
  '--listbox-radius': `${LIST_BOX_LAYOUT.radius}px`,
637
637
  };
638
- return (h("div", { key: 'be3a46d2a17522799374eb7e59faea8960e7b41a', class: "sd-select-listbox", style: cssVars }, this.showSearch && (h("sd-select-list-item-search", { key: '68fa6b9f958ee662ac400716ade0ae4823ad99a3', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), h("div", { key: 'b0a6daf94c69ccb33d31434014c93b2f414309f3', class: "sd-select-listbox__list", onScroll: this.handleScroll, ref: el => {
638
+ return (h("div", { key: '8c9b1a4471bf4e535c5f156d087e1b9be76ad903', class: "sd-select-listbox", style: cssVars }, this.showSearch && (h("sd-select-list-item-search", { key: '4cc596a1ac21c9b258d5db07ecb15d566179d743', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), h("div", { key: '977e15c7987ca387cf30783741f99b322150627b', class: "sd-select-listbox__list", onScroll: this.handleScroll, ref: el => {
639
639
  this.listEl = el;
640
- } }, this.showSelectAll && (h("sd-select-list-item", { key: '120fea009df513e3346877044ee65c132ece70cf', option: SdSelectListbox.SELECT_ALL_OPTION, depth: 1, isSelected: this.selectAllState, isFocused: this.isOptionFocused(SdSelectListbox.SELECT_ALL_OPTION), useCheckbox: true, onSdListItemClick: this.handleSelectAllClick, onMouseEnter: () => this.handleOptionHover(SdSelectListbox.SELECT_ALL_OPTION) })), this.isEmpty ? (h("div", { class: "sd-select-listbox__empty" }, EMPTY_MESSAGE)) : this.isDepth ? (this.renderOptions(this.filteredOptions)) : (this.filteredOptions.map(option => (h("sd-select-list-item", { option: option, depth: 1, isSelected: this.isOptionSelected(option), isFocused: this.isOptionFocused(option), useCheckbox: this.isMulti, onSdListItemClick: this.handleOptionClick, onMouseEnter: () => this.handleOptionHover(option) })))))));
640
+ } }, this.showSelectAll && (h("sd-select-list-item", { key: 'dada5a6662b2d3fa63ed11ab1c82561d5e2d2400', option: SdSelectListbox.SELECT_ALL_OPTION, depth: 1, isSelected: this.selectAllState, isFocused: this.isOptionFocused(SdSelectListbox.SELECT_ALL_OPTION), useCheckbox: true, onSdListItemClick: this.handleSelectAllClick, onMouseEnter: () => this.handleOptionHover(SdSelectListbox.SELECT_ALL_OPTION) })), this.isEmpty ? (h("div", { class: "sd-select-listbox__empty" }, EMPTY_MESSAGE)) : this.isDepth ? (this.renderOptions(this.filteredOptions)) : (this.filteredOptions.map(option => (h("sd-select-list-item", { option: option, depth: 1, isSelected: this.isOptionSelected(option), isFocused: this.isOptionFocused(option), useCheckbox: this.isMulti, onSdListItemClick: this.handleOptionClick, onMouseEnter: () => this.handleOptionHover(option) })))))));
641
641
  }
642
642
  static get watchers() { return {
643
643
  "searchKeyword": [{
@@ -681,7 +681,7 @@ const SdSelectTrigger = class {
681
681
  this.triggerBlur.emit();
682
682
  };
683
683
  render() {
684
- const hasValue = !!this.displayText;
684
+ const hasValue = this.displayText !== '';
685
685
  const cssVars = {
686
686
  '--trigger-padding-x': `${SELECT_LAYOUT.paddingX}px`,
687
687
  '--trigger-gap': `${SELECT_LAYOUT.gap}px`,
@@ -697,13 +697,18 @@ const SdSelectTrigger = class {
697
697
  ? SELECT_COLORS.icon.disabled
698
698
  : SELECT_COLORS.icon.default,
699
699
  };
700
- return (h("div", { key: '69a87c509e16605feb217f12ce055e0097f09a6f', ref: el => {
700
+ return (h("div", { key: '67cb0ffaf0197a3ad12c402810317801ce69d4a1', ref: el => {
701
701
  this.triggerEl = el;
702
- }, tabindex: this.disabled ? -1 : 0, class: {
702
+ }, role: "button", "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? 'true' : 'false', tabindex: this.disabled ? -1 : 0, class: {
703
703
  'sd-select-trigger': true,
704
704
  'sd-select-trigger--open': this.isOpen,
705
705
  'sd-select-trigger--disabled': this.disabled,
706
- }, style: cssVars, onClick: this.handleClick, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("div", { key: '0886f40b2427fc4b5825b06682531a26be4c4eec', class: "sd-select-trigger__content" }, h("span", { key: '9e2fb73a34153b0744fbf2cc7490ecdc7a125233', class: "sd-select-trigger__text" }, hasValue ? this.displayText : (this.placeholder ?? '선택')), h("sd-icon", { key: 'c8a80bf912c50bf97a5d5af4d4c5307e416aea6d', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
706
+ }, style: cssVars, onClick: this.handleClick, onKeyDown: e => {
707
+ if (e.key === 'Enter' || e.key === ' ') {
708
+ e.preventDefault();
709
+ this.handleClick();
710
+ }
711
+ }, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("div", { key: '4c28c852054fd7b09e5c45c9eb13882540f66553', class: "sd-select-trigger__content" }, h("span", { key: 'df415c9ac8d00a58e5539c8c655f12ebd49208a4', class: "sd-select-trigger__text" }, hasValue ? this.displayText : (this.placeholder ?? '선택')), h("sd-icon", { key: '429008e1edaf778e8a85f945a681cd675f2489b7', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
707
712
  'sd-select-trigger__icon': true,
708
713
  'sd-select-trigger__icon--open': this.isOpen,
709
714
  } }))));
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-CLCoul8o.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-0U6dRjlq.js';
2
2
 
3
3
  var switchTokens = {
4
4
  "switch": {
@@ -1,4 +1,4 @@
1
- import { t as tableTokens } from './component.table-BQ6at17Y.js';
1
+ import { t as tableTokens } from './component.table-BnfUIhUj.js';
2
2
  import { s as systemTokens } from './system-GBlVDmy4.js';
3
3
 
4
4
  // ── Header Tokens ──
@@ -24,7 +24,13 @@ const TABLE_HEADER_RESIZING_BAR = {
24
24
  // ── Body Tokens ──
25
25
  const TABLE_BODY_LAYOUT = {
26
26
  default: {
27
- 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
+ },
28
34
  paddingX: tableTokens.table.body.paddingX};
29
35
  const TABLE_BODY_TYPOGRAPHY = {
30
36
  fontFamily: tableTokens.table.body.typography.fontFamily,
@@ -38,6 +44,10 @@ const TABLE_BORDER = {
38
44
  color: tableTokens.table.border.color,
39
45
  width: tableTokens.table.border.width,
40
46
  };
47
+ const TABLE_SEPARATOR = {
48
+ color: tableTokens.table.separator.color,
49
+ width: tableTokens.table.separator.Width,
50
+ };
41
51
  const TABLE_RADIUS = tableTokens.table.radius;
42
52
  // ── Header Icon Color Defaults ──
43
53
  const ICON_DEFAULT_COLOR = {
@@ -51,4 +61,4 @@ const ICON_DEFAULT_COLOR = {
51
61
  const resolveTableIconColor = (name, override) => override ?? ICON_DEFAULT_COLOR[name];
52
62
  const resolveSortIconName = (sort) => sort === 'asc' ? 'arrowDown' : sort === 'desc' ? 'arrowUp' : 'updown';
53
63
 
54
- 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,7 +1,7 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, d as readTask, f as forceUpdate, h, H as Host } from './index-CLCoul8o.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-0Te8GLCI.js';
4
- import './component.table-BQ6at17Y.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
5
  import './system-GBlVDmy4.js';
6
6
 
7
7
  let urlAlphabet =
@@ -17,7 +17,7 @@ let nanoid = (size = 21) => {
17
17
  return id
18
18
  };
19
19
 
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;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);margin-top:-1px;border-radius: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%)}`;
21
21
 
22
22
  const SdTable = class {
23
23
  constructor(hostRef) {
@@ -49,9 +49,15 @@ const SdTable = class {
49
49
  pagination;
50
50
  useInternalPagination = false;
51
51
  useRowsPerPageSelect = false;
52
+ dense = false;
52
53
  // ─── Virtual Scroll ───────────────────────────────────────────────
53
54
  useVirtualScroll = false;
54
- 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
+ }
55
61
  virtualBuffer = 5;
56
62
  virtualEndThreshold = 10;
57
63
  // ─────────────────────────────────────────────────────────────────
@@ -74,6 +80,7 @@ const SdTable = class {
74
80
  scrolledRight = false;
75
81
  rowCount = 0;
76
82
  loadingScrollTop = 0;
83
+ noDataBodyHeight = 60;
77
84
  // light DOM에 sd-thead / sd-tbody 자식이 없으면 sd-table이 직접 렌더해야 함을 알리는 플래그.
78
85
  // componentWillLoad에서 한 번 결정되며, 이후 동적 토글은 지원하지 않는다.
79
86
  autoThead = false;
@@ -82,12 +89,19 @@ const SdTable = class {
82
89
  vsEnd = 0;
83
90
  lastReachEndNotifiedRowCount = -1;
84
91
  scrollContainer = null;
92
+ noDataContentEl = null;
93
+ noDataContentResizeObserver;
85
94
  onScroll;
86
95
  // 키: `${rowKey}::${field}` → { rowspan, colspan }
87
96
  spanRegistry = new Map();
97
+ // rowKey → Set<field>: useFrame=true인 sd-td가 있는 행을 추적한다.
98
+ // 하나라도 등록되면 해당 행은 dense를 무시하고 default 레이아웃으로 렌더된다.
99
+ useFrameRegistry = new Map();
88
100
  // 키: `${rowKey}::${field}` → sd-td의 sdClass 문자열
89
101
  // sd-tr가 td를 그릴 때 머지해서 셀-단위 커스텀 클래스를 적용한다.
90
102
  cellClassRegistry = new Map();
103
+ // separator 직전 행의 시각적 인덱스 집합
104
+ separatorPrevIndices = new Set();
91
105
  // rowKey 문자열 → rows 배열에서의 visual index.
92
106
  // rowspan 위쪽 행 스캔에서 "내 위에 있느냐"를 판정하기 위한 시각적 순서 소스.
93
107
  // rows prop이 있으면 채워지고, 없으면 비어 있어 Number(rowKey) fallback이 사용된다.
@@ -146,6 +160,7 @@ const SdTable = class {
146
160
  if (newVal) {
147
161
  this.loadingScrollTop = this.scrollContainer?.scrollTop ?? 0;
148
162
  }
163
+ this.syncNoDataContentObserver();
149
164
  }
150
165
  handleUseVirtualScrollChange(newVal) {
151
166
  if (newVal) {
@@ -154,7 +169,7 @@ const SdTable = class {
154
169
  }
155
170
  }
156
171
  handleColumnsChange(newCols) {
157
- this.columnWidths = newCols.map(c => parseInt(c.width || '120', 10));
172
+ this.columnWidths = newCols.map(c => (c.autoWidth ? 0 : parseInt(c.width || '120', 10)));
158
173
  this.refreshChildrenConfig();
159
174
  }
160
175
  handleRowsChange(newRows) {
@@ -165,6 +180,7 @@ const SdTable = class {
165
180
  if (this.useVirtualScroll)
166
181
  this.propagateVirtualUpdate(true);
167
182
  this.pushRowsToChildren(newRows);
183
+ this.syncNoDataContentObserver();
168
184
  }
169
185
  handleRowKeyChange() {
170
186
  this.rebuildRowIndexMap();
@@ -190,10 +206,10 @@ const SdTable = class {
190
206
  this.innerSelected = new Set(newSelected);
191
207
  }
192
208
  handlePaginationChange(newVal) {
193
- if (newVal?.page && newVal.page !== this.currentPage) {
209
+ if (newVal?.page != null && newVal.page !== this.currentPage) {
194
210
  this.currentPage = newVal.page;
195
211
  }
196
- if (newVal?.rowsPerPage && newVal.rowsPerPage !== this.innerRowsPerPage) {
212
+ if (newVal?.rowsPerPage != null && newVal.rowsPerPage !== this.innerRowsPerPage) {
197
213
  this.innerRowsPerPage = newVal.rowsPerPage;
198
214
  }
199
215
  }
@@ -208,12 +224,12 @@ const SdTable = class {
208
224
  this.handleNoDataLabelChange(this.noDataLabel);
209
225
  this.detectChildren();
210
226
  this.innerSelected = new Set(this.selected || []);
211
- 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));
212
228
  this.rebuildRowIndexMap();
213
- if (this.pagination?.page) {
229
+ if (this.pagination?.page != null) {
214
230
  this.currentPage = this.pagination.page;
215
231
  }
216
- if (this.pagination?.rowsPerPage) {
232
+ if (this.pagination?.rowsPerPage != null) {
217
233
  this.innerRowsPerPage = this.pagination.rowsPerPage;
218
234
  }
219
235
  const el = this.el;
@@ -235,10 +251,16 @@ const SdTable = class {
235
251
  el.getSpanSync = this.getSpanSync.bind(this);
236
252
  el.isCoveredSync = this.isCoveredSync.bind(this);
237
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);
238
257
  el.hasRowspanSync = this.hasRowspanSync.bind(this);
239
258
  el.registerCellClassSync = this.registerCellClassSync.bind(this);
240
259
  el.unregisterCellClassSync = this.unregisterCellClassSync.bind(this);
241
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);
242
264
  if (Array.isArray(this.rows)) {
243
265
  this.rowCount = this.rows.length;
244
266
  this.pushRowsToChildren(this.rows);
@@ -281,11 +303,43 @@ const SdTable = class {
281
303
  this.propagateVirtualUpdate(); // 초기 렌더
282
304
  }
283
305
  });
306
+ this.syncNoDataContentObserver();
284
307
  }
285
308
  disconnectedCallback() {
286
309
  if (this.scrollContainer && this.onScroll) {
287
310
  this.scrollContainer.removeEventListener('scroll', this.onScroll);
288
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);
289
343
  }
290
344
  // light DOM(manual mode 자식)과 shadow DOM(autoThead/autoTbody fallback) 양쪽 모두에서 자식을 찾는다.
291
345
  queryChildEl(selector) {
@@ -350,8 +404,8 @@ const SdTable = class {
350
404
  return;
351
405
  this.vsStart = start;
352
406
  this.vsEnd = end;
353
- const topHeight = start * this.rowHeight;
354
- 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);
355
409
  const tbody = this.queryChildEl('sd-tbody');
356
410
  tbody?.setSpacersSync?.(topHeight, bottomHeight);
357
411
  if (rangeChanged) {
@@ -365,7 +419,7 @@ const SdTable = class {
365
419
  getVirtualScrollConfigSync() {
366
420
  return {
367
421
  useVirtualScroll: this.useVirtualScroll,
368
- rowHeight: this.rowHeight,
422
+ rowHeight: this.effectiveRowHeight,
369
423
  virtualBuffer: this.virtualBuffer,
370
424
  vsStart: this.vsStart,
371
425
  vsEnd: this.vsEnd,
@@ -382,10 +436,35 @@ const SdTable = class {
382
436
  scrolledLeft: this.scrolledLeft,
383
437
  scrolledRight: this.scrolledRight,
384
438
  columnWidths: this.columnWidths,
439
+ dense: this.dense,
385
440
  };
386
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
+ }
387
466
  isRowSelectedSync(row) {
388
- return Array.from(this.innerSelected).some(r => r[(this.rowKey ?? 'id')] === row[(this.rowKey ?? 'id')]);
467
+ return Array.from(this.innerSelected).some(r => r[this.rowKey ?? 'id'] === row[this.rowKey ?? 'id']);
389
468
  }
390
469
  async isRowSelected(row) {
391
470
  return this.isRowSelectedSync(row);
@@ -394,7 +473,7 @@ const SdTable = class {
394
473
  const selectedArray = Array.from(this.innerSelected);
395
474
  const exists = this.isRowSelectedSync(row);
396
475
  const newSelected = exists
397
- ? selectedArray.filter(r => r[(this.rowKey ?? 'id')] !== row[(this.rowKey ?? 'id')])
476
+ ? selectedArray.filter(r => r[this.rowKey ?? 'id'] !== row[this.rowKey ?? 'id'])
398
477
  : [...selectedArray, row];
399
478
  if (newSelected.length === selectedArray.length)
400
479
  return;
@@ -412,8 +491,8 @@ const SdTable = class {
412
491
  this.innerSelected = new Set([...this.innerSelected, ...pageRows]);
413
492
  }
414
493
  else {
415
- const currentPageKeys = rows.map(r => r[(this.rowKey ?? 'id')]);
416
- this.innerSelected = new Set([...this.innerSelected].filter(r => !currentPageKeys.includes(r[(this.rowKey ?? 'id')])));
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'])));
417
496
  }
418
497
  this.selected = Array.from(this.innerSelected);
419
498
  this.sdSelectChange.emit(Array.from(this.innerSelected));
@@ -424,7 +503,7 @@ const SdTable = class {
424
503
  }
425
504
  getIsAllCheckedSync(rows) {
426
505
  const total = rows.length;
427
- const selectedCount = rows.filter(row => Array.from(this.innerSelected).some(selectedRow => selectedRow[(this.rowKey ?? 'id')] === row[(this.rowKey ?? 'id')])).length;
506
+ const selectedCount = rows.filter(row => Array.from(this.innerSelected).some(selectedRow => selectedRow[this.rowKey ?? 'id'] === row[this.rowKey ?? 'id'])).length;
428
507
  if (selectedCount === 0)
429
508
  return false;
430
509
  if (selectedCount === total)
@@ -447,7 +526,7 @@ const SdTable = class {
447
526
  this.queryAllTr().forEach(tr => tr?.updateVisibility?.());
448
527
  }
449
528
  changeRowsPerPage(perPage) {
450
- const changedRowsPerPage = perPage ? Number(perPage) : 0;
529
+ const changedRowsPerPage = perPage != null && perPage !== '' ? Number(perPage) : 0;
451
530
  if (!this.useInternalPagination) {
452
531
  this.sdRowsPerPageChange.emit(changedRowsPerPage);
453
532
  return;
@@ -474,7 +553,7 @@ const SdTable = class {
474
553
  const startWidth = this.columnWidths[index];
475
554
  const handleMouseMove = (moveEvent) => {
476
555
  const col = this.columns[index];
477
- if (!col)
556
+ if (col == null)
478
557
  return;
479
558
  const minWidth = col.minWidth || 50;
480
559
  const maxWidth = col.maxWidth || 9999;
@@ -509,13 +588,17 @@ const SdTable = class {
509
588
  this.columns.filter(c => c.visible !== false).length -
510
589
  (this.stickyColumn?.right || 0) && i > colIdx)
511
590
  .reduce((a, b) => a + b, 0);
512
- return {
591
+ const visibleCol = this.columns.filter(c => c.visible !== false)[colIdx];
592
+ const base = {
513
593
  '--sticky-left-offset': `${leftOffset}px`,
514
594
  '--sticky-right-offset': `${rightOffset}px`,
515
- 'width': `${this.columnWidths[colIdx]}px`,
516
- 'minWidth': `${this.columnWidths[colIdx]}px`,
517
- 'maxWidth': `${this.columnWidths[colIdx]}px`,
518
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;
519
602
  }
520
603
  async getStickyStyle(colIdx) {
521
604
  return this.getStickyStyleSync(colIdx);
@@ -544,7 +627,7 @@ const SdTable = class {
544
627
  });
545
628
  }
546
629
  registerSpanSync(rowKey, field, rowspan, colspan) {
547
- if (rowKey == null || !field)
630
+ if (rowKey == null || field === '')
548
631
  return;
549
632
  const safeRowspan = Math.max(1, Math.floor(rowspan || 1));
550
633
  const safeColspan = Math.max(1, Math.floor(colspan || 1));
@@ -563,7 +646,7 @@ const SdTable = class {
563
646
  this.requestAllTrUpdate();
564
647
  }
565
648
  unregisterSpanSync(rowKey, field) {
566
- if (rowKey == null || !field)
649
+ if (rowKey == null || field === '')
567
650
  return;
568
651
  const key = this.spanKey(rowKey, field);
569
652
  if (!this.spanRegistry.has(key))
@@ -578,18 +661,18 @@ const SdTable = class {
578
661
  // span과 달리 다른 셀에 영향이 없으므로 형제 sd-tr 전체를 재렌더하지 않고,
579
662
  // sd-td 쪽에서 자기 부모 tr만 bumpSpansVersion으로 새로 그린다.
580
663
  registerCellClassSync(rowKey, field, cls) {
581
- if (rowKey == null || !field)
664
+ if (rowKey == null || field === '')
582
665
  return;
583
666
  const key = this.spanKey(rowKey, field);
584
667
  const safe = (cls ?? '').trim();
585
- if (!safe) {
668
+ if (safe === '') {
586
669
  this.cellClassRegistry.delete(key);
587
670
  return;
588
671
  }
589
672
  this.cellClassRegistry.set(key, safe);
590
673
  }
591
674
  unregisterCellClassSync(rowKey, field) {
592
- if (rowKey == null || !field)
675
+ if (rowKey == null || field === '')
593
676
  return;
594
677
  this.cellClassRegistry.delete(this.spanKey(rowKey, field));
595
678
  }
@@ -612,7 +695,7 @@ const SdTable = class {
612
695
  // 1. 같은 행 왼쪽 스캔 — colspan으로 이 위치를 덮는 셀이 있는가
613
696
  for (let i = 0; i < colIdx; i++) {
614
697
  const c = visibleCols[i];
615
- if (!c)
698
+ if (c == null)
616
699
  continue;
617
700
  const field = typeof c.field === 'string' ? c.field : c.name;
618
701
  const span = this.spanRegistry.get(this.spanKey(rowKey, field));
@@ -650,23 +733,50 @@ const SdTable = class {
650
733
  }
651
734
  return false;
652
735
  }
653
- // 셀이 시각적으로 마지막 행(또는 페이지 마지막 )에 닿는지 판정.
654
- // 마지막 행에 border-bottom: none을 적용하기 위함
655
- isVisualLastRowSync(rowKey, field) {
656
- if (this.rowCount <= 0)
657
- return false;
736
+ // rowspan을 반영한 셀의 시각적 하단인덱스를 반환한다.
737
+ // isVisualLastRowSync·isVisualLastRowBeforeSeparatorSync 공통 헬퍼.
738
+ resolveVisualBottom(rowKey, field) {
658
739
  const myRowIdx = this.resolveRowIndex(rowKey);
659
740
  if (myRowIdx == null)
660
- return false;
741
+ return null;
661
742
  const span = this.spanRegistry.get(this.spanKey(rowKey, field));
662
743
  const rs = Math.max(1, span?.rowspan ?? 1);
663
- const visualBottom = myRowIdx + rs - 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;
664
754
  const pageInfo = this.getPaginationInfoSync();
665
755
  const lastVisibleIdx = pageInfo
666
756
  ? Math.min(pageInfo.endIndex - 1, this.rowCount - 1)
667
757
  : this.rowCount - 1;
668
758
  return visualBottom === lastVisibleIdx;
669
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
+ }
670
780
  setRowCountSync(count) {
671
781
  const safeCount = Math.max(0, Math.floor(this.toFiniteNumber(count, 0)));
672
782
  if (safeCount !== this.rowCount) {
@@ -681,7 +791,7 @@ const SdTable = class {
681
791
  this.setRowCountSync(count);
682
792
  }
683
793
  calculateVisibleRange(scrollTop, containerHeight) {
684
- const safeRowHeight = Math.max(1, this.toFiniteNumber(this.rowHeight, 40));
794
+ const safeRowHeight = Math.max(1, this.toFiniteNumber(this.effectiveRowHeight, 40));
685
795
  const safeBuffer = Math.max(0, Math.floor(this.toFiniteNumber(this.virtualBuffer, 5)));
686
796
  const safeScrollTop = Math.max(0, this.toFiniteNumber(scrollTop, 0));
687
797
  const safeContainerHeight = Math.max(0, this.toFiniteNumber(containerHeight, 0));
@@ -747,6 +857,12 @@ const SdTable = class {
747
857
  }
748
858
  render() {
749
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%';
750
866
  const hostStyle = {
751
867
  '--table-radius': `${TABLE_RADIUS}px`,
752
868
  '--table-border-color': TABLE_BORDER.color,
@@ -757,21 +873,25 @@ const SdTable = class {
757
873
  '--table-body-line-height': `${TABLE_BODY_TYPOGRAPHY.lineHeight}px`,
758
874
  '--table-body-text-decoration': TABLE_BODY_TYPOGRAPHY.textDecoration,
759
875
  };
760
- return (h(Host, { key: 'd868318e2aeb7b3062a702a743f90bb55dbb00b8', style: hostStyle }, h("div", { key: '5b2113ecd1fa52a6170ffcfac5f906fae7ef7548', class: "sd-table__container", style: {
876
+ return (h(Host, { key: 'f7d92943fcb354f69d99c1e4fd37749cc06185c7', style: hostStyle }, h("div", { key: '53d6ac0eedc2c2a56c05bf5a751be43bc18f9fe7', class: "sd-table__container", style: {
761
877
  '--table-width': this.width,
762
- '--table-height': this.height,
763
- '--table-container-height': `calc(${this.height || '100%'} - ${this.pagination && this.rowCount > 0 && !this.useVirtualScroll ? 48 : 0}px)`,
764
- } }, h("div", { key: '389d7f3508727fb76d9d9f98a73963c5556ff993', class: {
878
+ '--table-height': effectiveTableHeight,
879
+ '--table-container-height': `calc(${effectiveTableHeight} - ${paginationHeight}px)`,
880
+ } }, h("div", { key: 'b85980b8307b2a50ee1554262d025b58bad42e87', class: {
765
881
  'sd-table__wrapper': true,
766
882
  'sd-table__wrapper--radius-use-top': this.radius === 'useTop',
767
- } }, h("div", { key: 'e9cdeecb5f318cb1af4e0d2e938e0098e1cc44d0', class: {
883
+ } }, h("div", { key: 'acf9816ceaaea06b807056606d684befebe9dcd0', class: {
768
884
  'sd-table__scroll-container': true,
769
885
  'sd-table__scroll-container--loading': this.isLoading,
770
- 'sd-table__scroll-container--no-data': this.rowCount === 0 && !this.isLoading,
771
- } }, this.isLoading && (h("div", { key: '40caec779763f90e1f48818e3f56e8daabc105a6', class: "sd-table__loading", style: { top: `${this.loadingScrollTop}px` } }, h("sd-circle-progress", { key: 'bf7a3cabb0023f0a1663dd0337f3399ace0e75e7', indeterminate: true }))), this.rowCount === 0 && !this.isLoading && (h("div", { key: 'aac583c7876171a276645146e00afbc43d405607', class: "sd-table__no-data" }, h("slot", { key: '31e18789beeed03bcfd7013c9386eefd6f51b2cd', name: "no-data" }, h("span", { key: '07da091864e588f2ee60e8ea5ffd5ae34c968f68' }, this.resolvedNoDataLabel)))), h("table", { key: '69284f7f819477072450d1b6acbfe081abe4f1ef', 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 &&
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 &&
772
892
  this.pagination.rowsPerPage > 0 &&
773
893
  this.rowCount > 0 &&
774
- !this.useVirtualScroll && (h("div", { key: 'ff30e864526aa8c3fac2cc37499cea7aa6be1420', class: "sd-table__pagination" }, h("sd-pagination", { key: 'ad5badf1d5f518b0bf281e973c46b1381e82ae3c', 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: 'd249e79cfda4c80cb4df9c353dc4f678a5ccb861', 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
775
895
  ? this.innerRowsPerPage
776
896
  : this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", emitValue: true, onSdUpdate: e => {
777
897
  if (!this.isRowsPerPageValue(e.detail))
@@ -813,6 +933,9 @@ const SdTable = class {
813
933
  "stickyHeader": [{
814
934
  "handleConfigChange": 0
815
935
  }],
936
+ "dense": [{
937
+ "handleConfigChange": 0
938
+ }],
816
939
  "selected": [{
817
940
  "handleSelectedChange": 0
818
941
  }],