@sellmate/design-system 1.19.0 → 1.20.1

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 (264) hide show
  1. package/dist/cjs/design-system.cjs.js +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/sd-badge.cjs.entry.js +1 -1
  4. package/dist/cjs/sd-barcode-input.cjs.entry.js +1 -1
  5. package/dist/cjs/sd-button_2.cjs.entry.js +1 -1
  6. package/dist/cjs/sd-calendar_2.cjs.entry.js +5 -5
  7. package/dist/cjs/sd-callout.cjs.entry.js +1 -1
  8. package/dist/cjs/sd-card.cjs.entry.js +1 -1
  9. package/dist/cjs/sd-chip-input.cjs.entry.js +2 -2
  10. package/dist/cjs/sd-chip.cjs.entry.js +1 -1
  11. package/dist/cjs/sd-circle-progress.cjs.entry.js +1 -1
  12. package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +3 -3
  13. package/dist/cjs/sd-date-picker_7.cjs.entry.js +9 -9
  14. package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +1 -1
  15. package/dist/cjs/sd-divider.cjs.entry.js +1 -1
  16. package/dist/cjs/sd-field_3.cjs.entry.js +8 -8
  17. package/dist/cjs/{sd-ghost-button_2.cjs.entry.js → sd-ghost-button_3.cjs.entry.js} +264 -10
  18. package/dist/cjs/sd-key-value-table.cjs.entry.js +4 -4
  19. package/dist/cjs/sd-linear-progress.cjs.entry.js +1 -1
  20. package/dist/cjs/sd-loading-container.cjs.entry.js +2 -2
  21. package/dist/cjs/sd-modal-container.cjs.entry.js +49 -1
  22. package/dist/cjs/sd-pagination_4.cjs.entry.js +8 -8
  23. package/dist/cjs/sd-popup.cjs.entry.js +1 -1
  24. package/dist/cjs/sd-select-list-item_2.cjs.entry.js +6 -6
  25. package/dist/cjs/sd-select_3.cjs.entry.js +8 -8
  26. package/dist/cjs/sd-switch.cjs.entry.js +1 -1
  27. package/dist/cjs/sd-table.cjs.entry.js +8 -8
  28. package/dist/cjs/sd-tabs.cjs.entry.js +1 -1
  29. package/dist/cjs/sd-td.cjs.entry.js +1 -1
  30. package/dist/cjs/sd-toast-container.cjs.entry.js +1 -1
  31. package/dist/cjs/sd-toast.cjs.entry.js +2 -2
  32. package/dist/cjs/sd-toggle.cjs.entry.js +1 -1
  33. package/dist/collection/components/assets/Close.js +1 -1
  34. package/dist/collection/components/sd-badge/sd-badge.js +1 -1
  35. package/dist/collection/components/sd-barcode-input/sd-barcode-input.js +1 -1
  36. package/dist/collection/components/sd-calendar/sd-calendar.js +3 -3
  37. package/dist/collection/components/sd-callout/sd-callout.js +1 -1
  38. package/dist/collection/components/sd-card/sd-card.js +1 -1
  39. package/dist/collection/components/sd-chip/sd-chip.js +1 -1
  40. package/dist/collection/components/sd-chip-input/sd-chip-input.js +2 -2
  41. package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +1 -1
  42. package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +2 -2
  43. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +2 -2
  44. package/dist/collection/components/sd-date-picker/sd-date-picker.js +2 -2
  45. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +1 -1
  46. package/dist/collection/components/sd-divider/sd-divider.js +1 -1
  47. package/dist/collection/components/sd-field/sd-field.js +5 -5
  48. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +1 -1
  49. package/dist/collection/components/sd-ghost-button/sd-ghost-button.css +2 -17
  50. package/dist/collection/components/sd-ghost-button/sd-ghost-button.js +21 -12
  51. package/dist/collection/components/sd-input/sd-input.js +2 -2
  52. package/dist/collection/components/sd-key-value-table/sd-key-value-table.css +2 -2
  53. package/dist/collection/components/sd-key-value-table/sd-key-value-table.js +6 -6
  54. package/dist/collection/components/sd-linear-progress/sd-linear-progress.js +1 -1
  55. package/dist/collection/components/sd-loading-container/sd-loading-container.js +2 -2
  56. package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +1 -1
  57. package/dist/collection/components/sd-modal-container/sd-modal-container.js +49 -1
  58. package/dist/collection/components/sd-number-input/sd-number-input.js +4 -4
  59. package/dist/collection/components/sd-pagination/sd-pagination.js +3 -3
  60. package/dist/collection/components/sd-popup/sd-popup.js +1 -1
  61. package/dist/collection/components/sd-portal/sd-portal.js +34 -3
  62. package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +2 -2
  63. package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +4 -4
  64. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +2 -2
  65. package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +2 -2
  66. package/dist/collection/components/sd-select/sd-select.js +4 -4
  67. package/dist/collection/components/sd-switch/sd-switch.js +1 -1
  68. package/dist/collection/components/sd-table/sd-table.css +1 -1
  69. package/dist/collection/components/sd-table/sd-table.js +9 -9
  70. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +2 -2
  71. package/dist/collection/components/sd-table/sd-td/sd-td.js +1 -1
  72. package/dist/collection/components/sd-table/sd-thead/sd-thead.js +3 -3
  73. package/dist/collection/components/sd-tabs/sd-tabs.js +1 -1
  74. package/dist/collection/components/sd-tag/sd-tag.js +2 -2
  75. package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
  76. package/dist/collection/components/sd-toast/sd-toast.js +2 -2
  77. package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
  78. package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
  79. package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
  80. package/dist/components/p-5imde6N9.js +1 -0
  81. package/dist/components/p-B5bya7Gp.js +1 -0
  82. package/dist/components/p-B7PHGGFH.js +1 -0
  83. package/dist/components/p-BZfVV3gu.js +1 -0
  84. package/dist/components/p-BiBLp9_a.js +1 -0
  85. package/dist/components/{p-DMS9mQsg.js → p-BjcGzaFR.js} +1 -1
  86. package/dist/components/{p-BD8OoYud.js → p-Bz93hWXV.js} +1 -1
  87. package/dist/components/p-CB2A3pJ5.js +1 -0
  88. package/dist/components/{p-B_5uwji5.js → p-CJ69QmR3.js} +1 -1
  89. package/dist/components/p-CLlAhEDc.js +1 -0
  90. package/dist/components/{p-4HPAPKne.js → p-CQozoo2-.js} +1 -1
  91. package/dist/components/p-CRwvv7YM.js +1 -0
  92. package/dist/components/p-CTPImLDQ.js +1 -0
  93. package/dist/components/{p-CQWZv8vY.js → p-CUR9smP5.js} +1 -1
  94. package/dist/components/{p-DbLQoVx6.js → p-CXeOxSQ-.js} +1 -1
  95. package/dist/components/p-CZfsknba.js +1 -0
  96. package/dist/components/{p-CtWfOIxb.js → p-CoqA9KgU.js} +1 -1
  97. package/dist/components/{p-hzCGj0On.js → p-CrT06Uwc.js} +1 -1
  98. package/dist/components/p-CvSqieCH.js +1 -0
  99. package/dist/components/p-D99vy8Ip.js +1 -0
  100. package/dist/components/{p-B3SKaQId.js → p-DDAA-zcg.js} +1 -1
  101. package/dist/components/p-DIlNesBH.js +1 -0
  102. package/dist/components/p-DNnI3Nru.js +1 -0
  103. package/dist/components/p-DZTxHJlP.js +1 -0
  104. package/dist/components/{p-CH6cVc2a.js → p-DertIGhs.js} +1 -1
  105. package/dist/components/{p-CzCu_NDl.js → p-Dl89_4C3.js} +1 -1
  106. package/dist/components/{p-C_r3z9VA.js → p-FTvXz0-a.js} +1 -1
  107. package/dist/components/{p-BLNc_TL-.js → p-P2jWtk8J.js} +1 -1
  108. package/dist/components/{p-DrSHJYop.js → p-Rwc_ltPn.js} +1 -1
  109. package/dist/components/p-ZvI5A-_t.js +1 -0
  110. package/dist/components/{p-79DExV92.js → p-gOIeNT-Z.js} +1 -1
  111. package/dist/components/{p-BMIgVp9-.js → p-uSEbiD29.js} +1 -1
  112. package/dist/components/{p-DDR0VcRU.js → p-xkRWGISE.js} +1 -1
  113. package/dist/components/sd-action-modal.js +1 -1
  114. package/dist/components/sd-badge.js +1 -1
  115. package/dist/components/sd-barcode-input.js +1 -1
  116. package/dist/components/sd-button.js +1 -1
  117. package/dist/components/sd-calendar.js +1 -1
  118. package/dist/components/sd-callout.js +1 -1
  119. package/dist/components/sd-card.js +1 -1
  120. package/dist/components/sd-checkbox.js +1 -1
  121. package/dist/components/sd-chip-input.js +1 -1
  122. package/dist/components/sd-chip.js +1 -1
  123. package/dist/components/sd-circle-progress.js +1 -1
  124. package/dist/components/sd-confirm-modal.js +1 -1
  125. package/dist/components/sd-date-picker-trigger.js +1 -1
  126. package/dist/components/sd-date-picker.js +1 -1
  127. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  128. package/dist/components/sd-date-range-picker.js +1 -1
  129. package/dist/components/sd-divider.js +1 -1
  130. package/dist/components/sd-dropdown-button.js +1 -1
  131. package/dist/components/sd-field.js +1 -1
  132. package/dist/components/sd-file-picker.js +1 -1
  133. package/dist/components/sd-floating-portal.js +1 -1
  134. package/dist/components/sd-ghost-button.js +1 -1
  135. package/dist/components/sd-guide.js +1 -1
  136. package/dist/components/sd-icon.js +1 -1
  137. package/dist/components/sd-input.js +1 -1
  138. package/dist/components/sd-key-value-table.js +1 -1
  139. package/dist/components/sd-linear-progress.js +1 -1
  140. package/dist/components/sd-loading-container.js +1 -1
  141. package/dist/components/sd-loading-modal.js +1 -1
  142. package/dist/components/sd-modal-container.js +1 -1
  143. package/dist/components/sd-number-input.js +1 -1
  144. package/dist/components/sd-pagination.js +1 -1
  145. package/dist/components/sd-popover.js +1 -1
  146. package/dist/components/sd-popup.js +1 -1
  147. package/dist/components/sd-portal.js +1 -1
  148. package/dist/components/sd-select-list-item-search.js +1 -1
  149. package/dist/components/sd-select-list-item.js +1 -1
  150. package/dist/components/sd-select-listbox.js +1 -1
  151. package/dist/components/sd-select-trigger.js +1 -1
  152. package/dist/components/sd-select.js +1 -1
  153. package/dist/components/sd-switch.js +1 -1
  154. package/dist/components/sd-table.js +1 -1
  155. package/dist/components/sd-tabs.js +1 -1
  156. package/dist/components/sd-tag.js +1 -1
  157. package/dist/components/sd-tbody.js +1 -1
  158. package/dist/components/sd-td.js +1 -1
  159. package/dist/components/sd-text-link.js +1 -1
  160. package/dist/components/sd-textarea.js +1 -1
  161. package/dist/components/sd-thead.js +1 -1
  162. package/dist/components/sd-toast-container.js +1 -1
  163. package/dist/components/sd-toast.js +1 -1
  164. package/dist/components/sd-toggle.js +1 -1
  165. package/dist/components/sd-tooltip.js +1 -1
  166. package/dist/components/sd-tr.js +1 -1
  167. package/dist/design-system/design-system.esm.js +1 -1
  168. package/dist/design-system/{p-80bde621.entry.js → p-08343698.entry.js} +1 -1
  169. package/dist/design-system/p-17dcf0e4.entry.js +1 -0
  170. package/dist/design-system/{p-bbbc4b27.entry.js → p-2151e081.entry.js} +1 -1
  171. package/dist/design-system/p-316b8a08.entry.js +1 -0
  172. package/dist/design-system/{p-f5190934.entry.js → p-4acfc5f9.entry.js} +1 -1
  173. package/dist/design-system/{p-22484d65.entry.js → p-5039241c.entry.js} +1 -1
  174. package/dist/design-system/p-52f551a1.entry.js +1 -0
  175. package/dist/design-system/{p-d726d8e7.entry.js → p-54853a2b.entry.js} +1 -1
  176. package/dist/design-system/p-5eaa12af.entry.js +1 -0
  177. package/dist/design-system/{p-827f067b.entry.js → p-646a7830.entry.js} +1 -1
  178. package/dist/design-system/{p-9d35b674.entry.js → p-717eba5f.entry.js} +1 -1
  179. package/dist/design-system/p-7ed8c8f1.entry.js +1 -0
  180. package/dist/design-system/{p-8f90620b.entry.js → p-9289eb14.entry.js} +1 -1
  181. package/dist/design-system/{p-b4b20a86.entry.js → p-98e0b332.entry.js} +1 -1
  182. package/dist/design-system/{p-9124a1af.entry.js → p-9c38ee79.entry.js} +1 -1
  183. package/dist/design-system/{p-c318b762.entry.js → p-a4331364.entry.js} +1 -1
  184. package/dist/design-system/{p-683c3b91.entry.js → p-a5a586da.entry.js} +1 -1
  185. package/dist/design-system/{p-1602a5fa.entry.js → p-aa1c6202.entry.js} +1 -1
  186. package/dist/design-system/{p-8a84a4fe.entry.js → p-ae344950.entry.js} +1 -1
  187. package/dist/design-system/{p-4b15247b.entry.js → p-b291baab.entry.js} +1 -1
  188. package/dist/design-system/{p-e93dda25.entry.js → p-b63b8df9.entry.js} +1 -1
  189. package/dist/design-system/{p-3caf2c5b.entry.js → p-bdb7492c.entry.js} +1 -1
  190. package/dist/design-system/{p-cc5f5bff.entry.js → p-c47198fc.entry.js} +1 -1
  191. package/dist/design-system/{p-4b626171.entry.js → p-c995e6c3.entry.js} +1 -1
  192. package/dist/design-system/{p-9095aab6.entry.js → p-cb80327c.entry.js} +1 -1
  193. package/dist/design-system/{p-7ed5aed5.entry.js → p-ccf1a3fc.entry.js} +1 -1
  194. package/dist/design-system/{p-4e1d76b8.entry.js → p-df7c721d.entry.js} +1 -1
  195. package/dist/design-system/p-e3990243.entry.js +1 -0
  196. package/dist/design-system/{p-81aa23d1.entry.js → p-e9d1dbb5.entry.js} +1 -1
  197. package/dist/design-system/p-faf7b64c.entry.js +1 -0
  198. package/dist/esm/design-system.js +1 -1
  199. package/dist/esm/loader.js +1 -1
  200. package/dist/esm/sd-badge.entry.js +1 -1
  201. package/dist/esm/sd-barcode-input.entry.js +1 -1
  202. package/dist/esm/sd-button_2.entry.js +1 -1
  203. package/dist/esm/sd-calendar_2.entry.js +5 -5
  204. package/dist/esm/sd-callout.entry.js +1 -1
  205. package/dist/esm/sd-card.entry.js +1 -1
  206. package/dist/esm/sd-chip-input.entry.js +2 -2
  207. package/dist/esm/sd-chip.entry.js +1 -1
  208. package/dist/esm/sd-circle-progress.entry.js +1 -1
  209. package/dist/esm/sd-confirm-modal_2.entry.js +3 -3
  210. package/dist/esm/sd-date-picker_7.entry.js +9 -9
  211. package/dist/esm/sd-date-range-picker-calendar.entry.js +1 -1
  212. package/dist/esm/sd-divider.entry.js +1 -1
  213. package/dist/esm/sd-field_3.entry.js +8 -8
  214. package/dist/esm/{sd-ghost-button_2.entry.js → sd-ghost-button_3.entry.js} +265 -12
  215. package/dist/esm/sd-key-value-table.entry.js +4 -4
  216. package/dist/esm/sd-linear-progress.entry.js +1 -1
  217. package/dist/esm/sd-loading-container.entry.js +2 -2
  218. package/dist/esm/sd-modal-container.entry.js +49 -1
  219. package/dist/esm/sd-pagination_4.entry.js +8 -8
  220. package/dist/esm/sd-popup.entry.js +1 -1
  221. package/dist/esm/sd-select-list-item_2.entry.js +6 -6
  222. package/dist/esm/sd-select_3.entry.js +8 -8
  223. package/dist/esm/sd-switch.entry.js +1 -1
  224. package/dist/esm/sd-table.entry.js +8 -8
  225. package/dist/esm/sd-tabs.entry.js +1 -1
  226. package/dist/esm/sd-td.entry.js +1 -1
  227. package/dist/esm/sd-toast-container.entry.js +1 -1
  228. package/dist/esm/sd-toast.entry.js +2 -2
  229. package/dist/esm/sd-toggle.entry.js +1 -1
  230. package/dist/types/components/sd-ghost-button/sd-ghost-button.d.ts +7 -1
  231. package/dist/types/components/sd-key-value-table/sd-key-value-table.d.ts +2 -2
  232. package/dist/types/components/sd-modal-container/sd-modal-container.d.ts +9 -0
  233. package/dist/types/components/sd-portal/sd-portal.d.ts +1 -0
  234. package/dist/types/components/sd-table/sd-table.d.ts +1 -1
  235. package/dist/types/components.d.ts +20 -17
  236. package/hydrate/index.js +163 -98
  237. package/hydrate/index.mjs +163 -98
  238. package/package.json +1 -1
  239. package/dist/cjs/sd-portal.cjs.entry.js +0 -243
  240. package/dist/components/p-AI4YlQmL.js +0 -1
  241. package/dist/components/p-B-4ulKJj.js +0 -1
  242. package/dist/components/p-BX5uKVOt.js +0 -1
  243. package/dist/components/p-BYTrIk62.js +0 -1
  244. package/dist/components/p-Bzo51vnP.js +0 -1
  245. package/dist/components/p-C0tkFuhj.js +0 -1
  246. package/dist/components/p-C3wv8gVC.js +0 -1
  247. package/dist/components/p-CXRFEcE_.js +0 -1
  248. package/dist/components/p-Cl5io5TH.js +0 -1
  249. package/dist/components/p-ClKABgST.js +0 -1
  250. package/dist/components/p-DAOeioSV.js +0 -1
  251. package/dist/components/p-DTFXzlvq.js +0 -1
  252. package/dist/components/p-Dr5Q2ZKB.js +0 -1
  253. package/dist/components/p-DyVh4pNL.js +0 -1
  254. package/dist/components/p-Ng3JMPxb.js +0 -1
  255. package/dist/components/p-qJeUUOyB.js +0 -1
  256. package/dist/design-system/p-12306783.entry.js +0 -1
  257. package/dist/design-system/p-3f7349ae.entry.js +0 -1
  258. package/dist/design-system/p-43529bba.entry.js +0 -1
  259. package/dist/design-system/p-46da89f2.entry.js +0 -1
  260. package/dist/design-system/p-8a025f91.entry.js +0 -1
  261. package/dist/design-system/p-a263af1b.entry.js +0 -1
  262. package/dist/design-system/p-a532d998.entry.js +0 -1
  263. package/dist/design-system/p-aa312937.entry.js +0 -1
  264. package/dist/esm/sd-portal.entry.js +0 -241
