@sellmate/design-system 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/cjs/design-system.cjs.js +1 -1
  2. package/dist/cjs/index.cjs.js +2 -2
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/sanitize-inline-html-BZCCwH_U.js +65 -0
  5. package/dist/cjs/sd-calendar_2.cjs.entry.js +7 -6
  6. package/dist/cjs/sd-callout.cjs.entry.js +152 -0
  7. package/dist/cjs/sd-card.cjs.entry.js +1 -1
  8. package/dist/cjs/sd-checkbox.cjs.entry.js +9 -4
  9. package/dist/cjs/sd-chip.cjs.entry.js +1 -1
  10. package/dist/cjs/sd-circle-progress.cjs.entry.js +2 -2
  11. package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +4 -3
  12. package/dist/cjs/sd-date-picker_7.cjs.entry.js +9 -9
  13. package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +1 -1
  14. package/dist/cjs/sd-dropdown-button.cjs.entry.js +6 -5
  15. package/dist/cjs/sd-field_3.cjs.entry.js +7 -7
  16. package/dist/cjs/sd-guide.cjs.entry.js +5 -4
  17. package/dist/cjs/sd-key-value-table.cjs.entry.js +1 -1
  18. package/dist/cjs/sd-linear-progress.cjs.entry.js +2 -2
  19. package/dist/cjs/sd-loading-container.cjs.entry.js +2 -2
  20. package/dist/cjs/sd-pagination_4.cjs.entry.js +10 -10
  21. package/dist/cjs/sd-popup.cjs.entry.js +6 -5
  22. package/dist/cjs/sd-portal.cjs.entry.js +1 -1
  23. package/dist/cjs/sd-select-list-item_2.cjs.entry.js +6 -6
  24. package/dist/cjs/sd-select_3.cjs.entry.js +8 -8
  25. package/dist/cjs/sd-switch.cjs.entry.js +1 -1
  26. package/dist/cjs/sd-table.cjs.entry.js +19 -16
  27. package/dist/cjs/{sd-table.config-B7psrvV4.js → sd-table.config-DqgNOdXO.js} +1 -1
  28. package/dist/cjs/sd-tabs.cjs.entry.js +1 -1
  29. package/dist/cjs/sd-tag.cjs.entry.js +4 -2
  30. package/dist/cjs/sd-td.cjs.entry.js +1 -1
  31. package/dist/cjs/sd-toast-container.cjs.entry.js +1 -1
  32. package/dist/cjs/sd-toast.cjs.entry.js +2 -2
  33. package/dist/cjs/sd-toggle.cjs.entry.js +1 -1
  34. package/dist/cjs/{system-VmZRYp6V.js → system-wrt-tcOq.js} +12 -1
  35. package/dist/collection/collection-manifest.json +2 -1
  36. package/dist/collection/components/sd-calendar/sd-calendar.css +3 -1
  37. package/dist/collection/components/sd-calendar/sd-calendar.js +24 -3
  38. package/dist/collection/components/sd-callout/sd-callout.config.js +45 -0
  39. package/dist/collection/components/sd-callout/sd-callout.css +87 -0
  40. package/dist/collection/components/sd-callout/sd-callout.js +114 -0
  41. package/dist/collection/components/sd-card/sd-card.js +1 -1
  42. package/dist/collection/components/sd-checkbox/sd-checkbox.js +9 -4
  43. package/dist/collection/components/sd-chip/sd-chip.js +1 -1
  44. package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +1 -1
  45. package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +3 -2
  46. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +2 -2
  47. package/dist/collection/components/sd-date-picker/sd-date-picker.js +2 -2
  48. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +1 -1
  49. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +5 -4
  50. package/dist/collection/components/sd-field/sd-field.js +4 -4
  51. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +1 -1
  52. package/dist/collection/components/sd-guide/sd-guide.js +4 -3
  53. package/dist/collection/components/sd-input/sd-input.js +2 -2
  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 +8 -0
  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.config.js +3 -4
  61. package/dist/collection/components/sd-popup/sd-popup.js +4 -2
  62. package/dist/collection/components/sd-portal/sd-portal.js +1 -1
  63. package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +2 -2
  64. package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +4 -4
  65. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +2 -2
  66. package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +2 -2
  67. package/dist/collection/components/sd-select/sd-select.js +4 -4
  68. package/dist/collection/components/sd-switch/sd-switch.js +1 -1
  69. package/dist/collection/components/sd-table/sd-table.js +17 -14
  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 +4 -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/collection/utils/html/sanitize-inline-html.js +61 -0
  81. package/dist/collection/utils/modal.js +2 -2
  82. package/dist/components/index.js +1 -1
  83. package/dist/components/{p-Da5i_Sa6.js → p-AO2RGdjH.js} +1 -1
  84. package/dist/components/{p-X-8I-A3g.js → p-B3sb3aIX.js} +1 -1
  85. package/dist/components/{p-CIUE4qr7.js → p-BGb86o0p.js} +1 -1
  86. package/dist/components/{p-C3fqSH7A.js → p-BLhu2So8.js} +1 -1
  87. package/dist/components/{p-INdVvadB.js → p-BSQsJHnV.js} +1 -1
  88. package/dist/components/{p-xX3QT-8K.js → p-BZCvsLRf.js} +1 -1
  89. package/dist/components/{p-BFC3Etk2.js → p-BqrZA_Nl.js} +1 -1
  90. package/dist/components/{p-DS7Ypvt5.js → p-C54v30vB.js} +1 -1
  91. package/dist/components/{p-DlREBZ-C.js → p-CJ-QHG0F.js} +1 -1
  92. package/dist/components/{p-kSfaCwf1.js → p-CbXb6ylI.js} +1 -1
  93. package/dist/components/{p-BRxXhFqt.js → p-CgYjGJEh.js} +1 -1
  94. package/dist/components/{p-CLxVZFEG.js → p-Co3H5873.js} +1 -1
  95. package/dist/components/{p-BRk9YZBe.js → p-Cvk-Luhs.js} +1 -1
  96. package/dist/components/{p-BeBiPTbd.js → p-D5inekTL.js} +1 -1
  97. package/dist/components/{p-Bs1Z5QtN.js → p-DChOBMCc.js} +1 -1
  98. package/dist/components/p-DGlmvjGc.js +1 -0
  99. package/dist/components/{p-DwgaMhOM.js → p-DUcbofDO.js} +1 -1
  100. package/dist/components/{p-DykVq5VY.js → p-DZbc1mgp.js} +1 -1
  101. package/dist/components/{p-t161LJqb.js → p-DeK3og10.js} +1 -1
  102. package/dist/components/{p-BjpbUGud.js → p-DmaopssQ.js} +1 -1
  103. package/dist/components/p-DopVneZA.js +1 -0
  104. package/dist/components/p-DrrsZftV.js +1 -0
  105. package/dist/components/{p-CpgTSxf0.js → p-DyZNk1VT.js} +1 -1
  106. package/dist/components/{p-oyZgWRnC.js → p-HK6Bwtz8.js} +1 -1
  107. package/dist/components/{p-Z5Vk33zf.js → p-IThoLpLs.js} +1 -1
  108. package/dist/components/{p-JlZdKw4C.js → p-J3eT660D.js} +1 -1
  109. package/dist/components/p-fpzgqVv1.js +1 -0
  110. package/dist/components/{p-DiP0LJGq.js → p-iCuIUhaK.js} +1 -1
  111. package/dist/components/p-m_OtjUs1.js +1 -0
  112. package/dist/components/{p-BwPmM1Pm.js → p-uHITnW_J.js} +1 -1
  113. package/dist/components/{p-Cx_d5vsS.js → p-yH47DvUh.js} +1 -1
  114. package/dist/components/sd-barcode-input.js +1 -1
  115. package/dist/components/sd-calendar.js +1 -1
  116. package/dist/components/sd-callout.d.ts +11 -0
  117. package/dist/components/sd-callout.js +1 -0
  118. package/dist/components/sd-card.js +1 -1
  119. package/dist/components/sd-checkbox.js +1 -1
  120. package/dist/components/sd-chip.js +1 -1
  121. package/dist/components/sd-circle-progress.js +1 -1
  122. package/dist/components/sd-confirm-modal.js +1 -1
  123. package/dist/components/sd-date-picker-trigger.js +1 -1
  124. package/dist/components/sd-date-picker.js +1 -1
  125. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  126. package/dist/components/sd-date-range-picker.js +1 -1
  127. package/dist/components/sd-dropdown-button.js +1 -1
  128. package/dist/components/sd-field.js +1 -1
  129. package/dist/components/sd-file-picker.js +1 -1
  130. package/dist/components/sd-floating-portal.js +1 -1
  131. package/dist/components/sd-guide.js +1 -1
  132. package/dist/components/sd-input.js +1 -1
  133. package/dist/components/sd-key-value-table.js +1 -1
  134. package/dist/components/sd-linear-progress.js +1 -1
  135. package/dist/components/sd-loading-container.js +1 -1
  136. package/dist/components/sd-loading-modal.js +1 -1
  137. package/dist/components/sd-modal-container.js +1 -1
  138. package/dist/components/sd-number-input.js +1 -1
  139. package/dist/components/sd-pagination.js +1 -1
  140. package/dist/components/sd-popover.js +1 -1
  141. package/dist/components/sd-popup.js +1 -1
  142. package/dist/components/sd-portal.js +1 -1
  143. package/dist/components/sd-select-list-item-search.js +1 -1
  144. package/dist/components/sd-select-list-item.js +1 -1
  145. package/dist/components/sd-select-listbox.js +1 -1
  146. package/dist/components/sd-select-trigger.js +1 -1
  147. package/dist/components/sd-select.js +1 -1
  148. package/dist/components/sd-switch.js +1 -1
  149. package/dist/components/sd-table.js +1 -1
  150. package/dist/components/sd-tabs.js +1 -1
  151. package/dist/components/sd-tag.js +1 -1
  152. package/dist/components/sd-tbody.js +1 -1
  153. package/dist/components/sd-td.js +1 -1
  154. package/dist/components/sd-textarea.js +1 -1
  155. package/dist/components/sd-thead.js +1 -1
  156. package/dist/components/sd-toast-container.js +1 -1
  157. package/dist/components/sd-toast.js +1 -1
  158. package/dist/components/sd-toggle.js +1 -1
  159. package/dist/components/sd-tooltip.js +1 -1
  160. package/dist/components/sd-tr.js +1 -1
  161. package/dist/design-system/design-system.esm.js +1 -1
  162. package/dist/design-system/index.esm.js +1 -1
  163. package/dist/design-system/{p-74bf0ed9.entry.js → p-06a6798d.entry.js} +1 -1
  164. package/dist/design-system/{p-e611dcd4.entry.js → p-0894c492.entry.js} +1 -1
  165. package/dist/design-system/p-14e30f67.entry.js +1 -0
  166. package/dist/design-system/{p-9b9bf9db.entry.js → p-1e530c87.entry.js} +1 -1
  167. package/dist/design-system/{p-84a94775.entry.js → p-2bdceecb.entry.js} +1 -1
  168. package/dist/design-system/{p-a98f9a29.entry.js → p-339cb954.entry.js} +1 -1
  169. package/dist/design-system/{p-a7ea1cf0.entry.js → p-352c68ae.entry.js} +1 -1
  170. package/dist/design-system/p-3d61e68f.entry.js +1 -0
  171. package/dist/design-system/{p-fe3ae346.entry.js → p-3f4a281f.entry.js} +1 -1
  172. package/dist/design-system/p-40bdbe5a.entry.js +1 -0
  173. package/dist/design-system/{p-481e6934.entry.js → p-435ae69e.entry.js} +1 -1
  174. package/dist/design-system/p-4473c051.entry.js +1 -0
  175. package/dist/design-system/p-61f4238b.entry.js +1 -0
  176. package/dist/design-system/p-786c72e9.entry.js +1 -0
  177. package/dist/design-system/{p-d890a680.entry.js → p-78de36f2.entry.js} +1 -1
  178. package/dist/design-system/p-795bae4c.entry.js +1 -0
  179. package/dist/design-system/{p-522d1481.entry.js → p-819e28fe.entry.js} +1 -1
  180. package/dist/design-system/{p-32e2d71e.entry.js → p-843d4b16.entry.js} +1 -1
  181. package/dist/design-system/{p-cc97f4b4.entry.js → p-8ee990bd.entry.js} +1 -1
  182. package/dist/design-system/{p-42f7febe.entry.js → p-9404ab06.entry.js} +1 -1
  183. package/dist/design-system/p-DGlmvjGc.js +1 -0
  184. package/dist/design-system/{p-DykVq5VY.js → p-DZbc1mgp.js} +1 -1
  185. package/dist/design-system/p-DopVneZA.js +1 -0
  186. package/dist/design-system/{p-e8e64511.entry.js → p-aac84d22.entry.js} +1 -1
  187. package/dist/design-system/{p-f7074386.entry.js → p-b868d747.entry.js} +1 -1
  188. package/dist/design-system/{p-3b8954d9.entry.js → p-b8e34533.entry.js} +1 -1
  189. package/dist/design-system/p-c3e4853c.entry.js +1 -0
  190. package/dist/design-system/{p-11b904a3.entry.js → p-d226bd61.entry.js} +1 -1
  191. package/dist/design-system/{p-dbeaeb31.entry.js → p-d3cc8538.entry.js} +1 -1
  192. package/dist/design-system/{p-ae117afa.entry.js → p-eae21a79.entry.js} +1 -1
  193. package/dist/design-system/{p-e23dac79.entry.js → p-fa670cc4.entry.js} +1 -1
  194. package/dist/esm/design-system.js +1 -1
  195. package/dist/esm/index.js +2 -2
  196. package/dist/esm/loader.js +1 -1
  197. package/dist/esm/sanitize-inline-html-DopVneZA.js +63 -0
  198. package/dist/esm/sd-calendar_2.entry.js +7 -6
  199. package/dist/esm/sd-callout.entry.js +150 -0
  200. package/dist/esm/sd-card.entry.js +1 -1
  201. package/dist/esm/sd-checkbox.entry.js +9 -4
  202. package/dist/esm/sd-chip.entry.js +1 -1
  203. package/dist/esm/sd-circle-progress.entry.js +2 -2
  204. package/dist/esm/sd-confirm-modal_2.entry.js +4 -3
  205. package/dist/esm/sd-date-picker_7.entry.js +9 -9
  206. package/dist/esm/sd-date-range-picker-calendar.entry.js +1 -1
  207. package/dist/esm/sd-dropdown-button.entry.js +6 -5
  208. package/dist/esm/sd-field_3.entry.js +7 -7
  209. package/dist/esm/sd-guide.entry.js +5 -4
  210. package/dist/esm/sd-key-value-table.entry.js +1 -1
  211. package/dist/esm/sd-linear-progress.entry.js +2 -2
  212. package/dist/esm/sd-loading-container.entry.js +2 -2
  213. package/dist/esm/sd-pagination_4.entry.js +10 -10
  214. package/dist/esm/sd-popup.entry.js +6 -5
  215. package/dist/esm/sd-portal.entry.js +1 -1
  216. package/dist/esm/sd-select-list-item_2.entry.js +6 -6
  217. package/dist/esm/sd-select_3.entry.js +8 -8
  218. package/dist/esm/sd-switch.entry.js +1 -1
  219. package/dist/esm/{sd-table.config-DU7Pc6YH.js → sd-table.config-CFHtQ8LX.js} +1 -1
  220. package/dist/esm/sd-table.entry.js +19 -16
  221. package/dist/esm/sd-tabs.entry.js +1 -1
  222. package/dist/esm/sd-tag.entry.js +4 -2
  223. package/dist/esm/sd-td.entry.js +1 -1
  224. package/dist/esm/sd-toast-container.entry.js +1 -1
  225. package/dist/esm/sd-toast.entry.js +2 -2
  226. package/dist/esm/sd-toggle.entry.js +1 -1
  227. package/dist/esm/{system-GBlVDmy4.js → system-DGlmvjGc.js} +12 -1
  228. package/dist/types/components/sd-calendar/sd-calendar.d.ts +1 -0
  229. package/dist/types/components/sd-callout/sd-callout.config.d.ts +34 -0
  230. package/dist/types/components/sd-callout/sd-callout.d.ts +11 -0
  231. package/dist/types/components.d.ts +43 -0
  232. package/dist/types/utils/html/sanitize-inline-html.d.ts +1 -0
  233. package/hydrate/index.js +338 -95
  234. package/hydrate/index.mjs +338 -95
  235. package/package.json +1 -1
  236. package/dist/components/p-BDVrZ5mV.js +0 -1
  237. package/dist/components/p-CETxX4-M.js +0 -1
  238. package/dist/components/p-CyObYB-g.js +0 -1
  239. package/dist/components/p-GBlVDmy4.js +0 -1
  240. package/dist/design-system/p-29fd86d8.entry.js +0 -1
  241. package/dist/design-system/p-36d744fb.entry.js +0 -1
  242. package/dist/design-system/p-8f4ccae4.entry.js +0 -1
  243. package/dist/design-system/p-9f7f1b8b.entry.js +0 -1
  244. package/dist/design-system/p-GBlVDmy4.js +0 -1
  245. package/dist/design-system/p-a640e509.entry.js +0 -1
  246. package/dist/design-system/p-a97033a2.entry.js +0 -1
  247. package/dist/design-system/p-fc5c4f85.entry.js +0 -1
package/hydrate/index.js CHANGED
@@ -6718,7 +6718,7 @@ const CALENDAR_LAYOUT = {
6718
6718
  };
6719
6719
  const WEEK_LABELS = ['일', '월', '화', '수', '목', '금', '토'];
6720
6720
 
