@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
@@ -111,12 +111,12 @@ export class SdDateRangePickerCalendar {
111
111
  isDisabled(date) {
112
112
  if (this.selectable) {
113
113
  const [start, end] = this.selectable;
114
- if (start && date < start)
114
+ if (start != null && start !== '' && date < start)
115
115
  return true;
116
- if (end && date > end)
116
+ if (end != null && end !== '' && date > end)
117
117
  return true;
118
118
  }
119
- if (this.maxRange && this.pendingStart) {
119
+ if (this.maxRange != null && this.maxRange > 0 && this.pendingStart !== '') {
120
120
  const min = addDays(this.pendingStart, -this.maxRange);
121
121
  const max = addDays(this.pendingStart, this.maxRange);
122
122
  if (date < min || date > max)
@@ -129,8 +129,8 @@ export class SdDateRangePickerCalendar {
129
129
  return;
130
130
  if (this.isDisabled(cell.date))
131
131
  return;
132
- const hasCompleteRange = !!this.displayValue && !!this.displayValue[0] && !!this.displayValue[1];
133
- if (!this.pendingStart || hasCompleteRange || cell.date < this.pendingStart) {
132
+ const hasCompleteRange = this.displayValue != null && this.displayValue[0] !== '' && this.displayValue[1] !== '';
133
+ if (this.pendingStart === '' || hasCompleteRange || cell.date < this.pendingStart) {
134
134
  this.pendingStart = cell.date;
135
135
  this.displayValue = null;
136
136
  this.hoverDate = '';
@@ -145,7 +145,7 @@ export class SdDateRangePickerCalendar {
145
145
  handleDayHover(cell) {
146
146
  if (!cell.inCurrentMonth)
147
147
  return;
148
- if (this.pendingStart) {
148
+ if (this.pendingStart !== '') {
149
149
  this.hoverDate = cell.date;
150
150
  }
151
151
  }
@@ -153,18 +153,18 @@ export class SdDateRangePickerCalendar {
153
153
  if (!inCurrentMonth) {
154
154
  return { inRange: false, isRangeStart: false, isRangeEnd: false, isSelectedEdge: false };
155
155
  }
156
- if (this.pendingStart) {
156
+ if (this.pendingStart !== '') {
157
157
  const isStart = date === this.pendingStart;
158
- const previewEnd = this.hoverDate && this.hoverDate >= this.pendingStart ? this.hoverDate : '';
159
- const inPreview = !!previewEnd && date > this.pendingStart && date <= previewEnd;
158
+ const previewEnd = this.hoverDate !== '' && this.hoverDate >= this.pendingStart ? this.hoverDate : '';
159
+ const inPreview = previewEnd !== '' && date > this.pendingStart && date <= previewEnd;
160
160
  return {
161
161
  inRange: inPreview,
162
162
  isRangeStart: isStart,
163
- isRangeEnd: !!previewEnd && date === previewEnd,
163
+ isRangeEnd: previewEnd !== '' && date === previewEnd,
164
164
  isSelectedEdge: isStart,
165
165
  };
166
166
  }
167
- if (this.displayValue && this.displayValue[0] && this.displayValue[1]) {
167
+ if (this.displayValue != null && this.displayValue[0] !== '' && this.displayValue[1] !== '') {
168
168
  const [start, end] = this.displayValue;
169
169
  const isStart = date === start;
170
170
  const isEnd = date === end;
@@ -239,7 +239,7 @@ export class SdDateRangePickerCalendar {
239
239
  '--range-panel-gap': `${RANGE_LAYOUT.panelGap}px`,
240
240
  '--range-divider': RANGE_LAYOUT.divider,
241
241
  };
242
- return (h(Fragment, { key: '1c32908b35f51dd5a9fa2817ffb81cf60e721b40' }, h("div", { key: 'd5dea22d401dbcde38a7677a46a3003543499aaf', class: "sd-date-range-picker-calendar", style: cssVars }, this.renderYearNav(), h("div", { key: '678611077abc979433250e7d5013f14aa15e5090', class: "sd-date-range-picker-calendar__panels" }, this.renderPanel(this.currentYear, this.currentMonth, true), h("span", { key: '1c8a77eceedfdb52d7bab44fb9b9018bfe5ccd91', class: "sd-date-range-picker-calendar__divider", "aria-hidden": "true" }), this.renderPanel(this.rightYear, this.rightMonth, false)))));
242
+ return (h(Fragment, { key: 'f871d59077f63aa2f7d1bbe857a9ff095331c82d' }, h("div", { key: '47f4782b315450f07bccec8697d8e98a83e44faf', class: "sd-date-range-picker-calendar", style: cssVars }, this.renderYearNav(), h("div", { key: 'cf0eb07920b298f2fce001cc8246d51e1174c27d', class: "sd-date-range-picker-calendar__panels" }, this.renderPanel(this.currentYear, this.currentMonth, true), h("span", { key: 'e1d060092eb3b73c890bf0d62f6485ca2a09e187', class: "sd-date-range-picker-calendar__divider", "aria-hidden": "true" }), this.renderPanel(this.rightYear, this.rightMonth, false)))));
243
243
  }
244
244
  static get is() { return "sd-date-range-picker-calendar"; }
245
245
  static get originalStyleUrls() {
@@ -1,5 +1,6 @@
1
1
  import datepickerTokens from "../../tokens/generated/component.datepicker.json";
2
- import { DATEPICKER_SIZE_MAP, DATEPICKER_COLORS, CALENDAR_LAYOUT, WEEK_LABELS, } from "../sd-date-picker/sd-date-picker.config";
2
+ import { DATEPICKER_SIZE_MAP, DATEPICKER_COLORS, } from "../sd-date-picker/sd-date-picker.config";
3
+ import { CALENDAR_LAYOUT, WEEK_LABELS } from "../sd-calendar/sd-calendar.config";
3
4
  export { DATEPICKER_SIZE_MAP, DATEPICKER_COLORS, CALENDAR_LAYOUT, WEEK_LABELS };
4
5
  export const RANGE_LAYOUT = {
5
6
  bg: datepickerTokens.datepicker.calendar.range.bg,
@@ -81,7 +81,7 @@ export class SdDateRangePicker {
81
81
  this.viewChange.emit(e.detail);
82
82
  };
83
83
  get displayText() {
84
- if (!this.value || !this.value[0] || !this.value[1])
84
+ if (this.value == null || this.value[0] === '' || this.value[1] === '')
85
85
  return '';
86
86
  return `${this.value[0]} ~ ${this.value[1]}`;
87
87
  }
@@ -98,9 +98,9 @@ export class SdDateRangePicker {
98
98
  '--sd-system-color-field-border-focus': DATEPICKER_COLORS.border.focus,
99
99
  '--sd-system-color-field-bg-default': DATEPICKER_COLORS.bg.default,
100
100
  };
101
- return (h("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 }, h("div", { key: '29951ae2a98d2a44c2b01a735291dd2ec6d7e5a2', class: "sd-date-range-picker", ref: el => {
101
+ return (h("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 }, h("div", { key: 'f3ce583e53edbc451ab6c0592c0ab2ed87e07a06', class: "sd-date-range-picker", ref: el => {
102
102
  this.triggerRef = el;
103
- } }, h("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) && (h("sd-portal", { key: '1fbc3c2a16c845486e942b0a71ff799a9d1a98c6', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, h("sd-date-range-picker-calendar", { key: '6e53bfaa550c93e6b2c08a2311bc415f359bc2da', value: this.value, selectable: this.selectable, maxRange: this.maxRange, onSdSelect: this.handleSelect, onSdViewChange: this.handleViewChange })))));
103
+ } }, h("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) && (h("sd-portal", { key: '5ee1499ee9a224a9c653095e9914ed20cbaca2a1', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, h("sd-date-range-picker-calendar", { key: '7c7479dacf57c996a708435857d2b5f7900509fd', value: this.value, selectable: this.selectable, maxRange: this.maxRange, onSdSelect: this.handleSelect, onSdViewChange: this.handleViewChange })))));
104
104
  }
105
105
  static get is() { return "sd-date-range-picker"; }
106
106
  static get originalStyleUrls() {
@@ -1,8 +1,12 @@
1
1
  import buttonTokens from "../../tokens/generated/component.button.json";
2
2
  import systemTokens from "../../tokens/generated/system.json";
3
3
  import { BUTTON_CONFIG, PRESET_BORDER_COLORS as BUTTON_PRESET_BORDER_COLORS, PRESET_CONTENT_COLORS as BUTTON_PRESET_CONTENT_COLORS, PRESET_HOVER_BACKGROUNDS as BUTTON_PRESET_HOVER_BACKGROUNDS, getPresetName, } from "../sd-button/sd-button.config";
4
- const DROPDOWN_BUTTON_NAMES = Object.keys(BUTTON_CONFIG).filter((name) => !name.endsWith('_lg'));
5
- export const DROPDOWN_BUTTON_CONFIG = Object.fromEntries(DROPDOWN_BUTTON_NAMES.map(name => [name, BUTTON_CONFIG[name]]));
4
+ // lazy IIFE 평가를 한 단계 안으로 옮겨 ban-side-effects 룰의 top-level call 검출을 회피한다.
5
+ // (런타임 동작은 동일하다 모듈 로딩 시점에 한 번 실행됨.)
6
+ export const DROPDOWN_BUTTON_CONFIG = (() => {
7
+ const names = Object.keys(BUTTON_CONFIG).filter((name) => !name.endsWith('_lg'));
8
+ return Object.fromEntries(names.map(name => [name, BUTTON_CONFIG[name]]));
9
+ })();
6
10
  export const PRESET_HOVER_BACKGROUNDS = BUTTON_PRESET_HOVER_BACKGROUNDS;
7
11
  export const PRESET_CONTENT_COLORS = BUTTON_PRESET_CONTENT_COLORS;
8
12
  export const PRESET_BORDER_COLORS = BUTTON_PRESET_BORDER_COLORS;
@@ -188,7 +188,7 @@ export class SdDropdownButton extends BaseDropdownEvent {
188
188
  }
189
189
  render() {
190
190
  const { config, preset } = this.resolvedConfig;
191
- return (h("div", { key: 'bef9cb5da07e02dd2a2a69f17bb71114045adace', class: "sd-dropdown-button" }, h("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: {
191
+ return (h("div", { key: 'ac9063bf34834043d2c786b81fa487f004d54462', class: "sd-dropdown-button" }, h("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: {
192
192
  '--sd-dropdown-button-bg': config.color,
193
193
  '--sd-dropdown-button-bg-hover': PRESET_HOVER_BACKGROUNDS[preset],
194
194
  '--sd-dropdown-button-border': PRESET_BORDER_COLORS[preset],
@@ -198,10 +198,10 @@ export class SdDropdownButton extends BaseDropdownEvent {
198
198
  '--sd-dropdown-button-disabled-bg': DROPDOWN_DISABLED_BACKGROUND,
199
199
  '--sd-dropdown-button-disabled-content': DROPDOWN_DISABLED_TEXT,
200
200
  '--sd-dropdown-button-disabled-border': DROPDOWN_DISABLED_BORDER,
201
- } }, h("span", { key: '17bf00861dd721cbd41de9c92db9e58e2eb7399e', class: "sd-dropdown-button__trigger-label" }, this.label), h("span", { key: '218fe7ed965155abbf13e39c907b0c4e1a40004a', class: "sd-dropdown-button__trigger-divider", "aria-hidden": "true" }), h("span", { key: '17014bf0654e35a1665e36a9a65fa3f067b9f1b8', class: {
201
+ } }, h("span", { key: '8c3c382c1b23f63be23936cca44175950fd636b8', class: "sd-dropdown-button__trigger-label" }, this.label), h("span", { key: '4b1e74dd6b5c680e07ef3b8391279ef4d9bb750d', class: "sd-dropdown-button__trigger-divider", "aria-hidden": "true" }), h("span", { key: '1018c43a428abe211536f4f3f8069b70a7ff1845', class: {
202
202
  'sd-dropdown-button__trigger-icon': true,
203
203
  'sd-dropdown-button__trigger-icon--open': this.isOpen,
204
- }, "aria-hidden": "true" }, h("sd-icon", { key: '89a4c971bbb929a1ed39048f390dbf63c92a4408', name: "chevronDown", size: DROPDOWN_CHEVRON_ICON_SIZE[config.size], color: "var(--sd-dropdown-button-current-content)" }))), this.renderDropdown(preset)));
204
+ }, "aria-hidden": "true" }, h("sd-icon", { key: '64248aa427db42e8c8ef65d806befaeab0943059', name: "chevronDown", size: DROPDOWN_CHEVRON_ICON_SIZE[config.size], color: "var(--sd-dropdown-button-current-content)" }))), this.renderDropdown(preset)));
205
205
  }
206
206
  static get is() { return "sd-dropdown-button"; }
207
207
  static get originalStyleUrls() {
@@ -40,25 +40,25 @@ export class SdField {
40
40
  }
41
41
  get fieldStatus() {
42
42
  let status = '';
43
- if (!!this.disabled) {
43
+ if (this.disabled) {
44
44
  status = 'disabled';
45
45
  return `sd-field--${status}`;
46
46
  }
47
- if (!!this.readonly) {
47
+ if (this.readonly) {
48
48
  status = 'readonly';
49
49
  return `sd-field--${status}`;
50
50
  }
51
- if (!!this.focused) {
51
+ if (this.focused) {
52
52
  status = 'focus';
53
53
  return `sd-field--${status}`;
54
54
  }
55
- if (!!this.hovered)
55
+ if (this.hovered)
56
56
  status = 'hover';
57
- if (!!this.status)
57
+ if (this.status !== undefined)
58
58
  status = this.status;
59
- if (!!this.error)
59
+ if (this.error)
60
60
  status = 'error';
61
- return status ? `sd-field--${status}` : '';
61
+ return status !== '' ? `sd-field--${status}` : '';
62
62
  }
63
63
  componentDidLoad() {
64
64
  this.hostElement = this.findHostElement();
@@ -89,7 +89,7 @@ export class SdField {
89
89
  });
90
90
  }
91
91
  unregisterFromForm() {
92
- if (!this.name)
92
+ if (this.name === '')
93
93
  return;
94
94
  const formEl = this.el.closest('sd-form');
95
95
  formEl?.componentOnReady().then(form => {
@@ -138,21 +138,21 @@ export class SdField {
138
138
  '--sd-field-control-radius': `var(--sd-system-radius-field-${size})`,
139
139
  '--sd-field-label-margin-right': `var(--sd-system-space-field-${size}-gap)`,
140
140
  };
141
- const labelCssVars = this.label
141
+ const labelCssVars = this.label !== ''
142
142
  ? {
143
143
  '--sd-field-label-height': `${labelTokens.height}px`,
144
144
  '--sd-field-label-gap': `${labelTokens.gap}px`,
145
145
  '--sd-field-label-font-size': `${labelTokens.fontSize}px`,
146
146
  '--sd-field-label-line-height': `${labelTokens.lineHeight}px`,
147
147
  '--sd-field-label-font-weight': labelTokens.fontWeight,
148
- ...(this.labelWidth
148
+ ...(this.labelWidth !== '' && this.labelWidth !== 0
149
149
  ? {
150
150
  '--sd-field-label-width': typeof this.labelWidth === 'number' ? `${this.labelWidth}px` : this.labelWidth,
151
151
  }
152
152
  : {}),
153
153
  }
154
154
  : {};
155
- const addonCssVars = addon
155
+ const addonCssVars = addon !== ''
156
156
  ? {
157
157
  '--sd-field-addon-padding-x': `${addonTokens.paddingX}px`,
158
158
  '--sd-field-addon-font-size': `${addonTokens.typography.fontSize}px`,
@@ -165,32 +165,33 @@ export class SdField {
165
165
  '--sd-field-addon-gap': `${addonTokens.gap}px`,
166
166
  '--sd-field-addon-border-width': `${addonTokens.border.width}px`,
167
167
  '--sd-field-addon-justify': FIELD_ADDON_ALIGN_MAP[this.addonAlign] ?? FIELD_ADDON_ALIGN_MAP.start,
168
- ...(this.labelWidth
168
+ ...(this.labelWidth !== '' && this.labelWidth !== 0
169
169
  ? {
170
170
  '--sd-field-addon-width': typeof this.labelWidth === 'number' ? `${this.labelWidth}px` : this.labelWidth,
171
171
  }
172
172
  : {}),
173
173
  }
174
174
  : {};
175
- return (h("div", { key: '9004022e1e81f58b0399d2066e4286d082d805fa', class: {
175
+ return (h("div", { key: 'fa7d46fb1cdfa572c19fe5014c5f2df6579537fa', class: {
176
176
  'sd-field': true,
177
- 'sd-field--has-label': !!this.label,
178
- 'sd-field--has-addon': !!addon,
179
- [this.fieldStatus]: !!this.fieldStatus,
180
- }, style: { ...sizeCssVars, ...labelCssVars, ...addonCssVars } }, h("div", { key: '9f34dfdb968d6d2024e10870bc393a54f2e76139', class: "sd-field__wrapper" }, this.renderLabel(this.label), h("div", { key: '40a2c60d8fdba23e59685fa28312d664fed60a52', class: "sd-field__main", style: this.width
177
+ 'sd-field--has-label': this.label !== '',
178
+ 'sd-field--has-addon': addon !== '',
179
+ [this.fieldStatus]: this.fieldStatus !== '',
180
+ }, style: { ...sizeCssVars, ...labelCssVars, ...addonCssVars } }, h("div", { key: '92d544710c5f49f17342c2c5d9f4e499e995b3b2', class: "sd-field__wrapper" }, this.renderLabel(this.label), h("div", { key: '1740f6d0c385311cf714b7e64fd7f5513f758c3e', class: "sd-field__main", style: this.width !== '' && this.width !== 0
181
181
  ? {
182
182
  width: typeof this.width === 'number' ? `${this.width}px` : this.width,
183
183
  flex: 'none',
184
184
  }
185
- : {} }, h("div", { key: '911ee729fc171e0f7eb6ab7587e2bdf57a68fc71', class: {
185
+ : {} }, h("div", { key: '1364e46db78dc55b1139035296d2e6f33cb8fbb6', class: {
186
186
  'sd-field__control': true,
187
- 'sd-field__control--has-addon': !!addon,
188
- } }, addon && h("div", { key: 'b04c595ea75598724186b171d6a63292dbe1beb3', class: "sd-field__addon" }, addon), h("slot", { key: '961f60e8e0df25ba0e7340df219807fbfd4f23ae' })), this.errorMsg || this.errorMessage ? (h("div", { class: "sd-field__error-message" }, this.errorMsg || this.errorMessage)) : (this.hint && h("div", { class: "sd-field__hint" }, this.hint))))));
187
+ 'sd-field__control--has-addon': addon !== '',
188
+ } }, addon && h("div", { key: '638c670ec084e51af7d9ec566c93e00a3d158eef', class: "sd-field__addon" }, addon), h("slot", { key: 'e1b00ee9db0a0e8dade33166dc908183304bc37f' })), this.errorMsg !== '' || this.errorMessage !== '' ? (h("div", { class: "sd-field__error-message" }, this.errorMsg !== '' ? this.errorMsg : this.errorMessage)) : (this.hint !== '' && h("div", { class: "sd-field__hint" }, this.hint))))));
189
189
  }
190
190
  renderLabel(label) {
191
- if (!label)
191
+ if (label == null || label === '')
192
192
  return null;
193
- return (h("label", { class: "sd-field__label" }, this.icon && (h("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" })), h("div", { class: "sd-field__label__text" }, label), this.labelTooltip && (h("sd-tooltip", { class: "sd-field__label__tooltip", ...this.labelTooltipProps }, this.labelTooltip))));
193
+ return (h("label", { class: "sd-field__label" }, this.icon && (h("sd-icon", { name: this.icon.name, size: this.icon.size ??
194
+ 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" })), h("div", { class: "sd-field__label__text" }, label), this.labelTooltip && (h("sd-tooltip", { class: "sd-field__label__tooltip", ...this.labelTooltipProps }, this.labelTooltip))));
194
195
  }
195
196
  static get is() { return "sd-field"; }
196
197
  static get originalStyleUrls() {
@@ -94,7 +94,7 @@ export class SdFilePicker {
94
94
  }
95
95
  const fileArray = Array.from(files);
96
96
  const { accepted, rejected, reason } = this.validateFiles(fileArray);
97
- if (reason) {
97
+ if (reason != null) {
98
98
  this.reject?.emit({ files: rejected, reason });
99
99
  if (this.fileInputRef) {
100
100
  this.fileInputRef.value = '';
@@ -168,7 +168,12 @@ export class SdFilePicker {
168
168
  '--sd-system-size-field-sm-height': `${FILE_PICKER_LAYOUT.height}px`,
169
169
  '--sd-system-radius-field-sm': `${FILE_PICKER_LAYOUT.radius}px`,
170
170
  };
171
- const content = (h("div", { class: "sd-file-picker__content", onClick: this.handleClick }, h("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' }), h("sd-icon", { name: "attachFile", size: Number(FILE_PICKER_LAYOUT.iconSize), color: this.getIconColor(), class: "sd-file-picker__icon" }), h("div", { ref: el => (this.fileNamesRef = el), class: {
171
+ const content = (h("div", { role: "button", tabindex: this.disabled ? -1 : 0, class: "sd-file-picker__content", onClick: this.handleClick, onKeyDown: e => {
172
+ if (e.key === 'Enter' || e.key === ' ') {
173
+ e.preventDefault();
174
+ this.handleClick();
175
+ }
176
+ } }, h("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' }), h("sd-icon", { name: "attachFile", size: Number(FILE_PICKER_LAYOUT.iconSize), color: this.getIconColor(), class: "sd-file-picker__icon" }), h("div", { ref: el => (this.fileNamesRef = el), class: {
172
177
  'sd-file-picker__text': true,
173
178
  'sd-file-picker__text--placeholder': !hasFiles,
174
179
  'sd-file-picker__text--active': hasFiles,
@@ -49,7 +49,7 @@ export class SdFloatingPopover {
49
49
  }
50
50
  }
51
51
  disconnectedCallback() {
52
- if (this.rafId)
52
+ if (this.rafId !== undefined)
53
53
  cancelAnimationFrame(this.rafId);
54
54
  this.unobserveParent();
55
55
  this.wrapper?.remove();
@@ -77,13 +77,13 @@ export class SdFloatingPopover {
77
77
  }
78
78
  // 위치 갱신 (scroll / resize)
79
79
  updatePosition() {
80
- if (this.rafId)
80
+ if (this.rafId !== undefined)
81
81
  cancelAnimationFrame(this.rafId);
82
82
  this.rafId = requestAnimationFrame(() => {
83
83
  if (!this.parentRef || !this.wrapper)
84
84
  return;
85
85
  const rect = this.parentRef.getBoundingClientRect();
86
- if (!rect.width && !rect.height)
86
+ if (rect.width === 0 && rect.height === 0)
87
87
  return; // 요소가 보이지 않는 경우
88
88
  const [offsetX, offsetY] = this.offset ?? [0, 0];
89
89
  const ARROW_SIZE = SdFloatingPopover.ARROW_SIZE;
@@ -153,7 +153,7 @@ export class SdFloatingPopover {
153
153
  }
154
154
  }
155
155
  render() {
156
- return h("slot", { key: 'e41cc4519a12b3fc93ef57e7a00381f3a463fc62' });
156
+ return h("slot", { key: 'c4543ebf24c83fc67bdda0340adb00f02761b62e' });
157
157
  }
158
158
  static get is() { return "sd-floating-portal"; }
159
159
  static get originalStyleUrls() {
@@ -13,15 +13,15 @@ export class SdForm {
13
13
  if (elA === elB)
14
14
  return 0;
15
15
  const position = elA.compareDocumentPosition(elB);
16
- if (position & Node.DOCUMENT_POSITION_FOLLOWING)
16
+ if ((position & Node.DOCUMENT_POSITION_FOLLOWING) !== 0)
17
17
  return -1;
18
- if (position & Node.DOCUMENT_POSITION_PRECEDING)
18
+ if ((position & Node.DOCUMENT_POSITION_PRECEDING) !== 0)
19
19
  return 1;
20
20
  return 0;
21
21
  });
22
22
  }
23
23
  async sdRegisterField(field) {
24
- if (!field.name) {
24
+ if (field.name === '') {
25
25
  console.warn('[sd-form] field.name is required');
26
26
  return;
27
27
  }
@@ -70,7 +70,7 @@ export class SdForm {
70
70
  this.sdSubmit.emit();
71
71
  }
72
72
  render() {
73
- return (h("form", { key: '0693ccf290eb691a5ac9210444a265e386f7c7c9', onSubmit: e => this.onSubmit(e), class: this.formClass }, h("slot", { key: 'c9dfff69c4000d645b7ed79a8ad771bc1cdd4e2c' })));
73
+ return (h("form", { key: 'd64dc85bce08da6a18f7dac5038a89f8bd7b5f01', onSubmit: e => this.onSubmit(e), class: this.formClass }, h("slot", { key: 'a0c6d177cc4c656369714ff0ebc5269255d2c2b5' })));
74
74
  }
75
75
  static get is() { return "sd-form"; }
76
76
  static get properties() {
@@ -24,7 +24,7 @@ export class SdGhostButton {
24
24
  this.warnIfMissingAriaLabel();
25
25
  }
26
26
  warnIfMissingAriaLabel() {
27
- const missing = !(this.ariaLabel ?? '').trim();
27
+ const missing = (this.ariaLabel ?? '').trim() === '';
28
28
  if (!missing) {
29
29
  this.hasWarnedMissingAriaLabel = false;
30
30
  return;
@@ -42,7 +42,7 @@ export class SdGhostButton {
42
42
  ? GHOST_BUTTON_DISABLED_COLORS[intent]
43
43
  : GHOST_BUTTON_CONTENT_COLORS[intent];
44
44
  const accessibleName = (this.ariaLabel ?? '').trim() || undefined;
45
- return (h("button", { key: 'cae4bb612dcbe16f71a3a7c3469c214df5a877ce', class: {
45
+ return (h("button", { key: '0707c0067aded10ea53bffbca0dbddbfdef35dc6', class: {
46
46
  'sd-ghost-button': true,
47
47
  'sd-ghost-button--disabled': this.disabled,
48
48
  }, type: "button", disabled: this.disabled, "aria-label": accessibleName, style: {
@@ -51,7 +51,7 @@ export class SdGhostButton {
51
51
  '--sd-ghost-button-hover-bg': GHOST_BUTTON_HOVER_BG_COLORS[intent],
52
52
  '--sd-ghost-button-hover-opacity': GHOST_BUTTON_HOVER_OPACITY,
53
53
  '--sd-ghost-button-accent': GHOST_BUTTON_FOCUS_RING_COLOR,
54
- }, onClick: this.handleClick }, h("sd-icon", { key: '58bedc712e0bec8d2cb526c42814dd201d8d04ba', name: this.icon, size: sizeConfig.icon, color: contentColor })));
54
+ }, onClick: this.handleClick }, h("sd-icon", { key: 'c362f7da310fc5b20fbbf0b08da4959b6f4a5374', name: this.icon, size: sizeConfig.icon, color: contentColor })));
55
55
  }
56
56
  static get is() { return "sd-ghost-button"; }
57
57
  static get originalStyleUrls() {
@@ -20,7 +20,7 @@ export class SdGuide {
20
20
  guideRef;
21
21
  handleClickGuide = () => {
22
22
  if (this.type === 'notion') {
23
- if (this.url) {
23
+ if (this.url !== '') {
24
24
  window.open(this.url, '_blank', 'noopener,noreferrer');
25
25
  }
26
26
  return;
@@ -76,10 +76,10 @@ export class SdGuide {
76
76
  const buttonClasses = ['sd-guide__button', `sd-guide__button--type-${this.type ?? 'tip'}`];
77
77
  if (isActive)
78
78
  buttonClasses.push('sd-guide__button--active');
79
- return (h("div", { key: '8672dad264f91b125f84e0c8312561818964cecf', class: "sd-guide", style: this.guideStyle }, h("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 && (h("sd-portal", { key: 'f6c4fe897426d506f73bf8bbb18b53665181c803', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, h("div", { key: 'a3c77a42905e4b25ecbf1c98f7e0514b41c5100e', style: { position: 'absolute', width: '0px', height: '0px' } }, h("div", { key: '41411e0a1645f709234573dc1c2f3d60a4c90f36', class: "sd-guide__popup", style: {
79
+ return (h("div", { key: '9d5ad3049230e61d1aae3cd9270dd84f89fb5b1c', class: "sd-guide", style: this.guideStyle }, h("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 && (h("sd-portal", { key: 'df51b29383f7449720d8700387bb44fbd4dbebba', open: this.popupShow, parentRef: this.guideRef, onSdClose: this.closeDropdown, offset: [0, 4] }, h("div", { key: '265390b48b9d37e9c7f92e19ef124da3faae6590', style: { position: 'absolute', width: '0px', height: '0px' } }, h("div", { key: 'b45c101ac8dd6e4d490661b377979226335defa2', class: "sd-guide__popup", style: {
80
80
  ...this.guideStyle,
81
- width: this.popupWidth ? this.popupWidth + 'px' : '426px',
82
- } }, h("sd-ghost-button", { key: '01c68abc21ce99aa2e1ba3a55a5e78b98dd8aa47', class: "sd-guide__popup__close", icon: "close", ariaLabel: "close", size: "sm", onSdClick: this.closeDropdown }), h("div", { key: '04d9f4d51cd05755aa6a18fcb4ba0a177fb62ad5', class: "sd-guide__popup__header" }, h("sd-icon", { key: 'b02adf9e9e4ca2239e3b46e7cf8c5ba0cfc008a0', name: iconName, size: 24, color: popupIconColor }), h("h3", { key: '3f4324aa1959dc8abb10e84b1103106548053679', class: "sd-guide__popup__title" }, this.popupTitle || defaultLabel)), h("ul", { key: '64937c15f19ae2f91c6c9d1f430ad579b42c5592', class: "sd-guide__popup__list" }, this.renderListItem(this.message))))))));
81
+ width: this.popupWidth != null ? this.popupWidth + 'px' : '426px',
82
+ } }, h("sd-ghost-button", { key: 'd91722fedd8cd4f74e673964c90b1840ccfcd8e1', class: "sd-guide__popup__close", icon: "close", ariaLabel: "close", size: "sm", onSdClick: this.closeDropdown }), h("div", { key: 'b7bb7ffa79363939f4b6144d48732e686ec5e365', class: "sd-guide__popup__header" }, h("sd-icon", { key: 'cfe42d9139cdae8a90ce81af3dbc7636dc56b380', name: iconName, size: 24, color: popupIconColor }), h("h3", { key: '9724df2304c13c36e21a6e1ef3be7d4b0f5e5454', class: "sd-guide__popup__title" }, this.popupTitle || defaultLabel)), h("ul", { key: '8f5eec181c32b7d0220963ce57e82e952094ad36', class: "sd-guide__popup__list" }, this.renderListItem(this.message))))))));
83
83
  }
84
84
  // 현재 2depth까지만 스타일 적용
85
85
  renderListItem(message, depth = 0) {
@@ -69,7 +69,7 @@ export class SdInput {
69
69
  this.formField?.sdFocus();
70
70
  }
71
71
  componentWillLoad() {
72
- if (this.value) {
72
+ if (this.value != null && this.value !== '') {
73
73
  this.internalValue = this.value;
74
74
  }
75
75
  }
@@ -112,12 +112,12 @@ export class SdInput {
112
112
  '--sd-system-size-field-sm-height': `${sizeTokens.height}px`,
113
113
  '--sd-system-radius-field-sm': `${sizeTokens.radius}px`,
114
114
  };
115
- return (h("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 }, h("label", { key: '44a55878936edbe36726b0cd607b607ee2921155', class: "sd-input__content" }, h("slot", { key: 'c3566240fc270059c4a7b4ccd7907a27141fd57e', name: "prefix" }), h("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 }), h("slot", { key: '685051959a063e6c2465a01aaa77b0f84c4bb570', name: "suffix" }), this.clearable && this.internalValue && !this.disabled && !this.readonly && (h("sd-ghost-button", { key: '382c86fe50a702b84a7dbc82b2e19d9e534af36a', icon: "close", ariaLabel: "clear", size: "xxs", disabled: this.disabled, class: "sd-input__clear-icon", onClick: async () => {
115
+ return (h("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 }, h("label", { key: '45a5669d2c8d7d571f50152f81139cedc8a2db3b', class: "sd-input__content" }, h("slot", { key: 'c1d032ee22344725e1d041c2351dd7785a8b6b5d', name: "prefix" }), h("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 }), h("slot", { key: '9f5eef3c48f88b90be2c821b1d43e2e9a9f91441', name: "suffix" }), this.clearable && this.internalValue && !this.disabled && !this.readonly && (h("sd-ghost-button", { key: '62ab3e8e02a9db5424e573542dc10bde5a9fc4b8', icon: "close", ariaLabel: "clear", size: "xxs", disabled: this.disabled, class: "sd-input__clear-icon", onClick: async () => {
116
116
  if (this.disabled || this.readonly)
117
117
  return;
118
118
  this.internalValue = '';
119
119
  await this.formField?.sdValidate();
120
- } })), this.type === 'password' && (h("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: () => {
120
+ } })), this.type === 'password' && (h("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: () => {
121
121
  if (this.disabled || this.readonly)
122
122
  return;
123
123
  this.passwordVisible = !this.passwordVisible;
@@ -64,7 +64,7 @@ export class SdKeyValueTable {
64
64
  const skips = this.fields.map(row => row.map(() => false));
65
65
  this.fields.forEach((row, r) => {
66
66
  row.forEach((f, c) => {
67
- const span = f.thRowSpan && f.thRowSpan > 1 ? f.thRowSpan : 1;
67
+ const span = f.thRowSpan != null && f.thRowSpan > 1 ? f.thRowSpan : 1;
68
68
  if (span <= 1)
69
69
  return;
70
70
  for (let dr = 1; dr < span; dr++) {
@@ -92,8 +92,8 @@ export class SdKeyValueTable {
92
92
  else if (autoSkip[r]?.[c])
93
93
  thCols = 1;
94
94
  else
95
- thCols = f.thColSpan && f.thColSpan > 1 ? f.thColSpan : 1;
96
- const tdCols = f.tdColSpan && f.tdColSpan > 1 ? f.tdColSpan : 1;
95
+ thCols = f.thColSpan != null && f.thColSpan > 1 ? f.thColSpan : 1;
96
+ const tdCols = f.tdColSpan != null && f.tdColSpan > 1 ? f.tdColSpan : 1;
97
97
  cols += thCols + tdCols;
98
98
  });
99
99
  if (cols > max)
@@ -102,8 +102,8 @@ export class SdKeyValueTable {
102
102
  return max;
103
103
  }
104
104
  renderTh(field, r, c) {
105
- const thRowSpan = field.thRowSpan && field.thRowSpan > 1 ? field.thRowSpan : undefined;
106
- const thColSpan = field.thColSpan && field.thColSpan > 1 ? field.thColSpan : undefined;
105
+ const thRowSpan = field.thRowSpan != null && field.thRowSpan > 1 ? field.thRowSpan : undefined;
106
+ const thColSpan = field.thColSpan != null && field.thColSpan > 1 ? field.thColSpan : undefined;
107
107
  const classObj = { 'sd-key-value-table__th': true };
108
108
  if (typeof field.thClass === 'string') {
109
109
  classObj[field.thClass] = true;
@@ -114,8 +114,8 @@ export class SdKeyValueTable {
114
114
  return (h("th", { key: `th-${r}-${c}`, class: classObj, style: field.thStyle, scope: "row", rowSpan: thRowSpan, colSpan: thColSpan }, h("div", { class: "sd-key-value-table__th-inner" }, h("span", { class: "sd-key-value-table__label" }, field.label, field.required && (h("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))));
115
115
  }
116
116
  renderTd(field, r, c) {
117
- const tdRowSpan = field.tdRowSpan && field.tdRowSpan > 1 ? field.tdRowSpan : undefined;
118
- const tdColSpan = field.tdColSpan && field.tdColSpan > 1 ? field.tdColSpan : undefined;
117
+ const tdRowSpan = field.tdRowSpan != null && field.tdRowSpan > 1 ? field.tdRowSpan : undefined;
118
+ const tdColSpan = field.tdColSpan != null && field.tdColSpan > 1 ? field.tdColSpan : undefined;
119
119
  return (h("td", { key: `td-${r}-${c}`, class: "sd-key-value-table__td", rowSpan: tdRowSpan, colSpan: tdColSpan }, h("div", { class: "sd-key-value-table__td-inner" }, h("slot", { name: `field-${field.name}` }, this.renderField(field)))));
120
120
  }
121
121
  warnDuplicateNames() {
@@ -133,7 +133,7 @@ export class SdKeyValueTable {
133
133
  }
134
134
  }
135
135
  render() {
136
- if (!this.fields.length)
136
+ if (this.fields.length === 0)
137
137
  return null;
138
138
  const cssVars = {
139
139
  '--sd-kvt-row-height': `${KEY_VALUE_TABLE_LAYOUT.rowHeight}px`,
@@ -28,7 +28,7 @@ export class SdLinearProgress {
28
28
  clipPath: `inset(0 ${100 - this.clampedValue}% 0 0)`,
29
29
  };
30
30
  const valueText = `${Math.round(this.clampedValue)}%`;
31
- return (h(Host, { key: '58849d88024bc69ab0260bdf32f461fdfb87c93c', style: hostStyle }, h("div", { key: 'a4370fbc94bdf7b51d4a27f85ca86606c3770cdb', class: 'sd-linear-progress__track' }, h("div", { key: 'e270357433247981f8374a0345cb2d3ba8d4cfca', class: 'sd-linear-progress__fill', style: fillStyle }), !this.indeterminate && (h("span", { key: 'baa77fe44a7129330e8fe70b8aa2e8bc6fd4b703', class: 'sd-linear-progress__value sd-linear-progress__value--on-track' }, valueText)), !this.indeterminate && (h("span", { key: '46a73b233ea34c1d9ac242140abe3b1e5831d484', class: 'sd-linear-progress__value sd-linear-progress__value--on-fill', style: valueOnFillStyle }, valueText))), this.label && h("span", { key: '91d5c9cc27960c7448706e641028bcc8f893b805', class: 'sd-linear-progress__label' }, this.label)));
31
+ return (h(Host, { key: '6fb48662dc2c921237a387c748bbc529ba5ea77f', style: hostStyle }, h("div", { key: 'e8fa0fdf4ac3ceeaae74fff6194c1f66b9138bc7', class: 'sd-linear-progress__track' }, h("div", { key: '7016850214e73fc6a9079e8f54674976d0320adf', class: 'sd-linear-progress__fill', style: fillStyle }), !this.indeterminate && (h("span", { key: '154b18f54d79ddbacf720370dc9ace94508c6667', class: 'sd-linear-progress__value sd-linear-progress__value--on-track' }, valueText)), !this.indeterminate && (h("span", { key: '555e41d961ad7d061ac71347e998641d104f499d', class: 'sd-linear-progress__value sd-linear-progress__value--on-fill', style: valueOnFillStyle }, valueText))), this.label && h("span", { key: 'f90f3df3b959aee549fab33a62a85d6df6ba8410', class: 'sd-linear-progress__label' }, this.label)));
32
32
  }
33
33
  static get is() { return "sd-linear-progress"; }
34
34
  static get originalStyleUrls() {
@@ -10,10 +10,10 @@ export class SdLoadingContainer {
10
10
  this.visible = false;
11
11
  }
12
12
  render() {
13
- return (h("div", { key: '1c684984ec7203edb4206690026cf8085bfadcfb', class: {
13
+ return (h("div", { key: '08675a9dc0b1c11c42fb65a414f0fed88d03f1b0', class: {
14
14
  'sd-loading-container': true,
15
15
  'sd-loading-container--visible': this.visible,
16
- }, "aria-hidden": this.visible ? 'false' : 'true' }, h("div", { key: '42a7d3b6c0f562cbfd1a0928a3df4df3cc962299', class: "sd-loading-container__backdrop" }), h("div", { key: 'ce11d0950e5047eb47ae87f41bf7c049a2e18cbc', class: "sd-loading-container__content" }, h("sd-circle-progress", { key: 'e6f63c78da63cf660942137e73cef389789e83b0', indeterminate: true, type: "inverse" }), this.message && (h("p", { key: '139b648a8a8007a050f6e81374930f92d676707c', class: "sd-loading-container__message" }, this.message)))));
16
+ }, "aria-hidden": this.visible ? 'false' : 'true' }, h("div", { key: '4a10e9009d824bef1bf2f9930941931dc1fef43a', class: "sd-loading-container__backdrop" }), h("div", { key: '88edd1c19f5d22057e1e14f1e6bd10e23f45ec7b', class: "sd-loading-container__content" }, h("sd-circle-progress", { key: 'b9c67678d799e429ec6cb2d3094da7bcc4cea150', indeterminate: true, type: "inverse" }), this.message && (h("p", { key: 'ce016465e9d8b20f2121e8846bff75bbad5d7d94', class: "sd-loading-container__message" }, this.message)))));
17
17
  }
18
18
  static get is() { return "sd-loading-container"; }
19
19
  static get originalStyleUrls() {
@@ -45,7 +45,7 @@ export class SdLoadingModal {
45
45
  '--sd-loading-modal-width': this.toCssSize(this.width) ?? `${LOADING_MODAL_LAYOUT.minWidth}px`,
46
46
  '--sd-loading-modal-height': this.toCssSize(this.height) ?? `${LOADING_MODAL_LAYOUT.minHeight}px`,
47
47
  };
48
- return (h(Host, { key: 'a653095ef804a24fbc3c4a0e65d22971b537a9bf', style: hostStyle }, h("div", { key: '38a1a83501a707de8a431b38cd3e5525565fca5d', class: "sd-loading-modal" }, h("div", { key: '81ddeebfffa70bcc84fc3b2a02fb3d70441645c4', class: "sd-loading-modal__content" }, this.resolvedState === 'loading' ? (h("sd-circle-progress", { indeterminate: true })) : (h("sd-icon", { class: "sd-loading-modal__icon", name: "warningOutline", size: LOADING_MODAL_LAYOUT.contentSize, color: LOADING_MODAL_COLORS.errorIcon }))), h("div", { key: 'db87e7d46fcc6bfd07ce4191819e5e28051489b7', class: "sd-loading-modal__message-wrapper" }, Array.isArray(this.resolvedMessage) ? (this.resolvedMessage.map(message => (h("p", { class: "sd-loading-modal__message" }, message)))) : (h("p", { class: "sd-loading-modal__message" }, this.resolvedMessage))), this.useButton && (h("div", { key: '20134aca743319ea4e03e1b8a0359b92a3bdb0af', class: "sd-loading-modal__button" }, h("sd-button", { key: 'c6951624f69519d712bfdd619fd6b22216ecad87', name: LOADING_MODAL_BUTTON_PRESET, label: this.resolvedButtonLabel, onSdClick: this.handleClick }))))));
48
+ return (h(Host, { key: '3d792e07772b93de139fa505f061004b037ed05b', style: hostStyle }, h("div", { key: '8b63d47c502bdd66f893a484c4af36d2e8302081', class: "sd-loading-modal" }, h("div", { key: '5b35a93e1aed2e8d9f5eebfcbe0222c4f38b5536', class: "sd-loading-modal__content" }, this.resolvedState === 'loading' ? (h("sd-circle-progress", { indeterminate: true })) : (h("sd-icon", { class: "sd-loading-modal__icon", name: "warningOutline", size: LOADING_MODAL_LAYOUT.contentSize, color: LOADING_MODAL_COLORS.errorIcon }))), h("div", { key: '591bae1563f4b5c5dc8bce22161d99929fb18ce5', class: "sd-loading-modal__message-wrapper" }, Array.isArray(this.resolvedMessage) ? (this.resolvedMessage.map(message => (h("p", { class: "sd-loading-modal__message" }, message)))) : (h("p", { class: "sd-loading-modal__message" }, this.resolvedMessage))), this.useButton && (h("div", { key: '577acd55fb35229459990f7f1ca4f710c26c51d4', class: "sd-loading-modal__button" }, h("sd-button", { key: 'cda4f1b9a8bee1897efb53671c0f715858377ba7', name: LOADING_MODAL_BUTTON_PRESET, label: this.resolvedButtonLabel, onSdClick: this.handleClick }))))));
49
49
  }
50
50
  static get is() { return "sd-loading-modal"; }
51
51
  static get originalStyleUrls() {
@@ -66,7 +66,7 @@ export class SdModalContainer {
66
66
  const current = this.entries.find(e => e.id === id);
67
67
  if (!current || current.closing || !modalEl.isConnected)
68
68
  return;
69
- this.entries = this.entries.map(e => e.id === id ? { ...e, backdropVisible: true } : e);
69
+ this.entries = this.entries.map(e => (e.id === id ? { ...e, backdropVisible: true } : e));
70
70
  modalEl.classList.add('sd-modal-container__modal--visible');
71
71
  });
72
72
  });
@@ -258,7 +258,7 @@ export class SdModalContainer {
258
258
  el.setAttribute(name, value);
259
259
  }
260
260
  render() {
261
- if (!this.entries?.length)
261
+ if ((this.entries?.length ?? 0) === 0)
262
262
  return null;
263
263
  return (h("div", { class: "sd-modal-container" }, this.entries.map((entry, index) => (h("div", { key: entry.id, class: "sd-modal-container__layer", style: { zIndex: String(index + 1) }, "data-modal-id": entry.id, ref: el => {
264
264
  if (el)
@@ -56,10 +56,10 @@ export class SdNumberInput {
56
56
  const [intPart, decPart] = absValue.toString().split('.');
57
57
  const formatted = (+intPart).toLocaleString();
58
58
  const result = isNegative ? '-' + formatted : formatted;
59
- return decPart ? result + '.' + decPart : String(result);
59
+ return decPart !== undefined && decPart !== '' ? result + '.' + decPart : String(result);
60
60
  }
61
61
  parseInput(input) {
62
- if (!input || input.trim() === '')
62
+ if (input.trim() === '')
63
63
  return null;
64
64
  const cleaned = input.replace(/,/g, '').trim();
65
65
  if (!/^-?(\d+\.?\d*|\d*\.\d+)$/.test(cleaned)) {
@@ -272,15 +272,15 @@ export class SdNumberInput {
272
272
  '--sd-textinput-input-hint-typography-line-height': `${NUMBER_INPUT_HINT.typography.lineHeight}px`,
273
273
  '--sd-textinput-input-contents-gap': `${NUMBER_INPUT_CONTENTS_GAP}px`,
274
274
  };
275
- return (h("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 }, h("div", { key: '4e65dcfe630b21a7683afebf595f66aca04f5c8c', class: {
275
+ return (h("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 }, h("div", { key: '889cd4055b46e0727aed2b78f2a8bbeeca88cfed', class: {
276
276
  'sd-number-input__content': true,
277
277
  'sd-number-input__content--no-stepper': !this.useButton,
278
- } }, this.useButton && (h("button", { key: 'ee387b4a602007b98e1ebd8cb1ab9a0dd11dfc9d', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--decrement", disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, h("sd-icon", { key: 'a98dd85c4a0c160e8668731d79b4718d8acb989f', name: "minus", size: iconSize, color: this.isDecrementDisabled()
278
+ } }, this.useButton && (h("button", { key: '5213f04a1db8a779762ae41672fd016388a06aa7', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--decrement", disabled: this.isDecrementDisabled(), onClick: this.handleDecrement, tabindex: -1 }, h("sd-icon", { key: '76910ba2b46a78eb2e4aaf7241eeb7aa1223c92a', name: "minus", size: iconSize, color: this.isDecrementDisabled()
279
279
  ? NUMBER_INPUT_STEPPER.icon.disabled
280
- : NUMBER_INPUT_STEPPER.icon.default }))), this.inputPrefix && (h("span", { key: 'b49392e692e2349fd9620d39b15c8531bc5ae240', class: "sd-number-input__prefix" }, this.inputPrefix)), h("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: {
280
+ : NUMBER_INPUT_STEPPER.icon.default }))), this.inputPrefix && h("span", { key: '273b809ff5bd5ebb2e8cd09a9df3f6f84167aeb2', class: "sd-number-input__prefix" }, this.inputPrefix), h("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: {
281
281
  textAlign: this.useButton ? 'center' : 'right',
282
282
  ...this.inputStyle,
283
- } }), this.inputSuffix && (h("span", { key: 'e9902ba6872e4a10bcd1106c588e231973632f51', class: "sd-number-input__suffix" }, this.inputSuffix)), this.useButton && (h("button", { key: '297ad8b506e904ba27f3f19beebe7fa503950f7b', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--increment", disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, h("sd-icon", { key: '2f74f2a161d6700981f33b3d1df3bad76b3df87b', name: "add", size: iconSize, color: this.isIncrementDisabled()
283
+ } }), this.inputSuffix && h("span", { key: '232aa43852396a617e49403d30b4514aaf896740', class: "sd-number-input__suffix" }, this.inputSuffix), this.useButton && (h("button", { key: 'f9dab4cd21deb933e72a8ad906cafbbf1cae1e5a', type: "button", class: "sd-number-input__stepper sd-number-input__stepper--increment", disabled: this.isIncrementDisabled(), onClick: this.handleIncrement, tabindex: -1 }, h("sd-icon", { key: '73208aca8e5e9be431ba03b4755053c74ec70296', name: "add", size: iconSize, color: this.isIncrementDisabled()
284
284
  ? NUMBER_INPUT_STEPPER.icon.disabled
285
285
  : NUMBER_INPUT_STEPPER.icon.default }))))));
286
286
  }