@tribepad/themis 1.0.1 → 1.0.3

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 (308) hide show
  1. package/dist/elements/Accordion/index.js +1 -335
  2. package/dist/elements/Accordion/index.js.map +1 -1
  3. package/dist/elements/Accordion/index.mjs +1 -317
  4. package/dist/elements/Accordion/index.mjs.map +1 -1
  5. package/dist/elements/AlertDialog/AlertDialog.d.ts +43 -0
  6. package/dist/elements/AlertDialog/AlertDialog.d.ts.map +1 -0
  7. package/dist/elements/AlertDialog/AlertDialog.styles.d.ts +15 -0
  8. package/dist/elements/AlertDialog/AlertDialog.styles.d.ts.map +1 -0
  9. package/dist/elements/AlertDialog/AlertDialog.types.d.ts +72 -0
  10. package/dist/elements/AlertDialog/AlertDialog.types.d.ts.map +1 -0
  11. package/dist/elements/AlertDialog/index.d.ts +25 -0
  12. package/dist/elements/AlertDialog/index.d.ts.map +1 -0
  13. package/dist/elements/AlertDialog/index.js +3 -0
  14. package/dist/elements/AlertDialog/index.js.map +1 -0
  15. package/dist/elements/AlertDialog/index.mjs +3 -0
  16. package/dist/elements/AlertDialog/index.mjs.map +1 -0
  17. package/dist/elements/Avatar/index.js +1 -468
  18. package/dist/elements/Avatar/index.js.map +1 -1
  19. package/dist/elements/Avatar/index.mjs +1 -456
  20. package/dist/elements/Avatar/index.mjs.map +1 -1
  21. package/dist/elements/Badge/index.js +1 -243
  22. package/dist/elements/Badge/index.js.map +1 -1
  23. package/dist/elements/Badge/index.mjs +1 -234
  24. package/dist/elements/Badge/index.mjs.map +1 -1
  25. package/dist/elements/Breadcrumbs/index.js +1 -821
  26. package/dist/elements/Breadcrumbs/index.js.map +1 -1
  27. package/dist/elements/Breadcrumbs/index.mjs +1 -810
  28. package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
  29. package/dist/elements/Button/Button.d.ts +26 -81
  30. package/dist/elements/Button/Button.d.ts.map +1 -1
  31. package/dist/elements/Button/Button.styles.d.ts +35 -0
  32. package/dist/elements/Button/Button.styles.d.ts.map +1 -0
  33. package/dist/elements/Button/Button.types.d.ts +20 -8
  34. package/dist/elements/Button/Button.types.d.ts.map +1 -1
  35. package/dist/elements/Button/index.js +1 -288
  36. package/dist/elements/Button/index.js.map +1 -1
  37. package/dist/elements/Button/index.mjs +1 -283
  38. package/dist/elements/Button/index.mjs.map +1 -1
  39. package/dist/elements/ButtonGroup/index.js +1 -237
  40. package/dist/elements/ButtonGroup/index.js.map +1 -1
  41. package/dist/elements/ButtonGroup/index.mjs +1 -222
  42. package/dist/elements/ButtonGroup/index.mjs.map +1 -1
  43. package/dist/elements/Card/index.js +1 -579
  44. package/dist/elements/Card/index.js.map +1 -1
  45. package/dist/elements/Card/index.mjs +1 -560
  46. package/dist/elements/Card/index.mjs.map +1 -1
  47. package/dist/elements/Carousel/Carousel.d.ts +1 -11
  48. package/dist/elements/Carousel/Carousel.d.ts.map +1 -1
  49. package/dist/elements/Carousel/LazyCarousel.d.ts +1 -1
  50. package/dist/elements/Carousel/LazyCarousel.d.ts.map +1 -1
  51. package/dist/elements/Carousel/index.js +1 -789
  52. package/dist/elements/Carousel/index.js.map +1 -1
  53. package/dist/elements/Carousel/index.mjs +1 -786
  54. package/dist/elements/Carousel/index.mjs.map +1 -1
  55. package/dist/elements/Chart/ChartContext.d.ts.map +1 -1
  56. package/dist/elements/Chart/index.js +1 -1842
  57. package/dist/elements/Chart/index.js.map +1 -1
  58. package/dist/elements/Chart/index.mjs +1 -1832
  59. package/dist/elements/Chart/index.mjs.map +1 -1
  60. package/dist/elements/Checkbox/index.js +1 -316
  61. package/dist/elements/Checkbox/index.js.map +1 -1
  62. package/dist/elements/Checkbox/index.mjs +1 -306
  63. package/dist/elements/Checkbox/index.mjs.map +1 -1
  64. package/dist/elements/CheckboxGroup/index.js +1 -455
  65. package/dist/elements/CheckboxGroup/index.js.map +1 -1
  66. package/dist/elements/CheckboxGroup/index.mjs +1 -439
  67. package/dist/elements/CheckboxGroup/index.mjs.map +1 -1
  68. package/dist/elements/Combobox/Combobox.d.ts +56 -0
  69. package/dist/elements/Combobox/Combobox.d.ts.map +1 -0
  70. package/dist/elements/Combobox/Combobox.styles.d.ts +29 -0
  71. package/dist/elements/Combobox/Combobox.styles.d.ts.map +1 -0
  72. package/dist/elements/Combobox/Combobox.types.d.ts +67 -0
  73. package/dist/elements/Combobox/Combobox.types.d.ts.map +1 -0
  74. package/dist/elements/Combobox/index.d.ts +20 -0
  75. package/dist/elements/Combobox/index.d.ts.map +1 -0
  76. package/dist/elements/Combobox/index.js +3 -0
  77. package/dist/elements/Combobox/index.js.map +1 -0
  78. package/dist/elements/Combobox/index.mjs +3 -0
  79. package/dist/elements/Combobox/index.mjs.map +1 -0
  80. package/dist/elements/DatePicker/DatePicker.d.ts +1 -1
  81. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  82. package/dist/elements/DatePicker/index.js +1 -903
  83. package/dist/elements/DatePicker/index.js.map +1 -1
  84. package/dist/elements/DatePicker/index.mjs +1 -853
  85. package/dist/elements/DatePicker/index.mjs.map +1 -1
  86. package/dist/elements/Dropdown/Dropdown.d.ts +7 -15
  87. package/dist/elements/Dropdown/Dropdown.d.ts.map +1 -1
  88. package/dist/elements/Dropdown/Dropdown.styles.d.ts +22 -0
  89. package/dist/elements/Dropdown/Dropdown.styles.d.ts.map +1 -0
  90. package/dist/elements/Dropdown/index.d.ts +1 -0
  91. package/dist/elements/Dropdown/index.d.ts.map +1 -1
  92. package/dist/elements/Dropdown/index.js +1 -193
  93. package/dist/elements/Dropdown/index.js.map +1 -1
  94. package/dist/elements/Dropdown/index.mjs +1 -184
  95. package/dist/elements/Dropdown/index.mjs.map +1 -1
  96. package/dist/elements/FileField/index.js +1 -1539
  97. package/dist/elements/FileField/index.js.map +1 -1
  98. package/dist/elements/FileField/index.mjs +1 -1507
  99. package/dist/elements/FileField/index.mjs.map +1 -1
  100. package/dist/elements/FormLayout/index.js +1 -170
  101. package/dist/elements/FormLayout/index.js.map +1 -1
  102. package/dist/elements/FormLayout/index.mjs +1 -167
  103. package/dist/elements/FormLayout/index.mjs.map +1 -1
  104. package/dist/elements/Modal/Modal.d.ts +9 -14
  105. package/dist/elements/Modal/Modal.d.ts.map +1 -1
  106. package/dist/elements/Modal/Modal.styles.d.ts +29 -0
  107. package/dist/elements/Modal/Modal.styles.d.ts.map +1 -0
  108. package/dist/elements/Modal/index.d.ts +1 -0
  109. package/dist/elements/Modal/index.d.ts.map +1 -1
  110. package/dist/elements/Modal/index.js +1 -232
  111. package/dist/elements/Modal/index.js.map +1 -1
  112. package/dist/elements/Modal/index.mjs +1 -220
  113. package/dist/elements/Modal/index.mjs.map +1 -1
  114. package/dist/elements/NumberField/NumberField.variants.d.ts +1 -1
  115. package/dist/elements/NumberField/index.js +1 -666
  116. package/dist/elements/NumberField/index.js.map +1 -1
  117. package/dist/elements/NumberField/index.mjs +1 -654
  118. package/dist/elements/NumberField/index.mjs.map +1 -1
  119. package/dist/elements/OTPInput/OTPInput.d.ts.map +1 -1
  120. package/dist/elements/OTPInput/index.js +1 -734
  121. package/dist/elements/OTPInput/index.js.map +1 -1
  122. package/dist/elements/OTPInput/index.mjs +1 -732
  123. package/dist/elements/OTPInput/index.mjs.map +1 -1
  124. package/dist/elements/Pagination/Pagination.d.ts +45 -0
  125. package/dist/elements/Pagination/Pagination.d.ts.map +1 -0
  126. package/dist/elements/Pagination/Pagination.styles.d.ts +10 -0
  127. package/dist/elements/Pagination/Pagination.styles.d.ts.map +1 -0
  128. package/dist/elements/Pagination/Pagination.types.d.ts +55 -0
  129. package/dist/elements/Pagination/Pagination.types.d.ts.map +1 -0
  130. package/dist/elements/Pagination/index.d.ts +21 -0
  131. package/dist/elements/Pagination/index.d.ts.map +1 -0
  132. package/dist/elements/Pagination/index.js +3 -0
  133. package/dist/elements/Pagination/index.js.map +1 -0
  134. package/dist/elements/Pagination/index.mjs +3 -0
  135. package/dist/elements/Pagination/index.mjs.map +1 -0
  136. package/dist/elements/Panel/index.js +1 -330
  137. package/dist/elements/Panel/index.js.map +1 -1
  138. package/dist/elements/Panel/index.mjs +1 -323
  139. package/dist/elements/Panel/index.mjs.map +1 -1
  140. package/dist/elements/PasswordField/PasswordField.d.ts +27 -0
  141. package/dist/elements/PasswordField/PasswordField.d.ts.map +1 -0
  142. package/dist/elements/PasswordField/PasswordField.styles.d.ts +32 -0
  143. package/dist/elements/PasswordField/PasswordField.styles.d.ts.map +1 -0
  144. package/dist/elements/PasswordField/PasswordField.types.d.ts +100 -0
  145. package/dist/elements/PasswordField/PasswordField.types.d.ts.map +1 -0
  146. package/dist/elements/PasswordField/index.css +2 -0
  147. package/dist/elements/PasswordField/index.css.map +1 -0
  148. package/dist/elements/PasswordField/index.d.ts +20 -0
  149. package/dist/elements/PasswordField/index.d.ts.map +1 -0
  150. package/dist/elements/PasswordField/index.js +3 -0
  151. package/dist/elements/PasswordField/index.js.map +1 -0
  152. package/dist/elements/PasswordField/index.mjs +3 -0
  153. package/dist/elements/PasswordField/index.mjs.map +1 -0
  154. package/dist/elements/Progress/index.js +1 -187
  155. package/dist/elements/Progress/index.js.map +1 -1
  156. package/dist/elements/Progress/index.mjs +1 -181
  157. package/dist/elements/Progress/index.mjs.map +1 -1
  158. package/dist/elements/RadioGroup/index.js +1 -369
  159. package/dist/elements/RadioGroup/index.js.map +1 -1
  160. package/dist/elements/RadioGroup/index.mjs +1 -359
  161. package/dist/elements/RadioGroup/index.mjs.map +1 -1
  162. package/dist/elements/Resizable/index.js +1 -1580
  163. package/dist/elements/Resizable/index.js.map +1 -1
  164. package/dist/elements/Resizable/index.mjs +1 -1566
  165. package/dist/elements/Resizable/index.mjs.map +1 -1
  166. package/dist/elements/SearchField/SearchField.d.ts +27 -0
  167. package/dist/elements/SearchField/SearchField.d.ts.map +1 -0
  168. package/dist/elements/SearchField/SearchField.styles.d.ts +32 -0
  169. package/dist/elements/SearchField/SearchField.styles.d.ts.map +1 -0
  170. package/dist/elements/SearchField/SearchField.types.d.ts +45 -0
  171. package/dist/elements/SearchField/SearchField.types.d.ts.map +1 -0
  172. package/dist/elements/SearchField/index.css +2 -0
  173. package/dist/elements/SearchField/index.css.map +1 -0
  174. package/dist/elements/SearchField/index.d.ts +21 -0
  175. package/dist/elements/SearchField/index.d.ts.map +1 -0
  176. package/dist/elements/SearchField/index.js +3 -0
  177. package/dist/elements/SearchField/index.js.map +1 -0
  178. package/dist/elements/SearchField/index.mjs +3 -0
  179. package/dist/elements/SearchField/index.mjs.map +1 -0
  180. package/dist/elements/Select/Select.d.ts +19 -48
  181. package/dist/elements/Select/Select.d.ts.map +1 -1
  182. package/dist/elements/Select/Select.styles.d.ts +55 -0
  183. package/dist/elements/Select/Select.styles.d.ts.map +1 -0
  184. package/dist/elements/Select/index.js +1 -589
  185. package/dist/elements/Select/index.js.map +1 -1
  186. package/dist/elements/Select/index.mjs +1 -582
  187. package/dist/elements/Select/index.mjs.map +1 -1
  188. package/dist/elements/Skeleton/index.js +1 -82
  189. package/dist/elements/Skeleton/index.js.map +1 -1
  190. package/dist/elements/Skeleton/index.mjs +1 -78
  191. package/dist/elements/Skeleton/index.mjs.map +1 -1
  192. package/dist/elements/Switch/index.js +1 -179
  193. package/dist/elements/Switch/index.js.map +1 -1
  194. package/dist/elements/Switch/index.mjs +1 -173
  195. package/dist/elements/Switch/index.mjs.map +1 -1
  196. package/dist/elements/Table/Table.d.ts +3 -24
  197. package/dist/elements/Table/Table.d.ts.map +1 -1
  198. package/dist/elements/Table/Table.styles.d.ts +24 -0
  199. package/dist/elements/Table/Table.styles.d.ts.map +1 -0
  200. package/dist/elements/Table/index.js +1 -595
  201. package/dist/elements/Table/index.js.map +1 -1
  202. package/dist/elements/Table/index.mjs +1 -578
  203. package/dist/elements/Table/index.mjs.map +1 -1
  204. package/dist/elements/Tabs/Tabs.d.ts +5 -3
  205. package/dist/elements/Tabs/Tabs.d.ts.map +1 -1
  206. package/dist/elements/Tabs/Tabs.types.d.ts +15 -0
  207. package/dist/elements/Tabs/Tabs.types.d.ts.map +1 -1
  208. package/dist/elements/Tabs/index.js +1 -337
  209. package/dist/elements/Tabs/index.js.map +1 -1
  210. package/dist/elements/Tabs/index.mjs +1 -320
  211. package/dist/elements/Tabs/index.mjs.map +1 -1
  212. package/dist/elements/TextField/TextField.d.ts +6 -42
  213. package/dist/elements/TextField/TextField.d.ts.map +1 -1
  214. package/dist/elements/TextField/TextField.hooks.d.ts +63 -0
  215. package/dist/elements/TextField/TextField.hooks.d.ts.map +1 -0
  216. package/dist/elements/TextField/TextField.icons.d.ts +19 -0
  217. package/dist/elements/TextField/TextField.icons.d.ts.map +1 -0
  218. package/dist/elements/TextField/TextField.styles.d.ts +37 -0
  219. package/dist/elements/TextField/TextField.styles.d.ts.map +1 -0
  220. package/dist/elements/TextField/TextField.types.d.ts +3 -0
  221. package/dist/elements/TextField/TextField.types.d.ts.map +1 -1
  222. package/dist/elements/TextField/index.css +1 -22
  223. package/dist/elements/TextField/index.css.map +1 -1
  224. package/dist/elements/TextField/index.js +1 -902
  225. package/dist/elements/TextField/index.js.map +1 -1
  226. package/dist/elements/TextField/index.mjs +1 -882
  227. package/dist/elements/TextField/index.mjs.map +1 -1
  228. package/dist/elements/TimeField/index.js +1 -254
  229. package/dist/elements/TimeField/index.js.map +1 -1
  230. package/dist/elements/TimeField/index.mjs +1 -238
  231. package/dist/elements/TimeField/index.mjs.map +1 -1
  232. package/dist/elements/Toast/Toast.d.ts +0 -22
  233. package/dist/elements/Toast/Toast.d.ts.map +1 -1
  234. package/dist/elements/Toast/index.js +1 -737
  235. package/dist/elements/Toast/index.js.map +1 -1
  236. package/dist/elements/Toast/index.mjs +1 -724
  237. package/dist/elements/Toast/index.mjs.map +1 -1
  238. package/dist/elements/Tooltip/index.js +1 -323
  239. package/dist/elements/Tooltip/index.js.map +1 -1
  240. package/dist/elements/Tooltip/index.mjs +1 -310
  241. package/dist/elements/Tooltip/index.mjs.map +1 -1
  242. package/dist/elements/index.css +1 -22
  243. package/dist/elements/index.css.map +1 -1
  244. package/dist/elements/index.d.ts +13 -1
  245. package/dist/elements/index.d.ts.map +1 -1
  246. package/dist/elements/index.js +1 -12455
  247. package/dist/elements/index.js.map +1 -1
  248. package/dist/elements/index.mjs +1 -12233
  249. package/dist/elements/index.mjs.map +1 -1
  250. package/dist/index.css +1 -22
  251. package/dist/index.css.map +1 -1
  252. package/dist/index.js +2 -12490
  253. package/dist/index.js.map +1 -1
  254. package/dist/index.mjs +2 -12262
  255. package/dist/index.mjs.map +1 -1
  256. package/dist/schemas/index.js +2 -54
  257. package/dist/schemas/index.js.map +1 -1
  258. package/dist/schemas/index.mjs +2 -48
  259. package/dist/schemas/index.mjs.map +1 -1
  260. package/dist/styles/defaults.css +151 -0
  261. package/dist/styles/index.js +1 -166
  262. package/dist/styles/index.js.map +1 -1
  263. package/dist/styles/index.mjs +1 -129
  264. package/dist/styles/index.mjs.map +1 -1
  265. package/dist/styles/shared-variants.d.ts +3 -3
  266. package/dist/styles/shared-variants.d.ts.map +1 -1
  267. package/dist/utils/index.js +1 -12
  268. package/dist/utils/index.js.map +1 -1
  269. package/dist/utils/index.mjs +1 -10
  270. package/dist/utils/index.mjs.map +1 -1
  271. package/package.json +9 -7
  272. package/src/elements/Accordion/Accordion.stories.tsx +1 -1
  273. package/src/elements/AlertDialog/AlertDialog.stories.tsx +124 -0
  274. package/src/elements/Avatar/Avatar.stories.tsx +1 -1
  275. package/src/elements/Badge/Badge.stories.tsx +1 -1
  276. package/src/elements/Breadcrumbs/Breadcrumbs.stories.tsx +1 -1
  277. package/src/elements/Button/Button.stories.tsx +1 -1
  278. package/src/elements/ButtonGroup/ButtonGroup.stories.tsx +1 -1
  279. package/src/elements/Card/Card.stories.tsx +1 -1
  280. package/src/elements/Carousel/Carousel.stories.tsx +1 -1
  281. package/src/elements/Chart/Chart.stories.tsx +1 -1
  282. package/src/elements/Checkbox/Checkbox.stories.tsx +1 -1
  283. package/src/elements/CheckboxGroup/CheckboxGroup.stories.tsx +4 -4
  284. package/src/elements/Combobox/Combobox.stories.tsx +133 -0
  285. package/src/elements/DatePicker/DatePicker.stories.tsx +1 -1
  286. package/src/elements/Dropdown/Dropdown.stories.tsx +1 -1
  287. package/src/elements/FileField/FileField.stories.tsx +2 -2
  288. package/src/elements/FileField/FileProgress.stories.tsx +1 -1
  289. package/src/elements/FormLayout/FormLayout.stories.tsx +1 -1
  290. package/src/elements/Modal/Modal.stories.tsx +1 -1
  291. package/src/elements/NumberField/NumberField.stories.tsx +1 -1
  292. package/src/elements/OTPInput/OTPInput.stories.tsx +1 -1
  293. package/src/elements/Pagination/Pagination.stories.tsx +203 -0
  294. package/src/elements/Panel/Panel.stories.tsx +1 -1
  295. package/src/elements/PasswordField/PasswordField.stories.tsx +167 -0
  296. package/src/elements/Progress/Progress.stories.tsx +7 -2
  297. package/src/elements/RadioGroup/RadioGroup.stories.tsx +3 -3
  298. package/src/elements/Resizable/Resizable.stories.tsx +1 -1
  299. package/src/elements/SearchField/SearchField.stories.tsx +146 -0
  300. package/src/elements/Select/Select.stories.tsx +1 -1
  301. package/src/elements/Skeleton/Skeleton.stories.tsx +1 -1
  302. package/src/elements/Switch/Switch.stories.tsx +1 -1
  303. package/src/elements/Table/Table.stories.tsx +1 -1
  304. package/src/elements/Tabs/Tabs.stories.tsx +46 -2
  305. package/src/elements/TextField/TextField.stories.tsx +1 -1
  306. package/src/elements/TimeField/TimeField.stories.tsx +1 -1
  307. package/src/elements/Toast/Toast.stories.tsx +1 -1
  308. package/src/elements/Tooltip/Tooltip.stories.tsx +1 -1
