@sellmate/design-system 1.21.0 → 1.23.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 (261) hide show
  1. package/dist/cjs/design-system.cjs.js +2 -2
  2. package/dist/cjs/{index-C-F-JEv_.js → index-BuaQW9U4.js} +1 -1
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/sd-action-modal.cjs.entry.js +1 -1
  5. package/dist/cjs/sd-badge.cjs.entry.js +1 -1
  6. package/dist/cjs/sd-barcode-input.cjs.entry.js +1 -1
  7. package/dist/cjs/sd-button_2.cjs.entry.js +5 -5
  8. package/dist/cjs/sd-calendar_2.cjs.entry.js +1 -1
  9. package/dist/cjs/sd-callout.cjs.entry.js +1 -1
  10. package/dist/cjs/sd-card.cjs.entry.js +1 -1
  11. package/dist/cjs/sd-checkbox.cjs.entry.js +1 -1
  12. package/dist/cjs/sd-chip-input.cjs.entry.js +61 -19
  13. package/dist/cjs/sd-chip.cjs.entry.js +6 -4
  14. package/dist/cjs/{sd-chip.config-DiLoRpct.js → sd-chip.config-DCNCzV8s.js} +1 -1
  15. package/dist/cjs/sd-circle-progress.cjs.entry.js +1 -1
  16. package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +1 -1
  17. package/dist/cjs/sd-date-box.cjs.entry.js +1 -1
  18. package/dist/cjs/sd-date-picker_7.cjs.entry.js +1 -1
  19. package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +1 -1
  20. package/dist/cjs/sd-divider.cjs.entry.js +1 -1
  21. package/dist/cjs/sd-dropdown-button.cjs.entry.js +1 -1
  22. package/dist/cjs/sd-field_3.cjs.entry.js +2 -2
  23. package/dist/cjs/sd-form.cjs.entry.js +1 -1
  24. package/dist/cjs/sd-ghost-button_3.cjs.entry.js +4 -4
  25. package/dist/cjs/sd-guide.cjs.entry.js +1 -1
  26. package/dist/cjs/sd-key-value-table.cjs.entry.js +1 -1
  27. package/dist/cjs/sd-linear-progress.cjs.entry.js +1 -1
  28. package/dist/cjs/sd-loading-container.cjs.entry.js +1 -1
  29. package/dist/cjs/sd-modal-container.cjs.entry.js +1 -1
  30. package/dist/cjs/sd-pagination_4.cjs.entry.js +87 -8
  31. package/dist/cjs/sd-popover.cjs.entry.js +2 -2
  32. package/dist/cjs/sd-popup.cjs.entry.js +1 -1
  33. package/dist/cjs/sd-radio-button.cjs.entry.js +1 -1
  34. package/dist/cjs/sd-radio.cjs.entry.js +1 -1
  35. package/dist/cjs/sd-select-list-item_2.cjs.entry.js +1 -1
  36. package/dist/cjs/sd-select_3.cjs.entry.js +1 -1
  37. package/dist/cjs/sd-switch.cjs.entry.js +1 -1
  38. package/dist/cjs/sd-table.cjs.entry.js +1 -1
  39. package/dist/cjs/sd-tabs.cjs.entry.js +1 -1
  40. package/dist/cjs/sd-td.cjs.entry.js +1 -1
  41. package/dist/cjs/sd-text-link.cjs.entry.js +1 -1
  42. package/dist/cjs/sd-toast-container.cjs.entry.js +1 -1
  43. package/dist/cjs/sd-toast.cjs.entry.js +1 -1
  44. package/dist/cjs/sd-toggle.cjs.entry.js +1 -1
  45. package/dist/cjs/{tooltipArrow-26hYtSrD.js → tooltipArrow-VQq73W83.js} +1 -1
  46. package/dist/collection/components/assets/CaretDown.js +1 -1
  47. package/dist/collection/components/assets/CaretLeft.js +1 -1
  48. package/dist/collection/components/assets/CaretRight.js +1 -1
  49. package/dist/collection/components/assets/CaretUp.js +1 -1
  50. package/dist/collection/components/sd-chip/sd-chip.js +24 -2
  51. package/dist/collection/components/sd-chip-input/sd-chip-input.css +5 -0
  52. package/dist/collection/components/sd-chip-input/sd-chip-input.js +58 -16
  53. package/dist/collection/components/sd-ghost-button/sd-ghost-button.js +3 -3
  54. package/dist/collection/components/sd-table/sd-table.stories.helpers.js +97 -0
  55. package/dist/collection/components/sd-table/sd-thead/sd-thead.css +21 -0
  56. package/dist/collection/components/sd-table/sd-thead/sd-thead.js +87 -7
  57. package/dist/components/index.js +1 -1
  58. package/dist/components/{p-C1QezE7u.js → p-2-7UYvqL.js} +1 -1
  59. package/dist/components/{p-B-Igud6n.js → p-4I0LJNSg.js} +1 -1
  60. package/dist/components/p-B3bERWUt.js +1 -0
  61. package/dist/components/{p-DIc8C633.js → p-BDm6daTX.js} +1 -1
  62. package/dist/components/{p-CZYTZeMe.js → p-BFMUpKa2.js} +1 -1
  63. package/dist/components/{p-Cj_1bYZF.js → p-BJMpxQSk.js} +1 -1
  64. package/dist/components/{p-DU0IkIvI.js → p-BLsuwMw4.js} +1 -1
  65. package/dist/components/{p-DZikCqcw.js → p-BRKeMTWI.js} +1 -1
  66. package/dist/components/{p-BjSMh85k.js → p-BUB0CcPo.js} +1 -1
  67. package/dist/components/{p-CBDBmMmw.js → p-BYgT6mRD.js} +1 -1
  68. package/dist/components/p-BdFwmTyS.js +1 -0
  69. package/dist/components/{p-BIHVGo10.js → p-BeKMwT89.js} +1 -1
  70. package/dist/components/p-BnhzUsGP.js +1 -0
  71. package/dist/components/{p-C3mTIE8H.js → p-Btpf6Xpg.js} +1 -1
  72. package/dist/components/{p-B76pFg6k.js → p-BwgUEhOa.js} +1 -1
  73. package/dist/components/{p-CTw1Deo8.js → p-C2cNc56z.js} +1 -1
  74. package/dist/components/{p-CTxZT3Je.js → p-C3rOud8J.js} +1 -1
  75. package/dist/components/{p-D4zy1T3V.js → p-C9rjLN0u.js} +1 -1
  76. package/dist/components/{p-CCCwPJ5p.js → p-CEVDmQdt.js} +1 -1
  77. package/dist/components/{p-BQQC-6k4.js → p-CGJ1L8_Y.js} +1 -1
  78. package/dist/components/{p-4MIzxb0h.js → p-CZpcFpSk.js} +1 -1
  79. package/dist/components/p-C_g09O6z.js +1 -0
  80. package/dist/components/{p-B5VNSTAf.js → p-CaQ-qyG-.js} +1 -1
  81. package/dist/components/{p-S2-XqY2R.js → p-ChwRSZ6R.js} +1 -1
  82. package/dist/components/{p-s_75vJTu.js → p-ClBvavih.js} +1 -1
  83. package/dist/components/{p-Dz7VXmIA.js → p-CpBPNHYe.js} +1 -1
  84. package/dist/components/{p-FA9fGvbL.js → p-D3dq5pt5.js} +1 -1
  85. package/dist/components/p-DDahT3Mp.js +1 -0
  86. package/dist/components/{p-BrHnpCXR.js → p-DfKZyde8.js} +1 -1
  87. package/dist/components/{p-DPXOBYhf.js → p-DgZ_vzrA.js} +1 -1
  88. package/dist/components/{p-BFlmHQm9.js → p-Dj1iJxUT.js} +1 -1
  89. package/dist/components/{p-CEKu7cxA.js → p-Dn93jl-w.js} +1 -1
  90. package/dist/components/{p-CcwzTAJC.js → p-DnHzWLdY.js} +1 -1
  91. package/dist/components/{p-Btj50AUe.js → p-IMWw_SJ1.js} +1 -1
  92. package/dist/components/{p-DC5W8Uy1.js → p-iORPryb0.js} +1 -1
  93. package/dist/components/{p-Cugxp5lo.js → p-kDokArZu.js} +1 -1
  94. package/dist/components/{p-l7TaS8q9.js → p-lL2VxD2V.js} +1 -1
  95. package/dist/components/sd-action-modal.js +1 -1
  96. package/dist/components/sd-badge.js +1 -1
  97. package/dist/components/sd-barcode-input.js +1 -1
  98. package/dist/components/sd-button.js +1 -1
  99. package/dist/components/sd-calendar.js +1 -1
  100. package/dist/components/sd-callout.js +1 -1
  101. package/dist/components/sd-card.js +1 -1
  102. package/dist/components/sd-checkbox.js +1 -1
  103. package/dist/components/sd-chip-input.js +1 -1
  104. package/dist/components/sd-chip.js +1 -1
  105. package/dist/components/sd-circle-progress.js +1 -1
  106. package/dist/components/sd-confirm-modal.js +1 -1
  107. package/dist/components/sd-date-box.js +1 -1
  108. package/dist/components/sd-date-picker-trigger.js +1 -1
  109. package/dist/components/sd-date-picker.js +1 -1
  110. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  111. package/dist/components/sd-date-range-picker.js +1 -1
  112. package/dist/components/sd-divider.js +1 -1
  113. package/dist/components/sd-dropdown-button.js +1 -1
  114. package/dist/components/sd-field.js +1 -1
  115. package/dist/components/sd-file-picker.js +1 -1
  116. package/dist/components/sd-floating-portal.js +1 -1
  117. package/dist/components/sd-form.js +1 -1
  118. package/dist/components/sd-ghost-button.js +1 -1
  119. package/dist/components/sd-guide.js +1 -1
  120. package/dist/components/sd-icon.js +1 -1
  121. package/dist/components/sd-input.js +1 -1
  122. package/dist/components/sd-key-value-table.js +1 -1
  123. package/dist/components/sd-linear-progress.js +1 -1
  124. package/dist/components/sd-loading-container.js +1 -1
  125. package/dist/components/sd-loading-modal.js +1 -1
  126. package/dist/components/sd-modal-container.js +1 -1
  127. package/dist/components/sd-number-input.js +1 -1
  128. package/dist/components/sd-pagination.js +1 -1
  129. package/dist/components/sd-popover.js +1 -1
  130. package/dist/components/sd-popup.js +1 -1
  131. package/dist/components/sd-portal.js +1 -1
  132. package/dist/components/sd-radio-button.js +1 -1
  133. package/dist/components/sd-radio-group.js +1 -1
  134. package/dist/components/sd-radio.js +1 -1
  135. package/dist/components/sd-select-list-item-search.js +1 -1
  136. package/dist/components/sd-select-list-item.js +1 -1
  137. package/dist/components/sd-select-listbox.js +1 -1
  138. package/dist/components/sd-select-trigger.js +1 -1
  139. package/dist/components/sd-select.js +1 -1
  140. package/dist/components/sd-switch.js +1 -1
  141. package/dist/components/sd-table.js +1 -1
  142. package/dist/components/sd-tabs.js +1 -1
  143. package/dist/components/sd-tag.js +1 -1
  144. package/dist/components/sd-tbody.js +1 -1
  145. package/dist/components/sd-td.js +1 -1
  146. package/dist/components/sd-text-link.js +1 -1
  147. package/dist/components/sd-textarea.js +1 -1
  148. package/dist/components/sd-thead.js +1 -1
  149. package/dist/components/sd-toast-container.js +1 -1
  150. package/dist/components/sd-toast.js +1 -1
  151. package/dist/components/sd-toggle.js +1 -1
  152. package/dist/components/sd-tooltip.js +1 -1
  153. package/dist/components/sd-tr.js +1 -1
  154. package/dist/design-system/design-system.css +1 -1
  155. package/dist/design-system/design-system.esm.js +1 -1
  156. package/dist/design-system/{p-2ba0b35a.entry.js → p-12e7b9fc.entry.js} +1 -1
  157. package/dist/design-system/{p-ccc85130.entry.js → p-1e1a5c69.entry.js} +1 -1
  158. package/dist/design-system/p-1e9793d6.entry.js +1 -0
  159. package/dist/design-system/{p-ce83eca1.entry.js → p-2646a746.entry.js} +1 -1
  160. package/dist/design-system/{p-a71a8b31.entry.js → p-3c4b57b5.entry.js} +1 -1
  161. package/dist/design-system/{p-99f33027.entry.js → p-43316703.entry.js} +1 -1
  162. package/dist/design-system/{p-e310f188.entry.js → p-43c79402.entry.js} +1 -1
  163. package/dist/design-system/{p-bfba449b.entry.js → p-45651573.entry.js} +1 -1
  164. package/dist/design-system/{p-88926a42.entry.js → p-496d3684.entry.js} +1 -1
  165. package/dist/design-system/{p-d5b535ad.entry.js → p-4d68b0a8.entry.js} +1 -1
  166. package/dist/design-system/{p-68687503.entry.js → p-578683b5.entry.js} +1 -1
  167. package/dist/design-system/{p-ce5df7ef.entry.js → p-586602a8.entry.js} +1 -1
  168. package/dist/design-system/{p-9dc0c2f9.entry.js → p-60f3ce4f.entry.js} +1 -1
  169. package/dist/design-system/{p-4f69fde0.entry.js → p-64d63a3f.entry.js} +1 -1
  170. package/dist/design-system/{p-563a8242.entry.js → p-6cd3da51.entry.js} +1 -1
  171. package/dist/design-system/p-7233ffb7.entry.js +1 -0
  172. package/dist/design-system/p-754c11a8.entry.js +1 -0
  173. package/dist/design-system/{p-ac81b46e.entry.js → p-8101c564.entry.js} +1 -1
  174. package/dist/design-system/{p-4bc0ce52.entry.js → p-829b7e4f.entry.js} +1 -1
  175. package/dist/design-system/{p-7c507d39.entry.js → p-83a86e6d.entry.js} +1 -1
  176. package/dist/design-system/p-86e54f19.entry.js +1 -0
  177. package/dist/design-system/{p-4eeca0cb.entry.js → p-93f876ce.entry.js} +1 -1
  178. package/dist/design-system/p-956956af.entry.js +1 -0
  179. package/dist/design-system/{p-90436be8.entry.js → p-9761ef4a.entry.js} +1 -1
  180. package/dist/design-system/{p-50b5cf37.entry.js → p-9b7d3077.entry.js} +1 -1
  181. package/dist/design-system/{p-C7HJ-NfO.js → p-BZ5lcC25.js} +1 -1
  182. package/dist/{components/p-BRmilX-4.js → design-system/p-GXE2lEVj.js} +1 -1
  183. package/dist/design-system/{p-DDj5KTBF.js → p-ITP9Focx.js} +1 -1
  184. package/dist/design-system/{p-c684cd96.entry.js → p-a42bcc11.entry.js} +1 -1
  185. package/dist/design-system/{p-ff726fad.entry.js → p-a5fe8b9a.entry.js} +1 -1
  186. package/dist/design-system/{p-2ca4902b.entry.js → p-b1f4e1e5.entry.js} +1 -1
  187. package/dist/design-system/{p-abcc9367.entry.js → p-b29569d7.entry.js} +1 -1
  188. package/dist/design-system/{p-a80cc067.entry.js → p-b2ef677a.entry.js} +1 -1
  189. package/dist/design-system/{p-35e1e2fa.entry.js → p-b7e80770.entry.js} +1 -1
  190. package/dist/design-system/{p-6d8a4a23.entry.js → p-c4c81918.entry.js} +1 -1
  191. package/dist/design-system/{p-2df32f8c.entry.js → p-c79bf2eb.entry.js} +1 -1
  192. package/dist/design-system/{p-52e88677.entry.js → p-ccbf8687.entry.js} +1 -1
  193. package/dist/design-system/{p-b881bbb6.entry.js → p-d10efe7e.entry.js} +1 -1
  194. package/dist/design-system/{p-274dbc65.entry.js → p-df5e8dba.entry.js} +1 -1
  195. package/dist/design-system/{p-fc65bbe2.entry.js → p-e018fdb1.entry.js} +1 -1
  196. package/dist/design-system/{p-9a010c12.entry.js → p-e897484c.entry.js} +1 -1
  197. package/dist/design-system/{p-552acf98.entry.js → p-e94bd6d7.entry.js} +1 -1
  198. package/dist/design-system/{p-c93c623f.entry.js → p-f280e59d.entry.js} +1 -1
  199. package/dist/esm/design-system.js +3 -3
  200. package/dist/esm/{index-C7HJ-NfO.js → index-BZ5lcC25.js} +1 -1
  201. package/dist/esm/loader.js +3 -3
  202. package/dist/esm/sd-action-modal.entry.js +1 -1
  203. package/dist/esm/sd-badge.entry.js +1 -1
  204. package/dist/esm/sd-barcode-input.entry.js +1 -1
  205. package/dist/esm/sd-button_2.entry.js +5 -5
  206. package/dist/esm/sd-calendar_2.entry.js +1 -1
  207. package/dist/esm/sd-callout.entry.js +1 -1
  208. package/dist/esm/sd-card.entry.js +1 -1
  209. package/dist/esm/sd-checkbox.entry.js +1 -1
  210. package/dist/esm/sd-chip-input.entry.js +61 -19
  211. package/dist/esm/{sd-chip.config-DDj5KTBF.js → sd-chip.config-ITP9Focx.js} +1 -1
  212. package/dist/esm/sd-chip.entry.js +6 -4
  213. package/dist/esm/sd-circle-progress.entry.js +1 -1
  214. package/dist/esm/sd-confirm-modal_2.entry.js +1 -1
  215. package/dist/esm/sd-date-box.entry.js +1 -1
  216. package/dist/esm/sd-date-picker_7.entry.js +1 -1
  217. package/dist/esm/sd-date-range-picker-calendar.entry.js +1 -1
  218. package/dist/esm/sd-divider.entry.js +1 -1
  219. package/dist/esm/sd-dropdown-button.entry.js +1 -1
  220. package/dist/esm/sd-field_3.entry.js +2 -2
  221. package/dist/esm/sd-form.entry.js +1 -1
  222. package/dist/esm/sd-ghost-button_3.entry.js +4 -4
  223. package/dist/esm/sd-guide.entry.js +1 -1
  224. package/dist/esm/sd-key-value-table.entry.js +1 -1
  225. package/dist/esm/sd-linear-progress.entry.js +1 -1
  226. package/dist/esm/sd-loading-container.entry.js +1 -1
  227. package/dist/esm/sd-modal-container.entry.js +1 -1
  228. package/dist/esm/sd-pagination_4.entry.js +87 -8
  229. package/dist/esm/sd-popover.entry.js +2 -2
  230. package/dist/esm/sd-popup.entry.js +1 -1
  231. package/dist/esm/sd-radio-button.entry.js +1 -1
  232. package/dist/esm/sd-radio.entry.js +1 -1
  233. package/dist/esm/sd-select-list-item_2.entry.js +1 -1
  234. package/dist/esm/sd-select_3.entry.js +1 -1
  235. package/dist/esm/sd-switch.entry.js +1 -1
  236. package/dist/esm/sd-table.entry.js +1 -1
  237. package/dist/esm/sd-tabs.entry.js +1 -1
  238. package/dist/esm/sd-td.entry.js +1 -1
  239. package/dist/esm/sd-text-link.entry.js +1 -1
  240. package/dist/esm/sd-toast-container.entry.js +1 -1
  241. package/dist/esm/sd-toast.entry.js +1 -1
  242. package/dist/esm/sd-toggle.entry.js +1 -1
  243. package/dist/esm/{tooltipArrow-Bgf3crs7.js → tooltipArrow-ByHjyr3Z.js} +1 -1
  244. package/dist/types/components/sd-chip/sd-chip.d.ts +2 -0
  245. package/dist/types/components/sd-table/constants.d.ts +1 -0
  246. package/dist/types/components/sd-table/sd-table.stories.helpers.d.ts +10 -0
  247. package/dist/types/components/sd-table/sd-thead/sd-thead.d.ts +8 -0
  248. package/dist/types/components.d.ts +11 -0
  249. package/hydrate/index.js +160 -35
  250. package/hydrate/index.mjs +160 -35
  251. package/package.json +1 -1
  252. package/dist/components/p-BVlg0BoC.js +0 -1
  253. package/dist/components/p-BzsHwLh6.js +0 -1
  254. package/dist/components/p-DJY7lCe4.js +0 -1
  255. package/dist/components/p-YpyfqzoP.js +0 -1
  256. package/dist/design-system/p-0f35cd21.entry.js +0 -1
  257. package/dist/design-system/p-35da166a.entry.js +0 -1
  258. package/dist/design-system/p-4c1559c8.entry.js +0 -1
  259. package/dist/design-system/p-4e44b45b.entry.js +0 -1
  260. package/dist/design-system/p-DUyBmuH_.js +0 -1
  261. package/dist/design-system/p-fe5b8eaa.entry.js +0 -1
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h, F as Fragment, a as getElement, H as Host } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, h, F as Fragment, a as getElement, H as Host } from './index-BZ5lcC25.js';
2
2
  import { T as TABLE_ID_ATTR } from './constants-sZMi_32I.js';
