@sellmate/design-system 0.0.52 → 0.0.54

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 (361) hide show
  1. package/dist/cjs/design-system.cjs.js +5 -3
  2. package/dist/cjs/design-system.cjs.js.map +1 -1
  3. package/dist/cjs/{index-Bxead0A0.js → index-B7tkxTye.js} +11 -5
  4. package/dist/cjs/index-B7tkxTye.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +2 -0
  6. package/dist/cjs/loader.cjs.js +4 -2
  7. package/dist/cjs/loader.cjs.js.map +1 -1
  8. package/dist/cjs/sd-badge.cjs.entry.js +4 -4
  9. package/dist/cjs/{sd-button_15.cjs.entry.js → sd-button_23.cjs.entry.js} +1199 -94
  10. package/dist/cjs/sd-card.cjs.entry.js +4 -4
  11. package/dist/cjs/sd-date-box.cjs.entry.js +3 -3
  12. package/dist/cjs/sd-date-picker.cjs.entry.js +4 -4
  13. package/dist/cjs/sd-date-range-picker.cjs.entry.js +5 -5
  14. package/dist/cjs/sd-modal-card.cjs.entry.js +3 -3
  15. package/dist/cjs/sd-popover.cjs.entry.js +6 -6
  16. package/dist/cjs/sd-progress.cjs.entry.js +5 -5
  17. package/dist/cjs/sd-radio-button-group.cjs.entry.js +71 -0
  18. package/dist/cjs/sd-select-multiple.cjs.entry.js +8 -5
  19. package/dist/cjs/sd-table.cjs.entry.js +6 -6
  20. package/dist/cjs/sd-tbody_3.cjs.entry.js +10 -10
  21. package/dist/cjs/sd-td.cjs.entry.js +5 -5
  22. package/dist/cjs/{tooltipArrow-C7cIAuTo.js → tooltipArrow-8I9A3AOE.js} +3 -3
  23. package/dist/cjs/{tooltipArrow-C7cIAuTo.js.map → tooltipArrow-8I9A3AOE.js.map} +1 -1
  24. package/dist/collection/collection-manifest.json +8 -2
  25. package/dist/collection/components/sd-badge/sd-badge.js +1 -1
  26. package/dist/collection/components/sd-card/sd-card.js +1 -1
  27. package/dist/collection/components/sd-date-picker/sd-date-picker.js +1 -1
  28. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +2 -2
  29. package/dist/collection/components/sd-file-picker/sd-file-picker.css +95 -0
  30. package/dist/collection/components/sd-file-picker/sd-file-picker.js +299 -0
  31. package/dist/collection/components/sd-file-picker/sd-file-picker.js.map +1 -0
  32. package/dist/collection/components/sd-guide/sd-guide.js +3 -3
  33. package/dist/collection/components/sd-icon/sd-icon.css +1 -4
  34. package/dist/collection/components/sd-icon/sd-icon.js +1 -1
  35. package/dist/collection/components/sd-input/sd-input.css +1 -4
  36. package/dist/collection/components/sd-input/sd-input.js +2 -2
  37. package/dist/collection/components/sd-loading-spinner/sd-loading-spinner.js +1 -1
  38. package/dist/collection/components/sd-number-input/sd-number-input.css +128 -0
  39. package/dist/collection/components/sd-number-input/sd-number-input.js +744 -0
  40. package/dist/collection/components/sd-number-input/sd-number-input.js.map +1 -0
  41. package/dist/collection/components/sd-pagination/sd-pagination.js +2 -2
  42. package/dist/collection/components/sd-popover/sd-popover.js +2 -2
  43. package/dist/collection/components/sd-portal/sd-portal.js +1 -1
  44. package/dist/collection/components/sd-progress/sd-progress.js +2 -2
  45. package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.css +71 -0
  46. package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.js +214 -0
  47. package/dist/collection/components/sd-radio-button-group/sd-radio-button-group.js.map +1 -0
  48. package/dist/collection/components/sd-radio-group/sd-radio-group.js +1 -1
  49. package/dist/collection/components/sd-select/sd-select-option/sd-select-option.js +1 -1
  50. package/dist/collection/components/sd-select/sd-select.js +28 -4
  51. package/dist/collection/components/sd-select/sd-select.js.map +1 -1
  52. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js +26 -2
  53. package/dist/collection/components/sd-select-multiple/sd-select-multiple.js.map +1 -1
  54. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.css +5 -0
  55. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js +92 -43
  56. package/dist/collection/components/sd-select-multiple-group/sd-select-multiple-group.js.map +1 -1
  57. package/dist/collection/components/sd-select-multiple-group/sd-select-option-group/sd-select-option-group.js +3 -3
  58. package/dist/collection/components/sd-table/sd-table.js +3 -3
  59. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +1 -1
  60. package/dist/collection/components/sd-table/sd-td/sd-td.js +2 -2
  61. package/dist/collection/components/sd-table/sd-th/sd-th.js +1 -1
  62. package/dist/collection/components/sd-table/sd-tr/sd-tr.js +1 -1
  63. package/dist/collection/components/sd-table-backup/sd-table-backup.js +4 -4
  64. package/dist/collection/components/sd-tabs/sd-tabs.css +83 -0
  65. package/dist/collection/components/sd-tabs/sd-tabs.js +180 -0
  66. package/dist/collection/components/sd-tabs/sd-tabs.js.map +1 -0
  67. package/dist/collection/components/sd-tag/sd-tag.js +1 -1
  68. package/dist/collection/components/sd-toast-message/sd-toast-message.css +66 -0
  69. package/dist/collection/components/sd-toast-message/sd-toast-message.js +248 -0
  70. package/dist/collection/components/sd-toast-message/sd-toast-message.js.map +1 -0
  71. package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
  72. package/dist/collection/components/sd-toggle-button/sd-toggle-button.css +46 -0
  73. package/dist/collection/components/sd-toggle-button/sd-toggle-button.js +136 -0
  74. package/dist/collection/components/sd-toggle-button/sd-toggle-button.js.map +1 -0
  75. package/dist/collection/components/sd-tooltip/sd-tooltip.js +4 -4
  76. package/dist/collection/components/sd-tooltip-portal/sd-tooltip-portal.js +1 -1
  77. package/dist/components/index.js +1 -1
  78. package/dist/components/{p-DiehM5Y0.js → p-B05GJor3.js} +9 -9
  79. package/dist/components/p-B05GJor3.js.map +1 -0
  80. package/dist/components/{p-BpNH68jy.js → p-B3H_uLbl.js} +3 -3
  81. package/dist/components/{p-BpNH68jy.js.map → p-B3H_uLbl.js.map} +1 -1
  82. package/dist/components/{p-Dgxczhd0.js → p-BBNolp5g.js} +6 -6
  83. package/dist/components/{p-Dgxczhd0.js.map → p-BBNolp5g.js.map} +1 -1
  84. package/dist/components/{p-gnOKrd57.js → p-BDkKpeVz.js} +3 -3
  85. package/dist/components/{p-gnOKrd57.js.map → p-BDkKpeVz.js.map} +1 -1
  86. package/dist/components/p-BH3t01Im.js +109 -0
  87. package/dist/{design-system/sd-select-option-group.entry.esm.js.map → components/p-BH3t01Im.js.map} +1 -1
  88. package/dist/components/{p-S7M--xNH.js → p-BqxmCDlz.js} +18 -18
  89. package/dist/components/p-BqxmCDlz.js.map +1 -0
  90. package/dist/components/{p-DY6t0qQj.js → p-BwSVYr5L.js} +7 -7
  91. package/dist/components/p-BwSVYr5L.js.map +1 -0
  92. package/dist/components/{p-9kN1E6Ra.js → p-C5T02a4h.js} +27 -23
  93. package/dist/components/p-C5T02a4h.js.map +1 -0
  94. package/dist/components/{p-CkKxyn_K.js → p-C7kMNSz9.js} +9 -9
  95. package/dist/components/p-C7kMNSz9.js.map +1 -0
  96. package/dist/components/{p-BSUHSOXX.js → p-CEDtmtIo.js} +8 -8
  97. package/dist/components/p-CEDtmtIo.js.map +1 -0
  98. package/dist/components/p-CLMeZVRV.js +34 -0
  99. package/dist/components/p-CLMeZVRV.js.map +1 -0
  100. package/dist/components/p-CLNPwi8e.js +81 -0
  101. package/dist/components/p-CLNPwi8e.js.map +1 -0
  102. package/dist/components/{p-TFWJruz2.js → p-CQBrru3e.js} +11 -5
  103. package/dist/components/p-CQBrru3e.js.map +1 -0
  104. package/dist/components/{p-BsyfatBe.js → p-CV5tKC24.js} +8 -8
  105. package/dist/components/p-CV5tKC24.js.map +1 -0
  106. package/dist/components/{p-CJ0qTKU7.js → p-Cx3euWvk.js} +6 -6
  107. package/dist/components/{p-CJ0qTKU7.js.map → p-Cx3euWvk.js.map} +1 -1
  108. package/dist/components/{p-C6tAa8Q4.js → p-DY9yCaP9.js} +11 -11
  109. package/dist/components/p-DY9yCaP9.js.map +1 -0
  110. package/dist/components/{p-C171iavd.js → p-DdeknsBE.js} +8 -8
  111. package/dist/components/p-DdeknsBE.js.map +1 -0
  112. package/dist/components/{p-DyGUXuvD.js → p-GHGGjwP3.js} +12 -12
  113. package/dist/components/p-GHGGjwP3.js.map +1 -0
  114. package/dist/components/{p-1SxxSEqq.js → p-XAhTfI7Q.js} +11 -11
  115. package/dist/components/p-XAhTfI7Q.js.map +1 -0
  116. package/dist/components/p-at_j60O8.js +34 -0
  117. package/dist/components/p-at_j60O8.js.map +1 -0
  118. package/dist/components/sd-badge.js +6 -6
  119. package/dist/components/sd-badge.js.map +1 -1
  120. package/dist/components/sd-button.js +1 -1
  121. package/dist/components/sd-card.js +6 -6
  122. package/dist/components/sd-card.js.map +1 -1
  123. package/dist/components/sd-checkbox.js +1 -1
  124. package/dist/components/sd-date-box.js +1 -1
  125. package/dist/components/sd-date-picker.js +14 -14
  126. package/dist/components/sd-date-picker.js.map +1 -1
  127. package/dist/components/sd-date-range-picker.js +15 -15
  128. package/dist/components/sd-date-range-picker.js.map +1 -1
  129. package/dist/components/sd-file-picker.d.ts +11 -0
  130. package/dist/components/sd-file-picker.js +159 -0
  131. package/dist/components/sd-file-picker.js.map +1 -0
  132. package/dist/components/sd-guide.js +14 -14
  133. package/dist/components/sd-guide.js.map +1 -1
  134. package/dist/components/sd-icon.js +1 -1
  135. package/dist/components/sd-input.js +1 -1
  136. package/dist/components/sd-loading-spinner.js +1 -1
  137. package/dist/components/sd-modal-card.js +9 -9
  138. package/dist/components/sd-modal-card.js.map +1 -1
  139. package/dist/components/sd-number-input.d.ts +11 -0
  140. package/dist/components/sd-number-input.js +335 -0
  141. package/dist/components/sd-number-input.js.map +1 -0
  142. package/dist/components/sd-pagination.js +1 -1
  143. package/dist/components/sd-popover.js +14 -14
  144. package/dist/components/sd-popover.js.map +1 -1
  145. package/dist/components/sd-portal.js +1 -1
  146. package/dist/components/sd-progress.js +7 -7
  147. package/dist/components/sd-progress.js.map +1 -1
  148. package/dist/components/sd-radio-button-group.d.ts +11 -0
  149. package/dist/components/sd-radio-button-group.js +99 -0
  150. package/dist/components/sd-radio-button-group.js.map +1 -0
  151. package/dist/components/sd-radio-group.js +6 -6
  152. package/dist/components/sd-radio-group.js.map +1 -1
  153. package/dist/components/sd-select-multiple-group.js +88 -59
  154. package/dist/components/sd-select-multiple-group.js.map +1 -1
  155. package/dist/components/sd-select-multiple.js +23 -19
  156. package/dist/components/sd-select-multiple.js.map +1 -1
  157. package/dist/components/sd-select-option-group.js +1 -1
  158. package/dist/components/sd-select-option.js +1 -1
  159. package/dist/components/sd-select.js +1 -1
  160. package/dist/components/sd-table-backup.js +31 -31
  161. package/dist/components/sd-table-backup.js.map +1 -1
  162. package/dist/components/sd-table.js +34 -34
  163. package/dist/components/sd-table.js.map +1 -1
  164. package/dist/components/sd-tabs.d.ts +11 -0
  165. package/dist/components/sd-tabs.js +101 -0
  166. package/dist/components/sd-tabs.js.map +1 -0
  167. package/dist/components/sd-tag.js +1 -76
  168. package/dist/components/sd-tag.js.map +1 -1
  169. package/dist/components/sd-tbody.js +1 -1
  170. package/dist/components/sd-td.js +7 -7
  171. package/dist/components/sd-td.js.map +1 -1
  172. package/dist/components/sd-th.js +1 -1
  173. package/dist/components/sd-toast-message.d.ts +11 -0
  174. package/dist/components/sd-toast-message.js +101 -0
  175. package/dist/components/sd-toast-message.js.map +1 -0
  176. package/dist/components/sd-toggle-button.d.ts +11 -0
  177. package/dist/components/sd-toggle-button.js +74 -0
  178. package/dist/components/sd-toggle-button.js.map +1 -0
  179. package/dist/components/sd-toggle.js +6 -6
  180. package/dist/components/sd-toggle.js.map +1 -1
  181. package/dist/components/sd-tooltip-portal.js +1 -1
  182. package/dist/components/sd-tooltip.js +1 -1
  183. package/dist/components/sd-tr.js +1 -1
  184. package/dist/design-system/design-system.esm.js +1 -1
  185. package/dist/design-system/design-system.esm.js.map +1 -1
  186. package/dist/design-system/p-1fbc8e14.entry.js +2 -0
  187. package/dist/design-system/p-1fbc8e14.entry.js.map +1 -0
  188. package/dist/design-system/p-26266f8c.entry.js +2 -0
  189. package/dist/design-system/p-26266f8c.entry.js.map +1 -0
  190. package/dist/design-system/p-2df41cc3.entry.js +2 -0
  191. package/dist/design-system/p-2df41cc3.entry.js.map +1 -0
  192. package/dist/design-system/p-3cc7957d.entry.js +2 -0
  193. package/dist/design-system/p-3cc7957d.entry.js.map +1 -0
  194. package/dist/design-system/p-6b3c33c3.entry.js +2 -0
  195. package/dist/design-system/p-6b3c33c3.entry.js.map +1 -0
  196. package/dist/design-system/p-6ce950da.entry.js +2 -0
  197. package/dist/design-system/p-6ce950da.entry.js.map +1 -0
  198. package/dist/design-system/{p-ClyGLKUd.js → p-7X2nzJWz.js} +2 -2
  199. package/dist/design-system/p-7X2nzJWz.js.map +1 -0
  200. package/dist/design-system/{p-DXZjHQmQ.js → p-CdbtuKYR.js} +2 -2
  201. package/dist/design-system/{p-DXZjHQmQ.js.map → p-CdbtuKYR.js.map} +1 -1
  202. package/dist/design-system/p-a18c202d.entry.js +2 -0
  203. package/dist/design-system/p-a18c202d.entry.js.map +1 -0
  204. package/dist/design-system/p-b0668ce9.entry.js +2 -0
  205. package/dist/design-system/p-b0668ce9.entry.js.map +1 -0
  206. package/dist/design-system/p-be9c40a3.entry.js +2 -0
  207. package/dist/design-system/p-be9c40a3.entry.js.map +1 -0
  208. package/dist/design-system/p-db603dcb.entry.js +2 -0
  209. package/dist/design-system/p-db603dcb.entry.js.map +1 -0
  210. package/dist/design-system/p-ddb5a2f4.entry.js +2 -0
  211. package/dist/design-system/p-ddb5a2f4.entry.js.map +1 -0
  212. package/dist/design-system/p-e31182ad.entry.js +2 -0
  213. package/dist/design-system/p-e31182ad.entry.js.map +1 -0
  214. package/dist/design-system/p-f9e04bf9.entry.js +2 -0
  215. package/dist/design-system/p-f9e04bf9.entry.js.map +1 -0
  216. package/dist/design-system/p-fe8721b5.entry.js +2 -0
  217. package/dist/design-system/p-fe8721b5.entry.js.map +1 -0
  218. package/dist/esm/design-system.js +6 -4
  219. package/dist/esm/design-system.js.map +1 -1
  220. package/dist/esm/{index-ClyGLKUd.js → index-7X2nzJWz.js} +11 -5
  221. package/dist/esm/index-7X2nzJWz.js.map +1 -0
  222. package/dist/esm/index.js +2 -0
  223. package/dist/esm/loader.js +5 -3
  224. package/dist/esm/sd-badge.entry.js +4 -4
  225. package/dist/esm/sd-badge.entry.js.map +1 -1
  226. package/dist/esm/{sd-button_15.entry.js → sd-button_23.entry.js} +1192 -95
  227. package/dist/esm/sd-card.entry.js +4 -4
  228. package/dist/esm/sd-card.entry.js.map +1 -1
  229. package/dist/esm/sd-date-box.entry.js +3 -3
  230. package/dist/esm/sd-date-box.entry.js.map +1 -1
  231. package/dist/esm/sd-date-picker.entry.js +4 -4
  232. package/dist/esm/sd-date-picker.entry.js.map +1 -1
  233. package/dist/esm/sd-date-range-picker.entry.js +5 -5
  234. package/dist/esm/sd-date-range-picker.entry.js.map +1 -1
  235. package/dist/esm/sd-modal-card.entry.js +3 -3
  236. package/dist/esm/sd-modal-card.entry.js.map +1 -1
  237. package/dist/esm/sd-popover.entry.js +6 -6
  238. package/dist/esm/sd-popover.entry.js.map +1 -1
  239. package/dist/esm/sd-progress.entry.js +5 -5
  240. package/dist/esm/sd-progress.entry.js.map +1 -1
  241. package/dist/esm/sd-radio-button-group.entry.js +69 -0
  242. package/dist/esm/sd-radio-button-group.entry.js.map +1 -0
  243. package/dist/esm/sd-select-multiple.entry.js +8 -5
  244. package/dist/esm/sd-select-multiple.entry.js.map +1 -1
  245. package/dist/esm/sd-table.entry.js +6 -6
  246. package/dist/esm/sd-table.entry.js.map +1 -1
  247. package/dist/esm/sd-tbody_3.entry.js +10 -10
  248. package/dist/esm/sd-td.entry.js +5 -5
  249. package/dist/esm/sd-td.entry.js.map +1 -1
  250. package/dist/esm/{tooltipArrow-BwO7_hdW.js → tooltipArrow-DFRZWz6D.js} +3 -3
  251. package/dist/esm/{tooltipArrow-BwO7_hdW.js.map → tooltipArrow-DFRZWz6D.js.map} +1 -1
  252. package/dist/types/components/sd-file-picker/sd-file-picker.d.ts +29 -0
  253. package/dist/types/components/sd-number-input/sd-number-input.d.ts +58 -0
  254. package/dist/types/components/sd-radio-button-group/sd-radio-button-group.d.ts +24 -0
  255. package/dist/types/components/sd-select/sd-select.d.ts +1 -0
  256. package/dist/types/components/sd-select-multiple/sd-select-multiple.d.ts +1 -0
  257. package/dist/types/components/sd-select-multiple-group/sd-select-multiple-group.d.ts +2 -0
  258. package/dist/types/components/sd-tabs/sd-tabs.d.ts +22 -0
  259. package/dist/types/components/sd-toast-message/sd-toast-message.d.ts +19 -0
  260. package/dist/types/components/sd-toggle-button/sd-toggle-button.d.ts +14 -0
  261. package/dist/types/components.d.ts +456 -8
  262. package/dist/types/stencil-public-runtime.d.ts +43 -0
  263. package/hydrate/index.d.ts +12 -0
  264. package/hydrate/index.js +2637 -1823
  265. package/hydrate/index.mjs +2636 -1824
  266. package/package.json +2 -2
  267. package/dist/cjs/index-Bxead0A0.js.map +0 -1
  268. package/dist/cjs/sd-badge.entry.cjs.js.map +0 -1
  269. package/dist/cjs/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-radio-group.sd-select.sd-select-option.sd-table-backup.sd-toggle.sd-tooltip.sd-tooltip-portal.entry.cjs.js.map +0 -1
  270. package/dist/cjs/sd-card.entry.cjs.js.map +0 -1
  271. package/dist/cjs/sd-date-box.entry.cjs.js.map +0 -1
  272. package/dist/cjs/sd-date-picker.entry.cjs.js.map +0 -1
  273. package/dist/cjs/sd-date-range-picker.entry.cjs.js.map +0 -1
  274. package/dist/cjs/sd-modal-card.entry.cjs.js.map +0 -1
  275. package/dist/cjs/sd-popover.entry.cjs.js.map +0 -1
  276. package/dist/cjs/sd-progress.entry.cjs.js.map +0 -1
  277. package/dist/cjs/sd-select-multiple-group.cjs.entry.js +0 -406
  278. package/dist/cjs/sd-select-multiple-group.entry.cjs.js.map +0 -1
  279. package/dist/cjs/sd-select-multiple.entry.cjs.js.map +0 -1
  280. package/dist/cjs/sd-select-option-group.cjs.entry.js +0 -69
  281. package/dist/cjs/sd-select-option-group.entry.cjs.js.map +0 -1
  282. package/dist/cjs/sd-table.entry.cjs.js.map +0 -1
  283. package/dist/cjs/sd-tag.cjs.entry.js +0 -57
  284. package/dist/cjs/sd-tag.entry.cjs.js.map +0 -1
  285. package/dist/cjs/sd-tbody.sd-th.sd-tr.entry.cjs.js.map +0 -1
  286. package/dist/cjs/sd-td.entry.cjs.js.map +0 -1
  287. package/dist/components/p-1SxxSEqq.js.map +0 -1
  288. package/dist/components/p-9kN1E6Ra.js.map +0 -1
  289. package/dist/components/p-BSUHSOXX.js.map +0 -1
  290. package/dist/components/p-BsyfatBe.js.map +0 -1
  291. package/dist/components/p-C171iavd.js.map +0 -1
  292. package/dist/components/p-C6tAa8Q4.js.map +0 -1
  293. package/dist/components/p-C9fSCxHc.js +0 -109
  294. package/dist/components/p-C9fSCxHc.js.map +0 -1
  295. package/dist/components/p-CkKxyn_K.js.map +0 -1
  296. package/dist/components/p-D8f0ASS6.js +0 -34
  297. package/dist/components/p-D8f0ASS6.js.map +0 -1
  298. package/dist/components/p-DY6t0qQj.js.map +0 -1
  299. package/dist/components/p-DiehM5Y0.js.map +0 -1
  300. package/dist/components/p-DyGUXuvD.js.map +0 -1
  301. package/dist/components/p-S7M--xNH.js.map +0 -1
  302. package/dist/components/p-TFWJruz2.js.map +0 -1
  303. package/dist/components/p-wQDv-v0B.js +0 -34
  304. package/dist/components/p-wQDv-v0B.js.map +0 -1
  305. package/dist/design-system/p-1ad40ed0.entry.js +0 -2
  306. package/dist/design-system/p-1ad40ed0.entry.js.map +0 -1
  307. package/dist/design-system/p-1b6aec43.entry.js +0 -2
  308. package/dist/design-system/p-1b6aec43.entry.js.map +0 -1
  309. package/dist/design-system/p-1e175d35.entry.js +0 -2
  310. package/dist/design-system/p-1e175d35.entry.js.map +0 -1
  311. package/dist/design-system/p-1efccd9d.entry.js +0 -2
  312. package/dist/design-system/p-1efccd9d.entry.js.map +0 -1
  313. package/dist/design-system/p-3d78a7c7.entry.js +0 -2
  314. package/dist/design-system/p-3d78a7c7.entry.js.map +0 -1
  315. package/dist/design-system/p-4828e65b.entry.js +0 -2
  316. package/dist/design-system/p-4828e65b.entry.js.map +0 -1
  317. package/dist/design-system/p-4e7bc094.entry.js +0 -2
  318. package/dist/design-system/p-4e7bc094.entry.js.map +0 -1
  319. package/dist/design-system/p-6d81e6f8.entry.js +0 -2
  320. package/dist/design-system/p-6d81e6f8.entry.js.map +0 -1
  321. package/dist/design-system/p-717a736c.entry.js +0 -2
  322. package/dist/design-system/p-717a736c.entry.js.map +0 -1
  323. package/dist/design-system/p-74f12ea0.entry.js +0 -2
  324. package/dist/design-system/p-74f12ea0.entry.js.map +0 -1
  325. package/dist/design-system/p-7d14540d.entry.js +0 -2
  326. package/dist/design-system/p-7d14540d.entry.js.map +0 -1
  327. package/dist/design-system/p-8d6d225d.entry.js +0 -2
  328. package/dist/design-system/p-8d6d225d.entry.js.map +0 -1
  329. package/dist/design-system/p-ClyGLKUd.js.map +0 -1
  330. package/dist/design-system/p-b892a722.entry.js +0 -2
  331. package/dist/design-system/p-b892a722.entry.js.map +0 -1
  332. package/dist/design-system/p-bc905ded.entry.js +0 -2
  333. package/dist/design-system/p-bc905ded.entry.js.map +0 -1
  334. package/dist/design-system/p-c7e8a2c0.entry.js +0 -2
  335. package/dist/design-system/p-c7e8a2c0.entry.js.map +0 -1
  336. package/dist/design-system/p-c9b70553.entry.js +0 -2
  337. package/dist/design-system/p-c9b70553.entry.js.map +0 -1
  338. package/dist/design-system/sd-badge.entry.esm.js.map +0 -1
  339. package/dist/design-system/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-radio-group.sd-select.sd-select-option.sd-table-backup.sd-toggle.sd-tooltip.sd-tooltip-portal.entry.esm.js.map +0 -1
  340. package/dist/design-system/sd-card.entry.esm.js.map +0 -1
  341. package/dist/design-system/sd-date-box.entry.esm.js.map +0 -1
  342. package/dist/design-system/sd-date-picker.entry.esm.js.map +0 -1
  343. package/dist/design-system/sd-date-range-picker.entry.esm.js.map +0 -1
  344. package/dist/design-system/sd-modal-card.entry.esm.js.map +0 -1
  345. package/dist/design-system/sd-popover.entry.esm.js.map +0 -1
  346. package/dist/design-system/sd-progress.entry.esm.js.map +0 -1
  347. package/dist/design-system/sd-select-multiple-group.entry.esm.js.map +0 -1
  348. package/dist/design-system/sd-select-multiple.entry.esm.js.map +0 -1
  349. package/dist/design-system/sd-table.entry.esm.js.map +0 -1
  350. package/dist/design-system/sd-tag.entry.esm.js.map +0 -1
  351. package/dist/design-system/sd-tbody.sd-th.sd-tr.entry.esm.js.map +0 -1
  352. package/dist/design-system/sd-td.entry.esm.js.map +0 -1
  353. package/dist/esm/index-ClyGLKUd.js.map +0 -1
  354. package/dist/esm/sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-radio-group.sd-select.sd-select-option.sd-table-backup.sd-toggle.sd-tooltip.sd-tooltip-portal.entry.js.map +0 -1
  355. package/dist/esm/sd-select-multiple-group.entry.js +0 -404
  356. package/dist/esm/sd-select-multiple-group.entry.js.map +0 -1
  357. package/dist/esm/sd-select-option-group.entry.js +0 -67
  358. package/dist/esm/sd-select-option-group.entry.js.map +0 -1
  359. package/dist/esm/sd-tag.entry.js +0 -55
  360. package/dist/esm/sd-tag.entry.js.map +0 -1
  361. package/dist/esm/sd-tbody.sd-th.sd-tr.entry.js.map +0 -1
