@timmbr/ui 1.17.7 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/dist/components/Calendar/Calendar.d.ts +4 -0
  2. package/dist/components/Calendar/Calendar.d.ts.map +1 -0
  3. package/dist/components/Calendar/Calendar.helpers.d.ts +31 -0
  4. package/dist/components/Calendar/Calendar.helpers.d.ts.map +1 -0
  5. package/dist/components/Calendar/Calendar.helpers.js +153 -0
  6. package/dist/components/Calendar/Calendar.js +188 -0
  7. package/dist/components/Calendar/Calendar.styles.d.ts +7 -0
  8. package/dist/components/Calendar/Calendar.styles.d.ts.map +1 -0
  9. package/dist/components/Calendar/Calendar.styles.js +15 -0
  10. package/dist/components/Calendar/Calendar.types.d.ts +83 -0
  11. package/dist/components/Calendar/Calendar.types.d.ts.map +1 -0
  12. package/dist/components/Calendar/index.d.ts +5 -0
  13. package/dist/components/Calendar/index.d.ts.map +1 -0
  14. package/dist/components/Calendar/subcomponents/CalendarMonthYearPickers.d.ts +21 -0
  15. package/dist/components/Calendar/subcomponents/CalendarMonthYearPickers.d.ts.map +1 -0
  16. package/dist/components/Calendar/subcomponents/CalendarMonthYearPickers.js +185 -0
  17. package/dist/components/DataTable/DataTable.d.ts.map +1 -1
  18. package/dist/components/DataTable/DataTable.js +16 -4
  19. package/dist/components/DatePicker/DatePicker.d.ts +4 -0
  20. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -0
  21. package/dist/components/DatePicker/DatePicker.helpers.d.ts +8 -0
  22. package/dist/components/DatePicker/DatePicker.helpers.d.ts.map +1 -0
  23. package/dist/components/DatePicker/DatePicker.helpers.js +51 -0
  24. package/dist/components/DatePicker/DatePicker.js +236 -0
  25. package/dist/components/DatePicker/DatePicker.styles.d.ts +4 -0
  26. package/dist/components/DatePicker/DatePicker.styles.d.ts.map +1 -0
  27. package/dist/components/DatePicker/DatePicker.styles.js +15 -0
  28. package/dist/components/DatePicker/DatePicker.types.d.ts +67 -0
  29. package/dist/components/DatePicker/DatePicker.types.d.ts.map +1 -0
  30. package/dist/components/DatePicker/index.d.ts +5 -0
  31. package/dist/components/DatePicker/index.d.ts.map +1 -0
  32. package/dist/components/Rating/Rating.d.ts +1 -1
  33. package/dist/components/Rating/Rating.d.ts.map +1 -1
  34. package/dist/components/Rating/Rating.js +11 -2
  35. package/dist/components/Rating/Rating.types.d.ts +5 -0
  36. package/dist/components/Rating/Rating.types.d.ts.map +1 -1
  37. package/dist/components/RatingDistribution/RatingDistribution.d.ts +8 -0
  38. package/dist/components/RatingDistribution/RatingDistribution.d.ts.map +1 -0
  39. package/dist/components/RatingDistribution/RatingDistribution.js +70 -0
  40. package/dist/components/RatingDistribution/RatingDistribution.types.d.ts +21 -0
  41. package/dist/components/RatingDistribution/RatingDistribution.types.d.ts.map +1 -0
  42. package/dist/components/RatingDistribution/index.d.ts +3 -0
  43. package/dist/components/RatingDistribution/index.d.ts.map +1 -0
  44. package/dist/components/RatingInput/RatingInput.d.ts +8 -0
  45. package/dist/components/RatingInput/RatingInput.d.ts.map +1 -0
  46. package/dist/components/RatingInput/RatingInput.js +95 -0
  47. package/dist/components/RatingInput/RatingInput.styles.d.ts +6 -0
  48. package/dist/components/RatingInput/RatingInput.styles.d.ts.map +1 -0
  49. package/dist/components/RatingInput/RatingInput.styles.js +13 -0
  50. package/dist/components/RatingInput/RatingInput.types.d.ts +18 -0
  51. package/dist/components/RatingInput/RatingInput.types.d.ts.map +1 -0
  52. package/dist/components/RatingInput/index.d.ts +4 -0
  53. package/dist/components/RatingInput/index.d.ts.map +1 -0
  54. package/dist/components/RichTextEditor/RichTextEditor.d.ts +1 -1
  55. package/dist/components/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  56. package/dist/components/RichTextEditor/RichTextEditor.js +2 -0
  57. package/dist/components/RichTextEditor/RichTextEditor.types.d.ts +2 -0
  58. package/dist/components/RichTextEditor/RichTextEditor.types.d.ts.map +1 -1
  59. package/dist/components/RichTextEditor/subcomponents/RteToolbar.d.ts +2 -1
  60. package/dist/components/RichTextEditor/subcomponents/RteToolbar.d.ts.map +1 -1
  61. package/dist/components/RichTextEditor/subcomponents/RteToolbar.js +60 -2
  62. package/dist/index.d.ts +4 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +9 -0
  65. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/date/index.js +83 -0
  66. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/date/mini.js +450 -0
  67. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/tzName/index.js +39 -0
  68. package/dist/node_modules/.pnpm/@date-fns_tz@1.5.0/node_modules/@date-fns/tz/tzOffset/index.js +56 -0
  69. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/addLeadingZeros.js +7 -0
  70. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/defaultOptions.js +7 -0
  71. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/format/formatters.js +775 -0
  72. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/format/lightFormatters.js +94 -0
  73. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/format/longFormatters.js +66 -0
  74. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +31 -0
  75. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/normalizeDates.js +11 -0
  76. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/normalizeInterval.js +8 -0
  77. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/protectedTokens.js +25 -0
  78. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/addDays.js +60 -0
  79. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/addMonths.js +75 -0
  80. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/addWeeks.js +33 -0
  81. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/addYears.js +33 -0
  82. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/constants.js +46 -0
  83. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/constructFrom.js +49 -0
  84. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/differenceInCalendarDays.js +62 -0
  85. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/differenceInCalendarMonths.js +42 -0
  86. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/eachMonthOfInterval.js +65 -0
  87. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/eachYearOfInterval.js +65 -0
  88. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfISOWeek.js +35 -0
  89. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfMonth.js +37 -0
  90. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfWeek.js +53 -0
  91. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfYear.js +37 -0
  92. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/format.js +423 -0
  93. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getDayOfYear.js +34 -0
  94. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getDaysInMonth.js +36 -0
  95. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getISOWeek.js +40 -0
  96. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getISOWeekYear.js +52 -0
  97. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getMonth.js +29 -0
  98. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getWeek.js +54 -0
  99. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getWeekYear.js +75 -0
  100. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getYear.js +29 -0
  101. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isAfter.js +25 -0
  102. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isBefore.js +25 -0
  103. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isDate.js +41 -0
  104. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isSameDay.js +46 -0
  105. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isSameMonth.js +43 -0
  106. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isSameYear.js +35 -0
  107. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isValid.js +39 -0
  108. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +10 -0
  109. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +64 -0
  110. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildMatchFn.js +59 -0
  111. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +22 -0
  112. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +103 -0
  113. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js +41 -0
  114. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +13 -0
  115. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/localize.js +189 -0
  116. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/match.js +134 -0
  117. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US.js +28 -0
  118. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/max.js +49 -0
  119. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/min.js +49 -0
  120. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setMonth.js +46 -0
  121. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setYear.js +40 -0
  122. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfDay.js +35 -0
  123. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfISOWeek.js +35 -0
  124. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfISOWeekYear.js +42 -0
  125. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfMonth.js +37 -0
  126. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfWeek.js +53 -0
  127. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfWeekYear.js +64 -0
  128. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfYear.js +36 -0
  129. package/dist/node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/toDate.js +46 -0
  130. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/DayPicker.js +346 -0
  131. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/UI.js +122 -0
  132. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js +33 -0
  133. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js +14 -0
  134. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js +13 -0
  135. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/classes/DateLib.js +599 -0
  136. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/CaptionLabel.js +13 -0
  137. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Chevron.js +18 -0
  138. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Day.js +18 -0
  139. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/DayButton.js +19 -0
  140. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Dropdown.js +23 -0
  141. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/DropdownNav.js +13 -0
  142. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Footer.js +13 -0
  143. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Month.js +15 -0
  144. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/MonthCaption.js +14 -0
  145. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/MonthGrid.js +13 -0
  146. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Months.js +13 -0
  147. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js +15 -0
  148. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Nav.js +31 -0
  149. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/NextMonthButton.js +13 -0
  150. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Option.js +13 -0
  151. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.js +13 -0
  152. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Root.js +14 -0
  153. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Select.js +13 -0
  154. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Week.js +14 -0
  155. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/WeekNumber.js +14 -0
  156. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.js +13 -0
  157. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Weekday.js +13 -0
  158. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Weekdays.js +14 -0
  159. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/Weeks.js +13 -0
  160. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/YearsDropdown.js +15 -0
  161. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/components/custom-components.js +25 -0
  162. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js +20 -0
  163. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/formatters/formatDay.js +19 -0
  164. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.js +18 -0
  165. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js +21 -0
  166. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js +13 -0
  167. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.js +19 -0
  168. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js +17 -0
  169. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/formatters/index.js +7 -0
  170. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js +73 -0
  171. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js +95 -0
  172. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js +22 -0
  173. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js +28 -0
  174. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.js +33 -0
  175. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getComponents.js +20 -0
  176. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js +27 -0
  177. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getDates.js +59 -0
  178. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getDays.js +19 -0
  179. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js +33 -0
  180. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js +24 -0
  181. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.js +46 -0
  182. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getFormatters.js +17 -0
  183. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js +27 -0
  184. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getLabels.js +53 -0
  185. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js +33 -0
  186. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getMonths.js +69 -0
  187. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.js +31 -0
  188. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.js +40 -0
  189. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.js +36 -0
  190. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.js +37 -0
  191. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js +27 -0
  192. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js +26 -0
  193. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getWeeks.js +14 -0
  194. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js +36 -0
  195. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js +27 -0
  196. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.js +31 -0
  197. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/labels/index.js +11 -0
  198. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/labels/labelDayButton.js +27 -0
  199. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/labels/labelGrid.js +20 -0
  200. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/labels/labelGridcell.js +22 -0
  201. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js +14 -0
  202. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/labels/labelNav.js +13 -0
  203. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/labels/labelNext.js +16 -0
  204. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/labels/labelPrevious.js +15 -0
  205. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js +15 -0
  206. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js +14 -0
  207. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/labels/labelWeekday.js +18 -0
  208. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js +14 -0
  209. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/locale/en-US.js +67 -0
  210. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/noonDateLib.js +163 -0
  211. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/selection/useMulti.js +57 -0
  212. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/selection/useRange.js +63 -0
  213. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/selection/useSingle.js +44 -0
  214. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/useAnimation.js +173 -0
  215. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/useCalendar.js +113 -0
  216. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/useDayPicker.js +25 -0
  217. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/useFocus.js +64 -0
  218. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/useSelection.js +31 -0
  219. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/utils/addToRange.js +95 -0
  220. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.js +61 -0
  221. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js +62 -0
  222. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js +30 -0
  223. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js +74 -0
  224. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js +35 -0
  225. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.js +21 -0
  226. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/utils/toTimeZone.js +16 -0
  227. package/dist/node_modules/.pnpm/react-day-picker@10.0.2_@types_react@19.3.0_react@19.3.0/node_modules/react-day-picker/dist/esm/utils/typeguards.js +66 -0
  228. package/package.json +13 -11
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import type { CalendarProps } from './Calendar.types';
3
+ export declare const Calendar: React.ForwardRefExoticComponent<CalendarProps & React.RefAttributes<HTMLDivElement>>;
4
+ //# sourceMappingURL=Calendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/Calendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAYtD,eAAO,MAAM,QAAQ,sFAsLpB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { type ClassNames, type CustomComponents } from '@daypicker/react';
2
+ import type { CalendarSize } from './Calendar.styles';
3
+ import type { CaptionLayout, NavLayout } from './Calendar.types';
4
+ export type CaptionDefaultsInput = {
5
+ captionLayout?: CaptionLayout;
6
+ navLayout?: NavLayout;
7
+ startMonth?: Date;
8
+ endMonth?: Date;
9
+ today?: Date;
10
+ };
11
+ export type CaptionDefaults = {
12
+ captionLayout: CaptionLayout;
13
+ navLayout?: NavLayout;
14
+ startMonth?: Date;
15
+ endMonth?: Date;
16
+ };
17
+ /**
18
+ * Resolves Calendar caption chrome defaults when consumers omit layout/bounds.
19
+ * Default is a clickable label caption (in-popover month/year grids) with around-nav.
20
+ * Native DayPicker dropdowns remain available via `captionLayout="dropdown"`.
21
+ * Bounds default to 100y back / 10y forward when both startMonth and endMonth are omitted.
22
+ */
23
+ export declare function resolveCaptionDefaults({ captionLayout: captionLayoutProp, navLayout: navLayoutProp, startMonth: startMonthProp, endMonth: endMonthProp, today, }: CaptionDefaultsInput): CaptionDefaults;
24
+ /**
25
+ * DayPicker replaces default classNames per key. Always keep the `rdp-*`
26
+ * tokens so style.css + theme bridge (range trail gradients, middle band)
27
+ * still match. Selected white text must never win on `.rdp-range_middle`.
28
+ */
29
+ export declare function buildCalendarClassNames(size?: CalendarSize, overrides?: Partial<ClassNames>): Partial<ClassNames>;
30
+ export declare function buildCalendarComponents(overrides?: Partial<CustomComponents>): Partial<CustomComponents>;
31
+ //# sourceMappingURL=Calendar.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.helpers.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/Calendar.helpers.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAcjE,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,IAAI,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,aAAa,EAAE,iBAAiB,EAChC,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,YAAY,EACtB,KAAK,GACN,EAAE,oBAAoB,GAAG,eAAe,CAgBxC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,GAAE,YAAwB,EAC9B,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAC9B,OAAO,CAAC,UAAU,CAAC,CAsGrB;AAED,wBAAgB,uBAAuB,CACrC,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACpC,OAAO,CAAC,gBAAgB,CAAC,CA6B3B"}
@@ -0,0 +1,153 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { getDefaultClassNames } from '@daypicker/react';
3
+ import { cn } from '@timmbr/utils';
4
+ import { ChevronLeft, ChevronDown, ChevronRight } from '@timmbr/icons';
5
+
6
+ const selectedDayButton = "[&_button]:bg-primary [&_button]:text-primary-foreground [&_button]:hover:bg-primary [&_button]:hover:text-primary-foreground";
7
+ const baseDayButton = "inline-flex h-full w-full items-center justify-center rounded-[2px] text-body-3 font-medium text-inherit transition-colors duration-150 hover:bg-grey-100 hover:text-foreground dark:hover:bg-grey-800 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-1";
8
+ const navButton = "z-10 inline-flex size-9 shrink-0 items-center justify-center rounded-[2px] text-foreground transition-colors hover:bg-grey-100 dark:hover:bg-grey-800 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary disabled:pointer-events-none disabled:opacity-40";
9
+ const dropdownChrome = "h-8 rounded-[2px] border border-grey-300 bg-background pl-2 pr-1 text-body-3 font-medium text-foreground dark:border-grey-700 dark:bg-grey-900 focus-within:border-primary focus-within:ring-2 focus-within:ring-primary/20";
10
+ function resolveCaptionDefaults({
11
+ captionLayout: captionLayoutProp,
12
+ navLayout: navLayoutProp,
13
+ startMonth: startMonthProp,
14
+ endMonth: endMonthProp,
15
+ today
16
+ }) {
17
+ const captionLayout = captionLayoutProp ?? "label";
18
+ const navLayout = navLayoutProp !== void 0 ? navLayoutProp : "around";
19
+ let startMonth = startMonthProp;
20
+ let endMonth = endMonthProp;
21
+ if (startMonth === void 0 && endMonth === void 0) {
22
+ const year = (today ?? /* @__PURE__ */ new Date()).getFullYear();
23
+ startMonth = new Date(year - 100, 0, 1);
24
+ endMonth = new Date(year + 10, 11, 31);
25
+ }
26
+ return { captionLayout, navLayout, startMonth, endMonth };
27
+ }
28
+ function buildCalendarClassNames(size = "default", overrides) {
29
+ const compact = size === "compact";
30
+ const dcn = getDefaultClassNames();
31
+ const defaults = {
32
+ root: cn(
33
+ dcn.root,
34
+ "rdp-timmbr p-0 bg-transparent",
35
+ // Keep around-nav metrics in sync with size-9 chrome so caption padding matches.
36
+ "[--rdp-nav_button-width:2.25rem] [--rdp-nav_button-height:2.25rem] [--rdp-nav-height:2.25rem]",
37
+ compact && "text-body-3"
38
+ ),
39
+ // Keep months on one row. Wrapping stacks dual-month range calendars and
40
+ // strands around-nav arrows on opposite months (broken caption chrome).
41
+ months: cn(dcn.months, "relative flex flex-row flex-nowrap items-start gap-4"),
42
+ month: cn(dcn.month, "relative flex w-max min-w-[17.5rem] flex-col gap-3"),
43
+ // DayPicker around-nav adds margin-inline equal to nav width. Combined with
44
+ // w-full that overflows right and optically shifts the caption. Use equal
45
+ // padding instead so the label stays centered between the arrows.
46
+ month_caption: cn(
47
+ dcn.month_caption,
48
+ "relative flex h-9 w-full items-center justify-center px-9",
49
+ "![margin-inline:0]"
50
+ ),
51
+ caption_label: cn(
52
+ dcn.caption_label,
53
+ "inline-flex items-center justify-center gap-1 text-body-3 font-semibold text-foreground select-none",
54
+ "[&_svg]:size-3.5 [&_svg]:opacity-70"
55
+ ),
56
+ dropdowns: cn(
57
+ dcn.dropdowns,
58
+ "relative z-[1] inline-flex h-9 items-center justify-center gap-1.5"
59
+ ),
60
+ // Visible chrome wraps the caption_label; native <select> is an invisible hit target.
61
+ dropdown_root: cn(dcn.dropdown_root, "relative inline-flex items-center", dropdownChrome),
62
+ dropdown: cn(
63
+ dcn.dropdown,
64
+ "absolute inset-0 z-[2] m-0 h-full w-full cursor-pointer opacity-0 appearance-none"
65
+ ),
66
+ months_dropdown: cn(dcn.months_dropdown),
67
+ years_dropdown: cn(dcn.years_dropdown),
68
+ nav: cn(dcn.nav, "absolute inset-x-0 top-0 z-[1] flex h-9 items-center justify-between"),
69
+ // Positioning comes from DayPicker `[data-nav-layout=around]` — keep size in sync with px-9.
70
+ button_previous: cn(dcn.button_previous, navButton),
71
+ button_next: cn(dcn.button_next, navButton),
72
+ month_grid: cn(dcn.month_grid, "w-full border-collapse"),
73
+ weekdays: cn(dcn.weekdays, "flex"),
74
+ weekday: cn(
75
+ dcn.weekday,
76
+ "w-10 flex-1 text-center text-caption font-semibold uppercase text-muted-foreground select-none",
77
+ compact && "w-9"
78
+ ),
79
+ week: cn(dcn.week, "mt-1 flex w-full"),
80
+ day: cn(
81
+ dcn.day,
82
+ "relative h-10 w-10 p-0 text-center text-body-3 text-foreground focus-within:z-10",
83
+ compact && "h-9 w-9"
84
+ ),
85
+ day_button: cn(dcn.day_button, baseDayButton),
86
+ selected: cn(
87
+ dcn.selected,
88
+ "[&:not(.rdp-range_middle)]:[&_button]:bg-primary [&:not(.rdp-range_middle)]:[&_button]:text-primary-foreground",
89
+ "[&:not(.rdp-range_middle)]:[&_button]:hover:bg-primary [&:not(.rdp-range_middle)]:[&_button]:hover:text-primary-foreground"
90
+ ),
91
+ today: cn(
92
+ dcn.today,
93
+ "font-semibold text-primary [&:not([data-selected])]:border [&:not([data-selected])]:border-primary/60"
94
+ ),
95
+ outside: cn(
96
+ dcn.outside,
97
+ "text-muted-foreground opacity-50",
98
+ "[&:not(.rdp-range_middle)]:aria-selected:bg-primary/20 [&:not(.rdp-range_middle)]:aria-selected:text-primary-foreground"
99
+ ),
100
+ disabled: cn(dcn.disabled, "pointer-events-none text-muted-foreground opacity-40"),
101
+ hidden: cn(dcn.hidden, "invisible"),
102
+ // Primary fill on the day_button only. Cell keeps DayPicker half-cell
103
+ // gradient tokens so the trail connects into the middle band.
104
+ range_start: cn(dcn.range_start, selectedDayButton, "[&_button]:rounded-[2px]"),
105
+ range_end: cn(dcn.range_end, selectedDayButton, "[&_button]:rounded-[2px]"),
106
+ range_middle: cn(
107
+ dcn.range_middle,
108
+ // DayPicker `.rdp-selected` sets large/bold on every selected day — reset trail only.
109
+ "rounded-none bg-primary/20 text-body-3 font-normal text-foreground",
110
+ "[&_button]:rounded-none [&_button]:bg-transparent [&_button]:text-body-3 [&_button]:font-normal [&_button]:text-foreground [&_button]:shadow-none",
111
+ "[&_button]:hover:bg-transparent [&_button]:hover:text-foreground"
112
+ ),
113
+ chevron: cn(dcn.chevron, "size-3.5 shrink-0 fill-current text-foreground opacity-70")
114
+ };
115
+ if (!overrides) {
116
+ return defaults;
117
+ }
118
+ const merged = { ...defaults };
119
+ for (const key of Object.keys(overrides)) {
120
+ const value = overrides[key];
121
+ if (value === void 0) continue;
122
+ const base = defaults[key];
123
+ merged[key] = base ? cn(base, value) : value;
124
+ }
125
+ return merged;
126
+ }
127
+ function buildCalendarComponents(overrides) {
128
+ const Chevron = ({
129
+ className,
130
+ orientation = "right",
131
+ ...props
132
+ }) => {
133
+ const Icon = orientation === "left" ? ChevronLeft : orientation === "down" || orientation === "up" ? ChevronDown : ChevronRight;
134
+ return /* @__PURE__ */ jsx(
135
+ Icon,
136
+ {
137
+ className: cn(
138
+ "size-4 shrink-0 text-foreground",
139
+ orientation === "up" && "rotate-180",
140
+ className
141
+ ),
142
+ "aria-hidden": true,
143
+ ...props
144
+ }
145
+ );
146
+ };
147
+ return {
148
+ Chevron,
149
+ ...overrides
150
+ };
151
+ }
152
+
153
+ export { buildCalendarClassNames, buildCalendarComponents, resolveCaptionDefaults };
@@ -0,0 +1,188 @@
1
+ "use client";
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import * as React from 'react';
4
+ import { DayPicker } from '@daypicker/react';
5
+ import { cn } from '@timmbr/utils';
6
+ import { ChevronDown } from '@timmbr/icons';
7
+ import { resolveMotion } from '../../types/motion.js';
8
+ import { resolveCaptionDefaults, buildCalendarClassNames, buildCalendarComponents } from './Calendar.helpers.js';
9
+ import { calendarRootVariants } from './Calendar.styles.js';
10
+ import { CalendarYearPicker, CalendarMonthPicker } from './subcomponents/CalendarMonthYearPickers.js';
11
+ import { useGlobalAnimation } from '../../providers/AnimationProvider.js';
12
+
13
+ function startOfMonth(date) {
14
+ return new Date(date.getFullYear(), date.getMonth(), 1);
15
+ }
16
+ const Calendar = React.forwardRef(
17
+ ({
18
+ className,
19
+ classNames,
20
+ components,
21
+ formatters,
22
+ motion,
23
+ size,
24
+ showOutsideDays = true,
25
+ fixedWeeks = false,
26
+ captionLayout,
27
+ navLayout,
28
+ startMonth,
29
+ endMonth,
30
+ captionPicker,
31
+ defaultMonth,
32
+ month: monthProp,
33
+ onMonthChange,
34
+ ...props
35
+ }, ref) => {
36
+ const globalMotion = useGlobalAnimation();
37
+ const { shouldAnimate } = resolveMotion(motion, globalMotion);
38
+ const captionDefaults = resolveCaptionDefaults({
39
+ captionLayout,
40
+ navLayout,
41
+ startMonth,
42
+ endMonth
43
+ });
44
+ const useCaptionPicker = captionPicker ?? captionDefaults.captionLayout === "label";
45
+ const [view, setView] = React.useState("days");
46
+ const [uncontrolledMonth, setUncontrolledMonth] = React.useState(
47
+ () => startOfMonth(monthProp ?? defaultMonth ?? /* @__PURE__ */ new Date())
48
+ );
49
+ const displayMonth = startOfMonth(monthProp ?? uncontrolledMonth);
50
+ const setDisplayMonth = React.useCallback(
51
+ (next) => {
52
+ const normalized = startOfMonth(next);
53
+ if (monthProp === void 0) {
54
+ setUncontrolledMonth(normalized);
55
+ }
56
+ onMonthChange?.(normalized);
57
+ },
58
+ [monthProp, onMonthChange]
59
+ );
60
+ React.useEffect(() => {
61
+ if (monthProp !== void 0) {
62
+ setUncontrolledMonth(startOfMonth(monthProp));
63
+ }
64
+ }, [monthProp]);
65
+ const mergedClassNames = React.useMemo(
66
+ () => buildCalendarClassNames(size ?? "default", classNames),
67
+ [classNames, size]
68
+ );
69
+ const openYears = React.useCallback((fromMonth) => {
70
+ setDisplayMonth(fromMonth);
71
+ setView("years");
72
+ }, [setDisplayMonth]);
73
+ const mergedComponents = React.useMemo(() => {
74
+ const base = buildCalendarComponents(components);
75
+ if (!useCaptionPicker || captionDefaults.captionLayout !== "label") {
76
+ return base;
77
+ }
78
+ return {
79
+ ...base,
80
+ MonthCaption: ({
81
+ calendarMonth,
82
+ displayIndex: _displayIndex,
83
+ className: captionClassName,
84
+ children: _children,
85
+ ...captionProps
86
+ }) => /* @__PURE__ */ jsx(
87
+ "div",
88
+ {
89
+ className: cn(captionClassName, "flex items-center justify-center"),
90
+ ...captionProps,
91
+ children: /* @__PURE__ */ jsxs(
92
+ "button",
93
+ {
94
+ type: "button",
95
+ className: cn(
96
+ mergedClassNames.caption_label,
97
+ "cursor-pointer rounded-[2px] px-1.5 py-1 transition-colors hover:bg-grey-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary dark:hover:bg-grey-800"
98
+ ),
99
+ "aria-label": `Choose month and year, currently ${calendarMonth.date.toLocaleString("default", {
100
+ month: "long",
101
+ year: "numeric"
102
+ })}`,
103
+ onClick: () => openYears(calendarMonth.date),
104
+ children: [
105
+ /* @__PURE__ */ jsx("span", { children: calendarMonth.date.toLocaleString("default", {
106
+ month: "long",
107
+ year: "numeric"
108
+ }) }),
109
+ /* @__PURE__ */ jsx(ChevronDown, { className: "size-3.5 opacity-70", "aria-hidden": true })
110
+ ]
111
+ }
112
+ )
113
+ }
114
+ )
115
+ };
116
+ }, [
117
+ captionDefaults.captionLayout,
118
+ components,
119
+ mergedClassNames.caption_label,
120
+ openYears,
121
+ useCaptionPicker
122
+ ]);
123
+ const dayPickerProps = props;
124
+ return /* @__PURE__ */ jsx(
125
+ "div",
126
+ {
127
+ ref,
128
+ "data-slot": "calendar",
129
+ "data-view": view,
130
+ className: cn(calendarRootVariants({ size }), className),
131
+ children: view === "years" ? /* @__PURE__ */ jsx(
132
+ CalendarYearPicker,
133
+ {
134
+ displayMonth,
135
+ startMonth: captionDefaults.startMonth,
136
+ endMonth: captionDefaults.endMonth,
137
+ onSelectYear: (year) => {
138
+ setDisplayMonth(new Date(year, displayMonth.getMonth(), 1));
139
+ setView("months");
140
+ },
141
+ onDecadeChange: (anchorYear) => {
142
+ setDisplayMonth(new Date(anchorYear, displayMonth.getMonth(), 1));
143
+ }
144
+ }
145
+ ) : view === "months" ? /* @__PURE__ */ jsx(
146
+ CalendarMonthPicker,
147
+ {
148
+ displayMonth,
149
+ startMonth: captionDefaults.startMonth,
150
+ endMonth: captionDefaults.endMonth,
151
+ onSelectMonth: (month) => {
152
+ setDisplayMonth(month);
153
+ setView("days");
154
+ },
155
+ onOpenYears: () => setView("years"),
156
+ onYearChange: (year) => {
157
+ setDisplayMonth(new Date(year, displayMonth.getMonth(), 1));
158
+ }
159
+ }
160
+ ) : /* @__PURE__ */ jsx(
161
+ DayPicker,
162
+ {
163
+ showOutsideDays,
164
+ fixedWeeks,
165
+ animate: shouldAnimate,
166
+ classNames: mergedClassNames,
167
+ captionLayout: captionDefaults.captionLayout,
168
+ navLayout: captionDefaults.navLayout,
169
+ startMonth: captionDefaults.startMonth,
170
+ endMonth: captionDefaults.endMonth,
171
+ defaultMonth,
172
+ ...dayPickerProps,
173
+ components: mergedComponents,
174
+ month: displayMonth,
175
+ onMonthChange: setDisplayMonth,
176
+ formatters: {
177
+ formatMonthDropdown: (month) => month.toLocaleString("default", { month: "short" }),
178
+ ...formatters
179
+ }
180
+ }
181
+ )
182
+ }
183
+ );
184
+ }
185
+ );
186
+ Calendar.displayName = "Calendar";
187
+
188
+ export { Calendar };
@@ -0,0 +1,7 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ export declare const calendarRootVariants: (props?: ({
3
+ size?: "default" | "compact" | null | undefined;
4
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
+ export type CalendarVariants = VariantProps<typeof calendarRootVariants>;
6
+ export type CalendarSize = NonNullable<CalendarVariants['size']>;
7
+ //# sourceMappingURL=Calendar.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/Calendar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,oBAAoB;;8EAU/B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACzE,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { cva } from 'class-variance-authority';
2
+
3
+ const calendarRootVariants = cva("inline-block font-sans text-foreground", {
4
+ variants: {
5
+ size: {
6
+ default: "",
7
+ compact: "text-body-3"
8
+ }
9
+ },
10
+ defaultVariants: {
11
+ size: "default"
12
+ }
13
+ });
14
+
15
+ export { calendarRootVariants };
@@ -0,0 +1,83 @@
1
+ import type { ClassNames, CustomComponents, DayPickerProps, DateRange } from '@daypicker/react';
2
+ import type { MotionProp } from '../../types/motion';
3
+ import type { CalendarVariants } from './Calendar.styles';
4
+ /** Caption chrome layout for month/year navigation. */
5
+ export type CaptionLayout = NonNullable<DayPickerProps['captionLayout']>;
6
+ /** Previous/next button placement relative to the caption. */
7
+ export type NavLayout = NonNullable<DayPickerProps['navLayout']>;
8
+ type CalendarChromeProps = Omit<DayPickerProps, 'mode' | 'selected' | 'onSelect' | 'required' | 'min' | 'max'> & {
9
+ motion?: MotionProp;
10
+ classNames?: Partial<ClassNames>;
11
+ components?: Partial<CustomComponents>;
12
+ /**
13
+ * Caption chrome. Defaults to `'label'` with an in-popover month/year picker.
14
+ * Pass `'dropdown'` / `'dropdown-months'` / `'dropdown-years'` for native selects.
15
+ */
16
+ captionLayout?: CaptionLayout;
17
+ /**
18
+ * Nav button placement. Defaults to `'around'`.
19
+ */
20
+ navLayout?: NavLayout;
21
+ /**
22
+ * When `captionLayout` is `'label'` (default), clicking the caption replaces
23
+ * the day grid with year → month pickers inside the same surface.
24
+ * Defaults to `true` for label captions; ignored for dropdown captions.
25
+ */
26
+ captionPicker?: boolean;
27
+ /**
28
+ * Earliest navigable month. When both `startMonth` and `endMonth` are omitted,
29
+ * defaults to Jan 1 of (currentYear - 100).
30
+ */
31
+ startMonth?: Date;
32
+ /**
33
+ * Latest navigable month. When both `startMonth` and `endMonth` are omitted,
34
+ * defaults to Dec 31 of (currentYear + 10).
35
+ */
36
+ endMonth?: Date;
37
+ /**
38
+ * Day matchers that disable interaction (dates, ranges, day-of-week, etc.).
39
+ * @see https://daypicker.dev/docs/selection-modes#disabled
40
+ */
41
+ disabled?: DayPickerProps['disabled'];
42
+ /**
43
+ * Day matchers that hide days from the grid.
44
+ * @see https://daypicker.dev/docs/selection-modes#hidden
45
+ */
46
+ hidden?: DayPickerProps['hidden'];
47
+ } & CalendarVariants;
48
+ export type CalendarSingleProps = CalendarChromeProps & {
49
+ mode?: 'single';
50
+ selected?: Date;
51
+ onSelect?: (date: Date | undefined) => void;
52
+ /** Require a selected date (DayPicker single-mode required). */
53
+ required?: boolean;
54
+ };
55
+ export type CalendarMultipleProps = CalendarChromeProps & {
56
+ mode: 'multiple';
57
+ selected?: Date[];
58
+ onSelect?: (dates: Date[] | undefined) => void;
59
+ /** Minimum number of selected days. */
60
+ min?: number;
61
+ /** Maximum number of selected days. */
62
+ max?: number;
63
+ required?: boolean;
64
+ };
65
+ export type CalendarRangeProps = CalendarChromeProps & {
66
+ mode: 'range';
67
+ selected?: DateRange;
68
+ onSelect?: (range: DateRange | undefined) => void;
69
+ /** Minimum number of days in the range. */
70
+ min?: number;
71
+ /** Maximum number of days in the range. */
72
+ max?: number;
73
+ required?: boolean;
74
+ };
75
+ export type CalendarUncontrolledProps = CalendarChromeProps & {
76
+ mode?: undefined;
77
+ selected?: undefined;
78
+ onSelect?: undefined;
79
+ required?: undefined;
80
+ };
81
+ export type CalendarProps = CalendarSingleProps | CalendarMultipleProps | CalendarRangeProps | CalendarUncontrolledProps;
82
+ export type { DateRange };
83
+ //# sourceMappingURL=Calendar.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.types.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/Calendar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,uDAAuD;AACvD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;AAEzE,8DAA8D;AAC9D,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;AAEjE,KAAK,mBAAmB,GAAG,IAAI,CAC7B,cAAc,EACd,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,KAAK,CAC9D,GAAG;IACF,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACtC;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;CACnC,GAAG,gBAAgB,CAAC;AAErB,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG;IACtD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IAC5C,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG;IACxD,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/C,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG;IACrD,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;IAClD,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG;IAC5D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,qBAAqB,GACrB,kBAAkB,GAClB,yBAAyB,CAAC;AAE9B,YAAY,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './Calendar';
2
+ export * from './Calendar.types';
3
+ export * from './Calendar.styles';
4
+ export * from './Calendar.helpers';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Calendar/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ export type CalendarMonthPickerProps = {
3
+ displayMonth: Date;
4
+ startMonth?: Date;
5
+ endMonth?: Date;
6
+ onSelectMonth: (month: Date) => void;
7
+ onOpenYears: () => void;
8
+ onYearChange: (year: number) => void;
9
+ className?: string;
10
+ };
11
+ export declare function CalendarMonthPicker({ displayMonth, startMonth, endMonth, onSelectMonth, onOpenYears, onYearChange, className, }: CalendarMonthPickerProps): React.JSX.Element;
12
+ export type CalendarYearPickerProps = {
13
+ displayMonth: Date;
14
+ startMonth?: Date;
15
+ endMonth?: Date;
16
+ onSelectYear: (year: number) => void;
17
+ onDecadeChange: (anchorYear: number) => void;
18
+ className?: string;
19
+ };
20
+ export declare function CalendarYearPicker({ displayMonth, startMonth, endMonth, onSelectYear, onDecadeChange, className, }: CalendarYearPickerProps): React.JSX.Element;
21
+ //# sourceMappingURL=CalendarMonthYearPickers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarMonthYearPickers.d.ts","sourceRoot":"","sources":["../../../../src/components/Calendar/subcomponents/CalendarMonthYearPickers.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkD/B,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EACX,YAAY,EACZ,SAAS,GACV,EAAE,wBAAwB,qBAqE1B;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,SAAS,GACV,EAAE,uBAAuB,qBA+DzB"}