@sellmate/design-system 1.1.0 → 1.3.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 (402) hide show
  1. package/dist/cjs/component.datepicker-Cw_-oidk.js +121 -0
  2. package/dist/cjs/{component.table-B7brIpIQ.js → component.table-CMqGfEui.js} +11 -1
  3. package/dist/cjs/design-system.cjs.js +2 -2
  4. package/dist/cjs/{index-BlxrCRYi.js → index-Cw-78mnC.js} +1 -1
  5. package/dist/cjs/index.cjs.js +1 -1
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/sd-action-modal.cjs.entry.js +2 -2
  8. package/dist/cjs/sd-badge.cjs.entry.js +2 -2
  9. package/dist/cjs/sd-barcode-input.cjs.entry.js +2 -2
  10. package/dist/cjs/sd-button_2.cjs.entry.js +278 -11
  11. package/dist/cjs/sd-calendar_2.cjs.entry.js +262 -0
  12. package/dist/cjs/sd-card.cjs.entry.js +2 -2
  13. package/dist/cjs/sd-checkbox.cjs.entry.js +4 -4
  14. package/dist/cjs/sd-chip.cjs.entry.js +4 -4
  15. package/dist/cjs/sd-circle-progress.cjs.entry.js +2 -2
  16. package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +4 -4
  17. package/dist/cjs/sd-date-box.cjs.entry.js +8 -3
  18. package/dist/cjs/sd-date-picker.config-D3lTpa6W.js +37 -0
  19. package/dist/cjs/sd-date-picker_7.cjs.entry.js +27 -20
  20. package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +49 -49
  21. package/dist/cjs/sd-dropdown-button.cjs.entry.js +10 -6
  22. package/dist/cjs/sd-field_3.cjs.entry.js +31 -30
  23. package/dist/cjs/sd-form.cjs.entry.js +5 -5
  24. package/dist/cjs/sd-ghost-button.cjs.entry.js +4 -4
  25. package/dist/cjs/sd-guide.cjs.entry.js +5 -5
  26. package/dist/cjs/sd-key-value-table.cjs.entry.js +10 -10
  27. package/dist/cjs/sd-linear-progress.cjs.entry.js +2 -2
  28. package/dist/cjs/sd-loading-container.cjs.entry.js +3 -3
  29. package/dist/cjs/sd-modal-container.cjs.entry.js +3 -3
  30. package/dist/cjs/sd-pagination_4.cjs.entry.js +116 -43
  31. package/dist/cjs/sd-popover.cjs.entry.js +6 -6
  32. package/dist/cjs/sd-popup.cjs.entry.js +2 -2
  33. package/dist/cjs/sd-portal.cjs.entry.js +3 -3
  34. package/dist/cjs/sd-radio-button.cjs.entry.js +7 -4
  35. package/dist/cjs/sd-radio.cjs.entry.js +2 -2
  36. package/dist/cjs/sd-select-list-item_2.cjs.entry.js +15 -11
  37. package/dist/cjs/sd-select_3.cjs.entry.js +20 -15
  38. package/dist/cjs/sd-switch.cjs.entry.js +2 -2
  39. package/dist/cjs/sd-table.cjs.entry.js +170 -47
  40. package/dist/cjs/{sd-table.config-CDyioyE2.js → sd-table.config-BIpldZtw.js} +13 -2
  41. package/dist/cjs/sd-tabs.cjs.entry.js +8 -3
  42. package/dist/cjs/sd-tag.cjs.entry.js +10 -10
  43. package/dist/cjs/sd-td.cjs.entry.js +52 -10
  44. package/dist/cjs/sd-text-link.cjs.entry.js +9 -4
  45. package/dist/cjs/sd-toast-container.cjs.entry.js +2 -2
  46. package/dist/cjs/sd-toast.cjs.entry.js +3 -3
  47. package/dist/cjs/sd-toggle.cjs.entry.js +2 -2
  48. package/dist/cjs/{tooltipArrow-N6nQ1QT-.js → tooltipArrow-BjSFKIUq.js} +1 -1
  49. package/dist/cjs/useDatePicker-dCuEgvjX.js +103 -0
  50. package/dist/collection/collection-manifest.json +1 -2
  51. package/dist/collection/components/sd-action-modal/sd-action-modal.js +1 -1
  52. package/dist/collection/components/sd-badge/sd-badge.js +1 -1
  53. package/dist/collection/components/sd-barcode-input/sd-barcode-input.js +1 -1
  54. package/dist/collection/components/sd-button/sd-button.js +9 -8
  55. package/dist/collection/components/sd-calendar/sd-calendar.config.js +51 -0
  56. package/dist/collection/components/sd-calendar/sd-calendar.css +134 -73
  57. package/dist/collection/components/sd-calendar/sd-calendar.js +172 -133
  58. package/dist/collection/components/sd-card/sd-card.js +1 -1
  59. package/dist/collection/components/sd-checkbox/sd-checkbox.js +3 -3
  60. package/dist/collection/components/sd-chip/sd-chip.js +4 -4
  61. package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +1 -1
  62. package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +2 -2
  63. package/dist/collection/components/sd-date-box/sd-date-box.js +7 -2
  64. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +8 -3
  65. package/dist/collection/components/sd-date-picker/sd-date-picker.config.js +0 -38
  66. package/dist/collection/components/sd-date-picker/sd-date-picker.js +3 -2
  67. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +12 -12
  68. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.config.js +2 -1
  69. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +3 -3
  70. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.config.js +6 -2
  71. package/dist/collection/components/sd-dropdown-button/sd-dropdown-button.js +3 -3
  72. package/dist/collection/components/sd-field/sd-field.js +23 -22
  73. package/dist/collection/components/sd-file-picker/sd-file-picker.js +7 -2
  74. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +4 -4
  75. package/dist/collection/components/sd-form/sd-form.js +4 -4
  76. package/dist/collection/components/sd-ghost-button/sd-ghost-button.js +3 -3
  77. package/dist/collection/components/sd-guide/sd-guide.js +4 -4
  78. package/dist/collection/components/sd-input/sd-input.js +3 -3
  79. package/dist/collection/components/sd-key-value-table/sd-key-value-table.js +8 -8
  80. package/dist/collection/components/sd-linear-progress/sd-linear-progress.js +1 -1
  81. package/dist/collection/components/sd-loading-container/sd-loading-container.js +2 -2
  82. package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +1 -1
  83. package/dist/collection/components/sd-modal-container/sd-modal-container.js +2 -2
  84. package/dist/collection/components/sd-number-input/sd-number-input.js +6 -6
  85. package/dist/collection/components/sd-pagination/sd-pagination.js +3 -3
  86. package/dist/collection/components/sd-popover/sd-popover.js +5 -5
  87. package/dist/collection/components/sd-popup/sd-popup.js +1 -1
  88. package/dist/collection/components/sd-portal/sd-portal.js +2 -2
  89. package/dist/collection/components/sd-radio/sd-radio.js +1 -1
  90. package/dist/collection/components/sd-radio-button/sd-radio-button.js +6 -3
  91. package/dist/collection/components/sd-radio-group/sd-radio-group.js +1 -1
  92. package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +7 -3
  93. package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +7 -7
  94. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +5 -5
  95. package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +9 -4
  96. package/dist/collection/components/sd-select/sd-select.js +5 -5
  97. package/dist/collection/components/sd-switch/sd-switch.js +1 -1
  98. package/dist/collection/components/sd-table/sd-table.config.js +4 -0
  99. package/dist/collection/components/sd-table/sd-table.css +22 -3
  100. package/dist/collection/components/sd-table/sd-table.js +197 -50
  101. package/dist/collection/components/sd-table/sd-table.stories.helpers.js +2 -3
  102. package/dist/collection/components/sd-table/sd-tbody/sd-tbody.js +5 -5
  103. package/dist/collection/components/sd-table/sd-td/sd-td.js +111 -9
  104. package/dist/collection/components/sd-table/sd-thead/sd-thead.js +30 -16
  105. package/dist/collection/components/sd-table/sd-tr/sd-tr.css +20 -1
  106. package/dist/collection/components/sd-table/sd-tr/sd-tr.js +97 -18
  107. package/dist/collection/components/sd-tabs/sd-tabs.js +7 -2
  108. package/dist/collection/components/sd-tag/sd-tag.config.js +3 -3
  109. package/dist/collection/components/sd-tag/sd-tag.js +6 -3
  110. package/dist/collection/components/sd-text-link/sd-text-link.js +8 -3
  111. package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
  112. package/dist/collection/components/sd-toast/sd-toast.js +2 -2
  113. package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
  114. package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
  115. package/dist/collection/components/sd-tooltip/sd-tooltip.js +2 -2
  116. package/dist/collection/index.js +1 -1
  117. package/dist/collection/utils/modal.js +1 -1
  118. package/dist/components/index.js +1 -1
  119. package/dist/components/p-B8o25hOw.js +1 -0
  120. package/dist/components/p-BFC3Etk2.js +1 -0
  121. package/dist/components/p-BQn6le_Y.js +1 -0
  122. package/dist/components/p-BRk9YZBe.js +1 -0
  123. package/dist/components/p-BRxXhFqt.js +1 -0
  124. package/dist/components/{p-D8WAP9T3.js → p-BSfu4DO2.js} +1 -1
  125. package/dist/components/p-BZabVWBD.js +1 -0
  126. package/dist/components/{p-BfkuCNCI.js → p-BeBiPTbd.js} +1 -1
  127. package/dist/components/p-BjkROjjt.js +1 -0
  128. package/dist/components/p-BjpbUGud.js +1 -0
  129. package/dist/components/p-BkWaPXXj.js +1 -0
  130. package/dist/components/p-BnfUIhUj.js +1 -0
  131. package/dist/components/p-Bs1Z5QtN.js +1 -0
  132. package/dist/components/{p-MQTl8fGT.js → p-BwPmM1Pm.js} +1 -1
  133. package/dist/components/p-C3fqSH7A.js +1 -0
  134. package/dist/components/p-CIUE4qr7.js +1 -0
  135. package/dist/components/p-CLxVZFEG.js +1 -0
  136. package/dist/components/p-CPuyhF6g.js +1 -0
  137. package/dist/components/p-CpgTSxf0.js +1 -0
  138. package/dist/components/p-Cx_d5vsS.js +1 -0
  139. package/dist/components/{p-BeK8amzx.js → p-CyObYB-g.js} +1 -1
  140. package/dist/components/p-D7nYP2a4.js +1 -0
  141. package/dist/components/{p-BPsOJlCP.js → p-DS7Ypvt5.js} +1 -1
  142. package/dist/components/p-Da5i_Sa6.js +1 -0
  143. package/dist/components/p-DhTcn6jX.js +1 -0
  144. package/dist/components/p-DlREBZ-C.js +1 -0
  145. package/dist/components/p-DnW8EAqd.js +1 -0
  146. package/dist/components/{p-D5TRyquv.js → p-FKKk7Bk8.js} +1 -1
  147. package/dist/components/{p-Dr1AMbBj.js → p-INdVvadB.js} +1 -1
  148. package/dist/components/p-JlZdKw4C.js +1 -0
  149. package/dist/components/p-VuxN5d2D.js +1 -0
  150. package/dist/components/p-WAsath62.js +1 -0
  151. package/dist/components/{p-ofkgu5aS.js → p-X-8I-A3g.js} +1 -1
  152. package/dist/components/{p-B1MabGRR.js → p-Z5Vk33zf.js} +1 -1
  153. package/dist/components/{p-DG45uNxd.js → p-kSfaCwf1.js} +1 -1
  154. package/dist/components/p-mmdt-WnS.js +1 -0
  155. package/dist/components/p-oyZgWRnC.js +1 -0
  156. package/dist/components/p-t161LJqb.js +1 -0
  157. package/dist/components/{p-CGBnxqG2.js → p-wOAxmZ1V.js} +1 -1
  158. package/dist/components/p-xX3QT-8K.js +1 -0
  159. package/dist/components/sd-action-modal.js +1 -1
  160. package/dist/components/sd-badge.js +1 -1
  161. package/dist/components/sd-barcode-input.js +1 -1
  162. package/dist/components/sd-button.js +1 -1
  163. package/dist/components/sd-calendar.js +1 -1
  164. package/dist/components/sd-card.js +1 -1
  165. package/dist/components/sd-checkbox.js +1 -1
  166. package/dist/components/sd-chip.js +1 -1
  167. package/dist/components/sd-circle-progress.js +1 -1
  168. package/dist/components/sd-confirm-modal.js +1 -1
  169. package/dist/components/sd-date-box.js +1 -1
  170. package/dist/components/sd-date-picker-trigger.js +1 -1
  171. package/dist/components/sd-date-picker.js +1 -1
  172. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  173. package/dist/components/sd-date-range-picker.js +1 -1
  174. package/dist/components/sd-dropdown-button.js +1 -1
  175. package/dist/components/sd-field.js +1 -1
  176. package/dist/components/sd-file-picker.js +1 -1
  177. package/dist/components/sd-floating-portal.js +1 -1
  178. package/dist/components/sd-form.js +1 -1
  179. package/dist/components/sd-ghost-button.js +1 -1
  180. package/dist/components/sd-guide.js +1 -1
  181. package/dist/components/sd-icon.js +1 -1
  182. package/dist/components/sd-input.js +1 -1
  183. package/dist/components/sd-key-value-table.js +1 -1
  184. package/dist/components/sd-linear-progress.js +1 -1
  185. package/dist/components/sd-loading-container.js +1 -1
  186. package/dist/components/sd-loading-modal.js +1 -1
  187. package/dist/components/sd-modal-container.js +1 -1
  188. package/dist/components/sd-number-input.js +1 -1
  189. package/dist/components/sd-pagination.js +1 -1
  190. package/dist/components/sd-popover.js +1 -1
  191. package/dist/components/sd-popup.js +1 -1
  192. package/dist/components/sd-portal.js +1 -1
  193. package/dist/components/sd-radio-button.js +1 -1
  194. package/dist/components/sd-radio-group.js +1 -1
  195. package/dist/components/sd-radio.js +1 -1
  196. package/dist/components/sd-select-list-item-search.js +1 -1
  197. package/dist/components/sd-select-list-item.js +1 -1
  198. package/dist/components/sd-select-listbox.js +1 -1
  199. package/dist/components/sd-select-trigger.js +1 -1
  200. package/dist/components/sd-select.js +1 -1
  201. package/dist/components/sd-switch.js +1 -1
  202. package/dist/components/sd-table.js +1 -1
  203. package/dist/components/sd-tabs.js +1 -1
  204. package/dist/components/sd-tag.js +1 -1
  205. package/dist/components/sd-tbody.js +1 -1
  206. package/dist/components/sd-td.js +1 -1
  207. package/dist/components/sd-text-link.js +1 -1
  208. package/dist/components/sd-textarea.js +1 -1
  209. package/dist/components/sd-thead.js +1 -1
  210. package/dist/components/sd-toast-container.js +1 -1
  211. package/dist/components/sd-toast.js +1 -1
  212. package/dist/components/sd-toggle.js +1 -1
  213. package/dist/components/sd-tooltip.js +1 -1
  214. package/dist/components/sd-tr.js +1 -1
  215. package/dist/design-system/design-system.css +1 -1
  216. package/dist/design-system/design-system.esm.js +1 -1
  217. package/dist/design-system/index.esm.js +1 -1
  218. package/dist/design-system/p-00854a0a.entry.js +1 -0
  219. package/dist/design-system/p-00b2c850.entry.js +1 -0
  220. package/dist/design-system/p-03badf68.entry.js +1 -0
  221. package/dist/design-system/p-0U6dRjlq.js +2 -0
  222. package/dist/design-system/{p-d78fbe16.entry.js → p-11b904a3.entry.js} +1 -1
  223. package/dist/design-system/p-32e2d71e.entry.js +1 -0
  224. package/dist/design-system/p-399d416c.entry.js +1 -0
  225. package/dist/design-system/{p-29ed11e5.entry.js → p-3b8954d9.entry.js} +1 -1
  226. package/dist/design-system/{p-feeb0cc5.entry.js → p-481e6934.entry.js} +1 -1
  227. package/dist/design-system/{p-328fae12.entry.js → p-4a91875c.entry.js} +1 -1
  228. package/dist/design-system/p-563b6fc2.entry.js +1 -0
  229. package/dist/design-system/p-679bce6c.entry.js +1 -0
  230. package/dist/design-system/{p-b6ca4461.entry.js → p-74bf0ed9.entry.js} +1 -1
  231. package/dist/design-system/{p-4e2953eb.entry.js → p-84a94775.entry.js} +1 -1
  232. package/dist/design-system/p-8f4ccae4.entry.js +1 -0
  233. package/dist/design-system/p-92f368a2.entry.js +1 -0
  234. package/dist/design-system/p-9681b0ba.entry.js +1 -0
  235. package/dist/design-system/{p-f5576a0d.entry.js → p-9b9bf9db.entry.js} +1 -1
  236. package/dist/design-system/p-9f7f1b8b.entry.js +1 -0
  237. package/dist/design-system/p-BGtUaScP.js +1 -0
  238. package/dist/design-system/p-BQn6le_Y.js +1 -0
  239. package/dist/design-system/p-BnfUIhUj.js +1 -0
  240. package/dist/{components/p-CT3dfy3K.js → design-system/p-C29HUShl.js} +1 -1
  241. package/dist/design-system/p-TF8_Lyhq.js +1 -0
  242. package/dist/design-system/p-a640e509.entry.js +1 -0
  243. package/dist/design-system/{p-20a50702.entry.js → p-a71d4947.entry.js} +1 -1
  244. package/dist/design-system/p-a7ea1cf0.entry.js +1 -0
  245. package/dist/design-system/{p-e1c0a3c9.entry.js → p-a97033a2.entry.js} +1 -1
  246. package/dist/design-system/p-a98f9a29.entry.js +1 -0
  247. package/dist/design-system/{p-7882e388.entry.js → p-ae117afa.entry.js} +1 -1
  248. package/dist/design-system/{p-f3cfff78.entry.js → p-aeccfb2b.entry.js} +1 -1
  249. package/dist/design-system/p-c7099e9e.entry.js +1 -0
  250. package/dist/design-system/p-cc97f4b4.entry.js +1 -0
  251. package/dist/design-system/{p-b96c694c.entry.js → p-d39e515d.entry.js} +1 -1
  252. package/dist/design-system/p-dbeaeb31.entry.js +1 -0
  253. package/dist/design-system/p-e23dac79.entry.js +1 -0
  254. package/dist/design-system/{p-c0f60b00.entry.js → p-e611dcd4.entry.js} +1 -1
  255. package/dist/design-system/{p-a942dfbe.entry.js → p-e8e64511.entry.js} +1 -1
  256. package/dist/design-system/{p-cd8e4dd6.entry.js → p-e902a3f4.entry.js} +1 -1
  257. package/dist/design-system/p-f7074386.entry.js +1 -0
  258. package/dist/design-system/p-f721a6c6.entry.js +1 -0
  259. package/dist/design-system/{p-b1bb0d72.entry.js → p-fc5c4f85.entry.js} +1 -1
  260. package/dist/design-system/p-fe0a5368.entry.js +1 -0
  261. package/dist/design-system/{p-cbda9194.entry.js → p-fe3ae346.entry.js} +1 -1
  262. package/dist/design-system/p-ffaa4b5d.entry.js +1 -0
  263. package/dist/design-system/p-mmdt-WnS.js +1 -0
  264. package/dist/esm/component.datepicker-BQn6le_Y.js +119 -0
  265. package/dist/esm/{component.table-BQ6at17Y.js → component.table-BnfUIhUj.js} +11 -1
  266. package/dist/esm/design-system.js +3 -3
  267. package/dist/esm/{index-CLCoul8o.js → index-0U6dRjlq.js} +1 -1
  268. package/dist/esm/index.js +1 -1
  269. package/dist/esm/loader.js +3 -3
  270. package/dist/esm/sd-action-modal.entry.js +2 -2
  271. package/dist/esm/sd-badge.entry.js +2 -2
  272. package/dist/esm/sd-barcode-input.entry.js +2 -2
  273. package/dist/esm/sd-button_2.entry.js +277 -10
  274. package/dist/esm/sd-calendar_2.entry.js +259 -0
  275. package/dist/esm/sd-card.entry.js +2 -2
  276. package/dist/esm/sd-checkbox.entry.js +4 -4
  277. package/dist/esm/sd-chip.entry.js +4 -4
  278. package/dist/esm/sd-circle-progress.entry.js +2 -2
  279. package/dist/esm/sd-confirm-modal_2.entry.js +4 -4
  280. package/dist/esm/sd-date-box.entry.js +8 -3
  281. package/dist/esm/sd-date-picker.config-CGEE3DkI.js +34 -0
  282. package/dist/esm/sd-date-picker_7.entry.js +27 -20
  283. package/dist/esm/sd-date-range-picker-calendar.entry.js +22 -22
  284. package/dist/esm/sd-dropdown-button.entry.js +10 -6
  285. package/dist/esm/sd-field_3.entry.js +31 -30
  286. package/dist/esm/sd-form.entry.js +5 -5
  287. package/dist/esm/sd-ghost-button.entry.js +4 -4
  288. package/dist/esm/sd-guide.entry.js +5 -5
  289. package/dist/esm/sd-key-value-table.entry.js +10 -10
  290. package/dist/esm/sd-linear-progress.entry.js +2 -2
  291. package/dist/esm/sd-loading-container.entry.js +3 -3
  292. package/dist/esm/sd-modal-container.entry.js +3 -3
  293. package/dist/esm/sd-pagination_4.entry.js +116 -43
  294. package/dist/esm/sd-popover.entry.js +6 -6
  295. package/dist/esm/sd-popup.entry.js +2 -2
  296. package/dist/esm/sd-portal.entry.js +3 -3
  297. package/dist/esm/sd-radio-button.entry.js +7 -4
  298. package/dist/esm/sd-radio.entry.js +2 -2
  299. package/dist/esm/sd-select-list-item_2.entry.js +15 -11
  300. package/dist/esm/sd-select_3.entry.js +20 -15
  301. package/dist/esm/sd-switch.entry.js +2 -2
  302. package/dist/esm/{sd-table.config-0Te8GLCI.js → sd-table.config-B-VgXXT7.js} +13 -3
  303. package/dist/esm/sd-table.entry.js +170 -47
  304. package/dist/esm/sd-tabs.entry.js +8 -3
  305. package/dist/esm/sd-tag.entry.js +10 -10
  306. package/dist/esm/sd-td.entry.js +52 -10
  307. package/dist/esm/sd-text-link.entry.js +9 -4
  308. package/dist/esm/sd-toast-container.entry.js +2 -2
  309. package/dist/esm/sd-toast.entry.js +3 -3
  310. package/dist/esm/sd-toggle.entry.js +2 -2
  311. package/dist/esm/{tooltipArrow-Bc-yw2nt.js → tooltipArrow-O5LOsHae.js} +1 -1
  312. package/dist/esm/useDatePicker-D5RmWGOp.js +98 -0
  313. package/dist/types/components/sd-calendar/sd-calendar.config.d.ts +55 -0
  314. package/dist/types/components/sd-calendar/sd-calendar.d.ts +18 -21
  315. package/dist/types/components/sd-date-picker/sd-date-picker.config.d.ts +0 -38
  316. package/dist/types/components/sd-date-range-picker/sd-date-range-picker.config.d.ts +2 -1
  317. package/dist/types/components/sd-dropdown-button/sd-dropdown-button.config.d.ts +3 -2
  318. package/dist/types/components/sd-table/constants.d.ts +2 -0
  319. package/dist/types/components/sd-table/sd-table.config.d.ts +4 -0
  320. package/dist/types/components/sd-table/sd-table.d.ts +19 -15
  321. package/dist/types/components/sd-table/sd-td/sd-td.d.ts +6 -0
  322. package/dist/types/components/sd-table/sd-tr/sd-tr.d.ts +7 -0
  323. package/dist/types/components/sd-tag/sd-tag.d.ts +1 -0
  324. package/dist/types/components.d.ts +47 -60
  325. package/dist/types/index.d.ts +4 -3
  326. package/hydrate/index.js +1359 -1130
  327. package/hydrate/index.mjs +1359 -1130
  328. package/package.json +1 -1
  329. package/dist/cjs/resolveColor-B0hzQNLG.js +0 -270
  330. package/dist/cjs/sd-calendar.cjs.entry.js +0 -143
  331. package/dist/cjs/sd-date-picker-calendar_2.cjs.entry.js +0 -214
  332. package/dist/cjs/sd-date-picker.config-CjvrFpYK.js +0 -177
  333. package/dist/cjs/useDatePicker-cK_XK_P6.js +0 -48
  334. package/dist/collection/components/sd-date-picker/sd-date-picker-calendar/sd-date-picker-calendar.css +0 -117
  335. package/dist/collection/components/sd-date-picker/sd-date-picker-calendar/sd-date-picker-calendar.js +0 -246
  336. package/dist/components/p--t9jBTYS.js +0 -1
  337. package/dist/components/p-At6nBeyO.js +0 -1
  338. package/dist/components/p-B6cqMQaM.js +0 -1
  339. package/dist/components/p-B73VhbYi.js +0 -1
  340. package/dist/components/p-BDQQllAo.js +0 -1
  341. package/dist/components/p-BDr27lvk.js +0 -1
  342. package/dist/components/p-BQ6at17Y.js +0 -1
  343. package/dist/components/p-BW_sBt7X.js +0 -1
  344. package/dist/components/p-BX3TJuQY.js +0 -1
  345. package/dist/components/p-Bm_T3qE0.js +0 -1
  346. package/dist/components/p-BnzK4uU4.js +0 -1
  347. package/dist/components/p-BqkJ0rZv.js +0 -1
  348. package/dist/components/p-C4PmGpW8.js +0 -1
  349. package/dist/components/p-C9CszVFl.js +0 -1
  350. package/dist/components/p-CGQWERwE.js +0 -1
  351. package/dist/components/p-CZmKBmKx.js +0 -1
  352. package/dist/components/p-CnarDyZi.js +0 -1
  353. package/dist/components/p-Cr2ghUra.js +0 -1
  354. package/dist/components/p-Cspm6LxP.js +0 -1
  355. package/dist/components/p-Cx3jXw9J.js +0 -1
  356. package/dist/components/p-DG-4Ifco.js +0 -1
  357. package/dist/components/p-DTrMR0rx.js +0 -1
  358. package/dist/components/p-DfXAgw0E.js +0 -1
  359. package/dist/components/p-MMkRcTBd.js +0 -1
  360. package/dist/components/p-ZstG0XdT.js +0 -1
  361. package/dist/components/p-h7eBUL4i.js +0 -1
  362. package/dist/components/p-lyB7zSp-.js +0 -1
  363. package/dist/components/p-oIM6jNZe.js +0 -1
  364. package/dist/components/p-oKHZl8yu.js +0 -1
  365. package/dist/components/sd-date-picker-calendar.d.ts +0 -11
  366. package/dist/components/sd-date-picker-calendar.js +0 -1
  367. package/dist/design-system/p-02289728.entry.js +0 -1
  368. package/dist/design-system/p-17d66d85.entry.js +0 -1
  369. package/dist/design-system/p-18466728.entry.js +0 -1
  370. package/dist/design-system/p-1bb86d69.entry.js +0 -1
  371. package/dist/design-system/p-21874054.entry.js +0 -1
  372. package/dist/design-system/p-282cbefa.entry.js +0 -1
  373. package/dist/design-system/p-35dce399.entry.js +0 -1
  374. package/dist/design-system/p-39ff56b4.entry.js +0 -1
  375. package/dist/design-system/p-3cb712a6.entry.js +0 -1
  376. package/dist/design-system/p-7610153d.entry.js +0 -1
  377. package/dist/design-system/p-7722ddeb.entry.js +0 -1
  378. package/dist/design-system/p-7bfa0cf9.entry.js +0 -1
  379. package/dist/design-system/p-824ecfb5.entry.js +0 -1
  380. package/dist/design-system/p-9a04b341.entry.js +0 -1
  381. package/dist/design-system/p-B6cqMQaM.js +0 -1
  382. package/dist/design-system/p-BQ6at17Y.js +0 -1
  383. package/dist/design-system/p-CGQWERwE.js +0 -1
  384. package/dist/design-system/p-CLCoul8o.js +0 -2
  385. package/dist/design-system/p-Ce0cmS4R.js +0 -1
  386. package/dist/design-system/p-DTrMR0rx.js +0 -1
  387. package/dist/design-system/p-Dmf0PYdM.js +0 -1
  388. package/dist/design-system/p-a7a0ca14.entry.js +0 -1
  389. package/dist/design-system/p-b04b22c6.entry.js +0 -1
  390. package/dist/design-system/p-baed13e4.entry.js +0 -1
  391. package/dist/design-system/p-bd45e65d.entry.js +0 -1
  392. package/dist/design-system/p-bf4156d8.entry.js +0 -1
  393. package/dist/design-system/p-c228c2c7.entry.js +0 -1
  394. package/dist/design-system/p-cf382479.entry.js +0 -1
  395. package/dist/design-system/p-d0de34fd.entry.js +0 -1
  396. package/dist/design-system/p-f60cc7be.entry.js +0 -1
  397. package/dist/esm/resolveColor-Ce0cmS4R.js +0 -268
  398. package/dist/esm/sd-calendar.entry.js +0 -141
  399. package/dist/esm/sd-date-picker-calendar_2.entry.js +0 -211
  400. package/dist/esm/sd-date-picker.config-B6cqMQaM.js +0 -171
  401. package/dist/esm/useDatePicker-DTrMR0rx.js +0 -45
  402. package/dist/types/components/sd-date-picker/sd-date-picker-calendar/sd-date-picker-calendar.d.ts +0 -26
package/hydrate/index.js CHANGED
@@ -136,7 +136,7 @@ var node_crypto = require('node:crypto');
136
136
  const NAMESPACE = 'design-system';
137
137
  const BUILD = /* design-system */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", slotRelocation: true, state: true, updatable: true};
138
138
 
139
- const globalStyles = ":root{--color-primary:#051D36;--sd-primary:#051D36;--color-secondary:#555555;--sd-secondary:#555555;--color-accent:#9C27B0;--sd-accent:#9C27B0;--color-positive:#0075FF;--sd-positive:#0075FF;--color-negative:#E30000;--sd-negative:#E30000;--color-info:#00CD52;--sd-info:#00CD52;--color-warning:#F2C037;--sd-warning:#F2C037;--color-caution_bg:#FEF1F1;--sd-caution_bg:#FEF1F1;--color-caution_icon:#FD9595;--sd-caution_icon:#FD9595;--color-header_alert:#FF7A00;--sd-header_alert:#FF7A00;--color-white:#FFFFFF;--sd-white:#FFFFFF;--color-black:#000000;--sd-black:#000000;--color-grey_10:#F6F6F6;--sd-grey_10:#F6F6F6;--color-grey_20:#EEEEEE;--sd-grey_20:#EEEEEE;--color-grey_25:#E5E5E5;--sd-grey_25:#E5E5E5;--color-grey_30:#E1E1E1;--sd-grey_30:#E1E1E1;--color-grey_35:#D8D8D8;--sd-grey_35:#D8D8D8;--color-grey_45:#CCCCCC;--sd-grey_45:#CCCCCC;--color-grey_50:#BBBBBB;--sd-grey_50:#BBBBBB;--color-grey_55:#AAAAAA;--sd-grey_55:#AAAAAA;--color-grey_60:#999999;--sd-grey_60:#999999;--color-grey_65:#888888;--sd-grey_65:#888888;--color-grey_70:#737373;--sd-grey_70:#737373;--color-grey_80:#555555;--sd-grey_80:#555555;--color-grey_85:#444444;--sd-grey_85:#444444;--color-grey_90:#333333;--sd-grey_90:#333333;--color-grey_95:#222222;--sd-grey_95:#222222;--color-grey_05:#F9F9F9;--sd-grey_05:#F9F9F9;--color-red_15:#FCEFEF;--sd-red_15:#FCEFEF;--color-red_20:#FCE6E6;--sd-red_20:#FCE6E6;--color-red_30:#FFD3D3;--sd-red_30:#FFD3D3;--color-red_45:#FFB5B5;--sd-red_45:#FFB5B5;--color-red_60:#FF7C7C;--sd-red_60:#FF7C7C;--color-red_70:#FB4444;--sd-red_70:#FB4444;--color-red_75:#E30000;--sd-red_75:#E30000;--color-red_75_006:#E30000;--sd-red_75_006:#E30000;--color-red_80:#AD0000;--sd-red_80:#AD0000;--color-red_85:#820000;--sd-red_85:#820000;--color-red_90:#5E0000;--sd-red_90:#5E0000;--color-red_95:#440000;--sd-red_95:#440000;--color-red_99:#220000;--sd-red_99:#220000;--color-orange_10:#FEF1EA;--sd-orange_10:#FEF1EA;--color-orange_20:#FFEAD7;--sd-orange_20:#FFEAD7;--color-orange_35:#FFD5AF;--sd-orange_35:#FFD5AF;--color-orange_45:#FFBC81;--sd-orange_45:#FFBC81;--color-orange_55:#FFA452;--sd-orange_55:#FFA452;--color-orange_60:#FF7F22;--sd-orange_60:#FF7F22;--color-orange_65:#FF6B00;--sd-orange_65:#FF6B00;--color-orange_75:#CE4900;--sd-orange_75:#CE4900;--color-orange_85:#9B3700;--sd-orange_85:#9B3700;--color-orange_90:#752A00;--sd-orange_90:#752A00;--color-orange_95:#4D1B00;--sd-orange_95:#4D1B00;--color-orange_99:#2F1100;--sd-orange_99:#2F1100;--color-yellow_10:#FFF7DD;--sd-yellow_10:#FFF7DD;--color-yellow_20:#FEF1C4;--sd-yellow_20:#FEF1C4;--color-yellow_25:#FFE99E;--sd-yellow_25:#FFE99E;--color-yellow_30:#FEE17C;--sd-yellow_30:#FEE17C;--color-yellow_40:#FFD643;--sd-yellow_40:#FFD643;--color-yellow_45:#FFC700;--sd-yellow_45:#FFC700;--color-yellow_50:#EBB110;--sd-yellow_50:#EBB110;--color-yellow_60:#CA9612;--sd-yellow_60:#CA9612;--color-yellow_70:#916C0D;--sd-yellow_70:#916C0D;--color-yellow_80:#6C5002;--sd-yellow_80:#6C5002;--color-yellow_90:#453602;--sd-yellow_90:#453602;--color-yellow_95:#322700;--sd-yellow_95:#322700;--color-olive_10:#FBFBBF;--sd-olive_10:#FBFBBF;--color-olive_15:#FAFAA1;--sd-olive_15:#FAFAA1;--color-olive_20:#F6F65F;--sd-olive_20:#F6F65F;--color-olive_30:#EEEE37;--sd-olive_30:#EEEE37;--color-olive_45:#DDDD12;--sd-olive_45:#DDDD12;--color-olive_55:#C7C700;--sd-olive_55:#C7C700;--color-olive_65:#A5A500;--sd-olive_65:#A5A500;--color-olive_70:#838300;--sd-olive_70:#838300;--color-olive_80:#636300;--sd-olive_80:#636300;--color-olive_90:#454500;--sd-olive_90:#454500;--color-olive_95:#2C2C00;--sd-olive_95:#2C2C00;--color-olive_05:#FEFED9;--sd-olive_05:#FEFED9;--color-green_15:#E8F9EF;--sd-green_15:#E8F9EF;--color-green_25:#D4FAE3;--sd-green_25:#D4FAE3;--color-green_45:#ACF4C9;--sd-green_45:#ACF4C9;--color-green_55:#6DE39C;--sd-green_55:#6DE39C;--color-green_65:#2BCE6C;--sd-green_65:#2BCE6C;--color-green_70:#12B553;--sd-green_70:#12B553;--color-green_75:#00973C;--sd-green_75:#00973C;--color-green_80:#007B31;--sd-green_80:#007B31;--color-green_85:#006629;--sd-green_85:#006629;--color-green_90:#00461C;--sd-green_90:#00461C;--color-green_95:#003013;--sd-green_95:#003013;--color-green_99:#001D0B;--sd-green_99:#001D0B;--color-steelblue_10:#ECF8FD;--sd-steelblue_10:#ECF8FD;--color-steelblue_25:#D9F2FD;--sd-steelblue_25:#D9F2FD;--color-steelblue_45:#A4E2FD;--sd-steelblue_45:#A4E2FD;--color-steelblue_60:#50BFF0;--sd-steelblue_60:#50BFF0;--color-steelblue_65:#229FD7;--sd-steelblue_65:#229FD7;--color-steelblue_70:#128FC7;--sd-steelblue_70:#128FC7;--color-steelblue_75:#066D9B;--sd-steelblue_75:#066D9B;--color-steelblue_80:#06587D;--sd-steelblue_80:#06587D;--color-steelblue_85:#033F59;--sd-steelblue_85:#033F59;--color-steelblue_90:#032D40;--sd-steelblue_90:#032D40;--color-steelblue_95:#02212F;--sd-steelblue_95:#02212F;--color-steelblue_99:#021A25;--sd-steelblue_99:#021A25;--color-oceanblue_15:#EAF5FE;--sd-oceanblue_15:#EAF5FE;--color-oceanblue_25:#D5EBFE;--sd-oceanblue_25:#D5EBFE;--color-oceanblue_50:#9CD1FC;--sd-oceanblue_50:#9CD1FC;--color-oceanblue_60:#5CB0F3;--sd-oceanblue_60:#5CB0F3;--color-oceanblue_65:#1F8AE1;--sd-oceanblue_65:#1F8AE1;--color-oceanblue_70:#006AC1;--sd-oceanblue_70:#006AC1;--color-oceanblue_75:#025497;--sd-oceanblue_75:#025497;--color-oceanblue_80:#004177;--sd-oceanblue_80:#004177;--color-oceanblue_85:#07284A;--sd-oceanblue_85:#07284A;--color-oceanblue_90:#051D36;--sd-oceanblue_90:#051D36;--color-oceanblue_95:#03172D;--sd-oceanblue_95:#03172D;--color-oceanblue_99:#011428;--sd-oceanblue_99:#011428;--color-brilliantblue_10:#EFF6FF;--sd-brilliantblue_10:#EFF6FF;--color-brilliantblue_20:#E6F1FF;--sd-brilliantblue_20:#E6F1FF;--color-brilliantblue_25:#D9EAFF;--sd-brilliantblue_25:#D9EAFF;--color-brilliantblue_40:#BBDAFF;--sd-brilliantblue_40:#BBDAFF;--color-brilliantblue_50:#93C4FF;--sd-brilliantblue_50:#93C4FF;--color-brilliantblue_60:#64ABFF;--sd-brilliantblue_60:#64ABFF;--color-brilliantblue_70:#2D8DFF;--sd-brilliantblue_70:#2D8DFF;--color-brilliantblue_75:#0075FF;--sd-brilliantblue_75:#0075FF;--color-brilliantblue_80:#005CC9;--sd-brilliantblue_80:#005CC9;--color-brilliantblue_85:#004290;--sd-brilliantblue_85:#004290;--color-brilliantblue_90:#002B5E;--sd-brilliantblue_90:#002B5E;--color-brilliantblue_95:#001B39;--sd-brilliantblue_95:#001B39;--color-brilliantblue_99:#001226;--sd-brilliantblue_99:#001226;--color-brilliantblue_05:#F5FAFF;--sd-brilliantblue_05:#F5FAFF;--sd-system-typography-control-xs-default-font-family: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;--sd-system-typography-control-xs-default-font-size:12px;--sd-system-typography-control-xs-default-font-weight:400;--sd-system-typography-control-xs-default-text-decoration:none;--sd-system-typography-control-xs-default-line-height:20px;--sd-system-typography-control-xs-medium-font-family: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;--sd-system-typography-control-xs-medium-font-size:12px;--sd-system-typography-control-xs-medium-font-weight:500;--sd-system-typography-control-xs-medium-text-decoration:none;--sd-system-typography-control-xs-medium-line-height:20px;--sd-system-typography-control-xs-bold-font-family: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;--sd-system-typography-control-xs-bold-font-weight:700;--sd-system-typography-control-xs-bold-font-size:12px;--sd-system-typography-control-xs-bold-line-height:20px;--sd-system-typography-control-xs-bold-text-decoration:none;--sd-system-typography-control-sm-default-font-family: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;--sd-system-typography-control-sm-default-font-size:12px;--sd-system-typography-control-sm-default-font-weight:500;--sd-system-typography-control-sm-default-text-decoration:none;--sd-system-typography-control-sm-default-line-height:20px;--sd-system-typography-control-sm-underline-font-family: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;--sd-system-typography-control-sm-underline-font-size:12px;--sd-system-typography-control-sm-underline-font-weight:500;--sd-system-typography-control-sm-underline-text-decoration:underline;--sd-system-typography-control-sm-underline-line-height:22px;--sd-system-typography-control-md-font-family: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;--sd-system-typography-control-md-font-size:16px;--sd-system-typography-control-md-font-weight:500;--sd-system-typography-control-md-text-decoration:none;--sd-system-typography-control-md-line-height:26px;--sd-system-typography-control-lg-font-family: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;--sd-system-typography-control-lg-font-size:18px;--sd-system-typography-control-lg-font-weight:500;--sd-system-typography-control-lg-text-decoration:none;--sd-system-typography-control-lg-line-height:30px;--sd-system-typography-feedback-xs-font-family: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;--sd-system-typography-feedback-xs-font-size:11px;--sd-system-typography-feedback-xs-font-weight:500;--sd-system-typography-feedback-xs-line-height:18px;--sd-system-typography-feedback-xs-text-decoration:none;--sd-system-typography-feedback-sm-regular-font-family: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;--sd-system-typography-feedback-sm-regular-font-size:12px;--sd-system-typography-feedback-sm-regular-font-weight:400;--sd-system-typography-feedback-sm-regular-line-height:20px;--sd-system-typography-feedback-sm-regular-text-decoration:none;--sd-system-typography-feedback-sm-medium-font-family: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;--sd-system-typography-feedback-sm-medium-font-size:12px;--sd-system-typography-feedback-sm-medium-font-weight:500;--sd-system-typography-feedback-sm-medium-line-height:20px;--sd-system-typography-feedback-sm-medium-text-decoration:none;--sd-system-typography-feedback-sm-bold-font-family: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;--sd-system-typography-feedback-sm-bold-font-size:12px;--sd-system-typography-feedback-sm-bold-font-weight:700;--sd-system-typography-feedback-sm-bold-text-decoration:none;--sd-system-typography-feedback-sm-bold-line-height:20px;--sd-system-typography-feedback-sm-underline-font-family: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;--sd-system-typography-feedback-sm-underline-font-size:12px;--sd-system-typography-feedback-sm-underline-font-weight:500;--sd-system-typography-feedback-sm-underline-line-height:20px;--sd-system-typography-feedback-sm-underline-text-decoration:underline;--sd-system-typography-feedback-md-bold-font-family: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;--sd-system-typography-feedback-md-bold-font-size:14px;--sd-system-typography-feedback-md-bold-font-weight:700;--sd-system-typography-feedback-md-bold-line-height:24px;--sd-system-typography-feedback-md-bold-text-decoration:none;--sd-system-typography-feedback-md-medium-font-family: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;--sd-system-typography-feedback-md-medium-font-size:14px;--sd-system-typography-feedback-md-medium-font-weight:500;--sd-system-typography-feedback-md-medium-line-height:24px;--sd-system-typography-feedback-md-medium-text-decoration:none;--sd-system-typography-feedback-md-underline-font-family: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;--sd-system-typography-feedback-md-underline-font-size:14px;--sd-system-typography-feedback-md-underline-font-weight:700;--sd-system-typography-feedback-md-underline-line-height:24px;--sd-system-typography-feedback-md-underline-text-decoration:underline;--sd-system-typography-heading-sm-font-family: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;--sd-system-typography-heading-sm-font-weight:700;--sd-system-typography-heading-sm-font-size:14px;--sd-system-typography-heading-sm-line-height:24px;--sd-system-typography-heading-sm-text-decoration:none;--sd-system-typography-heading-md-font-family: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;--sd-system-typography-heading-md-font-weight:700;--sd-system-typography-heading-md-font-size:16px;--sd-system-typography-heading-md-text-decoration:none;--sd-system-typography-heading-md-line-height:26px;--sd-system-typography-heading-lg-font-family: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;--sd-system-typography-heading-lg-font-weight:700;--sd-system-typography-heading-lg-font-size:18px;--sd-system-typography-heading-lg-line-height:30px;--sd-system-typography-heading-lg-text-decoration:none;--sd-system-typography-field-xs-default-font-family: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;--sd-system-typography-field-xs-default-font-weight:400;--sd-system-typography-field-xs-default-font-size:11px;--sd-system-typography-field-xs-default-line-height:18px;--sd-system-typography-field-xs-default-text-decoration:none;--sd-system-typography-field-sm-default-font-family: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;--sd-system-typography-field-sm-default-font-weight:400;--sd-system-typography-field-sm-default-font-size:12px;--sd-system-typography-field-sm-default-line-height:20px;--sd-system-typography-field-sm-default-text-decoration:none;--sd-system-typography-field-sm-medium-font-family: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;--sd-system-typography-field-sm-medium-font-weight:500;--sd-system-typography-field-sm-medium-font-size:12px;--sd-system-typography-field-sm-medium-text-decoration:none;--sd-system-typography-field-sm-medium-line-height:20px;--sd-system-typography-field-sm-bold-font-family: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;--sd-system-typography-field-sm-bold-font-weight:700;--sd-system-typography-field-sm-bold-font-size:12px;--sd-system-typography-field-sm-bold-text-decoration:none;--sd-system-typography-field-sm-bold-line-height:20px;--sd-system-typography-field-md-default-font-family: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;--sd-system-typography-field-md-default-font-weight:400;--sd-system-typography-field-md-default-font-size:14px;--sd-system-typography-field-md-default-text-decoration:none;--sd-system-typography-field-md-default-line-height:24px;--sd-system-typography-field-md-medium-font-family: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;--sd-system-typography-field-md-medium-font-weight:500;--sd-system-typography-field-md-medium-font-size:14px;--sd-system-typography-field-md-medium-text-decoration:none;--sd-system-typography-field-md-medium-line-height:24px;--sd-system-typography-field-md-bold-font-family: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;--sd-system-typography-field-md-bold-font-weight:700;--sd-system-typography-field-md-bold-font-size:14px;--sd-system-typography-field-md-bold-text-decoration:none;--sd-system-typography-field-md-bold-line-height:24px;--sd-system-typography-field-lg-default-font-family: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;--sd-system-typography-field-lg-default-font-weight:400;--sd-system-typography-field-lg-default-font-size:16px;--sd-system-typography-field-lg-default-line-height:26px;--sd-system-typography-field-lg-default-text-decoration:none;--sd-system-typography-field-lg-medium-font-family: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;--sd-system-typography-field-lg-medium-font-weight:500;--sd-system-typography-field-lg-medium-font-size:16px;--sd-system-typography-field-lg-medium-line-height:26px;--sd-system-typography-field-lg-medium-text-decoration:none;--sd-system-typography-field-lg-bold-font-family: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;--sd-system-typography-field-lg-bold-font-weight:700;--sd-system-typography-field-lg-bold-font-size:16px;--sd-system-typography-field-lg-bold-line-height:26px;--sd-system-typography-field-lg-bold-text-decoration:none;--sd-system-typography-navigation-default-font-family: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;--sd-system-typography-navigation-default-font-weight:400;--sd-system-typography-navigation-default-font-size:12px;--sd-system-typography-navigation-default-line-height:20px;--sd-system-typography-navigation-default-text-decoration:none;--sd-system-typography-navigation-bold-font-family: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;--sd-system-typography-navigation-bold-font-weight:700;--sd-system-typography-navigation-bold-font-size:12px;--sd-system-typography-navigation-bold-line-height:20px;--sd-system-typography-navigation-bold-text-decoration:none;--sd-system-typography-table-header-font-family: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;--sd-system-typography-table-header-font-weight:500;--sd-system-typography-table-header-font-size:12px;--sd-system-typography-table-header-line-height:20px;--sd-system-typography-table-header-text-decoration:none;--sd-system-typography-table-body-font-family: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;--sd-system-typography-table-body-font-weight:400;--sd-system-typography-table-body-font-size:12px;--sd-system-typography-table-body-line-height:20px;--sd-system-typography-table-body-text-decoration:none;--sd-system-typography-table-accent-font-family: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;--sd-system-typography-table-accent-font-weight:700;--sd-system-typography-table-accent-font-size:12px;--sd-system-typography-table-accent-line-height:20px;--sd-system-typography-table-accent-text-decoration:none;--sd-system-size-control-xs-height:24px;--sd-system-size-control-sm-height:28px;--sd-system-size-control-md-height:36px;--sd-system-size-control-lg-height:62px;--sd-system-size-icon-xxxs:8px;--sd-system-size-icon-xxs:10px;--sd-system-size-icon-xs:12px;--sd-system-size-icon-sm:16px;--sd-system-size-icon-md:20px;--sd-system-size-icon-lg:24px;--sd-system-size-icon-xl:32px;--sd-system-size-feedback-arrow-width:16px;--sd-system-size-feedback-arrow-height:12px;--sd-system-size-feedback-xs-height:20px;--sd-system-size-feedback-sm-height:24px;--sd-system-size-feedback-md-height:28px;--sd-system-size-field-control:16px;--sd-system-size-field-icon:12px;--sd-system-size-field-sm-height:28px;--sd-system-size-field-md-height:36px;--sd-system-size-navigation-lg-height:44px;--sd-system-size-navigation-md-height:36px;--sd-system-size-table-height-xs:32px;--sd-system-size-table-height-sm:36px;--sd-system-size-table-height-md:44px;--sd-system-space-control-xs-padding-x:8px;--sd-system-space-control-xs-gap:4px;--sd-system-space-control-sm-padding-x:12px;--sd-system-space-control-sm-gap:6px;--sd-system-space-control-md-padding-x:20px;--sd-system-space-control-md-gap:8px;--sd-system-space-control-lg-padding-x:28px;--sd-system-space-control-lg-gap:12px;--sd-system-space-feedback-xs-padding-x:6px;--sd-system-space-feedback-xs-gap:4px;--sd-system-space-feedback-sm-padding-x:8px;--sd-system-space-feedback-sm-gap:6px;--sd-system-space-feedback-md-padding-x:12px;--sd-system-space-feedback-md-gap:8px;--sd-system-space-feedback-lg-padding-x:16px;--sd-system-space-feedback-lg-gap:12px;--sd-system-space-stack-gap-tight:2px;--sd-system-space-stack-gap-normal:4px;--sd-system-space-stack-gap-relaxed:8px;--sd-system-space-field-sm-padding-x:12px;--sd-system-space-field-sm-padding-y:4px;--sd-system-space-field-sm-container-gap:8px;--sd-system-space-field-sm-gap:12px;--sd-system-space-field-md-padding-x:16px;--sd-system-space-field-md-container-gap:12px;--sd-system-space-field-md-gap:16px;--sd-system-space-navigation-lg-padding-x:32px;--sd-system-space-navigation-md-padding-x:24px;--sd-system-space-table-padding-sm:8px;--sd-system-space-table-padding-md:16px;--sd-system-space-action-gap:16px;--sd-system-space-overlay-padding-x-sm:20px;--sd-system-space-overlay-padding-x-md:24px;--sd-system-space-overlay-padding-y-sm:8px;--sd-system-space-panel-gap:12px;--sd-system-radius-control-sm:4px;--sd-system-radius-control-md:6px;--sd-system-radius-feedback-xs-square:6px;--sd-system-radius-feedback-sm-square:8px;--sd-system-radius-feedback-pill:9999px;--sd-system-radius-field-sm:4px;--sd-system-radius-field-md:6px;--sd-system-radius-navigation:6px;--sd-system-border-width-control-default:1px;--sd-system-border-width-field-default:1px;--sd-system-border-width-navigation-default:1px;--sd-system-color-bg-screen:#EEEEEE;--sd-system-color-bg-frame:#FFFFFF;--sd-system-color-bg-brand:#025497;--sd-system-color-bg-subtle:#1F8AE1;--sd-system-color-bg-accent-default:#0075FF;--sd-system-color-bg-accent-light:#F5FAFF;--sd-system-color-bg-accent-light-default:#2D8DFF;--sd-system-color-bg-accent-light-light:#F5FAFF;--sd-system-color-bg-accent-bright-default:#D9EAFF;--sd-system-color-bg-accent-bright-light:#F5FAFF;--sd-system-color-bg-deep:#07284A;--sd-system-color-bg-danger-default:#E30000;--sd-system-color-bg-danger-light:#FCEFEF;--sd-system-color-bg-danger-light-default:#FB4444;--sd-system-color-bg-danger-light-light:#FCEFEF;--sd-system-color-bg-warning:#FF6B00;--sd-system-color-bg-caution:#FFC700;--sd-system-color-bg-progress:#0075FF;--sd-system-color-bg-success-default:#00973C;--sd-system-color-bg-success-light:#12B553;--sd-system-color-bg-success-light:#12B553;--sd-system-color-bg-neutral-light:#F6F6F6;--sd-system-color-bg-table-header:#F5FAFF;--sd-system-color-fg-primary:#222222;--sd-system-color-fg-secondary:#555555;--sd-system-color-fg-tertiary:#888888;--sd-system-color-fg-quaternary:#AAAAAA;--sd-system-color-fg-brand:#005CC9;--sd-system-color-fg-subtle-warm:#066D9B;--sd-system-color-fg-subtle-cool:#025497;--sd-system-color-fg-deep:#004290;--sd-system-color-fg-success:#00973C;--sd-system-color-fg-danger-light:#FB4444;--sd-system-color-fg-accent:#0075FF;--sd-system-color-fg-danger:#E30000;--sd-system-color-fg-warning:#FF6B00;--sd-system-color-fg-inverse:#FFFFFF;--sd-system-color-disabled-bg:#E1E1E1;--sd-system-color-disabled-text:#888888;--sd-system-color-disabled-icon:#BBBBBB;--sd-system-color-disabled-border:#CCCCCC;--sd-system-color-link-accent:#006AC1;--sd-system-color-divider-default:#E1E1E1;--sd-system-color-border-default:#E1E1E1;--sd-system-color-border-accent:#0075FF;--sd-system-color-border-danger:#FB4444;--sd-system-color-border-success:#12B553;--sd-system-color-red-strong:#FB4444;--sd-system-color-red-subtle:#FCEFEF;--sd-system-color-orange-strong:#FF6B00;--sd-system-color-orange-subtle:#FEF1EA;--sd-system-color-yellow-strong:#916C0D;--sd-system-color-yellow-moderate:#FFC700;--sd-system-color-yellow-subtle:#FFF7DD;--sd-system-color-green-strong:#00973C;--sd-system-color-green-subtle:#E8F9EF;--sd-system-color-blue-strong:#0075FF;--sd-system-color-blue-subtle:#E6F1FF;--sd-system-color-darkblue-strong:#006AC1;--sd-system-color-darkblue-subtle:#EAF5FE;--sd-system-color-indigo-strong:#004290;--sd-system-color-indigo-subtle:#EFF6FF;--sd-system-color-grey-strong:#737373;--sd-system-color-grey-subtle:#EEEEEE;--sd-system-color-field-bg-default:#FFFFFF;--sd-system-color-field-bg-hover:#0075FF;--sd-system-color-field-bg-read-only:#EEEEEE;--sd-system-color-field-border-default:#AAAAAA;--sd-system-color-field-border-focus:#0075FF;--sd-system-color-field-border-hover:#0075FF;--sd-system-color-field-border-danger:#FB4444;--sd-system-color-field-border-success:#12B553;--sd-system-color-field-text-default:#222222;--sd-system-color-field-text-placeholder:#AAAAAA;--sd-system-color-field-text-read-only:#555555;--sd-system-color-field-icon-default:#888888;--sd-system-color-control-bg-inverse-hover:#0075FF;--sd-system-shadow-spread-sm-x:0px;--sd-system-shadow-spread-sm-y:0px;--sd-system-shadow-spread-sm-blur:8px;--sd-system-shadow-spread-sm-spread:0px;--sd-system-shadow-spread-sm-color:rgba(34,34,34,0.1);--sd-system-shadow-spread-sm-type:dropShadow;--sd-system-shadow-spread-md-x:0px;--sd-system-shadow-spread-md-y:0px;--sd-system-shadow-spread-md-blur:24px;--sd-system-shadow-spread-md-spread:0px;--sd-system-shadow-spread-md-color:rgba(34,34,34,0.2);--sd-system-shadow-spread-md-type:innerShadow;--sd-system-shadow-focus-x:0px;--sd-system-shadow-focus-y:0px;--sd-system-shadow-focus-blur:8px;--sd-system-shadow-focus-spread:0px;--sd-system-shadow-focus-color:rgba(0,117,255,0.25);--sd-system-shadow-focus-type:dropShadow;--sd-button-button-xs-height:24px;--sd-button-button-xs-padding-x:8px;--sd-button-button-xs-gap:4px;--sd-button-button-xs-typography-font-family: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;--sd-button-button-xs-typography-font-size:12px;--sd-button-button-xs-typography-font-weight:500;--sd-button-button-xs-typography-text-decoration:none;--sd-button-button-xs-typography-line-height:20px;--sd-button-button-xs-icon:12px;--sd-button-button-sm-height:28px;--sd-button-button-sm-padding-x:12px;--sd-button-button-sm-gap:6px;--sd-button-button-sm-typography-font-family: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;--sd-button-button-sm-typography-font-size:12px;--sd-button-button-sm-typography-font-weight:500;--sd-button-button-sm-typography-text-decoration:none;--sd-button-button-sm-typography-line-height:20px;--sd-button-button-sm-icon:16px;--sd-button-button-md-height:36px;--sd-button-button-md-padding-x:20px;--sd-button-button-md-gap:8px;--sd-button-button-md-typography-font-family: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;--sd-button-button-md-typography-font-size:16px;--sd-button-button-md-typography-font-weight:500;--sd-button-button-md-typography-text-decoration:none;--sd-button-button-md-typography-line-height:26px;--sd-button-button-md-icon:20px;--sd-button-button-lg-height:62px;--sd-button-button-lg-padding-x:28px;--sd-button-button-lg-gap:12px;--sd-button-button-lg-typography-font-family: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;--sd-button-button-lg-typography-font-size:18px;--sd-button-button-lg-typography-font-weight:500;--sd-button-button-lg-typography-text-decoration:none;--sd-button-button-lg-typography-line-height:30px;--sd-button-button-lg-icon:24px;--sd-button-button-radius-sm:4px;--sd-button-button-radius-md:6px;--sd-button-button-border-width-default:1px;--sd-button-button-border-disabled:#CCCCCC;--sd-button-button-icon-only-xs-width:24px;--sd-button-button-icon-only-sm-width:28px;--sd-button-button-icon-only-md-width:36px;--sd-button-button-icon-only-lg-width:62px;--sd-button-button-bg-disabled:#E1E1E1;--sd-button-button-text-disabled:#888888;--sd-button-button-icon-disabled:#BBBBBB;--sd-button-button-brand-strong-bg-default:#025497;--sd-button-button-brand-strong-bg-hover:#004177;--sd-button-button-brand-strong-content:#FFFFFF;--sd-button-button-brand-strong-dropdown-divider:#006AC1;--sd-button-button-brand-subtle-bg-default:#1F8AE1;--sd-button-button-brand-subtle-bg-hover:#006AC1;--sd-button-button-brand-subtle-content:#FFFFFF;--sd-button-button-brand-subtle-dropdown-divider:#5CB0F3;--sd-button-button-brand-outline-bg-default:#FFFFFF;--sd-button-button-brand-outline-bg-hover:#EAF5FE;--sd-button-button-brand-outline-border:#025497;--sd-button-button-brand-outline-content:#025497;--sd-button-button-neutral-outline-bg-default:#FFFFFF;--sd-button-button-neutral-outline-bg-hover:#EEEEEE;--sd-button-button-neutral-outline-border:#888888;--sd-button-button-neutral-outline-content:#222222;--sd-button-button-danger-strong-bg-default:#E30000;--sd-button-button-danger-strong-bg-hover:#AD0000;--sd-button-button-danger-strong-content:#FFFFFF;--sd-button-button-danger-strong-dropdown-divider:#FF7C7C;--sd-button-button-danger-outline-bg-default:#FFFFFF;--sd-button-button-danger-outline-bg-hover:#FCEFEF;--sd-button-button-danger-outline-border:#E30000;--sd-button-button-danger-outline-content:#E30000;--sd-ghost-button-ghost-button-xxs-size:16px;--sd-ghost-button-ghost-button-xxs-icon:12px;--sd-ghost-button-ghost-button-xs-size:24px;--sd-ghost-button-ghost-button-xs-icon:16px;--sd-ghost-button-ghost-button-sm-size:28px;--sd-ghost-button-ghost-button-sm-icon:20px;--sd-ghost-button-ghost-button-md-size:36px;--sd-ghost-button-ghost-button-md-icon:24px;--sd-ghost-button-ghost-button-lg-size:62px;--sd-ghost-button-ghost-button-lg-icon:32px;--sd-ghost-button-ghost-button-radius-sm:4px;--sd-ghost-button-ghost-button-radius-md:6px;--sd-ghost-button-ghost-button-hover-opacity:5%;--sd-ghost-button-ghost-button-icon-disabled:#BBBBBB;--sd-ghost-button-ghost-button-default-content:#888888;--sd-ghost-button-ghost-button-default-hover-bg:#222222;--sd-ghost-button-ghost-button-danger-content:#E30000;--sd-ghost-button-ghost-button-danger-hover-bg:#E30000;--sd-ghost-button-ghost-button-action-content:#025497;--sd-ghost-button-ghost-button-action-hover-bg:#0075FF;--sd-ghost-button-ghost-button-inverse-content:#FFFFFF;--sd-ghost-button-ghost-button-inverse-disabled:#E1E1E1;--sd-ghost-button-ghost-button-inverse-hover-bg:#FFFFFF;--sd-text-link-text-link-gap:4px;--sd-text-link-text-link-size-icon:16px;--sd-text-link-text-link-typography-default-font-family: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;--sd-text-link-text-link-typography-default-font-size:12px;--sd-text-link-text-link-typography-default-font-weight:500;--sd-text-link-text-link-typography-default-text-decoration:none;--sd-text-link-text-link-typography-default-line-height:20px;--sd-text-link-text-link-typography-underline-font-family: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;--sd-text-link-text-link-typography-underline-font-size:12px;--sd-text-link-text-link-typography-underline-font-weight:500;--sd-text-link-text-link-typography-underline-text-decoration:underline;--sd-text-link-text-link-typography-underline-line-height:22px;--sd-text-link-text-link-content-default:#222222;--sd-text-link-text-link-content-disabled:#888888;--sd-text-link-text-link-icon-default:#006AC1;--sd-text-link-text-link-icon-disabled:#BBBBBB;--sd-switch-switch-width:32px;--sd-switch-switch-height:20px;--sd-switch-switch-padding-x-y:2px;--sd-switch-switch-radius:9999px;--sd-switch-switch-knob-size:16px;--sd-switch-switch-knob-bg:#FFFFFF;--sd-switch-switch-bg-on:#0075FF;--sd-switch-switch-bg-off:#CCCCCC;--sd-switch-switch-bg-disabled-on:#BBDAFF;--sd-switch-switch-bg-disabled-off:#E1E1E1;--sd-switch-switch-label-typography-font-family: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;--sd-switch-switch-label-typography-font-weight:500;--sd-switch-switch-label-typography-font-size:12px;--sd-switch-switch-label-typography-text-decoration:none;--sd-switch-switch-label-typography-line-height:20px;--sd-switch-switch-gap:6px;--sd-toggle-toggle-height:28px;--sd-toggle-toggle-padding-x:12px;--sd-toggle-toggle-typography-font-family: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;--sd-toggle-toggle-typography-font-size:12px;--sd-toggle-toggle-typography-font-weight:500;--sd-toggle-toggle-typography-text-decoration:none;--sd-toggle-toggle-typography-line-height:20px;--sd-toggle-toggle-radius:9999px;--sd-toggle-toggle-border-width:1px;--sd-toggle-toggle-border-default:#CCCCCC;--sd-toggle-toggle-border-select:#0075FF;--sd-toggle-toggle-border-disabled:#CCCCCC;--sd-toggle-toggle-bg-default:#FFFFFF;--sd-toggle-toggle-bg-hover:#0075FF;--sd-toggle-toggle-bg-select:#FFFFFF;--sd-toggle-toggle-bg-disabled:#E1E1E1;--sd-toggle-toggle-content-default:#555555;--sd-toggle-toggle-content-hover:#FFFFFF;--sd-toggle-toggle-content-select:#0075FF;--sd-toggle-toggle-content-disabled:#888888;--sd-checkbox-checkbox-size:16px;--sd-checkbox-checkbox-radius:2px;--sd-checkbox-checkbox-border-width:1px;--sd-checkbox-checkbox-gap:8px;--sd-checkbox-checkbox-icon:12px;--sd-checkbox-checkbox-typography-font-family: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;--sd-checkbox-checkbox-typography-font-weight:400;--sd-checkbox-checkbox-typography-font-size:12px;--sd-checkbox-checkbox-typography-line-height:20px;--sd-checkbox-checkbox-typography-text-decoration:none;--sd-checkbox-checkbox-unchecked-bg-default:#FFFFFF;--sd-checkbox-checkbox-unchecked-bg-hover:#D9EAFF;--sd-checkbox-checkbox-unchecked-border-default:#AAAAAA;--sd-checkbox-checkbox-unchecked-border-hover:#0075FF;--sd-checkbox-checkbox-checked-bg-default:#0075FF;--sd-checkbox-checkbox-checked-icon-default:#FFFFFF;--sd-checkbox-checkbox-checked-icon-disabled:#BBBBBB;--sd-checkbox-checkbox-checked-icon-inverse:#FFFFFF;--sd-checkbox-checkbox-checked-border-inverse:#FFFFFF;--sd-checkbox-checkbox-label-default:#222222;--sd-checkbox-checkbox-label-inverse:#FFFFFF;--sd-checkbox-checkbox-bg-disabled:#E1E1E1;--sd-checkbox-checkbox-border-disabled:#CCCCCC;--sd-radio-radio-size:16px;--sd-radio-radio-radius:9999px;--sd-radio-radio-border-width:1px;--sd-radio-radio-gap:8px;--sd-radio-radio-typography-font-family: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;--sd-radio-radio-typography-font-weight:400;--sd-radio-radio-typography-font-size:12px;--sd-radio-radio-typography-line-height:20px;--sd-radio-radio-typography-text-decoration:none;--sd-radio-radio-bg-default:#FFFFFF;--sd-radio-radio-bg-disabled:#E1E1E1;--sd-radio-radio-bg-hover:#D9EAFF;--sd-radio-radio-border-default:#AAAAAA;--sd-radio-radio-border-hover:#0075FF;--sd-radio-radio-border-active:#0075FF;--sd-radio-radio-border-disabled:#CCCCCC;--sd-radio-radio-dot-default:#0075FF;--sd-radio-radio-dot-disabled:#CCCCCC;--sd-radio-radio-dot-size:10px;--sd-radio-radio-label-default:#222222;--sd-radio-button-radio-button-xs-height:24px;--sd-radio-button-radio-button-xs-padding-x:8px;--sd-radio-button-radio-button-xs-typography-font-family: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;--sd-radio-button-radio-button-xs-typography-font-size:12px;--sd-radio-button-radio-button-xs-typography-font-weight:500;--sd-radio-button-radio-button-xs-typography-text-decoration:none;--sd-radio-button-radio-button-xs-typography-line-height:20px;--sd-radio-button-radio-button-sm-height:28px;--sd-radio-button-radio-button-sm-padding-x:12px;--sd-radio-button-radio-button-sm-typography-font-family: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;--sd-radio-button-radio-button-sm-typography-font-size:12px;--sd-radio-button-radio-button-sm-typography-font-weight:500;--sd-radio-button-radio-button-sm-typography-text-decoration:none;--sd-radio-button-radio-button-sm-typography-line-height:20px;--sd-radio-button-radio-button-radius:4px;--sd-radio-button-radio-button-border-width:1px;--sd-radio-button-radio-button-border-default:#CCCCCC;--sd-radio-button-radio-button-border-select:#0075FF;--sd-radio-button-radio-button-border-disabled:#CCCCCC;--sd-radio-button-radio-button-bg-default:#FFFFFF;--sd-radio-button-radio-button-bg-hover:#0075FF;--sd-radio-button-radio-button-bg-select:#FFFFFF;--sd-radio-button-radio-button-bg-disabled:#E1E1E1;--sd-radio-button-radio-button-content-default:#555555;--sd-radio-button-radio-button-content-hover:#FFFFFF;--sd-radio-button-radio-button-content-select:#0075FF;--sd-radio-button-radio-button-content-disabled:#888888;--sd-radio-button-radio-button-group-gap:-1px;--sd-list-item-list-item-padding-y:4px;--sd-list-item-list-item-padding-right:12px;--sd-list-item-list-item-gap:8px;--sd-list-item-list-item-padding-left-depth1:12px;--sd-list-item-list-item-padding-left-depth2:20px;--sd-list-item-list-item-padding-left-depth3:28px;--sd-list-item-list-item-typography-default-font-family: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;--sd-list-item-list-item-typography-default-font-weight:400;--sd-list-item-list-item-typography-default-font-size:12px;--sd-list-item-list-item-typography-default-line-height:20px;--sd-list-item-list-item-typography-default-text-decoration:none;--sd-list-item-list-item-typography-selected-font-family: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;--sd-list-item-list-item-typography-selected-font-weight:700;--sd-list-item-list-item-typography-selected-font-size:12px;--sd-list-item-list-item-typography-selected-text-decoration:none;--sd-list-item-list-item-typography-selected-line-height:20px;--sd-list-item-list-item-bg-default:#FFFFFF;--sd-list-item-list-item-bg-hover:#0075FF;--sd-list-item-list-item-content-default:#222222;--sd-list-item-list-item-content-hover:#FFFFFF;--sd-list-item-list-item-content-disabled:#888888;--sd-list-item-list-item-content-selected:#0075FF;--sd-list-item-list-item-indeterminate-typography-font-family: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;--sd-list-item-list-item-indeterminate-typography-font-weight:700;--sd-list-item-list-item-indeterminate-typography-font-size:12px;--sd-list-item-list-item-indeterminate-typography-text-decoration:none;--sd-list-item-list-item-indeterminate-typography-line-height:20px;--sd-list-item-list-item-depth1-bg-default:#EFF6FF;--sd-list-item-list-item-depth1-bg-disabled:#EEEEEE;--sd-list-item-list-item-depth1-border-color:#E1E1E1;--sd-list-item-list-item-depth1-border-width:1px;--sd-list-item-list-item-depth1-title-typography-font-family: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;--sd-list-item-list-item-depth1-title-typography-font-weight:700;--sd-list-item-list-item-depth1-title-typography-font-size:12px;--sd-list-item-list-item-depth1-title-typography-text-decoration:none;--sd-list-item-list-item-depth1-title-typography-line-height:20px;--sd-list-item-list-item-depth2-middle-bg:#F6F6F6;--sd-list-item-list-item-depth2-middle-title-typography-font-family: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;--sd-list-item-list-item-depth2-middle-title-typography-font-weight:500;--sd-list-item-list-item-depth2-middle-title-typography-font-size:12px;--sd-list-item-list-item-depth2-middle-title-typography-text-decoration:none;--sd-list-item-list-item-depth2-middle-title-typography-line-height:20px;--sd-list-item-list-item-count-typography-font-family: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;--sd-list-item-list-item-count-typography-font-weight:500;--sd-list-item-list-item-count-typography-font-size:12px;--sd-list-item-list-item-count-typography-text-decoration:none;--sd-list-item-list-item-count-typography-line-height:20px;--sd-list-item-list-item-count-color:#888888;--sd-list-box-list-box-radius:4px;--sd-list-box-list-box-bg:#FFFFFF;--sd-list-box-list-box-chip-padding-x-y:8px;--sd-list-box-list-box-chip-gap:8px;--sd-select-select-height:28px;--sd-select-select-radius:4px;--sd-select-select-border-width:1px;--sd-select-select-padding-x:12px;--sd-select-select-icon-default:#888888;--sd-select-select-icon-disabled:#BBBBBB;--sd-select-select-gap:8px;--sd-select-select-typography-font-family: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;--sd-select-select-typography-font-weight:400;--sd-select-select-typography-font-size:12px;--sd-select-select-typography-line-height:20px;--sd-select-select-typography-text-decoration:none;--sd-select-select-border-default:#AAAAAA;--sd-select-select-border-hover:#0075FF;--sd-select-select-border-danger:#FB4444;--sd-select-select-border-disabled:#CCCCCC;--sd-select-select-bg-default:#FFFFFF;--sd-select-select-bg-disabled:#E1E1E1;--sd-select-select-text-default:#222222;--sd-select-select-text-disabled:#888888;--sd-select-select-size-icon:16px;--sd-field-field-label-sm-height:28px;--sd-field-field-label-sm-gap:6px;--sd-field-field-label-sm-icon:12px;--sd-field-field-label-sm-typography-font-family: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;--sd-field-field-label-sm-typography-font-weight:700;--sd-field-field-label-sm-typography-font-size:12px;--sd-field-field-label-sm-typography-text-decoration:none;--sd-field-field-label-sm-typography-line-height:20px;--sd-field-field-label-md-height:36px;--sd-field-field-label-md-gap:8px;--sd-field-field-label-md-icon:16px;--sd-field-field-label-md-typography-font-family: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;--sd-field-field-label-md-typography-font-weight:700;--sd-field-field-label-md-typography-font-size:14px;--sd-field-field-label-md-typography-text-decoration:none;--sd-field-field-label-md-typography-line-height:24px;--sd-field-field-addon-label-height:28px;--sd-field-field-addon-label-gap:6px;--sd-field-field-addon-label-padding-x:12px;--sd-field-field-addon-label-typography-font-family: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;--sd-field-field-addon-label-typography-font-weight:500;--sd-field-field-addon-label-typography-font-size:12px;--sd-field-field-addon-label-typography-text-decoration:none;--sd-field-field-addon-label-typography-line-height:20px;--sd-field-field-addon-label-bg:#F6F6F6;--sd-field-field-addon-label-border-default:#AAAAAA;--sd-field-field-addon-label-border-disabled:#CCCCCC;--sd-field-field-addon-label-border-width:1px;--sd-textinput-textinput-sm-height:28px;--sd-textinput-textinput-sm-padding-x:12px;--sd-textinput-textinput-sm-padding-y:4px;--sd-textinput-textinput-sm-gap:8px;--sd-textinput-textinput-sm-radius:4px;--sd-textinput-textinput-sm-typography-font-family: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;--sd-textinput-textinput-sm-typography-font-weight:400;--sd-textinput-textinput-sm-typography-font-size:12px;--sd-textinput-textinput-sm-typography-line-height:20px;--sd-textinput-textinput-sm-typography-text-decoration:none;--sd-textinput-textinput-md-height:36px;--sd-textinput-textinput-md-padding-x:16px;--sd-textinput-textinput-md-gap:12px;--sd-textinput-textinput-md-radius:6px;--sd-textinput-textinput-md-typography-font-family: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;--sd-textinput-textinput-md-typography-font-weight:400;--sd-textinput-textinput-md-typography-font-size:14px;--sd-textinput-textinput-md-typography-text-decoration:none;--sd-textinput-textinput-md-typography-line-height:24px;--sd-textinput-textinput-border-width:1px;--sd-textinput-textinput-border-default:#AAAAAA;--sd-textinput-textinput-border-focus:#0075FF;--sd-textinput-textinput-border-danger:#FB4444;--sd-textinput-textinput-border-success:#12B553;--sd-textinput-textinput-border-disabled:#CCCCCC;--sd-textinput-textinput-bg-default:#FFFFFF;--sd-textinput-textinput-bg-disabled:#E1E1E1;--sd-textinput-textinput-bg-barcode:#FAFAA1;--sd-textinput-textinput-text-default:#222222;--sd-textinput-textinput-text-placeholder:#AAAAAA;--sd-textinput-textinput-text-disabled:#888888;--sd-textinput-textinput-text-hint:#555555;--sd-textinput-textinput-text-error-message:#E30000;--sd-textinput-textinput-size-icon:16px;--sd-textinput-textinput-icon-default:#888888;--sd-textinput-textinput-unit-color:#888888;--sd-textinput-textinput-hint-typography-font-family: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;--sd-textinput-textinput-hint-typography-font-weight:400;--sd-textinput-textinput-hint-typography-font-size:12px;--sd-textinput-textinput-hint-typography-line-height:20px;--sd-textinput-textinput-hint-typography-text-decoration:none;--sd-textinput-textinput-error-message-typography-font-family: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;--sd-textinput-textinput-error-message-typography-font-weight:400;--sd-textinput-textinput-error-message-typography-font-size:12px;--sd-textinput-textinput-error-message-typography-line-height:20px;--sd-textinput-textinput-error-message-typography-text-decoration:none;--sd-textinput-textinput-contents-gap:4px;--sd-textinput-textinput-resizer-size:12px;--sd-textinput-textinput-resizer-color:#AAAAAA;--sd-number-input-number-input-sm-height:28px;--sd-number-input-number-input-sm-padding-x:6px;--sd-number-input-number-input-sm-radius:4px;--sd-number-input-number-input-sm-typography-font-family: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;--sd-number-input-number-input-sm-typography-font-weight:400;--sd-number-input-number-input-sm-typography-font-size:12px;--sd-number-input-number-input-sm-typography-line-height:20px;--sd-number-input-number-input-sm-typography-text-decoration:none;--sd-number-input-number-input-sm-gap:4px;--sd-number-input-number-input-md-height:36px;--sd-number-input-number-input-md-padding-x:8px;--sd-number-input-number-input-md-radius:6px;--sd-number-input-number-input-md-typography-font-family: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;--sd-number-input-number-input-md-typography-font-weight:400;--sd-number-input-number-input-md-typography-font-size:14px;--sd-number-input-number-input-md-typography-text-decoration:none;--sd-number-input-number-input-md-typography-line-height:24px;--sd-number-input-number-input-md-gap:6px;--sd-number-input-number-input-border-width:1px;--sd-number-input-number-input-contents-gap:4px;--sd-number-input-number-input-border-default:#AAAAAA;--sd-number-input-number-input-border-focus:#0075FF;--sd-number-input-number-input-border-danger:#FB4444;--sd-number-input-number-input-border-success:#12B553;--sd-number-input-number-input-border-disabled:#CCCCCC;--sd-number-input-number-input-bg-default:#FFFFFF;--sd-number-input-number-input-bg-disabled:#E1E1E1;--sd-number-input-number-input-text-default:#222222;--sd-number-input-number-input-text-placeholder:#AAAAAA;--sd-number-input-number-input-text-disabled:#888888;--sd-number-input-number-input-hint-color:#555555;--sd-number-input-number-input-hint-typography-font-family: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;--sd-number-input-number-input-hint-typography-font-weight:400;--sd-number-input-number-input-hint-typography-font-size:12px;--sd-number-input-number-input-hint-typography-line-height:20px;--sd-number-input-number-input-hint-typography-text-decoration:none;--sd-number-input-number-input-error-message-color:#E30000;--sd-number-input-number-input-error-message-typography-font-family: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;--sd-number-input-number-input-error-message-typography-font-weight:400;--sd-number-input-number-input-error-message-typography-font-size:12px;--sd-number-input-number-input-error-message-typography-line-height:20px;--sd-number-input-number-input-error-message-typography-text-decoration:none;--sd-number-input-number-input-stepper-sm-size:20px;--sd-number-input-number-input-stepper-md-size:24px;--sd-number-input-number-input-stepper-radius:4px;--sd-number-input-number-input-stepper-bg-default:#EFF6FF;--sd-number-input-number-input-stepper-bg-disabled:#EEEEEE;--sd-number-input-number-input-stepper-icon-default:#0075FF;--sd-number-input-number-input-stepper-icon-disabled:#BBBBBB;--sd-filepicker-filepicker-height:28px;--sd-filepicker-filepicker-padding-x:12px;--sd-filepicker-filepicker-gap:8px;--sd-filepicker-filepicker-radius:4px;--sd-filepicker-filepicker-border-width:1px;--sd-filepicker-filepicker-typography-font-family: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;--sd-filepicker-filepicker-typography-font-weight:400;--sd-filepicker-filepicker-typography-font-size:12px;--sd-filepicker-filepicker-typography-line-height:20px;--sd-filepicker-filepicker-typography-text-decoration:none;--sd-filepicker-filepicker-size-icon:16px;--sd-filepicker-filepicker-contents-gap:4px;--sd-filepicker-filepicker-border-default:#AAAAAA;--sd-filepicker-filepicker-border-disabled:#CCCCCC;--sd-filepicker-filepicker-bg-default:#FFFFFF;--sd-filepicker-filepicker-bg-disabled:#E1E1E1;--sd-filepicker-filepicker-text-default:#222222;--sd-filepicker-filepicker-text-placeholder:#AAAAAA;--sd-filepicker-filepicker-text-disabled:#888888;--sd-filepicker-filepicker-icon-disabled:#BBBBBB;--sd-datepicker-datepicker-sm-height:28px;--sd-datepicker-datepicker-sm-padding-x:12px;--sd-datepicker-datepicker-sm-gap:8px;--sd-datepicker-datepicker-sm-icon:16px;--sd-datepicker-datepicker-sm-typography-font-family: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;--sd-datepicker-datepicker-sm-typography-font-weight:400;--sd-datepicker-datepicker-sm-typography-font-size:12px;--sd-datepicker-datepicker-sm-typography-line-height:20px;--sd-datepicker-datepicker-sm-typography-text-decoration:none;--sd-datepicker-datepicker-sm-radius:4px;--sd-datepicker-datepicker-md-height:36px;--sd-datepicker-datepicker-md-padding-x:16px;--sd-datepicker-datepicker-md-gap:12px;--sd-datepicker-datepicker-md-icon:20px;--sd-datepicker-datepicker-md-typography-font-family: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;--sd-datepicker-datepicker-md-typography-font-weight:400;--sd-datepicker-datepicker-md-typography-font-size:14px;--sd-datepicker-datepicker-md-typography-text-decoration:none;--sd-datepicker-datepicker-md-typography-line-height:24px;--sd-datepicker-datepicker-md-radius:6px;--sd-datepicker-datepicker-border-width:1px;--sd-datepicker-datepicker-border-default:#AAAAAA;--sd-datepicker-datepicker-border-focus:#0075FF;--sd-datepicker-datepicker-border-disabled:#CCCCCC;--sd-datepicker-datepicker-bg-default:#FFFFFF;--sd-datepicker-datepicker-bg-disabled:#E1E1E1;--sd-datepicker-datepicker-icon-default:#888888;--sd-datepicker-datepicker-icon-disabled:#BBBBBB;--sd-datepicker-datepicker-text-default:#222222;--sd-datepicker-datepicker-text-hint:#555555;--sd-datepicker-datepicker-text-disabled:#888888;--sd-datepicker-datepicker-contents-gap:4px;--sd-datepicker-datepicker-hint-typography-font-family: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;--sd-datepicker-datepicker-hint-typography-font-weight:400;--sd-datepicker-datepicker-hint-typography-font-size:12px;--sd-datepicker-datepicker-hint-typography-line-height:20px;--sd-datepicker-datepicker-hint-typography-text-decoration:none;--sd-datepicker-datepicker-calendar-bg:#FFFFFF;--sd-datepicker-datepicker-calendar-padding-x-y:24px;--sd-datepicker-datepicker-calendar-gap:12px;--sd-datepicker-datepicker-calendar-radius:8px;--sd-datepicker-datepicker-calendar-header-gap:8px;--sd-datepicker-datepicker-calendar-header-divider:#E1E1E1;--sd-datepicker-datepicker-calendar-header-typography-font-family: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;--sd-datepicker-datepicker-calendar-header-typography-font-weight:500;--sd-datepicker-datepicker-calendar-header-typography-font-size:14px;--sd-datepicker-datepicker-calendar-header-typography-text-decoration:none;--sd-datepicker-datepicker-calendar-header-typography-line-height:24px;--sd-datepicker-datepicker-calendar-week-typography-font-family: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;--sd-datepicker-datepicker-calendar-week-typography-font-weight:400;--sd-datepicker-datepicker-calendar-week-typography-font-size:12px;--sd-datepicker-datepicker-calendar-week-typography-line-height:20px;--sd-datepicker-datepicker-calendar-week-typography-text-decoration:none;--sd-datepicker-datepicker-calendar-week-color:#888888;--sd-datepicker-datepicker-calendar-grid-row-gap:4px;--sd-datepicker-datepicker-calendar-day-width:40px;--sd-datepicker-datepicker-calendar-day-circle-size:32px;--sd-datepicker-datepicker-calendar-day-circle-radius:9999px;--sd-datepicker-datepicker-calendar-day-default-text:#222222;--sd-datepicker-datepicker-calendar-day-hover-text:#222222;--sd-datepicker-datepicker-calendar-day-hover-border:#0075FF;--sd-datepicker-datepicker-calendar-day-select-bg:#0075FF;--sd-datepicker-datepicker-calendar-day-select-text:#FFFFFF;--sd-datepicker-datepicker-calendar-day-disabled-text:#BBBBBB;--sd-datepicker-datepicker-calendar-day-typography-default-font-family: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;--sd-datepicker-datepicker-calendar-day-typography-default-font-weight:400;--sd-datepicker-datepicker-calendar-day-typography-default-font-size:14px;--sd-datepicker-datepicker-calendar-day-typography-default-text-decoration:none;--sd-datepicker-datepicker-calendar-day-typography-default-line-height:24px;--sd-datepicker-datepicker-calendar-day-typography-bold-font-family: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;--sd-datepicker-datepicker-calendar-day-typography-bold-font-weight:700;--sd-datepicker-datepicker-calendar-day-typography-bold-font-size:14px;--sd-datepicker-datepicker-calendar-day-typography-bold-text-decoration:none;--sd-datepicker-datepicker-calendar-day-typography-bold-line-height:24px;--sd-datepicker-datepicker-calendar-day-dot-size:6px;--sd-datepicker-datepicker-calendar-day-dot-gap:2px;--sd-datepicker-datepicker-calendar-day-dot-padding-y:4px;--sd-datepicker-datepicker-calendar-range-bg:#D9EAFF;--sd-datepicker-datepicker-calendar-range-height:32px;--sd-datepicker-datepicker-calendar-range-panel-gap:24px;--sd-datepicker-datepicker-calendar-range-divider:#E1E1E1;--sd-datepicker-datepicker-calendar-range-width:20px;--sd-datepicker-datepicker-calendar-legend-typography-font-family: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;--sd-datepicker-datepicker-calendar-legend-typography-font-weight:400;--sd-datepicker-datepicker-calendar-legend-typography-font-size:11px;--sd-datepicker-datepicker-calendar-legend-typography-line-height:18px;--sd-datepicker-datepicker-calendar-legend-typography-text-decoration:none;--sd-datepicker-datepicker-calendar-legend-gap:4px;--sd-datepicker-datepicker-calendar-legend-group-gap:12px;--sd-chip-chip-height:24px;--sd-chip-chip-padding-x:8px;--sd-chip-chip-gap:4px;--sd-chip-chip-radius:9999px;--sd-chip-chip-typography-default-font-family: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;--sd-chip-chip-typography-default-font-size:12px;--sd-chip-chip-typography-default-font-weight:500;--sd-chip-chip-typography-default-text-decoration:none;--sd-chip-chip-typography-default-line-height:20px;--sd-chip-chip-typography-focus-font-family: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;--sd-chip-chip-typography-focus-font-size:12px;--sd-chip-chip-typography-focus-font-weight:400;--sd-chip-chip-typography-focus-text-decoration:none;--sd-chip-chip-typography-focus-line-height:20px;--sd-chip-chip-bg-default:#F6F6F6;--sd-chip-chip-bg-error:#FCEFEF;--sd-chip-chip-bg-focus:#FFFFFF;--sd-chip-chip-content-default:#888888;--sd-chip-chip-content-error:#E30000;--sd-chip-chip-content-focus:#555555;--sd-chip-chip-border-focus:#E1E1E1;--sd-chip-chip-border-width:1px;--sd-tag-tag-xs-height:20px;--sd-tag-tag-xs-padding-x:8px;--sd-tag-tag-xs-gap:4px;--sd-tag-tag-xs-icon:12px;--sd-tag-tag-xs-typography-font-family: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;--sd-tag-tag-xs-typography-font-size:11px;--sd-tag-tag-xs-typography-font-weight:500;--sd-tag-tag-xs-typography-line-height:18px;--sd-tag-tag-xs-typography-text-decoration:none;--sd-tag-tag-xs-radius:6px;--sd-tag-tag-sm-height:24px;--sd-tag-tag-sm-padding-x:8px;--sd-tag-tag-sm-gap:4px;--sd-tag-tag-sm-icon:16px;--sd-tag-tag-sm-typography-font-family: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;--sd-tag-tag-sm-typography-font-size:12px;--sd-tag-tag-sm-typography-font-weight:700;--sd-tag-tag-sm-typography-text-decoration:none;--sd-tag-tag-sm-typography-line-height:20px;--sd-tag-tag-sm-radius:6px;--sd-tag-tag-md-height:28px;--sd-tag-tag-md-padding-x:12px;--sd-tag-tag-md-gap:6px;--sd-tag-tag-md-icon:16px;--sd-tag-tag-md-typography-font-family: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;--sd-tag-tag-md-typography-font-size:14px;--sd-tag-tag-md-typography-font-weight:700;--sd-tag-tag-md-typography-line-height:24px;--sd-tag-tag-md-typography-text-decoration:none;--sd-tag-tag-md-radius:8px;--sd-tag-tag-red-content:#FB4444;--sd-tag-tag-red-bg:#FCEFEF;--sd-tag-tag-orange-content:#FF6B00;--sd-tag-tag-orange-bg:#FEF1EA;--sd-tag-tag-yellow-content:#916C0D;--sd-tag-tag-yellow-bg:#FFF7DD;--sd-tag-tag-green-content:#00973C;--sd-tag-tag-green-bg:#E8F9EF;--sd-tag-tag-blue-content:#0075FF;--sd-tag-tag-blue-bg:#E6F1FF;--sd-tag-tag-darkblue-content:#006AC1;--sd-tag-tag-darkblue-bg:#EAF5FE;--sd-tag-tag-indigo-content:#004290;--sd-tag-tag-indigo-bg:#EFF6FF;--sd-tag-tag-grey-content:#737373;--sd-tag-tag-grey-bg:#EEEEEE;--sd-badge-badge-size:6px;--sd-badge-badge-radius:9999px;--sd-badge-badge-red:#FB4444;--sd-badge-badge-orange:#FF6B00;--sd-badge-badge-yellow:#FFC700;--sd-badge-badge-green:#00973C;--sd-badge-badge-blue:#0075FF;--sd-badge-badge-darkblue:#006AC1;--sd-badge-badge-indigo:#004290;--sd-badge-badge-grey:#737373;--sd-tooltip-tooltip-radius:6px;--sd-tooltip-tooltip-padding-y:12px;--sd-tooltip-tooltip-padding-x:16px;--sd-tooltip-tooltip-gap:12px;--sd-tooltip-tooltip-arrow-width:16px;--sd-tooltip-tooltip-arrow-height:12px;--sd-tooltip-tooltip-default-bg:#07284A;--sd-tooltip-tooltip-default-content:#FFFFFF;--sd-tooltip-tooltip-default-typography-font-family: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;--sd-tooltip-tooltip-default-typography-font-size:12px;--sd-tooltip-tooltip-default-typography-font-weight:500;--sd-tooltip-tooltip-default-typography-line-height:20px;--sd-tooltip-tooltip-default-typography-text-decoration:none;--sd-tooltip-tooltip-danger-bg:#FCEFEF;--sd-tooltip-tooltip-danger-content:#FB4444;--sd-tooltip-tooltip-danger-typography-font-family: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;--sd-tooltip-tooltip-danger-typography-font-size:12px;--sd-tooltip-tooltip-danger-typography-font-weight:700;--sd-tooltip-tooltip-danger-typography-text-decoration:none;--sd-tooltip-tooltip-danger-typography-line-height:20px;--sd-tooltip-tooltip-warning-bg:#FEF1EA;--sd-tooltip-tooltip-warning-content:#FF6B00;--sd-tooltip-tooltip-warning-typography-font-family: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;--sd-tooltip-tooltip-warning-typography-font-size:12px;--sd-tooltip-tooltip-warning-typography-font-weight:700;--sd-tooltip-tooltip-warning-typography-text-decoration:none;--sd-tooltip-tooltip-warning-typography-line-height:20px;--sd-tooltip-tooltip-accent-bg:#E6F1FF;--sd-tooltip-tooltip-accent-content:#0075FF;--sd-tooltip-tooltip-accent-typography-font-family: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;--sd-tooltip-tooltip-accent-typography-font-size:12px;--sd-tooltip-tooltip-accent-typography-font-weight:700;--sd-tooltip-tooltip-accent-typography-text-decoration:none;--sd-tooltip-tooltip-accent-typography-line-height:20px;--sd-popover-popover-radius:6px;--sd-popover-popover-padding-x:20px;--sd-popover-popover-padding-y:16px;--sd-popover-popover-gap:12px;--sd-popover-popover-contents-gap:4px;--sd-popover-popover-arrow-width:16px;--sd-popover-popover-arrow-height:12px;--sd-popover-popover-bg:#07284A;--sd-popover-popover-title-color:#FFFFFF;--sd-popover-popover-title-typography-font-family: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;--sd-popover-popover-title-typography-font-size:14px;--sd-popover-popover-title-typography-font-weight:700;--sd-popover-popover-title-typography-line-height:24px;--sd-popover-popover-title-typography-text-decoration:none;--sd-popover-popover-description-color:#FFFFFF;--sd-popover-popover-description-typography-font-family: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;--sd-popover-popover-description-typography-font-size:12px;--sd-popover-popover-description-typography-font-weight:500;--sd-popover-popover-description-typography-line-height:20px;--sd-popover-popover-description-typography-text-decoration:none;--sd-popover-popover-sub-action-color:#D8D8D8;--sd-popover-popover-sub-action-typography-font-family: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;--sd-popover-popover-sub-action-typography-font-size:12px;--sd-popover-popover-sub-action-typography-font-weight:700;--sd-popover-popover-sub-action-typography-text-decoration:none;--sd-popover-popover-sub-action-typography-line-height:20px;--sd-toast-toast-radius:8px;--sd-toast-toast-padding-x:24px;--sd-toast-toast-padding-y:12px;--sd-toast-toast-gap:16px;--sd-toast-toast-icon:16px;--sd-toast-toast-typography-default-font-family: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;--sd-toast-toast-typography-default-font-size:14px;--sd-toast-toast-typography-default-font-weight:500;--sd-toast-toast-typography-default-line-height:24px;--sd-toast-toast-typography-default-text-decoration:none;--sd-toast-toast-typography-link-font-family: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;--sd-toast-toast-typography-link-font-size:14px;--sd-toast-toast-typography-link-font-weight:700;--sd-toast-toast-typography-link-line-height:24px;--sd-toast-toast-typography-link-text-decoration:underline;--sd-toast-toast-default-bg:#07284A;--sd-toast-toast-default-content:#FFFFFF;--sd-toast-toast-danger-bg:#FB4444;--sd-toast-toast-danger-content:#FFFFFF;--sd-toast-toast-caution-bg:#FFC700;--sd-toast-toast-caution-content:#222222;--sd-toast-toast-complete-bg:#00973C;--sd-toast-toast-complete-content:#FFFFFF;--sd-toast-toast-accent-bg:#005CC9;--sd-toast-toast-accent-content:#FFFFFF;--sd-toast-toast-info-bg:#E6F1FF;--sd-toast-toast-info-icon:#0075FF;--sd-toast-toast-info-text:#222222;--sd-toast-toast-info-text-link:#555555;--sd-modal-modal-radius:8px;--sd-modal-modal-confirm-padding-x:32px;--sd-modal-modal-confirm-padding-y:40px;--sd-modal-modal-confirm-gap:40px;--sd-modal-modal-confirm-body-gap:20px;--sd-modal-modal-confirm-title-gap:12px;--sd-modal-modal-confirm-title-color:#222222;--sd-modal-modal-confirm-title-icon:32px;--sd-modal-modal-confirm-title-typography-font-family: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;--sd-modal-modal-confirm-title-typography-font-weight:700;--sd-modal-modal-confirm-title-typography-font-size:18px;--sd-modal-modal-confirm-title-typography-line-height:30px;--sd-modal-modal-confirm-title-typography-text-decoration:none;--sd-modal-modal-confirm-button-gap:8px;--sd-modal-modal-confirm-message-color:#222222;--sd-modal-modal-confirm-message-typography-font-family: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;--sd-modal-modal-confirm-message-typography-font-size:12px;--sd-modal-modal-confirm-message-typography-font-weight:400;--sd-modal-modal-confirm-message-typography-line-height:20px;--sd-modal-modal-confirm-message-typography-text-decoration:none;--sd-modal-modal-confirm-positive-icon:#0075FF;--sd-modal-modal-confirm-negative-icon:#E30000;--sd-modal-modal-bg:#FFFFFF;--sd-modal-modal-action-header-padding-x:24px;--sd-modal-modal-action-header-padding-y:20px;--sd-modal-modal-action-header-gap:12px;--sd-modal-modal-action-title-color:#033F59;--sd-modal-modal-action-title-typography-font-family: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;--sd-modal-modal-action-title-typography-font-weight:700;--sd-modal-modal-action-title-typography-font-size:16px;--sd-modal-modal-action-title-typography-text-decoration:none;--sd-modal-modal-action-title-typography-line-height:26px;--sd-modal-modal-action-body-padding-x:20px;--sd-modal-modal-action-body-padding-bottom:20px;--sd-modal-modal-action-footer-padding-x:20px;--sd-modal-modal-action-footer-padding-y:8px;--sd-modal-modal-action-footer-gap:16px;--sd-modal-modal-action-footer-bg:#F6F6F6;--sd-modal-modal-action-footer-border:#E1E1E1;--sd-modal-modal-loading-width:520px;--sd-modal-modal-loading-height:320px;--sd-modal-modal-loading-gap:20px;--sd-modal-modal-loading-content:80px;--sd-modal-modal-loading-message-typography-font-family: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;--sd-modal-modal-loading-message-typography-font-size:12px;--sd-modal-modal-loading-message-typography-font-weight:400;--sd-modal-modal-loading-message-typography-line-height:20px;--sd-modal-modal-loading-message-typography-text-decoration:none;--sd-modal-modal-loading-message-color:#888888;--sd-popup-popup-header-bg-default:#07284A;--sd-popup-popup-header-bg-inverse:#FFFFFF;--sd-popup-popup-header-title-default:#FFFFFF;--sd-popup-popup-header-title-inverse:#004290;--sd-popup-popup-header-typography-font-family: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;--sd-popup-popup-header-typography-font-weight:700;--sd-popup-popup-header-typography-font-size:18px;--sd-popup-popup-header-typography-line-height:30px;--sd-popup-popup-header-typography-text-decoration:none;--sd-popup-popup-footer-bg:#FFFFFF;--sd-popup-popup-footer-padding-x:20px;--sd-popup-popup-footer-padding-y:8px;--sd-popup-popup-footer-gap:16px;--sd-popup-popup-bg:#EEEEEE;--sd-spinner-spinner-size:80px;--sd-spinner-spinner-color-track:#EEEEEE;--sd-spinner-spinner-color-arc:#2D8DFF;--sd-guide-guide-gap:4px;--sd-guide-guide-button-height:28px;--sd-guide-guide-button-padding-x:12px;--sd-guide-guide-button-radius:9999px;--sd-guide-guide-button-gap:6px;--sd-guide-guide-button-typography-font-family: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;--sd-guide-guide-button-typography-font-size:12px;--sd-guide-guide-button-typography-font-weight:500;--sd-guide-guide-button-typography-text-decoration:none;--sd-guide-guide-button-typography-line-height:20px;--sd-guide-guide-button-icon-size:16px;--sd-guide-guide-button-icon-default:#00973C;--sd-guide-guide-button-icon-active:#FFFFFF;--sd-guide-guide-button-border-width:1px;--sd-guide-guide-button-border-default:#E1E1E1;--sd-guide-guide-button-bg-default:#FFFFFF;--sd-guide-guide-button-bg-tip:#00973C;--sd-guide-guide-button-bg-notion:#1F8AE1;--sd-guide-guide-button-text-default:#222222;--sd-guide-guide-button-text-active:#FFFFFF;--sd-guide-guide-contents-padding-x:24px;--sd-guide-guide-contents-padding-y:20px;--sd-guide-guide-contents-gap:12px;--sd-guide-guide-contents-title-gap:8px;--sd-guide-guide-contents-row-gap:8px;--sd-guide-guide-contents-body-gap:2px;--sd-guide-guide-contents-typography-title-font-family: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;--sd-guide-guide-contents-typography-title-font-weight:700;--sd-guide-guide-contents-typography-title-font-size:16px;--sd-guide-guide-contents-typography-title-text-decoration:none;--sd-guide-guide-contents-typography-title-line-height:26px;--sd-guide-guide-contents-typography-body-font-family: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;--sd-guide-guide-contents-typography-body-font-weight:400;--sd-guide-guide-contents-typography-body-font-size:12px;--sd-guide-guide-contents-typography-body-line-height:20px;--sd-guide-guide-contents-typography-body-text-decoration:none;--sd-guide-guide-contents-typography-color:#222222;--sd-guide-guide-contents-icon:#00973C;--sd-guide-guide-contents-radius:8px;--sd-guide-guide-contents-depth-padding-left:32px;--sd-progress-progress-linear-height:20px;--sd-progress-progress-linear-radius:9999px;--sd-progress-progress-linear-gap:12px;--sd-progress-progress-linear-typography-font-family: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;--sd-progress-progress-linear-typography-font-size:12px;--sd-progress-progress-linear-typography-font-weight:700;--sd-progress-progress-linear-typography-text-decoration:none;--sd-progress-progress-linear-typography-line-height:20px;--sd-progress-progress-circular-size:80px;--sd-progress-progress-circular-gap:8px;--sd-progress-progress-circular-typography-font-family: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;--sd-progress-progress-circular-typography-font-weight:700;--sd-progress-progress-circular-typography-font-size:16px;--sd-progress-progress-circular-typography-text-decoration:none;--sd-progress-progress-circular-typography-line-height:26px;--sd-progress-progress-label-typography-font-family: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;--sd-progress-progress-label-typography-font-size:12px;--sd-progress-progress-label-typography-font-weight:400;--sd-progress-progress-label-typography-line-height:20px;--sd-progress-progress-label-typography-text-decoration:none;--sd-progress-progress-color-track:#EEEEEE;--sd-progress-progress-color-label:#555555;--sd-progress-progress-active-color:#2D8DFF;--sd-progress-progress-success-color:#12B553;--sd-progress-progress-error-color:#FB4444;--sd-progress-progress-bar-text:#FFFFFF;--sd-table-table-header-height:36px;--sd-table-table-header-padding-x:16px;--sd-table-table-header-gap:4px;--sd-table-table-header-bg:#F5FAFF;--sd-table-table-header-typography-font-family: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;--sd-table-table-header-typography-font-weight:500;--sd-table-table-header-typography-font-size:12px;--sd-table-table-header-typography-line-height:20px;--sd-table-table-header-typography-text-decoration:none;--sd-table-table-header-resizing-bar-color:#CCCCCC;--sd-table-table-header-resizing-bar-height:16px;--sd-table-table-body-default-height:44px;--sd-table-table-body-default-padding-y:8px;--sd-table-table-body-dense-height:32px;--sd-table-table-body-dense-padding-y:6px;--sd-table-table-body-padding-x:16px;--sd-table-table-body-frame-padding:8px;--sd-table-table-body-typography-font-family: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;--sd-table-table-body-typography-font-weight:400;--sd-table-table-body-typography-font-size:12px;--sd-table-table-body-typography-line-height:20px;--sd-table-table-body-typography-text-decoration:none;--sd-table-table-border-color:#E1E1E1;--sd-table-table-border-width:1px;--sd-table-table-content-gap:8px;--sd-table-table-bar-section-gap:12px;--sd-table-table-bar-divider-height:20px;--sd-table-table-bar-height:44px;--sd-table-table-bar-count-total:#066D9B;--sd-table-table-bar-count-null:#888888;--sd-table-table-radius:8px;--sd-table-table-key-value-body-padding:8px;--sd-table-table-key-value-height:44px;--sd-table-table-key-value-search-padding-x:32px;--sd-table-table-key-value-search-bg:#F9F9F9;--sd-pagination-pagination-height:24px;--sd-pagination-pagination-padding-x:6px;--sd-pagination-pagination-radius:6px;--sd-pagination-pagination-gap:12px;--sd-pagination-pagination-move-gap:4px;--sd-pagination-pagination-icon:12px;--sd-pagination-pagination-typography-default-font-family: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;--sd-pagination-pagination-typography-default-font-size:12px;--sd-pagination-pagination-typography-default-font-weight:500;--sd-pagination-pagination-typography-default-text-decoration:none;--sd-pagination-pagination-typography-default-line-height:20px;--sd-pagination-pagination-typography-default-selected-font-family: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;--sd-pagination-pagination-typography-default-selected-font-weight:700;--sd-pagination-pagination-typography-default-selected-font-size:12px;--sd-pagination-pagination-typography-default-selected-line-height:20px;--sd-pagination-pagination-typography-default-selected-text-decoration:none;--sd-pagination-pagination-typography-selected-font-family: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;--sd-pagination-pagination-typography-selected-font-weight:700;--sd-pagination-pagination-typography-selected-font-size:12px;--sd-pagination-pagination-typography-selected-line-height:20px;--sd-pagination-pagination-typography-selected-text-decoration:none;--sd-pagination-pagination-typography-selected-selected-font-family: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;--sd-pagination-pagination-typography-selected-selected-font-weight:700;--sd-pagination-pagination-typography-selected-selected-font-size:12px;--sd-pagination-pagination-typography-selected-selected-line-height:20px;--sd-pagination-pagination-typography-selected-selected-text-decoration:none;--sd-pagination-pagination-item-bg-hover:#EEEEEE;--sd-pagination-pagination-item-bg-selected:#E6F1FF;--sd-pagination-pagination-item-content-default:#555555;--sd-pagination-pagination-item-content-hover:#004290;--sd-pagination-pagination-item-content-selected:#004290;--sd-tab-tab-main-lg-height:44px;--sd-tab-tab-main-lg-padding-x:32px;--sd-tab-tab-main-md-height:36px;--sd-tab-tab-main-md-padding-x:24px;--sd-tab-tab-main-gap:8px;--sd-tab-tab-main-container-gap:4px;--sd-tab-tab-main-radius:6px;--sd-tab-tab-main-border-width:1px;--sd-tab-tab-main-selected-bg:#FFFFFF;--sd-tab-tab-main-selected-text:#0075FF;--sd-tab-tab-main-selected-border:#0075FF;--sd-tab-tab-main-selected-typography-font-family: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;--sd-tab-tab-main-selected-typography-font-weight:700;--sd-tab-tab-main-selected-typography-font-size:12px;--sd-tab-tab-main-selected-typography-line-height:20px;--sd-tab-tab-main-selected-typography-text-decoration:none;--sd-tab-tab-main-default-bg:#F6F6F6;--sd-tab-tab-main-default-text:#888888;--sd-tab-tab-main-default-border:#CCCCCC;--sd-tab-tab-main-default-typography-font-family: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;--sd-tab-tab-main-default-typography-font-weight:400;--sd-tab-tab-main-default-typography-font-size:12px;--sd-tab-tab-main-default-typography-line-height:20px;--sd-tab-tab-main-default-typography-text-decoration:none;--sd-tab-tab-sub-selected-text:#0075FF;--sd-tab-tab-sub-selected-line:#0075FF;--sd-tab-tab-sub-selected-typography-font-family: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;--sd-tab-tab-sub-selected-typography-font-weight:700;--sd-tab-tab-sub-selected-typography-font-size:12px;--sd-tab-tab-sub-selected-typography-line-height:20px;--sd-tab-tab-sub-selected-typography-text-decoration:none;--sd-tab-tab-sub-default-text:#222222;--sd-tab-tab-sub-default-typography-font-family: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;--sd-tab-tab-sub-default-typography-font-weight:400;--sd-tab-tab-sub-default-typography-font-size:12px;--sd-tab-tab-sub-default-typography-line-height:20px;--sd-tab-tab-sub-default-typography-text-decoration:none;--sd-tab-tab-sub-border-width:1px;--sd-tab-tab-sub-gap:24px;--sd-tab-tab-sub-content-gap:4px;--sd-callout-callout-radius:8px;--sd-callout-callout-border-width:1px;--sd-callout-callout-body-gap:2px;--sd-callout-callout-body-typography-font-family: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;--sd-callout-callout-body-typography-font-size:12px;--sd-callout-callout-body-typography-font-weight:400;--sd-callout-callout-body-typography-line-height:20px;--sd-callout-callout-body-typography-text-decoration:none;--sd-callout-callout-body-padding-x:12px;--sd-callout-callout-body-padding-y:8px;--sd-callout-callout-default-bg:#F9F9F9;--sd-callout-callout-default-border:#E1E1E1;--sd-callout-callout-default-content:#555555;--sd-callout-callout-danger-bg:#FCEFEF;--sd-callout-callout-danger-border:#FFB5B5;--sd-callout-callout-danger-content:#222222;--sd-callout-callout-danger-title-bg:#FB4444;--sd-callout-callout-danger-title-padding-x:24px;--sd-callout-callout-danger-title-gap:2px;--sd-callout-callout-danger-title-typography-font-family: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;--sd-callout-callout-danger-title-typography-font-weight:700;--sd-callout-callout-danger-title-typography-font-size:16px;--sd-callout-callout-danger-title-typography-text-decoration:none;--sd-callout-callout-danger-title-typography-line-height:26px;--sd-callout-callout-danger-title-color:#FFFFFF;--sd-callout-callout-danger-title-icon:24px}.bg-primary{background-color:var(--color-primary, #051d36)}.bg-secondary{background-color:var(--color-secondary, #555555)}.bg-accent{background-color:var(--color-accent, #9c27b0)}.bg-positive{background-color:var(--color-positive, #0075ff)}.bg-negative{background-color:var(--color-negative, #e30000)}.bg-info{background-color:var(--color-info, #00cd52)}.bg-warning{background-color:var(--color-warning, #f2c037)}.bg-red_99{background-color:var(--color-red_99, #220000)}.bg-red_95{background-color:var(--color-red_95, #440000)}.bg-red_90{background-color:var(--color-red_90, #5e0000)}.bg-red_85{background-color:var(--color-red_85, #820000)}.bg-red_80{background-color:var(--color-red_80, #ad0000)}.bg-red_75{background-color:var(--color-red_75, #e30000)}.bg-red_70{background-color:var(--color-red_70, #fb4444)}.bg-red_60{background-color:var(--color-red_60, #ff7c7c)}.bg-red_45{background-color:var(--color-red_45, #ffb5b5)}.bg-red_30{background-color:var(--color-red_30, #ffd3d3)}.bg-red_20{background-color:var(--color-red_20, #fce6e6)}.bg-red_15{background-color:var(--color-red_15, #fcefef)}.bg-caution_bg{background-color:var(--color-caution_bg, #fef1f1)}.bg-caution_icon{background-color:var(--color-caution_icon, #fd9595)}.bg-orange_99{background-color:var(--color-orange_99, #2f1100)}.bg-orange_95{background-color:var(--color-orange_95, #4d1b00)}.bg-orange_90{background-color:var(--color-orange_90, #752a00)}.bg-orange_85{background-color:var(--color-orange_85, #9b3700)}.bg-orange_75{background-color:var(--color-orange_75, #ce4900)}.bg-orange_65{background-color:var(--color-orange_65, #ff6b00)}.bg-orange_60{background-color:var(--color-orange_60, #ff7f22)}.bg-orange_55{background-color:var(--color-orange_55, #ffa452)}.bg-orange_45{background-color:var(--color-orange_45, #ffbc81)}.bg-orange_35{background-color:var(--color-orange_35, #ffd5af)}.bg-orange_20{background-color:var(--color-orange_20, #ffead7)}.bg-orange_10{background-color:var(--color-orange_10, #fef1ea)}.bg-header_alert{background-color:var(--color-header_alert, #ff7a00)}.bg-yellow_95{background-color:var(--color-yellow_95, #322700)}.bg-yellow_90{background-color:var(--color-yellow_90, #453702)}.bg-yellow_80{background-color:var(--color-yellow_80, #6c5602)}.bg-yellow_70{background-color:var(--color-yellow_70, #9c7a00)}.bg-yellow_60{background-color:var(--color-yellow_60, #c49900)}.bg-yellow_50{background-color:var(--color-yellow_50, #ebb800)}.bg-yellow_45{background-color:var(--color-yellow_45, #ffc700)}.bg-yellow_40{background-color:var(--color-yellow_40, #ffd643)}.bg-yellow_30{background-color:var(--color-yellow_30, #fee17c)}.bg-yellow_25{background-color:var(--color-yellow_25, #ffe99e)}.bg-yellow_20{background-color:var(--color-yellow_20, #fef1c4)}.bg-yellow_10{background-color:var(--color-yellow_10, #fff7dd)}.bg-olive_95{background-color:var(--color-olive_95, #2c2c00)}.bg-olive_90{background-color:var(--color-olive_90, #454500)}.bg-olive_80{background-color:var(--color-olive_80, #636300)}.bg-olive_70{background-color:var(--color-olive_70, #838300)}.bg-olive_65{background-color:var(--color-olive_65, #a5a500)}.bg-olive_55{background-color:var(--color-olive_55, #c7c700)}.bg-olive_45{background-color:var(--color-olive_45, #dddd12)}.bg-olive_30{background-color:var(--color-olive_30, #eeee37)}.bg-olive_20{background-color:var(--color-olive_20, #f6f65f)}.bg-olive_15{background-color:var(--color-olive_15, #fafaa1)}.bg-olive_10{background-color:var(--color-olive_10, #fbfbbf)}.bg-olive_05{background-color:var(--color-olive_05, #fefed9)}.bg-green_99{background-color:var(--color-green_99, #001d0b)}.bg-green_95{background-color:var(--color-green_95, #003013)}.bg-green_90{background-color:var(--color-green_90, #00461c)}.bg-green_85{background-color:var(--color-green_85, #006629)}.bg-green_80{background-color:var(--color-green_80, #007b31)}.bg-green_75{background-color:var(--color-green_75, #00973c)}.bg-green_70{background-color:var(--color-green_70, #12b553)}.bg-green_65{background-color:var(--color-green_65, #2bce6c)}.bg-green_55{background-color:var(--color-green_55, #6de39c)}.bg-green_45{background-color:var(--color-green_45, #acf4c9)}.bg-green_25{background-color:var(--color-green_25, #d4fae3)}.bg-green_15{background-color:var(--color-green_15, #e8f9ef)}.bg-steelblue_99{background-color:var(--color-steelblue_99, #021a25)}.bg-steelblue_95{background-color:var(--color-steelblue_95, #02212f)}.bg-steelblue_90{background-color:var(--color-steelblue_90, #032d40)}.bg-steelblue_85{background-color:var(--color-steelblue_85, #033f59)}.bg-steelblue_80{background-color:var(--color-steelblue_80, #06587d)}.bg-steelblue_75{background-color:var(--color-steelblue_75, #066d9b)}.bg-steelblue_70{background-color:var(--color-steelblue_70, #128fc7)}.bg-steelblue_65{background-color:var(--color-steelblue_65, #229fd7)}.bg-steelblue_60{background-color:var(--color-steelblue_60, #50bff0)}.bg-steelblue_45{background-color:var(--color-steelblue_45, #a4e2fd)}.bg-steelblue_25{background-color:var(--color-steelblue_25, #d9f2fd)}.bg-steelblue_10{background-color:var(--color-steelblue_10, #ecf8fd)}.bg-oceanblue_99{background-color:var(--color-oceanblue_99, #011428)}.bg-oceanblue_95{background-color:var(--color-oceanblue_95, #03172d)}.bg-oceanblue_90{background-color:var(--color-oceanblue_90, #051d36)}.bg-oceanblue_85{background-color:var(--color-oceanblue_85, #07284a)}.bg-oceanblue_80{background-color:var(--color-oceanblue_80, #004177)}.bg-oceanblue_75{background-color:var(--color-oceanblue_75, #025497)}.bg-oceanblue_70{background-color:var(--color-oceanblue_70, #006ac1)}.bg-oceanblue_65{background-color:var(--color-oceanblue_65, #1f8ae1)}.bg-oceanblue_60{background-color:var(--color-oceanblue_60, #5cb0f3)}.bg-oceanblue_50{background-color:var(--color-oceanblue_50, #9cd1fc)}.bg-oceanblue_25{background-color:var(--color-oceanblue_25, #d5ebfe)}.bg-oceanblue_15{background-color:var(--color-oceanblue_15, #eaf5fe)}.bg-brilliantblue_99{background-color:var(--color-brilliantblue_99, #001226)}.bg-brilliantblue_95{background-color:var(--color-brilliantblue_95, #001b39)}.bg-brilliantblue_90{background-color:var(--color-brilliantblue_90, #002b5e)}.bg-brilliantblue_85{background-color:var(--color-brilliantblue_85, #004290)}.bg-brilliantblue_80{background-color:var(--color-brilliantblue_80, #005cc9)}.bg-brilliantblue_75{background-color:var(--color-brilliantblue_75, #0075ff)}.bg-brilliantblue_70{background-color:var(--color-brilliantblue_70, #2d8dff)}.bg-brilliantblue_60{background-color:var(--color-brilliantblue_60, #64abff)}.bg-brilliantblue_50{background-color:var(--color-brilliantblue_50, #93c4ff)}.bg-brilliantblue_40{background-color:var(--color-brilliantblue_40, #bbdaff)}.bg-brilliantblue_25{background-color:var(--color-brilliantblue_25, #d9eaff)}.bg-brilliantblue_20{background-color:var(--color-brilliantblue_20, #e6f1ff)}.bg-brilliantblue_10{background-color:var(--color-brilliantblue_10, #eff6ff)}.bg-brilliantblue_05{background-color:var(--color-brilliantblue_05, #f5faff)}.bg-grey_95{background-color:var(--color-grey_95, #222222)}.bg-grey_90{background-color:var(--color-grey_90, #333333)}.bg-grey_85{background-color:var(--color-grey_85, #444444)}.bg-grey_80{background-color:var(--color-grey_80, #555555)}.bg-grey_70{background-color:var(--color-grey_70, #737373)}.bg-grey_65{background-color:var(--color-grey_65, #888888)}.bg-grey_60{background-color:var(--color-grey_60, #999999)}.bg-grey_55{background-color:var(--color-grey_55, #aaaaaa)}.bg-grey_50{background-color:var(--color-grey_50, #bbbbbb)}.bg-grey_45{background-color:var(--color-grey_45, #cccccc)}.bg-grey_35{background-color:var(--color-grey_35, #d8d8d8)}.bg-grey_30{background-color:var(--color-grey_30, #e1e1e1)}.bg-grey_25{background-color:var(--color-grey_25, #e5e5e5)}.bg-grey_20{background-color:var(--color-grey_20, #eeeeee)}.bg-grey_10{background-color:var(--color-grey_10, #f6f6f6)}.bg-grey_05{background-color:var(--color-grey_05, #f9f9f9)}.bg-white{background-color:var(--color-white, #ffffff)}.bg-black{background-color:var(--color-black, #000000)}.text-primary{color:var(--color-primary, #051d36)}.text-secondary{color:var(--color-secondary, #555555)}.text-accent{color:var(--color-accent, #9c27b0)}.text-positive{color:var(--color-positive, #0075ff)}.text-negative{color:var(--color-negative, #e30000)}.text-info{color:var(--color-info, #00cd52)}.text-warning{color:var(--color-warning, #f2c037)}.text-red_99{color:var(--color-red_99, #220000)}.text-red_95{color:var(--color-red_95, #440000)}.text-red_90{color:var(--color-red_90, #5e0000)}.text-red_85{color:var(--color-red_85, #820000)}.text-red_80{color:var(--color-red_80, #ad0000)}.text-red_75{color:var(--color-red_75, #e30000)}.text-red_70{color:var(--color-red_70, #fb4444)}.text-red_60{color:var(--color-red_60, #ff7c7c)}.text-red_45{color:var(--color-red_45, #ffb5b5)}.text-red_30{color:var(--color-red_30, #ffd3d3)}.text-red_20{color:var(--color-red_20, #fce6e6)}.text-red_15{color:var(--color-red_15, #fcefef)}.text-caution_bg{color:var(--color-caution_bg, #fef1f1)}.text-caution_icon{color:var(--color-caution_icon, #fd9595)}.text-orange_99{color:var(--color-orange_99, #2f1100)}.text-orange_95{color:var(--color-orange_95, #4d1b00)}.text-orange_90{color:var(--color-orange_90, #752a00)}.text-orange_85{color:var(--color-orange_85, #9b3700)}.text-orange_75{color:var(--color-orange_75, #ce4900)}.text-orange_65{color:var(--color-orange_65, #ff6b00)}.text-orange_60{color:var(--color-orange_60, #ff7f22)}.text-orange_55{color:var(--color-orange_55, #ffa452)}.text-orange_45{color:var(--color-orange_45, #ffbc81)}.text-orange_35{color:var(--color-orange_35, #ffd5af)}.text-orange_20{color:var(--color-orange_20, #ffead7)}.text-orange_10{color:var(--color-orange_10, #fef1ea)}.text-header_alert{color:var(--color-header_alert, #ff7a00)}.text-yellow_95{color:var(--color-yellow_95, #322700)}.text-yellow_90{color:var(--color-yellow_90, #453702)}.text-yellow_80{color:var(--color-yellow_80, #6c5602)}.text-yellow_70{color:var(--color-yellow_70, #9c7a00)}.text-yellow_60{color:var(--color-yellow_60, #c49900)}.text-yellow_50{color:var(--color-yellow_50, #ebb800)}.text-yellow_45{color:var(--color-yellow_45, #ffc700)}.text-yellow_40{color:var(--color-yellow_40, #ffd643)}.text-yellow_30{color:var(--color-yellow_30, #fee17c)}.text-yellow_25{color:var(--color-yellow_25, #ffe99e)}.text-yellow_20{color:var(--color-yellow_20, #fef1c4)}.text-yellow_10{color:var(--color-yellow_10, #fff7dd)}.text-olive_95{color:var(--color-olive_95, #2c2c00)}.text-olive_90{color:var(--color-olive_90, #454500)}.text-olive_80{color:var(--color-olive_80, #636300)}.text-olive_70{color:var(--color-olive_70, #838300)}.text-olive_65{color:var(--color-olive_65, #a5a500)}.text-olive_55{color:var(--color-olive_55, #c7c700)}.text-olive_45{color:var(--color-olive_45, #dddd12)}.text-olive_30{color:var(--color-olive_30, #eeee37)}.text-olive_20{color:var(--color-olive_20, #f6f65f)}.text-olive_15{color:var(--color-olive_15, #fafaa1)}.text-olive_10{color:var(--color-olive_10, #fbfbbf)}.text-olive_05{color:var(--color-olive_05, #fefed9)}.text-green_99{color:var(--color-green_99, #001d0b)}.text-green_95{color:var(--color-green_95, #003013)}.text-green_90{color:var(--color-green_90, #00461c)}.text-green_85{color:var(--color-green_85, #006629)}.text-green_80{color:var(--color-green_80, #007b31)}.text-green_75{color:var(--color-green_75, #00973c)}.text-green_70{color:var(--color-green_70, #12b553)}.text-green_65{color:var(--color-green_65, #2bce6c)}.text-green_55{color:var(--color-green_55, #6de39c)}.text-green_45{color:var(--color-green_45, #acf4c9)}.text-green_25{color:var(--color-green_25, #d4fae3)}.text-green_15{color:var(--color-green_15, #e8f9ef)}.text-steelblue_99{color:var(--color-steelblue_99, #021a25)}.text-steelblue_95{color:var(--color-steelblue_95, #02212f)}.text-steelblue_90{color:var(--color-steelblue_90, #032d40)}.text-steelblue_85{color:var(--color-steelblue_85, #033f59)}.text-steelblue_80{color:var(--color-steelblue_80, #06587d)}.text-steelblue_75{color:var(--color-steelblue_75, #066d9b)}.text-steelblue_70{color:var(--color-steelblue_70, #128fc7)}.text-steelblue_65{color:var(--color-steelblue_65, #229fd7)}.text-steelblue_60{color:var(--color-steelblue_60, #50bff0)}.text-steelblue_45{color:var(--color-steelblue_45, #a4e2fd)}.text-steelblue_25{color:var(--color-steelblue_25, #d9f2fd)}.text-steelblue_10{color:var(--color-steelblue_10, #ecf8fd)}.text-oceanblue_99{color:var(--color-oceanblue_99, #011428)}.text-oceanblue_95{color:var(--color-oceanblue_95, #03172d)}.text-oceanblue_90{color:var(--color-oceanblue_90, #051d36)}.text-oceanblue_85{color:var(--color-oceanblue_85, #07284a)}.text-oceanblue_80{color:var(--color-oceanblue_80, #004177)}.text-oceanblue_75{color:var(--color-oceanblue_75, #025497)}.text-oceanblue_70{color:var(--color-oceanblue_70, #006ac1)}.text-oceanblue_65{color:var(--color-oceanblue_65, #1f8ae1)}.text-oceanblue_60{color:var(--color-oceanblue_60, #5cb0f3)}.text-oceanblue_50{color:var(--color-oceanblue_50, #9cd1fc)}.text-oceanblue_25{color:var(--color-oceanblue_25, #d5ebfe)}.text-oceanblue_15{color:var(--color-oceanblue_15, #eaf5fe)}.text-brilliantblue_99{color:var(--color-brilliantblue_99, #001226)}.text-brilliantblue_95{color:var(--color-brilliantblue_95, #001b39)}.text-brilliantblue_90{color:var(--color-brilliantblue_90, #002b5e)}.text-brilliantblue_85{color:var(--color-brilliantblue_85, #004290)}.text-brilliantblue_80{color:var(--color-brilliantblue_80, #005cc9)}.text-brilliantblue_75{color:var(--color-brilliantblue_75, #0075ff)}.text-brilliantblue_70{color:var(--color-brilliantblue_70, #2d8dff)}.text-brilliantblue_60{color:var(--color-brilliantblue_60, #64abff)}.text-brilliantblue_50{color:var(--color-brilliantblue_50, #93c4ff)}.text-brilliantblue_40{color:var(--color-brilliantblue_40, #bbdaff)}.text-brilliantblue_25{color:var(--color-brilliantblue_25, #d9eaff)}.text-brilliantblue_20{color:var(--color-brilliantblue_20, #e6f1ff)}.text-brilliantblue_10{color:var(--color-brilliantblue_10, #eff6ff)}.text-brilliantblue_05{color:var(--color-brilliantblue_05, #f5faff)}.text-grey_95{color:var(--color-grey_95, #222222)}.text-grey_90{color:var(--color-grey_90, #333333)}.text-grey_85{color:var(--color-grey_85, #444444)}.text-grey_80{color:var(--color-grey_80, #555555)}.text-grey_70{color:var(--color-grey_70, #737373)}.text-grey_65{color:var(--color-grey_65, #888888)}.text-grey_60{color:var(--color-grey_60, #999999)}.text-grey_55{color:var(--color-grey_55, #aaaaaa)}.text-grey_50{color:var(--color-grey_50, #bbbbbb)}.text-grey_45{color:var(--color-grey_45, #cccccc)}.text-grey_35{color:var(--color-grey_35, #d8d8d8)}.text-grey_30{color:var(--color-grey_30, #e1e1e1)}.text-grey_25{color:var(--color-grey_25, #e5e5e5)}.text-grey_20{color:var(--color-grey_20, #eeeeee)}.text-grey_10{color:var(--color-grey_10, #f6f6f6)}.text-grey_05{color:var(--color-grey_05, #f9f9f9)}.text-white{color:var(--color-white, #ffffff)}.text-black{color:var(--color-black, #000000)}*,*::before,*::after{box-sizing:border-box}*{scroll-behavior:smooth}*::-webkit-scrollbar{opacity:0;width:8px;background:#E5E5E5}*::-webkit-scrollbar:horizontal{height:8px}*::-webkit-scrollbar-thumb{height:80px;background-color:#CCCCCC;border-radius:4px}*::-webkit-scrollbar-track{background-color:#E5E5E5}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{min-height:100vh;line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;display:block}input,button,textarea,select{font-size:inherit}:target{scroll-margin-block:5ex}button{background:none;border:none;cursor:pointer;padding:0;outline:0}button:focus{outline:0 !important}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-text-fill-color:#000;-webkit-box-shadow:0 0 0px 1000px #fff inset;box-shadow:0 0 0px 1000px #fff inset;transition:background-color 5000s ease-in-out 0s}input:autofill,input:autofill:hover,input:autofill:focus,input:autofill:active{-webkit-text-fill-color:#000;-webkit-box-shadow:0 0 0px 1000px #fff inset;box-shadow:0 0 0px 1000px #fff inset;transition:background-color 5000s ease-in-out 0s}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}input[type=text],input[type=number],input[type=password],input[type=email],input[type=tel],textarea{padding-block:0px;padding-inline:0px}.sd-hoverable:hover>.sd-focus-helper{background:currentColor;opacity:0.15}.sd-hoverable:hover>.sd-focus-helper:before{opacity:0.1}.sd-hoverable:hover>.sd-focus-helper:after{opacity:0.4}.sd-focus-helper{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:inherit;opacity:0;transition:background-color 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), opacity 0.4s cubic-bezier(0.25, 0.8, 0.5, 1)}.sd-focus-helper:before,.sd-focus-helper:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;border-radius:inherit;transition:background-color 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), opacity 0.6s cubic-bezier(0.25, 0.8, 0.5, 1)}.sd-focus-helper:before{background:#000000}.sd-focus-helper:after{background:#ffffff}";
139
+ const globalStyles = ":root{--color-primary:#051D36;--sd-primary:#051D36;--color-secondary:#555555;--sd-secondary:#555555;--color-accent:#9C27B0;--sd-accent:#9C27B0;--color-positive:#0075FF;--sd-positive:#0075FF;--color-negative:#E30000;--sd-negative:#E30000;--color-info:#00CD52;--sd-info:#00CD52;--color-warning:#F2C037;--sd-warning:#F2C037;--color-caution_bg:#FEF1F1;--sd-caution_bg:#FEF1F1;--color-caution_icon:#FD9595;--sd-caution_icon:#FD9595;--color-header_alert:#FF7A00;--sd-header_alert:#FF7A00;--color-white:#FFFFFF;--sd-white:#FFFFFF;--color-black:#000000;--sd-black:#000000;--color-grey_10:#F6F6F6;--sd-grey_10:#F6F6F6;--color-grey_20:#EEEEEE;--sd-grey_20:#EEEEEE;--color-grey_25:#E5E5E5;--sd-grey_25:#E5E5E5;--color-grey_30:#E1E1E1;--sd-grey_30:#E1E1E1;--color-grey_35:#D8D8D8;--sd-grey_35:#D8D8D8;--color-grey_45:#CCCCCC;--sd-grey_45:#CCCCCC;--color-grey_50:#BBBBBB;--sd-grey_50:#BBBBBB;--color-grey_55:#AAAAAA;--sd-grey_55:#AAAAAA;--color-grey_60:#999999;--sd-grey_60:#999999;--color-grey_65:#888888;--sd-grey_65:#888888;--color-grey_70:#737373;--sd-grey_70:#737373;--color-grey_80:#555555;--sd-grey_80:#555555;--color-grey_85:#444444;--sd-grey_85:#444444;--color-grey_90:#333333;--sd-grey_90:#333333;--color-grey_95:#222222;--sd-grey_95:#222222;--color-grey_05:#F9F9F9;--sd-grey_05:#F9F9F9;--color-red_15:#FCEFEF;--sd-red_15:#FCEFEF;--color-red_20:#FCE6E6;--sd-red_20:#FCE6E6;--color-red_30:#FFD3D3;--sd-red_30:#FFD3D3;--color-red_45:#FFB5B5;--sd-red_45:#FFB5B5;--color-red_60:#FF7C7C;--sd-red_60:#FF7C7C;--color-red_70:#FB4444;--sd-red_70:#FB4444;--color-red_75:#E30000;--sd-red_75:#E30000;--color-red_75_006:#E30000;--sd-red_75_006:#E30000;--color-red_80:#AD0000;--sd-red_80:#AD0000;--color-red_85:#820000;--sd-red_85:#820000;--color-red_90:#5E0000;--sd-red_90:#5E0000;--color-red_95:#440000;--sd-red_95:#440000;--color-red_99:#220000;--sd-red_99:#220000;--color-orange_10:#FEF1EA;--sd-orange_10:#FEF1EA;--color-orange_20:#FFEAD7;--sd-orange_20:#FFEAD7;--color-orange_35:#FFD5AF;--sd-orange_35:#FFD5AF;--color-orange_45:#FFBC81;--sd-orange_45:#FFBC81;--color-orange_55:#FFA452;--sd-orange_55:#FFA452;--color-orange_60:#FF7F22;--sd-orange_60:#FF7F22;--color-orange_65:#FF6B00;--sd-orange_65:#FF6B00;--color-orange_75:#CE4900;--sd-orange_75:#CE4900;--color-orange_85:#9B3700;--sd-orange_85:#9B3700;--color-orange_90:#752A00;--sd-orange_90:#752A00;--color-orange_95:#4D1B00;--sd-orange_95:#4D1B00;--color-orange_99:#2F1100;--sd-orange_99:#2F1100;--color-yellow_10:#FFF7DD;--sd-yellow_10:#FFF7DD;--color-yellow_20:#FEF1C4;--sd-yellow_20:#FEF1C4;--color-yellow_25:#FFE99E;--sd-yellow_25:#FFE99E;--color-yellow_30:#FEE17C;--sd-yellow_30:#FEE17C;--color-yellow_40:#FFD643;--sd-yellow_40:#FFD643;--color-yellow_45:#FFC700;--sd-yellow_45:#FFC700;--color-yellow_50:#EBB110;--sd-yellow_50:#EBB110;--color-yellow_60:#CA9612;--sd-yellow_60:#CA9612;--color-yellow_70:#916C0D;--sd-yellow_70:#916C0D;--color-yellow_80:#6C5002;--sd-yellow_80:#6C5002;--color-yellow_90:#453602;--sd-yellow_90:#453602;--color-yellow_95:#322700;--sd-yellow_95:#322700;--color-olive_10:#FBFBBF;--sd-olive_10:#FBFBBF;--color-olive_15:#FAFAA1;--sd-olive_15:#FAFAA1;--color-olive_20:#F6F65F;--sd-olive_20:#F6F65F;--color-olive_30:#EEEE37;--sd-olive_30:#EEEE37;--color-olive_45:#DDDD12;--sd-olive_45:#DDDD12;--color-olive_55:#C7C700;--sd-olive_55:#C7C700;--color-olive_65:#A5A500;--sd-olive_65:#A5A500;--color-olive_70:#838300;--sd-olive_70:#838300;--color-olive_80:#636300;--sd-olive_80:#636300;--color-olive_90:#454500;--sd-olive_90:#454500;--color-olive_95:#2C2C00;--sd-olive_95:#2C2C00;--color-olive_05:#FEFED9;--sd-olive_05:#FEFED9;--color-green_15:#E8F9EF;--sd-green_15:#E8F9EF;--color-green_25:#D4FAE3;--sd-green_25:#D4FAE3;--color-green_45:#ACF4C9;--sd-green_45:#ACF4C9;--color-green_55:#6DE39C;--sd-green_55:#6DE39C;--color-green_65:#2BCE6C;--sd-green_65:#2BCE6C;--color-green_70:#12B553;--sd-green_70:#12B553;--color-green_75:#00973C;--sd-green_75:#00973C;--color-green_80:#007B31;--sd-green_80:#007B31;--color-green_85:#006629;--sd-green_85:#006629;--color-green_90:#00461C;--sd-green_90:#00461C;--color-green_95:#003013;--sd-green_95:#003013;--color-green_99:#001D0B;--sd-green_99:#001D0B;--color-steelblue_10:#ECF8FD;--sd-steelblue_10:#ECF8FD;--color-steelblue_25:#D9F2FD;--sd-steelblue_25:#D9F2FD;--color-steelblue_45:#A4E2FD;--sd-steelblue_45:#A4E2FD;--color-steelblue_60:#50BFF0;--sd-steelblue_60:#50BFF0;--color-steelblue_65:#229FD7;--sd-steelblue_65:#229FD7;--color-steelblue_70:#128FC7;--sd-steelblue_70:#128FC7;--color-steelblue_75:#066D9B;--sd-steelblue_75:#066D9B;--color-steelblue_80:#06587D;--sd-steelblue_80:#06587D;--color-steelblue_85:#033F59;--sd-steelblue_85:#033F59;--color-steelblue_90:#032D40;--sd-steelblue_90:#032D40;--color-steelblue_95:#02212F;--sd-steelblue_95:#02212F;--color-steelblue_99:#021A25;--sd-steelblue_99:#021A25;--color-oceanblue_15:#EAF5FE;--sd-oceanblue_15:#EAF5FE;--color-oceanblue_25:#D5EBFE;--sd-oceanblue_25:#D5EBFE;--color-oceanblue_50:#9CD1FC;--sd-oceanblue_50:#9CD1FC;--color-oceanblue_60:#5CB0F3;--sd-oceanblue_60:#5CB0F3;--color-oceanblue_65:#1F8AE1;--sd-oceanblue_65:#1F8AE1;--color-oceanblue_70:#006AC1;--sd-oceanblue_70:#006AC1;--color-oceanblue_75:#025497;--sd-oceanblue_75:#025497;--color-oceanblue_80:#004177;--sd-oceanblue_80:#004177;--color-oceanblue_85:#07284A;--sd-oceanblue_85:#07284A;--color-oceanblue_90:#051D36;--sd-oceanblue_90:#051D36;--color-oceanblue_95:#03172D;--sd-oceanblue_95:#03172D;--color-oceanblue_99:#011428;--sd-oceanblue_99:#011428;--color-brilliantblue_10:#EFF6FF;--sd-brilliantblue_10:#EFF6FF;--color-brilliantblue_20:#E6F1FF;--sd-brilliantblue_20:#E6F1FF;--color-brilliantblue_25:#D9EAFF;--sd-brilliantblue_25:#D9EAFF;--color-brilliantblue_40:#BBDAFF;--sd-brilliantblue_40:#BBDAFF;--color-brilliantblue_50:#93C4FF;--sd-brilliantblue_50:#93C4FF;--color-brilliantblue_60:#64ABFF;--sd-brilliantblue_60:#64ABFF;--color-brilliantblue_70:#2D8DFF;--sd-brilliantblue_70:#2D8DFF;--color-brilliantblue_75:#0075FF;--sd-brilliantblue_75:#0075FF;--color-brilliantblue_80:#005CC9;--sd-brilliantblue_80:#005CC9;--color-brilliantblue_85:#004290;--sd-brilliantblue_85:#004290;--color-brilliantblue_90:#002B5E;--sd-brilliantblue_90:#002B5E;--color-brilliantblue_95:#001B39;--sd-brilliantblue_95:#001B39;--color-brilliantblue_99:#001226;--sd-brilliantblue_99:#001226;--color-brilliantblue_05:#F5FAFF;--sd-brilliantblue_05:#F5FAFF;--sd-system-typography-control-xs-default-font-family: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;--sd-system-typography-control-xs-default-font-size:12px;--sd-system-typography-control-xs-default-font-weight:400;--sd-system-typography-control-xs-default-text-decoration:none;--sd-system-typography-control-xs-default-line-height:20px;--sd-system-typography-control-xs-medium-font-family: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;--sd-system-typography-control-xs-medium-font-size:12px;--sd-system-typography-control-xs-medium-font-weight:500;--sd-system-typography-control-xs-medium-text-decoration:none;--sd-system-typography-control-xs-medium-line-height:20px;--sd-system-typography-control-xs-bold-font-family: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;--sd-system-typography-control-xs-bold-font-weight:700;--sd-system-typography-control-xs-bold-font-size:12px;--sd-system-typography-control-xs-bold-line-height:20px;--sd-system-typography-control-xs-bold-text-decoration:none;--sd-system-typography-control-sm-default-font-family: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;--sd-system-typography-control-sm-default-font-size:12px;--sd-system-typography-control-sm-default-font-weight:500;--sd-system-typography-control-sm-default-text-decoration:none;--sd-system-typography-control-sm-default-line-height:20px;--sd-system-typography-control-sm-underline-font-family: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;--sd-system-typography-control-sm-underline-font-size:12px;--sd-system-typography-control-sm-underline-font-weight:500;--sd-system-typography-control-sm-underline-text-decoration:underline;--sd-system-typography-control-sm-underline-line-height:22px;--sd-system-typography-control-md-font-family: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;--sd-system-typography-control-md-font-size:16px;--sd-system-typography-control-md-font-weight:500;--sd-system-typography-control-md-text-decoration:none;--sd-system-typography-control-md-line-height:26px;--sd-system-typography-control-lg-font-family: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;--sd-system-typography-control-lg-font-size:18px;--sd-system-typography-control-lg-font-weight:500;--sd-system-typography-control-lg-text-decoration:none;--sd-system-typography-control-lg-line-height:30px;--sd-system-typography-feedback-xs-font-family: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;--sd-system-typography-feedback-xs-font-size:11px;--sd-system-typography-feedback-xs-font-weight:500;--sd-system-typography-feedback-xs-line-height:18px;--sd-system-typography-feedback-xs-text-decoration:none;--sd-system-typography-feedback-sm-regular-font-family: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;--sd-system-typography-feedback-sm-regular-font-size:12px;--sd-system-typography-feedback-sm-regular-font-weight:400;--sd-system-typography-feedback-sm-regular-line-height:20px;--sd-system-typography-feedback-sm-regular-text-decoration:none;--sd-system-typography-feedback-sm-medium-font-family: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;--sd-system-typography-feedback-sm-medium-font-size:12px;--sd-system-typography-feedback-sm-medium-font-weight:500;--sd-system-typography-feedback-sm-medium-line-height:20px;--sd-system-typography-feedback-sm-medium-text-decoration:none;--sd-system-typography-feedback-sm-bold-font-family: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;--sd-system-typography-feedback-sm-bold-font-size:12px;--sd-system-typography-feedback-sm-bold-font-weight:700;--sd-system-typography-feedback-sm-bold-text-decoration:none;--sd-system-typography-feedback-sm-bold-line-height:20px;--sd-system-typography-feedback-sm-underline-font-family: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;--sd-system-typography-feedback-sm-underline-font-size:12px;--sd-system-typography-feedback-sm-underline-font-weight:500;--sd-system-typography-feedback-sm-underline-line-height:20px;--sd-system-typography-feedback-sm-underline-text-decoration:underline;--sd-system-typography-feedback-md-bold-font-family: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;--sd-system-typography-feedback-md-bold-font-size:14px;--sd-system-typography-feedback-md-bold-font-weight:700;--sd-system-typography-feedback-md-bold-line-height:24px;--sd-system-typography-feedback-md-bold-text-decoration:none;--sd-system-typography-feedback-md-medium-font-family: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;--sd-system-typography-feedback-md-medium-font-size:14px;--sd-system-typography-feedback-md-medium-font-weight:500;--sd-system-typography-feedback-md-medium-line-height:24px;--sd-system-typography-feedback-md-medium-text-decoration:none;--sd-system-typography-feedback-md-underline-font-family: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;--sd-system-typography-feedback-md-underline-font-size:14px;--sd-system-typography-feedback-md-underline-font-weight:700;--sd-system-typography-feedback-md-underline-line-height:24px;--sd-system-typography-feedback-md-underline-text-decoration:underline;--sd-system-typography-heading-sm-font-family: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;--sd-system-typography-heading-sm-font-weight:700;--sd-system-typography-heading-sm-font-size:14px;--sd-system-typography-heading-sm-line-height:24px;--sd-system-typography-heading-sm-text-decoration:none;--sd-system-typography-heading-md-font-family: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;--sd-system-typography-heading-md-font-weight:700;--sd-system-typography-heading-md-font-size:16px;--sd-system-typography-heading-md-text-decoration:none;--sd-system-typography-heading-md-line-height:26px;--sd-system-typography-heading-lg-font-family: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;--sd-system-typography-heading-lg-font-weight:700;--sd-system-typography-heading-lg-font-size:18px;--sd-system-typography-heading-lg-line-height:30px;--sd-system-typography-heading-lg-text-decoration:none;--sd-system-typography-field-xs-default-font-family: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;--sd-system-typography-field-xs-default-font-weight:400;--sd-system-typography-field-xs-default-font-size:11px;--sd-system-typography-field-xs-default-line-height:18px;--sd-system-typography-field-xs-default-text-decoration:none;--sd-system-typography-field-sm-default-font-family: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;--sd-system-typography-field-sm-default-font-weight:400;--sd-system-typography-field-sm-default-font-size:12px;--sd-system-typography-field-sm-default-line-height:20px;--sd-system-typography-field-sm-default-text-decoration:none;--sd-system-typography-field-sm-medium-font-family: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;--sd-system-typography-field-sm-medium-font-weight:500;--sd-system-typography-field-sm-medium-font-size:12px;--sd-system-typography-field-sm-medium-text-decoration:none;--sd-system-typography-field-sm-medium-line-height:20px;--sd-system-typography-field-sm-bold-font-family: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;--sd-system-typography-field-sm-bold-font-weight:700;--sd-system-typography-field-sm-bold-font-size:12px;--sd-system-typography-field-sm-bold-text-decoration:none;--sd-system-typography-field-sm-bold-line-height:20px;--sd-system-typography-field-md-default-font-family: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;--sd-system-typography-field-md-default-font-weight:400;--sd-system-typography-field-md-default-font-size:14px;--sd-system-typography-field-md-default-text-decoration:none;--sd-system-typography-field-md-default-line-height:24px;--sd-system-typography-field-md-medium-font-family: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;--sd-system-typography-field-md-medium-font-weight:500;--sd-system-typography-field-md-medium-font-size:14px;--sd-system-typography-field-md-medium-text-decoration:none;--sd-system-typography-field-md-medium-line-height:24px;--sd-system-typography-field-md-bold-font-family: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;--sd-system-typography-field-md-bold-font-weight:700;--sd-system-typography-field-md-bold-font-size:14px;--sd-system-typography-field-md-bold-text-decoration:none;--sd-system-typography-field-md-bold-line-height:24px;--sd-system-typography-field-lg-default-font-family: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;--sd-system-typography-field-lg-default-font-weight:400;--sd-system-typography-field-lg-default-font-size:16px;--sd-system-typography-field-lg-default-line-height:26px;--sd-system-typography-field-lg-default-text-decoration:none;--sd-system-typography-field-lg-medium-font-family: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;--sd-system-typography-field-lg-medium-font-weight:500;--sd-system-typography-field-lg-medium-font-size:16px;--sd-system-typography-field-lg-medium-line-height:26px;--sd-system-typography-field-lg-medium-text-decoration:none;--sd-system-typography-field-lg-bold-font-family: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;--sd-system-typography-field-lg-bold-font-weight:700;--sd-system-typography-field-lg-bold-font-size:16px;--sd-system-typography-field-lg-bold-line-height:26px;--sd-system-typography-field-lg-bold-text-decoration:none;--sd-system-typography-navigation-default-font-family: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;--sd-system-typography-navigation-default-font-weight:400;--sd-system-typography-navigation-default-font-size:12px;--sd-system-typography-navigation-default-line-height:20px;--sd-system-typography-navigation-default-text-decoration:none;--sd-system-typography-navigation-bold-font-family: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;--sd-system-typography-navigation-bold-font-weight:700;--sd-system-typography-navigation-bold-font-size:12px;--sd-system-typography-navigation-bold-line-height:20px;--sd-system-typography-navigation-bold-text-decoration:none;--sd-system-typography-table-header-font-family: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;--sd-system-typography-table-header-font-weight:500;--sd-system-typography-table-header-font-size:12px;--sd-system-typography-table-header-line-height:20px;--sd-system-typography-table-header-text-decoration:none;--sd-system-typography-table-body-font-family: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;--sd-system-typography-table-body-font-weight:400;--sd-system-typography-table-body-font-size:12px;--sd-system-typography-table-body-line-height:20px;--sd-system-typography-table-body-text-decoration:none;--sd-system-typography-table-accent-font-family: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;--sd-system-typography-table-accent-font-weight:700;--sd-system-typography-table-accent-font-size:12px;--sd-system-typography-table-accent-line-height:20px;--sd-system-typography-table-accent-text-decoration:none;--sd-system-size-control-xs-height:24px;--sd-system-size-control-sm-height:28px;--sd-system-size-control-md-height:36px;--sd-system-size-control-lg-height:62px;--sd-system-size-icon-xxxs:8px;--sd-system-size-icon-xxs:10px;--sd-system-size-icon-xs:12px;--sd-system-size-icon-sm:16px;--sd-system-size-icon-md:20px;--sd-system-size-icon-lg:24px;--sd-system-size-icon-xl:32px;--sd-system-size-feedback-arrow-width:16px;--sd-system-size-feedback-arrow-height:12px;--sd-system-size-feedback-xs-height:20px;--sd-system-size-feedback-sm-height:24px;--sd-system-size-feedback-md-height:28px;--sd-system-size-field-control:16px;--sd-system-size-field-icon:12px;--sd-system-size-field-sm-height:28px;--sd-system-size-field-md-height:36px;--sd-system-size-navigation-lg-height:44px;--sd-system-size-navigation-md-height:36px;--sd-system-size-table-height-xs:32px;--sd-system-size-table-height-sm:36px;--sd-system-size-table-height-md:44px;--sd-system-space-control-xs-padding-x:8px;--sd-system-space-control-xs-gap:4px;--sd-system-space-control-sm-padding-x:12px;--sd-system-space-control-sm-gap:6px;--sd-system-space-control-md-padding-x:20px;--sd-system-space-control-md-gap:8px;--sd-system-space-control-lg-padding-x:28px;--sd-system-space-control-lg-gap:12px;--sd-system-space-feedback-xs-padding-x:6px;--sd-system-space-feedback-xs-gap:4px;--sd-system-space-feedback-sm-padding-x:8px;--sd-system-space-feedback-sm-gap:6px;--sd-system-space-feedback-md-padding-x:12px;--sd-system-space-feedback-md-gap:8px;--sd-system-space-feedback-lg-padding-x:16px;--sd-system-space-feedback-lg-gap:12px;--sd-system-space-stack-gap-tight:2px;--sd-system-space-stack-gap-normal:4px;--sd-system-space-stack-gap-relaxed:8px;--sd-system-space-field-sm-padding-x:12px;--sd-system-space-field-sm-padding-y:4px;--sd-system-space-field-sm-container-gap:8px;--sd-system-space-field-sm-gap:12px;--sd-system-space-field-md-padding-x:16px;--sd-system-space-field-md-container-gap:12px;--sd-system-space-field-md-gap:16px;--sd-system-space-navigation-lg-padding-x:32px;--sd-system-space-navigation-md-padding-x:24px;--sd-system-space-table-padding-sm:8px;--sd-system-space-table-padding-md:16px;--sd-system-space-action-gap:16px;--sd-system-space-overlay-padding-x-sm:20px;--sd-system-space-overlay-padding-x-md:24px;--sd-system-space-overlay-padding-y-sm:8px;--sd-system-space-panel-gap:12px;--sd-system-radius-control-sm:4px;--sd-system-radius-control-md:6px;--sd-system-radius-feedback-xs-square:6px;--sd-system-radius-feedback-sm-square:8px;--sd-system-radius-feedback-pill:9999px;--sd-system-radius-field-sm:4px;--sd-system-radius-field-md:6px;--sd-system-radius-navigation:6px;--sd-system-border-width-control-default:1px;--sd-system-border-width-field-default:1px;--sd-system-border-width-navigation-default:1px;--sd-system-color-bg-screen:#EEEEEE;--sd-system-color-bg-frame:#FFFFFF;--sd-system-color-bg-brand:#025497;--sd-system-color-bg-subtle:#1F8AE1;--sd-system-color-bg-accent-default:#0075FF;--sd-system-color-bg-accent-light:#F5FAFF;--sd-system-color-bg-accent-light-default:#2D8DFF;--sd-system-color-bg-accent-light-light:#F5FAFF;--sd-system-color-bg-accent-bright-default:#D9EAFF;--sd-system-color-bg-accent-bright-light:#F5FAFF;--sd-system-color-bg-deep:#07284A;--sd-system-color-bg-danger-default:#E30000;--sd-system-color-bg-danger-light:#FCEFEF;--sd-system-color-bg-danger-light-default:#FB4444;--sd-system-color-bg-danger-light-light:#FCEFEF;--sd-system-color-bg-warning:#FF6B00;--sd-system-color-bg-caution:#FFC700;--sd-system-color-bg-progress:#0075FF;--sd-system-color-bg-success-default:#00973C;--sd-system-color-bg-success-light:#12B553;--sd-system-color-bg-success-light:#12B553;--sd-system-color-bg-neutral-light:#F6F6F6;--sd-system-color-bg-table-header:#F5FAFF;--sd-system-color-fg-primary:#222222;--sd-system-color-fg-secondary:#555555;--sd-system-color-fg-tertiary:#888888;--sd-system-color-fg-quaternary:#AAAAAA;--sd-system-color-fg-brand:#005CC9;--sd-system-color-fg-subtle-warm:#066D9B;--sd-system-color-fg-subtle-cool:#025497;--sd-system-color-fg-deep:#004290;--sd-system-color-fg-success:#00973C;--sd-system-color-fg-danger-light:#FB4444;--sd-system-color-fg-accent:#0075FF;--sd-system-color-fg-danger:#E30000;--sd-system-color-fg-warning:#FF6B00;--sd-system-color-fg-inverse:#FFFFFF;--sd-system-color-disabled-bg:#E1E1E1;--sd-system-color-disabled-text:#888888;--sd-system-color-disabled-icon:#BBBBBB;--sd-system-color-disabled-border:#CCCCCC;--sd-system-color-link-accent:#006AC1;--sd-system-color-divider-default:#E1E1E1;--sd-system-color-border-default:#E1E1E1;--sd-system-color-border-accent:#0075FF;--sd-system-color-border-danger:#FB4444;--sd-system-color-border-success:#12B553;--sd-system-color-red-strong:#FB4444;--sd-system-color-red-subtle:#FCEFEF;--sd-system-color-orange-strong:#FF6B00;--sd-system-color-orange-subtle:#FEF1EA;--sd-system-color-yellow-strong:#916C0D;--sd-system-color-yellow-moderate:#FFC700;--sd-system-color-yellow-subtle:#FFF7DD;--sd-system-color-green-strong:#00973C;--sd-system-color-green-subtle:#E8F9EF;--sd-system-color-blue-strong:#0075FF;--sd-system-color-blue-subtle:#E6F1FF;--sd-system-color-darkblue-strong:#006AC1;--sd-system-color-darkblue-subtle:#EAF5FE;--sd-system-color-indigo-strong:#004290;--sd-system-color-indigo-subtle:#EFF6FF;--sd-system-color-grey-strong:#737373;--sd-system-color-grey-subtle:#EEEEEE;--sd-system-color-field-bg-default:#FFFFFF;--sd-system-color-field-bg-hover:#0075FF;--sd-system-color-field-bg-read-only:#EEEEEE;--sd-system-color-field-border-default:#AAAAAA;--sd-system-color-field-border-focus:#0075FF;--sd-system-color-field-border-hover:#0075FF;--sd-system-color-field-border-danger:#FB4444;--sd-system-color-field-border-success:#12B553;--sd-system-color-field-text-default:#222222;--sd-system-color-field-text-placeholder:#AAAAAA;--sd-system-color-field-text-read-only:#555555;--sd-system-color-field-icon-default:#888888;--sd-system-color-control-bg-inverse-hover:#0075FF;--sd-system-shadow-spread-sm-x:0px;--sd-system-shadow-spread-sm-y:0px;--sd-system-shadow-spread-sm-blur:8px;--sd-system-shadow-spread-sm-spread:0px;--sd-system-shadow-spread-sm-color:rgba(34,34,34,0.1);--sd-system-shadow-spread-sm-type:dropShadow;--sd-system-shadow-spread-md-x:0px;--sd-system-shadow-spread-md-y:0px;--sd-system-shadow-spread-md-blur:24px;--sd-system-shadow-spread-md-spread:0px;--sd-system-shadow-spread-md-color:rgba(34,34,34,0.2);--sd-system-shadow-spread-md-type:dropShadow;--sd-system-shadow-focus-x:0px;--sd-system-shadow-focus-y:0px;--sd-system-shadow-focus-blur:8px;--sd-system-shadow-focus-spread:0px;--sd-system-shadow-focus-color:rgba(0,117,255,0.25);--sd-system-shadow-focus-type:dropShadow;--sd-button-button-xs-height:24px;--sd-button-button-xs-padding-x:8px;--sd-button-button-xs-gap:4px;--sd-button-button-xs-typography-font-family: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;--sd-button-button-xs-typography-font-size:12px;--sd-button-button-xs-typography-font-weight:500;--sd-button-button-xs-typography-text-decoration:none;--sd-button-button-xs-typography-line-height:20px;--sd-button-button-xs-icon:12px;--sd-button-button-sm-height:28px;--sd-button-button-sm-padding-x:12px;--sd-button-button-sm-gap:6px;--sd-button-button-sm-typography-font-family: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;--sd-button-button-sm-typography-font-size:12px;--sd-button-button-sm-typography-font-weight:500;--sd-button-button-sm-typography-text-decoration:none;--sd-button-button-sm-typography-line-height:20px;--sd-button-button-sm-icon:16px;--sd-button-button-md-height:36px;--sd-button-button-md-padding-x:20px;--sd-button-button-md-gap:8px;--sd-button-button-md-typography-font-family: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;--sd-button-button-md-typography-font-size:16px;--sd-button-button-md-typography-font-weight:500;--sd-button-button-md-typography-text-decoration:none;--sd-button-button-md-typography-line-height:26px;--sd-button-button-md-icon:20px;--sd-button-button-lg-height:62px;--sd-button-button-lg-padding-x:28px;--sd-button-button-lg-gap:12px;--sd-button-button-lg-typography-font-family: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;--sd-button-button-lg-typography-font-size:18px;--sd-button-button-lg-typography-font-weight:500;--sd-button-button-lg-typography-text-decoration:none;--sd-button-button-lg-typography-line-height:30px;--sd-button-button-lg-icon:24px;--sd-button-button-radius-sm:4px;--sd-button-button-radius-md:6px;--sd-button-button-border-width-default:1px;--sd-button-button-border-disabled:#CCCCCC;--sd-button-button-icon-only-xs-width:24px;--sd-button-button-icon-only-sm-width:28px;--sd-button-button-icon-only-md-width:36px;--sd-button-button-icon-only-lg-width:62px;--sd-button-button-bg-disabled:#E1E1E1;--sd-button-button-text-disabled:#888888;--sd-button-button-icon-disabled:#BBBBBB;--sd-button-button-brand-strong-bg-default:#025497;--sd-button-button-brand-strong-bg-hover:#004177;--sd-button-button-brand-strong-content:#FFFFFF;--sd-button-button-brand-strong-dropdown-divider:#006AC1;--sd-button-button-brand-subtle-bg-default:#1F8AE1;--sd-button-button-brand-subtle-bg-hover:#006AC1;--sd-button-button-brand-subtle-content:#FFFFFF;--sd-button-button-brand-subtle-dropdown-divider:#5CB0F3;--sd-button-button-brand-outline-bg-default:#FFFFFF;--sd-button-button-brand-outline-bg-hover:#EAF5FE;--sd-button-button-brand-outline-border:#025497;--sd-button-button-brand-outline-content:#025497;--sd-button-button-neutral-outline-bg-default:#FFFFFF;--sd-button-button-neutral-outline-bg-hover:#EEEEEE;--sd-button-button-neutral-outline-border:#888888;--sd-button-button-neutral-outline-content:#222222;--sd-button-button-danger-strong-bg-default:#E30000;--sd-button-button-danger-strong-bg-hover:#AD0000;--sd-button-button-danger-strong-content:#FFFFFF;--sd-button-button-danger-strong-dropdown-divider:#FF7C7C;--sd-button-button-danger-outline-bg-default:#FFFFFF;--sd-button-button-danger-outline-bg-hover:#FCEFEF;--sd-button-button-danger-outline-border:#E30000;--sd-button-button-danger-outline-content:#E30000;--sd-ghost-button-ghost-button-xxs-size:16px;--sd-ghost-button-ghost-button-xxs-icon:12px;--sd-ghost-button-ghost-button-xs-size:24px;--sd-ghost-button-ghost-button-xs-icon:16px;--sd-ghost-button-ghost-button-sm-size:28px;--sd-ghost-button-ghost-button-sm-icon:20px;--sd-ghost-button-ghost-button-md-size:36px;--sd-ghost-button-ghost-button-md-icon:24px;--sd-ghost-button-ghost-button-lg-size:62px;--sd-ghost-button-ghost-button-lg-icon:32px;--sd-ghost-button-ghost-button-radius-sm:4px;--sd-ghost-button-ghost-button-radius-md:6px;--sd-ghost-button-ghost-button-hover-opacity:5%;--sd-ghost-button-ghost-button-icon-disabled:#BBBBBB;--sd-ghost-button-ghost-button-default-content:#888888;--sd-ghost-button-ghost-button-default-hover-bg:#222222;--sd-ghost-button-ghost-button-danger-content:#E30000;--sd-ghost-button-ghost-button-danger-hover-bg:#E30000;--sd-ghost-button-ghost-button-action-content:#025497;--sd-ghost-button-ghost-button-action-hover-bg:#0075FF;--sd-ghost-button-ghost-button-inverse-content:#FFFFFF;--sd-ghost-button-ghost-button-inverse-disabled:#E1E1E1;--sd-ghost-button-ghost-button-inverse-hover-bg:#FFFFFF;--sd-text-link-text-link-gap:4px;--sd-text-link-text-link-size-icon:16px;--sd-text-link-text-link-typography-default-font-family: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;--sd-text-link-text-link-typography-default-font-size:12px;--sd-text-link-text-link-typography-default-font-weight:500;--sd-text-link-text-link-typography-default-text-decoration:none;--sd-text-link-text-link-typography-default-line-height:20px;--sd-text-link-text-link-typography-underline-font-family: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;--sd-text-link-text-link-typography-underline-font-size:12px;--sd-text-link-text-link-typography-underline-font-weight:500;--sd-text-link-text-link-typography-underline-text-decoration:underline;--sd-text-link-text-link-typography-underline-line-height:22px;--sd-text-link-text-link-content-default:#222222;--sd-text-link-text-link-content-disabled:#888888;--sd-text-link-text-link-icon-default:#006AC1;--sd-text-link-text-link-icon-disabled:#BBBBBB;--sd-switch-switch-width:32px;--sd-switch-switch-height:20px;--sd-switch-switch-padding-x-y:2px;--sd-switch-switch-radius:9999px;--sd-switch-switch-knob-size:16px;--sd-switch-switch-knob-bg:#FFFFFF;--sd-switch-switch-bg-on:#0075FF;--sd-switch-switch-bg-off:#CCCCCC;--sd-switch-switch-bg-disabled-on:#BBDAFF;--sd-switch-switch-bg-disabled-off:#E1E1E1;--sd-switch-switch-label-typography-font-family: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;--sd-switch-switch-label-typography-font-weight:500;--sd-switch-switch-label-typography-font-size:12px;--sd-switch-switch-label-typography-text-decoration:none;--sd-switch-switch-label-typography-line-height:20px;--sd-switch-switch-gap:6px;--sd-toggle-toggle-height:28px;--sd-toggle-toggle-padding-x:12px;--sd-toggle-toggle-typography-font-family: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;--sd-toggle-toggle-typography-font-size:12px;--sd-toggle-toggle-typography-font-weight:500;--sd-toggle-toggle-typography-text-decoration:none;--sd-toggle-toggle-typography-line-height:20px;--sd-toggle-toggle-radius:9999px;--sd-toggle-toggle-border-width:1px;--sd-toggle-toggle-border-default:#CCCCCC;--sd-toggle-toggle-border-select:#0075FF;--sd-toggle-toggle-border-disabled:#CCCCCC;--sd-toggle-toggle-bg-default:#FFFFFF;--sd-toggle-toggle-bg-hover:#0075FF;--sd-toggle-toggle-bg-select:#FFFFFF;--sd-toggle-toggle-bg-disabled:#E1E1E1;--sd-toggle-toggle-content-default:#555555;--sd-toggle-toggle-content-hover:#FFFFFF;--sd-toggle-toggle-content-select:#0075FF;--sd-toggle-toggle-content-disabled:#888888;--sd-checkbox-checkbox-size:16px;--sd-checkbox-checkbox-radius:2px;--sd-checkbox-checkbox-border-width:1px;--sd-checkbox-checkbox-gap:8px;--sd-checkbox-checkbox-icon:12px;--sd-checkbox-checkbox-typography-font-family: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;--sd-checkbox-checkbox-typography-font-weight:400;--sd-checkbox-checkbox-typography-font-size:12px;--sd-checkbox-checkbox-typography-line-height:20px;--sd-checkbox-checkbox-typography-text-decoration:none;--sd-checkbox-checkbox-unchecked-bg-default:#FFFFFF;--sd-checkbox-checkbox-unchecked-bg-hover:#D9EAFF;--sd-checkbox-checkbox-unchecked-border-default:#AAAAAA;--sd-checkbox-checkbox-unchecked-border-hover:#0075FF;--sd-checkbox-checkbox-checked-bg-default:#0075FF;--sd-checkbox-checkbox-checked-icon-default:#FFFFFF;--sd-checkbox-checkbox-checked-icon-disabled:#BBBBBB;--sd-checkbox-checkbox-checked-icon-inverse:#FFFFFF;--sd-checkbox-checkbox-checked-border-inverse:#FFFFFF;--sd-checkbox-checkbox-label-default:#222222;--sd-checkbox-checkbox-label-inverse:#FFFFFF;--sd-checkbox-checkbox-bg-disabled:#E1E1E1;--sd-checkbox-checkbox-border-disabled:#CCCCCC;--sd-radio-radio-size:16px;--sd-radio-radio-radius:9999px;--sd-radio-radio-border-width:1px;--sd-radio-radio-gap:8px;--sd-radio-radio-typography-font-family: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;--sd-radio-radio-typography-font-weight:400;--sd-radio-radio-typography-font-size:12px;--sd-radio-radio-typography-line-height:20px;--sd-radio-radio-typography-text-decoration:none;--sd-radio-radio-bg-default:#FFFFFF;--sd-radio-radio-bg-disabled:#E1E1E1;--sd-radio-radio-bg-hover:#D9EAFF;--sd-radio-radio-border-default:#AAAAAA;--sd-radio-radio-border-hover:#0075FF;--sd-radio-radio-border-active:#0075FF;--sd-radio-radio-border-disabled:#CCCCCC;--sd-radio-radio-dot-default:#0075FF;--sd-radio-radio-dot-disabled:#CCCCCC;--sd-radio-radio-dot-size:10px;--sd-radio-radio-label-default:#222222;--sd-radio-button-radio-button-xs-height:24px;--sd-radio-button-radio-button-xs-padding-x:8px;--sd-radio-button-radio-button-xs-typography-font-family: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;--sd-radio-button-radio-button-xs-typography-font-size:12px;--sd-radio-button-radio-button-xs-typography-font-weight:500;--sd-radio-button-radio-button-xs-typography-text-decoration:none;--sd-radio-button-radio-button-xs-typography-line-height:20px;--sd-radio-button-radio-button-sm-height:28px;--sd-radio-button-radio-button-sm-padding-x:12px;--sd-radio-button-radio-button-sm-typography-font-family: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;--sd-radio-button-radio-button-sm-typography-font-size:12px;--sd-radio-button-radio-button-sm-typography-font-weight:500;--sd-radio-button-radio-button-sm-typography-text-decoration:none;--sd-radio-button-radio-button-sm-typography-line-height:20px;--sd-radio-button-radio-button-radius:4px;--sd-radio-button-radio-button-border-width:1px;--sd-radio-button-radio-button-border-default:#CCCCCC;--sd-radio-button-radio-button-border-select:#0075FF;--sd-radio-button-radio-button-border-disabled:#CCCCCC;--sd-radio-button-radio-button-bg-default:#FFFFFF;--sd-radio-button-radio-button-bg-hover:#0075FF;--sd-radio-button-radio-button-bg-select:#FFFFFF;--sd-radio-button-radio-button-bg-disabled:#E1E1E1;--sd-radio-button-radio-button-content-default:#555555;--sd-radio-button-radio-button-content-hover:#FFFFFF;--sd-radio-button-radio-button-content-select:#0075FF;--sd-radio-button-radio-button-content-disabled:#888888;--sd-radio-button-radio-button-group-gap:-1px;--sd-list-item-list-item-padding-y:4px;--sd-list-item-list-item-padding-right:12px;--sd-list-item-list-item-gap:8px;--sd-list-item-list-item-padding-left-depth1:12px;--sd-list-item-list-item-padding-left-depth2:20px;--sd-list-item-list-item-padding-left-depth3:28px;--sd-list-item-list-item-typography-default-font-family: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;--sd-list-item-list-item-typography-default-font-weight:400;--sd-list-item-list-item-typography-default-font-size:12px;--sd-list-item-list-item-typography-default-line-height:20px;--sd-list-item-list-item-typography-default-text-decoration:none;--sd-list-item-list-item-typography-selected-font-family: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;--sd-list-item-list-item-typography-selected-font-weight:700;--sd-list-item-list-item-typography-selected-font-size:12px;--sd-list-item-list-item-typography-selected-text-decoration:none;--sd-list-item-list-item-typography-selected-line-height:20px;--sd-list-item-list-item-bg-default:#FFFFFF;--sd-list-item-list-item-bg-hover:#0075FF;--sd-list-item-list-item-content-default:#222222;--sd-list-item-list-item-content-hover:#FFFFFF;--sd-list-item-list-item-content-disabled:#888888;--sd-list-item-list-item-content-selected:#0075FF;--sd-list-item-list-item-indeterminate-typography-font-family: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;--sd-list-item-list-item-indeterminate-typography-font-weight:700;--sd-list-item-list-item-indeterminate-typography-font-size:12px;--sd-list-item-list-item-indeterminate-typography-text-decoration:none;--sd-list-item-list-item-indeterminate-typography-line-height:20px;--sd-list-item-list-item-depth1-bg-default:#EFF6FF;--sd-list-item-list-item-depth1-bg-disabled:#EEEEEE;--sd-list-item-list-item-depth1-border-color:#E1E1E1;--sd-list-item-list-item-depth1-border-width:1px;--sd-list-item-list-item-depth1-title-typography-font-family: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;--sd-list-item-list-item-depth1-title-typography-font-weight:700;--sd-list-item-list-item-depth1-title-typography-font-size:12px;--sd-list-item-list-item-depth1-title-typography-text-decoration:none;--sd-list-item-list-item-depth1-title-typography-line-height:20px;--sd-list-item-list-item-depth2-middle-bg:#F6F6F6;--sd-list-item-list-item-depth2-middle-title-typography-font-family: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;--sd-list-item-list-item-depth2-middle-title-typography-font-weight:500;--sd-list-item-list-item-depth2-middle-title-typography-font-size:12px;--sd-list-item-list-item-depth2-middle-title-typography-text-decoration:none;--sd-list-item-list-item-depth2-middle-title-typography-line-height:20px;--sd-list-item-list-item-count-typography-font-family: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;--sd-list-item-list-item-count-typography-font-weight:500;--sd-list-item-list-item-count-typography-font-size:12px;--sd-list-item-list-item-count-typography-text-decoration:none;--sd-list-item-list-item-count-typography-line-height:20px;--sd-list-item-list-item-count-color:#888888;--sd-list-box-list-box-radius:4px;--sd-list-box-list-box-bg:#FFFFFF;--sd-list-box-list-box-chip-padding-x-y:8px;--sd-list-box-list-box-chip-gap:8px;--sd-select-select-height:28px;--sd-select-select-radius:4px;--sd-select-select-border-width:1px;--sd-select-select-padding-x:12px;--sd-select-select-icon-default:#888888;--sd-select-select-icon-disabled:#BBBBBB;--sd-select-select-gap:8px;--sd-select-select-typography-font-family: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;--sd-select-select-typography-font-weight:400;--sd-select-select-typography-font-size:12px;--sd-select-select-typography-line-height:20px;--sd-select-select-typography-text-decoration:none;--sd-select-select-border-default:#AAAAAA;--sd-select-select-border-hover:#0075FF;--sd-select-select-border-danger:#FB4444;--sd-select-select-border-disabled:#CCCCCC;--sd-select-select-bg-default:#FFFFFF;--sd-select-select-bg-disabled:#E1E1E1;--sd-select-select-text-default:#222222;--sd-select-select-text-disabled:#888888;--sd-select-select-size-icon:16px;--sd-field-field-label-sm-height:28px;--sd-field-field-label-sm-gap:6px;--sd-field-field-label-sm-icon:12px;--sd-field-field-label-sm-typography-font-family: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;--sd-field-field-label-sm-typography-font-weight:700;--sd-field-field-label-sm-typography-font-size:12px;--sd-field-field-label-sm-typography-text-decoration:none;--sd-field-field-label-sm-typography-line-height:20px;--sd-field-field-label-md-height:36px;--sd-field-field-label-md-gap:8px;--sd-field-field-label-md-icon:16px;--sd-field-field-label-md-typography-font-family: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;--sd-field-field-label-md-typography-font-weight:700;--sd-field-field-label-md-typography-font-size:14px;--sd-field-field-label-md-typography-text-decoration:none;--sd-field-field-label-md-typography-line-height:24px;--sd-field-field-addon-label-height:28px;--sd-field-field-addon-label-gap:6px;--sd-field-field-addon-label-padding-x:12px;--sd-field-field-addon-label-typography-font-family: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;--sd-field-field-addon-label-typography-font-weight:500;--sd-field-field-addon-label-typography-font-size:12px;--sd-field-field-addon-label-typography-text-decoration:none;--sd-field-field-addon-label-typography-line-height:20px;--sd-field-field-addon-label-bg:#F6F6F6;--sd-field-field-addon-label-border-default:#AAAAAA;--sd-field-field-addon-label-border-disabled:#CCCCCC;--sd-field-field-addon-label-border-width:1px;--sd-textinput-textinput-sm-height:28px;--sd-textinput-textinput-sm-padding-x:12px;--sd-textinput-textinput-sm-padding-y:4px;--sd-textinput-textinput-sm-gap:8px;--sd-textinput-textinput-sm-radius:4px;--sd-textinput-textinput-sm-typography-font-family: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;--sd-textinput-textinput-sm-typography-font-weight:400;--sd-textinput-textinput-sm-typography-font-size:12px;--sd-textinput-textinput-sm-typography-line-height:20px;--sd-textinput-textinput-sm-typography-text-decoration:none;--sd-textinput-textinput-md-height:36px;--sd-textinput-textinput-md-padding-x:16px;--sd-textinput-textinput-md-gap:12px;--sd-textinput-textinput-md-radius:6px;--sd-textinput-textinput-md-typography-font-family: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;--sd-textinput-textinput-md-typography-font-weight:400;--sd-textinput-textinput-md-typography-font-size:14px;--sd-textinput-textinput-md-typography-text-decoration:none;--sd-textinput-textinput-md-typography-line-height:24px;--sd-textinput-textinput-border-width:1px;--sd-textinput-textinput-border-default:#AAAAAA;--sd-textinput-textinput-border-focus:#0075FF;--sd-textinput-textinput-border-danger:#FB4444;--sd-textinput-textinput-border-success:#12B553;--sd-textinput-textinput-border-disabled:#CCCCCC;--sd-textinput-textinput-bg-default:#FFFFFF;--sd-textinput-textinput-bg-disabled:#E1E1E1;--sd-textinput-textinput-bg-barcode:#FAFAA1;--sd-textinput-textinput-text-default:#222222;--sd-textinput-textinput-text-placeholder:#AAAAAA;--sd-textinput-textinput-text-disabled:#888888;--sd-textinput-textinput-text-hint:#555555;--sd-textinput-textinput-text-error-message:#E30000;--sd-textinput-textinput-size-icon:16px;--sd-textinput-textinput-icon-default:#888888;--sd-textinput-textinput-unit-color:#888888;--sd-textinput-textinput-hint-typography-font-family: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;--sd-textinput-textinput-hint-typography-font-weight:400;--sd-textinput-textinput-hint-typography-font-size:12px;--sd-textinput-textinput-hint-typography-line-height:20px;--sd-textinput-textinput-hint-typography-text-decoration:none;--sd-textinput-textinput-error-message-typography-font-family: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;--sd-textinput-textinput-error-message-typography-font-weight:400;--sd-textinput-textinput-error-message-typography-font-size:12px;--sd-textinput-textinput-error-message-typography-line-height:20px;--sd-textinput-textinput-error-message-typography-text-decoration:none;--sd-textinput-textinput-contents-gap:4px;--sd-textinput-textinput-resizer-size:12px;--sd-textinput-textinput-resizer-color:#AAAAAA;--sd-number-input-number-input-sm-height:28px;--sd-number-input-number-input-sm-padding-x:6px;--sd-number-input-number-input-sm-radius:4px;--sd-number-input-number-input-sm-typography-font-family: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;--sd-number-input-number-input-sm-typography-font-weight:400;--sd-number-input-number-input-sm-typography-font-size:12px;--sd-number-input-number-input-sm-typography-line-height:20px;--sd-number-input-number-input-sm-typography-text-decoration:none;--sd-number-input-number-input-sm-gap:4px;--sd-number-input-number-input-md-height:36px;--sd-number-input-number-input-md-padding-x:8px;--sd-number-input-number-input-md-radius:6px;--sd-number-input-number-input-md-typography-font-family: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;--sd-number-input-number-input-md-typography-font-weight:400;--sd-number-input-number-input-md-typography-font-size:14px;--sd-number-input-number-input-md-typography-text-decoration:none;--sd-number-input-number-input-md-typography-line-height:24px;--sd-number-input-number-input-md-gap:6px;--sd-number-input-number-input-border-width:1px;--sd-number-input-number-input-contents-gap:4px;--sd-number-input-number-input-border-default:#AAAAAA;--sd-number-input-number-input-border-focus:#0075FF;--sd-number-input-number-input-border-danger:#FB4444;--sd-number-input-number-input-border-success:#12B553;--sd-number-input-number-input-border-disabled:#CCCCCC;--sd-number-input-number-input-bg-default:#FFFFFF;--sd-number-input-number-input-bg-disabled:#E1E1E1;--sd-number-input-number-input-text-default:#222222;--sd-number-input-number-input-text-placeholder:#AAAAAA;--sd-number-input-number-input-text-disabled:#888888;--sd-number-input-number-input-hint-color:#555555;--sd-number-input-number-input-hint-typography-font-family: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;--sd-number-input-number-input-hint-typography-font-weight:400;--sd-number-input-number-input-hint-typography-font-size:12px;--sd-number-input-number-input-hint-typography-line-height:20px;--sd-number-input-number-input-hint-typography-text-decoration:none;--sd-number-input-number-input-error-message-color:#E30000;--sd-number-input-number-input-error-message-typography-font-family: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;--sd-number-input-number-input-error-message-typography-font-weight:400;--sd-number-input-number-input-error-message-typography-font-size:12px;--sd-number-input-number-input-error-message-typography-line-height:20px;--sd-number-input-number-input-error-message-typography-text-decoration:none;--sd-number-input-number-input-stepper-sm-size:20px;--sd-number-input-number-input-stepper-md-size:24px;--sd-number-input-number-input-stepper-radius:4px;--sd-number-input-number-input-stepper-bg-default:#EFF6FF;--sd-number-input-number-input-stepper-bg-disabled:#EEEEEE;--sd-number-input-number-input-stepper-icon-default:#0075FF;--sd-number-input-number-input-stepper-icon-disabled:#BBBBBB;--sd-filepicker-filepicker-height:28px;--sd-filepicker-filepicker-padding-x:12px;--sd-filepicker-filepicker-gap:8px;--sd-filepicker-filepicker-radius:4px;--sd-filepicker-filepicker-border-width:1px;--sd-filepicker-filepicker-typography-font-family: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;--sd-filepicker-filepicker-typography-font-weight:400;--sd-filepicker-filepicker-typography-font-size:12px;--sd-filepicker-filepicker-typography-line-height:20px;--sd-filepicker-filepicker-typography-text-decoration:none;--sd-filepicker-filepicker-size-icon:16px;--sd-filepicker-filepicker-contents-gap:4px;--sd-filepicker-filepicker-border-default:#AAAAAA;--sd-filepicker-filepicker-border-disabled:#CCCCCC;--sd-filepicker-filepicker-bg-default:#FFFFFF;--sd-filepicker-filepicker-bg-disabled:#E1E1E1;--sd-filepicker-filepicker-text-default:#222222;--sd-filepicker-filepicker-text-placeholder:#AAAAAA;--sd-filepicker-filepicker-text-disabled:#888888;--sd-filepicker-filepicker-icon-disabled:#BBBBBB;--sd-datepicker-datepicker-sm-height:28px;--sd-datepicker-datepicker-sm-padding-x:12px;--sd-datepicker-datepicker-sm-gap:8px;--sd-datepicker-datepicker-sm-icon:16px;--sd-datepicker-datepicker-sm-typography-font-family: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;--sd-datepicker-datepicker-sm-typography-font-weight:400;--sd-datepicker-datepicker-sm-typography-font-size:12px;--sd-datepicker-datepicker-sm-typography-line-height:20px;--sd-datepicker-datepicker-sm-typography-text-decoration:none;--sd-datepicker-datepicker-sm-radius:4px;--sd-datepicker-datepicker-md-height:36px;--sd-datepicker-datepicker-md-padding-x:16px;--sd-datepicker-datepicker-md-gap:12px;--sd-datepicker-datepicker-md-icon:20px;--sd-datepicker-datepicker-md-typography-font-family: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;--sd-datepicker-datepicker-md-typography-font-weight:400;--sd-datepicker-datepicker-md-typography-font-size:14px;--sd-datepicker-datepicker-md-typography-text-decoration:none;--sd-datepicker-datepicker-md-typography-line-height:24px;--sd-datepicker-datepicker-md-radius:6px;--sd-datepicker-datepicker-border-width:1px;--sd-datepicker-datepicker-border-default:#AAAAAA;--sd-datepicker-datepicker-border-focus:#0075FF;--sd-datepicker-datepicker-border-disabled:#CCCCCC;--sd-datepicker-datepicker-bg-default:#FFFFFF;--sd-datepicker-datepicker-bg-disabled:#E1E1E1;--sd-datepicker-datepicker-icon-default:#888888;--sd-datepicker-datepicker-icon-disabled:#BBBBBB;--sd-datepicker-datepicker-text-default:#222222;--sd-datepicker-datepicker-text-hint:#555555;--sd-datepicker-datepicker-text-disabled:#888888;--sd-datepicker-datepicker-contents-gap:4px;--sd-datepicker-datepicker-hint-typography-font-family: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;--sd-datepicker-datepicker-hint-typography-font-weight:400;--sd-datepicker-datepicker-hint-typography-font-size:12px;--sd-datepicker-datepicker-hint-typography-line-height:20px;--sd-datepicker-datepicker-hint-typography-text-decoration:none;--sd-datepicker-datepicker-calendar-bg:#FFFFFF;--sd-datepicker-datepicker-calendar-padding-x-y:24px;--sd-datepicker-datepicker-calendar-gap:12px;--sd-datepicker-datepicker-calendar-radius:8px;--sd-datepicker-datepicker-calendar-header-gap:8px;--sd-datepicker-datepicker-calendar-header-divider:#E1E1E1;--sd-datepicker-datepicker-calendar-header-typography-font-family: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;--sd-datepicker-datepicker-calendar-header-typography-font-weight:500;--sd-datepicker-datepicker-calendar-header-typography-font-size:14px;--sd-datepicker-datepicker-calendar-header-typography-text-decoration:none;--sd-datepicker-datepicker-calendar-header-typography-line-height:24px;--sd-datepicker-datepicker-calendar-week-typography-font-family: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;--sd-datepicker-datepicker-calendar-week-typography-font-weight:400;--sd-datepicker-datepicker-calendar-week-typography-font-size:12px;--sd-datepicker-datepicker-calendar-week-typography-line-height:20px;--sd-datepicker-datepicker-calendar-week-typography-text-decoration:none;--sd-datepicker-datepicker-calendar-week-color:#888888;--sd-datepicker-datepicker-calendar-grid-row-gap:4px;--sd-datepicker-datepicker-calendar-day-width:40px;--sd-datepicker-datepicker-calendar-day-circle-size:32px;--sd-datepicker-datepicker-calendar-day-circle-radius:9999px;--sd-datepicker-datepicker-calendar-day-default-text:#222222;--sd-datepicker-datepicker-calendar-day-hover-text:#222222;--sd-datepicker-datepicker-calendar-day-hover-border:#0075FF;--sd-datepicker-datepicker-calendar-day-select-bg:#0075FF;--sd-datepicker-datepicker-calendar-day-select-text:#FFFFFF;--sd-datepicker-datepicker-calendar-day-disabled-text:#BBBBBB;--sd-datepicker-datepicker-calendar-day-typography-default-font-family: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;--sd-datepicker-datepicker-calendar-day-typography-default-font-weight:400;--sd-datepicker-datepicker-calendar-day-typography-default-font-size:14px;--sd-datepicker-datepicker-calendar-day-typography-default-text-decoration:none;--sd-datepicker-datepicker-calendar-day-typography-default-line-height:24px;--sd-datepicker-datepicker-calendar-day-typography-bold-font-family: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;--sd-datepicker-datepicker-calendar-day-typography-bold-font-weight:700;--sd-datepicker-datepicker-calendar-day-typography-bold-font-size:14px;--sd-datepicker-datepicker-calendar-day-typography-bold-text-decoration:none;--sd-datepicker-datepicker-calendar-day-typography-bold-line-height:24px;--sd-datepicker-datepicker-calendar-day-dot-size:6px;--sd-datepicker-datepicker-calendar-day-dot-gap:2px;--sd-datepicker-datepicker-calendar-day-dot-padding-y:4px;--sd-datepicker-datepicker-calendar-range-bg:#D9EAFF;--sd-datepicker-datepicker-calendar-range-height:32px;--sd-datepicker-datepicker-calendar-range-panel-gap:24px;--sd-datepicker-datepicker-calendar-range-divider:#E1E1E1;--sd-datepicker-datepicker-calendar-range-width:20px;--sd-datepicker-datepicker-calendar-legend-typography-font-family: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;--sd-datepicker-datepicker-calendar-legend-typography-font-weight:400;--sd-datepicker-datepicker-calendar-legend-typography-font-size:11px;--sd-datepicker-datepicker-calendar-legend-typography-line-height:18px;--sd-datepicker-datepicker-calendar-legend-typography-text-decoration:none;--sd-datepicker-datepicker-calendar-legend-gap:4px;--sd-datepicker-datepicker-calendar-legend-group-gap:12px;--sd-chip-chip-height:24px;--sd-chip-chip-padding-x:8px;--sd-chip-chip-gap:4px;--sd-chip-chip-radius:9999px;--sd-chip-chip-typography-default-font-family: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;--sd-chip-chip-typography-default-font-size:12px;--sd-chip-chip-typography-default-font-weight:500;--sd-chip-chip-typography-default-text-decoration:none;--sd-chip-chip-typography-default-line-height:20px;--sd-chip-chip-typography-focus-font-family: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;--sd-chip-chip-typography-focus-font-size:12px;--sd-chip-chip-typography-focus-font-weight:400;--sd-chip-chip-typography-focus-text-decoration:none;--sd-chip-chip-typography-focus-line-height:20px;--sd-chip-chip-bg-default:#F6F6F6;--sd-chip-chip-bg-error:#FCEFEF;--sd-chip-chip-bg-focus:#FFFFFF;--sd-chip-chip-content-default:#888888;--sd-chip-chip-content-error:#E30000;--sd-chip-chip-content-focus:#555555;--sd-chip-chip-border-focus:#E1E1E1;--sd-chip-chip-border-width:1px;--sd-tag-tag-xs-height:20px;--sd-tag-tag-xs-padding-x:8px;--sd-tag-tag-xs-gap:4px;--sd-tag-tag-xs-icon:12px;--sd-tag-tag-xs-typography-font-family: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;--sd-tag-tag-xs-typography-font-size:11px;--sd-tag-tag-xs-typography-font-weight:500;--sd-tag-tag-xs-typography-line-height:18px;--sd-tag-tag-xs-typography-text-decoration:none;--sd-tag-tag-xs-radius:6px;--sd-tag-tag-sm-height:24px;--sd-tag-tag-sm-padding-x:8px;--sd-tag-tag-sm-gap:4px;--sd-tag-tag-sm-icon:16px;--sd-tag-tag-sm-typography-font-family: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;--sd-tag-tag-sm-typography-font-size:12px;--sd-tag-tag-sm-typography-font-weight:700;--sd-tag-tag-sm-typography-text-decoration:none;--sd-tag-tag-sm-typography-line-height:20px;--sd-tag-tag-sm-radius:6px;--sd-tag-tag-md-height:28px;--sd-tag-tag-md-padding-x:12px;--sd-tag-tag-md-gap:6px;--sd-tag-tag-md-icon:16px;--sd-tag-tag-md-typography-font-family: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;--sd-tag-tag-md-typography-font-size:14px;--sd-tag-tag-md-typography-font-weight:700;--sd-tag-tag-md-typography-line-height:24px;--sd-tag-tag-md-typography-text-decoration:none;--sd-tag-tag-md-radius:8px;--sd-tag-tag-red-content:#FB4444;--sd-tag-tag-red-bg:#FCEFEF;--sd-tag-tag-orange-content:#FF6B00;--sd-tag-tag-orange-bg:#FEF1EA;--sd-tag-tag-yellow-content:#916C0D;--sd-tag-tag-yellow-bg:#FFF7DD;--sd-tag-tag-green-content:#00973C;--sd-tag-tag-green-bg:#E8F9EF;--sd-tag-tag-blue-content:#0075FF;--sd-tag-tag-blue-bg:#E6F1FF;--sd-tag-tag-darkblue-content:#006AC1;--sd-tag-tag-darkblue-bg:#EAF5FE;--sd-tag-tag-indigo-content:#004290;--sd-tag-tag-indigo-bg:#EFF6FF;--sd-tag-tag-grey-content:#737373;--sd-tag-tag-grey-bg:#EEEEEE;--sd-badge-badge-size:6px;--sd-badge-badge-radius:9999px;--sd-badge-badge-red:#FB4444;--sd-badge-badge-orange:#FF6B00;--sd-badge-badge-yellow:#FFC700;--sd-badge-badge-green:#00973C;--sd-badge-badge-blue:#0075FF;--sd-badge-badge-darkblue:#006AC1;--sd-badge-badge-indigo:#004290;--sd-badge-badge-grey:#737373;--sd-tooltip-tooltip-radius:6px;--sd-tooltip-tooltip-padding-y:12px;--sd-tooltip-tooltip-padding-x:16px;--sd-tooltip-tooltip-gap:12px;--sd-tooltip-tooltip-arrow-width:16px;--sd-tooltip-tooltip-arrow-height:12px;--sd-tooltip-tooltip-default-bg:#07284A;--sd-tooltip-tooltip-default-content:#FFFFFF;--sd-tooltip-tooltip-default-typography-font-family: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;--sd-tooltip-tooltip-default-typography-font-size:12px;--sd-tooltip-tooltip-default-typography-font-weight:500;--sd-tooltip-tooltip-default-typography-line-height:20px;--sd-tooltip-tooltip-default-typography-text-decoration:none;--sd-tooltip-tooltip-danger-bg:#FCEFEF;--sd-tooltip-tooltip-danger-content:#FB4444;--sd-tooltip-tooltip-danger-typography-font-family: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;--sd-tooltip-tooltip-danger-typography-font-size:12px;--sd-tooltip-tooltip-danger-typography-font-weight:700;--sd-tooltip-tooltip-danger-typography-text-decoration:none;--sd-tooltip-tooltip-danger-typography-line-height:20px;--sd-tooltip-tooltip-warning-bg:#FEF1EA;--sd-tooltip-tooltip-warning-content:#FF6B00;--sd-tooltip-tooltip-warning-typography-font-family: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;--sd-tooltip-tooltip-warning-typography-font-size:12px;--sd-tooltip-tooltip-warning-typography-font-weight:700;--sd-tooltip-tooltip-warning-typography-text-decoration:none;--sd-tooltip-tooltip-warning-typography-line-height:20px;--sd-tooltip-tooltip-accent-bg:#E6F1FF;--sd-tooltip-tooltip-accent-content:#0075FF;--sd-tooltip-tooltip-accent-typography-font-family: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;--sd-tooltip-tooltip-accent-typography-font-size:12px;--sd-tooltip-tooltip-accent-typography-font-weight:700;--sd-tooltip-tooltip-accent-typography-text-decoration:none;--sd-tooltip-tooltip-accent-typography-line-height:20px;--sd-popover-popover-radius:6px;--sd-popover-popover-padding-x:20px;--sd-popover-popover-padding-y:16px;--sd-popover-popover-gap:12px;--sd-popover-popover-contents-gap:4px;--sd-popover-popover-arrow-width:16px;--sd-popover-popover-arrow-height:12px;--sd-popover-popover-bg:#07284A;--sd-popover-popover-title-color:#FFFFFF;--sd-popover-popover-title-typography-font-family: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;--sd-popover-popover-title-typography-font-size:14px;--sd-popover-popover-title-typography-font-weight:700;--sd-popover-popover-title-typography-line-height:24px;--sd-popover-popover-title-typography-text-decoration:none;--sd-popover-popover-description-color:#FFFFFF;--sd-popover-popover-description-typography-font-family: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;--sd-popover-popover-description-typography-font-size:12px;--sd-popover-popover-description-typography-font-weight:500;--sd-popover-popover-description-typography-line-height:20px;--sd-popover-popover-description-typography-text-decoration:none;--sd-popover-popover-sub-action-color:#D8D8D8;--sd-popover-popover-sub-action-typography-font-family: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;--sd-popover-popover-sub-action-typography-font-size:12px;--sd-popover-popover-sub-action-typography-font-weight:700;--sd-popover-popover-sub-action-typography-text-decoration:none;--sd-popover-popover-sub-action-typography-line-height:20px;--sd-toast-toast-radius:8px;--sd-toast-toast-padding-x:24px;--sd-toast-toast-padding-y:12px;--sd-toast-toast-gap:16px;--sd-toast-toast-icon:16px;--sd-toast-toast-typography-default-font-family: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;--sd-toast-toast-typography-default-font-size:14px;--sd-toast-toast-typography-default-font-weight:500;--sd-toast-toast-typography-default-line-height:24px;--sd-toast-toast-typography-default-text-decoration:none;--sd-toast-toast-typography-link-font-family: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;--sd-toast-toast-typography-link-font-size:14px;--sd-toast-toast-typography-link-font-weight:700;--sd-toast-toast-typography-link-line-height:24px;--sd-toast-toast-typography-link-text-decoration:underline;--sd-toast-toast-default-bg:#07284A;--sd-toast-toast-default-content:#FFFFFF;--sd-toast-toast-danger-bg:#FB4444;--sd-toast-toast-danger-content:#FFFFFF;--sd-toast-toast-caution-bg:#FFC700;--sd-toast-toast-caution-content:#222222;--sd-toast-toast-complete-bg:#00973C;--sd-toast-toast-complete-content:#FFFFFF;--sd-toast-toast-accent-bg:#005CC9;--sd-toast-toast-accent-content:#FFFFFF;--sd-toast-toast-info-bg:#E6F1FF;--sd-toast-toast-info-icon:#0075FF;--sd-toast-toast-info-text:#222222;--sd-toast-toast-info-text-link:#555555;--sd-modal-modal-radius:8px;--sd-modal-modal-confirm-padding-x:32px;--sd-modal-modal-confirm-padding-y:40px;--sd-modal-modal-confirm-gap:40px;--sd-modal-modal-confirm-body-gap:20px;--sd-modal-modal-confirm-title-gap:12px;--sd-modal-modal-confirm-title-color:#222222;--sd-modal-modal-confirm-title-icon:32px;--sd-modal-modal-confirm-title-typography-font-family: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;--sd-modal-modal-confirm-title-typography-font-weight:700;--sd-modal-modal-confirm-title-typography-font-size:18px;--sd-modal-modal-confirm-title-typography-line-height:30px;--sd-modal-modal-confirm-title-typography-text-decoration:none;--sd-modal-modal-confirm-button-gap:8px;--sd-modal-modal-confirm-message-color:#222222;--sd-modal-modal-confirm-message-typography-font-family: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;--sd-modal-modal-confirm-message-typography-font-size:12px;--sd-modal-modal-confirm-message-typography-font-weight:400;--sd-modal-modal-confirm-message-typography-line-height:20px;--sd-modal-modal-confirm-message-typography-text-decoration:none;--sd-modal-modal-confirm-positive-icon:#0075FF;--sd-modal-modal-confirm-negative-icon:#E30000;--sd-modal-modal-bg:#FFFFFF;--sd-modal-modal-action-header-padding-x:24px;--sd-modal-modal-action-header-padding-y:20px;--sd-modal-modal-action-header-gap:12px;--sd-modal-modal-action-title-color:#033F59;--sd-modal-modal-action-title-typography-font-family: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;--sd-modal-modal-action-title-typography-font-weight:700;--sd-modal-modal-action-title-typography-font-size:16px;--sd-modal-modal-action-title-typography-text-decoration:none;--sd-modal-modal-action-title-typography-line-height:26px;--sd-modal-modal-action-body-padding-x:20px;--sd-modal-modal-action-body-padding-bottom:20px;--sd-modal-modal-action-footer-padding-x:20px;--sd-modal-modal-action-footer-padding-y:8px;--sd-modal-modal-action-footer-gap:16px;--sd-modal-modal-action-footer-bg:#F6F6F6;--sd-modal-modal-action-footer-border:#E1E1E1;--sd-modal-modal-loading-width:520px;--sd-modal-modal-loading-height:320px;--sd-modal-modal-loading-gap:20px;--sd-modal-modal-loading-content:80px;--sd-modal-modal-loading-message-typography-font-family: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;--sd-modal-modal-loading-message-typography-font-size:12px;--sd-modal-modal-loading-message-typography-font-weight:400;--sd-modal-modal-loading-message-typography-line-height:20px;--sd-modal-modal-loading-message-typography-text-decoration:none;--sd-modal-modal-loading-message-color:#888888;--sd-popup-popup-header-bg-default:#07284A;--sd-popup-popup-header-bg-inverse:#FFFFFF;--sd-popup-popup-header-title-default:#FFFFFF;--sd-popup-popup-header-title-inverse:#004290;--sd-popup-popup-header-typography-font-family: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;--sd-popup-popup-header-typography-font-weight:700;--sd-popup-popup-header-typography-font-size:18px;--sd-popup-popup-header-typography-line-height:30px;--sd-popup-popup-header-typography-text-decoration:none;--sd-popup-popup-footer-bg:#FFFFFF;--sd-popup-popup-footer-padding-x:20px;--sd-popup-popup-footer-padding-y:8px;--sd-popup-popup-footer-gap:16px;--sd-popup-popup-bg:#EEEEEE;--sd-spinner-spinner-size:80px;--sd-spinner-spinner-color-track:#EEEEEE;--sd-spinner-spinner-color-arc:#2D8DFF;--sd-guide-guide-gap:4px;--sd-guide-guide-button-height:28px;--sd-guide-guide-button-padding-x:12px;--sd-guide-guide-button-radius:9999px;--sd-guide-guide-button-gap:6px;--sd-guide-guide-button-typography-font-family: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;--sd-guide-guide-button-typography-font-size:12px;--sd-guide-guide-button-typography-font-weight:500;--sd-guide-guide-button-typography-text-decoration:none;--sd-guide-guide-button-typography-line-height:20px;--sd-guide-guide-button-icon-size:16px;--sd-guide-guide-button-icon-default:#00973C;--sd-guide-guide-button-icon-active:#FFFFFF;--sd-guide-guide-button-border-width:1px;--sd-guide-guide-button-border-default:#E1E1E1;--sd-guide-guide-button-bg-default:#FFFFFF;--sd-guide-guide-button-bg-tip:#00973C;--sd-guide-guide-button-bg-notion:#1F8AE1;--sd-guide-guide-button-text-default:#222222;--sd-guide-guide-button-text-active:#FFFFFF;--sd-guide-guide-contents-padding-x:24px;--sd-guide-guide-contents-padding-y:20px;--sd-guide-guide-contents-gap:12px;--sd-guide-guide-contents-title-gap:8px;--sd-guide-guide-contents-row-gap:8px;--sd-guide-guide-contents-body-gap:2px;--sd-guide-guide-contents-typography-title-font-family: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;--sd-guide-guide-contents-typography-title-font-weight:700;--sd-guide-guide-contents-typography-title-font-size:16px;--sd-guide-guide-contents-typography-title-text-decoration:none;--sd-guide-guide-contents-typography-title-line-height:26px;--sd-guide-guide-contents-typography-body-font-family: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;--sd-guide-guide-contents-typography-body-font-weight:400;--sd-guide-guide-contents-typography-body-font-size:12px;--sd-guide-guide-contents-typography-body-line-height:20px;--sd-guide-guide-contents-typography-body-text-decoration:none;--sd-guide-guide-contents-typography-color:#222222;--sd-guide-guide-contents-icon:#00973C;--sd-guide-guide-contents-radius:8px;--sd-guide-guide-contents-depth-padding-left:32px;--sd-progress-progress-linear-height:20px;--sd-progress-progress-linear-radius:9999px;--sd-progress-progress-linear-gap:12px;--sd-progress-progress-linear-typography-font-family: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;--sd-progress-progress-linear-typography-font-size:12px;--sd-progress-progress-linear-typography-font-weight:700;--sd-progress-progress-linear-typography-text-decoration:none;--sd-progress-progress-linear-typography-line-height:20px;--sd-progress-progress-circular-size:80px;--sd-progress-progress-circular-gap:8px;--sd-progress-progress-circular-typography-font-family: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;--sd-progress-progress-circular-typography-font-weight:700;--sd-progress-progress-circular-typography-font-size:16px;--sd-progress-progress-circular-typography-text-decoration:none;--sd-progress-progress-circular-typography-line-height:26px;--sd-progress-progress-label-typography-font-family: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;--sd-progress-progress-label-typography-font-size:12px;--sd-progress-progress-label-typography-font-weight:400;--sd-progress-progress-label-typography-line-height:20px;--sd-progress-progress-label-typography-text-decoration:none;--sd-progress-progress-color-track:#EEEEEE;--sd-progress-progress-color-label:#555555;--sd-progress-progress-active-color:#2D8DFF;--sd-progress-progress-success-color:#12B553;--sd-progress-progress-error-color:#FB4444;--sd-progress-progress-bar-text:#FFFFFF;--sd-table-table-header-height:36px;--sd-table-table-header-padding-x:16px;--sd-table-table-header-gap:4px;--sd-table-table-header-bg:#F5FAFF;--sd-table-table-header-typography-font-family: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;--sd-table-table-header-typography-font-weight:500;--sd-table-table-header-typography-font-size:12px;--sd-table-table-header-typography-line-height:20px;--sd-table-table-header-typography-text-decoration:none;--sd-table-table-header-resizing-bar-color:#CCCCCC;--sd-table-table-header-resizing-bar-height:16px;--sd-table-table-body-default-height:44px;--sd-table-table-body-default-padding-y:8px;--sd-table-table-body-dense-height:32px;--sd-table-table-body-dense-padding-y:6px;--sd-table-table-body-padding-x:16px;--sd-table-table-body-frame-padding:8px;--sd-table-table-body-typography-font-family: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;--sd-table-table-body-typography-font-weight:400;--sd-table-table-body-typography-font-size:12px;--sd-table-table-body-typography-line-height:20px;--sd-table-table-body-typography-text-decoration:none;--sd-table-table-border-color:#E1E1E1;--sd-table-table-border-width:1px;--sd-table-table-content-gap:8px;--sd-table-table-bar-section-gap:12px;--sd-table-table-bar-divider-height:20px;--sd-table-table-bar-height:44px;--sd-table-table-bar-count-total:#066D9B;--sd-table-table-bar-count-null:#888888;--sd-table-table-radius:8px;--sd-table-table-key-value-body-padding:8px;--sd-table-table-key-value-height:44px;--sd-table-table-key-value-search-padding-x:32px;--sd-table-table-key-value-search-bg:#F9F9F9;--sd-table-table-separator-color:#EEEEEE;--sd-table-table-separator--width:6px;--sd-pagination-pagination-height:24px;--sd-pagination-pagination-padding-x:6px;--sd-pagination-pagination-radius:6px;--sd-pagination-pagination-gap:12px;--sd-pagination-pagination-move-gap:4px;--sd-pagination-pagination-icon:12px;--sd-pagination-pagination-typography-default-font-family: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;--sd-pagination-pagination-typography-default-font-size:12px;--sd-pagination-pagination-typography-default-font-weight:500;--sd-pagination-pagination-typography-default-text-decoration:none;--sd-pagination-pagination-typography-default-line-height:20px;--sd-pagination-pagination-typography-default-selected-font-family: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;--sd-pagination-pagination-typography-default-selected-font-weight:700;--sd-pagination-pagination-typography-default-selected-font-size:12px;--sd-pagination-pagination-typography-default-selected-line-height:20px;--sd-pagination-pagination-typography-default-selected-text-decoration:none;--sd-pagination-pagination-typography-selected-font-family: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;--sd-pagination-pagination-typography-selected-font-weight:700;--sd-pagination-pagination-typography-selected-font-size:12px;--sd-pagination-pagination-typography-selected-line-height:20px;--sd-pagination-pagination-typography-selected-text-decoration:none;--sd-pagination-pagination-typography-selected-selected-font-family: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;--sd-pagination-pagination-typography-selected-selected-font-weight:700;--sd-pagination-pagination-typography-selected-selected-font-size:12px;--sd-pagination-pagination-typography-selected-selected-line-height:20px;--sd-pagination-pagination-typography-selected-selected-text-decoration:none;--sd-pagination-pagination-item-bg-hover:#EEEEEE;--sd-pagination-pagination-item-bg-selected:#E6F1FF;--sd-pagination-pagination-item-content-default:#555555;--sd-pagination-pagination-item-content-hover:#004290;--sd-pagination-pagination-item-content-selected:#004290;--sd-tab-tab-main-lg-height:44px;--sd-tab-tab-main-lg-padding-x:32px;--sd-tab-tab-main-md-height:36px;--sd-tab-tab-main-md-padding-x:24px;--sd-tab-tab-main-gap:8px;--sd-tab-tab-main-container-gap:4px;--sd-tab-tab-main-radius:6px;--sd-tab-tab-main-border-width:1px;--sd-tab-tab-main-selected-bg:#FFFFFF;--sd-tab-tab-main-selected-text:#0075FF;--sd-tab-tab-main-selected-border:#0075FF;--sd-tab-tab-main-selected-typography-font-family: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;--sd-tab-tab-main-selected-typography-font-weight:700;--sd-tab-tab-main-selected-typography-font-size:12px;--sd-tab-tab-main-selected-typography-line-height:20px;--sd-tab-tab-main-selected-typography-text-decoration:none;--sd-tab-tab-main-default-bg:#F6F6F6;--sd-tab-tab-main-default-text:#888888;--sd-tab-tab-main-default-border:#CCCCCC;--sd-tab-tab-main-default-typography-font-family: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;--sd-tab-tab-main-default-typography-font-weight:400;--sd-tab-tab-main-default-typography-font-size:12px;--sd-tab-tab-main-default-typography-line-height:20px;--sd-tab-tab-main-default-typography-text-decoration:none;--sd-tab-tab-sub-selected-text:#0075FF;--sd-tab-tab-sub-selected-line:#0075FF;--sd-tab-tab-sub-selected-typography-font-family: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;--sd-tab-tab-sub-selected-typography-font-weight:700;--sd-tab-tab-sub-selected-typography-font-size:12px;--sd-tab-tab-sub-selected-typography-line-height:20px;--sd-tab-tab-sub-selected-typography-text-decoration:none;--sd-tab-tab-sub-default-text:#222222;--sd-tab-tab-sub-default-typography-font-family: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;--sd-tab-tab-sub-default-typography-font-weight:400;--sd-tab-tab-sub-default-typography-font-size:12px;--sd-tab-tab-sub-default-typography-line-height:20px;--sd-tab-tab-sub-default-typography-text-decoration:none;--sd-tab-tab-sub-border-width:1px;--sd-tab-tab-sub-gap:24px;--sd-tab-tab-sub-content-gap:4px;--sd-callout-callout-radius:8px;--sd-callout-callout-border-width:1px;--sd-callout-callout-body-gap:2px;--sd-callout-callout-body-typography-font-family: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;--sd-callout-callout-body-typography-font-size:12px;--sd-callout-callout-body-typography-font-weight:400;--sd-callout-callout-body-typography-line-height:20px;--sd-callout-callout-body-typography-text-decoration:none;--sd-callout-callout-body-padding-x:12px;--sd-callout-callout-body-padding-y:8px;--sd-callout-callout-default-bg:#F9F9F9;--sd-callout-callout-default-border:#E1E1E1;--sd-callout-callout-default-content:#555555;--sd-callout-callout-danger-bg:#FCEFEF;--sd-callout-callout-danger-border:#FFB5B5;--sd-callout-callout-danger-content:#222222;--sd-callout-callout-danger-title-bg:#FB4444;--sd-callout-callout-danger-title-padding-x:24px;--sd-callout-callout-danger-title-gap:2px;--sd-callout-callout-danger-title-typography-font-family: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;--sd-callout-callout-danger-title-typography-font-weight:700;--sd-callout-callout-danger-title-typography-font-size:16px;--sd-callout-callout-danger-title-typography-text-decoration:none;--sd-callout-callout-danger-title-typography-line-height:26px;--sd-callout-callout-danger-title-color:#FFFFFF;--sd-callout-callout-danger-title-icon:24px}.bg-primary{background-color:var(--color-primary, #051d36)}.bg-secondary{background-color:var(--color-secondary, #555555)}.bg-accent{background-color:var(--color-accent, #9c27b0)}.bg-positive{background-color:var(--color-positive, #0075ff)}.bg-negative{background-color:var(--color-negative, #e30000)}.bg-info{background-color:var(--color-info, #00cd52)}.bg-warning{background-color:var(--color-warning, #f2c037)}.bg-red_99{background-color:var(--color-red_99, #220000)}.bg-red_95{background-color:var(--color-red_95, #440000)}.bg-red_90{background-color:var(--color-red_90, #5e0000)}.bg-red_85{background-color:var(--color-red_85, #820000)}.bg-red_80{background-color:var(--color-red_80, #ad0000)}.bg-red_75{background-color:var(--color-red_75, #e30000)}.bg-red_70{background-color:var(--color-red_70, #fb4444)}.bg-red_60{background-color:var(--color-red_60, #ff7c7c)}.bg-red_45{background-color:var(--color-red_45, #ffb5b5)}.bg-red_30{background-color:var(--color-red_30, #ffd3d3)}.bg-red_20{background-color:var(--color-red_20, #fce6e6)}.bg-red_15{background-color:var(--color-red_15, #fcefef)}.bg-caution_bg{background-color:var(--color-caution_bg, #fef1f1)}.bg-caution_icon{background-color:var(--color-caution_icon, #fd9595)}.bg-orange_99{background-color:var(--color-orange_99, #2f1100)}.bg-orange_95{background-color:var(--color-orange_95, #4d1b00)}.bg-orange_90{background-color:var(--color-orange_90, #752a00)}.bg-orange_85{background-color:var(--color-orange_85, #9b3700)}.bg-orange_75{background-color:var(--color-orange_75, #ce4900)}.bg-orange_65{background-color:var(--color-orange_65, #ff6b00)}.bg-orange_60{background-color:var(--color-orange_60, #ff7f22)}.bg-orange_55{background-color:var(--color-orange_55, #ffa452)}.bg-orange_45{background-color:var(--color-orange_45, #ffbc81)}.bg-orange_35{background-color:var(--color-orange_35, #ffd5af)}.bg-orange_20{background-color:var(--color-orange_20, #ffead7)}.bg-orange_10{background-color:var(--color-orange_10, #fef1ea)}.bg-header_alert{background-color:var(--color-header_alert, #ff7a00)}.bg-yellow_95{background-color:var(--color-yellow_95, #322700)}.bg-yellow_90{background-color:var(--color-yellow_90, #453702)}.bg-yellow_80{background-color:var(--color-yellow_80, #6c5602)}.bg-yellow_70{background-color:var(--color-yellow_70, #9c7a00)}.bg-yellow_60{background-color:var(--color-yellow_60, #c49900)}.bg-yellow_50{background-color:var(--color-yellow_50, #ebb800)}.bg-yellow_45{background-color:var(--color-yellow_45, #ffc700)}.bg-yellow_40{background-color:var(--color-yellow_40, #ffd643)}.bg-yellow_30{background-color:var(--color-yellow_30, #fee17c)}.bg-yellow_25{background-color:var(--color-yellow_25, #ffe99e)}.bg-yellow_20{background-color:var(--color-yellow_20, #fef1c4)}.bg-yellow_10{background-color:var(--color-yellow_10, #fff7dd)}.bg-olive_95{background-color:var(--color-olive_95, #2c2c00)}.bg-olive_90{background-color:var(--color-olive_90, #454500)}.bg-olive_80{background-color:var(--color-olive_80, #636300)}.bg-olive_70{background-color:var(--color-olive_70, #838300)}.bg-olive_65{background-color:var(--color-olive_65, #a5a500)}.bg-olive_55{background-color:var(--color-olive_55, #c7c700)}.bg-olive_45{background-color:var(--color-olive_45, #dddd12)}.bg-olive_30{background-color:var(--color-olive_30, #eeee37)}.bg-olive_20{background-color:var(--color-olive_20, #f6f65f)}.bg-olive_15{background-color:var(--color-olive_15, #fafaa1)}.bg-olive_10{background-color:var(--color-olive_10, #fbfbbf)}.bg-olive_05{background-color:var(--color-olive_05, #fefed9)}.bg-green_99{background-color:var(--color-green_99, #001d0b)}.bg-green_95{background-color:var(--color-green_95, #003013)}.bg-green_90{background-color:var(--color-green_90, #00461c)}.bg-green_85{background-color:var(--color-green_85, #006629)}.bg-green_80{background-color:var(--color-green_80, #007b31)}.bg-green_75{background-color:var(--color-green_75, #00973c)}.bg-green_70{background-color:var(--color-green_70, #12b553)}.bg-green_65{background-color:var(--color-green_65, #2bce6c)}.bg-green_55{background-color:var(--color-green_55, #6de39c)}.bg-green_45{background-color:var(--color-green_45, #acf4c9)}.bg-green_25{background-color:var(--color-green_25, #d4fae3)}.bg-green_15{background-color:var(--color-green_15, #e8f9ef)}.bg-steelblue_99{background-color:var(--color-steelblue_99, #021a25)}.bg-steelblue_95{background-color:var(--color-steelblue_95, #02212f)}.bg-steelblue_90{background-color:var(--color-steelblue_90, #032d40)}.bg-steelblue_85{background-color:var(--color-steelblue_85, #033f59)}.bg-steelblue_80{background-color:var(--color-steelblue_80, #06587d)}.bg-steelblue_75{background-color:var(--color-steelblue_75, #066d9b)}.bg-steelblue_70{background-color:var(--color-steelblue_70, #128fc7)}.bg-steelblue_65{background-color:var(--color-steelblue_65, #229fd7)}.bg-steelblue_60{background-color:var(--color-steelblue_60, #50bff0)}.bg-steelblue_45{background-color:var(--color-steelblue_45, #a4e2fd)}.bg-steelblue_25{background-color:var(--color-steelblue_25, #d9f2fd)}.bg-steelblue_10{background-color:var(--color-steelblue_10, #ecf8fd)}.bg-oceanblue_99{background-color:var(--color-oceanblue_99, #011428)}.bg-oceanblue_95{background-color:var(--color-oceanblue_95, #03172d)}.bg-oceanblue_90{background-color:var(--color-oceanblue_90, #051d36)}.bg-oceanblue_85{background-color:var(--color-oceanblue_85, #07284a)}.bg-oceanblue_80{background-color:var(--color-oceanblue_80, #004177)}.bg-oceanblue_75{background-color:var(--color-oceanblue_75, #025497)}.bg-oceanblue_70{background-color:var(--color-oceanblue_70, #006ac1)}.bg-oceanblue_65{background-color:var(--color-oceanblue_65, #1f8ae1)}.bg-oceanblue_60{background-color:var(--color-oceanblue_60, #5cb0f3)}.bg-oceanblue_50{background-color:var(--color-oceanblue_50, #9cd1fc)}.bg-oceanblue_25{background-color:var(--color-oceanblue_25, #d5ebfe)}.bg-oceanblue_15{background-color:var(--color-oceanblue_15, #eaf5fe)}.bg-brilliantblue_99{background-color:var(--color-brilliantblue_99, #001226)}.bg-brilliantblue_95{background-color:var(--color-brilliantblue_95, #001b39)}.bg-brilliantblue_90{background-color:var(--color-brilliantblue_90, #002b5e)}.bg-brilliantblue_85{background-color:var(--color-brilliantblue_85, #004290)}.bg-brilliantblue_80{background-color:var(--color-brilliantblue_80, #005cc9)}.bg-brilliantblue_75{background-color:var(--color-brilliantblue_75, #0075ff)}.bg-brilliantblue_70{background-color:var(--color-brilliantblue_70, #2d8dff)}.bg-brilliantblue_60{background-color:var(--color-brilliantblue_60, #64abff)}.bg-brilliantblue_50{background-color:var(--color-brilliantblue_50, #93c4ff)}.bg-brilliantblue_40{background-color:var(--color-brilliantblue_40, #bbdaff)}.bg-brilliantblue_25{background-color:var(--color-brilliantblue_25, #d9eaff)}.bg-brilliantblue_20{background-color:var(--color-brilliantblue_20, #e6f1ff)}.bg-brilliantblue_10{background-color:var(--color-brilliantblue_10, #eff6ff)}.bg-brilliantblue_05{background-color:var(--color-brilliantblue_05, #f5faff)}.bg-grey_95{background-color:var(--color-grey_95, #222222)}.bg-grey_90{background-color:var(--color-grey_90, #333333)}.bg-grey_85{background-color:var(--color-grey_85, #444444)}.bg-grey_80{background-color:var(--color-grey_80, #555555)}.bg-grey_70{background-color:var(--color-grey_70, #737373)}.bg-grey_65{background-color:var(--color-grey_65, #888888)}.bg-grey_60{background-color:var(--color-grey_60, #999999)}.bg-grey_55{background-color:var(--color-grey_55, #aaaaaa)}.bg-grey_50{background-color:var(--color-grey_50, #bbbbbb)}.bg-grey_45{background-color:var(--color-grey_45, #cccccc)}.bg-grey_35{background-color:var(--color-grey_35, #d8d8d8)}.bg-grey_30{background-color:var(--color-grey_30, #e1e1e1)}.bg-grey_25{background-color:var(--color-grey_25, #e5e5e5)}.bg-grey_20{background-color:var(--color-grey_20, #eeeeee)}.bg-grey_10{background-color:var(--color-grey_10, #f6f6f6)}.bg-grey_05{background-color:var(--color-grey_05, #f9f9f9)}.bg-white{background-color:var(--color-white, #ffffff)}.bg-black{background-color:var(--color-black, #000000)}.text-primary{color:var(--color-primary, #051d36)}.text-secondary{color:var(--color-secondary, #555555)}.text-accent{color:var(--color-accent, #9c27b0)}.text-positive{color:var(--color-positive, #0075ff)}.text-negative{color:var(--color-negative, #e30000)}.text-info{color:var(--color-info, #00cd52)}.text-warning{color:var(--color-warning, #f2c037)}.text-red_99{color:var(--color-red_99, #220000)}.text-red_95{color:var(--color-red_95, #440000)}.text-red_90{color:var(--color-red_90, #5e0000)}.text-red_85{color:var(--color-red_85, #820000)}.text-red_80{color:var(--color-red_80, #ad0000)}.text-red_75{color:var(--color-red_75, #e30000)}.text-red_70{color:var(--color-red_70, #fb4444)}.text-red_60{color:var(--color-red_60, #ff7c7c)}.text-red_45{color:var(--color-red_45, #ffb5b5)}.text-red_30{color:var(--color-red_30, #ffd3d3)}.text-red_20{color:var(--color-red_20, #fce6e6)}.text-red_15{color:var(--color-red_15, #fcefef)}.text-caution_bg{color:var(--color-caution_bg, #fef1f1)}.text-caution_icon{color:var(--color-caution_icon, #fd9595)}.text-orange_99{color:var(--color-orange_99, #2f1100)}.text-orange_95{color:var(--color-orange_95, #4d1b00)}.text-orange_90{color:var(--color-orange_90, #752a00)}.text-orange_85{color:var(--color-orange_85, #9b3700)}.text-orange_75{color:var(--color-orange_75, #ce4900)}.text-orange_65{color:var(--color-orange_65, #ff6b00)}.text-orange_60{color:var(--color-orange_60, #ff7f22)}.text-orange_55{color:var(--color-orange_55, #ffa452)}.text-orange_45{color:var(--color-orange_45, #ffbc81)}.text-orange_35{color:var(--color-orange_35, #ffd5af)}.text-orange_20{color:var(--color-orange_20, #ffead7)}.text-orange_10{color:var(--color-orange_10, #fef1ea)}.text-header_alert{color:var(--color-header_alert, #ff7a00)}.text-yellow_95{color:var(--color-yellow_95, #322700)}.text-yellow_90{color:var(--color-yellow_90, #453702)}.text-yellow_80{color:var(--color-yellow_80, #6c5602)}.text-yellow_70{color:var(--color-yellow_70, #9c7a00)}.text-yellow_60{color:var(--color-yellow_60, #c49900)}.text-yellow_50{color:var(--color-yellow_50, #ebb800)}.text-yellow_45{color:var(--color-yellow_45, #ffc700)}.text-yellow_40{color:var(--color-yellow_40, #ffd643)}.text-yellow_30{color:var(--color-yellow_30, #fee17c)}.text-yellow_25{color:var(--color-yellow_25, #ffe99e)}.text-yellow_20{color:var(--color-yellow_20, #fef1c4)}.text-yellow_10{color:var(--color-yellow_10, #fff7dd)}.text-olive_95{color:var(--color-olive_95, #2c2c00)}.text-olive_90{color:var(--color-olive_90, #454500)}.text-olive_80{color:var(--color-olive_80, #636300)}.text-olive_70{color:var(--color-olive_70, #838300)}.text-olive_65{color:var(--color-olive_65, #a5a500)}.text-olive_55{color:var(--color-olive_55, #c7c700)}.text-olive_45{color:var(--color-olive_45, #dddd12)}.text-olive_30{color:var(--color-olive_30, #eeee37)}.text-olive_20{color:var(--color-olive_20, #f6f65f)}.text-olive_15{color:var(--color-olive_15, #fafaa1)}.text-olive_10{color:var(--color-olive_10, #fbfbbf)}.text-olive_05{color:var(--color-olive_05, #fefed9)}.text-green_99{color:var(--color-green_99, #001d0b)}.text-green_95{color:var(--color-green_95, #003013)}.text-green_90{color:var(--color-green_90, #00461c)}.text-green_85{color:var(--color-green_85, #006629)}.text-green_80{color:var(--color-green_80, #007b31)}.text-green_75{color:var(--color-green_75, #00973c)}.text-green_70{color:var(--color-green_70, #12b553)}.text-green_65{color:var(--color-green_65, #2bce6c)}.text-green_55{color:var(--color-green_55, #6de39c)}.text-green_45{color:var(--color-green_45, #acf4c9)}.text-green_25{color:var(--color-green_25, #d4fae3)}.text-green_15{color:var(--color-green_15, #e8f9ef)}.text-steelblue_99{color:var(--color-steelblue_99, #021a25)}.text-steelblue_95{color:var(--color-steelblue_95, #02212f)}.text-steelblue_90{color:var(--color-steelblue_90, #032d40)}.text-steelblue_85{color:var(--color-steelblue_85, #033f59)}.text-steelblue_80{color:var(--color-steelblue_80, #06587d)}.text-steelblue_75{color:var(--color-steelblue_75, #066d9b)}.text-steelblue_70{color:var(--color-steelblue_70, #128fc7)}.text-steelblue_65{color:var(--color-steelblue_65, #229fd7)}.text-steelblue_60{color:var(--color-steelblue_60, #50bff0)}.text-steelblue_45{color:var(--color-steelblue_45, #a4e2fd)}.text-steelblue_25{color:var(--color-steelblue_25, #d9f2fd)}.text-steelblue_10{color:var(--color-steelblue_10, #ecf8fd)}.text-oceanblue_99{color:var(--color-oceanblue_99, #011428)}.text-oceanblue_95{color:var(--color-oceanblue_95, #03172d)}.text-oceanblue_90{color:var(--color-oceanblue_90, #051d36)}.text-oceanblue_85{color:var(--color-oceanblue_85, #07284a)}.text-oceanblue_80{color:var(--color-oceanblue_80, #004177)}.text-oceanblue_75{color:var(--color-oceanblue_75, #025497)}.text-oceanblue_70{color:var(--color-oceanblue_70, #006ac1)}.text-oceanblue_65{color:var(--color-oceanblue_65, #1f8ae1)}.text-oceanblue_60{color:var(--color-oceanblue_60, #5cb0f3)}.text-oceanblue_50{color:var(--color-oceanblue_50, #9cd1fc)}.text-oceanblue_25{color:var(--color-oceanblue_25, #d5ebfe)}.text-oceanblue_15{color:var(--color-oceanblue_15, #eaf5fe)}.text-brilliantblue_99{color:var(--color-brilliantblue_99, #001226)}.text-brilliantblue_95{color:var(--color-brilliantblue_95, #001b39)}.text-brilliantblue_90{color:var(--color-brilliantblue_90, #002b5e)}.text-brilliantblue_85{color:var(--color-brilliantblue_85, #004290)}.text-brilliantblue_80{color:var(--color-brilliantblue_80, #005cc9)}.text-brilliantblue_75{color:var(--color-brilliantblue_75, #0075ff)}.text-brilliantblue_70{color:var(--color-brilliantblue_70, #2d8dff)}.text-brilliantblue_60{color:var(--color-brilliantblue_60, #64abff)}.text-brilliantblue_50{color:var(--color-brilliantblue_50, #93c4ff)}.text-brilliantblue_40{color:var(--color-brilliantblue_40, #bbdaff)}.text-brilliantblue_25{color:var(--color-brilliantblue_25, #d9eaff)}.text-brilliantblue_20{color:var(--color-brilliantblue_20, #e6f1ff)}.text-brilliantblue_10{color:var(--color-brilliantblue_10, #eff6ff)}.text-brilliantblue_05{color:var(--color-brilliantblue_05, #f5faff)}.text-grey_95{color:var(--color-grey_95, #222222)}.text-grey_90{color:var(--color-grey_90, #333333)}.text-grey_85{color:var(--color-grey_85, #444444)}.text-grey_80{color:var(--color-grey_80, #555555)}.text-grey_70{color:var(--color-grey_70, #737373)}.text-grey_65{color:var(--color-grey_65, #888888)}.text-grey_60{color:var(--color-grey_60, #999999)}.text-grey_55{color:var(--color-grey_55, #aaaaaa)}.text-grey_50{color:var(--color-grey_50, #bbbbbb)}.text-grey_45{color:var(--color-grey_45, #cccccc)}.text-grey_35{color:var(--color-grey_35, #d8d8d8)}.text-grey_30{color:var(--color-grey_30, #e1e1e1)}.text-grey_25{color:var(--color-grey_25, #e5e5e5)}.text-grey_20{color:var(--color-grey_20, #eeeeee)}.text-grey_10{color:var(--color-grey_10, #f6f6f6)}.text-grey_05{color:var(--color-grey_05, #f9f9f9)}.text-white{color:var(--color-white, #ffffff)}.text-black{color:var(--color-black, #000000)}*,*::before,*::after{box-sizing:border-box}*{scroll-behavior:smooth}*::-webkit-scrollbar{opacity:0;width:8px;background:#E5E5E5}*::-webkit-scrollbar:horizontal{height:8px}*::-webkit-scrollbar-thumb{height:80px;background-color:#CCCCCC;border-radius:4px}*::-webkit-scrollbar-track{background-color:#E5E5E5}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{min-height:100vh;line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;display:block}input,button,textarea,select{font-size:inherit}:target{scroll-margin-block:5ex}button{background:none;border:none;cursor:pointer;padding:0;outline:0}button:focus{outline:0 !important}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-text-fill-color:#000;-webkit-box-shadow:0 0 0px 1000px #fff inset;box-shadow:0 0 0px 1000px #fff inset;transition:background-color 5000s ease-in-out 0s}input:autofill,input:autofill:hover,input:autofill:focus,input:autofill:active{-webkit-text-fill-color:#000;-webkit-box-shadow:0 0 0px 1000px #fff inset;box-shadow:0 0 0px 1000px #fff inset;transition:background-color 5000s ease-in-out 0s}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}input[type=text],input[type=number],input[type=password],input[type=email],input[type=tel],textarea{padding-block:0px;padding-inline:0px}.sd-hoverable:hover>.sd-focus-helper{background:currentColor;opacity:0.15}.sd-hoverable:hover>.sd-focus-helper:before{opacity:0.1}.sd-hoverable:hover>.sd-focus-helper:after{opacity:0.4}.sd-focus-helper{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:inherit;opacity:0;transition:background-color 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), opacity 0.4s cubic-bezier(0.25, 0.8, 0.5, 1)}.sd-focus-helper:before,.sd-focus-helper:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;border-radius:inherit;transition:background-color 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), opacity 0.6s cubic-bezier(0.25, 0.8, 0.5, 1)}.sd-focus-helper:before{background:#000000}.sd-focus-helper:after{background:#ffffff}";
140
140
 
141
141
  /*
142
142
  Stencil Hydrate Platform v4.43.2 | MIT Licensed | https://stenciljs.com
@@ -5338,7 +5338,7 @@ class SdActionModal {
5338
5338
  if (this.height != null && this.height !== '') {
5339
5339
  sizeStyle.height = typeof this.height === 'number' ? `${this.height}px` : this.height;
5340
5340
  }
5341
- return (hAsync("div", { key: '278f81cf1f4ae0ca65ac6187b7fb31e4f12002f6', class: "sd-action-modal", style: { ...cssVars, ...sizeStyle } }, hAsync("header", { key: '7d110c9a1633f0db63c3d605f4422b90b9eb1a5c', class: "sd-action-modal__header" }, hAsync("h2", { key: 'd81100f64dec3a483d8f40b0be5069182de892c1', class: "sd-action-modal__title" }, this.modalTitle), hAsync("div", { key: 'c90c38a33877c85837316d63aadfab5f4bee73dc', class: "sd-action-modal__header-sub" }, hAsync("slot", { key: '98ea6a6f21d1596fa22fb7a9b37bb1169dcc6b16', name: "header-sub-title" })), hAsync("sd-ghost-button", { key: 'dd3429279996c79dec50aef0d77cfa21f4b0392b', class: "sd-action-modal__close", icon: "close", ariaLabel: "close", onClick: () => this.close.emit() })), hAsync("div", { key: 'c8621876c083c1026ddbecef875b4308ce85835e', class: "sd-action-modal__body" }, hAsync("slot", { key: 'bcf70a5bf4af9afdb421894a4cb2abeea0e277e9', name: "body" })), (this.buttonProps != null || this.buttonProps != undefined) && (hAsync("footer", { key: 'bc783b531cc045c360680326f826cda3ccc1bd67', class: "sd-action-modal__footer" }, hAsync("div", { key: '20d6c7708bc3218b038c5cb4faddcc6fc58acee7', class: "sd-action-modal__footer-sub" }, hAsync("slot", { key: '08703135da34bac499de135ed5b8e85eeb0fbc3a', name: "bottom-sub-content" })), hAsync("sd-button", { key: 'f384e5914a78fdfcfdd0bd3ad89f7bcf20c5f8d2', ...DEFAULT_BUTTON_PROPS, ...this.buttonProps, onSdClick: () => this.ok.emit() })))));
5341
+ return (hAsync("div", { key: '7b59ff655bb9f7a6bc79bb948201a6a532c16b06', class: "sd-action-modal", style: { ...cssVars, ...sizeStyle } }, hAsync("header", { key: '3e141509dc7082e08f448043573de3a8bd8e7cf0', class: "sd-action-modal__header" }, hAsync("h2", { key: 'ba80634b72ce1168d2ab3aec12bdf2a6546ff08d', class: "sd-action-modal__title" }, this.modalTitle), hAsync("div", { key: 'aed32008f0dcaa2deec098ca3c0c9cb1e8f6fb50', class: "sd-action-modal__header-sub" }, hAsync("slot", { key: '32a015a006cbcf26373c64a72e4131b878c53222', name: "header-sub-title" })), hAsync("sd-ghost-button", { key: '574d14cf2d0031dbf43cbb5999d4471a235ca72a', class: "sd-action-modal__close", icon: "close", ariaLabel: "close", onClick: () => this.close.emit() })), hAsync("div", { key: '713761da4ad2217c1d762fd56bc391ddc5c9cded', class: "sd-action-modal__body" }, hAsync("slot", { key: 'e224251b153d60cf35056b542c5d9925f4918b7f', name: "body" })), (this.buttonProps != null || this.buttonProps != undefined) && (hAsync("footer", { key: '43d6e4ffed21704ac68689f0742f8d7a6456b0b6', class: "sd-action-modal__footer" }, hAsync("div", { key: 'bd9cce1c5b1fb02156008a4e76c65dc8cb4385aa', class: "sd-action-modal__footer-sub" }, hAsync("slot", { key: '4de818c9ba8fcdb159963b9c9c7ce893fa3216da', name: "bottom-sub-content" })), hAsync("sd-button", { key: 'af9f4c1fd4c6bb482690c2545e0add53c308b95a', ...DEFAULT_BUTTON_PROPS, ...this.buttonProps, onSdClick: () => this.ok.emit() })))));
5342
5342
  }
5343
5343
  static get style() { return sdActionModalCss(); }
5344
5344
  static get cmpMeta() { return {
@@ -5390,7 +5390,7 @@ class SdBadge {
5390
5390
  color = 'blue';
5391
5391
  render() {
5392
5392
  const resolvedColor = BADGE_COLOR_MAP[this.color] ?? BADGE_COLOR_MAP.blue;
5393
- return (hAsync("div", { key: 'aba37986d6beea38fb1c5476f5187359ac2ebf0c', class: "sd-badge", style: { '--sd-badge-color': resolvedColor } }, hAsync("div", { key: 'dd80e8d18c79eda021baf7a7f233222c9c2aa717', class: "sd-badge__dot" })));
5393
+ return (hAsync("div", { key: '9ae835aba8a4acde4b918eceda00441ee2c22905', class: "sd-badge", style: { '--sd-badge-color': resolvedColor } }, hAsync("div", { key: 'c3b648845b5c138026a82a6a2c483d2a56ed2aab', class: "sd-badge__dot" })));
5394
5394
  }
5395
5395
  static get style() { return sdBadgeCss(); }
5396
5396
  static get cmpMeta() { return {
@@ -5599,7 +5599,7 @@ class SdBarcodeInput {
5599
5599
  '--sd-system-radius-field-sm': `${sizeTokens.radius}px`,
5600
5600
  '--sd-system-color-field-bg-default': BARCODE_INPUT_COLORS.bg.barcode,
5601
5601
  };
5602
- return (hAsync("sd-field", { key: '206beaac9acf7bf3e787b98c1e9bda602f1aa1d2', 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, 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: 'ab14cdc3e65faa72ce7c549234e40ca54f441c7d', class: "sd-barcode-input__content" }, hAsync("slot", { key: '7568acdee85fa0ae7440d7db65fd414fb1c27d1c', name: "prefix" }), hAsync("input", { key: '388b007eb7d830083e75e6b3016c412a6922bb1a', name: this.name, ref: el => (this.nativeEl = el), class: `sd-barcode-input__native ${this.inputClass}`, type: "text", value: this.internalValue || '', placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.inputStyle }), hAsync("slot", { key: '8e8d4feee62108904eb766b1917ed1e20cacc83b', name: "suffix" }), this.clearable && this.internalValue && (hAsync("sd-ghost-button", { key: 'a9b158ebcdcb31009b13db624fb8c74d6252e20d', icon: "close", ariaLabel: "clear", size: "xxs", disabled: this.disabled, class: "sd-barcode-input__clear-icon", onClick: async () => {
5602
+ return (hAsync("sd-field", { key: '61eb9beceb57e58323c1477c71147607db834e71', 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, 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: '9d4fa219af76d29b2d2e8443af1e66b980d62dd1', class: "sd-barcode-input__content" }, hAsync("slot", { key: '044bf2c4a6e79bb0d6b2a76398107b47d1237662', name: "prefix" }), hAsync("input", { key: '2522d0ded40b69c76872877bede00b1e4e5260d2', name: this.name, ref: el => (this.nativeEl = el), class: `sd-barcode-input__native ${this.inputClass}`, type: "text", value: this.internalValue || '', placeholder: this.placeholder ?? '입력해 주세요.', disabled: this.disabled, readonly: this.readonly, autofocus: this.autoFocus, onInput: this.handleInput, onFocus: event => this.handleFocus('focus', event), onBlur: event => this.handleFocus('blur', event), style: this.inputStyle }), hAsync("slot", { key: '8dc300df9f8bd7045f9c9e357925be3b7f2bdbb4', name: "suffix" }), this.clearable && this.internalValue && (hAsync("sd-ghost-button", { key: '1b3cab2c7fe9caf973e7defff170f64b3fd35daa', icon: "close", ariaLabel: "clear", size: "xxs", disabled: this.disabled, class: "sd-barcode-input__clear-icon", onClick: async () => {
5603
5603
  if (this.disabled)
5604
5604
  return;
5605
5605
  this.internalValue = '';
@@ -6417,10 +6417,11 @@ class SdButton {
6417
6417
  this.click.emit(event);
6418
6418
  };
6419
6419
  get resolvedName() {
6420
- if (!isButtonName(this.name)) {
6421
- throw new Error(`Invalid sd-button name: "${this.name}"`);
6420
+ const name = this.name || 'primary_sm';
6421
+ if (!isButtonName(name)) {
6422
+ throw new Error(`Invalid sd-button name: "${name}"`);
6422
6423
  }
6423
- return this.name;
6424
+ return name;
6424
6425
  }
6425
6426
  get resolvedConfig() {
6426
6427
  const name = this.resolvedName;
@@ -6446,8 +6447,8 @@ class SdButton {
6446
6447
  this.warnIfMissingAriaLabel();
6447
6448
  }
6448
6449
  warnIfMissingAriaLabel() {
6449
- const iconOnly = !this.label && (isValidIcon(this.icon) || isValidIcon(this.rightIcon));
6450
- const missingAriaLabel = iconOnly && !this.ariaLabel.trim();
6450
+ const iconOnly = this.label === '' && (isValidIcon(this.icon) || isValidIcon(this.rightIcon));
6451
+ const missingAriaLabel = iconOnly && this.ariaLabel.trim() === '';
6451
6452
  if (!missingAriaLabel) {
6452
6453
  this.hasWarnedMissingAriaLabel = false;
6453
6454
  return;
@@ -6464,14 +6465,14 @@ class SdButton {
6464
6465
  const validIcon = isValidIcon(this.icon) ? this.icon : undefined;
6465
6466
  const validRightIcon = isValidIcon(this.rightIcon) ? this.rightIcon : undefined;
6466
6467
  const iconOnly = !hasLabel && Boolean(validIcon) !== Boolean(validRightIcon);
6467
- const accessibleName = iconOnly && this.ariaLabel.trim() ? this.ariaLabel : undefined;
6468
- return (hAsync("button", { key: '3f228e1e1bd80106c60aacab606c48622864045d', class: this.getButtonClasses(preset, config.size, hasLabel, iconOnly), type: this.type ?? 'button', disabled: this.disabled, "aria-label": accessibleName, style: {
6468
+ const accessibleName = iconOnly && this.ariaLabel.trim() !== '' ? this.ariaLabel : undefined;
6469
+ return (hAsync("button", { key: '3caa9dff467ec7efa748eecd736296500a222ecb', class: this.getButtonClasses(preset, config.size, hasLabel, iconOnly), type: this.type ?? 'button', disabled: this.disabled, "aria-label": accessibleName, style: {
6469
6470
  '--sd-button-bg': config.color,
6470
6471
  '--sd-button-bg-hover': PRESET_HOVER_BACKGROUNDS$1[preset],
6471
6472
  '--sd-button-border': PRESET_BORDER_COLORS$1[preset],
6472
6473
  '--sd-button-content': PRESET_CONTENT_COLORS$1[preset],
6473
6474
  '--sd-button-accent': BUTTON_FOCUS_RING_COLOR,
6474
- }, onClick: this.handleClick }, hAsync("span", { key: '03803b4bf493ee2a03197437d40daba083f337fe', class: "sd-button__content" }, validIcon && (hAsync("sd-icon", { key: '7e6b2c31136c90a0da3f174be15c04f3da405ed6', class: "sd-button__icon", name: validIcon, size: BUTTON_ICON_SIZES[config.size], color: "var(--sd-button-current-icon)" })), this.label && hAsync("span", { key: '32f11f40391d214d80090653ab3c4387f7359bbb', class: "sd-button__label" }, this.label), validRightIcon && (hAsync("sd-icon", { key: 'a577a5074d02f04898308a593a13803abfca2510', class: "sd-button__icon sd-button__icon--right", name: validRightIcon, size: BUTTON_ICON_SIZES[config.size], color: "var(--sd-button-current-icon)" })))));
6475
+ }, onClick: this.handleClick }, hAsync("span", { key: 'cded66e4802956c29064cbdcc12b9dd1066a45c3', class: "sd-button__content" }, validIcon && (hAsync("sd-icon", { key: 'b989e3eb8661e16f052d5c7a292ea316a2b821df', class: "sd-button__icon", name: validIcon, size: BUTTON_ICON_SIZES[config.size], color: "var(--sd-button-current-icon)" })), this.label && hAsync("span", { key: '07695896bd8f11ca8753dcb171b5c7f0e7304c0d', class: "sd-button__label" }, this.label), validRightIcon && (hAsync("sd-icon", { key: 'bfd18c0a390a955d8de99789c86ce39fb605beae', class: "sd-button__icon sd-button__icon--right", name: validRightIcon, size: BUTTON_ICON_SIZES[config.size], color: "var(--sd-button-current-icon)" })))));
6475
6476
  }
6476
6477
  static get style() { return sdButtonCss(); }
6477
6478
  static get cmpMeta() { return {
@@ -6548,422 +6549,387 @@ const useDatePicker = () => {
6548
6549
  return { formatDate, createCalendar, calculateYearMonth };
6549
6550
  };
6550
6551
 
6551
- const primary = "#051D36";
6552
- const secondary = "#555555";
6553
- const accent = "#9C27B0";
6554
- const positive = "#0075FF";
6555
- const negative = "#E30000";
6556
- const info = "#00CD52";
6557
- const warning = "#F2C037";
6558
- const caution_bg = "#FEF1F1";
6559
- const caution_icon = "#FD9595";
6560
- const header_alert = "#FF7A00";
6561
- const white = "#FFFFFF";
6562
- const black = "#000000";
6563
- const grey_10 = "#F6F6F6";
6564
- const grey_20 = "#EEEEEE";
6565
- const grey_25 = "#E5E5E5";
6566
- const grey_30 = "#E1E1E1";
6567
- const grey_35 = "#D8D8D8";
6568
- const grey_45 = "#CCCCCC";
6569
- const grey_50 = "#BBBBBB";
6570
- const grey_55 = "#AAAAAA";
6571
- const grey_60 = "#999999";
6572
- const grey_65 = "#888888";
6573
- const grey_70 = "#737373";
6574
- const grey_80 = "#555555";
6575
- const grey_85 = "#444444";
6576
- const grey_90 = "#333333";
6577
- const grey_95 = "#222222";
6578
- const grey_05 = "#F9F9F9";
6579
- const red_15 = "#FCEFEF";
6580
- const red_20 = "#FCE6E6";
6581
- const red_30 = "#FFD3D3";
6582
- const red_45 = "#FFB5B5";
6583
- const red_60 = "#FF7C7C";
6584
- const red_70 = "#FB4444";
6585
- const red_75 = "#E30000";
6586
- const red_75_006 = "#E30000";
6587
- const red_80 = "#AD0000";
6588
- const red_85 = "#820000";
6589
- const red_90 = "#5E0000";
6590
- const red_95 = "#440000";
6591
- const red_99 = "#220000";
6592
- const orange_10 = "#FEF1EA";
6593
- const orange_20 = "#FFEAD7";
6594
- const orange_35 = "#FFD5AF";
6595
- const orange_45 = "#FFBC81";
6596
- const orange_55 = "#FFA452";
6597
- const orange_60 = "#FF7F22";
6598
- const orange_65 = "#FF6B00";
6599
- const orange_75 = "#CE4900";
6600
- const orange_85 = "#9B3700";
6601
- const orange_90 = "#752A00";
6602
- const orange_95 = "#4D1B00";
6603
- const orange_99 = "#2F1100";
6604
- const yellow_10 = "#FFF7DD";
6605
- const yellow_20 = "#FEF1C4";
6606
- const yellow_25 = "#FFE99E";
6607
- const yellow_30 = "#FEE17C";
6608
- const yellow_40 = "#FFD643";
6609
- const yellow_45 = "#FFC700";
6610
- const yellow_50 = "#EBB110";
6611
- const yellow_60 = "#CA9612";
6612
- const yellow_70 = "#916C0D";
6613
- const yellow_80 = "#6C5002";
6614
- const yellow_90 = "#453602";
6615
- const yellow_95 = "#322700";
6616
- const olive_10 = "#FBFBBF";
6617
- const olive_15 = "#FAFAA1";
6618
- const olive_20 = "#F6F65F";
6619
- const olive_30 = "#EEEE37";
6620
- const olive_45 = "#DDDD12";
6621
- const olive_55 = "#C7C700";
6622
- const olive_65 = "#A5A500";
6623
- const olive_70 = "#838300";
6624
- const olive_80 = "#636300";
6625
- const olive_90 = "#454500";
6626
- const olive_95 = "#2C2C00";
6627
- const olive_05 = "#FEFED9";
6628
- const green_15 = "#E8F9EF";
6629
- const green_25 = "#D4FAE3";
6630
- const green_45 = "#ACF4C9";
6631
- const green_55 = "#6DE39C";
6632
- const green_65 = "#2BCE6C";
6633
- const green_70 = "#12B553";
6634
- const green_75 = "#00973C";
6635
- const green_80 = "#007B31";
6636
- const green_85 = "#006629";
6637
- const green_90 = "#00461C";
6638
- const green_95 = "#003013";
6639
- const green_99 = "#001D0B";
6640
- const steelblue_10 = "#ECF8FD";
6641
- const steelblue_25 = "#D9F2FD";
6642
- const steelblue_45 = "#A4E2FD";
6643
- const steelblue_60 = "#50BFF0";
6644
- const steelblue_65 = "#229FD7";
6645
- const steelblue_70 = "#128FC7";
6646
- const steelblue_75 = "#066D9B";
6647
- const steelblue_80 = "#06587D";
6648
- const steelblue_85 = "#033F59";
6649
- const steelblue_90 = "#032D40";
6650
- const steelblue_95 = "#02212F";
6651
- const steelblue_99 = "#021A25";
6652
- const oceanblue_15 = "#EAF5FE";
6653
- const oceanblue_25 = "#D5EBFE";
6654
- const oceanblue_50 = "#9CD1FC";
6655
- const oceanblue_60 = "#5CB0F3";
6656
- const oceanblue_65 = "#1F8AE1";
6657
- const oceanblue_70 = "#006AC1";
6658
- const oceanblue_75 = "#025497";
6659
- const oceanblue_80 = "#004177";
6660
- const oceanblue_85 = "#07284A";
6661
- const oceanblue_90 = "#051D36";
6662
- const oceanblue_95 = "#03172D";
6663
- const oceanblue_99 = "#011428";
6664
- const brilliantblue_10 = "#EFF6FF";
6665
- const brilliantblue_20 = "#E6F1FF";
6666
- const brilliantblue_25 = "#D9EAFF";
6667
- const brilliantblue_40 = "#BBDAFF";
6668
- const brilliantblue_50 = "#93C4FF";
6669
- const brilliantblue_60 = "#64ABFF";
6670
- const brilliantblue_70 = "#2D8DFF";
6671
- const brilliantblue_75 = "#0075FF";
6672
- const brilliantblue_80 = "#005CC9";
6673
- const brilliantblue_85 = "#004290";
6674
- const brilliantblue_90 = "#002B5E";
6675
- const brilliantblue_95 = "#001B39";
6676
- const brilliantblue_99 = "#001226";
6677
- const brilliantblue_05 = "#F5FAFF";
6678
- var rawColors = {
6679
- primary: primary,
6680
- secondary: secondary,
6681
- accent: accent,
6682
- positive: positive,
6683
- negative: negative,
6684
- info: info,
6685
- warning: warning,
6686
- caution_bg: caution_bg,
6687
- caution_icon: caution_icon,
6688
- header_alert: header_alert,
6689
- white: white,
6690
- black: black,
6691
- grey_10: grey_10,
6692
- grey_20: grey_20,
6693
- grey_25: grey_25,
6694
- grey_30: grey_30,
6695
- grey_35: grey_35,
6696
- grey_45: grey_45,
6697
- grey_50: grey_50,
6698
- grey_55: grey_55,
6699
- grey_60: grey_60,
6700
- grey_65: grey_65,
6701
- grey_70: grey_70,
6702
- grey_80: grey_80,
6703
- grey_85: grey_85,
6704
- grey_90: grey_90,
6705
- grey_95: grey_95,
6706
- grey_05: grey_05,
6707
- red_15: red_15,
6708
- red_20: red_20,
6709
- red_30: red_30,
6710
- red_45: red_45,
6711
- red_60: red_60,
6712
- red_70: red_70,
6713
- red_75: red_75,
6714
- red_75_006: red_75_006,
6715
- red_80: red_80,
6716
- red_85: red_85,
6717
- red_90: red_90,
6718
- red_95: red_95,
6719
- red_99: red_99,
6720
- orange_10: orange_10,
6721
- orange_20: orange_20,
6722
- orange_35: orange_35,
6723
- orange_45: orange_45,
6724
- orange_55: orange_55,
6725
- orange_60: orange_60,
6726
- orange_65: orange_65,
6727
- orange_75: orange_75,
6728
- orange_85: orange_85,
6729
- orange_90: orange_90,
6730
- orange_95: orange_95,
6731
- orange_99: orange_99,
6732
- yellow_10: yellow_10,
6733
- yellow_20: yellow_20,
6734
- yellow_25: yellow_25,
6735
- yellow_30: yellow_30,
6736
- yellow_40: yellow_40,
6737
- yellow_45: yellow_45,
6738
- yellow_50: yellow_50,
6739
- yellow_60: yellow_60,
6740
- yellow_70: yellow_70,
6741
- yellow_80: yellow_80,
6742
- yellow_90: yellow_90,
6743
- yellow_95: yellow_95,
6744
- olive_10: olive_10,
6745
- olive_15: olive_15,
6746
- olive_20: olive_20,
6747
- olive_30: olive_30,
6748
- olive_45: olive_45,
6749
- olive_55: olive_55,
6750
- olive_65: olive_65,
6751
- olive_70: olive_70,
6752
- olive_80: olive_80,
6753
- olive_90: olive_90,
6754
- olive_95: olive_95,
6755
- olive_05: olive_05,
6756
- green_15: green_15,
6757
- green_25: green_25,
6758
- green_45: green_45,
6759
- green_55: green_55,
6760
- green_65: green_65,
6761
- green_70: green_70,
6762
- green_75: green_75,
6763
- green_80: green_80,
6764
- green_85: green_85,
6765
- green_90: green_90,
6766
- green_95: green_95,
6767
- green_99: green_99,
6768
- steelblue_10: steelblue_10,
6769
- steelblue_25: steelblue_25,
6770
- steelblue_45: steelblue_45,
6771
- steelblue_60: steelblue_60,
6772
- steelblue_65: steelblue_65,
6773
- steelblue_70: steelblue_70,
6774
- steelblue_75: steelblue_75,
6775
- steelblue_80: steelblue_80,
6776
- steelblue_85: steelblue_85,
6777
- steelblue_90: steelblue_90,
6778
- steelblue_95: steelblue_95,
6779
- steelblue_99: steelblue_99,
6780
- oceanblue_15: oceanblue_15,
6781
- oceanblue_25: oceanblue_25,
6782
- oceanblue_50: oceanblue_50,
6783
- oceanblue_60: oceanblue_60,
6784
- oceanblue_65: oceanblue_65,
6785
- oceanblue_70: oceanblue_70,
6786
- oceanblue_75: oceanblue_75,
6787
- oceanblue_80: oceanblue_80,
6788
- oceanblue_85: oceanblue_85,
6789
- oceanblue_90: oceanblue_90,
6790
- oceanblue_95: oceanblue_95,
6791
- oceanblue_99: oceanblue_99,
6792
- brilliantblue_10: brilliantblue_10,
6793
- brilliantblue_20: brilliantblue_20,
6794
- brilliantblue_25: brilliantblue_25,
6795
- brilliantblue_40: brilliantblue_40,
6796
- brilliantblue_50: brilliantblue_50,
6797
- brilliantblue_60: brilliantblue_60,
6798
- brilliantblue_70: brilliantblue_70,
6799
- brilliantblue_75: brilliantblue_75,
6800
- brilliantblue_80: brilliantblue_80,
6801
- brilliantblue_85: brilliantblue_85,
6802
- brilliantblue_90: brilliantblue_90,
6803
- brilliantblue_95: brilliantblue_95,
6804
- brilliantblue_99: brilliantblue_99,
6805
- brilliantblue_05: brilliantblue_05
6552
+ const datepicker = {
6553
+ sm: {
6554
+ height: "28",
6555
+ paddingX: "12",
6556
+ gap: "8",
6557
+ icon: "16",
6558
+ typography: {
6559
+ fontWeight: "400",
6560
+ fontSize: "12",
6561
+ lineHeight: "20"},
6562
+ radius: "4"
6563
+ },
6564
+ md: {
6565
+ height: "36",
6566
+ paddingX: "16",
6567
+ gap: "12",
6568
+ icon: "20",
6569
+ typography: {
6570
+ fontWeight: "400",
6571
+ fontSize: "14",
6572
+ lineHeight: "24"
6573
+ },
6574
+ radius: "6"
6575
+ },
6576
+ border: {
6577
+ "default": "#AAAAAA",
6578
+ focus: "#0075FF"},
6579
+ bg: {
6580
+ "default": "#FFFFFF"},
6581
+ icon: {
6582
+ "default": "#888888",
6583
+ disabled: "#BBBBBB"
6584
+ },
6585
+ text: {
6586
+ "default": "#222222",
6587
+ hint: "#555555",
6588
+ disabled: "#888888"
6589
+ },
6590
+ calendar: {
6591
+ bg: "#FFFFFF",
6592
+ paddingXY: "24",
6593
+ gap: "12",
6594
+ radius: "8",
6595
+ header: {
6596
+ gap: "8",
6597
+ divider: "#E1E1E1",
6598
+ typography: {
6599
+ fontWeight: "500",
6600
+ fontSize: "14",
6601
+ lineHeight: "24"
6602
+ }
6603
+ },
6604
+ week: {
6605
+ typography: {
6606
+ fontWeight: "400",
6607
+ fontSize: "12",
6608
+ lineHeight: "20"},
6609
+ color: "#888888"
6610
+ },
6611
+ grid: {
6612
+ rowGap: "4"
6613
+ },
6614
+ day: {
6615
+ width: "40",
6616
+ circle: {
6617
+ size: "32",
6618
+ radius: "9999"
6619
+ },
6620
+ "default": {
6621
+ text: "#222222"
6622
+ },
6623
+ hover: {
6624
+ text: "#222222",
6625
+ border: "#0075FF"
6626
+ },
6627
+ select: {
6628
+ bg: "#0075FF",
6629
+ text: "#FFFFFF"
6630
+ },
6631
+ disabled: {
6632
+ text: "#BBBBBB"
6633
+ },
6634
+ typography: {
6635
+ "default": {
6636
+ fontWeight: "400",
6637
+ fontSize: "14",
6638
+ lineHeight: "24"
6639
+ },
6640
+ bold: {
6641
+ fontWeight: "700"}
6642
+ },
6643
+ dot: {
6644
+ size: "6",
6645
+ gap: "2",
6646
+ paddingY: "4"
6647
+ }
6648
+ },
6649
+ range: {
6650
+ bg: "#D9EAFF",
6651
+ height: "32",
6652
+ panelGap: "24",
6653
+ divider: "#E1E1E1"},
6654
+ legend: {
6655
+ typography: {
6656
+ fontWeight: "400",
6657
+ fontSize: "11",
6658
+ lineHeight: "18"},
6659
+ gap: "4",
6660
+ group: {
6661
+ gap: "12"
6662
+ }
6663
+ }
6664
+ }
6665
+ };
6666
+ var datepickerTokens = {
6667
+ datepicker: datepicker
6806
6668
  };
6807
6669
 
6808
- const colors = rawColors;
6809
- // 주어진 문자열이 color.json의 키이면 매핑된 HEX를 반환하고,
6810
- // 아닐 경우 원문 그대로를 반환합니다. 값이 falsy면 기본 색상으로 대체합니다.
6811
- function resolveColor(input, fallback = '#025497') {
6812
- if (input === null || input === undefined || input === '')
6813
- return fallback;
6814
- const mapped = colors[input];
6815
- return mapped !== undefined && mapped !== '' ? mapped : input;
6816
- }
6670
+ const CALENDAR_LAYOUT = {
6671
+ bg: datepickerTokens.datepicker.calendar.bg,
6672
+ paddingXY: datepickerTokens.datepicker.calendar.paddingXY,
6673
+ gap: datepickerTokens.datepicker.calendar.gap,
6674
+ radius: datepickerTokens.datepicker.calendar.radius,
6675
+ header: {
6676
+ gap: datepickerTokens.datepicker.calendar.header.gap,
6677
+ divider: datepickerTokens.datepicker.calendar.header.divider,
6678
+ fontSize: datepickerTokens.datepicker.calendar.header.typography.fontSize,
6679
+ lineHeight: datepickerTokens.datepicker.calendar.header.typography.lineHeight,
6680
+ fontWeight: datepickerTokens.datepicker.calendar.header.typography.fontWeight,
6681
+ },
6682
+ week: {
6683
+ fontSize: datepickerTokens.datepicker.calendar.week.typography.fontSize,
6684
+ lineHeight: datepickerTokens.datepicker.calendar.week.typography.lineHeight,
6685
+ fontWeight: datepickerTokens.datepicker.calendar.week.typography.fontWeight,
6686
+ color: datepickerTokens.datepicker.calendar.week.color,
6687
+ },
6688
+ grid: {
6689
+ rowGap: datepickerTokens.datepicker.calendar.grid.rowGap,
6690
+ },
6691
+ day: {
6692
+ size: datepickerTokens.datepicker.calendar.day.width,
6693
+ circleSize: datepickerTokens.datepicker.calendar.day.circle.size,
6694
+ circleRadius: datepickerTokens.datepicker.calendar.day.circle.radius,
6695
+ defaultText: datepickerTokens.datepicker.calendar.day.default.text,
6696
+ hoverText: datepickerTokens.datepicker.calendar.day.hover.text,
6697
+ hoverBorder: datepickerTokens.datepicker.calendar.day.hover.border,
6698
+ selectBg: datepickerTokens.datepicker.calendar.day.select.bg,
6699
+ selectText: datepickerTokens.datepicker.calendar.day.select.text,
6700
+ disabledText: datepickerTokens.datepicker.calendar.day.disabled.text,
6701
+ fontSize: datepickerTokens.datepicker.calendar.day.typography.default.fontSize,
6702
+ lineHeight: datepickerTokens.datepicker.calendar.day.typography.default.lineHeight,
6703
+ fontWeight: datepickerTokens.datepicker.calendar.day.typography.default.fontWeight,
6704
+ boldFontWeight: datepickerTokens.datepicker.calendar.day.typography.bold.fontWeight,
6705
+ dot: {
6706
+ size: datepickerTokens.datepicker.calendar.day.dot.size,
6707
+ gap: datepickerTokens.datepicker.calendar.day.dot.gap,
6708
+ paddingY: datepickerTokens.datepicker.calendar.day.dot.paddingY,
6709
+ },
6710
+ },
6711
+ legend: {
6712
+ fontSize: datepickerTokens.datepicker.calendar.legend.typography.fontSize,
6713
+ lineHeight: datepickerTokens.datepicker.calendar.legend.typography.lineHeight,
6714
+ fontWeight: datepickerTokens.datepicker.calendar.legend.typography.fontWeight,
6715
+ gap: datepickerTokens.datepicker.calendar.legend.gap,
6716
+ groupGap: datepickerTokens.datepicker.calendar.legend.group.gap,
6717
+ },
6718
+ };
6719
+ const WEEK_LABELS = ['일', '월', '화', '수', '목', '금', '토'];
6817
6720
 
6818
- const sdCalendarCss = () => `.sd-calendar.sc-sd-calendar{width:304px;box-sizing:border-box;border-radius:8px;padding:24px 19px;background:white}.sd-calendar.sc-sd-calendar .sd-calendar__header.sc-sd-calendar{display:flex;flex-flow:row nowrap;align-items:center;gap:20px;font-size:14px;padding:0 5px;height:24px;line-height:24px}.sd-calendar.sc-sd-calendar .sd-calendar__header.sc-sd-calendar .year-nav.sc-sd-calendar,.sd-calendar.sc-sd-calendar .sd-calendar__header.sc-sd-calendar .month-nav.sc-sd-calendar{display:flex;flex-flow:row nowrap;align-items:center;gap:12px}.sd-calendar.sc-sd-calendar .sd-calendar__header.sc-sd-calendar .year-nav.sc-sd-calendar button.sc-sd-calendar,.sd-calendar.sc-sd-calendar .sd-calendar__header.sc-sd-calendar .month-nav.sc-sd-calendar button.sc-sd-calendar{background:none;border:none;cursor:pointer;margin:0;padding:0}.sd-calendar.sc-sd-calendar .sd-calendar__header.sc-sd-calendar .year-nav__current.sc-sd-calendar{width:40px;text-align:center}.sd-calendar.sc-sd-calendar .sd-calendar__header.sc-sd-calendar .month-nav__current.sc-sd-calendar{width:100px;text-align:center}.sd-calendar.sc-sd-calendar .sd-calendar__days.sc-sd-calendar{margin-top:8px;display:grid;grid-template-columns:repeat(7, minmax(0, 1fr));column-gap:10px;padding:0 5px}.sd-calendar.sc-sd-calendar .sd-calendar__days.sc-sd-calendar .day.sc-sd-calendar{width:28px;height:20px;font-size:12px;line-height:20px;text-align:center;color:#888888}.sd-calendar.sc-sd-calendar .sd-calendar__body.sc-sd-calendar{margin-top:12px;display:grid;grid-template-columns:repeat(7, minmax(0, 1fr));grid-auto-rows:min-content}.sd-calendar.sc-sd-calendar .sd-calendar__cell.sc-sd-calendar{display:flex;flex-direction:column;align-items:center}.sd-calendar.sc-sd-calendar .sd-calendar__dots.sc-sd-calendar{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;align-items:center;min-height:8px;max-width:28px}.sd-calendar.sc-sd-calendar .sd-calendar__dot.sc-sd-calendar{width:5px;height:5px;border-radius:50%;display:inline-block}.sd-calendar.sc-sd-calendar .sd-calendar__legend.sc-sd-calendar{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:16px;padding:12px 5px 0;border-top:1px solid #E5E5E5}.sd-calendar.sc-sd-calendar .sd-calendar__legend-item.sc-sd-calendar{display:flex;align-items:center;gap:4px}.sd-calendar.sc-sd-calendar .sd-calendar__legend-dot.sc-sd-calendar{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}.sd-calendar.sc-sd-calendar .sd-calendar__legend-label.sc-sd-calendar{font-size:11px;color:#888888;line-height:1}`;
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);width:100%;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}`;
6819
6722
 
6820
- const DEFAULT_COLORS = [
6821
- 'brilliantblue_75',
6822
- 'red_60',
6823
- 'green_65',
6824
- 'orange_60',
6825
- 'steelblue_65',
6826
- 'yellow_45',
6827
- 'oceanblue_65',
6828
- 'olive_55',
6829
- ];
6830
6723
  class SdCalendar {
6831
6724
  constructor(hostRef) {
6832
6725
  registerInstance(this, hostRef);
6833
- this.select = createEvent(this, "sdSelect", 7);
6726
+ this.update = createEvent(this, "sdUpdate", 7);
6834
6727
  this.viewChange = createEvent(this, "sdViewChange", 7);
6835
6728
  }
6836
6729
  value = null;
6837
6730
  selectable;
6838
6731
  events;
6839
- eventColors;
6840
6732
  currentYear;
6841
6733
  currentMonth;
6842
- eventsRevision = 0;
6843
- select;
6734
+ update;
6844
6735
  viewChange;
6845
6736
  dateUtil = useDatePicker();
6737
+ _eventMapCache;
6738
+ get eventMap() {
6739
+ const cache = this._eventMapCache;
6740
+ if (cache && cache.src === this.events)
6741
+ return cache.map;
6742
+ const map = new Map();
6743
+ (this.events ?? []).forEach(g => g.dates.forEach(d => {
6744
+ const arr = map.get(d) ?? [];
6745
+ arr.push({ color: g.color, label: g.label });
6746
+ map.set(d, arr);
6747
+ }));
6748
+ this._eventMapCache = { src: this.events, map };
6749
+ return map;
6750
+ }
6751
+ get legendItems() {
6752
+ const seen = new Set();
6753
+ const out = [];
6754
+ (this.events ?? []).forEach(g => {
6755
+ const key = `${g.color}|${g.label}`;
6756
+ if (seen.has(key))
6757
+ return;
6758
+ seen.add(key);
6759
+ out.push({ color: g.color, label: g.label });
6760
+ });
6761
+ return out;
6762
+ }
6846
6763
  componentWillLoad() {
6847
- this.initCalendar();
6764
+ this.syncViewFromValue();
6848
6765
  }
6849
6766
  handleValueChange() {
6850
- this.initCalendar();
6851
- }
6852
- handleEventsChange() {
6853
- this.eventsRevision = this.eventsRevision + 1;
6767
+ this.syncViewFromValue();
6854
6768
  }
6855
- initCalendar() {
6769
+ syncViewFromValue() {
6856
6770
  const base = this.value || today;
6857
6771
  const [year, month] = base.split('-').map(Number);
6858
6772
  this.currentYear = year;
6859
6773
  this.currentMonth = month;
6860
6774
  }
6861
- get calendar() {
6862
- return this.dateUtil.createCalendar(this.currentYear, this.currentMonth);
6863
- }
6864
- handleUpdateMonth(type) {
6865
- const { newYear, newMonth } = this.dateUtil.calculateYearMonth(this.currentYear, this.currentMonth, type);
6866
- this.currentYear = newYear;
6867
- this.currentMonth = newMonth;
6868
- this.viewChange.emit({ year: newYear, month: newMonth });
6869
- }
6870
- handleDateClick(day) {
6871
- if (day === 0)
6872
- return;
6873
- const date = this.dateUtil.formatDate(this.currentYear, this.currentMonth, day);
6874
- this.value = date;
6875
- this.select.emit(date);
6775
+ formatDate(year, month, day) {
6776
+ return `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`;
6876
6777
  }
6877
- isDisabledDate(date) {
6878
- if (this.selectable === undefined)
6879
- return false;
6880
- const [startSelectable, endSelectable] = this.selectable;
6881
- if (startSelectable !== '' && endSelectable !== '') {
6882
- return date < startSelectable || date > endSelectable;
6778
+ get cells() {
6779
+ const year = this.currentYear;
6780
+ const month = this.currentMonth;
6781
+ const firstDayIndex = new Date(year, month - 1, 1).getDay();
6782
+ const daysInCurrent = new Date(year, month, 0).getDate();
6783
+ const prevMonth = month === 1 ? 12 : month - 1;
6784
+ const prevYear = month === 1 ? year - 1 : year;
6785
+ const daysInPrev = new Date(prevYear, prevMonth, 0).getDate();
6786
+ const nextMonth = month === 12 ? 1 : month + 1;
6787
+ const nextYear = month === 12 ? year + 1 : year;
6788
+ const cells = [];
6789
+ for (let i = firstDayIndex - 1; i >= 0; i--) {
6790
+ const day = daysInPrev - i;
6791
+ cells.push({
6792
+ date: this.formatDate(prevYear, prevMonth, day),
6793
+ day,
6794
+ inCurrentMonth: false,
6795
+ });
6883
6796
  }
6884
- if (startSelectable !== '') {
6885
- return date < startSelectable;
6797
+ for (let day = 1; day <= daysInCurrent; day++) {
6798
+ cells.push({
6799
+ date: this.formatDate(year, month, day),
6800
+ day,
6801
+ inCurrentMonth: true,
6802
+ });
6886
6803
  }
6887
- if (endSelectable !== '') {
6888
- return date > endSelectable;
6804
+ const remaining = (7 - (cells.length % 7)) % 7;
6805
+ for (let day = 1; day <= remaining; day++) {
6806
+ cells.push({
6807
+ date: this.formatDate(nextYear, nextMonth, day),
6808
+ day,
6809
+ inCurrentMonth: false,
6810
+ });
6889
6811
  }
6890
- return false;
6812
+ return cells;
6891
6813
  }
6892
- getEventColor(eventName) {
6893
- if (this.eventColors?.[eventName] !== undefined && this.eventColors[eventName] !== '') {
6894
- return resolveColor(this.eventColors[eventName]);
6895
- }
6896
- const allEventNames = this.getAllEventNames();
6897
- const index = allEventNames.indexOf(eventName);
6898
- return resolveColor(DEFAULT_COLORS[index % DEFAULT_COLORS.length]);
6814
+ emitViewChange() {
6815
+ this.viewChange.emit({ year: this.currentYear, month: this.currentMonth });
6899
6816
  }
6900
- getAllEventNames() {
6901
- const names = new Set();
6902
- if (this.eventColors) {
6903
- for (const name of Object.keys(this.eventColors)) {
6904
- names.add(name);
6905
- }
6906
- }
6907
- if (this.events) {
6908
- for (const dateEvents of Object.values(this.events)) {
6909
- for (const name of dateEvents) {
6910
- names.add(name);
6911
- }
6912
- }
6913
- }
6914
- return Array.from(names);
6817
+ goPrevYear = (event) => {
6818
+ event.stopPropagation();
6819
+ this.currentYear -= 1;
6820
+ this.emitViewChange();
6821
+ };
6822
+ goNextYear = (event) => {
6823
+ event.stopPropagation();
6824
+ this.currentYear += 1;
6825
+ this.emitViewChange();
6826
+ };
6827
+ goPrevMonth = (event) => {
6828
+ event.stopPropagation();
6829
+ const { newYear, newMonth } = this.dateUtil.calculateYearMonth(this.currentYear, this.currentMonth, 'prev');
6830
+ this.currentYear = newYear;
6831
+ this.currentMonth = newMonth;
6832
+ this.emitViewChange();
6833
+ };
6834
+ goNextMonth = (event) => {
6835
+ event.stopPropagation();
6836
+ const { newYear, newMonth } = this.dateUtil.calculateYearMonth(this.currentYear, this.currentMonth, 'next');
6837
+ this.currentYear = newYear;
6838
+ this.currentMonth = newMonth;
6839
+ this.emitViewChange();
6840
+ };
6841
+ isDisabled(date) {
6842
+ if (!this.selectable)
6843
+ return false;
6844
+ const [start, end] = this.selectable;
6845
+ if (start !== '' && date < start)
6846
+ return true;
6847
+ if (end !== '' && date > end)
6848
+ return true;
6849
+ return false;
6915
6850
  }
6916
- getEventsForDate(date) {
6917
- return this.events?.[date] ?? [];
6851
+ handleDayClick(cell) {
6852
+ if (this.isDisabled(cell.date))
6853
+ return;
6854
+ this.value = cell.date;
6855
+ this.update.emit(cell.date);
6918
6856
  }
6919
6857
  render() {
6920
- const allEventNames = this.getAllEventNames();
6921
- return (hAsync("div", { key: '3c3a6af518a3e96dd5d5d553ab2a00b9dd882221', class: "sd-calendar" }, hAsync("div", { key: '660e96fcefe539b69ae7b69bb7a7eb209f40b02f', class: "sd-calendar__header" }, hAsync("div", { key: '609b4d2e552adb526deefbf0719284c94ab01c21', class: "year-nav" }, hAsync("button", { key: 'dc80f2e4fa441b9ed2e0a475f7982e7339c0cda7', type: "button", name: "prev-year", title: "Previous Year", onClick: () => {
6922
- this.currentYear = this.currentYear - 1;
6923
- this.viewChange.emit({ year: this.currentYear, month: this.currentMonth });
6924
- } }, hAsync("sd-icon", { key: 'ff62edabb67364704a4bfbcfc6f1658ad3d72408', name: "arrowLeft", size: "12", color: "grey_45" })), hAsync("span", { key: '0829c746b8537196652e7c40b3babea14ae8053e', class: "year-nav__current" }, this.currentYear), hAsync("button", { key: '3d288e5091445f2ed429de4aebb0d03f29eb6cc8', type: "button", name: "next-year", title: "Next Year", onClick: () => {
6925
- this.currentYear = this.currentYear + 1;
6926
- this.viewChange.emit({ year: this.currentYear, month: this.currentMonth });
6927
- } }, hAsync("sd-icon", { key: '5546ced1930082c68035db8b506b6ef2e953e305', name: "arrowRight", size: "12", color: "grey_45" }))), hAsync("div", { key: '1db95c9f31c1a11b58a6f1ce4a13b9d6388f7994', class: "month-nav" }, hAsync("button", { key: '2c5659945f3e0807a57ba22eb34576184e6ebf50', type: "button", name: "prev-month", title: "Previous Month", onClick: () => this.handleUpdateMonth('prev') }, hAsync("sd-icon", { key: '7994e2bf63fc45ffb7d29b49ad279223a1a12a98', name: "arrowLeft", size: "12", color: "grey_45" })), hAsync("span", { key: 'a8afd7592b3fba13a4560387bb759f4858273a85', class: "month-nav__current" }, this.currentMonth, "\uC6D4"), hAsync("button", { key: 'b3d21b13823bd674c43c1782b66df38010fcfa59', type: "button", name: "next-month", title: "Next Month", onClick: () => this.handleUpdateMonth('next') }, hAsync("sd-icon", { key: '8605340fe8128b6a55328c97dc84481092009c76', name: "arrowRight", size: "12", color: "grey_45" })))), hAsync("div", { key: '9312ff7f3af76aced7189f121c71ff252a92a71d', class: "sd-calendar__days" }, ['일', '월', '화', '수', '목', '금', '토'].map(day => (hAsync("div", { key: day, class: "day" }, day)))), hAsync("div", { key: 'cb93d417204b3bad65074e06e491038fe06b1389', class: { 'sd-calendar__body': true, 'sd-calendar__body--has-events': !!this.events } }, [
6928
- ...this.calendar.prevMonthDays,
6929
- ...this.calendar.days,
6930
- ...this.calendar.afterMonthDays,
6931
- ].map((day, idx) => {
6932
- const formattedDate = this.dateUtil.formatDate(this.currentYear, this.currentMonth, Number(day));
6933
- const dateEvents = day !== 0 ? this.getEventsForDate(formattedDate) : [];
6934
- const uniqueEvents = [...new Set(dateEvents)];
6935
- return (hAsync("div", { class: "sd-calendar__cell", key: `${day}_${idx}` }, hAsync("sd-date-box", { date: day === 0 ? '' : Number(day), selected: this.value === formattedDate, isToday: today === formattedDate, disabled: day === 0 ? true : this.isDisabledDate(formattedDate), onClick: !this.isDisabledDate(formattedDate) && day !== 0
6936
- ? () => this.handleDateClick(Number(day))
6937
- : undefined }), this.events !== undefined && (hAsync("div", { class: "sd-calendar__dots" }, uniqueEvents.map(eventName => (hAsync("span", { key: eventName, class: "sd-calendar__dot", style: { backgroundColor: this.getEventColor(eventName) } })))))));
6938
- })), allEventNames.length > 0 && (hAsync("div", { key: '0556e06bcd0bab75b61c60181d9b203cb6ad4741', class: "sd-calendar__legend" }, allEventNames.map(name => (hAsync("div", { key: name, class: "sd-calendar__legend-item" }, hAsync("span", { class: "sd-calendar__legend-dot", style: { backgroundColor: this.getEventColor(name) } }), hAsync("span", { class: "sd-calendar__legend-label" }, name))))))));
6939
- }
6940
- static get watchers() { return {
6941
- "value": [{
6942
- "handleValueChange": 0
6943
- }],
6944
- "events": [{
6945
- "handleEventsChange": 0
6946
- }],
6947
- "eventColors": [{
6948
- "handleEventsChange": 0
6858
+ const cssVars = {
6859
+ '--calendar-bg': CALENDAR_LAYOUT.bg,
6860
+ '--calendar-padding': `${CALENDAR_LAYOUT.paddingXY}px`,
6861
+ '--calendar-gap': `${CALENDAR_LAYOUT.gap}px`,
6862
+ '--calendar-radius': `${CALENDAR_LAYOUT.radius}px`,
6863
+ '--calendar-header-gap': `${CALENDAR_LAYOUT.header.gap}px`,
6864
+ '--calendar-header-divider': CALENDAR_LAYOUT.header.divider,
6865
+ '--calendar-header-font-size': `${CALENDAR_LAYOUT.header.fontSize}px`,
6866
+ '--calendar-header-line-height': `${CALENDAR_LAYOUT.header.lineHeight}px`,
6867
+ '--calendar-header-font-weight': CALENDAR_LAYOUT.header.fontWeight,
6868
+ '--calendar-week-font-size': `${CALENDAR_LAYOUT.week.fontSize}px`,
6869
+ '--calendar-week-line-height': `${CALENDAR_LAYOUT.week.lineHeight}px`,
6870
+ '--calendar-week-font-weight': CALENDAR_LAYOUT.week.fontWeight,
6871
+ '--calendar-week-color': CALENDAR_LAYOUT.week.color,
6872
+ '--calendar-grid-row-gap': `${CALENDAR_LAYOUT.grid.rowGap}px`,
6873
+ '--calendar-day-size': `${CALENDAR_LAYOUT.day.size}px`,
6874
+ '--calendar-day-circle-size': `${CALENDAR_LAYOUT.day.circleSize}px`,
6875
+ '--calendar-day-circle-radius': `${CALENDAR_LAYOUT.day.circleRadius}px`,
6876
+ '--calendar-day-text': CALENDAR_LAYOUT.day.defaultText,
6877
+ '--calendar-day-hover-text': CALENDAR_LAYOUT.day.hoverText,
6878
+ '--calendar-day-hover-border': CALENDAR_LAYOUT.day.hoverBorder,
6879
+ '--calendar-day-select-bg': CALENDAR_LAYOUT.day.selectBg,
6880
+ '--calendar-day-select-text': CALENDAR_LAYOUT.day.selectText,
6881
+ '--calendar-day-disabled-text': CALENDAR_LAYOUT.day.disabledText,
6882
+ '--calendar-day-font-size': `${CALENDAR_LAYOUT.day.fontSize}px`,
6883
+ '--calendar-day-line-height': `${CALENDAR_LAYOUT.day.lineHeight}px`,
6884
+ '--calendar-day-font-weight': CALENDAR_LAYOUT.day.fontWeight,
6885
+ '--calendar-day-bold-font-weight': CALENDAR_LAYOUT.day.boldFontWeight,
6886
+ '--calendar-day-dot-size': `${CALENDAR_LAYOUT.day.dot.size}px`,
6887
+ '--calendar-day-dot-gap': `${CALENDAR_LAYOUT.day.dot.gap}px`,
6888
+ '--calendar-day-dot-padding-y': `${CALENDAR_LAYOUT.day.dot.paddingY}px`,
6889
+ '--calendar-legend-font-size': `${CALENDAR_LAYOUT.legend.fontSize}px`,
6890
+ '--calendar-legend-line-height': `${CALENDAR_LAYOUT.legend.lineHeight}px`,
6891
+ '--calendar-legend-font-weight': CALENDAR_LAYOUT.legend.fontWeight,
6892
+ '--calendar-legend-gap': `${CALENDAR_LAYOUT.legend.gap}px`,
6893
+ '--calendar-legend-group-gap': `${CALENDAR_LAYOUT.legend.groupGap}px`,
6894
+ };
6895
+ const eventMap = this.eventMap;
6896
+ const legend = this.legendItems;
6897
+ return (hAsync("div", { key: '66c0bec57c13af12b05f2e90fbc5e1674ab052c8', class: "sd-calendar", style: cssVars }, hAsync("div", { key: '4df4f1c6d1ddcbe1478a69a481a228e66fc33c0a', class: "sd-calendar__header" }, hAsync("div", { key: '378c04444b3ddcc7df92ecce0f49056e919cd8e5', class: "sd-calendar__nav-group" }, hAsync("sd-ghost-button", { key: '47426c62a26b05a9db58144acc33770713e7fce4', ariaLabel: "prevYear", size: "xxs", icon: "chevronLeft", onClick: this.goPrevYear }), hAsync("span", { key: '3b32e76a8a35705d820803c0b747829370079324', class: "sd-calendar__label" }, this.currentYear), hAsync("sd-ghost-button", { key: '2e890a2cea91c9f49a03f0db3a4b943c707e312e', ariaLabel: "nextYear", size: "xxs", icon: "chevronRight", onClick: this.goNextYear })), hAsync("span", { key: '795bb8452e75303c25a8dc6d95f819f1e42f7f49', class: "sd-calendar__divider", "aria-hidden": "true" }), hAsync("div", { key: '6df460ec38917c51eff851732c7f37b7e09475f6', class: "sd-calendar__nav-group sd-calendar__nav-group-month" }, hAsync("sd-ghost-button", { key: '36ef9dfdcfac5d9da08d05ca357fc9ec4100af4f', ariaLabel: "prevMonth", size: "xxs", icon: "chevronLeft", onClick: this.goPrevMonth }), hAsync("span", { key: 'b2e0cc74570724c0d97fb2afbcb775c0794583af', class: "sd-calendar__label sd-calendar__label-month" }, this.currentMonth, "\uC6D4"), hAsync("sd-ghost-button", { key: '4c45467356411f7a5d137c19931d8fc62084c742', ariaLabel: "nextMonth", size: "xxs", icon: "chevronRight", onClick: this.goNextMonth }))), hAsync("div", { key: 'e1637a39795fb44bd33d138c8b244cc15b5f85f6', class: "sd-calendar__week" }, WEEK_LABELS.map(label => (hAsync("span", { key: label, class: "sd-calendar__week-cell" }, label)))), hAsync("div", { key: '45642dc93b1373dc760f64ba74dd931e651279dd', class: "sd-calendar__grid" }, this.cells.map(cell => {
6898
+ const isSelected = cell.inCurrentMonth && this.value !== '' && this.value === cell.date;
6899
+ const isToday = cell.inCurrentMonth && today === cell.date;
6900
+ const isDisabled = cell.inCurrentMonth && this.isDisabled(cell.date);
6901
+ const dayEvents = cell.inCurrentMonth ? eventMap.get(cell.date) : undefined;
6902
+ return (hAsync("button", { type: "button", key: cell.date, class: {
6903
+ 'sd-calendar__day': true,
6904
+ 'sd-calendar__day--empty': !cell.inCurrentMonth,
6905
+ 'sd-calendar__day--today': isToday,
6906
+ 'sd-calendar__day--selected': isSelected,
6907
+ 'sd-calendar__day--disabled': isDisabled,
6908
+ }, 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 : ''), dayEvents && dayEvents.length > 0 && (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 } })))))));
6909
+ })), legend.length > 0 && [
6910
+ hAsync("span", { key: '0872cb7627db7d33721fbd1e1c9a601bd3c6c3e1', class: "sd-calendar__divider-bottom", "aria-hidden": "true" }),
6911
+ hAsync("div", { key: 'd9c6be0684720aa9d2af24b2d0cf372a036dc8d5', 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
+ ]));
6913
+ }
6914
+ static get watchers() { return {
6915
+ "value": [{
6916
+ "handleValueChange": 0
6949
6917
  }]
6950
6918
  }; }
6951
6919
  static get style() { return sdCalendarCss(); }
6952
6920
  static get cmpMeta() { return {
6953
- "$flags$": 514,
6921
+ "$flags$": 512,
6954
6922
  "$tagName$": "sd-calendar",
6955
6923
  "$members$": {
6956
- "value": [1537],
6924
+ "value": [1025],
6957
6925
  "selectable": [16],
6958
6926
  "events": [16],
6959
- "eventColors": [16],
6960
6927
  "currentYear": [32],
6961
- "currentMonth": [32],
6962
- "eventsRevision": [32]
6928
+ "currentMonth": [32]
6963
6929
  },
6964
6930
  "$listeners$": undefined,
6965
6931
  "$lazyBundleId$": "-",
6966
- "$attrsToReflect$": [["value", "value"]]
6932
+ "$attrsToReflect$": []
6967
6933
  }; }
6968
6934
  }
6969
6935
 
@@ -6976,7 +6942,7 @@ class SdCard {
6976
6942
  bordered = false;
6977
6943
  sdClass = '';
6978
6944
  render() {
6979
- return (hAsync(Fragment, { key: '2700ffa3af5b6b35882c396a838d9da2e866ee4b' }, hAsync("div", { key: '3d3aeaac318fc089c42ae4348bc72015d4476276', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.sdClass}` }, hAsync("slot", { key: 'e72f00bc8c209644baf5f431ce485fb5b691f354' }))));
6945
+ return (hAsync(Fragment, { key: '61c364f88b03eb56b60c660a58533f417d209e6a' }, hAsync("div", { key: 'dee3671e757c273ffec06a15a0191a798280522c', class: `sd-card ${this.bordered ? 'sd-card--bordered' : ''} ${this.sdClass}` }, hAsync("slot", { key: 'f991bf5df95f8c1bac417aa4e70f40cf68624fb8' }))));
6980
6946
  }
6981
6947
  static get style() { return sdCardCss(); }
6982
6948
  static get cmpMeta() { return {
@@ -7180,13 +7146,13 @@ class SdCheckbox {
7180
7146
  '--sd-checkbox-inverse-icon': CHECKBOX_COLORS.checked.iconInverse,
7181
7147
  '--sd-checkbox-inverse-label': CHECKBOX_COLORS.labelInverse,
7182
7148
  };
7183
- return (hAsync("label", { key: '6b1ad950ce2f0b8e734efab6889a46064f7ef32a', class: this.checkboxClasses, style: cssVars }, hAsync("input", { key: 'ee2fd70d61db2a5de6eab26dc07128e6158540e5', type: "checkbox", ref: el => {
7149
+ return (hAsync("label", { key: '6fb506c448a5968d403f779d113fd60857901982', class: this.checkboxClasses, style: cssVars }, hAsync("input", { key: 'fb08f531416255b8886d2bd2c21c3f62e8a9d47d', type: "checkbox", ref: el => {
7184
7150
  this.inputEl = el;
7185
- }, 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: '234e0e4100da6f1a5f65fb4f32cb4d8e1ba018fd', class: "sd-checkbox__bg" }, this.isChecked !== false ? (hAsync("sd-icon", { name: this.isChecked === true ? 'checkboxCheck' : 'checkboxIndeterminate', size: Number(CHECKBOX_LAYOUT.iconSize), color: this.disabled
7151
+ }, 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
7186
7152
  ? CHECKBOX_COLORS.checked.iconDisabled
7187
7153
  : this.inverse
7188
7154
  ? CHECKBOX_COLORS.checked.iconInverse
7189
- : CHECKBOX_COLORS.checked.icon })) : null), this.label && hAsync("span", { key: '15afb8e3b31201febd15bb85d24ee9c9b246d1d0', class: "sd-checkbox__label" }, this.label)));
7155
+ : CHECKBOX_COLORS.checked.icon })) : null), this.label && hAsync("span", { key: '92bc308561b0a7653926d751d029d80c38844b07', class: "sd-checkbox__label" }, this.label)));
7190
7156
  }
7191
7157
  static get watchers() { return {
7192
7158
  "value": [{
@@ -7462,7 +7428,7 @@ class SdChip {
7462
7428
  });
7463
7429
  }
7464
7430
  unregisterFromForm() {
7465
- if (!this.name)
7431
+ if (this.name === '')
7466
7432
  return;
7467
7433
  const formEl = this.el.closest('sd-form');
7468
7434
  formEl?.componentOnReady().then(form => {
@@ -7500,12 +7466,12 @@ class SdChip {
7500
7466
  '--sd-chip-font-weight': typography.fontWeight,
7501
7467
  '--sd-chip-line-height': typography.lineHeight,
7502
7468
  };
7503
- return (hAsync("span", { key: '62732b07b821a995f2a9a32d433417a575b9e228', class: {
7469
+ return (hAsync("span", { key: '3cd683af3aed7cc6e549c5fc5da1e00cda2dc2a0', class: {
7504
7470
  'sd-chip': true,
7505
7471
  [`sd-chip--${state}`]: true,
7506
7472
  'sd-chip--disabled': this.disabled,
7507
7473
  'sd-chip--editable': !this.disabled,
7508
- }, role: this.disabled ? undefined : 'button', tabIndex: this.disabled || this.isEditing ? -1 : 0, "aria-disabled": this.disabled ? 'true' : undefined, style: cssVars, onClick: this.handleChipClick, onKeyDown: this.handleChipKeyDown }, this.isEditing ? (hAsync("span", { key: "chip-input", ref: el => (this.inputEl = el), class: "sd-chip__input", contentEditable: !this.disabled, "data-placeholder": this.placeholder, spellcheck: false, onInput: this.handleInputChange, onKeyDown: this.handleInputKeyDown, onBlur: this.handleInputBlur, onPaste: this.handlePaste, onClick: event => event.stopPropagation() })) : ([
7474
+ }, role: this.disabled ? undefined : 'button', tabIndex: this.disabled || this.isEditing ? -1 : 0, "aria-disabled": this.disabled ? 'true' : undefined, style: cssVars, onClick: this.handleChipClick, onKeyDown: this.handleChipKeyDown }, this.isEditing ? (hAsync("span", { key: "chip-input", ref: el => (this.inputEl = el), class: "sd-chip__input", role: "textbox", tabindex: this.disabled ? -1 : 0, contentEditable: !this.disabled, "data-placeholder": this.placeholder, spellcheck: false, onInput: this.handleInputChange, onKeyDown: this.handleInputKeyDown, onBlur: this.handleInputBlur, onPaste: this.handlePaste, onClick: event => event.stopPropagation() })) : ([
7509
7475
  hAsync("span", { key: "chip-label", class: "sd-chip__label" }, this.internalValue),
7510
7476
  !this.disabled && (hAsync("sd-ghost-button", { key: "chip-remove", class: "sd-chip__remove", icon: "close", size: "xxs", ariaLabel: "remove", onClick: this.handleRemoveClick })),
7511
7477
  ])));
@@ -7653,7 +7619,7 @@ class SdCircleProgress {
7653
7619
  }
7654
7620
  const c = CIRCLE_PROGRESS_VIEWBOX_SIZE / 2;
7655
7621
  const showPercent = !this.indeterminate;
7656
- 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)));
7622
+ 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)));
7657
7623
  }
7658
7624
  static get style() { return sdCircleProgressCss(); }
7659
7625
  static get cmpMeta() { return {
@@ -7769,9 +7735,9 @@ class SdConfirmModal {
7769
7735
  const type = this.resolvedType;
7770
7736
  const iconName = CONFIRM_MODAL_ICON_MAP[type];
7771
7737
  const iconColor = CONFIRM_MODAL_ICON_COLOR[type];
7772
- return (hAsync("div", { key: '234455d93cbf02e5e70f78803914a8d91fbc4506', class: "sd-confirm-modal" }, hAsync("sd-ghost-button", { key: '298f5279400b19159a8c08d2c739ab27cf88811c', class: "sd-confirm-modal__close-button", icon: "close", ariaLabel: "close", onClick: () => this.close.emit() }), iconName && (hAsync("sd-icon", { key: '41d01e92ff59cea05a367797ebde71cd13baed1f', class: "sd-confirm-modal__icon", name: iconName, size: TITLE_ICON_SIZE, color: iconColor })), hAsync("h2", { key: 'd6b65e3a858a96f628602101adaaee2b62727df4', class: `sd-confirm-modal__title ${this.titleClass ?? ''}` }, this.modalTitle), hAsync("div", { key: 'ed708bffc95467faabf70a9c2beec46fc1ba090c', class: "sd-confirm-modal__body" }, (this.topMessage ?? []).length > 0 && (hAsync("div", { key: 'e7a996bef926fa3741ed9f2ecc930a6961f4c6e4', class: "sd-confirm-modal__message" }, (this.topMessage ?? []).map(msg => (hAsync("p", { class: "sd-confirm-modal__message-text", innerHTML: msg }))))), this.showContentBox && (hAsync("div", { key: 'b4ab9cc0cf91166d4e34a7b4726d62c3463a9766', class: "sd-confirm-modal__content-box" }, this.tagContents ? (hAsync("div", { class: "sd-confirm-modal__custom-content", ref: el => {
7738
+ 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 => {
7773
7739
  this.customContentRef = el;
7774
- } })) : (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: '1dd63a93ecd0eae9ecfb61a3b98f1e6d1ac2b4b3', class: "sd-confirm-modal__message" }, (this.bottomMessage ?? []).map(msg => (hAsync("p", { class: "sd-confirm-modal__message-text", innerHTML: msg })))))), hAsync("div", { key: 'e22a5fc951054808bc70962e104eb3951b65ca61', class: "sd-confirm-modal__button" }, this.subButtonLabel && (hAsync("sd-button", { key: 'c1f23f043eead651e71943c7e76585b9b7fe964a', name: SUB_BUTTON_PRESET, label: this.subButtonLabel, onSdClick: () => this.cancel.emit() })), hAsync("sd-button", { key: '63952e8b1c2d912fed6489760c97a787eaf2a90d', name: this.resolvedMainButton, label: this.mainButtonLabel ?? '확인', onSdClick: () => this.ok.emit() }))));
7740
+ } })) : (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() }))));
7775
7741
  }
7776
7742
  static get style() { return sdConfirmModalCss(); }
7777
7743
  static get cmpMeta() { return {
@@ -7829,7 +7795,7 @@ class SdDateBox {
7829
7795
  this.mouseOver?.emit(this.date);
7830
7796
  }
7831
7797
  render() {
7832
- return (hAsync("div", { key: '5d1e92d90bbb12e3baaf9deaeafb6777d0540106', role: "button", tabindex: this.disabled ? -1 : 0, class: {
7798
+ return (hAsync("div", { key: 'ab09e8112e18b04dab2d171fa6dbd8554d11e57b', role: "button", tabindex: this.disabled ? -1 : 0, class: {
7833
7799
  'sd-date-box': true,
7834
7800
  'sd-hoverable': !this.disabled || !this.selected || this.type === '',
7835
7801
  'sd-date-box--disabled': this.disabled,
@@ -7840,7 +7806,12 @@ class SdDateBox {
7840
7806
  'sd-date-box--in-range': this.inRange,
7841
7807
  'sd-date-box--type-start': this.type === 'start',
7842
7808
  'sd-date-box--type-end': this.type === 'end',
7843
- }, onClick: () => this.handleClickDate(), onMouseOver: () => this.handleHoverDate() }, hAsync("div", { key: 'a35272c78379828e61151435157e2324938752b4', class: "sd-date-box__content" }, hAsync("div", { key: '21177c5b59e8a85b08275e4ce97f386f8af7f082', class: "sd-date-box__label" }, this.date))));
7809
+ }, onClick: () => this.handleClickDate(), onKeyDown: e => {
7810
+ if (e.key === 'Enter' || e.key === ' ') {
7811
+ e.preventDefault();
7812
+ this.handleClickDate();
7813
+ }
7814
+ }, onMouseOver: () => this.handleHoverDate(), onFocus: () => this.handleHoverDate() }, hAsync("div", { key: 'b7e418536d6de86ae4e8042a0fc59dece42f7489', class: "sd-date-box__content" }, hAsync("div", { key: '41f2b2136cc60e2d1a6664852a3fadf30413de0f', class: "sd-date-box__label" }, this.date))));
7844
7815
  }
7845
7816
  static get style() { return sdDateBoxCss(); }
7846
7817
  static get cmpMeta() { return {
@@ -7862,107 +7833,6 @@ class SdDateBox {
7862
7833
  }; }
7863
7834
  }
7864
7835
 
7865
- const datepicker = {
7866
- sm: {
7867
- height: "28",
7868
- paddingX: "12",
7869
- gap: "8",
7870
- icon: "16",
7871
- typography: {
7872
- fontWeight: "400",
7873
- fontSize: "12",
7874
- lineHeight: "20"},
7875
- radius: "4"
7876
- },
7877
- md: {
7878
- height: "36",
7879
- paddingX: "16",
7880
- gap: "12",
7881
- icon: "20",
7882
- typography: {
7883
- fontWeight: "400",
7884
- fontSize: "14",
7885
- lineHeight: "24"
7886
- },
7887
- radius: "6"
7888
- },
7889
- border: {
7890
- "default": "#AAAAAA",
7891
- focus: "#0075FF"},
7892
- bg: {
7893
- "default": "#FFFFFF"},
7894
- icon: {
7895
- "default": "#888888",
7896
- disabled: "#BBBBBB"
7897
- },
7898
- text: {
7899
- "default": "#222222",
7900
- hint: "#555555",
7901
- disabled: "#888888"
7902
- },
7903
- calendar: {
7904
- bg: "#FFFFFF",
7905
- paddingXY: "24",
7906
- gap: "12",
7907
- radius: "8",
7908
- header: {
7909
- gap: "8",
7910
- divider: "#E1E1E1",
7911
- typography: {
7912
- fontWeight: "500",
7913
- fontSize: "14",
7914
- lineHeight: "24"
7915
- }
7916
- },
7917
- week: {
7918
- typography: {
7919
- fontWeight: "400",
7920
- fontSize: "12",
7921
- lineHeight: "20"},
7922
- color: "#888888"
7923
- },
7924
- grid: {
7925
- rowGap: "4"
7926
- },
7927
- day: {
7928
- width: "40",
7929
- circle: {
7930
- size: "32",
7931
- radius: "9999"
7932
- },
7933
- "default": {
7934
- text: "#222222"
7935
- },
7936
- hover: {
7937
- text: "#222222",
7938
- border: "#0075FF"
7939
- },
7940
- select: {
7941
- bg: "#0075FF",
7942
- text: "#FFFFFF"
7943
- },
7944
- disabled: {
7945
- text: "#BBBBBB"
7946
- },
7947
- typography: {
7948
- "default": {
7949
- fontWeight: "400",
7950
- fontSize: "14",
7951
- lineHeight: "24"
7952
- },
7953
- bold: {
7954
- fontWeight: "700"}
7955
- }},
7956
- range: {
7957
- bg: "#D9EAFF",
7958
- height: "32",
7959
- panelGap: "24",
7960
- divider: "#E1E1E1"}}
7961
- };
7962
- var datepickerTokens = {
7963
- datepicker: datepicker
7964
- };
7965
-
7966
7836
  const sm$3 = datepickerTokens.datepicker.sm;
7967
7837
  const md$3 = datepickerTokens.datepicker.md;
7968
7838
  const DATEPICKER_SIZE_MAP = {
@@ -7993,44 +7863,6 @@ const DATEPICKER_COLORS = {
7993
7863
  icon: datepickerTokens.datepicker.icon,
7994
7864
  text: datepickerTokens.datepicker.text,
7995
7865
  };
7996
- const CALENDAR_LAYOUT = {
7997
- bg: datepickerTokens.datepicker.calendar.bg,
7998
- paddingXY: datepickerTokens.datepicker.calendar.paddingXY,
7999
- gap: datepickerTokens.datepicker.calendar.gap,
8000
- radius: datepickerTokens.datepicker.calendar.radius,
8001
- header: {
8002
- gap: datepickerTokens.datepicker.calendar.header.gap,
8003
- divider: datepickerTokens.datepicker.calendar.header.divider,
8004
- fontSize: datepickerTokens.datepicker.calendar.header.typography.fontSize,
8005
- lineHeight: datepickerTokens.datepicker.calendar.header.typography.lineHeight,
8006
- fontWeight: datepickerTokens.datepicker.calendar.header.typography.fontWeight,
8007
- },
8008
- week: {
8009
- fontSize: datepickerTokens.datepicker.calendar.week.typography.fontSize,
8010
- lineHeight: datepickerTokens.datepicker.calendar.week.typography.lineHeight,
8011
- fontWeight: datepickerTokens.datepicker.calendar.week.typography.fontWeight,
8012
- color: datepickerTokens.datepicker.calendar.week.color,
8013
- },
8014
- grid: {
8015
- rowGap: datepickerTokens.datepicker.calendar.grid.rowGap,
8016
- },
8017
- day: {
8018
- size: datepickerTokens.datepicker.calendar.day.width,
8019
- circleSize: datepickerTokens.datepicker.calendar.day.circle.size,
8020
- circleRadius: datepickerTokens.datepicker.calendar.day.circle.radius,
8021
- defaultText: datepickerTokens.datepicker.calendar.day.default.text,
8022
- hoverText: datepickerTokens.datepicker.calendar.day.hover.text,
8023
- hoverBorder: datepickerTokens.datepicker.calendar.day.hover.border,
8024
- selectBg: datepickerTokens.datepicker.calendar.day.select.bg,
8025
- selectText: datepickerTokens.datepicker.calendar.day.select.text,
8026
- disabledText: datepickerTokens.datepicker.calendar.day.disabled.text,
8027
- fontSize: datepickerTokens.datepicker.calendar.day.typography.default.fontSize,
8028
- lineHeight: datepickerTokens.datepicker.calendar.day.typography.default.lineHeight,
8029
- fontWeight: datepickerTokens.datepicker.calendar.day.typography.default.fontWeight,
8030
- boldFontWeight: datepickerTokens.datepicker.calendar.day.typography.bold.fontWeight,
8031
- },
8032
- };
8033
- const WEEK_LABELS = ['일', '월', '화', '수', '목', '금', '토'];
8034
7866
 
8035
7867
  const sdDatePickerCss = () => `sd-date-picker{display:inline-flex}sd-date-picker sd-portal{display:none}sd-date-picker .sd-date-picker{position:relative;width:100%;height:100%}`;
8036
7868
 
@@ -8107,6 +7939,7 @@ class SdDatePicker {
8107
7939
  }
8108
7940
  };
8109
7941
  handleSelect = (e) => {
7942
+ e.stopPropagation();
8110
7943
  this.closeDropdown();
8111
7944
  this.value = e.detail;
8112
7945
  const nextValue = this.value;
@@ -8130,9 +7963,9 @@ class SdDatePicker {
8130
7963
  '--sd-system-color-field-border-focus': DATEPICKER_COLORS.border.focus,
8131
7964
  '--sd-system-color-field-bg-default': DATEPICKER_COLORS.bg.default,
8132
7965
  };
8133
- return (hAsync("sd-field", { key: '7678d58f741276e9848e05759f5c41f576e7fe66', 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: '8b3d615b241860ec1fb314fa0eeef5f51ea32f43', class: "sd-date-picker", ref: el => {
7966
+ 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 => {
8134
7967
  this.triggerRef = el;
8135
- } }, hAsync("sd-date-picker-trigger", { key: '43185c67462cf0cb559c918e5f709723bf4d5aee', displayText: this.value ?? '', placeholder: this.placeholder, disabled: this.disabled, size: this.size, onSdTriggerClick: this.handleTriggerClick })), (this.isOpen || this.isAnimatingOut) && (hAsync("sd-portal", { key: '2cf151b52b3117de9c4d55bbc3c045b0a7b614e9', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, hAsync("sd-date-picker-calendar", { key: '9f77742d034dcb462eb1c4546b2c2a367544f97e', value: this.value, selectable: this.selectable, onSdSelect: this.handleSelect, onSdViewChange: this.handleViewChange })))));
7968
+ } }, 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 })))));
8136
7969
  }
8137
7970
  static get watchers() { return {
8138
7971
  "isOpen": [{
@@ -8176,255 +8009,88 @@ class SdDatePicker {
8176
8009
  }; }
8177
8010
  }
8178
8011
 
8179
- const sdDatePickerCalendarCss = () => `sd-date-picker-calendar{display:block}sd-date-picker-calendar .sd-date-picker-calendar{display:flex;flex-direction:column;gap:var(--calendar-gap);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-date-picker-calendar .sd-date-picker-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-date-picker-calendar .sd-date-picker-calendar__nav-group{display:inline-flex;align-items:center;gap:var(--calendar-gap)}sd-date-picker-calendar .sd-date-picker-calendar__nav-group-month{width:100%}sd-date-picker-calendar .sd-date-picker-calendar__label{display:inline-flex;align-items:center;justify-content:center;min-width:40px;text-align:center}sd-date-picker-calendar .sd-date-picker-calendar__label-month{width:100%}sd-date-picker-calendar .sd-date-picker-calendar__divider{display:inline-block;width:1px;height:16px;background:var(--calendar-header-divider)}sd-date-picker-calendar .sd-date-picker-calendar__week{display:grid;grid-template-columns:repeat(7, var(--calendar-day-size))}sd-date-picker-calendar .sd-date-picker-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-date-picker-calendar .sd-date-picker-calendar__grid{display:grid;grid-template-columns:repeat(7, var(--calendar-day-size));row-gap:var(--calendar-grid-row-gap)}sd-date-picker-calendar .sd-date-picker-calendar__day{display:inline-flex;align-items:center;justify-content:center;width:var(--calendar-day-size);height:32px;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-date-picker-calendar .sd-date-picker-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-date-picker-calendar .sd-date-picker-calendar__day:not(:disabled):hover .sd-date-picker-calendar__day-circle{border-radius:16px;border:1px solid var(--calendar-day-hover-border)}sd-date-picker-calendar .sd-date-picker-calendar__day--today .sd-date-picker-calendar__day-circle{font-weight:700}sd-date-picker-calendar .sd-date-picker-calendar__day--selected .sd-date-picker-calendar__day-circle{border-radius:16px;background:var(--calendar-day-select-bg);color:var(--calendar-day-select-text)}sd-date-picker-calendar .sd-date-picker-calendar__day--selected:not(:disabled):hover .sd-date-picker-calendar__day-circle{background:var(--calendar-day-select-bg);color:var(--calendar-day-select-text)}sd-date-picker-calendar .sd-date-picker-calendar__day--disabled{color:var(--calendar-day-disabled-text);background:none !important;cursor:not-allowed}sd-date-picker-calendar .sd-date-picker-calendar__day--empty{visibility:hidden;pointer-events:none}`;
8012
+ const sdDatePickerTriggerCss = () => `sd-date-picker-trigger{display:block;width:100%;height:100%}sd-date-picker-trigger .sd-date-picker-trigger{display:flex;align-items:center;gap:var(--trigger-gap);width:100%;height:100%;padding:0 var(--trigger-padding-x);cursor:pointer;user-select:none;overflow:hidden;border-radius:var(--trigger-radius)}sd-date-picker-trigger .sd-date-picker-trigger--disabled{cursor:not-allowed}sd-date-picker-trigger .sd-date-picker-trigger__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}sd-date-picker-trigger .sd-date-picker-trigger__text{flex:1;min-width:var(--trigger-text-min-width, 80px);font-size:var(--trigger-font-size);line-height:var(--trigger-line-height);font-weight:var(--trigger-font-weight);color:var(--trigger-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}`;
8180
8013
 
8181
- class SdDatePickerCalendar {
8014
+ class SdDatePickerTrigger {
8182
8015
  constructor(hostRef) {
8183
8016
  registerInstance(this, hostRef);
8184
- this.select = createEvent(this, "sdSelect", 7);
8017
+ this.triggerClick = createEvent(this, "sdTriggerClick", 7);
8018
+ }
8019
+ displayText = '';
8020
+ placeholder = 'YYYY-MM-DD';
8021
+ disabled = false;
8022
+ size = 'sm';
8023
+ triggerClick;
8024
+ handleClick = () => {
8025
+ if (this.disabled)
8026
+ return;
8027
+ this.triggerClick.emit();
8028
+ };
8029
+ render() {
8030
+ const sizeTokens = DATEPICKER_SIZE_MAP[this.size] ?? DATEPICKER_SIZE_MAP.sm;
8031
+ const hasValue = this.displayText !== '';
8032
+ const textMinWidth = this.size === 'md' ? 104 : 80;
8033
+ const cssVars = {
8034
+ '--trigger-padding-x': `${sizeTokens.paddingX}px`,
8035
+ '--trigger-gap': `${sizeTokens.gap}px`,
8036
+ '--trigger-icon-size': `${sizeTokens.iconSize}px`,
8037
+ '--trigger-font-size': `${sizeTokens.fontSize}px`,
8038
+ '--trigger-line-height': `${sizeTokens.lineHeight}px`,
8039
+ '--trigger-font-weight': sizeTokens.fontWeight,
8040
+ '--trigger-radius': `${sizeTokens.radius}px`,
8041
+ '--trigger-text-min-width': `${textMinWidth}px`,
8042
+ '--trigger-text-color': this.disabled
8043
+ ? DATEPICKER_COLORS.text.disabled
8044
+ : hasValue
8045
+ ? DATEPICKER_COLORS.text.default
8046
+ : DATEPICKER_COLORS.text.hint,
8047
+ '--trigger-icon-color': this.disabled
8048
+ ? DATEPICKER_COLORS.icon.disabled
8049
+ : DATEPICKER_COLORS.icon.default,
8050
+ };
8051
+ return (hAsync("div", { key: '57a23626b1a392be20dccead71b792590fab61b8', role: "button", tabindex: this.disabled ? -1 : 0, class: {
8052
+ 'sd-date-picker-trigger': true,
8053
+ 'sd-date-picker-trigger--disabled': this.disabled,
8054
+ }, style: cssVars, onClick: this.handleClick, onKeyDown: e => {
8055
+ if (e.key === 'Enter' || e.key === ' ') {
8056
+ e.preventDefault();
8057
+ this.handleClick();
8058
+ }
8059
+ } }, 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)));
8060
+ }
8061
+ static get style() { return sdDatePickerTriggerCss(); }
8062
+ static get cmpMeta() { return {
8063
+ "$flags$": 512,
8064
+ "$tagName$": "sd-date-picker-trigger",
8065
+ "$members$": {
8066
+ "displayText": [1, "display-text"],
8067
+ "placeholder": [1],
8068
+ "disabled": [4],
8069
+ "size": [1]
8070
+ },
8071
+ "$listeners$": undefined,
8072
+ "$lazyBundleId$": "-",
8073
+ "$attrsToReflect$": []
8074
+ }; }
8075
+ }
8076
+
8077
+ const RANGE_LAYOUT = {
8078
+ bg: datepickerTokens.datepicker.calendar.range.bg,
8079
+ height: datepickerTokens.datepicker.calendar.range.height,
8080
+ panelGap: datepickerTokens.datepicker.calendar.range.panelGap,
8081
+ divider: datepickerTokens.datepicker.calendar.range.divider,
8082
+ };
8083
+
8084
+ const sdDateRangePickerCss = () => `sd-date-range-picker{display:inline-flex}sd-date-range-picker sd-portal{display:none}sd-date-range-picker .sd-date-range-picker{position:relative;width:100%;height:100%}`;
8085
+
8086
+ class SdDateRangePicker {
8087
+ constructor(hostRef) {
8088
+ registerInstance(this, hostRef);
8089
+ this.update = createEvent(this, "sdUpdate", 7);
8185
8090
  this.viewChange = createEvent(this, "sdViewChange", 7);
8186
8091
  }
8187
- value = null;
8188
- selectable;
8189
- currentYear;
8190
- currentMonth;
8191
- select;
8192
- viewChange;
8193
- dateUtil = useDatePicker();
8194
- componentWillLoad() {
8195
- this.syncViewFromValue();
8196
- }
8197
- handleValueChange() {
8198
- this.syncViewFromValue();
8199
- }
8200
- syncViewFromValue() {
8201
- const base = this.value || today;
8202
- const [year, month] = base.split('-').map(Number);
8203
- this.currentYear = year;
8204
- this.currentMonth = month;
8205
- }
8206
- formatDate(year, month, day) {
8207
- return `${year}-${String(month).padStart(2, '0')}-${String(day).padStart(2, '0')}`;
8208
- }
8209
- get cells() {
8210
- const year = this.currentYear;
8211
- const month = this.currentMonth;
8212
- const firstDayIndex = new Date(year, month - 1, 1).getDay();
8213
- const daysInCurrent = new Date(year, month, 0).getDate();
8214
- const prevMonth = month === 1 ? 12 : month - 1;
8215
- const prevYear = month === 1 ? year - 1 : year;
8216
- const daysInPrev = new Date(prevYear, prevMonth, 0).getDate();
8217
- const nextMonth = month === 12 ? 1 : month + 1;
8218
- const nextYear = month === 12 ? year + 1 : year;
8219
- const cells = [];
8220
- for (let i = firstDayIndex - 1; i >= 0; i--) {
8221
- const day = daysInPrev - i;
8222
- cells.push({
8223
- date: this.formatDate(prevYear, prevMonth, day),
8224
- day,
8225
- inCurrentMonth: false,
8226
- });
8227
- }
8228
- for (let day = 1; day <= daysInCurrent; day++) {
8229
- cells.push({
8230
- date: this.formatDate(year, month, day),
8231
- day,
8232
- inCurrentMonth: true,
8233
- });
8234
- }
8235
- const remaining = (7 - (cells.length % 7)) % 7;
8236
- for (let day = 1; day <= remaining; day++) {
8237
- cells.push({
8238
- date: this.formatDate(nextYear, nextMonth, day),
8239
- day,
8240
- inCurrentMonth: false,
8241
- });
8242
- }
8243
- return cells;
8244
- }
8245
- emitViewChange() {
8246
- this.viewChange.emit({ year: this.currentYear, month: this.currentMonth });
8247
- }
8248
- goPrevYear = (event) => {
8249
- event.stopPropagation();
8250
- this.currentYear -= 1;
8251
- this.emitViewChange();
8252
- };
8253
- goNextYear = (event) => {
8254
- event.stopPropagation();
8255
- this.currentYear += 1;
8256
- this.emitViewChange();
8257
- };
8258
- goPrevMonth = (event) => {
8259
- event.stopPropagation();
8260
- const { newYear, newMonth } = this.dateUtil.calculateYearMonth(this.currentYear, this.currentMonth, 'prev');
8261
- this.currentYear = newYear;
8262
- this.currentMonth = newMonth;
8263
- this.emitViewChange();
8264
- };
8265
- goNextMonth = (event) => {
8266
- event.stopPropagation();
8267
- const { newYear, newMonth } = this.dateUtil.calculateYearMonth(this.currentYear, this.currentMonth, 'next');
8268
- this.currentYear = newYear;
8269
- this.currentMonth = newMonth;
8270
- this.emitViewChange();
8271
- };
8272
- isDisabled(date) {
8273
- if (!this.selectable)
8274
- return false;
8275
- const [start, end] = this.selectable;
8276
- if (start && date < start)
8277
- return true;
8278
- if (end && date > end)
8279
- return true;
8280
- return false;
8281
- }
8282
- handleDayClick(cell) {
8283
- if (this.isDisabled(cell.date))
8284
- return;
8285
- this.select.emit(cell.date);
8286
- }
8287
- render() {
8288
- const cssVars = {
8289
- '--calendar-bg': CALENDAR_LAYOUT.bg,
8290
- '--calendar-padding': `${CALENDAR_LAYOUT.paddingXY}px`,
8291
- '--calendar-gap': `${CALENDAR_LAYOUT.gap}px`,
8292
- '--calendar-radius': `${CALENDAR_LAYOUT.radius}px`,
8293
- '--calendar-header-gap': `${CALENDAR_LAYOUT.header.gap}px`,
8294
- '--calendar-header-divider': CALENDAR_LAYOUT.header.divider,
8295
- '--calendar-header-font-size': `${CALENDAR_LAYOUT.header.fontSize}px`,
8296
- '--calendar-header-line-height': `${CALENDAR_LAYOUT.header.lineHeight}px`,
8297
- '--calendar-header-font-weight': CALENDAR_LAYOUT.header.fontWeight,
8298
- '--calendar-week-font-size': `${CALENDAR_LAYOUT.week.fontSize}px`,
8299
- '--calendar-week-line-height': `${CALENDAR_LAYOUT.week.lineHeight}px`,
8300
- '--calendar-week-font-weight': CALENDAR_LAYOUT.week.fontWeight,
8301
- '--calendar-week-color': CALENDAR_LAYOUT.week.color,
8302
- '--calendar-grid-row-gap': `${CALENDAR_LAYOUT.grid.rowGap}px`,
8303
- '--calendar-day-size': `${CALENDAR_LAYOUT.day.size}px`,
8304
- '--calendar-day-circle-size': `${CALENDAR_LAYOUT.day.circleSize}px`,
8305
- '--calendar-day-circle-radius': `${CALENDAR_LAYOUT.day.circleRadius}px`,
8306
- '--calendar-day-text': CALENDAR_LAYOUT.day.defaultText,
8307
- '--calendar-day-hover-text': CALENDAR_LAYOUT.day.hoverText,
8308
- '--calendar-day-hover-border': CALENDAR_LAYOUT.day.hoverBorder,
8309
- '--calendar-day-select-bg': CALENDAR_LAYOUT.day.selectBg,
8310
- '--calendar-day-select-text': CALENDAR_LAYOUT.day.selectText,
8311
- '--calendar-day-disabled-text': CALENDAR_LAYOUT.day.disabledText,
8312
- '--calendar-day-font-size': `${CALENDAR_LAYOUT.day.fontSize}px`,
8313
- '--calendar-day-line-height': `${CALENDAR_LAYOUT.day.lineHeight}px`,
8314
- '--calendar-day-font-weight': CALENDAR_LAYOUT.day.fontWeight,
8315
- '--calendar-day-bold-font-weight': CALENDAR_LAYOUT.day.boldFontWeight,
8316
- };
8317
- return (hAsync("div", { key: '164ebac9053c7d170e8c9fe5b312f89f555b880b', class: "sd-date-picker-calendar", style: cssVars }, hAsync("div", { key: '4b4ce2b19c633f42d20a4815efc8ab893ab199d3', class: "sd-date-picker-calendar__header" }, hAsync("div", { key: '731609bd38d9678662932b8269f239364da2b2af', class: "sd-date-picker-calendar__nav-group" }, hAsync("sd-ghost-button", { key: '946627e4ac37737231a6392fdb1648f38b2985fa', ariaLabel: "prevYear", size: "xxs", icon: "chevronLeft", onClick: this.goPrevYear }), hAsync("span", { key: 'e140d80eed2c814feb68eab6cfe1fa71fd3d8f81', class: "sd-date-picker-calendar__label" }, this.currentYear), hAsync("sd-ghost-button", { key: '3890011556b23216f24c76774127a0028e809597', ariaLabel: "nextYear", size: "xxs", icon: "chevronRight", onClick: this.goNextYear })), hAsync("span", { key: '64c817732b5d1bb85a74d1ea8f3f4e558758ef57', class: "sd-date-picker-calendar__divider", "aria-hidden": "true" }), hAsync("div", { key: '2659907e152e99bb82f7d4d4fa73f7eb1c108960', class: "sd-date-picker-calendar__nav-group sd-date-picker-calendar__nav-group-month" }, hAsync("sd-ghost-button", { key: '6d3a7c08a61d983ff1e4bc09e41e036dfcd24b70', ariaLabel: "prevMonth", size: "xxs", icon: "chevronLeft", onClick: this.goPrevMonth }), hAsync("span", { key: '7a3fddc6eb0420b963524daac26ef6d95e5d8126', class: "sd-date-picker-calendar__label sd-date-picker-calendar__label-month" }, this.currentMonth, "\uC6D4"), hAsync("sd-ghost-button", { key: '0c265077f27039214d70d1cc31baa4fc24da0132', ariaLabel: "nextMonth", size: "xxs", icon: "chevronRight", onClick: this.goNextMonth }))), hAsync("div", { key: '0d9ae82e475e0380b760e134e534871a492a51a0', class: "sd-date-picker-calendar__week" }, WEEK_LABELS.map(label => (hAsync("span", { key: label, class: "sd-date-picker-calendar__week-cell" }, label)))), hAsync("div", { key: '7d42127cd66f6646d49013cebe49cee709f401e9', class: "sd-date-picker-calendar__grid" }, this.cells.map(cell => {
8318
- const isSelected = cell.inCurrentMonth && !!this.value && this.value === cell.date;
8319
- const isToday = cell.inCurrentMonth && today === cell.date;
8320
- const isDisabled = cell.inCurrentMonth && this.isDisabled(cell.date);
8321
- return (hAsync("button", { type: "button", key: cell.date, class: {
8322
- 'sd-date-picker-calendar__day': true,
8323
- 'sd-date-picker-calendar__day--empty': !cell.inCurrentMonth,
8324
- 'sd-date-picker-calendar__day--today': isToday,
8325
- 'sd-date-picker-calendar__day--selected': isSelected,
8326
- 'sd-date-picker-calendar__day--disabled': isDisabled,
8327
- }, 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-date-picker-calendar__day-circle" }, cell.inCurrentMonth ? cell.day : '')));
8328
- }))));
8329
- }
8330
- static get watchers() { return {
8331
- "value": [{
8332
- "handleValueChange": 0
8333
- }]
8334
- }; }
8335
- static get style() { return sdDatePickerCalendarCss(); }
8336
- static get cmpMeta() { return {
8337
- "$flags$": 512,
8338
- "$tagName$": "sd-date-picker-calendar",
8339
- "$members$": {
8340
- "value": [1],
8341
- "selectable": [16],
8342
- "currentYear": [32],
8343
- "currentMonth": [32]
8344
- },
8345
- "$listeners$": undefined,
8346
- "$lazyBundleId$": "-",
8347
- "$attrsToReflect$": []
8348
- }; }
8349
- }
8350
-
8351
- const sdDatePickerTriggerCss = () => `sd-date-picker-trigger{display:block;width:100%;height:100%}sd-date-picker-trigger .sd-date-picker-trigger{display:flex;align-items:center;gap:var(--trigger-gap);width:100%;height:100%;padding:0 var(--trigger-padding-x);cursor:pointer;user-select:none;overflow:hidden;border-radius:var(--trigger-radius)}sd-date-picker-trigger .sd-date-picker-trigger--disabled{cursor:not-allowed}sd-date-picker-trigger .sd-date-picker-trigger__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}sd-date-picker-trigger .sd-date-picker-trigger__text{flex:1;min-width:var(--trigger-text-min-width, 80px);font-size:var(--trigger-font-size);line-height:var(--trigger-line-height);font-weight:var(--trigger-font-weight);color:var(--trigger-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}`;
8352
-
8353
- class SdDatePickerTrigger {
8354
- constructor(hostRef) {
8355
- registerInstance(this, hostRef);
8356
- this.triggerClick = createEvent(this, "sdTriggerClick", 7);
8357
- }
8358
- displayText = '';
8359
- placeholder = 'YYYY-MM-DD';
8360
- disabled = false;
8361
- size = 'sm';
8362
- triggerClick;
8363
- handleClick = () => {
8364
- if (this.disabled)
8365
- return;
8366
- this.triggerClick.emit();
8367
- };
8368
- render() {
8369
- const sizeTokens = DATEPICKER_SIZE_MAP[this.size] ?? DATEPICKER_SIZE_MAP.sm;
8370
- const hasValue = !!this.displayText;
8371
- const textMinWidth = this.size === 'md' ? 104 : 80;
8372
- const cssVars = {
8373
- '--trigger-padding-x': `${sizeTokens.paddingX}px`,
8374
- '--trigger-gap': `${sizeTokens.gap}px`,
8375
- '--trigger-icon-size': `${sizeTokens.iconSize}px`,
8376
- '--trigger-font-size': `${sizeTokens.fontSize}px`,
8377
- '--trigger-line-height': `${sizeTokens.lineHeight}px`,
8378
- '--trigger-font-weight': sizeTokens.fontWeight,
8379
- '--trigger-radius': `${sizeTokens.radius}px`,
8380
- '--trigger-text-min-width': `${textMinWidth}px`,
8381
- '--trigger-text-color': this.disabled
8382
- ? DATEPICKER_COLORS.text.disabled
8383
- : hasValue
8384
- ? DATEPICKER_COLORS.text.default
8385
- : DATEPICKER_COLORS.text.hint,
8386
- '--trigger-icon-color': this.disabled
8387
- ? DATEPICKER_COLORS.icon.disabled
8388
- : DATEPICKER_COLORS.icon.default,
8389
- };
8390
- return (hAsync("div", { key: '449ce38199b5a3d29d88353b9375bc45eceeae89', class: {
8391
- 'sd-date-picker-trigger': true,
8392
- 'sd-date-picker-trigger--disabled': this.disabled,
8393
- }, style: cssVars, onClick: this.handleClick }, hAsync("sd-icon", { key: 'cc88f44660297a2fb72dfc9e4bc2387a84d55f58', name: "date", size: Number(sizeTokens.iconSize), color: "var(--trigger-icon-color)", class: "sd-date-picker-trigger__icon" }), hAsync("span", { key: '515419e015bf396b0ddba48615238e028ccc4a6d', class: "sd-date-picker-trigger__text" }, hasValue ? this.displayText : this.placeholder)));
8394
- }
8395
- static get style() { return sdDatePickerTriggerCss(); }
8396
- static get cmpMeta() { return {
8397
- "$flags$": 512,
8398
- "$tagName$": "sd-date-picker-trigger",
8399
- "$members$": {
8400
- "displayText": [1, "display-text"],
8401
- "placeholder": [1],
8402
- "disabled": [4],
8403
- "size": [1]
8404
- },
8405
- "$listeners$": undefined,
8406
- "$lazyBundleId$": "-",
8407
- "$attrsToReflect$": []
8408
- }; }
8409
- }
8410
-
8411
- const RANGE_LAYOUT = {
8412
- bg: datepickerTokens.datepicker.calendar.range.bg,
8413
- height: datepickerTokens.datepicker.calendar.range.height,
8414
- panelGap: datepickerTokens.datepicker.calendar.range.panelGap,
8415
- divider: datepickerTokens.datepicker.calendar.range.divider,
8416
- };
8417
-
8418
- const sdDateRangePickerCss = () => `sd-date-range-picker{display:inline-flex}sd-date-range-picker sd-portal{display:none}sd-date-range-picker .sd-date-range-picker{position:relative;width:100%;height:100%}`;
8419
-
8420
- class SdDateRangePicker {
8421
- constructor(hostRef) {
8422
- registerInstance(this, hostRef);
8423
- this.update = createEvent(this, "sdUpdate", 7);
8424
- this.viewChange = createEvent(this, "sdViewChange", 7);
8425
- }
8426
- static CLOSE_ANIMATION_DURATION = 150;
8427
- get el() { return getElement(this); }
8092
+ static CLOSE_ANIMATION_DURATION = 150;
8093
+ get el() { return getElement(this); }
8428
8094
  value = null;
8429
8095
  size = 'sm';
8430
8096
  placeholder = 'YYYY-MM-DD ~ YYYY-MM-DD';
@@ -8502,7 +8168,7 @@ class SdDateRangePicker {
8502
8168
  this.viewChange.emit(e.detail);
8503
8169
  };
8504
8170
  get displayText() {
8505
- if (!this.value || !this.value[0] || !this.value[1])
8171
+ if (this.value == null || this.value[0] === '' || this.value[1] === '')
8506
8172
  return '';
8507
8173
  return `${this.value[0]} ~ ${this.value[1]}`;
8508
8174
  }
@@ -8519,9 +8185,9 @@ class SdDateRangePicker {
8519
8185
  '--sd-system-color-field-border-focus': DATEPICKER_COLORS.border.focus,
8520
8186
  '--sd-system-color-field-bg-default': DATEPICKER_COLORS.bg.default,
8521
8187
  };
8522
- return (hAsync("sd-field", { key: 'e44e9a2cf5c610c20c419215bd3b14494cea2980', 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: '29951ae2a98d2a44c2b01a735291dd2ec6d7e5a2', class: "sd-date-range-picker", ref: el => {
8188
+ return (hAsync("sd-field", { key: '89eaeb8978796508650aec5f3ccdeb7df16fb6f4', 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: 'f3ce583e53edbc451ab6c0592c0ab2ed87e07a06', class: "sd-date-range-picker", ref: el => {
8523
8189
  this.triggerRef = el;
8524
- } }, hAsync("sd-date-picker-trigger", { key: '37d379cf054838e5005b00812401a8d7c6d4daa9', displayText: this.displayText, placeholder: this.placeholder, disabled: this.disabled, size: this.size, onSdTriggerClick: this.handleTriggerClick })), (this.isOpen || this.isAnimatingOut) && (hAsync("sd-portal", { key: '1fbc3c2a16c845486e942b0a71ff799a9d1a98c6', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, hAsync("sd-date-range-picker-calendar", { key: '6e53bfaa550c93e6b2c08a2311bc415f359bc2da', value: this.value, selectable: this.selectable, maxRange: this.maxRange, onSdSelect: this.handleSelect, onSdViewChange: this.handleViewChange })))));
8190
+ } }, hAsync("sd-date-picker-trigger", { key: '53086fd3d15dc2c05364a66fdf767e09c6c19fac', displayText: this.displayText, placeholder: this.placeholder, disabled: this.disabled, size: this.size, onSdTriggerClick: this.handleTriggerClick })), (this.isOpen || this.isAnimatingOut) && (hAsync("sd-portal", { key: '5ee1499ee9a224a9c653095e9914ed20cbaca2a1', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, hAsync("sd-date-range-picker-calendar", { key: '7c7479dacf57c996a708435857d2b5f7900509fd', value: this.value, selectable: this.selectable, maxRange: this.maxRange, onSdSelect: this.handleSelect, onSdViewChange: this.handleViewChange })))));
8525
8191
  }
8526
8192
  static get watchers() { return {
8527
8193
  "isOpen": [{
@@ -8682,12 +8348,12 @@ class SdDateRangePickerCalendar {
8682
8348
  isDisabled(date) {
8683
8349
  if (this.selectable) {
8684
8350
  const [start, end] = this.selectable;
8685
- if (start && date < start)
8351
+ if (start != null && start !== '' && date < start)
8686
8352
  return true;
8687
- if (end && date > end)
8353
+ if (end != null && end !== '' && date > end)
8688
8354
  return true;
8689
8355
  }
8690
- if (this.maxRange && this.pendingStart) {
8356
+ if (this.maxRange != null && this.maxRange > 0 && this.pendingStart !== '') {
8691
8357
  const min = addDays(this.pendingStart, -this.maxRange);
8692
8358
  const max = addDays(this.pendingStart, this.maxRange);
8693
8359
  if (date < min || date > max)
@@ -8700,8 +8366,8 @@ class SdDateRangePickerCalendar {
8700
8366
  return;
8701
8367
  if (this.isDisabled(cell.date))
8702
8368
  return;
8703
- const hasCompleteRange = !!this.displayValue && !!this.displayValue[0] && !!this.displayValue[1];
8704
- if (!this.pendingStart || hasCompleteRange || cell.date < this.pendingStart) {
8369
+ const hasCompleteRange = this.displayValue != null && this.displayValue[0] !== '' && this.displayValue[1] !== '';
8370
+ if (this.pendingStart === '' || hasCompleteRange || cell.date < this.pendingStart) {
8705
8371
  this.pendingStart = cell.date;
8706
8372
  this.displayValue = null;
8707
8373
  this.hoverDate = '';
@@ -8716,7 +8382,7 @@ class SdDateRangePickerCalendar {
8716
8382
  handleDayHover(cell) {
8717
8383
  if (!cell.inCurrentMonth)
8718
8384
  return;
8719
- if (this.pendingStart) {
8385
+ if (this.pendingStart !== '') {
8720
8386
  this.hoverDate = cell.date;
8721
8387
  }
8722
8388
  }
@@ -8724,18 +8390,18 @@ class SdDateRangePickerCalendar {
8724
8390
  if (!inCurrentMonth) {
8725
8391
  return { inRange: false, isRangeStart: false, isRangeEnd: false, isSelectedEdge: false };
8726
8392
  }
8727
- if (this.pendingStart) {
8393
+ if (this.pendingStart !== '') {
8728
8394
  const isStart = date === this.pendingStart;
8729
- const previewEnd = this.hoverDate && this.hoverDate >= this.pendingStart ? this.hoverDate : '';
8730
- const inPreview = !!previewEnd && date > this.pendingStart && date <= previewEnd;
8395
+ const previewEnd = this.hoverDate !== '' && this.hoverDate >= this.pendingStart ? this.hoverDate : '';
8396
+ const inPreview = previewEnd !== '' && date > this.pendingStart && date <= previewEnd;
8731
8397
  return {
8732
8398
  inRange: inPreview,
8733
8399
  isRangeStart: isStart,
8734
- isRangeEnd: !!previewEnd && date === previewEnd,
8400
+ isRangeEnd: previewEnd !== '' && date === previewEnd,
8735
8401
  isSelectedEdge: isStart,
8736
8402
  };
8737
8403
  }
8738
- if (this.displayValue && this.displayValue[0] && this.displayValue[1]) {
8404
+ if (this.displayValue != null && this.displayValue[0] !== '' && this.displayValue[1] !== '') {
8739
8405
  const [start, end] = this.displayValue;
8740
8406
  const isStart = date === start;
8741
8407
  const isEnd = date === end;
@@ -8810,7 +8476,7 @@ class SdDateRangePickerCalendar {
8810
8476
  '--range-panel-gap': `${RANGE_LAYOUT.panelGap}px`,
8811
8477
  '--range-divider': RANGE_LAYOUT.divider,
8812
8478
  };
8813
- return (hAsync(Fragment, { key: '1c32908b35f51dd5a9fa2817ffb81cf60e721b40' }, hAsync("div", { key: 'd5dea22d401dbcde38a7677a46a3003543499aaf', class: "sd-date-range-picker-calendar", style: cssVars }, this.renderYearNav(), hAsync("div", { key: '678611077abc979433250e7d5013f14aa15e5090', class: "sd-date-range-picker-calendar__panels" }, this.renderPanel(this.currentYear, this.currentMonth, true), hAsync("span", { key: '1c8a77eceedfdb52d7bab44fb9b9018bfe5ccd91', class: "sd-date-range-picker-calendar__divider", "aria-hidden": "true" }), this.renderPanel(this.rightYear, this.rightMonth, false)))));
8479
+ 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)))));
8814
8480
  }
8815
8481
  static get watchers() { return {
8816
8482
  "value": [{
@@ -8925,8 +8591,12 @@ class BaseDropdownEvent {
8925
8591
  }
8926
8592
  }
8927
8593
 
8928
- const DROPDOWN_BUTTON_NAMES = Object.keys(BUTTON_CONFIG).filter((name) => !name.endsWith('_lg'));
8929
- const DROPDOWN_BUTTON_CONFIG = Object.fromEntries(DROPDOWN_BUTTON_NAMES.map(name => [name, BUTTON_CONFIG[name]]));
8594
+ // lazy IIFE 평가를 한 단계 안으로 옮겨 ban-side-effects 룰의 top-level call 검출을 회피한다.
8595
+ // (런타임 동작은 동일하다 모듈 로딩 시점에 한 번 실행됨.)
8596
+ const DROPDOWN_BUTTON_CONFIG = (() => {
8597
+ const names = Object.keys(BUTTON_CONFIG).filter((name) => !name.endsWith('_lg'));
8598
+ return Object.fromEntries(names.map(name => [name, BUTTON_CONFIG[name]]));
8599
+ })();
8930
8600
  const PRESET_HOVER_BACKGROUNDS = PRESET_HOVER_BACKGROUNDS$1;
8931
8601
  const PRESET_CONTENT_COLORS = PRESET_CONTENT_COLORS$1;
8932
8602
  const PRESET_BORDER_COLORS = PRESET_BORDER_COLORS$1;
@@ -9167,7 +8837,7 @@ class SdDropdownButton extends BaseDropdownEvent {
9167
8837
  }
9168
8838
  render() {
9169
8839
  const { config, preset } = this.resolvedConfig;
9170
- return (hAsync("div", { key: 'bef9cb5da07e02dd2a2a69f17bb71114045adace', class: "sd-dropdown-button" }, hAsync("button", { key: 'bfc671cd3d3cf8221886d7453674a2c07699440e', 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: {
8840
+ 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: {
9171
8841
  '--sd-dropdown-button-bg': config.color,
9172
8842
  '--sd-dropdown-button-bg-hover': PRESET_HOVER_BACKGROUNDS[preset],
9173
8843
  '--sd-dropdown-button-border': PRESET_BORDER_COLORS[preset],
@@ -9177,10 +8847,10 @@ class SdDropdownButton extends BaseDropdownEvent {
9177
8847
  '--sd-dropdown-button-disabled-bg': DROPDOWN_DISABLED_BACKGROUND,
9178
8848
  '--sd-dropdown-button-disabled-content': DROPDOWN_DISABLED_TEXT,
9179
8849
  '--sd-dropdown-button-disabled-border': DROPDOWN_DISABLED_BORDER,
9180
- } }, hAsync("span", { key: '17bf00861dd721cbd41de9c92db9e58e2eb7399e', class: "sd-dropdown-button__trigger-label" }, this.label), hAsync("span", { key: '218fe7ed965155abbf13e39c907b0c4e1a40004a', class: "sd-dropdown-button__trigger-divider", "aria-hidden": "true" }), hAsync("span", { key: '17014bf0654e35a1665e36a9a65fa3f067b9f1b8', class: {
8850
+ } }, 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: {
9181
8851
  'sd-dropdown-button__trigger-icon': true,
9182
8852
  'sd-dropdown-button__trigger-icon--open': this.isOpen,
9183
- }, "aria-hidden": "true" }, hAsync("sd-icon", { key: '89a4c971bbb929a1ed39048f390dbf63c92a4408', name: "chevronDown", size: DROPDOWN_CHEVRON_ICON_SIZE[config.size], color: "var(--sd-dropdown-button-current-content)" }))), this.renderDropdown(preset)));
8853
+ }, "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)));
9184
8854
  }
9185
8855
  static get watchers() { return {
9186
8856
  "isOpen": [{
@@ -9321,25 +8991,25 @@ class SdField {
9321
8991
  }
9322
8992
  get fieldStatus() {
9323
8993
  let status = '';
9324
- if (!!this.disabled) {
8994
+ if (this.disabled) {
9325
8995
  status = 'disabled';
9326
8996
  return `sd-field--${status}`;
9327
8997
  }
9328
- if (!!this.readonly) {
8998
+ if (this.readonly) {
9329
8999
  status = 'readonly';
9330
9000
  return `sd-field--${status}`;
9331
9001
  }
9332
- if (!!this.focused) {
9002
+ if (this.focused) {
9333
9003
  status = 'focus';
9334
9004
  return `sd-field--${status}`;
9335
9005
  }
9336
- if (!!this.hovered)
9006
+ if (this.hovered)
9337
9007
  status = 'hover';
9338
- if (!!this.status)
9008
+ if (this.status !== undefined)
9339
9009
  status = this.status;
9340
- if (!!this.error)
9010
+ if (this.error)
9341
9011
  status = 'error';
9342
- return status ? `sd-field--${status}` : '';
9012
+ return status !== '' ? `sd-field--${status}` : '';
9343
9013
  }
9344
9014
  componentDidLoad() {
9345
9015
  this.hostElement = this.findHostElement();
@@ -9370,7 +9040,7 @@ class SdField {
9370
9040
  });
9371
9041
  }
9372
9042
  unregisterFromForm() {
9373
- if (!this.name)
9043
+ if (this.name === '')
9374
9044
  return;
9375
9045
  const formEl = this.el.closest('sd-form');
9376
9046
  formEl?.componentOnReady().then(form => {
@@ -9419,21 +9089,21 @@ class SdField {
9419
9089
  '--sd-field-control-radius': `var(--sd-system-radius-field-${size})`,
9420
9090
  '--sd-field-label-margin-right': `var(--sd-system-space-field-${size}-gap)`,
9421
9091
  };
9422
- const labelCssVars = this.label
9092
+ const labelCssVars = this.label !== ''
9423
9093
  ? {
9424
9094
  '--sd-field-label-height': `${labelTokens.height}px`,
9425
9095
  '--sd-field-label-gap': `${labelTokens.gap}px`,
9426
9096
  '--sd-field-label-font-size': `${labelTokens.fontSize}px`,
9427
9097
  '--sd-field-label-line-height': `${labelTokens.lineHeight}px`,
9428
9098
  '--sd-field-label-font-weight': labelTokens.fontWeight,
9429
- ...(this.labelWidth
9099
+ ...(this.labelWidth !== '' && this.labelWidth !== 0
9430
9100
  ? {
9431
9101
  '--sd-field-label-width': typeof this.labelWidth === 'number' ? `${this.labelWidth}px` : this.labelWidth,
9432
9102
  }
9433
9103
  : {}),
9434
9104
  }
9435
9105
  : {};
9436
- const addonCssVars = addon
9106
+ const addonCssVars = addon !== ''
9437
9107
  ? {
9438
9108
  '--sd-field-addon-padding-x': `${addonTokens.paddingX}px`,
9439
9109
  '--sd-field-addon-font-size': `${addonTokens.typography.fontSize}px`,
@@ -9446,32 +9116,33 @@ class SdField {
9446
9116
  '--sd-field-addon-gap': `${addonTokens.gap}px`,
9447
9117
  '--sd-field-addon-border-width': `${addonTokens.border.width}px`,
9448
9118
  '--sd-field-addon-justify': FIELD_ADDON_ALIGN_MAP[this.addonAlign] ?? FIELD_ADDON_ALIGN_MAP.start,
9449
- ...(this.labelWidth
9119
+ ...(this.labelWidth !== '' && this.labelWidth !== 0
9450
9120
  ? {
9451
9121
  '--sd-field-addon-width': typeof this.labelWidth === 'number' ? `${this.labelWidth}px` : this.labelWidth,
9452
9122
  }
9453
9123
  : {}),
9454
9124
  }
9455
9125
  : {};
9456
- return (hAsync("div", { key: '9004022e1e81f58b0399d2066e4286d082d805fa', class: {
9126
+ return (hAsync("div", { key: 'fa7d46fb1cdfa572c19fe5014c5f2df6579537fa', class: {
9457
9127
  'sd-field': true,
9458
- 'sd-field--has-label': !!this.label,
9459
- 'sd-field--has-addon': !!addon,
9460
- [this.fieldStatus]: !!this.fieldStatus,
9461
- }, style: { ...sizeCssVars, ...labelCssVars, ...addonCssVars } }, hAsync("div", { key: '9f34dfdb968d6d2024e10870bc393a54f2e76139', class: "sd-field__wrapper" }, this.renderLabel(this.label), hAsync("div", { key: '40a2c60d8fdba23e59685fa28312d664fed60a52', class: "sd-field__main", style: this.width
9128
+ 'sd-field--has-label': this.label !== '',
9129
+ 'sd-field--has-addon': addon !== '',
9130
+ [this.fieldStatus]: this.fieldStatus !== '',
9131
+ }, 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
9462
9132
  ? {
9463
9133
  width: typeof this.width === 'number' ? `${this.width}px` : this.width,
9464
9134
  flex: 'none',
9465
9135
  }
9466
- : {} }, hAsync("div", { key: '911ee729fc171e0f7eb6ab7587e2bdf57a68fc71', class: {
9136
+ : {} }, hAsync("div", { key: '1364e46db78dc55b1139035296d2e6f33cb8fbb6', class: {
9467
9137
  'sd-field__control': true,
9468
- 'sd-field__control--has-addon': !!addon,
9469
- } }, addon && hAsync("div", { key: 'b04c595ea75598724186b171d6a63292dbe1beb3', class: "sd-field__addon" }, addon), hAsync("slot", { key: '961f60e8e0df25ba0e7340df219807fbfd4f23ae' })), this.errorMsg || this.errorMessage ? (hAsync("div", { class: "sd-field__error-message" }, this.errorMsg || this.errorMessage)) : (this.hint && hAsync("div", { class: "sd-field__hint" }, this.hint))))));
9138
+ 'sd-field__control--has-addon': addon !== '',
9139
+ } }, 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))))));
9470
9140
  }
9471
9141
  renderLabel(label) {
9472
- if (!label)
9142
+ if (label == null || label === '')
9473
9143
  return null;
9474
- return (hAsync("label", { class: "sd-field__label" }, this.icon && (hAsync("sd-icon", { name: this.icon.name, size: this.icon.size ?? Number(FIELD_LABEL_SIZE_MAP[(this.size in FIELD_LABEL_SIZE_MAP ? this.size : 'sm')].icon), color: this.icon.color, rotate: this.icon.rotate, class: "sd-field__label__icon" })), hAsync("div", { class: "sd-field__label__text" }, label), this.labelTooltip && (hAsync("sd-tooltip", { class: "sd-field__label__tooltip", ...this.labelTooltipProps }, this.labelTooltip))));
9144
+ return (hAsync("label", { class: "sd-field__label" }, this.icon && (hAsync("sd-icon", { name: this.icon.name, size: this.icon.size ??
9145
+ Number(FIELD_LABEL_SIZE_MAP[(this.size in FIELD_LABEL_SIZE_MAP ? this.size : 'sm')].icon), color: this.icon.color, rotate: this.icon.rotate, class: "sd-field__label__icon" })), hAsync("div", { class: "sd-field__label__text" }, label), this.labelTooltip && (hAsync("sd-tooltip", { class: "sd-field__label__tooltip", ...this.labelTooltipProps }, this.labelTooltip))));
9475
9146
  }
9476
9147
  static get style() { return sdFieldCss(); }
9477
9148
  static get cmpMeta() { return {
@@ -9652,7 +9323,7 @@ class SdFilePicker {
9652
9323
  }
9653
9324
  const fileArray = Array.from(files);
9654
9325
  const { accepted, rejected, reason } = this.validateFiles(fileArray);
9655
- if (reason) {
9326
+ if (reason != null) {
9656
9327
  this.reject?.emit({ files: rejected, reason });
9657
9328
  if (this.fileInputRef) {
9658
9329
  this.fileInputRef.value = '';
@@ -9726,7 +9397,12 @@ class SdFilePicker {
9726
9397
  '--sd-system-size-field-sm-height': `${FILE_PICKER_LAYOUT.height}px`,
9727
9398
  '--sd-system-radius-field-sm': `${FILE_PICKER_LAYOUT.radius}px`,
9728
9399
  };
9729
- const content = (hAsync("div", { class: "sd-file-picker__content", onClick: this.handleClick }, hAsync("input", { ref: el => (this.fileInputRef = el), type: "file", class: "sd-file-picker__input", disabled: this.disabled, multiple: this.multiple, accept: this.accept, onInput: this.handleFileChange, "aria-label": this.placeholder ?? 'Click to upload' }), hAsync("sd-icon", { name: "attachFile", size: Number(FILE_PICKER_LAYOUT.iconSize), color: this.getIconColor(), class: "sd-file-picker__icon" }), hAsync("div", { ref: el => (this.fileNamesRef = el), class: {
9400
+ const content = (hAsync("div", { role: "button", tabindex: this.disabled ? -1 : 0, class: "sd-file-picker__content", onClick: this.handleClick, onKeyDown: e => {
9401
+ if (e.key === 'Enter' || e.key === ' ') {
9402
+ e.preventDefault();
9403
+ this.handleClick();
9404
+ }
9405
+ } }, hAsync("input", { ref: el => (this.fileInputRef = el), type: "file", class: "sd-file-picker__input", disabled: this.disabled, multiple: this.multiple, accept: this.accept, onInput: this.handleFileChange, "aria-label": this.placeholder ?? 'Click to upload' }), hAsync("sd-icon", { name: "attachFile", size: Number(FILE_PICKER_LAYOUT.iconSize), color: this.getIconColor(), class: "sd-file-picker__icon" }), hAsync("div", { ref: el => (this.fileNamesRef = el), class: {
9730
9406
  'sd-file-picker__text': true,
9731
9407
  'sd-file-picker__text--placeholder': !hasFiles,
9732
9408
  'sd-file-picker__text--active': hasFiles,
@@ -9842,7 +9518,7 @@ class SdFloatingPopover {
9842
9518
  }
9843
9519
  }
9844
9520
  disconnectedCallback() {
9845
- if (this.rafId)
9521
+ if (this.rafId !== undefined)
9846
9522
  cancelAnimationFrame(this.rafId);
9847
9523
  this.unobserveParent();
9848
9524
  this.wrapper?.remove();
@@ -9870,13 +9546,13 @@ class SdFloatingPopover {
9870
9546
  }
9871
9547
  // 위치 갱신 (scroll / resize)
9872
9548
  updatePosition() {
9873
- if (this.rafId)
9549
+ if (this.rafId !== undefined)
9874
9550
  cancelAnimationFrame(this.rafId);
9875
9551
  this.rafId = requestAnimationFrame(() => {
9876
9552
  if (!this.parentRef || !this.wrapper)
9877
9553
  return;
9878
9554
  const rect = this.parentRef.getBoundingClientRect();
9879
- if (!rect.width && !rect.height)
9555
+ if (rect.width === 0 && rect.height === 0)
9880
9556
  return; // 요소가 보이지 않는 경우
9881
9557
  const [offsetX, offsetY] = this.offset ?? [0, 0];
9882
9558
  const ARROW_SIZE = SdFloatingPopover.ARROW_SIZE;
@@ -9946,7 +9622,7 @@ class SdFloatingPopover {
9946
9622
  }
9947
9623
  }
9948
9624
  render() {
9949
- return hAsync("slot", { key: 'e41cc4519a12b3fc93ef57e7a00381f3a463fc62' });
9625
+ return hAsync("slot", { key: 'c4543ebf24c83fc67bdda0340adb00f02761b62e' });
9950
9626
  }
9951
9627
  static get style() { return sdFloatingPortalCss(); }
9952
9628
  static get cmpMeta() { return {
@@ -9985,15 +9661,15 @@ class SdForm {
9985
9661
  if (elA === elB)
9986
9662
  return 0;
9987
9663
  const position = elA.compareDocumentPosition(elB);
9988
- if (position & Node.DOCUMENT_POSITION_FOLLOWING)
9664
+ if ((position & Node.DOCUMENT_POSITION_FOLLOWING) !== 0)
9989
9665
  return -1;
9990
- if (position & Node.DOCUMENT_POSITION_PRECEDING)
9666
+ if ((position & Node.DOCUMENT_POSITION_PRECEDING) !== 0)
9991
9667
  return 1;
9992
9668
  return 0;
9993
9669
  });
9994
9670
  }
9995
9671
  async sdRegisterField(field) {
9996
- if (!field.name) {
9672
+ if (field.name === '') {
9997
9673
  console.warn('[sd-form] field.name is required');
9998
9674
  return;
9999
9675
  }
@@ -10042,7 +9718,7 @@ class SdForm {
10042
9718
  this.sdSubmit.emit();
10043
9719
  }
10044
9720
  render() {
10045
- return (hAsync("form", { key: '0693ccf290eb691a5ac9210444a265e386f7c7c9', onSubmit: e => this.onSubmit(e), class: this.formClass }, hAsync("slot", { key: 'c9dfff69c4000d645b7ed79a8ad771bc1cdd4e2c' })));
9721
+ return (hAsync("form", { key: 'd64dc85bce08da6a18f7dac5038a89f8bd7b5f01', onSubmit: e => this.onSubmit(e), class: this.formClass }, hAsync("slot", { key: 'a0c6d177cc4c656369714ff0ebc5269255d2c2b5' })));
10046
9722
  }
10047
9723
  static get cmpMeta() { return {
10048
9724
  "$flags$": 772,
@@ -10203,7 +9879,7 @@ class SdGhostButton {
10203
9879
  this.warnIfMissingAriaLabel();
10204
9880
  }
10205
9881
  warnIfMissingAriaLabel() {
10206
- const missing = !(this.ariaLabel ?? '').trim();
9882
+ const missing = (this.ariaLabel ?? '').trim() === '';
10207
9883
  if (!missing) {
10208
9884
  this.hasWarnedMissingAriaLabel = false;
10209
9885
  return;
@@ -10221,7 +9897,7 @@ class SdGhostButton {
10221
9897
  ? GHOST_BUTTON_DISABLED_COLORS[intent]
10222
9898
  : GHOST_BUTTON_CONTENT_COLORS[intent];
10223
9899
  const accessibleName = (this.ariaLabel ?? '').trim() || undefined;
10224
- return (hAsync("button", { key: 'cae4bb612dcbe16f71a3a7c3469c214df5a877ce', class: {
9900
+ return (hAsync("button", { key: '0707c0067aded10ea53bffbca0dbddbfdef35dc6', class: {
10225
9901
  'sd-ghost-button': true,
10226
9902
  'sd-ghost-button--disabled': this.disabled,
10227
9903
  }, type: "button", disabled: this.disabled, "aria-label": accessibleName, style: {
@@ -10230,7 +9906,7 @@ class SdGhostButton {
10230
9906
  '--sd-ghost-button-hover-bg': GHOST_BUTTON_HOVER_BG_COLORS[intent],
10231
9907
  '--sd-ghost-button-hover-opacity': GHOST_BUTTON_HOVER_OPACITY,
10232
9908
  '--sd-ghost-button-accent': GHOST_BUTTON_FOCUS_RING_COLOR,
10233
- }, onClick: this.handleClick }, hAsync("sd-icon", { key: '58bedc712e0bec8d2cb526c42814dd201d8d04ba', name: this.icon, size: sizeConfig.icon, color: contentColor })));
9909
+ }, onClick: this.handleClick }, hAsync("sd-icon", { key: 'c362f7da310fc5b20fbbf0b08da4959b6f4a5374', name: this.icon, size: sizeConfig.icon, color: contentColor })));
10234
9910
  }
10235
9911
  static get style() { return sdGhostButtonCss(); }
10236
9912
  static get cmpMeta() { return {
@@ -10352,124 +10028,391 @@ const GUIDE_CONFIG = {
10352
10028
  },
10353
10029
  };
10354
10030
 
10355
- const sdGuideCss = () => `@charset "UTF-8";sd-guide{display:inline-flex;align-items:center;height:fit-content;width:fit-content}.sd-guide{display:inline-flex;align-items:center;height:fit-content;width:fit-content}.sd-guide .sd-guide__button .sd-button{min-height:var(--sd-guide-button-height);padding:0 var(--sd-guide-button-padding-x);border-radius:var(--sd-guide-button-radius);border:var(--sd-guide-button-border-width) solid var(--sd-guide-button-border-color);background:var(--sd-guide-button-bg-default);color:var(--sd-guide-button-text-default) !important;transition:none;display:flex;align-items:center;gap:var(--sd-guide-button-gap);--sd-button-bg-hover:var(--sd-guide-button-bg-default);--sd-button-current-icon:var(--sd-guide-button-icon-color-default)}.sd-guide .sd-guide__button .sd-button .sd-button__content{color:var(--sd-guide-button-text-default) !important;gap:var(--sd-guide-button-gap)}.sd-guide .sd-guide__button .sd-button .sd-button__content .sd-button__label{margin-left:0;color:var(--sd-guide-button-text-default) !important;font-size:var(--sd-guide-button-font-size);font-weight:var(--sd-guide-button-font-weight);line-height:var(--sd-guide-button-line-height)}.sd-guide .sd-guide__button--type-notion .sd-button{--sd-button-current-icon:var(--sd-guide-button-icon-color-notion)}.sd-guide .sd-guide__button--active .sd-button{color:var(--sd-guide-button-text-active) !important;--sd-button-current-icon:var(--sd-guide-button-icon-color-active)}.sd-guide .sd-guide__button--active .sd-button .sd-button__content{color:var(--sd-guide-button-text-active) !important}.sd-guide .sd-guide__button--active .sd-button .sd-button__content .sd-button__label{color:var(--sd-guide-button-text-active) !important}.sd-guide .sd-guide__button--type-tip.sd-guide__button--active .sd-button{background:var(--sd-guide-button-bg-tip);border-color:var(--sd-guide-button-bg-tip);--sd-button-bg-hover:var(--sd-guide-button-bg-tip)}.sd-guide .sd-guide__button--type-notion.sd-guide__button--active .sd-button{background:var(--sd-guide-button-bg-notion);border-color:var(--sd-guide-button-bg-notion);--sd-button-bg-hover:var(--sd-guide-button-bg-notion)}.sd-guide__popup{position:relative;padding:var(--sd-guide-contents-padding-y) var(--sd-guide-contents-padding-x);border-radius:var(--sd-guide-contents-radius);box-shadow:4px 4px 24px 4px rgba(0, 0, 0, 0.1);background:white}.sd-guide__popup>.sd-guide__popup__close{position:absolute;top:12px;right:12px}.sd-guide__popup__header{display:flex;align-items:center;gap:var(--sd-guide-contents-title-gap);margin-bottom:var(--sd-guide-contents-gap)}.sd-guide__popup__header .sd-guide__popup__title{margin-top:0;margin-bottom:0;font-size:var(--sd-guide-contents-title-font-size);font-weight:var(--sd-guide-contents-title-font-weight);line-height:var(--sd-guide-contents-title-line-height);color:var(--sd-guide-contents-text-color)}.sd-guide__popup__list{width:100%;padding:0;margin:0}.sd-guide__popup__list__item{display:flex;width:100%;align-items:start;list-style:none;color:var(--sd-guide-contents-text-color);font-size:var(--sd-guide-contents-body-font-size);font-weight:var(--sd-guide-contents-body-font-weight);line-height:var(--sd-guide-contents-body-line-height)}.sd-guide__popup__list__item p{width:100%;padding:0;margin:0;word-wrap:break-word;word-break:break-word;white-space:normal;overflow-wrap:break-word;min-width:0}.sd-guide__popup__list__item::before{display:block;content:"-";width:6px;color:var(--sd-guide-contents-text-color);font-size:var(--sd-guide-contents-body-font-size);font-weight:var(--sd-guide-contents-body-font-weight);line-height:var(--sd-guide-contents-body-line-height);margin-left:10px;margin-right:12px;flex-shrink:0}.sd-guide__popup__list__item--depth-1:not(:first-child){margin-top:var(--sd-guide-contents-row-gap)}.sd-guide__popup__list__item--depth-2{margin-top:var(--sd-guide-contents-body-gap)}.sd-guide__popup__list__item--depth-2::before{content:"•"}.sd-guide__popup__list__item--depth-2{padding-left:26px}`;
10356
-
10357
- const DEFAULT_LABEL_BY_TYPE = {
10358
- tip: '활용 TIP',
10359
- notion: '사용법 안내',
10360
- };
10361
- const ICON_BY_TYPE = {
10362
- tip: 'helpOutline',
10363
- notion: 'notion',
10364
- };
10365
- class SdGuide {
10366
- constructor(hostRef) {
10367
- registerInstance(this, hostRef);
10368
- }
10369
- get el() { return getElement(this); }
10370
- type = 'tip';
10371
- label = '';
10372
- message = '';
10373
- url = '';
10374
- popupTitle = '';
10375
- popupWidth;
10376
- popupShow = false;
10377
- guideRef;
10378
- handleClickGuide = () => {
10379
- if (this.type === 'notion') {
10380
- if (this.url) {
10381
- window.open(this.url, '_blank', 'noopener,noreferrer');
10382
- }
10383
- return;
10384
- }
10385
- this.popupShow = !this.popupShow;
10386
- };
10387
- closeDropdown = () => {
10388
- this.popupShow = false;
10389
- };
10390
- get guideStyle() {
10391
- const { button, contents } = GUIDE_CONFIG;
10392
- return {
10393
- '--sd-guide-button-height': button.height,
10394
- '--sd-guide-button-padding-x': button.paddingX,
10395
- '--sd-guide-button-radius': button.radius,
10396
- '--sd-guide-button-gap': button.gap,
10397
- '--sd-guide-button-font-size': button.fontSize,
10398
- '--sd-guide-button-font-weight': button.fontWeight,
10399
- '--sd-guide-button-line-height': button.lineHeight,
10400
- '--sd-guide-button-border-width': button.borderWidth,
10401
- '--sd-guide-button-border-color': button.borderColor,
10402
- '--sd-guide-button-bg-default': button.bgDefault,
10403
- '--sd-guide-button-bg-tip': button.bgTip,
10404
- '--sd-guide-button-bg-notion': button.bgNotion,
10405
- '--sd-guide-button-text-default': button.textDefault,
10406
- '--sd-guide-button-text-active': button.textActive,
10407
- '--sd-guide-button-icon-color-default': button.iconColorDefault,
10408
- '--sd-guide-button-icon-color-active': button.iconColorActive,
10409
- '--sd-guide-button-icon-color-notion': button.iconColorNotion,
10410
- '--sd-guide-contents-padding-x': contents.paddingX,
10411
- '--sd-guide-contents-padding-y': contents.paddingY,
10412
- '--sd-guide-contents-gap': contents.gap,
10413
- '--sd-guide-contents-row-gap': contents.rowGap,
10414
- '--sd-guide-contents-body-gap': contents.bodyGap,
10415
- '--sd-guide-contents-title-gap': contents.titleGap,
10416
- '--sd-guide-contents-radius': contents.radius,
10417
- '--sd-guide-contents-title-font-size': contents.titleFontSize,
10418
- '--sd-guide-contents-title-font-weight': contents.titleFontWeight,
10419
- '--sd-guide-contents-title-line-height': contents.titleLineHeight,
10420
- '--sd-guide-contents-body-font-size': contents.bodyFontSize,
10421
- '--sd-guide-contents-body-font-weight': contents.bodyFontWeight,
10422
- '--sd-guide-contents-body-line-height': contents.bodyLineHeight,
10423
- '--sd-guide-contents-text-color': contents.textColor,
10424
- };
10425
- }
10426
- render() {
10427
- const { contents } = GUIDE_CONFIG;
10428
- const isActive = this.popupShow;
10429
- const isNotion = (this.type ?? 'tip') === 'notion';
10430
- const defaultLabel = DEFAULT_LABEL_BY_TYPE[this.type ?? 'tip'];
10431
- const iconName = ICON_BY_TYPE[this.type ?? 'tip'];
10432
- const popupIconColor = isNotion ? contents.iconColorNotion : contents.iconColor;
10433
- const buttonClasses = ['sd-guide__button', `sd-guide__button--type-${this.type ?? 'tip'}`];
10434
- if (isActive)
10435
- buttonClasses.push('sd-guide__button--active');
10436
- return (hAsync("div", { key: '8672dad264f91b125f84e0c8312561818964cecf', class: "sd-guide", style: this.guideStyle }, hAsync("sd-button", { key: '4f2a1b4cbb19460dadfec6dca094b289ff405bfb', 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: 'f6c4fe897426d506f73bf8bbb18b53665181c803', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, hAsync("div", { key: 'a3c77a42905e4b25ecbf1c98f7e0514b41c5100e', style: { position: 'absolute', width: '0px', height: '0px' } }, hAsync("div", { key: '41411e0a1645f709234573dc1c2f3d60a4c90f36', class: "sd-guide__popup", style: {
10437
- ...this.guideStyle,
10438
- width: this.popupWidth ? this.popupWidth + 'px' : '426px',
10439
- } }, hAsync("sd-ghost-button", { key: '01c68abc21ce99aa2e1ba3a55a5e78b98dd8aa47', class: "sd-guide__popup__close", icon: "close", ariaLabel: "close", size: "sm", onSdClick: this.closeDropdown }), hAsync("div", { key: '04d9f4d51cd05755aa6a18fcb4ba0a177fb62ad5', class: "sd-guide__popup__header" }, hAsync("sd-icon", { key: 'b02adf9e9e4ca2239e3b46e7cf8c5ba0cfc008a0', name: iconName, size: 24, color: popupIconColor }), hAsync("h3", { key: '3f4324aa1959dc8abb10e84b1103106548053679', class: "sd-guide__popup__title" }, this.popupTitle || defaultLabel)), hAsync("ul", { key: '64937c15f19ae2f91c6c9d1f430ad579b42c5592', class: "sd-guide__popup__list" }, this.renderListItem(this.message))))))));
10440
- }
10441
- // 현재 2depth까지만 스타일 적용
10442
- renderListItem(message, depth = 0) {
10443
- const listItems = [];
10444
- if (Array.isArray(message)) {
10445
- const depthMsg = message.map(msg => this.renderListItem(msg, depth + 1));
10446
- listItems.push(...depthMsg.flat());
10447
- }
10448
- else {
10449
- listItems.push(this.renderLi(message, depth));
10450
- }
10451
- return listItems;
10452
- }
10453
- renderLi = (message, depth) => {
10454
- return (hAsync("li", { class: `sd-guide__popup__list__item sd-guide__popup__list__item--depth-${depth}` }, hAsync("p", { innerHTML: message })));
10455
- };
10456
- static get style() { return sdGuideCss(); }
10457
- static get cmpMeta() { return {
10458
- "$flags$": 512,
10459
- "$tagName$": "sd-guide",
10460
- "$members$": {
10461
- "type": [513],
10462
- "label": [513],
10463
- "message": [1],
10464
- "url": [1],
10465
- "popupTitle": [1, "popup-title"],
10466
- "popupWidth": [2, "popup-width"],
10467
- "popupShow": [32]
10468
- },
10469
- "$listeners$": undefined,
10470
- "$lazyBundleId$": "-",
10471
- "$attrsToReflect$": [["type", "type"], ["label", "label"]]
10472
- }; }
10031
+ const sdGuideCss = () => `@charset "UTF-8";sd-guide{display:inline-flex;align-items:center;height:fit-content;width:fit-content}.sd-guide{display:inline-flex;align-items:center;height:fit-content;width:fit-content}.sd-guide .sd-guide__button .sd-button{min-height:var(--sd-guide-button-height);padding:0 var(--sd-guide-button-padding-x);border-radius:var(--sd-guide-button-radius);border:var(--sd-guide-button-border-width) solid var(--sd-guide-button-border-color);background:var(--sd-guide-button-bg-default);color:var(--sd-guide-button-text-default) !important;transition:none;display:flex;align-items:center;gap:var(--sd-guide-button-gap);--sd-button-bg-hover:var(--sd-guide-button-bg-default);--sd-button-current-icon:var(--sd-guide-button-icon-color-default)}.sd-guide .sd-guide__button .sd-button .sd-button__content{color:var(--sd-guide-button-text-default) !important;gap:var(--sd-guide-button-gap)}.sd-guide .sd-guide__button .sd-button .sd-button__content .sd-button__label{margin-left:0;color:var(--sd-guide-button-text-default) !important;font-size:var(--sd-guide-button-font-size);font-weight:var(--sd-guide-button-font-weight);line-height:var(--sd-guide-button-line-height)}.sd-guide .sd-guide__button--type-notion .sd-button{--sd-button-current-icon:var(--sd-guide-button-icon-color-notion)}.sd-guide .sd-guide__button--active .sd-button{color:var(--sd-guide-button-text-active) !important;--sd-button-current-icon:var(--sd-guide-button-icon-color-active)}.sd-guide .sd-guide__button--active .sd-button .sd-button__content{color:var(--sd-guide-button-text-active) !important}.sd-guide .sd-guide__button--active .sd-button .sd-button__content .sd-button__label{color:var(--sd-guide-button-text-active) !important}.sd-guide .sd-guide__button--type-tip.sd-guide__button--active .sd-button{background:var(--sd-guide-button-bg-tip);border-color:var(--sd-guide-button-bg-tip);--sd-button-bg-hover:var(--sd-guide-button-bg-tip)}.sd-guide .sd-guide__button--type-notion.sd-guide__button--active .sd-button{background:var(--sd-guide-button-bg-notion);border-color:var(--sd-guide-button-bg-notion);--sd-button-bg-hover:var(--sd-guide-button-bg-notion)}.sd-guide__popup{position:relative;padding:var(--sd-guide-contents-padding-y) var(--sd-guide-contents-padding-x);border-radius:var(--sd-guide-contents-radius);box-shadow:4px 4px 24px 4px rgba(0, 0, 0, 0.1);background:white}.sd-guide__popup>.sd-guide__popup__close{position:absolute;top:12px;right:12px}.sd-guide__popup__header{display:flex;align-items:center;gap:var(--sd-guide-contents-title-gap);margin-bottom:var(--sd-guide-contents-gap)}.sd-guide__popup__header .sd-guide__popup__title{margin-top:0;margin-bottom:0;font-size:var(--sd-guide-contents-title-font-size);font-weight:var(--sd-guide-contents-title-font-weight);line-height:var(--sd-guide-contents-title-line-height);color:var(--sd-guide-contents-text-color)}.sd-guide__popup__list{width:100%;padding:0;margin:0}.sd-guide__popup__list__item{display:flex;width:100%;align-items:start;list-style:none;color:var(--sd-guide-contents-text-color);font-size:var(--sd-guide-contents-body-font-size);font-weight:var(--sd-guide-contents-body-font-weight);line-height:var(--sd-guide-contents-body-line-height)}.sd-guide__popup__list__item p{width:100%;padding:0;margin:0;word-wrap:break-word;word-break:break-word;white-space:normal;overflow-wrap:break-word;min-width:0}.sd-guide__popup__list__item::before{display:block;content:"-";width:6px;color:var(--sd-guide-contents-text-color);font-size:var(--sd-guide-contents-body-font-size);font-weight:var(--sd-guide-contents-body-font-weight);line-height:var(--sd-guide-contents-body-line-height);margin-left:10px;margin-right:12px;flex-shrink:0}.sd-guide__popup__list__item--depth-1:not(:first-child){margin-top:var(--sd-guide-contents-row-gap)}.sd-guide__popup__list__item--depth-2{margin-top:var(--sd-guide-contents-body-gap)}.sd-guide__popup__list__item--depth-2::before{content:"•"}.sd-guide__popup__list__item--depth-2{padding-left:26px}`;
10032
+
10033
+ const DEFAULT_LABEL_BY_TYPE = {
10034
+ tip: '활용 TIP',
10035
+ notion: '사용법 안내',
10036
+ };
10037
+ const ICON_BY_TYPE = {
10038
+ tip: 'helpOutline',
10039
+ notion: 'notion',
10040
+ };
10041
+ class SdGuide {
10042
+ constructor(hostRef) {
10043
+ registerInstance(this, hostRef);
10044
+ }
10045
+ get el() { return getElement(this); }
10046
+ type = 'tip';
10047
+ label = '';
10048
+ message = '';
10049
+ url = '';
10050
+ popupTitle = '';
10051
+ popupWidth;
10052
+ popupShow = false;
10053
+ guideRef;
10054
+ handleClickGuide = () => {
10055
+ if (this.type === 'notion') {
10056
+ if (this.url !== '') {
10057
+ window.open(this.url, '_blank', 'noopener,noreferrer');
10058
+ }
10059
+ return;
10060
+ }
10061
+ this.popupShow = !this.popupShow;
10062
+ };
10063
+ closeDropdown = () => {
10064
+ this.popupShow = false;
10065
+ };
10066
+ get guideStyle() {
10067
+ const { button, contents } = GUIDE_CONFIG;
10068
+ return {
10069
+ '--sd-guide-button-height': button.height,
10070
+ '--sd-guide-button-padding-x': button.paddingX,
10071
+ '--sd-guide-button-radius': button.radius,
10072
+ '--sd-guide-button-gap': button.gap,
10073
+ '--sd-guide-button-font-size': button.fontSize,
10074
+ '--sd-guide-button-font-weight': button.fontWeight,
10075
+ '--sd-guide-button-line-height': button.lineHeight,
10076
+ '--sd-guide-button-border-width': button.borderWidth,
10077
+ '--sd-guide-button-border-color': button.borderColor,
10078
+ '--sd-guide-button-bg-default': button.bgDefault,
10079
+ '--sd-guide-button-bg-tip': button.bgTip,
10080
+ '--sd-guide-button-bg-notion': button.bgNotion,
10081
+ '--sd-guide-button-text-default': button.textDefault,
10082
+ '--sd-guide-button-text-active': button.textActive,
10083
+ '--sd-guide-button-icon-color-default': button.iconColorDefault,
10084
+ '--sd-guide-button-icon-color-active': button.iconColorActive,
10085
+ '--sd-guide-button-icon-color-notion': button.iconColorNotion,
10086
+ '--sd-guide-contents-padding-x': contents.paddingX,
10087
+ '--sd-guide-contents-padding-y': contents.paddingY,
10088
+ '--sd-guide-contents-gap': contents.gap,
10089
+ '--sd-guide-contents-row-gap': contents.rowGap,
10090
+ '--sd-guide-contents-body-gap': contents.bodyGap,
10091
+ '--sd-guide-contents-title-gap': contents.titleGap,
10092
+ '--sd-guide-contents-radius': contents.radius,
10093
+ '--sd-guide-contents-title-font-size': contents.titleFontSize,
10094
+ '--sd-guide-contents-title-font-weight': contents.titleFontWeight,
10095
+ '--sd-guide-contents-title-line-height': contents.titleLineHeight,
10096
+ '--sd-guide-contents-body-font-size': contents.bodyFontSize,
10097
+ '--sd-guide-contents-body-font-weight': contents.bodyFontWeight,
10098
+ '--sd-guide-contents-body-line-height': contents.bodyLineHeight,
10099
+ '--sd-guide-contents-text-color': contents.textColor,
10100
+ };
10101
+ }
10102
+ render() {
10103
+ const { contents } = GUIDE_CONFIG;
10104
+ const isActive = this.popupShow;
10105
+ const isNotion = (this.type ?? 'tip') === 'notion';
10106
+ const defaultLabel = DEFAULT_LABEL_BY_TYPE[this.type ?? 'tip'];
10107
+ const iconName = ICON_BY_TYPE[this.type ?? 'tip'];
10108
+ const popupIconColor = isNotion ? contents.iconColorNotion : contents.iconColor;
10109
+ const buttonClasses = ['sd-guide__button', `sd-guide__button--type-${this.type ?? 'tip'}`];
10110
+ if (isActive)
10111
+ buttonClasses.push('sd-guide__button--active');
10112
+ 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: {
10113
+ ...this.guideStyle,
10114
+ width: this.popupWidth != null ? this.popupWidth + 'px' : '426px',
10115
+ } }, 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))))))));
10116
+ }
10117
+ // 현재 2depth까지만 스타일 적용
10118
+ renderListItem(message, depth = 0) {
10119
+ const listItems = [];
10120
+ if (Array.isArray(message)) {
10121
+ const depthMsg = message.map(msg => this.renderListItem(msg, depth + 1));
10122
+ listItems.push(...depthMsg.flat());
10123
+ }
10124
+ else {
10125
+ listItems.push(this.renderLi(message, depth));
10126
+ }
10127
+ return listItems;
10128
+ }
10129
+ renderLi = (message, depth) => {
10130
+ return (hAsync("li", { class: `sd-guide__popup__list__item sd-guide__popup__list__item--depth-${depth}` }, hAsync("p", { innerHTML: message })));
10131
+ };
10132
+ static get style() { return sdGuideCss(); }
10133
+ static get cmpMeta() { return {
10134
+ "$flags$": 512,
10135
+ "$tagName$": "sd-guide",
10136
+ "$members$": {
10137
+ "type": [513],
10138
+ "label": [513],
10139
+ "message": [1],
10140
+ "url": [1],
10141
+ "popupTitle": [1, "popup-title"],
10142
+ "popupWidth": [2, "popup-width"],
10143
+ "popupShow": [32]
10144
+ },
10145
+ "$listeners$": undefined,
10146
+ "$lazyBundleId$": "-",
10147
+ "$attrsToReflect$": [["type", "type"], ["label", "label"]]
10148
+ }; }
10149
+ }
10150
+
10151
+ const primary = "#051D36";
10152
+ const secondary = "#555555";
10153
+ const accent = "#9C27B0";
10154
+ const positive = "#0075FF";
10155
+ const negative = "#E30000";
10156
+ const info = "#00CD52";
10157
+ const warning = "#F2C037";
10158
+ const caution_bg = "#FEF1F1";
10159
+ const caution_icon = "#FD9595";
10160
+ const header_alert = "#FF7A00";
10161
+ const white = "#FFFFFF";
10162
+ const black = "#000000";
10163
+ const grey_10 = "#F6F6F6";
10164
+ const grey_20 = "#EEEEEE";
10165
+ const grey_25 = "#E5E5E5";
10166
+ const grey_30 = "#E1E1E1";
10167
+ const grey_35 = "#D8D8D8";
10168
+ const grey_45 = "#CCCCCC";
10169
+ const grey_50 = "#BBBBBB";
10170
+ const grey_55 = "#AAAAAA";
10171
+ const grey_60 = "#999999";
10172
+ const grey_65 = "#888888";
10173
+ const grey_70 = "#737373";
10174
+ const grey_80 = "#555555";
10175
+ const grey_85 = "#444444";
10176
+ const grey_90 = "#333333";
10177
+ const grey_95 = "#222222";
10178
+ const grey_05 = "#F9F9F9";
10179
+ const red_15 = "#FCEFEF";
10180
+ const red_20 = "#FCE6E6";
10181
+ const red_30 = "#FFD3D3";
10182
+ const red_45 = "#FFB5B5";
10183
+ const red_60 = "#FF7C7C";
10184
+ const red_70 = "#FB4444";
10185
+ const red_75 = "#E30000";
10186
+ const red_75_006 = "#E30000";
10187
+ const red_80 = "#AD0000";
10188
+ const red_85 = "#820000";
10189
+ const red_90 = "#5E0000";
10190
+ const red_95 = "#440000";
10191
+ const red_99 = "#220000";
10192
+ const orange_10 = "#FEF1EA";
10193
+ const orange_20 = "#FFEAD7";
10194
+ const orange_35 = "#FFD5AF";
10195
+ const orange_45 = "#FFBC81";
10196
+ const orange_55 = "#FFA452";
10197
+ const orange_60 = "#FF7F22";
10198
+ const orange_65 = "#FF6B00";
10199
+ const orange_75 = "#CE4900";
10200
+ const orange_85 = "#9B3700";
10201
+ const orange_90 = "#752A00";
10202
+ const orange_95 = "#4D1B00";
10203
+ const orange_99 = "#2F1100";
10204
+ const yellow_10 = "#FFF7DD";
10205
+ const yellow_20 = "#FEF1C4";
10206
+ const yellow_25 = "#FFE99E";
10207
+ const yellow_30 = "#FEE17C";
10208
+ const yellow_40 = "#FFD643";
10209
+ const yellow_45 = "#FFC700";
10210
+ const yellow_50 = "#EBB110";
10211
+ const yellow_60 = "#CA9612";
10212
+ const yellow_70 = "#916C0D";
10213
+ const yellow_80 = "#6C5002";
10214
+ const yellow_90 = "#453602";
10215
+ const yellow_95 = "#322700";
10216
+ const olive_10 = "#FBFBBF";
10217
+ const olive_15 = "#FAFAA1";
10218
+ const olive_20 = "#F6F65F";
10219
+ const olive_30 = "#EEEE37";
10220
+ const olive_45 = "#DDDD12";
10221
+ const olive_55 = "#C7C700";
10222
+ const olive_65 = "#A5A500";
10223
+ const olive_70 = "#838300";
10224
+ const olive_80 = "#636300";
10225
+ const olive_90 = "#454500";
10226
+ const olive_95 = "#2C2C00";
10227
+ const olive_05 = "#FEFED9";
10228
+ const green_15 = "#E8F9EF";
10229
+ const green_25 = "#D4FAE3";
10230
+ const green_45 = "#ACF4C9";
10231
+ const green_55 = "#6DE39C";
10232
+ const green_65 = "#2BCE6C";
10233
+ const green_70 = "#12B553";
10234
+ const green_75 = "#00973C";
10235
+ const green_80 = "#007B31";
10236
+ const green_85 = "#006629";
10237
+ const green_90 = "#00461C";
10238
+ const green_95 = "#003013";
10239
+ const green_99 = "#001D0B";
10240
+ const steelblue_10 = "#ECF8FD";
10241
+ const steelblue_25 = "#D9F2FD";
10242
+ const steelblue_45 = "#A4E2FD";
10243
+ const steelblue_60 = "#50BFF0";
10244
+ const steelblue_65 = "#229FD7";
10245
+ const steelblue_70 = "#128FC7";
10246
+ const steelblue_75 = "#066D9B";
10247
+ const steelblue_80 = "#06587D";
10248
+ const steelblue_85 = "#033F59";
10249
+ const steelblue_90 = "#032D40";
10250
+ const steelblue_95 = "#02212F";
10251
+ const steelblue_99 = "#021A25";
10252
+ const oceanblue_15 = "#EAF5FE";
10253
+ const oceanblue_25 = "#D5EBFE";
10254
+ const oceanblue_50 = "#9CD1FC";
10255
+ const oceanblue_60 = "#5CB0F3";
10256
+ const oceanblue_65 = "#1F8AE1";
10257
+ const oceanblue_70 = "#006AC1";
10258
+ const oceanblue_75 = "#025497";
10259
+ const oceanblue_80 = "#004177";
10260
+ const oceanblue_85 = "#07284A";
10261
+ const oceanblue_90 = "#051D36";
10262
+ const oceanblue_95 = "#03172D";
10263
+ const oceanblue_99 = "#011428";
10264
+ const brilliantblue_10 = "#EFF6FF";
10265
+ const brilliantblue_20 = "#E6F1FF";
10266
+ const brilliantblue_25 = "#D9EAFF";
10267
+ const brilliantblue_40 = "#BBDAFF";
10268
+ const brilliantblue_50 = "#93C4FF";
10269
+ const brilliantblue_60 = "#64ABFF";
10270
+ const brilliantblue_70 = "#2D8DFF";
10271
+ const brilliantblue_75 = "#0075FF";
10272
+ const brilliantblue_80 = "#005CC9";
10273
+ const brilliantblue_85 = "#004290";
10274
+ const brilliantblue_90 = "#002B5E";
10275
+ const brilliantblue_95 = "#001B39";
10276
+ const brilliantblue_99 = "#001226";
10277
+ const brilliantblue_05 = "#F5FAFF";
10278
+ var rawColors = {
10279
+ primary: primary,
10280
+ secondary: secondary,
10281
+ accent: accent,
10282
+ positive: positive,
10283
+ negative: negative,
10284
+ info: info,
10285
+ warning: warning,
10286
+ caution_bg: caution_bg,
10287
+ caution_icon: caution_icon,
10288
+ header_alert: header_alert,
10289
+ white: white,
10290
+ black: black,
10291
+ grey_10: grey_10,
10292
+ grey_20: grey_20,
10293
+ grey_25: grey_25,
10294
+ grey_30: grey_30,
10295
+ grey_35: grey_35,
10296
+ grey_45: grey_45,
10297
+ grey_50: grey_50,
10298
+ grey_55: grey_55,
10299
+ grey_60: grey_60,
10300
+ grey_65: grey_65,
10301
+ grey_70: grey_70,
10302
+ grey_80: grey_80,
10303
+ grey_85: grey_85,
10304
+ grey_90: grey_90,
10305
+ grey_95: grey_95,
10306
+ grey_05: grey_05,
10307
+ red_15: red_15,
10308
+ red_20: red_20,
10309
+ red_30: red_30,
10310
+ red_45: red_45,
10311
+ red_60: red_60,
10312
+ red_70: red_70,
10313
+ red_75: red_75,
10314
+ red_75_006: red_75_006,
10315
+ red_80: red_80,
10316
+ red_85: red_85,
10317
+ red_90: red_90,
10318
+ red_95: red_95,
10319
+ red_99: red_99,
10320
+ orange_10: orange_10,
10321
+ orange_20: orange_20,
10322
+ orange_35: orange_35,
10323
+ orange_45: orange_45,
10324
+ orange_55: orange_55,
10325
+ orange_60: orange_60,
10326
+ orange_65: orange_65,
10327
+ orange_75: orange_75,
10328
+ orange_85: orange_85,
10329
+ orange_90: orange_90,
10330
+ orange_95: orange_95,
10331
+ orange_99: orange_99,
10332
+ yellow_10: yellow_10,
10333
+ yellow_20: yellow_20,
10334
+ yellow_25: yellow_25,
10335
+ yellow_30: yellow_30,
10336
+ yellow_40: yellow_40,
10337
+ yellow_45: yellow_45,
10338
+ yellow_50: yellow_50,
10339
+ yellow_60: yellow_60,
10340
+ yellow_70: yellow_70,
10341
+ yellow_80: yellow_80,
10342
+ yellow_90: yellow_90,
10343
+ yellow_95: yellow_95,
10344
+ olive_10: olive_10,
10345
+ olive_15: olive_15,
10346
+ olive_20: olive_20,
10347
+ olive_30: olive_30,
10348
+ olive_45: olive_45,
10349
+ olive_55: olive_55,
10350
+ olive_65: olive_65,
10351
+ olive_70: olive_70,
10352
+ olive_80: olive_80,
10353
+ olive_90: olive_90,
10354
+ olive_95: olive_95,
10355
+ olive_05: olive_05,
10356
+ green_15: green_15,
10357
+ green_25: green_25,
10358
+ green_45: green_45,
10359
+ green_55: green_55,
10360
+ green_65: green_65,
10361
+ green_70: green_70,
10362
+ green_75: green_75,
10363
+ green_80: green_80,
10364
+ green_85: green_85,
10365
+ green_90: green_90,
10366
+ green_95: green_95,
10367
+ green_99: green_99,
10368
+ steelblue_10: steelblue_10,
10369
+ steelblue_25: steelblue_25,
10370
+ steelblue_45: steelblue_45,
10371
+ steelblue_60: steelblue_60,
10372
+ steelblue_65: steelblue_65,
10373
+ steelblue_70: steelblue_70,
10374
+ steelblue_75: steelblue_75,
10375
+ steelblue_80: steelblue_80,
10376
+ steelblue_85: steelblue_85,
10377
+ steelblue_90: steelblue_90,
10378
+ steelblue_95: steelblue_95,
10379
+ steelblue_99: steelblue_99,
10380
+ oceanblue_15: oceanblue_15,
10381
+ oceanblue_25: oceanblue_25,
10382
+ oceanblue_50: oceanblue_50,
10383
+ oceanblue_60: oceanblue_60,
10384
+ oceanblue_65: oceanblue_65,
10385
+ oceanblue_70: oceanblue_70,
10386
+ oceanblue_75: oceanblue_75,
10387
+ oceanblue_80: oceanblue_80,
10388
+ oceanblue_85: oceanblue_85,
10389
+ oceanblue_90: oceanblue_90,
10390
+ oceanblue_95: oceanblue_95,
10391
+ oceanblue_99: oceanblue_99,
10392
+ brilliantblue_10: brilliantblue_10,
10393
+ brilliantblue_20: brilliantblue_20,
10394
+ brilliantblue_25: brilliantblue_25,
10395
+ brilliantblue_40: brilliantblue_40,
10396
+ brilliantblue_50: brilliantblue_50,
10397
+ brilliantblue_60: brilliantblue_60,
10398
+ brilliantblue_70: brilliantblue_70,
10399
+ brilliantblue_75: brilliantblue_75,
10400
+ brilliantblue_80: brilliantblue_80,
10401
+ brilliantblue_85: brilliantblue_85,
10402
+ brilliantblue_90: brilliantblue_90,
10403
+ brilliantblue_95: brilliantblue_95,
10404
+ brilliantblue_99: brilliantblue_99,
10405
+ brilliantblue_05: brilliantblue_05
10406
+ };
10407
+
10408
+ const colors = rawColors;
10409
+ // 주어진 문자열이 color.json의 키이면 매핑된 HEX를 반환하고,
10410
+ // 아닐 경우 원문 그대로를 반환합니다. 값이 falsy면 기본 색상으로 대체합니다.
10411
+ function resolveColor(input, fallback = '#025497') {
10412
+ if (input === null || input === undefined || input === '')
10413
+ return fallback;
10414
+ const mapped = colors[input];
10415
+ return mapped !== undefined && mapped !== '' ? mapped : input;
10473
10416
  }
10474
10417
 
10475
10418
  const sdIconCss = () => `sd-icon{display:inline-block;line-height:0}sd-icon .sd-icon--rotate-90{transform:rotate(90deg)}sd-icon .sd-icon--rotate-180{transform:rotate(180deg)}sd-icon .sd-icon--rotate-270{transform:rotate(270deg)}`;
@@ -10627,7 +10570,7 @@ class SdInput {
10627
10570
  this.formField?.sdFocus();
10628
10571
  }
10629
10572
  componentWillLoad() {
10630
- if (this.value) {
10573
+ if (this.value != null && this.value !== '') {
10631
10574
  this.internalValue = this.value;
10632
10575
  }
10633
10576
  }
@@ -10670,12 +10613,12 @@ class SdInput {
10670
10613
  '--sd-system-size-field-sm-height': `${sizeTokens.height}px`,
10671
10614
  '--sd-system-radius-field-sm': `${sizeTokens.radius}px`,
10672
10615
  };
10673
- return (hAsync("sd-field", { key: 'a94dfffaad91682d63a4c0f8e2428aee0f2dc909', 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: '44a55878936edbe36726b0cd607b607ee2921155', class: "sd-input__content" }, hAsync("slot", { key: 'c3566240fc270059c4a7b4ccd7907a27141fd57e', name: "prefix" }), hAsync("input", { key: '0df6f4eea75f1d5c0ed174902eb2c072dc81c23f', 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: '685051959a063e6c2465a01aaa77b0f84c4bb570', name: "suffix" }), this.clearable && this.internalValue && !this.disabled && !this.readonly && (hAsync("sd-ghost-button", { key: '382c86fe50a702b84a7dbc82b2e19d9e534af36a', icon: "close", ariaLabel: "clear", size: "xxs", disabled: this.disabled, class: "sd-input__clear-icon", onClick: async () => {
10616
+ 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 () => {
10674
10617
  if (this.disabled || this.readonly)
10675
10618
  return;
10676
10619
  this.internalValue = '';
10677
10620
  await this.formField?.sdValidate();
10678
- } })), this.type === 'password' && (hAsync("sd-ghost-button", { key: '2ae4ddc84bc8969ff4939d224b56ca7a05ea9115', icon: this.passwordVisible ? 'visibilityOn' : 'visibilityOff', ariaLabel: "visibility", size: "xxs", disabled: this.disabled || this.readonly, class: "sd-input__password-icon", onClick: () => {
10621
+ } })), 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: () => {
10679
10622
  if (this.disabled || this.readonly)
10680
10623
  return;
10681
10624
  this.passwordVisible = !this.passwordVisible;
@@ -10760,7 +10703,13 @@ const table = {
10760
10703
  },
10761
10704
  body: {
10762
10705
  "default": {
10763
- height: "44"},
10706
+ height: "44",
10707
+ paddingY: "8"
10708
+ },
10709
+ dense: {
10710
+ height: "32",
10711
+ paddingY: "6"
10712
+ },
10764
10713
  paddingX: "16",
10765
10714
  typography: {
10766
10715
  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",
@@ -10787,6 +10736,10 @@ const table = {
10787
10736
  paddingX: "32",
10788
10737
  bg: "#F9F9F9"
10789
10738
  }
10739
+ },
10740
+ separator: {
10741
+ color: "#EEEEEE",
10742
+ Width: "6"
10790
10743
  }
10791
10744
  };
10792
10745
  var tableTokens = {
@@ -10899,7 +10852,7 @@ class SdKeyValueTable {
10899
10852
  const skips = this.fields.map(row => row.map(() => false));
10900
10853
  this.fields.forEach((row, r) => {
10901
10854
  row.forEach((f, c) => {
10902
- const span = f.thRowSpan && f.thRowSpan > 1 ? f.thRowSpan : 1;
10855
+ const span = f.thRowSpan != null && f.thRowSpan > 1 ? f.thRowSpan : 1;
10903
10856
  if (span <= 1)
10904
10857
  return;
10905
10858
  for (let dr = 1; dr < span; dr++) {
@@ -10927,8 +10880,8 @@ class SdKeyValueTable {
10927
10880
  else if (autoSkip[r]?.[c])
10928
10881
  thCols = 1;
10929
10882
  else
10930
- thCols = f.thColSpan && f.thColSpan > 1 ? f.thColSpan : 1;
10931
- const tdCols = f.tdColSpan && f.tdColSpan > 1 ? f.tdColSpan : 1;
10883
+ thCols = f.thColSpan != null && f.thColSpan > 1 ? f.thColSpan : 1;
10884
+ const tdCols = f.tdColSpan != null && f.tdColSpan > 1 ? f.tdColSpan : 1;
10932
10885
  cols += thCols + tdCols;
10933
10886
  });
10934
10887
  if (cols > max)
@@ -10937,8 +10890,8 @@ class SdKeyValueTable {
10937
10890
  return max;
10938
10891
  }
10939
10892
  renderTh(field, r, c) {
10940
- const thRowSpan = field.thRowSpan && field.thRowSpan > 1 ? field.thRowSpan : undefined;
10941
- const thColSpan = field.thColSpan && field.thColSpan > 1 ? field.thColSpan : undefined;
10893
+ const thRowSpan = field.thRowSpan != null && field.thRowSpan > 1 ? field.thRowSpan : undefined;
10894
+ const thColSpan = field.thColSpan != null && field.thColSpan > 1 ? field.thColSpan : undefined;
10942
10895
  const classObj = { 'sd-key-value-table__th': true };
10943
10896
  if (typeof field.thClass === 'string') {
10944
10897
  classObj[field.thClass] = true;
@@ -10949,8 +10902,8 @@ class SdKeyValueTable {
10949
10902
  return (hAsync("th", { key: `th-${r}-${c}`, class: classObj, style: field.thStyle, scope: "row", rowSpan: thRowSpan, colSpan: thColSpan }, hAsync("div", { class: "sd-key-value-table__th-inner" }, hAsync("span", { class: "sd-key-value-table__label" }, field.label, field.required && (hAsync("sd-icon", { class: "sd-key-value-table__required", name: "star", size: KEY_VALUE_TABLE_LAYOUT.requiredIconSize, color: KEY_VALUE_TABLE_COLORS.required, label: "required" }))), field.helpText && this.renderHelpIcon(field.helpText))));
10950
10903
  }
10951
10904
  renderTd(field, r, c) {
10952
- const tdRowSpan = field.tdRowSpan && field.tdRowSpan > 1 ? field.tdRowSpan : undefined;
10953
- const tdColSpan = field.tdColSpan && field.tdColSpan > 1 ? field.tdColSpan : undefined;
10905
+ const tdRowSpan = field.tdRowSpan != null && field.tdRowSpan > 1 ? field.tdRowSpan : undefined;
10906
+ const tdColSpan = field.tdColSpan != null && field.tdColSpan > 1 ? field.tdColSpan : undefined;
10954
10907
  return (hAsync("td", { key: `td-${r}-${c}`, class: "sd-key-value-table__td", rowSpan: tdRowSpan, colSpan: tdColSpan }, hAsync("div", { class: "sd-key-value-table__td-inner" }, hAsync("slot", { name: `field-${field.name}` }, this.renderField(field)))));
10955
10908
  }
10956
10909
  warnDuplicateNames() {
@@ -10968,7 +10921,7 @@ class SdKeyValueTable {
10968
10921
  }
10969
10922
  }
10970
10923
  render() {
10971
- if (!this.fields.length)
10924
+ if (this.fields.length === 0)
10972
10925
  return null;
10973
10926
  const cssVars = {
10974
10927
  '--sd-kvt-row-height': `${KEY_VALUE_TABLE_LAYOUT.rowHeight}px`,
@@ -11073,7 +11026,7 @@ class SdLinearProgress {
11073
11026
  clipPath: `inset(0 ${100 - this.clampedValue}% 0 0)`,
11074
11027
  };
11075
11028
  const valueText = `${Math.round(this.clampedValue)}%`;
11076
- return (hAsync(Host, { key: '58849d88024bc69ab0260bdf32f461fdfb87c93c', style: hostStyle }, hAsync("div", { key: 'a4370fbc94bdf7b51d4a27f85ca86606c3770cdb', class: 'sd-linear-progress__track' }, hAsync("div", { key: 'e270357433247981f8374a0345cb2d3ba8d4cfca', class: 'sd-linear-progress__fill', style: fillStyle }), !this.indeterminate && (hAsync("span", { key: 'baa77fe44a7129330e8fe70b8aa2e8bc6fd4b703', class: 'sd-linear-progress__value sd-linear-progress__value--on-track' }, valueText)), !this.indeterminate && (hAsync("span", { key: '46a73b233ea34c1d9ac242140abe3b1e5831d484', class: 'sd-linear-progress__value sd-linear-progress__value--on-fill', style: valueOnFillStyle }, valueText))), this.label && hAsync("span", { key: '91d5c9cc27960c7448706e641028bcc8f893b805', class: 'sd-linear-progress__label' }, this.label)));
11029
+ 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)));
11077
11030
  }
11078
11031
  static get style() { return sdLinearProgressCss(); }
11079
11032
  static get cmpMeta() { return {
@@ -11107,10 +11060,10 @@ class SdLoadingContainer {
11107
11060
  this.visible = false;
11108
11061
  }
11109
11062
  render() {
11110
- return (hAsync("div", { key: '1c684984ec7203edb4206690026cf8085bfadcfb', class: {
11063
+ return (hAsync("div", { key: '08675a9dc0b1c11c42fb65a414f0fed88d03f1b0', class: {
11111
11064
  'sd-loading-container': true,
11112
11065
  'sd-loading-container--visible': this.visible,
11113
- }, "aria-hidden": this.visible ? 'false' : 'true' }, hAsync("div", { key: '42a7d3b6c0f562cbfd1a0928a3df4df3cc962299', class: "sd-loading-container__backdrop" }), hAsync("div", { key: 'ce11d0950e5047eb47ae87f41bf7c049a2e18cbc', class: "sd-loading-container__content" }, hAsync("sd-circle-progress", { key: 'e6f63c78da63cf660942137e73cef389789e83b0', indeterminate: true, type: "inverse" }), this.message && (hAsync("p", { key: '139b648a8a8007a050f6e81374930f92d676707c', class: "sd-loading-container__message" }, this.message)))));
11066
+ }, "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)))));
11114
11067
  }
11115
11068
  static get style() { return sdLoadingContainerCss(); }
11116
11069
  static get cmpMeta() { return {
@@ -11206,7 +11159,7 @@ class SdLoadingModal {
11206
11159
  '--sd-loading-modal-width': this.toCssSize(this.width) ?? `${LOADING_MODAL_LAYOUT.minWidth}px`,
11207
11160
  '--sd-loading-modal-height': this.toCssSize(this.height) ?? `${LOADING_MODAL_LAYOUT.minHeight}px`,
11208
11161
  };
11209
- return (hAsync(Host, { key: 'a653095ef804a24fbc3c4a0e65d22971b537a9bf', style: hostStyle }, hAsync("div", { key: '38a1a83501a707de8a431b38cd3e5525565fca5d', class: "sd-loading-modal" }, hAsync("div", { key: '81ddeebfffa70bcc84fc3b2a02fb3d70441645c4', 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: 'db87e7d46fcc6bfd07ce4191819e5e28051489b7', 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: '20134aca743319ea4e03e1b8a0359b92a3bdb0af', class: "sd-loading-modal__button" }, hAsync("sd-button", { key: 'c6951624f69519d712bfdd619fd6b22216ecad87', name: LOADING_MODAL_BUTTON_PRESET, label: this.resolvedButtonLabel, onSdClick: this.handleClick }))))));
11162
+ 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 }))))));
11210
11163
  }
11211
11164
  static get style() { return sdLoadingModalCss(); }
11212
11165
  static get cmpMeta() { return {
@@ -11395,7 +11348,7 @@ class SdModalContainer {
11395
11348
  const current = this.entries.find(e => e.id === id);
11396
11349
  if (!current || current.closing || !modalEl.isConnected)
11397
11350
  return;
11398
- this.entries = this.entries.map(e => e.id === id ? { ...e, backdropVisible: true } : e);
11351
+ this.entries = this.entries.map(e => (e.id === id ? { ...e, backdropVisible: true } : e));
11399
11352
  modalEl.classList.add('sd-modal-container__modal--visible');
11400
11353
  });
11401
11354
  });
@@ -11587,7 +11540,7 @@ class SdModalContainer {
11587
11540
  el.setAttribute(name, value);
11588
11541
  }
11589
11542
  render() {
11590
- if (!this.entries?.length)
11543
+ if ((this.entries?.length ?? 0) === 0)
11591
11544
  return null;
11592
11545
  return (hAsync("div", { class: "sd-modal-container" }, this.entries.map((entry, index) => (hAsync("div", { key: entry.id, class: "sd-modal-container__layer", style: { zIndex: String(index + 1) }, "data-modal-id": entry.id, ref: el => {
11593
11546
  if (el)
@@ -11781,10 +11734,10 @@ class SdNumberInput {
11781
11734
  const [intPart, decPart] = absValue.toString().split('.');
11782
11735
  const formatted = (+intPart).toLocaleString();
11783
11736
  const result = isNegative ? '-' + formatted : formatted;
11784
- return decPart ? result + '.' + decPart : String(result);
11737
+ return decPart !== undefined && decPart !== '' ? result + '.' + decPart : String(result);
11785
11738
  }
11786
11739
  parseInput(input) {
11787
- if (!input || input.trim() === '')
11740
+ if (input.trim() === '')
11788
11741
  return null;
11789
11742
  const cleaned = input.replace(/,/g, '').trim();
11790
11743
  if (!/^-?(\d+\.?\d*|\d*\.\d+)$/.test(cleaned)) {
@@ -11997,15 +11950,15 @@ class SdNumberInput {
11997
11950
  '--sd-textinput-input-hint-typography-line-height': `${NUMBER_INPUT_HINT.typography.lineHeight}px`,
11998
11951
  '--sd-textinput-input-contents-gap': `${NUMBER_INPUT_CONTENTS_GAP}px`,
11999
11952
  };
12000
- return (hAsync("sd-field", { key: 'ea9194c50e91def94838d1e886e934944a1fd78d', 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: '4e65dcfe630b21a7683afebf595f66aca04f5c8c', class: {
11953
+ 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: {
12001
11954
  'sd-number-input__content': true,
12002
11955
  'sd-number-input__content--no-stepper': !this.useButton,
12003
- } }, this.useButton && (hAsync("button", { key: 'ee387b4a602007b98e1ebd8cb1ab9a0dd11dfc9d', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--decrement", disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, hAsync("sd-icon", { key: 'a98dd85c4a0c160e8668731d79b4718d8acb989f', name: "minus", size: iconSize, color: this.isDecrementDisabled()
11956
+ } }, 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()
12004
11957
  ? NUMBER_INPUT_STEPPER.icon.disabled
12005
- : NUMBER_INPUT_STEPPER.icon.default }))), this.inputPrefix && (hAsync("span", { key: 'b49392e692e2349fd9620d39b15c8531bc5ae240', class: "sd-number-input__prefix" }, this.inputPrefix)), hAsync("input", { key: '7128b540d479d6500cfa05782c49b0e06cd999e7', 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: {
11958
+ : 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: {
12006
11959
  textAlign: this.useButton ? 'center' : 'right',
12007
11960
  ...this.inputStyle,
12008
- } }), this.inputSuffix && (hAsync("span", { key: 'e9902ba6872e4a10bcd1106c588e231973632f51', class: "sd-number-input__suffix" }, this.inputSuffix)), this.useButton && (hAsync("button", { key: '297ad8b506e904ba27f3f19beebe7fa503950f7b', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--increment", disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, hAsync("sd-icon", { key: '2f74f2a161d6700981f33b3d1df3bad76b3df87b', name: "add", size: iconSize, color: this.isIncrementDisabled()
11961
+ } }), 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()
12009
11962
  ? NUMBER_INPUT_STEPPER.icon.disabled
12010
11963
  : NUMBER_INPUT_STEPPER.icon.default }))))));
12011
11964
  }
@@ -12212,13 +12165,13 @@ class SdPagination {
12212
12165
  '--sd-pagination-bg-selected': PAGINATION_COLORS.bgSelected,
12213
12166
  '--sd-pagination-item-width': `${this.buttonWidth}px`,
12214
12167
  };
12215
- return (hAsync("div", { key: '0a99cc2b09de2f2a893fe88eaee535dc2f39505d', class: {
12168
+ return (hAsync("div", { key: '251d9b3bcff3cf985d62b1a8717f622d209b3fa1', class: {
12216
12169
  'sd-pagination': true,
12217
12170
  'sd-pagination--simple': this.simple,
12218
- }, style: cssVars }, hAsync("div", { key: 'ba4e726a23e572c788c8c68689e656a07f21f46e', 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: {
12171
+ }, 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: {
12219
12172
  'sd-pagination__item': true,
12220
12173
  'sd-pagination__item--selected': this.currentPage === n,
12221
- }, onClick: () => this.handlePageChange(n) }, n))))), hAsync("div", { key: 'e3276583ab382b988ac2961e8c67c431d5c4495e', class: "sd-pagination__group sd-pagination__group--next" }, this.renderNextButtons())));
12174
+ }, onClick: () => this.handlePageChange(n) }, n))))), hAsync("div", { key: 'e58053cef21c57d88f5b1357101507418b2db002', class: "sd-pagination__group sd-pagination__group--next" }, this.renderNextButtons())));
12222
12175
  }
12223
12176
  static get style() { return sdPaginationCss(); }
12224
12177
  static get cmpMeta() { return {
@@ -12299,17 +12252,17 @@ class SdPopover {
12299
12252
  const leftLink = this.leftLink;
12300
12253
  const button = this.button;
12301
12254
  const hasFooter = !!leftLink || !!button;
12302
- return (hAsync(Fragment, { key: '15b78d688d095fb15d5e6188dc848593bfec842e' }, this.label ? (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-popover", onSdClick: () => this.setShow(!this.show) })) : (hAsync("sd-icon", { ref: el => (this.buttonEl = el), name: icon, size: iconSize, color: color, class: "sd-popover", onClick: () => this.setShow(!this.show) })), this.show && (hAsync("sd-floating-portal", { key: '5075327dce1fda289492edbeefe2e9af38fdaab0', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: placement, offset: this.popoverOffset }, hAsync("div", { key: 'd28e998f464c40d49935013521663801aead6771', class: {
12255
+ return (hAsync(Fragment, { key: 'b50da46efd85cdb48f66b24c591ab662a9fd62cb' }, this.label !== '' ? (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-popover", onSdClick: () => this.setShow(!this.show) })) : (hAsync("sd-icon", { ref: el => (this.buttonEl = el), name: icon, size: iconSize, color: color, class: "sd-popover", onClick: () => this.setShow(!this.show) })), this.show && (hAsync("sd-floating-portal", { key: 'a31d6c00a9b61826fa412247f603d78874a3dba6', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: placement, offset: this.popoverOffset }, hAsync("div", { key: '11020f31a14dbb7325b30ebc48315b344662cf43', class: {
12303
12256
  'sd-floating-menu': true,
12304
12257
  'sd-floating-menu--popover': true,
12305
12258
  [`sd-floating-menu--${placement}`]: true,
12306
- [menuClass]: !!menuClass,
12259
+ [menuClass]: menuClass !== '',
12307
12260
  }, style: {
12308
12261
  '--sd-floating-bg': popoverTokens.popover.bg,
12309
- } }, hAsync("i", { key: 'aa98412939b7717c204fe7a76da9b61a6505a01a', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, hAsync(TooltipArrow, { key: '54b1a1fc5b88600737830668c3da39082cc895e7' })), hAsync("div", { key: 'a7968d363c8e77954093bf550d6904009f8b792b', class: "sd-floating-menu__content" }, this.menuTitle && hAsync("div", { key: 'b995c6df0d035a7a1162ec6dd3b4803897ed9b3e', class: "sd-floating-menu__title" }, this.menuTitle), messages.length > 0 && (hAsync("div", { key: '2ee4971691688a24842b083e561b4e9e818aed88', class: "sd-floating-menu__messages" }, messages.map((message, i) => (hAsync("div", { key: `msg-${i}` }, message))))), hasFooter && (hAsync("div", { key: '4cbb44218d763af841b1e6bfbdd754b23d22c9e2', class: {
12262
+ } }, hAsync("i", { key: '51b35ade68a68c92b7488b97f2b1808d7fcf33e5', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, hAsync(TooltipArrow, { key: 'd491c997e07a2bb2d4a3ad3624d5098457f91c05' })), hAsync("div", { key: '19bfc90b0c5da4fe736aad3b8b2061ac58d8efb4', class: "sd-floating-menu__content" }, this.menuTitle && hAsync("div", { key: '31875711b7cd54c0c48f0017ac94365c3cc97821', class: "sd-floating-menu__title" }, this.menuTitle), messages.length > 0 && (hAsync("div", { key: '9c78a748831045f96fe48fd2ae9dcd85b1335aa0', class: "sd-floating-menu__messages" }, messages.map((message, i) => (hAsync("div", { key: `msg-${i}` }, message))))), hasFooter && (hAsync("div", { key: '787f0d2ac133bef9f72ce248b943b0ff9883db9e', class: {
12310
12263
  'sd-floating-menu__buttons': true,
12311
12264
  'sd-floating-menu__buttons--with-link': !!leftLink,
12312
- } }, leftLink && (hAsync("sd-text-link", { key: '67c6e9daf13cb294f30fdf1f848e92ba22cd3512', class: "sd-floating-menu__left-link", label: leftLink.label, icon: leftLink.icon ?? '', iconColor: leftLink.iconColor ?? '', useArrow: !!leftLink.useArrow, underline: !!leftLink.underline, disabled: !!leftLink.disabled, onSdClick: leftLink.onClick })), button && (hAsync("sd-button", { key: '5328f1adcdc680d1bc97910a1b519298ced3b325', name: button.name ?? 'secondary_xs', label: button.label, icon: button.icon, rightIcon: button.rightIcon, ariaLabel: button.ariaLabel, disabled: button.disabled, type: button.type, onSdClick: button.onClick }))))), this.useClose && (hAsync("sd-ghost-button", { key: '3e05ed8da4298a26d52045ad87fa5be42d6f6f02', class: "sd-floating-menu__close-button", icon: "close", ariaLabel: "close", size: "xs", onClick: this.handleClose })))))));
12265
+ } }, leftLink && (hAsync("sd-text-link", { key: '2000a926c2c808e6ee51f47905fadf8847553bfe', class: "sd-floating-menu__left-link", label: leftLink.label, icon: leftLink.icon ?? '', iconColor: leftLink.iconColor ?? '', useArrow: !!leftLink.useArrow, underline: !!leftLink.underline, disabled: !!leftLink.disabled, onSdClick: leftLink.onClick })), button && (hAsync("sd-button", { key: 'cca9d6bef231fe4c469d8895fefa8b6d5855a57c', name: button.name ?? 'secondary_xs', label: button.label, icon: button.icon, rightIcon: button.rightIcon, ariaLabel: button.ariaLabel, disabled: button.disabled, type: button.type, onSdClick: button.onClick }))))), this.useClose && (hAsync("sd-ghost-button", { key: '032461787d74367ea047c088e08704ce7409f74b', class: "sd-floating-menu__close-button", icon: "close", ariaLabel: "close", size: "xs", onClick: this.handleClose })))))));
12313
12266
  }
12314
12267
  static get style() { return sdPopoverCss(); }
12315
12268
  static get cmpMeta() { return {
@@ -12442,7 +12395,7 @@ class SdPopup {
12442
12395
  ...DEFAULT_SUBMIT_BUTTON_PROPS,
12443
12396
  ...this.submitButtonProps,
12444
12397
  };
12445
- return (hAsync("div", { key: '15e86848fe487b9df5b09a91e5319b35d7332a6e', class: `sd-popup sd-popup--${this.type}`, style: cssVars }, hAsync("header", { key: 'd8281c73a80fe5a4b8ce3ca219e967932b0ec1d3', class: "sd-popup__header" }, hAsync("h2", { key: '31031d3988bae465e023cc94713fb39ef9299250', class: "sd-popup__title" }, this.popupTitle)), hAsync("div", { key: 'dfa941b0dc100b55fc08ab8cb9fce2835aaa62a5', class: "sd-popup__body" }, hAsync("slot", { key: 'd7532a39c61746e8f517973e6fd4f7f3ac10fae0' })), this.useFooter && (hAsync("footer", { key: 'aacedcc4c2f2e4336449bc0fbafc9f67d70cc763', class: "sd-popup__footer" }, hAsync("div", { key: '8f093e0a8c24b03fa28e872b025cb159006d3449', class: "sd-popup__footer-slot sd-popup__footer-slot--left" }, hAsync("slot", { key: '11e2cd175c7ae3151408ca7e564df0a37d6eebb5', name: "footer-left" })), hAsync("sd-button", { key: '49b98d39181bd30392b7388dc7acc66caaca6038', ...submitButtonProps, class: "sd-popup__submit", onSdClick: () => this.submit.emit() })))));
12398
+ 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() })))));
12446
12399
  }
12447
12400
  static get style() { return sdPopupCss(); }
12448
12401
  static get cmpMeta() { return {
@@ -12568,7 +12521,7 @@ class SdPortal {
12568
12521
  }
12569
12522
  // 위치 갱신 (scroll / resize)
12570
12523
  updatePosition() {
12571
- if (this.rafId)
12524
+ if (this.rafId !== undefined)
12572
12525
  cancelAnimationFrame(this.rafId);
12573
12526
  this.rafId = requestAnimationFrame(() => {
12574
12527
  if (!this.parentRef || !this.wrapper)
@@ -12685,7 +12638,7 @@ class SdPortal {
12685
12638
  this.close.emit();
12686
12639
  }
12687
12640
  render() {
12688
- return hAsync("slot", { key: 'c85555f533743f29615e77c1834e8f0fefae7dc7' });
12641
+ return hAsync("slot", { key: '1f46253fe0f70fda84643e8d3025c1fd47090f5c' });
12689
12642
  }
12690
12643
  static get watchers() { return {
12691
12644
  "open": [{
@@ -12825,7 +12778,7 @@ class SdRadio {
12825
12778
  '--sd-radio-disabled-dot': RADIO_COLORS.disabled.dot,
12826
12779
  '--sd-radio-label-color': RADIO_COLORS.label,
12827
12780
  };
12828
- return (hAsync("label", { key: 'bbbca45f706514a12be434ba877de0bd0f82c944', class: this.radioClasses, style: cssVars, "aria-checked": this.isSelected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, hAsync("input", { key: 'e2cacd52037790cfe2d0eacacb975864858f73f8', type: "radio", name: String(this.val), value: String(this.val), checked: this.isSelected, disabled: this.disabled, "aria-label": this.label || String(this.val), onInput: this.handleRadioChange }), hAsync("span", { key: 'bfbfdcb93536cef9fecbf1cc3a5dc5c2adbf5dd0', class: "sd-radio__circle" }), this.label && hAsync("span", { key: '04c8d1e8de88bbb8d4041ebbbda00f58f8dc460c', class: "sd-radio__label" }, this.label)));
12781
+ return (hAsync("label", { key: '2b7819249e5070a22b626530011db4a8e56194f1', class: this.radioClasses, style: cssVars, "aria-checked": this.isSelected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false' }, hAsync("input", { key: '233699a7c3bc13708d43ca3719f61edf53836c83', type: "radio", name: String(this.val), value: String(this.val), checked: this.isSelected, disabled: this.disabled, "aria-label": this.label || String(this.val), onInput: this.handleRadioChange }), hAsync("span", { key: 'eb665c5f8c6202b66b65b6b120f144970fba0a38', class: "sd-radio__circle" }), this.label && hAsync("span", { key: '3d0db13e083bacb4cb7ace9129fcfcd61f18dfc7', class: "sd-radio__label" }, this.label)));
12829
12782
  }
12830
12783
  static get watchers() { return {
12831
12784
  "value": [{
@@ -12991,8 +12944,11 @@ class SdRadioButton {
12991
12944
  }
12992
12945
  _groupName;
12993
12946
  get groupName() {
12994
- if (!this._groupName) {
12995
- this._groupName = this.name || `sd-radio-button-${crypto.randomUUID()}`;
12947
+ if (this._groupName == null || this._groupName === '') {
12948
+ this._groupName =
12949
+ this.name != null && this.name !== ''
12950
+ ? this.name
12951
+ : `sd-radio-button-${crypto.randomUUID()}`;
12996
12952
  }
12997
12953
  return this._groupName;
12998
12954
  }
@@ -13021,7 +12977,7 @@ class SdRadioButton {
13021
12977
  '--sd-radio-button-content-select': RADIO_BUTTON_COLORS.content.select,
13022
12978
  '--sd-radio-button-content-disabled': RADIO_BUTTON_COLORS.content.disabled,
13023
12979
  };
13024
- return (hAsync("div", { key: 'fc1cfe14f2e71092496b241f3b4efa42a1ed878c', class: this.getGroupClasses(), style: cssVars, role: "radiogroup", "aria-disabled": this.disabled.toString() }, this.options.map(option => {
12980
+ return (hAsync("div", { key: 'd1f572315ee66c5defebc4386e815fb21928b548', class: this.getGroupClasses(), style: cssVars, role: "radiogroup", "aria-disabled": this.disabled.toString() }, this.options.map(option => {
13025
12981
  const isSelected = this.isOptionSelected(option);
13026
12982
  const isDisabled = this.isOptionDisabled(option);
13027
12983
  return (hAsync("label", { key: `radio-${option.value}`, class: this.getButtonClasses(option), "aria-label": option.label || 'radio option', "data-label": option.label }, hAsync("input", { type: "radio", name: this.groupName, value: option.value.toString(), checked: isSelected, disabled: isDisabled, onInput: () => this.handleRadioChange(option.value, option.disabled) }), option.label && hAsync("span", { class: "sd-radio-button__label" }, option.label)));
@@ -13073,7 +13029,7 @@ class SdRadioGroup {
13073
13029
  return classes.join(' ');
13074
13030
  }
13075
13031
  render() {
13076
- return (hAsync("div", { key: '464497f4968167f9a89e5abdd9f23e4567dc56b3', class: this.getGroupClasses(), role: "radiogroup" }, this.options.map(option => {
13032
+ return (hAsync("div", { key: '3bb952a72d5bccd1ad4842d9554efe6c69829773', class: this.getGroupClasses(), role: "radiogroup" }, this.options.map(option => {
13077
13033
  return (hAsync("sd-radio", { key: `radio-${option.value}`, val: String(option.value), value: String(this.value), label: option.label, disabled: this.disabled || !!option.disabled, onSdUpdate: ({ detail }) => this.handleRadioChange(detail) }));
13078
13034
  })));
13079
13035
  }
@@ -13216,7 +13172,7 @@ class SdSelect {
13216
13172
  }
13217
13173
  getSelectedOptions() {
13218
13174
  const val = this.value;
13219
- if (!val || !Array.isArray(val))
13175
+ if (val == null || !Array.isArray(val))
13220
13176
  return [];
13221
13177
  if (this.emitValue) {
13222
13178
  return val
@@ -13360,15 +13316,15 @@ class SdSelect {
13360
13316
  this.closeDropdown();
13361
13317
  },
13362
13318
  };
13363
- return (hAsync("sd-field", { key: '18edcdfdc3a9a2bd17ae0e3852eec94151275e18', 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: () => {
13319
+ 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: () => {
13364
13320
  this.hovered = true;
13365
13321
  }, onMouseLeave: () => {
13366
13322
  this.hovered = false;
13367
- } }, hAsync("div", { key: '39efa02a58acbc53315087cceb732b488920dbe8', class: "sd-select", ref: el => {
13323
+ } }, hAsync("div", { key: 'f04f2f331c27745035c35d96d5262398065589a8', class: "sd-select", ref: el => {
13368
13324
  this.triggerRef = el;
13369
- } }, hAsync("sd-select-trigger", { key: 'e03ce9208f4af5226461ecdfb0d15bade4f277dd', ref: el => {
13325
+ } }, hAsync("sd-select-trigger", { key: 'b66e83ff248618c815b155f27445f3da9e91361b', ref: el => {
13370
13326
  this.triggerComponentRef = el;
13371
- }, 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: '9181fd551885e001f139cab9634a2ac3b0f89d47', ...portalProps }, hAsync("sd-select-listbox", { key: '6ed356d2ceea79562ce448584514c23fbff20090', 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) })))));
13327
+ }, 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) })))));
13372
13328
  }
13373
13329
  static get watchers() { return {
13374
13330
  "isOpen": [{
@@ -13654,9 +13610,13 @@ class SdSelectListItem {
13654
13610
  '--list-item-font-weight-selected': LIST_ITEM_TYPOGRAPHY.selectedFontWeight,
13655
13611
  };
13656
13612
  if (isDepth1Group) {
13657
- cssVars['--list-item-border-top'] = `${LIST_ITEM_COLORS.depth1.borderWidth}px solid ${LIST_ITEM_COLORS.depth1.border}`;
13613
+ cssVars['--list-item-border-top'] =
13614
+ `${LIST_ITEM_COLORS.depth1.borderWidth}px solid ${LIST_ITEM_COLORS.depth1.border}`;
13658
13615
  }
13659
- return (hAsync("div", { key: 'd580af48ad969b82d964d35fa3ed6bc02e807a77', class: {
13616
+ return (
13617
+ // 키보드 네비게이션은 부모 listbox 의 ArrowUp/Down + Enter 가 담당. 항목 자체는 role=option, tabindex=-1 으로 표시.
13618
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events
13619
+ hAsync("div", { key: '93e8bf04e69d9e6f066952570ed06076bdd17e57', role: "option", tabindex: -1, "aria-selected": this.isSelected === true ? 'true' : 'false', class: {
13660
13620
  'sd-select-list-item': true,
13661
13621
  'sd-select-list-item--group': isGroup,
13662
13622
  'sd-select-list-item--depth1-group': isDepth1Group,
@@ -13666,7 +13626,7 @@ class SdSelectListItem {
13666
13626
  'sd-select-list-item--focused': this.isFocused,
13667
13627
  'sd-select-list-item--selectable': this.isSelectable && !this.option.disabled,
13668
13628
  'sd-select-list-item--disabled': !!this.option.disabled,
13669
- }, style: cssVars, onClick: this.handleClick }, this.useCheckbox && (hAsync("sd-checkbox", { key: '57cee194abfeb1fb12db1ebc72397fdb2f5268ba', 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: 'dc10ebc823b7007988c29facfd559d477caa9bb8', class: "sd-select-list-item__label" }, this.option.label), this.countInfo && (hAsync("span", { key: '3504a51d1c92f6b21ec3f36b4546b1763fcc931f', class: "sd-select-list-item__count" }, "(", this.countInfo.selected, "/", this.countInfo.total, ")"))));
13629
+ }, 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, ")"))));
13670
13630
  }
13671
13631
  static get style() { return sdSelectListItemCss(); }
13672
13632
  static get cmpMeta() { return {
@@ -13728,21 +13688,21 @@ class SdSelectListItemSearch {
13728
13688
  this.inputEl?.focus();
13729
13689
  };
13730
13690
  disconnectedCallback() {
13731
- if (this.focusRafId)
13691
+ if (this.focusRafId !== undefined)
13732
13692
  cancelAnimationFrame(this.focusRafId);
13733
- if (this.debounceTimer)
13693
+ if (this.debounceTimer !== undefined)
13734
13694
  clearTimeout(this.debounceTimer);
13735
13695
  }
13736
13696
  render() {
13737
- return (hAsync("div", { key: '8714ef9e06f54fd5c2ae5241cac65a74ea45dccf', class: {
13697
+ return (hAsync("div", { key: '0b8e55a2f39d72bc6fc5c7d8c6262c9fffb52ba7', class: {
13738
13698
  'sd-select-list-item-search': true,
13739
13699
  'sd-select-list-item-search--scrolled': this.isScrolled,
13740
- } }, hAsync("div", { key: '428aea3765711fd91ae7b587b21347dd9634636b', class: "sd-select-list-item-search__inner" }, hAsync("sd-icon", { key: 'ed3363eea1a7d6a4f44141a74855c4e767a34999', name: "search", size: 16, color: "grey_70", class: "sd-select-list-item-search__icon" }), hAsync("input", { key: 'c3f5539e037a81d96ce2fa41225f0c33c32add6e', ref: el => {
13700
+ } }, 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 => {
13741
13701
  this.inputEl = el;
13742
- }, 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: 'b081b5a6eced0397db40784ce25e0e84c574f869', type: "button", class: {
13702
+ }, 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: {
13743
13703
  'sd-select-list-item-search__clear': true,
13744
- 'sd-select-list-item-search__clear--hidden': !this.searchText,
13745
- }, onClick: this.handleClear, tabindex: this.searchText ? 0 : -1, "aria-hidden": this.searchText ? 'false' : 'true' }, hAsync("sd-icon", { key: '29615969a7efa118089e2c8dba741086196f8593', name: "close", size: 12, color: "#888888" })))));
13704
+ 'sd-select-list-item-search__clear--hidden': this.searchText === '',
13705
+ }, 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" })))));
13746
13706
  }
13747
13707
  static get style() { return sdSelectListItemSearchCss(); }
13748
13708
  static get cmpMeta() { return {
@@ -13827,7 +13787,7 @@ class SdSelectListbox {
13827
13787
  return count >= SEARCH_THRESHOLD;
13828
13788
  }
13829
13789
  get filteredOptions() {
13830
- if (!this.searchKeyword)
13790
+ if (this.searchKeyword === '')
13831
13791
  return this.options;
13832
13792
  if (this.isDepth)
13833
13793
  return filterTree(this.options, this.searchKeyword);
@@ -13840,7 +13800,7 @@ class SdSelectListbox {
13840
13800
  return this.filteredOptions.length === 0;
13841
13801
  }
13842
13802
  getSelectedValues() {
13843
- if (!this.value || !Array.isArray(this.value))
13803
+ if (this.value == null || !Array.isArray(this.value))
13844
13804
  return new Set();
13845
13805
  if (this.emitValue) {
13846
13806
  return new Set(this.value);
@@ -13963,7 +13923,7 @@ class SdSelectListbox {
13963
13923
  // filterTree 가 매 호출마다 옵션 객체를 새로 복제하기 때문에 참조 비교
13964
13924
  // (=== / indexOf) 는 검색이 적용된 동안 항상 실패한다. 고유 식별자인
13965
13925
  // value 로 비교해야 한다.
13966
- return !!focused && focused.value === option.value;
13926
+ return focused != null && focused.value === option.value;
13967
13927
  }
13968
13928
  resetFocusOnFilter() {
13969
13929
  // 필터가 바뀌면 이전 인덱스가 가리키던 항목이 사라질 수 있으므로
@@ -14113,9 +14073,9 @@ class SdSelectListbox {
14113
14073
  '--listbox-max-height': this.maxHeight ?? '260px',
14114
14074
  '--listbox-radius': `${LIST_BOX_LAYOUT.radius}px`,
14115
14075
  };
14116
- return (hAsync("div", { key: 'be3a46d2a17522799374eb7e59faea8960e7b41a', class: "sd-select-listbox", style: cssVars }, this.showSearch && (hAsync("sd-select-list-item-search", { key: '68fa6b9f958ee662ac400716ade0ae4823ad99a3', isScrolled: this.isScrolled, onSdSearchFilter: this.handleSearchFilter })), hAsync("div", { key: 'b0a6daf94c69ccb33d31434014c93b2f414309f3', class: "sd-select-listbox__list", onScroll: this.handleScroll, ref: el => {
14076
+ 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 => {
14117
14077
  this.listEl = el;
14118
- } }, this.showSelectAll && (hAsync("sd-select-list-item", { key: '120fea009df513e3346877044ee65c132ece70cf', 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) })))))));
14078
+ } }, 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) })))))));
14119
14079
  }
14120
14080
  static get watchers() { return {
14121
14081
  "searchKeyword": [{
@@ -14180,7 +14140,7 @@ class SdSelectTrigger {
14180
14140
  this.triggerBlur.emit();
14181
14141
  };
14182
14142
  render() {
14183
- const hasValue = !!this.displayText;
14143
+ const hasValue = this.displayText !== '';
14184
14144
  const cssVars = {
14185
14145
  '--trigger-padding-x': `${SELECT_LAYOUT.paddingX}px`,
14186
14146
  '--trigger-gap': `${SELECT_LAYOUT.gap}px`,
@@ -14196,13 +14156,18 @@ class SdSelectTrigger {
14196
14156
  ? SELECT_COLORS.icon.disabled
14197
14157
  : SELECT_COLORS.icon.default,
14198
14158
  };
14199
- return (hAsync("div", { key: '69a87c509e16605feb217f12ce055e0097f09a6f', ref: el => {
14159
+ return (hAsync("div", { key: '6694f35a396f368d5df9860db30d817beddb8bec', ref: el => {
14200
14160
  this.triggerEl = el;
14201
- }, tabindex: this.disabled ? -1 : 0, class: {
14161
+ }, role: "button", "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? 'true' : 'false', tabindex: this.disabled ? -1 : 0, class: {
14202
14162
  'sd-select-trigger': true,
14203
14163
  'sd-select-trigger--open': this.isOpen,
14204
14164
  'sd-select-trigger--disabled': this.disabled,
14205
- }, style: cssVars, onClick: this.handleClick, onFocus: this.handleFocus, onBlur: this.handleBlur }, hAsync("div", { key: '0886f40b2427fc4b5825b06682531a26be4c4eec', class: "sd-select-trigger__content" }, hAsync("span", { key: '9e2fb73a34153b0744fbf2cc7490ecdc7a125233', class: "sd-select-trigger__text" }, hasValue ? this.displayText : (this.placeholder ?? '선택')), hAsync("sd-icon", { key: 'c8a80bf912c50bf97a5d5af4d4c5307e416aea6d', name: "chevronDown", size: 12, color: "var(--trigger-icon-color)", class: {
14165
+ }, style: cssVars, onClick: this.handleClick, onKeyDown: e => {
14166
+ if (e.key === 'Enter' || e.key === ' ') {
14167
+ e.preventDefault();
14168
+ this.handleClick();
14169
+ }
14170
+ }, 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: {
14206
14171
  'sd-select-trigger__icon': true,
14207
14172
  'sd-select-trigger__icon--open': this.isOpen,
14208
14173
  } }))));
@@ -14324,7 +14289,7 @@ class SdSwitch {
14324
14289
  '--sd-switch-line-height': `${SWITCH_TYPOGRAPHY.lineHeight}px`,
14325
14290
  '--sd-switch-text-decoration': SWITCH_TYPOGRAPHY.textDecoration,
14326
14291
  };
14327
- return (hAsync("label", { key: 'a37c1387905456007de46a6050616b025ad06b37', "aria-label": this.label || 'switch', class: this.switchClasses, style: cssVars }, hAsync("input", { key: '5fcc9f72e177956e015e4cb009936edc60c4c3ec', type: "checkbox", checked: this.value, disabled: this.disabled, onInput: this.handleChange }), hAsync("div", { key: 'bf1fa22a94b2b245a2ddf805df4cd1c204524710', class: "sd-switch__track" }, hAsync("div", { key: '11dafcd812c560acb7a63f7267f40f8ed67da95b', class: "sd-switch__knob" })), this.label && hAsync("span", { key: '6609d2e33e82e843ffd5bbb2d2010de3e299f081', class: "sd-switch__label" }, this.label)));
14292
+ 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)));
14328
14293
  }
14329
14294
  static get style() { return sdSwitchCss(); }
14330
14295
  static get cmpMeta() { return {
@@ -14392,7 +14357,13 @@ const TABLE_HEADER_RESIZING_BAR = {
14392
14357
  // ── Body Tokens ──
14393
14358
  const TABLE_BODY_LAYOUT = {
14394
14359
  default: {
14395
- height: tableTokens.table.body.default.height},
14360
+ height: tableTokens.table.body.default.height,
14361
+ paddingY: tableTokens.table.body.default.paddingY,
14362
+ },
14363
+ dense: {
14364
+ height: tableTokens.table.body.dense.height,
14365
+ paddingY: tableTokens.table.body.dense.paddingY,
14366
+ },
14396
14367
  paddingX: tableTokens.table.body.paddingX};
14397
14368
  const TABLE_BODY_TYPOGRAPHY = {
14398
14369
  fontFamily: tableTokens.table.body.typography.fontFamily,
@@ -14406,6 +14377,10 @@ const TABLE_BORDER = {
14406
14377
  color: tableTokens.table.border.color,
14407
14378
  width: tableTokens.table.border.width,
14408
14379
  };
14380
+ const TABLE_SEPARATOR = {
14381
+ color: tableTokens.table.separator.color,
14382
+ width: tableTokens.table.separator.Width,
14383
+ };
14409
14384
  const TABLE_RADIUS = tableTokens.table.radius;
14410
14385
  // ── Header Icon Color Defaults ──
14411
14386
  const ICON_DEFAULT_COLOR = {
@@ -14419,7 +14394,7 @@ const ICON_DEFAULT_COLOR = {
14419
14394
  const resolveTableIconColor = (name, override) => override ?? ICON_DEFAULT_COLOR[name];
14420
14395
  const resolveSortIconName = (sort) => sort === 'asc' ? 'arrowDown' : sort === 'desc' ? 'arrowUp' : 'updown';
14421
14396
 
14422
- const sdTableCss = () => `sd-table,:host{display:block;width:100%;max-width:100%;min-width:0}sd-table *,:host *{box-sizing:border-box}.sd-table__container{height:var(--table-height, 100%);width:var(--table-width, 100%);max-width:100%;min-width:0;color:#222222;display:flex;flex-direction:column}.sd-table__wrapper{width:100%;min-width:0;height:var(--table-container-height, 400px);border:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);border-radius:var(--table-radius, 8px);overflow:hidden}.sd-table__wrapper--radius-use-top{border-radius:0 0 var(--table-radius, 8px) var(--table-radius, 8px)}.sd-table__scroll-container{width:100%;height:100%;display:flex;flex-direction:column;position:relative;font-family:var(--table-body-font-family, inherit);font-weight:var(--table-body-font-weight, 400);font-size:var(--table-body-font-size, 12px);line-height:var(--table-body-line-height, 20px);text-decoration:var(--table-body-text-decoration, none);overflow:auto;background:#FFFFFF}.sd-table__scroll-container--loading{overflow:hidden !important;pointer-events:none}.sd-table__scroll-container--no-data{overflow:hidden;pointer-events:none}.sd-table__no-data{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--table-body-font-size, 12px);color:#888888;pointer-events:none;z-index:200;background:rgba(255, 255, 255, 0.6)}.sd-table__no-data ::slotted(*),.sd-table__no-data span{pointer-events:auto}.sd-table__loading{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center;pointer-events:none}.sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table--selectable sd-thead,.sd-table--selectable sd-tbody{--selectable:true}.sd-table--sticky-header sd-thead thead{position:sticky;top:0;z-index:120}.sd-table--sticky-column sd-thead,.sd-table--sticky-column sd-tbody{--sticky-column:true}.sd-table--scrolled-left sd-thead,.sd-table--scrolled-left sd-tbody{--scrolled-left:true}.sd-table--scrolled-right sd-thead,.sd-table--scrolled-right sd-tbody{--scrolled-right:true}.sd-table--resizable sd-thead{--resizable:true}.sd-table--no-data sd-thead{opacity:0.4}.sd-table__pagination{position:relative;background:#F9F9F9;height:48px;display:flex;align-items:center;justify-content:center;border:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);margin-top:-1px;border-radius:var(--table-radius, 8px)}.sd-table__pagination sd-select{position:absolute;right:10px;top:50%;transform:translateY(-50%)}`;
14397
+ const sdTableCss = () => `sd-table,:host{display:block;width:100%;max-width:100%;min-width:0}sd-table *,:host *{box-sizing:border-box}.sd-table__container{height:var(--table-height, 100%);width:var(--table-width, 100%);max-width:100%;min-width:0;color:#222222;display:flex;flex-direction:column}.sd-table__wrapper{width:100%;min-width:0;height:var(--table-container-height, 400px);border:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);border-radius:var(--table-radius, 8px);overflow:hidden}.sd-table__wrapper--radius-use-top{border-radius:0 0 var(--table-radius, 8px) var(--table-radius, 8px)}.sd-table__scroll-container{width:100%;height:100%;display:flex;flex-direction:column;position:relative;font-family:var(--table-body-font-family, inherit);font-weight:var(--table-body-font-weight, 400);font-size:var(--table-body-font-size, 12px);line-height:var(--table-body-line-height, 20px);text-decoration:var(--table-body-text-decoration, none);overflow:auto;background:#FFFFFF}.sd-table__scroll-container--loading{overflow:hidden !important;pointer-events:none}.sd-table__scroll-container--no-data{overflow:hidden;pointer-events:none}.sd-table__no-data{position:absolute;top:36px;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:var(--table-body-font-size, 12px);color:#888888;pointer-events:none;z-index:200;background:rgba(255, 255, 255, 0.6)}.sd-table__no-data-header-overlay{position:absolute;top:0;left:0;right:0;height:36px;background:rgba(255, 255, 255, 0.6);z-index:210;pointer-events:none}.sd-table__no-data-content{pointer-events:auto;min-height:60px;width:100%;display:flex;align-items:center;justify-content:center}.sd-table__loading{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255, 255, 255, 0.6);z-index:200;display:flex;align-items:center;justify-content:center;pointer-events:none}.sd-table{background-color:white;display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.sd-table--selectable sd-thead,.sd-table--selectable sd-tbody{--selectable:true}.sd-table--sticky-header sd-thead thead{position:sticky;top:0;z-index:120}.sd-table--sticky-column sd-thead,.sd-table--sticky-column sd-tbody{--sticky-column:true}.sd-table--scrolled-left sd-thead,.sd-table--scrolled-left sd-tbody{--scrolled-left:true}.sd-table--scrolled-right sd-thead,.sd-table--scrolled-right sd-tbody{--scrolled-right:true}.sd-table--resizable sd-thead{--resizable:true}.sd-table--no-data sd-thead{opacity:0.4}.sd-table__pagination{position:relative;background:#F9F9F9;height:48px;display:flex;align-items:center;justify-content:center;border:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);margin-top:-1px;border-radius:var(--table-radius, 8px)}.sd-table__pagination sd-select{position:absolute;right:10px;top:50%;transform:translateY(-50%)}`;
14423
14398
 
14424
14399
  class SdTable {
14425
14400
  constructor(hostRef) {
@@ -14451,9 +14426,15 @@ class SdTable {
14451
14426
  pagination;
14452
14427
  useInternalPagination = false;
14453
14428
  useRowsPerPageSelect = false;
14429
+ dense = false;
14454
14430
  // ─── Virtual Scroll ───────────────────────────────────────────────
14455
14431
  useVirtualScroll = false;
14456
- rowHeight = 40;
14432
+ rowHeight;
14433
+ get effectiveRowHeight() {
14434
+ if (this.rowHeight != null)
14435
+ return this.rowHeight;
14436
+ return this.dense ? Number(TABLE_BODY_LAYOUT.dense.height) : Number(TABLE_BODY_LAYOUT.default.height);
14437
+ }
14457
14438
  virtualBuffer = 5;
14458
14439
  virtualEndThreshold = 10;
14459
14440
  // ─────────────────────────────────────────────────────────────────
@@ -14476,6 +14457,7 @@ class SdTable {
14476
14457
  scrolledRight = false;
14477
14458
  rowCount = 0;
14478
14459
  loadingScrollTop = 0;
14460
+ noDataBodyHeight = 60;
14479
14461
  // light DOM에 sd-thead / sd-tbody 자식이 없으면 sd-table이 직접 렌더해야 함을 알리는 플래그.
14480
14462
  // componentWillLoad에서 한 번 결정되며, 이후 동적 토글은 지원하지 않는다.
14481
14463
  autoThead = false;
@@ -14484,12 +14466,19 @@ class SdTable {
14484
14466
  vsEnd = 0;
14485
14467
  lastReachEndNotifiedRowCount = -1;
14486
14468
  scrollContainer = null;
14469
+ noDataContentEl = null;
14470
+ noDataContentResizeObserver;
14487
14471
  onScroll;
14488
14472
  // 키: `${rowKey}::${field}` → { rowspan, colspan }
14489
14473
  spanRegistry = new Map();
14474
+ // rowKey → Set<field>: useFrame=true인 sd-td가 있는 행을 추적한다.
14475
+ // 하나라도 등록되면 해당 행은 dense를 무시하고 default 레이아웃으로 렌더된다.
14476
+ useFrameRegistry = new Map();
14490
14477
  // 키: `${rowKey}::${field}` → sd-td의 sdClass 문자열
14491
14478
  // sd-tr가 td를 그릴 때 머지해서 셀-단위 커스텀 클래스를 적용한다.
14492
14479
  cellClassRegistry = new Map();
14480
+ // separator 직전 행의 시각적 인덱스 집합
14481
+ separatorPrevIndices = new Set();
14493
14482
  // rowKey 문자열 → rows 배열에서의 visual index.
14494
14483
  // rowspan 위쪽 행 스캔에서 "내 위에 있느냐"를 판정하기 위한 시각적 순서 소스.
14495
14484
  // rows prop이 있으면 채워지고, 없으면 비어 있어 Number(rowKey) fallback이 사용된다.
@@ -14548,6 +14537,7 @@ class SdTable {
14548
14537
  if (newVal) {
14549
14538
  this.loadingScrollTop = this.scrollContainer?.scrollTop ?? 0;
14550
14539
  }
14540
+ this.syncNoDataContentObserver();
14551
14541
  }
14552
14542
  handleUseVirtualScrollChange(newVal) {
14553
14543
  if (newVal) {
@@ -14556,7 +14546,7 @@ class SdTable {
14556
14546
  }
14557
14547
  }
14558
14548
  handleColumnsChange(newCols) {
14559
- this.columnWidths = newCols.map(c => parseInt(c.width || '120', 10));
14549
+ this.columnWidths = newCols.map(c => (c.autoWidth ? 0 : parseInt(c.width || '120', 10)));
14560
14550
  this.refreshChildrenConfig();
14561
14551
  }
14562
14552
  handleRowsChange(newRows) {
@@ -14567,6 +14557,7 @@ class SdTable {
14567
14557
  if (this.useVirtualScroll)
14568
14558
  this.propagateVirtualUpdate(true);
14569
14559
  this.pushRowsToChildren(newRows);
14560
+ this.syncNoDataContentObserver();
14570
14561
  }
14571
14562
  handleRowKeyChange() {
14572
14563
  this.rebuildRowIndexMap();
@@ -14592,10 +14583,10 @@ class SdTable {
14592
14583
  this.innerSelected = new Set(newSelected);
14593
14584
  }
14594
14585
  handlePaginationChange(newVal) {
14595
- if (newVal?.page && newVal.page !== this.currentPage) {
14586
+ if (newVal?.page != null && newVal.page !== this.currentPage) {
14596
14587
  this.currentPage = newVal.page;
14597
14588
  }
14598
- if (newVal?.rowsPerPage && newVal.rowsPerPage !== this.innerRowsPerPage) {
14589
+ if (newVal?.rowsPerPage != null && newVal.rowsPerPage !== this.innerRowsPerPage) {
14599
14590
  this.innerRowsPerPage = newVal.rowsPerPage;
14600
14591
  }
14601
14592
  }
@@ -14610,12 +14601,12 @@ class SdTable {
14610
14601
  this.handleNoDataLabelChange(this.noDataLabel);
14611
14602
  this.detectChildren();
14612
14603
  this.innerSelected = new Set(this.selected || []);
14613
- this.columnWidths = (this.columns || []).map(c => parseInt(c.width || '120', 10));
14604
+ this.columnWidths = (this.columns || []).map(c => c.autoWidth ? 0 : parseInt(c.width || '120', 10));
14614
14605
  this.rebuildRowIndexMap();
14615
- if (this.pagination?.page) {
14606
+ if (this.pagination?.page != null) {
14616
14607
  this.currentPage = this.pagination.page;
14617
14608
  }
14618
- if (this.pagination?.rowsPerPage) {
14609
+ if (this.pagination?.rowsPerPage != null) {
14619
14610
  this.innerRowsPerPage = this.pagination.rowsPerPage;
14620
14611
  }
14621
14612
  const el = this.el;
@@ -14637,10 +14628,16 @@ class SdTable {
14637
14628
  el.getSpanSync = this.getSpanSync.bind(this);
14638
14629
  el.isCoveredSync = this.isCoveredSync.bind(this);
14639
14630
  el.isVisualLastRowSync = this.isVisualLastRowSync.bind(this);
14631
+ el.registerSeparatorSync = this.registerSeparatorSync.bind(this);
14632
+ el.unregisterSeparatorSync = this.unregisterSeparatorSync.bind(this);
14633
+ el.isVisualLastRowBeforeSeparatorSync = this.isVisualLastRowBeforeSeparatorSync.bind(this);
14640
14634
  el.hasRowspanSync = this.hasRowspanSync.bind(this);
14641
14635
  el.registerCellClassSync = this.registerCellClassSync.bind(this);
14642
14636
  el.unregisterCellClassSync = this.unregisterCellClassSync.bind(this);
14643
14637
  el.getCellClassSync = this.getCellClassSync.bind(this);
14638
+ el.registerUseFrameSync = this.registerUseFrameSync.bind(this);
14639
+ el.unregisterUseFrameSync = this.unregisterUseFrameSync.bind(this);
14640
+ el.hasUseFrameInRowSync = this.hasUseFrameInRowSync.bind(this);
14644
14641
  if (Array.isArray(this.rows)) {
14645
14642
  this.rowCount = this.rows.length;
14646
14643
  this.pushRowsToChildren(this.rows);
@@ -14683,11 +14680,43 @@ class SdTable {
14683
14680
  this.propagateVirtualUpdate(); // 초기 렌더
14684
14681
  }
14685
14682
  });
14683
+ this.syncNoDataContentObserver();
14686
14684
  }
14687
14685
  disconnectedCallback() {
14688
14686
  if (this.scrollContainer && this.onScroll) {
14689
14687
  this.scrollContainer.removeEventListener('scroll', this.onScroll);
14690
14688
  }
14689
+ this.noDataContentResizeObserver?.disconnect();
14690
+ this.noDataContentResizeObserver = undefined;
14691
+ }
14692
+ syncNoDataContentObserver() {
14693
+ const isNoData = this.rowCount === 0 && !this.isLoading;
14694
+ if (!isNoData) {
14695
+ this.noDataContentResizeObserver?.disconnect();
14696
+ this.noDataContentResizeObserver = undefined;
14697
+ this.noDataBodyHeight = 60;
14698
+ return;
14699
+ }
14700
+ this.observeNoDataContentHeight();
14701
+ }
14702
+ // observer를 붙이고 콘텐츠 높이를 측정해 noDataBodyHeight를 갱신하는 함수
14703
+ observeNoDataContentHeight() {
14704
+ if (typeof ResizeObserver === 'undefined')
14705
+ return;
14706
+ const target = this.noDataContentEl;
14707
+ if (!target)
14708
+ return;
14709
+ this.noDataContentResizeObserver?.disconnect();
14710
+ this.noDataContentResizeObserver = new ResizeObserver(() => {
14711
+ const measured = Math.ceil(target.scrollHeight);
14712
+ const nextHeight = Math.max(60, measured);
14713
+ if (nextHeight !== this.noDataBodyHeight) {
14714
+ this.noDataBodyHeight = nextHeight;
14715
+ }
14716
+ });
14717
+ this.noDataContentResizeObserver.observe(target);
14718
+ const measured = Math.ceil(target.scrollHeight);
14719
+ this.noDataBodyHeight = Math.max(60, measured);
14691
14720
  }
14692
14721
  // light DOM(manual mode 자식)과 shadow DOM(autoThead/autoTbody fallback) 양쪽 모두에서 자식을 찾는다.
14693
14722
  queryChildEl(selector) {
@@ -14752,8 +14781,8 @@ class SdTable {
14752
14781
  return;
14753
14782
  this.vsStart = start;
14754
14783
  this.vsEnd = end;
14755
- const topHeight = start * this.rowHeight;
14756
- const bottomHeight = Math.max(0, (this.rowCount - end) * this.rowHeight);
14784
+ const topHeight = start * this.effectiveRowHeight;
14785
+ const bottomHeight = Math.max(0, (this.rowCount - end) * this.effectiveRowHeight);
14757
14786
  const tbody = this.queryChildEl('sd-tbody');
14758
14787
  tbody?.setSpacersSync?.(topHeight, bottomHeight);
14759
14788
  if (rangeChanged) {
@@ -14767,7 +14796,7 @@ class SdTable {
14767
14796
  getVirtualScrollConfigSync() {
14768
14797
  return {
14769
14798
  useVirtualScroll: this.useVirtualScroll,
14770
- rowHeight: this.rowHeight,
14799
+ rowHeight: this.effectiveRowHeight,
14771
14800
  virtualBuffer: this.virtualBuffer,
14772
14801
  vsStart: this.vsStart,
14773
14802
  vsEnd: this.vsEnd,
@@ -14784,10 +14813,35 @@ class SdTable {
14784
14813
  scrolledLeft: this.scrolledLeft,
14785
14814
  scrolledRight: this.scrolledRight,
14786
14815
  columnWidths: this.columnWidths,
14816
+ dense: this.dense,
14787
14817
  };
14788
14818
  }
14819
+ registerUseFrameSync(rowKey, field) {
14820
+ if (rowKey == null || field === '')
14821
+ return;
14822
+ let fields = this.useFrameRegistry.get(rowKey);
14823
+ if (!fields) {
14824
+ fields = new Set();
14825
+ this.useFrameRegistry.set(rowKey, fields);
14826
+ }
14827
+ fields.add(field);
14828
+ }
14829
+ unregisterUseFrameSync(rowKey, field) {
14830
+ if (rowKey == null || field === '')
14831
+ return;
14832
+ const fields = this.useFrameRegistry.get(rowKey);
14833
+ if (!fields)
14834
+ return;
14835
+ fields.delete(field);
14836
+ if (fields.size === 0)
14837
+ this.useFrameRegistry.delete(rowKey);
14838
+ }
14839
+ hasUseFrameInRowSync(rowKey) {
14840
+ const fields = this.useFrameRegistry.get(rowKey);
14841
+ return fields != null && fields.size > 0;
14842
+ }
14789
14843
  isRowSelectedSync(row) {
14790
- return Array.from(this.innerSelected).some(r => r[(this.rowKey ?? 'id')] === row[(this.rowKey ?? 'id')]);
14844
+ return Array.from(this.innerSelected).some(r => r[this.rowKey ?? 'id'] === row[this.rowKey ?? 'id']);
14791
14845
  }
14792
14846
  async isRowSelected(row) {
14793
14847
  return this.isRowSelectedSync(row);
@@ -14796,7 +14850,7 @@ class SdTable {
14796
14850
  const selectedArray = Array.from(this.innerSelected);
14797
14851
  const exists = this.isRowSelectedSync(row);
14798
14852
  const newSelected = exists
14799
- ? selectedArray.filter(r => r[(this.rowKey ?? 'id')] !== row[(this.rowKey ?? 'id')])
14853
+ ? selectedArray.filter(r => r[this.rowKey ?? 'id'] !== row[this.rowKey ?? 'id'])
14800
14854
  : [...selectedArray, row];
14801
14855
  if (newSelected.length === selectedArray.length)
14802
14856
  return;
@@ -14814,8 +14868,8 @@ class SdTable {
14814
14868
  this.innerSelected = new Set([...this.innerSelected, ...pageRows]);
14815
14869
  }
14816
14870
  else {
14817
- const currentPageKeys = rows.map(r => r[(this.rowKey ?? 'id')]);
14818
- this.innerSelected = new Set([...this.innerSelected].filter(r => !currentPageKeys.includes(r[(this.rowKey ?? 'id')])));
14871
+ const currentPageKeys = rows.map(r => r[this.rowKey ?? 'id']);
14872
+ this.innerSelected = new Set([...this.innerSelected].filter(r => !currentPageKeys.includes(r[this.rowKey ?? 'id'])));
14819
14873
  }
14820
14874
  this.selected = Array.from(this.innerSelected);
14821
14875
  this.sdSelectChange.emit(Array.from(this.innerSelected));
@@ -14826,7 +14880,7 @@ class SdTable {
14826
14880
  }
14827
14881
  getIsAllCheckedSync(rows) {
14828
14882
  const total = rows.length;
14829
- const selectedCount = rows.filter(row => Array.from(this.innerSelected).some(selectedRow => selectedRow[(this.rowKey ?? 'id')] === row[(this.rowKey ?? 'id')])).length;
14883
+ const selectedCount = rows.filter(row => Array.from(this.innerSelected).some(selectedRow => selectedRow[this.rowKey ?? 'id'] === row[this.rowKey ?? 'id'])).length;
14830
14884
  if (selectedCount === 0)
14831
14885
  return false;
14832
14886
  if (selectedCount === total)
@@ -14849,7 +14903,7 @@ class SdTable {
14849
14903
  this.queryAllTr().forEach(tr => tr?.updateVisibility?.());
14850
14904
  }
14851
14905
  changeRowsPerPage(perPage) {
14852
- const changedRowsPerPage = perPage ? Number(perPage) : 0;
14906
+ const changedRowsPerPage = perPage != null && perPage !== '' ? Number(perPage) : 0;
14853
14907
  if (!this.useInternalPagination) {
14854
14908
  this.sdRowsPerPageChange.emit(changedRowsPerPage);
14855
14909
  return;
@@ -14876,7 +14930,7 @@ class SdTable {
14876
14930
  const startWidth = this.columnWidths[index];
14877
14931
  const handleMouseMove = (moveEvent) => {
14878
14932
  const col = this.columns[index];
14879
- if (!col)
14933
+ if (col == null)
14880
14934
  return;
14881
14935
  const minWidth = col.minWidth || 50;
14882
14936
  const maxWidth = col.maxWidth || 9999;
@@ -14911,13 +14965,17 @@ class SdTable {
14911
14965
  this.columns.filter(c => c.visible !== false).length -
14912
14966
  (this.stickyColumn?.right || 0) && i > colIdx)
14913
14967
  .reduce((a, b) => a + b, 0);
14914
- return {
14968
+ const visibleCol = this.columns.filter(c => c.visible !== false)[colIdx];
14969
+ const base = {
14915
14970
  '--sticky-left-offset': `${leftOffset}px`,
14916
14971
  '--sticky-right-offset': `${rightOffset}px`,
14917
- 'width': `${this.columnWidths[colIdx]}px`,
14918
- 'minWidth': `${this.columnWidths[colIdx]}px`,
14919
- 'maxWidth': `${this.columnWidths[colIdx]}px`,
14920
14972
  };
14973
+ if (!visibleCol?.autoWidth) {
14974
+ base['width'] = `${this.columnWidths[colIdx]}px`;
14975
+ base['minWidth'] = `${this.columnWidths[colIdx]}px`;
14976
+ base['maxWidth'] = `${this.columnWidths[colIdx]}px`;
14977
+ }
14978
+ return base;
14921
14979
  }
14922
14980
  async getStickyStyle(colIdx) {
14923
14981
  return this.getStickyStyleSync(colIdx);
@@ -14943,7 +15001,7 @@ class SdTable {
14943
15001
  });
14944
15002
  }
14945
15003
  registerSpanSync(rowKey, field, rowspan, colspan) {
14946
- if (rowKey == null || !field)
15004
+ if (rowKey == null || field === '')
14947
15005
  return;
14948
15006
  const safeRowspan = Math.max(1, Math.floor(rowspan || 1));
14949
15007
  const safeColspan = Math.max(1, Math.floor(colspan || 1));
@@ -14962,7 +15020,7 @@ class SdTable {
14962
15020
  this.requestAllTrUpdate();
14963
15021
  }
14964
15022
  unregisterSpanSync(rowKey, field) {
14965
- if (rowKey == null || !field)
15023
+ if (rowKey == null || field === '')
14966
15024
  return;
14967
15025
  const key = this.spanKey(rowKey, field);
14968
15026
  if (!this.spanRegistry.has(key))
@@ -14977,18 +15035,18 @@ class SdTable {
14977
15035
  // span과 달리 다른 셀에 영향이 없으므로 형제 sd-tr 전체를 재렌더하지 않고,
14978
15036
  // sd-td 쪽에서 자기 부모 tr만 bumpSpansVersion으로 새로 그린다.
14979
15037
  registerCellClassSync(rowKey, field, cls) {
14980
- if (rowKey == null || !field)
15038
+ if (rowKey == null || field === '')
14981
15039
  return;
14982
15040
  const key = this.spanKey(rowKey, field);
14983
15041
  const safe = (cls ?? '').trim();
14984
- if (!safe) {
15042
+ if (safe === '') {
14985
15043
  this.cellClassRegistry.delete(key);
14986
15044
  return;
14987
15045
  }
14988
15046
  this.cellClassRegistry.set(key, safe);
14989
15047
  }
14990
15048
  unregisterCellClassSync(rowKey, field) {
14991
- if (rowKey == null || !field)
15049
+ if (rowKey == null || field === '')
14992
15050
  return;
14993
15051
  this.cellClassRegistry.delete(this.spanKey(rowKey, field));
14994
15052
  }
@@ -15011,7 +15069,7 @@ class SdTable {
15011
15069
  // 1. 같은 행 왼쪽 스캔 — colspan으로 이 위치를 덮는 셀이 있는가
15012
15070
  for (let i = 0; i < colIdx; i++) {
15013
15071
  const c = visibleCols[i];
15014
- if (!c)
15072
+ if (c == null)
15015
15073
  continue;
15016
15074
  const field = typeof c.field === 'string' ? c.field : c.name;
15017
15075
  const span = this.spanRegistry.get(this.spanKey(rowKey, field));
@@ -15049,23 +15107,50 @@ class SdTable {
15049
15107
  }
15050
15108
  return false;
15051
15109
  }
15052
- // 셀이 시각적으로 마지막 행(또는 페이지 마지막 )에 닿는지 판정.
15053
- // 마지막 행에 border-bottom: none을 적용하기 위함
15054
- isVisualLastRowSync(rowKey, field) {
15055
- if (this.rowCount <= 0)
15056
- return false;
15110
+ // rowspan을 반영한 셀의 시각적 하단인덱스를 반환한다.
15111
+ // isVisualLastRowSync·isVisualLastRowBeforeSeparatorSync 공통 헬퍼.
15112
+ resolveVisualBottom(rowKey, field) {
15057
15113
  const myRowIdx = this.resolveRowIndex(rowKey);
15058
15114
  if (myRowIdx == null)
15059
- return false;
15115
+ return null;
15060
15116
  const span = this.spanRegistry.get(this.spanKey(rowKey, field));
15061
15117
  const rs = Math.max(1, span?.rowspan ?? 1);
15062
- const visualBottom = myRowIdx + rs - 1;
15118
+ return myRowIdx + rs - 1;
15119
+ }
15120
+ // 셀의 시각적 하단이 테이블(또는 현재 페이지)의 마지막 행인지 판정.
15121
+ // 마지막 행에 border-bottom: none을 적용하기 위함.
15122
+ isVisualLastRowSync(rowKey, field) {
15123
+ if (this.rowCount <= 0)
15124
+ return false;
15125
+ const visualBottom = this.resolveVisualBottom(rowKey, field);
15126
+ if (visualBottom == null)
15127
+ return false;
15063
15128
  const pageInfo = this.getPaginationInfoSync();
15064
15129
  const lastVisibleIdx = pageInfo
15065
15130
  ? Math.min(pageInfo.endIndex - 1, this.rowCount - 1)
15066
15131
  : this.rowCount - 1;
15067
15132
  return visualBottom === lastVisibleIdx;
15068
15133
  }
15134
+ registerSeparatorSync(prevRowKey) {
15135
+ const idx = this.resolveRowIndex(prevRowKey);
15136
+ if (idx != null)
15137
+ this.separatorPrevIndices.add(idx);
15138
+ }
15139
+ unregisterSeparatorSync(prevRowKey) {
15140
+ const idx = this.resolveRowIndex(prevRowKey);
15141
+ if (idx != null)
15142
+ this.separatorPrevIndices.delete(idx);
15143
+ }
15144
+ // 셀의 시각적 하단이 separator 바로 앞 행인지 판정.
15145
+ // 해당 셀에 border-bottom: none을 적용하기 위함.
15146
+ isVisualLastRowBeforeSeparatorSync(rowKey, field) {
15147
+ if (this.separatorPrevIndices.size === 0)
15148
+ return false;
15149
+ const visualBottom = this.resolveVisualBottom(rowKey, field);
15150
+ if (visualBottom == null)
15151
+ return false;
15152
+ return this.separatorPrevIndices.has(visualBottom);
15153
+ }
15069
15154
  setRowCountSync(count) {
15070
15155
  const safeCount = Math.max(0, Math.floor(this.toFiniteNumber(count, 0)));
15071
15156
  if (safeCount !== this.rowCount) {
@@ -15080,7 +15165,7 @@ class SdTable {
15080
15165
  this.setRowCountSync(count);
15081
15166
  }
15082
15167
  calculateVisibleRange(scrollTop, containerHeight) {
15083
- const safeRowHeight = Math.max(1, this.toFiniteNumber(this.rowHeight, 40));
15168
+ const safeRowHeight = Math.max(1, this.toFiniteNumber(this.effectiveRowHeight, 40));
15084
15169
  const safeBuffer = Math.max(0, Math.floor(this.toFiniteNumber(this.virtualBuffer, 5)));
15085
15170
  const safeScrollTop = Math.max(0, this.toFiniteNumber(scrollTop, 0));
15086
15171
  const safeContainerHeight = Math.max(0, this.toFiniteNumber(containerHeight, 0));
@@ -15146,6 +15231,12 @@ class SdTable {
15146
15231
  }
15147
15232
  render() {
15148
15233
  const resolvedTableId = this.getResolvedTableId();
15234
+ const isNoData = this.rowCount === 0 && !this.isLoading;
15235
+ const paginationHeight = this.pagination && this.rowCount > 0 && !this.useVirtualScroll ? 48 : 0;
15236
+ const noDataTotalHeight = 36 + this.noDataBodyHeight;
15237
+ const effectiveTableHeight = isNoData
15238
+ ? `max(${this.height || '96px'}, ${noDataTotalHeight}px)`
15239
+ : this.height || '100%';
15149
15240
  const hostStyle = {
15150
15241
  '--table-radius': `${TABLE_RADIUS}px`,
15151
15242
  '--table-border-color': TABLE_BORDER.color,
@@ -15156,21 +15247,25 @@ class SdTable {
15156
15247
  '--table-body-line-height': `${TABLE_BODY_TYPOGRAPHY.lineHeight}px`,
15157
15248
  '--table-body-text-decoration': TABLE_BODY_TYPOGRAPHY.textDecoration,
15158
15249
  };
15159
- return (hAsync(Host, { key: 'd868318e2aeb7b3062a702a743f90bb55dbb00b8', style: hostStyle }, hAsync("div", { key: '5b2113ecd1fa52a6170ffcfac5f906fae7ef7548', class: "sd-table__container", style: {
15250
+ return (hAsync(Host, { key: '02d716bdac3832710bf58d63741aeeb4b04d434b', style: hostStyle }, hAsync("div", { key: '88faad346e032ca727375889aa0552a330f5799a', class: "sd-table__container", style: {
15160
15251
  '--table-width': this.width,
15161
- '--table-height': this.height,
15162
- '--table-container-height': `calc(${this.height || '100%'} - ${this.pagination && this.rowCount > 0 && !this.useVirtualScroll ? 48 : 0}px)`,
15163
- } }, hAsync("div", { key: '389d7f3508727fb76d9d9f98a73963c5556ff993', class: {
15252
+ '--table-height': effectiveTableHeight,
15253
+ '--table-container-height': `calc(${effectiveTableHeight} - ${paginationHeight}px)`,
15254
+ } }, hAsync("div", { key: '783934f349e0da5bab77cbb44cc12f0dfeb9ec71', class: {
15164
15255
  'sd-table__wrapper': true,
15165
15256
  'sd-table__wrapper--radius-use-top': this.radius === 'useTop',
15166
- } }, hAsync("div", { key: 'e9cdeecb5f318cb1af4e0d2e938e0098e1cc44d0', class: {
15257
+ } }, hAsync("div", { key: 'd3a76ad0e853c6adf16df633c0e0b7f5bb580f24', class: {
15167
15258
  'sd-table__scroll-container': true,
15168
15259
  'sd-table__scroll-container--loading': this.isLoading,
15169
- 'sd-table__scroll-container--no-data': this.rowCount === 0 && !this.isLoading,
15170
- } }, this.isLoading && (hAsync("div", { key: '40caec779763f90e1f48818e3f56e8daabc105a6', class: "sd-table__loading", style: { top: `${this.loadingScrollTop}px` } }, hAsync("sd-circle-progress", { key: 'bf7a3cabb0023f0a1663dd0337f3399ace0e75e7', indeterminate: true }))), this.rowCount === 0 && !this.isLoading && (hAsync("div", { key: 'aac583c7876171a276645146e00afbc43d405607', class: "sd-table__no-data" }, hAsync("slot", { key: '31e18789beeed03bcfd7013c9386eefd6f51b2cd', name: "no-data" }, hAsync("span", { key: '07da091864e588f2ee60e8ea5ffd5ae34c968f68' }, this.resolvedNoDataLabel)))), hAsync("table", { key: '69284f7f819477072450d1b6acbfe081abe4f1ef', 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 &&
15260
+ 'sd-table__scroll-container--no-data': isNoData,
15261
+ } }, this.isLoading && (hAsync("div", { key: 'cc77ce58ff0eebf3fc1d7dd9dbf11578f94d4dd1', class: "sd-table__loading", style: { top: `${this.loadingScrollTop}px` } }, hAsync("sd-circle-progress", { key: 'bda7ed774342089a23d13b49a506b04527026275', indeterminate: true }))), isNoData && (hAsync(hAsync.Fragment, null, hAsync("div", { key: 'f2ce89d0ae9eefe0f0f8509e477756cb74dbef86', class: "sd-table__no-data-header-overlay" }), hAsync("div", { key: '84d739563123d0f0fc33166b1a6e80021ba06e1c', class: "sd-table__no-data" }, hAsync("div", { key: '3507f718a25b79c44fdf283fb41356ab72f2a384', class: "sd-table__no-data-content", ref: el => {
15262
+ this.noDataContentEl = el;
15263
+ if (el)
15264
+ this.syncNoDataContentObserver();
15265
+ } }, hAsync("slot", { key: '818129819b2ff4a6f9fc1224dc59a9aa5861296d', name: "no-data" }, hAsync("span", { key: 'c03cfb713e6dadd5ab4c60d7d27fd502d7aa9348' }, this.resolvedNoDataLabel)))))), hAsync("table", { key: '8864714a828069985bac6535bc40cbb043dfcb28', 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 &&
15171
15266
  this.pagination.rowsPerPage > 0 &&
15172
15267
  this.rowCount > 0 &&
15173
- !this.useVirtualScroll && (hAsync("div", { key: 'ff30e864526aa8c3fac2cc37499cea7aa6be1420', class: "sd-table__pagination" }, hAsync("sd-pagination", { key: 'ad5badf1d5f518b0bf281e973c46b1381e82ae3c', 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: 'd249e79cfda4c80cb4df9c353dc4f678a5ccb861', value: this.useInternalPagination
15268
+ !this.useVirtualScroll && (hAsync("div", { key: 'bdac4b4d551152ec7ee0cdc31bfb992748836928', class: "sd-table__pagination" }, hAsync("sd-pagination", { key: '2c60fff7f8ac3a3bd22da2173b8a9187bb686ddf', currentPage: !this.useInternalPagination ? this.pagination.page : this.currentPage, lastPage: !this.useInternalPagination ? this.pagination.lastPage : this.lastPageNumber, onSdPageChange: (e) => this.changePage(e.detail) }), this.useRowsPerPageSelect && (hAsync("sd-select", { key: '7a662f58e13c15e705341773570f899f503f12c0', value: this.useInternalPagination
15174
15269
  ? this.innerRowsPerPage
15175
15270
  : this.pagination.rowsPerPage, options: this.rowsPerPageOption, width: "128px", emitValue: true, onSdUpdate: e => {
15176
15271
  if (!this.isRowsPerPageValue(e.detail))
@@ -15212,6 +15307,9 @@ class SdTable {
15212
15307
  "stickyHeader": [{
15213
15308
  "handleConfigChange": 0
15214
15309
  }],
15310
+ "dense": [{
15311
+ "handleConfigChange": 0
15312
+ }],
15215
15313
  "selected": [{
15216
15314
  "handleSelectedChange": 0
15217
15315
  }],
@@ -15241,6 +15339,7 @@ class SdTable {
15241
15339
  "pagination": [16],
15242
15340
  "useInternalPagination": [4, "use-internal-pagination"],
15243
15341
  "useRowsPerPageSelect": [4, "use-rows-per-page-select"],
15342
+ "dense": [4],
15244
15343
  "useVirtualScroll": [4, "use-virtual-scroll"],
15245
15344
  "rowHeight": [2, "row-height"],
15246
15345
  "virtualBuffer": [2, "virtual-buffer"],
@@ -15255,6 +15354,7 @@ class SdTable {
15255
15354
  "scrolledRight": [32],
15256
15355
  "rowCount": [32],
15257
15356
  "loadingScrollTop": [32],
15357
+ "noDataBodyHeight": [32],
15258
15358
  "autoThead": [32],
15259
15359
  "autoTbody": [32],
15260
15360
  "isRowSelected": [64],
@@ -15457,9 +15557,14 @@ class SdTabs {
15457
15557
  };
15458
15558
  }
15459
15559
  render() {
15460
- return (hAsync("div", { key: '9578cc6d422a304312f9ebc78622264d20d1fb45', class: this.getContainerClasses(), style: this.buildCssVars() }, this.tabs.map((tab, index) => {
15560
+ return (hAsync("div", { key: '880f1aa80c29f2d578ffe2d5e5e5e0c008c898d3', class: this.getContainerClasses(), style: this.buildCssVars() }, this.tabs.map((tab, index) => {
15461
15561
  const badgeName = this.getBadgeName(tab);
15462
- return (hAsync("div", { key: `tab-${index}`, class: this.getTabClasses(tab), "aria-label": tab.label || 'tab', onClick: () => this.handleTabClick(tab) }, hAsync("span", { "data-label": tab.label, class: "sd-tabs__label" }, tab.label), tab.badge !== undefined && tab.badge !== null && tab.badge !== '' && (hAsync("sd-tag", { name: badgeName, label: tab.badge.toString() }))));
15562
+ 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 => {
15563
+ if (e.key === 'Enter' || e.key === ' ') {
15564
+ e.preventDefault();
15565
+ this.handleTabClick(tab);
15566
+ }
15567
+ } }, hAsync("span", { "data-label": tab.label, class: "sd-tabs__label" }, tab.label), tab.badge !== undefined && tab.badge !== null && tab.badge !== '' && (hAsync("sd-tag", { name: badgeName, label: tab.badge.toString() }))));
15463
15568
  })));
15464
15569
  }
15465
15570
  static get watchers() { return {
@@ -15488,7 +15593,6 @@ const tag = {
15488
15593
  height: "20",
15489
15594
  paddingX: "8",
15490
15595
  gap: "4",
15491
- icon: "12",
15492
15596
  typography: {
15493
15597
  fontSize: "11",
15494
15598
  fontWeight: "500",
@@ -15499,7 +15603,6 @@ const tag = {
15499
15603
  height: "24",
15500
15604
  paddingX: "8",
15501
15605
  gap: "4",
15502
- icon: "16",
15503
15606
  typography: {
15504
15607
  fontSize: "12",
15505
15608
  fontWeight: "700",
@@ -15511,7 +15614,6 @@ const tag = {
15511
15614
  height: "28",
15512
15615
  paddingX: "12",
15513
15616
  gap: "6",
15514
- icon: "16",
15515
15617
  typography: {
15516
15618
  fontSize: "14",
15517
15619
  fontWeight: "700",
@@ -15617,7 +15719,7 @@ const SQUARE_SIZE_CONFIG = {
15617
15719
  fontSize: `${tagTokens.tag.xs.typography.fontSize}px`,
15618
15720
  fontWeight: tagTokens.tag.xs.typography.fontWeight,
15619
15721
  lineHeight: `${tagTokens.tag.xs.typography.lineHeight}px`,
15620
- iconSize: Number(tagTokens.tag.xs.icon),
15722
+ iconSize: 12,
15621
15723
  radius: `${tagTokens.tag.xs.radius}px`,
15622
15724
  },
15623
15725
  sm: {
@@ -15627,7 +15729,7 @@ const SQUARE_SIZE_CONFIG = {
15627
15729
  fontSize: `${tagTokens.tag.sm.typography.fontSize}px`,
15628
15730
  fontWeight: tagTokens.tag.sm.typography.fontWeight,
15629
15731
  lineHeight: `${tagTokens.tag.sm.typography.lineHeight}px`,
15630
- iconSize: Number(tagTokens.tag.sm.icon),
15732
+ iconSize: 16,
15631
15733
  radius: `${tagTokens.tag.sm.radius}px`,
15632
15734
  },
15633
15735
  md: {
@@ -15637,7 +15739,7 @@ const SQUARE_SIZE_CONFIG = {
15637
15739
  fontSize: `${tagTokens.tag.md.typography.fontSize}px`,
15638
15740
  fontWeight: tagTokens.tag.md.typography.fontWeight,
15639
15741
  lineHeight: `${tagTokens.tag.md.typography.lineHeight}px`,
15640
- iconSize: Number(tagTokens.tag.md.icon),
15742
+ iconSize: 16,
15641
15743
  radius: `${tagTokens.tag.md.radius}px`,
15642
15744
  },
15643
15745
  };
@@ -15671,6 +15773,9 @@ class SdTag {
15671
15773
  label = '';
15672
15774
  icon;
15673
15775
  isLeft = true;
15776
+ componentWillLoad() {
15777
+ this.name = this.name ?? 'square_sm_grey';
15778
+ }
15674
15779
  get resolvedName() {
15675
15780
  if (!isTagName(this.name)) {
15676
15781
  throw new Error(`Invalid sd-tag name: "${this.name}"`);
@@ -15681,14 +15786,14 @@ class SdTag {
15681
15786
  return TAG_CONFIG[this.resolvedName];
15682
15787
  }
15683
15788
  renderIcon(color, size) {
15684
- if (!this.icon)
15789
+ if (this.icon == null)
15685
15790
  return null;
15686
15791
  return hAsync("sd-icon", { class: "sd-tag__icon", name: this.icon, size: size, color: color });
15687
15792
  }
15688
15793
  render() {
15689
15794
  const config = this.resolvedConfig;
15690
15795
  const iconNode = this.renderIcon(config.icon, config.iconSize);
15691
- return (hAsync("span", { key: 'a52a06f79f448427ff3fe2a40c43d23a64e8ed62', class: "sd-tag", style: {
15796
+ return (hAsync("span", { key: '57f3c3f9ad53059fabff205cb44ffa3d1da9a711', class: "sd-tag", style: {
15692
15797
  '--sd-tag-background': config.background,
15693
15798
  '--sd-tag-content': config.content,
15694
15799
  '--sd-tag-height': config.height,
@@ -15698,7 +15803,7 @@ class SdTag {
15698
15803
  '--sd-tag-font-weight': config.fontWeight,
15699
15804
  '--sd-tag-line-height': config.lineHeight,
15700
15805
  '--sd-tag-radius': config.radius,
15701
- }, "aria-label": this.label || 'tag' }, this.icon && this.isLeft && iconNode, hAsync("span", { key: '8e737f385a32109ab58fe4da036dbf594079f217', class: "sd-tag__label" }, this.label), this.icon && !this.isLeft && iconNode));
15806
+ }, "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));
15702
15807
  }
15703
15808
  static get style() { return sdTagCss(); }
15704
15809
  static get cmpMeta() { return {
@@ -15758,17 +15863,17 @@ class SdTbody {
15758
15863
  this.tableEl = table;
15759
15864
  const fromMethod = table?.getTableIdSync?.();
15760
15865
  const fromAttr = table?.getAttribute(TABLE_ID_ATTR);
15761
- const resolvedTableId = (fromMethod && fromMethod !== 'undefined' ? fromMethod : null) ??
15762
- (fromAttr && fromAttr !== 'undefined' ? fromAttr : null) ??
15866
+ const resolvedTableId = (fromMethod != null && fromMethod !== '' && fromMethod !== 'undefined' ? fromMethod : null) ??
15867
+ (fromAttr != null && fromAttr !== '' && fromAttr !== 'undefined' ? fromAttr : null) ??
15763
15868
  '';
15764
- if (resolvedTableId && resolvedTableId !== this.tableId) {
15869
+ if (resolvedTableId !== '' && resolvedTableId !== this.tableId) {
15765
15870
  this.tableId = resolvedTableId;
15766
15871
  }
15767
15872
  }
15768
15873
  render() {
15769
- return (hAsync(Host, { key: 'f0dacb28bae712e8f4d65bad00846da9db593307', slot: `${this.tableId}-body` }, hAsync("tbody", { key: 'aec7d2277e617f1c186163d214e94559793b764c', class: { tbody: true } }, [
15874
+ return (hAsync(Host, { key: 'bdb686445ce324c6254891a385d6175c8cac06df', slot: `${this.tableId}-body` }, hAsync("tbody", { key: '21a7772f0d43a358d9ae17459f0ff296324bfd82', class: { tbody: true } }, [
15770
15875
  this.topSpacerHeight > 0 && (hAsync("tr", { key: "spacer-top", class: "tbody__spacer", style: { height: `${this.topSpacerHeight}px`, display: 'block' } })),
15771
- hAsync("slot", { key: '2c428e3624ac949ee201edfd02b5e8f0bcea2e48' }),
15876
+ hAsync("slot", { key: 'e38d8fe5d67a91d3fa5a25be98195da104660005' }),
15772
15877
  this.bottomSpacerHeight > 0 && (hAsync("tr", { key: "spacer-bottom", class: "tbody__spacer", style: { height: `${this.bottomSpacerHeight}px`, display: 'block' } })),
15773
15878
  ])));
15774
15879
  }
@@ -15809,6 +15914,10 @@ class SdTd {
15809
15914
  // <sd-td> 호스트는 display:contents라 호스트의 class는 시각 효과가 없기 때문에,
15810
15915
  // 이 prop을 통해 sd-table 레지스트리에 등록 → sd-tr가 td 렌더 시 합쳐 사용한다.
15811
15916
  sdClass;
15917
+ dividerLeft = false;
15918
+ dividerRight = false;
15919
+ // true이면 이 셀이 속한 행 전체가 dense를 무시하고 default 레이아웃으로 동작한다.
15920
+ useFrame = false;
15812
15921
  handleFieldChange(_newField, oldField) {
15813
15922
  this.syncSlotName();
15814
15923
  this.syncSpanRegistration();
@@ -15825,10 +15934,18 @@ class SdTd {
15825
15934
  handleSdClassChange() {
15826
15935
  this.syncCellClassRegistration();
15827
15936
  }
15937
+ handleDividerChange() {
15938
+ this.syncCellClassRegistration();
15939
+ }
15940
+ handleUseFieldChange() {
15941
+ this.syncUseFieldRegistration();
15942
+ this.requestParentTrUpdate();
15943
+ }
15828
15944
  componentWillLoad() {
15829
15945
  this.syncSlotName();
15830
15946
  this.syncSpanRegistration();
15831
15947
  this.syncCellClassRegistration();
15948
+ this.syncUseFieldRegistration();
15832
15949
  // slot 타이밍 엇갈림 대응: 부모 sd-tr forceUpdate로 슬롯 재매칭
15833
15950
  const parentTr = this.el.parentElement;
15834
15951
  if (parentTr?.tagName?.toLowerCase() === 'sd-tr') ;
@@ -15837,6 +15954,7 @@ class SdTd {
15837
15954
  this.syncSlotName();
15838
15955
  this.syncSpanRegistration();
15839
15956
  this.syncCellClassRegistration();
15957
+ this.syncUseFieldRegistration();
15840
15958
  }
15841
15959
  // React StrictMode에서는 disconnect/reconnect 사이클이 일어나면서
15842
15960
  // 동일 인스턴스의 componentWillLoad는 더 이상 호출되지 않는다.
@@ -15844,12 +15962,14 @@ class SdTd {
15844
15962
  connectedCallback() {
15845
15963
  this.syncSpanRegistration();
15846
15964
  this.syncCellClassRegistration();
15965
+ this.syncUseFieldRegistration();
15847
15966
  }
15848
15967
  disconnectedCallback() {
15849
15968
  const table = this.findTable();
15850
- if (table && this.field && this.rowKey != null) {
15969
+ if (table != null && this.field !== '' && this.rowKey != null) {
15851
15970
  table.unregisterSpanSync?.(String(this.rowKey), this.field);
15852
15971
  table.unregisterCellClassSync?.(String(this.rowKey), this.field);
15972
+ table.unregisterUseFrameSync?.(String(this.rowKey), this.field);
15853
15973
  this.requestParentTrUpdate();
15854
15974
  }
15855
15975
  }
@@ -15867,7 +15987,7 @@ class SdTd {
15867
15987
  }
15868
15988
  syncSpanRegistration() {
15869
15989
  const table = this.findTable();
15870
- if (!table?.registerSpanSync || !this.field || this.rowKey == null)
15990
+ if (table?.registerSpanSync == null || this.field === '' || this.rowKey == null)
15871
15991
  return;
15872
15992
  const rs = Math.max(1, Math.floor(Number(this.rowspan) || 1));
15873
15993
  const cs = Math.max(1, Math.floor(Number(this.colspan) || 1));
@@ -15881,27 +16001,45 @@ class SdTd {
15881
16001
  return;
15882
16002
  const oldField = prevField ?? this.field;
15883
16003
  const oldRowKey = prevRowKey ?? (this.rowKey != null ? String(this.rowKey) : undefined);
15884
- if (oldField && oldRowKey != null) {
16004
+ if (oldField !== '' && oldRowKey != null) {
15885
16005
  table.unregisterCellClassSync?.(oldRowKey, oldField);
15886
16006
  }
15887
- if (!table.registerCellClassSync || !this.field || this.rowKey == null)
16007
+ if (!table.registerCellClassSync || this.field === '' || this.rowKey == null)
15888
16008
  return;
15889
- table.registerCellClassSync(String(this.rowKey), this.field, this.sdClass);
16009
+ const combinedClass = [
16010
+ this.sdClass,
16011
+ this.dividerLeft && 'td--divider-left',
16012
+ this.dividerRight && 'td--divider-right',
16013
+ ]
16014
+ .filter(Boolean)
16015
+ .join(' ') || undefined;
16016
+ table.registerCellClassSync(String(this.rowKey), this.field, combinedClass);
15890
16017
  this.requestParentTrUpdate();
15891
16018
  }
16019
+ syncUseFieldRegistration() {
16020
+ const table = this.findTable();
16021
+ if (!table || this.field === '' || this.rowKey == null)
16022
+ return;
16023
+ if (this.useFrame) {
16024
+ table.registerUseFrameSync?.(String(this.rowKey), this.field);
16025
+ }
16026
+ else {
16027
+ table.unregisterUseFrameSync?.(String(this.rowKey), this.field);
16028
+ }
16029
+ }
15892
16030
  syncSlotName() {
15893
16031
  const table = this.el.closest('sd-table');
15894
16032
  const fromMethod = table?.getTableIdSync?.();
15895
16033
  const fromAttr = table?.getAttribute(TABLE_ID_ATTR);
15896
- const tableId = (fromMethod && fromMethod !== 'undefined' ? fromMethod : null) ??
15897
- (fromAttr && fromAttr !== 'undefined' ? fromAttr : null) ??
16034
+ const tableId = (fromMethod != null && fromMethod !== '' && fromMethod !== 'undefined' ? fromMethod : null) ??
16035
+ (fromAttr != null && fromAttr !== '' && fromAttr !== 'undefined' ? fromAttr : null) ??
15898
16036
  '';
15899
- if (this.field && this.rowKey !== undefined && tableId) {
16037
+ if (this.field !== '' && this.rowKey !== undefined && tableId !== '') {
15900
16038
  this.el.setAttribute('slot', `${tableId}-${this.field}-${this.rowKey}`);
15901
16039
  }
15902
16040
  }
15903
16041
  render() {
15904
- return (hAsync(Host, { key: 'a8b4cb79a6b40119087fcba358a5c8daadb70fe8', class: { [`align-${this.align}`]: Boolean(this.align) } }, hAsync("slot", { key: '959b53537662f22e6bb5fe8d775530c11cbdff3b' })));
16042
+ return (hAsync(Host, { key: '7d51ea5f02ba2df099f4440be26c2f0be8a73a6b', class: { [`align-${this.align}`]: Boolean(this.align) } }, hAsync("slot", { key: '9a6a634e2bcd206ec9099c6be738c3853d0cbebf' })));
15905
16043
  }
15906
16044
  static get watchers() { return {
15907
16045
  "field": [{
@@ -15918,6 +16056,15 @@ class SdTd {
15918
16056
  }],
15919
16057
  "sdClass": [{
15920
16058
  "handleSdClassChange": 0
16059
+ }],
16060
+ "dividerLeft": [{
16061
+ "handleDividerChange": 0
16062
+ }],
16063
+ "dividerRight": [{
16064
+ "handleDividerChange": 0
16065
+ }],
16066
+ "useFrame": [{
16067
+ "handleUseFieldChange": 0
15921
16068
  }]
15922
16069
  }; }
15923
16070
  static get style() { return sdTdCss(); }
@@ -15930,7 +16077,10 @@ class SdTd {
15930
16077
  "align": [1],
15931
16078
  "rowspan": [2],
15932
16079
  "colspan": [2],
15933
- "sdClass": [1, "sd-class"]
16080
+ "sdClass": [1, "sd-class"],
16081
+ "dividerLeft": [4, "divider-left"],
16082
+ "dividerRight": [4, "divider-right"],
16083
+ "useFrame": [4, "use-frame"]
15934
16084
  },
15935
16085
  "$listeners$": undefined,
15936
16086
  "$lazyBundleId$": "-",
@@ -16012,16 +16162,21 @@ class SdTextLink {
16012
16162
  '--sd-text-link-text-decoration': typo.textDecoration,
16013
16163
  ...(this.disabled ? { '--sd-text-link-color': TEXT_LINK_COLORS.content.disabled } : {}),
16014
16164
  };
16015
- return (hAsync("span", { key: '8b02293383e914a0d2c9ac4c9fa2bf4d6bd56d97', class: {
16165
+ return (hAsync("span", { key: '11d2153cc91818c1214e21ffa14bd08249ad1116', role: "button", tabindex: this.disabled ? -1 : 0, class: {
16016
16166
  'sd-text-link': true,
16017
16167
  'sd-text-link--disabled': this.disabled,
16018
- }, style: cssVars, onClick: this.handleClick }, this.icon && (hAsync("sd-icon", { key: '1f10b5c49d53009a68550e22167b0ce58c29d555', name: this.icon, size: TEXT_LINK_LAYOUT.iconSize, color: iconColor, class: "sd-text-link__icon" })), hAsync("span", { key: 'a5b528b595d036c079818fab432171e39a4c1a4e', class: labelClassName }, this.label), this.useArrow && (hAsync("span", { key: 'fd1559e836bc3a6089043e5f4d9de12d364ab61f', class: "sd-text-link__arrow", style: {
16168
+ }, style: cssVars, onClick: this.handleClick, onKeyDown: e => {
16169
+ if (e.key === 'Enter' || e.key === ' ') {
16170
+ e.preventDefault();
16171
+ this.handleClick();
16172
+ }
16173
+ } }, this.icon && (hAsync("sd-icon", { key: '23972d53b4968c9bdef9b54dfa785e658ba117ef', name: this.icon, size: TEXT_LINK_LAYOUT.iconSize, color: iconColor, class: "sd-text-link__icon" })), hAsync("span", { key: '5e99a6c1151093929086ec4398b93d7db590d959', class: labelClassName }, this.label), this.useArrow && (hAsync("span", { key: 'b814759278cefe229a5321556374438f281ce0f3', class: "sd-text-link__arrow", style: {
16019
16174
  width: `${TEXT_LINK_LAYOUT.arrowFrame}px`,
16020
16175
  height: `${TEXT_LINK_LAYOUT.arrowFrame}px`,
16021
16176
  display: 'inline-flex',
16022
16177
  alignItems: 'center',
16023
16178
  justifyContent: 'center',
16024
- } }, hAsync("sd-icon", { key: '3af56ca5845d6d544c786142ae5842aca0720808', name: "chevronRight", size: TEXT_LINK_LAYOUT.arrowIconSize, color: arrowColor })))));
16179
+ } }, hAsync("sd-icon", { key: 'dfe3286eaeef9a176f5ff1a69950713e2712a550', name: "chevronRight", size: TEXT_LINK_LAYOUT.arrowIconSize, color: arrowColor })))));
16025
16180
  }
16026
16181
  static get style() { return sdTextLinkCss(); }
16027
16182
  static get cmpMeta() { return {
@@ -16168,7 +16323,7 @@ class SdTextarea {
16168
16323
  '--sd-system-size-field-sm-height': 'auto',
16169
16324
  '--sd-system-radius-field-sm': `${TEXTAREA_TOKENS.radius}px`,
16170
16325
  };
16171
- return (hAsync("sd-field", { key: '3c5bd837d531d12fb0c7c4a80845752f9708f633', 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: '4bc1c0dad520d30f6758c057eecb25027aaa6615', class: "sd-textarea__content" }, hAsync("textarea", { key: 'cfe1004e8d765bd047f72642eb03b239059d7234', 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 }))));
16326
+ 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 }))));
16172
16327
  }
16173
16328
  static get watchers() { return {
16174
16329
  "value": [{
@@ -16251,7 +16406,7 @@ class SdThead {
16251
16406
  tableEl = null;
16252
16407
  handleColumnsChange(newCols) {
16253
16408
  if (Array.isArray(newCols) && (this.columnWidths ?? []).length === 0) {
16254
- this.columnWidths = newCols.map(c => parseInt(c.width || '120', 10));
16409
+ this.columnWidths = newCols.map(c => (c.autoWidth ? 0 : parseInt(c.width || '120', 10)));
16255
16410
  }
16256
16411
  }
16257
16412
  componentWillLoad() {
@@ -16259,7 +16414,7 @@ class SdThead {
16259
16414
  this.columnWidths = Array.isArray(this.columnWidths) ? this.columnWidths : [];
16260
16415
  this.resolveConfig();
16261
16416
  if ((this.columnWidths ?? []).length === 0) {
16262
- this.columnWidths = this._columns.map(c => parseInt(c.width || '120', 10));
16417
+ this.columnWidths = this._columns.map(c => c.autoWidth ? 0 : parseInt(c.width || '120', 10));
16263
16418
  }
16264
16419
  }
16265
16420
  componentDidLoad() {
@@ -16276,10 +16431,10 @@ class SdThead {
16276
16431
  this.tableEl = table;
16277
16432
  const fromMethod = table?.getTableIdSync?.();
16278
16433
  const fromAttr = table?.getAttribute(TABLE_ID_ATTR);
16279
- const resolvedTableId = (fromMethod && fromMethod !== 'undefined' ? fromMethod : null) ??
16280
- (fromAttr && fromAttr !== 'undefined' ? fromAttr : null) ??
16434
+ const resolvedTableId = (fromMethod != null && fromMethod !== '' && fromMethod !== 'undefined' ? fromMethod : null) ??
16435
+ (fromAttr != null && fromAttr !== '' && fromAttr !== 'undefined' ? fromAttr : null) ??
16281
16436
  '';
16282
- if (resolvedTableId && resolvedTableId !== this.tableId) {
16437
+ if (resolvedTableId !== '' && resolvedTableId !== this.tableId) {
16283
16438
  this.tableId = resolvedTableId;
16284
16439
  }
16285
16440
  }
@@ -16327,13 +16482,17 @@ class SdThead {
16327
16482
  const rightOffset = this.columnWidths
16328
16483
  .filter((_, i) => i >= this.visibleColumns.length - (this._stickyColumn.right || 0) && i > colIdx)
16329
16484
  .reduce((a, b) => a + b, 0);
16330
- return {
16485
+ const col = this.visibleColumns[colIdx];
16486
+ const base = {
16331
16487
  '--sticky-left-offset': `${leftOffset}px`,
16332
16488
  '--sticky-right-offset': `${rightOffset}px`,
16333
- 'width': `${this.columnWidths[colIdx]}px`,
16334
- 'minWidth': `${this.columnWidths[colIdx]}px`,
16335
- 'maxWidth': `${this.columnWidths[colIdx]}px`,
16336
16489
  };
16490
+ if (!col?.autoWidth) {
16491
+ base['width'] = `${this.columnWidths[colIdx]}px`;
16492
+ base['minWidth'] = `${this.columnWidths[colIdx]}px`;
16493
+ base['maxWidth'] = `${this.columnWidths[colIdx]}px`;
16494
+ }
16495
+ return base;
16337
16496
  }
16338
16497
  handleResize(index, event, reversed = false) {
16339
16498
  if (this.tableEl?.handleResize) {
@@ -16364,6 +16523,7 @@ class SdThead {
16364
16523
  const stickyLeftCols = this.visibleColumns.slice(0, stickyLeftCount);
16365
16524
  const middleCols = this.visibleColumns.slice(stickyLeftCount, this.visibleColumns.length - stickyRightCount);
16366
16525
  const stickyRightCols = this.visibleColumns.slice(this.visibleColumns.length - stickyRightCount);
16526
+ const lastColIdx = this.visibleColumns.length - 1;
16367
16527
  const headStyle = {
16368
16528
  '--table-header-height': `${TABLE_HEADER_LAYOUT.height}px`,
16369
16529
  '--table-header-padding-x': `${TABLE_HEADER_LAYOUT.paddingX}px`,
@@ -16379,27 +16539,33 @@ class SdThead {
16379
16539
  '--table-border-color': TABLE_BORDER.color,
16380
16540
  '--table-border-width': `${TABLE_BORDER.width}px`,
16381
16541
  };
16382
- return (hAsync(Host, { key: '99d8d19dcc65b811d323e21041421b2d57da9f91', slot: `${this.tableId}-head`, style: headStyle }, hAsync("thead", { key: '7614b6726ec13e857b6b8654925b0ba3c89fba64', class: {
16542
+ return (hAsync(Host, { key: 'c2852fc7d6fe9e8116fabbbcc140f4db8319bfdc', slot: `${this.tableId}-head`, style: headStyle }, hAsync("thead", { key: '970cb1c96145326f38b79636a72982b0e9c81fa0', class: {
16383
16543
  'thead': true,
16384
16544
  'thead--sticky': this._stickyHeader,
16385
- } }, hAsync("tr", { key: '68a615e7779947c1ee8cc26027c5bcded545e4d3', class: "tr" }, this._selectable && (hAsync("th", { key: 'd3bc4512a24652ee156104a0fd9891504ce314dd', class: {
16545
+ } }, hAsync("tr", { key: '839fb6e9fd68ef10dea1f1d470a6b3e707475a8d', class: "tr" }, this._selectable && (hAsync("th", { key: 'd669372261627013bc1b39157139d180b3d1a6c1', class: {
16386
16546
  'th': true,
16387
16547
  'th--selected': true,
16388
16548
  'sticky-left': true,
16389
16549
  'sticky-left-edge': stickyLeftCount === 0,
16390
16550
  'is-scrolled-left': stickyLeftCount === 0 && this._scrolledLeft,
16391
- }, style: { '--sticky-left-offset': '0px' } }, hAsync("sd-checkbox", { key: 'de8f9b201aca60acbbb28a3233e964100109a92b', value: this.getIsAllChecked(), disabled: !safeRows.length, onSdUpdate: (e) => this.handleSelectAll(e.detail) }))), stickyLeftCols.map((col, idx) => (hAsync("th", { key: col.name, class: {
16551
+ }, 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: {
16392
16552
  'th': true,
16393
16553
  [`${col.thClass}`]: Boolean(col.thClass),
16394
16554
  'sticky-left': true,
16395
16555
  'sticky-left-edge': idx === stickyLeftCount - 1,
16396
16556
  'is-scrolled-left': idx === stickyLeftCount - 1 && this._scrolledLeft,
16397
- }, style: { ...col.thStyle, ...this.getStickyStyle(idx) } }, hAsync("div", { class: `th__content th__content--${col.align || 'left'}` }, hAsync("div", { class: "th__content--label" }, col.label), col.icon && (hAsync("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (hAsync("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (hAsync("sd-tooltip", { ...col.tooltipOptions }, hAsync("div", { slot: "content" }, col.tooltip.map(text => (hAsync("p", null, text))))))), this._resizable && (hAsync("div", { class: "th__resizer", onMouseDown: (evt) => this.handleResize(idx, evt) }))))), middleCols.map((col, relativeIdx) => {
16557
+ }, style: { ...col.thStyle, ...this.getStickyStyle(idx) } }, hAsync("div", { class: `th__content th__content--${col.align || 'left'}` }, hAsync("div", { class: "th__content--label" }, col.label), col.icon && (hAsync("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (hAsync("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (hAsync("sd-tooltip", { ...col.tooltipOptions }, hAsync("div", { slot: "content" }, col.tooltip.map(text => (hAsync("p", null, text))))))), this._resizable && idx !== lastColIdx && (
16558
+ // column resize 는 마우스 드래그 전용 인터랙션이라 키보드 핸들러를 두지 않는다.
16559
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
16560
+ hAsync("div", { class: "th__resizer", onMouseDown: (evt) => this.handleResize(idx, evt) }))))), middleCols.map((col, relativeIdx) => {
16398
16561
  const actualColIdx = stickyLeftCount + relativeIdx;
16399
16562
  return (hAsync("th", { key: col.name, class: {
16400
16563
  th: true,
16401
16564
  [`${col.thClass}`]: Boolean(col.thClass),
16402
- }, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) } }, hAsync("div", { class: `th__content th__content--${col.align || 'left'}` }, hAsync("div", { class: "th__content--label" }, col.label), col.icon && (hAsync("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (hAsync("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (hAsync("sd-tooltip", { ...col.tooltipOptions }, hAsync("div", { slot: "content" }, col.tooltip.map(text => (hAsync("p", null, text))))))), this._resizable && (hAsync("div", { class: "th__resizer", onMouseDown: (evt) => this.handleResize(actualColIdx, evt) }))));
16565
+ }, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) } }, hAsync("div", { class: `th__content th__content--${col.align || 'left'}` }, hAsync("div", { class: "th__content--label" }, col.label), col.icon && (hAsync("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (hAsync("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (hAsync("sd-tooltip", { ...col.tooltipOptions }, hAsync("div", { slot: "content" }, col.tooltip.map(text => (hAsync("p", null, text))))))), this._resizable && actualColIdx !== lastColIdx && (
16566
+ // column resize 는 마우스 드래그 전용 인터랙션이라 키보드 핸들러를 두지 않는다.
16567
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
16568
+ hAsync("div", { class: "th__resizer", onMouseDown: (evt) => this.handleResize(actualColIdx, evt) }))));
16403
16569
  }), stickyRightCols.map((col, relativeIdx) => {
16404
16570
  const actualColIdx = this.visibleColumns.length - stickyRightCount + relativeIdx;
16405
16571
  return (hAsync("th", { key: col.name, class: {
@@ -16408,7 +16574,10 @@ class SdThead {
16408
16574
  'sticky-right': true,
16409
16575
  'sticky-right-edge': relativeIdx === 0,
16410
16576
  'is-scrolled-right': relativeIdx === 0 && this._scrolledRight,
16411
- }, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) } }, hAsync("div", { class: `th__content th__content--${col.align || 'left'}` }, hAsync("div", { class: "th__content--label" }, col.label), col.icon && (hAsync("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (hAsync("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (hAsync("sd-tooltip", { ...col.tooltipOptions }, hAsync("div", { slot: "content" }, col.tooltip.map(text => (hAsync("p", null, text))))))), this._resizable && (hAsync("div", { class: "th__resizer th__resizer--left", onMouseDown: (evt) => this.handleResize(actualColIdx, evt, true) }))));
16577
+ }, style: { ...col.thStyle, ...this.getStickyStyle(actualColIdx) } }, hAsync("div", { class: `th__content th__content--${col.align || 'left'}` }, hAsync("div", { class: "th__content--label" }, col.label), col.icon && (hAsync("sd-icon", { name: col.icon, size: "12", color: resolveTableIconColor(col.icon, col.iconColor) })), col.sort && (hAsync("sd-icon", { name: resolveSortIconName(col.sort), size: "12", color: resolveTableIconColor(resolveSortIconName(col.sort), col.iconColor), onClick: () => this.handleColumnSort(col), style: { cursor: 'pointer' } })), col.tooltip && (hAsync("sd-tooltip", { ...col.tooltipOptions }, hAsync("div", { slot: "content" }, col.tooltip.map(text => (hAsync("p", null, text))))))), this._resizable && (
16578
+ // column resize 는 마우스 드래그 전용 인터랙션이라 키보드 핸들러를 두지 않는다.
16579
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
16580
+ hAsync("div", { class: "th__resizer th__resizer--left", onMouseDown: (evt) => this.handleResize(actualColIdx, evt, true) }))));
16412
16581
  })))));
16413
16582
  }
16414
16583
  static get watchers() { return {
@@ -16530,12 +16699,12 @@ class SdToast {
16530
16699
  const linkColor = typeConfig.linkColor ?? typeConfig.content;
16531
16700
  const useDefaultCloseIntent = ['default', 'caution', 'info'].includes(this.type);
16532
16701
  const buttonName = TOAST_BUTTON_NAME_BY_TYPE[this.type] ?? TOAST_BUTTON_NAME_BY_TYPE.default;
16533
- return (hAsync("div", { key: '26f82a1da683136f605ddcc5c6c6a45266ae3158', style: {
16702
+ return (hAsync("div", { key: 'db3ffaf51dc96c39c05558017f25929c679a59df', style: {
16534
16703
  '--sd-toast-bg': typeConfig.bg,
16535
16704
  '--sd-toast-text': typeConfig.content,
16536
16705
  '--sd-toast-icon': iconColor,
16537
16706
  '--sd-toast-link': linkColor,
16538
- } }, hAsync("div", { key: 'd2ed3c831b86e2ddee804f8ce770642ea698f7ce', class: "sd-toast", role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.icon && (hAsync("div", { key: 'a6dba347a064420c2747963da35ad0d50406f426', class: "sd-toast__icon" }, hAsync("sd-icon", { key: 'a05871f3711ae89050f11bdeb92d27b6c06354ba', name: this.icon, size: iconSize, color: iconColor }))), hAsync("div", { key: '11901cf0531ac2b658d2278ba27021f9714340d7', class: "sd-toast__content" }, hAsync("span", { key: '5edf234270283818732a5dbfaf581a27c8c084e6', class: "sd-toast__message" }, this.message)), this.link && (hAsync("a", { key: '518207a380b2d30c160a2a76649222655ec821cf', href: this.link, class: "sd-toast__link", target: "_blank", rel: "noopener noreferrer" }, this.linkLabel || this.link)), this.buttonLabel && (hAsync("sd-button", { key: 'ed4847317cc9e0765a5964ab7ed245a37dce45ee', class: "sd-toast__button", name: buttonName, label: this.buttonLabel, onSdClick: (event) => this.buttonClick.emit(event.detail) })), this.useClose && (hAsync("sd-ghost-button", { key: '74a8f5d6c2392bdb7c59d754d72ed591fa68bf62', class: "sd-toast__close", icon: "close", intent: useDefaultCloseIntent ? 'default' : 'inverse', ariaLabel: "close", size: "xs", onClick: () => this.close.emit() })))));
16707
+ } }, 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() })))));
16539
16708
  }
16540
16709
  static get style() { return sdToastCss(); }
16541
16710
  static get cmpMeta() { return {
@@ -16788,7 +16957,7 @@ class SdToastContainer {
16788
16957
  const activeToasts = toasts.filter(t => t.state !== 'exiting').reverse();
16789
16958
  const indexMap = new Map();
16790
16959
  activeToasts.forEach((t, i) => indexMap.set(t.id, i));
16791
- return (hAsync("div", { key: 'b734ca5768953e095f98a7f8312f6fdd7a24ae30', class: "sd-toast-container", style: this.getContainerStyles(), onMouseEnter: () => {
16960
+ return (hAsync("div", { key: 'bc3c9591b6453eed7df462841e29784c29b3aeef', class: "sd-toast-container", style: this.getContainerStyles(), onMouseEnter: () => {
16792
16961
  this.expanded = true;
16793
16962
  this.pauseTimers();
16794
16963
  }, onMouseLeave: () => {
@@ -16946,7 +17115,7 @@ class SdToggle {
16946
17115
  '--sd-toggle-content-select': TOGGLE_COLORS.content.select,
16947
17116
  '--sd-toggle-content-disabled': TOGGLE_COLORS.content.disabled,
16948
17117
  };
16949
- return (hAsync("label", { key: '958d824b5c502a578e1bb7a8fb0d30d59c2d8eda', class: this.toggleClasses, style: cssVars, "aria-label": this.label || 'toggle' }, this.label, hAsync("input", { key: '81d5dc8ff0f9ca7e8a219f3c0e7bcce3a4ffc875', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
17118
+ 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 })));
16950
17119
  }
16951
17120
  static get style() { return sdToggleCss(); }
16952
17121
  static get cmpMeta() { return {
@@ -17076,14 +17245,14 @@ class SdTooltip {
17076
17245
  const hasLabel = this.label !== undefined && this.label !== '';
17077
17246
  const divTrigger = trigger === 'hover' ? hoverTrigger : hasLabel ? {} : { onClick: toggleTooltip };
17078
17247
  const buttonClickTrigger = trigger === 'click' && hasLabel ? { onSdClick: toggleTooltip } : {};
17079
- return (hAsync(Fragment, { key: '09f5966903bddf016cf6c2b32d3514f312fd1c99' }, hAsync("div", { key: 'eef176cc0df93e5aaa272ccf18f137c23db767fd', 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: '1d5d14826c26e843ed3ddedca9f1a9369009477c', parentRef: this.buttonEl, onSdClose: this.handleClose, placement: placement, offset: this.tooltipOffset }, hAsync("div", { key: 'b9ebcdb8f0798cb6c9ad0997caca6d0d20c3ece5', ref: el => (this.menuEl = el), class: {
17248
+ 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: {
17080
17249
  'sd-floating-menu': true,
17081
17250
  [`sd-floating-menu--${tooltipType}`]: true,
17082
17251
  [`sd-floating-menu--${placement}`]: true,
17083
17252
  }, style: {
17084
17253
  '--sd-floating-bg': typeConfig.bg,
17085
17254
  '--sd-floating-content': typeConfig.content,
17086
- }, onMouseEnter: () => this.show(), onMouseLeave: () => this.startHideTimer() }, hAsync("i", { key: 'd3b68903dd12cdfe330e5f27cd4f5261ef3b1121', class: `sd-floating-menu__arrow sd-floating-menu__arrow--${placement}` }, hAsync(TooltipArrow, { key: '5228831f5660a1f4844550778fc98d707949a893' })), hAsync("div", { key: 'dfb78d2189d6e4d1301e95c7ab6976e173f48cdc', class: "sd-floating-menu__content", innerHTML: this.slotContentHTML }))))));
17255
+ }, 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 }))))));
17087
17256
  }
17088
17257
  static get style() { return sdTooltipCss(); }
17089
17258
  static get cmpMeta() { return {
@@ -17112,7 +17281,7 @@ class SdTooltip {
17112
17281
  }; }
17113
17282
  }
17114
17283
 
17115
- const sdTrCss = () => `sd-tr{display:contents}sd-tr *{box-sizing:border-box}.tr{display:table-row}.tr:hover .td{background-color:#F9F9F9}.tr--no-hover:hover .td{background-color:white}.td{display:table-cell;height:var(--table-body-height, 44px);padding:0 var(--table-body-padding-x, 16px);border-bottom:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);background:white;vertical-align:middle;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.td--left{text-align:left}.td--center{text-align:center}.td--right{text-align:right}.td--selected{position:relative;width:52px !important;max-width:52px !important;min-width:52px !important;padding:0 10px 0 24px;text-align:left}.td--selected sd-checkbox label{position:relative}.td--selected sd-checkbox label:before{content:"";position:absolute;inset:-6px}.td.sticky-left{position:sticky;background-color:white;z-index:100 !important;left:var(--sticky-left-offset, 0)}.td.sticky-right{position:sticky;background-color:white;z-index:100 !important;right:var(--sticky-right-offset, 0)}.td.sticky-left-edge:after{content:"";position:absolute;top:0;left:100%;right:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset 12px 0 20px -25px;opacity:0;pointer-events:none;transition:opacity 0.2s}.td.sticky-right-edge:after{content:"";position:absolute;top:0;left:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset -12px 0 20px -25px;opacity:0;pointer-events:none;transition:opacity 0.2s}.td.sticky-left-edge.is-scrolled-left{overflow:visible}.td.sticky-left-edge.is-scrolled-left:after{opacity:1}.td.sticky-right-edge.is-scrolled-right{overflow:visible}.td.sticky-right-edge.is-scrolled-right:after{opacity:1}.tr:hover .td.sticky-left,.tr:hover .td.sticky-right{background-color:#F9F9F9}.tr--no-hover:hover .td.sticky-left,.tr--no-hover:hover .td.sticky-right{background-color:white}.td.td--last-row{border-bottom:none}`;
17284
+ const sdTrCss = () => `sd-tr{display:contents}sd-tr *{box-sizing:border-box}.tr{display:table-row}.tr:hover .td{background-color:#F9F9F9}.tr--no-hover:hover .td{background-color:white}.td{display:table-cell;height:var(--table-body-height, 44px);padding:var(--table-body-padding-y, 0) var(--table-body-padding-x, 16px);border-bottom:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1);background:white;vertical-align:middle;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.td--left{text-align:left}.td--center{text-align:center}.td--right{text-align:right}.td--selected{position:relative;width:52px !important;max-width:52px !important;min-width:52px !important;padding:0 10px 0 24px;text-align:left}.td--selected sd-checkbox label{position:relative}.td--selected sd-checkbox label:before{content:"";position:absolute;inset:-6px}.td.sticky-left{position:sticky;background-color:white;z-index:100 !important;left:var(--sticky-left-offset, 0)}.td.sticky-right{position:sticky;background-color:white;z-index:100 !important;right:var(--sticky-right-offset, 0)}.td.sticky-left-edge:after{content:"";position:absolute;top:0;left:100%;right:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset 12px 0 20px -25px;opacity:0;pointer-events:none;transition:opacity 0.2s}.td.sticky-right-edge:after{content:"";position:absolute;top:0;left:-20px;width:20px;height:100%;z-index:101 !important;box-shadow:inset -12px 0 20px -25px;opacity:0;pointer-events:none;transition:opacity 0.2s}.td.sticky-left-edge.is-scrolled-left{overflow:visible}.td.sticky-left-edge.is-scrolled-left:after{opacity:1}.td.sticky-right-edge.is-scrolled-right{overflow:visible}.td.sticky-right-edge.is-scrolled-right:after{opacity:1}.tr:hover .td.sticky-left,.tr:hover .td.sticky-right{background-color:#F9F9F9}.tr--no-hover:hover .td.sticky-left,.tr--no-hover:hover .td.sticky-right{background-color:white}.td.td--last-row{border-bottom:none}.tr--separator .td--separator{height:var(--table-separator-width, 6px);padding:0;background-color:var(--table-separator-color, #eeeeee);border-bottom:none}.td.td--before-separator{border-bottom:none}.td--divider-left{border-left:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1)}.td--divider-right{border-right:var(--table-border-width, 1px) solid var(--table-border-color, #E1E1E1)}`;
17116
17285
 
17117
17286
  class SdTr {
17118
17287
  constructor(hostRef) {
@@ -17124,6 +17293,7 @@ class SdTr {
17124
17293
  stickyColumn;
17125
17294
  rowKey = '';
17126
17295
  row = {};
17296
+ separator;
17127
17297
  tableId = '';
17128
17298
  columnWidths = [];
17129
17299
  isVisible = true;
@@ -17133,16 +17303,32 @@ class SdTr {
17133
17303
  _stickyColumn = { left: 0, right: 0 };
17134
17304
  _scrolledLeft = false;
17135
17305
  _scrolledRight = false;
17306
+ _dense = false;
17136
17307
  tableEl = null;
17308
+ _prevRowKey = null;
17137
17309
  componentWillLoad() {
17138
17310
  this.syncTableContext();
17139
17311
  this.columnWidths = this.columnWidths ?? [];
17140
17312
  this.resolveConfig();
17141
- this.columnWidths = this._columns.map(c => parseInt(c.width || '120', 10));
17313
+ this.columnWidths = this._columns.map(c => (c.autoWidth ? 0 : parseInt(c.width || '120', 10)));
17142
17314
  this.updateVisibilitySync();
17143
17315
  }
17144
17316
  componentDidLoad() {
17145
17317
  this.syncTableContext();
17318
+ if (this.separator) {
17319
+ const prev = this.el.previousElementSibling;
17320
+ if (prev?.tagName?.toLowerCase() === 'sd-tr') {
17321
+ const prevRowKey = prev.rowKey;
17322
+ this._prevRowKey = prevRowKey;
17323
+ this.tableEl?.registerSeparatorSync?.(prevRowKey);
17324
+ }
17325
+ }
17326
+ }
17327
+ disconnectedCallback() {
17328
+ if (this._prevRowKey !== null) {
17329
+ this.tableEl?.unregisterSeparatorSync?.(this._prevRowKey);
17330
+ this._prevRowKey = null;
17331
+ }
17146
17332
  }
17147
17333
  syncTableContext() {
17148
17334
  // sd-table이 shadow:true이므로 fallback content로 렌더되면 closest가 경계를 못 넘는다.
@@ -17154,10 +17340,10 @@ class SdTr {
17154
17340
  this.tableEl = table;
17155
17341
  const fromMethod = table?.getTableIdSync?.();
17156
17342
  const fromAttr = table?.getAttribute(TABLE_ID_ATTR);
17157
- const resolvedTableId = (fromMethod && fromMethod !== 'undefined' ? fromMethod : null) ??
17158
- (fromAttr && fromAttr !== 'undefined' ? fromAttr : null) ??
17343
+ const resolvedTableId = (fromMethod != null && fromMethod !== '' && fromMethod !== 'undefined' ? fromMethod : null) ??
17344
+ (fromAttr != null && fromAttr !== '' && fromAttr !== 'undefined' ? fromAttr : null) ??
17159
17345
  '';
17160
- if (resolvedTableId && resolvedTableId !== this.tableId) {
17346
+ if (resolvedTableId !== '' && resolvedTableId !== this.tableId) {
17161
17347
  this.tableId = resolvedTableId;
17162
17348
  }
17163
17349
  }
@@ -17168,6 +17354,7 @@ class SdTr {
17168
17354
  this._stickyColumn = this.stickyColumn ?? config?.stickyColumn ?? { left: 0, right: 0 };
17169
17355
  this._scrolledLeft = config?.scrolledLeft ?? false;
17170
17356
  this._scrolledRight = config?.scrolledRight ?? false;
17357
+ this._dense = config?.dense ?? false;
17171
17358
  if (config?.columnWidths && (this.columnWidths ?? []).length === 0) {
17172
17359
  this.columnWidths = [...config.columnWidths];
17173
17360
  }
@@ -17213,7 +17400,11 @@ class SdTr {
17213
17400
  }
17214
17401
  getCellValue(column) {
17215
17402
  const { field, format, name } = column;
17216
- const value = typeof field === 'function' ? field(this.row) : field ? this.row[field] : this.row[name];
17403
+ const value = typeof field === 'function'
17404
+ ? field(this.row)
17405
+ : field !== ''
17406
+ ? this.row[field]
17407
+ : this.row[name];
17217
17408
  return format ? format(value, this.row) : this.formatValue(value);
17218
17409
  }
17219
17410
  getStickyStyle(colIdx) {
@@ -17224,13 +17415,17 @@ class SdTr {
17224
17415
  const rightOffset = this.columnWidths
17225
17416
  .filter((_, i) => i >= this.visibleColumns.length - (this._stickyColumn.right || 0) && i > colIdx)
17226
17417
  .reduce((a, b) => a + b, 0);
17227
- return {
17418
+ const col = this.visibleColumns[colIdx];
17419
+ const base = {
17228
17420
  '--sticky-left-offset': `${leftOffset}px`,
17229
17421
  '--sticky-right-offset': `${rightOffset}px`,
17230
- 'width': `${this.columnWidths[colIdx]}px`,
17231
- 'minWidth': `${this.columnWidths[colIdx]}px`,
17232
- 'maxWidth': `${this.columnWidths[colIdx]}px`,
17233
17422
  };
17423
+ if (!col?.autoWidth) {
17424
+ base['width'] = `${this.columnWidths[colIdx]}px`;
17425
+ base['minWidth'] = `${this.columnWidths[colIdx]}px`;
17426
+ base['maxWidth'] = `${this.columnWidths[colIdx]}px`;
17427
+ }
17428
+ return base;
17234
17429
  }
17235
17430
  isSelected() {
17236
17431
  if (this.tableEl?.isRowSelectedSync) {
@@ -17260,6 +17455,14 @@ class SdTr {
17260
17455
  const fieldName = typeof col.field === 'string' ? col.field : col.name;
17261
17456
  return this.tableEl.getCellClassSync(this.rowKey, fieldName);
17262
17457
  }
17458
+ expandCellClass(classStr) {
17459
+ if (classStr == null || classStr === '')
17460
+ return {};
17461
+ return Object.fromEntries(classStr
17462
+ .split(/\s+/)
17463
+ .filter(Boolean)
17464
+ .map(c => [c, true]));
17465
+ }
17263
17466
  isVisualLastRow(col) {
17264
17467
  if (!this.tableEl?.isVisualLastRowSync)
17265
17468
  return false;
@@ -17274,6 +17477,17 @@ class SdTr {
17274
17477
  return false;
17275
17478
  return this.tableEl.isVisualLastRowSync(this.rowKey, '');
17276
17479
  }
17480
+ isVisualLastRowBeforeSeparator(col) {
17481
+ if (!this.tableEl?.isVisualLastRowBeforeSeparatorSync)
17482
+ return false;
17483
+ const fieldName = typeof col.field === 'string' ? col.field : col.name;
17484
+ return this.tableEl.isVisualLastRowBeforeSeparatorSync(this.rowKey, fieldName);
17485
+ }
17486
+ isVisualLastRowBeforeSeparatorForSelfRow() {
17487
+ if (!this.tableEl?.isVisualLastRowBeforeSeparatorSync)
17488
+ return false;
17489
+ return this.tableEl.isVisualLastRowBeforeSeparatorSync(this.rowKey, '');
17490
+ }
17277
17491
  render() {
17278
17492
  const stickyLeftCount = this._stickyColumn.left || 0;
17279
17493
  const stickyRightCount = this._stickyColumn.right || 0;
@@ -17281,9 +17495,13 @@ class SdTr {
17281
17495
  const middleCols = this.visibleColumns.slice(stickyLeftCount, this.visibleColumns.length - stickyRightCount);
17282
17496
  const stickyRightCols = this.visibleColumns.slice(this.visibleColumns.length - stickyRightCount);
17283
17497
  const hasRowspan = this.tableEl?.hasRowspanSync?.() ?? false;
17498
+ const isUseFrameRow = this.tableEl?.hasUseFrameInRowSync?.(this.rowKey) ?? false;
17499
+ const effectiveDense = this._dense && !isUseFrameRow;
17500
+ const bodyLayout = effectiveDense ? TABLE_BODY_LAYOUT.dense : TABLE_BODY_LAYOUT.default;
17284
17501
  const rowStyle = {
17285
- display: this.isVisible ? '' : 'none',
17286
- '--table-body-height': `${TABLE_BODY_LAYOUT.default.height}px`,
17502
+ 'display': this.isVisible ? '' : 'none',
17503
+ '--table-body-height': `${bodyLayout.height}px`,
17504
+ '--table-body-padding-y': `${bodyLayout.paddingY}px`,
17287
17505
  '--table-body-padding-x': `${TABLE_BODY_LAYOUT.paddingX}px`,
17288
17506
  '--table-body-font-family': TABLE_BODY_TYPOGRAPHY.fontFamily,
17289
17507
  '--table-body-font-weight': TABLE_BODY_TYPOGRAPHY.fontWeight,
@@ -17292,15 +17510,22 @@ class SdTr {
17292
17510
  '--table-body-text-decoration': TABLE_BODY_TYPOGRAPHY.textDecoration,
17293
17511
  '--table-border-color': TABLE_BORDER.color,
17294
17512
  '--table-border-width': `${TABLE_BORDER.width}px`,
17513
+ '--table-separator-color': TABLE_SEPARATOR.color,
17514
+ '--table-separator-width': `${TABLE_SEPARATOR.width}px`,
17295
17515
  };
17296
- return (hAsync(Host, { key: '30e4127b281770d12fab9e9cfd2cdf667eff8790', style: rowStyle }, hAsync("tr", { key: '1072ce3f1b296e2278b7fc92a44d32da223ef119', class: { 'tr': true, 'tr--no-hover': hasRowspan } }, this._selectable && (hAsync("td", { key: '4e3a37a320df97378a1ed311c0a7b8f744bd26bc', class: {
17516
+ if (this.separator) {
17517
+ const totalCols = this.visibleColumns.length + (this._selectable ? 1 : 0);
17518
+ return (hAsync(Host, { style: rowStyle }, hAsync("tr", { class: "tr tr--separator" }, hAsync("td", { colSpan: totalCols, class: "td td--separator" }))));
17519
+ }
17520
+ return (hAsync(Host, { style: rowStyle }, hAsync("tr", { class: { 'tr': true, 'tr--no-hover': hasRowspan } }, this._selectable && (hAsync("td", { class: {
17297
17521
  'td': true,
17298
17522
  'td--selected': true,
17299
17523
  'td--last-row': this.isVisualLastRowForSelfRow(),
17524
+ 'td--before-separator': this.isVisualLastRowBeforeSeparatorForSelfRow(),
17300
17525
  'sticky-left': true,
17301
17526
  'sticky-left-edge': stickyLeftCount === 0,
17302
17527
  'is-scrolled-left': stickyLeftCount === 0 && this._scrolledLeft,
17303
- }, style: { '--sticky-left-offset': '0px' } }, hAsync("sd-checkbox", { key: 'b1a775462c4869f75480908bccd428714c63c257', value: this.isSelected(), onSdUpdate: () => this.handleSelect() }))), stickyLeftCols.map((col, idx) => {
17528
+ }, style: { '--sticky-left-offset': '0px' } }, hAsync("sd-checkbox", { value: this.isSelected(), onSdUpdate: () => this.handleSelect() }))), stickyLeftCols.map((col, idx) => {
17304
17529
  if (this.isCovered(idx))
17305
17530
  return null;
17306
17531
  const span = this.getSpanFor(col);
@@ -17309,11 +17534,12 @@ class SdTr {
17309
17534
  'td': true,
17310
17535
  [`td--${col.align || 'left'}`]: true,
17311
17536
  'td--last-row': this.isVisualLastRow(col),
17537
+ 'td--before-separator': this.isVisualLastRowBeforeSeparator(col),
17312
17538
  'sticky-left': true,
17313
17539
  'sticky-left-edge': idx === stickyLeftCount - 1,
17314
17540
  'is-scrolled-left': idx === stickyLeftCount - 1 && this._scrolledLeft,
17315
17541
  [`${col.tdClass}`]: Boolean(col.tdClass),
17316
- [`${sdCellClass}`]: Boolean(sdCellClass),
17542
+ ...this.expandCellClass(sdCellClass),
17317
17543
  }, style: this.getStickyStyle(idx) }, hAsync("slot", { name: `${this.tableId}-${typeof col.field === 'string' ? col.field : col.name}-${this.rowKey}` }, hAsync("span", null, this.getCellValue(col)))));
17318
17544
  }), middleCols.map((col, relativeIdx) => {
17319
17545
  const actualColIdx = stickyLeftCount + relativeIdx;
@@ -17326,8 +17552,9 @@ class SdTr {
17326
17552
  'td': true,
17327
17553
  [`td--${col.align || 'left'}`]: true,
17328
17554
  'td--last-row': this.isVisualLastRow(col),
17555
+ 'td--before-separator': this.isVisualLastRowBeforeSeparator(col),
17329
17556
  [`${col.tdClass}`]: Boolean(col.tdClass),
17330
- [`${sdCellClass}`]: Boolean(sdCellClass),
17557
+ ...this.expandCellClass(sdCellClass),
17331
17558
  }, style: this.getStickyStyle(actualColIdx) }, hAsync("slot", { name: `${this.tableId}-${fieldName}-${this.rowKey}` }, hAsync("span", null, this.getCellValue(col)))));
17332
17559
  }), stickyRightCols.map((col, relativeIdx) => {
17333
17560
  const actualColIdx = this.visibleColumns.length - stickyRightCount + relativeIdx;
@@ -17340,11 +17567,12 @@ class SdTr {
17340
17567
  'td': true,
17341
17568
  [`td--${col.align || 'left'}`]: true,
17342
17569
  'td--last-row': this.isVisualLastRow(col),
17570
+ 'td--before-separator': this.isVisualLastRowBeforeSeparator(col),
17343
17571
  'sticky-right': true,
17344
17572
  'sticky-right-edge': relativeIdx === 0,
17345
17573
  'is-scrolled-right': relativeIdx === 0 && this._scrolledRight,
17346
17574
  [`${col.tdClass}`]: Boolean(col.tdClass),
17347
- [`${sdCellClass}`]: Boolean(sdCellClass),
17575
+ ...this.expandCellClass(sdCellClass),
17348
17576
  }, style: this.getStickyStyle(actualColIdx) }, hAsync("slot", { name: `${this.tableId}-${fieldName}-${this.rowKey}` }, hAsync("span", null, this.getCellValue(col)))));
17349
17577
  }))));
17350
17578
  }
@@ -17358,6 +17586,7 @@ class SdTr {
17358
17586
  "stickyColumn": [16],
17359
17587
  "rowKey": [1, "row-key"],
17360
17588
  "row": [16],
17589
+ "separator": [4],
17361
17590
  "tableId": [32],
17362
17591
  "columnWidths": [32],
17363
17592
  "isVisible": [32],
@@ -17367,6 +17596,7 @@ class SdTr {
17367
17596
  "_stickyColumn": [32],
17368
17597
  "_scrolledLeft": [32],
17369
17598
  "_scrolledRight": [32],
17599
+ "_dense": [32],
17370
17600
  "refreshConfig": [64],
17371
17601
  "bumpSpansVersion": [64],
17372
17602
  "updateVisibility": [64],
@@ -17392,7 +17622,6 @@ registerComponents([
17392
17622
  SdConfirmModal,
17393
17623
  SdDateBox,
17394
17624
  SdDatePicker,
17395
- SdDatePickerCalendar,
17396
17625
  SdDatePickerTrigger,
17397
17626
  SdDateRangePicker,
17398
17627
  SdDateRangePickerCalendar,