@@ -70,7 +70,7 @@ const SdCircleProgress = class {
70
70
  }
71
71
  const c = CIRCLE_PROGRESS_VIEWBOX_SIZE / 2;
72
72
  const showPercent = !this.indeterminate;
73
- return (h(Host, { key: '35b4dc433f5e2bbd02dc3422b286da179472082f', style: hostStyle }, h("svg", { key: 'de1d3e44eccf421491a1107ba234e1562917945b', class: "sd-circle-progress", viewBox: `0 0 ${CIRCLE_PROGRESS_VIEWBOX_SIZE} ${CIRCLE_PROGRESS_VIEWBOX_SIZE}`, xmlns: "http://www.w3.org/2000/svg" }, h("circle", { key: 'b0a54a2e155222a416a6bdcb75f4fe54d9de8270', class: "sd-circle-progress__track", cx: c, cy: c, r: CIRCLE_PROGRESS_RADIUS, fill: "none", "stroke-width": CIRCLE_PROGRESS_STROKE_WIDTH }), h("circle", { key: '6bc314b3fce758d41a3499e9d87b7158b15777a5', class: "sd-circle-progress__arc", cx: c, cy: c, r: CIRCLE_PROGRESS_RADIUS, fill: "none", "stroke-width": CIRCLE_PROGRESS_STROKE_WIDTH, "stroke-linecap": "round", style: arcStyle })), showPercent && (h("span", { key: '16ec46b178d5f2f2f5ad245703c2f4362b8df261', class: "sd-circle-progress__percent" }, Math.round(this.clampedValue), "%")), this.label && h("span", { key: 'c199799d2466c75f91f1bc1f20fdb7e71c64ba0e', class: "sd-circle-progress__label" }, this.label)));
73
+ return (h(Host, { key: 'b8dc57144fcab41a7dce8f9aff9bec4609290a8e', style: hostStyle }, h("svg", { key: '2f38f745684057e2b568da3cdbb8a940125fa920', class: "sd-circle-progress", viewBox: `0 0 ${CIRCLE_PROGRESS_VIEWBOX_SIZE} ${CIRCLE_PROGRESS_VIEWBOX_SIZE}`, xmlns: "http://www.w3.org/2000/svg" }, h("circle", { key: 'e829f78dddbf5fb08e23b5774fe653c0019eedfd', class: "sd-circle-progress__track", cx: c, cy: c, r: CIRCLE_PROGRESS_RADIUS, fill: "none", "stroke-width": CIRCLE_PROGRESS_STROKE_WIDTH }), h("circle", { key: '4643ac0edf25a12660791d87acebbecd8a5c2ead', class: "sd-circle-progress__arc", cx: c, cy: c, r: CIRCLE_PROGRESS_RADIUS, fill: "none", "stroke-width": CIRCLE_PROGRESS_STROKE_WIDTH, "stroke-linecap": "round", style: arcStyle })), showPercent && (h("span", { key: '1ccaad0864e44d09902201bde466b7867c51646f', class: "sd-circle-progress__percent" }, Math.round(this.clampedValue), "%")), this.label && h("span", { key: '0e26d97267552ef75dcc30f94392cbc733fee636', class: "sd-circle-progress__label" }, this.label)));
74
74
  }
