@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
@@ -1 +1 @@
1
- {"version":3,"file":"Rating.d.ts","sourceRoot":"","sources":["../../../src/components/Rating/Rating.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,+CAA+C;AAC/C,eAAO,MAAM,MAAM,oFA4BlB,CAAC"}
1
+ {"version":3,"file":"Rating.d.ts","sourceRoot":"","sources":["../../../src/components/Rating/Rating.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAuBlD,yFAAyF;AACzF,eAAO,MAAM,MAAM,oFAqClB,CAAC"}
@@ -4,8 +4,17 @@ import { cn } from '@timmbr/utils';
4
4
  import { Star } from '@timmbr/icons';
5
5
  import { ratingVariants } from './Rating.styles.js';
6
6
 
7
+ function StarRow({ value, max }) {
8
+ return /* @__PURE__ */ jsx("span", { className: "inline-flex items-center gap-0.5", children: Array.from({ length: max }, (_, i) => {
9
+ const fill = Math.max(0, Math.min(1, value - i));
10
+ return /* @__PURE__ */ jsxs("span", { className: "relative inline-flex", children: [
11
+ /* @__PURE__ */ jsx(Star, { className: "fill-grey-200 text-grey-200 dark:fill-grey-700 dark:text-grey-700" }),
12
+ fill > 0 && /* @__PURE__ */ jsx("span", { className: "absolute inset-0 overflow-hidden", style: { width: `${fill * 100}%` }, children: /* @__PURE__ */ jsx(Star, { className: "fill-warning text-warning" }) })
13
+ ] }, i);
14
+ }) });
15
+ }
7
16
  const Rating = React.forwardRef(
8
- ({ value, max = 5, count, locale = "en-IN", label, size, className, ...props }, ref) => {
17
+ ({ value, max = 5, count, locale = "en-IN", label, size, display = "compact", className, ...props }, ref) => {
9
18
  const shown = new Intl.NumberFormat(locale, { maximumFractionDigits: 1 }).format(value);
10
19
  const counted = count !== void 0 ? new Intl.NumberFormat(locale).format(count) : void 0;
11
20
  const accessibleName = label ?? `Rated ${shown} out of ${max}${counted !== void 0 ? ` from ${counted} ratings` : ""}`;
@@ -19,7 +28,7 @@ const Rating = React.forwardRef(
19
28
  className: cn(ratingVariants({ size }), className),
20
29
  ...props,
21
30
  children: [
22
- /* @__PURE__ */ jsxs("span", { "aria-hidden": "true", className: "inline-flex items-center gap-0.5", children: [
31
+ display === "stars" ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "inline-flex", children: /* @__PURE__ */ jsx(StarRow, { value, max }) }) : /* @__PURE__ */ jsxs("span", { "aria-hidden": "true", className: "inline-flex items-center gap-0.5", children: [
23
32
  /* @__PURE__ */ jsx("span", { className: "font-medium", children: shown }),
24
33
  /* @__PURE__ */ jsx(Star, { className: "fill-warning text-warning" })
25
34
  ] }),
@@ -7,6 +7,11 @@ export interface RatingProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
7
7
  max?: number;
8
8
  /** Number of ratings or reviews, shown as "(817)". */
9
9
  count?: number;
10
+ /**
11
+ * `compact` shows the number and one star ("4.5 ★"); `stars` shows a row of
12
+ * `max` stars filled to the value, as on a review card.
13
+ */
14
+ display?: 'compact' | 'stars';
10
15
  /** BCP 47 locale for the numbers (default `en-IN`). */
11
16
  locale?: string;
12
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Rating.types.d.ts","sourceRoot":"","sources":["../../../src/components/Rating/Rating.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EAAE,cAAc;IACzG,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"Rating.types.d.ts","sourceRoot":"","sources":["../../../src/components/Rating/Rating.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EAAE,cAAc;IACzG,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import type { RatingDistributionProps } from './RatingDistribution.types';
3
+ /**
4
+ * Star histogram. With `onValueChange`, each bar doubles as a single-select
5
+ * filter: shoppers expect to click a bar to read only those reviews.
6
+ */
7
+ export declare const RatingDistribution: React.ForwardRefExoticComponent<RatingDistributionProps & React.RefAttributes<HTMLDivElement>>;
8
+ //# sourceMappingURL=RatingDistribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatingDistribution.d.ts","sourceRoot":"","sources":["../../../src/components/RatingDistribution/RatingDistribution.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,uBAAuB,EAAyB,MAAM,4BAA4B,CAAC;AAKjG;;;GAGG;AACH,eAAO,MAAM,kBAAkB,gGA6E9B,CAAC"}
@@ -0,0 +1,70 @@
1
+ "use client";
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import * as React from 'react';
4
+ import { cn } from '@timmbr/utils';
5
+ import { Star } from '@timmbr/icons';
6
+
7
+ const defaultRowLabel = (row, percent) => `${row.stars} star${row.stars === 1 ? "" : "s"}, ${row.count} review${row.count === 1 ? "" : "s"} (${percent}%)`;
8
+ const RatingDistribution = React.forwardRef(
9
+ ({ rows, value, onValueChange, locale = "en-IN", getRowLabel = defaultRowLabel, className, ...props }, ref) => {
10
+ const total = rows.reduce((sum, row) => sum + row.count, 0);
11
+ const sorted = [...rows].sort((a, b) => b.stars - a.stars);
12
+ const number = new Intl.NumberFormat(locale);
13
+ const interactive = onValueChange !== void 0;
14
+ return /* @__PURE__ */ jsx(
15
+ "div",
16
+ {
17
+ ref,
18
+ role: interactive ? "group" : "list",
19
+ "data-slot": "rating-distribution",
20
+ className: cn("flex flex-col gap-1 font-sans", className),
21
+ ...props,
22
+ children: sorted.map((row) => {
23
+ const percent = total > 0 ? Math.round(row.count / total * 100) : 0;
24
+ const selected = value === row.stars;
25
+ const content = /* @__PURE__ */ jsxs(Fragment, { children: [
26
+ /* @__PURE__ */ jsxs("span", { className: "inline-flex w-8 shrink-0 items-center gap-0.5 text-body-3 font-medium text-foreground", children: [
27
+ row.stars,
28
+ /* @__PURE__ */ jsx(Star, { className: "size-3 fill-warning text-warning" })
29
+ ] }),
30
+ /* @__PURE__ */ jsx("span", { className: "relative h-2 flex-1 overflow-hidden rounded-full bg-grey-200 dark:bg-grey-800", children: /* @__PURE__ */ jsx(
31
+ "span",
32
+ {
33
+ className: cn(
34
+ "absolute inset-y-0 left-0 rounded-full transition-[width] duration-500",
35
+ selected || value == null ? "bg-warning" : "bg-warning/40"
36
+ ),
37
+ style: { width: `${percent}%` }
38
+ }
39
+ ) }),
40
+ /* @__PURE__ */ jsx("span", { className: "w-12 shrink-0 text-right text-body-3 tabular-nums text-muted-foreground", children: number.format(row.count) })
41
+ ] });
42
+ const rowClass = "flex w-full items-center gap-3 rounded-md px-2 py-1.5 text-left";
43
+ if (!interactive) {
44
+ return /* @__PURE__ */ jsx("div", { role: "listitem", "aria-label": getRowLabel(row, percent), className: rowClass, children: /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "contents", children: content }) }, row.stars);
45
+ }
46
+ return /* @__PURE__ */ jsx(
47
+ "button",
48
+ {
49
+ type: "button",
50
+ "aria-pressed": selected,
51
+ "aria-label": getRowLabel(row, percent),
52
+ disabled: row.count === 0 && !selected,
53
+ onClick: () => onValueChange(selected ? null : row.stars),
54
+ className: cn(
55
+ rowClass,
56
+ "transition-colors hover:bg-grey-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-transparent dark:hover:bg-grey-900",
57
+ selected && "bg-warning/10 hover:bg-warning/15"
58
+ ),
59
+ children: /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "contents", children: content })
60
+ },
61
+ row.stars
62
+ );
63
+ })
64
+ }
65
+ );
66
+ }
67
+ );
68
+ RatingDistribution.displayName = "RatingDistribution";
69
+
70
+ export { RatingDistribution };
@@ -0,0 +1,21 @@
1
+ import type * as React from 'react';
2
+ export interface RatingDistributionRow {
3
+ stars: number;
4
+ count: number;
5
+ }
6
+ export interface RatingDistributionProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
7
+ /** One row per star level, in any order; shown highest first. */
8
+ rows: readonly RatingDistributionRow[];
9
+ /** Star level currently used as a filter, if any. */
10
+ value?: number | null;
11
+ /**
12
+ * Makes each row a toggle button: clicking selects that level, clicking the
13
+ * selected row clears it (null). Without it the rows are static.
14
+ */
15
+ onValueChange?: (stars: number | null) => void;
16
+ /** BCP 47 locale for counts and percentages (default `en-IN`). */
17
+ locale?: string;
18
+ /** Accessible name for one row. Default: "5 stars, 120 reviews (64%)". */
19
+ getRowLabel?: (row: RatingDistributionRow, percent: number) => string;
20
+ }
21
+ //# sourceMappingURL=RatingDistribution.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatingDistribution.types.d.ts","sourceRoot":"","sources":["../../../src/components/RatingDistribution/RatingDistribution.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC9D,iEAAiE;IACjE,IAAI,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACvC,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CACvE"}
@@ -0,0 +1,3 @@
1
+ export * from './RatingDistribution';
2
+ export * from './RatingDistribution.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/RatingDistribution/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import type { RatingInputProps } from './RatingInput.types';
3
+ /**
4
+ * Star picker built as a radio group: one tab stop, arrow keys move and select,
5
+ * Home/End jump to the ends. Hover previews the value before it is chosen.
6
+ */
7
+ export declare const RatingInput: React.ForwardRefExoticComponent<RatingInputProps & React.RefAttributes<HTMLDivElement>>;
8
+ //# sourceMappingURL=RatingInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatingInput.d.ts","sourceRoot":"","sources":["../../../src/components/RatingInput/RatingInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,WAAW,yFAqFvB,CAAC"}
@@ -0,0 +1,95 @@
1
+ "use client";
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import * as React from 'react';
4
+ import { cn } from '@timmbr/utils';
5
+ import { Star } from '@timmbr/icons';
6
+ import { ratingInputVariants } from './RatingInput.styles.js';
7
+
8
+ const RatingInput = React.forwardRef(
9
+ ({ value, onChange, max = 5, labels, disabled, invalid, size, className, ...props }, ref) => {
10
+ const [hovered, setHovered] = React.useState(0);
11
+ const buttons = React.useRef([]);
12
+ const shown = hovered || value;
13
+ const labelFor = (star) => labels?.[star - 1] ?? `${star} star${star === 1 ? "" : "s"}`;
14
+ const select = (star) => {
15
+ const next = Math.min(max, Math.max(1, star));
16
+ onChange(next);
17
+ buttons.current[next - 1]?.focus();
18
+ };
19
+ const onKeyDown = (event, star) => {
20
+ const moves = {
21
+ ArrowRight: star + 1,
22
+ ArrowUp: star + 1,
23
+ ArrowLeft: star - 1,
24
+ ArrowDown: star - 1,
25
+ Home: 1,
26
+ End: max
27
+ };
28
+ if (!(event.key in moves)) return;
29
+ event.preventDefault();
30
+ select(moves[event.key]);
31
+ };
32
+ return /* @__PURE__ */ jsxs(
33
+ "div",
34
+ {
35
+ ref,
36
+ role: "radiogroup",
37
+ "aria-invalid": invalid || void 0,
38
+ "aria-disabled": disabled || void 0,
39
+ "data-slot": "rating-input",
40
+ className: cn(ratingInputVariants({ size }), className),
41
+ ...props,
42
+ children: [
43
+ /* @__PURE__ */ jsx("span", { className: "inline-flex", onMouseLeave: () => setHovered(0), children: Array.from({ length: max }, (_, i) => {
44
+ const star = i + 1;
45
+ const checked = star === value;
46
+ const focusable = value ? checked : star === 1;
47
+ return /* @__PURE__ */ jsx(
48
+ "button",
49
+ {
50
+ ref: (el) => {
51
+ buttons.current[i] = el;
52
+ },
53
+ type: "button",
54
+ role: "radio",
55
+ "aria-checked": checked,
56
+ "aria-label": labelFor(star),
57
+ tabIndex: focusable ? 0 : -1,
58
+ disabled,
59
+ onClick: () => select(star),
60
+ onKeyDown: (event) => onKeyDown(event, star),
61
+ onMouseEnter: () => !disabled && setHovered(star),
62
+ className: "rounded-md p-0.5 text-grey-300 transition-transform focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 enabled:hover:scale-110 disabled:cursor-not-allowed disabled:opacity-50",
63
+ children: /* @__PURE__ */ jsx(
64
+ Star,
65
+ {
66
+ "aria-hidden": "true",
67
+ className: cn(
68
+ "transition-colors",
69
+ star <= shown ? "fill-warning text-warning" : "fill-transparent"
70
+ )
71
+ }
72
+ )
73
+ },
74
+ star
75
+ );
76
+ }) }),
77
+ labels && /* @__PURE__ */ jsx(
78
+ "span",
79
+ {
80
+ "aria-hidden": "true",
81
+ className: cn(
82
+ "min-w-[6rem] text-body-2 font-medium",
83
+ shown ? "text-foreground" : "text-muted-foreground"
84
+ ),
85
+ children: shown ? labelFor(shown) : " "
86
+ }
87
+ )
88
+ ]
89
+ }
90
+ );
91
+ }
92
+ );
93
+ RatingInput.displayName = "RatingInput";
94
+
95
+ export { RatingInput };
@@ -0,0 +1,6 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ export declare const ratingInputVariants: (props?: ({
3
+ size?: "md" | "lg" | null | undefined;
4
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
+ export type RatingInputVariants = VariantProps<typeof ratingInputVariants>;
6
+ //# sourceMappingURL=RatingInput.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatingInput.styles.d.ts","sourceRoot":"","sources":["../../../src/components/RatingInput/RatingInput.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,mBAAmB;;8EAQ9B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { cva } from 'class-variance-authority';
2
+
3
+ const ratingInputVariants = cva("inline-flex items-center font-sans", {
4
+ variants: {
5
+ size: {
6
+ md: "gap-3 [&_svg]:size-6",
7
+ lg: "gap-4 [&_svg]:size-8"
8
+ }
9
+ },
10
+ defaultVariants: { size: "lg" }
11
+ });
12
+
13
+ export { ratingInputVariants };
@@ -0,0 +1,18 @@
1
+ import type * as React from 'react';
2
+ import type { RatingInputVariants } from './RatingInput.styles';
3
+ export interface RatingInputProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, RatingInputVariants {
4
+ /** Selected rating; 0 means nothing chosen yet. */
5
+ value: number;
6
+ onChange: (value: number) => void;
7
+ /** Highest selectable rating (default 5). */
8
+ max?: number;
9
+ /**
10
+ * Word for each value, lowest first (e.g. ["Poor", …, "Excellent"]). Shown
11
+ * next to the stars and used as each star's accessible name.
12
+ */
13
+ labels?: readonly string[];
14
+ disabled?: boolean;
15
+ /** Marks the group invalid for assistive tech (pair with a visible error). */
16
+ invalid?: boolean;
17
+ }
18
+ //# sourceMappingURL=RatingInput.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatingInput.types.d.ts","sourceRoot":"","sources":["../../../src/components/RatingInput/RatingInput.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC,EAC7E,mBAAmB;IACrB,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
@@ -0,0 +1,4 @@
1
+ export * from './RatingInput';
2
+ export * from './RatingInput.types';
3
+ export * from './RatingInput.styles';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/RatingInput/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import * as React from 'react';
2
2
  import type { RichTextEditorProps } from './RichTextEditor.types';
3
- export declare function RichTextEditor({ value, defaultValue, onChange, onChangeJson, onFocus, onBlur, placeholder, maxCharacters, showCharacterCount, showWordCount, toolbar, toolbarClassName, disabled, readOnly, className, editorClassName, style, id, motion: motionProp, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, }: RichTextEditorProps): React.JSX.Element;
3
+ export declare function RichTextEditor({ value, defaultValue, onChange, onChangeJson, onFocus, onBlur, placeholder, maxCharacters, showCharacterCount, showWordCount, toolbar, toolbarPreset, toolbarClassName, disabled, readOnly, className, editorClassName, style, id, motion: motionProp, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, }: RichTextEditorProps): React.JSX.Element;
4
4
  //# sourceMappingURL=RichTextEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.d.ts","sourceRoot":"","sources":["../../../src/components/RichTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,MAAM,EACN,WAAW,EACX,aAAa,EACb,kBAA0B,EAC1B,aAAqB,EACrB,OAAc,EACd,gBAAgB,EAChB,QAAgB,EAChB,QAAgB,EAChB,SAAS,EACT,eAAe,EACf,KAAK,EACL,EAAE,EACF,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,kBAAkB,EAAE,eAAe,GACpC,EAAE,mBAAmB,qBAoIrB"}
1
+ {"version":3,"file":"RichTextEditor.d.ts","sourceRoot":"","sources":["../../../src/components/RichTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,MAAM,EACN,WAAW,EACX,aAAa,EACb,kBAA0B,EAC1B,aAAqB,EACrB,OAAc,EACd,aAAsB,EACtB,gBAAgB,EAChB,QAAgB,EAChB,QAAgB,EAChB,SAAS,EACT,eAAe,EACf,KAAK,EACL,EAAE,EACF,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,kBAAkB,EAAE,eAAe,GACpC,EAAE,mBAAmB,qBAqIrB"}
@@ -23,6 +23,7 @@ function RichTextEditor({
23
23
  showCharacterCount = false,
24
24
  showWordCount = false,
25
25
  toolbar = true,
26
+ toolbarPreset = "full",
26
27
  toolbarClassName,
27
28
  disabled = false,
28
29
  readOnly = false,
@@ -117,6 +118,7 @@ function RichTextEditor({
117
118
  toolbar && /* @__PURE__ */ jsx(
118
119
  RteToolbar,
119
120
  {
121
+ preset: toolbarPreset,
120
122
  className: cn(
121
123
  shouldAnimate && mounted ? "animate-in fade-in duration-150" : void 0,
122
124
  toolbarClassName
@@ -21,6 +21,8 @@ export interface RichTextEditorProps extends MotionProps {
21
21
  showWordCount?: boolean;
22
22
  /** Show the toolbar — default true */
23
23
  toolbar?: boolean;
24
+ /** `basic` keeps bold, italic, and lists only. */
25
+ toolbarPreset?: 'full' | 'basic';
24
26
  toolbarClassName?: string;
25
27
  disabled?: boolean;
26
28
  readOnly?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.types.d.ts","sourceRoot":"","sources":["../../../src/components/RichTextEditor/RichTextEditor.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,iEAAiE;IACjE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oCAAoC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,4CAA4C;IAC5C,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"RichTextEditor.types.d.ts","sourceRoot":"","sources":["../../../src/components/RichTextEditor/RichTextEditor.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,iEAAiE;IACjE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oCAAoC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,4CAA4C;IAC5C,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -1,7 +1,8 @@
1
1
  import * as React from 'react';
2
2
  interface RteToolbarProps {
3
3
  className?: string;
4
+ preset?: 'full' | 'basic';
4
5
  }
5
- export declare function RteToolbar({ className }: RteToolbarProps): React.JSX.Element | null;
6
+ export declare function RteToolbar({ className, preset }: RteToolbarProps): React.JSX.Element | null;
6
7
  export {};
7
8
  //# sourceMappingURL=RteToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RteToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextEditor/subcomponents/RteToolbar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA+B/B,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,eAAe,4BAwKxD"}
1
+ {"version":3,"file":"RteToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextEditor/subcomponents/RteToolbar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA+B/B,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B;AAoBD,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,MAAe,EAAE,EAAE,eAAe,4BAqNzE"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { cn } from '@timmbr/utils';
4
- import { Undo2, Redo2, Pilcrow, Heading2, Heading3, Bold, Italic, Underline, Strikethrough, List, ListOrdered, Quote, AlignLeft, AlignCenter, AlignRight, AlignJustify, Minus, RemoveFormatting } from '@timmbr/icons';
4
+ import { Bold, Italic, List, ListOrdered, Undo2, Redo2, Pilcrow, Heading2, Heading3, Underline, Strikethrough, Quote, AlignLeft, AlignCenter, AlignRight, AlignJustify, Minus, RemoveFormatting } from '@timmbr/icons';
5
5
  import { useRteContext } from '../RichTextEditor.context.js';
6
6
  import { toolbarVariants } from '../RichTextEditor.styles.js';
7
7
  import { RteToolbarButton } from './RteToolbarButton.js';
@@ -23,10 +23,68 @@ function handleToolbarKeyDown(e) {
23
23
  const next = e.key === "ArrowRight" ? focusable[(idx + 1) % len] : e.key === "ArrowLeft" ? focusable[(idx - 1 + len) % len] : e.key === "Home" ? focusable[0] : focusable[len - 1];
24
24
  next?.focus();
25
25
  }
26
- function RteToolbar({ className }) {
26
+ function RteToolbar({ className, preset = "full" }) {
27
27
  const { editor, disabled, readOnly } = useRteContext();
28
28
  if (!editor) return null;
29
29
  const isDisabled = disabled || readOnly;
30
+ if (preset === "basic") {
31
+ return /* @__PURE__ */ jsxs(
32
+ "div",
33
+ {
34
+ "data-slot": "rte-toolbar",
35
+ role: "toolbar",
36
+ "aria-label": "Text formatting",
37
+ onKeyDown: handleToolbarKeyDown,
38
+ className: cn(toolbarVariants(), className),
39
+ children: [
40
+ /* @__PURE__ */ jsxs(RteToolbarGroup, { showLeadingDivider: false, children: [
41
+ /* @__PURE__ */ jsx(
42
+ RteToolbarButton,
43
+ {
44
+ label: "Bold",
45
+ icon: /* @__PURE__ */ jsx(Bold, { size: ICON_SIZE }),
46
+ onClick: () => editor.chain().focus().toggleBold().run(),
47
+ isActive: editor.isActive("bold"),
48
+ disabled: isDisabled
49
+ }
50
+ ),
51
+ /* @__PURE__ */ jsx(
52
+ RteToolbarButton,
53
+ {
54
+ label: "Italic",
55
+ icon: /* @__PURE__ */ jsx(Italic, { size: ICON_SIZE }),
56
+ onClick: () => editor.chain().focus().toggleItalic().run(),
57
+ isActive: editor.isActive("italic"),
58
+ disabled: isDisabled
59
+ }
60
+ )
61
+ ] }),
62
+ /* @__PURE__ */ jsxs(RteToolbarGroup, { children: [
63
+ /* @__PURE__ */ jsx(
64
+ RteToolbarButton,
65
+ {
66
+ label: "Bullet list",
67
+ icon: /* @__PURE__ */ jsx(List, { size: ICON_SIZE }),
68
+ onClick: () => editor.chain().focus().toggleBulletList().run(),
69
+ isActive: editor.isActive("bulletList"),
70
+ disabled: isDisabled
71
+ }
72
+ ),
73
+ /* @__PURE__ */ jsx(
74
+ RteToolbarButton,
75
+ {
76
+ label: "Ordered list",
77
+ icon: /* @__PURE__ */ jsx(ListOrdered, { size: ICON_SIZE }),
78
+ onClick: () => editor.chain().focus().toggleOrderedList().run(),
79
+ isActive: editor.isActive("orderedList"),
80
+ disabled: isDisabled
81
+ }
82
+ )
83
+ ] })
84
+ ]
85
+ }
86
+ );
87
+ }
30
88
  return /* @__PURE__ */ jsxs(
31
89
  "div",
32
90
  {
package/dist/index.d.ts CHANGED
@@ -11,6 +11,8 @@ export * from './components/Panel';
11
11
  export * from './components/Input';
12
12
  export * from './components/Textarea';
13
13
  export * from './components/Select';
14
+ export * from './components/Calendar';
15
+ export * from './components/DatePicker';
14
16
  export * from './components/Radio';
15
17
  export * from './components/RadioCard';
16
18
  export * from './components/Checkbox';
@@ -76,6 +78,8 @@ export * from './components/Stepper';
76
78
  export * from './components/MediaCard';
77
79
  export * from './components/Price';
78
80
  export * from './components/Rating';
81
+ export * from './components/RatingInput';
82
+ export * from './components/RatingDistribution';
79
83
  export * from './components/IconTile';
80
84
  export * from './components/VisuallyHidden';
81
85
  export * from './components/Fieldset';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG3D,cAAc,aAAa,CAAC;AAG5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAG5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG3D,cAAc,aAAa,CAAC;AAG5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAG5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -16,6 +16,7 @@ export { Avatar } from './components/Avatar/Avatar.js';
16
16
  export { Badge } from './components/Badge/Badge.js';
17
17
  export { Breadcrumb } from './components/Breadcrumb/Breadcrumb.js';
18
18
  export { Button } from './components/Button/Button.js';
19
+ export { Calendar } from './components/Calendar/Calendar.js';
19
20
  export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './components/Card/Card.js';
20
21
  export { Center } from './components/Center/Center.js';
21
22
  export { Checkbox } from './components/Checkbox/Checkbox.js';
@@ -31,6 +32,7 @@ export { DEFAULT_H_COLLAPSED, DEFAULT_H_MAX, DEFAULT_H_MIN, DEFAULT_H_SIZE, DEFA
31
32
  export { DEFAULT_STORAGE_KEY, isNavItemActive, isRouteActive, readStoredCollapsed, writeStoredCollapsed } from './components/SideBarNavigation/SideBarNavigation.helpers.js';
32
33
  export { DataList, DataListAction, DataListItem, DataListLabel, DataListValue } from './components/DataList/DataList.js';
33
34
  export { DataTable } from './components/DataTable/DataTable.js';
35
+ export { DatePicker } from './components/DatePicker/DatePicker.js';
34
36
  export { Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './components/Dialog/Dialog.js';
35
37
  export { Divider } from './components/Divider/Divider.js';
36
38
  export { Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './components/Drawer/Drawer.js';
@@ -90,6 +92,8 @@ export { Radio, RadioGroup, RadioItem } from './components/Radio/Radio.js';
90
92
  export { RadioCard } from './components/RadioCard/RadioCard.js';
91
93
  export { RangeSlider } from './components/RangeSlider/RangeSlider.js';
92
94
  export { Rating } from './components/Rating/Rating.js';
95
+ export { RatingDistribution } from './components/RatingDistribution/RatingDistribution.js';
96
+ export { RatingInput } from './components/RatingInput/RatingInput.js';
93
97
  export { RichTextContent } from './components/RichTextEditor/RichTextContent.js';
94
98
  export { RichTextEditor } from './components/RichTextEditor/RichTextEditor.js';
95
99
  export { RichTextJsonContent } from './components/RichTextEditor/RichTextJsonContent.js';
@@ -142,15 +146,19 @@ export { authModalBannerVariants, authModalCardVariants, authModalContainerVaria
142
146
  export { avatarRootVariants, avatarStatusVariants } from './components/Avatar/Avatar.styles.js';
143
147
  export { badgeVariants } from './components/Badge/Badge.styles.js';
144
148
  export { breadcrumbCurrentVariants, breadcrumbItemVariants, breadcrumbLinkVariants, breadcrumbListVariants, breadcrumbSeparatorVariants } from './components/Breadcrumb/Breadcrumb.styles.js';
149
+ export { buildCalendarClassNames, buildCalendarComponents, resolveCaptionDefaults } from './components/Calendar/Calendar.helpers.js';
145
150
  export { buttonVariants } from './components/Button/Button.styles.js';
151
+ export { calendarRootVariants } from './components/Calendar/Calendar.styles.js';
146
152
  export { cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardSectionFooterPadding, cardSectionPadding, cardTitleVariants, cardVariants } from './components/Card/Card.styles.js';
147
153
  export { centerVariants } from './components/Center/Center.styles.js';
148
154
  export { charCountVariants, editorWrapperVariants, proseEditorStyles, proseViewerStyles, toolbarVariants } from './components/RichTextEditor/RichTextEditor.styles.js';
149
155
  export { checkboxIndicatorVariants, checkboxVariants } from './components/Checkbox/Checkbox.styles.js';
150
156
  export { chipVariants } from './components/Chip/Chip.styles.js';
157
+ export { clearSelection, formatDateValue, formatSelectionLabel, hasSelection, shouldCloseOnSelect } from './components/DatePicker/DatePicker.helpers.js';
151
158
  export { colsMap, gridVariants, lgColsMap, mdColsMap, smColsMap, spanClassMap, templateClassMap, xlColsMap } from './components/Grid/Grid.styles.js';
152
159
  export { containerVariants } from './components/Container/Container.styles.js';
153
160
  export { dataListActionVariants, dataListInsetPadding, dataListItemVariants, dataListLabelVariants, dataListValueVariants, dataListVariants } from './components/DataList/DataList.styles.js';
161
+ export { datePickerValueVariants } from './components/DatePicker/DatePicker.styles.js';
154
162
  export { dialogBodyVariants, dialogContentVariants, dialogDescriptionVariants, dialogFooterVariants, dialogHeaderVariants, dialogOverlayVariants, dialogTitleVariants } from './components/Dialog/Dialog.styles.js';
155
163
  export { dividerVariants } from './components/Divider/Divider.styles.js';
156
164
  export { drawerBodyVariants, drawerContentVariants, drawerDescriptionVariants, drawerFooterVariants, drawerHeaderVariants, drawerOverlayVariants, drawerTitleVariants } from './components/Drawer/Drawer.styles.js';
@@ -188,6 +196,7 @@ export { quantityStepperButtonVariants, quantityStepperValueVariants, quantitySt
188
196
  export { radioCardDotClass, radioCardMarkerClass, radioCardVariants } from './components/RadioCard/RadioCard.styles.js';
189
197
  export { radioIndicatorVariants, radioItemVariants } from './components/Radio/Radio.styles.js';
190
198
  export { rangeSliderRangeVariants, rangeSliderRootVariants, rangeSliderThumbVariants, rangeSliderTrackVariants } from './components/RangeSlider/RangeSlider.styles.js';
199
+ export { ratingInputVariants } from './components/RatingInput/RatingInput.styles.js';
191
200
  export { ratingVariants } from './components/Rating/Rating.styles.js';
192
201
  export { scrollRailChevronVariants, scrollRailVariants, scrollRailWrapperVariants } from './components/ScrollRail/ScrollRail.styles.js';
193
202
  export { selectContentVariants, selectItemVariants, selectTriggerVariants } from './components/Select/Select.styles.js';