3
3
  import { a as TABLE_SELECTABLE_COLUMN_WIDTH, r as resolveTableIconColor, e as resolveSortIconName, c as TABLE_BORDER, f as TABLE_HEADER_RESIZING_BAR, g as TABLE_HEADER_TYPOGRAPHY, h as TABLE_HEADER_COLORS, i as TABLE_HEADER_LAYOUT, T as TABLE_BODY_LAYOUT, j as TABLE_SEPARATOR, b as TABLE_BODY_TYPOGRAPHY } from './sd-table.config-B3wuA5wX.js';
4
4
  import './component.table-D6GUzecR.js';
@@ -232,7 +232,7 @@ const SdTbody = class {
232
232
  };
233
233
  SdTbody.style = sdTbodyCss();
234
234
 
235
- const sdTheadCss = () => `sd-thead{display:contents}sd-thead *{box-sizing:border-box}.thead{display:table-header-group;height:var(--table-header-height, 36px)}.thead--sticky{position:sticky;top:0;z-index:120}.tr{display:table-row;width:100%}.th{display:table-cell;background:var(--table-header-bg, #F5FAFF);height:var(--table-header-height, 36px);padding:0 var(--table-header-padding-x, 16px);font-family:var(--table-header-font-family, inherit);font-weight:var(--table-header-font-weight, 500);font-size:var(--table-header-font-size, 12px);line-height:var(--table-header-line-height, 20px);text-decoration:var(--table-header-text-decoration, none);vertical-align:middle;border-bottom:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.th--selected{position:relative;width:var(--table-selectable-width, 48px) !important;max-width:var(--table-selectable-width, 48px) !important;min-width:var(--table-selectable-width, 48px) !important;text-align:center}.th--selected sd-checkbox label{position:relative}.th--selected sd-checkbox label:before{content:"";position:absolute;inset:-6px}.th.sticky-left{position:sticky;background-color:var(--table-header-bg, #F5FAFF);z-index:110 !important;left:var(--sticky-left-offset, 0)}.th.sticky-right{position:sticky;background-color:var(--table-header-bg, #F5FAFF);z-index:110 !important;right:var(--sticky-right-offset, 0)}.th.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}.th.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}.th.sticky-left-edge.is-scrolled-left{overflow:visible}.th.sticky-left-edge.is-scrolled-left:after{opacity:1}.th.sticky-right-edge.is-scrolled-right{overflow:visible}.th.sticky-right-edge.is-scrolled-right:after{opacity:1}.th__content{display:flex;flex-flow:row nowrap;align-items:center;gap:var(--table-header-gap, 4px)}.th__content--left{justify-content:flex-start}.th__content--center{justify-content:center}.th__content--right{justify-content:flex-end}.th__content--label{white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.th__bar{position:absolute;top:50%;right:0;transform:translateY(-50%);width:var(--table-border-width, 1px);height:var(--table-header-resizer-height, 16px);z-index:3;background-color:var(--table-header-resizer-color, #CCCCCC)}.th__resizer{position:absolute;top:50%;right:0;transform:translateY(-50%);width:4px;height:var(--table-header-resizer-height, 16px);cursor:col-resize;z-index:3;border-left:var(--table-border-width, 1px) solid var(--table-header-resizer-color, #CCCCCC);border-right:var(--table-border-width, 1px) solid var(--table-header-resizer-color, #CCCCCC)}.th__resizer--left{right:auto;left:0}`;
235
+ const sdTheadCss = () => `sd-thead{display:contents}sd-thead *{box-sizing:border-box}.thead{display:table-header-group;height:var(--table-header-height, 36px)}.thead--sticky{position:sticky;top:0;z-index:120}.tr{display:table-row;width:100%}.th{display:table-cell;background:var(--table-header-bg, #F5FAFF);height:var(--table-header-height, 36px);padding:0 var(--table-header-padding-x, 16px);font-family:var(--table-header-font-family, inherit);font-weight:var(--table-header-font-weight, 500);font-size:var(--table-header-font-size, 12px);line-height:var(--table-header-line-height, 20px);text-decoration:var(--table-header-text-decoration, none);vertical-align:middle;border-bottom:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.th--selected{position:relative;width:var(--table-selectable-width, 48px) !important;max-width:var(--table-selectable-width, 48px) !important;min-width:var(--table-selectable-width, 48px) !important;text-align:center}.th--selected sd-checkbox label{position:relative}.th--selected sd-checkbox label:before{content:"";position:absolute;inset:-6px}.th.sticky-left{position:sticky;background-color:var(--table-header-bg, #F5FAFF);z-index:110 !important;left:var(--sticky-left-offset, 0)}.th.sticky-right{position:sticky;background-color:var(--table-header-bg, #F5FAFF);z-index:110 !important;right:var(--sticky-right-offset, 0)}.th.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}.th.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}.th.sticky-left-edge.is-scrolled-left{overflow:visible}.th.sticky-left-edge.is-scrolled-left:after{opacity:1}.th.sticky-right-edge.is-scrolled-right{overflow:visible}.th.sticky-right-edge.is-scrolled-right:after{opacity:1}.th__content{display:flex;flex-flow:row nowrap;align-items:center;gap:var(--table-header-gap, 4px)}.th__content--left{justify-content:flex-start}.th__content--center{justify-content:center}.th__content--right{justify-content:flex-end}.th__content--label{white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.th__bar{position:absolute;top:50%;right:0;transform:translateY(-50%);width:var(--table-border-width, 1px);height:var(--table-header-resizer-height, 16px);z-index:3;background-color:var(--table-header-resizer-color, #CCCCCC)}.th__dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;padding:0;border:none;background:transparent;cursor:pointer;color:inherit;border-radius:2px}.th__dropdown-trigger sd-icon{transition:transform 0.15s ease}.th__dropdown-trigger--open sd-icon{transform:rotate(180deg)}.th__resizer{position:absolute;top:50%;right:0;transform:translateY(-50%);width:4px;height:var(--table-header-resizer-height, 16px);cursor:col-resize;z-index:3;border-left:var(--table-border-width, 1px) solid var(--table-header-resizer-color, #CCCCCC);border-right:var(--table-border-width, 1px) solid var(--table-header-resizer-color, #CCCCCC)}.th__resizer--left{right:auto;left:0}`;
236
236
 