75
75
  };
76
76
  SdCircleProgress.style = sdCircleProgressCss();
@@ -100,9 +100,9 @@ const SdConfirmModal = class {
100
100
  const type = this.resolvedType;
101
101
  const iconName = CONFIRM_MODAL_ICON_MAP[type];
102
102
  const iconColor = CONFIRM_MODAL_ICON_COLOR[type];
103
- return (h("div", { key: '51fb051b436cc511aeac2f578832a267e12ef3c4', class: "sd-confirm-modal" }, h("sd-ghost-button", { key: 'dd9605e312eac8b0602ec558ad5439ea3daa7aa7', class: "sd-confirm-modal__close-button", icon: "close", ariaLabel: "close", onClick: () => this.close.emit() }), iconName && (h("sd-icon", { key: '5027ec2d03731338a9197f7b5b910d2adbf83f0e', class: "sd-confirm-modal__icon", name: iconName, size: TITLE_ICON_SIZE, color: iconColor })), h("h2", { key: '8456707355cc779c169b56abc16b0949909b829e', class: `sd-confirm-modal__title ${this.titleClass ?? ''}` }, this.modalTitle), h("div", { key: 'd11cb38e749f54ce5767ba9b5cca0129df742aca', class: "sd-confirm-modal__body" }, (this.topMessage ?? []).length > 0 && (h("div", { key: 'de653458605a9591d7c66d644a143d0f33738b28', class: "sd-confirm-modal__message" }, (this.topMessage ?? []).map(msg => (h("p", { class: "sd-confirm-modal__message-text", innerHTML: sanitizeInlineHtml(msg) }))))), this.showContentBox && (h("div", { key: '0517e400485551ab21f0f5452af764b5ede7a76d', class: "sd-confirm-modal__content-box" }, this.tagContents ? (h("div", { class: "sd-confirm-modal__custom-content", ref: el => {
103
+ return (h("div", { key: '689c6d50f52e1a4c5b8f501fcc1e14f0da42fcfc', class: "sd-confirm-modal" }, h("sd-ghost-button", { key: 'fc3aedaa2b6aa3b95b9c0ce1e766df69af86c82f', class: "sd-confirm-modal__close-button", icon: "close", ariaLabel: "close", onClick: () => this.close.emit() }), iconName && (h("sd-icon", { key: '4560ad7ee0d8929221a47b6c1b00cac04c7b387a', class: "sd-confirm-modal__icon", name: iconName, size: TITLE_ICON_SIZE, color: iconColor })), h("h2", { key: '8689d86f85c72a9f36e94f083842fc3354d3d82c', class: `sd-confirm-modal__title ${this.titleClass ?? ''}` }, this.modalTitle), h("div", { key: '5828e937b3b1d3f34c389e73a3d953388dd30cd0', class: "sd-confirm-modal__body" }, (this.topMessage ?? []).length > 0 && (h("div", { key: '0f64cda9195807dbf637a463ba2bc8acc8c1ff3a', class: "sd-confirm-modal__message" }, (this.topMessage ?? []).map(msg => (h("p", { class: "sd-confirm-modal__message-text", innerHTML: sanitizeInlineHtml(msg) }))))), this.showContentBox && (h("div", { key: 'a090330cab2dbbc99127e616f3e50420bd44b9e4', class: "sd-confirm-modal__content-box" }, this.tagContents ? (h("div", { class: "sd-confirm-modal__custom-content", ref: el => {
104
104
  this.customContentRef = el;
105
- } })) : (h("slot", { onSlotchange: () => this.syncHasSlottedContent() }, this.tagLabel && (h("sd-tag", { name: this.tagPreset ?? 'square_sm_grey', label: this.tagLabel })), this.slotLabel && (h("span", { class: "sd-confirm-modal__slot-label" }, this.slotLabel)))))), (this.bottomMessage ?? []).length > 0 && (h("div", { key: 'd542a08caee30ed7eb1d22ed85a51be6e1f6855e', class: "sd-confirm-modal__message" }, (this.bottomMessage ?? []).map(msg => (h("p", { class: "sd-confirm-modal__message-text", innerHTML: sanitizeInlineHtml(msg) })))))), h("div", { key: '02d012e899969ee55cba43c11d9caeaaff65a348', class: "sd-confirm-modal__button" }, this.subButtonLabel && (h("sd-button", { key: 'fd50d151e515646e5bef5658a1b05b2e26b21461', name: SUB_BUTTON_PRESET, label: this.subButtonLabel, onSdClick: () => this.cancel.emit() })), h("sd-button", { key: '0c2092edf0866a8b1f4f432b176d78eedd9655d6', name: this.resolvedMainButton, label: this.mainButtonLabel ?? '확인', onSdClick: () => this.ok.emit() }))));
105
+ } })) : (h("slot", { onSlotchange: () => this.syncHasSlottedContent() }, this.tagLabel && (h("sd-tag", { name: this.tagPreset ?? 'square_sm_grey', label: this.tagLabel })), this.slotLabel && (h("span", { class: "sd-confirm-modal__slot-label" }, this.slotLabel)))))), (this.bottomMessage ?? []).length > 0 && (h("div", { key: 'a665a0ea56685496adf7c306b4a940762a8a2b3a', class: "sd-confirm-modal__message" }, (this.bottomMessage ?? []).map(msg => (h("p", { class: "sd-confirm-modal__message-text", innerHTML: sanitizeInlineHtml(msg) })))))), h("div", { key: '0ad69928a260ed78edd7606f89790e6afa6b2d76', class: "sd-confirm-modal__button" }, this.subButtonLabel && (h("sd-button", { key: '1f835e091b4d96cb6c95dbda88d93ce86828da2c', name: SUB_BUTTON_PRESET, label: this.subButtonLabel, onSdClick: () => this.cancel.emit() })), h("sd-button", { key: '8e3cb23cb7207e402543b009b49d23a50521db24', name: this.resolvedMainButton, label: this.mainButtonLabel ?? '확인', onSdClick: () => this.ok.emit() }))));
106
106
  }
107
107
  };
108
108
  SdConfirmModal.style = sdConfirmModalCss();
@@ -186,7 +186,7 @@ const SdLoadingModal = class {
186
186
  '--sd-loading-modal-width': this.toCssSize(this.width) ?? `${LOADING_MODAL_LAYOUT.minWidth}px`,
187
187
  '--sd-loading-modal-height': this.toCssSize(this.height) ?? `${LOADING_MODAL_LAYOUT.minHeight}px`,
188
188
  };
189
- return (h(Host, { key: 'f40dcf4fa7e2ee7b4023be11be2b9361ec167610', style: hostStyle }, h("div", { key: '02bab8da4e09156340e8e9badef25755b57193d5', class: "sd-loading-modal" }, h("div", { key: '776833f7f85a5587dda59fe75e36ebb4b9109c3e', class: "sd-loading-modal__content" }, this.resolvedState === 'loading' ? (this.progress !== undefined ? (h("sd-circle-progress", { value: this.progress })) : (h("sd-circle-progress", { indeterminate: true }))) : (h("sd-icon", { class: "sd-loading-modal__icon", name: "warningOutline", size: LOADING_MODAL_LAYOUT.contentSize, color: LOADING_MODAL_COLORS.errorIcon }))), h("div", { key: '4bb9e434a4a2d6be6dbbe2ed4e89563bf7278c65', class: "sd-loading-modal__message-wrapper" }, Array.isArray(this.resolvedMessage) ? (this.resolvedMessage.map(message => (h("p", { class: "sd-loading-modal__message" }, message)))) : (h("p", { class: "sd-loading-modal__message" }, this.resolvedMessage))), this.useButton && (h("div", { key: '5da761513fdc38e5e646f72f75072e25d5313384', class: "sd-loading-modal__button" }, h("sd-button", { key: '2bf9beb84ab4a6c1e6793db453e04b947c432d13', name: LOADING_MODAL_BUTTON_PRESET, label: this.resolvedButtonLabel, onSdClick: this.handleClick }))))));
189
+ return (h(Host, { key: '12e8bb40871556dddad6bf3e9daa1703f3a29fc3', style: hostStyle }, h("div", { key: 'b1f0282746a8a4ceabd120a1c366b836edb805c1', class: "sd-loading-modal" }, h("div", { key: '496c034608b3d31557f154f77aa7cb7c2cb9558a', class: "sd-loading-modal__content" }, this.resolvedState === 'loading' ? (this.progress !== undefined ? (h("sd-circle-progress", { value: this.progress })) : (h("sd-circle-progress", { indeterminate: true }))) : (h("sd-icon", { class: "sd-loading-modal__icon", name: "warningOutline", size: LOADING_MODAL_LAYOUT.contentSize, color: LOADING_MODAL_COLORS.errorIcon }))), h("div", { key: 'e0a57ee49f6fe46680a8e2393a00014edd76d36f', class: "sd-loading-modal__message-wrapper" }, Array.isArray(this.resolvedMessage) ? (this.resolvedMessage.map(message => (h("p", { class: "sd-loading-modal__message" }, message)))) : (h("p", { class: "sd-loading-modal__message" }, this.resolvedMessage))), this.useButton && (h("div", { key: 'bd0c91c279a7cd4d58a18f7bfd6e8c345ae00fcf', class: "sd-loading-modal__button" }, h("sd-button", { key: '0d03006a668333de256b2142efc9d0c374bfef45', name: LOADING_MODAL_BUTTON_PRESET, label: this.resolvedButtonLabel, onSdClick: this.handleClick }))))));
190
190
  }
191
191
  };
192
192
  SdLoadingModal.style = sdLoadingModalCss();
@@ -104,9 +104,9 @@ const SdDatePicker = class {
104
104
  '--sd-system-color-field-border-focus': DATEPICKER_COLORS.border.focus,
105
105
  '--sd-system-color-field-bg-default': DATEPICKER_COLORS.bg.default,
106
106
  };