@@ -1,855 +1,3 @@
1
1
  "use client";
2
- import { createContext, forwardRef, useMemo } from 'react';
3
- import { DatePicker as DatePicker$1, Label, Group, DateInput, DateSegment, Button, Text, FieldError, Popover, Dialog, Calendar as Calendar$2, Heading, CalendarGrid, CalendarGridHeader, CalendarHeaderCell, CalendarGridBody, CalendarCell, DateRangePicker as DateRangePicker$1, RangeCalendar, DateField as DateField$1 } from 'react-aria-components';
4
- import { Calendar as Calendar$1, ChevronLeft, ChevronRight } from 'lucide-react';
5
- import { clsx } from 'clsx';
6
- import { twMerge } from 'tailwind-merge';
7
- import { cva } from 'class-variance-authority';
8
- import { jsx, jsxs } from 'react/jsx-runtime';
9
- import { z } from 'zod';
10
- export { getLocalTimeZone, isWeekend, now, parseDate, parseDateTime, parseZonedDateTime, today } from '@internationalized/date';
11
-
12
- // src/elements/DatePicker/DatePicker.tsx
13
- function cn(...inputs) {
14
- return twMerge(clsx(inputs));
15
- }
16
-
17
- // src/styles/shared-variants.ts
18
- var FOCUS_WITHIN_RING = [
19
- "focus-within:outline-none",
20
- "focus-within:ring-2",
21
- "focus-within:ring-[var(--ring)]",
22
- "focus-within:ring-offset-2"
23
- ];
24
- var FOCUS_RING = [
25
- "focus:outline-none",
26
- "focus:ring-2",
27
- "focus:ring-[var(--ring)]"
28
- ];
29
- var FOCUS_HIGHLIGHT = [
30
- "focus:outline-none",
31
- "focus:bg-[var(--accent)]",
32
- "focus:text-[var(--accent-foreground)]"
33
- ];
34
- var DISABLED_STANDARD = [
35
- "disabled:pointer-events-none",
36
- "disabled:opacity-50"
37
- ];
38
- var DISABLED_DATA_ATTR = [
39
- "data-[disabled]:pointer-events-none",
40
- "data-[disabled]:opacity-50",
41
- "data-[disabled]:cursor-not-allowed"
42
- ];
43
- var TEXT_SIZE_SMALL_SCALE = {
44
- sm: "text-xs",
45
- default: "text-sm",
46
- lg: "text-base"
47
- };
48
- var TEXT_SIZE_MEDIUM_SCALE = {
49
- sm: "text-sm",
50
- default: "text-base",
51
- lg: "text-lg"
52
- };
53
- var FIELD_HEIGHTS = {
54
- sm: "h-9",
55
- // 36px
56
- default: "h-11",
57
- // 44px
58
- lg: "h-14"
59
- // 56px
60
- };
61
- var ERROR_MESSAGE_BASE = [
62
- "flex",
63
- "items-center",
64
- "gap-1.5",
65
- "text-[var(--destructive)]"
66
- ];
67
- var DESCRIPTION_BASE = [
68
- "text-[var(--menu-muted)]"
69
- ];
70
- var LABEL_BASE = [
71
- "font-medium",
72
- "text-[var(--content-foreground)]"
73
- ];
74
- var POPOVER_ANIMATION_IN = [
75
- "data-[entering]:animate-in",
76
- "data-[entering]:fade-in-0",
77
- "data-[entering]:zoom-in-95"
78
- ];
79
- var POPOVER_ANIMATION_OUT = [
80
- "data-[exiting]:animate-out",
81
- "data-[exiting]:fade-out-0",
82
- "data-[exiting]:zoom-out-95"
83
- ];
84
- var REDUCED_MOTION = [
85
- "motion-reduce:transition-none",
86
- "motion-reduce:animate-none"
87
- ];
88
- var TRANSITION_FAST = [
89
- "transition-colors",
90
- "duration-150"
91
- ];
92
- var HOVER_ACCENT = [
93
- "hover:bg-[var(--accent)]",
94
- "hover:text-[var(--accent-foreground)]"
95
- ];
96
- function combineStyles(...styles) {
97
- return styles.flatMap((s) => Array.isArray(s) ? [...s] : [s]);
98
- }
99
-
100
- // src/elements/DatePicker/DatePicker.variants.ts
101
- var dateFieldVariants = cva(
102
- combineStyles(
103
- "flex items-center rounded-md border",
104
- "bg-[var(--content-background)] text-[var(--content-foreground)]",
105
- "transition-colors duration-200",
106
- FOCUS_WITHIN_RING,
107
- DISABLED_DATA_ATTR
108
- ),
109
- {
110
- variants: {
111
- size: {
112
- sm: `${FIELD_HEIGHTS.sm} px-3 text-sm gap-0.5`,
113
- default: `${FIELD_HEIGHTS.default} px-4 text-base gap-1`,
114
- lg: `${FIELD_HEIGHTS.lg} px-5 text-lg gap-1.5`
115
- },
116
- isInvalid: {
117
- true: "border-[var(--destructive)] focus-within:ring-[var(--destructive)]",
118
- false: "border-[var(--input)] hover:border-[var(--input)]/80"
119
- }
120
- },
121
- defaultVariants: {
122
- size: "default",
123
- isInvalid: false
124
- }
125
- }
126
- );
127
- var dateSegmentVariants = cva(
128
- combineStyles(
129
- "tabular-nums rounded px-0.5",
130
- FOCUS_HIGHLIGHT,
131
- "data-[placeholder]:text-[var(--menu-muted)]",
132
- "data-[type=literal]:text-[var(--menu-muted)]"
133
- ),
134
- {
135
- variants: {
136
- size: TEXT_SIZE_MEDIUM_SCALE
137
- },
138
- defaultVariants: {
139
- size: "default"
140
- }
141
- }
142
- );
143
- var calendarCellVariants = cva(
144
- combineStyles(
145
- "flex items-center justify-center rounded-md cursor-pointer",
146
- TRANSITION_FAST,
147
- HOVER_ACCENT,
148
- FOCUS_RING,
149
- // Selected state
150
- "data-[selected]:bg-[var(--primary)] data-[selected]:text-[var(--primary-foreground)]",
151
- "data-[selected]:hover:bg-[var(--primary)]/90 data-[selected]:font-semibold",
152
- // Today indicator
153
- "data-[today]:border data-[today]:border-[var(--primary)]",
154
- // Range selection
155
- "data-[selection-start]:rounded-l-md data-[selection-start]:rounded-r-none",
156
- "data-[selection-end]:rounded-r-md data-[selection-end]:rounded-l-none",
157
- "data-[selected]:data-[selection-start]:rounded-l-md",
158
- "data-[selected]:data-[selection-end]:rounded-r-md",
159
- // Unavailable/outside/disabled states
160
- "data-[unavailable]:text-[var(--menu-muted)] data-[unavailable]:pointer-events-none data-[unavailable]:opacity-50 data-[unavailable]:line-through",
161
- "data-[outside-month]:text-[var(--menu-muted)] data-[outside-month]:opacity-50",
162
- "data-[disabled]:text-[var(--menu-muted)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
163
- ),
164
- {
165
- variants: {
166
- size: {
167
- sm: "h-9 w-9 text-sm",
168
- default: "h-11 w-11 text-base",
169
- lg: "h-14 w-14 text-lg"
170
- }
171
- },
172
- defaultVariants: {
173
- size: "default"
174
- }
175
- }
176
- );
177
- var calendarHeaderVariants = cva(
178
- "flex items-center justify-between px-1 pb-4",
179
- {
180
- variants: {
181
- size: TEXT_SIZE_MEDIUM_SCALE
182
- },
183
- defaultVariants: {
184
- size: "default"
185
- }
186
- }
187
- );
188
- var calendarNavButtonVariants = cva(
189
- combineStyles(
190
- "inline-flex items-center justify-center rounded-md text-[var(--menu-muted)]",
191
- TRANSITION_FAST,
192
- HOVER_ACCENT,
193
- FOCUS_RING,
194
- DISABLED_STANDARD
195
- ),
196
- {
197
- variants: {
198
- size: {
199
- sm: "h-7 w-7",
200
- default: "h-9 w-9",
201
- lg: "h-11 w-11"
202
- }
203
- },
204
- defaultVariants: {
205
- size: "default"
206
- }
207
- }
208
- );
209
- var calendarGridVariants = cva(
210
- "w-full border-collapse",
211
- {
212
- variants: {
213
- size: TEXT_SIZE_MEDIUM_SCALE
214
- },
215
- defaultVariants: {
216
- size: "default"
217
- }
218
- }
219
- );
220
- var calendarGridHeaderCellVariants = cva(
221
- "text-center font-medium text-[var(--menu-muted)] pb-2",
222
- {
223
- variants: {
224
- size: {
225
- sm: "text-xs w-9",
226
- default: "text-sm w-11",
227
- lg: "text-base w-14"
228
- }
229
- },
230
- defaultVariants: {
231
- size: "default"
232
- }
233
- }
234
- );
235
- var datePickerPopoverVariants = cva(
236
- combineStyles(
237
- "z-50 rounded-md border p-3 shadow-md outline-none",
238
- "bg-[var(--menu-background)] text-[var(--menu-foreground)]",
239
- POPOVER_ANIMATION_IN,
240
- POPOVER_ANIMATION_OUT,
241
- REDUCED_MOTION
242
- ),
243
- {
244
- variants: {
245
- size: {
246
- sm: "w-[260px]",
247
- default: "w-[320px]",
248
- lg: "w-[380px]"
249
- }
250
- },
251
- defaultVariants: {
252
- size: "default"
253
- }
254
- }
255
- );
256
- var datePickerTriggerVariants = cva(
257
- combineStyles(
258
- "inline-flex items-center justify-center rounded-md text-[var(--menu-muted)]",
259
- TRANSITION_FAST,
260
- HOVER_ACCENT,
261
- FOCUS_RING,
262
- DISABLED_DATA_ATTR
263
- ),
264
- {
265
- variants: {
266
- size: {
267
- sm: "h-7 w-7",
268
- default: "h-9 w-9",
269
- lg: "h-11 w-11"
270
- }
271
- },
272
- defaultVariants: {
273
- size: "default"
274
- }
275
- }
276
- );
277
- var datePickerDescriptionVariants = cva(
278
- combineStyles(DESCRIPTION_BASE, "mt-1"),
279
- {
280
- variants: {
281
- size: TEXT_SIZE_SMALL_SCALE
282
- },
283
- defaultVariants: {
284
- size: "default"
285
- }
286
- }
287
- );
288
- var datePickerErrorVariants = cva(
289
- combineStyles(ERROR_MESSAGE_BASE, "mt-1"),
290
- {
291
- variants: {
292
- size: TEXT_SIZE_SMALL_SCALE
293
- },
294
- defaultVariants: {
295
- size: "default"
296
- }
297
- }
298
- );
299
- var datePickerLabelVariants = cva(
300
- combineStyles(
301
- LABEL_BASE,
302
- "block mb-1.5",
303
- 'data-[required]:after:content-["*"] data-[required]:after:ml-0.5 data-[required]:after:text-[var(--destructive)]'
304
- ),
305
- {
306
- variants: {
307
- size: {
308
- sm: "text-sm",
309
- default: "text-sm",
310
- lg: "text-base"
311
- }
312
- },
313
- defaultVariants: {
314
- size: "default"
315
- }
316
- }
317
- );
318
- var DatePickerContext = createContext({
319
- size: "default"
320
- });
321
- var DatePicker = forwardRef(
322
- ({
323
- label,
324
- description,
325
- errorMessage,
326
- size = "default",
327
- className,
328
- placement = "bottom",
329
- ...props
330
- }, ref) => {
331
- const contextValue = useMemo(
332
- () => ({
333
- size,
334
- isInvalid: props.isInvalid,
335
- isDisabled: props.isDisabled
336
- }),
337
- [size, props.isInvalid, props.isDisabled]
338
- );
339
- return /* @__PURE__ */ jsx(DatePickerContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs(
340
- DatePicker$1,
341
- {
342
- ref,
343
- className: cn("group flex flex-col gap-1", className),
344
- ...props,
345
- children: [
346
- /* @__PURE__ */ jsx(
347
- Label,
348
- {
349
- className: cn(datePickerLabelVariants({ size })),
350
- "data-required": props.isRequired || void 0,
351
- children: label
352
- }
353
- ),
354
- /* @__PURE__ */ jsxs(
355
- Group,
356
- {
357
- className: cn(
358
- dateFieldVariants({
359
- size,
360
- isInvalid: props.isInvalid
361
- })
362
- ),
363
- children: [
364
- /* @__PURE__ */ jsx(DateInput, { className: "flex flex-1 items-center", children: (segment) => /* @__PURE__ */ jsx(
365
- DateSegment,
366
- {
367
- segment,
368
- className: cn(dateSegmentVariants({ size }))
369
- }
370
- ) }),
371
- /* @__PURE__ */ jsx(
372
- Button,
373
- {
374
- className: cn(datePickerTriggerVariants({ size })),
375
- "aria-label": "Open calendar",
376
- children: /* @__PURE__ */ jsx(Calendar$1, { className: "h-4 w-4" })
377
- }
378
- )
379
- ]
380
- }
381
- ),
382
- description && /* @__PURE__ */ jsx(
383
- Text,
384
- {
385
- slot: "description",
386
- className: cn(datePickerDescriptionVariants({ size })),
387
- children: description
388
- }
389
- ),
390
- /* @__PURE__ */ jsx(FieldError, { className: cn(datePickerErrorVariants({ size })), children: errorMessage }),
391
- /* @__PURE__ */ jsx(
392
- Popover,
393
- {
394
- placement,
395
- className: cn(datePickerPopoverVariants({ size })),
396
- children: /* @__PURE__ */ jsx(Dialog, { className: "outline-none", children: /* @__PURE__ */ jsxs(Calendar$2, { className: "w-full", children: [
397
- /* @__PURE__ */ jsxs("div", { className: cn(calendarHeaderVariants({ size })), children: [
398
- /* @__PURE__ */ jsx(
399
- Button,
400
- {
401
- slot: "previous",
402
- className: cn(calendarNavButtonVariants({ size })),
403
- "aria-label": "Previous month",
404
- children: /* @__PURE__ */ jsx(ChevronLeft, { className: "h-4 w-4" })
405
- }
406
- ),
407
- /* @__PURE__ */ jsx(Heading, { className: "flex-1 text-center font-semibold" }),
408
- /* @__PURE__ */ jsx(
409
- Button,
410
- {
411
- slot: "next",
412
- className: cn(calendarNavButtonVariants({ size })),
413
- "aria-label": "Next month",
414
- children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" })
415
- }
416
- )
417
- ] }),
418
- /* @__PURE__ */ jsxs(CalendarGrid, { className: cn(calendarGridVariants({ size })), children: [
419
- /* @__PURE__ */ jsx(CalendarGridHeader, { children: (day) => /* @__PURE__ */ jsx(
420
- CalendarHeaderCell,
421
- {
422
- className: cn(calendarGridHeaderCellVariants({ size })),
423
- children: day
424
- }
425
- ) }),
426
- /* @__PURE__ */ jsx(CalendarGridBody, { children: (date) => /* @__PURE__ */ jsx(
427
- CalendarCell,
428
- {
429
- date,
430
- className: cn(calendarCellVariants({ size }))
431
- }
432
- ) })
433
- ] })
434
- ] }) })
435
- }
436
- )
437
- ]
438
- }
439
- ) });
440
- }
441
- );
442
- DatePicker.displayName = "DatePicker";
443
- var DateRangePicker = forwardRef(
444
- ({
445
- label,
446
- description,
447
- errorMessage,
448
- size = "default",
449
- className,
450
- placement = "bottom",
451
- startName,
452
- endName,
453
- ...props
454
- }, ref) => {
455
- return /* @__PURE__ */ jsxs(
456
- DateRangePicker$1,
457
- {
458
- ref,
459
- className: cn("group flex flex-col gap-1", className),
460
- startName,
461
- endName,
462
- ...props,
463
- children: [
464
- /* @__PURE__ */ jsx(
465
- Label,
466
- {
467
- className: cn(datePickerLabelVariants({ size })),
468
- "data-required": props.isRequired || void 0,
469
- children: label
470
- }
471
- ),
472
- /* @__PURE__ */ jsxs(
473
- Group,
474
- {
475
- className: cn(
476
- dateFieldVariants({
477
- size,
478
- isInvalid: props.isInvalid
479
- })
480
- ),
481
- children: [
482
- /* @__PURE__ */ jsx(DateInput, { slot: "start", className: "flex items-center", children: (segment) => /* @__PURE__ */ jsx(
483
- DateSegment,
484
- {
485
- segment,
486
- className: cn(dateSegmentVariants({ size }))
487
- }
488
- ) }),
489
- /* @__PURE__ */ jsx(
490
- "span",
491
- {
492
- "aria-hidden": "true",
493
- className: "px-2 text-[var(--menu-muted)]",
494
- children: "\u2013"
495
- }
496
- ),
497
- /* @__PURE__ */ jsx(DateInput, { slot: "end", className: "flex items-center", children: (segment) => /* @__PURE__ */ jsx(
498
- DateSegment,
499
- {
500
- segment,
501
- className: cn(dateSegmentVariants({ size }))
502
- }
503
- ) }),
504
- /* @__PURE__ */ jsx(
505
- Button,
506
- {
507
- className: cn(datePickerTriggerVariants({ size })),
508
- "aria-label": "Open calendar",
509
- children: /* @__PURE__ */ jsx(Calendar$1, { className: "h-4 w-4" })
510
- }
511
- )
512
- ]
513
- }
514
- ),
515
- description && /* @__PURE__ */ jsx(
516
- Text,
517
- {
518
- slot: "description",
519
- className: cn(datePickerDescriptionVariants({ size })),
520
- children: description
521
- }
522
- ),
523
- /* @__PURE__ */ jsx(FieldError, { className: cn(datePickerErrorVariants({ size })), children: errorMessage }),
524
- /* @__PURE__ */ jsx(
525
- Popover,
526
- {
527
- placement,
528
- className: cn(datePickerPopoverVariants({ size })),
529
- children: /* @__PURE__ */ jsx(Dialog, { className: "outline-none", children: /* @__PURE__ */ jsxs(RangeCalendar, { className: "w-full", children: [
530
- /* @__PURE__ */ jsxs("div", { className: cn(calendarHeaderVariants({ size })), children: [
531
- /* @__PURE__ */ jsx(
532
- Button,
533
- {
534
- slot: "previous",
535
- className: cn(calendarNavButtonVariants({ size })),
536
- "aria-label": "Previous month",
537
- children: /* @__PURE__ */ jsx(ChevronLeft, { className: "h-4 w-4" })
538
- }
539
- ),
540
- /* @__PURE__ */ jsx(Heading, { className: "flex-1 text-center font-semibold" }),
541
- /* @__PURE__ */ jsx(
542
- Button,
543
- {
544
- slot: "next",
545
- className: cn(calendarNavButtonVariants({ size })),
546
- "aria-label": "Next month",
547
- children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" })
548
- }
549
- )
550
- ] }),
551
- /* @__PURE__ */ jsxs(CalendarGrid, { className: cn(calendarGridVariants({ size })), children: [
552
- /* @__PURE__ */ jsx(CalendarGridHeader, { children: (day) => /* @__PURE__ */ jsx(
553
- CalendarHeaderCell,
554
- {
555
- className: cn(calendarGridHeaderCellVariants({ size })),
556
- children: day
557
- }
558
- ) }),
559
- /* @__PURE__ */ jsx(CalendarGridBody, { children: (date) => /* @__PURE__ */ jsx(
560
- CalendarCell,
561
- {
562
- date,
563
- className: cn(calendarCellVariants({ size }))
564
- }
565
- ) })
566
- ] })
567
- ] }) })
568
- }
569
- )
570
- ]
571
- }
572
- );
573
- }
574
- );
575
- DateRangePicker.displayName = "DateRangePicker";
576
- var DateField = forwardRef(
577
- ({
578
- label,
579
- description,
580
- errorMessage,
581
- size = "default",
582
- className,
583
- ...props
584
- }, ref) => {
585
- return /* @__PURE__ */ jsxs(
586
- DateField$1,
587
- {
588
- ref,
589
- className: cn("group flex flex-col gap-1", className),
590
- ...props,
591
- children: [
592
- /* @__PURE__ */ jsx(
593
- Label,
594
- {
595
- className: cn(datePickerLabelVariants({ size })),
596
- "data-required": props.isRequired || void 0,
597
- children: label
598
- }
599
- ),
600
- /* @__PURE__ */ jsx(
601
- DateInput,
602
- {
603
- className: cn(
604
- dateFieldVariants({
605
- size,
606
- isInvalid: props.isInvalid
607
- }),
608
- "w-fit"
609
- ),
610
- children: (segment) => /* @__PURE__ */ jsx(
611
- DateSegment,
612
- {
613
- segment,
614
- className: cn(dateSegmentVariants({ size }))
615
- }
616
- )
617
- }
618
- ),
619
- description && /* @__PURE__ */ jsx(
620
- Text,
621
- {
622
- slot: "description",
623
- className: cn(datePickerDescriptionVariants({ size })),
624
- children: description
625
- }
626
- ),
627
- /* @__PURE__ */ jsx(FieldError, { className: cn(datePickerErrorVariants({ size })), children: errorMessage })
628
- ]
629
- }
630
- );
631
- }
632
- );
633
- DateField.displayName = "DateField";
634
- var Calendar = forwardRef(
635
- ({ size = "default", className, ...props }, ref) => {
636
- return /* @__PURE__ */ jsxs(
637
- Calendar$2,
638
- {
639
- ref,
640
- className: cn("w-fit", className),
641
- ...props,
642
- children: [
643
- /* @__PURE__ */ jsxs("div", { className: cn(calendarHeaderVariants({ size })), children: [
644
- /* @__PURE__ */ jsx(
645
- Button,
646
- {
647
- slot: "previous",
648
- className: cn(calendarNavButtonVariants({ size })),
649
- "aria-label": "Previous month",
650
- children: /* @__PURE__ */ jsx(ChevronLeft, { className: "h-4 w-4" })
651
- }
652
- ),
653
- /* @__PURE__ */ jsx(Heading, { className: "flex-1 text-center font-semibold" }),
654
- /* @__PURE__ */ jsx(
655
- Button,
656
- {
657
- slot: "next",
658
- className: cn(calendarNavButtonVariants({ size })),
659
- "aria-label": "Next month",
660
- children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" })
661
- }
662
- )
663
- ] }),
664
- /* @__PURE__ */ jsxs(CalendarGrid, { className: cn(calendarGridVariants({ size })), children: [
665
- /* @__PURE__ */ jsx(CalendarGridHeader, { children: (day) => /* @__PURE__ */ jsx(
666
- CalendarHeaderCell,
667
- {
668
- className: cn(calendarGridHeaderCellVariants({ size })),
669
- children: day
670
- }
671
- ) }),
672
- /* @__PURE__ */ jsx(CalendarGridBody, { children: (date) => /* @__PURE__ */ jsx(
673
- CalendarCell,
674
- {
675
- date,
676
- className: cn(calendarCellVariants({ size }))
677
- }
678
- ) })
679
- ] })
680
- ]
681
- }
682
- );
683
- }
684
- );
685
- Calendar.displayName = "Calendar";
686
- var DatePickerPropsSchema = z.object({
687
- // Value props
688
- value: z.custom().optional(),
689
- defaultValue: z.custom().optional(),
690
- placeholderValue: z.custom().optional(),
691
- // Granularity props
692
- granularity: z.enum(["day", "hour", "minute", "second"]).default("day"),
693
- hourCycle: z.union([z.literal(12), z.literal(24)]).optional(),
694
- hideTimeZone: z.boolean().optional(),
695
- shouldForceLeadingZeros: z.boolean().optional(),
696
- // Constraint props
697
- minValue: z.custom().optional(),
698
- maxValue: z.custom().optional(),
699
- /** Callback to determine if a specific date is unavailable for selection */
700
- isDateUnavailable: z.function().optional(),
701
- // State props
702
- isOpen: z.boolean().optional(),
703
- defaultOpen: z.boolean().optional(),
704
- isDisabled: z.boolean().optional(),
705
- isReadOnly: z.boolean().optional(),
706
- isRequired: z.boolean().optional(),
707
- isInvalid: z.boolean().optional(),
708
- // Validation props
709
- /** Custom validation function that returns an error message or null */
710
- validate: z.function().optional(),
711
- validationBehavior: z.enum(["native", "aria"]).default("native"),
712
- // Display props
713
- label: z.string(),
714
- description: z.string().optional(),
715
- /** Error message string or render function */
716
- errorMessage: z.union([z.string(), z.function()]).optional(),
717
- // Calendar props
718
- firstDayOfWeek: z.enum(["sun", "mon", "tue", "wed", "thu", "fri", "sat"]).optional(),
719
- pageBehavior: z.enum(["single", "visible"]).optional(),
720
- // Form props
721
- name: z.string().optional(),
722
- // Popover props
723
- placement: z.enum(["bottom", "top", "left", "right"]).optional(),
724
- visibleDuration: z.object({ months: z.number() }).optional(),
725
- // Variant props
726
- size: z.enum(["sm", "default", "lg"]).default("default"),
727
- // Event props
728
- /** Called when the date value changes */
729
- onChange: z.function().optional(),
730
- /** Called when the popover open state changes */
731
- onOpenChange: z.function().optional(),
732
- /** Called when the field gains focus */
733
- onFocus: z.function().optional(),
734
- /** Called when the field loses focus */
735
- onBlur: z.function().optional(),
736
- /** Called when focus state changes */
737
- onFocusChange: z.function().optional(),
738
- // Standard props
739
- className: z.string().optional(),
740
- children: z.any().optional()
741
- });
742
- var DateRangePickerPropsSchema = DatePickerPropsSchema.omit({
743
- value: true,
744
- defaultValue: true,
745
- onChange: true
746
- }).extend({
747
- // Range value props
748
- value: z.object({
749
- start: z.custom(),
750
- end: z.custom()
751
- }).optional(),
752
- defaultValue: z.object({
753
- start: z.custom(),
754
- end: z.custom()
755
- }).optional(),
756
- // Form props for range
757
- startName: z.string().optional(),
758
- endName: z.string().optional(),
759
- // Range event props
760
- /** Called when the date range value changes */
761
- onChange: z.function().optional()
762
- });
763
- var DateFieldPropsSchema = z.object({
764
- // Value props
765
- value: z.custom().optional(),
766
- defaultValue: z.custom().optional(),
767
- placeholderValue: z.custom().optional(),
768
- // Granularity props
769
- granularity: z.enum(["day", "hour", "minute", "second"]).default("day"),
770
- hourCycle: z.union([z.literal(12), z.literal(24)]).optional(),
771
- hideTimeZone: z.boolean().optional(),
772
- shouldForceLeadingZeros: z.boolean().optional(),
773
- // Constraint props
774
- minValue: z.custom().optional(),
775
- maxValue: z.custom().optional(),
776
- // State props
777
- isDisabled: z.boolean().optional(),
778
- isReadOnly: z.boolean().optional(),
779
- isRequired: z.boolean().optional(),
780
- isInvalid: z.boolean().optional(),
781
- // Validation props
782
- /** Custom validation function that returns an error message or null */
783
- validate: z.function().optional(),
784
- validationBehavior: z.enum(["native", "aria"]).default("native"),
785
- // Display props
786
- label: z.string(),
787
- description: z.string().optional(),
788
- /** Error message string or render function */
789
- errorMessage: z.union([z.string(), z.function()]).optional(),
790
- // Form props
791
- name: z.string().optional(),
792
- // Variant props
793
- size: z.enum(["sm", "default", "lg"]).default("default"),
794
- // Event props
795
- /** Called when the date value changes */
796
- onChange: z.function().optional(),
797
- /** Called when the field gains focus */
798
- onFocus: z.function().optional(),
799
- /** Called when the field loses focus */
800
- onBlur: z.function().optional(),
801
- /** Called when focus state changes */
802
- onFocusChange: z.function().optional(),
803
- // Standard props
804
- className: z.string().optional()
805
- });
806
- var CalendarPropsSchema = z.object({
807
- // Value props
808
- value: z.custom().optional(),
809
- defaultValue: z.custom().optional(),
810
- focusedValue: z.custom().optional(),
811
- defaultFocusedValue: z.custom().optional(),
812
- // Constraint props
813
- minValue: z.custom().optional(),
814
- maxValue: z.custom().optional(),
815
- /** Callback to determine if a specific date is unavailable for selection */
816
- isDateUnavailable: z.function().optional(),
817
- // State props
818
- isDisabled: z.boolean().optional(),
819
- isReadOnly: z.boolean().optional(),
820
- // Calendar props
821
- firstDayOfWeek: z.enum(["sun", "mon", "tue", "wed", "thu", "fri", "sat"]).optional(),
822
- pageBehavior: z.enum(["single", "visible"]).optional(),
823
- visibleDuration: z.object({ months: z.number() }).optional(),
824
- // Variant props
825
- size: z.enum(["sm", "default", "lg"]).default("default"),
826
- // Event props
827
- /** Called when the date value changes */
828
- onChange: z.function().optional(),
829
- /** Called when the focused date changes */
830
- onFocusChange: z.function().optional(),
831
- // Standard props
832
- className: z.string().optional()
833
- });
834
- var RangeCalendarPropsSchema = CalendarPropsSchema.omit({
835
- value: true,
836
- defaultValue: true,
837
- onChange: true
838
- }).extend({
839
- // Range value props
840
- value: z.object({
841
- start: z.custom(),
842
- end: z.custom()
843
- }).optional(),
844
- defaultValue: z.object({
845
- start: z.custom(),
846
- end: z.custom()
847
- }).optional(),
848
- // Range event props
849
- /** Called when the date range value changes */
850
- onChange: z.function().optional()
851
- });
852
-
853
- export { Calendar, CalendarPropsSchema, DateField, DateFieldPropsSchema, DatePicker, DatePickerPropsSchema, DateRangePicker, DateRangePickerPropsSchema, RangeCalendarPropsSchema, calendarCellVariants, calendarGridHeaderCellVariants, calendarGridVariants, calendarHeaderVariants, calendarNavButtonVariants, dateFieldVariants, datePickerDescriptionVariants, datePickerErrorVariants, datePickerLabelVariants, datePickerPopoverVariants, datePickerTriggerVariants, dateSegmentVariants };
854
- //# sourceMappingURL=index.mjs.map
2
+ import {createContext,memo,forwardRef,useMemo}from'react';import {DatePicker,Label,Group,DateInput,DateSegment,Button,Text,FieldError,Popover,Dialog,Calendar as Calendar$1,Heading,CalendarGrid,CalendarGridHeader,CalendarHeaderCell,CalendarGridBody,CalendarCell,DateRangePicker,RangeCalendar,DateField}from'react-aria-components';import {Calendar,ChevronLeft,ChevronRight}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsx,jsxs}from'react/jsx-runtime';import {z as z$1}from'zod';export{getLocalTimeZone,isWeekend,now,parseDate,parseDateTime,parseZonedDateTime,today}from'@internationalized/date';function e(...o){return twMerge(clsx(o))}var w=["focus-within:outline-none","focus-within:ring-2","focus-within:ring-[var(--ring)]","focus-within:ring-offset-2"];var T=["focus:outline-none","focus:ring-2","focus:ring-[var(--ring)]"],M=["focus:outline-none","focus:bg-[var(--accent)]","focus:text-[var(--accent-foreground)]"],U=["disabled:pointer-events-none","disabled:opacity-50"],F=["data-[disabled]:pointer-events-none","data-[disabled]:opacity-50","data-[disabled]:cursor-not-allowed"],B={sm:"text-xs",default:"text-sm",lg:"text-base"},R={sm:"text-sm",default:"text-base",lg:"text-lg"};var _={sm:"h-9",default:"h-11",lg:"h-14"},Z=["flex","items-center","gap-1.5","text-[var(--destructive-background)]"];var q=["text-[var(--menu-muted)]"],j=["font-medium","text-[var(--content-foreground)]"];var z=["data-[entering]:animate-in","data-[entering]:fade-in-0","data-[entering]:zoom-in-95"],W=["data-[exiting]:animate-out","data-[exiting]:fade-out-0","data-[exiting]:zoom-out-95"],X=["motion-reduce:transition-none","motion-reduce:animate-none"];var h=["transition-colors","duration-150"],y=["hover:bg-[var(--accent)]","hover:text-[var(--accent-foreground)]"];function d(...o){return o.flatMap(i=>Array.isArray(i)?[...i]:[i])}var g=cva(d("flex items-center rounded-md border","bg-[var(--content-background)] text-[var(--content-foreground)]","transition-colors duration-200",w,F),{variants:{size:{sm:`${_.sm} px-3 text-sm gap-0.5`,default:`${_.default} px-4 text-base gap-1`,lg:`${_.lg} px-5 text-lg gap-1.5`},isInvalid:{true:"border-[var(--destructive-background)] focus-within:ring-[var(--destructive-background)]",false:"border-[var(--input-border)] hover:border-[var(--input-border)]/80"}},defaultVariants:{size:"default",isInvalid:false}}),p=cva(d("tabular-nums rounded px-0.5",M,"data-[placeholder]:text-[var(--menu-muted)]","data-[type=literal]:text-[var(--menu-muted)]"),{variants:{size:R},defaultVariants:{size:"default"}}),x=cva(d("flex items-center justify-center rounded-md cursor-pointer",h,y,T,"data-[selected]:bg-[var(--primary)] data-[selected]:text-[var(--primary-foreground)]","data-[selected]:hover:bg-[var(--primary)]/90 data-[selected]:font-semibold","data-[today]:border data-[today]:border-[var(--primary)]","data-[selection-start]:rounded-l-md data-[selection-start]:rounded-r-none","data-[selection-end]:rounded-r-md data-[selection-end]:rounded-l-none","data-[selected]:data-[selection-start]:rounded-l-md","data-[selected]:data-[selection-end]:rounded-r-md","data-[unavailable]:text-[var(--menu-muted)] data-[unavailable]:pointer-events-none data-[unavailable]:opacity-50 data-[unavailable]:line-through","data-[outside-month]:text-[var(--menu-muted)] data-[outside-month]:opacity-50","data-[disabled]:text-[var(--menu-muted)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50"),{variants:{size:{sm:"h-9 w-9 text-sm",default:"h-11 w-11 text-base",lg:"h-14 w-14 text-lg"}},defaultVariants:{size:"default"}}),P=cva("flex items-center justify-between px-1 pb-4",{variants:{size:R},defaultVariants:{size:"default"}}),c=cva(d("inline-flex items-center justify-center rounded-md text-[var(--menu-muted)]",h,y,T,U),{variants:{size:{sm:"h-7 w-7",default:"h-9 w-9",lg:"h-11 w-11"}},defaultVariants:{size:"default"}}),V=cva("w-full border-collapse",{variants:{size:R},defaultVariants:{size:"default"}}),v=cva("text-center font-medium text-[var(--menu-muted)] pb-2",{variants:{size:{sm:"text-xs w-9",default:"text-sm w-11",lg:"text-base w-14"}},defaultVariants:{size:"default"}}),k=cva(d("z-50 rounded-md border p-3 shadow-md outline-none","bg-[var(--menu-background)] text-[var(--menu-foreground)]",z,W,X),{variants:{size:{sm:"w-[260px]",default:"w-[320px]",lg:"w-[380px]"}},defaultVariants:{size:"default"}}),O=cva(d("inline-flex items-center justify-center rounded-md text-[var(--menu-muted)]",h,y,T,F),{variants:{size:{sm:"h-7 w-7",default:"h-9 w-9",lg:"h-11 w-11"}},defaultVariants:{size:"default"}}),E=cva(d(q,"mt-1"),{variants:{size:B},defaultVariants:{size:"default"}}),N=cva(d(Z,"mt-1"),{variants:{size:B},defaultVariants:{size:"default"}}),S=cva(d(j,"block mb-1.5",'data-[required]:after:content-["*"] data-[required]:after:ml-0.5 data-[required]:after:text-[var(--destructive-background)]'),{variants:{size:{sm:"text-sm",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}});var ya=createContext({size:"default"});var J=memo(forwardRef(({label:o,description:i,errorMessage:f,size:t="default",className:u,placement:D="bottom",...s},b)=>{let I=useMemo(()=>({size:t,isInvalid:s.isInvalid,isDisabled:s.isDisabled}),[t,s.isInvalid,s.isDisabled]);return jsx(ya.Provider,{value:I,children:jsxs(DatePicker,{ref:b,className:e("group flex flex-col gap-1",u),...s,children:[jsx(Label,{className:e(S({size:t})),"data-required":s.isRequired||void 0,children:o}),jsxs(Group,{className:e(g({size:t,isInvalid:s.isInvalid})),children:[jsx(DateInput,{className:"flex flex-1 items-center",children:A=>jsx(DateSegment,{segment:A,className:e(p({size:t}))})}),jsx(Button,{className:e(O({size:t})),"aria-label":"Open calendar",children:jsx(Calendar,{className:"h-4 w-4"})})]}),i&&jsx(Text,{slot:"description",className:e(E({size:t})),children:i}),jsx(FieldError,{className:e(N({size:t})),children:f}),jsx(Popover,{placement:D,className:e(k({size:t})),children:jsx(Dialog,{className:"outline-none",children:jsxs(Calendar$1,{className:"w-full",children:[jsxs("div",{className:e(P({size:t})),children:[jsx(Button,{slot:"previous",className:e(c({size:t})),"aria-label":"Previous month",children:jsx(ChevronLeft,{className:"h-4 w-4"})}),jsx(Heading,{className:"flex-1 text-center font-semibold"}),jsx(Button,{slot:"next",className:e(c({size:t})),"aria-label":"Next month",children:jsx(ChevronRight,{className:"h-4 w-4"})})]}),jsxs(CalendarGrid,{className:e(V({size:t})),children:[jsx(CalendarGridHeader,{children:A=>jsx(CalendarHeaderCell,{className:e(v({size:t})),children:A})}),jsx(CalendarGridBody,{children:A=>jsx(CalendarCell,{date:A,className:e(x({size:t}))})})]})]})})})]})})}));J.displayName="DatePicker";var ea=forwardRef(({label:o,description:i,errorMessage:f,size:t="default",className:u,placement:D="bottom",startName:s,endName:b,...I},A)=>jsxs(DateRangePicker,{ref:A,className:e("group flex flex-col gap-1",u),startName:s,endName:b,...I,children:[jsx(Label,{className:e(S({size:t})),"data-required":I.isRequired||void 0,children:o}),jsxs(Group,{className:e(g({size:t,isInvalid:I.isInvalid})),children:[jsx(DateInput,{slot:"start",className:"flex items-center",children:C=>jsx(DateSegment,{segment:C,className:e(p({size:t}))})}),jsx("span",{"aria-hidden":"true",className:"px-2 text-[var(--menu-muted)]",children:"\u2013"}),jsx(DateInput,{slot:"end",className:"flex items-center",children:C=>jsx(DateSegment,{segment:C,className:e(p({size:t}))})}),jsx(Button,{className:e(O({size:t})),"aria-label":"Open calendar",children:jsx(Calendar,{className:"h-4 w-4"})})]}),i&&jsx(Text,{slot:"description",className:e(E({size:t})),children:i}),jsx(FieldError,{className:e(N({size:t})),children:f}),jsx(Popover,{placement:D,className:e(k({size:t})),children:jsx(Dialog,{className:"outline-none",children:jsxs(RangeCalendar,{className:"w-full",children:[jsxs("div",{className:e(P({size:t})),children:[jsx(Button,{slot:"previous",className:e(c({size:t})),"aria-label":"Previous month",children:jsx(ChevronLeft,{className:"h-4 w-4"})}),jsx(Heading,{className:"flex-1 text-center font-semibold"}),jsx(Button,{slot:"next",className:e(c({size:t})),"aria-label":"Next month",children:jsx(ChevronRight,{className:"h-4 w-4"})})]}),jsxs(CalendarGrid,{className:e(V({size:t})),children:[jsx(CalendarGridHeader,{children:C=>jsx(CalendarHeaderCell,{className:e(v({size:t})),children:C})}),jsx(CalendarGridBody,{children:C=>jsx(CalendarCell,{date:C,className:e(x({size:t}))})})]})]})})})]}));ea.displayName="DateRangePicker";var ta=forwardRef(({label:o,description:i,errorMessage:f,size:t="default",className:u,...D},s)=>jsxs(DateField,{ref:s,className:e("group flex flex-col gap-1",u),...D,children:[jsx(Label,{className:e(S({size:t})),"data-required":D.isRequired||void 0,children:o}),jsx(DateInput,{className:e(g({size:t,isInvalid:D.isInvalid}),"w-fit"),children:b=>jsx(DateSegment,{segment:b,className:e(p({size:t}))})}),i&&jsx(Text,{slot:"description",className:e(E({size:t})),children:i}),jsx(FieldError,{className:e(N({size:t})),children:f})]}));ta.displayName="DateField";var na=forwardRef(({size:o="default",className:i,...f},t)=>jsxs(Calendar$1,{ref:t,className:e("w-fit",i),...f,children:[jsxs("div",{className:e(P({size:o})),children:[jsx(Button,{slot:"previous",className:e(c({size:o})),"aria-label":"Previous month",children:jsx(ChevronLeft,{className:"h-4 w-4"})}),jsx(Heading,{className:"flex-1 text-center font-semibold"}),jsx(Button,{slot:"next",className:e(c({size:o})),"aria-label":"Next month",children:jsx(ChevronRight,{className:"h-4 w-4"})})]}),jsxs(CalendarGrid,{className:e(V({size:o})),children:[jsx(CalendarGridHeader,{children:u=>jsx(CalendarHeaderCell,{className:e(v({size:o})),children:u})}),jsx(CalendarGridBody,{children:u=>jsx(CalendarCell,{date:u,className:e(x({size:o}))})})]})]}));na.displayName="Calendar";var oa=z$1.object({value:z$1.custom().optional(),defaultValue:z$1.custom().optional(),placeholderValue:z$1.custom().optional(),granularity:z$1.enum(["day","hour","minute","second"]).default("day"),hourCycle:z$1.union([z$1.literal(12),z$1.literal(24)]).optional(),hideTimeZone:z$1.boolean().optional(),shouldForceLeadingZeros:z$1.boolean().optional(),minValue:z$1.custom().optional(),maxValue:z$1.custom().optional(),isDateUnavailable:z$1.function().optional(),isOpen:z$1.boolean().optional(),defaultOpen:z$1.boolean().optional(),isDisabled:z$1.boolean().optional(),isReadOnly:z$1.boolean().optional(),isRequired:z$1.boolean().optional(),isInvalid:z$1.boolean().optional(),validate:z$1.function().optional(),validationBehavior:z$1.enum(["native","aria"]).default("native"),label:z$1.string(),description:z$1.string().optional(),errorMessage:z$1.union([z$1.string(),z$1.function()]).optional(),firstDayOfWeek:z$1.enum(["sun","mon","tue","wed","thu","fri","sat"]).optional(),pageBehavior:z$1.enum(["single","visible"]).optional(),name:z$1.string().optional(),placement:z$1.enum(["bottom","top","left","right"]).optional(),visibleDuration:z$1.object({months:z$1.number()}).optional(),size:z$1.enum(["sm","default","lg"]).default("default"),onChange:z$1.function().optional(),onOpenChange:z$1.function().optional(),onFocus:z$1.function().optional(),onBlur:z$1.function().optional(),onFocusChange:z$1.function().optional(),className:z$1.string().optional(),children:z$1.any().optional()}),De=oa.omit({value:true,defaultValue:true,onChange:true}).extend({value:z$1.object({start:z$1.custom(),end:z$1.custom()}).optional(),defaultValue:z$1.object({start:z$1.custom(),end:z$1.custom()}).optional(),startName:z$1.string().optional(),endName:z$1.string().optional(),onChange:z$1.function().optional()}),Ae=z$1.object({value:z$1.custom().optional(),defaultValue:z$1.custom().optional(),placeholderValue:z$1.custom().optional(),granularity:z$1.enum(["day","hour","minute","second"]).default("day"),hourCycle:z$1.union([z$1.literal(12),z$1.literal(24)]).optional(),hideTimeZone:z$1.boolean().optional(),shouldForceLeadingZeros:z$1.boolean().optional(),minValue:z$1.custom().optional(),maxValue:z$1.custom().optional(),isDisabled:z$1.boolean().optional(),isReadOnly:z$1.boolean().optional(),isRequired:z$1.boolean().optional(),isInvalid:z$1.boolean().optional(),validate:z$1.function().optional(),validationBehavior:z$1.enum(["native","aria"]).default("native"),label:z$1.string(),description:z$1.string().optional(),errorMessage:z$1.union([z$1.string(),z$1.function()]).optional(),name:z$1.string().optional(),size:z$1.enum(["sm","default","lg"]).default("default"),onChange:z$1.function().optional(),onFocus:z$1.function().optional(),onBlur:z$1.function().optional(),onFocusChange:z$1.function().optional(),className:z$1.string().optional()}),ia=z$1.object({value:z$1.custom().optional(),defaultValue:z$1.custom().optional(),focusedValue:z$1.custom().optional(),defaultFocusedValue:z$1.custom().optional(),minValue:z$1.custom().optional(),maxValue:z$1.custom().optional(),isDateUnavailable:z$1.function().optional(),isDisabled:z$1.boolean().optional(),isReadOnly:z$1.boolean().optional(),firstDayOfWeek:z$1.enum(["sun","mon","tue","wed","thu","fri","sat"]).optional(),pageBehavior:z$1.enum(["single","visible"]).optional(),visibleDuration:z$1.object({months:z$1.number()}).optional(),size:z$1.enum(["sm","default","lg"]).default("default"),onChange:z$1.function().optional(),onFocusChange:z$1.function().optional(),className:z$1.string().optional()}),Ce=ia.omit({value:true,defaultValue:true,onChange:true}).extend({value:z$1.object({start:z$1.custom(),end:z$1.custom()}).optional(),defaultValue:z$1.object({start:z$1.custom(),end:z$1.custom()}).optional(),onChange:z$1.function().optional()});export{na as Calendar,ia as CalendarPropsSchema,ta as DateField,Ae as DateFieldPropsSchema,J as DatePicker,oa as DatePickerPropsSchema,ea as DateRangePicker,De as DateRangePickerPropsSchema,Ce as RangeCalendarPropsSchema,x as calendarCellVariants,v as calendarGridHeaderCellVariants,V as calendarGridVariants,P as calendarHeaderVariants,c as calendarNavButtonVariants,g as dateFieldVariants,E as datePickerDescriptionVariants,N as datePickerErrorVariants,S as datePickerLabelVariants,k as datePickerPopoverVariants,O as datePickerTriggerVariants,p as dateSegmentVariants};//# sourceMappingURL=index.mjs.map
855
3
  //# sourceMappingURL=index.mjs.map