mautourco-components 0.2.5 → 0.2.7

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 (297) hide show
  1. package/README.md +190 -190
  2. package/dist/components/atoms/Avatar/Avatar.d.ts +14 -14
  3. package/dist/components/atoms/Avatar/Avatar.js +31 -31
  4. package/dist/components/atoms/Button/Button.css +320 -320
  5. package/dist/components/atoms/Button/Button.d.ts +27 -27
  6. package/dist/components/atoms/Button/Button.js +35 -35
  7. package/dist/components/atoms/Checkbox/Checkbox.d.ts +13 -13
  8. package/dist/components/atoms/Checkbox/Checkbox.js +39 -39
  9. package/dist/components/atoms/Icon/Icon.d.ts +10 -10
  10. package/dist/components/atoms/Icon/Icon.js +123 -123
  11. package/dist/components/atoms/Icon/icons/ArrivalIcon.d.ts +8 -8
  12. package/dist/components/atoms/Icon/icons/ArrivalIcon.js +31 -31
  13. package/dist/components/atoms/Icon/icons/BuildingIcon.d.ts +8 -8
  14. package/dist/components/atoms/Icon/icons/BuildingIcon.js +36 -36
  15. package/dist/components/atoms/Icon/icons/CalendarIcon.d.ts +12 -12
  16. package/dist/components/atoms/Icon/icons/CalendarIcon.js +41 -41
  17. package/dist/components/atoms/Icon/icons/CalendarOutlineIcon.d.ts +8 -8
  18. package/dist/components/atoms/Icon/icons/CalendarOutlineIcon.js +36 -36
  19. package/dist/components/atoms/Icon/icons/CarIcon.d.ts +8 -8
  20. package/dist/components/atoms/Icon/icons/CarIcon.js +30 -30
  21. package/dist/components/atoms/Icon/icons/Check.d.ts +8 -8
  22. package/dist/components/atoms/Icon/icons/Check.js +30 -30
  23. package/dist/components/atoms/Icon/icons/CheckCircleIcon.d.ts +8 -8
  24. package/dist/components/atoms/Icon/icons/CheckCircleIcon.js +30 -30
  25. package/dist/components/atoms/Icon/icons/Chevron.d.ts +9 -9
  26. package/dist/components/atoms/Icon/icons/Chevron.js +54 -54
  27. package/dist/components/atoms/Icon/icons/ChevronDownIcon.d.ts +8 -8
  28. package/dist/components/atoms/Icon/icons/ChevronDownIcon.js +30 -30
  29. package/dist/components/atoms/Icon/icons/Close.d.ts +8 -8
  30. package/dist/components/atoms/Icon/icons/Close.js +30 -30
  31. package/dist/components/atoms/Icon/icons/DeleteIcon.d.ts +8 -8
  32. package/dist/components/atoms/Icon/icons/DeleteIcon.js +30 -30
  33. package/dist/components/atoms/Icon/icons/DepartureIcon.d.ts +8 -8
  34. package/dist/components/atoms/Icon/icons/DepartureIcon.js +30 -30
  35. package/dist/components/atoms/Icon/icons/EyeIcon.d.ts +8 -8
  36. package/dist/components/atoms/Icon/icons/EyeIcon.js +30 -30
  37. package/dist/components/atoms/Icon/icons/FacebookIcon.d.ts +8 -8
  38. package/dist/components/atoms/Icon/icons/FacebookIcon.js +36 -36
  39. package/dist/components/atoms/Icon/icons/HomeIcon.d.ts +8 -8
  40. package/dist/components/atoms/Icon/icons/HomeIcon.js +25 -25
  41. package/dist/components/atoms/Icon/icons/InfoIcon.d.ts +8 -8
  42. package/dist/components/atoms/Icon/icons/InfoIcon.js +30 -30
  43. package/dist/components/atoms/Icon/icons/LinkedInIcon.d.ts +8 -8
  44. package/dist/components/atoms/Icon/icons/LinkedInIcon.js +36 -36
  45. package/dist/components/atoms/Icon/icons/MapPinIcon.d.ts +8 -8
  46. package/dist/components/atoms/Icon/icons/MapPinIcon.js +30 -30
  47. package/dist/components/atoms/Icon/icons/MautoucoLogo.d.ts +8 -8
  48. package/dist/components/atoms/Icon/icons/MautoucoLogo.js +37 -37
  49. package/dist/components/atoms/Icon/icons/MenuIcon.d.ts +8 -8
  50. package/dist/components/atoms/Icon/icons/MenuIcon.js +37 -37
  51. package/dist/components/atoms/Icon/icons/MinusIcon.d.ts +8 -8
  52. package/dist/components/atoms/Icon/icons/MinusIcon.js +25 -25
  53. package/dist/components/atoms/Icon/icons/MoreIcon.d.ts +8 -8
  54. package/dist/components/atoms/Icon/icons/MoreIcon.js +30 -30
  55. package/dist/components/atoms/Icon/icons/PlaneIcon.d.ts +8 -8
  56. package/dist/components/atoms/Icon/icons/PlaneIcon.js +36 -36
  57. package/dist/components/atoms/Icon/icons/PlusIcon.d.ts +8 -8
  58. package/dist/components/atoms/Icon/icons/PlusIcon.js +25 -25
  59. package/dist/components/atoms/Icon/icons/Search.d.ts +8 -8
  60. package/dist/components/atoms/Icon/icons/Search.js +30 -30
  61. package/dist/components/atoms/Icon/icons/Settings.d.ts +8 -8
  62. package/dist/components/atoms/Icon/icons/Settings.js +30 -30
  63. package/dist/components/atoms/Icon/icons/ShipIcon.d.ts +8 -8
  64. package/dist/components/atoms/Icon/icons/ShipIcon.js +36 -36
  65. package/dist/components/atoms/Icon/icons/StrollerIcon.d.ts +8 -8
  66. package/dist/components/atoms/Icon/icons/StrollerIcon.js +30 -30
  67. package/dist/components/atoms/Icon/icons/TwitterIcon.d.ts +8 -8
  68. package/dist/components/atoms/Icon/icons/TwitterIcon.js +36 -36
  69. package/dist/components/atoms/Icon/icons/User.d.ts +8 -8
  70. package/dist/components/atoms/Icon/icons/User.js +30 -30
  71. package/dist/components/atoms/Icon/icons/UserIcon.d.ts +12 -12
  72. package/dist/components/atoms/Icon/icons/UserIcon.js +41 -41
  73. package/dist/components/atoms/Icon/icons/Youtube.d.ts +8 -8
  74. package/dist/components/atoms/Icon/icons/Youtube.js +36 -36
  75. package/dist/components/atoms/Illustration/Illustration.d.ts +14 -14
  76. package/dist/components/atoms/Illustration/Illustration.js +33 -33
  77. package/dist/components/atoms/Illustration/illustrations.d.ts +51 -51
  78. package/dist/components/atoms/Illustration/illustrations.js +97 -97
  79. package/dist/components/atoms/Inputs/DropdownInput/DropdownInput.d.ts +12 -12
  80. package/dist/components/atoms/Inputs/DropdownInput/DropdownInput.js +53 -53
  81. package/dist/components/atoms/Inputs/Input/Input.d.ts +15 -15
  82. package/dist/components/atoms/Inputs/Input/Input.js +27 -27
  83. package/dist/components/atoms/Inputs/Textarea/Textarea.d.ts +14 -14
  84. package/dist/components/atoms/Inputs/Textarea/Textarea.js +15 -15
  85. package/dist/components/atoms/Link/Link.d.ts +44 -44
  86. package/dist/components/atoms/Link/Link.js +76 -76
  87. package/dist/components/atoms/RatingStar/RatingStar.d.ts +40 -40
  88. package/dist/components/atoms/RatingStar/RatingStar.js +54 -54
  89. package/dist/components/atoms/SegmentedButton/SegmentedButton.d.ts +27 -27
  90. package/dist/components/atoms/SegmentedButton/SegmentedButton.js +49 -49
  91. package/dist/components/atoms/SelectedValue/SelectedValue.d.ts +11 -11
  92. package/dist/components/atoms/SelectedValue/SelectedValue.js +29 -29
  93. package/dist/components/atoms/Slider/Slider.d.ts +52 -52
  94. package/dist/components/atoms/Slider/Slider.js +30 -30
  95. package/dist/components/atoms/Spinner/Spinner.d.ts +9 -9
  96. package/dist/components/atoms/Spinner/Spinner.js +38 -38
  97. package/dist/components/atoms/Spinner/variants/ButtonSpinner.d.ts +8 -8
  98. package/dist/components/atoms/Spinner/variants/ButtonSpinner.js +19 -19
  99. package/dist/components/atoms/Spinner/variants/LoadingSpinner.d.ts +7 -7
  100. package/dist/components/atoms/Spinner/variants/LoadingSpinner.js +7 -7
  101. package/dist/components/atoms/Tab/Tab.css +266 -266
  102. package/dist/components/atoms/Tab/Tab.d.ts +22 -22
  103. package/dist/components/atoms/Tab/Tab.js +54 -54
  104. package/dist/components/atoms/Typography/Typography.d.ts +24 -24
  105. package/dist/components/atoms/Typography/Typography.js +100 -100
  106. package/dist/components/molecules/Calendar/CalendarInput.d.ts +34 -34
  107. package/dist/components/molecules/Calendar/CalendarInput.js +49 -49
  108. package/dist/components/molecules/Calendar/DateTime.d.ts +25 -25
  109. package/dist/components/molecules/Calendar/DateTime.js +106 -106
  110. package/dist/components/molecules/Calendar/TimePicker.d.ts +16 -16
  111. package/dist/components/molecules/Calendar/TimePicker.js +91 -91
  112. package/dist/components/molecules/LocationDropdown/LocationDropdown.d.ts +34 -34
  113. package/dist/components/molecules/LocationDropdown/LocationDropdown.js +120 -120
  114. package/dist/components/molecules/LocationDropdown/index.d.ts +2 -2
  115. package/dist/components/molecules/LocationDropdown/index.js +1 -1
  116. package/dist/components/molecules/MultiSelectDropdown/MultiSelectDropdown.d.ts +29 -29
  117. package/dist/components/molecules/MultiSelectDropdown/MultiSelectDropdown.js +106 -106
  118. package/dist/components/molecules/RatingTab/RatingTab.d.ts +39 -39
  119. package/dist/components/molecules/RatingTab/RatingTab.js +41 -41
  120. package/dist/components/molecules/TabGroup/TabGroup.d.ts +17 -17
  121. package/dist/components/molecules/TabGroup/TabGroup.js +30 -30
  122. package/dist/components/molecules/UserCard/UserCard.d.ts +20 -20
  123. package/dist/components/molecules/UserCard/UserCard.js +57 -57
  124. package/dist/components/organisms/CardContainer/CardContainer.d.ts +37 -37
  125. package/dist/components/organisms/CardContainer/CardContainer.js +27 -27
  126. package/dist/components/organisms/DateTimePicker/DateTimePicker.d.ts +15 -15
  127. package/dist/components/organisms/DateTimePicker/DateTimePicker.js +66 -66
  128. package/dist/components/organisms/Dialog/Dialog.d.ts +103 -103
  129. package/dist/components/organisms/Dialog/Dialog.js +162 -162
  130. package/dist/components/organisms/Footer/Footer.d.ts +38 -38
  131. package/dist/components/organisms/Footer/Footer.js +74 -74
  132. package/dist/components/organisms/PaxSelector/PaxSelector.d.ts +63 -63
  133. package/dist/components/organisms/PaxSelector/PaxSelector.js +402 -402
  134. package/dist/components/organisms/RoundTrip/RoundTrip.d.ts +54 -54
  135. package/dist/components/organisms/RoundTrip/RoundTrip.js +179 -179
  136. package/dist/components/organisms/RoundTrip/index.d.ts +2 -2
  137. package/dist/components/organisms/RoundTrip/index.js +1 -1
  138. package/dist/components/organisms/SearchBarTransfer/SearchBarTransfer.d.ts +35 -35
  139. package/dist/components/organisms/SearchBarTransfer/SearchBarTransfer.js +192 -192
  140. package/dist/components/organisms/SearchBarTransfer/index.d.ts +2 -2
  141. package/dist/components/organisms/SearchBarTransfer/index.js +1 -1
  142. package/dist/components/organisms/TopNavigation/DesktopNav.d.ts +33 -33
  143. package/dist/components/organisms/TopNavigation/DesktopNav.js +32 -32
  144. package/dist/components/organisms/TopNavigation/MobileNav.d.ts +32 -32
  145. package/dist/components/organisms/TopNavigation/MobileNav.js +45 -45
  146. package/dist/components/organisms/TopNavigation/TopNavigation.d.ts +33 -33
  147. package/dist/components/organisms/TopNavigation/TopNavigation.js +20 -20
  148. package/dist/components/organisms/TransferLine/TransferLine.d.ts +53 -53
  149. package/dist/components/organisms/TransferLine/TransferLine.js +179 -179
  150. package/dist/components/ui/button.d.ts +10 -10
  151. package/dist/components/ui/button.js +56 -56
  152. package/dist/components/ui/calendar.d.ts +8 -8
  153. package/dist/components/ui/calendar.js +87 -87
  154. package/dist/components/ui/popover.d.ts +7 -7
  155. package/dist/components/ui/popover.js +42 -42
  156. package/dist/hooks/useMobile.d.ts +5 -5
  157. package/dist/hooks/useMobile.js +26 -26
  158. package/dist/index.d.ts +49 -49
  159. package/dist/index.js +46 -46
  160. package/dist/lib/utils.d.ts +7 -7
  161. package/dist/lib/utils.js +13 -13
  162. package/dist/styles/components/avatar.css +122 -122
  163. package/dist/styles/components/calendar.css +140 -140
  164. package/dist/styles/components/checkbox.css +206 -206
  165. package/dist/styles/components/dropdown.css +269 -269
  166. package/dist/styles/components/forms.css +209 -209
  167. package/dist/styles/components/illustration.css +123 -123
  168. package/dist/styles/components/molecule/calendarInput.css +133 -133
  169. package/dist/styles/components/molecule/dateTime.css +126 -126
  170. package/dist/styles/components/molecule/location-dropdown.css +132 -132
  171. package/dist/styles/components/molecule/timePicker.css +122 -122
  172. package/dist/styles/components/multiselect-dropdown.css +286 -286
  173. package/dist/styles/components/organism/card-container.css +148 -148
  174. package/dist/styles/components/organism/dialog.css +168 -168
  175. package/dist/styles/components/organism/footer.css +119 -119
  176. package/dist/styles/components/organism/pax-selector.css +617 -617
  177. package/dist/styles/components/organism/round-trip.css +139 -139
  178. package/dist/styles/components/organism/search-bar-transfer.css +158 -161
  179. package/dist/styles/components/organism/topnavigation.css +142 -142
  180. package/dist/styles/components/organism/transfer-line.css +138 -138
  181. package/dist/styles/components/rating-star.css +145 -145
  182. package/dist/styles/components/rating-tab.css +179 -179
  183. package/dist/styles/components/scrollbar.css +155 -155
  184. package/dist/styles/components/segmented-button.css +214 -214
  185. package/dist/styles/components/selected-value.css +175 -175
  186. package/dist/styles/components/slider.css +182 -182
  187. package/dist/styles/components/typography.css +245 -245
  188. package/dist/styles/tokens/tokens.css +119 -119
  189. package/dist/styles/tokens/tokens.d.ts +3108 -3108
  190. package/dist/styles/tokens/tokens.js +2652 -2652
  191. package/package.json +103 -103
  192. package/src/components/atoms/Avatar/Avatar.tsx +60 -60
  193. package/src/components/atoms/Button/Button.css +200 -200
  194. package/src/components/atoms/Button/Button.tsx +82 -82
  195. package/src/components/atoms/Checkbox/Checkbox.tsx +83 -83
  196. package/src/components/atoms/Icon/Icon.tsx +163 -163
  197. package/src/components/atoms/Icon/icons/ArrivalIcon.tsx +52 -52
  198. package/src/components/atoms/Icon/icons/BuildingIcon.tsx +50 -50
  199. package/src/components/atoms/Icon/icons/CalendarIcon.tsx +63 -63
  200. package/src/components/atoms/Icon/icons/CalendarOutlineIcon.tsx +50 -50
  201. package/src/components/atoms/Icon/icons/CarIcon.tsx +44 -44
  202. package/src/components/atoms/Icon/icons/Check.tsx +36 -36
  203. package/src/components/atoms/Icon/icons/CheckCircleIcon.tsx +48 -48
  204. package/src/components/atoms/Icon/icons/Chevron.tsx +73 -73
  205. package/src/components/atoms/Icon/icons/ChevronDownIcon.tsx +46 -46
  206. package/src/components/atoms/Icon/icons/Close.tsx +39 -39
  207. package/src/components/atoms/Icon/icons/DeleteIcon.tsx +44 -44
  208. package/src/components/atoms/Icon/icons/DepartureIcon.tsx +50 -50
  209. package/src/components/atoms/Icon/icons/EyeIcon.tsx +44 -44
  210. package/src/components/atoms/Icon/icons/FacebookIcon.tsx +50 -50
  211. package/src/components/atoms/Icon/icons/HomeIcon.tsx +52 -52
  212. package/src/components/atoms/Icon/icons/InfoIcon.tsx +44 -44
  213. package/src/components/atoms/Icon/icons/LinkedInIcon.tsx +50 -50
  214. package/src/components/atoms/Icon/icons/MapPinIcon.tsx +44 -44
  215. package/src/components/atoms/Icon/icons/MautoucoLogo.tsx +93 -93
  216. package/src/components/atoms/Icon/icons/MenuIcon.tsx +49 -49
  217. package/src/components/atoms/Icon/icons/MinusIcon.tsx +45 -45
  218. package/src/components/atoms/Icon/icons/MoreIcon.tsx +44 -44
  219. package/src/components/atoms/Icon/icons/PlaneIcon.tsx +50 -50
  220. package/src/components/atoms/Icon/icons/PlusIcon.tsx +45 -45
  221. package/src/components/atoms/Icon/icons/Search.tsx +37 -37
  222. package/src/components/atoms/Icon/icons/Settings.tsx +38 -38
  223. package/src/components/atoms/Icon/icons/ShipIcon.tsx +50 -50
  224. package/src/components/atoms/Icon/icons/StrollerIcon.tsx +44 -44
  225. package/src/components/atoms/Icon/icons/TwitterIcon.tsx +50 -50
  226. package/src/components/atoms/Icon/icons/User.tsx +37 -37
  227. package/src/components/atoms/Icon/icons/UserIcon.tsx +63 -63
  228. package/src/components/atoms/Icon/icons/Youtube.tsx +50 -50
  229. package/src/components/atoms/Illustration/Illustration.tsx +28 -28
  230. package/src/components/atoms/Illustration/illustrations.ts +116 -116
  231. package/src/components/atoms/Inputs/DropdownInput/DropdownInput.tsx +96 -96
  232. package/src/components/atoms/Inputs/Textarea/Textarea.tsx +51 -51
  233. package/src/components/atoms/Link/Link.tsx +168 -168
  234. package/src/components/atoms/RatingStar/RatingStar.tsx +114 -114
  235. package/src/components/atoms/SegmentedButton/SegmentedButton.tsx +94 -94
  236. package/src/components/atoms/SelectedValue/SelectedValue.tsx +59 -59
  237. package/src/components/atoms/Slider/Slider.tsx +95 -95
  238. package/src/components/atoms/Spinner/Spinner.tsx +56 -56
  239. package/src/components/atoms/Spinner/variants/ButtonSpinner.tsx +37 -37
  240. package/src/components/atoms/Spinner/variants/LoadingSpinner.tsx +22 -22
  241. package/src/components/atoms/Tab/Tab.css +147 -147
  242. package/src/components/atoms/Tab/Tab.tsx +96 -96
  243. package/src/components/atoms/Typography/Typography.tsx +153 -153
  244. package/src/components/molecules/Calendar/CalendarInput.tsx +135 -135
  245. package/src/components/molecules/Calendar/DateTime.tsx +172 -172
  246. package/src/components/molecules/Calendar/TimePicker.tsx +174 -174
  247. package/src/components/molecules/LocationDropdown/LocationDropdown.tsx +234 -234
  248. package/src/components/molecules/LocationDropdown/index.ts +2 -2
  249. package/src/components/molecules/RatingTab/RatingTab.tsx +96 -96
  250. package/src/components/molecules/TabGroup/TabGroup.tsx +60 -60
  251. package/src/components/molecules/UserCard/UserCard.stories.tsx +36 -36
  252. package/src/components/molecules/UserCard/UserCard.tsx +173 -173
  253. package/src/components/organisms/CardContainer/CardContainer.tsx +66 -66
  254. package/src/components/organisms/DateTimePicker/DateTimePicker.tsx +110 -110
  255. package/src/components/organisms/Dialog/Dialog.tsx +352 -352
  256. package/src/components/organisms/Footer/Footer.tsx +290 -290
  257. package/src/components/organisms/PaxSelector/PaxSelector.tsx +979 -979
  258. package/src/components/organisms/RoundTrip/RoundTrip.tsx +335 -335
  259. package/src/components/organisms/RoundTrip/index.ts +2 -2
  260. package/src/components/organisms/SearchBarTransfer/SearchBarTransfer.tsx +388 -388
  261. package/src/components/organisms/SearchBarTransfer/index.ts +2 -2
  262. package/src/components/organisms/TopNavigation/DesktopNav.tsx +133 -133
  263. package/src/components/organisms/TopNavigation/MobileNav.tsx +212 -212
  264. package/src/components/organisms/TopNavigation/TopNavigation.tsx +45 -45
  265. package/src/components/organisms/TransferLine/TransferLine.tsx +369 -369
  266. package/src/components/ui/button.tsx +60 -60
  267. package/src/components/ui/calendar.tsx +246 -246
  268. package/src/components/ui/popover.tsx +46 -46
  269. package/src/styles/components/avatar.css +58 -58
  270. package/src/styles/components/calendar.css +85 -85
  271. package/src/styles/components/checkbox.css +130 -130
  272. package/src/styles/components/dropdown.css +214 -214
  273. package/src/styles/components/forms.css +147 -147
  274. package/src/styles/components/illustration.css +7 -7
  275. package/src/styles/components/molecule/calendarInput.css +156 -156
  276. package/src/styles/components/molecule/dateTime.css +14 -14
  277. package/src/styles/components/molecule/location-dropdown.css +204 -204
  278. package/src/styles/components/molecule/timePicker.css +78 -78
  279. package/src/styles/components/multiselect-dropdown.css +230 -230
  280. package/src/styles/components/organism/card-container.css +49 -49
  281. package/src/styles/components/organism/dialog.css +241 -241
  282. package/src/styles/components/organism/footer.css +113 -113
  283. package/src/styles/components/organism/pax-selector.css +702 -702
  284. package/src/styles/components/organism/round-trip.css +55 -55
  285. package/src/styles/components/organism/search-bar-transfer.css +128 -127
  286. package/src/styles/components/organism/topnavigation.css +161 -161
  287. package/src/styles/components/organism/transfer-line.css +86 -86
  288. package/src/styles/components/rating-star.css +39 -39
  289. package/src/styles/components/rating-tab.css +83 -83
  290. package/src/styles/components/scrollbar.css +63 -63
  291. package/src/styles/components/segmented-button.css +134 -134
  292. package/src/styles/components/selected-value.css +80 -80
  293. package/src/styles/components/slider.css +86 -86
  294. package/src/styles/components/typography.css +251 -251
  295. package/src/styles/fonts.css +50 -0
  296. package/src/styles/tokens/tokens.css +119 -119
  297. package/src/styles/tokens/tokens.js +12 -6
