@sellmate/design-system 1.29.0 → 1.31.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 (384) hide show
  1. package/dist/cjs/design-system.cjs.js +2 -2
  2. package/dist/cjs/{index-iiJZMzVM.js → index-Jr8OU0y9.js} +1 -1
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/sd-action-modal.cjs.entry.js +2 -2
  5. package/dist/cjs/sd-badge.cjs.entry.js +2 -2
  6. package/dist/cjs/sd-barcode-input.cjs.entry.js +2 -2
  7. package/dist/cjs/sd-button_2.cjs.entry.js +3 -3
  8. package/dist/cjs/sd-calendar_2.cjs.entry.js +8 -9
  9. package/dist/cjs/sd-callout.cjs.entry.js +2 -2
  10. package/dist/cjs/sd-card.cjs.entry.js +2 -2
  11. package/dist/cjs/sd-checkbox.cjs.entry.js +5 -5
  12. package/dist/cjs/sd-chip-input.cjs.entry.js +21 -16
  13. package/dist/cjs/sd-chip.cjs.entry.js +7 -7
  14. package/dist/cjs/sd-circle-progress.cjs.entry.js +2 -2
  15. package/dist/cjs/sd-confirm-modal_2.cjs.entry.js +3 -3
  16. package/dist/cjs/sd-date-box.cjs.entry.js +1 -1
  17. package/dist/cjs/{component.datepicker-zFTQQKMH.js → sd-date-picker.config-CgyNxY03.js} +66 -1
  18. package/dist/cjs/sd-date-picker_8.cjs.entry.js +141 -51
  19. package/dist/cjs/sd-date-range-picker-calendar.cjs.entry.js +162 -12
  20. package/dist/cjs/sd-divider.cjs.entry.js +2 -2
  21. package/dist/cjs/sd-dropdown-button.cjs.entry.js +1 -1
  22. package/dist/cjs/sd-field_3.cjs.entry.js +51 -52
  23. package/dist/cjs/sd-form.cjs.entry.js +1 -1
  24. package/dist/cjs/sd-ghost-button_3.cjs.entry.js +14 -10
  25. package/dist/cjs/sd-guide.cjs.entry.js +1 -1
  26. package/dist/cjs/sd-key-value-table.cjs.entry.js +1 -1
  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 +1 -1
  30. package/dist/cjs/sd-pagination.cjs.entry.js +4 -4
  31. package/dist/cjs/sd-popover.cjs.entry.js +134 -44
  32. package/dist/cjs/sd-popup.cjs.entry.js +2 -2
  33. package/dist/cjs/sd-radio-button.cjs.entry.js +3 -3
  34. package/dist/cjs/sd-radio.cjs.entry.js +4 -2
  35. package/dist/cjs/sd-select-list-item_4.cjs.entry.js +11 -11
  36. package/dist/cjs/sd-switch.cjs.entry.js +13 -3
  37. package/dist/cjs/sd-tabs.cjs.entry.js +2 -2
  38. package/dist/cjs/sd-text-link.cjs.entry.js +4 -4
  39. package/dist/cjs/sd-time-picker-selector.cjs.entry.js +179 -0
  40. package/dist/cjs/sd-time-picker-trigger.cjs.entry.js +75 -0
  41. package/dist/cjs/sd-time-picker.cjs.entry.js +173 -0
  42. package/dist/cjs/sd-time-picker.config-C7REB08L.js +156 -0
  43. package/dist/cjs/sd-time-range-picker-selector.cjs.entry.js +219 -0
  44. package/dist/cjs/sd-time-range-picker.cjs.entry.js +204 -0
  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-DOOcBlLp.js → tooltipArrow-BlrFItn5.js} +1 -1
  49. package/dist/cjs/useDatePicker-j06ymWZ_.js +103 -0
  50. package/dist/collection/collection-manifest.json +8 -3
  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 +2 -2
  55. package/dist/collection/components/sd-calendar/sd-calendar.js +3 -3
  56. package/dist/collection/components/sd-callout/sd-callout.js +1 -1
  57. package/dist/collection/components/sd-card/sd-card.js +1 -1
  58. package/dist/collection/components/sd-checkbox/sd-checkbox.js +8 -8
  59. package/dist/collection/components/sd-chip/sd-chip.js +8 -8
  60. package/dist/collection/components/sd-chip-input/sd-chip-input.css +3 -0
  61. package/dist/collection/components/sd-chip-input/sd-chip-input.js +43 -17
  62. package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +1 -1
  63. package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +1 -1
  64. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +2 -2
  65. package/dist/collection/components/sd-date-picker/sd-date-picker.js +23 -2
  66. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.css +75 -0
  67. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +152 -6
  68. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.config.js +27 -0
  69. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +59 -3
  70. package/dist/collection/components/sd-divider/sd-divider.js +1 -1
  71. package/dist/collection/components/sd-field/sd-field.css +4 -0
  72. package/dist/collection/components/sd-field/sd-field.js +58 -5
  73. package/dist/collection/components/sd-file-picker/sd-file-picker.config.js +17 -10
  74. package/dist/collection/components/sd-file-picker/sd-file-picker.js +46 -16
  75. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +1 -1
  76. package/dist/collection/components/sd-ghost-button/sd-ghost-button.js +27 -3
  77. package/dist/collection/components/sd-input/sd-input.js +4 -4
  78. package/dist/collection/components/sd-linear-progress/sd-linear-progress.js +1 -1
  79. package/dist/collection/components/sd-loading-container/sd-loading-container.js +2 -2
  80. package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +1 -1
  81. package/dist/collection/components/sd-number-input/sd-number-input.js +58 -7
  82. package/dist/collection/components/sd-pagination/sd-pagination.js +3 -3
  83. package/dist/collection/components/sd-popover/sd-popover.config.js +41 -0
  84. package/dist/collection/components/sd-popover/sd-popover.js +189 -191
  85. package/dist/collection/components/sd-popup/sd-popup.js +1 -1
  86. package/dist/collection/components/sd-portal/sd-portal.js +1 -1
  87. package/dist/collection/components/sd-radio/sd-radio.js +25 -4
  88. package/dist/collection/components/sd-radio-button/sd-radio-button.js +6 -6
  89. package/dist/collection/components/sd-radio-group/sd-radio-group.js +7 -7
  90. package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +2 -2
  91. package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +4 -4
  92. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +2 -2
  93. package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +2 -2
  94. package/dist/collection/components/sd-select/sd-select.js +4 -4
  95. package/dist/collection/components/sd-switch/sd-switch.js +54 -3
  96. package/dist/collection/components/sd-tabs/sd-tabs.js +1 -1
  97. package/dist/collection/components/sd-tag/sd-tag.js +7 -8
  98. package/dist/collection/components/sd-text-link/sd-text-link.js +3 -3
  99. package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
  100. package/dist/collection/components/sd-time-picker/sd-time-picker-selector/sd-time-picker-selector.css +87 -0
  101. package/dist/collection/components/sd-time-picker/sd-time-picker-selector/sd-time-picker-selector.js +266 -0
  102. package/dist/collection/components/sd-time-picker/sd-time-picker-trigger/sd-time-picker-trigger.css +38 -0
  103. package/dist/collection/components/sd-time-picker/sd-time-picker-trigger/sd-time-picker-trigger.js +216 -0
  104. package/dist/collection/components/sd-time-picker/sd-time-picker.config.js +78 -0
  105. package/dist/collection/components/sd-time-picker/sd-time-picker.css +12 -0
  106. package/dist/collection/components/sd-time-picker/sd-time-picker.js +761 -0
  107. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker-selector/sd-time-range-picker-selector.css +102 -0
  108. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker-selector/sd-time-range-picker-selector.js +338 -0
  109. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker.config.js +23 -0
  110. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker.css +12 -0
  111. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker.js +809 -0
  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 +36 -189
  116. package/dist/components/index.js +1 -1
  117. package/dist/components/p-1DsQj3tv.js +1 -0
  118. package/dist/components/p-2g4jlJ3i.js +1 -0
  119. package/dist/components/{p-C_in6AVN.js → p-6U1qyU5A.js} +1 -1
  120. package/dist/components/{p-CSr33M9s.js → p-B-EV9bey.js} +1 -1
  121. package/dist/components/p-B887QQl2.js +1 -0
  122. package/dist/components/{p-Bpv90tfa.js → p-BPzs63D8.js} +1 -1
  123. package/dist/components/{p-Dg1UrMqI.js → p-BvJ14GuJ.js} +1 -1
  124. package/dist/components/p-Bxv2AFOb.js +1 -0
  125. package/dist/components/p-C6o10dl7.js +1 -0
  126. package/dist/components/p-C6wuKkUq.js +1 -0
  127. package/dist/components/{p-CbS69IvC.js → p-C9IKm4j5.js} +1 -1
  128. package/dist/components/{p-BHjezpAC.js → p-CH9dgzTr.js} +1 -1
  129. package/dist/components/{p-oYbVr-z0.js → p-CKV2W-zU.js} +1 -1
  130. package/dist/components/p-CTCt17CE.js +1 -0
  131. package/dist/components/{p-BOxGhKKP.js → p-CghFB91T.js} +1 -1
  132. package/dist/components/p-Ckr9iuVb.js +1 -0
  133. package/dist/components/p-ClbD4Gsr.js +1 -0
  134. package/dist/components/p-CmCOLnc0.js +1 -0
  135. package/dist/components/{p-C7mC7a1z.js → p-CwzkplrI.js} +1 -1
  136. package/dist/components/p-CzJ9g73f.js +1 -0
  137. package/dist/components/p-D8yhjm54.js +1 -0
  138. package/dist/components/p-D9qp3o5Y.js +1 -0
  139. package/dist/components/{p-OO7xxhkC.js → p-DE8Ws9As.js} +1 -1
  140. package/dist/components/p-DMm_GeZC.js +1 -0
  141. package/dist/components/{p-idG6CMO0.js → p-DOfLrOEu.js} +1 -1
  142. package/dist/components/{p-R-Sdglj0.js → p-DSWD8udu.js} +1 -1
  143. package/dist/components/{p-Di1q4f5E.js → p-DWnuCSqC.js} +1 -1
  144. package/dist/components/p-DYjaQs6e.js +1 -0
  145. package/dist/components/{p-9Ap2W-Mi.js → p-DasiqnrU.js} +1 -1
  146. package/dist/components/{p-CErFctrV.js → p-Dc9g3-5z.js} +1 -1
  147. package/dist/components/{p-CFTyEfB9.js → p-DnlLqzGM.js} +1 -1
  148. package/dist/components/p-DsZwiWiU.js +1 -0
  149. package/dist/components/{p-DMoFncVl.js → p-FGII920I.js} +1 -1
  150. package/dist/components/p-Hjv7LqkN.js +1 -0
  151. package/dist/components/{p-BIEPMPWA.js → p-In6mljvA.js} +1 -1
  152. package/dist/components/p-OnBLxJAP.js +1 -0
  153. package/dist/components/p-SYnTIeiO.js +1 -0
  154. package/dist/{design-system/p-B91K50wC.js → components/p-bXzpfkfN.js} +1 -1
  155. package/dist/components/p-mcbwNjNT.js +1 -0
  156. package/dist/components/p-qZxAQy4p.js +1 -0
  157. package/dist/components/sd-action-modal.js +1 -1
  158. package/dist/components/sd-badge.js +1 -1
  159. package/dist/components/sd-barcode-input.js +1 -1
  160. package/dist/components/sd-button.js +1 -1
  161. package/dist/components/sd-calendar.js +1 -1
  162. package/dist/components/sd-callout.js +1 -1
  163. package/dist/components/sd-card.js +1 -1
  164. package/dist/components/sd-checkbox.js +1 -1
  165. package/dist/components/sd-chip-input.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-divider.js +1 -1
  175. package/dist/components/sd-dropdown-button.js +1 -1
  176. package/dist/components/sd-field.js +1 -1
  177. package/dist/components/sd-file-picker.js +1 -1
  178. package/dist/components/sd-floating-portal.js +1 -1
  179. package/dist/components/sd-form.js +1 -1
  180. package/dist/components/sd-ghost-button.js +1 -1
  181. package/dist/components/sd-guide.js +1 -1
  182. package/dist/components/sd-icon.js +1 -1
  183. package/dist/components/sd-input.js +1 -1
  184. package/dist/components/sd-key-value-table.js +1 -1
  185. package/dist/components/sd-linear-progress.js +1 -1
  186. package/dist/components/sd-loading-container.js +1 -1
  187. package/dist/components/sd-loading-modal.js +1 -1
  188. package/dist/components/sd-modal-container.js +1 -1
  189. package/dist/components/sd-number-input.js +1 -1
  190. package/dist/components/sd-pagination.js +1 -1
  191. package/dist/components/sd-popover.js +1 -1
  192. package/dist/components/sd-popup.js +1 -1
  193. package/dist/components/sd-portal.js +1 -1
  194. package/dist/components/sd-radio-button.js +1 -1
  195. package/dist/components/sd-radio-group.js +1 -1
  196. package/dist/components/sd-radio.js +1 -1
  197. package/dist/components/sd-select-list-item-search.js +1 -1
  198. package/dist/components/sd-select-list-item.js +1 -1
  199. package/dist/components/sd-select-listbox.js +1 -1
  200. package/dist/components/sd-select-trigger.js +1 -1
  201. package/dist/components/sd-select.js +1 -1
  202. package/dist/components/sd-switch.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-text-link.js +1 -1
  206. package/dist/components/sd-textarea.js +1 -1
  207. package/dist/components/sd-time-picker-selector.d.ts +11 -0
  208. package/dist/components/sd-time-picker-selector.js +1 -0
  209. package/dist/components/sd-time-picker-trigger.d.ts +11 -0
  210. package/dist/components/sd-time-picker-trigger.js +1 -0
  211. package/dist/components/sd-time-picker.d.ts +11 -0
  212. package/dist/components/sd-time-picker.js +1 -0
  213. package/dist/components/sd-time-range-picker-selector.d.ts +11 -0
  214. package/dist/components/sd-time-range-picker-selector.js +1 -0
  215. package/dist/components/sd-time-range-picker.d.ts +11 -0
  216. package/dist/components/sd-time-range-picker.js +1 -0
  217. package/dist/components/sd-toast-container.js +1 -1
  218. package/dist/components/sd-toast.js +1 -1
  219. package/dist/components/sd-toggle.js +1 -1
  220. package/dist/components/sd-tooltip.js +1 -1
  221. package/dist/design-system/design-system.css +1 -1
  222. package/dist/design-system/design-system.esm.js +1 -1
  223. package/dist/design-system/{p-b585f94b.entry.js → p-129b6330.entry.js} +1 -1
  224. package/dist/design-system/{p-adf2f398.entry.js → p-15f43b9b.entry.js} +1 -1
  225. package/dist/design-system/p-16b9eac4.entry.js +1 -0
  226. package/dist/design-system/{p-c1066f40.entry.js → p-1858636f.entry.js} +1 -1
  227. package/dist/design-system/{p-840006b1.entry.js → p-21672bb8.entry.js} +1 -1
  228. package/dist/design-system/{p-c7d2c195.entry.js → p-219288ef.entry.js} +1 -1
  229. package/dist/design-system/{p-c5cffcc6.entry.js → p-22ac9e05.entry.js} +1 -1
  230. package/dist/design-system/p-2534d3d4.entry.js +1 -0
  231. package/dist/design-system/{p-be54fd3a.entry.js → p-3859316f.entry.js} +1 -1
  232. package/dist/design-system/{p-53fe2741.entry.js → p-46da4e95.entry.js} +1 -1
  233. package/dist/design-system/{p-8de3b502.entry.js → p-46eb3421.entry.js} +1 -1
  234. package/dist/design-system/p-4782331f.entry.js +1 -0
  235. package/dist/design-system/{p-5a257ed9.entry.js → p-4a117dd6.entry.js} +1 -1
  236. package/dist/design-system/{p-55c0be7d.entry.js → p-4ae0a64a.entry.js} +1 -1
  237. package/dist/design-system/{p-246aafb9.entry.js → p-52b1be6f.entry.js} +1 -1
  238. package/dist/design-system/p-56e7c87b.entry.js +1 -0
  239. package/dist/design-system/{p-26a27312.entry.js → p-570b9e91.entry.js} +1 -1
  240. package/dist/design-system/p-5a113197.entry.js +1 -0
  241. package/dist/design-system/p-62ff77e4.entry.js +1 -0
  242. package/dist/design-system/{p-d204cac5.entry.js → p-655324cd.entry.js} +1 -1
  243. package/dist/design-system/p-66cff123.entry.js +1 -0
  244. package/dist/design-system/{p-0c1d1a15.entry.js → p-6c4fa9d7.entry.js} +1 -1
  245. package/dist/design-system/{p-8ed1d470.entry.js → p-809a0a71.entry.js} +1 -1
  246. package/dist/design-system/{p-ec4ad48c.entry.js → p-82cb62a9.entry.js} +1 -1
  247. package/dist/design-system/p-843d1a8a.entry.js +1 -0
  248. package/dist/design-system/{p-02f0b906.entry.js → p-8836d9ff.entry.js} +1 -1
  249. package/dist/design-system/{p-d2ce01ac.entry.js → p-8af8e302.entry.js} +1 -1
  250. package/dist/design-system/p-9c131122.entry.js +1 -0
  251. package/dist/design-system/{p-BPKiBSGr.js → p-BnUjeY2n.js} +1 -1
  252. package/dist/design-system/p-C599jhDs.js +2 -0
  253. package/dist/design-system/p-Cn8LZw1e.js +1 -0
  254. package/dist/design-system/p-DMm_GeZC.js +1 -0
  255. package/dist/design-system/p-Dz23PPdF.js +1 -0
  256. package/dist/design-system/p-a0c55a19.entry.js +1 -0
  257. package/dist/design-system/p-a6c292d1.entry.js +1 -0
  258. package/dist/design-system/p-a9cc4697.entry.js +1 -0
  259. package/dist/design-system/{p-3595cafb.entry.js → p-b2dc1202.entry.js} +1 -1
  260. package/dist/design-system/{p-86329ae3.entry.js → p-b5229957.entry.js} +1 -1
  261. package/dist/design-system/{p-a631cd78.entry.js → p-b75cc0dd.entry.js} +1 -1
  262. package/dist/design-system/p-b97a6cf3.entry.js +1 -0
  263. package/dist/design-system/{p-3cd2751a.entry.js → p-c1e625e5.entry.js} +1 -1
  264. package/dist/design-system/{p-1ed1bfa1.entry.js → p-c7f03dea.entry.js} +1 -1
  265. package/dist/design-system/p-cdb2433a.entry.js +1 -0
  266. package/dist/design-system/{p-d9f33192.entry.js → p-d5325895.entry.js} +1 -1
  267. package/dist/design-system/p-e0e4a451.entry.js +1 -0
  268. package/dist/design-system/p-e387ec65.entry.js +1 -0
  269. package/dist/design-system/{p-4c85f6f6.entry.js → p-efe3601d.entry.js} +1 -1
  270. package/dist/esm/design-system.js +3 -3
  271. package/dist/esm/{index-Dz490Ukt.js → index-C599jhDs.js} +1 -1
  272. package/dist/esm/loader.js +3 -3
  273. package/dist/esm/sd-action-modal.entry.js +2 -2
  274. package/dist/esm/sd-badge.entry.js +2 -2
  275. package/dist/esm/sd-barcode-input.entry.js +2 -2
  276. package/dist/esm/sd-button_2.entry.js +3 -3
  277. package/dist/esm/sd-calendar_2.entry.js +8 -9
  278. package/dist/esm/sd-callout.entry.js +2 -2
  279. package/dist/esm/sd-card.entry.js +2 -2
  280. package/dist/esm/sd-checkbox.entry.js +5 -5
  281. package/dist/esm/sd-chip-input.entry.js +21 -16
  282. package/dist/esm/sd-chip.entry.js +7 -7
  283. package/dist/esm/sd-circle-progress.entry.js +2 -2
  284. package/dist/esm/sd-confirm-modal_2.entry.js +3 -3
  285. package/dist/esm/sd-date-box.entry.js +1 -1
  286. package/dist/esm/{component.datepicker-BOxGhKKP.js → sd-date-picker.config-CdXJcOGr.js} +65 -2
  287. package/dist/esm/sd-date-picker_8.entry.js +141 -51
  288. package/dist/esm/sd-date-range-picker-calendar.entry.js +158 -8
  289. package/dist/esm/sd-divider.entry.js +2 -2
  290. package/dist/esm/sd-dropdown-button.entry.js +1 -1
  291. package/dist/esm/sd-field_3.entry.js +51 -52
  292. package/dist/esm/sd-form.entry.js +1 -1
  293. package/dist/esm/sd-ghost-button_3.entry.js +14 -10
  294. package/dist/esm/sd-guide.entry.js +1 -1
  295. package/dist/esm/sd-key-value-table.entry.js +1 -1
  296. package/dist/esm/sd-linear-progress.entry.js +2 -2
  297. package/dist/esm/sd-loading-container.entry.js +3 -3
  298. package/dist/esm/sd-modal-container.entry.js +1 -1
  299. package/dist/esm/sd-pagination.entry.js +4 -4
  300. package/dist/esm/sd-popover.entry.js +134 -44
  301. package/dist/esm/sd-popup.entry.js +2 -2
  302. package/dist/esm/sd-radio-button.entry.js +3 -3
  303. package/dist/esm/sd-radio.entry.js +4 -2
  304. package/dist/esm/sd-select-list-item_4.entry.js +11 -11
  305. package/dist/esm/sd-switch.entry.js +13 -3
  306. package/dist/esm/sd-tabs.entry.js +2 -2
  307. package/dist/esm/sd-text-link.entry.js +4 -4
  308. package/dist/esm/sd-time-picker-selector.entry.js +177 -0
  309. package/dist/esm/sd-time-picker-trigger.entry.js +73 -0
  310. package/dist/esm/sd-time-picker.config-DUq29Nhs.js +148 -0
  311. package/dist/esm/sd-time-picker.entry.js +171 -0
  312. package/dist/esm/sd-time-range-picker-selector.entry.js +217 -0
  313. package/dist/esm/sd-time-range-picker.entry.js +202 -0
  314. package/dist/esm/sd-toast-container.entry.js +2 -2
  315. package/dist/esm/sd-toast.entry.js +3 -3
  316. package/dist/esm/sd-toggle.entry.js +2 -2
  317. package/dist/esm/{tooltipArrow-CEHVt90h.js → tooltipArrow-DbLihSLI.js} +1 -1
  318. package/dist/esm/{useDatePicker-BG0lUGJG.js → useDatePicker-DQ5Kyy_D.js} +1 -1
  319. package/dist/types/components/sd-checkbox/sd-checkbox.d.ts +2 -2
  320. package/dist/types/components/sd-chip/sd-chip.d.ts +3 -3
  321. package/dist/types/components/sd-chip-input/sd-chip-input.d.ts +4 -2
  322. package/dist/types/components/sd-date-picker/sd-date-picker.d.ts +2 -0
  323. package/dist/types/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.d.ts +20 -0
  324. package/dist/types/components/sd-date-range-picker/sd-date-range-picker.config.d.ts +25 -0
  325. package/dist/types/components/sd-date-range-picker/sd-date-range-picker.d.ts +9 -0
  326. package/dist/types/components/sd-field/sd-field.d.ts +7 -0
  327. package/dist/types/components/sd-file-picker/sd-file-picker.config.d.ts +28 -0
  328. package/dist/types/components/sd-file-picker/sd-file-picker.d.ts +3 -1
  329. package/dist/types/components/sd-ghost-button/sd-ghost-button.d.ts +5 -0
  330. package/dist/types/components/sd-input/sd-input.d.ts +1 -1
  331. package/dist/types/components/sd-number-input/sd-number-input.d.ts +8 -0
  332. package/dist/types/components/sd-popover/sd-popover.config.d.ts +22 -0
  333. package/dist/types/components/sd-popover/sd-popover.d.ts +29 -36
  334. package/dist/types/components/sd-radio/sd-radio.d.ts +3 -1
  335. package/dist/types/components/sd-radio-button/sd-radio-button.d.ts +2 -2
  336. package/dist/types/components/sd-radio-group/sd-radio-group.d.ts +2 -2
  337. package/dist/types/components/sd-switch/sd-switch.d.ts +8 -1
  338. package/dist/types/components/sd-tag/sd-tag.d.ts +2 -2
  339. package/dist/types/components/sd-time-picker/sd-time-picker-selector/sd-time-picker-selector.d.ts +35 -0
  340. package/dist/types/components/sd-time-picker/sd-time-picker-trigger/sd-time-picker-trigger.d.ts +21 -0
  341. package/dist/types/components/sd-time-picker/sd-time-picker.config.d.ts +71 -0
  342. package/dist/types/components/sd-time-picker/sd-time-picker.d.ts +84 -0
  343. package/dist/types/components/sd-time-range-picker/sd-time-range-picker-selector/sd-time-range-picker-selector.d.ts +40 -0
  344. package/dist/types/components/sd-time-range-picker/sd-time-range-picker.config.d.ts +9 -0
  345. package/dist/types/components/sd-time-range-picker/sd-time-range-picker.d.ts +88 -0
  346. package/dist/types/components/sd-tooltip/sd-tooltip.d.ts +7 -22
  347. package/dist/types/components.d.ts +1268 -381
  348. package/hydrate/index.js +1975 -502
  349. package/hydrate/index.mjs +1975 -502
  350. package/package.json +1 -1
  351. package/dist/cjs/sd-date-picker.config-Chrd8c4v.js +0 -41
  352. package/dist/cjs/useDatePicker-CgpIfwLA.js +0 -103
  353. package/dist/components/p-BFVfSW9t.js +0 -1
  354. package/dist/components/p-BKu0I6Io.js +0 -1
  355. package/dist/components/p-B_Zwr4Et.js +0 -1
  356. package/dist/components/p-CBoDoYDO.js +0 -1
  357. package/dist/components/p-CYMMLsGt.js +0 -1
  358. package/dist/components/p-C_SG4M4z.js +0 -1
  359. package/dist/components/p-CgSXYw_0.js +0 -1
  360. package/dist/components/p-CmRF12Fy.js +0 -1
  361. package/dist/components/p-CnRfET5y.js +0 -1
  362. package/dist/components/p-Cvsrc0be.js +0 -1
  363. package/dist/components/p-DJ8z7_EG.js +0 -1
  364. package/dist/components/p-DJmxpVkK.js +0 -1
  365. package/dist/components/p-DN7MAx-q.js +0 -1
  366. package/dist/components/p-DS6NVBvu.js +0 -1
  367. package/dist/components/p-D_56BjcD.js +0 -1
  368. package/dist/components/p-Uh9emYrV.js +0 -1
  369. package/dist/components/p-f0aBxUBG.js +0 -1
  370. package/dist/design-system/p-0e014b76.entry.js +0 -1
  371. package/dist/design-system/p-1b5fcf7b.entry.js +0 -1
  372. package/dist/design-system/p-2a4d2ee0.entry.js +0 -1
  373. package/dist/design-system/p-2d6a7d7b.entry.js +0 -1
  374. package/dist/design-system/p-4b474538.entry.js +0 -1
  375. package/dist/design-system/p-BOxGhKKP.js +0 -1
  376. package/dist/design-system/p-BhcvMs8c.js +0 -1
  377. package/dist/design-system/p-Dz490Ukt.js +0 -2
  378. package/dist/design-system/p-cb6ab65c.entry.js +0 -1
  379. package/dist/design-system/p-d51f4170.entry.js +0 -1
  380. package/dist/design-system/p-e7740a5f.entry.js +0 -1
  381. package/dist/design-system/p-e85bf462.entry.js +0 -1
  382. package/dist/design-system/p-ea008087.entry.js +0 -1
  383. package/dist/design-system/p-f962e5d2.entry.js +0 -1
  384. package/dist/esm/sd-date-picker.config-krRuSUsA.js +0 -38