237
237
  const SdThead = class {
238
238
  constructor(hostRef) {
@@ -268,14 +268,29 @@ const SdThead = class {
268
268
  _stickyHeader = false;
269
269
  _scrolledLeft = false;
270
270
  _scrolledRight = false;
271
+ dropdownOpenMap = {};
271
272
  tableEl = null;
273
+ dropdownRefs = {};
274
+ dropdownThRefs = {};
275
+ dropdownPortals = {};
272
276
  handleColumnsChange(newCols) {
273
277
  if (Array.isArray(newCols) && (this.columnWidths ?? []).length === 0) {
274
278
  this.columnWidths = newCols.map(c => (c.autoWidth ? 0 : parseInt(c.width || '120', 10)));
275
279
  }
276
280
  }
281
+ disconnectedCallback() {
282
+ const portals = this.dropdownPortals ?? {};
283
+ Object.values(portals).forEach(portal => {
284
+ if (portal?.parentNode != null)
285
+ portal.parentNode.removeChild(portal);
286
+ });
287
+ }
277
288
  componentWillLoad() {
278
289
  this.syncTableContext();
290
+ this.dropdownOpenMap = this.dropdownOpenMap ?? {};
291
+ this.dropdownRefs = this.dropdownRefs ?? {};
292
+ this.dropdownThRefs = this.dropdownThRefs ?? {};
293
+ this.dropdownPortals = this.dropdownPortals ?? {};
279
294
  this.columnWidths = Array.isArray(this.columnWidths) ? this.columnWidths : [];
280
295
  this.resolveConfig();
281
296
  if ((this.columnWidths ?? []).length === 0) {
@@ -285,6 +300,36 @@ const SdThead = class {
285
300
  componentDidLoad() {
286
301
  this.syncTableContext();
287
302
  this.resolveConfig();
303
+ this.initDropdownPortals();
304
+ }
305
+ // sd-portal을 body에 붙여 CSS transform 영향 없이 정확한 위치에 패널을 표시한다.
306
+ // <slot>을 render에 두지 않고 직접 DOM 이동(slot 속성 제거)으로 Stencil 슬롯 에뮬레이션 충돌을 피한다.
307
+ initDropdownPortals() {
308
+ const cols = this._columns ?? [];
309
+ const hasDropdownCols = cols.filter(c => c.hasDropdown === true);
310
+ if (hasDropdownCols.length === 0)
311
+ return;
312
+ for (const col of hasDropdownCols) {
313
+ const colName = col.name;
314
+ // 이미 포탈이 생성된 컬럼은 건너뜀 (refreshConfig 재호출 대비)
315
+ if ((this.dropdownPortals ?? {})[colName] != null)
316
+ continue;
317
+ const slotContent = this.el.querySelector(`[slot="dropdown-${colName}"]`);
318
+ if (slotContent == null)
319
+ continue;
320
+ // slot 속성 제거: Stencil 슬롯 에뮬레이션이 재배포하지 못하게 한다
321
+ slotContent.removeAttribute('slot');
322
+ const portal = document.createElement('sd-portal');
323
+ portal.parentRef = this.dropdownThRefs[colName] ?? null;
324
+ portal.open = false;
325
+ // 첫 open 전까지 포탈 호스트 자체를 숨긴다.
326
+ // moveSlotContent()가 open=true 시 children을 독립 wrapper div로 이동하므로 이후 동작에 영향 없음.
327
+ portal.style.display = 'none';
328
+ portal.addEventListener('sdClose', () => this.closeDropdown(colName));
329
+ portal.appendChild(slotContent);
330
+ document.body.appendChild(portal);
331
+ this.dropdownPortals[colName] = portal;
332
+ }
288
333
  }
289
334
  syncTableContext() {
290
335
  // sd-table이 shadow:true이므로 fallback content로 렌더되면 closest가 경계를 못 넘는다.
@@ -327,6 +372,7 @@ const SdThead = class {
327
372
  /** 테이블 설정을 다시 불러옵니다. */
328
373
  async refreshConfig() {
329
374
  this.resolveConfig();
375
+ this.initDropdownPortals();
330
376
  }
331
377
  /** 컬럼 너비를 업데이트합니다. */
332
378
  async setColumnWidths(widths) {
@@ -371,6 +417,28 @@ const SdThead = class {
371
417
  handleColumnSort = (col) => {
372
418
  this.sdColumnSort.emit({ column: col });
373
419
  };
420
+ toggleDropdown(name) {
421
+ const isOpen = this.dropdownOpenMap[name] !== true;
422
+ const portals = this.dropdownPortals ?? {};
423
+ const newMap = { ...this.dropdownOpenMap };
424
+ // _columns 기준으로 순회: portals가 비어도 dropdownOpenMap은 항상 갱신됨
425
+ for (const col of (this._columns ?? []).filter(c => c.hasDropdown === true)) {
426
+ const shouldBeOpen = col.name === name ? isOpen : false;
427
+ newMap[col.name] = shouldBeOpen;
428
+ const portal = portals[col.name];
429
+ if (portal != null)
430
+ portal.open = shouldBeOpen;
431
+ }
432
+ this.dropdownOpenMap = newMap;
433
+ }
434
+ closeDropdown(name) {
435
+ if (this.dropdownOpenMap[name] !== true)
436
+ return;
437
+ this.dropdownOpenMap = { ...this.dropdownOpenMap, [name]: false };
438
+ const portal = (this.dropdownPortals ?? {})[name];
439
+ if (portal != null)
440
+ portal.open = false;
441
+ }
374
442
  handleSelectAll(checked) {
375
443
  const nextChecked = !!checked;
376
444
  const safeRows = Array.isArray(this.rows) ? this.rows : [];
@@ -387,6 +455,8 @@ const SdThead = class {
387
455
  }
388
456
  render() {
389
457
  const safeRows = Array.isArray(this.rows) ? this.rows : [];
458
+ const dropdownOpenMap = this.dropdownOpenMap ?? {};
459
+ const dropdownRefs = this.dropdownRefs ?? {};
390
460
  const stickyLeftCount = this._stickyColumn.left || 0;
391
461
  const stickyRightCount = this._stickyColumn.right || 0;
392
462
  const stickyLeftCols = this.visibleColumns.slice(0, stickyLeftCount);
@@ -408,22 +478,25 @@ const SdThead = class {
408
478
  '--table-border-color': TABLE_BORDER.color,
409
479
  '--table-border-width': `${TABLE_BORDER.width}px`,
410
480
  };
411
- return (h(Host, { key: '26981191de95775401cad61e80fbf1e22cb0250b', slot: `${this.tableId}-head`, style: headStyle }, h("thead", { key: 'a53d430f1b71a45b98de2912b563d3f17cd20b24', class: {
481
+ return (h(Host, { key: '947f5e5b0e59e7e6f8a73e4fd44dbfa646cb630a', slot: `${this.tableId}-head`, style: headStyle }, h("thead", { key: '2e0ffbfe9d96528c6e0082d4883fa462a18831d6', class: {
412
482
  'thead': true,
413
483
  'thead--sticky': this._stickyHeader,
414
- } }, h("tr", { key: '27ce13b70bfda4b210b36eb746fb60d369d9f5be', class: "tr" }, this._selectable && (h("th", { key: 'e353b00c7a02b82781e5107b1fd73dc556427edf', class: {
484
+ } }, h("tr", { key: '5843a18e1548bc6546e447d4c9213375116af0e9', class: "tr" }, this._selectable && (h("th", { key: '914024ca35874747e39f1819337cd4ad1cbe733d', class: {
415
485
  'th': true,
416
486
  'th--selected': true,
417
487
  'sticky-left': true,
418
488
  'sticky-left-edge': stickyLeftCount === 0,
419
489
  'is-scrolled-left': stickyLeftCount === 0 && this._scrolledLeft,
420
- }, style: { '--sticky-left-offset': '0px' } }, h("sd-checkbox", { key: '18eeabbcc4fc10196d6448bd9d0493b55778f9f1', value: this.getIsAllChecked(), disabled: safeRows.length === 0, onSdUpdate: (e) => this.handleSelectAll(e.detail) }), h("div", { key: '1a5a0561fc94be53a8244827ac9ae4f98fa766c2', class: "th__bar" }))), stickyLeftCols.map((col, idx) => (h("th", { key: col.name, class: {
490
+ }, style: { '--sticky-left-offset': '0px' } }, h("sd-checkbox", { key: 'e07232f1f5fa02589573ddaae53ebdadbdb97674', value: this.getIsAllChecked(), disabled: safeRows.length === 0, onSdUpdate: (e) => this.handleSelectAll(e.detail) }), h("div", { key: '08b504cfd4f420e76e91d649eed28c7068517044', class: "th__bar" }))), stickyLeftCols.map((col, idx) => (h("th", { key: col.name, class: {
421
491
  'th': true,
422
492
  [`${col.thClass}`]: Boolean(col.thClass),
423
493
  'sticky-left': true,
424
494
  'sticky-left-edge': idx === stickyLeftCount - 1,
425
495
  'is-scrolled-left': idx === stickyLeftCount - 1 && this._scrolledLeft,
426
- }, style: { ...col.thStyle, ...this.getStickyStyle(idx) } }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text))))))), this._resizable && idx !== lastColIdx && (
496
+ }, style: { ...col.thStyle, ...this.getStickyStyle(idx) }, ref: col.hasDropdown === true ? (el => { this.dropdownThRefs[col.name] = el; }) : undefined }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text)))))), col.hasDropdown === true && (h("button", { class: {
497
+ 'th__dropdown-trigger': true,
498
+ 'th__dropdown-trigger--open': dropdownOpenMap[col.name] === true,
499
+ }, ref: el => { dropdownRefs[col.name] = el; }, onClick: () => this.toggleDropdown(col.name), "aria-haspopup": "listbox", "aria-expanded": dropdownOpenMap[col.name] === true ? 'true' : 'false' }, h("sd-icon", { name: "chevronDown", size: "12" })))), this._resizable && idx !== lastColIdx && (
427
500
  // column resize 는 마우스 드래그 전용 인터랙션이라 키보드 핸들러를 두지 않는다.
428
501
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
429
502
  h("div", { class: "th__resizer", onMouseDown: (evt) => this.handleResize(idx, evt) }))))), middleCols.map((col, relativeIdx) => {
@@ -431,7 +504,10 @@ const SdThead = class {
431
504
  return (h("th", { key: col.name, class: {
432
505
  th: true,
433
506
  [`${col.thClass}`]: Boolean(col.thClass),
434
- }, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) } }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text))))))), this._resizable && actualColIdx !== lastColIdx && (
507
+ }, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) }, ref: col.hasDropdown === true ? (el => { this.dropdownThRefs[col.name] = el; }) : undefined }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text)))))), col.hasDropdown === true && (h("button", { class: {
508
+ 'th__dropdown-trigger': true,
509
+ 'th__dropdown-trigger--open': this.dropdownOpenMap[col.name] === true,
510
+ }, ref: el => { this.dropdownRefs[col.name] = el; }, onClick: () => this.toggleDropdown(col.name), "aria-haspopup": "listbox", "aria-expanded": this.dropdownOpenMap[col.name] === true ? 'true' : 'false' }, h("sd-icon", { name: "chevronDown", size: "12" })))), this._resizable && actualColIdx !== lastColIdx && (
435
511
  // column resize 는 마우스 드래그 전용 인터랙션이라 키보드 핸들러를 두지 않는다.
436
512
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
437
513
  h("div", { class: "th__resizer", onMouseDown: (evt) => this.handleResize(actualColIdx, evt) }))));
