@sellmate/design-system 1.3.0 → 1.5.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 (262) hide show
  1. package/dist/cjs/{component.table-CMqGfEui.js → component.table-qOFez3z3.js} +3 -0
  2. package/dist/cjs/design-system.cjs.js +1 -1
  3. package/dist/cjs/index.cjs.js +2 -2
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/sanitize-inline-html-BZCCwH_U.js +65 -0
  6. package/dist/cjs/sd-calendar_2.cjs.entry.js +9 -7
  7. package/dist/cjs/sd-callout.cjs.entry.js +152 -0
  8. package/dist/cjs/sd-card.cjs.entry.js +1 -1
  9. package/dist/cjs/sd-checkbox.cjs.entry.js +9 -4
  10. package/dist/cjs/sd-chip.cjs.entry.js +1 -1
  11. package/dist/cjs/sd-circle-progress.cjs.entry.js +2 -2
  12. package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +4 -3
  13. package/dist/cjs/sd-date-picker_7.cjs.entry.js +9 -9
  14. package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +1 -1
  15. package/dist/cjs/sd-dropdown-button.cjs.entry.js +6 -5
  16. package/dist/cjs/sd-field_3.cjs.entry.js +7 -7
  17. package/dist/cjs/sd-guide.cjs.entry.js +5 -4
  18. package/dist/cjs/sd-key-value-table.cjs.entry.js +2 -2
  19. package/dist/cjs/sd-linear-progress.cjs.entry.js +2 -2
  20. package/dist/cjs/sd-loading-container.cjs.entry.js +2 -2
  21. package/dist/cjs/sd-pagination_4.cjs.entry.js +28 -37
  22. package/dist/cjs/sd-popup.cjs.entry.js +6 -5
  23. package/dist/cjs/sd-portal.cjs.entry.js +1 -1
  24. package/dist/cjs/sd-select-list-item_2.cjs.entry.js +6 -6
  25. package/dist/cjs/sd-select_3.cjs.entry.js +8 -8
  26. package/dist/cjs/sd-switch.cjs.entry.js +1 -1
  27. package/dist/cjs/sd-table.cjs.entry.js +37 -36
  28. package/dist/cjs/{sd-table.config-BIpldZtw.js → sd-table.config-DqgNOdXO.js} +5 -3
  29. package/dist/cjs/sd-tabs.cjs.entry.js +1 -1
  30. package/dist/cjs/sd-tag.cjs.entry.js +4 -2
  31. package/dist/cjs/sd-td.cjs.entry.js +18 -9
  32. package/dist/cjs/sd-toast-container.cjs.entry.js +1 -1
  33. package/dist/cjs/sd-toast.cjs.entry.js +2 -2
  34. package/dist/cjs/sd-toggle.cjs.entry.js +1 -1
  35. package/dist/cjs/{system-VmZRYp6V.js → system-wrt-tcOq.js} +12 -1
  36. package/dist/collection/collection-manifest.json +2 -1
  37. package/dist/collection/components/sd-calendar/sd-calendar.css +5 -1
  38. package/dist/collection/components/sd-calendar/sd-calendar.js +26 -4
  39. package/dist/collection/components/sd-callout/sd-callout.config.js +45 -0
  40. package/dist/collection/components/sd-callout/sd-callout.css +87 -0
  41. package/dist/collection/components/sd-callout/sd-callout.js +114 -0
  42. package/dist/collection/components/sd-card/sd-card.js +1 -1
  43. package/dist/collection/components/sd-checkbox/sd-checkbox.js +9 -4
  44. package/dist/collection/components/sd-chip/sd-chip.js +1 -1
  45. package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +1 -1
  46. package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +3 -2
  47. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +2 -2
  48. package/dist/collection/components/sd-date-picker/sd-date-picker.js +2 -2
  49. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +1 -1
  50. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +5 -4
  51. package/dist/collection/components/sd-field/sd-field.js +4 -4
  52. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +1 -1
  53. package/dist/collection/components/sd-guide/sd-guide.js +4 -3
  54. package/dist/collection/components/sd-input/sd-input.js +2 -2
  55. package/dist/collection/components/sd-linear-progress/sd-linear-progress.js +1 -1
  56. package/dist/collection/components/sd-loading-container/sd-loading-container.js +2 -2
  57. package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +1 -1
  58. package/dist/collection/components/sd-modal-container/sd-modal-container.js +8 -0
  59. package/dist/collection/components/sd-number-input/sd-number-input.js +4 -4
  60. package/dist/collection/components/sd-pagination/sd-pagination.js +3 -3
  61. package/dist/collection/components/sd-popup/sd-popup.config.js +3 -4
  62. package/dist/collection/components/sd-popup/sd-popup.js +4 -2
  63. package/dist/collection/components/sd-portal/sd-portal.js +1 -1
  64. package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +2 -2
  65. package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +4 -4
  66. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +2 -2
  67. package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +2 -2
  68. package/dist/collection/components/sd-select/sd-select.js +4 -4
  69. package/dist/collection/components/sd-switch/sd-switch.js +1 -1
  70. package/dist/collection/components/sd-table/sd-table.js +35 -34
  71. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +2 -2
  72. package/dist/collection/components/sd-table/sd-td/sd-td.js +18 -9
  73. package/dist/collection/components/sd-table/sd-thead/sd-thead.js +3 -3
  74. package/dist/collection/components/sd-table/sd-tr/sd-tr.css +6 -2
  75. package/dist/collection/components/sd-table/sd-tr/sd-tr.js +16 -25
  76. package/dist/collection/components/sd-tabs/sd-tabs.js +1 -1
  77. package/dist/collection/components/sd-tag/sd-tag.js +4 -2
  78. package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
  79. package/dist/collection/components/sd-toast/sd-toast.js +2 -2
  80. package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
  81. package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
  82. package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
  83. package/dist/collection/utils/html/sanitize-inline-html.js +61 -0
  84. package/dist/collection/utils/modal.js +2 -2
  85. package/dist/components/index.js +1 -1
  86. package/dist/components/{p-Da5i_Sa6.js → p-AO2RGdjH.js} +1 -1
  87. package/dist/components/{p-X-8I-A3g.js → p-B3sb3aIX.js} +1 -1
  88. package/dist/components/{p-CIUE4qr7.js → p-BGb86o0p.js} +1 -1
  89. package/dist/components/{p-C3fqSH7A.js → p-BLhu2So8.js} +1 -1
  90. package/dist/components/{p-INdVvadB.js → p-BSQsJHnV.js} +1 -1
  91. package/dist/components/{p-xX3QT-8K.js → p-BZCvsLRf.js} +1 -1
  92. package/dist/components/{p-BFC3Etk2.js → p-BqrZA_Nl.js} +1 -1
  93. package/dist/components/{p-DS7Ypvt5.js → p-C54v30vB.js} +1 -1
  94. package/dist/components/{p-DlREBZ-C.js → p-CJ-QHG0F.js} +1 -1
  95. package/dist/components/{p-kSfaCwf1.js → p-CbXb6ylI.js} +1 -1
  96. package/dist/components/{p-BRxXhFqt.js → p-CgYjGJEh.js} +1 -1
  97. package/dist/components/{p-CLxVZFEG.js → p-Co3H5873.js} +1 -1
  98. package/dist/components/{p-BRk9YZBe.js → p-Cvk-Luhs.js} +1 -1
  99. package/dist/components/{p-BeBiPTbd.js → p-D5inekTL.js} +1 -1
  100. package/dist/components/{p-Bs1Z5QtN.js → p-DChOBMCc.js} +1 -1
  101. package/dist/components/p-DGlmvjGc.js +1 -0
  102. package/dist/components/p-DQFHAKL_.js +1 -0
  103. package/dist/components/{p-CPuyhF6g.js → p-DUcbofDO.js} +1 -1
  104. package/dist/components/p-DZbc1mgp.js +1 -0
  105. package/dist/components/{p-t161LJqb.js → p-DeK3og10.js} +1 -1
  106. package/dist/components/{p-BjpbUGud.js → p-DmaopssQ.js} +1 -1
  107. package/dist/components/p-DopVneZA.js +1 -0
  108. package/dist/components/p-DrrsZftV.js +1 -0
  109. package/dist/components/{p-CpgTSxf0.js → p-DyZNk1VT.js} +1 -1
  110. package/dist/components/{p-oyZgWRnC.js → p-HK6Bwtz8.js} +1 -1
  111. package/dist/components/{p-Z5Vk33zf.js → p-IThoLpLs.js} +1 -1
  112. package/dist/components/{p-JlZdKw4C.js → p-J3eT660D.js} +1 -1
  113. package/dist/components/p-fpzgqVv1.js +1 -0
  114. package/dist/components/p-iCuIUhaK.js +1 -0
  115. package/dist/components/p-m_OtjUs1.js +1 -0
  116. package/dist/components/{p-BwPmM1Pm.js → p-uHITnW_J.js} +1 -1
  117. package/dist/components/{p-Cx_d5vsS.js → p-yH47DvUh.js} +1 -1
  118. package/dist/components/sd-barcode-input.js +1 -1
  119. package/dist/components/sd-calendar.js +1 -1
  120. package/dist/components/sd-callout.d.ts +11 -0
  121. package/dist/components/sd-callout.js +1 -0
  122. package/dist/components/sd-card.js +1 -1
  123. package/dist/components/sd-checkbox.js +1 -1
  124. package/dist/components/sd-chip.js +1 -1
  125. package/dist/components/sd-circle-progress.js +1 -1
  126. package/dist/components/sd-confirm-modal.js +1 -1
  127. package/dist/components/sd-date-picker-trigger.js +1 -1
  128. package/dist/components/sd-date-picker.js +1 -1
  129. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  130. package/dist/components/sd-date-range-picker.js +1 -1
  131. package/dist/components/sd-dropdown-button.js +1 -1
  132. package/dist/components/sd-field.js +1 -1
  133. package/dist/components/sd-file-picker.js +1 -1
  134. package/dist/components/sd-floating-portal.js +1 -1
  135. package/dist/components/sd-guide.js +1 -1
  136. package/dist/components/sd-input.js +1 -1
  137. package/dist/components/sd-key-value-table.js +1 -1
  138. package/dist/components/sd-linear-progress.js +1 -1
  139. package/dist/components/sd-loading-container.js +1 -1
  140. package/dist/components/sd-loading-modal.js +1 -1
  141. package/dist/components/sd-modal-container.js +1 -1
  142. package/dist/components/sd-number-input.js +1 -1
  143. package/dist/components/sd-pagination.js +1 -1
  144. package/dist/components/sd-popover.js +1 -1
  145. package/dist/components/sd-popup.js +1 -1
  146. package/dist/components/sd-portal.js +1 -1
  147. package/dist/components/sd-select-list-item-search.js +1 -1
  148. package/dist/components/sd-select-list-item.js +1 -1
  149. package/dist/components/sd-select-listbox.js +1 -1
  150. package/dist/components/sd-select-trigger.js +1 -1
  151. package/dist/components/sd-select.js +1 -1
  152. package/dist/components/sd-switch.js +1 -1
  153. package/dist/components/sd-table.js +1 -1
  154. package/dist/components/sd-tabs.js +1 -1
  155. package/dist/components/sd-tag.js +1 -1
  156. package/dist/components/sd-tbody.js +1 -1
  157. package/dist/components/sd-td.js +1 -1
  158. package/dist/components/sd-textarea.js +1 -1
  159. package/dist/components/sd-thead.js +1 -1
  160. package/dist/components/sd-toast-container.js +1 -1
  161. package/dist/components/sd-toast.js +1 -1
  162. package/dist/components/sd-toggle.js +1 -1
  163. package/dist/components/sd-tooltip.js +1 -1
  164. package/dist/components/sd-tr.js +1 -1
  165. package/dist/design-system/design-system.esm.js +1 -1
  166. package/dist/design-system/index.esm.js +1 -1
  167. package/dist/design-system/{p-74bf0ed9.entry.js → p-06a6798d.entry.js} +1 -1
  168. package/dist/design-system/{p-e611dcd4.entry.js → p-0894c492.entry.js} +1 -1
  169. package/dist/design-system/p-14e30f67.entry.js +1 -0
  170. package/dist/design-system/{p-9b9bf9db.entry.js → p-1e530c87.entry.js} +1 -1
  171. package/dist/design-system/{p-84a94775.entry.js → p-2bdceecb.entry.js} +1 -1
  172. package/dist/design-system/{p-a98f9a29.entry.js → p-339cb954.entry.js} +1 -1
  173. package/dist/design-system/{p-a7ea1cf0.entry.js → p-352c68ae.entry.js} +1 -1
  174. package/dist/design-system/p-3d61e68f.entry.js +1 -0
  175. package/dist/design-system/{p-fe3ae346.entry.js → p-3f4a281f.entry.js} +1 -1
  176. package/dist/design-system/p-40bdbe5a.entry.js +1 -0
  177. package/dist/design-system/{p-481e6934.entry.js → p-435ae69e.entry.js} +1 -1
  178. package/dist/design-system/p-4473c051.entry.js +1 -0
  179. package/dist/design-system/p-61f4238b.entry.js +1 -0
  180. package/dist/design-system/p-786c72e9.entry.js +1 -0
  181. package/dist/design-system/{p-00854a0a.entry.js → p-78de36f2.entry.js} +1 -1
  182. package/dist/design-system/p-795bae4c.entry.js +1 -0
  183. package/dist/design-system/p-819e28fe.entry.js +1 -0
  184. package/dist/design-system/{p-32e2d71e.entry.js → p-843d4b16.entry.js} +1 -1
  185. package/dist/design-system/{p-cc97f4b4.entry.js → p-8ee990bd.entry.js} +1 -1
  186. package/dist/design-system/{p-fe0a5368.entry.js → p-9404ab06.entry.js} +1 -1
  187. package/dist/design-system/p-DGlmvjGc.js +1 -0
  188. package/dist/design-system/p-DQFHAKL_.js +1 -0
  189. package/dist/design-system/p-DZbc1mgp.js +1 -0
  190. package/dist/design-system/p-DopVneZA.js +1 -0
  191. package/dist/design-system/{p-e8e64511.entry.js → p-aac84d22.entry.js} +1 -1
  192. package/dist/design-system/{p-f7074386.entry.js → p-b868d747.entry.js} +1 -1
  193. package/dist/design-system/{p-3b8954d9.entry.js → p-b8e34533.entry.js} +1 -1
  194. package/dist/design-system/p-c3e4853c.entry.js +1 -0
  195. package/dist/design-system/{p-11b904a3.entry.js → p-d226bd61.entry.js} +1 -1
  196. package/dist/design-system/{p-dbeaeb31.entry.js → p-d3cc8538.entry.js} +1 -1
  197. package/dist/design-system/{p-ae117afa.entry.js → p-eae21a79.entry.js} +1 -1
  198. package/dist/design-system/{p-e23dac79.entry.js → p-fa670cc4.entry.js} +1 -1
  199. package/dist/esm/{component.table-BnfUIhUj.js → component.table-DQFHAKL_.js} +3 -0
  200. package/dist/esm/design-system.js +1 -1
  201. package/dist/esm/index.js +2 -2
  202. package/dist/esm/loader.js +1 -1
  203. package/dist/esm/sanitize-inline-html-DopVneZA.js +63 -0
  204. package/dist/esm/sd-calendar_2.entry.js +9 -7
  205. package/dist/esm/sd-callout.entry.js +150 -0
  206. package/dist/esm/sd-card.entry.js +1 -1
  207. package/dist/esm/sd-checkbox.entry.js +9 -4
  208. package/dist/esm/sd-chip.entry.js +1 -1
  209. package/dist/esm/sd-circle-progress.entry.js +2 -2
  210. package/dist/esm/sd-confirm-modal_2.entry.js +4 -3
  211. package/dist/esm/sd-date-picker_7.entry.js +9 -9
  212. package/dist/esm/sd-date-range-picker-calendar.entry.js +1 -1
  213. package/dist/esm/sd-dropdown-button.entry.js +6 -5
  214. package/dist/esm/sd-field_3.entry.js +7 -7
  215. package/dist/esm/sd-guide.entry.js +5 -4
  216. package/dist/esm/sd-key-value-table.entry.js +2 -2
  217. package/dist/esm/sd-linear-progress.entry.js +2 -2
  218. package/dist/esm/sd-loading-container.entry.js +2 -2
  219. package/dist/esm/sd-pagination_4.entry.js +28 -37
  220. package/dist/esm/sd-popup.entry.js +6 -5
  221. package/dist/esm/sd-portal.entry.js +1 -1
  222. package/dist/esm/sd-select-list-item_2.entry.js +6 -6
  223. package/dist/esm/sd-select_3.entry.js +8 -8
  224. package/dist/esm/sd-switch.entry.js +1 -1
  225. package/dist/esm/{sd-table.config-B-VgXXT7.js → sd-table.config-CFHtQ8LX.js} +5 -3
  226. package/dist/esm/sd-table.entry.js +37 -36
  227. package/dist/esm/sd-tabs.entry.js +1 -1
  228. package/dist/esm/sd-tag.entry.js +4 -2
  229. package/dist/esm/sd-td.entry.js +18 -9
  230. package/dist/esm/sd-toast-container.entry.js +1 -1
  231. package/dist/esm/sd-toast.entry.js +2 -2
  232. package/dist/esm/sd-toggle.entry.js +1 -1
  233. package/dist/esm/{system-GBlVDmy4.js → system-DGlmvjGc.js} +12 -1
  234. package/dist/types/components/sd-calendar/sd-calendar.d.ts +1 -0
  235. package/dist/types/components/sd-callout/sd-callout.config.d.ts +34 -0
  236. package/dist/types/components/sd-callout/sd-callout.d.ts +11 -0
  237. package/dist/types/components/sd-table/sd-table.d.ts +1 -1
  238. package/dist/types/components/sd-table/sd-td/sd-td.d.ts +2 -2
  239. package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +1 -2
  240. package/dist/types/components.d.ts +43 -0
  241. package/dist/types/utils/html/sanitize-inline-html.d.ts +1 -0
  242. package/hydrate/index.js +397 -150
  243. package/hydrate/index.mjs +397 -150
  244. package/package.json +1 -1
  245. package/dist/components/p-B8o25hOw.js +0 -1
  246. package/dist/components/p-BkWaPXXj.js +0 -1
  247. package/dist/components/p-BnfUIhUj.js +0 -1
  248. package/dist/components/p-CyObYB-g.js +0 -1
  249. package/dist/components/p-GBlVDmy4.js +0 -1
  250. package/dist/components/p-WAsath62.js +0 -1
  251. package/dist/components/p-mmdt-WnS.js +0 -1
  252. package/dist/design-system/p-563b6fc2.entry.js +0 -1
  253. package/dist/design-system/p-8f4ccae4.entry.js +0 -1
  254. package/dist/design-system/p-9f7f1b8b.entry.js +0 -1
  255. package/dist/design-system/p-BnfUIhUj.js +0 -1
  256. package/dist/design-system/p-GBlVDmy4.js +0 -1
  257. package/dist/design-system/p-a640e509.entry.js +0 -1
  258. package/dist/design-system/p-a97033a2.entry.js +0 -1
  259. package/dist/design-system/p-f721a6c6.entry.js +0 -1
  260. package/dist/design-system/p-fc5c4f85.entry.js +0 -1
  261. package/dist/design-system/p-ffaa4b5d.entry.js +0 -1
  262. package/dist/design-system/p-mmdt-WnS.js +0 -1
