@prokodo/ui 0.1.14 → 1.0.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 (351) hide show
  1. package/LICENSE +187 -26
  2. package/NOTICE +24 -0
  3. package/README.md +32 -302
  4. package/dist/components/RTE/RTE.client.js +0 -1
  5. package/dist/components/RTE/RTE.css +180 -68
  6. package/dist/components/RTE/RTE.js +4 -1
  7. package/dist/components/RTE/RTE.module.css +180 -68
  8. package/dist/components/RTE/RTE.module.scss.js +10 -0
  9. package/dist/components/RTE/RTE.view.js +5 -1
  10. package/dist/components/accordion/Accordion.css +120 -67
  11. package/dist/components/accordion/Accordion.js +8 -2
  12. package/dist/components/accordion/Accordion.module.css +120 -67
  13. package/dist/components/accordion/Accordion.module.scss.js +12 -5
  14. package/dist/components/accordion/Accordion.view.js +4 -4
  15. package/dist/components/animated/Animated.client.js +13 -5
  16. package/dist/components/animated/Animated.js +8 -2
  17. package/dist/components/animatedText/AnimatedText.client.js +10 -2
  18. package/dist/components/animatedText/AnimatedText.js +8 -2
  19. package/dist/components/autocomplete/Autocomplete.client.js +5 -1
  20. package/dist/components/autocomplete/Autocomplete.css +111 -95
  21. package/dist/components/autocomplete/Autocomplete.js +4 -1
  22. package/dist/components/autocomplete/Autocomplete.module.css +111 -95
  23. package/dist/components/autocomplete/Autocomplete.module.scss.js +11 -4
  24. package/dist/components/autocomplete/Autocomplete.view.js +16 -5
  25. package/dist/components/avatar/Avatar.css +11 -8
  26. package/dist/components/avatar/Avatar.js +4 -1
  27. package/dist/components/avatar/Avatar.module.css +11 -8
  28. package/dist/components/avatar/Avatar.module.scss.js +1 -0
  29. package/dist/components/avatar/Avatar.view.js +22 -15
  30. package/dist/components/base-link/BaseLink.js +4 -1
  31. package/dist/components/base-link/BaseLink.view.js +3 -0
  32. package/dist/components/button/Button.client.js +12 -16
  33. package/dist/components/button/Button.css +85 -137
  34. package/dist/components/button/Button.js +4 -1
  35. package/dist/components/button/Button.module.css +85 -137
  36. package/dist/components/button/Button.module.scss.js +15 -19
  37. package/dist/components/button/Button.view.js +8 -2
  38. package/dist/components/calendly/Calendly.css +132 -0
  39. package/dist/components/calendly/Calendly.js +8 -2
  40. package/dist/components/calendly/Calendly.module.css +132 -0
  41. package/dist/components/calendly/Calendly.module.scss.js +6 -0
  42. package/dist/components/calendly/Calendly.view.js +12 -6
  43. package/dist/components/card/Card.client.js +6 -1
  44. package/dist/components/card/Card.css +67 -32
  45. package/dist/components/card/Card.js +11 -5
  46. package/dist/components/card/Card.module.css +67 -32
  47. package/dist/components/card/Card.module.scss.js +8 -2
  48. package/dist/components/card/Card.view.js +25 -8
  49. package/dist/components/carousel/Carousel.client.js +138 -129
  50. package/dist/components/carousel/Carousel.css +8 -4
  51. package/dist/components/carousel/Carousel.js +8 -2
  52. package/dist/components/carousel/Carousel.module.css +8 -4
  53. package/dist/components/carousel/Carousel.view.js +10 -0
  54. package/dist/components/checkbox/Checkbox.css +100 -79
  55. package/dist/components/checkbox/Checkbox.js +4 -1
  56. package/dist/components/checkbox/Checkbox.module.css +100 -79
  57. package/dist/components/checkbox/Checkbox.module.scss.js +11 -4
  58. package/dist/components/checkbox/Checkbox.view.js +7 -2
  59. package/dist/components/checkbox-group/CheckboxGroup.css +39 -6
  60. package/dist/components/checkbox-group/CheckboxGroup.js +4 -1
  61. package/dist/components/checkbox-group/CheckboxGroup.module.css +39 -6
  62. package/dist/components/checkbox-group/CheckboxGroup.module.scss.js +8 -0
  63. package/dist/components/checkbox-group/CheckboxGroup.view.js +7 -2
  64. package/dist/components/chip/Chip.css +185 -61
  65. package/dist/components/chip/Chip.js +4 -1
  66. package/dist/components/chip/Chip.module.css +185 -61
  67. package/dist/components/chip/Chip.module.scss.js +13 -17
  68. package/dist/components/chip/Chip.view.js +7 -4
  69. package/dist/components/datePicker/DatePicker.client.js +211 -66
  70. package/dist/components/datePicker/DatePicker.css +940 -0
  71. package/dist/components/datePicker/DatePicker.js +4 -1
  72. package/dist/components/datePicker/DatePicker.module.css +940 -0
  73. package/dist/components/datePicker/DatePicker.module.scss.js +62 -0
  74. package/dist/components/datePicker/DatePicker.server.js +31 -1
  75. package/dist/components/datePicker/DatePicker.utils.js +103 -0
  76. package/dist/components/datePicker/DatePicker.view.js +113 -41
  77. package/dist/components/datePicker/DatePickerDialog.view.js +291 -0
  78. package/dist/components/dialog/Dialog.css +107 -132
  79. package/dist/components/dialog/Dialog.js +8 -2
  80. package/dist/components/dialog/Dialog.module.css +107 -132
  81. package/dist/components/dialog/Dialog.module.scss.js +13 -8
  82. package/dist/components/dialog/Dialog.view.js +23 -5
  83. package/dist/components/drawer/Drawer.client.js +0 -1
  84. package/dist/components/drawer/Drawer.css +8 -8
  85. package/dist/components/drawer/Drawer.js +4 -1
  86. package/dist/components/drawer/Drawer.module.css +8 -8
  87. package/dist/components/drawer/Drawer.view.js +14 -3
  88. package/dist/components/dynamic-list/DynamicList.client.js +1 -0
  89. package/dist/components/dynamic-list/DynamicList.css +20 -12
  90. package/dist/components/dynamic-list/DynamicList.js +4 -1
  91. package/dist/components/dynamic-list/DynamicList.module.css +20 -12
  92. package/dist/components/dynamic-list/DynamicList.module.scss.js +1 -0
  93. package/dist/components/dynamic-list/DynamicList.view.js +89 -44
  94. package/dist/components/form/Form.client.js +4 -1
  95. package/dist/components/form/Form.js +4 -1
  96. package/dist/components/form/Form.view.js +6 -4
  97. package/dist/components/form/FormField.client.js +59 -4
  98. package/dist/components/form/FormField.js +4 -1
  99. package/dist/components/form/FormField.server.js +10 -4
  100. package/dist/components/form/FormResponse.js +6 -3
  101. package/dist/components/grid/Grid.css +1 -1
  102. package/dist/components/grid/Grid.module.css +1 -1
  103. package/dist/components/headline/Headline.css +16 -16
  104. package/dist/components/headline/Headline.js +13 -8
  105. package/dist/components/headline/Headline.module.css +16 -16
  106. package/dist/components/headline/Headline.module.scss.js +1 -1
  107. package/dist/components/headline/Headline.variants.js +4 -1
  108. package/dist/components/icon/Icon.css +14 -14
  109. package/dist/components/icon/Icon.js +8 -2
  110. package/dist/components/icon/Icon.module.css +14 -14
  111. package/dist/components/image/Image.client.js +9 -5
  112. package/dist/components/image/Image.css +4 -3
  113. package/dist/components/image/Image.js +8 -2
  114. package/dist/components/image/Image.module.css +4 -3
  115. package/dist/components/image/Image.server.js +2 -1
  116. package/dist/components/image-text/ImageText.css +43 -14
  117. package/dist/components/image-text/ImageText.js +68 -50
  118. package/dist/components/image-text/ImageText.module.css +43 -14
  119. package/dist/components/image-text/ImageText.module.scss.js +11 -2
  120. package/dist/components/input/Input.client.js +15 -2
  121. package/dist/components/input/Input.css +197 -115
  122. package/dist/components/input/Input.js +4 -1
  123. package/dist/components/input/Input.module.css +197 -115
  124. package/dist/components/input/Input.module.scss.js +19 -3
  125. package/dist/components/input/Input.view.js +102 -63
  126. package/dist/components/input/InputValidation.js +6 -2
  127. package/dist/components/inputOTP/InputOTP.client.js +165 -0
  128. package/dist/components/inputOTP/InputOTP.css +155 -7
  129. package/dist/components/inputOTP/InputOTP.js +10 -194
  130. package/dist/components/inputOTP/InputOTP.lazy.js +12 -0
  131. package/dist/components/inputOTP/InputOTP.module.css +155 -7
  132. package/dist/components/inputOTP/InputOTP.module.scss.js +14 -0
  133. package/dist/components/inputOTP/InputOTP.server.js +32 -0
  134. package/dist/components/inputOTP/InputOTP.view.js +117 -0
  135. package/dist/components/label/Label.css +33 -14
  136. package/dist/components/label/Label.js +37 -35
  137. package/dist/components/label/Label.module.css +33 -14
  138. package/dist/components/label/Label.module.scss.js +9 -2
  139. package/dist/components/link/Link.css +13 -13
  140. package/dist/components/link/Link.js +5 -3
  141. package/dist/components/link/Link.module.css +13 -13
  142. package/dist/components/link/Link.view.js +16 -13
  143. package/dist/components/list/List.css +71 -32
  144. package/dist/components/list/List.js +74 -28
  145. package/dist/components/list/List.module.css +71 -32
  146. package/dist/components/list/List.module.scss.js +1 -1
  147. package/dist/components/loading/Loading.js +4 -1
  148. package/dist/components/loading/Loading.view.js +47 -7
  149. package/dist/components/lottie/Lottie.css +16 -0
  150. package/dist/components/lottie/Lottie.js +9 -5
  151. package/dist/components/lottie/Lottie.module.css +16 -0
  152. package/dist/components/lottie/Lottie.module.scss.js +6 -2
  153. package/dist/components/map/Map.css +130 -0
  154. package/dist/components/map/Map.js +67 -46
  155. package/dist/components/map/Map.module.css +130 -0
  156. package/dist/components/map/Map.module.scss.js +6 -0
  157. package/dist/components/pagination/Pagination.css +127 -11
  158. package/dist/components/pagination/Pagination.js +4 -1
  159. package/dist/components/pagination/Pagination.module.css +127 -11
  160. package/dist/components/pagination/Pagination.module.scss.js +12 -4
  161. package/dist/components/pagination/Pagination.view.js +16 -2
  162. package/dist/components/post-item/PostItem.css +16 -16
  163. package/dist/components/post-item/PostItem.js +4 -1
  164. package/dist/components/post-item/PostItem.module.css +16 -16
  165. package/dist/components/post-item/PostItem.view.js +14 -5
  166. package/dist/components/post-item/PostItemAuthor.js +4 -1
  167. package/dist/components/post-teaser/PostTeaser.css +13 -13
  168. package/dist/components/post-teaser/PostTeaser.js +4 -1
  169. package/dist/components/post-teaser/PostTeaser.module.css +13 -13
  170. package/dist/components/post-teaser/PostTeaser.view.js +14 -5
  171. package/dist/components/post-widget/PostWidget.css +6 -8
  172. package/dist/components/post-widget/PostWidget.js +5 -3
  173. package/dist/components/post-widget/PostWidget.module.css +6 -8
  174. package/dist/components/post-widget/PostWidget.view.js +21 -8
  175. package/dist/components/post-widget-carousel/PostWidgetCarousel.css +7 -7
  176. package/dist/components/post-widget-carousel/PostWidgetCarousel.js +8 -2
  177. package/dist/components/post-widget-carousel/PostWidgetCarousel.module.css +7 -7
  178. package/dist/components/post-widget-carousel/PostWidgetCarousel.view.js +32 -14
  179. package/dist/components/progressBar/ProgressBar.css +4 -4
  180. package/dist/components/progressBar/ProgressBar.js +8 -2
  181. package/dist/components/progressBar/ProgressBar.module.css +4 -4
  182. package/dist/components/progressBar/ProgressBar.view.js +6 -3
  183. package/dist/components/quote/Quote.css +21 -6
  184. package/dist/components/quote/Quote.js +5 -5
  185. package/dist/components/quote/Quote.module.css +21 -6
  186. package/dist/components/quote/Quote.module.scss.js +5 -0
  187. package/dist/components/rating/Rating.client.js +6 -1
  188. package/dist/components/rating/Rating.css +34 -21
  189. package/dist/components/rating/Rating.js +4 -1
  190. package/dist/components/rating/Rating.module.css +34 -21
  191. package/dist/components/rating/Rating.module.scss.js +8 -0
  192. package/dist/components/rating/Rating.view.js +4 -2
  193. package/dist/components/rich-text/RichText.client.js +55 -20
  194. package/dist/components/rich-text/RichText.css +47 -31
  195. package/dist/components/rich-text/RichText.js +8 -2
  196. package/dist/components/rich-text/RichText.module.css +47 -31
  197. package/dist/components/rich-text/RichText.server.js +3 -0
  198. package/dist/components/select/Select.client.js +303 -102
  199. package/dist/components/select/Select.css +542 -221
  200. package/dist/components/select/Select.js +8 -2
  201. package/dist/components/select/Select.module.css +542 -221
  202. package/dist/components/select/Select.module.scss.js +57 -14
  203. package/dist/components/select/Select.view.js +75 -25
  204. package/dist/components/sidenav/SideNav.client.js +24 -1
  205. package/dist/components/sidenav/SideNav.css +89 -21
  206. package/dist/components/sidenav/SideNav.js +8 -2
  207. package/dist/components/sidenav/SideNav.module.css +89 -21
  208. package/dist/components/sidenav/SideNav.module.scss.js +6 -1
  209. package/dist/components/sidenav/SideNav.view.js +69 -14
  210. package/dist/components/skeleton/Skeleton.css +7 -7
  211. package/dist/components/skeleton/Skeleton.module.css +7 -7
  212. package/dist/components/slider/Slider.client.js +11 -2
  213. package/dist/components/slider/Slider.css +177 -112
  214. package/dist/components/slider/Slider.js +4 -1
  215. package/dist/components/slider/Slider.module.css +177 -112
  216. package/dist/components/slider/Slider.module.scss.js +11 -2
  217. package/dist/components/slider/Slider.view.js +140 -90
  218. package/dist/components/snackbar/Snackbar.client.js +5 -1
  219. package/dist/components/snackbar/Snackbar.css +125 -64
  220. package/dist/components/snackbar/Snackbar.js +4 -1
  221. package/dist/components/snackbar/Snackbar.module.css +125 -64
  222. package/dist/components/snackbar/Snackbar.module.scss.js +11 -13
  223. package/dist/components/snackbar/Snackbar.view.js +2 -2
  224. package/dist/components/snackbar/SnackbarProvider.js +8 -2
  225. package/dist/components/stepper/Stepper.client.js +27 -9
  226. package/dist/components/stepper/Stepper.css +46 -11
  227. package/dist/components/stepper/Stepper.js +4 -1
  228. package/dist/components/stepper/Stepper.module.css +46 -11
  229. package/dist/components/stepper/Stepper.module.scss.js +7 -0
  230. package/dist/components/stepper/Stepper.server.js +2 -0
  231. package/dist/components/stepper/Stepper.view.js +6 -1
  232. package/dist/components/switch/Switch.css +108 -84
  233. package/dist/components/switch/Switch.js +4 -1
  234. package/dist/components/switch/Switch.module.css +108 -84
  235. package/dist/components/switch/Switch.module.scss.js +14 -12
  236. package/dist/components/switch/Switch.view.js +10 -8
  237. package/dist/components/table/Table.css +19 -14
  238. package/dist/components/table/Table.js +1 -0
  239. package/dist/components/table/Table.module.css +19 -14
  240. package/dist/components/tabs/Tabs.client.js +1 -0
  241. package/dist/components/tabs/Tabs.css +53 -27
  242. package/dist/components/tabs/Tabs.js +8 -2
  243. package/dist/components/tabs/Tabs.module.css +53 -27
  244. package/dist/components/tabs/Tabs.module.scss.js +7 -2
  245. package/dist/components/tabs/Tabs.view.js +12 -4
  246. package/dist/components/teaser/Teaser.css +5 -5
  247. package/dist/components/teaser/Teaser.js +4 -4
  248. package/dist/components/teaser/Teaser.module.css +5 -5
  249. package/dist/components/tooltip/Tooltip.client.js +140 -95
  250. package/dist/components/tooltip/Tooltip.css +46 -9
  251. package/dist/components/tooltip/Tooltip.js +10 -4
  252. package/dist/components/tooltip/Tooltip.module.css +46 -9
  253. package/dist/components/tooltip/Tooltip.module.scss.js +5 -1
  254. package/dist/components/tooltip/Tooltip.view.js +7 -1
  255. package/dist/constants/project.js +1 -1
  256. package/dist/helpers/createIsland.js +1 -0
  257. package/dist/helpers/createLazyWrapper.js +1 -0
  258. package/dist/hooks/useGoogleMaps.js +0 -1
  259. package/dist/theme.css +3269 -1588
  260. package/dist/tsconfig.build.tsbuildinfo +1 -1
  261. package/dist/types/components/RTE/RTE.d.ts +6 -1
  262. package/dist/types/components/RTE/RTE.lazy.d.ts +6 -1
  263. package/dist/types/components/RTE/RTE.view.d.ts +1 -1
  264. package/dist/types/components/accordion/Accordion.d.ts +1 -1
  265. package/dist/types/components/accordion/Accordion.lazy.d.ts +1 -1
  266. package/dist/types/components/accordion/Accordion.model.d.ts +1 -1
  267. package/dist/types/components/accordion/Accordion.view.d.ts +1 -1
  268. package/dist/types/components/autocomplete/Autocomplete.model.d.ts +2 -0
  269. package/dist/types/components/autocomplete/Autocomplete.view.d.ts +1 -1
  270. package/dist/types/components/avatar/Avatar.d.ts +1 -1
  271. package/dist/types/components/avatar/Avatar.lazy.d.ts +1 -1
  272. package/dist/types/components/avatar/Avatar.model.d.ts +1 -1
  273. package/dist/types/components/avatar/Avatar.view.d.ts +1 -1
  274. package/dist/types/components/calendly/Calendly.view.d.ts +1 -1
  275. package/dist/types/components/card/Card.model.d.ts +1 -1
  276. package/dist/types/components/card/Card.view.d.ts +1 -1
  277. package/dist/types/components/carousel/Carousel.view.d.ts +1 -1
  278. package/dist/types/components/checkbox/Checkbox.d.ts +1 -0
  279. package/dist/types/components/checkbox/Checkbox.lazy.d.ts +1 -0
  280. package/dist/types/components/checkbox/Checkbox.model.d.ts +2 -0
  281. package/dist/types/components/checkbox/Checkbox.view.d.ts +1 -1
  282. package/dist/types/components/checkbox-group/CheckboxGroup.model.d.ts +2 -0
  283. package/dist/types/components/checkbox-group/CheckboxGroup.view.d.ts +1 -1
  284. package/dist/types/components/datePicker/DatePicker.model.d.ts +70 -1
  285. package/dist/types/components/datePicker/DatePicker.utils.d.ts +10 -0
  286. package/dist/types/components/datePicker/DatePicker.view.d.ts +7 -4
  287. package/dist/types/components/datePicker/DatePickerDialog.view.d.ts +4 -0
  288. package/dist/types/components/dynamic-list/DynamicList.model.d.ts +3 -1
  289. package/dist/types/components/dynamic-list/DynamicList.view.d.ts +1 -1
  290. package/dist/types/components/form/Form.d.ts +1 -1
  291. package/dist/types/components/form/Form.lazy.d.ts +1 -1
  292. package/dist/types/components/form/Form.model.d.ts +19 -4
  293. package/dist/types/components/form/FormField.client.d.ts +2 -2
  294. package/dist/types/components/form/FormField.d.ts +1 -1
  295. package/dist/types/components/form/FormField.lazy.d.ts +1 -1
  296. package/dist/types/components/form/FormField.server.d.ts +2 -2
  297. package/dist/types/components/headline/Headline.model.d.ts +2 -2
  298. package/dist/types/components/input/Input.model.d.ts +8 -1
  299. package/dist/types/components/input/Input.view.d.ts +1 -1
  300. package/dist/types/components/inputOTP/InputOTP.client.d.ts +4 -0
  301. package/dist/types/components/inputOTP/InputOTP.d.ts +10 -3
  302. package/dist/types/components/inputOTP/InputOTP.lazy.d.ts +11 -0
  303. package/dist/types/components/inputOTP/InputOTP.model.d.ts +10 -0
  304. package/dist/types/components/inputOTP/InputOTP.server.d.ts +3 -0
  305. package/dist/types/components/inputOTP/InputOTP.view.d.ts +3 -0
  306. package/dist/types/components/inputOTP/index.d.ts +1 -1
  307. package/dist/types/components/label/Label.model.d.ts +2 -0
  308. package/dist/types/components/link/Link.model.d.ts +1 -1
  309. package/dist/types/components/link/Link.view.d.ts +1 -1
  310. package/dist/types/components/list/List.d.ts +1 -1
  311. package/dist/types/components/list/List.model.d.ts +14 -5
  312. package/dist/types/components/list/index.d.ts +1 -1
  313. package/dist/types/components/loading/Loading.model.d.ts +2 -0
  314. package/dist/types/components/loading/index.d.ts +1 -1
  315. package/dist/types/components/pagination/Pagination.model.d.ts +2 -0
  316. package/dist/types/components/pagination/Pagination.view.d.ts +1 -1
  317. package/dist/types/components/post-item/PostItem.model.d.ts +2 -1
  318. package/dist/types/components/post-teaser/PostTeaser.model.d.ts +2 -1
  319. package/dist/types/components/post-widget/PostWidget.view.d.ts +1 -1
  320. package/dist/types/components/progressBar/ProgressBar.d.ts +1 -1
  321. package/dist/types/components/progressBar/ProgressBar.lazy.d.ts +1 -1
  322. package/dist/types/components/progressBar/ProgressBar.model.d.ts +3 -2
  323. package/dist/types/components/progressBar/ProgressBar.view.d.ts +1 -1
  324. package/dist/types/components/progressBar/index.d.ts +1 -1
  325. package/dist/types/components/quote/Quote.model.d.ts +1 -1
  326. package/dist/types/components/rating/Rating.model.d.ts +2 -0
  327. package/dist/types/components/rich-text/RichText.client.d.ts +1 -1
  328. package/dist/types/components/rich-text/RichText.d.ts +1 -1
  329. package/dist/types/components/rich-text/RichText.lazy.d.ts +1 -1
  330. package/dist/types/components/rich-text/RichText.model.d.ts +1 -1
  331. package/dist/types/components/select/Select.model.d.ts +2 -0
  332. package/dist/types/components/select/Select.view.d.ts +1 -1
  333. package/dist/types/components/sidenav/SideNav.client.d.ts +1 -1
  334. package/dist/types/components/sidenav/SideNav.model.d.ts +16 -2
  335. package/dist/types/components/sidenav/SideNav.view.d.ts +1 -1
  336. package/dist/types/components/slider/Slider.model.d.ts +2 -0
  337. package/dist/types/components/snackbar/Snackbar.model.d.ts +3 -2
  338. package/dist/types/components/snackbar/Snackbar.view.d.ts +3 -2
  339. package/dist/types/components/snackbar/index.d.ts +1 -1
  340. package/dist/types/components/stepper/Stepper.d.ts +1 -0
  341. package/dist/types/components/stepper/Stepper.lazy.d.ts +1 -0
  342. package/dist/types/components/stepper/Stepper.model.d.ts +3 -0
  343. package/dist/types/components/stepper/Stepper.server.d.ts +1 -1
  344. package/dist/types/components/switch/Switch.d.ts +2 -2
  345. package/dist/types/components/switch/Switch.lazy.d.ts +2 -2
  346. package/dist/types/components/switch/Switch.model.d.ts +3 -4
  347. package/dist/types/components/tabs/Tabs.model.d.ts +2 -0
  348. package/dist/types/components/tabs/Tabs.view.d.ts +1 -1
  349. package/dist/types/components/teaser/Teaser.model.d.ts +1 -1
  350. package/dist/types/components/tooltip/Tooltip.model.d.ts +2 -0
  351. package/package.json +53 -24