@@ -0,0 +1,217 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index-C599jhDs.js';
2
+ import { p as parseTimeValue, f as formatTimeValue, c as clampTimePart, T as TIMEPICKER_COLORS, d as TIMEPICKER_SELECTOR } from './sd-time-picker.config-DUq29Nhs.js';
3
+ import './component.field-DjKOoQuF.js';
4
+
5
+ const sdTimeRangePickerSelectorCss = () => `sd-time-range-picker-selector{display:block}sd-time-range-picker-selector .sd-time-range-picker-selector{display:flex;align-items:flex-start;justify-content:center;gap:var(--selector-range-panel-gap);padding:var(--selector-range-padding);overflow:hidden;background:var(--selector-bg);border-radius:var(--selector-radius);box-shadow:var(--sd-system-shadow-spread-sm-x) var(--sd-system-shadow-spread-sm-y) var(--sd-system-shadow-spread-sm-blur) var(--sd-system-shadow-spread-sm-spread) var(--sd-system-shadow-spread-sm-color), var(--sd-system-shadow-spread-md-x) var(--sd-system-shadow-spread-md-y) var(--sd-system-shadow-spread-md-blur) var(--sd-system-shadow-spread-md-spread) var(--sd-system-shadow-spread-md-color)}sd-time-range-picker-selector .sd-time-range-picker-selector__panel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--selector-range-section-gap)}sd-time-range-picker-selector .sd-time-range-picker-selector__heading{display:flex;flex-direction:column;align-items:center;gap:var(--selector-range-heading-gap)}sd-time-range-picker-selector .sd-time-range-picker-selector__heading-text{color:var(--selector-range-heading-color);font-size:12px;line-height:20px;font-weight:700;text-align:center;white-space:nowrap}sd-time-range-picker-selector .sd-time-range-picker-selector__meridiem-group{display:flex;isolation:isolate}sd-time-range-picker-selector .sd-time-range-picker-selector__meridiem-button{width:61px;height:28px;border:var(--selector-border-width) solid var(--selector-border-default);background:var(--selector-bg);color:var(--selector-range-heading-color);font-size:12px;line-height:20px;font-weight:500;cursor:pointer}sd-time-range-picker-selector .sd-time-range-picker-selector__meridiem-button--first{border-radius:4px 0 0 4px;margin-right:-1px}sd-time-range-picker-selector .sd-time-range-picker-selector__meridiem-button--end{border-radius:0 4px 4px 0}sd-time-range-picker-selector .sd-time-range-picker-selector__meridiem-button--selected{z-index:1;border-color:var(--selector-border-focus);color:var(--selector-border-focus)}sd-time-range-picker-selector .sd-time-range-picker-selector__divider{align-self:stretch;width:1px;background:var(--selector-bg-disabled)}sd-time-range-picker-selector .sd-time-range-picker-selector__time{display:flex;align-items:center;justify-content:center;gap:var(--selector-time-gap);padding:0 16px;background:var(--selector-bg)}sd-time-range-picker-selector .sd-time-range-picker-selector__column{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--selector-time-column-gap)}sd-time-range-picker-selector .sd-time-range-picker-selector__input{width:var(--selector-input-width);height:28px;box-sizing:border-box;border:var(--selector-border-width) solid var(--selector-border-default);border-radius:4px;background:var(--selector-bg);color:var(--selector-text-default);font-size:12px;line-height:20px;text-align:center;outline:none}sd-time-range-picker-selector .sd-time-range-picker-selector__colon{width:var(--selector-colon-size);color:var(--selector-range-heading-color);font-size:16px;line-height:16px;text-align:center}`;
6
+
7
+ const SdTimeRangePickerSelector = class {
8
+ constructor(hostRef) {
9
+ registerInstance(this, hostRef);
10
+ this.update = createEvent(this, "sdUpdate", 7);
11
+ }
12
+ /** 선택된 시간 범위 [시작, 종료] (HH:mm) */
13
+ value = null;
14
+ /** 오전/오후 선택 표시 여부 */
15
+ useMeridiem = false;
16
+ /** 분 증감 단위 */
17
+ minuteStep = 1;
18
+ /** 범위 순서 정책. strict는 시작 시간이 종료 시간보다 늦어지지 않도록 보정합니다. */
19
+ rangeOrder = 'strict';
20
+ /** 시간 범위 변경 시 발생합니다. */
21
+ update;
22
+ editingKey = null;
23
+ inputDraft = {};
24
+ autoAdjusted = null;
25
+ getRange() {
26
+ return this.value ?? ['00:00', '23:59'];
27
+ }
28
+ getParts(side) {
29
+ const [start, end] = this.getRange();
30
+ return parseTimeValue(side === 'start' ? start : end);
31
+ }
32
+ getMeridiem(side) {
33
+ return this.getParts(side).hour >= 12 ? 'PM' : 'AM';
34
+ }
35
+ getDisplayHour(side) {
36
+ const { hour } = this.getParts(side);
37
+ if (!this.useMeridiem)
38
+ return hour;
39
+ const displayHour = hour % 12;
40
+ return displayHour === 0 ? 12 : displayHour;
41
+ }
42
+ emitSide(side, hour, minute, direction = 'unknown') {
43
+ const [start, end] = this.getRange();
44
+ const next = formatTimeValue(hour, minute);
45
+ this.update.emit(this.normalizeNextRange(side === 'start' ? [next, end] : [start, next], side, direction));
46
+ }
47
+ getTimeMinutes(value) {
48
+ const { hour, minute } = parseTimeValue(value);
49
+ return hour * 60 + minute;
50
+ }
51
+ normalizeNextRange(range, changedSide, direction) {
52
+ if (this.rangeOrder === 'allow-cross-day')
53
+ return range;
54
+ const [start, end] = range;
55
+ const [currentStart, currentEnd] = this.getRange();
56
+ if (this.getTimeMinutes(start) <= this.getTimeMinutes(end)) {
57
+ const shouldKeepSynced = this.autoAdjusted?.side === changedSide &&
58
+ currentStart === currentEnd &&
59
+ start !== end &&
60
+ (direction === 'unknown' || this.autoAdjusted.direction === direction);
61
+ if (shouldKeepSynced) {
62
+ return changedSide === 'start' ? [start, start] : [end, end];
63
+ }
64
+ this.autoAdjusted = null;
65
+ return range;
66
+ }
67
+ this.autoAdjusted = {
68
+ side: changedSide,
69
+ direction: changedSide === 'start' ? 'increase' : 'decrease',
70
+ };
71
+ return changedSide === 'start' ? [start, start] : [end, end];
72
+ }
73
+ getEditingKey(side, part) {
74
+ return `${side}-${part}`;
75
+ }
76
+ sanitizeInput(value) {
77
+ return value.replace(/\D/g, '').slice(0, 2);
78
+ }
79
+ setDraft(key, value) {
80
+ this.inputDraft = { ...this.inputDraft, [key]: value };
81
+ }
82
+ beginEdit(side, part, value) {
83
+ const key = this.getEditingKey(side, part);
84
+ this.editingKey = key;
85
+ this.setDraft(key, String(value).padStart(2, '0'));
86
+ }
87
+ commitHourDraft(side, draft) {
88
+ const raw = clampTimePart(Number(draft), this.useMeridiem ? 1 : 0, this.useMeridiem ? 12 : 23);
89
+ const { minute } = this.getParts(side);
90
+ const meridiem = this.getMeridiem(side);
91
+ const nextHour = this.useMeridiem
92
+ ? meridiem === 'PM'
93
+ ? raw === 12
94
+ ? 12
95
+ : raw + 12
96
+ : raw === 12
97
+ ? 0
98
+ : raw
99
+ : raw;
100
+ this.emitSide(side, nextHour, minute);
101
+ return raw;
102
+ }
103
+ commitMinuteDraft(side, draft) {
104
+ const { hour } = this.getParts(side);
105
+ const nextMinute = clampTimePart(Number(draft), 0, 59);
106
+ this.emitSide(side, hour, nextMinute);
107
+ return nextMinute;
108
+ }
109
+ endEdit(side, part) {
110
+ const draft = this.inputDraft[this.getEditingKey(side, part)];
111
+ if (part === 'hour' && draft != null && draft !== '') {
112
+ this.commitHourDraft(side, draft);
113
+ }
114
+ if (part === 'minute' && draft != null && draft !== '') {
115
+ this.commitMinuteDraft(side, draft);
116
+ }
117
+ this.editingKey = null;
118
+ this.inputDraft = {};
119
+ }
120
+ setMeridiem(side, meridiem) {
121
+ const current = this.getMeridiem(side);
122
+ if (current === meridiem)
123
+ return;
124
+ const { hour, minute } = this.getParts(side);
125
+ this.emitSide(side, meridiem === 'AM' ? hour - 12 : hour + 12, minute);
126
+ }
127
+ changeHour(side, delta) {
128
+ const { hour, minute } = this.getParts(side);
129
+ this.emitSide(side, (hour + delta + 24) % 24, minute, delta > 0 ? 'increase' : 'decrease');
130
+ }
131
+ changeMinute(side, delta) {
132
+ const { hour, minute } = this.getParts(side);
133
+ const next = minute + delta;
134
+ if (next > 59) {
135
+ this.emitSide(side, (hour + 1) % 24, next - 60, delta > 0 ? 'increase' : 'decrease');
136
+ return;
137
+ }
138
+ if (next < 0) {
139
+ this.emitSide(side, (hour + 23) % 24, next + 60, delta > 0 ? 'increase' : 'decrease');
140
+ return;
141
+ }
142
+ this.emitSide(side, hour, next, delta > 0 ? 'increase' : 'decrease');
143
+ }
144
+ handleHourInput = (side, event) => {
145
+ const target = event.target;
146
+ const draft = this.sanitizeInput(target.value);
147
+ target.value = draft;
148
+ this.setDraft(this.getEditingKey(side, 'hour'), draft);
149
+ if (draft === '')
150
+ return;
151
+ if (draft.length < 2)
152
+ return;
153
+ const raw = this.commitHourDraft(side, draft);
154
+ const displayDraft = Number(draft) === raw ? draft : String(raw);
155
+ target.value = displayDraft;
156
+ this.setDraft(this.getEditingKey(side, 'hour'), displayDraft);
157
+ };
158
+ handleMinuteInput = (side, event) => {
159
+ const target = event.target;
160
+ const draft = this.sanitizeInput(target.value);
161
+ target.value = draft;
162
+ this.setDraft(this.getEditingKey(side, 'minute'), draft);
163
+ if (draft === '')
164
+ return;
165
+ if (draft.length < 2)
166
+ return;
167
+ const nextMinute = this.commitMinuteDraft(side, draft);
168
+ const displayDraft = Number(draft) === nextMinute ? draft : String(nextMinute);
169
+ target.value = displayDraft;
170
+ this.setDraft(this.getEditingKey(side, 'minute'), displayDraft);
171
+ };
172
+ renderMeridiemButton(side, label, meridiem, position) {
173
+ const selected = this.getMeridiem(side) === meridiem;
174
+ return (h("button", { type: "button", class: {
175
+ 'sd-time-range-picker-selector__meridiem-button': true,
176
+ 'sd-time-range-picker-selector__meridiem-button--selected': selected,
177
+ [`sd-time-range-picker-selector__meridiem-button--${position}`]: true,
178
+ }, onClick: () => this.setMeridiem(side, meridiem) }, label));
179
+ }
180
+ renderColumn(side, type) {
181
+ const isHour = type === 'hour';
182
+ const { minute } = this.getParts(side);
183
+ const value = isHour ? this.getDisplayHour(side) : minute;
184
+ const editingKey = this.getEditingKey(side, type);
185
+ const displayValue = this.editingKey === editingKey
186
+ ? (this.inputDraft[editingKey] ?? '')
187
+ : String(value).padStart(2, '0');
188
+ return (h("div", { class: "sd-time-range-picker-selector__column" }, h("sd-ghost-button", { icon: "chevronUp", size: "xs", ariaLabel: `${side === 'start' ? '시작' : '종료'} ${isHour ? '시' : '분'} 증가`, onSdClick: () => isHour ? this.changeHour(side, 1) : this.changeMinute(side, this.minuteStep) }), h("input", { class: "sd-time-range-picker-selector__input", type: "text", inputmode: "numeric", value: displayValue, placeholder: "-", onFocus: () => this.beginEdit(side, type, value), onBlur: () => this.endEdit(side, type), onInput: event => isHour ? this.handleHourInput(side, event) : this.handleMinuteInput(side, event), "aria-label": `${side === 'start' ? '시작' : '종료'} ${isHour ? '시' : '분'}` }), h("sd-ghost-button", { icon: "chevronDown", size: "xs", ariaLabel: `${side === 'start' ? '시작' : '종료'} ${isHour ? '시' : '분'} 감소`, onSdClick: () => isHour ? this.changeHour(side, -1) : this.changeMinute(side, -this.minuteStep) })));
189
+ }
190
+ renderPanel(side, title) {
191
+ return (h("div", { class: "sd-time-range-picker-selector__panel" }, h("div", { class: "sd-time-range-picker-selector__heading" }, h("div", { class: "sd-time-range-picker-selector__heading-text" }, title), this.useMeridiem && (h("div", { class: "sd-time-range-picker-selector__meridiem-group" }, this.renderMeridiemButton(side, '오전', 'AM', 'first'), this.renderMeridiemButton(side, '오후', 'PM', 'end')))), h("div", { class: "sd-time-range-picker-selector__time" }, this.renderColumn(side, 'hour'), h("span", { class: "sd-time-range-picker-selector__colon" }, ":"), this.renderColumn(side, 'minute'))));
192
+ }
193
+ render() {
194
+ const cssVars = {
195
+ '--selector-bg': TIMEPICKER_SELECTOR.bg,
196
+ '--selector-radius': `${TIMEPICKER_SELECTOR.radius}px`,
197
+ '--selector-range-padding': `${TIMEPICKER_SELECTOR.range.paddingXY}px`,
198
+ '--selector-range-panel-gap': `${TIMEPICKER_SELECTOR.range.panelGap}px`,
199
+ '--selector-range-section-gap': `${TIMEPICKER_SELECTOR.range.section.gap}px`,
200
+ '--selector-range-heading-gap': `${TIMEPICKER_SELECTOR.range.heading.gap}px`,
201
+ '--selector-range-heading-color': TIMEPICKER_SELECTOR.range.heading.color,
202
+ '--selector-time-gap': `${TIMEPICKER_SELECTOR.time.gap}px`,
203
+ '--selector-time-column-gap': `${TIMEPICKER_SELECTOR.time.column.gap}px`,
204
+ '--selector-input-width': `${TIMEPICKER_SELECTOR.inputWidth}px`,
205
+ '--selector-colon-size': `${TIMEPICKER_SELECTOR.colonSize}px`,
206
+ '--selector-border-width': `${TIMEPICKER_COLORS.border.width}px`,
207
+ '--selector-border-default': TIMEPICKER_COLORS.border.default,
208
+ '--selector-border-focus': TIMEPICKER_COLORS.border.focus,
209
+ '--selector-bg-disabled': TIMEPICKER_COLORS.bg.disabled,
210
+ '--selector-text-default': TIMEPICKER_COLORS.text.default,
211
+ };
212
+ return (h("div", { key: '2cfcf8240579a3526c40c430e1704c8b10556add', class: "sd-time-range-picker-selector", style: cssVars }, this.renderPanel('start', '시작 시간'), h("div", { key: 'c48b1c6af7897a64339ce9c1c1da9d8e4a02c612', class: "sd-time-range-picker-selector__divider" }), this.renderPanel('end', '종료 시간')));
213
+ }
214
+ };
215
+ SdTimeRangePickerSelector.style = sdTimeRangePickerSelectorCss();
216
+
217
+ export { SdTimeRangePickerSelector as sd_time_range_picker_selector };
@@ -0,0 +1,202 @@
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-C599jhDs.js';
2
+ import { n as nanoid } from './index-CCwNgVmC.js';
3
+ import { f as formatTimeValue, a as formatTimeDisplay, p as parseTimeValue, T as TIMEPICKER_COLORS, b as TIMEPICKER_SIZE_MAP } from './sd-time-picker.config-DUq29Nhs.js';
4
+ import './component.field-DjKOoQuF.js';
5
+
6
+ function getTimeMinutes(value) {
7
+ const { hour, minute } = parseTimeValue(value);
8
+ return hour * 60 + minute;
9
+ }
10
+ function normalizeTimeRangeValue(value, rangeOrder = 'strict') {
11
+ if (value == null)
12
+ return null;
13
+ const normalized = value.map(item => {
14
+ const parsed = parseTimeValue(item);
15
+ return formatTimeValue(parsed.hour, parsed.minute);
16
+ });
17
+ if (rangeOrder === 'strict' && getTimeMinutes(normalized[0]) > getTimeMinutes(normalized[1])) {
18
+ return [normalized[0], normalized[0]];
19
+ }
20
+ return normalized;
21
+ }
22
+ function formatTimeRangeDisplay(value, type) {
23
+ if (value == null || value[0] === '' || value[1] === '')
24
+ return '';
25
+ return `${formatTimeDisplay(value[0], type)} ~ ${formatTimeDisplay(value[1], type)}`;
26
+ }
27
+
28
+ const sdTimeRangePickerCss = () => `sd-time-range-picker{display:inline-flex}sd-time-range-picker sd-portal{display:none}sd-time-range-picker .sd-time-range-picker{position:relative;min-width:var(--sd-time-range-picker-min-width);width:100%;height:100%}`;
29
+
30
+ const SdTimeRangePicker = class {
31
+ constructor(hostRef) {
32
+ registerInstance(this, hostRef);
33
+ this.update = createEvent(this, "sdUpdate", 7);
34
+ this.dropDownShow = createEvent(this, "sdDropDownShow", 7);
35
+ }
36
+ static CLOSE_ANIMATION_DURATION = 150;
37
+ get el() { return getElement(this); }
38
+ /** 선택된 시간 범위 [시작, 종료] (HH:mm) */
39
+ value = null;
40
+ /** 입력 필드 크기 */
41
+ size = 'sm';
42
+ /** 표시 타입: default(24시간) / midday(오전·오후) */
43
+ type = 'default';
44
+ /** 시간 미선택 시 표시할 placeholder */
45
+ placeholder = '00:00 ~ 23:59';
46
+ /** 비활성 상태 여부 */
47
+ disabled = false;
48
+ /** 값이 있을 때 지우기 버튼 표시 여부 */
49
+ clearable = false;
50
+ /** 오전/오후 선택 표시 여부. 지정하지 않으면 type="midday"일 때만 켜집니다. */
51
+ useMeridiem;
52
+ /** 분 증감 단위 */
53
+ minuteStep = 1;
54
+ /** 범위 순서 정책. strict는 시작 시간이 종료 시간보다 늦어지지 않도록 보정합니다. */
55
+ rangeOrder = 'strict';
56
+ /** 필드 너비 (숫자면 px, 문자열이면 그대로 적용) */
57
+ width = '';
58
+ // sd-field 공통 props
59
+ /** 레이블 텍스트 */
60
+ label = '';
61
+ /** 레이블 너비 */
62
+ labelWidth = '';
63
+ /** 필드 우측 어드온 레이블 */
64
+ addonLabel = '';
65
+ /** 어드온 정렬 방향 */
66
+ addonAlign = 'start';
67
+ /** 필드 하단 힌트 텍스트 */
68
+ hint = '';
69
+ /** 에러 메시지 */
70
+ errorMessage = '';
71
+ /** 유효성 검사 규칙 목록 */
72
+ rules = [];
73
+ /** 에러 상태 여부 */
74
+ error = false;
75
+ /** 필드 상태 (없으면 error/rules 결과로 자동 결정) */
76
+ status;
77
+ /** 레이블 영역 아이콘 */
78
+ icon = undefined;
79
+ /** 레이블 툴팁 텍스트 */
80
+ labelTooltip = '';
81
+ /** 레이블 툴팁 상세 옵션 */
82
+ labelTooltipProps = null;
83
+ isOpen = false;
84
+ isAnimatingOut = false;
85
+ focused = false;
86
+ hovered = false;
87
+ /** 시간 범위 선택 시 선택된 범위([시작, 종료])를 전달합니다. */
88
+ update;
89
+ /** 선택기 열림/닫힘 상태가 바뀔 때 발생합니다. */
90
+ dropDownShow;
91
+ triggerRef;
92
+ formField;
93
+ closeAnimationTimer;
94
+ /** 폼 연동용 name 속성 */
95
+ name = nanoid();
96
+ watchIsOpen(newValue) {
97
+ this.focused = newValue;
98
+ this.dropDownShow.emit({ isOpen: newValue });
99
+ }
100
+ valueChanged(newValue) {
101
+ const normalized = normalizeTimeRangeValue(newValue, this.rangeOrder);
102
+ if (normalized != null && JSON.stringify(normalized) !== JSON.stringify(newValue)) {
103
+ this.value = normalized;
104
+ }
105
+ }
106
+ rangeOrderChanged() {
107
+ this.valueChanged(this.value);
108
+ }
109
+ /** 유효성 검사를 실행합니다. */
110
+ async sdValidate() {
111
+ return this.formField?.sdValidate();
112
+ }
113
+ /** 값과 유효성 상태를 초기화합니다. */
114
+ async sdReset() {
115
+ return this.formField?.sdReset();
116
+ }
117
+ /** 유효성 상태만 초기화합니다. */
118
+ async sdResetValidate() {
119
+ return this.formField?.sdResetValidation();
120
+ }
121
+ /** 입력 필드에 포커스를 이동합니다. */
122
+ async sdFocus() {
123
+ return this.formField?.sdFocus();
124
+ }
125
+ componentWillLoad() {
126
+ this.valueChanged(this.value);
127
+ }
128
+ disconnectedCallback() {
129
+ if (this.closeAnimationTimer)
130
+ clearTimeout(this.closeAnimationTimer);
131
+ }
132
+ closeDropdown() {
133
+ if (!this.isOpen)
134
+ return;
135
+ this.isOpen = false;
136
+ this.isAnimatingOut = true;
137
+ if (this.closeAnimationTimer)
138
+ clearTimeout(this.closeAnimationTimer);
139
+ this.closeAnimationTimer = setTimeout(() => {
140
+ this.isAnimatingOut = false;
141
+ }, SdTimeRangePicker.CLOSE_ANIMATION_DURATION);
142
+ }
143
+ handleTriggerClick = () => {
144
+ if (this.disabled)
145
+ return;
146
+ if (this.isOpen) {
147
+ this.closeDropdown();
148
+ }
149
+ else {
150
+ if (this.closeAnimationTimer)
151
+ clearTimeout(this.closeAnimationTimer);
152
+ this.isAnimatingOut = false;
153
+ this.isOpen = true;
154
+ }
155
+ };
156
+ handleClear = (event) => {
157
+ event.stopPropagation();
158
+ this.value = null;
159
+ this.update.emit(null);
160
+ };
161
+ handleSelect = (event) => {
162
+ event.stopPropagation();
163
+ this.value = event.detail;
164
+ this.update.emit(this.value);
165
+ };
166
+ get effectiveUseMeridiem() {
167
+ return this.useMeridiem ?? this.type === 'midday';
168
+ }
169
+ get displayText() {
170
+ return formatTimeRangeDisplay(this.value, this.effectiveUseMeridiem ? 'midday' : 'default');
171
+ }
172
+ render() {
173
+ const sizeTokens = TIMEPICKER_SIZE_MAP[this.size] ?? TIMEPICKER_SIZE_MAP.sm;
174
+ const cssVars = {
175
+ '--sd-system-size-field-sm-height': `${sizeTokens.height}px`,
176
+ '--sd-system-size-field-md-height': `${sizeTokens.height}px`,
177
+ '--sd-system-radius-field-sm': `${sizeTokens.radius}px`,
178
+ '--sd-system-radius-field-md': `${sizeTokens.radius}px`,
179
+ '--sd-time-range-picker-min-width': `${sizeTokens.minWidth}px`,
180
+ '--sd-system-color-field-border-default': TIMEPICKER_COLORS.border.default,
181
+ '--sd-system-color-field-border-focus': TIMEPICKER_COLORS.border.focus,
182
+ '--sd-system-color-field-bg-default': TIMEPICKER_COLORS.bg.default,
183
+ };
184
+ return (h("sd-field", { key: '41f3bdb3d08a72f590a25486975962d02cb7bbb8', 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, status: this.status, 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: 'b3b8e08bd44e3f96a733c7341b8ca66c343aaa9d', class: "sd-time-range-picker", ref: el => {
185
+ this.triggerRef = el;
186
+ } }, h("sd-time-picker-trigger", { key: '39c927a8a3eee331bf253d2faabe9711c2516987', displayText: this.displayText, placeholder: this.placeholder, disabled: this.disabled, clearable: this.clearable, size: this.size, onSdTriggerClick: this.handleTriggerClick, onSdClear: this.handleClear })), (this.isOpen || this.isAnimatingOut) && (h("sd-portal", { key: '33fd2740d81d4dea5af75ed21888e4de213de1e3', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, h("sd-time-range-picker-selector", { key: '554057e0b4a0fd27d570bf9ea955c947cfc5cc50', value: this.value, useMeridiem: this.effectiveUseMeridiem, minuteStep: this.minuteStep, "range-order": this.rangeOrder, onSdUpdate: this.handleSelect })))));
187
+ }
188
+ static get watchers() { return {
189
+ "isOpen": [{
190
+ "watchIsOpen": 0
191
+ }],
192
+ "value": [{
193
+ "valueChanged": 0
194
+ }],
195
+ "rangeOrder": [{
196
+ "rangeOrderChanged": 0
197
+ }]
198
+ }; }
199
+ };
200
+ SdTimeRangePicker.style = sdTimeRangePickerCss();
201
+
202
+ export { SdTimeRangePicker as sd_time_range_picker };
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, a as getElement, h } from './index-Dz490Ukt.js';
1
+ import { r as registerInstance, c as createEvent, a as getElement, h } from './index-C599jhDs.js';
2
2
 