6721
- const sdCalendarCss = () => `sd-calendar{display:block}sd-calendar .sd-calendar{display:flex;flex-direction:column;gap:var(--calendar-gap);width:328px;min-height:328px;padding:var(--calendar-padding);background:var(--calendar-bg);border-radius:var(--calendar-radius);box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.2);user-select:none}sd-calendar .sd-calendar__header{display:flex;align-items:center;justify-content:center;gap:var(--calendar-header-gap);font-size:var(--calendar-header-font-size);line-height:var(--calendar-header-line-height);font-weight:var(--calendar-header-font-weight);color:var(--calendar-day-text)}sd-calendar .sd-calendar__nav-group{display:inline-flex;align-items:center;gap:var(--calendar-gap)}sd-calendar .sd-calendar__nav-group-month{width:100%}sd-calendar .sd-calendar__label{display:inline-flex;align-items:center;justify-content:center;min-width:40px;text-align:center}sd-calendar .sd-calendar__label-month{width:100%}sd-calendar .sd-calendar__divider{display:inline-block;width:1px;height:16px;background:var(--calendar-header-divider)}sd-calendar .sd-calendar__week{display:grid;grid-template-columns:repeat(7, var(--calendar-day-size))}sd-calendar .sd-calendar__week-cell{display:inline-flex;align-items:center;justify-content:center;height:20px;font-size:var(--calendar-week-font-size);line-height:var(--calendar-week-line-height);font-weight:var(--calendar-week-font-weight);color:var(--calendar-week-color)}sd-calendar .sd-calendar__grid{display:grid;grid-template-columns:repeat(7, var(--calendar-day-size));row-gap:var(--calendar-grid-row-gap)}sd-calendar .sd-calendar__day{display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-start;width:var(--calendar-day-size);min-height:var(--calendar-day-circle-size);padding:0;border:none;background:transparent;cursor:pointer;font-size:var(--calendar-day-font-size);line-height:var(--calendar-day-line-height);font-weight:var(--calendar-day-font-weight);color:var(--calendar-day-text)}sd-calendar .sd-calendar__day-circle{display:inline-flex;align-items:center;justify-content:center;width:var(--calendar-day-circle-size);height:var(--calendar-day-circle-size);border-radius:calc(var(--calendar-day-circle-radius) * 1px);border:1px solid transparent;box-sizing:border-box}sd-calendar .sd-calendar__day:not(:disabled):hover .sd-calendar__day-circle{border-radius:16px;border:1px solid var(--calendar-day-hover-border)}sd-calendar .sd-calendar__day--today .sd-calendar__day-circle{font-weight:700}sd-calendar .sd-calendar__day--selected .sd-calendar__day-circle{border-radius:16px;background:var(--calendar-day-select-bg);color:var(--calendar-day-select-text)}sd-calendar .sd-calendar__day--selected:not(:disabled):hover .sd-calendar__day-circle{background:var(--calendar-day-select-bg);color:var(--calendar-day-select-text)}sd-calendar .sd-calendar__day--disabled{color:var(--calendar-day-disabled-text);background:none !important;cursor:not-allowed}sd-calendar .sd-calendar__day--empty{visibility:hidden;pointer-events:none}sd-calendar .sd-calendar__dot-row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--calendar-day-dot-gap);box-sizing:border-box;width:100%;min-height:14px;padding-top:var(--calendar-day-dot-padding-y);padding-bottom:var(--calendar-day-dot-padding-y)}sd-calendar .sd-calendar__dot{display:inline-block;width:var(--calendar-day-dot-size);height:var(--calendar-day-dot-size);border-radius:50%}sd-calendar .sd-calendar__divider-bottom{display:block;width:100%;height:1px;background:var(--calendar-header-divider)}sd-calendar .sd-calendar__legend{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;column-gap:var(--calendar-legend-group-gap);row-gap:4px;font-size:var(--calendar-legend-font-size);line-height:var(--calendar-legend-line-height);font-weight:var(--calendar-legend-font-weight);color:var(--calendar-day-text)}sd-calendar .sd-calendar__legend-item{display:inline-flex;align-items:center;gap:var(--calendar-legend-gap)}sd-calendar .sd-calendar__legend-dot{display:inline-block;width:var(--calendar-day-dot-size);height:var(--calendar-day-dot-size);border-radius:50%;flex-shrink:0}sd-calendar .sd-calendar__legend-label{display:inline-block}`;
6721
+ const sdCalendarCss = () => `sd-calendar{display:block}sd-calendar .sd-calendar{display:flex;flex-direction:column;gap:var(--calendar-gap);width:328px;min-height:328px;padding:var(--calendar-padding);background:var(--calendar-bg);border-radius:var(--calendar-radius);user-select:none}sd-calendar .sd-calendar--elevated{box-shadow:2px 2px 12px 2px rgba(0, 0, 0, 0.2)}sd-calendar .sd-calendar__header{display:flex;align-items:center;justify-content:center;gap:var(--calendar-header-gap);font-size:var(--calendar-header-font-size);line-height:var(--calendar-header-line-height);font-weight:var(--calendar-header-font-weight);color:var(--calendar-day-text)}sd-calendar .sd-calendar__nav-group{display:inline-flex;align-items:center;gap:var(--calendar-gap)}sd-calendar .sd-calendar__nav-group-month{width:100%}sd-calendar .sd-calendar__label{display:inline-flex;align-items:center;justify-content:center;min-width:40px;text-align:center}sd-calendar .sd-calendar__label-month{width:100%}sd-calendar .sd-calendar__divider{display:inline-block;width:1px;height:16px;background:var(--calendar-header-divider)}sd-calendar .sd-calendar__week{display:grid;grid-template-columns:repeat(7, var(--calendar-day-size))}sd-calendar .sd-calendar__week-cell{display:inline-flex;align-items:center;justify-content:center;height:20px;font-size:var(--calendar-week-font-size);line-height:var(--calendar-week-line-height);font-weight:var(--calendar-week-font-weight);color:var(--calendar-week-color)}sd-calendar .sd-calendar__grid{display:grid;grid-template-columns:repeat(7, var(--calendar-day-size));row-gap:var(--calendar-grid-row-gap)}sd-calendar .sd-calendar__day{display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-start;width:var(--calendar-day-size);min-height:var(--calendar-day-circle-size);padding:0;border:none;background:transparent;cursor:pointer;font-size:var(--calendar-day-font-size);line-height:var(--calendar-day-line-height);font-weight:var(--calendar-day-font-weight);color:var(--calendar-day-text)}sd-calendar .sd-calendar__day-circle{display:inline-flex;align-items:center;justify-content:center;width:var(--calendar-day-circle-size);height:var(--calendar-day-circle-size);border-radius:calc(var(--calendar-day-circle-radius) * 1px);border:1px solid transparent;box-sizing:border-box}sd-calendar .sd-calendar__day:not(:disabled):hover .sd-calendar__day-circle{border-radius:16px;border:1px solid var(--calendar-day-hover-border)}sd-calendar .sd-calendar__day--today .sd-calendar__day-circle{font-weight:700}sd-calendar .sd-calendar__day--selected .sd-calendar__day-circle{border-radius:16px;background:var(--calendar-day-select-bg);color:var(--calendar-day-select-text)}sd-calendar .sd-calendar__day--selected:not(:disabled):hover .sd-calendar__day-circle{background:var(--calendar-day-select-bg);color:var(--calendar-day-select-text)}sd-calendar .sd-calendar__day--disabled{color:var(--calendar-day-disabled-text);background:none !important;cursor:not-allowed}sd-calendar .sd-calendar__day--empty{visibility:hidden;pointer-events:none}sd-calendar .sd-calendar__dot-row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--calendar-day-dot-gap);box-sizing:border-box;width:100%;min-height:14px;padding-top:var(--calendar-day-dot-padding-y);padding-bottom:var(--calendar-day-dot-padding-y)}sd-calendar .sd-calendar__dot{display:inline-block;width:var(--calendar-day-dot-size);height:var(--calendar-day-dot-size);border-radius:50%}sd-calendar .sd-calendar__divider-bottom{display:block;width:100%;height:1px;background:var(--calendar-header-divider)}sd-calendar .sd-calendar__legend{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;column-gap:var(--calendar-legend-group-gap);row-gap:4px;font-size:var(--calendar-legend-font-size);line-height:var(--calendar-legend-line-height);font-weight:var(--calendar-legend-font-weight);color:var(--calendar-day-text)}sd-calendar .sd-calendar__legend-item{display:inline-flex;align-items:center;gap:var(--calendar-legend-gap)}sd-calendar .sd-calendar__legend-dot{display:inline-block;width:var(--calendar-day-dot-size);height:var(--calendar-day-dot-size);border-radius:50%;flex-shrink:0}sd-calendar .sd-calendar__legend-label{display:inline-block}`;
6722
6722
 
