@uxf/ui 10.0.0-beta.9 → 10.0.1

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 (386) hide show
  1. package/_file-input-base/file-input-base.js +15 -1
  2. package/_file-input-base/index.d.ts +1 -1
  3. package/_input-with-popover/input-with-popover.d.ts +4 -3
  4. package/_input-with-popover/input-with-popover.js +26 -26
  5. package/_select-base/_select-base.d.ts +3 -2
  6. package/_select-base/_select-base.js +6 -5
  7. package/_select-base/index.d.ts +1 -1
  8. package/alert-bubble/alert-bubble.d.ts +8 -0
  9. package/alert-bubble/alert-bubble.js +22 -0
  10. package/alert-bubble/alert-bubble.spec.d.ts +1 -0
  11. package/alert-bubble/alert-bubble.spec.js +9 -0
  12. package/alert-bubble/alert-bubble.stories.d.ts +7 -0
  13. package/alert-bubble/alert-bubble.stories.js +50 -0
  14. package/alert-bubble/index.d.ts +3 -0
  15. package/alert-bubble/index.js +5 -0
  16. package/alert-bubble/theme.d.ts +16 -0
  17. package/alert-bubble/theme.js +2 -0
  18. package/avatar/README.md +8 -0
  19. package/avatar/avatar.stories.js +1 -1
  20. package/avatar/index.d.ts +1 -1
  21. package/avatar-file-input/README.md +1 -0
  22. package/avatar-file-input/avatar-file-input.d.ts +3 -0
  23. package/avatar-file-input/avatar-file-input.js +12 -6
  24. package/avatar-file-input/avatar-file-input.stories.js +5 -5
  25. package/avatar-file-input/index.d.ts +1 -1
  26. package/avatar-file-input/theme.d.ts +5 -0
  27. package/avatar-file-input/theme.js +2 -0
  28. package/badge/README.md +1 -0
  29. package/badge/badge.d.ts +1 -1
  30. package/badge/badge.stories.js +1 -1
  31. package/badge/index.d.ts +1 -1
  32. package/button/README.md +68 -0
  33. package/button/button.stories.js +0 -1
  34. package/button/index.d.ts +1 -1
  35. package/button/theme.d.ts +1 -0
  36. package/button-group/README.md +1 -0
  37. package/button-group/button-group.js +1 -1
  38. package/button-group/button-group.stories.js +1 -1
  39. package/button-group/index.d.ts +1 -1
  40. package/button-list/README.md +1 -0
  41. package/button-list/button-list.d.ts +1 -1
  42. package/button-list/button-list.js +22 -22
  43. package/button-list/index.d.ts +1 -1
  44. package/calendar/README.md +1 -0
  45. package/calendar/calendar-day-cell.d.ts +4 -1
  46. package/calendar/calendar-day-cell.js +18 -18
  47. package/{date-picker/date-picker-navigation.d.ts → calendar/calendar-navigation.d.ts} +2 -3
  48. package/{date-picker/date-picker-navigation.js → calendar/calendar-navigation.js} +6 -6
  49. package/calendar/calendar-provider.js +2 -2
  50. package/calendar/calendar.d.ts +5 -0
  51. package/calendar/calendar.js +6 -9
  52. package/calendar/calendar.stories.js +1 -1
  53. package/calendar/index.d.ts +4 -1
  54. package/calendar/index.js +5 -15
  55. package/checkbox/README.md +1 -0
  56. package/checkbox/checkbox.stories.js +1 -1
  57. package/checkbox/index.d.ts +1 -1
  58. package/checkbox-button/README.md +1 -0
  59. package/checkbox-button/checkbox-button.js +2 -2
  60. package/checkbox-button/checkbox-button.stories.js +1 -1
  61. package/checkbox-button/index.d.ts +1 -1
  62. package/checkbox-input/README.md +1 -0
  63. package/checkbox-input/checkbox-input.d.ts +1 -1
  64. package/checkbox-input/checkbox-input.stories.js +1 -1
  65. package/checkbox-input/index.d.ts +1 -1
  66. package/chip/README.md +1 -0
  67. package/chip/chip.d.ts +1 -1
  68. package/chip/chip.js +5 -3
  69. package/chip/chip.stories.js +37 -31
  70. package/chip/index.d.ts +2 -2
  71. package/color-radio/README.md +8 -0
  72. package/color-radio/color-radio.js +1 -1
  73. package/color-radio/index.d.ts +1 -1
  74. package/color-radio-group/README.md +9 -0
  75. package/color-radio-group/color-radio-group.js +3 -3
  76. package/color-radio-group/color-radio-group.stories.js +1 -1
  77. package/color-radio-group/index.d.ts +1 -1
  78. package/combobox/README.md +12 -0
  79. package/combobox/combobox.d.ts +1 -1
  80. package/combobox/combobox.js +1 -1
  81. package/combobox/combobox.stories.d.ts +2 -1
  82. package/combobox/combobox.stories.js +7 -3
  83. package/combobox/index.d.ts +1 -1
  84. package/config/icons-config.d.ts +1 -1
  85. package/config/icons-config.js +1 -1
  86. package/config/icons.d.ts +13 -3
  87. package/config/icons.js +3 -1
  88. package/content/types.d.ts +1 -1
  89. package/context/provider.js +1 -1
  90. package/create-component-preview-page/create-component-preview-page.d.ts +8 -0
  91. package/create-component-preview-page/create-component-preview-page.js +40 -0
  92. package/create-component-preview-page/index.d.ts +2 -0
  93. package/create-component-preview-page/index.js +18 -0
  94. package/create-component-preview-page/ui-components.d.ts +237 -0
  95. package/create-component-preview-page/ui-components.js +263 -0
  96. package/create-component-preview-page/ui-readmes.d.ts +2 -0
  97. package/create-component-preview-page/ui-readmes.js +102 -0
  98. package/css/alert-bubble.css +100 -0
  99. package/css/avatar-file-input.css +54 -20
  100. package/css/avatar.css +4 -4
  101. package/css/badge.css +5 -5
  102. package/css/button-group.css +1 -1
  103. package/css/button-list.css +2 -2
  104. package/css/button.css +78 -32
  105. package/css/calendar.css +115 -51
  106. package/css/checkbox-button.css +10 -10
  107. package/css/checkbox.css +9 -9
  108. package/css/chip.css +5 -3
  109. package/css/color-radio-group.css +1 -1
  110. package/css/color-radio.css +3 -3
  111. package/css/component-structure-analyzer.css +12 -12
  112. package/css/date-picker.css +10 -3
  113. package/css/date-range-picker.css +21 -0
  114. package/css/datetime-picker.css +2 -2
  115. package/css/dialog.css +55 -0
  116. package/css/dropdown.css +11 -3
  117. package/css/dropzone.css +6 -6
  118. package/css/error-message.css +1 -1
  119. package/css/file-input.css +2 -2
  120. package/css/flash-messages.css +133 -9
  121. package/css/icon.css +1 -1
  122. package/css/image-gallery.css +8 -8
  123. package/css/input-with-popover.css +1 -1
  124. package/css/input.css +10 -10
  125. package/css/layout.css +4 -4
  126. package/css/list-item.css +2 -2
  127. package/css/message.css +92 -0
  128. package/css/modal.css +10 -54
  129. package/css/multi-combobox.css +12 -12
  130. package/css/pagination.css +14 -14
  131. package/css/paper.css +1 -1
  132. package/css/radio-group.css +3 -3
  133. package/css/radio.css +7 -7
  134. package/css/raster-image.css +1 -1
  135. package/css/select-base.css +1 -1
  136. package/css/tabs.css +16 -16
  137. package/css/text-link.css +4 -4
  138. package/css/textarea.css +68 -76
  139. package/css/time-picker.css +12 -16
  140. package/css/toggle.css +3 -3
  141. package/css/tooltip.css +2 -2
  142. package/date-picker/README.md +9 -0
  143. package/date-picker/date-picker-content.d.ts +5 -2
  144. package/date-picker/date-picker-content.js +4 -3
  145. package/date-picker/date-picker-decade.js +10 -10
  146. package/date-picker/date-picker-month.js +6 -6
  147. package/date-picker/date-picker-year.js +2 -2
  148. package/date-picker/date-picker.d.ts +4 -1
  149. package/date-picker/date-picker.js +4 -2
  150. package/date-picker/date-picker.stories.js +2 -1
  151. package/date-picker/index.d.ts +1 -1
  152. package/date-picker-input/README.md +11 -0
  153. package/date-picker-input/date-picker-input.d.ts +2 -0
  154. package/date-picker-input/date-picker-input.js +5 -3
  155. package/date-picker-input/date-picker-input.stories.js +1 -1
  156. package/date-picker-input/index.d.ts +1 -1
  157. package/date-picker-input/index.js +3 -3
  158. package/date-range-picker/README.md +1 -0
  159. package/date-range-picker/date-range-picker-content.d.ts +5 -0
  160. package/date-range-picker/date-range-picker-content.js +56 -0
  161. package/date-range-picker/date-range-picker-decade.d.ts +6 -0
  162. package/date-range-picker/date-range-picker-decade.js +72 -0
  163. package/date-range-picker/date-range-picker-month.d.ts +8 -0
  164. package/date-range-picker/date-range-picker-month.js +69 -0
  165. package/date-range-picker/date-range-picker-year.d.ts +7 -0
  166. package/date-range-picker/date-range-picker-year.js +80 -0
  167. package/date-range-picker/date-range-picker.d.ts +11 -0
  168. package/date-range-picker/date-range-picker.js +51 -0
  169. package/date-range-picker/date-range-picker.spec.d.ts +1 -0
  170. package/date-range-picker/date-range-picker.spec.js +9 -0
  171. package/date-range-picker/date-range-picker.stories.d.ts +7 -0
  172. package/date-range-picker/date-range-picker.stories.js +43 -0
  173. package/date-range-picker/index.d.ts +3 -0
  174. package/date-range-picker/index.js +5 -0
  175. package/date-range-picker/types.d.ts +5 -0
  176. package/date-range-picker/types.js +2 -0
  177. package/date-range-picker-input/README.md +1 -0
  178. package/date-range-picker-input/date-range-picker-input.d.ts +17 -0
  179. package/date-range-picker-input/date-range-picker-input.js +62 -0
  180. package/date-range-picker-input/date-range-picker-input.spec.d.ts +1 -0
  181. package/date-range-picker-input/date-range-picker-input.spec.js +9 -0
  182. package/date-range-picker-input/date-range-picker-input.stories.d.ts +10 -0
  183. package/date-range-picker-input/date-range-picker-input.stories.js +53 -0
  184. package/date-range-picker-input/index.d.ts +2 -0
  185. package/date-range-picker-input/index.js +5 -0
  186. package/datetime-picker/README.md +13 -0
  187. package/datetime-picker/datetime-picker.d.ts +3 -1
  188. package/datetime-picker/datetime-picker.js +5 -5
  189. package/datetime-picker/index.d.ts +1 -1
  190. package/datetime-picker/index.js +2 -2
  191. package/datetime-picker-input/README.md +1 -0
  192. package/datetime-picker-input/datetime-picker-input.d.ts +2 -0
  193. package/datetime-picker-input/datetime-picker-input.js +5 -3
  194. package/datetime-picker-input/datetime-picker-input.stories.js +1 -1
  195. package/datetime-picker-input/index.d.ts +1 -1
  196. package/datetime-picker-input/index.js +2 -2
  197. package/dialog/dialog.d.ts +11 -0
  198. package/{modal/modal-dialog.js → dialog/dialog.js} +9 -10
  199. package/dialog/dialog.spec.d.ts +1 -0
  200. package/dialog/dialog.spec.js +9 -0
  201. package/dialog/dialog.stories.d.ts +7 -0
  202. package/dialog/dialog.stories.js +47 -0
  203. package/dialog/index.d.ts +2 -0
  204. package/dialog/index.js +5 -0
  205. package/dialog/theme.d.ts +4 -0
  206. package/dialog/theme.js +2 -0
  207. package/dropdown/README.md +1 -0
  208. package/dropdown/dropdown.stories.js +2 -2
  209. package/dropdown/index.d.ts +1 -1
  210. package/dropzone/README.md +8 -0
  211. package/dropzone/dropzone-input.js +10 -6
  212. package/dropzone/dropzone-list.js +2 -16
  213. package/dropzone/dropzone.stories.js +7 -7
  214. package/error-message/README.md +7 -0
  215. package/error-message/error-message.stories.js +1 -1
  216. package/file-input/README.md +11 -0
  217. package/file-input/file-input.d.ts +3 -0
  218. package/file-input/file-input.js +10 -22
  219. package/file-input/file-input.stories.js +5 -5
  220. package/file-input/index.d.ts +1 -1
  221. package/flash-messages/README.md +23 -0
  222. package/flash-messages/flash-message.d.ts +1 -1
  223. package/flash-messages/flash-message.js +1 -1
  224. package/flash-messages/flash-messages.js +52 -18
  225. package/flash-messages/flash-messages.stories.js +12 -0
  226. package/flash-messages/index.d.ts +2 -2
  227. package/flash-messages/index.js +4 -4
  228. package/form-component/README.md +7 -0
  229. package/form-component/index.d.ts +1 -1
  230. package/hooks/use-dropdown.d.ts +16 -8
  231. package/icon/README.md +11 -0
  232. package/icon/icon.stories.js +1 -1
  233. package/icon/index.d.ts +1 -1
  234. package/image-gallery/components/close-button.d.ts +2 -1
  235. package/image-gallery/components/close-button.js +2 -3
  236. package/image-gallery/components/gallery.d.ts +4 -1
  237. package/image-gallery/components/gallery.js +6 -5
  238. package/image-gallery/components/next-button.d.ts +7 -0
  239. package/image-gallery/components/next-button.js +14 -0
  240. package/image-gallery/components/prev-button.d.ts +7 -0
  241. package/image-gallery/components/prev-button.js +14 -0
  242. package/image-gallery/image-gallery.d.ts +4 -1
  243. package/image-gallery/image-gallery.js +2 -2
  244. package/image-gallery/image-gallery.stories.js +5 -1
  245. package/image-gallery/image.d.ts +1 -1
  246. package/image-gallery/image.js +1 -1
  247. package/image-gallery/use-image.js +1 -1
  248. package/input/README.md +8 -0
  249. package/input/input-element.d.ts +1 -0
  250. package/input/input-element.js +1 -1
  251. package/input/input.d.ts +2 -2
  252. package/input/input.js +3 -3
  253. package/input/input.stories.js +3 -3
  254. package/label/README.md +7 -0
  255. package/label/index.d.ts +1 -1
  256. package/label/label.stories.js +1 -1
  257. package/layout/index.d.ts +1 -1
  258. package/layout/layout.js +28 -28
  259. package/list-item/README.md +7 -0
  260. package/list-item/index.d.ts +1 -1
  261. package/list-item/list-item.stories.js +1 -1
  262. package/loader/README.md +7 -0
  263. package/loader/index.d.ts +1 -1
  264. package/message/README.md +1 -0
  265. package/message/index.d.ts +3 -0
  266. package/message/index.js +7 -0
  267. package/message/message-content.d.ts +17 -0
  268. package/message/message-content.js +41 -0
  269. package/message/message-service.d.ts +13 -0
  270. package/message/message-service.js +29 -0
  271. package/message/message.d.ts +20 -0
  272. package/message/message.js +47 -0
  273. package/message/message.spec.d.ts +1 -0
  274. package/message/message.spec.js +9 -0
  275. package/message/message.stories.d.ts +7 -0
  276. package/message/message.stories.js +82 -0
  277. package/message/theme.d.ts +12 -0
  278. package/message/theme.js +2 -0
  279. package/modal/README.md +24 -0
  280. package/modal/index.d.ts +3 -2
  281. package/modal/index.js +3 -3
  282. package/modal/modal.d.ts +6 -4
  283. package/modal/modal.js +9 -9
  284. package/modal/modal.stories.js +12 -0
  285. package/modal/theme.d.ts +7 -0
  286. package/multi-combobox/README.md +10 -0
  287. package/multi-combobox/_multi-combobox-base.js +28 -22
  288. package/multi-combobox/multi-combobox.js +1 -1
  289. package/multi-combobox/multi-combobox.stories.js +7 -4
  290. package/multi-combobox/types.d.ts +5 -1
  291. package/multi-select/README.md +11 -0
  292. package/multi-select/_multi-select-base.js +21 -21
  293. package/multi-select/index.d.ts +1 -1
  294. package/multi-select/multi-select.js +1 -1
  295. package/multi-select/multi-select.stories.js +6 -3
  296. package/multi-select/types.d.ts +1 -1
  297. package/package.json +17 -12
  298. package/pagination/README.md +31 -0
  299. package/pagination/index.d.ts +1 -1
  300. package/pagination/pagination.d.ts +1 -1
  301. package/pagination/pagination.js +2 -2
  302. package/pagination/pagination.stories.d.ts +0 -3
  303. package/pagination/pagination.stories.js +14 -30
  304. package/paper/README.md +7 -0
  305. package/paper/index.d.ts +1 -1
  306. package/paper/paper.stories.js +1 -1
  307. package/radio/README.md +7 -0
  308. package/radio/index.d.ts +1 -1
  309. package/radio/radio.stories.js +1 -1
  310. package/radio-group/README.md +8 -0
  311. package/radio-group/index.d.ts +2 -2
  312. package/radio-group/radio-group.d.ts +3 -3
  313. package/radio-group/radio-group.js +2 -2
  314. package/radio-group/radio-group.stories.js +5 -5
  315. package/raster-image/README.md +7 -0
  316. package/raster-image/index.d.ts +1 -1
  317. package/raster-image/raster-image.js +1 -1
  318. package/scripts/generate-tw-tokens.js +40 -32
  319. package/select/README.md +11 -0
  320. package/select/index.d.ts +1 -1
  321. package/select/select.d.ts +1 -4
  322. package/select/select.js +2 -2
  323. package/select/select.stories.d.ts +2 -1
  324. package/select/select.stories.js +9 -3
  325. package/tabs/README.md +7 -0
  326. package/tabs/index.d.ts +1 -1
  327. package/text-input/README.md +10 -0
  328. package/text-input/index.d.ts +1 -1
  329. package/text-input/text-input.d.ts +1 -0
  330. package/text-input/text-input.js +2 -2
  331. package/text-link/README.md +19 -0
  332. package/text-link/index.d.ts +1 -1
  333. package/text-link/text-link.d.ts +1 -1
  334. package/textarea/README.md +9 -0
  335. package/textarea/index.d.ts +1 -1
  336. package/textarea/textarea.js +5 -5
  337. package/textarea/textarea.stories.js +1 -1
  338. package/time-picker/README.md +8 -0
  339. package/time-picker/index.d.ts +1 -1
  340. package/time-picker/time-picker-hour.js +6 -6
  341. package/time-picker/time-picker-hours.js +2 -2
  342. package/time-picker/time-picker-input.stories.js +2 -1
  343. package/time-picker/time-picker-minute.js +6 -6
  344. package/time-picker/time-picker-minutes.js +2 -2
  345. package/time-picker/time-picker.d.ts +2 -1
  346. package/time-picker/time-picker.js +7 -6
  347. package/time-picker-input/README.md +9 -0
  348. package/time-picker-input/index.d.ts +1 -1
  349. package/time-picker-input/index.js +3 -3
  350. package/time-picker-input/time-picker-input.js +6 -4
  351. package/time-picker-input/time-picker-input.stories.js +1 -1
  352. package/toggle/README.md +7 -0
  353. package/toggle/index.d.ts +1 -1
  354. package/toggle/toggle.js +8 -8
  355. package/toggle/toggle.stories.js +1 -1
  356. package/tooltip/README.md +7 -0
  357. package/tooltip/index.d.ts +2 -2
  358. package/tooltip/tooltip.js +27 -25
  359. package/tooltip/tooltip.stories.js +1 -1
  360. package/tooltip/use-tooltip.d.ts +19 -11
  361. package/tooltip/use-tooltip.js +15 -15
  362. package/tw-tokens/tw-colors.d.ts +283 -282
  363. package/tw-tokens/tw-colors.js +283 -282
  364. package/tw-tokens/tw-line-height.d.ts +8 -8
  365. package/tw-tokens/tw-line-height.js +8 -8
  366. package/tw-tokens/tw-spacing.d.ts +34 -34
  367. package/tw-tokens/tw-spacing.js +34 -34
  368. package/tw-tokens/tw-z-index.d.ts +7 -7
  369. package/tw-tokens/tw-z-index.js +7 -7
  370. package/types/index.d.ts +1 -1
  371. package/types/index.js +1 -1
  372. package/typography/README.md +7 -0
  373. package/utils/action.d.ts +2 -1
  374. package/utils/action.js +2 -2
  375. package/utils/files/get-file-icon.d.ts +2 -0
  376. package/utils/files/get-file-icon.js +19 -0
  377. package/utils/icons-config.js +13 -3
  378. package/utils/mocks/{uploadFIle.mock.js → upload-file.mock.js} +1 -1
  379. package/utils/snap-test.js +1 -1
  380. package/utils/storybook-config.d.ts +12 -2
  381. package/utils/storybook-config.js +9 -1
  382. package/utils/tailwind-config.js +10 -1
  383. package/image-gallery/components/arrow-button.d.ts +0 -7
  384. package/image-gallery/components/arrow-button.js +0 -14
  385. package/modal/modal-dialog.d.ts +0 -11
  386. /package/utils/mocks/{uploadFIle.mock.d.ts → upload-file.mock.d.ts} +0 -0