@@ -1,60 +1,60 @@
1
- import * as React from "react"
2
- import { Slot } from "@radix-ui/react-slot"
3
- import { cva, type VariantProps } from "class-variance-authority"
4
-
5
- import { cn } from "../../lib/utils"
6
-
7
- const buttonVariants = cva(
8
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
9
- {
10
- variants: {
11
- variant: {
12
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
13
- destructive:
14
- "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
15
- outline:
16
- "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
17
- secondary:
18
- "bg-secondary text-secondary-foreground hover:bg-secondary/80",
19
- ghost:
20
- "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
21
- link: "text-primary underline-offset-4 hover:underline",
22
- },
23
- size: {
24
- default: "h-9 px-4 py-2 has-[>svg]:px-3",
25
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
26
- lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
27
- icon: "size-9",
28
- "icon-sm": "size-8",
29
- "icon-lg": "size-10",
30
- },
31
- },
32
- defaultVariants: {
33
- variant: "default",
34
- size: "default",
35
- },
36
- }
37
- )
38
-
39
- function Button({
40
- className,
41
- variant,
42
- size,
43
- asChild = false,
44
- ...props
45
- }: React.ComponentProps<"button"> &
46
- VariantProps<typeof buttonVariants> & {
47
- asChild?: boolean
48
- }) {
49
- const Comp = asChild ? Slot : "button"
50
-
51
- return (
52
- <Comp
53
- data-slot="button"
54
- className={cn(buttonVariants({ variant, size, className }))}
55
- {...props}
56
- />
57
- )
58
- }
59
-
60
- export { Button, buttonVariants }
1
+ import * as React from "react"
2
+ import { Slot } from "@radix-ui/react-slot"
3
+ import { cva, type VariantProps } from "class-variance-authority"
4
+
5
+ import { cn } from "../../lib/utils"
6
+
7
+ const buttonVariants = cva(
8
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
9
+ {
10
+ variants: {
11
+ variant: {
12
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
13
+ destructive:
14
+ "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
15
+ outline:
16
+ "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
17
+ secondary:
18
+ "bg-secondary text-secondary-foreground hover:bg-secondary/80",
19
+ ghost:
20
+ "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
21
+ link: "text-primary underline-offset-4 hover:underline",
22
+ },
23
+ size: {
24
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
25
+ sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
26
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
27
+ icon: "size-9",
28
+ "icon-sm": "size-8",
29
+ "icon-lg": "size-10",
30
+ },
31
+ },
32
+ defaultVariants: {
33
+ variant: "default",
34
+ size: "default",
35
+ },
36
+ }
37
+ )
38
+
39
+ function Button({
40
+ className,
41
+ variant,
42
+ size,
43
+ asChild = false,
44
+ ...props
45
+ }: React.ComponentProps<"button"> &
46
+ VariantProps<typeof buttonVariants> & {
47
+ asChild?: boolean
48
+ }) {
49
+ const Comp = asChild ? Slot : "button"
50
+
51
+ return (
52
+ <Comp
53
+ data-slot="button"
54
+ className={cn(buttonVariants({ variant, size, className }))}
55
+ {...props}
56
+ />
57
+ )
58
+ }
59
+
60
+ export { Button, buttonVariants }
@@ -1,246 +1,246 @@
1
- "use client";
2
-
3
- import * as React from "react";
4
- import {
5
- ChevronDownIcon,
6
- ChevronLeftIcon,
7
- ChevronRightIcon,
8
- } from "lucide-react";
9
- import {
10
- CaptionLabelProps,
11
- DayButton,
12
- DayPicker,
13
- getDefaultClassNames,
14
- MonthGrid,
15
- MonthGridProps,
16
- } from "react-day-picker";
17
-
18
- import { Button, buttonVariants } from "./button";
19
- import { cn } from "../../lib/utils";
20
-
21
- function Calendar({
22
- className,
23
- classNames,
24
- showOutsideDays = true,
25
- captionLayout = "label",
26
- buttonVariant = "ghost",
27
- formatters,
28
- components,
29
- ...props
30
- }: React.ComponentProps<typeof DayPicker> & {
31
- buttonVariant?: React.ComponentProps<typeof Button>["variant"];
32
- }) {
33
- const defaultClassNames = getDefaultClassNames();
34
-
35
- return (
36
- <DayPicker
37
- showOutsideDays={showOutsideDays}
38
- className={cn(
39
- "bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
40
- String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
41
- String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
42
- className
43
- )}
44
- captionLayout={captionLayout}
45
- formatters={{
46
- formatMonthDropdown: (date) =>
47
- date.toLocaleString("default", { month: "short" }),
48
- ...formatters,
49
- }}
50
- classNames={{
51
- root: cn("w-fit", defaultClassNames.root),
52
- months: cn(
53
- "relative flex flex-col gap-4 md:flex-row",
54
- defaultClassNames.months
55
- ),
56
- month: cn("flex w-full flex-col gap-4", defaultClassNames.month),
57
- nav: cn(
58
- "absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",
59
- defaultClassNames.nav
60
- ),
61
- button_previous: cn(
62
- buttonVariants({ variant: buttonVariant }),
63
- "h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",
64
- defaultClassNames.button_previous
65
- ),
66
- button_next: cn(
67
- buttonVariants({ variant: buttonVariant }),
68
- "h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",
69
- defaultClassNames.button_next
70
- ),
71
- month_caption: cn(
72
- "flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",
73
- defaultClassNames.month_caption
74
- ),
75
- dropdowns: cn(
76
- "flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",
77
- defaultClassNames.dropdowns
78
- ),
79
- dropdown_root: cn(
80
- "has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",
81
- defaultClassNames.dropdown_root
82
- ),
83
- dropdown: cn("absolute inset-0 opacity-0", defaultClassNames.dropdown),
84
- caption_label: cn(
85
- "select-none font-medium",
86
- captionLayout === "label"
87
- ? "text-sm"
88
- : "[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",
89
- defaultClassNames.caption_label,
90
- "calendar--caption_label"
91
- ),
92
- table: "w-full border-collapse",
93
- weekdays: cn("flex", defaultClassNames.weekdays),
94
- weekday: cn(
95
- "text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",
96
- defaultClassNames.weekday,
97
- "calendar--weekday"
98
- ),
99
- week: cn("mt-2 flex w-full", defaultClassNames.week),
100
- week_number_header: cn(
101
- "w-[--cell-size] select-none",
102
- defaultClassNames.week_number_header
103
- ),
104
- week_number: cn(
105
- "text-muted-foreground select-none text-[0.8rem]",
106
- defaultClassNames.week_number
107
- ),
108
- day: cn(
109
- "relative w-full h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",
110
- props.showWeekNumber
111
- ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-md"
112
- : "[&:first-child[data-selected=true]_button]:rounded-l-md",
113
- defaultClassNames.day
114
- ),
115
- range_start: cn(
116
- "bg-accent rounded-l-md",
117
- defaultClassNames.range_start
118
- ),
119
- range_middle: cn("rounded-none", defaultClassNames.range_middle),
120
- range_end: cn("bg-accent rounded-r-md", defaultClassNames.range_end),
121
- today: cn(
122
- "bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
123
- defaultClassNames.today
124
- ),
125
- outside: cn(
126
- "text-muted-foreground aria-selected:text-muted-foreground",
127
- defaultClassNames.outside
128
- ),
129
- disabled: cn(
130
- "text-muted-foreground opacity-50",
131
- defaultClassNames.disabled
132
- ),
133
- hidden: cn("invisible", defaultClassNames.hidden),
134
- ...classNames,
135
- }}
136
- components={{
137
- Root: ({ className, rootRef, ...props }) => {
138
- return (
139
- <div
140
- data-slot="calendar"
141
- ref={rootRef}
142
- className={cn(className)}
143
- {...props}
144
- />
145
- );
146
- },
147
- Chevron: ({ className, orientation, ...props }) => {
148
- if (orientation === "left") {
149
- return (
150
- <ChevronLeftIcon className={cn("size-4", className)} {...props} />
151
- );
152
- }
153
-
154
- if (orientation === "right") {
155
- return (
156
- <ChevronRightIcon
157
- className={cn("size-4", className)}
158
- {...props}
159
- />
160
- );
161
- }
162
-
163
- return (
164
- <ChevronDownIcon className={cn("size-4", className)} {...props} />
165
- );
166
- },
167
- DayButton: CalendarDayButton,
168
- WeekNumber: ({ children, ...props }) => {
169
- return (
170
- <td {...props}>
171
- <div className="flex size-[--cell-size] items-center justify-center text-center">
172
- {children}
173
- </div>
174
- </td>
175
- );
176
- },
177
- MonthGrid: CustomMonthGrid,
178
- CaptionLabel: CustomCaptionLabel,
179
- ...components,
180
- }}
181
- {...props}
182
- />
183
- );
184
- }
185
-
186
- function CalendarDayButton({
187
- className,
188
- day,
189
- modifiers,
190
- ...props
191
- }: React.ComponentProps<typeof DayButton>) {
192
- const defaultClassNames = getDefaultClassNames();
193
-
194
- const ref = React.useRef<HTMLButtonElement>(null);
195
- React.useEffect(() => {
196
- if (modifiers.focused) ref.current?.focus();
197
- }, [modifiers.focused]);
198
-
199
- return (
200
- <Button
201
- ref={ref}
202
- variant="ghost"
203
- size="icon"
204
- data-day={day.date.toLocaleDateString()}
205
- data-selected-single={
206
- modifiers.selected &&
207
- !modifiers.range_start &&
208
- !modifiers.range_end &&
209
- !modifiers.range_middle
210
- }
211
- data-range-start={modifiers.range_start}
212
- data-range-end={modifiers.range_end}
213
- data-range-middle={modifiers.range_middle}
214
- className={cn(
215
- // "data-[selected-single=true]:bg-[#FFAB63] data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-[#FFAB63] data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-[#FFAB63] data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",
216
- defaultClassNames.day,
217
- className
218
- // 'data-[selected-single=true]:!rounded-full data-[range-start=true]:!rounded-full data-[range-end=true]:!rounded-full data-[range-middle=true]:bg-[#FFEBD4]'
219
- )}
220
- {...props}
221
- >
222
- <span className="relative z-20">{day.date.getDate()}</span>
223
- </Button>
224
- );
225
- }
226
-
227
- function CustomMonthGrid(props: MonthGridProps) {
228
- return (
229
- <>
230
- <hr className="calendar--separator"></hr>
231
- <MonthGrid {...props} />
232
- </>
233
- );
234
- }
235
-
236
- function CustomCaptionLabel(props: CaptionLabelProps) {
237
- const { children } = props;
238
- const [month, year] = String(children).split(" ");
239
- return (
240
- <span {...props}>
241
- {month}, {year}
242
- </span>
243
- );
244
- }
245
-
246
- export { Calendar, CalendarDayButton };
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import {
5
+ ChevronDownIcon,
6
+ ChevronLeftIcon,
7
+ ChevronRightIcon,
8
+ } from "lucide-react";
9
+ import {
10
+ CaptionLabelProps,
11
+ DayButton,
12
+ DayPicker,
13
+ getDefaultClassNames,
14
+ MonthGrid,
15
+ MonthGridProps,
16
+ } from "react-day-picker";
17
+
18
+ import { Button, buttonVariants } from "./button";
19
+ import { cn } from "../../lib/utils";
20
+
21
+ function Calendar({
22
+ className,
23
+ classNames,
24
+ showOutsideDays = true,
25
+ captionLayout = "label",
26
+ buttonVariant = "ghost",
27
+ formatters,
28
+ components,
29
+ ...props
30
+ }: React.ComponentProps<typeof DayPicker> & {
31
+ buttonVariant?: React.ComponentProps<typeof Button>["variant"];
32
+ }) {
33
+ const defaultClassNames = getDefaultClassNames();
34
+
35
+ return (
36
+ <DayPicker
37
+ showOutsideDays={showOutsideDays}
38
+ className={cn(
39
+ "bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
40
+ String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
41
+ String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
42
+ className
43
+ )}
44
+ captionLayout={captionLayout}
45
+ formatters={{
46
+ formatMonthDropdown: (date) =>
47
+ date.toLocaleString("default", { month: "short" }),
48
+ ...formatters,
49
+ }}
50
+ classNames={{
51
+ root: cn("w-fit", defaultClassNames.root),
52
+ months: cn(
53
+ "relative flex flex-col gap-4 md:flex-row",
54
+ defaultClassNames.months
55
+ ),
56
+ month: cn("flex w-full flex-col gap-4", defaultClassNames.month),
57
+ nav: cn(
58
+ "absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",
59
+ defaultClassNames.nav
60
+ ),
61
+ button_previous: cn(
62
+ buttonVariants({ variant: buttonVariant }),
63
+ "h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",
64
+ defaultClassNames.button_previous
65
+ ),
66
+ button_next: cn(
67
+ buttonVariants({ variant: buttonVariant }),
68
+ "h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",
69
+ defaultClassNames.button_next
70
+ ),
71
+ month_caption: cn(
72
+ "flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",
73
+ defaultClassNames.month_caption
74
+ ),
75
+ dropdowns: cn(
76
+ "flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",
77
+ defaultClassNames.dropdowns
78
+ ),
79
+ dropdown_root: cn(
80
+ "has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",
81
+ defaultClassNames.dropdown_root
82
+ ),
83
+ dropdown: cn("absolute inset-0 opacity-0", defaultClassNames.dropdown),
84
+ caption_label: cn(
85
+ "select-none font-medium",
86
+ captionLayout === "label"
87
+ ? "text-sm"
88
+ : "[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",
89
+ defaultClassNames.caption_label,
90
+ "calendar--caption_label"
91
+ ),
92
+ table: "w-full border-collapse",
93
+ weekdays: cn("flex", defaultClassNames.weekdays),
94
+ weekday: cn(
95
+ "text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",
96
+ defaultClassNames.weekday,
97
+ "calendar--weekday"
98
+ ),
99
+ week: cn("mt-2 flex w-full", defaultClassNames.week),
100
+ week_number_header: cn(
101
+ "w-[--cell-size] select-none",
102
+ defaultClassNames.week_number_header
103
+ ),
104
+ week_number: cn(
105
+ "text-muted-foreground select-none text-[0.8rem]",
106
+ defaultClassNames.week_number
107
+ ),
108
+ day: cn(
109
+ "relative w-full h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",
110
+ props.showWeekNumber
111
+ ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-md"
112
+ : "[&:first-child[data-selected=true]_button]:rounded-l-md",
113
+ defaultClassNames.day
114
+ ),
115
+ range_start: cn(
116
+ "bg-accent rounded-l-md",
117
+ defaultClassNames.range_start
118
+ ),
119
+ range_middle: cn("rounded-none", defaultClassNames.range_middle),
120
+ range_end: cn("bg-accent rounded-r-md", defaultClassNames.range_end),
121
+ today: cn(
122
+ "bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
123
+ defaultClassNames.today
124
+ ),
125
+ outside: cn(
126
+ "text-muted-foreground aria-selected:text-muted-foreground",
127
+ defaultClassNames.outside
128
+ ),
129
+ disabled: cn(
130
+ "text-muted-foreground opacity-50",
131
+ defaultClassNames.disabled
132
+ ),
133
+ hidden: cn("invisible", defaultClassNames.hidden),
134
+ ...classNames,
135
+ }}
136
+ components={{
137
+ Root: ({ className, rootRef, ...props }) => {
138
+ return (
139
+ <div
140
+ data-slot="calendar"
141
+ ref={rootRef}
142
+ className={cn(className)}
143
+ {...props}
144
+ />
145
+ );
146
+ },
147
+ Chevron: ({ className, orientation, ...props }) => {
148
+ if (orientation === "left") {
149
+ return (
150
+ <ChevronLeftIcon className={cn("size-4", className)} {...props} />
151
+ );
152
+ }
153
+
154
+ if (orientation === "right") {
155
+ return (
156
+ <ChevronRightIcon
157
+ className={cn("size-4", className)}
158
+ {...props}
159
+ />
160
+ );
161
+ }
162
+
163
+ return (
164
+ <ChevronDownIcon className={cn("size-4", className)} {...props} />
165
+ );
166
+ },
167
+ DayButton: CalendarDayButton,
168
+ WeekNumber: ({ children, ...props }) => {
169
+ return (
170
+ <td {...props}>
171
+ <div className="flex size-[--cell-size] items-center justify-center text-center">
172
+ {children}
173
+ </div>
174
+ </td>
175
+ );
176
+ },
177
+ MonthGrid: CustomMonthGrid,
178
+ CaptionLabel: CustomCaptionLabel,
179
+ ...components,
180
+ }}
181
+ {...props}
182
+ />
183
+ );
184
+ }
185
+
186
+ function CalendarDayButton({
187
+ className,
188
+ day,
189
+ modifiers,
190
+ ...props
191
+ }: React.ComponentProps<typeof DayButton>) {
192
+ const defaultClassNames = getDefaultClassNames();
193
+
194
+ const ref = React.useRef<HTMLButtonElement>(null);
195
+ React.useEffect(() => {
196
+ if (modifiers.focused) ref.current?.focus();
197
+ }, [modifiers.focused]);
198
+
199
+ return (
200
+ <Button
201
+ ref={ref}
202
+ variant="ghost"
203
+ size="icon"
204
+ data-day={day.date.toLocaleDateString()}
205
+ data-selected-single={
206
+ modifiers.selected &&
207
+ !modifiers.range_start &&
208
+ !modifiers.range_end &&
209
+ !modifiers.range_middle
210
+ }
211
+ data-range-start={modifiers.range_start}
212
+ data-range-end={modifiers.range_end}
213
+ data-range-middle={modifiers.range_middle}
214
+ className={cn(
215
+ // "data-[selected-single=true]:bg-[#FFAB63] data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-[#FFAB63] data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-[#FFAB63] data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",
216
+ defaultClassNames.day,
217
+ className
218
+ // 'data-[selected-single=true]:!rounded-full data-[range-start=true]:!rounded-full data-[range-end=true]:!rounded-full data-[range-middle=true]:bg-[#FFEBD4]'
219
+ )}
220
+ {...props}
221
+ >
222
+ <span className="relative z-20">{day.date.getDate()}</span>
223
+ </Button>
224
+ );
225
+ }
226
+
227
+ function CustomMonthGrid(props: MonthGridProps) {
228
+ return (
229
+ <>
230
+ <hr className="calendar--separator"></hr>
231
+ <MonthGrid {...props} />
232
+ </>
233
+ );
234
+ }
235
+
236
+ function CustomCaptionLabel(props: CaptionLabelProps) {
237
+ const { children } = props;
238
+ const [month, year] = String(children).split(" ");
239
+ return (
240
+ <span {...props}>
241
+ {month}, {year}
242
+ </span>
243
+ );
244
+ }
245
+
246
+ export { Calendar, CalendarDayButton };