@@ -0,0 +1,62 @@
1
+ const dpBorderShift = "dpBorderShift";
2
+ const dpDialogIn = "dpDialogIn";
3
+ const dpSlideUp = "dpSlideUp";
4
+ const styles = {
5
+ "prokodo-DatePicker": "prokodo-DatePicker",
6
+ "prokodo-DatePicker--primary": "prokodo-DatePicker--primary",
7
+ "prokodo-DatePicker--secondary": "prokodo-DatePicker--secondary",
8
+ "prokodo-DatePicker--success": "prokodo-DatePicker--success",
9
+ "prokodo-DatePicker--warning": "prokodo-DatePicker--warning",
10
+ "prokodo-DatePicker--error": "prokodo-DatePicker--error",
11
+ "prokodo-DatePicker--info": "prokodo-DatePicker--info",
12
+ "prokodo-DatePicker--inherit": "prokodo-DatePicker--inherit",
13
+ "prokodo-DatePicker--white": "prokodo-DatePicker--white",
14
+ "prokodo-DatePicker__trigger": "prokodo-DatePicker__trigger",
15
+ "prokodo-DatePicker__trigger--open": "prokodo-DatePicker__trigger--open",
16
+ dpBorderShift,
17
+ "prokodo-DatePicker__trigger__label": "prokodo-DatePicker__trigger__label",
18
+ "prokodo-DatePicker__trigger__label--float": "prokodo-DatePicker__trigger__label--float",
19
+ "prokodo-DatePicker__trigger__value": "prokodo-DatePicker__trigger__value",
20
+ "prokodo-DatePicker__trigger__value--empty": "prokodo-DatePicker__trigger__value--empty",
21
+ "prokodo-DatePicker__trigger__icon": "prokodo-DatePicker__trigger__icon",
22
+ "prokodo-DatePicker__dialog": "prokodo-DatePicker__dialog",
23
+ dpDialogIn,
24
+ dpSlideUp,
25
+ "prokodo-DatePicker__dialog__backdrop": "prokodo-DatePicker__dialog__backdrop",
26
+ "prokodo-DatePicker__dialog__close": "prokodo-DatePicker__dialog__close",
27
+ "prokodo-DatePicker__dialog__header": "prokodo-DatePicker__dialog__header",
28
+ "prokodo-DatePicker__month__label": "prokodo-DatePicker__month__label",
29
+ "prokodo-DatePicker__header-btn": "prokodo-DatePicker__header-btn",
30
+ "prokodo-DatePicker__header-range": "prokodo-DatePicker__header-range",
31
+ "prokodo-DatePicker__picker-grid": "prokodo-DatePicker__picker-grid",
32
+ "prokodo-DatePicker__picker-cell": "prokodo-DatePicker__picker-cell",
33
+ "prokodo-DatePicker__picker-cell--today": "prokodo-DatePicker__picker-cell--today",
34
+ "prokodo-DatePicker__picker-cell--selected": "prokodo-DatePicker__picker-cell--selected",
35
+ "prokodo-DatePicker__picker-cell--disabled": "prokodo-DatePicker__picker-cell--disabled",
36
+ "prokodo-DatePicker__nav__btn": "prokodo-DatePicker__nav__btn",
37
+ "prokodo-DatePicker__nav__btn--prev": "prokodo-DatePicker__nav__btn--prev",
38
+ "prokodo-DatePicker__weekdays": "prokodo-DatePicker__weekdays",
39
+ "prokodo-DatePicker__weekday": "prokodo-DatePicker__weekday",
40
+ "prokodo-DatePicker__days": "prokodo-DatePicker__days",
41
+ "prokodo-DatePicker__day": "prokodo-DatePicker__day",
42
+ "prokodo-DatePicker__day--disabled": "prokodo-DatePicker__day--disabled",
43
+ "prokodo-DatePicker__day--today": "prokodo-DatePicker__day--today",
44
+ "prokodo-DatePicker__day--selected": "prokodo-DatePicker__day--selected",
45
+ "prokodo-DatePicker__day--outside": "prokodo-DatePicker__day--outside",
46
+ "prokodo-DatePicker__time__row": "prokodo-DatePicker__time__row",
47
+ "prokodo-DatePicker__time__label": "prokodo-DatePicker__time__label",
48
+ "prokodo-DatePicker__time__select": "prokodo-DatePicker__time__select",
49
+ "prokodo-DatePicker__time__sep": "prokodo-DatePicker__time__sep",
50
+ "prokodo-DatePicker__footer": "prokodo-DatePicker__footer",
51
+ "prokodo-DatePicker__footer__btn": "prokodo-DatePicker__footer__btn",
52
+ "prokodo-DatePicker__footer__btn--ghost": "prokodo-DatePicker__footer__btn--ghost",
53
+ "prokodo-DatePicker__footer__btn--filled": "prokodo-DatePicker__footer__btn--filled",
54
+ "prokodo-DatePicker__helper": "prokodo-DatePicker__helper",
55
+ "prokodo-DatePicker__error": "prokodo-DatePicker__error"
56
+ };
57
+ export {
58
+ styles as default,
59
+ dpBorderShift,
60
+ dpDialogIn,
61
+ dpSlideUp
62
+ };
@@ -1,8 +1,38 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import { jsx } from "react/jsx-runtime";
4
+ import dayjs from "dayjs";
4
5
  import { DatePickerView } from "./DatePicker.view.js";