@@ -2,9 +2,9 @@
2
2
 
3
3
  var index = require('./index-Cw-78mnC.js');
4
4
  var constants = require('./constants-DJRV1upE.js');
5
- var sdTable_config = require('./sd-table.config-BIpldZtw.js');
6
- require('./component.table-CMqGfEui.js');
7
- require('./system-VmZRYp6V.js');
5
+ var sdTable_config = require('./sd-table.config-DqgNOdXO.js');
6
+ require('./component.table-qOFez3z3.js');
7
+ require('./system-wrt-tcOq.js');
8
8
 
9
9
  const pagination = {
10
10
  height: "24",
@@ -154,13 +154,13 @@ const SdPagination = class {
154
154
  '--sd-pagination-bg-selected': PAGINATION_COLORS.bgSelected,
155
155
  '--sd-pagination-item-width': `${this.buttonWidth}px`,
156
156
  };
157
- return (index.h("div", { key: '251d9b3bcff3cf985d62b1a8717f622d209b3fa1', class: {
157
+ return (index.h("div", { key: 'b16a4c0ff75913e80fdb9a539d8afb714931a531', class: {
158
158
  'sd-pagination': true,
159
159
  'sd-pagination--simple': this.simple,
160
- }, style: cssVars }, index.h("div", { key: 'd143917676ccd97c1f4fc8e7220857d543efa5fd', class: "sd-pagination__group sd-pagination__group--prev" }, this.renderPrevButtons()), this.simple ? (index.h("div", { class: "sd-pagination__info" }, index.h("span", { class: "sd-pagination__current" }, this.currentPage), index.h("span", { class: "sd-pagination__divider" }, "/"), index.h("span", { class: "sd-pagination__last" }, this.lastPage))) : (index.h("div", { class: "sd-pagination__numbers" }, this.pageNumbers.map(n => (index.h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
160
+ }, style: cssVars }, index.h("div", { key: '42d019164c409d09d13b94845c9ee99ece41a8f3', class: "sd-pagination__group sd-pagination__group--prev" }, this.renderPrevButtons()), this.simple ? (index.h("div", { class: "sd-pagination__info" }, index.h("span", { class: "sd-pagination__current" }, this.currentPage), index.h("span", { class: "sd-pagination__divider" }, "/"), index.h("span", { class: "sd-pagination__last" }, this.lastPage))) : (index.h("div", { class: "sd-pagination__numbers" }, this.pageNumbers.map(n => (index.h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
161
161
  'sd-pagination__item': true,
162
162
  'sd-pagination__item--selected': this.currentPage === n,
163
- }, onClick: () => this.handlePageChange(n) }, n))))), index.h("div", { key: 'e58053cef21c57d88f5b1357101507418b2db002', class: "sd-pagination__group sd-pagination__group--next" }, this.renderNextButtons())));
163
+ }, onClick: () => this.handlePageChange(n) }, n))))), index.h("div", { key: '9695ce3aaede66529547151800fede0f5413e7d8', class: "sd-pagination__group sd-pagination__group--next" }, this.renderNextButtons())));
164
164
  }
