@sellmate/design-system 1.29.0 → 1.32.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 (411) hide show
  1. package/dist/cjs/design-system.cjs.js +2 -2
  2. package/dist/cjs/{index-iiJZMzVM.js → index-Cg7X15Hq.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 +22 -17
  13. package/dist/cjs/sd-chip.cjs.entry.js +7 -7
  14. package/dist/cjs/sd-circle-progress.cjs.entry.js +3 -3
  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 +3 -3
  21. package/dist/cjs/sd-dropdown-button.cjs.entry.js +2 -2
  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 +2 -2
  26. package/dist/cjs/sd-key-value-table.cjs.entry.js +2 -2
  27. package/dist/cjs/sd-linear-progress.cjs.entry.js +3 -3
  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 +4 -4
  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-scroll-area.cjs.entry.js +44 -0
  36. package/dist/cjs/sd-select-list-item_4.cjs.entry.js +12 -12
  37. package/dist/cjs/sd-stepper.cjs.entry.js +190 -0
  38. package/dist/cjs/sd-switch.cjs.entry.js +13 -3
  39. package/dist/cjs/sd-tabs.cjs.entry.js +2 -2
  40. package/dist/cjs/sd-text-link.cjs.entry.js +4 -4
  41. package/dist/cjs/sd-time-picker-selector.cjs.entry.js +179 -0
  42. package/dist/cjs/sd-time-picker-trigger.cjs.entry.js +75 -0
  43. package/dist/cjs/sd-time-picker.cjs.entry.js +173 -0
  44. package/dist/cjs/sd-time-picker.config-C7REB08L.js +156 -0
  45. package/dist/cjs/sd-time-range-picker-selector.cjs.entry.js +219 -0
  46. package/dist/cjs/sd-time-range-picker.cjs.entry.js +204 -0
  47. package/dist/cjs/sd-toast-container.cjs.entry.js +2 -2
  48. package/dist/cjs/sd-toast.cjs.entry.js +3 -3
  49. package/dist/cjs/sd-toggle.cjs.entry.js +2 -2
  50. package/dist/cjs/{system-B4KkVpu2.js → system-BGCBFBcM.js} +3 -1
  51. package/dist/cjs/{tooltipArrow-DOOcBlLp.js → tooltipArrow-CZff77W-.js} +1 -1
  52. package/dist/cjs/useDatePicker-j06ymWZ_.js +103 -0
  53. package/dist/collection/collection-manifest.json +10 -3
  54. package/dist/collection/components/sd-action-modal/sd-action-modal.js +1 -1
  55. package/dist/collection/components/sd-badge/sd-badge.js +1 -1
  56. package/dist/collection/components/sd-barcode-input/sd-barcode-input.js +1 -1
  57. package/dist/collection/components/sd-button/sd-button.js +2 -2
  58. package/dist/collection/components/sd-calendar/sd-calendar.js +3 -3
  59. package/dist/collection/components/sd-callout/sd-callout.js +1 -1
  60. package/dist/collection/components/sd-card/sd-card.js +1 -1
  61. package/dist/collection/components/sd-checkbox/sd-checkbox.js +8 -8
  62. package/dist/collection/components/sd-chip/sd-chip.js +8 -8
  63. package/dist/collection/components/sd-chip-input/sd-chip-input.css +3 -0
  64. package/dist/collection/components/sd-chip-input/sd-chip-input.js +43 -17
  65. package/dist/collection/components/sd-circle-progress/sd-circle-progress.js +1 -1
  66. package/dist/collection/components/sd-confirm-modal/sd-confirm-modal.js +1 -1
  67. package/dist/collection/components/sd-date-picker/sd-date-picker-trigger/sd-date-picker-trigger.js +2 -2
  68. package/dist/collection/components/sd-date-picker/sd-date-picker.js +23 -2
  69. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.css +75 -0
  70. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.js +152 -6
  71. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.config.js +27 -0
  72. package/dist/collection/components/sd-date-range-picker/sd-date-range-picker.js +59 -3
  73. package/dist/collection/components/sd-divider/sd-divider.js +1 -1
  74. package/dist/collection/components/sd-field/sd-field.css +4 -0
  75. package/dist/collection/components/sd-field/sd-field.js +58 -5
  76. package/dist/collection/components/sd-file-picker/sd-file-picker.config.js +17 -10
  77. package/dist/collection/components/sd-file-picker/sd-file-picker.js +46 -16
  78. package/dist/collection/components/sd-floating-portal/sd-floating-portal.js +1 -1
  79. package/dist/collection/components/sd-ghost-button/sd-ghost-button.js +27 -3
  80. package/dist/collection/components/sd-input/sd-input.js +4 -4
  81. package/dist/collection/components/sd-linear-progress/sd-linear-progress.js +1 -1
  82. package/dist/collection/components/sd-loading-container/sd-loading-container.js +2 -2
  83. package/dist/collection/components/sd-loading-modal/sd-loading-modal.js +1 -1
  84. package/dist/collection/components/sd-number-input/sd-number-input.js +58 -7
  85. package/dist/collection/components/sd-pagination/sd-pagination.js +3 -3
  86. package/dist/collection/components/sd-popover/sd-popover.config.js +41 -0
  87. package/dist/collection/components/sd-popover/sd-popover.js +189 -191
  88. package/dist/collection/components/sd-popup/sd-popup.css +40 -0
  89. package/dist/collection/components/sd-popup/sd-popup.js +1 -1
  90. package/dist/collection/components/sd-portal/sd-portal.js +1 -1
  91. package/dist/collection/components/sd-radio/sd-radio.js +25 -4
  92. package/dist/collection/components/sd-radio-button/sd-radio-button.js +6 -6
  93. package/dist/collection/components/sd-radio-group/sd-radio-group.js +7 -7
  94. package/dist/collection/components/sd-scroll-area/sd-scroll-area.config.js +8 -0
  95. package/dist/collection/components/sd-scroll-area/sd-scroll-area.css +61 -0
  96. package/dist/collection/components/sd-scroll-area/sd-scroll-area.js +151 -0
  97. package/dist/collection/components/sd-select/sd-select-list-item/sd-select-list-item.js +2 -2
  98. package/dist/collection/components/sd-select/sd-select-list-item-search/sd-select-list-item-search.js +4 -4
  99. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.css +33 -9
  100. package/dist/collection/components/sd-select/sd-select-listbox/sd-select-listbox.js +2 -2
  101. package/dist/collection/components/sd-select/sd-select-trigger/sd-select-trigger.js +2 -2
  102. package/dist/collection/components/sd-select/sd-select.js +4 -4
  103. package/dist/collection/components/sd-stepper/sd-stepper.config.js +35 -0
  104. package/dist/collection/components/sd-stepper/sd-stepper.css +50 -0
  105. package/dist/collection/components/sd-stepper/sd-stepper.js +186 -0
  106. package/dist/collection/components/sd-switch/sd-switch.js +54 -3
  107. package/dist/collection/components/sd-tabs/sd-tabs.js +1 -1
  108. package/dist/collection/components/sd-tag/sd-tag.js +7 -8
  109. package/dist/collection/components/sd-text-link/sd-text-link.js +3 -3
  110. package/dist/collection/components/sd-textarea/sd-textarea.js +1 -1
  111. package/dist/collection/components/sd-time-picker/sd-time-picker-selector/sd-time-picker-selector.css +87 -0
  112. package/dist/collection/components/sd-time-picker/sd-time-picker-selector/sd-time-picker-selector.js +266 -0
  113. package/dist/collection/components/sd-time-picker/sd-time-picker-trigger/sd-time-picker-trigger.css +38 -0
  114. package/dist/collection/components/sd-time-picker/sd-time-picker-trigger/sd-time-picker-trigger.js +216 -0
  115. package/dist/collection/components/sd-time-picker/sd-time-picker.config.js +78 -0
  116. package/dist/collection/components/sd-time-picker/sd-time-picker.css +12 -0
  117. package/dist/collection/components/sd-time-picker/sd-time-picker.js +761 -0
  118. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker-selector/sd-time-range-picker-selector.css +102 -0
  119. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker-selector/sd-time-range-picker-selector.js +338 -0
  120. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker.config.js +23 -0
  121. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker.css +12 -0
  122. package/dist/collection/components/sd-time-range-picker/sd-time-range-picker.js +809 -0
  123. package/dist/collection/components/sd-toast/sd-toast.js +2 -2
  124. package/dist/collection/components/sd-toast-container/sd-toast-container.js +1 -1
  125. package/dist/collection/components/sd-toggle/sd-toggle.js +1 -1
  126. package/dist/collection/components/sd-tooltip/sd-tooltip.js +36 -189
  127. package/dist/components/index.js +1 -1
  128. package/dist/components/p--BJuy06e.js +1 -0
  129. package/dist/components/p-22hyxPno.js +1 -0
  130. package/dist/components/p-7lGaExLM.js +1 -0
  131. package/dist/components/{p-oYbVr-z0.js → p-B6BgOB_-.js} +1 -1
  132. package/dist/components/{p-R-Sdglj0.js → p-BBAwMOGx.js} +1 -1
  133. package/dist/components/{p-CbS69IvC.js → p-BDULNyBw.js} +1 -1
  134. package/dist/components/p-BI1iKxNN.js +1 -0
  135. package/dist/components/{p-Bpv90tfa.js → p-BPzs63D8.js} +1 -1
  136. package/dist/components/{p-DMoFncVl.js → p-BU1DclrU.js} +1 -1
  137. package/dist/components/{p-OO7xxhkC.js → p-BhLF3gGb.js} +1 -1
  138. package/dist/components/p-Bk6mL1Ml.js +1 -0
  139. package/dist/components/p-BkyM9ded.js +1 -0
  140. package/dist/components/{p-CFTyEfB9.js → p-BoJ_gLp7.js} +1 -1
  141. package/dist/components/{p-Di1q4f5E.js → p-BpTKv3vN.js} +1 -1
  142. package/dist/components/p-C0IFrSzM.js +1 -0
  143. package/dist/components/p-C1KeTx0Z.js +1 -0
  144. package/dist/components/p-C8x8VEb8.js +1 -0
  145. package/dist/components/p-CBx8KWmu.js +1 -0
  146. package/dist/components/p-CNNjhHTA.js +1 -0
  147. package/dist/components/{p-CErFctrV.js → p-CRDS2TOy.js} +1 -1
  148. package/dist/components/p-CdeywvU6.js +1 -0
  149. package/dist/components/{p-BOxGhKKP.js → p-CghFB91T.js} +1 -1
  150. package/dist/components/p-CikPzSw-.js +1 -0
  151. package/dist/components/{p-9Ap2W-Mi.js → p-D0IDp-M3.js} +1 -1
  152. package/dist/components/p-D2oNz1s-.js +1 -0
  153. package/dist/components/p-DApl37Qw.js +1 -0
  154. package/dist/components/{p-BIEPMPWA.js → p-DGAzuK5C.js} +1 -1
  155. package/dist/components/p-DMm_GeZC.js +1 -0
  156. package/dist/components/{p-C_in6AVN.js → p-DONA7SlO.js} +1 -1
  157. package/dist/components/{p-C7mC7a1z.js → p-DVdDYnTl.js} +1 -1
  158. package/dist/components/{p-Dg1UrMqI.js → p-DdYWQ4Z5.js} +1 -1
  159. package/dist/components/p-DtadjLky.js +1 -0
  160. package/dist/components/p-DvlLDBO7.js +1 -0
  161. package/dist/components/p-ETWwVYq6.js +1 -0
  162. package/dist/components/{p-idG6CMO0.js → p-ISXxxDfX.js} +1 -1
  163. package/dist/components/p-UFNg7rhE.js +1 -0
  164. package/dist/{design-system/p-B91K50wC.js → components/p-bXzpfkfN.js} +1 -1
  165. package/dist/components/{p-BHjezpAC.js → p-irA7XFIS.js} +1 -1
  166. package/dist/components/{p-Bth2l1cy.js → p-rayWyWtG.js} +1 -1
  167. package/dist/components/{p-CSr33M9s.js → p-sLMSwbXi.js} +1 -1
  168. package/dist/components/p-vj3gimgB.js +1 -0
  169. package/dist/components/sd-action-modal.js +1 -1
  170. package/dist/components/sd-badge.js +1 -1
  171. package/dist/components/sd-barcode-input.js +1 -1
  172. package/dist/components/sd-button.js +1 -1
  173. package/dist/components/sd-calendar.js +1 -1
  174. package/dist/components/sd-callout.js +1 -1
  175. package/dist/components/sd-card.js +1 -1
  176. package/dist/components/sd-checkbox.js +1 -1
  177. package/dist/components/sd-chip-input.js +1 -1
  178. package/dist/components/sd-chip.js +1 -1
  179. package/dist/components/sd-circle-progress.js +1 -1
  180. package/dist/components/sd-confirm-modal.js +1 -1
  181. package/dist/components/sd-date-box.js +1 -1
  182. package/dist/components/sd-date-picker-trigger.js +1 -1
  183. package/dist/components/sd-date-picker.js +1 -1
  184. package/dist/components/sd-date-range-picker-calendar.js +1 -1
  185. package/dist/components/sd-date-range-picker.js +1 -1
  186. package/dist/components/sd-divider.js +1 -1
  187. package/dist/components/sd-dropdown-button.js +1 -1
  188. package/dist/components/sd-field.js +1 -1
  189. package/dist/components/sd-file-picker.js +1 -1
  190. package/dist/components/sd-floating-portal.js +1 -1
  191. package/dist/components/sd-form.js +1 -1
  192. package/dist/components/sd-ghost-button.js +1 -1
  193. package/dist/components/sd-guide.js +1 -1
  194. package/dist/components/sd-icon.js +1 -1
  195. package/dist/components/sd-input.js +1 -1
  196. package/dist/components/sd-key-value-table.js +1 -1
  197. package/dist/components/sd-linear-progress.js +1 -1
  198. package/dist/components/sd-loading-container.js +1 -1
  199. package/dist/components/sd-loading-modal.js +1 -1
  200. package/dist/components/sd-modal-container.js +1 -1
  201. package/dist/components/sd-number-input.js +1 -1
  202. package/dist/components/sd-pagination.js +1 -1
  203. package/dist/components/sd-popover.js +1 -1
  204. package/dist/components/sd-popup.js +1 -1
  205. package/dist/components/sd-portal.js +1 -1
  206. package/dist/components/sd-radio-button.js +1 -1
  207. package/dist/components/sd-radio-group.js +1 -1
  208. package/dist/components/sd-radio.js +1 -1
  209. package/dist/components/sd-scroll-area.d.ts +11 -0
  210. package/dist/components/sd-scroll-area.js +1 -0
  211. package/dist/components/sd-select-list-item-search.js +1 -1
  212. package/dist/components/sd-select-list-item.js +1 -1
  213. package/dist/components/sd-select-listbox.js +1 -1
  214. package/dist/components/sd-select-trigger.js +1 -1
  215. package/dist/components/sd-select.js +1 -1
  216. package/dist/components/sd-stepper.d.ts +11 -0
  217. package/dist/components/sd-stepper.js +1 -0
  218. package/dist/components/sd-switch.js +1 -1
  219. package/dist/components/sd-tabs.js +1 -1
  220. package/dist/components/sd-tag.js +1 -1
  221. package/dist/components/sd-text-link.js +1 -1
  222. package/dist/components/sd-textarea.js +1 -1
  223. package/dist/components/sd-time-picker-selector.d.ts +11 -0
  224. package/dist/components/sd-time-picker-selector.js +1 -0
  225. package/dist/components/sd-time-picker-trigger.d.ts +11 -0
  226. package/dist/components/sd-time-picker-trigger.js +1 -0
  227. package/dist/components/sd-time-picker.d.ts +11 -0
  228. package/dist/components/sd-time-picker.js +1 -0
  229. package/dist/components/sd-time-range-picker-selector.d.ts +11 -0
  230. package/dist/components/sd-time-range-picker-selector.js +1 -0
  231. package/dist/components/sd-time-range-picker.d.ts +11 -0
  232. package/dist/components/sd-time-range-picker.js +1 -0
  233. package/dist/components/sd-toast-container.js +1 -1
  234. package/dist/components/sd-toast.js +1 -1
  235. package/dist/components/sd-toggle.js +1 -1
  236. package/dist/components/sd-tooltip.js +1 -1
  237. package/dist/design-system/design-system.css +1 -1
  238. package/dist/design-system/design-system.esm.js +1 -1
  239. package/dist/design-system/{p-840006b1.entry.js → p-0cdd05eb.entry.js} +1 -1
  240. package/dist/design-system/p-1c4ba7ae.entry.js +1 -0
  241. package/dist/design-system/{p-c7d2c195.entry.js → p-2a36028d.entry.js} +1 -1
  242. package/dist/design-system/{p-be54fd3a.entry.js → p-2e76157e.entry.js} +1 -1
  243. package/dist/design-system/p-336cb0c1.entry.js +1 -0
  244. package/dist/design-system/{p-26a27312.entry.js → p-34e8dda6.entry.js} +1 -1
  245. package/dist/design-system/p-370b820e.entry.js +1 -0
  246. package/dist/design-system/{p-c5cffcc6.entry.js → p-39db3098.entry.js} +1 -1
  247. package/dist/design-system/p-3a2be559.entry.js +1 -0
  248. package/dist/design-system/p-405cb160.entry.js +1 -0
  249. package/dist/design-system/{p-246aafb9.entry.js → p-456479cc.entry.js} +1 -1
  250. package/dist/design-system/{p-86329ae3.entry.js → p-4d845113.entry.js} +1 -1
  251. package/dist/design-system/p-5761352f.entry.js +1 -0
  252. package/dist/design-system/{p-3cd2751a.entry.js → p-5b725381.entry.js} +1 -1
  253. package/dist/design-system/p-5d7820f7.entry.js +1 -0
  254. package/dist/design-system/p-5dd631fe.entry.js +1 -0
  255. package/dist/design-system/p-66e3fba3.entry.js +1 -0
  256. package/dist/design-system/{p-c1066f40.entry.js → p-6a5540d8.entry.js} +1 -1
  257. package/dist/design-system/{p-55c0be7d.entry.js → p-703bb49a.entry.js} +1 -1
  258. package/dist/design-system/{p-0c1d1a15.entry.js → p-71e7031e.entry.js} +1 -1
  259. package/dist/design-system/p-7837f8f8.entry.js +1 -0
  260. package/dist/design-system/{p-5a257ed9.entry.js → p-814ae5f1.entry.js} +1 -1
  261. package/dist/design-system/p-8804e3f3.entry.js +1 -0
  262. package/dist/design-system/p-8ea038d7.entry.js +1 -0
  263. package/dist/design-system/{p-b585f94b.entry.js → p-937a30af.entry.js} +1 -1
  264. package/dist/design-system/{p-1ed1bfa1.entry.js → p-94d4c093.entry.js} +1 -1
  265. package/dist/design-system/p-97a059b0.entry.js +1 -0
  266. package/dist/design-system/{p-53fe2741.entry.js → p-9afada52.entry.js} +1 -1
  267. package/dist/design-system/{p-d2ce01ac.entry.js → p-9df0dd32.entry.js} +1 -1
  268. package/dist/design-system/{p-BPKiBSGr.js → p-BnUjeY2n.js} +1 -1
  269. package/dist/design-system/p-CHijmX_D.js +1 -0
  270. package/dist/design-system/p-CdvQqvIe.js +2 -0
  271. package/dist/design-system/p-DMm_GeZC.js +1 -0
  272. package/dist/design-system/p-Dz23PPdF.js +1 -0
  273. package/dist/design-system/{p-3595cafb.entry.js → p-a05f4888.entry.js} +1 -1
  274. package/dist/design-system/p-a81e4ae0.entry.js +1 -0
  275. package/dist/design-system/p-aaa551fa.entry.js +1 -0
  276. package/dist/design-system/p-adc218f5.entry.js +1 -0
  277. package/dist/design-system/{p-8ed1d470.entry.js → p-b7e913e7.entry.js} +1 -1
  278. package/dist/design-system/p-b90eaebd.entry.js +1 -0
  279. package/dist/design-system/{p-d9f33192.entry.js → p-c5263a22.entry.js} +1 -1
  280. package/dist/design-system/{p-ec4ad48c.entry.js → p-c5eea64c.entry.js} +1 -1
  281. package/dist/design-system/{p-02f0b906.entry.js → p-c906d22d.entry.js} +1 -1
  282. package/dist/design-system/{p-d204cac5.entry.js → p-defe65db.entry.js} +1 -1
  283. package/dist/design-system/{p-4c85f6f6.entry.js → p-e16725f7.entry.js} +1 -1
  284. package/dist/design-system/p-e4096b72.entry.js +1 -0
  285. package/dist/design-system/{p-8de3b502.entry.js → p-e72706ea.entry.js} +1 -1
  286. package/dist/design-system/p-fb01f963.entry.js +1 -0
  287. package/dist/design-system/{p-adf2f398.entry.js → p-fc9577d9.entry.js} +1 -1
  288. package/dist/design-system/{p-Bth2l1cy.js → p-rayWyWtG.js} +1 -1
  289. package/dist/esm/design-system.js +3 -3
  290. package/dist/esm/{index-Dz490Ukt.js → index-CdvQqvIe.js} +1 -1
  291. package/dist/esm/loader.js +3 -3
  292. package/dist/esm/sd-action-modal.entry.js +2 -2
  293. package/dist/esm/sd-badge.entry.js +2 -2
  294. package/dist/esm/sd-barcode-input.entry.js +2 -2
  295. package/dist/esm/sd-button_2.entry.js +3 -3
  296. package/dist/esm/sd-calendar_2.entry.js +8 -9
  297. package/dist/esm/sd-callout.entry.js +2 -2
  298. package/dist/esm/sd-card.entry.js +2 -2
  299. package/dist/esm/sd-checkbox.entry.js +5 -5
  300. package/dist/esm/sd-chip-input.entry.js +22 -17
  301. package/dist/esm/sd-chip.entry.js +7 -7
  302. package/dist/esm/sd-circle-progress.entry.js +3 -3
  303. package/dist/esm/sd-confirm-modal_2.entry.js +3 -3
  304. package/dist/esm/sd-date-box.entry.js +1 -1
  305. package/dist/esm/{component.datepicker-BOxGhKKP.js → sd-date-picker.config-CdXJcOGr.js} +65 -2
  306. package/dist/esm/sd-date-picker_8.entry.js +141 -51
  307. package/dist/esm/sd-date-range-picker-calendar.entry.js +158 -8
  308. package/dist/esm/sd-divider.entry.js +3 -3
  309. package/dist/esm/sd-dropdown-button.entry.js +2 -2
  310. package/dist/esm/sd-field_3.entry.js +51 -52
  311. package/dist/esm/sd-form.entry.js +1 -1
  312. package/dist/esm/sd-ghost-button_3.entry.js +14 -10
  313. package/dist/esm/sd-guide.entry.js +2 -2
  314. package/dist/esm/sd-key-value-table.entry.js +2 -2
  315. package/dist/esm/sd-linear-progress.entry.js +3 -3
  316. package/dist/esm/sd-loading-container.entry.js +3 -3
  317. package/dist/esm/sd-modal-container.entry.js +1 -1
  318. package/dist/esm/sd-pagination.entry.js +4 -4
  319. package/dist/esm/sd-popover.entry.js +134 -44
  320. package/dist/esm/sd-popup.entry.js +4 -4
  321. package/dist/esm/sd-radio-button.entry.js +3 -3
  322. package/dist/esm/sd-radio.entry.js +4 -2
  323. package/dist/esm/sd-scroll-area.entry.js +42 -0
  324. package/dist/esm/sd-select-list-item_4.entry.js +12 -12
  325. package/dist/esm/sd-stepper.entry.js +188 -0
  326. package/dist/esm/sd-switch.entry.js +13 -3
  327. package/dist/esm/sd-tabs.entry.js +2 -2
  328. package/dist/esm/sd-text-link.entry.js +4 -4
  329. package/dist/esm/sd-time-picker-selector.entry.js +177 -0
  330. package/dist/esm/sd-time-picker-trigger.entry.js +73 -0
  331. package/dist/esm/sd-time-picker.config-DUq29Nhs.js +148 -0
  332. package/dist/esm/sd-time-picker.entry.js +171 -0
  333. package/dist/esm/sd-time-range-picker-selector.entry.js +217 -0
  334. package/dist/esm/sd-time-range-picker.entry.js +202 -0
  335. package/dist/esm/sd-toast-container.entry.js +2 -2
  336. package/dist/esm/sd-toast.entry.js +3 -3
  337. package/dist/esm/sd-toggle.entry.js +2 -2
  338. package/dist/esm/{system-Bth2l1cy.js → system-rayWyWtG.js} +3 -1
  339. package/dist/esm/{tooltipArrow-CEHVt90h.js → tooltipArrow-BsQ__AbZ.js} +1 -1
  340. package/dist/esm/{useDatePicker-BG0lUGJG.js → useDatePicker-DQ5Kyy_D.js} +1 -1
  341. package/dist/types/components/sd-checkbox/sd-checkbox.d.ts +2 -2
  342. package/dist/types/components/sd-chip/sd-chip.d.ts +3 -3
  343. package/dist/types/components/sd-chip-input/sd-chip-input.d.ts +4 -2
  344. package/dist/types/components/sd-date-picker/sd-date-picker.d.ts +2 -0
  345. package/dist/types/components/sd-date-range-picker/sd-date-range-picker-calendar/sd-date-range-picker-calendar.d.ts +20 -0
  346. package/dist/types/components/sd-date-range-picker/sd-date-range-picker.config.d.ts +25 -0
  347. package/dist/types/components/sd-date-range-picker/sd-date-range-picker.d.ts +9 -0
  348. package/dist/types/components/sd-field/sd-field.d.ts +7 -0
  349. package/dist/types/components/sd-file-picker/sd-file-picker.config.d.ts +28 -0
  350. package/dist/types/components/sd-file-picker/sd-file-picker.d.ts +3 -1
  351. package/dist/types/components/sd-ghost-button/sd-ghost-button.d.ts +5 -0
  352. package/dist/types/components/sd-input/sd-input.d.ts +1 -1
  353. package/dist/types/components/sd-number-input/sd-number-input.d.ts +8 -0
  354. package/dist/types/components/sd-popover/sd-popover.config.d.ts +22 -0
  355. package/dist/types/components/sd-popover/sd-popover.d.ts +29 -36
  356. package/dist/types/components/sd-radio/sd-radio.d.ts +3 -1
  357. package/dist/types/components/sd-radio-button/sd-radio-button.d.ts +2 -2
  358. package/dist/types/components/sd-radio-group/sd-radio-group.d.ts +2 -2
  359. package/dist/types/components/sd-scroll-area/sd-scroll-area.config.d.ts +5 -0
  360. package/dist/types/components/sd-scroll-area/sd-scroll-area.d.ts +14 -0
  361. package/dist/types/components/sd-stepper/sd-stepper.config.d.ts +43 -0
  362. package/dist/types/components/sd-stepper/sd-stepper.d.ts +18 -0
  363. package/dist/types/components/sd-switch/sd-switch.d.ts +8 -1
  364. package/dist/types/components/sd-tag/sd-tag.d.ts +2 -2
  365. package/dist/types/components/sd-time-picker/sd-time-picker-selector/sd-time-picker-selector.d.ts +35 -0
  366. package/dist/types/components/sd-time-picker/sd-time-picker-trigger/sd-time-picker-trigger.d.ts +21 -0
  367. package/dist/types/components/sd-time-picker/sd-time-picker.config.d.ts +71 -0
  368. package/dist/types/components/sd-time-picker/sd-time-picker.d.ts +84 -0
  369. package/dist/types/components/sd-time-range-picker/sd-time-range-picker-selector/sd-time-range-picker-selector.d.ts +40 -0
  370. package/dist/types/components/sd-time-range-picker/sd-time-range-picker.config.d.ts +9 -0
  371. package/dist/types/components/sd-time-range-picker/sd-time-range-picker.d.ts +88 -0
  372. package/dist/types/components/sd-tooltip/sd-tooltip.d.ts +7 -22
  373. package/dist/types/components.d.ts +2630 -1611
  374. package/hydrate/index.js +2163 -436
  375. package/hydrate/index.mjs +2163 -436
  376. package/package.json +1 -1
  377. package/dist/cjs/sd-date-picker.config-Chrd8c4v.js +0 -41
  378. package/dist/cjs/useDatePicker-CgpIfwLA.js +0 -103
  379. package/dist/components/p-BFVfSW9t.js +0 -1
  380. package/dist/components/p-BKu0I6Io.js +0 -1
  381. package/dist/components/p-B_Zwr4Et.js +0 -1
  382. package/dist/components/p-CBoDoYDO.js +0 -1
  383. package/dist/components/p-CYMMLsGt.js +0 -1
  384. package/dist/components/p-C_SG4M4z.js +0 -1
  385. package/dist/components/p-CgSXYw_0.js +0 -1
  386. package/dist/components/p-CmRF12Fy.js +0 -1
  387. package/dist/components/p-CnRfET5y.js +0 -1
  388. package/dist/components/p-Cvsrc0be.js +0 -1
  389. package/dist/components/p-DJ8z7_EG.js +0 -1
  390. package/dist/components/p-DJmxpVkK.js +0 -1
  391. package/dist/components/p-DN7MAx-q.js +0 -1
  392. package/dist/components/p-DS6NVBvu.js +0 -1
  393. package/dist/components/p-D_56BjcD.js +0 -1
  394. package/dist/components/p-Uh9emYrV.js +0 -1
  395. package/dist/components/p-f0aBxUBG.js +0 -1
  396. package/dist/design-system/p-0e014b76.entry.js +0 -1
  397. package/dist/design-system/p-1b5fcf7b.entry.js +0 -1
  398. package/dist/design-system/p-2a4d2ee0.entry.js +0 -1
  399. package/dist/design-system/p-2d6a7d7b.entry.js +0 -1
  400. package/dist/design-system/p-4b474538.entry.js +0 -1
  401. package/dist/design-system/p-BOxGhKKP.js +0 -1
  402. package/dist/design-system/p-BhcvMs8c.js +0 -1
  403. package/dist/design-system/p-Dz490Ukt.js +0 -2
  404. package/dist/design-system/p-a631cd78.entry.js +0 -1
  405. package/dist/design-system/p-cb6ab65c.entry.js +0 -1
  406. package/dist/design-system/p-d51f4170.entry.js +0 -1
  407. package/dist/design-system/p-e7740a5f.entry.js +0 -1
  408. package/dist/design-system/p-e85bf462.entry.js +0 -1
  409. package/dist/design-system/p-ea008087.entry.js +0 -1
  410. package/dist/design-system/p-f962e5d2.entry.js +0 -1
  411. package/dist/esm/sd-date-picker.config-krRuSUsA.js +0 -38
@@ -0,0 +1,173 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-Cg7X15Hq.js');
4
+ var index$1 = require('./index-BUvXpPc3.js');
5
+ var sdTimePicker_config = require('./sd-time-picker.config-C7REB08L.js');
6
+ require('./component.field-C7it8cZm.js');
7
+
8
+ const sdTimePickerCss = () => `sd-time-picker{display:inline-flex}sd-time-picker sd-portal{display:none}sd-time-picker .sd-time-picker{position:relative;min-width:var(--sd-time-picker-min-width);width:100%;height:100%}`;
9
+
10
+ const SdTimePicker = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ this.update = index.createEvent(this, "sdUpdate", 7);
14
+ this.dropDownShow = index.createEvent(this, "sdDropDownShow", 7);
15
+ }
16
+ static CLOSE_ANIMATION_DURATION = 150;
17
+ get el() { return index.getElement(this); }
18
+ /** 선택된 시간 (HH:mm) */
19
+ value = null;
20
+ /** 입력 필드 크기 */
21
+ size = 'sm';
22
+ /** 표시 타입: default(24시간) / midday(오전·오후) */
23
+ type = 'default';
24
+ /** 시간 미선택 시 표시할 placeholder */
25
+ placeholder = '00:00';
26
+ /** 비활성 상태 여부 */
27
+ disabled = false;
28
+ /** 값이 있을 때 지우기 버튼 표시 여부 */
29
+ clearable = false;
30
+ /** 오전/오후 선택 표시 여부. 지정하지 않으면 type="midday"일 때만 켜집니다. */
31
+ useMeridiem;
32
+ /** 분 증감 단위 */
33
+ minuteStep = 1;
34
+ /** 필드 너비 (숫자면 px, 문자열이면 그대로 적용) */
35
+ width = '';
36
+ // sd-field 공통 props
37
+ /** 레이블 텍스트 */
38
+ label = '';
39
+ /** 레이블 너비 */
40
+ labelWidth = '';
41
+ /** 필드 우측 어드온 레이블 */
42
+ addonLabel = '';
43
+ /** 어드온 정렬 방향 */
44
+ addonAlign = 'start';
45
+ /** 필드 하단 힌트 텍스트 */
46
+ hint = '';
47
+ /** 에러 메시지 */
48
+ errorMessage = '';
49
+ /** 유효성 검사 규칙 목록 */
50
+ rules = [];
51
+ /** 에러 상태 여부 */
52
+ error = false;
53
+ /** 필드 상태 (없으면 error/rules 결과로 자동 결정) */
54
+ status;
55
+ /** 레이블 영역 아이콘 */
56
+ icon = undefined;
57
+ /** 레이블 툴팁 텍스트 */
58
+ labelTooltip = '';
59
+ /** 레이블 툴팁 상세 옵션 */
60
+ labelTooltipProps = null;
61
+ isOpen = false;
62
+ isAnimatingOut = false;
63
+ focused = false;
64
+ hovered = false;
65
+ /** 시간 선택 시 선택된 시간(HH:mm)을 전달합니다. */
66
+ update;
67
+ /** 선택기 열림/닫힘 상태가 바뀔 때 발생합니다. */
68
+ dropDownShow;
69
+ triggerRef;
70
+ formField;
71
+ closeAnimationTimer;
72
+ /** 폼 연동용 name 속성 */
73
+ name = index$1.nanoid();
74
+ watchIsOpen(newValue) {
75
+ this.focused = newValue;
76
+ this.dropDownShow.emit({ isOpen: newValue });
77
+ }
78
+ valueChanged(newValue) {
79
+ if (newValue == null || newValue === '')
80
+ return;
81
+ const parsed = sdTimePicker_config.parseTimeValue(newValue);
82
+ const normalized = sdTimePicker_config.formatTimeValue(parsed.hour, parsed.minute);
83
+ if (normalized !== newValue)
84
+ this.value = normalized;
85
+ }
86
+ /** 유효성 검사를 실행합니다. */
87
+ async sdValidate() {
88
+ return this.formField?.sdValidate();
89
+ }
90
+ /** 값과 유효성 상태를 초기화합니다. */
91
+ async sdReset() {
92
+ return this.formField?.sdReset();
93
+ }
94
+ /** 유효성 상태만 초기화합니다. */
95
+ async sdResetValidate() {
96
+ return this.formField?.sdResetValidation();
97
+ }
98
+ /** 입력 필드에 포커스를 이동합니다. */
99
+ async sdFocus() {
100
+ return this.formField?.sdFocus();
101
+ }
102
+ componentWillLoad() {
103
+ this.valueChanged(this.value);
104
+ }
105
+ disconnectedCallback() {
106
+ if (this.closeAnimationTimer)
107
+ clearTimeout(this.closeAnimationTimer);
108
+ }
109
+ closeDropdown() {
110
+ if (!this.isOpen)
111
+ return;
112
+ this.isOpen = false;
113
+ this.isAnimatingOut = true;
114
+ if (this.closeAnimationTimer)
115
+ clearTimeout(this.closeAnimationTimer);
116
+ this.closeAnimationTimer = setTimeout(() => {
117
+ this.isAnimatingOut = false;
118
+ }, SdTimePicker.CLOSE_ANIMATION_DURATION);
119
+ }
120
+ handleTriggerClick = () => {
121
+ if (this.disabled)
122
+ return;
123
+ if (this.isOpen) {
124
+ this.closeDropdown();
125
+ }
126
+ else {
127
+ if (this.closeAnimationTimer)
128
+ clearTimeout(this.closeAnimationTimer);
129
+ this.isAnimatingOut = false;
130
+ this.isOpen = true;
131
+ }
132
+ };
133
+ handleClear = (event) => {
134
+ event.stopPropagation();
135
+ this.value = null;
136
+ this.update.emit(null);
137
+ };
138
+ handleSelect = (event) => {
139
+ event.stopPropagation();
140
+ this.value = event.detail;
141
+ this.update.emit(this.value);
142
+ };
143
+ get effectiveUseMeridiem() {
144
+ return this.useMeridiem ?? this.type === 'midday';
145
+ }
146
+ render() {
147
+ const sizeTokens = sdTimePicker_config.TIMEPICKER_SIZE_MAP[this.size] ?? sdTimePicker_config.TIMEPICKER_SIZE_MAP.sm;
148
+ const cssVars = {
149
+ '--sd-system-size-field-sm-height': `${sizeTokens.height}px`,
150
+ '--sd-system-size-field-md-height': `${sizeTokens.height}px`,
151
+ '--sd-system-radius-field-sm': `${sizeTokens.radius}px`,
152
+ '--sd-system-radius-field-md': `${sizeTokens.radius}px`,
153
+ '--sd-time-picker-min-width': `${sizeTokens.minWidth}px`,
154
+ '--sd-system-color-field-border-default': sdTimePicker_config.TIMEPICKER_COLORS.border.default,
155
+ '--sd-system-color-field-border-focus': sdTimePicker_config.TIMEPICKER_COLORS.border.focus,
156
+ '--sd-system-color-field-bg-default': sdTimePicker_config.TIMEPICKER_COLORS.bg.default,
157
+ };
158
+ return (index.h("sd-field", { key: '77b2d4c36e19481ccb6a3d0cef288fe9eb902330', 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 }, index.h("div", { key: '2d25872f4d1253faf85384030de21ef283e0696d', class: "sd-time-picker", ref: el => {
159
+ this.triggerRef = el;
160
+ } }, index.h("sd-time-picker-trigger", { key: 'fe4a4611216642bcee5632c2202dec0058cc6898', displayText: sdTimePicker_config.formatTimeDisplay(this.value, this.effectiveUseMeridiem ? 'midday' : 'default'), placeholder: this.placeholder, disabled: this.disabled, clearable: this.clearable, size: this.size, onSdTriggerClick: this.handleTriggerClick, onSdClear: this.handleClear })), (this.isOpen || this.isAnimatingOut) && (index.h("sd-portal", { key: 'd2f921b2eee8d3cc33c52c6eb06f24188f18a78a', open: this.isOpen, parentRef: this.triggerRef, onSdClose: () => this.closeDropdown() }, index.h("sd-time-picker-selector", { key: 'd53c348ef16a1ddac731a49d0aafe64931007d32', value: this.value, useMeridiem: this.effectiveUseMeridiem, minuteStep: this.minuteStep, onSdUpdate: this.handleSelect })))));
161
+ }
162
+ static get watchers() { return {
163
+ "isOpen": [{
164
+ "watchIsOpen": 0
165
+ }],
166
+ "value": [{
167
+ "valueChanged": 0
168
+ }]
169
+ }; }
170
+ };
171
+ SdTimePicker.style = sdTimePickerCss();
172
+
173
+ exports.sd_time_picker = SdTimePicker;
@@ -0,0 +1,156 @@
1
+ 'use strict';
2
+
3
+ var component_field = require('./component.field-C7it8cZm.js');
4
+
5
+ const timepicker = {
6
+ border: {
7
+ "default": "#AAAAAA",
8
+ focus: "#0075FF",
9
+ width: "1"
10
+ },
11
+ bg: {
12
+ "default": "#FFFFFF",
13
+ disabled: "#E1E1E1"
14
+ },
15
+ icon: {
16
+ "default": "#888888",
17
+ disabled: "#BBBBBB"
18
+ },
19
+ text: {
20
+ "default": "#222222",
21
+ disabled: "#888888"
22
+ },
23
+ selector: {
24
+ bg: "#FFFFFF",
25
+ range: {
26
+ heading: {
27
+ color: "#555555",
28
+ gap: "16"
29
+ },
30
+ paddingXY: "24",
31
+ panelGap: "24",
32
+ section: {
33
+ gap: "12"
34
+ }
35
+ },
36
+ radius: "8",
37
+ section: {
38
+ paddingX: "16",
39
+ paddingY: "12"
40
+ },
41
+ time: {
42
+ gap: "4",
43
+ column: {
44
+ gap: "8"
45
+ }
46
+ },
47
+ input: {
48
+ width: "40"
49
+ },
50
+ colon: {
51
+ size: "16"
52
+ }
53
+ },
54
+ sm: {
55
+ height: "28",
56
+ paddingX: "12",
57
+ gap: "8",
58
+ icon: "16",
59
+ radius: "4"
60
+ },
61
+ md: {
62
+ height: "36",
63
+ paddingX: "16",
64
+ gap: "12",
65
+ icon: "20",
66
+ radius: "6"
67
+ }
68
+ };
69
+ var timepickerTokens = {
70
+ timepicker: timepicker
71
+ };
72
+
73
+ const sm = timepickerTokens.timepicker.sm;
74
+ const md = timepickerTokens.timepicker.md;
75
+ const TIMEPICKER_SIZE_MAP = {
76
+ sm: {
77
+ height: sm.height,
78
+ paddingX: sm.paddingX,
79
+ gap: sm.gap,
80
+ iconSize: sm.icon,
81
+ radius: sm.radius,
82
+ // TODO: component.timepicker 토큰에 typography가 추가되면 이 fallback을 교체한다.
83
+ fontSize: '12',
84
+ lineHeight: '20',
85
+ fontWeight: '400',
86
+ minWidth: '128',
87
+ },
88
+ md: {
89
+ height: md.height,
90
+ paddingX: md.paddingX,
91
+ gap: md.gap,
92
+ iconSize: md.icon,
93
+ radius: md.radius,
94
+ // TODO: component.timepicker 토큰에 typography가 추가되면 이 fallback을 교체한다.
95
+ fontSize: '14',
96
+ lineHeight: '24',
97
+ fontWeight: '400',
98
+ minWidth: '160',
99
+ },
100
+ };
101
+ const TIMEPICKER_COLORS = {
102
+ border: timepickerTokens.timepicker.border,
103
+ bg: timepickerTokens.timepicker.bg,
104
+ icon: timepickerTokens.timepicker.icon,
105
+ text: {
106
+ ...timepickerTokens.timepicker.text,
107
+ hint: component_field.fieldTokens.field.hint.color,
108
+ },
109
+ };
110
+ const TIMEPICKER_SELECTOR = {
111
+ bg: timepickerTokens.timepicker.selector.bg,
112
+ radius: timepickerTokens.timepicker.selector.radius,
113
+ section: timepickerTokens.timepicker.selector.section,
114
+ time: timepickerTokens.timepicker.selector.time,
115
+ inputWidth: timepickerTokens.timepicker.selector.input.width,
116
+ colonSize: timepickerTokens.timepicker.selector.colon.size,
117
+ range: timepickerTokens.timepicker.selector.range,
118
+ };
119
+ function clampTimePart(value, min, max) {
120
+ if (!Number.isFinite(value))
121
+ return min;
122
+ return Math.min(Math.max(value, min), max);
123
+ }
124
+ function padTimePart(value) {
125
+ return String(value).padStart(2, '0');
126
+ }
127
+ function parseTimeValue(value) {
128
+ const match = /^(\d{1,2}):(\d{1,2})$/.exec(value ?? '');
129
+ if (!match)
130
+ return { hour: 0, minute: 0 };
131
+ return {
132
+ hour: clampTimePart(Number(match[1]), 0, 23),
133
+ minute: clampTimePart(Number(match[2]), 0, 59),
134
+ };
135
+ }
136
+ function formatTimeValue(hour, minute) {
137
+ return `${padTimePart(clampTimePart(hour, 0, 23))}:${padTimePart(clampTimePart(minute, 0, 59))}`;
138
+ }
139
+ function formatTimeDisplay(value, type) {
140
+ if (value == null || value === '')
141
+ return '';
142
+ const { hour, minute } = parseTimeValue(value);
143
+ if (type === 'default')
144
+ return formatTimeValue(hour, minute);
145
+ const meridiem = hour >= 12 ? '오후' : '오전';
146
+ const displayHour = hour % 12 === 0 ? 12 : hour % 12;
147
+ return `${meridiem} ${padTimePart(displayHour)}:${padTimePart(minute)}`;
148
+ }
149
+
150
+ exports.TIMEPICKER_COLORS = TIMEPICKER_COLORS;
151
+ exports.TIMEPICKER_SELECTOR = TIMEPICKER_SELECTOR;
152
+ exports.TIMEPICKER_SIZE_MAP = TIMEPICKER_SIZE_MAP;
153
+ exports.clampTimePart = clampTimePart;
154
+ exports.formatTimeDisplay = formatTimeDisplay;
155
+ exports.formatTimeValue = formatTimeValue;
156
+ exports.parseTimeValue = parseTimeValue;
@@ -0,0 +1,219 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-Cg7X15Hq.js');
4
+ var sdTimePicker_config = require('./sd-time-picker.config-C7REB08L.js');
5
+ require('./component.field-C7it8cZm.js');
6
+
7
+ 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}`;
8
+
9
+ const SdTimeRangePickerSelector = class {
10
+ constructor(hostRef) {
11
+ index.registerInstance(this, hostRef);
12
+ this.update = index.createEvent(this, "sdUpdate", 7);
13
+ }
14
+ /** 선택된 시간 범위 [시작, 종료] (HH:mm) */
15
+ value = null;
16
+ /** 오전/오후 선택 표시 여부 */
17
+ useMeridiem = false;
18
+ /** 분 증감 단위 */
19
+ minuteStep = 1;
20
+ /** 범위 순서 정책. strict는 시작 시간이 종료 시간보다 늦어지지 않도록 보정합니다. */
21
+ rangeOrder = 'strict';
22
+ /** 시간 범위 변경 시 발생합니다. */
23
+ update;
24
+ editingKey = null;
25
+ inputDraft = {};
26
+ autoAdjusted = null;
27
+ getRange() {
28
+ return this.value ?? ['00:00', '23:59'];
29
+ }
30
+ getParts(side) {
31
+ const [start, end] = this.getRange();
32
+ return sdTimePicker_config.parseTimeValue(side === 'start' ? start : end);
33
+ }
34
+ getMeridiem(side) {
35
+ return this.getParts(side).hour >= 12 ? 'PM' : 'AM';
36
+ }
37
+ getDisplayHour(side) {
38
+ const { hour } = this.getParts(side);
39
+ if (!this.useMeridiem)
40
+ return hour;
41
+ const displayHour = hour % 12;
42
+ return displayHour === 0 ? 12 : displayHour;
43
+ }
44
+ emitSide(side, hour, minute, direction = 'unknown') {
45
+ const [start, end] = this.getRange();
46
+ const next = sdTimePicker_config.formatTimeValue(hour, minute);
47
+ this.update.emit(this.normalizeNextRange(side === 'start' ? [next, end] : [start, next], side, direction));
48
+ }
49
+ getTimeMinutes(value) {
50
+ const { hour, minute } = sdTimePicker_config.parseTimeValue(value);
51
+ return hour * 60 + minute;
52
+ }
53
+ normalizeNextRange(range, changedSide, direction) {
54
+ if (this.rangeOrder === 'allow-cross-day')
55
+ return range;
56
+ const [start, end] = range;
57
+ const [currentStart, currentEnd] = this.getRange();
58
+ if (this.getTimeMinutes(start) <= this.getTimeMinutes(end)) {
59
+ const shouldKeepSynced = this.autoAdjusted?.side === changedSide &&
60
+ currentStart === currentEnd &&
61
+ start !== end &&
62
+ (direction === 'unknown' || this.autoAdjusted.direction === direction);
63
+ if (shouldKeepSynced) {
64
+ return changedSide === 'start' ? [start, start] : [end, end];
65
+ }
66
+ this.autoAdjusted = null;
67
+ return range;
68
+ }
69
+ this.autoAdjusted = {
70
+ side: changedSide,
71
+ direction: changedSide === 'start' ? 'increase' : 'decrease',
72
+ };
73
+ return changedSide === 'start' ? [start, start] : [end, end];
74
+ }
75
+ getEditingKey(side, part) {
76
+ return `${side}-${part}`;
77
+ }
78
+ sanitizeInput(value) {
79
+ return value.replace(/\D/g, '').slice(0, 2);
80
+ }
81
+ setDraft(key, value) {
82
+ this.inputDraft = { ...this.inputDraft, [key]: value };
83
+ }
84
+ beginEdit(side, part, value) {
85
+ const key = this.getEditingKey(side, part);
86
+ this.editingKey = key;
87
+ this.setDraft(key, String(value).padStart(2, '0'));
88
+ }
89
+ commitHourDraft(side, draft) {
90
+ const raw = sdTimePicker_config.clampTimePart(Number(draft), this.useMeridiem ? 1 : 0, this.useMeridiem ? 12 : 23);
91
+ const { minute } = this.getParts(side);
92
+ const meridiem = this.getMeridiem(side);
93
+ const nextHour = this.useMeridiem
94
+ ? meridiem === 'PM'
95
+ ? raw === 12
96
+ ? 12
97
+ : raw + 12
98
+ : raw === 12
99
+ ? 0
100
+ : raw
101
+ : raw;
102
+ this.emitSide(side, nextHour, minute);
103
+ return raw;
104
+ }
105
+ commitMinuteDraft(side, draft) {
106
+ const { hour } = this.getParts(side);
107
+ const nextMinute = sdTimePicker_config.clampTimePart(Number(draft), 0, 59);
108
+ this.emitSide(side, hour, nextMinute);
109
+ return nextMinute;
110
+ }
111
+ endEdit(side, part) {
112
+ const draft = this.inputDraft[this.getEditingKey(side, part)];
113
+ if (part === 'hour' && draft != null && draft !== '') {
114
+ this.commitHourDraft(side, draft);
115
+ }
116
+ if (part === 'minute' && draft != null && draft !== '') {
117
+ this.commitMinuteDraft(side, draft);
118
+ }
119
+ this.editingKey = null;
120
+ this.inputDraft = {};
121
+ }
122
+ setMeridiem(side, meridiem) {
123
+ const current = this.getMeridiem(side);
124
+ if (current === meridiem)
125
+ return;
126
+ const { hour, minute } = this.getParts(side);
127
+ this.emitSide(side, meridiem === 'AM' ? hour - 12 : hour + 12, minute);
128
+ }
129
+ changeHour(side, delta) {
130
+ const { hour, minute } = this.getParts(side);
131
+ this.emitSide(side, (hour + delta + 24) % 24, minute, delta > 0 ? 'increase' : 'decrease');
132
+ }
133
+ changeMinute(side, delta) {
134
+ const { hour, minute } = this.getParts(side);
135
+ const next = minute + delta;
136
+ if (next > 59) {
137
+ this.emitSide(side, (hour + 1) % 24, next - 60, delta > 0 ? 'increase' : 'decrease');
138
+ return;
139
+ }
140
+ if (next < 0) {
141
+ this.emitSide(side, (hour + 23) % 24, next + 60, delta > 0 ? 'increase' : 'decrease');
142
+ return;
143
+ }
144
+ this.emitSide(side, hour, next, delta > 0 ? 'increase' : 'decrease');
145
+ }
146
+ handleHourInput = (side, event) => {
147
+ const target = event.target;
148
+ const draft = this.sanitizeInput(target.value);
149
+ target.value = draft;
150
+ this.setDraft(this.getEditingKey(side, 'hour'), draft);
151
+ if (draft === '')
152
+ return;
153
+ if (draft.length < 2)
154
+ return;
155
+ const raw = this.commitHourDraft(side, draft);
156
+ const displayDraft = Number(draft) === raw ? draft : String(raw);
157
+ target.value = displayDraft;
158
+ this.setDraft(this.getEditingKey(side, 'hour'), displayDraft);
159
+ };
160
+ handleMinuteInput = (side, event) => {
161
+ const target = event.target;
162
+ const draft = this.sanitizeInput(target.value);
163
+ target.value = draft;
164
+ this.setDraft(this.getEditingKey(side, 'minute'), draft);
165
+ if (draft === '')
166
+ return;
167
+ if (draft.length < 2)
168
+ return;
169
+ const nextMinute = this.commitMinuteDraft(side, draft);
170
+ const displayDraft = Number(draft) === nextMinute ? draft : String(nextMinute);
171
+ target.value = displayDraft;
172
+ this.setDraft(this.getEditingKey(side, 'minute'), displayDraft);
173
+ };
174
+ renderMeridiemButton(side, label, meridiem, position) {
175
+ const selected = this.getMeridiem(side) === meridiem;
176
+ return (index.h("button", { type: "button", class: {
177
+ 'sd-time-range-picker-selector__meridiem-button': true,
178
+ 'sd-time-range-picker-selector__meridiem-button--selected': selected,
179
+ [`sd-time-range-picker-selector__meridiem-button--${position}`]: true,
180
+ }, onClick: () => this.setMeridiem(side, meridiem) }, label));
181
+ }
182
+ renderColumn(side, type) {
183
+ const isHour = type === 'hour';
184
+ const { minute } = this.getParts(side);
185
+ const value = isHour ? this.getDisplayHour(side) : minute;
186
+ const editingKey = this.getEditingKey(side, type);
187
+ const displayValue = this.editingKey === editingKey
188
+ ? (this.inputDraft[editingKey] ?? '')
189
+ : String(value).padStart(2, '0');
190
+ return (index.h("div", { class: "sd-time-range-picker-selector__column" }, index.h("sd-ghost-button", { icon: "chevronUp", size: "xs", ariaLabel: `${side === 'start' ? '시작' : '종료'} ${isHour ? '시' : '분'} 증가`, onSdClick: () => isHour ? this.changeHour(side, 1) : this.changeMinute(side, this.minuteStep) }), index.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 ? '시' : '분'}` }), index.h("sd-ghost-button", { icon: "chevronDown", size: "xs", ariaLabel: `${side === 'start' ? '시작' : '종료'} ${isHour ? '시' : '분'} 감소`, onSdClick: () => isHour ? this.changeHour(side, -1) : this.changeMinute(side, -this.minuteStep) })));
191
+ }
192
+ renderPanel(side, title) {
193
+ return (index.h("div", { class: "sd-time-range-picker-selector__panel" }, index.h("div", { class: "sd-time-range-picker-selector__heading" }, index.h("div", { class: "sd-time-range-picker-selector__heading-text" }, title), this.useMeridiem && (index.h("div", { class: "sd-time-range-picker-selector__meridiem-group" }, this.renderMeridiemButton(side, '오전', 'AM', 'first'), this.renderMeridiemButton(side, '오후', 'PM', 'end')))), index.h("div", { class: "sd-time-range-picker-selector__time" }, this.renderColumn(side, 'hour'), index.h("span", { class: "sd-time-range-picker-selector__colon" }, ":"), this.renderColumn(side, 'minute'))));
194
+ }
195
+ render() {
196
+ const cssVars = {
197
+ '--selector-bg': sdTimePicker_config.TIMEPICKER_SELECTOR.bg,
198
+ '--selector-radius': `${sdTimePicker_config.TIMEPICKER_SELECTOR.radius}px`,
199
+ '--selector-range-padding': `${sdTimePicker_config.TIMEPICKER_SELECTOR.range.paddingXY}px`,
200
+ '--selector-range-panel-gap': `${sdTimePicker_config.TIMEPICKER_SELECTOR.range.panelGap}px`,
201
+ '--selector-range-section-gap': `${sdTimePicker_config.TIMEPICKER_SELECTOR.range.section.gap}px`,
202
+ '--selector-range-heading-gap': `${sdTimePicker_config.TIMEPICKER_SELECTOR.range.heading.gap}px`,
203
+ '--selector-range-heading-color': sdTimePicker_config.TIMEPICKER_SELECTOR.range.heading.color,
204
+ '--selector-time-gap': `${sdTimePicker_config.TIMEPICKER_SELECTOR.time.gap}px`,
205
+ '--selector-time-column-gap': `${sdTimePicker_config.TIMEPICKER_SELECTOR.time.column.gap}px`,
206
+ '--selector-input-width': `${sdTimePicker_config.TIMEPICKER_SELECTOR.inputWidth}px`,
207
+ '--selector-colon-size': `${sdTimePicker_config.TIMEPICKER_SELECTOR.colonSize}px`,
208
+ '--selector-border-width': `${sdTimePicker_config.TIMEPICKER_COLORS.border.width}px`,
209
+ '--selector-border-default': sdTimePicker_config.TIMEPICKER_COLORS.border.default,
210
+ '--selector-border-focus': sdTimePicker_config.TIMEPICKER_COLORS.border.focus,
211
+ '--selector-bg-disabled': sdTimePicker_config.TIMEPICKER_COLORS.bg.disabled,
212
+ '--selector-text-default': sdTimePicker_config.TIMEPICKER_COLORS.text.default,
213
+ };
214
+ return (index.h("div", { key: 'd62a959d611bd9379c0f07cd29cea18cda66b1f6', class: "sd-time-range-picker-selector", style: cssVars }, this.renderPanel('start', '시작 시간'), index.h("div", { key: '23e668d0bae4a16fdc8af3be4a2c40bec2d7f1cd', class: "sd-time-range-picker-selector__divider" }), this.renderPanel('end', '종료 시간')));
215
+ }
216
+ };
217
+ SdTimeRangePickerSelector.style = sdTimeRangePickerSelectorCss();
218
+
219
+ exports.sd_time_range_picker_selector = SdTimeRangePickerSelector;