5
- const DatePickerServer = /* @__PURE__ */ __name((props) => /* @__PURE__ */ jsx(DatePickerView, { ...props, readOnly: true, onChange: void 0 }), "DatePickerServer");
6
+ const noop = /* @__PURE__ */ __name(() => void 0, "noop");
7
+ const DatePickerServer = /* @__PURE__ */ __name(({
8
+ onChange: _onChange,
9
+ value,
10
+ ...props
11
+ }) => {
12
+ const selectedDate = value ? dayjs(value) : null;
13
+ return /* @__PURE__ */ jsx(
14
+ DatePickerView,
15
+ {
16
+ ...props,
17
+ readOnly: true,
18
+ isOpen: false,
19
+ selectedDate,
20
+ viewingMonth: selectedDate ?? dayjs(),
21
+ viewMode: "days",
22
+ onApply: noop,
23
+ onClear: noop,
24
+ onDayClick: noop,
25
+ onMonthSelect: noop,
26
+ onNextMonth: noop,
27
+ onPrevMonth: noop,
28
+ onTimeChange: noop,
29
+ onToday: noop,
30
+ onToggle: noop,
31
+ onViewModeChange: noop,
32
+ onYearSelect: noop
33
+ }
34
+ );
35
+ }, "DatePickerServer");
6
36
  export {
7
37
  DatePickerServer as default
8
38
  };