@@ -1,9 +1,9 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h, H as Host, F as Fragment, d as readTask } from './index-ClyGLKUd.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h, H as Host, F as Fragment, d as readTask } from './index-7X2nzJWz.js';
2
2
  import { r as resolveColor, c as colors } from './resolveColor-BYf-ybt2.js';
3
3
  import { B as BaseDropdownEvent, S as SelectKeyboardNavigation } from './select-keyboard-navigation-C2JaR3A6.js';
4
- import { T as TooltipArrow } from './tooltipArrow-BwO7_hdW.js';
4
+ import { T as TooltipArrow } from './tooltipArrow-DFRZWz6D.js';
5
5
 
6
- const sdButtonCss = "sd-button{display:inline-block;width:fit-content;height:fit-content}.sd-button{text-decoration:none;cursor:pointer;border-radius:4px;transition:all 0.2s ease-in-out;position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}.sd-button--xs{padding:0 8px;font-size:12px;font-weight:500;line-height:20px;min-height:24px}.sd-button--sm{padding:0 12px;font-size:12px;font-weight:500;line-height:20px;min-height:28px}.sd-button--md{padding:0 20px;font-size:16px;font-weight:500;line-height:26px;min-height:34px}.sd-button--lg{padding:0 28px;font-size:18px;font-weight:500;line-height:30px;min-height:62px}.sd-button--primary{background-color:var(--button-color);color:white;transition:filter 0.2s ease}.sd-button--primary::before{content:\"\";position:absolute;inset:0;background:#000000;opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--primary:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.25}.sd-button--outline{background:white;border:1px solid var(--button-color);color:var(--button-color)}.sd-button--outline::before{content:\"\";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--outline:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--outline .sd-button__content{position:relative;z-index:1}.sd-button--ghost{background-color:transparent;color:var(--button-color);border-color:transparent}.sd-button--ghost::before{content:\"\";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--ghost:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--ghost .sd-button__content{position:relative;z-index:1}.sd-button--disabled{border:1px solid #cccccc;background:#e1e1e1;color:#888888;cursor:not-allowed !important}.sd-button--icon-only{padding:0;width:fit-content;height:fit-content;aspect-ratio:1/1}.sd-button--no-hover:hover::before{opacity:0 !important}.sd-button .sd-button__content{display:inline-flex;align-items:center;justify-content:center;gap:4px;z-index:1;font-weight:500}";
6
+ const sdButtonCss = () => `sd-button{display:inline-block;width:fit-content;height:fit-content}.sd-button{text-decoration:none;cursor:pointer;border-radius:4px;transition:all 0.2s ease-in-out;position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}.sd-button--xs{padding:0 8px;font-size:12px;font-weight:500;line-height:20px;min-height:24px}.sd-button--sm{padding:0 12px;font-size:12px;font-weight:500;line-height:20px;min-height:28px}.sd-button--md{padding:0 20px;font-size:16px;font-weight:500;line-height:26px;min-height:34px}.sd-button--lg{padding:0 28px;font-size:18px;font-weight:500;line-height:30px;min-height:62px}.sd-button--primary{background-color:var(--button-color);color:white;transition:filter 0.2s ease}.sd-button--primary::before{content:"";position:absolute;inset:0;background:#000000;opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--primary:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.25}.sd-button--outline{background:white;border:1px solid var(--button-color);color:var(--button-color)}.sd-button--outline::before{content:"";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--outline:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--outline .sd-button__content{position:relative;z-index:1}.sd-button--ghost{background-color:transparent;color:var(--button-color);border-color:transparent}.sd-button--ghost::before{content:"";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--ghost:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--ghost .sd-button__content{position:relative;z-index:1}.sd-button--disabled{border:1px solid #cccccc;background:#e1e1e1;color:#888888;cursor:not-allowed !important}.sd-button--icon-only{padding:0;width:fit-content;height:fit-content;aspect-ratio:1/1}.sd-button--no-hover:hover::before{opacity:0 !important}.sd-button .sd-button__content{display:inline-flex;align-items:center;justify-content:center;gap:4px;z-index:1;font-weight:500}`;
7
7
 
8
8
  const ICON_SIZES = {
9
9
  xs: 12,
@@ -61,9 +61,9 @@ const SdButton = class {
61
61
  return (h(Host, { key: 'b30c8006e2f187fb971bcd47f8ce4a91d1dc47a6', style: { '--button-color': resolvedColor } }, h("button", { key: 'f494c93fc0b9d55537b468f5c6458569df962633', class: `${buttonClasses} ${this.class}`, type: this.type, disabled: this.disabled, onClick: this.handleClick }, h("div", { key: '7d64a6526baeac8569cccc60d9befacef3e3777d', class: "sd-button__content" }, this.icon && (h("sd-icon", { key: '9439e9456783aa5b057d383252a6b0c45a44b588', class: "sd-button__icon sd-button__icon--left", name: this.icon, size: this.iconSize ? this.iconSize : ICON_SIZES[this.size], color: this.iconColor ? this.iconColor : this.variant === 'primary' ? '#fff' : resolvedColor })), this.label && h("div", { key: '324371a6f8864c444cda39e7b349b4c9ec19b7f6', class: "sd-button__label" }, this.label), this.iconRight && (h("sd-icon", { key: '733790ceda6e1822c71911b17e66f527936b15a2', class: "sd-button__icon sd-button__icon--right", name: this.iconRight, size: ICON_SIZES[this.size], color: this.variant === 'primary' ? '#fff' : resolvedColor }))))));
62
62
  }
63
63
  };
64
- SdButton.style = sdButtonCss;
64
+ SdButton.style = sdButtonCss();
65
65
 
66
- const sdCheckboxCss = "sd-checkbox{display:inline-block;height:20px;line-height:0}sd-checkbox .sd-checkbox{cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:20px;max-height:20px}sd-checkbox .sd-checkbox>input{display:none}sd-checkbox .sd-checkbox:hover.sd-checkbox--checked .sd-checkbox__bg,sd-checkbox .sd-checkbox:hover.sd-checkbox--indeterminate .sd-checkbox__bg{border-color:#005cc9;background:#005cc9}sd-checkbox .sd-checkbox:hover.sd-checkbox--unchecked .sd-checkbox__bg{border:1px solid #0075ff;background:#d9eaff}sd-checkbox .sd-checkbox:hover.sd-checkbox--disabled .sd-checkbox__bg{border:1px solid transparent;background:#eeeeee}sd-checkbox .sd-checkbox__bg{width:16px;height:16px;border-radius:2px;border:1px solid #888888;box-sizing:border-box;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;line-height:0}sd-checkbox .sd-checkbox__label{font-size:12px;color:#333333;line-height:20px}sd-checkbox .sd-checkbox--checked.sd-checkbox--disabled .sd-checkbox__bg,sd-checkbox .sd-checkbox--indeterminate.sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}sd-checkbox .sd-checkbox--checked .sd-checkbox__bg,sd-checkbox .sd-checkbox--indeterminate .sd-checkbox__bg{border:1px solid #0075ff;background:#0075ff}sd-checkbox .sd-checkbox--unchecked .sd-checkbox__bg{background:white}sd-checkbox .sd-checkbox--disabled{cursor:not-allowed}sd-checkbox .sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}";
66
+ const sdCheckboxCss = () => `sd-checkbox{display:inline-block;height:20px;line-height:0}sd-checkbox .sd-checkbox{cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:20px;max-height:20px}sd-checkbox .sd-checkbox>input{display:none}sd-checkbox .sd-checkbox:hover.sd-checkbox--checked .sd-checkbox__bg,sd-checkbox .sd-checkbox:hover.sd-checkbox--indeterminate .sd-checkbox__bg{border-color:#005cc9;background:#005cc9}sd-checkbox .sd-checkbox:hover.sd-checkbox--unchecked .sd-checkbox__bg{border:1px solid #0075ff;background:#d9eaff}sd-checkbox .sd-checkbox:hover.sd-checkbox--disabled .sd-checkbox__bg{border:1px solid transparent;background:#eeeeee}sd-checkbox .sd-checkbox__bg{width:16px;height:16px;border-radius:2px;border:1px solid #888888;box-sizing:border-box;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;line-height:0}sd-checkbox .sd-checkbox__label{font-size:12px;color:#333333;line-height:20px}sd-checkbox .sd-checkbox--checked.sd-checkbox--disabled .sd-checkbox__bg,sd-checkbox .sd-checkbox--indeterminate.sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}sd-checkbox .sd-checkbox--checked .sd-checkbox__bg,sd-checkbox .sd-checkbox--indeterminate .sd-checkbox__bg{border:1px solid #0075ff;background:#0075ff}sd-checkbox .sd-checkbox--unchecked .sd-checkbox__bg{background:white}sd-checkbox .sd-checkbox--disabled{cursor:not-allowed}sd-checkbox .sd-checkbox--disabled .sd-checkbox__bg{background:#eeeeee;border:1px solid #cccccc !important}`;
67
67
 
68
68
  const SdCheckbox = class {
69
69
  constructor(hostRef) {
@@ -143,9 +143,124 @@ const SdCheckbox = class {
143
143
  "checked": ["watchValueHandler"]
144
144
  }; }
145
145
  };
146
- SdCheckbox.style = sdCheckboxCss;
146
+ SdCheckbox.style = sdCheckboxCss();
147
147
 
148
- const sdGuideCss = "@charset \"UTF-8\";sd-button{display:inline-block;width:fit-content;height:fit-content}.sd-button{text-decoration:none;cursor:pointer;border-radius:4px;transition:all 0.2s ease-in-out;position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}.sd-button--xs{padding:0 8px;font-size:12px;font-weight:500;line-height:20px;min-height:24px}.sd-button--sm{padding:0 12px;font-size:12px;font-weight:500;line-height:20px;min-height:28px}.sd-button--md{padding:0 20px;font-size:16px;font-weight:500;line-height:26px;min-height:34px}.sd-button--lg{padding:0 28px;font-size:18px;font-weight:500;line-height:30px;min-height:62px}.sd-button--primary{background-color:var(--button-color);color:white;transition:filter 0.2s ease}.sd-button--primary::before{content:\"\";position:absolute;inset:0;background:#000000;opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--primary:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.25}.sd-button--outline{background:white;border:1px solid var(--button-color);color:var(--button-color)}.sd-button--outline::before{content:\"\";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--outline:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--outline .sd-button__content{position:relative;z-index:1}.sd-button--ghost{background-color:transparent;color:var(--button-color);border-color:transparent}.sd-button--ghost::before{content:\"\";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--ghost:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--ghost .sd-button__content{position:relative;z-index:1}.sd-button--disabled{border:1px solid #cccccc;background:#e1e1e1;color:#888888;cursor:not-allowed !important}.sd-button--icon-only{padding:0;width:fit-content;height:fit-content;aspect-ratio:1/1}.sd-button--no-hover:hover::before{opacity:0 !important}.sd-button .sd-button__content{display:inline-flex;align-items:center;justify-content:center;gap:4px;z-index:1;font-weight:500}sd-guide{display:inline-block;height:fit-content}sd-guide .sd-guide{display:inline-block}sd-guide .sd-guide .sd-button{padding:0 16px 0 12px;border-radius:16px;color:#333333 !important;display:flex;align-items:center;transition:none}sd-guide .sd-guide .sd-button .sd-button__content{color:#333333 !important}sd-guide .sd-guide .sd-button .sd-button__content .sd-button__label{color:#333333 !important;margin-left:4px}sd-guide .sd-guide--active .sd-button{border:1px solid #12b553}sd-guide .sd-guide--active .sd-button .sd-button__content .sd-button__label{color:white !important}.sd-guide__popup{position:relative;padding:20px 32px;border-radius:8px;box-shadow:4px 4px 24px 4px rgba(0, 0, 0, 0.1);background:white}.sd-guide__popup>.sd-guide__popup__close{position:absolute;top:12px;right:12px}.sd-guide__popup__header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.sd-guide__popup__header .sd-guide__popup__title{margin-top:0;font-size:16px;font-weight:700;line-height:26px;color:#333333}.sd-guide__popup__list{width:100%;padding:0;margin:0}.sd-guide__popup__list__item{display:flex;width:100%;align-items:start;list-style:none;color:#333333;font-size:12px;font-weight:400}.sd-guide__popup__list__item p{width:100%;padding:0;margin:0;word-wrap:break-word;word-break:break-word;white-space:normal;overflow-wrap:break-word;min-width:0}.sd-guide__popup__list__item::before{display:block;content:\"-\";width:6px;color:#333333;font-size:12px;font-weight:400;margin-left:10px;margin-right:12px;flex-shrink:0}.sd-guide__popup__list__item--depth-2::before{content:\"•\"}.sd-guide__popup__list__item--depth-2{padding-left:26px}";
148
+ const sdFilePickerCss = () => `.sd-file-picker{display:inline-flex;align-items:center;max-width:var(--picker-width, 100%);height:28px;gap:8px;padding:4px 8px;border:1px solid #aaaaaa;border-radius:4px;background-color:#ffffff;cursor:pointer;user-select:none;position:relative;vertical-align:middle}.sd-file-picker__text{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;font-size:12px;line-height:20px;color:#aaaaaa}.sd-file-picker__text--active{color:#222222}.sd-file-picker__text--placeholder{color:#aaaaaa}.sd-file-picker__icon{flex-shrink:0}.sd-file-picker__clear-icon{flex-shrink:0;cursor:pointer;transition:opacity 0.2s ease}.sd-file-picker__clear-icon:hover{opacity:0.7}.sd-file-picker__input{display:none}.sd-file-picker__tooltip{position:absolute;top:calc(100% - 4px);left:50%;transform:translate(-50%);z-index:1000;white-space:nowrap;padding:8px 12px;background:rgba(0, 0, 0, 0.8);color:white;font-size:12px;line-height:18px;border-radius:4px;pointer-events:none}.sd-file-picker:hover:not(.sd-file-picker--inline):not(.sd-file-picker--disabled){background-color:#f6f6f6}.sd-file-picker--active:not(.sd-file-picker--inline):not(.sd-file-picker--disabled){background-color:#ffffff}.sd-file-picker--active:not(.sd-file-picker--inline):not(.sd-file-picker--disabled) .sd-file-picker__text{color:#222222}.sd-file-picker--disabled:not(.sd-file-picker--inline){background-color:#eeeeee;border-color:#cccccc}.sd-file-picker--disabled:not(.sd-file-picker--inline) .sd-file-picker__text{color:#888888}.sd-file-picker--inline{border:none;background-color:transparent;padding:0;height:auto}.sd-file-picker--inline .sd-file-picker__text{color:#aaaaaa}.sd-file-picker--inline:hover:not(.sd-file-picker--disabled) .sd-file-picker__text{color:#737373}.sd-file-picker--inline.sd-file-picker--active:not(.sd-file-picker--disabled) .sd-file-picker__text--active{color:#222222}.sd-file-picker--inline.sd-file-picker--disabled .sd-file-picker__text{color:#cccccc}`;
149
+
150
+ const SdFilePicker = class {
151
+ constructor(hostRef) {
152
+ registerInstance(this, hostRef);
153
+ this.sdChange = createEvent(this, "sdChange");
154
+ }
155
+ get el() { return getElement(this); }
156
+ value = null;
157
+ placeholder = 'Click to upload';
158
+ disabled = false;
159
+ inline = false;
160
+ multiple = false;
161
+ accept;
162
+ width;
163
+ internalValue = null;
164
+ hovered = false;
165
+ showTooltip = false;
166
+ fileInputRef;
167
+ fileNamesRef;
168
+ sdChange;
169
+ valueChanged(newValue) {
170
+ this.internalValue = newValue;
171
+ }
172
+ componentDidLoad() {
173
+ this.checkOverflow();
174
+ }
175
+ componentDidUpdate() {
176
+ this.checkOverflow();
177
+ }
178
+ handleFileChange = (event) => {
179
+ const input = event.target;
180
+ const files = input.files;
181
+ if (!files || files.length === 0) {
182
+ return;
183
+ }
184
+ const fileArray = Array.from(files);
185
+ if (this.multiple) {
186
+ this.internalValue = fileArray;
187
+ }
188
+ else {
189
+ this.internalValue = fileArray[0];
190
+ }
191
+ this.value = this.internalValue;
192
+ this.sdChange?.emit(this.value);
193
+ };
194
+ handleClear = (event) => {
195
+ event.stopPropagation();
196
+ const clearedValue = this.multiple ? [] : null;
197
+ this.value = clearedValue;
198
+ this.internalValue = clearedValue;
199
+ this.sdChange?.emit(clearedValue);
200
+ if (this.fileInputRef) {
201
+ this.fileInputRef.value = '';
202
+ }
203
+ };
204
+ handleClick = () => {
205
+ if (this.disabled)
206
+ return;
207
+ this.fileInputRef?.click();
208
+ };
209
+ getStatusClass() {
210
+ if (this.disabled)
211
+ return 'sd-file-picker--disabled';
212
+ if (this.hasFiles())
213
+ return 'sd-file-picker--active';
214
+ return '';
215
+ }
216
+ hasFiles() {
217
+ if (!this.internalValue)
218
+ return false;
219
+ if (Array.isArray(this.internalValue)) {
220
+ return this.internalValue.length > 0;
221
+ }
222
+ return true;
223
+ }
224
+ getDisplayText() {
225
+ if (!this.hasFiles())
226
+ return this.placeholder;
227
+ if (Array.isArray(this.internalValue)) {
228
+ return this.internalValue.map(f => f.name).join(', ');
229
+ }
230
+ return this.internalValue?.name || this.placeholder;
231
+ }
232
+ checkOverflow() {
233
+ if (!this.fileNamesRef)
234
+ return;
235
+ const isOverflowing = this.fileNamesRef.scrollWidth > this.fileNamesRef.clientWidth;
236
+ this.showTooltip = isOverflowing;
237
+ }
238
+ getIconColor() {
239
+ if (this.disabled) {
240
+ return this.inline ? 'grey_45' : 'grey_55';
241
+ }
242
+ return 'grey_70';
243
+ }
244
+ render() {
245
+ const hasFiles = this.hasFiles();
246
+ const displayText = this.getDisplayText();
247
+ return (h("div", { key: 'bfa4054517dcf1ef728a2354927bc40c177274ce', class: {
248
+ 'sd-file-picker': true,
249
+ [this.getStatusClass()]: true,
250
+ 'sd-file-picker--inline': this.inline,
251
+ }, onClick: this.handleClick, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false) }, h("input", { key: 'b2f2e730b30c58641615d1216633ee20a67ee6c1', ref: el => (this.fileInputRef = el), type: "file", class: "sd-file-picker__input", disabled: this.disabled, multiple: this.multiple, accept: this.accept, onInput: this.handleFileChange }), h("sd-icon", { key: '08b4bbcc3bb757a7a8e3dee3a416b202c7e86f66', name: "attachFile", size: 16, color: this.getIconColor(), class: "sd-file-picker__icon" }), h("div", { key: 'cba9e6fb17a6a9c5de479e0ccdc6a3de7c23a615', ref: el => (this.fileNamesRef = el), class: {
252
+ 'sd-file-picker__text': true,
253
+ 'sd-file-picker__text--placeholder': !hasFiles,
254
+ 'sd-file-picker__text--active': hasFiles,
255
+ } }, displayText), !this.disabled && hasFiles && (h("sd-icon", { key: 'eb3c02cb001168d82eac1a3e2855e1cfcc6b960e', name: "close", size: 12, color: "#888888", class: "sd-file-picker__clear-icon", onClick: this.handleClear })), this.showTooltip && hasFiles && this.hovered && (h("div", { key: '8f09fe54f7f77453eac07f60942401d83955fc0b', class: "sd-file-picker__tooltip" }, displayText))));
256
+ }
257
+ static get watchers() { return {
258
+ "value": ["valueChanged"]
259
+ }; }
260
+ };
261
+ SdFilePicker.style = sdFilePickerCss();
262
+
263
+ const sdGuideCss = () => `@charset "UTF-8";sd-button{display:inline-block;width:fit-content;height:fit-content}.sd-button{text-decoration:none;cursor:pointer;border-radius:4px;transition:all 0.2s ease-in-out;position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}.sd-button--xs{padding:0 8px;font-size:12px;font-weight:500;line-height:20px;min-height:24px}.sd-button--sm{padding:0 12px;font-size:12px;font-weight:500;line-height:20px;min-height:28px}.sd-button--md{padding:0 20px;font-size:16px;font-weight:500;line-height:26px;min-height:34px}.sd-button--lg{padding:0 28px;font-size:18px;font-weight:500;line-height:30px;min-height:62px}.sd-button--primary{background-color:var(--button-color);color:white;transition:filter 0.2s ease}.sd-button--primary::before{content:"";position:absolute;inset:0;background:#000000;opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--primary:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.25}.sd-button--outline{background:white;border:1px solid var(--button-color);color:var(--button-color)}.sd-button--outline::before{content:"";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--outline:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--outline .sd-button__content{position:relative;z-index:1}.sd-button--ghost{background-color:transparent;color:var(--button-color);border-color:transparent}.sd-button--ghost::before{content:"";position:absolute;inset:0;background:var(--button-color);opacity:0;transition:opacity 0.2s ease;z-index:0}.sd-button--ghost:hover:not(.sd-button--disabled):not(.sd-button--loading)::before{opacity:0.15}.sd-button--ghost .sd-button__content{position:relative;z-index:1}.sd-button--disabled{border:1px solid #cccccc;background:#e1e1e1;color:#888888;cursor:not-allowed !important}.sd-button--icon-only{padding:0;width:fit-content;height:fit-content;aspect-ratio:1/1}.sd-button--no-hover:hover::before{opacity:0 !important}.sd-button .sd-button__content{display:inline-flex;align-items:center;justify-content:center;gap:4px;z-index:1;font-weight:500}sd-guide{display:inline-block;height:fit-content}sd-guide .sd-guide{display:inline-block}sd-guide .sd-guide .sd-button{padding:0 16px 0 12px;border-radius:16px;color:#333333 !important;display:flex;align-items:center;transition:none}sd-guide .sd-guide .sd-button .sd-button__content{color:#333333 !important}sd-guide .sd-guide .sd-button .sd-button__content .sd-button__label{color:#333333 !important;margin-left:4px}sd-guide .sd-guide--active .sd-button{border:1px solid #12b553}sd-guide .sd-guide--active .sd-button .sd-button__content .sd-button__label{color:white !important}.sd-guide__popup{position:relative;padding:20px 32px;border-radius:8px;box-shadow:4px 4px 24px 4px rgba(0, 0, 0, 0.1);background:white}.sd-guide__popup>.sd-guide__popup__close{position:absolute;top:12px;right:12px}.sd-guide__popup__header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.sd-guide__popup__header .sd-guide__popup__title{margin-top:0;font-size:16px;font-weight:700;line-height:26px;color:#333333}.sd-guide__popup__list{width:100%;padding:0;margin:0}.sd-guide__popup__list__item{display:flex;width:100%;align-items:start;list-style:none;color:#333333;font-size:12px;font-weight:400}.sd-guide__popup__list__item p{width:100%;padding:0;margin:0;word-wrap:break-word;word-break:break-word;white-space:normal;overflow-wrap:break-word;min-width:0}.sd-guide__popup__list__item::before{display:block;content:"-";width:6px;color:#333333;font-size:12px;font-weight:400;margin-left:10px;margin-right:12px;flex-shrink:0}.sd-guide__popup__list__item--depth-2::before{content:"•"}.sd-guide__popup__list__item--depth-2{padding-left:26px}`;
149
264
 