165
165
  };
166
166
  SdPagination.style = sdPaginationCss();
@@ -215,9 +215,9 @@ const SdTbody = class {
215
215
  }
216
216
  }
217
217
  render() {
218
- return (index.h(index.Host, { key: 'bdb686445ce324c6254891a385d6175c8cac06df', slot: `${this.tableId}-body` }, index.h("tbody", { key: '21a7772f0d43a358d9ae17459f0ff296324bfd82', class: { tbody: true } }, [
218
+ return (index.h(index.Host, { key: 'a3d0ee1c1820474e97e430ba91f48e12ee0e252d', slot: `${this.tableId}-body` }, index.h("tbody", { key: 'bbd5b9acf02150b146c9b25d07f2e7a9dd347921', class: { tbody: true } }, [
219
219
  this.topSpacerHeight > 0 && (index.h("tr", { key: "spacer-top", class: "tbody__spacer", style: { height: `${this.topSpacerHeight}px`, display: 'block' } })),
220
- index.h("slot", { key: 'e38d8fe5d67a91d3fa5a25be98195da104660005' }),
220
+ index.h("slot", { key: 'f0ec0aa4d7e7190fc93d96afe5591004174fff63' }),
221
221
  this.bottomSpacerHeight > 0 && (index.h("tr", { key: "spacer-bottom", class: "tbody__spacer", style: { height: `${this.bottomSpacerHeight}px`, display: 'block' } })),
222
222
  ])));
223
223
  }
@@ -391,16 +391,16 @@ const SdThead = class {
391
391
  '--table-border-color': sdTable_config.TABLE_BORDER.color,
392
392
  '--table-border-width': `${sdTable_config.TABLE_BORDER.width}px`,
393
393
  };
394
- return (index.h(index.Host, { key: 'c2852fc7d6fe9e8116fabbbcc140f4db8319bfdc', slot: `${this.tableId}-head`, style: headStyle }, index.h("thead", { key: '970cb1c96145326f38b79636a72982b0e9c81fa0', class: {
394
+ return (index.h(index.Host, { key: '234ca55bb2507aef21df976066e5ce377c2e9e89', slot: `${this.tableId}-head`, style: headStyle }, index.h("thead", { key: 'fecd6b54f72a8643b663c3af1988eed60300d08d', class: {
395
395
  'thead': true,
396
396
  'thead--sticky': this._stickyHeader,
397
- } }, index.h("tr", { key: '839fb6e9fd68ef10dea1f1d470a6b3e707475a8d', class: "tr" }, this._selectable && (index.h("th", { key: 'd669372261627013bc1b39157139d180b3d1a6c1', class: {
397
+ } }, index.h("tr", { key: '21d56c50076d3340733b7fa0a8e569fec005e415', class: "tr" }, this._selectable && (index.h("th", { key: 'ace570ae2157ae63a21ec6ba60d8b8898dd0c33c', class: {
398
398
  'th': true,
399
399
  'th--selected': true,
400
400
  'sticky-left': true,
401
401
  'sticky-left-edge': stickyLeftCount === 0,
402
402
  'is-scrolled-left': stickyLeftCount === 0 && this._scrolledLeft,
403
- }, style: { '--sticky-left-offset': '0px' } }, index.h("sd-checkbox", { key: '6263984430b4aa53e6ac24fb0f6a6c05838a71d5', value: this.getIsAllChecked(), disabled: safeRows.length === 0, onSdUpdate: (e) => this.handleSelectAll(e.detail) }))), stickyLeftCols.map((col, idx) => (index.h("th", { key: col.name, class: {
403
+ }, style: { '--sticky-left-offset': '0px' } }, index.h("sd-checkbox", { key: '4b30536f427b9985355c4e22b6b532a3033306c0', value: this.getIsAllChecked(), disabled: safeRows.length === 0, onSdUpdate: (e) => this.handleSelectAll(e.detail) }))), stickyLeftCols.map((col, idx) => (index.h("th", { key: col.name, class: {
404
404
  'th': true,
405
405
  [`${col.thClass}`]: Boolean(col.thClass),
406
406
  'sticky-left': true,
@@ -440,7 +440,7 @@ const SdThead = class {
440
440
  };
441
441
  SdThead.style = sdTheadCss();
442
442
 
443
- const sdTrCss = () => `sd-tr{display:contents}sd-tr *{box-sizing:border-box}.tr{display:table-row}.tr:hover .td{background-color:#F9F9F9}.tr--no-hover:hover .td{background-color:white}.td{display:table-cell;height:var(--table-body-height, 44px);padding:var(--table-body-padding-y, 0) var(--table-body-padding-x, 16px);border-bottom:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);background:white;vertical-align:middle;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.td--left{text-align:left}.td--center{text-align:center}.td--right{text-align:right}.td--selected{position:relative;width:52px !important;max-width:52px !important;min-width:52px !important;padding:0 10px 0 24px;text-align:left}.td--selected sd-checkbox label{position:relative}.td--selected sd-checkbox label:before{content:"";position:absolute;inset:-6px}.td.sticky-left{position:sticky;background-color:white;z-index:100 !important;left:var(--sticky-left-offset, 0)}.td.sticky-right{position:sticky;background-color:white;z-index:100 !important;right:var(--sticky-right-offset, 0)}.td.sticky-left-edge:after{content:"";position:absolute;top:0;left:100%;right:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset 12px 0 20px -25px;opacity:0;pointer-events:none;transition:opacity 0.2s}.td.sticky-right-edge:after{content:"";position:absolute;top:0;left:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset -12px 0 20px -25px;opacity:0;pointer-events:none;transition:opacity 0.2s}.td.sticky-left-edge.is-scrolled-left{overflow:visible}.td.sticky-left-edge.is-scrolled-left:after{opacity:1}.td.sticky-right-edge.is-scrolled-right{overflow:visible}.td.sticky-right-edge.is-scrolled-right:after{opacity:1}.tr:hover .td.sticky-left,.tr:hover .td.sticky-right{background-color:#F9F9F9}.tr--no-hover:hover .td.sticky-left,.tr--no-hover:hover .td.sticky-right{background-color:white}.td.td--last-row{border-bottom:none}.tr--separator .td--separator{height:var(--table-separator-width, 6px);padding:0;background-color:var(--table-separator-color, #eeeeee);border-bottom:none}.td.td--before-separator{border-bottom:none}.td--divider-left{border-left:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1)}.td--divider-right{border-right:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1)}`;
443
+ const sdTrCss = () => `sd-tr{display:contents}sd-tr *{box-sizing:border-box}.tr{display:table-row}.tr:hover .td{background-color:#F9F9F9}.tr--no-hover:hover .td{background-color:white}.tr--separator:hover .td{background-color:var(--table-separator-color, #eeeeee)}.td{display:table-cell;height:var(--table-body-height, 44px);padding:var(--table-body-padding-y, 0) var(--table-body-padding-x, 16px);border-bottom:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);background:white;vertical-align:middle;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.td--left{text-align:left}.td--center{text-align:center}.td--right{text-align:right}.td--selected{position:relative;width:52px !important;max-width:52px !important;min-width:52px !important;padding:0 10px 0 24px;text-align:left}.td--selected sd-checkbox label{position:relative}.td--selected sd-checkbox label:before{content:"";position:absolute;inset:-6px}.td.sticky-left{position:sticky;background-color:white;z-index:100 !important;left:var(--sticky-left-offset, 0)}.td.sticky-right{position:sticky;background-color:white;z-index:100 !important;right:var(--sticky-right-offset, 0)}.td.sticky-left-edge:after{content:"";position:absolute;top:0;left:100%;right:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset 12px 0 20px -25px;opacity:0;pointer-events:none;transition:opacity 0.2s}.td.sticky-right-edge:after{content:"";position:absolute;top:0;left:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset -12px 0 20px -25px;opacity:0;pointer-events:none;transition:opacity 0.2s}.td.sticky-left-edge.is-scrolled-left{overflow:visible}.td.sticky-left-edge.is-scrolled-left:after{opacity:1}.td.sticky-right-edge.is-scrolled-right{overflow:visible}.td.sticky-right-edge.is-scrolled-right:after{opacity:1}.tr:hover .td.sticky-left,.tr:hover .td.sticky-right{background-color:#F9F9F9}.tr--no-hover:hover .td.sticky-left,.tr--no-hover:hover .td.sticky-right{background-color:white}.tr--separator:hover .td.sticky-left,.tr--separator:hover .td.sticky-right{background-color:var(--table-separator-color, #eeeeee)}.tr--separator .td--separator{height:var(--table-separator-width, 6px);padding:0;background-color:var(--table-separator-color, #eeeeee);border-bottom:none}.td.td--before-separator{border-bottom:none}.td--divider-left{border-left:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1)}.td--divider-right{border-right:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1)}`;
444
444
 
445
445
  const SdTr = class {
446
446
  constructor(hostRef) {
@@ -614,6 +614,13 @@ const SdTr = class {
614
614
  const fieldName = typeof col.field === 'string' ? col.field : col.name;
615
615
  return this.tableEl.getCellClassSync(this.rowKey, fieldName);
616
616
  }
617
+ getFramePaddingStyle(field) {
618
+ if (!this._dense)
619
+ return undefined;
620
+ if (!(this.tableEl?.isCellUseFrameSync?.(this.rowKey, field) ?? false))
621
+ return undefined;
622
+ return { padding: `${sdTable_config.TABLE_BODY_LAYOUT.framePadding}px` };
623
+ }
617
624
  expandCellClass(classStr) {
618
625
  if (classStr == null || classStr === '')
619
626
  return {};
@@ -622,20 +629,6 @@ const SdTr = class {
622
629
  .filter(Boolean)
623
630
  .map(c => [c, true]));
624
631
  }
625
- isVisualLastRow(col) {
626
- if (!this.tableEl?.isVisualLastRowSync)
627
- return false;
628
- const fieldName = typeof col.field === 'string' ? col.field : col.name;
629
- return this.tableEl.isVisualLastRowSync(this.rowKey, fieldName);
630
- }
631
- // selectable td는 column 정보가 없으므로 빈 field로 평가한다.
632
- // 해당 위치는 rowspan을 등록할 수 없으므로 spanRegistry에 매칭이 없고,
633
- // 결과적으로 "내 row 자체가 시각적 마지막인지"가 판정된다.
634
- isVisualLastRowForSelfRow() {
635
- if (!this.tableEl?.isVisualLastRowSync)
636
- return false;
637
- return this.tableEl.isVisualLastRowSync(this.rowKey, '');
638
- }
639
632
  isVisualLastRowBeforeSeparator(col) {
640
633
  if (!this.tableEl?.isVisualLastRowBeforeSeparatorSync)
641
634
  return false;
@@ -656,12 +649,13 @@ const SdTr = class {
656
649
  const hasRowspan = this.tableEl?.hasRowspanSync?.() ?? false;
657
650
  const isUseFrameRow = this.tableEl?.hasUseFrameInRowSync?.(this.rowKey) ?? false;
658
651
  const effectiveDense = this._dense && !isUseFrameRow;
659
- const bodyLayout = effectiveDense ? sdTable_config.TABLE_BODY_LAYOUT.dense : sdTable_config.TABLE_BODY_LAYOUT.default;
652
+ const rowLayoutY = effectiveDense ? sdTable_config.TABLE_BODY_LAYOUT.dense : sdTable_config.TABLE_BODY_LAYOUT.default;
653
+ const rowPaddingX = this._dense && isUseFrameRow ? sdTable_config.TABLE_BODY_LAYOUT.paddingX : sdTable_config.TABLE_BODY_LAYOUT.paddingX;
660
654
  const rowStyle = {
661
655
  'display': this.isVisible ? '' : 'none',
662
- '--table-body-height': `${bodyLayout.height}px`,
663
- '--table-body-padding-y': `${bodyLayout.paddingY}px`,
664
- '--table-body-padding-x': `${sdTable_config.TABLE_BODY_LAYOUT.paddingX}px`,
656
+ '--table-body-height': `${rowLayoutY.height}px`,
657
+ '--table-body-padding-y': `${rowLayoutY.paddingY}px`,
658
+ '--table-body-padding-x': `${rowPaddingX}px`,
665
659
  '--table-body-font-family': sdTable_config.TABLE_BODY_TYPOGRAPHY.fontFamily,
666
660
  '--table-body-font-weight': sdTable_config.TABLE_BODY_TYPOGRAPHY.fontWeight,
667
661
  '--table-body-font-size': `${sdTable_config.TABLE_BODY_TYPOGRAPHY.fontSize}px`,
@@ -679,7 +673,6 @@ const SdTr = class {
679
673
  return (index.h(index.Host, { style: rowStyle }, index.h("tr", { class: { 'tr': true, 'tr--no-hover': hasRowspan } }, this._selectable && (index.h("td", { class: {
680
674
  'td': true,
681
675
  'td--selected': true,
682
- 'td--last-row': this.isVisualLastRowForSelfRow(),
683
676
  'td--before-separator': this.isVisualLastRowBeforeSeparatorForSelfRow(),
684
677
  'sticky-left': true,
685
678
  'sticky-left-edge': stickyLeftCount === 0,
@@ -687,19 +680,19 @@ const SdTr = class {
687
680
  }, style: { '--sticky-left-offset': '0px' } }, index.h("sd-checkbox", { value: this.isSelected(), onSdUpdate: () => this.handleSelect() }))), stickyLeftCols.map((col, idx) => {
688
681
  if (this.isCovered(idx))
689
682
  return null;
683
+ const fieldName = typeof col.field === 'string' ? col.field : col.name;
690
684
  const span = this.getSpanFor(col);
691
685
  const sdCellClass = this.getCellClassFor(col);
692
686
  return (index.h("td", { key: col.name, rowSpan: span?.rowspan, colSpan: span?.colspan, class: {
693
687
  'td': true,
694
688
  [`td--${col.align || 'left'}`]: true,
695
- 'td--last-row': this.isVisualLastRow(col),
696
689
  'td--before-separator': this.isVisualLastRowBeforeSeparator(col),
697
690
  'sticky-left': true,
698
691
  'sticky-left-edge': idx === stickyLeftCount - 1,
699
692
  'is-scrolled-left': idx === stickyLeftCount - 1 && this._scrolledLeft,
700
693
  [`${col.tdClass}`]: Boolean(col.tdClass),
701
694
  ...this.expandCellClass(sdCellClass),
702
- }, style: this.getStickyStyle(idx) }, index.h("slot", { name: `${this.tableId}-${typeof col.field === 'string' ? col.field : col.name}-${this.rowKey}` }, index.h("span", null, this.getCellValue(col)))));
695
+ }, style: { ...this.getStickyStyle(idx), ...this.getFramePaddingStyle(fieldName) } }, index.h("slot", { name: `${this.tableId}-${fieldName}-${this.rowKey}` }, index.h("span", null, this.getCellValue(col)))));
703
696
  }), middleCols.map((col, relativeIdx) => {
704
697
  const actualColIdx = stickyLeftCount + relativeIdx;
705
698
  if (this.isCovered(actualColIdx))
@@ -710,11 +703,10 @@ const SdTr = class {
710
703
  return (index.h("td", { key: col.name, rowSpan: span?.rowspan, colSpan: span?.colspan, class: {
711
704
  'td': true,
712
705
  [`td--${col.align || 'left'}`]: true,
713
- 'td--last-row': this.isVisualLastRow(col),
714
706
  'td--before-separator': this.isVisualLastRowBeforeSeparator(col),
715
707
  [`${col.tdClass}`]: Boolean(col.tdClass),
716
708
  ...this.expandCellClass(sdCellClass),
717
- }, style: this.getStickyStyle(actualColIdx) }, index.h("slot", { name: `${this.tableId}-${fieldName}-${this.rowKey}` }, index.h("span", null, this.getCellValue(col)))));
709
+ }, style: { ...this.getStickyStyle(actualColIdx), ...this.getFramePaddingStyle(fieldName) } }, index.h("slot", { name: `${this.tableId}-${fieldName}-${this.rowKey}` }, index.h("span", null, this.getCellValue(col)))));
718
710
  }), stickyRightCols.map((col, relativeIdx) => {
719
711
  const actualColIdx = this.visibleColumns.length - stickyRightCount + relativeIdx;
720
712
  if (this.isCovered(actualColIdx))
@@ -725,14 +717,13 @@ const SdTr = class {
725
717
  return (index.h("td", { key: col.name, rowSpan: span?.rowspan, colSpan: span?.colspan, class: {
726
718
  'td': true,
727
719
  [`td--${col.align || 'left'}`]: true,
728
- 'td--last-row': this.isVisualLastRow(col),
729
720
  'td--before-separator': this.isVisualLastRowBeforeSeparator(col),
730
721
  'sticky-right': true,
731
722
  'sticky-right-edge': relativeIdx === 0,
732
723
  'is-scrolled-right': relativeIdx === 0 && this._scrolledRight,
733
724
  [`${col.tdClass}`]: Boolean(col.tdClass),
734
725
  ...this.expandCellClass(sdCellClass),
735
- }, style: this.getStickyStyle(actualColIdx) }, index.h("slot", { name: `${this.tableId}-${fieldName}-${this.rowKey}` }, index.h("span", null, this.getCellValue(col)))));
726
+ }, style: { ...this.getStickyStyle(actualColIdx), ...this.getFramePaddingStyle(fieldName) } }, index.h("slot", { name: `${this.tableId}-${fieldName}-${this.rowKey}` }, index.h("span", null, this.getCellValue(col)))));
736
727
  }))));
737
728
  }
738
729
  };
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-Cw-78mnC.js');
4
+ var system = require('./system-wrt-tcOq.js');
4
5
 
5
6
  const popup$1 = {
6
7
  header: {
@@ -31,6 +32,7 @@ var popupTokens = {
31
32
  };
32
33
 
33
34
  const { popup } = popupTokens;
35
+ const shadowSpreadMd = system.systemTokens.shadow.spread.md;
34
36
  const POPUP_LAYOUT = {
35
37
  bodyBg: popup.bg,
36
38
  };
@@ -47,7 +49,6 @@ const POPUP_HEADER = {
47
49
  fontWeight: popup.header.typography.fontWeight,
48
50
  fontSize: Number(popup.header.typography.fontSize),
49
51
  lineHeight: Number(popup.header.typography.lineHeight),
50
- // TODO: 토큰 반영 후 교체
51
52
  height: 50,
52
53
  paddingX: 16,
53
54
  paddingY: 10,
@@ -57,11 +58,9 @@ const POPUP_FOOTER = {
57
58
  paddingX: Number(popup.footer.paddingX),
58
59
  paddingY: Number(popup.footer.paddingY),
59
60
  gap: Number(popup.footer.gap),
60
- // TODO: 토큰 반영 후 교체
61
61
  height: 52,
62
62
  slotHeight: 36,
63
- // TODO: shadow/spread/md 토큰 반영 교체
64
- shadow: '0 -2px 8px 0 rgba(0, 0, 0, 0.08)',
63
+ shadow: `${shadowSpreadMd.x}px ${shadowSpreadMd.y}px ${shadowSpreadMd.blur}px ${shadowSpreadMd.spread}px ${shadowSpreadMd.color}`,
65
64
  };
66
65
 
67
66
  const sdPopupCss = () => `sd-popup{display:block;width:100%;height:100%}sd-popup .sd-popup{display:flex;flex-direction:column;width:100%;height:100%;background:var(--sd-popup-bg);overflow:hidden;box-sizing:border-box}sd-popup .sd-popup__header{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:100%;height:var(--sd-popup-header-height);padding:var(--sd-popup-header-padding-y) var(--sd-popup-header-padding-x);background:var(--sd-popup-header-bg);box-sizing:border-box}sd-popup .sd-popup__title{margin:0;color:var(--sd-popup-header-title-color);font-family:var(--sd-popup-header-font-family);font-weight:var(--sd-popup-header-font-weight);font-size:var(--sd-popup-header-font-size);line-height:var(--sd-popup-header-line-height);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}sd-popup .sd-popup__body{flex:1 1 auto;min-height:0;overflow:auto}sd-popup .sd-popup__footer{display:flex;align-items:center;flex-shrink:0;width:100%;height:var(--sd-popup-footer-height);padding:var(--sd-popup-footer-padding-y) var(--sd-popup-footer-padding-x);gap:var(--sd-popup-footer-gap);background:var(--sd-popup-footer-bg);box-shadow:var(--sd-popup-footer-shadow);box-sizing:border-box;position:relative;z-index:1}sd-popup .sd-popup__footer-slot{display:flex;align-items:center;height:var(--sd-popup-footer-slot-height)}sd-popup .sd-popup__footer-slot--left{justify-content:flex-start;flex:1 1 auto;min-width:0}sd-popup .sd-popup__footer-slot:empty{display:none}sd-popup .sd-popup__submit{flex-shrink:0;margin-left:auto}`;
@@ -77,6 +76,8 @@ const SdPopup = class {
77
76
  }
78
77
  popupTitle = '';
79
78
  type = 'default';
79
+ // 기본 footer 표시가 자연스러운 UX. prop 이름 변경(hideFooter 등)은 public API breaking 이라 별도 이슈로 분리.
80
+ // eslint-disable-next-line stencil/ban-default-true
80
81
  useFooter = true;
81
82
  submitButtonProps;
82
83
  submit;
@@ -104,7 +105,7 @@ const SdPopup = class {
104
105
  ...DEFAULT_SUBMIT_BUTTON_PROPS,
105
106
  ...this.submitButtonProps,
106
107
  };
107
- return (index.h("div", { key: '0c9f1cd261fa533044309342cfbaae8f5b87ae31', class: `sd-popup sd-popup--${this.type}`, style: cssVars }, index.h("header", { key: 'd8aa4db4d150419f5653fd93e204cc4bd865c35e', class: "sd-popup__header" }, index.h("h2", { key: 'fce95fce48a91c3a2b60f0b1169113cd2ff157d6', class: "sd-popup__title" }, this.popupTitle)), index.h("div", { key: 'c730895828c14a6a80fe6bebecb08f386cc84a78', class: "sd-popup__body" }, index.h("slot", { key: 'f3402c32fdc55794fb2c877a41c9f73e3c0d6d9f' })), this.useFooter && (index.h("footer", { key: '4b04ebc0dccc07dd9466c06c940d3444346603ba', class: "sd-popup__footer" }, index.h("div", { key: '78b35347121652d647e3601e6c6164e8e21288ca', class: "sd-popup__footer-slot sd-popup__footer-slot--left" }, index.h("slot", { key: '98836c28e7de97466cf4285c0458a8709c3788bb', name: "footer-left" })), index.h("sd-button", { key: 'd9ab45765c66a2f86aec2df9fc056fa1f4605259', ...submitButtonProps, class: "sd-popup__submit", onSdClick: () => this.submit.emit() })))));
108
+ return (index.h("div", { key: 'fe8ca033482913b9c8c7a62963d81d8c5c86c724', class: `sd-popup sd-popup--${this.type}`, style: cssVars }, index.h("header", { key: 'b27afc04689384abc8cdd45e67e4765c3fef82e9', class: "sd-popup__header" }, index.h("h2", { key: '15d6cf170e483bfdea861aa7a218df8379d83be2', class: "sd-popup__title" }, this.popupTitle)), index.h("div", { key: 'daf70c8196ad95b214c978166f547a2a2fa56814', class: "sd-popup__body" }, index.h("slot", { key: 'f8f4a9f93b88404993e2c8f7155abe4756f9bdba' })), this.useFooter && (index.h("footer", { key: '38ff051abd11378ad0a83b2d634985d689e0dc27', class: "sd-popup__footer" }, index.h("div", { key: '149a3de3d7ab0703d9cec41b35af23a6eebd67de', class: "sd-popup__footer-slot sd-popup__footer-slot--left" }, index.h("slot", { key: '2507cece435fa3e00ea698bebf6c980fea081521', name: "footer-left" })), index.h("sd-button", { key: '5ae38a07e39437d6f3b8aa111258d60aa044152d', ...submitButtonProps, class: "sd-popup__submit", onSdClick: () => this.submit.emit() })))));
108
109
  }
109
110
  };
110
111
  SdPopup.style = sdPopupCss();
@@ -227,7 +227,7 @@ const SdPortal = class {
227
227
  this.close.emit();
228
228
  }
229
229
  render() {
230
- return index.h("slot", { key: '1f46253fe0f70fda84643e8d3025c1fd47090f5c' });
230
+ return index.h("slot", { key: 'a227fa8a0639de7fd3a014762998692151284f87' });
231
231
  }
232
232
  static get watchers() { return {
233
233
  "open": [{
@@ -79,7 +79,7 @@ const SdSelectListItem = class {
79
79
  return (
80
80
  // 키보드 네비게이션은 부모 listbox 의 ArrowUp/Down + Enter 가 담당. 항목 자체는 role=option, tabindex=-1 으로 표시.
81
81
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events
82
- index.h("div", { key: '93e8bf04e69d9e6f066952570ed06076bdd17e57', role: "option", tabindex: -1, "aria-selected": this.isSelected === true ? 'true' : 'false', class: {
82
+ index.h("div", { key: '37189acb2854061fd120d662050fddddb396170c', role: "option", tabindex: -1, "aria-selected": this.isSelected === true ? 'true' : 'false', class: {
83
83
  'sd-select-list-item': true,
84
84
  'sd-select-list-item--group': isGroup,
85
85
  'sd-select-list-item--depth1-group': isDepth1Group,
@@ -89,7 +89,7 @@ const SdSelectListItem = class {
89
89
  'sd-select-list-item--focused': this.isFocused,
90
90
  'sd-select-list-item--selectable': this.isSelectable && !this.option.disabled,
91
91
  'sd-select-list-item--disabled': !!this.option.disabled,
92
- }, style: cssVars, onClick: this.handleClick }, this.useCheckbox && (index.h("sd-checkbox", { key: '2b6a17361c2e5c65c6dac21895ef397cadeec9a3', value: this.isSelected === null ? null : !!this.isSelected, disabled: this.option.disabled, inverse: this.isFocused && this.isSelected !== false, class: "sd-select-list-item__checkbox", onClick: this.handleCheckboxClick, onSdUpdate: this.handleCheckboxUpdate })), index.h("span", { key: '158e45d52b3b5394f7c4e2ffff97d23f83ce5e49', class: "sd-select-list-item__label" }, this.option.label), this.countInfo && (index.h("span", { key: '48adac9df92cd19f5e2b39bed828a9ad7c22c945', class: "sd-select-list-item__count" }, "(", this.countInfo.selected, "/", this.countInfo.total, ")"))));
92
+ }, style: cssVars, onClick: this.handleClick }, this.useCheckbox && (index.h("sd-checkbox", { key: '7cc43ed0a1c4a2019be3a7f6f60de1c7f03a6148', value: this.isSelected === null ? null : !!this.isSelected, disabled: this.option.disabled, inverse: this.isFocused && this.isSelected !== false, class: "sd-select-list-item__checkbox", onClick: this.handleCheckboxClick, onSdUpdate: this.handleCheckboxUpdate })), index.h("span", { key: '331c7d1ded82834521f3292dc739612f24d7209e', class: "sd-select-list-item__label" }, this.option.label), this.countInfo && (index.h("span", { key: '80b34cd1a6e67719d50c62afedf23c0903259c78', class: "sd-select-list-item__count" }, "(", this.countInfo.selected, "/", this.countInfo.total, ")"))));
93
93
  }
94
94
  };
95
95
  SdSelectListItem.style = sdSelectListItemCss();
@@ -142,15 +142,15 @@ const SdSelectListItemSearch = class {
142
142
  clearTimeout(this.debounceTimer);
143
143
  }
144
144
  render() {
145
- return (index.h("div", { key: '0b8e55a2f39d72bc6fc5c7d8c6262c9fffb52ba7', class: {
145
+ return (index.h("div", { key: 'a8b62b61ec6a0afd69de50b8df02e57de2a04c8c', class: {
146
146
  'sd-select-list-item-search': true,
147
147
  'sd-select-list-item-search--scrolled': this.isScrolled,
148
- } }, index.h("div", { key: '30c4f5d6c8002579da129cebb06c026c278fb555', class: "sd-select-list-item-search__inner" }, index.h("sd-icon", { key: 'be9076a1fd6d7fd9a1990fd9e32aebd04c1bc4b4', name: "search", size: 16, color: "grey_70", class: "sd-select-list-item-search__icon" }), index.h("input", { key: 'c9400184f607d0385e5e8c25615e1a955256c6f4', ref: el => {
148
+ } }, index.h("div", { key: '2b04a677a8b4e3212eff83c07609a4b7d89799c1', class: "sd-select-list-item-search__inner" }, index.h("sd-icon", { key: 'c0c51d4b0150fee7151c7e2bcc5aaf8428d31043', name: "search", size: 16, color: "grey_70", class: "sd-select-list-item-search__icon" }), index.h("input", { key: '85d2309cbb037851053c34baeca5f59c690c0881', ref: el => {
149
149
  this.inputEl = el;
150
- }, type: "text", class: "sd-select-list-item-search__input", placeholder: "\uAC80\uC0C9\uC5B4 \uC785\uB825", value: this.searchText, onInput: this.handleInput, onFocus: () => this.searchFocus.emit() }), index.h("button", { key: 'dcb18eff068dea3fcb9144c4dfd4500806f68753', type: "button", class: {
150
+ }, type: "text", class: "sd-select-list-item-search__input", placeholder: "\uAC80\uC0C9\uC5B4 \uC785\uB825", value: this.searchText, onInput: this.handleInput, onFocus: () => this.searchFocus.emit() }), index.h("button", { key: '564b6ae6dbab1fa5f4f6d977fa9fd52bb9114873', type: "button", class: {
151
151
  'sd-select-list-item-search__clear': true,
152
152
  'sd-select-list-item-search__clear--hidden': this.searchText === '',
153
- }, onClick: this.handleClear, tabindex: this.searchText !== '' ? 0 : -1, "aria-hidden": this.searchText !== '' ? 'false' : 'true' }, index.h("sd-icon", { key: 'beb2cf23258aa1eaff2c9fdb63dae99570691af1', name: "close", size: 12, color: "#888888" })))));
153
+ }, onClick: this.handleClear, tabindex: this.searchText !== '' ? 0 : -1, "aria-hidden": this.searchText !== '' ? 'false' : 'true' }, index.h("sd-icon", { key: '8ae0f92f8762681cc4c2a6fc11340498b8b01c98', name: "close", size: 12, color: "#888888" })))));
154
154
  }
155
155
  };
156
156
  SdSelectListItemSearch.style = sdSelectListItemSearchCss();
@@ -265,15 +265,15 @@ const SdSelect = class {
265
265
  this.closeDropdown();
266
266
  },
267
267
  };
268
- return (index.h("sd-field", { key: 'c433e21047632ae1e7901e11f6f9d83070f8d83c', 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: () => {
268
+ return (index.h("sd-field", { key: '21849c194994f51c36b2fa5eafd606230b21e365', 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: () => {
269
269
  this.hovered = true;
270
270
  }, onMouseLeave: () => {
271
271
  this.hovered = false;
272
- } }, index.h("div", { key: 'f04f2f331c27745035c35d96d5262398065589a8', class: "sd-select", ref: el => {
272
+ } }, index.h("div", { key: 'bcba54ed8d325a540d14af14c9b3bf332f631ce8', class: "sd-select", ref: el => {
273
273
  this.triggerRef = el;
274
- } }, index.h("sd-select-trigger", { key: 'b66e83ff248618c815b155f27445f3da9e91361b', ref: el => {
274
+ } }, index.h("sd-select-trigger", { key: '72e361ca6e162eee56b82398902e89226e980d3d', ref: el => {
275
275
  this.triggerComponentRef = el;
276
- }, 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) && (index.h("sd-portal", { key: 'bd5b46d8e4849d235e39a9d9cfc549fdbe260076', ...portalProps }, index.h("sd-select-listbox", { key: '81266da14ee4e59b4cedd4b364c18fea4d3c4f7f', 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) })))));
276
+ }, 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) && (index.h("sd-portal", { key: '0ff55857cbc146db57caa53d560752d0fae8413b', ...portalProps }, index.h("sd-select-listbox", { key: '20c103309dc7f2eaf4bee6abae271606b64ace8b', 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) })))));
277
277
  }
278
278
  static get watchers() { return {
279
279
  "isOpen": [{
@@ -637,9 +637,9 @@ const SdSelectListbox = class {
637
637
  '--listbox-max-height': this.maxHeight ?? '260px',
638
638
  '--listbox-radius': `${sdSelect_config.LIST_BOX_LAYOUT.radius}px`,
639
639
  };
640
- return (index.h("div", { key: '4173255a866459bf0aeb98d517263d12f1c39fa5', class: "sd-select-listbox", style: cssVars }, this.showSearch && (index.h("sd-select-list-item-search", { key: '79e7d48d7234ebfd32d3cd242822dfa93a73c151', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), index.h("div", { key: '22981c1e049d0d526af06bb5b563de5130c14477', class: "sd-select-listbox__list", onScroll: this.handleScroll, ref: el => {
640
+ return (index.h("div", { key: '1834dbfee219988e78ad47d3640ebafb9983298c', class: "sd-select-listbox", style: cssVars }, this.showSearch && (index.h("sd-select-list-item-search", { key: '28fbfce57184f2a8c090d628c5b33cecf9337c3c', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), index.h("div", { key: 'b7430d72cdb26cad59b226af8cf98d796645390c', class: "sd-select-listbox__list", onScroll: this.handleScroll, ref: el => {
641
641
  this.listEl = el;
642
- } }, this.showSelectAll && (index.h("sd-select-list-item", { key: '7acd37c5663bb101d6853cbd6629a78d402d6cde', 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 ? (index.h("div", { class: "sd-select-listbox__empty" }, sdSelect_config.EMPTY_MESSAGE)) : this.isDepth ? (this.renderOptions(this.filteredOptions)) : (this.filteredOptions.map(option => (index.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) })))))));
642
+ } }, this.showSelectAll && (index.h("sd-select-list-item", { key: '8f159cdef838c0f39bb7aad1717a88c04c75dbda', 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 ? (index.h("div", { class: "sd-select-listbox__empty" }, sdSelect_config.EMPTY_MESSAGE)) : this.isDepth ? (this.renderOptions(this.filteredOptions)) : (this.filteredOptions.map(option => (index.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) })))))));
643
643
  }
644
644
  static get watchers() { return {
645
645
  "searchKeyword": [{
@@ -699,7 +699,7 @@ const SdSelectTrigger = class {
699
699
  ? sdSelect_config.SELECT_COLORS.icon.disabled
700
700
  : sdSelect_config.SELECT_COLORS.icon.default,
701
701
  };
702
- return (index.h("div", { key: '6694f35a396f368d5df9860db30d817beddb8bec', ref: el => {
702
+ return (index.h("div", { key: '645d8e7ff5065664a3510b127628cb54d97fb613', ref: el => {
703
703
  this.triggerEl = el;
704
704
  }, role: "button", "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? 'true' : 'false', tabindex: this.disabled ? -1 : 0, class: {
705
705
  'sd-select-trigger': true,
@@ -710,7 +710,7 @@ const SdSelectTrigger = class {
710
710
  e.preventDefault();
711
711
  this.handleClick();
712
712
  }
713
- }, onFocus: this.handleFocus, onBlur: this.handleBlur }, index.h("div", { key: 'd8ff247ca362a8fc3677d9803261343a1e891298', class: "sd-select-trigger__content" }, index.h("span", { key: 'cd81a7c7c135372aad80fa9391b160337632643c', class: "sd-select-trigger__text" }, hasValue ? this.displayText : (this.placeholder ?? '선택')), index.h("sd-icon", { key: '838c12e2a9ce06036eee766ffd2f88f3215b8420', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
713
+ }, onFocus: this.handleFocus, onBlur: this.handleBlur }, index.h("div", { key: '515dda6d98ad09b0854e0ef0e04f0bf8c9592d1a', class: "sd-select-trigger__content" }, index.h("span", { key: '9d92577675d0c7e6ba32174ae0cdd754788dbccb', class: "sd-select-trigger__text" }, hasValue ? this.displayText : (this.placeholder ?? '선택')), index.h("sd-icon", { key: '347532a73d9ff2929d9f716fb8d2e314af7d7069', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
714
714
  'sd-select-trigger__icon': true,
715
715
  'sd-select-trigger__icon--open': this.isOpen,
716
716
  } }))));
@@ -102,7 +102,7 @@ const SdSwitch = class {
102
102
  '--sd-switch-line-height': `${SWITCH_TYPOGRAPHY.lineHeight}px`,
103
103
  '--sd-switch-text-decoration': SWITCH_TYPOGRAPHY.textDecoration,
104
104
  };
105
- return (index.h("label", { key: 'ebb195a1bb93ae476b4bf3e697623809d626eed6', "aria-label": this.label || 'switch', class: this.switchClasses, style: cssVars }, index.h("input", { key: 'a6de6298d35c54ad83dc6285b90e67c8d3564d15', type: "checkbox", checked: this.value, disabled: this.disabled, onInput: this.handleChange }), index.h("div", { key: '7881f46be572edcfc82888564a7f85ad4207dd8e', class: "sd-switch__track" }, index.h("div", { key: 'c08c9d5894a6f9ddf3ecdaaa9253628478479043', class: "sd-switch__knob" })), this.label && index.h("span", { key: '4e01b185502829d8fb647d3eafaaf6565489b2f3', class: "sd-switch__label" }, this.label)));
105
+ return (index.h("label", { key: '3d9449733d73dcbd2d7a95505b6afd930a43a114', "aria-label": this.label || 'switch', class: this.switchClasses, style: cssVars }, index.h("input", { key: 'f8d35ea743b5f85697d9d4de8fe915ce2d8f7b56', type: "checkbox", checked: this.value, disabled: this.disabled, onInput: this.handleChange }), index.h("div", { key: 'b62a6bfa60c488270184698610337926b688baff', class: "sd-switch__track" }, index.h("div", { key: 'da7764fe4a4202366fe0a922de687ece121eb73f', class: "sd-switch__knob" })), this.label && index.h("span", { key: '924c2939f0cb2196ff69be560e1c7f113590c73b', class: "sd-switch__label" }, this.label)));
106
106
  }
107
107
  };
108
108
  SdSwitch.style = sdSwitchCss();
@@ -2,9 +2,9 @@
2
2
 
3
3
  var index = require('./index-Cw-78mnC.js');
4
4
  var constants = require('./constants-DJRV1upE.js');
5
- var sdTable_config = require('./sd-table.config-BIpldZtw.js');
6
- require('./component.table-CMqGfEui.js');
7
- require('./system-VmZRYp6V.js');
5
+ var sdTable_config = require('./sd-table.config-DqgNOdXO.js');
6
+ require('./component.table-qOFez3z3.js');
7
+ require('./system-wrt-tcOq.js');
8
8
 
9
9
  let urlAlphabet =
10
10
  'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';
@@ -58,7 +58,9 @@ const SdTable = class {
58
58
  get effectiveRowHeight() {
59
59
  if (this.rowHeight != null)
60
60
  return this.rowHeight;
61
- return this.dense ? Number(sdTable_config.TABLE_BODY_LAYOUT.dense.height) : Number(sdTable_config.TABLE_BODY_LAYOUT.default.height);
61
+ return this.dense
62
+ ? Number(sdTable_config.TABLE_BODY_LAYOUT.dense.height)
63
+ : Number(sdTable_config.TABLE_BODY_LAYOUT.default.height);
62
64
  }
63
65
  virtualBuffer = 5;
64
66
  virtualEndThreshold = 10;
@@ -234,6 +236,10 @@ const SdTable = class {
234
236
  if (this.pagination?.rowsPerPage != null) {
235
237
  this.innerRowsPerPage = this.pagination.rowsPerPage;
236
238
  }
239
+ // host element 에 자식 컴포넌트(sd-thead/sd-tbody/sd-tr) 가 직접 접근하는 internal sync helpers 를 monkey-patch.
240
+ // 28개 메서드 전체를 typed interface 로 노출하면 코드 비용이 크고, 어차피 internal 이라 외부 사용자가 호출하지 않는다.
241
+ // 정식 @Method 노출로 옮기는 작업은 별도 이슈로 분리.
242
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
237
243
  const el = this.el;
238
244
  el.isRowSelectedSync = this.isRowSelectedSync.bind(this);
239
245
  el.updateRowSelectSync = this.updateRowSelectSync.bind(this);
@@ -252,7 +258,6 @@ const SdTable = class {
252
258
  el.unregisterSpanSync = this.unregisterSpanSync.bind(this);
253
259
  el.getSpanSync = this.getSpanSync.bind(this);
254
260
  el.isCoveredSync = this.isCoveredSync.bind(this);
255
- el.isVisualLastRowSync = this.isVisualLastRowSync.bind(this);
256
261
  el.registerSeparatorSync = this.registerSeparatorSync.bind(this);
257
262
  el.unregisterSeparatorSync = this.unregisterSeparatorSync.bind(this);
258
263
  el.isVisualLastRowBeforeSeparatorSync = this.isVisualLastRowBeforeSeparatorSync.bind(this);
@@ -263,6 +268,7 @@ const SdTable = class {
263
268
  el.registerUseFrameSync = this.registerUseFrameSync.bind(this);
264
269
  el.unregisterUseFrameSync = this.unregisterUseFrameSync.bind(this);
265
270
  el.hasUseFrameInRowSync = this.hasUseFrameInRowSync.bind(this);
271
+ el.isCellUseFrameSync = this.isCellUseFrameSync.bind(this);
266
272
  if (Array.isArray(this.rows)) {
267
273
  this.rowCount = this.rows.length;
268
274
  this.pushRowsToChildren(this.rows);
@@ -340,10 +346,16 @@ const SdTable = class {
340
346
  }
341
347
  });
342
348
  this.noDataContentResizeObserver.observe(target);
343
- const measured = Math.ceil(target.scrollHeight);
344
- this.noDataBodyHeight = Math.max(60, measured);
349
+ index.readTask(() => {
350
+ if (!this.noDataContentEl)
351
+ return;
352
+ const measured = Math.ceil(this.noDataContentEl.scrollHeight);
353
+ const next = Math.max(60, measured);
354
+ if (next !== this.noDataBodyHeight) {
355
+ this.noDataBodyHeight = next;
356
+ }
357
+ });
345
358
  }
346
- // light DOM(manual mode 자식)과 shadow DOM(autoThead/autoTbody fallback) 양쪽 모두에서 자식을 찾는다.
347
359
  queryChildEl(selector) {
348
360
  return (this.el.querySelector(selector) ??
349
361
  this.el.shadowRoot?.querySelector(selector) ??
@@ -371,12 +383,12 @@ const SdTable = class {
371
383
  refreshChildrenSelection() {
372
384
  const thead = this.queryChildEl('sd-thead');
373
385
  thead?.refreshSelection?.();
374
- this.queryAllTr().forEach(tr => tr?.refreshSelection?.());
386
+ this.queryAllTr().forEach(tr => tr.refreshSelection?.());
375
387
  }
376
388
  refreshChildrenConfig() {
377
389
  const thead = this.queryChildEl('sd-thead');
378
390
  thead?.refreshConfig?.();
379
- this.queryAllTr().forEach(tr => tr?.refreshConfig?.());
391
+ this.queryAllTr().forEach(tr => tr.refreshConfig?.());
380
392
  }
381
393
  maybeEmitVirtualReachEnd(start, end) {
382
394
  const threshold = Math.max(1, this.virtualEndThreshold);
@@ -408,6 +420,7 @@ const SdTable = class {
408
420
  this.vsEnd = end;
409
421
  const topHeight = start * this.effectiveRowHeight;
410
422
  const bottomHeight = Math.max(0, (this.rowCount - end) * this.effectiveRowHeight);
423
+ // setSpacersSync 는 sd-tbody 가 host element 에 monkey-patch 하는 internal sync helper.
411
424
  const tbody = this.queryChildEl('sd-tbody');
412
425
  tbody?.setSpacersSync?.(topHeight, bottomHeight);
413
426
  if (rangeChanged) {
@@ -465,6 +478,9 @@ const SdTable = class {
465
478
  const fields = this.useFrameRegistry.get(rowKey);
466
479
  return fields != null && fields.size > 0;
467
480
  }
481
+ isCellUseFrameSync(rowKey, field) {
482
+ return this.useFrameRegistry.get(rowKey)?.has(field) ?? false;
483
+ }
468
484
  isRowSelectedSync(row) {
469
485
  return Array.from(this.innerSelected).some(r => r[this.rowKey ?? 'id'] === row[this.rowKey ?? 'id']);
470
486
  }
@@ -525,7 +541,7 @@ const SdTable = class {
525
541
  this.updateRowsVisibility();
526
542
  }
527
543
  updateRowsVisibility() {
528
- this.queryAllTr().forEach(tr => tr?.updateVisibility?.());
544
+ this.queryAllTr().forEach(tr => tr.updateVisibility?.());
529
545
  }
530
546
  changeRowsPerPage(perPage) {
531
547
  const changedRowsPerPage = perPage != null && perPage !== '' ? Number(perPage) : 0;
@@ -564,7 +580,7 @@ const SdTable = class {
564
580
  this.columnWidths = this.columnWidths.map((width, idx) => (idx === index ? newWidth : width));
565
581
  const thead = this.queryChildEl('sd-thead');
566
582
  thead?.setColumnWidths?.(this.columnWidths);
567
- this.queryAllTr().forEach(tr => tr?.setColumnWidths?.(this.columnWidths));
583
+ this.queryAllTr().forEach(tr => tr.setColumnWidths?.(this.columnWidths));
568
584
  const stickyRightCount = this.stickyColumn?.right || 0;
569
585
  const visibleColCount = this.columns.filter(c => c.visible !== false).length;
570
586
  const isRightStickyEdgeResizer = stickyRightCount > 0 && index === visibleColCount - stickyRightCount;
@@ -619,9 +635,8 @@ const SdTable = class {
619
635
  // 경우가 있어, sd-tr의 @State (spansVersion)을 통해 재렌더를 강제한다.
620
636
  requestAllTrUpdate() {
621
637
  this.queryAllTr().forEach(tr => {
622
- const trAny = tr;
623
- if (typeof trAny.bumpSpansVersion === 'function') {
624
- trAny.bumpSpansVersion();
638
+ if (typeof tr.bumpSpansVersion === 'function') {
639
+ tr.bumpSpansVersion();
625
640
  }
626
641
  else {
627
642
  index.forceUpdate(tr);
@@ -736,7 +751,7 @@ const SdTable = class {
736
751
  return false;
737
752
  }
738
753
  // rowspan을 반영한 셀의 시각적 하단 행 인덱스를 반환한다.
739
- // isVisualLastRowSync·isVisualLastRowBeforeSeparatorSync 공통 헬퍼.
754
+ // isVisualLastRowBeforeSeparatorSync 헬퍼.
740
755
  resolveVisualBottom(rowKey, field) {
741
756
  const myRowIdx = this.resolveRowIndex(rowKey);
742
757
  if (myRowIdx == null)
@@ -745,20 +760,6 @@ const SdTable = class {
745
760
  const rs = Math.max(1, span?.rowspan ?? 1);
746
761
  return myRowIdx + rs - 1;
747
762
  }
748
- // 셀의 시각적 하단이 테이블(또는 현재 페이지)의 마지막 행인지 판정.
749
- // 마지막 행에 border-bottom: none을 적용하기 위함.
750
- isVisualLastRowSync(rowKey, field) {
751
- if (this.rowCount <= 0)
752
- return false;
753
- const visualBottom = this.resolveVisualBottom(rowKey, field);
754
- if (visualBottom == null)
755
- return false;
756
- const pageInfo = this.getPaginationInfoSync();
757
- const lastVisibleIdx = pageInfo
758
- ? Math.min(pageInfo.endIndex - 1, this.rowCount - 1)
759
- : this.rowCount - 1;
760
- return visualBottom === lastVisibleIdx;
761
- }
762
763
  registerSeparatorSync(prevRowKey) {
763
764
  const idx = this.resolveRowIndex(prevRowKey);
764
765
  if (idx != null)
@@ -875,25 +876,25 @@ const SdTable = class {
875
876
  '--table-body-line-height': `${sdTable_config.TABLE_BODY_TYPOGRAPHY.lineHeight}px`,
876
877
  '--table-body-text-decoration': sdTable_config.TABLE_BODY_TYPOGRAPHY.textDecoration,
877
878
  };
878
- return (index.h(index.Host, { key: '02d716bdac3832710bf58d63741aeeb4b04d434b', style: hostStyle }, index.h("div", { key: '88faad346e032ca727375889aa0552a330f5799a', class: "sd-table__container", style: {
879
+ return (index.h(index.Host, { key: '9ee5b528b330f9edf406ff40ec089136c0807653', style: hostStyle }, index.h("div", { key: '9ac6cbba84b7ef7d0897474168748811fb15af92', class: "sd-table__container", style: {
879
880
  '--table-width': this.width,
880
881
  '--table-height': effectiveTableHeight,
881
882
  '--table-container-height': `calc(${effectiveTableHeight} - ${paginationHeight}px)`,
882
- } }, index.h("div", { key: '783934f349e0da5bab77cbb44cc12f0dfeb9ec71', class: {
883
+ } }, index.h("div", { key: '11f916debfd443e1d243bfa2335dbb0a3cb094bc', class: {
883
884
  'sd-table__wrapper': true,
884
885
  'sd-table__wrapper--radius-use-top': this.radius === 'useTop',
885
- } }, index.h("div", { key: 'd3a76ad0e853c6adf16df633c0e0b7f5bb580f24', class: {
886
+ } }, index.h("div", { key: '3cad3d86f731a3edc0d2b5a680bcaf6ad6be7399', class: {
886
887
  'sd-table__scroll-container': true,
887
888
  'sd-table__scroll-container--loading': this.isLoading,
888
889
  'sd-table__scroll-container--no-data': isNoData,
889
- } }, this.isLoading && (index.h("div", { key: 'cc77ce58ff0eebf3fc1d7dd9dbf11578f94d4dd1', class: "sd-table__loading", style: { top: `${this.loadingScrollTop}px` } }, index.h("sd-circle-progress", { key: 'bda7ed774342089a23d13b49a506b04527026275', indeterminate: true }))), isNoData && (index.h(index.h.Fragment, null, index.h("div", { key: 'f2ce89d0ae9eefe0f0f8509e477756cb74dbef86', class: "sd-table__no-data-header-overlay" }), index.h("div", { key: '84d739563123d0f0fc33166b1a6e80021ba06e1c', class: "sd-table__no-data" }, index.h("div", { key: '3507f718a25b79c44fdf283fb41356ab72f2a384', class: "sd-table__no-data-content", ref: el => {
890
+ } }, this.isLoading && (index.h("div", { key: '6f0aac84dcb3d9ca721ed82cd45214b3956d3f94', class: "sd-table__loading", style: { top: `${this.loadingScrollTop}px` } }, index.h("sd-circle-progress", { key: '8bb6b8025fceee6ef856efd9cafefe925fc95272', indeterminate: true }))), isNoData && (index.h(index.h.Fragment, null, index.h("div", { key: '69e6e22b68261832a299de470c8ca7f5a16205dd', class: "sd-table__no-data-header-overlay" }), index.h("div", { key: 'c797a2d41c752698bed1f034beefddc4bf8b951d', class: "sd-table__no-data" }, index.h("div", { key: '0f0306bc89b5d9046de2aec935822eab0c3ca36c', class: "sd-table__no-data-content", ref: el => {
890
891
  this.noDataContentEl = el;
891
892
  if (el)
892
893
  this.syncNoDataContentObserver();
893
- } }, index.h("slot", { key: '818129819b2ff4a6f9fc1224dc59a9aa5861296d', name: "no-data" }, index.h("span", { key: 'c03cfb713e6dadd5ab4c60d7d27fd502d7aa9348' }, this.resolvedNoDataLabel)))))), index.h("table", { key: '8864714a828069985bac6535bc40cbb043dfcb28', class: this.tableClasses }, this.autoThead ? (index.h("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange }, index.h("sd-thead", { rows: this.rows ?? [] }))) : (index.h("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange })), this.autoTbody ? (index.h("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }, index.h("sd-tbody", { rows: this.rows ?? [] }, this.renderAutoRows()))) : (index.h("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }))))), this.pagination &&
894
+ } }, index.h("slot", { key: '042671d4c65c4031a756da386ed010146c17f736', name: "no-data" }, index.h("span", { key: '5994f656dbea3fd1dea69c105907b188658f8c41' }, this.resolvedNoDataLabel)))))), index.h("table", { key: '16bb3a7c6b32e5312eda79015cd7d90bef37bdff', class: this.tableClasses }, this.autoThead ? (index.h("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange }, index.h("sd-thead", { rows: this.rows ?? [] }))) : (index.h("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange })), this.autoTbody ? (index.h("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }, index.h("sd-tbody", { rows: this.rows ?? [] }, this.renderAutoRows()))) : (index.h("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }))))), this.pagination &&
894
895
  this.pagination.rowsPerPage > 0 &&
895
896
  this.rowCount > 0 &&
896
- !this.useVirtualScroll && (index.h("div", { key: 'bdac4b4d551152ec7ee0cdc31bfb992748836928', class: "sd-table__pagination" }, index.h("sd-pagination", { key: '2c60fff7f8ac3a3bd22da2173b8a9187bb686ddf', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onSdPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (index.h("sd-select", { key: '7a662f58e13c15e705341773570f899f503f12c0', value: this.useInternalPagination
897
+ !this.useVirtualScroll && (index.h("div", { key: '6c3ee5d93fb395154c4c42c914669af535c1a5bc', class: "sd-table__pagination" }, index.h("sd-pagination", { key: '46053012374e1255037706a8fa4d068dbc60f2d9', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onSdPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (index.h("sd-select", { key: 'df04b19e857e823be8237148d84456d492575ce3', value: this.useInternalPagination
897
898
  ? this.innerRowsPerPage
898
899
  : this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", emitValue: true, onSdUpdate: e => {
899
900
  if (!this.isRowsPerPageValue(e.detail))
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var component_table = require('./component.table-CMqGfEui.js');
4
- var system = require('./system-VmZRYp6V.js');
3
+ var component_table = require('./component.table-qOFez3z3.js');
4
+ var system = require('./system-wrt-tcOq.js');
5
5
 
6
6
  // ── Header Tokens ──
7
7
  const TABLE_HEADER_LAYOUT = {
@@ -33,7 +33,9 @@ const TABLE_BODY_LAYOUT = {
33
33
  height: component_table.tableTokens.table.body.dense.height,
34
34
  paddingY: component_table.tableTokens.table.body.dense.paddingY,
35
35
  },
36
- paddingX: component_table.tableTokens.table.body.paddingX};
36
+ paddingX: component_table.tableTokens.table.body.paddingX,
37
+ framePadding: component_table.tableTokens.table.body.frame.padding,
38
+ };
37
39
  const TABLE_BODY_TYPOGRAPHY = {
38
40
  fontFamily: component_table.tableTokens.table.body.typography.fontFamily,
39
41
  fontWeight: component_table.tableTokens.table.body.typography.fontWeight,
@@ -188,7 +188,7 @@ const SdTabs = class {
188
188
  };
189
189
  }
190
190
  render() {
191
- return (index.h("div", { key: '880f1aa80c29f2d578ffe2d5e5e5e0c008c898d3', class: this.getContainerClasses(), style: this.buildCssVars() }, this.tabs.map((tab, index$1) => {
191
+ return (index.h("div", { key: '181916a72512a6802a06dc56fca418a806d18a0e', class: this.getContainerClasses(), style: this.buildCssVars() }, this.tabs.map((tab, index$1) => {
192
192
  const badgeName = this.getBadgeName(tab);
193
193
  return (index.h("div", { key: `tab-${index$1}`, 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 => {
194
194
  if (e.key === 'Enter' || e.key === ' ') {