@@ -0,0 +1,103 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import dayjs from "dayjs";
4
+ import { isNull } from "../../helpers/validations.js";
5
+ const WEEKDAYS = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];
6
+ const MONTHS_SHORT = [
7
+ "Jan",
8
+ "Feb",
9
+ "Mar",
10
+ "Apr",
11
+ "May",
12
+ "Jun",
13
+ "Jul",
14
+ "Aug",
15
+ "Sep",
16
+ "Oct",
17
+ "Nov",
18
+ "Dec"
19
+ ];
20
+ function buildCalendarGrid(viewingMonth, minDate, maxDate) {
21
+ const today = dayjs();
22
+ const firstOfMonth = viewingMonth.startOf("month");
23
+ const totalDays = viewingMonth.daysInMonth();
24
+ const startOffset = (firstOfMonth.day() + 6) % 7;
25
+ const min = !isNull(minDate) ? dayjs(minDate).startOf("day") : null;
26
+ const max = !isNull(maxDate) ? dayjs(maxDate).startOf("day") : null;
27
+ const cells = [];
28
+ for (let i = startOffset - 1; i >= 0; i--) {
29
+ cells.push({
30
+ date: firstOfMonth.subtract(i + 1, "day"),
31
+ isCurrentMonth: false,
32
+ isToday: false,
33
+ isDisabled: true
34
+ });
35
+ }
36
+ for (let d = 1; d <= totalDays; d++) {
37
+ const date = firstOfMonth.date(d);
38
+ const start = date.startOf("day");
39
+ cells.push({
40
+ date,
41
+ isCurrentMonth: true,
42
+ isToday: date.isSame(today, "day"),
43
+ isDisabled: min !== null && start.isBefore(min) || max !== null && start.isAfter(max)
44
+ });
45
+ }
46
+ const trailing = (7 - cells.length % 7) % 7;
47
+ const lastOfMonth = firstOfMonth.endOf("month");
48
+ for (let i = 1; i <= trailing; i++) {
49
+ cells.push({
50
+ date: lastOfMonth.add(i, "day"),
51
+ isCurrentMonth: false,
52
+ isToday: false,
53
+ isDisabled: true
54
+ });
55
+ }
56
+ return cells;
57
+ }
58
+ __name(buildCalendarGrid, "buildCalendarGrid");
59
+ function buildHours() {
60
+ return Array.from({ length: 24 }, (_, i) => i);
61
+ }
62
+ __name(buildHours, "buildHours");
63
+ function buildMinutes(step) {
64
+ const s = Math.max(1, step);
65
+ const out = [];
66
+ for (let m = 0; m < 60; m += s) out.push(m);
67
+ return out;
68
+ }
69
+ __name(buildMinutes, "buildMinutes");
70
+ function pad2(n) {
71
+ return String(n).padStart(2, "0");
72
+ }
73
+ __name(pad2, "pad2");
74
+ function isMonthDisabled(month, year, minDate, maxDate) {
75
+ const firstDay = dayjs(new Date(year, month, 1));
76
+ const lastDay = firstDay.endOf("month");
77
+ const min = !isNull(minDate) ? dayjs(minDate).startOf("day") : null;
78
+ const max = !isNull(maxDate) ? dayjs(maxDate).startOf("day") : null;
79
+ if (min && lastDay.isBefore(min, "day")) return true;
80
+ if (max && firstDay.isAfter(max, "day")) return true;
81
+ return false;
82
+ }
83
+ __name(isMonthDisabled, "isMonthDisabled");
84
+ function isYearDisabled(year, minDate, maxDate) {
85
+ const firstDay = dayjs(new Date(year, 0, 1));
86
+ const lastDay = dayjs(new Date(year, 11, 31));
87
+ const min = !isNull(minDate) ? dayjs(minDate).startOf("day") : null;
88
+ const max = !isNull(maxDate) ? dayjs(maxDate).startOf("day") : null;
89
+ if (min && lastDay.isBefore(min, "day")) return true;
90
+ if (max && firstDay.isAfter(max, "day")) return true;
91
+ return false;
92
+ }
93
+ __name(isYearDisabled, "isYearDisabled");
94
+ export {
95
+ MONTHS_SHORT,
96
+ WEEKDAYS,
97
+ buildCalendarGrid,
98
+ buildHours,
99
+ buildMinutes,
100
+ isMonthDisabled,
101
+ isYearDisabled,
102
+ pad2
103
+ };
@@ -1,13 +1,15 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { jsx } from "react/jsx-runtime";
4
- import dayjs from "dayjs";
5
- import { isNull } from "../../helpers/validations.js";
3
+ import { jsxs, jsx } from "react/jsx-runtime";
4
+ import { createPortal } from "react-dom";
6
5
  import { InputView } from "../input/Input.view.js";