150
265
  const GUIDE_LABEL = {
151
266
  help: '활용 TIP',
@@ -198,11 +313,11 @@ const SdGuide = class {
198
313
  };
199
314
  render() {
200
315
  const { name: iconName, size: iconSize, color: iconColor } = GUIDE_ICON[this.type];
201
- return (h(Host, { key: '32cff34a733ab423b4db37aaa91f4c63152566a3', style: {
316
+ return (h(Host, { key: 'c15218a6d9dbef0147701e31f798a3e6fa8e7679', style: {
202
317
  '--sd-guide-color': GUIDE_ICON[this.type].color,
203
- } }, h("sd-button", { key: '7efc84462239fcab6ac7d532d75ff418bebee957', ref: el => (this.guideRef = el), class: this.guideClass, variant: this.popupShow ? 'primary' : 'outline', label: this.label || GUIDE_LABEL[this.type], size: "sm", color: this.popupShow ? GUIDE_ICON[this.type].color : 'grey_45', icon: iconName, iconColor: this.popupShow ? 'white' : iconColor, iconSize: iconSize, noHover: this.popupShow, onSdClick: this.handleClickGuide }), this.type === 'help' && this.popupShow && (h("sd-portal", { key: '9868dd7fd8b5e42cfd6b2011c2a8679a8f9ece02', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, h("div", { key: '974448ac29c162372a7a5e8ba12c493d4e8a2287', class: "sd-guide__popup", style: { width: this.popupWidth ? this.popupWidth + 'px' : '426px' } }, h("sd-button", { key: 'e28679c5cdeac9ca8e0b5701d4979a94a7c4f182', class: "sd-guide__popup__close", icon: "close", color: colors.grey_65, size: "md", variant: "ghost", noHover: true,
318
+ } }, h("sd-button", { key: '773093b74b917d9e15a8e8c280aaa7564832abe1', ref: el => (this.guideRef = el), class: this.guideClass, variant: this.popupShow ? 'primary' : 'outline', label: this.label || GUIDE_LABEL[this.type], size: "sm", color: this.popupShow ? GUIDE_ICON[this.type].color : 'grey_45', icon: iconName, iconColor: this.popupShow ? 'white' : iconColor, iconSize: iconSize, noHover: this.popupShow, onSdClick: this.handleClickGuide }), this.type === 'help' && this.popupShow && (h("sd-portal", { key: '64cfb5c8b425b0d48a9f9954b203c9b3883fb1f3', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, h("div", { key: 'f748907b385a77490ad79f8f811ad7fc4eaee8bb', class: "sd-guide__popup", style: { width: this.popupWidth ? this.popupWidth + 'px' : '426px' } }, h("sd-button", { key: '8b154c2d239fc7038cb939f826417e5b68043a85', class: "sd-guide__popup__close", icon: "close", color: colors.grey_65, size: "md", variant: "ghost", noHover: true,
204
319
  // buttonStyle={{ padding: '0px', minHeight: '0px' }}
205
- onSdClick: this.closeDropdown }), h("div", { key: 'c598b70154a4b2c4a4a2790a0072eaf4f7de7099', class: "sd-guide__popup__header" }, h("sd-icon", { key: '6837f7934c24a7da2bf0558d7cdcd5effcdb5481', name: "helpOutline", size: 24, color: colors.green_65 }), h("h3", { key: '6b7b8f9d6f3602f3cd036efdd308318988ce339b', class: "sd-guide__popup__title" }, this.popupTitle || GUIDE_LABEL[this.type])), h("ul", { key: 'fbee7a0d4ad49cd6cac2ef5bb4617937aaff5882', class: "sd-guide__popup__list" }, this.renderListItem(this.message)))))));
320
+ onSdClick: this.closeDropdown }), h("div", { key: 'eaa2160d01bbe8172fc176117b8e506e469c5dde', class: "sd-guide__popup__header" }, h("sd-icon", { key: '54436229beee740efc607c3c2dd7be4c390e3285', name: "helpOutline", size: 24, color: colors.green_65 }), h("h3", { key: 'e848c736bb5d49221feb194ecd43e904d51c82f8', class: "sd-guide__popup__title" }, this.popupTitle || GUIDE_LABEL[this.type])), h("ul", { key: '57536a93be487239c30d7338f48c87ab57fbb3d0', class: "sd-guide__popup__list" }, this.renderListItem(this.message)))))));
206
321
  }
207
322
  // 현재 2depth까지만 스타일 적용
208
323
  renderListItem(message, depth = 0) {
@@ -221,7 +336,7 @@ const SdGuide = class {
221
336
  return (h("li", { class: `sd-guide__popup__list__item sd-guide__popup__list__item--depth-${depth}` }, h("p", { innerHTML: listContent })));
222
337
  };
223
338
  };
224
- SdGuide.style = sdGuideCss;
339
+ SdGuide.style = sdGuideCss();
225
340
 
226
341
  const Add8 = (props) => (h("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, h("path", { d: "M3.99969 0.633484C4.16537 0.633484 4.29948 0.767622 4.2995 0.933289V3.69989H7.06708C7.23245 3.70014 7.36672 3.8343 7.36688 3.99969C7.36688 4.16523 7.23255 4.29925 7.06708 4.2995H4.2995V7.06708C4.29925 7.23255 4.16523 7.36688 3.99969 7.36688C3.8343 7.36672 3.70014 7.23245 3.69989 7.06708V4.2995H0.933289C0.767622 4.29948 0.633484 4.16537 0.633484 3.99969C0.633648 3.83416 0.767724 3.69991 0.933289 3.69989H3.69989V0.933289C3.69991 0.767724 3.83416 0.633648 3.99969 0.633484Z", fill: "currentColor" })));
227
342
 
@@ -2203,7 +2318,7 @@ const Icons = {
2203
2318
  ...Youtube,
2204
2319
  };
2205
2320
 
2206
- const sdIconCss = "sd-icon{line-height:0}sd-icon .sd-icon{line-height:0;vertical-align:middle}sd-icon .sd-icon--rotate-90{transform:rotate(90deg)}sd-icon .sd-icon--rotate-180{transform:rotate(180deg)}sd-icon .sd-icon--rotate-270{transform:rotate(270deg)}";
2321
+ const sdIconCss = () => `sd-icon{display:inline-block;line-height:0}sd-icon .sd-icon--rotate-90{transform:rotate(90deg)}sd-icon .sd-icon--rotate-180{transform:rotate(180deg)}sd-icon .sd-icon--rotate-270{transform:rotate(270deg)}`;
2207
2322
 
2208
2323
  const SdIcon = class {
2209
2324
  constructor(hostRef) {
@@ -2232,12 +2347,12 @@ const SdIcon = class {
2232
2347
  }
2233
2348
  render() {
2234
2349
  const IconComponent = Icons[this.name]?.[this.size];
2235
- return (h("i", { key: 'dc540c5746fedd2fed7bdf8e179b56878abe5a3b', class: this.getIconClasses(), style: this.iconStyle }, h(IconComponent, { key: 'ff1e903198b5362d8e3521c6477ddd0b96948ad9', color: this.resolvedColor })));
2350
+ return (h("i", { key: 'f3ff9d0b1134a67b6f8897ede7b4cd449589d618', class: this.getIconClasses(), style: this.iconStyle }, h(IconComponent, { key: '0acd90f22d7f2e3e875b690d41dbb4a297b42d7f', color: this.resolvedColor })));
2236
2351
  }
2237
2352
  };
2238
- SdIcon.style = sdIconCss;
2353
+ SdIcon.style = sdIconCss();
2239
2354
 
2240
- const sdInputCss = "sd-icon{line-height:0}sd-icon .sd-icon{line-height:0;vertical-align:middle}sd-icon .sd-icon--rotate-90{transform:rotate(90deg)}sd-icon .sd-icon--rotate-180{transform:rotate(180deg)}sd-icon .sd-icon--rotate-270{transform:rotate(270deg)}.sd-input{display:flex;width:var(--input-width, 100%);align-items:center;height:28px;padding:4px 8px;border:1px solid #aaaaaa;border-radius:4px;color:#333333;font-size:12px;line-height:20px;background:white}.sd-input--hovered,.sd-input--focused{border-color:#0075ff;box-shadow:0 0 4px 0 rgba(0, 113, 255, 0.4)}.sd-input.sd-input--error{border-color:#fb4444}.sd-input.sd-input--pass{border-color:#2bce6c}.sd-input.sd-input--barcode:not(.sd-input--disabled){background-color:#fafaa1}.sd-input.sd-input--disabled{background-color:#eeeeee !important;border-color:#cccccc !important;cursor:not-allowed !important;box-shadow:none !important}.sd-input.sd-input--disabled .sd-input__native_element{color:#888888 !important}.sd-input .sd-input__native_element{display:block;width:100%;height:20px;line-height:20px;border:none;outline:none;background:transparent;font-size:inherit;color:#333333;margin-left:4px;margin-right:4px;padding-block:0;padding-inline:0}.sd-input .sd-input__native_element::placeholder{font-size:12px;height:20px;line-height:20px;color:#aaaaaa}.sd-input .sd-input__clear-icon{cursor:pointer;margin-left:8px}";
2355
+ const sdInputCss = () => `sd-icon{display:inline-block;line-height:0}sd-icon .sd-icon--rotate-90{transform:rotate(90deg)}sd-icon .sd-icon--rotate-180{transform:rotate(180deg)}sd-icon .sd-icon--rotate-270{transform:rotate(270deg)}.sd-input{display:flex;width:var(--input-width, 100%);align-items:center;height:28px;padding:4px 8px;border:1px solid #aaaaaa;border-radius:4px;color:#333333;font-size:12px;line-height:20px;background:white}.sd-input--hovered,.sd-input--focused{border-color:#0075ff;box-shadow:0 0 4px 0 rgba(0, 113, 255, 0.4)}.sd-input.sd-input--error{border-color:#fb4444}.sd-input.sd-input--pass{border-color:#2bce6c}.sd-input.sd-input--barcode:not(.sd-input--disabled){background-color:#fafaa1}.sd-input.sd-input--disabled{background-color:#eeeeee !important;border-color:#cccccc !important;cursor:not-allowed !important;box-shadow:none !important}.sd-input.sd-input--disabled .sd-input__native_element{color:#888888 !important}.sd-input .sd-input__native_element{display:block;width:100%;height:20px;line-height:20px;border:none;outline:none;background:transparent;font-size:inherit;color:#333333;margin-left:4px;margin-right:4px;padding-block:0;padding-inline:0}.sd-input .sd-input__native_element::placeholder{font-size:12px;height:20px;line-height:20px;color:#aaaaaa}.sd-input .sd-input__clear-icon{cursor:pointer;margin-left:8px}`;
2241
2356
 
2242
2357
  const SdInput = class {
2243
2358
  constructor(hostRef) {
@@ -2337,11 +2452,11 @@ const SdInput = class {
2337
2452
  '--input-width': typeof this.width === 'number' ? `${this.width}px` : this.width,
2338
2453
  }
2339
2454
  : {};
2340
- return (h(Host, { key: 'f793db1bf48fccad644292b06e725676568d2686', style: inputWidth }, this.label && h("div", { key: '1f59002678f46ffdfeb47a0adb9b48ad74c24191', class: "sd-input__label" }, this.label), h("label", { key: '2fa9f8744f1e6357aa864ea4b97685d35fd0e712', class: {
2455
+ return (h(Host, { key: '265fb05d7c005cd843443475d74c2e8127e4ae2d', style: inputWidth }, this.label && h("div", { key: '2ce6d2611927ec3e491122b8a17b94a2b39edcd5', class: "sd-input__label" }, this.label), h("label", { key: '6731592e7d55098daf4aa8b8177233897daf2900', class: {
2341
2456
  'sd-input': true,
2342
2457
  [this.getInputStatus()]: true,
2343
2458
  'sd-input--barcode': !!this.barcode,
2344
- }, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, h("slot", { key: '6baa7f30c5057bcd96167741b7219877a0de8b81', name: "prefix" }), h("input", { key: 'd3210037a23b3015a3650f2771f0205d3baa9af8', ref: el => (this.nativeEl = el), class: `sd-input__native_element ${this.inputClass}`, type: "text", value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onChange: this.handleChange, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event) }), h("slot", { key: '72cc3cf71cdcab1e540f68c54a7a7715cb73af83', name: "suffix" }), this.clearable && this.internalValue && (h("sd-icon", { key: '04a65fa5e2042ffad00a2cfae10d77babdeaaf28', name: "close", color: "#888", class: "sd-input__clear-icon", onClick: () => {
2459
+ }, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, h("slot", { key: 'e07590e1ee2540183c18aceb8dae0ff39d5adca4', name: "prefix" }), h("input", { key: '76b8bbba1030cbef5b57e3303b6cd300858c4fee', ref: el => (this.nativeEl = el), class: `sd-input__native_element ${this.inputClass}`, type: "text", value: this.internalValue || '', placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onChange: this.handleChange, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event) }), h("slot", { key: 'e10dc614a0283bc63bb3e44bd627f7279728dae6', name: "suffix" }), this.clearable && this.internalValue && (h("sd-icon", { key: '3324d72d1353231209aa9c284425c921bbb1e17b', name: "close", color: "#888", class: "sd-input__clear-icon", onClick: () => {
2345
2460
  this.internalValue = '';
2346
2461
  this.sdChange?.emit(this.internalValue);
2347
2462
  this.sdInput?.emit(this.internalValue);
@@ -2352,21 +2467,300 @@ const SdInput = class {
2352
2467
  "internalValue": ["internalValueChanged"]
2353
2468
  }; }
2354
2469
  };
2355
- SdInput.style = sdInputCss;
2470
+ SdInput.style = sdInputCss();
2356
2471
 
2357
- const sdLoadingSpinnerCss = "sd-loading-spinner{display:block}sd-loading-spinner .sd-loading-spinner{animation:sd-loading-spin 2s linear infinite;transform-origin:center center}sd-loading-spinner .sd-loading-spinner .path{animation:sd-loading-spin-path 1.5s ease-in-out infinite}@keyframes sd-loading-spin{0%{transform:rotate3d(0, 0, 1, 0deg)}25%{transform:rotate3d(0, 0, 1, 90deg)}50%{transform:rotate3d(0, 0, 1, 180deg)}75%{transform:rotate3d(0, 0, 1, 270deg)}100%{transform:rotate3d(0, 0, 1, 359deg)}}@keyframes sd-loading-spin-path{0%{stroke-dasharray:1, 200;stroke-dashoffset:0}50%{stroke-dasharray:89, 200;stroke-dashoffset:-35px}100%{stroke-dasharray:89, 200;stroke-dashoffset:-124px}}";
2472
+ const sdLoadingSpinnerCss = () => `sd-loading-spinner{display:block}sd-loading-spinner .sd-loading-spinner{animation:sd-loading-spin 2s linear infinite;transform-origin:center center}sd-loading-spinner .sd-loading-spinner .path{animation:sd-loading-spin-path 1.5s ease-in-out infinite}@keyframes sd-loading-spin{0%{transform:rotate3d(0, 0, 1, 0deg)}25%{transform:rotate3d(0, 0, 1, 90deg)}50%{transform:rotate3d(0, 0, 1, 180deg)}75%{transform:rotate3d(0, 0, 1, 270deg)}100%{transform:rotate3d(0, 0, 1, 359deg)}}@keyframes sd-loading-spin-path{0%{stroke-dasharray:1, 200;stroke-dashoffset:0}50%{stroke-dasharray:89, 200;stroke-dashoffset:-35px}100%{stroke-dasharray:89, 200;stroke-dashoffset:-124px}}`;
2358
2473
 
2359
2474
  const SdLoadingSpinner = class {
2360
2475
  constructor(hostRef) {
2361
2476
  registerInstance(this, hostRef);
2362
2477
  }
2363
2478
  render() {
2364
- return (h(Host, { key: '7538c9986c448d666ea1993324d8fd811c2ba289' }, h("svg", { key: '7e254a0b15ecda3e480582c336b33b1020715125', class: "sd-loading-spinner text-positive", width: "72px", height: "72px", viewBox: "25 25 50 50" }, h("circle", { key: '8a6356ba2e8d42c9d1c789ba5676ca6f7485cda1', class: "path", cx: "50", cy: "50", r: "20", fill: "none", stroke: "currentColor", "stroke-width": "5", "stroke-miterlimit": "10" }))));
2479
+ return (h(Host, { key: 'f8c61aa1c1f500da0aa9deac8d031306427bddb4' }, h("svg", { key: '66b9d93ed53b1539f4ba51cf7ca0350728ed343c', class: "sd-loading-spinner text-positive", width: "72px", height: "72px", viewBox: "25 25 50 50" }, h("circle", { key: '3e6e687a243ec457065e14ac44bb56706c89bb10', class: "path", cx: "50", cy: "50", r: "20", fill: "none", stroke: "currentColor", "stroke-width": "5", "stroke-miterlimit": "10" }))));
2480
+ }
2481
+ };
2482
+ SdLoadingSpinner.style = sdLoadingSpinnerCss();
2483
+
2484
+ const sdNumberInputCss = () => `sd-icon{display:inline-block;line-height:0}sd-icon .sd-icon--rotate-90{transform:rotate(90deg)}sd-icon .sd-icon--rotate-180{transform:rotate(180deg)}sd-icon .sd-icon--rotate-270{transform:rotate(270deg)}.sd-number-input{box-sizing:border-box;display:flex;width:var(--input-width, 100%);align-items:center;height:28px;padding:4px 8px;border:1px solid #aaaaaa;border-radius:4px;color:#333333;font-size:12px;line-height:20px;background:white;position:relative}.sd-number-input--hovered{border-color:#0075ff;box-shadow:0 0 4px 0 rgba(0, 113, 255, 0.4)}.sd-number-input.sd-number-input--error{border-color:#fb4444}.sd-number-input.sd-number-input--pass{border-color:#2bce6c}.sd-number-input.sd-number-input--disabled{background-color:#eeeeee !important;border-color:#cccccc !important;cursor:not-allowed !important;box-shadow:none !important}.sd-number-input.sd-number-input--disabled .sd-number-input__input{color:#888888 !important}.sd-number-input .sd-number-input__input{display:block;width:100%;height:20px;line-height:20px;border:none;outline:none;background:transparent;font-size:inherit;color:#333333;margin-left:4px;margin-right:4px;padding-block:0;padding-inline:0;text-align:right}.sd-number-input .sd-number-input__input::placeholder{font-size:12px;height:20px;line-height:20px;color:#aaaaaa}.sd-number-input .sd-number-input__clear-icon{cursor:pointer;margin-left:8px}.sd-number-input .sd-number-input__buttons{padding:4px;display:flex;justify-content:space-between;align-items:center;position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity 0.2s ease}.sd-number-input .sd-number-input__button{width:20px;height:20px;border:none;border-radius:2px;background-color:#eff6ff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin:0;transition:background-color 0.2s ease}.sd-number-input .sd-number-input__button:hover:not(:disabled){background-color:#e6f1ff}.sd-number-input .sd-number-input__button:disabled{background-color:#eeeeee;cursor:not-allowed}.sd-number-input .sd-number-input__button--decrement{border-bottom-left-radius:0;border-bottom-right-radius:0}.sd-number-input .sd-number-input__button--increment{border-top-left-radius:0;border-top-right-radius:0}.sd-number-input .sd-number-input__label{margin-bottom:8px;font-weight:500;color:#333333}sd-number-input:focus-within .sd-number-input__buttons{opacity:1;pointer-events:auto}sd-number-input:focus-within .sd-number-input{border-color:#0075ff;box-shadow:0 0 4px 0 rgba(0, 113, 255, 0.4)}`;
2485
+
2486
+ const SdNumberInput = class {
2487
+ constructor(hostRef) {
2488
+ registerInstance(this, hostRef);
2489
+ this.sdIncrement = createEvent(this, "sdIncrement");
2490
+ this.sdDecrement = createEvent(this, "sdDecrement");
2491
+ this.sdInput = createEvent(this, "sdInput");
2492
+ this.sdChange = createEvent(this, "sdChange");
2493
+ this.sdFocus = createEvent(this, "sdFocus");
2494
+ this.sdBlur = createEvent(this, "sdBlur");
2495
+ }
2496
+ get el() { return getElement(this); }
2497
+ min = Number.NEGATIVE_INFINITY;
2498
+ max = Number.POSITIVE_INFINITY;
2499
+ step = 1;
2500
+ useButton = false;
2501
+ useDecimal = false;
2502
+ value = null;
2503
+ label;
2504
+ placeholder = '입력해 주세요.';
2505
+ disabled = false;
2506
+ width;
2507
+ rules;
2508
+ autoFocus = false;
2509
+ status;
2510
+ inputClass = '';
2511
+ readonly = false;
2512
+ inputStyle = {};
2513
+ internalValue = null;
2514
+ displayValue = '';
2515
+ hovered = false;
2516
+ error = false;
2517
+ nativeEl = undefined;
2518
+ sdIncrement;
2519
+ sdDecrement;
2520
+ sdInput;
2521
+ sdChange;
2522
+ sdFocus;
2523
+ sdBlur;
2524
+ formatWithCommas(value) {
2525
+ if (value === null || value === undefined)
2526
+ return '';
2527
+ const isNegative = value < 0;
2528
+ const absValue = Math.abs(value);
2529
+ const [intPart, decPart] = absValue.toString().split('.');
2530
+ const formatted = (+intPart).toLocaleString();
2531
+ const result = isNegative ? '-' + formatted : formatted;
2532
+ return decPart ? result + '.' + decPart : String(result);
2533
+ }
2534
+ parseInput(input) {
2535
+ if (!input || input.trim() === '')
2536
+ return null;
2537
+ const cleaned = input.replace(/,/g, '').trim();
2538
+ // -로 시작을 할 수 있을 수 있고, 소수점 0.n | .n
2539
+ if (!/^-?(\d+\.?\d*|\d*\.\d+)$/.test(cleaned)) {
2540
+ return null;
2541
+ }
2542
+ const parsed = parseFloat(cleaned);
2543
+ if (isNaN(parsed))
2544
+ return null;
2545
+ // 소수점 사용 하지 않는데 . 이 있는 경우
2546
+ if (!this.useDecimal && cleaned.includes('.')) {
2547
+ return null;
2548
+ }
2549
+ return parsed;
2550
+ }
2551
+ clampMinMax(value) {
2552
+ return Math.min(Math.max(value, this.min), this.max);
2553
+ }
2554
+ updateDisplay() {
2555
+ this.displayValue = this.formatWithCommas(this.internalValue);
2556
+ }
2557
+ isIncrementDisabled() {
2558
+ if (this.disabled || this.readonly)
2559
+ return true;
2560
+ if (this.internalValue !== null) {
2561
+ return this.internalValue >= this.max;
2562
+ }
2563
+ return false;
2564
+ }
2565
+ isDecrementDisabled() {
2566
+ if (this.disabled || this.readonly)
2567
+ return true;
2568
+ if (this.internalValue !== null) {
2569
+ return this.internalValue <= this.min;
2570
+ }
2571
+ return false;
2572
+ }
2573
+ valueChanged(newValue) {
2574
+ if (newValue === null || newValue === '') {
2575
+ this.internalValue = null;
2576
+ }
2577
+ else {
2578
+ const parsed = typeof newValue === 'string' ? this.parseInput(newValue) : newValue;
2579
+ if (parsed !== null) {
2580
+ this.internalValue = this.clampMinMax(parsed);
2581
+ }
2582
+ }
2583
+ this.updateDisplay();
2584
+ }
2585
+ internalValueChanged(newValue) {
2586
+ this.updateDisplay();
2587
+ if (newValue !== this.value) {
2588
+ this.value = newValue;
2589
+ this.sdInput?.emit(newValue);
2590
+ }
2591
+ if (!this.rules || this.rules.length === 0)
2592
+ return;
2593
+ this.error = false;
2594
+ for (const rule of this.rules) {
2595
+ const result = rule(newValue);
2596
+ if (result !== true) {
2597
+ this.error = true;
2598
+ break;
2599
+ }
2600
+ }
2601
+ }
2602
+ componentWillLoad() {
2603
+ if (this.value !== null && this.value !== undefined) {
2604
+ const parsed = typeof this.value === 'string' ? this.parseInput(this.value) : this.value;
2605
+ if (parsed !== null) {
2606
+ this.internalValue = this.clampMinMax(parsed);
2607
+ }
2608
+ }
2609
+ this.updateDisplay();
2610
+ }
2611
+ handleInput = (event) => {
2612
+ const target = event.target;
2613
+ const inputValue = target.value;
2614
+ if (inputValue === '') {
2615
+ this.internalValue = null;
2616
+ this.displayValue = '';
2617
+ return;
2618
+ }
2619
+ const commasRemoved = inputValue.replace(/,/g, '');
2620
+ // 만약에 소수점 (.) 이 여러개 일 경우
2621
+ const decimalCount = (commasRemoved.match(/\./g) || []).length;
2622
+ if (decimalCount > 1) {
2623
+ target.value = this.displayValue;
2624
+ return;
2625
+ }
2626
+ // 가능: "-", ".", "-." (단순 기호만 있는 경우)
2627
+ if (commasRemoved === '-' || commasRemoved === '.' || commasRemoved === '-.') {
2628
+ target.value = commasRemoved;
2629
+ return;
2630
+ }
2631
+ // 숫자 뒤에 . 이 있는 경우 (예: "1000.") -> 콤마 포맷 적용 + . 유지
2632
+ if (commasRemoved.endsWith('.') && decimalCount === 1) {
2633
+ const numberPart = commasRemoved.slice(0, -1);
2634
+ const parsed = this.parseInput(numberPart);
2635
+ if (parsed !== null) {
2636
+ const formatted = this.formatWithCommas(parsed);
2637
+ target.value = formatted + '.';
2638
+ return;
2639
+ }
2640
+ }
2641
+ const parsed = this.parseInput(commasRemoved);
2642
+ if (parsed !== null) {
2643
+ if (parsed < this.min) {
2644
+ target.value = this.displayValue;
2645
+ return;
2646
+ }
2647
+ if (parsed > this.max) {
2648
+ target.value = this.displayValue;
2649
+ return;
2650
+ }
2651
+ this.internalValue = parsed;
2652
+ this.displayValue = this.formatWithCommas(parsed);
2653
+ target.value = this.displayValue;
2654
+ }
2655
+ else {
2656
+ target.value = this.displayValue;
2657
+ }
2658
+ };
2659
+ handleChange = (event) => {
2660
+ const target = event.target;
2661
+ const inputValue = target.value;
2662
+ if (inputValue === '') {
2663
+ this.internalValue = null;
2664
+ }
2665
+ else {
2666
+ const parsed = this.parseInput(inputValue);
2667
+ if (parsed !== null) {
2668
+ this.internalValue = this.clampMinMax(parsed);
2669
+ }
2670
+ }
2671
+ this.sdChange?.emit(this.internalValue);
2672
+ };
2673
+ handleFocus = (event) => {
2674
+ this.sdFocus?.emit(event);
2675
+ };
2676
+ handleBlur = (event) => {
2677
+ this.updateDisplay();
2678
+ if (this.nativeEl) {
2679
+ this.nativeEl.value = this.displayValue;
2680
+ }
2681
+ this.sdBlur?.emit(event);
2682
+ };
2683
+ handleKeyDown = (event) => {
2684
+ if (event.key === 'ArrowUp') {
2685
+ event.preventDefault();
2686
+ this.handleIncrement();
2687
+ }
2688
+ else if (event.key === 'ArrowDown') {
2689
+ event.preventDefault();
2690
+ this.handleDecrement();
2691
+ }
2692
+ };
2693
+ handleIncrement = () => {
2694
+ if (this.isIncrementDisabled())
2695
+ return;
2696
+ const currentVal = this.internalValue ?? (this.min ?? 0);
2697
+ let nextVal = currentVal + this.step;
2698
+ if (nextVal > this.max) {
2699
+ nextVal = this.max;
2700
+ }
2701
+ if (nextVal === currentVal)
2702
+ return;
2703
+ this.sdIncrement?.emit({ currentVal: nextVal, prevVal: currentVal });
2704
+ this.internalValue = nextVal;
2705
+ this.sdChange?.emit(nextVal);
2706
+ };
2707
+ handleDecrement = () => {
2708
+ if (this.isDecrementDisabled())
2709
+ return;
2710
+ const currentVal = this.internalValue ?? (this.min ?? 0);
2711
+ let nextVal = currentVal - this.step;
2712
+ if (nextVal < this.min) {
2713
+ nextVal = this.min;
2714
+ }
2715
+ if (nextVal === currentVal)
2716
+ return;
2717
+ this.sdDecrement?.emit({ currentVal: nextVal, prevVal: currentVal });
2718
+ this.internalValue = nextVal;
2719
+ this.sdChange?.emit(nextVal);
2720
+ };
2721
+ async getNativeElement() {
2722
+ return this.nativeEl || null;
2723
+ }
2724
+ getInputStatus() {
2725
+ if (this.disabled)
2726
+ return 'sd-number-input--disabled';
2727
+ if (this.hovered)
2728
+ return 'sd-number-input--hovered';
2729
+ if (this.status)
2730
+ return `sd-number-input--${this.status}`;
2731
+ if (this.error)
2732
+ return 'sd-number-input--error';
2733
+ return '';
2734
+ }
2735
+ render() {
2736
+ const inputWidth = this.width
2737
+ ? {
2738
+ '--input-width': typeof this.width === 'number' ? `${this.width}px` : this.width,
2739
+ }
2740
+ : {};
2741
+ const inputStyles = {
2742
+ textAlign: this.useButton ? 'center' : 'right',
2743
+ };
2744
+ return (h(Host, { key: '353b3f99bf5933d6f445a78c9cecd93fcbdd3a9c', style: inputWidth, onFocus: this.handleFocus, onBlur: this.handleBlur }, this.useButton ? 'use buttons' : 'dont use buttons', this.label && h("div", { key: '95d9687fa5634fb53f6a2120d2125cf92e12ccdd', class: "sd-number-input__label" }, this.label), h("label", { key: '05ba4deb72261325788b25842c27d7a177fda58a', class: {
2745
+ 'sd-number-input': true,
2746
+ [this.getInputStatus()]: true,
2747
+ 'sd-number-input--with-buttons': this.useButton,
2748
+ }, onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: this.inputStyle }, h("input", { key: 'e4c415d40c20f5e915765f4f7d68cd123517acc1', ref: el => (this.nativeEl = el), class: `sd-number-input__input ${this.inputClass}`, type: "text", inputMode: "numeric", value: this.displayValue, placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onChange: this.handleChange, onKeyDown: this.handleKeyDown, style: inputStyles }), this.useButton && (h("div", { key: '1b960a710170212032a8cd7c1c6ad002a3275d69', class: "sd-number-input__buttons" }, h("button", { key: 'c9a80bbdf96e4e191c2d43f581eba9c77f465464', type: "button", class: {
2749
+ 'sd-number-input__button': true,
2750
+ 'sd-number-input__button--decrement': true,
2751
+ }, disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, h("sd-icon", { key: 'c4791c052f390013e7dfdf78ef42d987e9609da1', name: "minus", size: 12, color: this.isDecrementDisabled() ? '#CCCCCC' : '#2D8DFF' })), h("button", { key: '769fb6ebcde814f1f8667eaadd35f97139869bf3', type: "button", class: {
2752
+ 'sd-number-input__button': true,
2753
+ 'sd-number-input__button--increment': true,
2754
+ }, disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, h("sd-icon", { key: '6a4d263152daaf8f4a565f6659f6bfa6c0acc814', name: "add", size: 12, color: this.isIncrementDisabled() ? '#CCCCCC' : '#2D8DFF' })))))));
2365
2755
  }
2756
+ static get watchers() { return {
2757
+ "value": ["valueChanged"],
2758
+ "internalValue": ["internalValueChanged"]
2759
+ }; }
2366
2760
  };
2367
- SdLoadingSpinner.style = sdLoadingSpinnerCss;
2761
+ SdNumberInput.style = sdNumberInputCss();
2368
2762
 
2369
- const sdPaginationCss = ".sd-pagination{display:flex;flex-flow:row nowrap;align-items:center;justify-content:center;gap:8px;color:#555555;width:100%;font-size:12px}.sd-pagination .prepend-btns{display:flex;flex-flow:row nowrap;align-items:center;gap:8px;width:60px}.sd-pagination .prepend-btns button{width:26px;height:26px;border:0;background:none}.sd-pagination .prepend-btns button:hover{border:1px solid #006ac1;border-radius:14px}.sd-pagination .append-btns{display:flex;flex-flow:row nowrap;align-items:center;gap:8px;width:60px}.sd-pagination .append-btns button{width:26px;height:26px;border:0;background:none}.sd-pagination .append-btns button:hover{border:1px solid #006ac1;border-radius:14px}.sd-pagination .pagination-btn{display:flex;align-items:center;justify-content:center;border-radius:14px;outline:none;border:none;cursor:pointer;height:26px;color:#555555;width:var(--pagination-btn-width, 26px)}.sd-pagination .pagination-btn--selected{background-color:#006ac1;color:white}.sd-pagination .pagination-btn:hover{border:1px solid #006ac1}.sd-pagination--simple .pagination-info{line-height:26px;display:flex;flex-flow:row nowrap;align-items:center;gap:8px}.sd-pagination--simple .pagination-info .current-page,.sd-pagination--simple .pagination-info .last-page{padding:0 2px}";
2763
+ const sdPaginationCss = () => `.sd-pagination{display:flex;flex-flow:row nowrap;align-items:center;justify-content:center;gap:8px;color:#555555;width:100%;font-size:12px}.sd-pagination .prepend-btns{display:flex;flex-flow:row nowrap;align-items:center;gap:8px;width:60px}.sd-pagination .prepend-btns button{width:26px;height:26px;border:0;background:none}.sd-pagination .prepend-btns button:hover{border:1px solid #006ac1;border-radius:14px}.sd-pagination .append-btns{display:flex;flex-flow:row nowrap;align-items:center;gap:8px;width:60px}.sd-pagination .append-btns button{width:26px;height:26px;border:0;background:none}.sd-pagination .append-btns button:hover{border:1px solid #006ac1;border-radius:14px}.sd-pagination .pagination-btn{display:flex;align-items:center;justify-content:center;border-radius:14px;outline:none;border:none;cursor:pointer;height:26px;color:#555555;width:var(--pagination-btn-width, 26px)}.sd-pagination .pagination-btn--selected{background-color:#006ac1;color:white}.sd-pagination .pagination-btn:hover{border:1px solid #006ac1}.sd-pagination--simple .pagination-info{line-height:26px;display:flex;flex-flow:row nowrap;align-items:center;gap:8px}.sd-pagination--simple .pagination-info .current-page,.sd-pagination--simple .pagination-info .last-page{padding:0 2px}`;
2370
2764
 
2371
2765
  const BUTTON_WIDTH = {
2372
2766
  1: 26,
@@ -2440,15 +2834,15 @@ const SdPagination = class {
2440
2834
  }
2441
2835
  }
2442
2836
  render() {
2443
- return (h("div", { key: 'e3abf3098a37fe058088304eefcfa9b6abbdbcaa', class: this.paginationClasses }, h("div", { key: '19db1f5ed8fd2ab9b4f6793b474bf4dd3f48f21c', class: "prepend-btns" }, this.renderPrevButtons()), this.simple ? (h("div", { class: "pagination-info" }, h("span", { class: "current-page" }, this.currentPage), h("span", null, "/"), h("span", { class: "last-page" }, this.lastPage))) : (this.pageNumbers.map(n => (h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
2837
+ return (h("div", { key: 'b027af83594c0408615d4c34b861c5c31112f298', class: this.paginationClasses }, h("div", { key: '959c79e58c7745606d719c66e8090ef23f7db554', class: "prepend-btns" }, this.renderPrevButtons()), this.simple ? (h("div", { class: "pagination-info" }, h("span", { class: "current-page" }, this.currentPage), h("span", null, "/"), h("span", { class: "last-page" }, this.lastPage))) : (this.pageNumbers.map(n => (h("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
2444
2838
  'pagination-btn': true,
2445
2839
  'pagination-btn--selected': this.currentPage === n,
2446
2840
  }, disabled: this.currentPage === n, style: {
2447
2841
  '--pagination-btn-width': `${this.buttonWidth}px`,
2448
- }, onClick: () => this.handlePageChange(n) }, n)))), h("div", { key: '63096633349b138d679b2a735d0e8d246dfde312', class: "append-btns" }, this.renderNextButtons())));
2842
+ }, onClick: () => this.handlePageChange(n) }, n)))), h("div", { key: '64f13226aa9249395ac7aa7d11ea5cc946f5477a', class: "append-btns" }, this.renderNextButtons())));
2449
2843
  }
2450
2844
  };
2451
- SdPagination.style = sdPaginationCss;
2845
+ SdPagination.style = sdPaginationCss();
2452
2846
 
2453
2847
  const SdPortal = class {
2454
2848
  constructor(hostRef) {
@@ -2568,11 +2962,11 @@ const SdPortal = class {
2568
2962
  this.sdClose.emit();
2569
2963
  }
2570
2964
  render() {
2571
- return h("slot", { key: 'a2227a90c04b58d7f8c468ebc84f0627055d4da8' });
2965
+ return h("slot", { key: 'd93a68ecf1a281765225bf204cd479bb4b7bfdbf' });
2572
2966
  }
2573
2967
  };
2574
2968
 
2575
- const sdRadioGroupCss = "sd-radio-group{display:inline-block}sd-radio-group .sd-radio-group{display:flex}sd-radio-group .sd-radio-group--vertical{flex-direction:column;gap:8px}sd-radio-group .sd-radio-group--horizontal{flex-direction:row;align-items:center;gap:20px}sd-radio-group .sd-radio-group__option{width:fit-content;display:flex;align-items:center;gap:8px;font-weight:400;font-size:12px;line-height:20px;cursor:pointer}sd-radio-group .sd-radio-group__option:has(input:disabled){cursor:default}sd-radio-group .sd-radio-group__option input{position:relative;appearance:none;margin:0;width:16px;height:16px;border:1px solid #888888;border-radius:50%;cursor:pointer;accent-color:#0075ff;background-color:white}sd-radio-group .sd-radio-group__option input:checked{border-color:#0075ff;background-color:white}sd-radio-group .sd-radio-group__option input:checked::before{content:\"\";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:10px;height:10px;border-radius:50%;background-color:#0075ff}sd-radio-group .sd-radio-group__option input:disabled{cursor:default;border-color:#cccccc;background-color:#eeeeee}sd-radio-group .sd-radio-group__option input:disabled:checked::before{background-color:#cccccc}sd-radio-group .sd-radio-group__option input:not(:disabled):hover{border-color:#0075ff;background-color:#d9eaff}sd-radio-group .sd-radio-group__label{font-size:12px;color:#333333;line-height:20px;user-select:none}sd-radio-group .sd-radio-group__option--disabled .sd-radio-group__label{color:#888888}";
2969
+ const sdRadioGroupCss = () => `sd-radio-group{display:inline-block}sd-radio-group .sd-radio-group{display:flex}sd-radio-group .sd-radio-group--vertical{flex-direction:column;gap:8px}sd-radio-group .sd-radio-group--horizontal{flex-direction:row;align-items:center;gap:20px}sd-radio-group .sd-radio-group__option{width:fit-content;display:flex;align-items:center;gap:8px;font-weight:400;font-size:12px;line-height:20px;cursor:pointer}sd-radio-group .sd-radio-group__option:has(input:disabled){cursor:default}sd-radio-group .sd-radio-group__option input{position:relative;appearance:none;margin:0;width:16px;height:16px;border:1px solid #888888;border-radius:50%;cursor:pointer;accent-color:#0075ff;background-color:white}sd-radio-group .sd-radio-group__option input:checked{border-color:#0075ff;background-color:white}sd-radio-group .sd-radio-group__option input:checked::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:10px;height:10px;border-radius:50%;background-color:#0075ff}sd-radio-group .sd-radio-group__option input:disabled{cursor:default;border-color:#cccccc;background-color:#eeeeee}sd-radio-group .sd-radio-group__option input:disabled:checked::before{background-color:#cccccc}sd-radio-group .sd-radio-group__option input:not(:disabled):hover{border-color:#0075ff;background-color:#d9eaff}sd-radio-group .sd-radio-group__label{font-size:12px;color:#333333;line-height:20px;user-select:none}sd-radio-group .sd-radio-group__option--disabled .sd-radio-group__label{color:#888888}`;
2576
2970
 
2577
2971
  const SdRadioGroup = class {
2578
2972
  constructor(hostRef) {
@@ -2625,7 +3019,7 @@ const SdRadioGroup = class {
2625
3019
  }
2626
3020
  render() {
2627
3021
  const groupName = this.name || `sd-radio-group-${Math.random().toString(36).substring(2, 11)}`;
2628
- return (h("div", { key: 'f817ced0e784c418c09c6c3e1cd6d9e045d32598', class: this.getGroupClasses(), role: "radiogroup", "aria-disabled": this.disabled.toString() }, this.radioOptions.map((option, index) => {
3022
+ return (h("div", { key: '41a5801484b12c0688d34d7225b07ce4ac8073fa', class: this.getGroupClasses(), role: "radiogroup", "aria-disabled": this.disabled.toString() }, this.radioOptions.map((option, index) => {
2629
3023
  const isSelected = this.isOptionSelected(option);
2630
3024
  const isDisabled = this.isOptionDisabled(option);
2631
3025
  return (h("label", { key: `radio-${index}`, class: this.getRadioClasses(option), role: "radio", "aria-checked": isSelected.toString(), "aria-disabled": isDisabled.toString(), "aria-label": option.label || 'radio option' }, h("input", { type: "radio", name: groupName, value: option.value.toString(), checked: isSelected, disabled: isDisabled, onInput: () => this.handleRadioChange(option.value, option.disabled) }), option.label && h("span", { class: "sd-radio-group__label" }, option.label)));
@@ -2635,9 +3029,9 @@ const SdRadioGroup = class {
2635
3029
  "value": ["valueChanged"]
2636
3030
  }; }
2637
3031
  };
2638
- SdRadioGroup.style = sdRadioGroupCss;
3032
+ SdRadioGroup.style = sdRadioGroupCss();
2639
3033
 
2640
- const sdSelectCss = ".sd-select__dropdown{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-select__dropdown::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-select__dropdown::-webkit-scrollbar:horizontal{height:8px}.sd-select__dropdown::-webkit-scrollbar:vertical{width:8px}.sd-select__dropdown::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-select__dropdown::-webkit-scrollbar-track{background-color:transparent}.sd-select{display:flex;width:var(--select-width, 200px);height:28px;position:relative;color:#333333;cursor:pointer;user-select:none;border:1px solid #aaaaaa;border-radius:4px;background-color:white}.sd-select:hover:not(.sd-select--disabled){background:#f6f6f6}.sd-select.sd-select--disabled{cursor:not-allowed;background-color:#eeeeee;border-color:#cccccc}.sd-select.sd-select--disabled .sd-select__label{border-right:1px solid #cccccc}.sd-select.sd-select--disabled .sd-select__trigger{color:#888888}.sd-select.sd-select--disabled .sd-select__trigger:focus,.sd-select.sd-select--disabled .sd-select__trigger:focus-visible,.sd-select.sd-select--disabled .sd-select__trigger:focus-within{outline:none !important}.sd-select__label{font-size:12px;line-height:20px;font-weight:500;color:#333333;padding:4px 12px;border-right:1px solid #cccccc;border-radius:4px 0 0 4px;background-color:#f6f6f6;display:inline-block;white-space:nowrap}.sd-select__container{position:relative;width:100%;display:flex}.sd-select__container .sd-select__trigger{padding:4px 20px 4px 12px;display:flex;width:100%;align-items:center}.sd-select__container .sd-select__trigger .sd-select__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400;text-align:left}.sd-select__container .sd-select__trigger .sd-select__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}.sd-select__container .sd-select__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease}.sd-select__container .sd-select__arrow--open{transform:rotate(180deg)}.sd-select__dropdown{width:var(--select-dropdown-width, 200px);max-height:var(--select-dropdown-height, 260px);padding-bottom:2px;background-color:white;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);border-radius:4px;overflow-y:auto;color:#333333;display:flex;flex-direction:column}.sd-select__dropdown .sd-select__search-container{position:sticky;top:0;display:flex;width:100%;background-color:white;align-items:center;padding:4px 8px}.sd-select__dropdown .sd-select__search-container--scrolled{box-shadow:2px 2px 8px 2px rgba(0, 0, 0, 0.2)}.sd-select__dropdown .sd-select__option-placeholder{padding:4px 12px;font-size:12px;line-height:20px;text-align:left}";
3034
+ const sdSelectCss = () => `.sd-select__dropdown{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-select__dropdown::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-select__dropdown::-webkit-scrollbar:horizontal{height:8px}.sd-select__dropdown::-webkit-scrollbar:vertical{width:8px}.sd-select__dropdown::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-select__dropdown::-webkit-scrollbar-track{background-color:transparent}.sd-select{display:flex;width:var(--select-width, 200px);height:28px;position:relative;color:#333333;cursor:pointer;user-select:none;border:1px solid #aaaaaa;border-radius:4px;background-color:white}.sd-select:hover:not(.sd-select--disabled){background:#f6f6f6}.sd-select.sd-select--disabled{cursor:not-allowed;background-color:#eeeeee;border-color:#cccccc}.sd-select.sd-select--disabled .sd-select__label{border-right:1px solid #cccccc}.sd-select.sd-select--disabled .sd-select__trigger{color:#888888}.sd-select.sd-select--disabled .sd-select__trigger:focus,.sd-select.sd-select--disabled .sd-select__trigger:focus-visible,.sd-select.sd-select--disabled .sd-select__trigger:focus-within{outline:none !important}.sd-select__label{font-size:12px;line-height:20px;font-weight:500;color:#333333;padding:4px 12px;border-right:1px solid #cccccc;border-radius:4px 0 0 4px;background-color:#f6f6f6;display:inline-block;white-space:nowrap}.sd-select__container{position:relative;width:100%;display:flex}.sd-select__container .sd-select__trigger{padding:4px 20px 4px 12px;display:flex;width:100%;align-items:center}.sd-select__container .sd-select__trigger .sd-select__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400;text-align:left}.sd-select__container .sd-select__trigger .sd-select__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}.sd-select__container .sd-select__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease}.sd-select__container .sd-select__arrow--open{transform:rotate(180deg)}.sd-select__dropdown{width:var(--select-dropdown-width, 200px);max-height:var(--select-dropdown-height, 260px);padding-bottom:2px;background-color:white;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);border-radius:4px;overflow-y:auto;color:#333333;display:flex;flex-direction:column}.sd-select__dropdown .sd-select__search-container{position:sticky;top:0;display:flex;width:100%;background-color:white;align-items:center;padding:4px 8px}.sd-select__dropdown .sd-select__search-container--scrolled{box-shadow:2px 2px 8px 2px rgba(0, 0, 0, 0.2)}.sd-select__dropdown .sd-select__option-placeholder{padding:4px 12px;font-size:12px;line-height:20px;text-align:left}`;
2641
3035
 
2642
3036
  const SdSelect = class extends BaseDropdownEvent {
2643
3037
  constructor(hostRef) {
@@ -2673,6 +3067,9 @@ const SdSelect = class extends BaseDropdownEvent {
2673
3067
  searchRef;
2674
3068
  optionRef;
2675
3069
  dropdownRef;
3070
+ async open() {
3071
+ this.isOpen = true;
3072
+ }
2676
3073
  valueChanged() {
2677
3074
  const selectedOption = this.getSelectedOption();
2678
3075
  this.sdChange?.emit({ value: selectedOption?.value || null, option: selectedOption || null });
@@ -2688,7 +3085,7 @@ const SdSelect = class extends BaseDropdownEvent {
2688
3085
  if (this.searchable) {
2689
3086
  const searchInput = await this.getNativeInputElement();
2690
3087
  if (this.itemIndex === -1) {
2691
- searchInput?.focus();
3088
+ searchInput?.focus({ preventScroll: true });
2692
3089
  return;
2693
3090
  }
2694
3091
  else if (searchInput?.matches(':focus')) {
@@ -2733,7 +3130,7 @@ const SdSelect = class extends BaseDropdownEvent {
2733
3130
  const currentItem = optionElements?.[this.itemIndex];
2734
3131
  if (this.searchable) {
2735
3132
  const searchInput = await this.getNativeInputElement();
2736
- searchInput?.focus();
3133
+ searchInput?.focus({ preventScroll: true });
2737
3134
  }
2738
3135
  if (!currentItem)
2739
3136
  return;
@@ -2841,11 +3238,11 @@ const SdSelect = class extends BaseDropdownEvent {
2841
3238
  '--select-width': this.width || '200px',
2842
3239
  '--select-dropdown-height': this.dropdownHeight || '260px',
2843
3240
  };
2844
- return (h(Host, { key: 'a99d2903e6156a30aa834dea2344829edbde67cb', style: style }, h("div", { key: '39862875a121d9add2c0101d81e223d475d14abb', class: {
3241
+ return (h(Host, { key: 'ba065b311487ea934dc46736fd633d4d1a13f2e4', style: style }, h("div", { key: '904d988d274e7827d5c969ba45643648ba0a61b3', class: {
2845
3242
  'sd-select': true,
2846
3243
  'sd-select--open': this.isOpen,
2847
3244
  'sd-select--disabled': this.disabled,
2848
- }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), h("div", { key: '6a7e4ffc442e4edfe508e60c8b578f8c8fb5e409', class: "sd-select__container" }, this.renderTrigger(), this.renderDropdown()))));
3245
+ }, ref: el => (this.selectRef = el) }, this.renderLabel(this.label), h("div", { key: '66fe35a68fa18cf97b4db110572f86faefa59207', class: "sd-select__container" }, this.renderTrigger(), this.renderDropdown()))));
2849
3246
  }
2850
3247
  renderLabel(label) {
2851
3248
  if (!label)
@@ -2883,62 +3280,551 @@ const SdSelect = class extends BaseDropdownEvent {
2883
3280
  "isOpen": ["isOpenChanged"]
2884
3281
  }; }
2885
3282
  };
2886
- SdSelect.style = sdSelectCss;
3283
+ SdSelect.style = sdSelectCss();
2887
3284
 
2888
- const sdSelectOptionCss = "sd-select-option{display:block;height:fit-content;line-height:0}sd-select-option .sd-select__option{display:flex;padding:4px 12px;font-size:12px;line-height:20px;cursor:pointer}sd-select-option .sd-select__option__checkbox-wrapper{display:flex;width:100%;column-gap:8px;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}sd-select-option .sd-select__option--focused{background-color:#e6f1ff}sd-select-option .sd-select__option--selected:not(:hover):not(.sd-select__option--use-checkbox),sd-select-option .sd-select__option--focused:not(:hover):not(.sd-select__option--use-checkbox){color:#0075ff;font-weight:700}sd-select-option .sd-select__option--disabled{color:#aaaaaa;cursor:not-allowed}sd-select-option .sd-select__option:hover:not(.sd-select__option--disabled){background-color:#0075ff;color:white}";
3285
+ const sdSelectMultipleGroupCss = () => `.sd-select-multiple-group__dropdown{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-select-multiple-group__dropdown::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-select-multiple-group__dropdown::-webkit-scrollbar:horizontal{height:8px}.sd-select-multiple-group__dropdown::-webkit-scrollbar:vertical{width:8px}.sd-select-multiple-group__dropdown::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-select-multiple-group__dropdown::-webkit-scrollbar-track{background-color:transparent}sd-select-multiple-group{display:inline-block;height:fit-content}sd-select-multiple-group .sd-select-multiple-group{display:flex;flex-wrap:nowrap;width:var(--select-width, 200px);cursor:pointer;user-select:none;border:1px solid #aaaaaa;border-radius:4px;background-color:white;color:#333333}sd-select-multiple-group .sd-select-multiple-group:hover:not(.sd-select-multiple-group--disabled){background:#f6f6f6}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled{cursor:not-allowed;background-color:#eeeeee;border-color:#cccccc}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__label{border-right:1px solid #cccccc}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger{color:#888888}sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus,sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus-visible,sd-select-multiple-group .sd-select-multiple-group.sd-select-multiple-group--disabled .sd-select-multiple-group__trigger:focus-within{outline:none !important}sd-select-multiple-group .sd-select-multiple-group__label{font-size:12px;font-weight:500;color:#333333;padding:4px 12px;border-right:1px solid #cccccc;border-radius:4px 0 0 4px;background-color:#f6f6f6}sd-select-multiple-group .sd-select-multiple-group__container{position:relative;width:100%;display:flex}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger{padding:4px 20px 4px 12px;display:flex;width:100%;align-items:center}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger .sd-select-multiple-group__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px;font-size:12px;font-weight:400}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__trigger .sd-select-multiple-group__clear{margin:0 4px;width:8px;height:8px;background-color:transparent;outline:none;border:none}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__arrow{position:absolute;top:8px;right:8px;width:12px;height:12px;color:#888888;transition:transform 0.3s ease}sd-select-multiple-group .sd-select-multiple-group__container .sd-select-multiple-group__arrow--open{transform:rotate(180deg)}.sd-select-multiple-group__dropdown{width:var(--select-width, 200px);max-height:var(--select-dropdown-height, 260px);padding-bottom:2px;background-color:white;box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.1);border-radius:4px;overflow-y:auto;color:#333333;opacity:0.5;transition:opacity 0.15s ease-in}.sd-select-multiple-group__dropdown--ready{opacity:1}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container{position:sticky;top:0;display:flex;width:100%;background-color:white;align-items:center;padding:4px 8px}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container sd-input{width:100%}.sd-select-multiple-group__dropdown .sd-select-multiple-group__search-container--scrolled{box-shadow:2px 2px 8px 2px rgba(0, 0, 0, 0.2)}.sd-select-multiple-group__dropdown .sd-select-multiple-group__option-placeholder{padding:4px 12px;font-size:12px;line-height:20px}`;
2889
3286
 
2890
- const SdSelectOption = class {
3287
+ const SdSelectMultipleGroup = class extends BaseDropdownEvent {
2891
3288
  constructor(hostRef) {
3289
+ super();
2892
3290
  registerInstance(this, hostRef);
2893
- this.optionClick = createEvent(this, "optionClick");
3291
+ this.sdChange = createEvent(this, "sdChange");
3292
+ this.dropDownShow = createEvent(this, "dropDownShow");
2894
3293
  }
2895
3294
  get el() { return getElement(this); }
2896
- option;
2897
- index;
2898
- isSelected = false;
2899
- isFocused = false;
2900
- optionStyle;
3295
+ // props
3296
+ value = null;
3297
+ label = '';
3298
+ options = [];
3299
+ placeholder = '선택';
3300
+ optionPlaceholder = '옵션이 없습니다.';
3301
+ width = '200px';
3302
+ dropdownHeight = '260px';
2901
3303
  disabled = false;
3304
+ clearable = false;
3305
+ searchable = false;
2902
3306
  useCheckbox = false;
2903
- isHovered = false;
2904
- async isDisabled() {
2905
- return !!this.option.disabled;
3307
+ useAll = false;
3308
+ allCheckedLabel = '전체';
3309
+ allCheckOptionLabel = '전체';
3310
+ // props - custom styles
3311
+ containerStyle = {};
3312
+ triggerStyle = {};
3313
+ dropdownStyle = {};
3314
+ optionStyle = {};
3315
+ labelStyle = {};
3316
+ // props - custom slots
3317
+ optionRenderer;
3318
+ // states
3319
+ filteredOptions = this.options;
3320
+ isOpen = false;
3321
+ searchText = null;
3322
+ itemIndex = -1;
3323
+ isScrolled = false;
3324
+ isDropdownReady = false;
3325
+ // events
3326
+ sdChange;
3327
+ dropDownShow;
3328
+ selectRef;
3329
+ searchRef;
3330
+ optionRef;
3331
+ dropdownRef;
3332
+ valueChanged() {
3333
+ this.sdChange?.emit(this.value);
2906
3334
  }
2907
- optionClick;
2908
- handleClick = (event) => {
2909
- event.stopPropagation();
2910
- if (!this.option.disabled && !this.disabled) {
2911
- this.optionClick.emit({
2912
- option: this.option,
2913
- index: this.index,
2914
- event,
2915
- });
2916
- }
2917
- };
2918
- render() {
2919
- return (h(Host, { key: '7cf5b51057f8eb7ad7cf7143225bcd842e5fa231' }, h("div", { key: 'ab9e02db38a0717b9aeb85890b150a6e59a9f7ee', class: {
2920
- 'sd-select__option': true,
2921
- 'sd-select__option--selected': this.isSelected,
2922
- 'sd-select__option--disabled': !!this.option.disabled,
2923
- 'sd-select__option--focused': this.isFocused,
2924
- 'sd-select__option--use-checkbox': this.useCheckbox,
2925
- }, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: this.handleClick }, this.useCheckbox ? (h("div", { class: "sd-select__option__checkbox-wrapper" }, h("sd-checkbox", { checked: this.isSelected, disabled: this.option.disabled,
2926
- // checkboxStyle={
2927
- // !this.isSelected
2928
- // ? { borderColor: '#888' }
2929
- // : this.isHovered
2930
- // ? { borderColor: 'white' }
2931
- // : { borderColor: '#0075ff' }
2932
- // }
2933
- onClick: e => {
2934
- e.preventDefault();
2935
- this.handleClick(e);
2936
- } }), h("span", { class: "sd-select__option-label" }, this.option.label))) : (this.option.label))));
3335
+ optionsChanged() {
3336
+ this.filteredOptions = this.options;
3337
+ this.filterOptions();
2937
3338
  }
3339
+ searchTextChanged() {
3340
+ this.filterOptions();
3341
+ }
3342
+ async itemIndexChanged(newIndex, oldIndex) {
3343
+ if (this.searchable) {
3344
+ const searchInput = await this.getNativeInputElement();
3345
+ if (this.itemIndex === -1) {
3346
+ searchInput?.focus({ preventScroll: true });
3347
+ return;
3348
+ }
3349
+ else if (searchInput?.matches(':focus')) {
3350
+ searchInput?.blur();
3351
+ }
3352
+ }
3353
+ const optionElements = Array.from(this.dropdownRef?.querySelectorAll('sd-select-option-group') || []);
3354
+ // useAll 사용시 "전체" 옵션 포함한 인덱스 사용
3355
+ const actualIndex = this.useAll ? this.itemIndex + 1 : this.itemIndex;
3356
+ const currentItem = optionElements?.[actualIndex];
3357
+ if (!currentItem || !this.isOpen)
3358
+ return;
3359
+ this.optionRef = currentItem;
3360
+ const isOptionDisabled = await this.optionRef.isDisabled();
3361
+ if (isOptionDisabled) {
3362
+ newIndex > oldIndex ? this.itemIndex++ : this.itemIndex--;
3363
+ return;
3364
+ }
3365
+ this.scrollToOption(currentItem);
3366
+ }
3367
+ async isOpenChanged() {
3368
+ // Base class의 이벤트 관리 호출 - 다른 select와의 이벤트 충돌 방지
3369
+ this.onDropdownToggle(this.isOpen);
3370
+ this.dropDownShow?.emit({ isOpen: this.isOpen });
3371
+ this.isDropdownReady = false;
3372
+ if (this.isOpen === false) {
3373
+ return;
3374
+ }
3375
+ // DOM 렌더링을 기다리기 위해 이중 requestAnimationFrame 사용 - (레이아웃/스타일 계산 - 페인트 이후)
3376
+ requestAnimationFrame(() => {
3377
+ requestAnimationFrame(async () => {
3378
+ const selectedOptions = this.getSelectedOption();
3379
+ // 선택된 옵션이 있으면 첫 번째 선택된 항목으로 스크롤
3380
+ if (selectedOptions && selectedOptions.length > 0) {
3381
+ const selectedIndex = this.options.indexOf(selectedOptions[0]);
3382
+ const optionElements = Array.from(this.dropdownRef?.querySelectorAll('sd-select-option-group') || []);
3383
+ // useAll 사용시 "전체" 옵션 포함한 인덱스 사용
3384
+ const actualIndex = this.useAll ? selectedIndex + 1 : selectedIndex;
3385
+ // 선택된 옵션이 화면 가운데에 오도록 index 조정
3386
+ const targetIndex = Math.min(actualIndex + 4, optionElements.length - 1);
3387
+ const currentItem = optionElements?.[targetIndex];
3388
+ if (currentItem) {
3389
+ this.scrollToOption(currentItem);
3390
+ }
3391
+ }
3392
+ this.isDropdownReady = true;
3393
+ if (this.searchable) {
3394
+ const searchInput = await this.getNativeInputElement();
3395
+ if (searchInput) {
3396
+ requestAnimationFrame(() => {
3397
+ searchInput.focus({ preventScroll: true });
3398
+ });
3399
+ }
3400
+ }
3401
+ });
3402
+ });
3403
+ }
3404
+ async open() {
3405
+ await new Promise(resolve => setTimeout(resolve, 0));
3406
+ this.isOpen = true;
3407
+ }
3408
+ componentWillLoad() {
3409
+ // props가 모두 설정된 후에 실행되므로 올바른 options 값을 가져올 수 있음
3410
+ this.filteredOptions = this.options;
3411
+ this.initializeEvent(); // global dropdown Manager에 등록 + 이벤트 핸들러 초기화
3412
+ }
3413
+ disconnectedCallback() {
3414
+ this.cleanupEvent(); // global dropdown Manager에서 제거 + 이벤트 정리
3415
+ }
3416
+ handleDocumentClick(event) {
3417
+ if (!this.selectRef?.contains(event.target)) {
3418
+ this.isOpen = false;
3419
+ }
3420
+ }
3421
+ handleDocumentKeydown(keyboardEvent) {
3422
+ keyboardEvent.stopPropagation();
3423
+ const targetKey = ['ArrowDown', 'ArrowUp', 'Enter', 'Escape'];
3424
+ if (!targetKey.includes(keyboardEvent.key))
3425
+ return;
3426
+ keyboardEvent.preventDefault();
3427
+ switch (keyboardEvent.key) {
3428
+ case 'ArrowDown':
3429
+ case 'ArrowUp':
3430
+ const keyboardNavigation = new SelectKeyboardNavigation(this.searchable, this.filteredOptions);
3431
+ const nextIndex = keyboardNavigation.getNextIndex(this.itemIndex, keyboardEvent.key);
3432
+ this.itemIndex = nextIndex;
3433
+ break;
3434
+ case 'Enter':
3435
+ const selectedOption = this.filteredOptions[this.itemIndex];
3436
+ if (selectedOption && !selectedOption.disabled) {
3437
+ this.handleOptionSelection(selectedOption);
3438
+ }
3439
+ break;
3440
+ case 'Escape':
3441
+ this.isOpen = false;
3442
+ break;
3443
+ }
3444
+ }
3445
+ // event handlers
3446
+ handleTriggerClick = (event) => {
3447
+ event.stopPropagation();
3448
+ if (!this.disabled) {
3449
+ this.isOpen = !this.isOpen;
3450
+ this.dropDownShow?.emit({ isOpen: this.isOpen });
3451
+ }
3452
+ };
3453
+ handleAllOptionClick = (detail) => {
3454
+ if (detail.isSelected) {
3455
+ // 이미 선택된 옵션인 경우, 선택 해제
3456
+ const filterDisabledOptions = this.filteredOptions.filter(opt => opt.type === 'item' && !opt.disabled);
3457
+ this.value =
3458
+ this.value?.filter(selected => !filterDisabledOptions.some(opt => opt.value === selected.value)) || this.value;
3459
+ }
3460
+ else {
3461
+ // 새로운 옵션 선택
3462
+ const valueSet = new Set([
3463
+ ...(this.value || []),
3464
+ ...this.filteredOptions.filter(opt => opt.type === 'item' && !opt.disabled),
3465
+ ]);
3466
+ this.value = Array.from(valueSet);
3467
+ }
3468
+ };
3469
+ handleOptionClick = (detail) => {
3470
+ const { option, event } = detail;
3471
+ event.stopPropagation();
3472
+ if (option.type === 'group')
3473
+ this.handleGroupOptionClick(detail);
3474
+ if (option.type === 'subgroup')
3475
+ this.handleSubGroupOptionClick(detail);
3476
+ if (option.type === 'item')
3477
+ this.handleOptionSelection(option);
3478
+ };
3479
+ handleGroupOptionClick = (detail) => {
3480
+ const { option, isSelected } = detail;
3481
+ const childOptions = this.filteredOptions.filter(opt => opt.parent === option.value && !opt.disabled);
3482
+ childOptions.forEach(subgroup => {
3483
+ this.handleSubGroupOptionClick({
3484
+ option: subgroup,
3485
+ isSelected: isSelected || isSelected === null,
3486
+ });
3487
+ });
3488
+ };
3489
+ handleSubGroupOptionClick = (detail) => {
3490
+ const { option, isSelected } = detail;
3491
+ const childOptions = this.filteredOptions.filter(opt => opt.parent === option.value && !opt.disabled);
3492
+ if (isSelected || isSelected === null) {
3493
+ // 모든 자식 옵션이 선택된 경우, 모두 선택 해제
3494
+ this.value =
3495
+ this.value?.filter(selected => !childOptions.some(child => child.value === selected.value)) ||
3496
+ null;
3497
+ }
3498
+ else {
3499
+ // 일부 또는 전체 자식 옵션이 선택되지 않은 경우, 모두 선택
3500
+ const newSelections = childOptions.filter(child => !this.value?.some(selected => selected.value === child.value));
3501
+ this.value = [...(this.value || []), ...newSelections];
3502
+ }
3503
+ };
3504
+ filterOptions() {
3505
+ if (!this.searchText || this.searchText.trim() === '') {
3506
+ // 검색어가 없으면 전체 옵션 표시
3507
+ this.filteredOptions = this.options;
3508
+ return;
3509
+ }
3510
+ const searchTerm = this.searchText.toLowerCase();
3511
+ const matchedOptions = new Set();
3512
+ // 1. 직접 매칭되는 옵션들 찾기
3513
+ this.options.forEach(option => {
3514
+ if (option.label.toLowerCase().includes(searchTerm)) {
3515
+ matchedOptions.add(option);
3516
+ // 매칭된 옵션의 상위 그룹들도 포함
3517
+ this.addParentGroups(option, matchedOptions);
3518
+ }
3519
+ });
3520
+ // 2. Set을 배열로 변환하고 원본 순서 유지
3521
+ this.filteredOptions = this.options.filter(option => matchedOptions.has(option));
3522
+ }
3523
+ addParentGroups(option, matchedSet) {
3524
+ if (!option.parent)
3525
+ return;
3526
+ const parentOption = this.options.find(opt => opt.value === option.parent);
3527
+ if (parentOption && !matchedSet.has(parentOption)) {
3528
+ matchedSet.add(parentOption);
3529
+ // 재귀적으로 상위 그룹들도 추가
3530
+ this.addParentGroups(parentOption, matchedSet);
3531
+ }
3532
+ }
3533
+ getSelectedOption() {
3534
+ return this.options.filter(option => this.value?.includes(option));
3535
+ }
3536
+ handleDropdownScroll = (event) => {
3537
+ const target = event.target;
3538
+ const scrollTop = target.scrollTop;
3539
+ // 스크롤이 조금이라도 되면 그림자 표시
3540
+ this.isScrolled = scrollTop > 0;
3541
+ };
3542
+ async getNativeInputElement() {
3543
+ if (this.searchRef) {
3544
+ return this.searchRef.getNativeElement();
3545
+ }
3546
+ return null;
3547
+ }
3548
+ handleOptionSelection = (option) => {
3549
+ if (!option || option.disabled)
3550
+ return;
3551
+ const isAlreadySelected = this.value?.some(opt => opt.value === option.value);
3552
+ if (isAlreadySelected) {
3553
+ // 이미 선택된 옵션인 경우, 선택 해제
3554
+ this.value = this.value?.filter(opt => opt.value !== option.value) || null;
3555
+ }
3556
+ else {
3557
+ // 새로운 옵션 선택
3558
+ this.value = [...(this.value || []), option];
3559
+ }
3560
+ };
3561
+ getAllItemsUnderOption(parentOption, includeDisabled = false) {
3562
+ const filterChildrenWithParent = (option) => option.parent === parentOption.value && (includeDisabled || !option.disabled);
3563
+ if (parentOption.type === 'subgroup') {
3564
+ return this.filteredOptions.filter(option => filterChildrenWithParent(option) && option.type === 'item');
3565
+ }
3566
+ const allItems = [];
3567
+ const childOptions = this.filteredOptions.filter(filterChildrenWithParent);
3568
+ const subgroupOptions = childOptions.filter(option => option.type === 'subgroup');
3569
+ subgroupOptions.forEach(subgroup => {
3570
+ const itemsUnderSubgroup = this.filteredOptions.filter(option => option.parent === subgroup.value &&
3571
+ option.type === 'item' &&
3572
+ (includeDisabled ? true : !option.disabled));
3573
+ allItems.push(...itemsUnderSubgroup);
3574
+ });
3575
+ const directItems = childOptions.filter(option => option.type === 'item');
3576
+ allItems.push(...directItems);
3577
+ return allItems;
3578
+ }
3579
+ isAllChildrenSelected(groupOption) {
3580
+ const allItems = this.getAllItemsUnderOption(groupOption);
3581
+ if (allItems.length === 0)
3582
+ return false;
3583
+ const selectedItems = allItems.filter(item => this.value?.some(selected => selected.value === item.value));
3584
+ if (selectedItems.length === allItems.length)
3585
+ return true;
3586
+ if (selectedItems.length > 0)
3587
+ return null;
3588
+ return false;
3589
+ }
3590
+ getChildrenOptions(parentOption) {
3591
+ const allItems = this.getAllItemsUnderOption(parentOption, true);
3592
+ const selectedCount = allItems.filter(item => this.value?.some(val => val.value === item.value)).length;
3593
+ return {
3594
+ selectedCount,
3595
+ totalCount: allItems.length,
3596
+ };
3597
+ }
3598
+ isAllOptionsSelected() {
3599
+ if (!this.value || this.value.length === 0)
3600
+ return false;
3601
+ const selectableItems = this.options.filter(opt => opt.type === 'item' && !opt.disabled);
3602
+ if (selectableItems.length === 0)
3603
+ return false;
3604
+ const selectedValues = new Set(this.value.map(v => v.value));
3605
+ return selectableItems.every(option => selectedValues.has(option.value));
3606
+ }
3607
+ getTriggerLabel() {
3608
+ const selectedOption = this.getSelectedOption();
3609
+ if (!selectedOption)
3610
+ return '선택';
3611
+ if (selectedOption.length === 0)
3612
+ return this.placeholder;
3613
+ const isAllChecked = this.isAllOptionsSelected();
3614
+ return isAllChecked
3615
+ ? this.allCheckedLabel
3616
+ : selectedOption.map(option => option.label).join(', ');
3617
+ }
3618
+ closeDropdown() {
3619
+ this.isOpen = false;
3620
+ }
3621
+ async scrollToOption(optionElement) {
3622
+ if (!this.dropdownRef || !optionElement)
3623
+ return;
3624
+ requestAnimationFrame(() => {
3625
+ const dropdown = this.dropdownRef;
3626
+ const optionTop = optionElement.offsetTop;
3627
+ const optionHeight = optionElement.offsetHeight;
3628
+ const dropdownScrollTop = dropdown.scrollTop;
3629
+ const dropdownHeight = dropdown.clientHeight;
3630
+ const searchContainer = dropdown.querySelector('.sd-select-multiple-group__search-container');
3631
+ const searchOffset = searchContainer ? searchContainer.offsetHeight : 0;
3632
+ const visibleContentHeight = dropdownHeight - searchOffset;
3633
+ const visibleTop = dropdownScrollTop + searchOffset;
3634
+ const visibleBottom = dropdownScrollTop + dropdownHeight;
3635
+ if (optionTop < visibleTop) {
3636
+ dropdown.scrollTo({ top: optionTop - searchOffset, behavior: 'instant' });
3637
+ }
3638
+ else if (optionTop + optionHeight > visibleBottom) {
3639
+ dropdown.scrollTo({
3640
+ top: optionTop + optionHeight - visibleContentHeight - searchOffset,
3641
+ behavior: 'instant',
3642
+ });
3643
+ }
3644
+ });
3645
+ }
3646
+ render() {
3647
+ const style = {
3648
+ '--select-width': this.width || '200px',
3649
+ '--select-dropdown-height': this.dropdownHeight || '260px',
3650
+ };
3651
+ return (h(Host, { key: '00e3f75c997fe76087ddfa2d9fef2ddb11a10a3e', style: style }, h("div", { key: 'f7e5a9f0d3704e0cfb014c8b7a84e6c93d61d31b', class: {
3652
+ 'sd-select-multiple-group': true,
3653
+ 'sd-select-multiple-group--open': this.isOpen,
3654
+ 'sd-select-multiple-group--disabled': this.disabled,
3655
+ }, style: this.containerStyle, ref: el => (this.selectRef = el) }, this.renderLabel(this.label, this.labelStyle), h("div", { key: '5b4d771e6ba76ce56974eeee2f01e6a267f557f5', class: "sd-select-multiple-group__container" }, this.renderTrigger(), this.renderDropdown()))));
3656
+ }
3657
+ renderLabel(label, labelStyle) {
3658
+ if (!label)
3659
+ return null;
3660
+ return (h("label", { class: "sd-select-multiple-group__label", style: labelStyle }, label));
3661
+ }
3662
+ renderTrigger() {
3663
+ const selectedOption = this.getSelectedOption();
3664
+ return (h("div", { class: "sd-select-multiple-group__trigger", tabindex: this.disabled ? -1 : 0, onClick: this.handleTriggerClick, style: this.triggerStyle }, h("span", { class: "sd-select-multiple-group__value" }, this.getTriggerLabel()), this.clearable && selectedOption?.length > 0 && !this.disabled && (h("sd-icon", { key: "close-icon", name: "close", size: 10, color: "#888", class: "sd-select-multiple-group__clear", onClick: event => {
3665
+ event.stopPropagation();
3666
+ this.value = null;
3667
+ } })), h("sd-icon", { key: "arrow-icon", name: "arrowDown", color: "#888", class: {
3668
+ 'sd-select-multiple-group__arrow': true,
3669
+ 'sd-select-multiple-group__arrow--open': this.isOpen,
3670
+ } })));
3671
+ }
3672
+ renderDropdown() {
3673
+ const style = {
3674
+ '--select-width': this.width || '200px',
3675
+ '--select-dropdown-height': this.dropdownHeight || '260px',
3676
+ };
3677
+ if (this.isOpen === false)
3678
+ return null;
3679
+ return (h("sd-portal", { open: this.isOpen, parentRef: this.selectRef, onSdClose: this.closeDropdown }, h("div", { style: { width: '0', height: '0', overflow: 'visible' } }, h("div", { class: {
3680
+ 'sd-select-multiple-group__dropdown': true,
3681
+ 'sd-select-multiple-group__dropdown--ready': this.isDropdownReady,
3682
+ }, style: { ...style, ...this.dropdownStyle }, onScroll: this.handleDropdownScroll, ref: el => (this.dropdownRef = el) }, this.searchable && (h("div", { class: {
3683
+ 'sd-select-multiple-group__search-container': true,
3684
+ 'sd-select-multiple-group__search-container--scrolled': this.isScrolled,
3685
+ }, onClick: event => event.stopPropagation() }, h("sd-input", { ref: el => (this.searchRef = el), value: this.searchText, placeholder: "\uAC80\uC0C9", clearable: true, inputStyle: { 'padding-left': '8px' }, autofocus: true, onSdInput: event => {
3686
+ this.searchText = String(event?.detail);
3687
+ }, onSdFocus: () => {
3688
+ this.itemIndex = -1;
3689
+ }, onKeyDown: e => {
3690
+ if (e.code === 'Enter')
3691
+ e.stopPropagation();
3692
+ } }, h("sd-icon", { name: "search", size: 16, color: "#737373", slot: "prefix" })))), this.filteredOptions.length > 0 ? (h(Fragment, null, this.useAll && (h("sd-select-option-group", { option: { label: this.allCheckOptionLabel, value: '', type: 'all' }, index: 0, isSelected: this.isAllOptionsSelected(), isFocused: this.itemIndex === 0, optionStyle: this.optionStyle, onOptionClick: ({ detail, }) => this.handleAllOptionClick(detail), useCheckbox: this.useCheckbox, useIndicator: false })), this.filteredOptions.map((option, index) => (h("slot", { name: `option-${option.value}` }, h("sd-select-option-group", { option: option, index: index, isSelected: option.type === 'item'
3693
+ ? this.value?.some(selected => selected.value === option.value)
3694
+ : this.isAllChildrenSelected(option), isFocused: index === this.itemIndex, optionStyle: this.optionStyle, onOptionClick: ({ detail, }) => {
3695
+ if (option.type !== 'item' && !this.useCheckbox) {
3696
+ return;
3697
+ }
3698
+ this.handleOptionClick(detail);
3699
+ }, useCheckbox: this.useCheckbox, ...(option.type !== 'item' && { countInfo: this.getChildrenOptions(option) }) })))))) : (h("slot", { name: "option-placeholder" }, h("div", { class: 'sd-select-multiple-group__option-placeholder', style: this.optionStyle }, this.optionPlaceholder)))))));
3700
+ }
3701
+ static get watchers() { return {
3702
+ "value": ["valueChanged"],
3703
+ "options": ["optionsChanged"],
3704
+ "searchText": ["searchTextChanged"],
3705
+ "itemIndex": ["itemIndexChanged"],
3706
+ "isOpen": ["isOpenChanged"]
3707
+ }; }
2938
3708
  };
2939
- SdSelectOption.style = sdSelectOptionCss;
3709
+ SdSelectMultipleGroup.style = sdSelectMultipleGroupCss();
2940
3710
 
2941
- const sdTableBackupCss = ".sd-table__wrapper .sd-table__container .sd-table__middle{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar:horizontal{height:8px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar:vertical{width:8px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar-track{background-color:transparent}.sd-table__wrapper{height:var(--table-height, auto);width:var(--table-width, 100%);color:#222222}.sd-table__wrapper .sd-table__container{width:100%;height:var(--table-container-height, auto);position:relative;border:1px solid #e1e1e1;border-radius:8px;font-size:12px;overflow:hidden;background:#ffffff}.sd-table__wrapper .sd-table__container .sd-table__middle{overflow:auto;will-change:scroll-position;min-height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--scrollable{height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--loading{overflow:hidden !important;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle--loading__spinner{position:absolute;top:0;left:0;width:100%;height:var(--table-container-height, 100%);min-height:var(--table-container-height, 100%);background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll{position:relative;height:var(--total-virtual-height, --table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr:not([aria-hidden=true]){width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]{padding:0;border:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]:not(.sd-table__virtual-row-spacer) td{display:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected{width:52px !important;max-width:52px !important;min-width:52px !important;padding:0 10px 0 24px;text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-header thead{position:sticky;top:0;z-index:120}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-right{position:sticky;background-color:#f5faff;z-index:110 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-right{position:sticky;background-color:white;z-index:100 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-left{left:var(--sticky-left-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-right{right:var(--sticky-right-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-cell{position:sticky;z-index:102;background-color:#f5faff}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-cell{position:sticky;z-index:101;background-color:white}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left td.sticky-left-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left 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:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right td.sticky-right-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right 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:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead{opacity:0.4}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead tr th.sd-th{border-bottom:1px solid rgba(225, 225, 225, 0.4) !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-td,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-th,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table .sd-th__content--label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead{height:36px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr{width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th{background:#f5faff;height:36px;padding:0 16px;font-weight:500;vertical-align:middle;border-bottom:1px solid #e1e1e1;-webkit-user-select:none;user-select:none;position:relative}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content{display:flex;flex-flow:row nowrap;align-items:center;gap:4px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--left{justify-content:flex-start}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--center{justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--right{justify-content:flex-end}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__resizer{position:absolute;top:50%;right:0;transform:translateY(-50%);width:4px;height:16px;cursor:col-resize;z-index:3;border-left:1px solid #cccccc;border-right:1px solid #cccccc}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td{height:44px;padding:0 16px;border-bottom:1px solid #e1e1e1;background:white;vertical-align:middle}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--left{text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--center{text-align:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--right{text-align:right}.sd-table__wrapper .sd-table__container .sd-table__bottom{background:white;text-align:center}.sd-table__wrapper .sd-table__container .sd-table__bottom .sd-table__no-data{padding-top:15%;color:#888888}.sd-table__wrapper .sd-table__pagination{position:relative;background:#f9f9f9;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid #e1e1e1;border-top:none;border-radius:8px}.sd-table__wrapper .sd-table__pagination sd-select{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.sd-table__wrapper .sd-table__virtual-spacer,.sd-table__wrapper .sd-table__virtual-row-spacer{padding:0 !important}.sd-table__wrapper .sd-table__virtual-spacer td,.sd-table__wrapper .sd-table__virtual-row-spacer td{padding:0 !important;border:none}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton{width:100%;height:100%;background-image:repeating-linear-gradient(0deg, rgba(246, 246, 246, 0.3) 0px, rgba(225, 225, 225, 0.5) calc(var(--row-height, 44px) / 2), rgba(246, 246, 246, 0.3) var(--row-height, 44px));background-size:100% 200%;animation:skeleton-loading 1.5s ease-in-out infinite;position:relative}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton::before,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton::before{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--row-height, 44px) - 1px), #e1e1e1 calc(var(--row-height, 44px) - 1px), #e1e1e1 var(--row-height, 44px));pointer-events:none}.sd-table__wrapper .sd-table__skeleton-cell{width:100%;height:20px;background:linear-gradient(90deg, rgba(246, 246, 246, 0.3) 0%, rgba(225, 225, 225, 0.5) 50%, rgba(246, 246, 246, 0.3) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}@keyframes skeleton-loading{0%{background-position:0% 0%}50%{background-position:100% 100%}100%{background-position:0% 0%}}";
3711
+ const sdSelectOptionCss = () => `sd-select-option{display:block;height:fit-content;line-height:0}sd-select-option .sd-select__option{display:flex;padding:4px 12px;font-size:12px;line-height:20px;cursor:pointer}sd-select-option .sd-select__option__checkbox-wrapper{display:flex;width:100%;column-gap:8px;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}sd-select-option .sd-select__option--focused{background-color:#e6f1ff}sd-select-option .sd-select__option--selected:not(:hover):not(.sd-select__option--use-checkbox),sd-select-option .sd-select__option--focused:not(:hover):not(.sd-select__option--use-checkbox){color:#0075ff;font-weight:700}sd-select-option .sd-select__option--disabled{color:#aaaaaa;cursor:not-allowed}sd-select-option .sd-select__option:hover:not(.sd-select__option--disabled){background-color:#0075ff;color:white}`;
3712
+
3713
+ const SdSelectOption = class {
3714
+ constructor(hostRef) {
3715
+ registerInstance(this, hostRef);
3716
+ this.optionClick = createEvent(this, "optionClick");
3717
+ }
3718
+ get el() { return getElement(this); }
3719
+ option;
3720
+ index;
3721
+ isSelected = false;
3722
+ isFocused = false;
3723
+ optionStyle;
3724
+ disabled = false;
3725
+ useCheckbox = false;
3726
+ isHovered = false;
3727
+ async isDisabled() {
3728
+ return !!this.option.disabled;
3729
+ }
3730
+ optionClick;
3731
+ handleClick = (event) => {
3732
+ event.stopPropagation();
3733
+ if (!this.option.disabled && !this.disabled) {
3734
+ this.optionClick.emit({
3735
+ option: this.option,
3736
+ index: this.index,
3737
+ event,
3738
+ });
3739
+ }
3740
+ };
3741
+ render() {
3742
+ return (h(Host, { key: 'd106374cd96d326e885b65ac94ecf1a397ea2ad9' }, h("div", { key: 'e07601d9c735f7950102449342257a7e39d28a42', class: {
3743
+ 'sd-select__option': true,
3744
+ 'sd-select__option--selected': this.isSelected,
3745
+ 'sd-select__option--disabled': !!this.option.disabled,
3746
+ 'sd-select__option--focused': this.isFocused,
3747
+ 'sd-select__option--use-checkbox': this.useCheckbox,
3748
+ }, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: this.handleClick }, this.useCheckbox ? (h("div", { class: "sd-select__option__checkbox-wrapper" }, h("sd-checkbox", { checked: this.isSelected, disabled: this.option.disabled,
3749
+ // checkboxStyle={
3750
+ // !this.isSelected
3751
+ // ? { borderColor: '#888' }
3752
+ // : this.isHovered
3753
+ // ? { borderColor: 'white' }
3754
+ // : { borderColor: '#0075ff' }
3755
+ // }
3756
+ onClick: e => {
3757
+ e.preventDefault();
3758
+ this.handleClick(e);
3759
+ } }), h("span", { class: "sd-select__option-label" }, this.option.label))) : (this.option.label))));
3760
+ }
3761
+ };
3762
+ SdSelectOption.style = sdSelectOptionCss();
3763
+
3764
+ const sdSelectOptionGroupCss = () => `sd-select-option-group{display:block;height:fit-content}sd-select-option-group .sd-select__option-group{display:flex;padding:4px 12px;padding-left:12px;font-size:12px;line-height:20px;cursor:pointer}sd-select-option-group .sd-select__option-group.sd-select__option-group--group:not(.sd-select__option-group--use-checkbox),sd-select-option-group .sd-select__option-group.sd-select__option-group--subgroup:not(.sd-select__option-group--use-checkbox){cursor:default !important}sd-select-option-group .sd-select__option-group.sd-select__option-group--group{background-color:#f5faff !important;color:#333333 !important;font-weight:700}sd-select-option-group .sd-select__option-group.sd-select__option-group--subgroup{padding-left:20px;background-color:#f9f9f9 !important;color:#333333 !important;font-weight:500}sd-select-option-group .sd-select__option-group.sd-select__option-group--item{padding-left:28px}sd-select-option-group .sd-select__option-group sd-checkbox__bg{border-color:#888888}sd-select-option-group .sd-select__option-group__label-wrapper{display:flex;width:100%;column-gap:8px;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}sd-select-option-group .sd-select__option-group__label-wrapper sd-checkbox{flex-shrink:0}sd-select-option-group .sd-select__option-group__label-wrapper .sd-select__option-group-label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}sd-select-option-group .sd-select__option-group__label-wrapper .sd-select__option-group__count-indicator{width:fit-content;flex-shrink:0;font-size:12px;font-weight:500;color:#888888}sd-select-option-group .sd-select__option-group--focused{background-color:#e6f1ff}sd-select-option-group .sd-select__option-group--selected.sd-select__option-group--item:not(:hover):not(.sd-select__option-group--use-checkbox),sd-select-option-group .sd-select__option-group--focused.sd-select__option-group--item:not(:hover):not(.sd-select__option-group--use-checkbox){color:#0075ff;font-weight:700}sd-select-option-group .sd-select__option-group--disabled{color:#aaaaaa;cursor:not-allowed}sd-select-option-group .sd-select__option-group:hover:not(.sd-select__option-group--disabled){background-color:#0075ff;color:white}sd-select-option-group .sd-select__option-group:hover.sd-select__option-group--selected:not(.sd-select__option-group--group):not(.sd-select__option-group--subgroup) sd-checkbox .sd-checkbox__bg{border-color:white !important}`;
3765
+
3766
+ const SdSelectOptionGroup = class {
3767
+ constructor(hostRef) {
3768
+ registerInstance(this, hostRef);
3769
+ this.optionClick = createEvent(this, "optionClick");
3770
+ }
3771
+ get el() { return getElement(this); }
3772
+ option;
3773
+ index;
3774
+ isSelected = false;
3775
+ isFocused = false;
3776
+ optionStyle;
3777
+ disabled = false;
3778
+ useCheckbox = false;
3779
+ useIndicator = true;
3780
+ countInfo = {
3781
+ selectedCount: 0,
3782
+ totalCount: 0,
3783
+ };
3784
+ isHovered = false;
3785
+ async isDisabled() {
3786
+ return !!this.option.disabled || this.option.type === 'group' || this.option.type === 'subgroup';
3787
+ }
3788
+ optionClick;
3789
+ handleClick = (option, isSelected, event) => {
3790
+ event.stopPropagation();
3791
+ if (option.type === 'group' || option.type === 'subgroup') {
3792
+ this.optionClick.emit({
3793
+ option: this.option,
3794
+ isSelected,
3795
+ index: this.index,
3796
+ event,
3797
+ });
3798
+ return;
3799
+ }
3800
+ if (!this.option.disabled && !this.disabled) {
3801
+ this.optionClick.emit({
3802
+ option: this.option,
3803
+ isSelected,
3804
+ index: this.index,
3805
+ event,
3806
+ });
3807
+ }
3808
+ };
3809
+ render() {
3810
+ return (h("div", { key: 'd00236bc84a194509b25efa21ef1c53a25923a60', class: {
3811
+ 'sd-select__option-group': true,
3812
+ 'sd-select__option-group--selected': !!this.isSelected,
3813
+ 'sd-select__option-group--disabled': !!this.option.disabled,
3814
+ 'sd-select__option-group--focused': this.isFocused,
3815
+ 'sd-select__option-group--use-checkbox': this.useCheckbox,
3816
+ 'sd-select__option-group--group': this.option.type === 'group',
3817
+ 'sd-select__option-group--subgroup': this.option.type === 'subgroup',
3818
+ 'sd-select__option-group--item': this.option.type === 'item',
3819
+ }, onMouseEnter: () => (this.isHovered = true), onMouseLeave: () => (this.isHovered = false), style: this.optionStyle, "data-index": this.index, onClick: event => this.handleClick(this.option, this.isSelected, event) }, h("div", { key: 'c635bb5ce073594dd05926529472db1665d5f86d', class: "sd-select__option-group__label-wrapper" }, this.useCheckbox && (h("sd-checkbox", { key: '984289c89fe90f0cd40a3d022a29b9b974321db0', checked: this.isSelected, disabled: this.option.disabled, onClick: e => {
3820
+ e.preventDefault();
3821
+ this.handleClick(this.option, this.isSelected, e);
3822
+ } })), h("span", { key: 'b01a4ad8c906d6990dcf5c8eb1affa17f3605452', class: "sd-select__option-group-label" }, this.option.label), this.useIndicator && this.option.type !== 'item' && (h("span", { key: '9103fa0bfe93caf8b5c3dea936334cd22727dff0', class: "sd-select__option-group__count-indicator" }, `(${this.countInfo?.selectedCount}/${this.countInfo?.totalCount})`)))));
3823
+ }
3824
+ };
3825
+ SdSelectOptionGroup.style = sdSelectOptionGroupCss();
3826
+
3827
+ const sdTableBackupCss = () => `.sd-table__wrapper .sd-table__container .sd-table__middle{overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar{opacity:0;background:#e5e5e5}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar:horizontal{height:8px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar:vertical{width:8px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar-thumb{height:80px;background-color:#cccccc;border-radius:4px}.sd-table__wrapper .sd-table__container .sd-table__middle::-webkit-scrollbar-track{background-color:transparent}.sd-table__wrapper{height:var(--table-height, auto);width:var(--table-width, 100%);color:#222222}.sd-table__wrapper .sd-table__container{width:100%;height:var(--table-container-height, auto);position:relative;border:1px solid #e1e1e1;border-radius:8px;font-size:12px;overflow:hidden;background:#ffffff}.sd-table__wrapper .sd-table__container .sd-table__middle{overflow:auto;will-change:scroll-position;min-height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--scrollable{height:var(--table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle--loading{overflow:hidden !important;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle--loading__spinner{position:absolute;top:0;left:0;width:100%;height:var(--table-container-height, 100%);min-height:var(--table-container-height, 100%);background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll{position:relative;height:var(--total-virtual-height, --table-container-height, auto)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr:not([aria-hidden=true]){width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]{padding:0;border:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody.sd-table-tbody--virtual-scroll tr[aria-hidden=true]:not(.sd-table__virtual-row-spacer) td{display:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable td.sd-td--selected,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--selectable th.sd-th--selected{width:52px !important;max-width:52px !important;min-width:52px !important;padding:0 10px 0 24px;text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-header thead{position:sticky;top:0;z-index:120}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-right{position:sticky;background-color:#f5faff;z-index:110 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-left,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-right{position:sticky;background-color:white;z-index:100 !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-left{left:var(--sticky-left-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column .sticky-right{right:var(--sticky-right-offset, 0)}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column th.sticky-cell{position:sticky;z-index:102;background-color:#f5faff}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--sticky-column td.sticky-cell{position:sticky;z-index:101;background-color:white}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left td.sticky-left-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left th.sticky-left-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-left 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:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right td.sticky-right-edge{overflow:visible}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right th.sticky-right-edge:after,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--scrolled-right 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:1;pointer-events:none}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead{opacity:0.4}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table--no-data thead tr th.sd-th{border-bottom:1px solid rgba(225, 225, 225, 0.4) !important}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-td,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table sd-th,.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table .sd-th__content--label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead{height:36px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr{width:100%}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th{background:#f5faff;height:36px;padding:0 16px;font-weight:500;vertical-align:middle;border-bottom:1px solid #e1e1e1;-webkit-user-select:none;user-select:none;position:relative}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content{display:flex;flex-flow:row nowrap;align-items:center;gap:4px}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--left{justify-content:flex-start}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--center{justify-content:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__content--right{justify-content:flex-end}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table thead tr th.sd-th .sd-th__resizer{position:absolute;top:50%;right:0;transform:translateY(-50%);width:4px;height:16px;cursor:col-resize;z-index:3;border-left:1px solid #cccccc;border-right:1px solid #cccccc}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td{height:44px;padding:0 16px;border-bottom:1px solid #e1e1e1;background:white;vertical-align:middle}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--left{text-align:left}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--center{text-align:center}.sd-table__wrapper .sd-table__container .sd-table__middle .sd-table tbody tr td.sd-td--right{text-align:right}.sd-table__wrapper .sd-table__container .sd-table__bottom{background:white;text-align:center}.sd-table__wrapper .sd-table__container .sd-table__bottom .sd-table__no-data{padding-top:15%;color:#888888}.sd-table__wrapper .sd-table__pagination{position:relative;background:#f9f9f9;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid #e1e1e1;border-top:none;border-radius:8px}.sd-table__wrapper .sd-table__pagination sd-select{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.sd-table__wrapper .sd-table__virtual-spacer,.sd-table__wrapper .sd-table__virtual-row-spacer{padding:0 !important}.sd-table__wrapper .sd-table__virtual-spacer td,.sd-table__wrapper .sd-table__virtual-row-spacer td{padding:0 !important;border:none}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton{width:100%;height:100%;background-image:repeating-linear-gradient(0deg, rgba(246, 246, 246, 0.3) 0px, rgba(225, 225, 225, 0.5) calc(var(--row-height, 44px) / 2), rgba(246, 246, 246, 0.3) var(--row-height, 44px));background-size:100% 200%;animation:skeleton-loading 1.5s ease-in-out infinite;position:relative}.sd-table__wrapper .sd-table__virtual-spacer .sd-table__skeleton::before,.sd-table__wrapper .sd-table__virtual-row-spacer .sd-table__skeleton::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--row-height, 44px) - 1px), #e1e1e1 calc(var(--row-height, 44px) - 1px), #e1e1e1 var(--row-height, 44px));pointer-events:none}.sd-table__wrapper .sd-table__skeleton-cell{width:100%;height:20px;background:linear-gradient(90deg, rgba(246, 246, 246, 0.3) 0%, rgba(225, 225, 225, 0.5) 50%, rgba(246, 246, 246, 0.3) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}@keyframes skeleton-loading{0%{background-position:0% 0%}50%{background-position:100% 100%}100%{background-position:0% 0%}}`;
2942
3828
 
2943
3829
  const SdTable = class {
2944
3830
  constructor(hostRef) {
@@ -3581,16 +4467,16 @@ const SdTable = class {
3581
4467
  }, "aria-hidden": "true" }, h("div", { class: "sd-table__skeleton-cell" })));
3582
4468
  }
3583
4469
  render() {
3584
- return (h(Host, { key: '1c762116fd35be7070aea38b052f8f619176cd32' }, h("div", { key: '4201639381ebbe400ab124e1ab0e2badd3ffba9e', class: "sd-table__wrapper", style: {
4470
+ return (h(Host, { key: '5d04a8b7cf9dbc6cfb9dc4d6497f4eb6190caca1' }, h("div", { key: 'da26d320dbd4542b226434e355c8ee947b4e1cf6', class: "sd-table__wrapper", style: {
3585
4471
  '--table-width': this.width,
3586
4472
  '--table-height': this.height,
3587
- } }, h("div", { key: 'c17c7b76ab6f33faf605ad2c4f023f5f0411c847', class: "sd-table__container", style: {
4473
+ } }, h("div", { key: 'f3fe16bd185e08f2cbba94199bb9d55dc854b085', class: "sd-table__container", style: {
3588
4474
  '--table-container-height': `calc(${this.height} - ${this.pagination && this.innerRows.length > 0 ? 48 : 0}px)`,
3589
- } }, h("div", { key: 'd7b1e53fbbe6c8c282b6455a113aa1fb7abf0f13', class: {
4475
+ } }, h("div", { key: '5e0976df3206aca9f33e54b85bda479110397621', class: {
3590
4476
  'sd-table__middle': true,
3591
4477
  'sd-table__middle--scrollable': this.paginatedRows.length > 0,
3592
4478
  'sd-table__middle--loading': this.isLoading,
3593
- } }, this.isLoading && (h("div", { key: '3c8d66915131a8388d19c2d6101716d709f29c4a', class: "sd-table__middle--loading__spinner" }, h("sd-loading-spinner", { key: '5bd2eb67b7f16929dc4829d3ed069ee7b976f4bf' }))), h("table", { key: 'be2d1b31673397a7aebeff85827d40343970aac0', part: "table", class: this.sdTableClasses }, this.renderHead(), this.renderBody())), h("div", { key: 'f6436dc02163f34d3f9efcd6bc312561e88f3d08', class: "sd-table__bottom" }, !this.paginatedRows.length && (h("div", { key: 'b0f27e8d1b7343619c356bc0d9c074e4dbe91ff0', class: "sd-table__no-data" }, h("slot", { key: '0ea8e9e5624ce063c88b71de32ab7c4607344af9', name: "no-data" }, this.noDataLabel))))), this.pagination && this.innerRows.length > 0 && (h("div", { key: '271d506c6f9e98a6f4e69364be977e299fa4f794', class: "sd-table__pagination" }, h("sd-pagination", { key: '1bff466793f04d5c76b9682fa546a66f9546cf0a', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (h("sd-select", { key: '51731aabcbfd68cf606423e008fcc89995419803', value: this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", onSdChange: (e) => this.changeRowsPerPage(e.detail.value) })))))));
4479
+ } }, this.isLoading && (h("div", { key: 'fa934df1cf18e69b4054b6795ac9973755823cf6', class: "sd-table__middle--loading__spinner" }, h("sd-loading-spinner", { key: 'd21458340e4904ce938a86321732dfb04969ef7c' }))), h("table", { key: '0bddebe63faffebdd3950f21e5a66e4f8d8d56e9', part: "table", class: this.sdTableClasses }, this.renderHead(), this.renderBody())), h("div", { key: '12a66491f58bcabcfdd861a9ca2d0dc32d0968df', class: "sd-table__bottom" }, !this.paginatedRows.length && (h("div", { key: '2058dace66a36697ca7018d6f83f3a00582fe9a1', class: "sd-table__no-data" }, h("slot", { key: 'c99d5416ce3ccb2c1512da61b60391d5b63c85b1', name: "no-data" }, this.noDataLabel))))), this.pagination && this.innerRows.length > 0 && (h("div", { key: 'bd8f8b4351a8195489bc1d585585f321e26c8c7b', class: "sd-table__pagination" }, h("sd-pagination", { key: '443622f1f52136e7d4212d4073e23cd2b6c05c99', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (h("sd-select", { key: 'cdcce50397d18466c3c010625e5dfe369852da73', value: this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", onSdChange: (e) => this.changeRowsPerPage(e.detail.value) })))))));
3594
4480
  }
3595
4481
  static get watchers() { return {
3596
4482
  "columns": ["handleColumnsChange"],
@@ -3600,9 +4486,176 @@ const SdTable = class {
3600
4486
  "pagination": ["handlePaginationChange"]
3601
4487
  }; }
3602
4488
  };
3603
- SdTable.style = sdTableBackupCss;
4489
+ SdTable.style = sdTableBackupCss();
3604
4490
 
3605
- const sdToggleCss = "sd-toggle{display:inline-block;height:20px;line-height:0}sd-toggle .sd-toggle{cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:20px}sd-toggle .sd-toggle>input{display:none}sd-toggle .sd-toggle__label{font-size:12px;color:#333333;line-height:20px}sd-toggle .sd-toggle__track{width:36px;height:20px;border-radius:12px;background:#cccccc;position:relative;transition:background-color 0.2s ease}sd-toggle .sd-toggle__thumb{width:16px;height:16px;border-radius:50%;background:white;position:absolute;top:2px;left:2px;transition:transform 0.2s ease}sd-toggle .sd-toggle--checked .sd-toggle__track{background:#0075ff}sd-toggle .sd-toggle--checked .sd-toggle__thumb{transform:translateX(16px)}sd-toggle .sd-toggle--disabled{cursor:not-allowed}sd-toggle .sd-toggle--disabled.sd-toggle--checked .sd-toggle__track{background:#bbdaff}sd-toggle .sd-toggle--disabled.sd-toggle--unchecked .sd-toggle__track{background:#eeeeee}sd-toggle .sd-toggle:hover:not(.sd-toggle--disabled).sd-toggle--checked .sd-toggle__track{background:#005cc9}sd-toggle .sd-toggle:hover:not(.sd-toggle--disabled).sd-toggle--unchecked .sd-toggle__track{background:#bbbbbb}";
4491
+ const sdTabsCss = () => `sd-tabs{display:inline-block}sd-tabs .sd-tabs{display:flex;flex-direction:row;gap:4px;border-bottom:1px solid #0075ff}sd-tabs .sd-tabs__tab{display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;border:1px solid #cccccc;border-bottom:none;border-radius:4px 4px 0 0;background-color:#f6f6f6;color:#888888;font-weight:400;transition:all 0.2s ease;position:relative;user-select:none}sd-tabs .sd-tabs__tab::before{content:"";position:absolute;inset:0;opacity:0;transition:all 0.3s}sd-tabs .sd-tabs__tab--selected{border-color:#0075ff;color:#0075ff;background-color:white;font-weight:700}sd-tabs .sd-tabs__tab--selected:hover::before{background-color:#0075ff;opacity:0.15}sd-tabs .sd-tabs__tab--unselected:hover::before{background-color:#888888;opacity:0.15}sd-tabs .sd-tabs__label{user-select:none}sd-tabs .sd-tabs--md .sd-tabs__tab{padding:12px 32px;font-size:12px;line-height:20px}sd-tabs .sd-tabs--sm .sd-tabs__tab{padding:8px 20px;font-size:12px;line-height:16px}sd-tabs .sd-tabs--sub{gap:32px;border-bottom:none}sd-tabs .sd-tabs--sub .sd-tabs__tab{border:none;border-radius:0;background-color:transparent;color:#222222;font-weight:400;padding:0 0 2px 0}sd-tabs .sd-tabs--sub .sd-tabs__tab::before{display:none}sd-tabs .sd-tabs--sub .sd-tabs__tab--selected{color:#0075ff;font-weight:700;border-bottom:1px solid #0075ff;background-color:transparent}sd-tabs .sd-tabs--sub .sd-tabs__tab--selected:hover::before,sd-tabs .sd-tabs--sub .sd-tabs__tab--unselected:hover::before{display:none}`;
4492
+
4493
+ const SdTabs = class {
4494
+ constructor(hostRef) {
4495
+ registerInstance(this, hostRef);
4496
+ this.sdChange = createEvent(this, "sdChange");
4497
+ }
4498
+ value;
4499
+ tabs = [];
4500
+ size = 'md';
4501
+ isSub = false;
4502
+ selectedValue;
4503
+ sdChange;
4504
+ componentWillLoad() {
4505
+ if (this.value !== undefined && this.value !== null) {
4506
+ this.selectedValue = this.value;
4507
+ }
4508
+ }
4509
+ valueChanged(newValue) {
4510
+ this.selectedValue = newValue;
4511
+ }
4512
+ handleTabClick = (tabValue) => {
4513
+ this.selectedValue = tabValue;
4514
+ this.value = tabValue;
4515
+ this.sdChange.emit(tabValue);
4516
+ };
4517
+ isTabSelected(tab) {
4518
+ return this.selectedValue === tab.value;
4519
+ }
4520
+ getTabClasses(tab) {
4521
+ const classes = [
4522
+ 'sd-tabs__tab',
4523
+ this.isTabSelected(tab) ? 'sd-tabs__tab--selected' : 'sd-tabs__tab--unselected',
4524
+ ];
4525
+ return classes.join(' ');
4526
+ }
4527
+ getContainerClasses() {
4528
+ const classes = ['sd-tabs', `sd-tabs--${this.size}`];
4529
+ if (this.isSub) {
4530
+ classes.push('sd-tabs--sub');
4531
+ }
4532
+ return classes.join(' ');
4533
+ }
4534
+ getBadgeColors(tab) {
4535
+ if (this.isTabSelected(tab)) {
4536
+ return { bgColor: '#E6F1FF', textColor: '#0075FF' };
4537
+ }
4538
+ return { bgColor: '#E5E5E5', textColor: '#737373' };
4539
+ }
4540
+ render() {
4541
+ return (h("div", { key: '749c892c45eccc71e2faad842be4dfd311aa2eed', class: this.getContainerClasses(), role: "tablist" }, this.tabs.map((tab, index) => {
4542
+ const isSelected = this.isTabSelected(tab);
4543
+ const badgeColors = this.getBadgeColors(tab);
4544
+ return (h("div", { key: `tab-${index}`, class: this.getTabClasses(tab), role: "tab", "aria-selected": isSelected.toString(), "aria-label": tab.label || 'tab', onClick: () => this.handleTabClick(tab.value) }, h("span", { class: "sd-tabs__label" }, tab.label), tab.badge && (h("sd-tag", { size: this.size, label: tab.badge.toString(), bgColor: badgeColors.bgColor, textColor: badgeColors.textColor, rounded: true }))));
4545
+ })));
4546
+ }
4547
+ static get watchers() { return {
4548
+ "value": ["valueChanged"]
4549
+ }; }
4550
+ };
4551
+ SdTabs.style = sdTabsCss();
4552
+
4553
+ const sdTagCss = () => `:host{display:inline-block}:host([full-width]){display:block}.sd-tag{display:inline-flex;width:100%;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:1px solid transparent;border-radius:4px;transition:all 0.2s ease-in-out;position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;box-sizing:border-box}.sd-tag__content{display:inline-block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sd-tag--custom-color{background:var(--tag-bg-color);color:var(--tag-text-color)}.sd-tag--sm{padding:0 6px;font-size:11px;line-height:18px;height:20px;border-radius:4px}.sd-tag--md{padding:0 8px;font-size:12px;font-weight:700;line-height:20px;height:24px;border-radius:4px}.sd-tag--lg{padding:0 10px;font-size:14px;font-weight:700;line-height:24px;min-height:28px;border-radius:5px}.sd-tag--rounded.sd-tag--sm{border-radius:20px}.sd-tag--rounded.sd-tag--md{border-radius:20px}.sd-tag--rounded.sd-tag--lg{border-radius:15px}`;
4554
+
4555
+ const TAG_COLORS = {
4556
+ grey: 'bg-grey_20 text-grey_70',
4557
+ red: 'bg-red_15 text-red_70',
4558
+ orange: 'bg-orange_10 text-orange_65',
4559
+ yellow: 'bg-yellow_10 text-yellow_60',
4560
+ green: 'bg-green_15 text-green_70',
4561
+ blue: 'bg-brilliantblue_20 text-brilliantblue_75',
4562
+ darkblue: 'bg-oceanblue_15 text-oceanblue_70',
4563
+ indigo: 'bg-brilliantblue_10 text-brilliantblue_85',
4564
+ };
4565
+ const SdTag = class {
4566
+ constructor(hostRef) {
4567
+ registerInstance(this, hostRef);
4568
+ }
4569
+ get el() { return getElement(this); }
4570
+ size = 'md';
4571
+ color = 'grey';
4572
+ rounded = false;
4573
+ label = '';
4574
+ bgColor;
4575
+ textColor;
4576
+ getTagClasses() {
4577
+ const classes = ['sd-tag', `sd-tag--${this.size}`];
4578
+ if (this.rounded) {
4579
+ classes.push('sd-tag--rounded');
4580
+ }
4581
+ if (this.color && !this.bgColor && !this.textColor) {
4582
+ classes.push(TAG_COLORS[this.color]);
4583
+ }
4584
+ if (this.bgColor || this.textColor) {
4585
+ classes.push('sd-tag--custom-color');
4586
+ }
4587
+ return classes.join(' ');
4588
+ }
4589
+ renderContent() {
4590
+ return [
4591
+ h("span", { class: "sd-tag__content" }, h("slot", null, this.label)),
4592
+ ];
4593
+ }
4594
+ render() {
4595
+ const tagClasses = this.getTagClasses();
4596
+ return (h("span", { key: '6f3353059d6a1516dd11e23f6347f52f514020e4', class: tagClasses, style: {
4597
+ '--tag-bg-color': this.bgColor,
4598
+ '--tag-text-color': this.textColor,
4599
+ }, "aria-label": this.label || 'tag' }, this.renderContent()));
4600
+ }
4601
+ };
4602
+ SdTag.style = sdTagCss();
4603
+
4604
+ const sdToastMessageCss = () => `.sd-toast-message.sc-sd-toast-message{display:flex;width:fit-content;align-items:center;gap:16px;padding:12px 24px;border-radius:4px;background-color:var(--sd-toast-bg);color:var(--sd-toast-text);transition:opacity 0.2s ease, visibility 0.2s ease;box-shadow:2px 2px 8px 2px rgba(0, 0, 0, 0.2)}.sd-toast-message--hidden.sc-sd-toast-message{opacity:0;visibility:hidden;pointer-events:none}.sd-toast-message__icon.sc-sd-toast-message{display:flex;align-items:center;flex-shrink:0}.sd-toast-message__content.sc-sd-toast-message{display:flex;flex:1}.sd-toast-message__message.sc-sd-toast-message{font-size:14px;line-height:20px;font-weight:400}.sd-toast-message__link.sc-sd-toast-message{font-size:14px;line-height:20px;color:var(--sd-toast-text);text-decoration:underline;cursor:pointer;transition:opacity 0.2s ease;margin-left:4px}.sd-toast-message__link.sc-sd-toast-message:hover{opacity:0.8}.sd-toast-message__button.sc-sd-toast-message{flex-shrink:0}.sd-toast-message__button.sc-sd-toast-message button.sc-sd-toast-message{color:var(--button-text-color, inherit) !important}.sd-toast-message__close.sc-sd-toast-message{display:flex;align-items:center;justify-content:center;padding:4px;background-color:transparent;border:none;cursor:pointer;transition:opacity 0.2s ease;flex-shrink:0}.sd-toast-message__close.sc-sd-toast-message:hover{opacity:0.7}.sd-toast-message__close.sc-sd-toast-message:active{opacity:0.5}`;
4605
+
4606
+ const SdToastMessage = class {
4607
+ constructor(hostRef) {
4608
+ registerInstance(this, hostRef);
4609
+ this.sdClose = createEvent(this, "sdClose");
4610
+ this.sdButtonClick = createEvent(this, "sdButtonClick");
4611
+ }
4612
+ icon;
4613
+ message;
4614
+ link;
4615
+ linkLabel;
4616
+ buttonLabel;
4617
+ close = false;
4618
+ type = 'basicDark';
4619
+ sdClose;
4620
+ sdButtonClick;
4621
+ isVisible = true;
4622
+ static COLOR_OF_TYPE = {
4623
+ basicLight: { background: 'white', text: 'grey_95' },
4624
+ basicDark: { background: 'steelblue_90', text: 'white' },
4625
+ error: { background: 'red_70', text: 'white' },
4626
+ caution: { background: 'yellow_45', text: 'grey_90' },
4627
+ complete: { background: 'green_75', text: 'white' },
4628
+ progress: { background: 'brilliantblue_80', text: 'white' },
4629
+ };
4630
+ handleClose = () => {
4631
+ this.isVisible = false;
4632
+ this.sdClose.emit();
4633
+ };
4634
+ handleButtonClick = () => {
4635
+ this.sdButtonClick.emit();
4636
+ };
4637
+ getContainerClasses() {
4638
+ const classes = ['sd-toast-message', `sd-toast-message--${this.type}`];
4639
+ if (!this.isVisible) {
4640
+ classes.push('sd-toast-message--hidden');
4641
+ }
4642
+ return classes.join(' ');
4643
+ }
4644
+ render() {
4645
+ const colorTokens = SdToastMessage.COLOR_OF_TYPE[this.type];
4646
+ const colors = {
4647
+ background: resolveColor(colorTokens.background),
4648
+ text: resolveColor(colorTokens.text),
4649
+ };
4650
+ return (h(Host, { key: '4d342822195d44b49e5976e8d5e66fc7a58301b9', style: {
4651
+ '--sd-toast-bg': colors.background,
4652
+ '--sd-toast-text': colors.text,
4653
+ } }, h("div", { key: '2b33303cc0fc474d9c58a83a925a43b59f577125', class: this.getContainerClasses(), role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.icon && (h("div", { key: 'a7b7c49a4a15c76f0633520046128ce937e6410d', class: "sd-toast-message__icon" }, h("sd-icon", { key: '7c61a7142e8e442936c9b2736cbcf8ebf8521087', name: this.icon, size: 16, color: colors.text }))), h("div", { key: 'd0606186e02a44ba81ba3924baa0bdd8b34984f1', class: "sd-toast-message__content" }, h("span", { key: '52e689c1e1d6a7170381a46f8c9370105386aac7', class: "sd-toast-message__message" }, this.message)), this.link && (h("a", { key: '0818b9ffe71bd2cbe9fc00bfab9f8a6591f03cbd', href: this.link, class: "sd-toast-message__link", target: "_blank", rel: "noopener noreferrer" }, this.linkLabel || this.link)), this.buttonLabel && (h("sd-button", { key: '4d4d7b15137574db44b64e3dc62010fe8ccdf530', class: `sd-toast-message__button ${this.type === 'basicLight' ? 'text-white' : ''}`, label: this.buttonLabel, variant: "primary", color: this.type === 'basicLight' ? 'oceanblue_75' : 'white', size: "sm", onSdClick: this.handleButtonClick, style: this.type !== 'basicLight' ? { '--button-text-color': resolveColor('grey_95') } : {} })), this.close && (h("button", { key: '991ad8fe130c370f24ce23cf6d98a9ac797f7367', type: "button", class: "sd-toast-message__close", onClick: this.handleClose, "aria-label": "Close", title: "Close" }, h("sd-icon", { key: 'd71dee73974143e5b6eb92f4135d40ee1df178fb', name: "close", size: 12, color: colors.text }))))));
4654
+ }
4655
+ };
4656
+ SdToastMessage.style = sdToastMessageCss();
4657
+
4658
+ const sdToggleCss = () => `sd-toggle{display:inline-block;height:20px;line-height:0}sd-toggle .sd-toggle{cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:20px}sd-toggle .sd-toggle>input{display:none}sd-toggle .sd-toggle__label{font-size:12px;color:#333333;line-height:20px}sd-toggle .sd-toggle__track{width:36px;height:20px;border-radius:12px;background:#cccccc;position:relative;transition:background-color 0.2s ease}sd-toggle .sd-toggle__thumb{width:16px;height:16px;border-radius:50%;background:white;position:absolute;top:2px;left:2px;transition:transform 0.2s ease}sd-toggle .sd-toggle--checked .sd-toggle__track{background:#0075ff}sd-toggle .sd-toggle--checked .sd-toggle__thumb{transform:translateX(16px)}sd-toggle .sd-toggle--disabled{cursor:not-allowed}sd-toggle .sd-toggle--disabled.sd-toggle--checked .sd-toggle__track{background:#bbdaff}sd-toggle .sd-toggle--disabled.sd-toggle--unchecked .sd-toggle__track{background:#eeeeee}sd-toggle .sd-toggle:hover:not(.sd-toggle--disabled).sd-toggle--checked .sd-toggle__track{background:#005cc9}sd-toggle .sd-toggle:hover:not(.sd-toggle--disabled).sd-toggle--unchecked .sd-toggle__track{background:#bbbbbb}`;
3606
4659
 
3607
4660
  const SdToggle = class {
3608
4661
  constructor(hostRef) {
@@ -3638,12 +4691,56 @@ const SdToggle = class {
3638
4691
  this.sdChange.emit(newValue);
3639
4692
  };
3640
4693
  render() {
3641
- return (h("label", { key: '8b196fae6d8931cdd39c7eea51a7f1f843f4cb75', "aria-checked": this.isChecked.toString(), "aria-disabled": this.disabled.toString(), role: "switch", "aria-label": this.label || 'toggle', class: this.toggleClasses }, h("input", { key: '4a60ce883411cb2a598d003ff264fe6659d0df02', type: "checkbox", checked: this.isChecked, disabled: this.disabled, onInput: this.handleChange }), this.label && h("span", { key: 'c0fb2edfb1a2854c31fb6eb0a4e4169e2e409db2', class: "sd-toggle__label" }, this.label), h("div", { key: 'c9f78f892be478cbd1232722487471eae53bee8a', class: "sd-toggle__track" }, h("div", { key: 'b6388556a0d6f4b9f74e6e2684ded4cde93d6384', class: "sd-toggle__thumb" }))));
4694
+ return (h("label", { key: 'dda95f842f686a3f595db6ecb651551f717cab18', "aria-checked": this.isChecked.toString(), "aria-disabled": this.disabled.toString(), role: "switch", "aria-label": this.label || 'toggle', class: this.toggleClasses }, h("input", { key: 'a281a6572b7fca32242ba08ad45984445bd1a009', type: "checkbox", checked: this.isChecked, disabled: this.disabled, onInput: this.handleChange }), this.label && h("span", { key: 'dfae7796e9e421e7d6ebc6e6693e6266b2ff87cd', class: "sd-toggle__label" }, this.label), h("div", { key: 'e4343307f2df5f5c68509a3e9576a811bd9192ff', class: "sd-toggle__track" }, h("div", { key: 'be214081e5ccc21ad306e52ce186ba4dc56c6c3b', class: "sd-toggle__thumb" }))));
4695
+ }
4696
+ };
4697
+ SdToggle.style = sdToggleCss();
4698
+
4699
+ const sdToggleButtonCss = () => `sd-toggle-button{display:inline-block;line-height:0}.sd-toggle-button{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:4px 12px;gap:6px;border-radius:14px;border:1px solid #888888;background-color:#ffffff;color:#737373;font-size:12px;line-height:20px;font-weight:400;cursor:pointer;transition:border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;white-space:nowrap;user-select:none;box-sizing:border-box}.sd-toggle-button--active{border-color:#0075ff;color:#0075ff}.sd-toggle-button--disabled{background-color:#eeeeee;border-color:#cccccc;color:#888888}.sd-toggle-button--disabled.sd-toggle-button--active{background-color:#eeeeee;border-color:#cccccc;color:#888888}.sd-toggle-button:hover:not(.sd-toggle-button--disabled):not(.sd-toggle-button--active){border-color:#737373}.sd-toggle-button:hover:not(.sd-toggle-button--disabled).sd-toggle-button--active{border-color:#005cc9;color:#005cc9}`;
4700
+
4701
+ const SdToggleButton = class {
4702
+ constructor(hostRef) {
4703
+ registerInstance(this, hostRef);
4704
+ this.sdChange = createEvent(this, "sdChange");
4705
+ }
4706
+ value = false;
4707
+ label = '';
4708
+ disabled = false;
4709
+ isActive = false;
4710
+ sdChange;
4711
+ componentWillLoad() {
4712
+ this.updateActiveState(this.value);
4713
+ }
4714
+ componentWillRender() {
4715
+ this.updateActiveState(this.value);
4716
+ }
4717
+ updateActiveState(value) {
4718
+ this.isActive = value;
4719
+ }
4720
+ get buttonClasses() {
4721
+ const classes = ['sd-toggle-button'];
4722
+ if (this.isActive) {
4723
+ classes.push('sd-toggle-button--active');
4724
+ }
4725
+ if (this.disabled) {
4726
+ classes.push('sd-toggle-button--disabled');
4727
+ }
4728
+ return classes.join(' ');
4729
+ }
4730
+ handleChange = () => {
4731
+ if (this.disabled)
4732
+ return;
4733
+ const newValue = !this.value;
4734
+ this.value = newValue;
4735
+ this.sdChange.emit(newValue);
4736
+ };
4737
+ render() {
4738
+ return (h("label", { key: '4ac2cac1d4b1da4d707f4ce84a03ffc7a8ec7cb8', class: this.buttonClasses, role: "button", "aria-pressed": this.isActive.toString(), "aria-disabled": this.disabled.toString(), "aria-label": this.label || 'toggle button' }, this.label, h("input", { key: 'e9a974d34d7b3803b5ed44dc1b2da1199daf5bef', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
3642
4739
  }
3643
4740
  };
3644
- SdToggle.style = sdToggleCss;
4741
+ SdToggleButton.style = sdToggleButtonCss();
3645
4742
 
3646
- const sdTooltipCss = "sd-tooltip [slot=content]{display:none}sd-tooltip .sd-tooltip{position:relative;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.sd-tooltip-menu{width:fit-content;padding:8px 16px;border-radius:4px;font-size:12px;position:relative;box-sizing:border-box;display:flex;align-items:start;justify-content:center;gap:12px}.sd-tooltip-menu--with-close{padding-right:12px !important}.sd-tooltip-menu__arrow{position:absolute;display:flex;width:9.6px;height:7.2px}.sd-tooltip-menu__arrow svg{width:100%;height:100%}.sd-tooltip-menu__arrow--top{bottom:-7.2px;left:50%;transform:translateX(-50%)}.sd-tooltip-menu__arrow--bottom{top:-7.2px;left:50%;transform:translateX(-50%) rotate(180deg)}.sd-tooltip-menu__arrow--left{right:-7.2px;top:50%;transform:translateY(-50%) rotate(-90deg)}.sd-tooltip-menu__arrow--right{left:-7.2px;top:50%;transform:translateY(-50%) rotate(90deg)}.sd-tooltip-menu__content{line-height:20px;font-weight:500}.sd-tooltip-menu__content p{margin:0}.sd-tooltip-menu__close-button{padding-top:4px;display:flex}.sd-tooltip-menu__close-button button{padding:0;background:none;border:none;cursor:pointer}";
4743
+ const sdTooltipCss = () => `sd-tooltip [slot=content]{display:none}sd-tooltip .sd-tooltip{position:relative;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.sd-tooltip-menu{width:fit-content;padding:8px 16px;border-radius:4px;font-size:12px;position:relative;box-sizing:border-box;display:flex;align-items:start;justify-content:center;gap:12px}.sd-tooltip-menu--with-close{padding-right:12px !important}.sd-tooltip-menu__arrow{position:absolute;display:flex;width:9.6px;height:7.2px}.sd-tooltip-menu__arrow svg{width:100%;height:100%}.sd-tooltip-menu__arrow--top{bottom:-7.2px;left:50%;transform:translateX(-50%)}.sd-tooltip-menu__arrow--bottom{top:-7.2px;left:50%;transform:translateX(-50%) rotate(180deg)}.sd-tooltip-menu__arrow--left{right:-7.2px;top:50%;transform:translateY(-50%) rotate(-90deg)}.sd-tooltip-menu__arrow--right{left:-7.2px;top:50%;transform:translateY(-50%) rotate(90deg)}.sd-tooltip-menu__content{line-height:20px;font-weight:500}.sd-tooltip-menu__content p{margin:0}.sd-tooltip-menu__close-button{padding-top:4px;display:flex}.sd-tooltip-menu__close-button button{padding:0;background:none;border:none;cursor:pointer}`;
3647
4744
 
3648
4745
  const SdTooltip = class {
3649
4746
  constructor(hostRef) {
@@ -3691,23 +4788,23 @@ const SdTooltip = class {
3691
4788
  : {
3692
4789
  onClick: () => (this.showTooltip = !this.showTooltip),
3693
4790
  };
3694
- return (h(Fragment, { key: '44ccb9c1a2e9113160ccb516e62fbd175e139f50' }, this.label ? (h("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-tooltip", ...handleTrigger })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (h("sd-tooltip-portal", { key: '83f82f27164df34a1a8e0d1d8975b4f89a82691a', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, h("div", { key: '544085a133cdbbe707ec0c2be35a9a42cd2372bc', class: {
4791
+ return (h(Fragment, { key: '55a62a0b80b8c10d8c0d8ced1a34178191b8a688' }, this.label ? (h("sd-button", { ref: el => (this.buttonEl = el), label: this.label, icon: this.icon, size: this.buttonSize, color: this.color, variant: this.buttonVariant, class: "sd-tooltip", ...handleTrigger })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: this.icon, size: this.iconSize, color: this.color, class: "sd-tooltip", ...handleTrigger })), this.showTooltip && (h("sd-tooltip-portal", { key: '21aaf4460591401ec5eb890d123e3cb381fb76f6', parentRef: this.buttonEl, onSdClose: () => this.handleClose(), placement: this.placement }, h("div", { key: 'ee5d301a2fa72f95a0f89242b174f7e21a086a15', class: {
3695
4792
  'sd-tooltip-menu': true,
3696
4793
  [`sd-tooltip-menu--${this.type}`]: true,
3697
4794
  [`sd-tooltip-menu--${this.placement}`]: true,
3698
4795
  'sd-tooltip-menu--with-close': this.useClose,
3699
4796
  [`bg-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
3700
4797
  [`text-${SdTooltip.COLOR_OF_TYPE[this.type].text}`]: true,
3701
- } }, h("i", { key: '4b335754d346d6ae244e83ccdcae25edf05a306a', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, h(TooltipArrow, { key: '567fc901e95b918fb0883f9c241836a10e1e58e9', class: {
4798
+ } }, h("i", { key: '4f7e09f6770fbde0f2e9df81d401ea7cd6739df2', class: `sd-tooltip-menu__arrow sd-tooltip-menu__arrow--${this.placement}` }, h(TooltipArrow, { key: 'd0856082e623129eb56aaab87e54d1b19f33555a', class: {
3702
4799
  [`text-${SdTooltip.COLOR_OF_TYPE[this.type].background}`]: true,
3703
- } })), h("div", { key: '1475d6f5d76f4e3860e2524cb571eb2704460203', class: "sd-tooltip-menu__content", ref: el => {
4800
+ } })), h("div", { key: '40dc2a7d4254ed0e712f22cf19032e2f5ef846b4', class: "sd-tooltip-menu__content", ref: el => {
3704
4801
  if (el && this.slotContent && !el.hasChildNodes()) {
3705
4802
  el.appendChild(this.slotContent.cloneNode(true));
3706
4803
  }
3707
- } }, !this.slotContent && h("span", { key: 'f821b0aa74de05c7728b06a2bd78367e43703684' }, this.el.textContent)), this.useClose && (h("div", { key: '2068c369ef957cb25b9ec74e22e2c78f9ffa6232', class: "sd-tooltip-menu__close-button" }, h("button", { key: 'f61156a86ce1b3fd4f2fb97e507711f9602ac157', type: "button", "aria-label": "Close tooltip", title: "Close tooltip", onClick: () => this.handleClose() }, h("sd-icon", { key: '3ba6f3f4dc5379eb2d13aecb9ec1d5d6fdf20dec', name: "close", size: "12", color: "#AAAAAA" })))))))));
4804
+ } }, !this.slotContent && h("span", { key: 'd897c210bb76de430a89243177f3a436cc684e09' }, this.el.textContent)), this.useClose && (h("div", { key: 'ca41d884070a25443833162e2dc50fcb91a6bd2a', class: "sd-tooltip-menu__close-button" }, h("button", { key: '75c911fa76787dda3346b4f18d6169304966d49b', type: "button", "aria-label": "Close tooltip", title: "Close tooltip", onClick: () => this.handleClose() }, h("sd-icon", { key: '4d737bf6cc2952776016b9bc7f11cf90364cdcdb', name: "close", size: "12", color: "#AAAAAA" })))))))));
3708
4805
  }
3709
4806
  };
3710
- SdTooltip.style = sdTooltipCss;
4807
+ SdTooltip.style = sdTooltipCss();
3711
4808
 
3712
4809
  const SdTooltipPortal = class {
3713
4810
  constructor(hostRef) {
@@ -3858,9 +4955,9 @@ const SdTooltipPortal = class {
3858
4955
  this.sdClose.emit();
3859
4956
  }
3860
4957
  render() {
3861
- return h("slot", { key: '912ff6aba4bae810c40c95325ffb1109ddcfddbb' });
4958
+ return h("slot", { key: 'c389b848b1dc63a0484f6000ac5443cce752e4ac' });
3862
4959
  }
3863
4960
  };
3864
4961
 
3865
- export { SdButton as sd_button, SdCheckbox as sd_checkbox, SdGuide as sd_guide, SdIcon as sd_icon, SdInput as sd_input, SdLoadingSpinner as sd_loading_spinner, SdPagination as sd_pagination, SdPortal as sd_portal, SdRadioGroup as sd_radio_group, SdSelect as sd_select, SdSelectOption as sd_select_option, SdTable as sd_table_backup, SdToggle as sd_toggle, SdTooltip as sd_tooltip, SdTooltipPortal as sd_tooltip_portal };
3866
- //# sourceMappingURL=sd-button.sd-checkbox.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-pagination.sd-portal.sd-radio-group.sd-select.sd-select-option.sd-table-backup.sd-toggle.sd-tooltip.sd-tooltip-portal.entry.js.map
4962
+ export { SdButton as sd_button, SdCheckbox as sd_checkbox, SdFilePicker as sd_file_picker, SdGuide as sd_guide, SdIcon as sd_icon, SdInput as sd_input, SdLoadingSpinner as sd_loading_spinner, SdNumberInput as sd_number_input, SdPagination as sd_pagination, SdPortal as sd_portal, SdRadioGroup as sd_radio_group, SdSelect as sd_select, SdSelectMultipleGroup as sd_select_multiple_group, SdSelectOption as sd_select_option, SdSelectOptionGroup as sd_select_option_group, SdTable as sd_table_backup, SdTabs as sd_tabs, SdTag as sd_tag, SdToastMessage as sd_toast_message, SdToggle as sd_toggle, SdToggleButton as sd_toggle_button, SdTooltip as sd_tooltip, SdTooltipPortal as sd_tooltip_portal };
4963
+ //# sourceMappingURL=sd-button.sd-checkbox.sd-file-picker.sd-guide.sd-icon.sd-input.sd-loading-spinner.sd-number-input.sd-pagination.sd-portal.sd-radio-group.sd-select.sd-select-multiple-group.sd-select-option.sd-select-option-group.sd-table-backup.sd-tabs.sd-tag.sd-toast-message.sd-toggle.sd-toggle-button.sd-tooltip.sd-tooltip-portal.entry.js.map