@@ -443,7 +519,10 @@ const SdThead = class {
443
519
  'sticky-right': true,
444
520
  'sticky-right-edge': relativeIdx === 0,
445
521
  'is-scrolled-right': relativeIdx === 0 && this._scrolledRight,
446
- }, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) } }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text))))))), this._resizable && (
522
+ }, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) }, ref: col.hasDropdown === true ? (el => { this.dropdownThRefs[col.name] = el; }) : undefined }, h("div", { class: `th__content th__content--${col.align || 'left'}` }, h("div", { class: "th__content--label" }, col.label), col.icon && (h("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (h("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (h("sd-tooltip", { ...col.tooltipOptions }, h("div", { slot: "content" }, col.tooltip.map(text => (h("p", null, text)))))), col.hasDropdown === true && (h("button", { class: {
523
+ 'th__dropdown-trigger': true,
524
+ 'th__dropdown-trigger--open': this.dropdownOpenMap[col.name] === true,
525
+ }, ref: el => { this.dropdownRefs[col.name] = el; }, onClick: () => this.toggleDropdown(col.name), "aria-haspopup": "listbox", "aria-expanded": this.dropdownOpenMap[col.name] === true ? 'true' : 'false' }, h("sd-icon", { name: "chevronDown", size: "12" })))), this._resizable && (
447
526
  // column resize 는 마우스 드래그 전용 인터랙션이라 키보드 핸들러를 두지 않는다.
448
527
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
449
528
  h("div", { class: "th__resizer th__resizer--left", onMouseDown: (evt) => this.handleResize(actualColIdx, evt, true) }))));