107
- return (h("sd-field", { key: '9e1e5cb7419027db803248a657d0d134be049637', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, size: this.size, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("div", { key: 'fbd9adeaa08d19cac34b045aba2b3fbb8d4adc8c', class: "sd-date-picker", ref: el => {
107
+ return (h("sd-field", { key: 'cbd8e081f56fb2fb53854cd0937fe24e5d6d9b97', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, size: this.size, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("div", { key: 'e7798ec50f7d22628a17a953ac87882160248de4', class: "sd-date-picker", ref: el => {
108
108
  this.triggerRef = el;
109
- } }, h("sd-date-picker-trigger", { key: 'd51161c4b1eedcfd90832c9b6d049559ff5df08b', displayText: this.value ?? '', placeholder: this.placeholder, disabled: this.disabled, size: this.size, onSdTriggerClick: this.handleTriggerClick })), (this.isOpen || this.isAnimatingOut) && (h("sd-portal", { key: 'd6588d3991eff39eb717d4211b38d68f093aace5', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, h("sd-calendar", { key: '0dc6a8074fcfa63630aab7f0b126caa9f4c7b234', elevated: true, value: this.value, selectable: this.selectable, onSdUpdate: this.handleSelect, onSdViewChange: this.handleViewChange })))));
109
+ } }, h("sd-date-picker-trigger", { key: 'ce203f70a001f9caa9071fb667d9bf58f57748ec', displayText: this.value ?? '', placeholder: this.placeholder, disabled: this.disabled, size: this.size, onSdTriggerClick: this.handleTriggerClick })), (this.isOpen || this.isAnimatingOut) && (h("sd-portal", { key: 'c5f875bc826fa1f899205cfefe2db57da3dd34b4', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, h("sd-calendar", { key: '8626faebafac8201979e02c444279124c3261b67', elevated: true, value: this.value, selectable: this.selectable, onSdUpdate: this.handleSelect, onSdViewChange: this.handleViewChange })))));
110
110
  }
111
111
  static get watchers() { return {
112
112
  "isOpen": [{
@@ -649,12 +649,12 @@ const SdInput = class {
649
649
  '--sd-system-size-field-sm-height': `${sizeTokens.height}px`,
650
650
  '--sd-system-radius-field-sm': `${sizeTokens.radius}px`,
651
651
  };
652
- return (h("sd-field", { key: '64e7a3ba5e223341336248ba31e621b4416987fd', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, readonly: this.readonly, focused: this.focused, hovered: this.hovered, status: this.status, size: this.size, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("label", { key: 'b66e286c35cc14c1eb02badcaaff24b38ff0a7b3', class: "sd-input__content" }, h("slot", { key: 'dc8b900eb2b38c18b85663bc930e810be77bdbd7', name: "prefix" }), h("input", { key: '36d35464338838aaaeff6f728020241d33a493ec', name: this.name, ref: el => (this.nativeEl = el), class: `sd-input__native ${this.inputClass}`, type: this.type === 'password' && this.passwordVisible ? 'text' : (this.type ?? 'text'), value: this.internalValue || '', placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, autocomplete: this.autocomplete || undefined, maxlength: this.maxlength, minlength: this.minlength, inputmode: this.inputmode, enterkeyhint: this.enterkeyhint, spellcheck: this.spellcheck, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.inputStyle }), h("slot", { key: '4f30d4a59794c0692f367d41af4311e191c5427b', name: "suffix" }), this.clearable && this.internalValue && !this.disabled && !this.readonly && (h("sd-ghost-button", { key: '247da41512f20d8e562f345b08bd5bc13486734b', icon: "close", ariaLabel: "clear", size: "xxs", disabled: this.disabled, class: "sd-input__clear-icon", onClick: async () => {
652
+ return (h("sd-field", { key: 'bc95e469a741a7130b07b5e2ecbc3ce9a7d1799d', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, readonly: this.readonly, focused: this.focused, hovered: this.hovered, status: this.status, size: this.size, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("label", { key: '63661c1e1202e729bbcaedcf83d8b034a7bf2e0b', class: "sd-input__content" }, h("slot", { key: '6c17e53e77c0e6751deb664b67b7daa471bd08cc', name: "prefix" }), h("input", { key: '1572e700b110b8d98b62ef30e72a17974288473c', name: this.name, ref: el => (this.nativeEl = el), class: `sd-input__native ${this.inputClass}`, type: this.type === 'password' && this.passwordVisible ? 'text' : (this.type ?? 'text'), value: this.internalValue || '', placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, autocomplete: this.autocomplete || undefined, maxlength: this.maxlength, minlength: this.minlength, inputmode: this.inputmode, enterkeyhint: this.enterkeyhint, spellcheck: this.spellcheck, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.inputStyle }), h("slot", { key: '728316a43a96d7859849ef522c06a405f7d668b5', name: "suffix" }), this.clearable && this.internalValue && !this.disabled && !this.readonly && (h("sd-ghost-button", { key: 'ec89154a98d603db8eccc5db786d3330b33713ab', icon: "close", ariaLabel: "clear", size: "xxs", disabled: this.disabled, class: "sd-input__clear-icon", onClick: async () => {
653
653
  if (this.disabled || this.readonly)
654
654
  return;
655
655
  this.internalValue = '';
656
656
  await this.formField?.sdValidate();
657
- } })), this.type === 'password' && (h("sd-ghost-button", { key: '70c596ef0072bf369bd59e2c58d0a6f8c6fd1b11', icon: this.passwordVisible ? 'visibilityOn' : 'visibilityOff', ariaLabel: "visibility", size: "xxs", disabled: this.disabled || this.readonly, class: "sd-input__password-icon", onClick: () => {
657
+ } })), this.type === 'password' && (h("sd-ghost-button", { key: '8dd3e79ffa2bf731850e94b9a0752aeebf13aff6', icon: this.passwordVisible ? 'visibilityOn' : 'visibilityOff', ariaLabel: "visibility", size: "xxs", disabled: this.disabled || this.readonly, class: "sd-input__password-icon", onClick: () => {
658
658
  if (this.disabled || this.readonly)
659
659
  return;
660
660
  this.passwordVisible = !this.passwordVisible;
@@ -1040,15 +1040,15 @@ const SdNumberInput = class {
1040
1040
  '--sd-textinput-input-hint-typography-line-height': `${NUMBER_INPUT_HINT.typography.lineHeight}px`,
1041
1041
  '--sd-textinput-input-contents-gap': `${NUMBER_INPUT_CONTENTS_GAP}px`,
1042
1042
  };
1043
- return (h("sd-field", { key: 'ad212dcbaf8e19cac070e6bdfa292ca614480fbc', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, readonly: this.readonly, focused: this.focused, hovered: this.hovered, status: this.status, size: this.size, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("div", { key: 'b9c403df166e2f05f815ebf3851b6517b8afbd2a', class: {
1043
+ return (h("sd-field", { key: 'f322e07238237b4b609fbc3cd819cf2856eb3e63', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, readonly: this.readonly, focused: this.focused, hovered: this.hovered, status: this.status, size: this.size, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("div", { key: '8e4e7561a8b42b4a8b2e1f9559f7409d17f32c14', class: {
1044
1044
  'sd-number-input__content': true,
1045
1045
  'sd-number-input__content--no-stepper': !this.useButton,
1046
- } }, this.useButton && (h("button", { key: '206f45b19bf8dd56b65ff55fb65d760e36d80ba7', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--decrement", disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, h("sd-icon", { key: 'd39cadc9a83cf7a0170144b8734a90f71d7aa9d1', name: "minus", size: iconSize, color: this.isDecrementDisabled()
1046
+ } }, this.useButton && (h("button", { key: '642a5ce069d0af6347ecdbbb32c67ce2d8967cf4', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--decrement", disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, h("sd-icon", { key: 'd321af0b38dc8771ca58b52d079fe440551b4efc', name: "minus", size: iconSize, color: this.isDecrementDisabled()
1047
1047
  ? NUMBER_INPUT_STEPPER.icon.disabled
1048
- : NUMBER_INPUT_STEPPER.icon.default }))), this.inputPrefix && h("span", { key: '0c97309540467d56ee3415001df7a027ba581a3d', class: "sd-number-input__prefix" }, this.inputPrefix), h("input", { key: '9462f0c7ac028c038894ad184c7cf052e366e48c', name: this.name, ref: el => (this.nativeEl = el), class: `sd-number-input__native ${this.inputClass}`, type: "text", inputMode: "numeric", value: this.displayValue, placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, style: {
1048
+ : NUMBER_INPUT_STEPPER.icon.default }))), this.inputPrefix && h("span", { key: '5b84c95d1e4e8e151c9c71b8ff6513185e97dbf4', class: "sd-number-input__prefix" }, this.inputPrefix), h("input", { key: '0580882231474e80471085e7d91748943caf2f73', name: this.name, ref: el => (this.nativeEl = el), class: `sd-number-input__native ${this.inputClass}`, type: "text", inputMode: "numeric", value: this.displayValue, placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, style: {
1049
1049
  textAlign: this.useButton ? 'center' : 'right',
1050
1050
  ...this.inputStyle,
1051
- } }), this.inputSuffix && h("span", { key: 'fdd4f4e680fe5de55cb68c848615ec6b00f00430', class: "sd-number-input__suffix" }, this.inputSuffix), this.useButton && (h("button", { key: '8cdfcc46a010fb0f503b48c34290fd096403524a', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--increment", disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, h("sd-icon", { key: 'ec8826370cd9d8c6054ca6ab216de6baa62d90db', name: "add", size: iconSize, color: this.isIncrementDisabled()
1051
+ } }), this.inputSuffix && h("span", { key: 'd24110a5913272b0379f36823507c3c6ea4102be', class: "sd-number-input__suffix" }, this.inputSuffix), this.useButton && (h("button", { key: '2bcf9b96f875322b269630f14bbec6c64d55f042', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--increment", disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, h("sd-icon", { key: '809fb4ae2f33c4812bf329abc7dc1a9f78e9dd81', name: "add", size: iconSize, color: this.isIncrementDisabled()
1052
1052
  ? NUMBER_INPUT_STEPPER.icon.disabled
1053
1053
  : NUMBER_INPUT_STEPPER.icon.default }))))));
1054
1054
  }
@@ -1230,7 +1230,7 @@ const SdTextarea = class {
1230
1230
  '--sd-system-size-field-sm-height': 'auto',
1231
1231
  '--sd-system-radius-field-sm': `${TEXTAREA_TOKENS.radius}px`,
1232
1232
  };
1233
- return (h("sd-field", { key: '526fc1a73f13e5170125a570c5a1c8459931aa25', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, readonly: this.readonly, focused: this.focused, hovered: this.hovered, status: this.status, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("div", { key: 'e3c52fccc564a2488eb9e0d9399437b76e919c6a', class: "sd-textarea__content" }, h("textarea", { key: '3253873da3b9591e64a6dfd170c8d9ccb4861599', name: this.name, ref: el => (this.nativeEl = el), class: `sd-textarea__native ${this.textareaClass}`, value: this.internalValue || '', placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readOnly: this.readonly, autofocus: this.autoFocus, maxLength: this.maxLength, rows: this.rows, spellcheck: this.spellcheck, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.textareaStyle }))));
1233
+ return (h("sd-field", { key: '696b0aa26405687dad43ce934adbe7ec19e9b893', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, readonly: this.readonly, focused: this.focused, hovered: this.hovered, status: this.status, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, h("div", { key: '69a996d757345e25ef94238f8fffa521e7b7252e', class: "sd-textarea__content" }, h("textarea", { key: 'dbfcc43cbbf3bdde147f6a784df1c122bcb70b0e', name: this.name, ref: el => (this.nativeEl = el), class: `sd-textarea__native ${this.textareaClass}`, value: this.internalValue || '', placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readOnly: this.readonly, autofocus: this.autoFocus, maxLength: this.maxLength, rows: this.rows, spellcheck: this.spellcheck, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.textareaStyle }))));
1234
1234
  }
1235
1235
  static get watchers() { return {
1236
1236
  "value": [{
@@ -265,7 +265,7 @@ const SdDateRangePickerCalendar = class {
265
265
  '--range-panel-gap': `${RANGE_LAYOUT.panelGap}px`,
266
266
  '--range-divider': RANGE_LAYOUT.divider,
267
267
  };
268
- return (h(Fragment, { key: '71f25effececd0b83d9b33201230dc615ba87a30' }, h("div", { key: 'f075474fb0be9f8e8562a013532b3cdbaadee069', class: "sd-date-range-picker-calendar", style: cssVars }, this.renderYearNav(), h("div", { key: '4dfa1d65b971f7d80f0799482c8ce41522200a94', class: "sd-date-range-picker-calendar__panels" }, this.renderPanel(this.currentYear, this.currentMonth, true), h("span", { key: '20149f97a5115115cc49894383ca7f989ba2b904', class: "sd-date-range-picker-calendar__divider", "aria-hidden": "true" }), this.renderPanel(this.rightYear, this.rightMonth, false)))));
268
+ return (h(Fragment, { key: 'd46df258093b5c57d1b958efb7e52cabd4cb1eb4' }, h("div", { key: '04fc01524115d9b57462ad1eaf9281fe1c63dd84', class: "sd-date-range-picker-calendar", style: cssVars }, this.renderYearNav(), h("div", { key: '91428a1dd98b7a9c534b28a9cd683f35935dfee2', class: "sd-date-range-picker-calendar__panels" }, this.renderPanel(this.currentYear, this.currentMonth, true), h("span", { key: '26d4f7e3391c50340e0f45f018b02d11ad7bd23b', class: "sd-date-range-picker-calendar__divider", "aria-hidden": "true" }), this.renderPanel(this.rightYear, this.rightMonth, false)))));
269
269
  }
270
270
  static get watchers() { return {
271
271
  "value": [{
@@ -17,7 +17,7 @@ const SdDivider = class {
17
17
  const hostStyle = {
18
18
  '--sd-divider-color': DIVIDER_COLORS.default,
19
19
  };
20
- return (h(Host, { key: '886ca68599a925678d7c598daeff3bf653db513d', style: hostStyle }, h("hr", { key: 'e213413f041cda5d18a74f8c0225c840d92f7dac', "aria-orientation": this.vertical ? 'vertical' : 'horizontal' })));
20
+ return (h(Host, { key: 'd7adb8181071f7e6b1c2238c5512c332a0c9bafb', style: hostStyle }, h("hr", { key: '8d376fce5cced248a573ffb189931ce613ef79b7', "aria-orientation": this.vertical ? 'vertical' : 'horizontal' })));
21
21
  }
22
22
  };
23
23
  SdDivider.style = sdDividerCss();
@@ -214,21 +214,21 @@ const SdField = class {
214
214
  : {}),
215
215
  }
216
216
  : {};
217
- return (h("div", { key: '9edafceb24a4fcde7cfb966f421bfb73f1b07617', class: {
217
+ return (h("div", { key: '76a1a2f41cafb2a665415f4e6e7bd9561aacb57f', class: {
218
218
  'sd-field': true,
219
219
  'sd-field--has-label': this.label !== '',
220
220
  'sd-field--has-addon': addon !== '',
221
221
  [this.fieldStatus]: this.fieldStatus !== '',
222
- }, style: { ...sizeCssVars, ...labelCssVars, ...addonCssVars, ...messageCssVars } }, h("div", { key: 'e5c4a8aad05afb40f3eccc492135b2b968ffc646', class: "sd-field__wrapper" }, this.renderLabel(this.label), h("div", { key: 'e88d62a979eaab9f6794c851813e5f56c3c5c4ac', class: "sd-field__main", style: this.width !== '' && this.width !== 0
222
+ }, style: { ...sizeCssVars, ...labelCssVars, ...addonCssVars, ...messageCssVars } }, h("div", { key: 'b4219a5e3e80ead00b0cb67d6c5c8a1b25e59f57', class: "sd-field__wrapper" }, this.renderLabel(this.label), h("div", { key: '91dd10be9bf9fe70615d6f4f0ee00601cab5ee4a', class: "sd-field__main", style: this.width !== '' && this.width !== 0
223
223
  ? {
224
224
  width: typeof this.width === 'number' ? `${this.width}px` : this.width,
225
225
  flex: 'none',
226
226
  }
227
- : {} }, h("div", { key: 'be69d7e48d90dda0872ffc43c2a1b4044e99ac00', class: {
227
+ : {} }, h("div", { key: 'd15df53ff3d76ab9f9bd5e6ffe55f98b53c1211a', class: {
228
228
  'sd-field__control': true,
229
229
  'sd-field__control--has-addon': addon !== '',
230
- } }, addon && (h("div", { key: '2c631ac0f8b9001cf6344908cf8cbcdf182cc1a7', class: "sd-field__addon" }, this.icon && (h("sd-icon", { key: '34a49839ee200cd59c3ff5b84caf5ded2c50f7b0', name: this.icon.name, size: this.icon.size ??
231
- Number(FIELD_LABEL_SIZE_MAP[(this.size in FIELD_LABEL_SIZE_MAP ? this.size : 'sm')].icon), color: this.icon.color, rotate: this.icon.rotate })), addon)), h("slot", { key: '693f20c529e5f2ea84d381e59327392edb7b4c15' })), this.errorMsg !== '' || this.errorMessage !== '' ? (h("div", { class: "sd-field__error-message" }, this.errorMsg !== '' ? this.errorMsg : this.errorMessage)) : (this.hint !== '' && h("div", { class: "sd-field__hint" }, this.hint))))));
230
+ } }, addon && (h("div", { key: 'fa65e5f352e20ae9f533bdf93d95b2d2f3ec4d7b', class: "sd-field__addon" }, this.icon && (h("sd-icon", { key: '5c6d67ca4a72191622d14727567b8bca0975dcee', name: this.icon.name, size: this.icon.size ??
231
+ Number(FIELD_LABEL_SIZE_MAP[(this.size in FIELD_LABEL_SIZE_MAP ? this.size : 'sm')].icon), color: this.icon.color, rotate: this.icon.rotate })), addon)), h("slot", { key: 'c4f4e9392b3e6df8bba7a0f9e39bb3847ccf5931' })), this.errorMsg !== '' || this.errorMessage !== '' ? (h("div", { class: "sd-field__error-message" }, this.errorMsg !== '' ? this.errorMsg : this.errorMessage)) : (this.hint !== '' && h("div", { class: "sd-field__hint" }, this.hint))))));
232
232
  }
233
233
  renderLabel(label) {
234
234
  if (label == null || label === '')
@@ -398,7 +398,7 @@ const SdFloatingPopover = class {
398
398
  }
399
399
  }
400
400
  render() {
401
- return h("slot", { key: 'f20806555ad198c33a62ec938ea7b77200fa1585' });
401
+ return h("slot", { key: '77829bed54180a72d233738d1f82d9996ae29cae' });
402
402
  }
403
403
  };
404
404
  SdFloatingPopover.style = sdFloatingPortalCss();
@@ -560,7 +560,7 @@ const SdTooltip = class {
560
560
  const bodyHTML = this.message && this.message.length > 0
561
561
  ? this.message.map(line => `<div>${line}</div>`).join('')
562
562
  : this.slotContentHTML;
563
- return (h(Fragment, { key: 'c0d000057ed61fe7b6b4d92bc0df5e0c6d42d714' }, h("div", { key: '4ae084008ddec50e912fa81efbe3adbe0428d7ea', ref: el => (this.triggerEl = el), class: triggerClasses, ...divTrigger }, anchorMode ? (h("slot", { name: "anchor" })) : hasLabel ? (h("sd-button", { ref: el => (this.buttonEl = el), name: this.name ?? 'primary_sm', label: this.label, icon: icon, rightIcon: this.rightIcon, ariaLabel: this.ariaLabel, disabled: this.disabled, type: this.type ?? 'button', class: "sd-tooltip", ...buttonClickTrigger })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: icon, size: this.iconSize ?? 12, color: color, class: "sd-tooltip" }))), this.showTooltip && (h("sd-floating-portal", { key: 'd5a8718b4e4556b989e5439b89296a259d99c636', parentRef: anchorMode ? this.triggerEl : this.buttonEl, onSdClose: this.handleClose, placement: placement, offset: this.tooltipOffset }, h("div", { key: 'e81f2704ddbc90a19c1e8dd0c4660c4b057ca895', ref: el => (this.menuEl = el), class: {
563
+ return (h(Fragment, { key: 'da2904e5cc41627283ff383366548453ef892dbc' }, h("div", { key: 'e94184fa6a51524f0dc5d3ba0610a3fa63663b4f', ref: el => (this.triggerEl = el), class: triggerClasses, ...divTrigger }, anchorMode ? (h("slot", { name: "anchor" })) : hasLabel ? (h("sd-button", { ref: el => (this.buttonEl = el), name: this.name ?? 'primary_sm', label: this.label, icon: icon, rightIcon: this.rightIcon, ariaLabel: this.ariaLabel, disabled: this.disabled, type: this.type ?? 'button', class: "sd-tooltip", ...buttonClickTrigger })) : (h("sd-icon", { ref: el => (this.buttonEl = el), name: icon, size: this.iconSize ?? 12, color: color, class: "sd-tooltip" }))), this.showTooltip && (h("sd-floating-portal", { key: '52b86274d938e67a89018839812b4d26108f0921', parentRef: anchorMode ? this.triggerEl : this.buttonEl, onSdClose: this.handleClose, placement: placement, offset: this.tooltipOffset }, h("div", { key: '177149d153ca4659a1dc4b71cd9d98cf36e19cd9', ref: el => (this.menuEl = el), class: {
564
564
  'sd-floating-menu': true,
565
565
  [`sd-floating-menu--${tooltipType}`]: true,
566
566
  [`sd-floating-menu--${placement}`]: true,
@@ -568,7 +568,7 @@ const SdTooltip = class {
568
568
  }, style: {
569
569
  '--sd-floating-bg': typeConfig.bg,
570
570
  '--sd-floating-content': typeConfig.content,
571
- }, onMouseEnter: () => this.openTooltip(), onMouseLeave: () => !this.useClose && this.startHideTimer() }, h("i", { key: '735cfb9956644542afb3b9f65aea127c37d756b2', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, h(TooltipArrow, { key: '53bac0c98b652b580b53b206d3da77deac0eea77' })), h("div", { key: '50c55e606002225363364ca6b5238a55a25374ba', class: "sd-floating-menu__content", innerHTML: bodyHTML }), this.useClose && (h("sd-ghost-button", { key: '7ab15f030aef1ecda2a3be0c08af2c7ab4992f1c', class: "sd-floating-menu__close-button", icon: "close", ariaLabel: "close", size: "xxs", onClick: () => this.closeTooltip() })))))));
571
+ }, onMouseEnter: () => this.openTooltip(), onMouseLeave: () => !this.useClose && this.startHideTimer() }, h("i", { key: '6412bc25156af7a4bc276bc29f46458df7ac123b', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, h(TooltipArrow, { key: 'af6b98e12d0ce7816b9888614d7f70e93c9accd6' })), h("div", { key: '4b3bdb5eda8a67374a68e2ef3dbc51d630720c08', class: "sd-floating-menu__content", innerHTML: bodyHTML }), this.useClose && (h("sd-ghost-button", { key: '2bbe32da05ec4e84dba7b00d12826d9fb2492dfe', class: "sd-floating-menu__close-button", icon: "close", ariaLabel: "close", size: "xxs", onClick: () => this.closeTooltip() })))))));
572
572
  }
573
573
  };
574
574
  SdTooltip.style = sdTooltipCss();
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-CAxodB5I.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-CAxodB5I.js';
2
2
 
3
3
  const ghostButton = {
4
4
  xxs: {
@@ -112,7 +112,7 @@ const GHOST_BUTTON_DISABLED_COLORS = {
112
112
  inverse: ghostButtonTokens.ghostButton.inverse.disabled,
113
113
  };
114
114
 
115
- const sdGhostButtonCss = () => `sd-ghost-button{display:inline-flex;width:fit-content;height:fit-content}.sd-ghost-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--sd-ghost-button-size);height:var(--sd-ghost-button-size);padding:0;border:none;border-radius:var(--sd-ghost-button-radius);background:transparent;cursor:pointer;box-sizing:border-box;transition:box-shadow 0.2s ease;-webkit-user-select:none;user-select:none}.sd-ghost-button::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--sd-ghost-button-hover-bg);opacity:0;transition:opacity 0.2s ease;pointer-events:none}.sd-ghost-button:hover:not(.sd-ghost-button--disabled)::before{opacity:var(--sd-ghost-button-hover-opacity)}.sd-ghost-button:focus-visible{outline:0;box-shadow:0 0 0 2px var(--sd-ghost-button-accent)}.sd-ghost-button--disabled{cursor:not-allowed}.sd-ghost-button__tooltip{position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%) translateY(4px);z-index:1;display:inline-flex;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease}.sd-ghost-button--with-tooltip:hover:not(.sd-ghost-button--disabled) .sd-ghost-button__tooltip,.sd-ghost-button--with-tooltip:focus-visible:not(.sd-ghost-button--disabled) .sd-ghost-button__tooltip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}`;
115
+ const sdGhostButtonCss = () => `sd-ghost-button{display:inline-flex;width:fit-content;height:fit-content}.sd-ghost-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--sd-ghost-button-size);height:var(--sd-ghost-button-size);padding:0;border:none;border-radius:var(--sd-ghost-button-radius);background:transparent;cursor:pointer;box-sizing:border-box;transition:box-shadow 0.2s ease;-webkit-user-select:none;user-select:none}.sd-ghost-button::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--sd-ghost-button-hover-bg);opacity:0;transition:opacity 0.2s ease;pointer-events:none}.sd-ghost-button:hover:not(.sd-ghost-button--disabled)::before{opacity:var(--sd-ghost-button-hover-opacity)}.sd-ghost-button:focus-visible{outline:0;box-shadow:0 0 0 2px var(--sd-ghost-button-accent)}.sd-ghost-button--disabled{cursor:not-allowed}.sd-ghost-button__tooltip-inner{display:inline-flex;white-space:nowrap;transform:translateX(-50%)}`;
116
116
 
117
117
  const SdGhostButton = class {
118
118
  constructor(hostRef) {
@@ -123,15 +123,16 @@ const SdGhostButton = class {
123
123
  size = 'sm';
124
124
  intent = 'default';
125
125
  ariaLabel = '';
126
- tooltipLabel = '';
126
+ tooltipText;
127
127
  disabled = false;
128
+ get hostEl() { return getElement(this); }
129
+ isTooltipOpen = false;
128
130
  click;
129
131
  hasWarnedMissingAriaLabel = false;
130
132
  componentWillLoad() {
131
133
  this.size ??= 'sm';
132
134
  this.intent ??= 'default';
133
135
  this.ariaLabel ??= '';
134
- this.tooltipLabel ??= '';
135
136
  }
136
137
  handleClick = (event) => {
137
138
  if (this.disabled) {
@@ -140,6 +141,10 @@ const SdGhostButton = class {
140
141
  }
141
142
  this.click.emit(event);
142
143
  };
144
+ handleMouseEnter = () => { this.isTooltipOpen = true; };
145
+ handleMouseLeave = () => { this.isTooltipOpen = false; };
146
+ handleFocus = () => { this.isTooltipOpen = true; };
147
+ handleBlur = () => { this.isTooltipOpen = false; };
143
148
  componentWillRender() {
144
149
  this.warnIfMissingAriaLabel();
145
150
  }
@@ -162,23 +167,271 @@ const SdGhostButton = class {
162
167
  ? GHOST_BUTTON_DISABLED_COLORS[intent]
163
168
  : GHOST_BUTTON_CONTENT_COLORS[intent];
164
169
  const accessibleName = (this.ariaLabel ?? '').trim() || undefined;
165
- const tooltipLabel = (this.tooltipLabel ?? '').trim();
166
- const hasTooltip = tooltipLabel.length > 0;
167
- return (h("button", { key: 'fafdeaa60205f0190cc592ac8fdacbf140e28d6c', class: {
170
+ const tooltipText = (this.tooltipText ?? '').trim();
171
+ const hasTooltip = tooltipText.length > 0;
172
+ return (h("button", { key: '59b95275f6acd737d4b0d5c2187e1d40b3a6543f', class: {
168
173
  'sd-ghost-button': true,
169
174
  'sd-ghost-button--disabled': this.disabled,
170
- 'sd-ghost-button--with-tooltip': hasTooltip,
171
175
  }, type: "button", disabled: this.disabled, "aria-label": accessibleName, style: {
172
176
  '--sd-ghost-button-size': `${sizeConfig.size}px`,
173
177
  '--sd-ghost-button-radius': `${GHOST_BUTTON_RADIUS[size]}px`,
174
178
  '--sd-ghost-button-hover-bg': GHOST_BUTTON_HOVER_BG_COLORS[intent],
175
179
  '--sd-ghost-button-hover-opacity': GHOST_BUTTON_HOVER_OPACITY,
176
180
  '--sd-ghost-button-accent': GHOST_BUTTON_FOCUS_RING_COLOR,
177
- }, onClick: this.handleClick }, hasTooltip && (h("span", { key: '57425145ccc76a0bf960377cb13ba06e37195fa3', class: "sd-ghost-button__tooltip", "aria-hidden": "true" }, h("sd-tag", { key: '9d097c96d701431ac92aa7fb305c418bb570bc16', name: "square_xs_grey", label: tooltipLabel }))), h("sd-icon", { key: '4b186b2fd33c70f4b47a2c736a53e1ac37bc2ebc', name: this.icon, size: sizeConfig.icon, color: contentColor })));
181
+ }, onClick: this.handleClick, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, onFocus: this.handleFocus, onBlur: this.handleBlur }, hasTooltip && this.isTooltipOpen && !this.disabled && (h("sd-portal", { key: 'd8ca94b6a931208c2c56eb2dbfee843935c6b666', parentRef: this.hostEl, open: true, offset: [sizeConfig.size / 2, 4], placement: "top" }, h("div", { key: '450d5dc528ad4eeb4a2a0d2920fe4553ab3f91f8', class: "sd-ghost-button__tooltip-inner", "aria-hidden": "true" }, h("sd-tag", { key: 'cc25d0e2794d3d4dc418b0c0aa1a57e4b76b56e1', name: "square_xs_grey", label: tooltipText })))), h("sd-icon", { key: 'bf9bf8bcc779011635fd34566ec7320d76f8d16b', name: this.icon, size: sizeConfig.icon, color: contentColor })));
178
182
  }
179
183
  };
180
184
  SdGhostButton.style = sdGhostButtonCss();
181
185
 
186
+ const SdPortal = class {
187
+ constructor(hostRef) {
188
+ registerInstance(this, hostRef);
189
+ this.close = createEvent(this, "sdClose", 3);
190
+ }
191
+ get hostEl() { return getElement(this); }
192
+ to = 'body';
193
+ parentRef = null;
194
+ offset = [0, 4];
195
+ viewportPadding = 0;
196
+ zIndex = 998;
197
+ open = false;
198
+ placement = 'bottom';
199
+ close;
200
+ container;
201
+ wrapper;
202
+ rafId;
203
+ isInsideClick = false;
204
+ closeTransitionTimer;
205
+ handleObservedScroll = () => this.updatePosition();
206
+ resizeObserver;
207
+ mutationObserver;
208
+ scrollParents = [];
209
+ isObserved = false;
210
+ handleOpenChange() {
211
+ this.syncPortalState();
212
+ }
213
+ componentDidLoad() {
214
+ this.container = this.resolveContainer();
215
+ this.syncPortalState();
216
+ }
217
+ componentDidRender() {
218
+ this.syncPortalState();
219
+ }
220
+ disconnectedCallback() {
221
+ if (this.closeTransitionTimer)
222
+ clearTimeout(this.closeTransitionTimer);
223
+ this.unobserveParent();
224
+ if (this.wrapper?.parentNode) {
225
+ try {
226
+ this.wrapper.parentNode.removeChild(this.wrapper);
227
+ }
228
+ catch {
229
+ // Stencil spec mock DOM can already detach the wrapper before this callback runs.
230
+ }
231
+ }
232
+ }
233
+ resolveContainer() {
234
+ const el = typeof this.to === 'string' ? document.querySelector(this.to) : this.to;
235
+ return el instanceof HTMLElement ? el : document.body;
236
+ }
237
+ createWrapper() {
238
+ this.wrapper = document.createElement('div');
239
+ Object.assign(this.wrapper.style, {
240
+ position: 'fixed',
241
+ top: '0',
242
+ left: '0',
243
+ zIndex: (this.zIndex ?? 998).toString(),
244
+ opacity: '0',
245
+ transition: 'opacity 0.15s ease-out',
246
+ boxSizing: 'border-box',
247
+ visibility: 'hidden',
248
+ });
249
+ this.container.appendChild(this.wrapper);
250
+ }
251
+ ensureWrapper() {
252
+ if (this.wrapper)
253
+ return;
254
+ this.container ||= this.resolveContainer();
255
+ this.createWrapper();
256
+ this.moveSlotContent();
257
+ }
258
+ syncPortalState() {
259
+ if (!this.open) {
260
+ if (this.wrapper) {
261
+ this.wrapper.style.transition = 'opacity 0.15s ease-out';
262
+ this.wrapper.style.opacity = '0';
263
+ this.wrapper.style.pointerEvents = 'none';
264
+ if (this.closeTransitionTimer)
265
+ clearTimeout(this.closeTransitionTimer);
266
+ this.closeTransitionTimer = setTimeout(() => {
267
+ if (this.wrapper && !this.open) {
268
+ this.wrapper.style.display = 'none';
269
+ }
270
+ }, 150);
271
+ }
272
+ this.unobserveParent();
273
+ return;
274
+ }
275
+ if (this.closeTransitionTimer)
276
+ clearTimeout(this.closeTransitionTimer);
277
+ this.ensureWrapper();
278
+ if (!this.wrapper)
279
+ return;
280
+ this.wrapper.style.display = 'block';
281
+ this.wrapper.style.transition = 'opacity 0.25s ease-out';
282
+ this.wrapper.style.opacity = '0';
283
+ this.wrapper.style.pointerEvents = '';
284
+ this.observeParent();
285
+ this.updatePosition();
286
+ }
287
+ moveSlotContent() {
288
+ if (!this.wrapper)
289
+ return;
290
+ const nodes = Array.from(this.hostEl.childNodes).filter(n => n.nodeType !== Node.COMMENT_NODE);
291
+ nodes.forEach(n => this.wrapper.appendChild(n));
292
+ }
293
+ // 위치 갱신 (scroll / resize)
294
+ updatePosition() {
295
+ if (this.rafId !== undefined)
296
+ cancelAnimationFrame(this.rafId);
297
+ this.rafId = requestAnimationFrame(() => {
298
+ if (!this.parentRef || !this.wrapper)
299
+ return;
300
+ const parentRect = this.parentRef.getBoundingClientRect();
301
+ const viewport = {
302
+ width: window.innerWidth,
303
+ height: window.innerHeight,
304
+ };
305
+ const offset = this.offset ?? [0, 4];
306
+ const viewportPadding = Math.max(0, this.viewportPadding ?? 0);
307
+ const maxWidth = Math.max(viewport.width - viewportPadding * 2, 0);
308
+ const maxHeight = Math.max(viewport.height - viewportPadding * 2, 0);
309
+ this.wrapper.style.maxWidth = `${maxWidth}px`;
310
+ this.wrapper.style.maxHeight = `${maxHeight}px`;
311
+ const wrapperRect = this.wrapper.getBoundingClientRect();
312
+ const availableBelow = viewport.height - parentRect.bottom - offset[1] - viewportPadding;
313
+ const availableAbove = parentRect.top - offset[1] - viewportPadding;
314
+ const preferTop = (this.placement ?? 'bottom') === 'top';
315
+ let top;
316
+ let left = parentRect.left + offset[0];
317
+ if (preferTop) {
318
+ top = parentRect.top - wrapperRect.height - offset[1];
319
+ if (availableAbove < wrapperRect.height && availableBelow > availableAbove) {
320
+ top = parentRect.bottom + offset[1];
321
+ }
322
+ }
323
+ else {
324
+ top = parentRect.bottom + offset[1];
325
+ if (availableBelow < wrapperRect.height && availableAbove > availableBelow) {
326
+ top = parentRect.top - wrapperRect.height - offset[1];
327
+ }
328
+ }
329
+ const minTop = viewportPadding;
330
+ const maxTop = viewport.height - viewportPadding - wrapperRect.height;
331
+ if (maxTop < minTop) {
332
+ top = minTop;
333
+ }
334
+ else {
335
+ top = Math.min(Math.max(top, minTop), maxTop);
336
+ }
337
+ if (parentRect.left + wrapperRect.width + offset[0] > viewport.width - viewportPadding) {
338
+ left = parentRect.right - wrapperRect.width - offset[0];
339
+ }
340
+ const minLeft = viewportPadding;
341
+ const maxLeft = viewport.width - viewportPadding - wrapperRect.width;
342
+ if (maxLeft < minLeft) {
343
+ left = minLeft;
344
+ }
345
+ else {
346
+ left = Math.min(Math.max(left, minLeft), maxLeft);
347
+ }
348
+ this.wrapper.style.top = `${top}px`;
349
+ this.wrapper.style.left = `${left}px`;
350
+ this.wrapper.style.visibility = 'visible';
351
+ this.wrapper.style.opacity = '1';
352
+ });
353
+ }
354
+ // parentRef의 이동 / 크기변경 감지
355
+ observeParent() {
356
+ if (!this.parentRef || this.isObserved)
357
+ return;
358
+ this.observeScrollParents(this.parentRef);
359
+ if (typeof ResizeObserver !== 'undefined') {
360
+ this.resizeObserver = new ResizeObserver(() => this.updatePosition());
361
+ this.resizeObserver.observe(this.parentRef);
362
+ }
363
+ if (typeof MutationObserver !== 'undefined') {
364
+ this.mutationObserver = new MutationObserver(() => this.updatePosition());
365
+ this.mutationObserver.observe(document.body, {
366
+ childList: true,
367
+ subtree: true,
368
+ });
369
+ }
370
+ this.isObserved = true;
371
+ }
372
+ unobserveParent() {
373
+ if (!this.isObserved)
374
+ return;
375
+ this.unobserveScrollParents();
376
+ this.resizeObserver?.disconnect();
377
+ this.resizeObserver = undefined;
378
+ this.mutationObserver?.disconnect();
379
+ this.mutationObserver = undefined;
380
+ this.isObserved = false;
381
+ }
382
+ observeScrollParents(element) {
383
+ const nextScrollParents = this.getScrollParents(element);
384
+ nextScrollParents.forEach(parent => {
385
+ parent.addEventListener('scroll', this.handleObservedScroll, { passive: true });
386
+ });
387
+ this.scrollParents = nextScrollParents;
388
+ }
389
+ unobserveScrollParents() {
390
+ this.scrollParents.forEach(parent => {
391
+ parent.removeEventListener('scroll', this.handleObservedScroll);
392
+ });
393
+ this.scrollParents = [];
394
+ }
395
+ getScrollParents(element) {
396
+ const scrollParents = [];
397
+ let currentElement = element.parentElement;
398
+ while (currentElement) {
399
+ const { overflow, overflowX, overflowY } = getComputedStyle(currentElement);
400
+ const isScrollable = [overflow, overflowX, overflowY].some(value => /(auto|scroll|overlay)/.test(value));
401
+ if (isScrollable) {
402
+ scrollParents.push(currentElement);
403
+ }
404
+ currentElement = currentElement.parentElement;
405
+ }
406
+ return scrollParents;
407
+ }
408
+ isInsideTarget(target) {
409
+ return !!((this.wrapper?.contains(target)) ||
410
+ (this.parentRef?.contains(target)));
411
+ }
412
+ // 외부 클릭 감지
413
+ handleMouseDown(e) {
414
+ this.isInsideClick = this.isInsideTarget(e.target);
415
+ }
416
+ handleWindowClick(e) {
417
+ if (this.isInsideClick) {
418
+ this.isInsideClick = false;
419
+ return;
420
+ }
421
+ if (this.isInsideTarget(e.target))
422
+ return;
423
+ this.close.emit();
424
+ }
425
+ render() {
426
+ return h("slot", { key: '911d01b26a26a4bb4d7c4a15b51755acb9615c3a' });
427
+ }
428
+ static get watchers() { return {
429
+ "open": [{
430
+ "handleOpenChange": 0
431
+ }]
432
+ }; }
433
+ };
434
+
182
435
  const tag = {
183
436
  xs: {
184
437
  height: "20",
@@ -386,7 +639,7 @@ const SdTag = class {
386
639
  render() {
387
640
  const config = this.resolvedConfig;
388
641
  const iconNode = this.renderIcon(config.icon, config.iconSize);
389
- return (h("span", { key: 'b4d86dee7290a74d73fd27a9a4133c5c0ef9b750', class: "sd-tag", style: {
642
+ return (h("span", { key: '3117d8d5f3d9751dc193e426dbab7e0ead9fb369', class: "sd-tag", style: {
390
643
  '--sd-tag-background': config.background,
391
644
  '--sd-tag-content': config.content,
392
645
  '--sd-tag-height': config.height,
@@ -396,9 +649,9 @@ const SdTag = class {
396
649
  '--sd-tag-font-weight': config.fontWeight,
397
650
  '--sd-tag-line-height': config.lineHeight,
398
651
  '--sd-tag-radius': config.radius,
399
- }, "aria-label": this.label || 'tag' }, this.icon && this.isLeft && iconNode, h("span", { key: '490c703ca9ce3d0516b1da89fec18045a750d715', class: "sd-tag__label" }, this.label), this.icon && !this.isLeft && iconNode));
652
+ }, "aria-label": this.label || 'tag' }, this.icon && this.isLeft && iconNode, h("span", { key: '8c299f140dc5bd026ed52d3f0921939bbf69fdd5', class: "sd-tag__label" }, this.label), this.icon && !this.isLeft && iconNode));
400
653
  }
401
654
  };
402
655
  SdTag.style = sdTagCss();
403
656
 
404
- export { SdGhostButton as sd_ghost_button, SdTag as sd_tag };
657
+ export { SdGhostButton as sd_ghost_button, SdPortal as sd_portal, SdTag as sd_tag };
@@ -37,7 +37,7 @@ const KEY_VALUE_TABLE_TYPOGRAPHY = {
37
37
  tdLineHeight: Number(t.body.typography.lineHeight),
38
38
  };
39
39
 
40
- const sdKeyValueTableCss = () => `sd-key-value-table{display:block}sd-key-value-table .sd-key-value-table__wrapper{display:flex;align-items:stretch;width:100%;border:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color);border-radius:var(--sd-kvt-radius);overflow:hidden}sd-key-value-table .sd-key-value-table__wrapper .sd-key-value-table{flex:1 1 auto;border:0;border-radius:0}sd-key-value-table .sd-key-value-table__wrapper.sd-key-value-table__wrapper--radius-usetop{border-top-left-radius:0;border-top-right-radius:0}sd-key-value-table .sd-key-value-table__wrapper.sd-key-value-table__wrapper--radius-full{border-radius:0}sd-key-value-table .sd-key-value-table__search-panel{display:flex;align-items:center;justify-content:center;flex:0 0 auto;padding:var(--sd-kvt-padding) var(--sd-kvt-search-padding-x);background:var(--sd-kvt-search-bg);border-left:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color)}sd-key-value-table .sd-key-value-table{width:100%;table-layout:fixed;border:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color);border-radius:var(--sd-kvt-radius);border-collapse:separate;border-spacing:0;overflow:hidden}sd-key-value-table .sd-key-value-table.sd-key-value-table--radius-usetop{border-top-left-radius:0;border-top-right-radius:0}sd-key-value-table .sd-key-value-table.sd-key-value-table--radius-full{border-radius:0}sd-key-value-table .sd-key-value-table__th,sd-key-value-table .sd-key-value-table__td{height:var(--sd-kvt-row-height);box-sizing:border-box;vertical-align:middle;text-align:left;font-weight:normal;border-top:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color)}sd-key-value-table .sd-key-value-table tbody>tr:first-child>.sd-key-value-table__th,sd-key-value-table .sd-key-value-table tbody>tr:first-child>.sd-key-value-table__td{border-top:0}sd-key-value-table .sd-key-value-table__th{padding:var(--sd-kvt-padding) var(--sd-kvt-th-padding-x);width:var(--sd-kvt-th-width);background:var(--sd-kvt-th-bg);color:var(--sd-kvt-th-color)}sd-key-value-table .sd-key-value-table__th-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sd-kvt-gap);width:100%;height:100%}sd-key-value-table .sd-key-value-table__label{display:inline-flex;align-items:center;gap:var(--sd-kvt-label-gap);font-family:var(--sd-kvt-label-font-family);font-size:var(--sd-kvt-label-font-size);font-weight:var(--sd-kvt-label-font-weight);line-height:var(--sd-kvt-label-line-height);color:var(--sd-kvt-th-color)}sd-key-value-table .sd-key-value-table__required{display:inline-flex;align-items:center;flex-shrink:0}sd-key-value-table .sd-key-value-table__help{display:inline-flex;align-items:center;flex-shrink:0}sd-key-value-table .sd-key-value-table__td{padding:var(--sd-kvt-padding);background:var(--sd-kvt-td-bg);color:var(--sd-kvt-td-color)}sd-key-value-table .sd-key-value-table__td-inner{display:flex;align-items:center;width:100%;height:100%}sd-key-value-table .sd-key-value-table__td-inner>slot{display:block;flex:1 1 auto;min-width:0}sd-key-value-table .sd-key-value-table__td-inner sd-input,sd-key-value-table .sd-key-value-table__td-inner sd-textarea,sd-key-value-table .sd-key-value-table__td-inner sd-number-input,sd-key-value-table .sd-key-value-table__td-inner sd-select,sd-key-value-table .sd-key-value-table__td-inner sd-date-picker,sd-key-value-table .sd-key-value-table__td-inner sd-date-range-picker,sd-key-value-table .sd-key-value-table__td-inner sd-file-picker{width:100%}sd-key-value-table .sd-key-value-table__text{font-family:var(--sd-kvt-td-font-family);font-size:var(--sd-kvt-td-font-size);font-weight:var(--sd-kvt-td-font-weight);line-height:var(--sd-kvt-td-line-height);color:var(--sd-kvt-td-color)}`;
40
+ const sdKeyValueTableCss = () => `sd-key-value-table{display:block}sd-key-value-table .sd-key-value-table__wrapper{display:flex;align-items:stretch;width:100%;border:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color);border-radius:var(--sd-kvt-radius);overflow:hidden}sd-key-value-table .sd-key-value-table__wrapper .sd-key-value-table{flex:1 1 auto;border:0;border-radius:0}sd-key-value-table .sd-key-value-table__wrapper.sd-key-value-table__wrapper--radius-useTop{border-top-left-radius:0;border-top-right-radius:0}sd-key-value-table .sd-key-value-table__wrapper.sd-key-value-table__wrapper--radius-full{border-radius:0}sd-key-value-table .sd-key-value-table__search-panel{display:flex;align-items:center;justify-content:center;flex:0 0 auto;padding:var(--sd-kvt-padding) var(--sd-kvt-search-padding-x);background:var(--sd-kvt-search-bg);border-left:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color)}sd-key-value-table .sd-key-value-table{width:100%;table-layout:fixed;border:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color);border-radius:var(--sd-kvt-radius);border-collapse:separate;border-spacing:0;overflow:hidden}sd-key-value-table .sd-key-value-table.sd-key-value-table--radius-useTop{border-top-left-radius:0;border-top-right-radius:0}sd-key-value-table .sd-key-value-table.sd-key-value-table--radius-full{border-radius:0}sd-key-value-table .sd-key-value-table__th,sd-key-value-table .sd-key-value-table__td{height:var(--sd-kvt-row-height);box-sizing:border-box;vertical-align:middle;text-align:left;font-weight:normal;border-top:var(--sd-kvt-border-width) solid var(--sd-kvt-border-color)}sd-key-value-table .sd-key-value-table tbody>tr:first-child>.sd-key-value-table__th,sd-key-value-table .sd-key-value-table tbody>tr:first-child>.sd-key-value-table__td{border-top:0}sd-key-value-table .sd-key-value-table__th{padding:var(--sd-kvt-padding) var(--sd-kvt-th-padding-x);width:var(--sd-kvt-th-width);background:var(--sd-kvt-th-bg);color:var(--sd-kvt-th-color)}sd-key-value-table .sd-key-value-table__th-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sd-kvt-gap);width:100%;height:100%}sd-key-value-table .sd-key-value-table__label{display:inline-flex;align-items:center;gap:var(--sd-kvt-label-gap);font-family:var(--sd-kvt-label-font-family);font-size:var(--sd-kvt-label-font-size);font-weight:var(--sd-kvt-label-font-weight);line-height:var(--sd-kvt-label-line-height);color:var(--sd-kvt-th-color)}sd-key-value-table .sd-key-value-table__required{display:inline-flex;align-items:center;flex-shrink:0}sd-key-value-table .sd-key-value-table__help{display:inline-flex;align-items:center;flex-shrink:0}sd-key-value-table .sd-key-value-table__td{padding:var(--sd-kvt-padding);background:var(--sd-kvt-td-bg);color:var(--sd-kvt-td-color)}sd-key-value-table .sd-key-value-table__td-inner{display:flex;align-items:center;width:100%;height:100%}sd-key-value-table .sd-key-value-table__td-inner>slot{display:block;flex:1 1 auto;min-width:0}sd-key-value-table .sd-key-value-table__td-inner sd-input,sd-key-value-table .sd-key-value-table__td-inner sd-textarea,sd-key-value-table .sd-key-value-table__td-inner sd-number-input,sd-key-value-table .sd-key-value-table__td-inner sd-select,sd-key-value-table .sd-key-value-table__td-inner sd-date-picker,sd-key-value-table .sd-key-value-table__td-inner sd-date-range-picker,sd-key-value-table .sd-key-value-table__td-inner sd-file-picker{width:100%}sd-key-value-table .sd-key-value-table__text{font-family:var(--sd-kvt-td-font-family);font-size:var(--sd-kvt-td-font-size);font-weight:var(--sd-kvt-td-font-weight);line-height:var(--sd-kvt-td-line-height);color:var(--sd-kvt-td-color)}`;
41
41
 
42
42
  const SdKeyValueTable = class {
43
43
  constructor(hostRef) {
@@ -57,7 +57,7 @@ const SdKeyValueTable = class {
57
57
  /**
58
58
  * 테이블 border-radius 제어.
59
59
  * - 'default': 전체 radius 적용
60
- * - 'usetop': 상단 radius 0 (헤더·탭 등 하단에 붙여 쓸 때)
60
+ * - 'useTop': 상단 radius 0 (헤더·탭 등 하단에 붙여 쓸 때)
61
61
  * - 'full': 상하단 모두 radius 0 (요소 사이에 끼워 쓸 때)
62
62
  */
63
63
  radius = 'default';
@@ -235,7 +235,7 @@ const SdKeyValueTable = class {
235
235
  const maxCols = this.computeMaxCols(autoSkip);
236
236
  const tableEl = (h("table", { class: {
237
237
  'sd-key-value-table': true,
238
- 'sd-key-value-table--radius-usetop': this.radius === 'usetop',
238
+ 'sd-key-value-table--radius-useTop': this.radius === 'useTop',
239
239
  'sd-key-value-table--radius-full': this.radius === 'full',
240
240
  }, style: cssVars }, h("colgroup", null, Array.from({ length: maxCols }, (_, i) => {
241
241
  if (i % 2 !== 0)
@@ -260,7 +260,7 @@ const SdKeyValueTable = class {
260
260
  return tableEl;
261
261
  return (h("div", { class: {
262
262
  'sd-key-value-table__wrapper': true,
263
- 'sd-key-value-table__wrapper--radius-usetop': this.radius === 'usetop',
263
+ 'sd-key-value-table__wrapper--radius-useTop': this.radius === 'useTop',
264
264
  'sd-key-value-table__wrapper--radius-full': this.radius === 'full',
265
265
  }, style: cssVars }, tableEl, h("div", { class: "sd-key-value-table__search-panel" }, h("sd-button", { label: "\uAC80\uC0C9", name: "neutral_outline_md", onSdClick: this.handleSearchClick }))));
266
266
  }
@@ -47,7 +47,7 @@ const SdLinearProgress = class {
47
47
  clipPath: `inset(0 ${100 - this.clampedValue}% 0 0)`,
48
48
  };
49
49
  const valueText = `${Math.round(this.clampedValue)}%`;
50
- return (h(Host, { key: '26b1e15732e289a9a37a6d3dbea24aec1ab60ffd', style: hostStyle }, h("div", { key: '5162d60390656286b56f6a96fd4b3932f399412a', class: 'sd-linear-progress__track' }, h("div", { key: 'a46b815f935b243e4b7f8988af65167e3f87b554', class: 'sd-linear-progress__fill', style: fillStyle }), !this.indeterminate && (h("span", { key: 'bc91914addd5addb84c7684a1f862033950905fc', class: 'sd-linear-progress__value sd-linear-progress__value--on-track' }, valueText)), !this.indeterminate && (h("span", { key: 'c62cdc59464823286ff42fc7e97a7a255a2beeb4', class: 'sd-linear-progress__value sd-linear-progress__value--on-fill', style: valueOnFillStyle }, valueText))), this.label && h("span", { key: '4c7c280885c8411329f99c3fe04f5ede8b1f0708', class: 'sd-linear-progress__label' }, this.label)));
50
+ return (h(Host, { key: '1e6aa9c81d3e9516a2f986d3f209df005de38f48', style: hostStyle }, h("div", { key: '06115d6245603c7ae54d892a23074f34db203592', class: 'sd-linear-progress__track' }, h("div", { key: '353549cb3c885cef86f114830599f375bfad8e50', class: 'sd-linear-progress__fill', style: fillStyle }), !this.indeterminate && (h("span", { key: '61afec063cd8f6ccaca27217fe7b599926245192', class: 'sd-linear-progress__value sd-linear-progress__value--on-track' }, valueText)), !this.indeterminate && (h("span", { key: 'fec238b0a6c73e06db3e53c019319a21b62e2836', class: 'sd-linear-progress__value sd-linear-progress__value--on-fill', style: valueOnFillStyle }, valueText))), this.label && h("span", { key: '668f63765b78c1047e3b850f3a17d6b2a1b9bfd4', class: 'sd-linear-progress__label' }, this.label)));
51
51
  }
52
52
  };
53
53
  SdLinearProgress.style = sdLinearProgressCss();