3
3
  const DEFAULT_DURATION = 4000;
4
4
  const DEFAULT_MAX_VISIBLE = 3;
@@ -241,7 +241,7 @@ const SdToastContainer = class {
241
241
  const activeToasts = toasts.filter(t => t.state !== 'exiting').reverse();
242
242
  const indexMap = new Map();
243
243
  activeToasts.forEach((t, i) => indexMap.set(t.id, i));
244
- return (h("div", { key: '9d0347cd5aba313c4e5cddaf7ecd9eaa3be096c8', class: "sd-toast-container", style: this.getContainerStyles(), onMouseEnter: () => {
244
+ return (h("div", { key: '3b7cfb69d072ae23f91b8afcced5d02f553f972b', class: "sd-toast-container", style: this.getContainerStyles(), onMouseEnter: () => {
245
245
  this.expanded = true;
246
246
  this.pauseTimers();
247
247
  }, onMouseLeave: () => {
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Dz490Ukt.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-C599jhDs.js';
2
2
 
3
3
  const toast = {
4
4
  icon: "16",
@@ -91,12 +91,12 @@ const SdToast = class {
91
91
  const linkColor = typeConfig.linkColor ?? typeConfig.content;
92
92
  const useDefaultCloseIntent = ['default', 'caution', 'info'].includes(this.type);
93
93
  const buttonName = TOAST_BUTTON_NAME_BY_TYPE[this.type] ?? TOAST_BUTTON_NAME_BY_TYPE.default;
94
- return (h("div", { key: 'c402e2eabab8b2d229cc40550d2ffb7c601ad992', style: {
94
+ return (h("div", { key: 'f452ef18c746e75d0a2139fe14e10e2f6badc09e', style: {
95
95
  '--sd-toast-bg': typeConfig.bg,
96
96
  '--sd-toast-text': typeConfig.content,
97
97
  '--sd-toast-icon': iconColor,
98
98
  '--sd-toast-link': linkColor,
99
- } }, h("div", { key: 'a6dbbc079649181799f434f7158791ec1e52fd4a', class: "sd-toast", role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.icon && (h("div", { key: 'c8210c48776c0722ed025049ebfce5eb8477df0a', class: "sd-toast__icon" }, h("sd-icon", { key: 'ee99941287447694a3aa700281bacdbb5d9605bc', name: this.icon, size: iconSize, color: iconColor }))), h("div", { key: 'f4be8a8599e84bb75aeaa5414cf6ff2cd063e391', class: "sd-toast__content" }, h("span", { key: 'af60e01cf1be615fd3b462885c9060445e49c809', class: "sd-toast__message" }, this.message)), this.link && (h("a", { key: 'cd7bbe3ef56e6f475d4182118321645b444c2334', href: this.link, class: "sd-toast__link", target: "_blank", rel: "noopener noreferrer" }, this.linkLabel || this.link)), this.buttonLabel && (h("sd-button", { key: '87c9a38fead8416d36850ff9247d02a962e92f27', class: "sd-toast__button", name: buttonName, label: this.buttonLabel, onSdClick: (event) => this.buttonClick.emit(event.detail) })), this.useClose && (h("sd-ghost-button", { key: '1af5e0ffa26a26574bb9935fdeb01192895c32eb', class: "sd-toast__close", icon: "close", intent: useDefaultCloseIntent ? 'default' : 'inverse', ariaLabel: "close", size: "xs", onClick: () => this.close.emit() })))));
99
+ } }, h("div", { key: '2f72746f674d8eb2ea60ee4d77421a08c55c519d', class: "sd-toast", role: "status", "aria-live": "polite", "aria-atomic": "true" }, this.icon && (h("div", { key: '41b1f311746bfae1cc85d262ab5358b3dc63b336', class: "sd-toast__icon" }, h("sd-icon", { key: 'c683d9d8a4b0712f70895c9168f1db0ed6de64f9', name: this.icon, size: iconSize, color: iconColor }))), h("div", { key: '6656f4d296ea8fb284f8eb6cca961a23a993c811', class: "sd-toast__content" }, h("span", { key: '17a9b19754c725a6b70e56c23f92e518e7ded0a1', class: "sd-toast__message" }, this.message)), this.link && (h("a", { key: '0b6da1f070cc31d136a5e366bd8d6655d8bbc291', href: this.link, class: "sd-toast__link", target: "_blank", rel: "noopener noreferrer" }, this.linkLabel || this.link)), this.buttonLabel && (h("sd-button", { key: '9325d2e1ec659e72858a190077c821475e5ef8f2', class: "sd-toast__button", name: buttonName, label: this.buttonLabel, onSdClick: (event) => this.buttonClick.emit(event.detail) })), this.useClose && (h("sd-ghost-button", { key: 'acbb5e957e6fa989412e9824bf2b4f4314afca8c', class: "sd-toast__close", icon: "close", intent: useDefaultCloseIntent ? 'default' : 'inverse', ariaLabel: "close", size: "xs", onClick: () => this.close.emit() })))));
100
100
  }
101
101
  };
102
102
  SdToast.style = sdToastCss();
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-Dz490Ukt.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-C599jhDs.js';
2
2
 
3
3
  const toggle = {
4
4
  height: "28",
@@ -121,7 +121,7 @@ const SdToggle = class {
121
121
  '--sd-toggle-content-select': TOGGLE_COLORS.content.select,
122
122
  '--sd-toggle-content-disabled': TOGGLE_COLORS.content.disabled,
123
123
  };
124
- return (h("label", { key: '26ca7c70bf68964bc7bd0fd321912ee49dfc5c73', class: this.toggleClasses, style: cssVars, "aria-label": this.label || 'toggle' }, this.label, h("input", { key: '5189d6d9f234921d78a0bd3cdded8256ad273702', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
124
+ return (h("label", { key: 'af787ccf9ff1c49242a7f5822e8c97c5a65f2b95', class: this.toggleClasses, style: cssVars, "aria-label": this.label || 'toggle' }, this.label, h("input", { key: 'e2584e65a77af911136766358ecdaa730b631394', style: { display: 'none' }, type: "checkbox", onInput: this.handleChange })));
125
125
  }
126
126
  };
127
127
  SdToggle.style = sdToggleCss();
@@ -1,4 +1,4 @@
1
- import { h } from './index-Dz490Ukt.js';
1
+ import { h } from './index-C599jhDs.js';
2
2
 
3
3
  const TooltipArrow = (props) => (h("svg", { width: "16", height: "12", viewBox: "0 0 16 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props }, h("path", { d: "M8.83205 10.7519C8.43623 11.3457 7.56377 11.3457 7.16795 10.7519L1.04907e-06 -1.39876e-06L16 0L8.83205 10.7519Z", fill: "currentColor" })));
4
4
 
@@ -1,4 +1,4 @@
1
- import { d as datepickerTokens } from './component.datepicker-BOxGhKKP.js';
1
+ import { d as datepickerTokens } from './sd-date-picker.config-CdXJcOGr.js';
2
2
 
3
3
  const CALENDAR_LAYOUT = {
4
4
  bg: datepickerTokens.datepicker.calendar.bg,
@@ -2,8 +2,8 @@ import { EventEmitter } from '../../stencil-public-runtime';
2
2
  export type CheckedType = boolean | any[] | null;
3
3
  export declare class SdCheckbox {
4
4
  el: HTMLElement;
5
- /** 현재 선택 상태 또는 배열 형태의 값 */
6
- value: CheckedType;
5
+ /** 현재 선택 상태 또는 배열 형태의 값 (미지정 시 미선택 상태) */
6
+ value?: CheckedType;
7
7
  /** 배열 모드에서의 개별 값 */
8
8
  val?: any;
9
9
  /** 비활성화 여부 */
@@ -11,7 +11,7 @@ export declare class SdChip implements ValidatableField {
11
11
  error: boolean;
12
12
  /** 비활성 상태 여부 */
13
13
  disabled: boolean;
14
- /** 인라인 편집 가능 여부 */
14
+ /** 인라인 편집 가능 여부 (기본값 false) */
15
15
  editable: boolean;
16
16
  /** 닫기 버튼 표시 여부 */
17
17
  showRemove: boolean;
@@ -49,8 +49,8 @@ export declare class SdChip implements ValidatableField {
49
49
  /** 네이티브 input 엘리먼트를 반환합니다. */
50
50
  sdGetNativeElement(): Promise<HTMLSpanElement | null>;
51
51
  /**
52
- * SSR 환경에서 editable prop이 전달되지 않으면 undefined로 들어올 있으므로,
53
- * false명시된 경우에만 편집 불가로 처리한다 (기본값 true).
52
+ * editable이 명시적으로 true일 때만 편집 가능으로 처리한다 (기본값 false — RN SChip과 일치).
53
+ * SSR 등에서 editable이 undefined들어와도 편집 불가로 안전하게 처리된다.
54
54
  */
55
55
  private get isEditable();
56
56
  private enterEditMode;
@@ -27,6 +27,8 @@ export declare class SdChipInput {
27
27
  useReset: boolean;
28
28
  /** 최대 입력 가능한 칩 개수 (없으면 제한 없음) */
29
29
  maxCount?: number;
30
+ /** 최대 개수·초기화 meta 위치 (end=우측 끝으로 정렬 / inline=콘텐츠에 이어서 배치) */
31
+ metaPlacement: 'end' | 'inline';
30
32
  /** 중복 에러 메시지에 표시할 항목 이름 (없으면 기본 메시지 사용) */
31
33
  duplicateLabel?: string;
32
34
  /** 자동완성 후보 목록 */
@@ -37,8 +39,8 @@ export declare class SdChipInput {
37
39
  recommendedItems: string[];
38
40
  /** 추천 항목 로딩 중 여부 */
39
41
  loadingRecommendedItems: boolean;
40
- /** 자동완성 드롭다운 최소 너비 (숫자면 px, 문자열이면 그대로 적용. 없으면 입력 필드 너비를 사용) */
41
- autocompleteMinWidth?: string | number;
42
+ /** 드롭다운(자동완성) 최소 너비 (숫자면 px, 문자열이면 그대로 적용. 기본값 200) */
43
+ dropdownMinWidth?: string | number;
42
44
  /** 레이블 텍스트 */
43
45
  label?: string;
44
46
  /** 레이블 너비 */
@@ -34,6 +34,8 @@ export declare class SdDatePicker {
34
34
  rules?: Rule[];
35
35
  /** 에러 상태 여부 */
36
36
  error: boolean;
37
+ /** 필드 상태 (없으면 error/rules 결과로 자동 결정) */
38
+ status?: 'default' | 'pass' | 'error';
37
39
  /** 레이블 영역 아이콘 */
38
40
  icon?: IconProps;
39
41
  /** 레이블 툴팁 텍스트 */
@@ -6,11 +6,19 @@ export declare class SdDateRangePickerCalendar {
6
6
  selectable?: [string, string];
7
7
  /** 최대 선택 가능 일 수 */
8
8
  maxRange?: number;
9
+ /** 시간(시:분) 선택 푸터 사용 여부 */
10
+ useTimePicker: boolean;
9
11
  private currentYear;
10
12
  private currentMonth;
11
13
  private pendingStart;
12
14
  private hoverDate;
13
15
  private displayValue;
16
+ private startHour;
17
+ private startMinute;
18
+ private endHour;
19
+ private endMinute;
20
+ /** 직접 emit한 값이 value prop으로 되돌아오는 에코를 구분해 시간 입력 clobber를 막는다 */
21
+ private lastEmitted;
14
22
  /** 날짜 범위 선택 시 발생합니다. */
15
23
  select: EventEmitter<[string, string]>;
16
24
  /** 달력 뷰가 변경될 때 발생합니다. */
@@ -22,6 +30,8 @@ export declare class SdDateRangePickerCalendar {
22
30
  componentWillLoad(): void;
23
31
  handleValueChange(): void;
24
32
  private syncFromValue;
33
+ /** "YYYY-MM-DD HH:mm" 또는 "YYYY-MM-DD"를 날짜/시/분으로 분리한다 */
34
+ private splitDateTime;
25
35
  private get rightYear();
26
36
  private get rightMonth();
27
37
  private formatDate;
@@ -34,10 +44,20 @@ export declare class SdDateRangePickerCalendar {
34
44
  private goToday;
35
45
  private isDisabled;
36
46
  private handleDayClick;
47
+ /** 날짜 범위(+ useTimePicker면 시:분)를 결합해 sdSelect로 emit한다 */
48
+ private emitRange;
49
+ private pad;
50
+ /** 시:분 입력 — 숫자만/2자리로 제한하고 범위(시 0~23, 분 0~59)로 클램프한다 */
51
+ private handleTimeInput;
52
+ private handleTimeBlur;
53
+ private getTimePart;
54
+ private setTimePart;
37
55
  private handleDayHover;
38
56
  private getRangeState;
39
57
  private renderHeader;
40
58
  private renderYearNav;
41
59
  private renderPanel;
60
+ private renderTimeSection;
61
+ private renderTimeFooter;
42
62
  render(): any;
43
63
  }
@@ -8,3 +8,28 @@ export declare const RANGE_LAYOUT: {
8
8
  panelGap: string;
9
9
  divider: string;
10
10
  };
11
+ /** 시간(시:분) 선택 푸터 레이아웃 토큰 */
12
+ export declare const TIME_LAYOUT: {
13
+ bgDefault: string;
14
+ bgSelected: string;
15
+ dateLabel: string;
16
+ dateUnit: string;
17
+ dateGap: string;
18
+ radius: string;
19
+ paddingX: string;
20
+ paddingY: string;
21
+ gap: string;
22
+ sectionGap: string;
23
+ unitGap: string;
24
+ fontSize: string;
25
+ lineHeight: string;
26
+ fontWeight: string;
27
+ input: {
28
+ height: string;
29
+ radius: string;
30
+ border: string;
31
+ borderFocus: string;
32
+ text: string;
33
+ placeholder: string;
34
+ };
35
+ };