@@ -1,5 +1,5 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h, F as Fragment } from './index-C7HJ-NfO.js';
2
- import { T as TooltipArrow } from './tooltipArrow-Bgf3crs7.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h, F as Fragment } from './index-BZ5lcC25.js';
2
+ import { T as TooltipArrow } from './tooltipArrow-ByHjyr3Z.js';
3
3
 
4
4
  const popover = {
5
5
  "default": {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-BZ5lcC25.js';
2
2
  import { s as systemTokens } from './system-BJfiMC9H.js';
3
3
 
4
4
  const popup$1 = {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-BZ5lcC25.js';
2
2
 
3
3
  const radioButton = {
4
4
  xs: {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-BZ5lcC25.js';
2
2
 
3
3
  const radio = {
4
4
  size: "16",
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-BZ5lcC25.js';
2
2
  import { g as LIST_ITEM_LAYOUT, i as isHtmlLabel, h as LIST_ITEM_TYPOGRAPHY, j as LIST_ITEM_COLORS, k as SEARCH_DEBOUNCE_MS } from './sd-select.config-D6ktrl7E.js';
3
3
  import { s as sanitizeInlineHtml } from './sanitize-inline-html-BE4tnQ2Z.js';
4
4
  import './component.listItem-U8VaRj9c.js';
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-BZ5lcC25.js';
2
2
  import { n as nanoid } from './index-CCwNgVmC.js';
3
3
  import { c as countLeaves, S as SEARCH_THRESHOLD, f as filterTree, i as isHtmlLabel, e as extractText, 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-D6ktrl7E.js';
4
4
  import { s as sanitizeInlineHtml } from './sanitize-inline-html-BE4tnQ2Z.js';
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-BZ5lcC25.js';
2
2
 
3
3
  var switchTokens = {
4
4
  "switch": {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, d as readTask, f as forceUpdate, h, H as Host } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, d as readTask, f as forceUpdate, h, H as Host } from './index-BZ5lcC25.js';
2
2
  import { T as TABLE_ID_ATTR } from './constants-sZMi_32I.js';
3
3
  import { T as TABLE_BODY_LAYOUT, a as TABLE_SELECTABLE_COLUMN_WIDTH, b as TABLE_BODY_TYPOGRAPHY, c as TABLE_BORDER, d as TABLE_RADIUS } from './sd-table.config-B3wuA5wX.js';
4
4
  import './component.table-D6GUzecR.js';
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-BZ5lcC25.js';
2
2
 
3
3
  const tab = {
4
4
  main: {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, a as getElement, f as forceUpdate, h, H as Host } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, a as getElement, f as forceUpdate, h, H as Host } from './index-BZ5lcC25.js';
2
2
  import { T as TABLE_ID_ATTR } from './constants-sZMi_32I.js';
3
3
 
4
4
  const sdTdCss = () => `sd-td *{box-sizing:border-box}sd-td{display:contents}sd-td.align-left{text-align:left}sd-td.align-center{text-align:center}sd-td.align-right{text-align:right}`;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-BZ5lcC25.js';
2
2
 
3
3
  const textLink = {
4
4
  sm: {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-BZ5lcC25.js';
2
2
 
3
3
  const DEFAULT_DURATION = 4000;
4
4
  const DEFAULT_MAX_VISIBLE = 3;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-BZ5lcC25.js';
2
2
 
3
3
  const toast = {
4
4
  icon: "16",
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-C7HJ-NfO.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-BZ5lcC25.js';
2
2
 
3
3
  const toggle = {
4
4
  height: "28",
@@ -1,4 +1,4 @@
1
- import { h } from './index-C7HJ-NfO.js';
1
+ import { h } from './index-BZ5lcC25.js';
2
2
 
3
3
  const TooltipArrow = (props) => (h("svg", { width: "16", height: "12", viewBox: "0 0 16 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, h("path", { d: "M8.83205 10.7519C8.43623 11.3457 7.56377 11.3457 7.16795 10.7519L1.04907e-06 -1.39876e-06L16 0L8.83205 10.7519Z", fill: "currentColor" })));
4
4
 
@@ -13,6 +13,8 @@ export declare class SdChip implements ValidatableField {
13
13
  disabled: boolean;
14
14
  /** 인라인 편집 가능 여부 */
15
15
  editable: boolean;
16
+ /** 닫기 버튼 표시 여부 */
17
+ showRemove: boolean;
16
18
  /** 편집 중 표시할 placeholder */
17
19
  placeholder: string;
18
20
  /** 유효성 검사 규칙 목록 */
@@ -19,6 +19,7 @@ export interface SdTableColumn {
19
19
  maxWidth?: number;
20
20
  thStyle?: Record<string, any>;
21
21
  thClass?: string;
22
+ hasDropdown?: boolean;
22
23
  }
23
24
  export interface Row {
24
25
  [key: string]: any;
@@ -25,5 +25,15 @@ export declare class StoryVirtualTable extends LitElement {
25
25
  declare global {
26
26
  interface HTMLElementTagNameMap {
27
27
  'story-virtual-table': StoryVirtualTable;
28
+ 'story-dropdown-table': StoryDropdownTable;
28
29
  }
29
30
  }
31
+ export declare class StoryDropdownTable extends LitElement {
32
+ createRenderRoot(): this;
33
+ private roleFilter;
34
+ private statusFilter;
35
+ constructor();
36
+ private get displayRows();
37
+ private itemStyle;
38
+ render(): TemplateResult<1>;
39
+ }
@@ -32,10 +32,16 @@ export declare class SdThead {
32
32
  private _stickyHeader;
33
33
  private _scrolledLeft;
34
34
  private _scrolledRight;
35
+ private dropdownOpenMap;
35
36
  private tableEl;
37
+ private dropdownRefs;
38
+ private dropdownThRefs;
39
+ private dropdownPortals;
36
40
  handleColumnsChange(newCols?: SdTableColumn[]): void;
41
+ disconnectedCallback(): void;
37
42
  componentWillLoad(): void;
38
43
  componentDidLoad(): void;
44
+ private initDropdownPortals;
39
45
  private syncTableContext;
40
46
  private resolveConfig;
41
47
  /** 테이블 설정을 다시 불러옵니다. */
@@ -48,6 +54,8 @@ export declare class SdThead {
48
54
  private getStickyStyle;
49
55
  private handleResize;
50
56
  private handleColumnSort;
57
+ private toggleDropdown;
58
+ private closeDropdown;
51
59
  private handleSelectAll;
52
60
  private getIsAllChecked;
53
61
  render(): any;
@@ -419,6 +419,11 @@ export namespace Components {
419
419
  * 유효성 검사를 실행합니다.
420
420
  */
421
421
  "sdValidate": () => Promise<boolean>;
422
+ /**
423
+ * 닫기 버튼 표시 여부
424
+ * @default true
425
+ */
426
+ "showRemove": boolean;
422
427
  /**
423
428
  * 칩 텍스트 값
424
429
  * @default ''
@@ -4470,6 +4475,11 @@ declare namespace LocalJSX {
4470
4475
  * @default []
4471
4476
  */
4472
4477
  "rules"?: Rule[];
4478
+ /**
4479
+ * 닫기 버튼 표시 여부
4480
+ * @default true
4481
+ */
4482
+ "showRemove"?: boolean;
4473
4483
  /**
4474
4484
  * 칩 텍스트 값
4475
4485
  * @default ''
@@ -7132,6 +7142,7 @@ declare namespace LocalJSX {
7132
7142
  "error": boolean;
7133
7143
  "disabled": boolean;
7134
7144
  "editable": boolean;
7145
+ "showRemove": boolean;
7135
7146
  "placeholder": string;
7136
7147
  }
7137
7148
  interface SdChipInputAttributes {