package/css/textarea.css CHANGED
@@ -1,99 +1,93 @@
1
1
  .uxf-textarea {
2
- &__wrapper {
3
- @apply rounded-md text-base border p-2 shadow-sm;
2
+ :root .light & {
3
+ --bg-color: theme("colors.white");
4
+ --border-color: theme("colors.gray.200");
5
+ --color: theme("colors.gray.900");
6
+ }
4
7
 
5
- :root .light & {
6
- @apply bg-white text-gray-900 border-gray-200;
7
- }
8
+ :root .dark & {
9
+ --bg-color: theme("colors.gray.800");
10
+ --border-color: theme("colors.gray.700");
11
+ --color: theme("colors.gray.300");
12
+ }
8
13
 
9
- :root .dark & {
10
- @apply bg-gray-800 text-gray-300 border-gray-700;
11
- }
14
+ &__wrapper {
15
+ background-color: var(--bg-color);
16
+ border: 1px solid var(--border-color);
17
+ border-radius: theme("borderRadius.md");
18
+ box-shadow: theme("boxShadow.sm");
19
+ color: var(--color);
20
+ padding: theme("spacing.2");
12
21
  }
13
22
 
14
23
  &__element {
15
- @apply bg-transparent outline-none resize-none w-full;
16
-
17
- :root .light & {
18
- @apply placeholder:text-gray-400;
19
- }
20
-
21
- :root .dark & {
22
- @apply placeholder:text-gray-400;
24
+ appearance: none;
25
+ background-color: transparent;
26
+ display: block;
27
+ outline: none;
28
+ overflow-y: hidden;
29
+ resize: none;
30
+ width: 100%;
31
+
32
+ &::placeholder {
33
+ color: theme("colors.gray.400");
23
34
  }
24
35
  }
25
36
 
26
37
  &.is-focused {
27
- .uxf-textarea__wrapper {
28
- @apply ring-2 ring-inset ring-offset-0;
29
-
30
- :root .light & {
31
- @apply ring-primary;
32
- }
33
-
34
- :root .dark & {
35
- @apply ring-primary;
36
- }
38
+ :root .light &,
39
+ :root .dark & {
40
+ --border-color: theme("colors.primary.DEFAULT");
37
41
  }
38
- }
39
-
40
- &.is-disabled {
41
- @apply cursor-not-allowed;
42
42
 
43
43
  .uxf-textarea__wrapper {
44
- :root .light & {
45
- @apply bg-gray-300;
46
- }
47
-
48
- :root .dark & {
49
- @apply bg-gray-600;
50
- }
44
+ @apply ring-2 ring-inset ring-[--border-color] ring-offset-0;
51
45
  }
46
+ }
52
47
 
53
- .uxf-textarea__element {
54
- @apply cursor-not-allowed;
48
+ &.is-invalid {
49
+ :root .light &,
50
+ :root .dark & {
51
+ --border-color: var(--color);
52
+ --color: theme("colors.error.DEFAULT");
55
53
  }
56
54
  }
57
55
 
58
56
  &.is-readonly {
59
- @apply cursor-text;
57
+ cursor: text;
58
+ pointer-events: none;
60
59
 
61
- .uxf-textarea__element {
62
- @apply cursor-not-allowed pointer-events-none;
60
+ :root .light & {
61
+ --bg-color: theme("colors.gray.300");
62
+ --border-color: theme("colors.gray.200");
63
+ }
64
+
65
+ :root .dark & {
66
+ --bg-color: theme("colors.gray.500");
67
+ --border-color: theme("colors.gray.700");
63
68
  }
64
69
 
65
70
  .uxf-textarea__wrapper {
66
71
  @apply ring-0;
67
-
68
- :root .light & {
69
- @apply border-gray-300;
70
- }
71
-
72
- :root .dark & {
73
- @apply border-gray-500;
74
- }
75
72
  }
76
73
  }
77
74
 
78
- &.is-invalid {
79
- &.is-focused {
80
- .uxf-textarea__wrapper {
81
- @apply ring-0;
82
- }
83
- }
75
+ &.is-disabled {
76
+ cursor: not-allowed;
84
77
 
85
- .uxf-textarea__wrapper {
86
- @apply border-error;
78
+ :root .light & {
79
+ --bg-color: theme("colors.gray.300");
80
+ }
87
81
 
88
- .uxf-textarea__element {
89
- :root .light & {
90
- @apply text-error;
91
- }
82
+ :root .dark & {
83
+ --bg-color: theme("colors.gray.600");
84
+ }
85
+ }
92
86
 
93
- :root .dark & {
94
- @apply text-error;
95
- }
96
- }
87
+ &.is-readonly,
88
+ &.is-disabled {
89
+ .uxf-textarea__element {
90
+ cursor: inherit;
97
91
  }
98
92
  }
99
93
 
@@ -101,24 +95,22 @@
101
95
  &,
102
96
  &:hover,
103
97
  &:focus {
104
- -webkit-appearance: none;
105
- -moz-appearance: none;
106
98
  appearance: none;
107
99
  transition: background-color 5000s ease-in-out 0s !important;
108
100
 
101
+ :root .light & {
102
+ background-color: theme("colors.white");
103
+ -webkit-box-shadow: inset 0 0 0 1000px theme("colors.white"); /* stylelint-disable-line property-no-vendor-prefix */
104
+ box-shadow: inset 0 0 0 1000px theme("colors.white");
105
+ }
106
+
109
107
  :root .dark & {
110
108
  -webkit-text-fill-color: theme("colors.gray.300");
111
- -webkit-box-shadow: inset 0 0 0 1000px theme("colors.gray.800");
112
- box-shadow: inset 0 0 0 1000px theme("colors.gray.800");
113
109
  background-color: theme("colors.gray.800");
110
+ -webkit-box-shadow: inset 0 0 0 1000px theme("colors.gray.800"); /* stylelint-disable-line property-no-vendor-prefix */
111
+ box-shadow: inset 0 0 0 1000px theme("colors.gray.800");
114
112
  caret-color: white;
115
113
  }
116
-
117
- :root .light & {
118
- -webkit-box-shadow: inset 0 0 0 1000px theme("colors.white");
119
- box-shadow: inset 0 0 0 1000px theme("colors.white");
120
- background-color: theme("colors.white");
121
- }
122
114
  }
123
115
  }
124
116
  }
@@ -1,32 +1,28 @@
1
1
  .uxf-time-picker {
2
2
  &__global {
3
- @apply flex items-center justify-between px-4 w-[180px] mx-auto;
3
+ align-items: center;
4
+ display: flex;
5
+ justify-content: space-between;
6
+ margin: 0 auto;
7
+ padding: 0 theme("spacing.4");
8
+ width: 180px;
4
9
 
5
10
  &__column {
6
- @apply flex flex-col items-center shrink-0;
7
-
11
+ align-items: center;
12
+ display: flex;
13
+ flex-direction: column;
14
+ flex-shrink: 0;
8
15
  width: 48px;
9
16
 
10
17
  & > :nth-child(1),
11
18
  & > :nth-child(3) {
12
- height: 24px
19
+ height: 24px;
13
20
  }
14
21
  }
15
22
  }
16
23
 
17
24
  &__hours,
18
25
  &__minutes {
19
- @apply grid grid-cols-4 place-items-center gap-1 mx-auto;
20
-
21
- text-align: center;
22
- width: 200px;
23
- }
24
-
25
- :root .light & {
26
- @apply text-gray-900;
27
- }
28
-
29
- :root .dark & {
30
- @apply bg-gray-900 text-white;
26
+ width: 288px;
31
27
  }
32
28
  }
package/css/toggle.css CHANGED
@@ -1,5 +1,5 @@
1
1
  .uxf-toggle {
2
- @apply relative inline-flex shrink-0 h-6 w-12 items-center rounded-full p-0.5 outline-none ring-offset-2
2
+ @apply relative inline-flex h-6 w-12 shrink-0 items-center rounded-full p-0.5 outline-none ring-offset-2
3
3
  focus-visible:ring-2 [&>*]:active:w-[30px];
4
4
 
5
5
  &__wrapper {
@@ -39,7 +39,7 @@
39
39
  }
40
40
 
41
41
  :root .light & {
42
- @apply bg-gray-200 focus-visible:ring-primary;
42
+ @apply focus-visible:ring-primary bg-gray-200;
43
43
 
44
44
  &__inner {
45
45
  @apply bg-white;
@@ -59,7 +59,7 @@
59
59
  }
60
60
 
61
61
  :root .dark & {
62
- @apply bg-gray-400 focus-visible:ring-primary focus-visible:ring-offset-gray-900;
62
+ @apply focus-visible:ring-primary bg-gray-400 focus-visible:ring-offset-gray-900;
63
63
 
64
64
  &.is-selected {
65
65
  @apply bg-primary;
package/css/tooltip.css CHANGED
@@ -1,7 +1,7 @@
1
1
  .uxf-tooltip {
2
- @apply w-max max-w-[calc(100vw-20px)] bg-lightHigh p-3 text-white rounded-lg z-tooltip;
2
+ @apply z-tooltip bg-lightHigh w-max max-w-[calc(100vw-20px)] rounded-lg p-3 text-white;
3
3
 
4
4
  &__arrow {
5
- @apply bg-lightHigh rounded-sm z-tooltip;
5
+ @apply z-tooltip bg-lightHigh rounded-sm;
6
6
  }
7
7
  }
@@ -0,0 +1,9 @@
1
+ # DatePicker
2
+
3
+ ## CSS dependencies
4
+
5
+ ```css
6
+ @import url("@uxf/ui/button/button.css");
7
+ @import url("@uxf/ui/calendar/calendar.css");
8
+ @import url("@uxf/ui/date-picker/date-picker.css");
9
+ ```
@@ -1,2 +1,5 @@
1
- import { FC, PropsWithChildren } from "react";
2
- export declare const DatePickerContent: FC<PropsWithChildren>;
1
+ import { FC, PropsWithChildren, ReactNode } from "react";
2
+ export interface DatePickerContentProps {
3
+ bottomContent?: ReactNode;
4
+ }
5
+ export declare const DatePickerContent: FC<PropsWithChildren<DatePickerContentProps>>;
@@ -24,11 +24,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.DatePickerContent = void 0;
27
+ const date_picker_context_1 = require("@uxf/datepicker/contexts/date-picker-context");
27
28
  const react_1 = __importStar(require("react"));
28
- const date_picker_year_1 = require("./date-picker-year");
29
29
  const date_picker_decade_1 = require("./date-picker-decade");
30
- const date_picker_context_1 = require("@uxf/datepicker/contexts/date-picker-context");
31
30
  const date_picker_month_1 = require("./date-picker-month");
31
+ const date_picker_year_1 = require("./date-picker-year");
32
32
  const DatePickerContent = (props) => {
33
33
  // eslint-disable-next-line react/destructuring-assignment
34
34
  const { goToDate, activeMonths } = (0, react_1.useContext)(date_picker_context_1.DatePickerContext);
@@ -49,7 +49,8 @@ const DatePickerContent = (props) => {
49
49
  }), [onMonthSelect, onYearSelect, onDecadeYearSelect, setViewMode, activeMonths]);
50
50
  return (react_1.default.createElement("div", { className: "uxf-date-picker" },
51
51
  props.children,
52
- datePickerComponents[viewMode]));
52
+ datePickerComponents[viewMode],
53
+ props.bottomContent && react_1.default.createElement("div", { className: "uxf-date-picker__bottom-content" }, props.bottomContent)));
53
54
  };
54
55
  exports.DatePickerContent = DatePickerContent;
55
56
  exports.DatePickerContent.displayName = "UxfUiDatePickerContent";
@@ -27,13 +27,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.DatePickerDecade = void 0;
30
- const dayjs_1 = __importDefault(require("dayjs"));
31
- const react_1 = __importStar(require("react"));
30
+ const classes_1 = require("@uxf/core/constants/classes");
31
+ const cx_1 = require("@uxf/core/utils/cx");
32
32
  const date_picker_context_1 = require("@uxf/datepicker/contexts/date-picker-context");
33
33
  const use_decade_1 = require("@uxf/datepicker/hooks/use-decade");
34
- const cx_1 = require("@uxf/core/utils/cx");
35
- const classes_1 = require("@uxf/core/constants/classes");
36
- const date_picker_navigation_1 = require("./date-picker-navigation");
34
+ const dayjs_1 = __importDefault(require("dayjs"));
35
+ const react_1 = __importStar(require("react"));
36
+ const calendar_1 = require("../calendar");
37
37
  exports.DatePickerDecade = (0, react_1.memo)((props) => {
38
38
  const { onYearSelect } = props;
39
39
  const { canGoToYear, goToNextYear, goToPrevYear, activeMonths } = (0, react_1.useContext)(date_picker_context_1.DatePickerContext);
@@ -41,8 +41,8 @@ exports.DatePickerDecade = (0, react_1.memo)((props) => {
41
41
  const { decadeLabel, years } = (0, use_decade_1.useDecade)({
42
42
  year: currentYear,
43
43
  });
44
- const canGoToPrevDecade = canGoToYear((0, dayjs_1.default)(new Date(currentYear, 0)).subtract(4, "years").toDate());
45
- const canGoToNextDecade = canGoToYear((0, dayjs_1.default)(new Date(currentYear, 0)).add(4, "years").toDate());
44
+ const canGoToPrevDecade = canGoToYear((0, dayjs_1.default)(new Date(currentYear, 0)).subtract(5, "years").toDate());
45
+ const canGoToNextDecade = canGoToYear((0, dayjs_1.default)(new Date(currentYear, 0)).add(5, "years").toDate());
46
46
  const handleGoToPrevDecadeClick = (0, react_1.useCallback)(() => {
47
47
  if (canGoToPrevDecade) {
48
48
  goToPrevYear(9);
@@ -59,15 +59,15 @@ exports.DatePickerDecade = (0, react_1.memo)((props) => {
59
59
  }
60
60
  }, [canGoToYear, onYearSelect]);
61
61
  return (react_1.default.createElement(react_1.default.Fragment, null,
62
- react_1.default.createElement(date_picker_navigation_1.DatePickerNavigation, { prevButtonProps: {
62
+ react_1.default.createElement(calendar_1.CalendarNavigation, { prevButtonProps: {
63
63
  onClick: handleGoToPrevDecadeClick,
64
64
  title: "Zpět",
65
65
  }, nextButtonProps: {
66
66
  onClick: handleGoToNextDecadeClick,
67
- title: "Nadcházející rok",
67
+ title: "Vpřed",
68
68
  }, selectButtonProps: {
69
69
  children: decadeLabel,
70
70
  } }),
71
- react_1.default.createElement("div", { className: "uxf-calendar__decade" }, years.map((year, index) => (react_1.default.createElement("button", { className: (0, cx_1.cx)("uxf-calendar__cell uxf-calendar__cell-year", !canGoToYear(year.date) && classes_1.CLASSES.IS_DISABLED), key: year.yearLabel + index, onClick: handleSelectYear(year.date), type: "button" }, year.yearLabel))))));
71
+ react_1.default.createElement("div", { className: "uxf-calendar__decade" }, years.map((year) => (react_1.default.createElement("button", { className: (0, cx_1.cx)("uxf-calendar__cell uxf-calendar__cell-year", !canGoToYear(year.date) && classes_1.CLASSES.IS_DISABLED), key: year.yearLabel, onClick: handleSelectYear(year.date), type: "button" }, year.yearLabel))))));
72
72
  });
73
73
  exports.DatePickerDecade.displayName = "UxfUiDatePickerDecade";
@@ -32,10 +32,10 @@ const use_month_1 = require("@uxf/datepicker/hooks/use-month");
32
32
  const dayjs_1 = __importDefault(require("dayjs"));
33
33
  const react_1 = __importStar(require("react"));
34
34
  const calendar_1 = require("../calendar");
35
- const date_picker_navigation_1 = require("./date-picker-navigation");
36
35
  exports.DatePickerMonth = (0, react_1.memo)((props) => {
37
36
  const { setViewMode } = props;
38
- const { activeMonths, canGoToNextMonth, canGoToPrevMonth, firstDayOfWeek, goToNextMonthsByOneMonth, goToPrevMonthsByOneMonth, } = (0, react_1.useContext)(date_picker_context_1.DatePickerContext);
37
+ const datePickerProps = (0, react_1.useContext)(date_picker_context_1.DatePickerContext);
38
+ const { activeMonths, canGoToNextMonth, canGoToPrevMonth, firstDayOfWeek, goToNextMonthsByOneMonth, goToPrevMonthsByOneMonth, } = datePickerProps;
39
39
  const currentMonth = activeMonths[0].month;
40
40
  const currentYear = activeMonths[0].year;
41
41
  const { monthLabel } = (0, use_month_1.useMonth)({
@@ -54,19 +54,19 @@ exports.DatePickerMonth = (0, react_1.memo)((props) => {
54
54
  setViewMode("year");
55
55
  }, [setViewMode]);
56
56
  return (react_1.default.createElement(react_1.default.Fragment, null,
57
- react_1.default.createElement(date_picker_navigation_1.DatePickerNavigation, { prevButtonProps: {
57
+ react_1.default.createElement(calendar_1.CalendarNavigation, { prevButtonProps: {
58
58
  disabled: !canGoToPrevMonth,
59
59
  onClick: canGoToPrevMonth ? handleGoToPrevMonth : undefined,
60
- title: "Zpět",
60
+ title: "Předchozí měsíc",
61
61
  }, nextButtonProps: {
62
62
  disabled: !canGoToNextMonth,
63
63
  onClick: canGoToNextMonth ? handleGoToNextMonth : undefined,
64
- title: "Vpřed",
64
+ title: "Nadcházející měsíc",
65
65
  }, selectButtonProps: {
66
66
  children: monthLabel,
67
67
  onClick: handleMonthClick,
68
68
  title: "Vybrat měsíc",
69
69
  } }),
70
- react_1.default.createElement(calendar_1.Calendar, null)));
70
+ react_1.default.createElement(calendar_1.Calendar, { datePickerProps: datePickerProps })));
71
71
  });
72
72
  exports.DatePickerMonth.displayName = "UxfUiDatePickerMonth";
@@ -33,7 +33,7 @@ const date_picker_context_1 = require("@uxf/datepicker/contexts/date-picker-cont
33
33
  const use_year_1 = require("@uxf/datepicker/hooks/use-year");
34
34
  const dayjs_1 = __importDefault(require("dayjs"));
35
35
  const react_1 = __importStar(require("react"));
36
- const date_picker_navigation_1 = require("./date-picker-navigation");
36
+ const calendar_1 = require("../calendar");
37
37
  exports.DatePickerYear = (0, react_1.memo)((props) => {
38
38
  const { canGoToNextYear, canGoToPrevYear, goToNextYear, goToPrevYear, canGoToMonth, activeMonths } = (0, react_1.useContext)(date_picker_context_1.DatePickerContext);
39
39
  const currentYear = activeMonths[0].year;
@@ -61,7 +61,7 @@ exports.DatePickerYear = (0, react_1.memo)((props) => {
61
61
  }
62
62
  }, [canGoToMonth, props]);
63
63
  return (react_1.default.createElement(react_1.default.Fragment, null,
64
- react_1.default.createElement(date_picker_navigation_1.DatePickerNavigation, { prevButtonProps: {
64
+ react_1.default.createElement(calendar_1.CalendarNavigation, { prevButtonProps: {
65
65
  disabled: !canGoToPrevYear,
66
66
  onClick: canGoToPrevYear ? handleGoToPrevYear : undefined,
67
67
  title: "Předchozí rok",
@@ -1,10 +1,13 @@
1
- import { FC } from "react";
2
1
  import { OnDateChangeType } from "@uxf/datepicker/hooks/use-date-picker";
2
+ import { FC, ReactNode } from "react";
3
3
  export interface DatePickerProps {
4
4
  closePopoverHandler?: () => void;
5
5
  onChange: (data: OnDateChangeType) => void;
6
6
  selectedDate: Date | null;
7
7
  minDate?: Date;
8
8
  maxDate?: Date;
9
+ preventScroll?: boolean;
10
+ unavailableDates?: Date[];
11
+ bottomContent?: ReactNode;
9
12
  }
10
13
  export declare const DatePicker: FC<DatePickerProps>;
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DatePicker = void 0;
7
- const react_1 = __importDefault(require("react"));
8
7
  const date_picker_context_1 = require("@uxf/datepicker/contexts/date-picker-context");
9
8
  const use_date_picker_1 = require("@uxf/datepicker/hooks/use-date-picker");
9
+ const react_1 = __importDefault(require("react"));
10
10
  const date_picker_content_1 = require("./date-picker-content");
11
11
  const DatePicker = (props) => {
12
12
  const datePickerProps = (0, use_date_picker_1.useDatePicker)({
@@ -19,9 +19,11 @@ const DatePicker = (props) => {
19
19
  selectedDate: props.selectedDate,
20
20
  minBookingDate: props.minDate,
21
21
  maxBookingDate: props.maxDate,
22
+ preventScroll: props.preventScroll,
23
+ unavailableDates: props.unavailableDates,
22
24
  });
23
25
  return (react_1.default.createElement(date_picker_context_1.DatePickerContext.Provider, { value: datePickerProps },
24
- react_1.default.createElement(date_picker_content_1.DatePickerContent, null)));
26
+ react_1.default.createElement(date_picker_content_1.DatePickerContent, { bottomContent: props.bottomContent })));
25
27
  };
26
28
  exports.DatePicker = DatePicker;
27
29
  exports.DatePicker.displayName = "UxfUiDatePicker";
@@ -34,8 +34,9 @@ exports.default = {
34
34
  function Default() {
35
35
  const [value, setValue] = (0, react_1.useState)(null);
36
36
  const onChange = (0, action_1.action)("onChange", setValue);
37
+ const onClose = () => null;
37
38
  const testDatePickers = (react_1.default.createElement(react_1.default.Fragment, null,
38
- react_1.default.createElement(date_picker_1.DatePicker, { closePopoverHandler: close, onChange: onChange, selectedDate: value })));
39
+ react_1.default.createElement(date_picker_1.DatePicker, { closePopoverHandler: onClose, onChange: onChange, selectedDate: value })));
39
40
  return (react_1.default.createElement(react_1.default.Fragment, null,
40
41
  react_1.default.createElement("div", { className: "light max-w-[640px] space-y-4 rounded bg-white p-8" }, testDatePickers),
41
42
  react_1.default.createElement("div", { className: "dark max-w-[640px] space-y-4 rounded bg-gray-900 p-8 text-white" }, testDatePickers)));
@@ -1,3 +1,3 @@
1
+ export { DatePicker } from "./date-picker";
1
2
  export type { DatePickerProps } from "./date-picker";
2
3
  export type { ViewModeType } from "./types";
3
- export { DatePicker } from "./date-picker";
@@ -0,0 +1,11 @@
1
+ # DatePickerInput
2
+
3
+ ## CSS dependencies
4
+
5
+ ```css
6
+ @import url("@uxf/ui/icon/icon.css");
7
+ @import url("@uxf/ui/button/button.css");
8
+ @import url("@uxf/ui/calendar/calendar.css");
9
+ @import url("@uxf/ui/date-picker/date-picker.css");
10
+ @import url("@uxf/ui/_input-with-popover/input-with-popover.css");
11
+ ```
@@ -8,5 +8,7 @@ export interface DatePickerInputProps extends Omit<InputWithPopoverProps<string
8
8
  triggerElement?: ReactNode;
9
9
  minDate?: string;
10
10
  maxDate?: string;
11
+ unavailableDates?: Date[];
12
+ bottomContent?: ReactNode;
11
13
  }
12
14
  export declare const DatePickerInput: React.ForwardRefExoticComponent<DatePickerInputProps & React.RefAttributes<HTMLInputElement>>;
@@ -27,12 +27,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.DatePickerInput = exports.OUTPUT_DATE_FORMAT = exports.DISPLAY_DATE_FORMAT = exports.ALLOWED_DATE_FORMAT = void 0;
30
+ const cx_1 = require("@uxf/core/utils/cx");
30
31
  const dayjs_1 = __importStar(require("dayjs"));
32
+ const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
31
33
  const react_1 = __importStar(require("react"));
32
34
  const _input_with_popover_1 = require("../_input-with-popover");
33
- const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
34
- const icon_1 = require("../icon");
35
35
  const date_picker_1 = require("../date-picker");
36
+ const icon_1 = require("../icon");
36
37
  (0, dayjs_1.extend)(customParseFormat_1.default);
37
38
  exports.ALLOWED_DATE_FORMAT = ["D. M. YYYY", "DD. MM. YYYY", "D.M.YYYY", "DD.MM.YYYY"];
38
39
  exports.DISPLAY_DATE_FORMAT = "D. M. YYYY";
@@ -61,6 +62,7 @@ function getBoundaryDate(value) {
61
62
  exports.DatePickerInput = (0, react_1.forwardRef)((props, ref) => {
62
63
  var _a, _b;
63
64
  const onChange = props.onChange;
65
+ const className = (0, cx_1.cx)("uxf-date-picker-input", props.className);
64
66
  const onInputChange = (0, react_1.useCallback)((value) => {
65
67
  const parsedValue = (0, dayjs_1.default)(value, exports.ALLOWED_DATE_FORMAT, true);
66
68
  if (value !== "" && parsedValue.isValid()) {
@@ -78,6 +80,6 @@ exports.DatePickerInput = (0, react_1.forwardRef)((props, ref) => {
78
80
  const selectedDate = getSelectedDate(props.value);
79
81
  const parsedMinDate = getBoundaryDate(props.minDate);
80
82
  const parsedMaxDate = getBoundaryDate(props.maxDate);
81
- return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...props, onChange: onInputChange, placeholder: (_a = props.placeholder) !== null && _a !== void 0 ? _a : (0, dayjs_1.default)().format(exports.DISPLAY_DATE_FORMAT), ref: ref, value: value, triggerElement: (_b = props.triggerElement) !== null && _b !== void 0 ? _b : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }) }, ({ close }) => (react_1.default.createElement(date_picker_1.DatePicker, { minDate: parsedMinDate, maxDate: parsedMaxDate, closePopoverHandler: close, onChange: onDatePickerChange, selectedDate: selectedDate }))));
83
+ return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...props, className: className, onChange: onInputChange, placeholder: (_a = props.placeholder) !== null && _a !== void 0 ? _a : (0, dayjs_1.default)().format(exports.DISPLAY_DATE_FORMAT), ref: ref, value: value, triggerElement: (_b = props.triggerElement) !== null && _b !== void 0 ? _b : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }) }, ({ close }) => (react_1.default.createElement(date_picker_1.DatePicker, { minDate: parsedMinDate, maxDate: parsedMaxDate, closePopoverHandler: close, onChange: onDatePickerChange, preventScroll: true, selectedDate: selectedDate, unavailableDates: props.unavailableDates, bottomContent: props.bottomContent }))));
82
84
  });
83
85
  exports.DatePickerInput.displayName = "UxfUiDatePickerInput";
@@ -26,8 +26,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.Default = void 0;
27
27
  const react_1 = __importStar(require("react"));
28
28
  const icon_1 = require("../icon");
29
- const date_picker_input_1 = require("./date-picker-input");
30
29
  const action_1 = require("../utils/action");
30
+ const date_picker_input_1 = require("./date-picker-input");
31
31
  exports.default = {
32
32
  title: "UI/DatePickerInput",
33
33
  component: date_picker_input_1.DatePickerInput,
@@ -1,2 +1,2 @@
1
+ export { ALLOWED_DATE_FORMAT, DISPLAY_DATE_FORMAT, DatePickerInput, OUTPUT_DATE_FORMAT } from "./date-picker-input";
1
2
  export type { DatePickerInputProps } from "./date-picker-input";
2
- export { DatePickerInput, DISPLAY_DATE_FORMAT, OUTPUT_DATE_FORMAT, ALLOWED_DATE_FORMAT } from "./date-picker-input";
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ALLOWED_DATE_FORMAT = exports.OUTPUT_DATE_FORMAT = exports.DISPLAY_DATE_FORMAT = exports.DatePickerInput = void 0;
3
+ exports.OUTPUT_DATE_FORMAT = exports.DatePickerInput = exports.DISPLAY_DATE_FORMAT = exports.ALLOWED_DATE_FORMAT = void 0;
4
4
  var date_picker_input_1 = require("./date-picker-input");
5
- Object.defineProperty(exports, "DatePickerInput", { enumerable: true, get: function () { return date_picker_input_1.DatePickerInput; } });
5
+ Object.defineProperty(exports, "ALLOWED_DATE_FORMAT", { enumerable: true, get: function () { return date_picker_input_1.ALLOWED_DATE_FORMAT; } });
6
6
  Object.defineProperty(exports, "DISPLAY_DATE_FORMAT", { enumerable: true, get: function () { return date_picker_input_1.DISPLAY_DATE_FORMAT; } });
7
+ Object.defineProperty(exports, "DatePickerInput", { enumerable: true, get: function () { return date_picker_input_1.DatePickerInput; } });
7
8
  Object.defineProperty(exports, "OUTPUT_DATE_FORMAT", { enumerable: true, get: function () { return date_picker_input_1.OUTPUT_DATE_FORMAT; } });
8
- Object.defineProperty(exports, "ALLOWED_DATE_FORMAT", { enumerable: true, get: function () { return date_picker_input_1.ALLOWED_DATE_FORMAT; } });
@@ -0,0 +1 @@
1
+ # DateRangePicker
@@ -0,0 +1,5 @@
1
+ import { FC, PropsWithChildren, ReactNode } from "react";
2
+ export interface DateRangePickerContentProps {
3
+ bottomContent?: ReactNode;
4
+ }
5
+ export declare const DateRangePickerContent: FC<PropsWithChildren<DateRangePickerContentProps>>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.DateRangePickerContent = void 0;
27
+ const date_range_picker_context_1 = require("@uxf/datepicker/contexts/date-range-picker-context");
28
+ const react_1 = __importStar(require("react"));
29
+ const date_range_picker_decade_1 = require("./date-range-picker-decade");
30
+ const date_range_picker_month_1 = require("./date-range-picker-month");
31
+ const date_range_picker_year_1 = require("./date-range-picker-year");
32
+ const DateRangePickerContent = (props) => {
33
+ // eslint-disable-next-line react/destructuring-assignment
34
+ const { goToDate, activeMonths } = (0, react_1.useContext)(date_range_picker_context_1.DateRangePickerContext);
35
+ const [viewMode, setViewMode] = (0, react_1.useState)("month");
36
+ const onYearSelect = (0, react_1.useCallback)(() => setViewMode("decade"), [setViewMode]);
37
+ const onMonthSelect = (0, react_1.useCallback)((date) => {
38
+ goToDate(date);
39
+ setViewMode("month");
40
+ }, [goToDate, setViewMode]);
41
+ const onDecadeYearSelect = (0, react_1.useCallback)((date) => {
42
+ goToDate(date);
43
+ setViewMode("year");
44
+ }, [goToDate, setViewMode]);
45
+ const datePickerComponents = (0, react_1.useMemo)(() => ({
46
+ month: (react_1.default.createElement("div", { className: "uxf-date-range-picker__months" }, activeMonths.map((activeMonth) => (react_1.default.createElement(date_range_picker_month_1.DateRangePickerMonth, { key: `${activeMonth.year}-${activeMonth.month}`, month: activeMonth.month, setViewMode: setViewMode, year: activeMonth.year }))))),
47
+ year: react_1.default.createElement(date_range_picker_year_1.DateRangePickerYear, { onMonthSelect: (date) => onMonthSelect(date), onYearSelect: onYearSelect }),
48
+ decade: react_1.default.createElement(date_range_picker_decade_1.DateRangePickerDecade, { onYearSelect: (date) => onDecadeYearSelect(date) }),
49
+ }), [onMonthSelect, onYearSelect, onDecadeYearSelect, setViewMode, activeMonths]);
50
+ return (react_1.default.createElement("div", { className: `uxf-date-range-picker ${activeMonths.length > 1 ? "uxf-date-range-picker--multi-month" : ""}` },
51
+ props.children,
52
+ datePickerComponents[viewMode],
53
+ props.bottomContent && react_1.default.createElement("div", { className: "uxf-date-range-picker__bottom-content" }, props.bottomContent)));
54
+ };
55
+ exports.DateRangePickerContent = DateRangePickerContent;
56
+ exports.DateRangePickerContent.displayName = "UxfUiDateRangePickerContent";
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ interface DatePickerDecadeProps {
3
+ onYearSelect: (date: Date) => void;
4
+ }
5
+ export declare const DateRangePickerDecade: React.NamedExoticComponent<DatePickerDecadeProps>;
6
+ export {};