6
+ import { create } from "../../helpers/bem.js";
7
+ import styles from "./DatePicker.module.scss.js";
8
+ import { DatePickerDialog } from "./DatePickerDialog.view.js";
9
+ const bem = create(styles, "DatePicker");
7
10
  function DatePickerView({
8
11
  name,
9
12
  label,
10
- value,
11
13
  helperText,
12
14
  errorText,
13
15
  format,
@@ -16,45 +18,115 @@ function DatePickerView({
16
18
  maxDate,
17
19
  withTime = false,
18
20
  minuteStep = 1,
19
- onChangeInput,
20
- // <- string-based adapter
21
- ...rest
21
+ color = "primary",
22
+ required,
23
+ prevIcon,
24
+ nextIcon,
25
+ prevAriaLabel,
26
+ nextAriaLabel,
27
+ weekdays,
28
+ monthFormat,
29
+ dayAriaFormat,
30
+ todayLabel,
31
+ clearLabel,
32
+ applyLabel,
33
+ timeLabel,
34
+ closeIcon,
35
+ closeLabel,
36
+ dialogColor,
37
+ isOpen,
38
+ /** When provided, the calendar dialog is portaled into this element (e.g. document.body on mobile). */
39
+ dialogPortalTarget,
40
+ viewingMonth,
41
+ selectedDate,
42
+ onToggle,
43
+ onPrevMonth,
44
+ onNextMonth,
45
+ onDayClick,
46
+ onToday,
47
+ onClear,
48
+ onApply,
49
+ onTimeChange,
50
+ onDialogTouchStart,
51
+ onDialogTouchEnd,
52
+ viewMode,
53
+ onViewModeChange,
54
+ onMonthSelect,
55
+ onYearSelect
22
56
  }) {
23
57
  const effectiveFormat = format ?? (withTime ? "YYYY-MM-DDTHH:mm" : "YYYY-MM-DD");
24
- const inputType = withTime ? "datetime-local" : "date";
25
- const htmlMinMaxFormat = withTime ? "YYYY-MM-DDTHH:mm" : "YYYY-MM-DD";
26
- const displayValue = !isNull(value) ? dayjs(value).format(effectiveFormat) : "";
27
- const min = !isNull(minDate) ? dayjs(minDate).format(htmlMinMaxFormat) : void 0;
28
- const max = !isNull(maxDate) ? dayjs(maxDate).format(htmlMinMaxFormat) : void 0;
29
- const computedStep = withTime ? Math.max(1, minuteStep) * 60 : void 0;
30
- const { step: _ignored, ...restWithoutStep } = rest;
31
- const handleInput = /* @__PURE__ */ __name((e) => {
32
- onChangeInput == null ? void 0 : onChangeInput(
33
- e.currentTarget.value
34
- );
35
- }, "handleInput");
36
- const handleChange = /* @__PURE__ */ __name((e) => {
37
- onChangeInput == null ? void 0 : onChangeInput(e.currentTarget.value);
38
- }, "handleChange");
39
- return /* @__PURE__ */ jsx(
40
- InputView,
41
- {
42
- ...restWithoutStep,
43
- errorText,
44
- helperText,
45
- isFocused: true,
46
- label,
47
- max,
48
- min,
49
- name,
50
- placeholder,
51
- type: inputType,
52
- value: displayValue,
53
- onChange: handleChange,
54
- onInput: handleInput,
55
- ...withTime && computedStep !== void 0 ? { step: computedStep } : {}
56
- }
57
- );
58
+ const displayValue = (selectedDate == null ? void 0 : selectedDate.format(effectiveFormat)) ?? "";
59
+ return /* @__PURE__ */ jsxs("div", { className: bem(void 0, { [color]: true }), children: [
60
+ /* @__PURE__ */ jsx(
61
+ InputView,
62
+ {
63
+ readOnly: true,
64
+ color,
65
+ errorText,
66
+ helperText,
67
+ isFocused: isOpen,
68
+ label,
69
+ name,
70
+ placeholder,
71
+ required,
72
+ trailingIcon: "Calendar01Icon",
73
+ trailingIconLabel: isOpen ? "Close calendar" : "Open calendar",
74
+ type: "text",
75
+ value: displayValue,
76
+ trailingIconButtonProps: {
77
+ "aria-haspopup": "dialog",
78
+ "aria-expanded": isOpen,
79
+ "aria-controls": isOpen ? `${name}-dialog` : void 0
80
+ },
81
+ onClick: onToggle,
82
+ onTrailingIconClick: onToggle
83
+ }
84
+ ),
85
+ isOpen && (() => {
86
+ const dialog = /* @__PURE__ */ jsx(
87
+ DatePickerDialog,
88
+ {
89
+ applyLabel,
90
+ clearLabel,
91
+ closeIcon,
92
+ closeLabel,
93
+ dayAriaFormat,
94
+ dialogColor: dialogColor ?? color,
95
+ label,
96
+ maxDate,
97
+ minDate,
98
+ minuteStep,
99
+ monthFormat,
100
+ name,
101
+ nextAriaLabel,
102
+ nextIcon,
103
+ prevAriaLabel,
104
+ prevIcon,
105
+ selectedDate,
106
+ timeLabel,
107
+ todayLabel,
108
+ viewingMonth,
109
+ viewMode,
110
+ weekdays,
111
+ withTime,
112
+ onApply,
113
+ onClear,
114
+ onClose: onToggle,
115
+ onDayClick,
116
+ onDialogTouchEnd,
117
+ onDialogTouchStart,
118
+ onMonthSelect,
119
+ onNextMonth,
120
+ onPrevMonth,
121
+ onTimeChange,
122
+ onToday,
123
+ onViewModeChange,
124
+ onYearSelect
125
+ }
126
+ );
127
+ return dialogPortalTarget ? createPortal(dialog, dialogPortalTarget) : dialog;
128
+ })()
129
+ ] });
58
130
  }
59
131
  __name(DatePickerView, "DatePickerView");
60
132
  export {
@@ -0,0 +1,291 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
4
+ import { create } from "../../helpers/bem.js";
5
+ import styles from "./DatePicker.module.scss.js";
6
+ import { buildCalendarGrid, buildHours, WEEKDAYS, MONTHS_SHORT, isMonthDisabled, isYearDisabled, pad2, buildMinutes } from "./DatePicker.utils.js";
7
+ import { Icon } from "../icon/Icon.js";
8
+ const bem = create(styles, "DatePicker");
9
+ function DatePickerDialog({
10
+ name,
11
+ label,
12
+ withTime = false,
13
+ minuteStep = 1,
14
+ selectedDate,
15
+ viewingMonth,
16
+ minDate,
17
+ maxDate,
18
+ prevIcon = "ArrowLeft01Icon",
19
+ nextIcon = "ArrowRight01Icon",
20
+ prevAriaLabel = "Previous month",
21
+ nextAriaLabel = "Next month",
22
+ weekdays = WEEKDAYS,
23
+ monthFormat: _monthFormat,
24
+ dayAriaFormat = "D MMMM YYYY",
25
+ todayLabel = "Today",
26
+ clearLabel = "Clear",
27
+ applyLabel = "Apply",
28
+ timeLabel = "Time",
29
+ closeIcon = "Cancel01Icon",
30
+ closeLabel = "Close",
31
+ dialogColor,
32
+ onPrevMonth,
33
+ onNextMonth,
34
+ onDayClick,
35
+ onToday,
36
+ onClear,
37
+ onApply,
38
+ onTimeChange,
39
+ onClose,
40
+ onDialogTouchStart,
41
+ onDialogTouchEnd,
42
+ viewMode = "days",
43
+ onViewModeChange,
44
+ onMonthSelect,
45
+ onYearSelect
46
+ }) {
47
+ const calendarDays = buildCalendarGrid(viewingMonth, minDate, maxDate);
48
+ const hours = buildHours();
49
+ const minutes = buildMinutes(minuteStep);
50
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
51
+ /* @__PURE__ */ jsx(
52
+ "div",
53
+ {
54
+ "aria-hidden": "true",
55
+ className: bem("dialog__backdrop"),
56
+ onClick: onClose
57
+ }
58
+ ),
59
+ /* @__PURE__ */ jsxs(
60
+ "div",
61
+ {
62
+ "aria-label": `Choose ${label}`,
63
+ "aria-modal": "true",
64
+ id: `${name}-dialog`,
65
+ role: "dialog",
66
+ className: [
67
+ bem("dialog"),
68
+ dialogColor ? bem(void 0, { [dialogColor]: true }) : ""
69
+ ].filter(Boolean).join(" "),
70
+ onTouchEnd: onDialogTouchEnd,
71
+ onTouchStart: onDialogTouchStart,
72
+ children: [
73
+ /* @__PURE__ */ jsxs("div", { className: bem("dialog__header"), children: [
74
+ /* @__PURE__ */ jsx(
75
+ "button",
76
+ {
77
+ "aria-label": prevAriaLabel,
78
+ className: bem("nav__btn", { prev: true }),
79
+ type: "button",
80
+ onClick: onPrevMonth,
81
+ children: /* @__PURE__ */ jsx(Icon, { name: prevIcon, size: "sm" })
82
+ }
83
+ ),
84
+ /* @__PURE__ */ jsxs("span", { className: bem("month__label"), children: [
85
+ viewMode === "days" && /* @__PURE__ */ jsxs(Fragment, { children: [
86
+ /* @__PURE__ */ jsx(
87
+ "button",
88
+ {
89
+ className: bem("header-btn"),
90
+ type: "button",
91
+ onClick: /* @__PURE__ */ __name(() => onViewModeChange == null ? void 0 : onViewModeChange("months"), "onClick"),
92
+ children: viewingMonth.format("MMMM")
93
+ }
94
+ ),
95
+ /* @__PURE__ */ jsx(
96
+ "button",
97
+ {
98
+ className: bem("header-btn"),
99
+ type: "button",
100
+ onClick: /* @__PURE__ */ __name(() => onViewModeChange == null ? void 0 : onViewModeChange("years"), "onClick"),
101
+ children: viewingMonth.format("YYYY")
102
+ }
103
+ )
104
+ ] }),
105
+ viewMode === "months" && /* @__PURE__ */ jsx(
106
+ "button",
107
+ {
108
+ className: bem("header-btn"),
109
+ type: "button",
110
+ onClick: /* @__PURE__ */ __name(() => onViewModeChange == null ? void 0 : onViewModeChange("years"), "onClick"),
111
+ children: viewingMonth.format("YYYY")
112
+ }
113
+ ),
114
+ viewMode === "years" && (() => {
115
+ const startYear = Math.floor(viewingMonth.year() / 10) * 10;
116
+ return /* @__PURE__ */ jsxs("span", { className: bem("header-range"), children: [
117
+ startYear,
118
+ "–",
119
+ startYear + 11
120
+ ] });
121
+ })()
122
+ ] }),
123
+ /* @__PURE__ */ jsx(
124
+ "button",
125
+ {
126
+ "aria-label": nextAriaLabel,
127
+ className: bem("nav__btn", { next: true }),
128
+ type: "button",
129
+ onClick: onNextMonth,
130
+ children: /* @__PURE__ */ jsx(Icon, { name: nextIcon, size: "sm" })
131
+ }
132
+ ),
133
+ /* @__PURE__ */ jsx(
134
+ "button",
135
+ {
136
+ "aria-label": closeLabel,
137
+ className: bem("dialog__close"),
138
+ type: "button",
139
+ onClick: onClose,
140
+ children: /* @__PURE__ */ jsx(Icon, { name: closeIcon, size: "sm" })
141
+ }
142
+ )
143
+ ] }),
144
+ viewMode === "days" && /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: bem("weekdays"), children: weekdays.map((wd) => /* @__PURE__ */ jsx("span", { className: bem("weekday"), children: wd }, wd)) }),
145
+ viewMode === "days" && /* @__PURE__ */ jsx("div", { className: bem("days"), role: "grid", children: Array.from(
146
+ { length: Math.ceil(calendarDays.length / 7) },
147
+ (_, weekIdx) => /* @__PURE__ */ jsx("div", { role: "row", children: calendarDays.slice(weekIdx * 7, weekIdx * 7 + 7).map((cell) => {
148
+ const isSelected = Boolean(
149
+ selectedDate && cell.isCurrentMonth && cell.date.isSame(selectedDate, "day")
150
+ );
151
+ return /* @__PURE__ */ jsx(
152
+ "button",
153
+ {
154
+ "aria-label": cell.date.format(dayAriaFormat),
155
+ "aria-selected": isSelected,
156
+ disabled: cell.isDisabled,
157
+ role: "gridcell",
158
+ type: "button",
159
+ className: bem("day", {
160
+ today: cell.isToday,
161
+ selected: isSelected,
162
+ outside: !cell.isCurrentMonth,
163
+ disabled: cell.isDisabled
164
+ }),
165
+ tabIndex: cell.isCurrentMonth && !cell.isDisabled ? 0 : -1,
166
+ onClick: /* @__PURE__ */ __name(() => {
167
+ if (!cell.isDisabled && cell.isCurrentMonth) {
168
+ onDayClick(cell.date);
169
+ }
170
+ }, "onClick"),
171
+ children: cell.date.date()
172
+ },
173
+ cell.date.format("YYYY-MM-DD")
174
+ );
175
+ }) }, weekIdx)
176
+ ) }),
177
+ viewMode === "months" && /* @__PURE__ */ jsx("div", { className: bem("picker-grid"), children: MONTHS_SHORT.map((monthName, idx) => {
178
+ const disabled = isMonthDisabled(
179
+ idx,
180
+ viewingMonth.year(),
181
+ minDate,
182
+ maxDate
183
+ );
184
+ const isSelected = (selectedDate == null ? void 0 : selectedDate.month()) === idx && (selectedDate == null ? void 0 : selectedDate.year()) === viewingMonth.year();
185
+ const isCurrent = (/* @__PURE__ */ new Date()).getMonth() === idx && (/* @__PURE__ */ new Date()).getFullYear() === viewingMonth.year();
186
+ return /* @__PURE__ */ jsx(
187
+ "button",
188
+ {
189
+ "aria-disabled": disabled,
190
+ disabled,
191
+ type: "button",
192
+ className: bem("picker-cell", {
193
+ selected: isSelected,
194
+ today: isCurrent,
195
+ disabled
196
+ }),
197
+ onClick: /* @__PURE__ */ __name(() => !disabled && (onMonthSelect == null ? void 0 : onMonthSelect(idx)), "onClick"),
198
+ children: monthName
199
+ },
200
+ monthName
201
+ );
202
+ }) }),
203
+ viewMode === "years" && (() => {
204
+ const startYear = Math.floor(viewingMonth.year() / 10) * 10;
205
+ const years = Array.from({ length: 12 }, (_, i) => startYear + i);
206
+ return /* @__PURE__ */ jsx("div", { className: bem("picker-grid"), children: years.map((y) => {
207
+ const disabled = isYearDisabled(y, minDate, maxDate);
208
+ const isSelected = (selectedDate == null ? void 0 : selectedDate.year()) === y;
209
+ const isCurrent = (/* @__PURE__ */ new Date()).getFullYear() === y;
210
+ return /* @__PURE__ */ jsx(
211
+ "button",
212
+ {
213
+ "aria-disabled": disabled,
214
+ disabled,
215
+ type: "button",
216
+ className: bem("picker-cell", {
217
+ selected: isSelected,
218
+ today: isCurrent,
219
+ disabled
220
+ }),
221
+ onClick: /* @__PURE__ */ __name(() => !disabled && (onYearSelect == null ? void 0 : onYearSelect(y)), "onClick"),
222
+ children: y
223
+ },
224
+ y
225
+ );
226
+ }) });
227
+ })(),
228
+ withTime && /* @__PURE__ */ jsxs("div", { className: bem("time__row"), children: [
229
+ /* @__PURE__ */ jsx("span", { className: bem("time__label"), children: timeLabel }),
230
+ /* @__PURE__ */ jsx(
231
+ "select",
232
+ {
233
+ "aria-label": "Hour",
234
+ className: bem("time__select"),
235
+ value: (selectedDate == null ? void 0 : selectedDate.hour()) ?? 0,
236
+ onChange: /* @__PURE__ */ __name((e) => onTimeChange(parseInt(e.target.value, 10), "hour"), "onChange"),
237
+ children: hours.map((h) => /* @__PURE__ */ jsx("option", { value: h, children: pad2(h) }, h))
238
+ }
239
+ ),
240
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: bem("time__sep"), children: ":" }),
241
+ /* @__PURE__ */ jsx(
242
+ "select",
243
+ {
244
+ "aria-label": "Minute",
245
+ className: bem("time__select"),
246
+ value: selectedDate ? Math.round(
247
+ selectedDate.minute() / Math.max(1, minuteStep)
248
+ ) * Math.max(1, minuteStep) : 0,
249
+ onChange: /* @__PURE__ */ __name((e) => onTimeChange(parseInt(e.target.value, 10), "minute"), "onChange"),
250
+ children: minutes.map((m) => /* @__PURE__ */ jsx("option", { value: m, children: pad2(m) }, m))
251
+ }
252
+ )
253
+ ] }),
254
+ /* @__PURE__ */ jsxs("div", { className: bem("footer"), children: [
255
+ /* @__PURE__ */ jsx(
256
+ "button",
257
+ {
258
+ className: bem("footer__btn", { ghost: true }),
259
+ type: "button",
260
+ onClick: onToday,
261
+ children: todayLabel
262
+ }
263
+ ),
264
+ /* @__PURE__ */ jsx(
265
+ "button",
266
+ {
267
+ className: bem("footer__btn", { ghost: true }),
268
+ type: "button",
269
+ onClick: onClear,
270
+ children: clearLabel
271
+ }
272
+ ),
273
+ /* @__PURE__ */ jsx(
274
+ "button",
275
+ {
276
+ className: bem("footer__btn", { filled: true }),
277
+ type: "button",
278
+ onClick: onApply,
279
+ children: applyLabel
280
+ }
281
+ )
282
+ ] })
283
+ ]
284
+ }
285
+ )
286
+ ] });
287
+ }
288
+ __name(DatePickerDialog, "DatePickerDialog");
289
+ export {
290
+ DatePickerDialog
291
+ };