6723
6723
  class SdCalendar {
6724
6724
  constructor(hostRef) {
@@ -6729,6 +6729,7 @@ class SdCalendar {
6729
6729
  value = null;
6730
6730
  selectable;
6731
6731
  events;
6732
+ elevated = false;
6732
6733
  currentYear;
6733
6734
  currentMonth;
6734
6735
  update;
@@ -6895,7 +6896,7 @@ class SdCalendar {
6895
6896
  const eventMap = this.eventMap;
6896
6897
  const legend = this.legendItems;
6897
6898
  const hasEvents = (this.events?.length ?? 0) > 0;
6898
- return (hAsync("div", { key: '79cfdb58f8d44085c87cfea6458e60654bfa09bb', class: "sd-calendar", style: cssVars }, hAsync("div", { key: '065620bcd155de11ef2272720de57ef6fcd9fd20', class: "sd-calendar__header" }, hAsync("div", { key: 'ae27c8fe51c44137932b18cc83b64dcce7e2bbaa', class: "sd-calendar__nav-group" }, hAsync("sd-ghost-button", { key: '8207f6d77705999419f451db032c059564ea0c17', ariaLabel: "prevYear", size: "xxs", icon: "chevronLeft", onClick: this.goPrevYear }), hAsync("span", { key: 'b5bf63784dd06c3ce5a4d4c5514fea22efb08793', class: "sd-calendar__label" }, this.currentYear), hAsync("sd-ghost-button", { key: '14512de68825e3b158704c3084306029ade8fcc1', ariaLabel: "nextYear", size: "xxs", icon: "chevronRight", onClick: this.goNextYear })), hAsync("span", { key: 'e37eb90d72c2e64b8ebb1da4ddf3fccb7ff18cc3', class: "sd-calendar__divider", "aria-hidden": "true" }), hAsync("div", { key: '07b1696b663ddb992e5a8d8b5ab98205ba136d9d', class: "sd-calendar__nav-group sd-calendar__nav-group-month" }, hAsync("sd-ghost-button", { key: 'b742889a44643d3e4d3b6da90784923c40e5a07f', ariaLabel: "prevMonth", size: "xxs", icon: "chevronLeft", onClick: this.goPrevMonth }), hAsync("span", { key: 'c97402106312c3a6eb220798263ba818419e7d27', class: "sd-calendar__label sd-calendar__label-month" }, this.currentMonth, "\uC6D4"), hAsync("sd-ghost-button", { key: '55411b1328acb781d71a7a84996d2a29886612cd', ariaLabel: "nextMonth", size: "xxs", icon: "chevronRight", onClick: this.goNextMonth }))), hAsync("div", { key: 'd10b03d31be412b545999d7e70bd9a349e5f1880', class: "sd-calendar__week" }, WEEK_LABELS.map(label => (hAsync("span", { key: label, class: "sd-calendar__week-cell" }, label)))), hAsync("div", { key: '0b8f82db3753fe08435b07dee695d49a192786c0', class: "sd-calendar__grid" }, this.cells.map(cell => {
6899
+ return (hAsync("div", { key: '0ed0317b3cecffea4015de8688888e0ab2a38586', class: { 'sd-calendar': true, 'sd-calendar--elevated': this.elevated }, style: cssVars }, hAsync("div", { key: 'b915f275a31617711d06d98c8a4d9369ddd36af5', class: "sd-calendar__header" }, hAsync("div", { key: 'cd3b625e4e26af4b11f6af8b22c02099e8ab68a5', class: "sd-calendar__nav-group" }, hAsync("sd-ghost-button", { key: 'e0ebfed48a7fdb61fd082371e7247176c02a8fb1', ariaLabel: "prevYear", size: "xxs", icon: "chevronLeft", onClick: this.goPrevYear }), hAsync("span", { key: '6bfebc94dce54ca472ad5b3e03a7630e32676c3f', class: "sd-calendar__label" }, this.currentYear), hAsync("sd-ghost-button", { key: '2e42ad52cd7d1b5d3502d578347c997910f3efc3', ariaLabel: "nextYear", size: "xxs", icon: "chevronRight", onClick: this.goNextYear })), hAsync("span", { key: '95be4ab5e03d7378e82006221f190ffd55659cf1', class: "sd-calendar__divider", "aria-hidden": "true" }), hAsync("div", { key: 'edce7cf91a873cdaeed68e50372bdfa20af7507d', class: "sd-calendar__nav-group sd-calendar__nav-group-month" }, hAsync("sd-ghost-button", { key: '9ba274e9db32177d30d8c218303384855b7a3f60', ariaLabel: "prevMonth", size: "xxs", icon: "chevronLeft", onClick: this.goPrevMonth }), hAsync("span", { key: 'bc113063e769fe12c2a39732cd82060752b7d9eb', class: "sd-calendar__label sd-calendar__label-month" }, this.currentMonth, "\uC6D4"), hAsync("sd-ghost-button", { key: '52cfde203e06334c5eee85abc9d82d6889bf511c', ariaLabel: "nextMonth", size: "xxs", icon: "chevronRight", onClick: this.goNextMonth }))), hAsync("div", { key: '9ae80aee03a4e6392a1d9a4ef28e565db20faea3', class: "sd-calendar__week" }, WEEK_LABELS.map(label => (hAsync("span", { key: label, class: "sd-calendar__week-cell" }, label)))), hAsync("div", { key: '7c47907311ea24f1af030931b8efd11955e55436', class: "sd-calendar__grid" }, this.cells.map(cell => {
6899
6900
  const isSelected = cell.inCurrentMonth && this.value !== '' && this.value === cell.date;
6900
6901
  const isToday = cell.inCurrentMonth && today === cell.date;
6901
6902
  const isDisabled = cell.inCurrentMonth && this.isDisabled(cell.date);
@@ -6908,8 +6909,8 @@ class SdCalendar {
6908
6909
  'sd-calendar__day--disabled': isDisabled,
6909
6910
  }, disabled: !cell.inCurrentMonth || isDisabled, tabindex: !cell.inCurrentMonth ? -1 : undefined, "aria-hidden": !cell.inCurrentMonth ? 'true' : undefined, onClick: () => cell.inCurrentMonth && this.handleDayClick(cell) }, hAsync("span", { class: "sd-calendar__day-circle" }, cell.inCurrentMonth ? cell.day : ''), hasEvents && (hAsync("span", { class: "sd-calendar__dot-row", "aria-hidden": "true" }, dayEvents?.map((ev, i) => (hAsync("span", { key: `${ev.color}|${ev.label}|${i}`, class: "sd-calendar__dot", style: { backgroundColor: ev.color } })))))));
6910
6911
  })), legend.length > 0 && [
6911
- hAsync("span", { key: 'a837c5956da658561fcbd2e646b0abbb0fa84a20', class: "sd-calendar__divider-bottom", "aria-hidden": "true" }),
6912
- hAsync("div", { key: '190b9947e5ecd627fad03b40c58c2e0c8719daaa', class: "sd-calendar__legend" }, legend.map(item => (hAsync("span", { key: `${item.color}|${item.label}`, class: "sd-calendar__legend-item" }, hAsync("span", { class: "sd-calendar__legend-dot", style: { backgroundColor: item.color }, "aria-hidden": "true" }), hAsync("span", { class: "sd-calendar__legend-label" }, item.label))))),
6912
+ hAsync("span", { key: '4ba064cad3188db8342f51ca017e4bf5af8aa460', class: "sd-calendar__divider-bottom", "aria-hidden": "true" }),
6913
+ hAsync("div", { key: 'ac132a1f1f948e618ee75d4c01a1c99a0dfc2c0a', class: "sd-calendar__legend" }, legend.map(item => (hAsync("span", { key: `${item.color}|${item.label}`, class: "sd-calendar__legend-item" }, hAsync("span", { class: "sd-calendar__legend-dot", style: { backgroundColor: item.color }, "aria-hidden": "true" }), hAsync("span", { class: "sd-calendar__legend-label" }, item.label))))),
6913
6914
  ]));
6914
6915
  }
6915
6916
  static get watchers() { return {
@@ -6925,6 +6926,7 @@ class SdCalendar {
6925
6926
  "value": [1025],
6926
6927
  "selectable": [16],
6927
6928
  "events": [16],
6929
+ "elevated": [4],
6928
6930
  "currentYear": [32],
6929
6931
  "currentMonth": [32]
6930
6932
  },
@@ -6934,6 +6936,225 @@ class SdCalendar {
6934
6936
  }; }
6935
6937
  }
6936
6938
 
6939
+ const callout$1 = {
6940
+ radius: "8",
6941
+ border: {
6942
+ width: "1"
6943
+ },
6944
+ body: {
6945
+ gap: "2",
6946
+ typography: {
6947
+ fontFamily: "Pretendard Variable, Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Segoe UI, Apple SD Gothic Neo, Noto Sans KR, Malgun Gothic, Apple Color Emoji, Segoe UI Emoji, sans-serif",
6948
+ fontSize: "12",
6949
+ fontWeight: "400",
6950
+ lineHeight: "20"},
6951
+ paddingX: "12",
6952
+ paddingY: "8"
6953
+ },
6954
+ "default": {
6955
+ bg: "#F9F9F9",
6956
+ border: "#E1E1E1",
6957
+ content: "#555555"
6958
+ },
6959
+ danger: {
6960
+ bg: "#FCEFEF",
6961
+ border: "#FFB5B5",
6962
+ content: "#222222",
6963
+ title: {
6964
+ bg: "#FB4444",
6965
+ paddingX: "24",
6966
+ gap: "2",
6967
+ typography: {
6968
+ fontFamily: "Pretendard Variable, Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Segoe UI, Apple SD Gothic Neo, Noto Sans KR, Malgun Gothic, Apple Color Emoji, Segoe UI Emoji, sans-serif",
6969
+ fontWeight: "700",
6970
+ fontSize: "16",
6971
+ lineHeight: "26"
6972
+ },
6973
+ color: "#FFFFFF",
6974
+ icon: "24"
6975
+ }
6976
+ }
6977
+ };
6978
+ var calloutTokens = {
6979
+ callout: callout$1
6980
+ };
6981
+
6982
+ const { callout } = calloutTokens;
6983
+ const CALLOUT_LAYOUT = {
6984
+ radius: `${callout.radius}px`,
6985
+ borderWidth: `${callout.border.width}px`,
6986
+ bodyPaddingX: `${callout.body.paddingX}px`,
6987
+ bodyPaddingY: `${callout.body.paddingY}px`,
6988
+ bodyGap: `${callout.body.gap}px`,
6989
+ titlePaddingX: `${callout.danger.title.paddingX}px`,
6990
+ titleGap: `${callout.danger.title.gap}px`,
6991
+ titleIconSize: Number(callout.danger.title.icon),
6992
+ };
6993
+ const CALLOUT_TYPOGRAPHY = {
6994
+ body: {
6995
+ fontFamily: callout.body.typography.fontFamily,
6996
+ fontSize: `${callout.body.typography.fontSize}px`,
6997
+ fontWeight: callout.body.typography.fontWeight,
6998
+ lineHeight: `${callout.body.typography.lineHeight}px`,
6999
+ },
7000
+ title: {
7001
+ fontFamily: callout.danger.title.typography.fontFamily,
7002
+ fontSize: `${callout.danger.title.typography.fontSize}px`,
7003
+ fontWeight: callout.danger.title.typography.fontWeight,
7004
+ lineHeight: `${callout.danger.title.typography.lineHeight}px`,
7005
+ },
7006
+ };
7007
+ const CALLOUT_TYPE_CONFIG = {
7008
+ default: {
7009
+ bg: callout.default.bg,
7010
+ border: callout.default.border,
7011
+ content: callout.default.content,
7012
+ },
7013
+ danger: {
7014
+ bg: callout.danger.bg,
7015
+ border: callout.danger.border,
7016
+ content: callout.danger.content,
7017
+ titleBg: callout.danger.title.bg,
7018
+ titleColor: callout.danger.title.color,
7019
+ },
7020
+ };
7021
+ const DANGER_TITLE_LABEL = '주의사항';
7022
+ const TYPE_ICON = {
7023
+ default: undefined,
7024
+ danger: 'warningFill',
7025
+ };
7026
+
7027
+ const ALLOWED_INLINE_TAGS = new Set(['B', 'STRONG', 'I', 'EM', 'BR', 'SPAN']);
7028
+ const DROP_CONTENT_TAGS = new Set([
7029
+ 'SCRIPT',
7030
+ 'STYLE',
7031
+ 'IFRAME',
7032
+ 'OBJECT',
7033
+ 'EMBED',
7034
+ 'META',
7035
+ 'LINK',
7036
+ 'BASE',
7037
+ 'NOSCRIPT',
7038
+ ]);
7039
+ const escapeHtml = (value) => value
7040
+ .replaceAll('&', '&')
7041
+ .replaceAll('<', '&lt;')
7042
+ .replaceAll('>', '&gt;')
7043
+ .replaceAll('"', '&quot;')
7044
+ .replaceAll("'", '&#39;');
7045
+ const createSanitizerTemplate = () => {
7046
+ if (typeof document === 'undefined') {
7047
+ return null;
7048
+ }
7049
+ return document.createElement('template');
7050
+ };
7051
+ const sanitizeNode = (node, doc) => {
7052
+ if (node.nodeType === Node.COMMENT_NODE) {
7053
+ node.remove();
7054
+ return;
7055
+ }
7056
+ if (node.nodeType !== Node.ELEMENT_NODE) {
7057
+ return;
7058
+ }
7059
+ const element = node;
7060
+ const tagName = element.tagName;
7061
+ if (DROP_CONTENT_TAGS.has(tagName)) {
7062
+ element.remove();
7063
+ return;
7064
+ }
7065
+ Array.from(element.childNodes).forEach(child => sanitizeNode(child));
7066
+ Array.from(element.attributes).forEach(attr => element.removeAttribute(attr.name));
7067
+ if (ALLOWED_INLINE_TAGS.has(tagName)) {
7068
+ return;
7069
+ }
7070
+ const parent = element.parentNode;
7071
+ if (parent == null) {
7072
+ return;
7073
+ }
7074
+ while (element.firstChild) {
7075
+ parent.insertBefore(element.firstChild, element);
7076
+ }
7077
+ parent.removeChild(element);
7078
+ };
7079
+ const sanitizeInlineHtml = (value) => {
7080
+ const template = createSanitizerTemplate();
7081
+ if (template == null) {
7082
+ return escapeHtml(value);
7083
+ }
7084
+ template.innerHTML = value;
7085
+ Array.from(template.content.childNodes).forEach(child => sanitizeNode(child));
7086
+ return template.innerHTML;
7087
+ };
7088
+
7089
+ const sdCalloutCss = () => `@charset "UTF-8";sd-callout{display:block;width:fit-content}sd-callout .sd-callout{display:inline-flex;align-items:stretch;width:fit-content;border:var(--sd-callout-border-width) solid var(--sd-callout-border);border-radius:var(--sd-callout-radius);background-color:var(--sd-callout-bg);color:var(--sd-callout-content);overflow:hidden}sd-callout .sd-callout__title{display:flex;flex-flow:column nowrap;align-items:center;justify-content:center;gap:var(--sd-callout-title-gap);padding:8px var(--sd-callout-title-padding-x);background-color:var(--sd-callout-title-bg);color:var(--sd-callout-title-color);font-family:var(--sd-callout-title-font-family);font-size:var(--sd-callout-title-font-size);font-weight:var(--sd-callout-title-font-weight);line-height:var(--sd-callout-title-line-height);flex-shrink:0}sd-callout .sd-callout__title-text{white-space:nowrap}sd-callout .sd-callout__body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:var(--sd-callout-body-gap);padding:var(--sd-callout-body-padding-y) var(--sd-callout-body-padding-x);font-family:var(--sd-callout-body-font-family);font-size:var(--sd-callout-body-font-size);font-weight:var(--sd-callout-body-font-weight);line-height:var(--sd-callout-body-line-height)}sd-callout .sd-callout__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;justify-content:center;gap:var(--sd-callout-body-gap)}sd-callout .sd-callout__list__item{display:flex;align-items:flex-start;color:var(--sd-callout-content)}sd-callout .sd-callout__list__item p{margin:0;padding:0;flex:1;min-width:0;word-break:break-word}sd-callout .sd-callout__list__item::before{display:block;flex-shrink:0;text-align:center;color:var(--sd-callout-content);font-size:var(--sd-callout-body-font-size);font-weight:var(--sd-callout-body-font-weight);line-height:var(--sd-callout-body-line-height)}sd-callout .sd-callout__list__item--depth-1::before{content:"-";width:24px}sd-callout .sd-callout__list__item--depth-2{padding-left:32px}sd-callout .sd-callout__list__item--depth-2::before{content:"•";width:24px}`;
7090
+
7091
+ class SdCallout {
7092
+ constructor(hostRef) {
7093
+ registerInstance(this, hostRef);
7094
+ }
7095
+ type = 'default';
7096
+ message = [];
7097
+ get calloutStyle() {
7098
+ const typeConfig = CALLOUT_TYPE_CONFIG[this.type] ?? CALLOUT_TYPE_CONFIG.default;
7099
+ return {
7100
+ '--sd-callout-bg': typeConfig.bg,
7101
+ '--sd-callout-border': typeConfig.border,
7102
+ '--sd-callout-border-width': CALLOUT_LAYOUT.borderWidth,
7103
+ '--sd-callout-content': typeConfig.content,
7104
+ '--sd-callout-radius': CALLOUT_LAYOUT.radius,
7105
+ '--sd-callout-body-padding-x': CALLOUT_LAYOUT.bodyPaddingX,
7106
+ '--sd-callout-body-padding-y': CALLOUT_LAYOUT.bodyPaddingY,
7107
+ '--sd-callout-body-gap': CALLOUT_LAYOUT.bodyGap,
7108
+ '--sd-callout-body-font-family': CALLOUT_TYPOGRAPHY.body.fontFamily,
7109
+ '--sd-callout-body-font-size': CALLOUT_TYPOGRAPHY.body.fontSize,
7110
+ '--sd-callout-body-font-weight': CALLOUT_TYPOGRAPHY.body.fontWeight,
7111
+ '--sd-callout-body-line-height': CALLOUT_TYPOGRAPHY.body.lineHeight,
7112
+ '--sd-callout-title-bg': typeConfig.titleBg ?? 'transparent',
7113
+ '--sd-callout-title-color': typeConfig.titleColor ?? 'inherit',
7114
+ '--sd-callout-title-padding-x': CALLOUT_LAYOUT.titlePaddingX,
7115
+ '--sd-callout-title-gap': CALLOUT_LAYOUT.titleGap,
7116
+ '--sd-callout-title-font-family': CALLOUT_TYPOGRAPHY.title.fontFamily,
7117
+ '--sd-callout-title-font-size': CALLOUT_TYPOGRAPHY.title.fontSize,
7118
+ '--sd-callout-title-font-weight': CALLOUT_TYPOGRAPHY.title.fontWeight,
7119
+ '--sd-callout-title-line-height': CALLOUT_TYPOGRAPHY.title.lineHeight,
7120
+ };
7121
+ }
7122
+ renderListItem(msg, depth = 0) {
7123
+ if (Array.isArray(msg)) {
7124
+ return msg.flatMap(m => this.renderListItem(m, depth + 1));
7125
+ }
7126
+ return [this.renderLi(msg, depth)];
7127
+ }
7128
+ renderLi = (msg, depth) => {
7129
+ const safeDepth = Math.min(Math.max(depth, 1), 2);
7130
+ return (hAsync("li", { class: `sd-callout__list__item sd-callout__list__item--depth-${safeDepth}` }, hAsync("p", { innerHTML: sanitizeInlineHtml(msg) })));
7131
+ };
7132
+ renderBody() {
7133
+ return hAsync("ul", { class: "sd-callout__list" }, this.renderListItem(this.message));
7134
+ }
7135
+ renderTitle() {
7136
+ const iconName = TYPE_ICON[this.type];
7137
+ const titleColor = CALLOUT_TYPE_CONFIG[this.type].titleColor;
7138
+ return (hAsync("div", { class: "sd-callout__title" }, iconName && (hAsync("sd-icon", { name: iconName, size: CALLOUT_LAYOUT.titleIconSize, color: titleColor })), hAsync("span", { class: "sd-callout__title-text" }, DANGER_TITLE_LABEL)));
7139
+ }
7140
+ render() {
7141
+ const showTitle = this.type === 'danger';
7142
+ return (hAsync("div", { key: 'ce91120e7c71907e6c07728554e340ad552d6e34', class: "sd-callout", style: this.calloutStyle, role: "note" }, showTitle && this.renderTitle(), hAsync("div", { key: '56b55c2fed40e59023856029b8c86c35b29d26e5', class: "sd-callout__body" }, this.renderBody())));
7143
+ }
7144
+ static get style() { return sdCalloutCss(); }
7145
+ static get cmpMeta() { return {
7146
+ "$flags$": 512,
7147
+ "$tagName$": "sd-callout",
7148
+ "$members$": {
7149
+ "type": [513],
7150
+ "message": [16]
7151
+ },
7152
+ "$listeners$": undefined,
7153
+ "$lazyBundleId$": "-",
7154
+ "$attrsToReflect$": [["type", "type"]]
7155
+ }; }
7156
+ }
7157
+
6937
7158
  const sdCardCss = () => `sd-card{display:block;height:fit-content}sd-card .sd-card{border-radius:8px;background:white}sd-card .sd-card--bordered{border:1px solid #E1E1E1}`;
6938
7159
 
6939
7160
  class SdCard {
@@ -6943,7 +7164,7 @@ class SdCard {
6943
7164
  bordered = false;
6944
7165
  sdClass = '';
6945
7166
  render() {
6946
- return (hAsync(Fragment, { key: '61c364f88b03eb56b60c660a58533f417d209e6a' }, hAsync("div", { key: 'dee3671e757c273ffec06a15a0191a798280522c', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.sdClass}` }, hAsync("slot", { key: 'f991bf5df95f8c1bac417aa4e70f40cf68624fb8' }))));
7167
+ return (hAsync(Fragment, { key: '2700ffa3af5b6b35882c396a838d9da2e866ee4b' }, hAsync("div", { key: '3d3aeaac318fc089c42ae4348bc72015d4476276', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.sdClass}` }, hAsync("slot", { key: 'e72f00bc8c209644baf5f431ce485fb5b691f354' }))));
6947
7168
  }
6948
7169
  static get style() { return sdCardCss(); }
6949
7170
  static get cmpMeta() { return {
@@ -7114,7 +7335,12 @@ class SdCheckbox {
7114
7335
  this.hasWarnedMissingVal = true;
7115
7336
  }
7116
7337
  const valueSet = new Set(this.value);
7117
- valueSet.has(this.val) ? valueSet.delete(this.val) : valueSet.add(this.val);
7338
+ if (valueSet.has(this.val)) {
7339
+ valueSet.delete(this.val);
7340
+ }
7341
+ else {
7342
+ valueSet.add(this.val);
7343
+ }
7118
7344
  newValue = Array.from(valueSet);
7119
7345
  }
7120
7346
  else if (this.value === null) {
@@ -7147,13 +7373,13 @@ class SdCheckbox {
7147
7373
  '--sd-checkbox-inverse-icon': CHECKBOX_COLORS.checked.iconInverse,
7148
7374
  '--sd-checkbox-inverse-label': CHECKBOX_COLORS.labelInverse,
7149
7375
  };
7150
- return (hAsync("label", { key: '6fb506c448a5968d403f779d113fd60857901982', class: this.checkboxClasses, style: cssVars }, hAsync("input", { key: 'fb08f531416255b8886d2bd2c21c3f62e8a9d47d', type: "checkbox", ref: el => {
7376
+ return (hAsync("label", { key: '1e1ba8ab22e34327cfdfb8d236aba0e1ff2806f6', class: this.checkboxClasses, style: cssVars }, hAsync("input", { key: '82b852e0fb3ca94c460b7181ae1c575b361ddd4d', type: "checkbox", ref: el => {
7151
7377
  this.inputEl = el;
7152
- }, value: this.val, checked: !!this.isChecked, disabled: this.disabled, onChange: this.handleChange, name: this.val?.toString() || 'checkbox', "aria-label": this.label || 'checkbox', "aria-checked": this.isChecked === null ? 'mixed' : this.isChecked ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }), hAsync("div", { key: 'e49eb38375ba680e08510f83a15ce8a6bbecd4b8', class: "sd-checkbox__bg" }, this.isChecked !== false ? (hAsync("sd-icon", { name: this.isChecked === true ? 'checkboxCheck' : 'checkboxIndeterminate', size: Number(CHECKBOX_LAYOUT.iconSize), color: this.disabled
7378
+ }, value: this.val, checked: !!this.isChecked, disabled: this.disabled, onChange: this.handleChange, name: this.val?.toString() || 'checkbox', "aria-label": this.label || 'checkbox', "aria-checked": this.isChecked === null ? 'mixed' : this.isChecked ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }), hAsync("div", { key: 'e7a32ccbb915c857d188fecde0b388e15edebdfb', class: "sd-checkbox__bg" }, this.isChecked !== false ? (hAsync("sd-icon", { name: this.isChecked === true ? 'checkboxCheck' : 'checkboxIndeterminate', size: Number(CHECKBOX_LAYOUT.iconSize), color: this.disabled
7153
7379
  ? CHECKBOX_COLORS.checked.iconDisabled
7154
7380
  : this.inverse
7155
7381
  ? CHECKBOX_COLORS.checked.iconInverse
7156
- : CHECKBOX_COLORS.checked.icon })) : null), this.label && hAsync("span", { key: '92bc308561b0a7653926d751d029d80c38844b07', class: "sd-checkbox__label" }, this.label)));
7382
+ : CHECKBOX_COLORS.checked.icon })) : null), this.label && hAsync("span", { key: '396b7aa27a10428e5d9d24a3f523c3a384d4e463', class: "sd-checkbox__label" }, this.label)));
7157
7383
  }
7158
7384
  static get watchers() { return {
7159
7385
  "value": [{
@@ -7467,7 +7693,7 @@ class SdChip {
7467
7693
  '--sd-chip-font-weight': typography.fontWeight,
7468
7694
  '--sd-chip-line-height': typography.lineHeight,
7469
7695
  };
7470
- return (hAsync("span", { key: '3cd683af3aed7cc6e549c5fc5da1e00cda2dc2a0', class: {
7696
+ return (hAsync("span", { key: '0addb8566b639d05921b9320b99abab7f1d67899', class: {
7471
7697
  'sd-chip': true,
7472
7698
  [`sd-chip--${state}`]: true,
7473
7699
  'sd-chip--disabled': this.disabled,
@@ -7559,8 +7785,19 @@ const color = {
7559
7785
  strong: "#006AC1"},
7560
7786
  grey: {
7561
7787
  strong: "#737373"}};
7788
+ const shadow = {
7789
+ spread: {
7790
+ md: {
7791
+ x: "0",
7792
+ y: "0",
7793
+ blur: "24",
7794
+ spread: "0",
7795
+ color: "rgba(34,34,34,0.2)"}
7796
+ }};
7562
7797
  var systemTokens = {
7563
- color: color};
7798
+ color: color,
7799
+ shadow: shadow
7800
+ };
7564
7801
 
7565
7802
  const CIRCLE_PROGRESS_LABEL_COLOR = progressTokens.progress.color.label;
7566
7803
  const CIRCLE_PROGRESS_PERCENT_ZERO_COLOR = systemTokens.color.fg.tertiary;
@@ -7620,7 +7857,7 @@ class SdCircleProgress {
7620
7857
  }
7621
7858
  const c = CIRCLE_PROGRESS_VIEWBOX_SIZE / 2;
7622
7859
  const showPercent = !this.indeterminate;
7623
- return (hAsync(Host, { key: 'd4ace6f784fd64a45baa746870a84a88b4911cf8', style: hostStyle }, hAsync("svg", { key: '08aef376ac746abf1a9b404e37703a862f956a08', class: "sd-circle-progress", viewBox: `0 0 ${CIRCLE_PROGRESS_VIEWBOX_SIZE} ${CIRCLE_PROGRESS_VIEWBOX_SIZE}`, xmlns: "http://www.w3.org/2000/svg" }, hAsync("circle", { key: '42411ef6f92f6427309d92dfad84ad7dc8f8c3bb', class: "sd-circle-progress__track", cx: c, cy: c, r: CIRCLE_PROGRESS_RADIUS, fill: "none", "stroke-width": CIRCLE_PROGRESS_STROKE_WIDTH }), hAsync("circle", { key: 'a0ae53ce4dfd557e980155cd0ff22ba064fe32dc', 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 && (hAsync("span", { key: '0917cfd3aa460872fa4c35da61530e01080d6937', class: "sd-circle-progress__percent" }, Math.round(this.clampedValue), "%")), this.label && hAsync("span", { key: '051756bc7b20e87205b21c735b2827a81c2a17c9', class: "sd-circle-progress__label" }, this.label)));
7860
+ return (hAsync(Host, { key: 'f92bf4d6e4f1133c4465a4fec7b2bad4549a6d06', style: hostStyle }, hAsync("svg", { key: '669fa503cc6007f48f35474b08e4359de695026d', class: "sd-circle-progress", viewBox: `0 0 ${CIRCLE_PROGRESS_VIEWBOX_SIZE} ${CIRCLE_PROGRESS_VIEWBOX_SIZE}`, xmlns: "http://www.w3.org/2000/svg" }, hAsync("circle", { key: '020c7d840a6592d7705b65b14d27e3b5752629bf', class: "sd-circle-progress__track", cx: c, cy: c, r: CIRCLE_PROGRESS_RADIUS, fill: "none", "stroke-width": CIRCLE_PROGRESS_STROKE_WIDTH }), hAsync("circle", { key: 'e409da4a5c34adcd8744f16040ae9d5d6019a415', 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 && (hAsync("span", { key: '91c0b91e69293b67c8a0ad67a6d4b9e9db5c6d4a', class: "sd-circle-progress__percent" }, Math.round(this.clampedValue), "%")), this.label && hAsync("span", { key: '03a5bee22a2e2f1b4ba75dbeca2ef5b4b9840aeb', class: "sd-circle-progress__label" }, this.label)));
7624
7861
  }
7625
7862
  static get style() { return sdCircleProgressCss(); }
7626
7863
  static get cmpMeta() { return {
@@ -7736,9 +7973,9 @@ class SdConfirmModal {
7736
7973
  const type = this.resolvedType;
7737
7974
  const iconName = CONFIRM_MODAL_ICON_MAP[type];
7738
7975
  const iconColor = CONFIRM_MODAL_ICON_COLOR[type];
7739
- return (hAsync("div", { key: '6dc337947f7c05799cf7c97d45b0df84c7976196', class: "sd-confirm-modal" }, hAsync("sd-ghost-button", { key: 'b584cc4bc00191f8488be7265249922110d57d90', class: "sd-confirm-modal__close-button", icon: "close", ariaLabel: "close", onClick: () => this.close.emit() }), iconName && (hAsync("sd-icon", { key: '470716bef879befd1d6746bc27c10fb74d61a2b6', class: "sd-confirm-modal__icon", name: iconName, size: TITLE_ICON_SIZE, color: iconColor })), hAsync("h2", { key: '5b0113f13b219a2e14c5d45397c293baafc28a2c', class: `sd-confirm-modal__title ${this.titleClass ?? ''}` }, this.modalTitle), hAsync("div", { key: 'cee18d1afde384523ca0f96f4138b8854f89cb5c', class: "sd-confirm-modal__body" }, (this.topMessage ?? []).length > 0 && (hAsync("div", { key: 'b9466be3cbb635c9b8c0a50d7023b70fa31d9f0f', class: "sd-confirm-modal__message" }, (this.topMessage ?? []).map(msg => (hAsync("p", { class: "sd-confirm-modal__message-text", innerHTML: msg }))))), this.showContentBox && (hAsync("div", { key: 'f3ea52c0261a63e75b42175c2e7c602e02f82636', class: "sd-confirm-modal__content-box" }, this.tagContents ? (hAsync("div", { class: "sd-confirm-modal__custom-content", ref: el => {
7976
+ return (hAsync("div", { key: 'f9a1d63c1cd047969c72d0e71ccd3b1cf30bac15', class: "sd-confirm-modal" }, hAsync("sd-ghost-button", { key: '8f1e4ec22a12ad9347c8c8c843f6dbb91591b289', class: "sd-confirm-modal__close-button", icon: "close", ariaLabel: "close", onClick: () => this.close.emit() }), iconName && (hAsync("sd-icon", { key: '8adada47e2dc0a6677cdf004ca8cad8794123d03', class: "sd-confirm-modal__icon", name: iconName, size: TITLE_ICON_SIZE, color: iconColor })), hAsync("h2", { key: 'ddc0636d2cd8333aa0d5a3f242dbf2d57759fc5b', class: `sd-confirm-modal__title ${this.titleClass ?? ''}` }, this.modalTitle), hAsync("div", { key: '66d4c779f4269824937306ca34a0b51e6208d03f', class: "sd-confirm-modal__body" }, (this.topMessage ?? []).length > 0 && (hAsync("div", { key: '87634b26cba0fb24115f0cd59fcc7956f9fde53c', class: "sd-confirm-modal__message" }, (this.topMessage ?? []).map(msg => (hAsync("p", { class: "sd-confirm-modal__message-text", innerHTML: sanitizeInlineHtml(msg) }))))), this.showContentBox && (hAsync("div", { key: '0b495d1393cf029e8b07f9041c51e344ff7cb5da', class: "sd-confirm-modal__content-box" }, this.tagContents ? (hAsync("div", { class: "sd-confirm-modal__custom-content", ref: el => {
7740
7977
  this.customContentRef = el;
7741
- } })) : (hAsync("slot", { onSlotchange: () => this.syncHasSlottedContent() }, this.tagLabel && hAsync("sd-tag", { name: this.tagPreset ?? 'square_sm_grey', label: this.tagLabel }), this.slotLabel && (hAsync("span", { class: "sd-confirm-modal__slot-label" }, this.slotLabel)))))), (this.bottomMessage ?? []).length > 0 && (hAsync("div", { key: 'fa33e4f68a1c36e197ff6a6f5629005fbbebcbc3', class: "sd-confirm-modal__message" }, (this.bottomMessage ?? []).map(msg => (hAsync("p", { class: "sd-confirm-modal__message-text", innerHTML: msg })))))), hAsync("div", { key: '378162e9e44cefc4e61113ba927545040e6a6c6c', class: "sd-confirm-modal__button" }, this.subButtonLabel && (hAsync("sd-button", { key: '8fb93a086c4a42063f53ed533be2774de31db81e', name: SUB_BUTTON_PRESET, label: this.subButtonLabel, onSdClick: () => this.cancel.emit() })), hAsync("sd-button", { key: '304c80915c9a7a685bddcf2d5edf4f56119860e8', name: this.resolvedMainButton, label: this.mainButtonLabel ?? '확인', onSdClick: () => this.ok.emit() }))));
7978
+ } })) : (hAsync("slot", { onSlotchange: () => this.syncHasSlottedContent() }, this.tagLabel && (hAsync("sd-tag", { name: this.tagPreset ?? 'square_sm_grey', label: this.tagLabel })), this.slotLabel && (hAsync("span", { class: "sd-confirm-modal__slot-label" }, this.slotLabel)))))), (this.bottomMessage ?? []).length > 0 && (hAsync("div", { key: '09d34f47a466e4277f1bb2215a3b087bc78e240d', class: "sd-confirm-modal__message" }, (this.bottomMessage ?? []).map(msg => (hAsync("p", { class: "sd-confirm-modal__message-text", innerHTML: sanitizeInlineHtml(msg) })))))), hAsync("div", { key: '2a62193311791f84b6eca22a49cff8a0fc65d5a7', class: "sd-confirm-modal__button" }, this.subButtonLabel && (hAsync("sd-button", { key: '4c800376dec7ca035b2aaaaac00738851829108d', name: SUB_BUTTON_PRESET, label: this.subButtonLabel, onSdClick: () => this.cancel.emit() })), hAsync("sd-button", { key: 'dcb473b7b6ce29983d89df6c288526071962ac01', name: this.resolvedMainButton, label: this.mainButtonLabel ?? '확인', onSdClick: () => this.ok.emit() }))));
7742
7979
  }
7743
7980
  static get style() { return sdConfirmModalCss(); }
7744
7981
  static get cmpMeta() { return {
@@ -7964,9 +8201,9 @@ class SdDatePicker {
7964
8201
  '--sd-system-color-field-border-focus': DATEPICKER_COLORS.border.focus,
7965
8202
  '--sd-system-color-field-bg-default': DATEPICKER_COLORS.bg.default,
7966
8203
  };
7967
- return (hAsync("sd-field", { key: '825c845ea1ada63a9f21cfc43aad04a598325c13', 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 }, hAsync("div", { key: 'b9dd1a8df29f340ad67331dbebd3ec71b79d128a', class: "sd-date-picker", ref: el => {
8204
+ return (hAsync("sd-field", { key: '35d821e9a21a09e4b2dc0d47f9a95d895c4f9dc4', 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 }, hAsync("div", { key: '21fe3c0ab5dff10265139111de741216fb06e4e4', class: "sd-date-picker", ref: el => {
7968
8205
  this.triggerRef = el;
7969
- } }, hAsync("sd-date-picker-trigger", { key: 'b9bed57fa4a2b06b004ec5a1b723ed5af25fda19', displayText: this.value ?? '', placeholder: this.placeholder, disabled: this.disabled, size: this.size, onSdTriggerClick: this.handleTriggerClick })), (this.isOpen || this.isAnimatingOut) && (hAsync("sd-portal", { key: '776e0ce183edd9c7903ce1a75208addc47c20408', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, hAsync("sd-calendar", { key: 'f86b502f6b17ee9ff262c1a64e1b0e24defc1660', value: this.value, selectable: this.selectable, onSdUpdate: this.handleSelect, onSdViewChange: this.handleViewChange })))));
8206
+ } }, hAsync("sd-date-picker-trigger", { key: 'b9fd9b90afa512aefdd4b227c66d0b4660b69318', displayText: this.value ?? '', placeholder: this.placeholder, disabled: this.disabled, size: this.size, onSdTriggerClick: this.handleTriggerClick })), (this.isOpen || this.isAnimatingOut) && (hAsync("sd-portal", { key: 'b6e439d2b507922cc2e345fe1fba856d77441cbc', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, hAsync("sd-calendar", { key: 'ae09060fec5542b9e30d051133f4bca3c772f5d9', elevated: true, value: this.value, selectable: this.selectable, onSdUpdate: this.handleSelect, onSdViewChange: this.handleViewChange })))));
7970
8207
  }
7971
8208
  static get watchers() { return {
7972
8209
  "isOpen": [{
@@ -8049,7 +8286,7 @@ class SdDatePickerTrigger {
8049
8286
  ? DATEPICKER_COLORS.icon.disabled
8050
8287
  : DATEPICKER_COLORS.icon.default,
8051
8288
  };
8052
- return (hAsync("div", { key: '57a23626b1a392be20dccead71b792590fab61b8', role: "button", tabindex: this.disabled ? -1 : 0, class: {
8289
+ return (hAsync("div", { key: 'df53dd75ead71167d7089daab5718c7ff1c990ae', role: "button", tabindex: this.disabled ? -1 : 0, class: {
8053
8290
  'sd-date-picker-trigger': true,
8054
8291
  'sd-date-picker-trigger--disabled': this.disabled,
8055
8292
  }, style: cssVars, onClick: this.handleClick, onKeyDown: e => {
@@ -8057,7 +8294,7 @@ class SdDatePickerTrigger {
8057
8294
  e.preventDefault();
8058
8295
  this.handleClick();
8059
8296
  }
8060
- } }, hAsync("sd-icon", { key: 'd4bb58eb97f9f2b98c27315547a85b019530ce5e', name: "date", size: Number(sizeTokens.iconSize), color: "var(--trigger-icon-color)", class: "sd-date-picker-trigger__icon" }), hAsync("span", { key: '25222882fa966eb5d6ead15e62b65af26586afbd', class: "sd-date-picker-trigger__text" }, hasValue ? this.displayText : this.placeholder)));
8297
+ } }, hAsync("sd-icon", { key: '76f41c99e1695eaa191cbc81ae057e65cb78e955', name: "date", size: Number(sizeTokens.iconSize), color: "var(--trigger-icon-color)", class: "sd-date-picker-trigger__icon" }), hAsync("span", { key: '4e1a4b2b41737f05dc1a4e642d317f5fc93bf9b2', class: "sd-date-picker-trigger__text" }, hasValue ? this.displayText : this.placeholder)));
8061
8298
  }
8062
8299
  static get style() { return sdDatePickerTriggerCss(); }
8063
8300
  static get cmpMeta() { return {
@@ -8477,7 +8714,7 @@ class SdDateRangePickerCalendar {
8477
8714
  '--range-panel-gap': `${RANGE_LAYOUT.panelGap}px`,
8478
8715
  '--range-divider': RANGE_LAYOUT.divider,
8479
8716
  };
8480
- return (hAsync(Fragment, { key: 'f871d59077f63aa2f7d1bbe857a9ff095331c82d' }, hAsync("div", { key: '47f4782b315450f07bccec8697d8e98a83e44faf', class: "sd-date-range-picker-calendar", style: cssVars }, this.renderYearNav(), hAsync("div", { key: 'cf0eb07920b298f2fce001cc8246d51e1174c27d', class: "sd-date-range-picker-calendar__panels" }, this.renderPanel(this.currentYear, this.currentMonth, true), hAsync("span", { key: 'e1d060092eb3b73c890bf0d62f6485ca2a09e187', class: "sd-date-range-picker-calendar__divider", "aria-hidden": "true" }), this.renderPanel(this.rightYear, this.rightMonth, false)))));
8717
+ return (hAsync(Fragment, { key: 'b4082936889d6bed77917d9b06aafa3c80d413a7' }, hAsync("div", { key: 'baf10fa376bf32982816258f950edf65d5622a99', class: "sd-date-range-picker-calendar", style: cssVars }, this.renderYearNav(), hAsync("div", { key: 'bacc88f756b64f4382b1c8c648269bb2c233dc54', class: "sd-date-range-picker-calendar__panels" }, this.renderPanel(this.currentYear, this.currentMonth, true), hAsync("span", { key: 'dcebf3cd120e2e606784c365c309d4c48296a5ae', class: "sd-date-range-picker-calendar__divider", "aria-hidden": "true" }), this.renderPanel(this.rightYear, this.rightMonth, false)))));
8481
8718
  }
8482
8719
  static get watchers() { return {
8483
8720
  "value": [{
@@ -8833,12 +9070,12 @@ class SdDropdownButton extends BaseDropdownEvent {
8833
9070
  if (!item.disabled) {
8834
9071
  this.itemIndex = index;
8835
9072
  }
8836
- } }, item.icon && (hAsync("sd-icon", { class: "sd-dropdown-button__menu-item-icon", name: item.icon, size: 12, color: "var(--sd-dropdown-button-menu-item-current-color)" })), hAsync("span", { class: "sd-dropdown-button__menu-item-label", innerHTML: item.label })));
9073
+ } }, item.icon && (hAsync("sd-icon", { class: "sd-dropdown-button__menu-item-icon", name: item.icon, size: 12, color: "var(--sd-dropdown-button-menu-item-current-color)" })), hAsync("span", { class: "sd-dropdown-button__menu-item-label", innerHTML: sanitizeInlineHtml(item.label) })));
8837
9074
  })))));
8838
9075
  }
8839
9076
  render() {
8840
9077
  const { config, preset } = this.resolvedConfig;
8841
- return (hAsync("div", { key: 'ac9063bf34834043d2c786b81fa487f004d54462', class: "sd-dropdown-button" }, hAsync("button", { key: 'cff62ed70794e18627b03c22d54accab9248b235', type: "button", class: this.getTriggerClasses(preset, config.size, this.disabled, this.isOpen), disabled: this.disabled, "aria-haspopup": "menu", "aria-expanded": String(this.isOpen), onClick: this.toggleDropdown, ref: el => (this.triggerRef = el), style: {
9078
+ return (hAsync("div", { key: '69cc705c92386162bfe3eaaec92d60c5daedd673', class: "sd-dropdown-button" }, hAsync("button", { key: 'c054cd7f979a5b5d7e6266fc098722b13f6419f6', type: "button", class: this.getTriggerClasses(preset, config.size, this.disabled, this.isOpen), disabled: this.disabled, "aria-haspopup": "menu", "aria-expanded": String(this.isOpen), onClick: this.toggleDropdown, ref: el => (this.triggerRef = el), style: {
8842
9079
  '--sd-dropdown-button-bg': config.color,
8843
9080
  '--sd-dropdown-button-bg-hover': PRESET_HOVER_BACKGROUNDS[preset],
8844
9081
  '--sd-dropdown-button-border': PRESET_BORDER_COLORS[preset],
@@ -8848,10 +9085,10 @@ class SdDropdownButton extends BaseDropdownEvent {
8848
9085
  '--sd-dropdown-button-disabled-bg': DROPDOWN_DISABLED_BACKGROUND,
8849
9086
  '--sd-dropdown-button-disabled-content': DROPDOWN_DISABLED_TEXT,
8850
9087
  '--sd-dropdown-button-disabled-border': DROPDOWN_DISABLED_BORDER,
8851
- } }, hAsync("span", { key: '8c3c382c1b23f63be23936cca44175950fd636b8', class: "sd-dropdown-button__trigger-label" }, this.label), hAsync("span", { key: '4b1e74dd6b5c680e07ef3b8391279ef4d9bb750d', class: "sd-dropdown-button__trigger-divider", "aria-hidden": "true" }), hAsync("span", { key: '1018c43a428abe211536f4f3f8069b70a7ff1845', class: {
9088
+ } }, hAsync("span", { key: 'de889d149ece2a5856dc37940cc8f8cc612546d7', class: "sd-dropdown-button__trigger-label" }, this.label), hAsync("span", { key: '8ae62fe45e6f292f4269da090adda28c6fd47854', class: "sd-dropdown-button__trigger-divider", "aria-hidden": "true" }), hAsync("span", { key: 'c2bc641416469fc2a375f07cb68f36e1c782ba48', class: {
8852
9089
  'sd-dropdown-button__trigger-icon': true,
8853
9090
  'sd-dropdown-button__trigger-icon--open': this.isOpen,
8854
- }, "aria-hidden": "true" }, hAsync("sd-icon", { key: '64248aa427db42e8c8ef65d806befaeab0943059', name: "chevronDown", size: DROPDOWN_CHEVRON_ICON_SIZE[config.size], color: "var(--sd-dropdown-button-current-content)" }))), this.renderDropdown(preset)));
9091
+ }, "aria-hidden": "true" }, hAsync("sd-icon", { key: '46111923f6a95fdd789aa9493a6941218e1fe0f5', name: "chevronDown", size: DROPDOWN_CHEVRON_ICON_SIZE[config.size], color: "var(--sd-dropdown-button-current-content)" }))), this.renderDropdown(preset)));
8855
9092
  }
8856
9093
  static get watchers() { return {
8857
9094
  "isOpen": [{
@@ -9124,20 +9361,20 @@ class SdField {
9124
9361
  : {}),
9125
9362
  }
9126
9363
  : {};
9127
- return (hAsync("div", { key: 'fa7d46fb1cdfa572c19fe5014c5f2df6579537fa', class: {
9364
+ return (hAsync("div", { key: '1cc135c77708546f23b699bf337c018f6c4d315e', class: {
9128
9365
  'sd-field': true,
9129
9366
  'sd-field--has-label': this.label !== '',
9130
9367
  'sd-field--has-addon': addon !== '',
9131
9368
  [this.fieldStatus]: this.fieldStatus !== '',
9132
- }, style: { ...sizeCssVars, ...labelCssVars, ...addonCssVars } }, hAsync("div", { key: '92d544710c5f49f17342c2c5d9f4e499e995b3b2', class: "sd-field__wrapper" }, this.renderLabel(this.label), hAsync("div", { key: '1740f6d0c385311cf714b7e64fd7f5513f758c3e', class: "sd-field__main", style: this.width !== '' && this.width !== 0
9369
+ }, style: { ...sizeCssVars, ...labelCssVars, ...addonCssVars } }, hAsync("div", { key: '506ace23aa27ad50a8ad60dcf6c71a0bdf04d7af', class: "sd-field__wrapper" }, this.renderLabel(this.label), hAsync("div", { key: '41b77a52c21eef8c38127362423378f1b9a6cb77', class: "sd-field__main", style: this.width !== '' && this.width !== 0
9133
9370
  ? {
9134
9371
  width: typeof this.width === 'number' ? `${this.width}px` : this.width,
9135
9372
  flex: 'none',
9136
9373
  }
9137
- : {} }, hAsync("div", { key: '1364e46db78dc55b1139035296d2e6f33cb8fbb6', class: {
9374
+ : {} }, hAsync("div", { key: '1f3c5f2009a0d96b8a3544c58b96f7ecc4ddee6b', class: {
9138
9375
  'sd-field__control': true,
9139
9376
  'sd-field__control--has-addon': addon !== '',
9140
- } }, addon && hAsync("div", { key: '638c670ec084e51af7d9ec566c93e00a3d158eef', class: "sd-field__addon" }, addon), hAsync("slot", { key: 'e1b00ee9db0a0e8dade33166dc908183304bc37f' })), this.errorMsg !== '' || this.errorMessage !== '' ? (hAsync("div", { class: "sd-field__error-message" }, this.errorMsg !== '' ? this.errorMsg : this.errorMessage)) : (this.hint !== '' && hAsync("div", { class: "sd-field__hint" }, this.hint))))));
9377
+ } }, addon && hAsync("div", { key: '39a28adaa959b89d3724672910157662e50b35ed', class: "sd-field__addon" }, addon), hAsync("slot", { key: '0c9360e8644df658c389554c13a04bc22985e84d' })), this.errorMsg !== '' || this.errorMessage !== '' ? (hAsync("div", { class: "sd-field__error-message" }, this.errorMsg !== '' ? this.errorMsg : this.errorMessage)) : (this.hint !== '' && hAsync("div", { class: "sd-field__hint" }, this.hint))))));
9141
9378
  }
9142
9379
  renderLabel(label) {
9143
9380
  if (label == null || label === '')
@@ -9623,7 +9860,7 @@ class SdFloatingPopover {
9623
9860
  }
9624
9861
  }
9625
9862
  render() {
9626
- return hAsync("slot", { key: 'c4543ebf24c83fc67bdda0340adb00f02761b62e' });
9863
+ return hAsync("slot", { key: '5b469964bfbbdf1d40c6d7c88a266d655fe3e029' });
9627
9864
  }
9628
9865
  static get style() { return sdFloatingPortalCss(); }
9629
9866
  static get cmpMeta() { return {
@@ -10110,10 +10347,10 @@ class SdGuide {
10110
10347
  const buttonClasses = ['sd-guide__button', `sd-guide__button--type-${this.type ?? 'tip'}`];
10111
10348
  if (isActive)
10112
10349
  buttonClasses.push('sd-guide__button--active');
10113
- return (hAsync("div", { key: '9d5ad3049230e61d1aae3cd9270dd84f89fb5b1c', class: "sd-guide", style: this.guideStyle }, hAsync("sd-button", { key: 'ac55b4d96f64695a0fbfedf7bf0e451b7afdc499', ref: el => (this.guideRef = el), class: buttonClasses.join(' '), name: isActive ? 'primary_sm' : 'neutral_outline_sm', label: this.label || defaultLabel, icon: iconName, onSdClick: this.handleClickGuide }), this.popupShow && (hAsync("sd-portal", { key: 'df51b29383f7449720d8700387bb44fbd4dbebba', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, hAsync("div", { key: '265390b48b9d37e9c7f92e19ef124da3faae6590', style: { position: 'absolute', width: '0px', height: '0px' } }, hAsync("div", { key: 'b45c101ac8dd6e4d490661b377979226335defa2', class: "sd-guide__popup", style: {
10350
+ return (hAsync("div", { key: 'ea4f220faf6165f7650360f74a19d9f781b81489', class: "sd-guide", style: this.guideStyle }, hAsync("sd-button", { key: 'c90eaa6cc42a9a2f20b8fc79db16697db0cf2ff2', ref: el => (this.guideRef = el), class: buttonClasses.join(' '), name: isActive ? 'primary_sm' : 'neutral_outline_sm', label: this.label || defaultLabel, icon: iconName, onSdClick: this.handleClickGuide }), this.popupShow && (hAsync("sd-portal", { key: '21f57a739141ffa36f3b799a2688ca5b3c1bd428', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, hAsync("div", { key: '2a803402b120509ef8b6de361f360a7b5b96e9db', style: { position: 'absolute', width: '0px', height: '0px' } }, hAsync("div", { key: '3e591b85ac24ea1db37bdaaf130f983d70ef2f36', class: "sd-guide__popup", style: {
10114
10351
  ...this.guideStyle,
10115
10352
  width: this.popupWidth != null ? this.popupWidth + 'px' : '426px',
10116
- } }, hAsync("sd-ghost-button", { key: 'd91722fedd8cd4f74e673964c90b1840ccfcd8e1', class: "sd-guide__popup__close", icon: "close", ariaLabel: "close", size: "sm", onSdClick: this.closeDropdown }), hAsync("div", { key: 'b7bb7ffa79363939f4b6144d48732e686ec5e365', class: "sd-guide__popup__header" }, hAsync("sd-icon", { key: 'cfe42d9139cdae8a90ce81af3dbc7636dc56b380', name: iconName, size: 24, color: popupIconColor }), hAsync("h3", { key: '9724df2304c13c36e21a6e1ef3be7d4b0f5e5454', class: "sd-guide__popup__title" }, this.popupTitle || defaultLabel)), hAsync("ul", { key: '8f5eec181c32b7d0220963ce57e82e952094ad36', class: "sd-guide__popup__list" }, this.renderListItem(this.message))))))));
10353
+ } }, hAsync("sd-ghost-button", { key: '1aa20f7bd3a1ba45c4932a67a8c1e67d6e068702', class: "sd-guide__popup__close", icon: "close", ariaLabel: "close", size: "sm", onSdClick: this.closeDropdown }), hAsync("div", { key: 'e48378d1731e0b9fcd5990cb908ae3af236d0346', class: "sd-guide__popup__header" }, hAsync("sd-icon", { key: 'c8c71c7c2f0fdb25e3741415c1f1fae1a8d4d3d2', name: iconName, size: 24, color: popupIconColor }), hAsync("h3", { key: '4996225c27fbeae4fd9b4d68d6e493d87225d427', class: "sd-guide__popup__title" }, this.popupTitle || defaultLabel)), hAsync("ul", { key: 'edb2d35594b47f19f2e847ba546fac0fc19b21b4', class: "sd-guide__popup__list" }, this.renderListItem(this.message))))))));
10117
10354
  }
10118
10355
  // 현재 2depth까지만 스타일 적용
10119
10356
  renderListItem(message, depth = 0) {
@@ -10128,7 +10365,7 @@ class SdGuide {
10128
10365
  return listItems;
10129
10366
  }
10130
10367
  renderLi = (message, depth) => {
10131
- return (hAsync("li", { class: `sd-guide__popup__list__item sd-guide__popup__list__item--depth-${depth}` }, hAsync("p", { innerHTML: message })));
10368
+ return (hAsync("li", { class: `sd-guide__popup__list__item sd-guide__popup__list__item--depth-${depth}` }, hAsync("p", { innerHTML: sanitizeInlineHtml(message) })));
10132
10369
  };
10133
10370
  static get style() { return sdGuideCss(); }
10134
10371
  static get cmpMeta() { return {
@@ -10614,12 +10851,12 @@ class SdInput {
10614
10851
  '--sd-system-size-field-sm-height': `${sizeTokens.height}px`,
10615
10852
  '--sd-system-radius-field-sm': `${sizeTokens.radius}px`,
10616
10853
  };
10617
- return (hAsync("sd-field", { key: 'c24b885ef9ca21fb69c1b67f2619896d4bd56155', 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 }, hAsync("label", { key: '45a5669d2c8d7d571f50152f81139cedc8a2db3b', class: "sd-input__content" }, hAsync("slot", { key: 'c1d032ee22344725e1d041c2351dd7785a8b6b5d', name: "prefix" }), hAsync("input", { key: '8433abb36e666a7546870a9e3b77325e9c39551a', 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 }), hAsync("slot", { key: '9f5eef3c48f88b90be2c821b1d43e2e9a9f91441', name: "suffix" }), this.clearable && this.internalValue && !this.disabled && !this.readonly && (hAsync("sd-ghost-button", { key: '62ab3e8e02a9db5424e573542dc10bde5a9fc4b8', icon: "close", ariaLabel: "clear", size: "xxs", disabled: this.disabled, class: "sd-input__clear-icon", onClick: async () => {
10854
+ return (hAsync("sd-field", { key: 'e6e58ebc18e458f1d52a3f8afcd0892bfd8ffa45', 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 }, hAsync("label", { key: '9bdcdf6e515a57e9cd72e263bcd8d2c59aac22c9', class: "sd-input__content" }, hAsync("slot", { key: '0273119e456386ba23c361ef1e826b4d2d9bf1be', name: "prefix" }), hAsync("input", { key: 'ad61c8ff1372f6163f2e742cf31884363e8fd31f', 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 }), hAsync("slot", { key: 'e68578946f23fff0e4abc3f9919d12b3d624b5f8', name: "suffix" }), this.clearable && this.internalValue && !this.disabled && !this.readonly && (hAsync("sd-ghost-button", { key: '3c64ce859d71dbd57800a4a34b6a09696f90ff60', icon: "close", ariaLabel: "clear", size: "xxs", disabled: this.disabled, class: "sd-input__clear-icon", onClick: async () => {
10618
10855
  if (this.disabled || this.readonly)
10619
10856
  return;
10620
10857
  this.internalValue = '';
10621
10858
  await this.formField?.sdValidate();
10622
- } })), this.type === 'password' && (hAsync("sd-ghost-button", { key: '0a16665e73a674c7208c7f488b50442c353e3fde', icon: this.passwordVisible ? 'visibilityOn' : 'visibilityOff', ariaLabel: "visibility", size: "xxs", disabled: this.disabled || this.readonly, class: "sd-input__password-icon", onClick: () => {
10859
+ } })), this.type === 'password' && (hAsync("sd-ghost-button", { key: 'db4c66f0b3e91d780262ec7320fc15ffc32e622d', icon: this.passwordVisible ? 'visibilityOn' : 'visibilityOff', ariaLabel: "visibility", size: "xxs", disabled: this.disabled || this.readonly, class: "sd-input__password-icon", onClick: () => {
10623
10860
  if (this.disabled || this.readonly)
10624
10861
  return;
10625
10862
  this.passwordVisible = !this.passwordVisible;
@@ -11030,7 +11267,7 @@ class SdLinearProgress {
11030
11267
  clipPath: `inset(0 ${100 - this.clampedValue}% 0 0)`,
11031
11268
  };
11032
11269
  const valueText = `${Math.round(this.clampedValue)}%`;
11033
- return (hAsync(Host, { key: '6fb48662dc2c921237a387c748bbc529ba5ea77f', style: hostStyle }, hAsync("div", { key: 'e8fa0fdf4ac3ceeaae74fff6194c1f66b9138bc7', class: 'sd-linear-progress__track' }, hAsync("div", { key: '7016850214e73fc6a9079e8f54674976d0320adf', class: 'sd-linear-progress__fill', style: fillStyle }), !this.indeterminate && (hAsync("span", { key: '154b18f54d79ddbacf720370dc9ace94508c6667', class: 'sd-linear-progress__value sd-linear-progress__value--on-track' }, valueText)), !this.indeterminate && (hAsync("span", { key: '555e41d961ad7d061ac71347e998641d104f499d', class: 'sd-linear-progress__value sd-linear-progress__value--on-fill', style: valueOnFillStyle }, valueText))), this.label && hAsync("span", { key: 'f90f3df3b959aee549fab33a62a85d6df6ba8410', class: 'sd-linear-progress__label' }, this.label)));
11270
+ return (hAsync(Host, { key: 'ae56f969b9d4cd6e6e4d697d919ad122e2e4dad7', style: hostStyle }, hAsync("div", { key: '86af10d7d1e6e343700a1c161745599ec863b3d7', class: 'sd-linear-progress__track' }, hAsync("div", { key: '46d5dfe06e82facc5dc83977584bc93970b7fd28', class: 'sd-linear-progress__fill', style: fillStyle }), !this.indeterminate && (hAsync("span", { key: 'd1ae1220a482c50bc770a22ccbc45ccb66ebfc27', class: 'sd-linear-progress__value sd-linear-progress__value--on-track' }, valueText)), !this.indeterminate && (hAsync("span", { key: '39bc3af718e0797c5e06cda62ee8a6047f303a34', class: 'sd-linear-progress__value sd-linear-progress__value--on-fill', style: valueOnFillStyle }, valueText))), this.label && hAsync("span", { key: '944ca6d50f6588894e97265a8ef0484f3e676981', class: 'sd-linear-progress__label' }, this.label)));
11034
11271
  }
11035
11272
  static get style() { return sdLinearProgressCss(); }
11036
11273
  static get cmpMeta() { return {
@@ -11064,10 +11301,10 @@ class SdLoadingContainer {
11064
11301
  this.visible = false;
11065
11302
  }
11066
11303
  render() {
11067
- return (hAsync("div", { key: '08675a9dc0b1c11c42fb65a414f0fed88d03f1b0', class: {
11304
+ return (hAsync("div", { key: '0b6c91593d615ac39f8a4fc30df8466969ae4d9b', class: {
11068
11305
  'sd-loading-container': true,
11069
11306
  'sd-loading-container--visible': this.visible,
11070
- }, "aria-hidden": this.visible ? 'false' : 'true' }, hAsync("div", { key: '4a10e9009d824bef1bf2f9930941931dc1fef43a', class: "sd-loading-container__backdrop" }), hAsync("div", { key: '88edd1c19f5d22057e1e14f1e6bd10e23f45ec7b', class: "sd-loading-container__content" }, hAsync("sd-circle-progress", { key: 'b9c67678d799e429ec6cb2d3094da7bcc4cea150', indeterminate: true, type: "inverse" }), this.message && (hAsync("p", { key: 'ce016465e9d8b20f2121e8846bff75bbad5d7d94', class: "sd-loading-container__message" }, this.message)))));
11307
+ }, "aria-hidden": this.visible ? 'false' : 'true' }, hAsync("div", { key: 'de41bd4fe1c824c9517d000b91abb817ea58e90c', class: "sd-loading-container__backdrop" }), hAsync("div", { key: '4de64a1540a0af9c955bbea5d4c83c129e6846ea', class: "sd-loading-container__content" }, hAsync("sd-circle-progress", { key: 'ae2955bc1d40123f06e7c9e107afe4b46c3b0175', indeterminate: true, type: "inverse" }), this.message && (hAsync("p", { key: '6c58c3fd4074edd48cdd0d21eef15c49c94626db', class: "sd-loading-container__message" }, this.message)))));
11071
11308
  }
11072
11309
  static get style() { return sdLoadingContainerCss(); }
11073
11310
  static get cmpMeta() { return {
@@ -11163,7 +11400,7 @@ class SdLoadingModal {
11163
11400
  '--sd-loading-modal-width': this.toCssSize(this.width) ?? `${LOADING_MODAL_LAYOUT.minWidth}px`,
11164
11401
  '--sd-loading-modal-height': this.toCssSize(this.height) ?? `${LOADING_MODAL_LAYOUT.minHeight}px`,
11165
11402
  };
11166
- return (hAsync(Host, { key: '3d792e07772b93de139fa505f061004b037ed05b', style: hostStyle }, hAsync("div", { key: '8b63d47c502bdd66f893a484c4af36d2e8302081', class: "sd-loading-modal" }, hAsync("div", { key: '5b35a93e1aed2e8d9f5eebfcbe0222c4f38b5536', class: "sd-loading-modal__content" }, this.resolvedState === 'loading' ? (hAsync("sd-circle-progress", { indeterminate: true })) : (hAsync("sd-icon", { class: "sd-loading-modal__icon", name: "warningOutline", size: LOADING_MODAL_LAYOUT.contentSize, color: LOADING_MODAL_COLORS.errorIcon }))), hAsync("div", { key: '591bae1563f4b5c5dc8bce22161d99929fb18ce5', class: "sd-loading-modal__message-wrapper" }, Array.isArray(this.resolvedMessage) ? (this.resolvedMessage.map(message => (hAsync("p", { class: "sd-loading-modal__message" }, message)))) : (hAsync("p", { class: "sd-loading-modal__message" }, this.resolvedMessage))), this.useButton && (hAsync("div", { key: '577acd55fb35229459990f7f1ca4f710c26c51d4', class: "sd-loading-modal__button" }, hAsync("sd-button", { key: 'cda4f1b9a8bee1897efb53671c0f715858377ba7', name: LOADING_MODAL_BUTTON_PRESET, label: this.resolvedButtonLabel, onSdClick: this.handleClick }))))));
11403
+ return (hAsync(Host, { key: 'e4b95f8fcd666e0b616d193c40f7b57313527a78', style: hostStyle }, hAsync("div", { key: '397f63795ab8523cb41a989c7fc0e2187ceb3d18', class: "sd-loading-modal" }, hAsync("div", { key: '1c2f6f16dbc8fe3b76db29707602b3df6de1380e', class: "sd-loading-modal__content" }, this.resolvedState === 'loading' ? (hAsync("sd-circle-progress", { indeterminate: true })) : (hAsync("sd-icon", { class: "sd-loading-modal__icon", name: "warningOutline", size: LOADING_MODAL_LAYOUT.contentSize, color: LOADING_MODAL_COLORS.errorIcon }))), hAsync("div", { key: '439302e28cd4843f86f2060c66fe3e5c358ec379', class: "sd-loading-modal__message-wrapper" }, Array.isArray(this.resolvedMessage) ? (this.resolvedMessage.map(message => (hAsync("p", { class: "sd-loading-modal__message" }, message)))) : (hAsync("p", { class: "sd-loading-modal__message" }, this.resolvedMessage))), this.useButton && (hAsync("div", { key: 'a6facf71c52d242ff521adbf7f9161c51431cf9d', class: "sd-loading-modal__button" }, hAsync("sd-button", { key: '26d66b9ccf569bbf7bd9d3819fb0380eced791a2', name: LOADING_MODAL_BUTTON_PRESET, label: this.resolvedButtonLabel, onSdClick: this.handleClick }))))));
11167
11404
  }
11168
11405
  static get style() { return sdLoadingModalCss(); }
11169
11406
  static get cmpMeta() { return {
@@ -11954,15 +12191,15 @@ class SdNumberInput {
11954
12191
  '--sd-textinput-input-hint-typography-line-height': `${NUMBER_INPUT_HINT.typography.lineHeight}px`,
11955
12192
  '--sd-textinput-input-contents-gap': `${NUMBER_INPUT_CONTENTS_GAP}px`,
11956
12193
  };
11957
- return (hAsync("sd-field", { key: '3ed260707f7e1b1a88d1407bb4b3c1965b302bcf', 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, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, hAsync("div", { key: '889cd4055b46e0727aed2b78f2a8bbeeca88cfed', class: {
12194
+ return (hAsync("sd-field", { key: 'b32943cd55dad7d6bb4fc1a18812360c2ab01a83', 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, ref: el => (this.formField = el), onMouseEnter: () => (this.hovered = true), onMouseLeave: () => (this.hovered = false), style: cssVars }, hAsync("div", { key: '050395b8ab3bd77ff5f786b3de182b7a35b8b01f', class: {
11958
12195
  'sd-number-input__content': true,
11959
12196
  'sd-number-input__content--no-stepper': !this.useButton,
11960
- } }, this.useButton && (hAsync("button", { key: '5213f04a1db8a779762ae41672fd016388a06aa7', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--decrement", disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, hAsync("sd-icon", { key: '76910ba2b46a78eb2e4aaf7241eeb7aa1223c92a', name: "minus", size: iconSize, color: this.isDecrementDisabled()
12197
+ } }, this.useButton && (hAsync("button", { key: 'e76188a1f1f76450227328854ee3048d7b2b9e85', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--decrement", disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, hAsync("sd-icon", { key: '544e5a41790302df564ca0a3e83e2f9052c3f290', name: "minus", size: iconSize, color: this.isDecrementDisabled()
11961
12198
  ? NUMBER_INPUT_STEPPER.icon.disabled
11962
- : NUMBER_INPUT_STEPPER.icon.default }))), this.inputPrefix && hAsync("span", { key: '273b809ff5bd5ebb2e8cd09a9df3f6f84167aeb2', class: "sd-number-input__prefix" }, this.inputPrefix), hAsync("input", { key: '72917348a5ded30f5d8c4066af8e56d50de67db0', 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: {
12199
+ : NUMBER_INPUT_STEPPER.icon.default }))), this.inputPrefix && hAsync("span", { key: '34e8c9af864332b8614e3c9a5d2cf94310a2555d', class: "sd-number-input__prefix" }, this.inputPrefix), hAsync("input", { key: '07e0484ad473e010d9ba8f971875bd463585ca47', 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: {
11963
12200
  textAlign: this.useButton ? 'center' : 'right',
11964
12201
  ...this.inputStyle,
11965
- } }), this.inputSuffix && hAsync("span", { key: '232aa43852396a617e49403d30b4514aaf896740', class: "sd-number-input__suffix" }, this.inputSuffix), this.useButton && (hAsync("button", { key: 'f9dab4cd21deb933e72a8ad906cafbbf1cae1e5a', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--increment", disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, hAsync("sd-icon", { key: '73208aca8e5e9be431ba03b4755053c74ec70296', name: "add", size: iconSize, color: this.isIncrementDisabled()
12202
+ } }), this.inputSuffix && hAsync("span", { key: '990a3e1dc5cfeaa8e1823391e0bb0218ce4cfb02', class: "sd-number-input__suffix" }, this.inputSuffix), this.useButton && (hAsync("button", { key: 'd2496ab718cf44fd658c871086d8e67c66380668', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--increment", disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, hAsync("sd-icon", { key: 'fcab0109e01a1c683bf09349cb699534eaa1a8d1', name: "add", size: iconSize, color: this.isIncrementDisabled()
11966
12203
  ? NUMBER_INPUT_STEPPER.icon.disabled
11967
12204
  : NUMBER_INPUT_STEPPER.icon.default }))))));
11968
12205
  }
@@ -12169,13 +12406,13 @@ class SdPagination {
12169
12406
  '--sd-pagination-bg-selected': PAGINATION_COLORS.bgSelected,
12170
12407
  '--sd-pagination-item-width': `${this.buttonWidth}px`,
12171
12408
  };
12172
- return (hAsync("div", { key: '251d9b3bcff3cf985d62b1a8717f622d209b3fa1', class: {
12409
+ return (hAsync("div", { key: 'b16a4c0ff75913e80fdb9a539d8afb714931a531', class: {
12173
12410
  'sd-pagination': true,
12174
12411
  'sd-pagination--simple': this.simple,
12175
- }, style: cssVars }, hAsync("div", { key: 'd143917676ccd97c1f4fc8e7220857d543efa5fd', class: "sd-pagination__group sd-pagination__group--prev" }, this.renderPrevButtons()), this.simple ? (hAsync("div", { class: "sd-pagination__info" }, hAsync("span", { class: "sd-pagination__current" }, this.currentPage), hAsync("span", { class: "sd-pagination__divider" }, "/"), hAsync("span", { class: "sd-pagination__last" }, this.lastPage))) : (hAsync("div", { class: "sd-pagination__numbers" }, this.pageNumbers.map(n => (hAsync("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
12412
+ }, style: cssVars }, hAsync("div", { key: '42d019164c409d09d13b94845c9ee99ece41a8f3', class: "sd-pagination__group sd-pagination__group--prev" }, this.renderPrevButtons()), this.simple ? (hAsync("div", { class: "sd-pagination__info" }, hAsync("span", { class: "sd-pagination__current" }, this.currentPage), hAsync("span", { class: "sd-pagination__divider" }, "/"), hAsync("span", { class: "sd-pagination__last" }, this.lastPage))) : (hAsync("div", { class: "sd-pagination__numbers" }, this.pageNumbers.map(n => (hAsync("button", { type: "button", "aria-current": this.currentPage === n ? 'page' : undefined, class: {
12176
12413
  'sd-pagination__item': true,
12177
12414
  'sd-pagination__item--selected': this.currentPage === n,
12178
- }, onClick: () => this.handlePageChange(n) }, n))))), hAsync("div", { key: 'e58053cef21c57d88f5b1357101507418b2db002', class: "sd-pagination__group sd-pagination__group--next" }, this.renderNextButtons())));
12415
+ }, onClick: () => this.handlePageChange(n) }, n))))), hAsync("div", { key: '9695ce3aaede66529547151800fede0f5413e7d8', class: "sd-pagination__group sd-pagination__group--next" }, this.renderNextButtons())));
12179
12416
  }
12180
12417
  static get style() { return sdPaginationCss(); }
12181
12418
  static get cmpMeta() { return {
@@ -12326,6 +12563,7 @@ var popupTokens = {
12326
12563
  };
12327
12564
 
12328
12565
  const { popup } = popupTokens;
12566
+ const shadowSpreadMd = systemTokens.shadow.spread.md;
12329
12567
  const POPUP_LAYOUT = {
12330
12568
  bodyBg: popup.bg,
12331
12569
  };
@@ -12342,7 +12580,6 @@ const POPUP_HEADER = {
12342
12580
  fontWeight: popup.header.typography.fontWeight,
12343
12581
  fontSize: Number(popup.header.typography.fontSize),
12344
12582
  lineHeight: Number(popup.header.typography.lineHeight),
12345
- // TODO: 토큰 반영 후 교체
12346
12583
  height: 50,
12347
12584
  paddingX: 16,
12348
12585
  paddingY: 10,
@@ -12352,11 +12589,9 @@ const POPUP_FOOTER = {
12352
12589
  paddingX: Number(popup.footer.paddingX),
12353
12590
  paddingY: Number(popup.footer.paddingY),
12354
12591
  gap: Number(popup.footer.gap),
12355
- // TODO: 토큰 반영 후 교체
12356
12592
  height: 52,
12357
12593
  slotHeight: 36,
12358
- // TODO: shadow/spread/md 토큰 반영 교체
12359
- shadow: '0 -2px 8px 0 rgba(0, 0, 0, 0.08)',
12594
+ shadow: `${shadowSpreadMd.x}px ${shadowSpreadMd.y}px ${shadowSpreadMd.blur}px ${shadowSpreadMd.spread}px ${shadowSpreadMd.color}`,
12360
12595
  };
12361
12596
 
12362
12597
  const sdPopupCss = () => `sd-popup{display:block;width:100%;height:100%}sd-popup .sd-popup{display:flex;flex-direction:column;width:100%;height:100%;background:var(--sd-popup-bg);overflow:hidden;box-sizing:border-box}sd-popup .sd-popup__header{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:100%;height:var(--sd-popup-header-height);padding:var(--sd-popup-header-padding-y) var(--sd-popup-header-padding-x);background:var(--sd-popup-header-bg);box-sizing:border-box}sd-popup .sd-popup__title{margin:0;color:var(--sd-popup-header-title-color);font-family:var(--sd-popup-header-font-family);font-weight:var(--sd-popup-header-font-weight);font-size:var(--sd-popup-header-font-size);line-height:var(--sd-popup-header-line-height);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}sd-popup .sd-popup__body{flex:1 1 auto;min-height:0;overflow:auto}sd-popup .sd-popup__footer{display:flex;align-items:center;flex-shrink:0;width:100%;height:var(--sd-popup-footer-height);padding:var(--sd-popup-footer-padding-y) var(--sd-popup-footer-padding-x);gap:var(--sd-popup-footer-gap);background:var(--sd-popup-footer-bg);box-shadow:var(--sd-popup-footer-shadow);box-sizing:border-box;position:relative;z-index:1}sd-popup .sd-popup__footer-slot{display:flex;align-items:center;height:var(--sd-popup-footer-slot-height)}sd-popup .sd-popup__footer-slot--left{justify-content:flex-start;flex:1 1 auto;min-width:0}sd-popup .sd-popup__footer-slot:empty{display:none}sd-popup .sd-popup__submit{flex-shrink:0;margin-left:auto}`;
@@ -12372,6 +12607,8 @@ class SdPopup {
12372
12607
  }
12373
12608
  popupTitle = '';
12374
12609
  type = 'default';
12610
+ // 기본 footer 표시가 자연스러운 UX. prop 이름 변경(hideFooter 등)은 public API breaking 이라 별도 이슈로 분리.
12611
+ // eslint-disable-next-line stencil/ban-default-true
12375
12612
  useFooter = true;
12376
12613
  submitButtonProps;
12377
12614
  submit;
@@ -12399,7 +12636,7 @@ class SdPopup {
12399
12636
  ...DEFAULT_SUBMIT_BUTTON_PROPS,
12400
12637
  ...this.submitButtonProps,
12401
12638
  };
12402
- return (hAsync("div", { key: '0c9f1cd261fa533044309342cfbaae8f5b87ae31', class: `sd-popup sd-popup--${this.type}`, style: cssVars }, hAsync("header", { key: 'd8aa4db4d150419f5653fd93e204cc4bd865c35e', class: "sd-popup__header" }, hAsync("h2", { key: 'fce95fce48a91c3a2b60f0b1169113cd2ff157d6', class: "sd-popup__title" }, this.popupTitle)), hAsync("div", { key: 'c730895828c14a6a80fe6bebecb08f386cc84a78', class: "sd-popup__body" }, hAsync("slot", { key: 'f3402c32fdc55794fb2c877a41c9f73e3c0d6d9f' })), this.useFooter && (hAsync("footer", { key: '4b04ebc0dccc07dd9466c06c940d3444346603ba', class: "sd-popup__footer" }, hAsync("div", { key: '78b35347121652d647e3601e6c6164e8e21288ca', class: "sd-popup__footer-slot sd-popup__footer-slot--left" }, hAsync("slot", { key: '98836c28e7de97466cf4285c0458a8709c3788bb', name: "footer-left" })), hAsync("sd-button", { key: 'd9ab45765c66a2f86aec2df9fc056fa1f4605259', ...submitButtonProps, class: "sd-popup__submit", onSdClick: () => this.submit.emit() })))));
12639
+ return (hAsync("div", { key: 'fe8ca033482913b9c8c7a62963d81d8c5c86c724', class: `sd-popup sd-popup--${this.type}`, style: cssVars }, hAsync("header", { key: 'b27afc04689384abc8cdd45e67e4765c3fef82e9', class: "sd-popup__header" }, hAsync("h2", { key: '15d6cf170e483bfdea861aa7a218df8379d83be2', class: "sd-popup__title" }, this.popupTitle)), hAsync("div", { key: 'daf70c8196ad95b214c978166f547a2a2fa56814', class: "sd-popup__body" }, hAsync("slot", { key: 'f8f4a9f93b88404993e2c8f7155abe4756f9bdba' })), this.useFooter && (hAsync("footer", { key: '38ff051abd11378ad0a83b2d634985d689e0dc27', class: "sd-popup__footer" }, hAsync("div", { key: '149a3de3d7ab0703d9cec41b35af23a6eebd67de', class: "sd-popup__footer-slot sd-popup__footer-slot--left" }, hAsync("slot", { key: '2507cece435fa3e00ea698bebf6c980fea081521', name: "footer-left" })), hAsync("sd-button", { key: '5ae38a07e39437d6f3b8aa111258d60aa044152d', ...submitButtonProps, class: "sd-popup__submit", onSdClick: () => this.submit.emit() })))));
12403
12640
  }
12404
12641
  static get style() { return sdPopupCss(); }
12405
12642
  static get cmpMeta() { return {
@@ -12642,7 +12879,7 @@ class SdPortal {
12642
12879
  this.close.emit();
12643
12880
  }
12644
12881
  render() {
12645
- return hAsync("slot", { key: '1f46253fe0f70fda84643e8d3025c1fd47090f5c' });
12882
+ return hAsync("slot", { key: 'a227fa8a0639de7fd3a014762998692151284f87' });
12646
12883
  }
12647
12884
  static get watchers() { return {
12648
12885
  "open": [{
@@ -13320,15 +13557,15 @@ class SdSelect {
13320
13557
  this.closeDropdown();
13321
13558
  },
13322
13559
  };
13323
- return (hAsync("sd-field", { key: 'c433e21047632ae1e7901e11f6f9d83070f8d83c', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, onMouseEnter: () => {
13560
+ return (hAsync("sd-field", { key: '21849c194994f51c36b2fa5eafd606230b21e365', name: this.name, label: this.label, labelWidth: this.labelWidth, addonLabel: this.addonLabel, addonAlign: this.addonAlign, hint: this.hint, errorMessage: this.errorMessage, width: this.width, rules: this.rules, error: this.error, disabled: this.disabled, focused: this.focused, hovered: this.hovered, icon: this.icon, labelTooltip: this.labelTooltip, labelTooltipProps: this.labelTooltipProps, onMouseEnter: () => {
13324
13561
  this.hovered = true;
13325
13562
  }, onMouseLeave: () => {
13326
13563
  this.hovered = false;
13327
- } }, hAsync("div", { key: 'f04f2f331c27745035c35d96d5262398065589a8', class: "sd-select", ref: el => {
13564
+ } }, hAsync("div", { key: 'bcba54ed8d325a540d14af14c9b3bf332f631ce8', class: "sd-select", ref: el => {
13328
13565
  this.triggerRef = el;
13329
- } }, hAsync("sd-select-trigger", { key: 'b66e83ff248618c815b155f27445f3da9e91361b', ref: el => {
13566
+ } }, hAsync("sd-select-trigger", { key: '72e361ca6e162eee56b82398902e89226e980d3d', ref: el => {
13330
13567
  this.triggerComponentRef = el;
13331
- }, displayText: this.displayText, placeholder: this.placeholder ?? '선택', disabled: this.disabled, isOpen: this.isOpen, onSdTriggerClick: this.handleTriggerClick, onSdTriggerFocus: this.handleTriggerFocus, onSdTriggerBlur: this.handleTriggerBlur })), (this.isOpen || this.isAnimatingOut) && (hAsync("sd-portal", { key: 'bd5b46d8e4849d235e39a9d9cfc549fdbe260076', ...portalProps }, hAsync("sd-select-listbox", { key: '81266da14ee4e59b4cedd4b364c18fea4d3c4f7f', type: this.type, options: this.options, value: this.value, emitValue: this.emitValue, useSearch: this.useSearch, useSelectAll: this.useSelectAll, triggerWidth: this.triggerWidth, maxWidth: this.resolvedMaxDropdownWidth, maxHeight: this.resolvedDropdownHeight, onSdOptionSelect: event => this.handleOptionSelect(event.detail) })))));
13568
+ }, displayText: this.displayText, placeholder: this.placeholder ?? '선택', disabled: this.disabled, isOpen: this.isOpen, onSdTriggerClick: this.handleTriggerClick, onSdTriggerFocus: this.handleTriggerFocus, onSdTriggerBlur: this.handleTriggerBlur })), (this.isOpen || this.isAnimatingOut) && (hAsync("sd-portal", { key: '0ff55857cbc146db57caa53d560752d0fae8413b', ...portalProps }, hAsync("sd-select-listbox", { key: '20c103309dc7f2eaf4bee6abae271606b64ace8b', type: this.type, options: this.options, value: this.value, emitValue: this.emitValue, useSearch: this.useSearch, useSelectAll: this.useSelectAll, triggerWidth: this.triggerWidth, maxWidth: this.resolvedMaxDropdownWidth, maxHeight: this.resolvedDropdownHeight, onSdOptionSelect: event => this.handleOptionSelect(event.detail) })))));
13332
13569
  }
13333
13570
  static get watchers() { return {
13334
13571
  "isOpen": [{
@@ -13620,7 +13857,7 @@ class SdSelectListItem {
13620
13857
  return (
13621
13858
  // 키보드 네비게이션은 부모 listbox 의 ArrowUp/Down + Enter 가 담당. 항목 자체는 role=option, tabindex=-1 으로 표시.
13622
13859
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events
13623
- hAsync("div", { key: '93e8bf04e69d9e6f066952570ed06076bdd17e57', role: "option", tabindex: -1, "aria-selected": this.isSelected === true ? 'true' : 'false', class: {
13860
+ hAsync("div", { key: '37189acb2854061fd120d662050fddddb396170c', role: "option", tabindex: -1, "aria-selected": this.isSelected === true ? 'true' : 'false', class: {
13624
13861
  'sd-select-list-item': true,
13625
13862
  'sd-select-list-item--group': isGroup,
13626
13863
  'sd-select-list-item--depth1-group': isDepth1Group,
@@ -13630,7 +13867,7 @@ class SdSelectListItem {
13630
13867
  'sd-select-list-item--focused': this.isFocused,
13631
13868
  'sd-select-list-item--selectable': this.isSelectable && !this.option.disabled,
13632
13869
  'sd-select-list-item--disabled': !!this.option.disabled,
13633
- }, style: cssVars, onClick: this.handleClick }, this.useCheckbox && (hAsync("sd-checkbox", { key: '2b6a17361c2e5c65c6dac21895ef397cadeec9a3', value: this.isSelected === null ? null : !!this.isSelected, disabled: this.option.disabled, inverse: this.isFocused && this.isSelected !== false, class: "sd-select-list-item__checkbox", onClick: this.handleCheckboxClick, onSdUpdate: this.handleCheckboxUpdate })), hAsync("span", { key: '158e45d52b3b5394f7c4e2ffff97d23f83ce5e49', class: "sd-select-list-item__label" }, this.option.label), this.countInfo && (hAsync("span", { key: '48adac9df92cd19f5e2b39bed828a9ad7c22c945', class: "sd-select-list-item__count" }, "(", this.countInfo.selected, "/", this.countInfo.total, ")"))));
13870
+ }, style: cssVars, onClick: this.handleClick }, this.useCheckbox && (hAsync("sd-checkbox", { key: '7cc43ed0a1c4a2019be3a7f6f60de1c7f03a6148', value: this.isSelected === null ? null : !!this.isSelected, disabled: this.option.disabled, inverse: this.isFocused && this.isSelected !== false, class: "sd-select-list-item__checkbox", onClick: this.handleCheckboxClick, onSdUpdate: this.handleCheckboxUpdate })), hAsync("span", { key: '331c7d1ded82834521f3292dc739612f24d7209e', class: "sd-select-list-item__label" }, this.option.label), this.countInfo && (hAsync("span", { key: '80b34cd1a6e67719d50c62afedf23c0903259c78', class: "sd-select-list-item__count" }, "(", this.countInfo.selected, "/", this.countInfo.total, ")"))));
13634
13871
  }
13635
13872
  static get style() { return sdSelectListItemCss(); }
13636
13873
  static get cmpMeta() { return {
@@ -13698,15 +13935,15 @@ class SdSelectListItemSearch {
13698
13935
  clearTimeout(this.debounceTimer);
13699
13936
  }
13700
13937
  render() {
13701
- return (hAsync("div", { key: '0b8e55a2f39d72bc6fc5c7d8c6262c9fffb52ba7', class: {
13938
+ return (hAsync("div", { key: 'a8b62b61ec6a0afd69de50b8df02e57de2a04c8c', class: {
13702
13939
  'sd-select-list-item-search': true,
13703
13940
  'sd-select-list-item-search--scrolled': this.isScrolled,
13704
- } }, hAsync("div", { key: '30c4f5d6c8002579da129cebb06c026c278fb555', class: "sd-select-list-item-search__inner" }, hAsync("sd-icon", { key: 'be9076a1fd6d7fd9a1990fd9e32aebd04c1bc4b4', name: "search", size: 16, color: "grey_70", class: "sd-select-list-item-search__icon" }), hAsync("input", { key: 'c9400184f607d0385e5e8c25615e1a955256c6f4', ref: el => {
13941
+ } }, hAsync("div", { key: '2b04a677a8b4e3212eff83c07609a4b7d89799c1', class: "sd-select-list-item-search__inner" }, hAsync("sd-icon", { key: 'c0c51d4b0150fee7151c7e2bcc5aaf8428d31043', name: "search", size: 16, color: "grey_70", class: "sd-select-list-item-search__icon" }), hAsync("input", { key: '85d2309cbb037851053c34baeca5f59c690c0881', ref: el => {
13705
13942
  this.inputEl = el;
13706
- }, type: "text", class: "sd-select-list-item-search__input", placeholder: "\uAC80\uC0C9\uC5B4 \uC785\uB825", value: this.searchText, onInput: this.handleInput, onFocus: () => this.searchFocus.emit() }), hAsync("button", { key: 'dcb18eff068dea3fcb9144c4dfd4500806f68753', type: "button", class: {
13943
+ }, type: "text", class: "sd-select-list-item-search__input", placeholder: "\uAC80\uC0C9\uC5B4 \uC785\uB825", value: this.searchText, onInput: this.handleInput, onFocus: () => this.searchFocus.emit() }), hAsync("button", { key: '564b6ae6dbab1fa5f4f6d977fa9fd52bb9114873', type: "button", class: {
13707
13944
  'sd-select-list-item-search__clear': true,
13708
13945
  'sd-select-list-item-search__clear--hidden': this.searchText === '',
13709
- }, onClick: this.handleClear, tabindex: this.searchText !== '' ? 0 : -1, "aria-hidden": this.searchText !== '' ? 'false' : 'true' }, hAsync("sd-icon", { key: 'beb2cf23258aa1eaff2c9fdb63dae99570691af1', name: "close", size: 12, color: "#888888" })))));
13946
+ }, onClick: this.handleClear, tabindex: this.searchText !== '' ? 0 : -1, "aria-hidden": this.searchText !== '' ? 'false' : 'true' }, hAsync("sd-icon", { key: '8ae0f92f8762681cc4c2a6fc11340498b8b01c98', name: "close", size: 12, color: "#888888" })))));
13710
13947
  }
13711
13948
  static get style() { return sdSelectListItemSearchCss(); }
13712
13949
  static get cmpMeta() { return {
@@ -14077,9 +14314,9 @@ class SdSelectListbox {
14077
14314
  '--listbox-max-height': this.maxHeight ?? '260px',
14078
14315
  '--listbox-radius': `${LIST_BOX_LAYOUT.radius}px`,
14079
14316
  };
14080
- return (hAsync("div", { key: '4173255a866459bf0aeb98d517263d12f1c39fa5', class: "sd-select-listbox", style: cssVars }, this.showSearch && (hAsync("sd-select-list-item-search", { key: '79e7d48d7234ebfd32d3cd242822dfa93a73c151', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), hAsync("div", { key: '22981c1e049d0d526af06bb5b563de5130c14477', class: "sd-select-listbox__list", onScroll: this.handleScroll, ref: el => {
14317
+ return (hAsync("div", { key: '1834dbfee219988e78ad47d3640ebafb9983298c', class: "sd-select-listbox", style: cssVars }, this.showSearch && (hAsync("sd-select-list-item-search", { key: '28fbfce57184f2a8c090d628c5b33cecf9337c3c', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), hAsync("div", { key: 'b7430d72cdb26cad59b226af8cf98d796645390c', class: "sd-select-listbox__list", onScroll: this.handleScroll, ref: el => {
14081
14318
  this.listEl = el;
14082
- } }, this.showSelectAll && (hAsync("sd-select-list-item", { key: '7acd37c5663bb101d6853cbd6629a78d402d6cde', option: SdSelectListbox.SELECT_ALL_OPTION, depth: 1, isSelected: this.selectAllState, isFocused: this.isOptionFocused(SdSelectListbox.SELECT_ALL_OPTION), useCheckbox: true, onSdListItemClick: this.handleSelectAllClick, onMouseEnter: () => this.handleOptionHover(SdSelectListbox.SELECT_ALL_OPTION) })), this.isEmpty ? (hAsync("div", { class: "sd-select-listbox__empty" }, EMPTY_MESSAGE)) : this.isDepth ? (this.renderOptions(this.filteredOptions)) : (this.filteredOptions.map(option => (hAsync("sd-select-list-item", { option: option, depth: 1, isSelected: this.isOptionSelected(option), isFocused: this.isOptionFocused(option), useCheckbox: this.isMulti, onSdListItemClick: this.handleOptionClick, onMouseEnter: () => this.handleOptionHover(option) })))))));
14319
+ } }, this.showSelectAll && (hAsync("sd-select-list-item", { key: '8f159cdef838c0f39bb7aad1717a88c04c75dbda', option: SdSelectListbox.SELECT_ALL_OPTION, depth: 1, isSelected: this.selectAllState, isFocused: this.isOptionFocused(SdSelectListbox.SELECT_ALL_OPTION), useCheckbox: true, onSdListItemClick: this.handleSelectAllClick, onMouseEnter: () => this.handleOptionHover(SdSelectListbox.SELECT_ALL_OPTION) })), this.isEmpty ? (hAsync("div", { class: "sd-select-listbox__empty" }, EMPTY_MESSAGE)) : this.isDepth ? (this.renderOptions(this.filteredOptions)) : (this.filteredOptions.map(option => (hAsync("sd-select-list-item", { option: option, depth: 1, isSelected: this.isOptionSelected(option), isFocused: this.isOptionFocused(option), useCheckbox: this.isMulti, onSdListItemClick: this.handleOptionClick, onMouseEnter: () => this.handleOptionHover(option) })))))));
14083
14320
  }
14084
14321
  static get watchers() { return {
14085
14322
  "searchKeyword": [{
@@ -14160,7 +14397,7 @@ class SdSelectTrigger {
14160
14397
  ? SELECT_COLORS.icon.disabled
14161
14398
  : SELECT_COLORS.icon.default,
14162
14399
  };
14163
- return (hAsync("div", { key: '6694f35a396f368d5df9860db30d817beddb8bec', ref: el => {
14400
+ return (hAsync("div", { key: '645d8e7ff5065664a3510b127628cb54d97fb613', ref: el => {
14164
14401
  this.triggerEl = el;
14165
14402
  }, role: "button", "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? 'true' : 'false', tabindex: this.disabled ? -1 : 0, class: {
14166
14403
  'sd-select-trigger': true,
@@ -14171,7 +14408,7 @@ class SdSelectTrigger {
14171
14408
  e.preventDefault();
14172
14409
  this.handleClick();
14173
14410
  }
14174
- }, onFocus: this.handleFocus, onBlur: this.handleBlur }, hAsync("div", { key: 'd8ff247ca362a8fc3677d9803261343a1e891298', class: "sd-select-trigger__content" }, hAsync("span", { key: 'cd81a7c7c135372aad80fa9391b160337632643c', class: "sd-select-trigger__text" }, hasValue ? this.displayText : (this.placeholder ?? '선택')), hAsync("sd-icon", { key: '838c12e2a9ce06036eee766ffd2f88f3215b8420', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
14411
+ }, onFocus: this.handleFocus, onBlur: this.handleBlur }, hAsync("div", { key: '515dda6d98ad09b0854e0ef0e04f0bf8c9592d1a', class: "sd-select-trigger__content" }, hAsync("span", { key: '9d92577675d0c7e6ba32174ae0cdd754788dbccb', class: "sd-select-trigger__text" }, hasValue ? this.displayText : (this.placeholder ?? '선택')), hAsync("sd-icon", { key: '347532a73d9ff2929d9f716fb8d2e314af7d7069', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
14175
14412
  'sd-select-trigger__icon': true,
14176
14413
  'sd-select-trigger__icon--open': this.isOpen,
14177
14414
  } }))));
@@ -14293,7 +14530,7 @@ class SdSwitch {
14293
14530
  '--sd-switch-line-height': `${SWITCH_TYPOGRAPHY.lineHeight}px`,
14294
14531
  '--sd-switch-text-decoration': SWITCH_TYPOGRAPHY.textDecoration,
14295
14532
  };
14296
- return (hAsync("label", { key: 'ebb195a1bb93ae476b4bf3e697623809d626eed6', "aria-label": this.label || 'switch', class: this.switchClasses, style: cssVars }, hAsync("input", { key: 'a6de6298d35c54ad83dc6285b90e67c8d3564d15', type: "checkbox", checked: this.value, disabled: this.disabled, onInput: this.handleChange }), hAsync("div", { key: '7881f46be572edcfc82888564a7f85ad4207dd8e', class: "sd-switch__track" }, hAsync("div", { key: 'c08c9d5894a6f9ddf3ecdaaa9253628478479043', class: "sd-switch__knob" })), this.label && hAsync("span", { key: '4e01b185502829d8fb647d3eafaaf6565489b2f3', class: "sd-switch__label" }, this.label)));
14533
+ return (hAsync("label", { key: '3d9449733d73dcbd2d7a95505b6afd930a43a114', "aria-label": this.label || 'switch', class: this.switchClasses, style: cssVars }, hAsync("input", { key: 'f8d35ea743b5f85697d9d4de8fe915ce2d8f7b56', type: "checkbox", checked: this.value, disabled: this.disabled, onInput: this.handleChange }), hAsync("div", { key: 'b62a6bfa60c488270184698610337926b688baff', class: "sd-switch__track" }, hAsync("div", { key: 'da7764fe4a4202366fe0a922de687ece121eb73f', class: "sd-switch__knob" })), this.label && hAsync("span", { key: '924c2939f0cb2196ff69be560e1c7f113590c73b', class: "sd-switch__label" }, this.label)));
14297
14534
  }
14298
14535
  static get style() { return sdSwitchCss(); }
14299
14536
  static get cmpMeta() { return {
@@ -14617,6 +14854,10 @@ class SdTable {
14617
14854
  if (this.pagination?.rowsPerPage != null) {
14618
14855
  this.innerRowsPerPage = this.pagination.rowsPerPage;
14619
14856
  }
14857
+ // host element 에 자식 컴포넌트(sd-thead/sd-tbody/sd-tr) 가 직접 접근하는 internal sync helpers 를 monkey-patch.
14858
+ // 28개 메서드 전체를 typed interface 로 노출하면 코드 비용이 크고, 어차피 internal 이라 외부 사용자가 호출하지 않는다.
14859
+ // 정식 @Method 노출로 옮기는 작업은 별도 이슈로 분리.
14860
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14620
14861
  const el = this.el;
14621
14862
  el.isRowSelectedSync = this.isRowSelectedSync.bind(this);
14622
14863
  el.updateRowSelectSync = this.updateRowSelectSync.bind(this);
@@ -14733,7 +14974,6 @@ class SdTable {
14733
14974
  }
14734
14975
  });
14735
14976
  }
14736
- // light DOM(manual mode 자식)과 shadow DOM(autoThead/autoTbody fallback) 양쪽 모두에서 자식을 찾는다.
14737
14977
  queryChildEl(selector) {
14738
14978
  return (this.el.querySelector(selector) ??
14739
14979
  this.el.shadowRoot?.querySelector(selector) ??
@@ -14761,12 +15001,12 @@ class SdTable {
14761
15001
  refreshChildrenSelection() {
14762
15002
  const thead = this.queryChildEl('sd-thead');
14763
15003
  thead?.refreshSelection?.();
14764
- this.queryAllTr().forEach(tr => tr?.refreshSelection?.());
15004
+ this.queryAllTr().forEach(tr => tr.refreshSelection?.());
14765
15005
  }
14766
15006
  refreshChildrenConfig() {
14767
15007
  const thead = this.queryChildEl('sd-thead');
14768
15008
  thead?.refreshConfig?.();
14769
- this.queryAllTr().forEach(tr => tr?.refreshConfig?.());
15009
+ this.queryAllTr().forEach(tr => tr.refreshConfig?.());
14770
15010
  }
14771
15011
  maybeEmitVirtualReachEnd(start, end) {
14772
15012
  const threshold = Math.max(1, this.virtualEndThreshold);
@@ -14798,6 +15038,7 @@ class SdTable {
14798
15038
  this.vsEnd = end;
14799
15039
  const topHeight = start * this.effectiveRowHeight;
14800
15040
  const bottomHeight = Math.max(0, (this.rowCount - end) * this.effectiveRowHeight);
15041
+ // setSpacersSync 는 sd-tbody 가 host element 에 monkey-patch 하는 internal sync helper.
14801
15042
  const tbody = this.queryChildEl('sd-tbody');
14802
15043
  tbody?.setSpacersSync?.(topHeight, bottomHeight);
14803
15044
  if (rangeChanged) {
@@ -14918,7 +15159,7 @@ class SdTable {
14918
15159
  this.updateRowsVisibility();
14919
15160
  }
14920
15161
  updateRowsVisibility() {
14921
- this.queryAllTr().forEach(tr => tr?.updateVisibility?.());
15162
+ this.queryAllTr().forEach(tr => tr.updateVisibility?.());
14922
15163
  }
14923
15164
  changeRowsPerPage(perPage) {
14924
15165
  const changedRowsPerPage = perPage != null && perPage !== '' ? Number(perPage) : 0;
@@ -14957,7 +15198,7 @@ class SdTable {
14957
15198
  this.columnWidths = this.columnWidths.map((width, idx) => (idx === index ? newWidth : width));
14958
15199
  const thead = this.queryChildEl('sd-thead');
14959
15200
  thead?.setColumnWidths?.(this.columnWidths);
14960
- this.queryAllTr().forEach(tr => tr?.setColumnWidths?.(this.columnWidths));
15201
+ this.queryAllTr().forEach(tr => tr.setColumnWidths?.(this.columnWidths));
14961
15202
  const stickyRightCount = this.stickyColumn?.right || 0;
14962
15203
  const visibleColCount = this.columns.filter(c => c.visible !== false).length;
14963
15204
  const isRightStickyEdgeResizer = stickyRightCount > 0 && index === visibleColCount - stickyRightCount;
@@ -15012,9 +15253,8 @@ class SdTable {
15012
15253
  // 경우가 있어, sd-tr의 @State (spansVersion)을 통해 재렌더를 강제한다.
15013
15254
  requestAllTrUpdate() {
15014
15255
  this.queryAllTr().forEach(tr => {
15015
- const trAny = tr;
15016
- if (typeof trAny.bumpSpansVersion === 'function') {
15017
- trAny.bumpSpansVersion();
15256
+ if (typeof tr.bumpSpansVersion === 'function') {
15257
+ tr.bumpSpansVersion();
15018
15258
  }
15019
15259
  });
15020
15260
  }
@@ -15251,25 +15491,25 @@ class SdTable {
15251
15491
  '--table-body-line-height': `${TABLE_BODY_TYPOGRAPHY.lineHeight}px`,
15252
15492
  '--table-body-text-decoration': TABLE_BODY_TYPOGRAPHY.textDecoration,
15253
15493
  };
15254
- return (hAsync(Host, { key: '2b7c1eaf862c45c73751af6035a022e8ce0314b4', style: hostStyle }, hAsync("div", { key: '35851e539eef8ff69ff03bd31f5d55d95eb8bf7a', class: "sd-table__container", style: {
15494
+ return (hAsync(Host, { key: '9ee5b528b330f9edf406ff40ec089136c0807653', style: hostStyle }, hAsync("div", { key: '9ac6cbba84b7ef7d0897474168748811fb15af92', class: "sd-table__container", style: {
15255
15495
  '--table-width': this.width,
15256
15496
  '--table-height': effectiveTableHeight,
15257
15497
  '--table-container-height': `calc(${effectiveTableHeight} - ${paginationHeight}px)`,
15258
- } }, hAsync("div", { key: 'e3bf5576fd1b1ee9ffab5d240de904204f4288d5', class: {
15498
+ } }, hAsync("div", { key: '11f916debfd443e1d243bfa2335dbb0a3cb094bc', class: {
15259
15499
  'sd-table__wrapper': true,
15260
15500
  'sd-table__wrapper--radius-use-top': this.radius === 'useTop',
15261
- } }, hAsync("div", { key: 'a67ebcb802a3ed443cca1fc33a00787642e08e84', class: {
15501
+ } }, hAsync("div", { key: '3cad3d86f731a3edc0d2b5a680bcaf6ad6be7399', class: {
15262
15502
  'sd-table__scroll-container': true,
15263
15503
  'sd-table__scroll-container--loading': this.isLoading,
15264
15504
  'sd-table__scroll-container--no-data': isNoData,
15265
- } }, this.isLoading && (hAsync("div", { key: '2cdaff94dab50598c05364930dd3e763a6f2f79a', class: "sd-table__loading", style: { top: `${this.loadingScrollTop}px` } }, hAsync("sd-circle-progress", { key: '49211d7555a38996d3fd9cfce0df50bb626fa1d6', indeterminate: true }))), isNoData && (hAsync(hAsync.Fragment, null, hAsync("div", { key: '3da9d42ecedbdc63858a06040f0e22d265a8183b', class: "sd-table__no-data-header-overlay" }), hAsync("div", { key: '20b5d8be682572a4ddbce21b6cd265894d014499', class: "sd-table__no-data" }, hAsync("div", { key: 'a024fa084f4a137a70fe176cee6918b4f701fd42', class: "sd-table__no-data-content", ref: el => {
15505
+ } }, this.isLoading && (hAsync("div", { key: '6f0aac84dcb3d9ca721ed82cd45214b3956d3f94', class: "sd-table__loading", style: { top: `${this.loadingScrollTop}px` } }, hAsync("sd-circle-progress", { key: '8bb6b8025fceee6ef856efd9cafefe925fc95272', indeterminate: true }))), isNoData && (hAsync(hAsync.Fragment, null, hAsync("div", { key: '69e6e22b68261832a299de470c8ca7f5a16205dd', class: "sd-table__no-data-header-overlay" }), hAsync("div", { key: 'c797a2d41c752698bed1f034beefddc4bf8b951d', class: "sd-table__no-data" }, hAsync("div", { key: '0f0306bc89b5d9046de2aec935822eab0c3ca36c', class: "sd-table__no-data-content", ref: el => {
15266
15506
  this.noDataContentEl = el;
15267
15507
  if (el)
15268
15508
  this.syncNoDataContentObserver();
15269
- } }, hAsync("slot", { key: '9603eefa63fd5bc05dfa132c6be2302497d4c228', name: "no-data" }, hAsync("span", { key: '0dad4e143d8251e375f748d1e5e1a77909fab164' }, this.resolvedNoDataLabel)))))), hAsync("table", { key: '83325a8970f18bb9cf7a78dc665d16a24edc18da', class: this.tableClasses }, this.autoThead ? (hAsync("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange }, hAsync("sd-thead", { rows: this.rows ?? [] }))) : (hAsync("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange })), this.autoTbody ? (hAsync("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }, hAsync("sd-tbody", { rows: this.rows ?? [] }, this.renderAutoRows()))) : (hAsync("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }))))), this.pagination &&
15509
+ } }, hAsync("slot", { key: '042671d4c65c4031a756da386ed010146c17f736', name: "no-data" }, hAsync("span", { key: '5994f656dbea3fd1dea69c105907b188658f8c41' }, this.resolvedNoDataLabel)))))), hAsync("table", { key: '16bb3a7c6b32e5312eda79015cd7d90bef37bdff', class: this.tableClasses }, this.autoThead ? (hAsync("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange }, hAsync("sd-thead", { rows: this.rows ?? [] }))) : (hAsync("slot", { name: `${resolvedTableId}-head`, onSlotchange: this.handleStructureSlotChange })), this.autoTbody ? (hAsync("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }, hAsync("sd-tbody", { rows: this.rows ?? [] }, this.renderAutoRows()))) : (hAsync("slot", { name: `${resolvedTableId}-body`, onSlotchange: this.handleStructureSlotChange }))))), this.pagination &&
15270
15510
  this.pagination.rowsPerPage > 0 &&
15271
15511
  this.rowCount > 0 &&
15272
- !this.useVirtualScroll && (hAsync("div", { key: '935b0f916cbc1de29a7f6b3805a5a3c25eaba467', class: "sd-table__pagination" }, hAsync("sd-pagination", { key: '7faad5d0b2efe652a9ed989910551aa8bc5592ec', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onSdPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (hAsync("sd-select", { key: 'd514c41459a60ac47ffcd476a635c47386232c50', value: this.useInternalPagination
15512
+ !this.useVirtualScroll && (hAsync("div", { key: '6c3ee5d93fb395154c4c42c914669af535c1a5bc', class: "sd-table__pagination" }, hAsync("sd-pagination", { key: '46053012374e1255037706a8fa4d068dbc60f2d9', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onSdPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (hAsync("sd-select", { key: 'df04b19e857e823be8237148d84456d492575ce3', value: this.useInternalPagination
15273
15513
  ? this.innerRowsPerPage
15274
15514
  : this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", emitValue: true, onSdUpdate: e => {
15275
15515
  if (!this.isRowsPerPageValue(e.detail))
@@ -15561,7 +15801,7 @@ class SdTabs {
15561
15801
  };
15562
15802
  }
15563
15803
  render() {
15564
- return (hAsync("div", { key: '880f1aa80c29f2d578ffe2d5e5e5e0c008c898d3', class: this.getContainerClasses(), style: this.buildCssVars() }, this.tabs.map((tab, index) => {
15804
+ return (hAsync("div", { key: '181916a72512a6802a06dc56fca418a806d18a0e', class: this.getContainerClasses(), style: this.buildCssVars() }, this.tabs.map((tab, index) => {
15565
15805
  const badgeName = this.getBadgeName(tab);
15566
15806
  return (hAsync("div", { key: `tab-${index}`, role: "tab", tabindex: 0, "aria-selected": tab.value === this.value ? 'true' : 'false', class: this.getTabClasses(tab), "aria-label": tab.label || 'tab', onClick: () => this.handleTabClick(tab), onKeyDown: e => {
15567
15807
  if (e.key === 'Enter' || e.key === ' ') {
@@ -15776,6 +16016,8 @@ class SdTag {
15776
16016
  name = 'square_sm_grey';
15777
16017
  label = '';
15778
16018
  icon;
16019
+ // 아이콘이 좌측 배치되는 게 자연스러운 default. prop 이름 변경(isRight 등)은 public API breaking 이라 별도 이슈로 분리.
16020
+ // eslint-disable-next-line stencil/ban-default-true
15779
16021
  isLeft = true;
15780
16022
  componentWillLoad() {
15781
16023
  this.name = this.name ?? 'square_sm_grey';
@@ -15797,7 +16039,7 @@ class SdTag {
15797
16039
  render() {
15798
16040
  const config = this.resolvedConfig;
15799
16041
  const iconNode = this.renderIcon(config.icon, config.iconSize);
15800
- return (hAsync("span", { key: '57f3c3f9ad53059fabff205cb44ffa3d1da9a711', class: "sd-tag", style: {
16042
+ return (hAsync("span", { key: 'c8b8b88e2c83401bb9d3e05004b0517d7e4a3a6a', class: "sd-tag", style: {
15801
16043
  '--sd-tag-background': config.background,
15802
16044
  '--sd-tag-content': config.content,
15803
16045
  '--sd-tag-height': config.height,
@@ -15807,7 +16049,7 @@ class SdTag {
15807
16049
  '--sd-tag-font-weight': config.fontWeight,
15808
16050
  '--sd-tag-line-height': config.lineHeight,
15809
16051
  '--sd-tag-radius': config.radius,
15810
- }, "aria-label": this.label || 'tag' }, this.icon && this.isLeft && iconNode, hAsync("span", { key: '3360f36d18f073cd24699b6b8db2e731fda351ac', class: "sd-tag__label" }, this.label), this.icon && !this.isLeft && iconNode));
16052
+ }, "aria-label": this.label || 'tag' }, this.icon && this.isLeft && iconNode, hAsync("span", { key: '67094b09ab1d7b7e865c9f6b8017f8c5c3f8274a', class: "sd-tag__label" }, this.label), this.icon && !this.isLeft && iconNode));
15811
16053
  }
15812
16054
  static get style() { return sdTagCss(); }
15813
16055
  static get cmpMeta() { return {
@@ -15875,9 +16117,9 @@ class SdTbody {
15875
16117
  }
15876
16118
  }
15877
16119
  render() {
15878
- return (hAsync(Host, { key: 'bdb686445ce324c6254891a385d6175c8cac06df', slot: `${this.tableId}-body` }, hAsync("tbody", { key: '21a7772f0d43a358d9ae17459f0ff296324bfd82', class: { tbody: true } }, [
16120
+ return (hAsync(Host, { key: 'a3d0ee1c1820474e97e430ba91f48e12ee0e252d', slot: `${this.tableId}-body` }, hAsync("tbody", { key: 'bbd5b9acf02150b146c9b25d07f2e7a9dd347921', class: { tbody: true } }, [
15879
16121
  this.topSpacerHeight > 0 && (hAsync("tr", { key: "spacer-top", class: "tbody__spacer", style: { height: `${this.topSpacerHeight}px`, display: 'block' } })),
15880
- hAsync("slot", { key: 'e38d8fe5d67a91d3fa5a25be98195da104660005' }),
16122
+ hAsync("slot", { key: 'f0ec0aa4d7e7190fc93d96afe5591004174fff63' }),
15881
16123
  this.bottomSpacerHeight > 0 && (hAsync("tr", { key: "spacer-bottom", class: "tbody__spacer", style: { height: `${this.bottomSpacerHeight}px`, display: 'block' } })),
15882
16124
  ])));
15883
16125
  }
@@ -16052,7 +16294,7 @@ class SdTd {
16052
16294
  }
16053
16295
  }
16054
16296
  render() {
16055
- return (hAsync(Host, { key: '505b602b609050870e7e80df9157dbc50d0cb8c1', class: { [`align-${this.align}`]: Boolean(this.align) } }, hAsync("slot", { key: '9910f02d98ce5e115b2a380954dd0a994f9f1c12' })));
16297
+ return (hAsync(Host, { key: '91c033a0c4c3a6c3c9b29c0be99912c5ac1283ee', class: { [`align-${this.align}`]: Boolean(this.align) } }, hAsync("slot", { key: 'abfbc911c707012bc7d924e328ba07d71b96f9a9' })));
16056
16298
  }
16057
16299
  static get watchers() { return {
16058
16300
  "field": [{
@@ -16336,7 +16578,7 @@ class SdTextarea {
16336
16578
  '--sd-system-size-field-sm-height': 'auto',
16337
16579
  '--sd-system-radius-field-sm': `${TEXTAREA_TOKENS.radius}px`,
16338
16580
  };
16339
- return (hAsync("sd-field", { key: '404175c94949c2510082df905c53e97ab835369c', 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 }, hAsync("div", { key: 'ca92dfe613b2c006ecc4021bb2f07a2e4b04239a', class: "sd-textarea__content" }, hAsync("textarea", { key: 'a6d2bbdb9c88766182728cf3eb30ce7691fb048f', 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 }))));
16581
+ return (hAsync("sd-field", { key: 'd877d2598cad84c2bf495e76e0cc1d087f52cc8e', 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 }, hAsync("div", { key: 'c4e864b958b806d4ecc293bd47375dabe0b9e825', class: "sd-textarea__content" }, hAsync("textarea", { key: '8d12c0178392c07150f0fdde5bab4c0e91534efb', 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 }))));
16340
16582
  }
16341
16583
  static get watchers() { return {
16342
16584
  "value": [{
@@ -16552,16 +16794,16 @@ class SdThead {
16552
16794
  '--table-border-color': TABLE_BORDER.color,
16553
16795
  '--table-border-width': `${TABLE_BORDER.width}px`,
16554
16796
  };
16555
- return (hAsync(Host, { key: 'c2852fc7d6fe9e8116fabbbcc140f4db8319bfdc', slot: `${this.tableId}-head`, style: headStyle }, hAsync("thead", { key: '970cb1c96145326f38b79636a72982b0e9c81fa0', class: {
16797
+ return (hAsync(Host, { key: '234ca55bb2507aef21df976066e5ce377c2e9e89', slot: `${this.tableId}-head`, style: headStyle }, hAsync("thead", { key: 'fecd6b54f72a8643b663c3af1988eed60300d08d', class: {
16556
16798
  'thead': true,
16557
16799
  'thead--sticky': this._stickyHeader,
16558
- } }, hAsync("tr", { key: '839fb6e9fd68ef10dea1f1d470a6b3e707475a8d', class: "tr" }, this._selectable && (hAsync("th", { key: 'd669372261627013bc1b39157139d180b3d1a6c1', class: {
16800
+ } }, hAsync("tr", { key: '21d56c50076d3340733b7fa0a8e569fec005e415', class: "tr" }, this._selectable && (hAsync("th", { key: 'ace570ae2157ae63a21ec6ba60d8b8898dd0c33c', class: {
16559
16801
  'th': true,
16560
16802
  'th--selected': true,
16561
16803
  'sticky-left': true,
16562
16804
  'sticky-left-edge': stickyLeftCount === 0,
16563
16805
  'is-scrolled-left': stickyLeftCount === 0 && this._scrolledLeft,
16564
- }, style: { '--sticky-left-offset': '0px' } }, hAsync("sd-checkbox", { key: '6263984430b4aa53e6ac24fb0f6a6c05838a71d5', value: this.getIsAllChecked(), disabled: safeRows.length === 0, onSdUpdate: (e) => this.handleSelectAll(e.detail) }))), stickyLeftCols.map((col, idx) => (hAsync("th", { key: col.name, class: {
16806
+ }, style: { '--sticky-left-offset': '0px' } }, hAsync("sd-checkbox", { key: '4b30536f427b9985355c4e22b6b532a3033306c0', value: this.getIsAllChecked(), disabled: safeRows.length === 0, onSdUpdate: (e) => this.handleSelectAll(e.detail) }))), stickyLeftCols.map((col, idx) => (hAsync("th", { key: col.name, class: {
16565
16807
  'th': true,
16566
16808
  [`${col.thClass}`]: Boolean(col.thClass),
16567
16809
  'sticky-left': true,
@@ -16712,12 +16954,12 @@ class SdToast {
16712
16954
  const linkColor = typeConfig.linkColor ?? typeConfig.content;
16713
16955
  const useDefaultCloseIntent = ['default', 'caution', 'info'].includes(this.type);
16714
16956
  const buttonName = TOAST_BUTTON_NAME_BY_TYPE[this.type] ?? TOAST_BUTTON_NAME_BY_TYPE.default;
16715
- return (hAsync("div", { key: 'db3ffaf51dc96c39c05558017f25929c679a59df', style: {
16957
+ return (hAsync("div", { key: '82579581897d7845b95456ccb5e2a1745c84bcc5', style: {
16716
16958
  '--sd-toast-bg': typeConfig.bg,
16717
16959
  '--sd-toast-text': typeConfig.content,
16718
16960
  '--sd-toast-icon': iconColor,
16719
16961
  '--sd-toast-link': linkColor,
16720
- } }, hAsync("div", { key: '92344f5bb95b0d4787591207f2e017d7dd177091', class: "sd-toast", role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.icon && (hAsync("div", { key: '991db58b2cb019dd3a787e000e9d8813014bbb09', class: "sd-toast__icon" }, hAsync("sd-icon", { key: '24d53cd77fdea82ec07663a8968493ec2b794751', name: this.icon, size: iconSize, color: iconColor }))), hAsync("div", { key: '70cfad4ef389cca798be9baeac99bfc41efcc615', class: "sd-toast__content" }, hAsync("span", { key: '5927023435b17dc25ee07630fc4ae4568aadd9b9', class: "sd-toast__message" }, this.message)), this.link && (hAsync("a", { key: '410c024fd81ebcc78175c1855a86f590566d1a81', href: this.link, class: "sd-toast__link", target: "_blank", rel: "noopener noreferrer" }, this.linkLabel || this.link)), this.buttonLabel && (hAsync("sd-button", { key: 'd85287e7ef796a11f850a0ce5cde87f5881fa5c9', class: "sd-toast__button", name: buttonName, label: this.buttonLabel, onSdClick: (event) => this.buttonClick.emit(event.detail) })), this.useClose && (hAsync("sd-ghost-button", { key: '55a6bf6457bd89254f6eb01072d46a0edbb8b510', class: "sd-toast__close", icon: "close", intent: useDefaultCloseIntent ? 'default' : 'inverse', ariaLabel: "close", size: "xs", onClick: () => this.close.emit() })))));
16962
+ } }, hAsync("div", { key: '5f41392a25dee4e53917255453c97c2203940f21', class: "sd-toast", role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.icon && (hAsync("div", { key: '8f38f7c9842ec295510135589a63994011a856f4', class: "sd-toast__icon" }, hAsync("sd-icon", { key: '62ef897ddfc3b47fe7b640d430d0baf95bdb5b51', name: this.icon, size: iconSize, color: iconColor }))), hAsync("div", { key: 'f6db6cb9776cb41400c9a9052cdea94990245298', class: "sd-toast__content" }, hAsync("span", { key: 'fbd7cdd72422e9ad08f99302b4dcd607d058926f', class: "sd-toast__message" }, this.message)), this.link && (hAsync("a", { key: 'f599928ad9d0d7536086d7dd2d1ce65b429fd8f4', href: this.link, class: "sd-toast__link", target: "_blank", rel: "noopener noreferrer" }, this.linkLabel || this.link)), this.buttonLabel && (hAsync("sd-button", { key: '2be68a412c4b6b9dac64dbd89447c4905fa7512f', class: "sd-toast__button", name: buttonName, label: this.buttonLabel, onSdClick: (event) => this.buttonClick.emit(event.detail) })), this.useClose && (hAsync("sd-ghost-button", { key: '065030362b37383ee7ae31e9b8a771b160427cbe', class: "sd-toast__close", icon: "close", intent: useDefaultCloseIntent ? 'default' : 'inverse', ariaLabel: "close", size: "xs", onClick: () => this.close.emit() })))));
16721
16963
  }
16722
16964
  static get style() { return sdToastCss(); }
16723
16965
  static get cmpMeta() { return {
@@ -16970,7 +17212,7 @@ class SdToastContainer {
16970
17212
  const activeToasts = toasts.filter(t => t.state !== 'exiting').reverse();
16971
17213
  const indexMap = new Map();
16972
17214
  activeToasts.forEach((t, i) => indexMap.set(t.id, i));
16973
- return (hAsync("div", { key: 'bc3c9591b6453eed7df462841e29784c29b3aeef', class: "sd-toast-container", style: this.getContainerStyles(), onMouseEnter: () => {
17215
+ return (hAsync("div", { key: 'c80d46b63f50591d4d92b810c0625701e4741e3a', class: "sd-toast-container", style: this.getContainerStyles(), onMouseEnter: () => {
16974
17216
  this.expanded = true;
16975
17217
  this.pauseTimers();
16976
17218
  }, onMouseLeave: () => {
@@ -17128,7 +17370,7 @@ class SdToggle {
17128
17370
  '--sd-toggle-content-select': TOGGLE_COLORS.content.select,
17129
17371
  '--sd-toggle-content-disabled': TOGGLE_COLORS.content.disabled,
17130
17372
  };
17131
- return (hAsync("label", { key: 'b16577aa25863a9dc337314d9059328799c1cd1e', class: this.toggleClasses, style: cssVars, "aria-label": this.label || 'toggle' }, this.label, hAsync("input", { key: '6130825b74df8a573f4e062671fd694508759e82', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
17373
+ return (hAsync("label", { key: 'c5c8b9448dabb6619e80fd55b11f94bf78706994', class: this.toggleClasses, style: cssVars, "aria-label": this.label || 'toggle' }, this.label, hAsync("input", { key: 'bd43e7f286da217653461ec3128998c5f5a821d9', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
17132
17374
  }
17133
17375
  static get style() { return sdToggleCss(); }
17134
17376
  static get cmpMeta() { return {
@@ -17258,14 +17500,14 @@ class SdTooltip {
17258
17500
  const hasLabel = this.label !== undefined && this.label !== '';
17259
17501
  const divTrigger = trigger === 'hover' ? hoverTrigger : hasLabel ? {} : { onClick: toggleTooltip };
17260
17502
  const buttonClickTrigger = trigger === 'click' && hasLabel ? { onSdClick: toggleTooltip } : {};
17261
- return (hAsync(Fragment, { key: 'ef33f9f183820d684f2805e40134a81f7149fc16' }, hAsync("div", { key: 'dd931825c55b0ee748c7ef45f15be0d6de37ad23', class: `sd-tooltip-trigger ${this.sdClass !== undefined && this.sdClass !== '' ? this.sdClass : ''}`, ...divTrigger }, hasLabel ? (hAsync("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 })) : (hAsync("sd-icon", { ref: el => (this.buttonEl = el), name: icon, size: this.iconSize ?? 12, color: color, class: "sd-tooltip" }))), this.showTooltip && (hAsync("sd-floating-portal", { key: '443dbbe8f0b9a66aaae9b8482a3f615d2d41e8ec', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: placement, offset: this.tooltipOffset }, hAsync("div", { key: '040bde0321b1fd35014db976aeaddc515d87c807', ref: el => (this.menuEl = el), class: {
17503
+ return (hAsync(Fragment, { key: 'c7ed53cfd1505b394353a9a37d0fe012cdf29217' }, hAsync("div", { key: 'd31332c8717dd954bb1c79bb9d0fd974f74d6e73', class: `sd-tooltip-trigger ${this.sdClass !== undefined && this.sdClass !== '' ? this.sdClass : ''}`, ...divTrigger }, hasLabel ? (hAsync("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 })) : (hAsync("sd-icon", { ref: el => (this.buttonEl = el), name: icon, size: this.iconSize ?? 12, color: color, class: "sd-tooltip" }))), this.showTooltip && (hAsync("sd-floating-portal", { key: 'a63971f2fa15e9ef8a6294a2284284e7d7154a8f', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: placement, offset: this.tooltipOffset }, hAsync("div", { key: 'dc3259612bf303b320fdc849bbb83f224f410737', ref: el => (this.menuEl = el), class: {
17262
17504
  'sd-floating-menu': true,
17263
17505
  [`sd-floating-menu--${tooltipType}`]: true,
17264
17506
  [`sd-floating-menu--${placement}`]: true,
17265
17507
  }, style: {
17266
17508
  '--sd-floating-bg': typeConfig.bg,
17267
17509
  '--sd-floating-content': typeConfig.content,
17268
- }, onMouseEnter: () => this.show(), onMouseLeave: () => this.startHideTimer() }, hAsync("i", { key: 'e802c09cc13ec3db29704197fa402588bf97d670', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, hAsync(TooltipArrow, { key: 'b698fbdba2cee74955f65ed7b04abeea8ccabee5' })), hAsync("div", { key: '97e856c543a8cdb880daae9ed0e461f5fd0f2b44', class: "sd-floating-menu__content", innerHTML: this.slotContentHTML }))))));
17510
+ }, onMouseEnter: () => this.show(), onMouseLeave: () => this.startHideTimer() }, hAsync("i", { key: '8b3d132320c27710c9346f5313ee7c173df4275e', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, hAsync(TooltipArrow, { key: '66e90298fa62b7660e3d785abd024e9acae38fe3' })), hAsync("div", { key: '115d0ee83abb2d9ca607759f009c47acd34196e2', class: "sd-floating-menu__content", innerHTML: this.slotContentHTML }))))));
17269
17511
  }
17270
17512
  static get style() { return sdTooltipCss(); }
17271
17513
  static get cmpMeta() { return {
@@ -17619,6 +17861,7 @@ registerComponents([
17619
17861
  SdBarcodeInput,
17620
17862
  SdButton,
17621
17863
  SdCalendar,
17864
+ SdCallout,
17622
17865
  SdCard,
17623
17866
  SdCheckbox,
17624
17867
  SdChip,