@coopdigital/react 0.49.0 → 0.50.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 (299) hide show
  1. package/dist/components/Button/Button.js +2 -2
  2. package/dist/components/Button/index.js +5 -0
  3. package/dist/components/Card/Card.js +4 -4
  4. package/dist/components/Checkbox/Checkbox.d.ts +7 -1
  5. package/dist/components/Checkbox/Checkbox.js +4 -0
  6. package/dist/components/DatePicker/DatePicker.d.ts +61 -0
  7. package/dist/components/DatePicker/DatePicker.js +135 -0
  8. package/dist/components/DatePicker/datepicker-utils.d.ts +68 -0
  9. package/dist/components/DatePicker/datepicker-utils.js +215 -0
  10. package/dist/components/DatePicker/index.d.ts +4 -0
  11. package/dist/components/Field/Field.js +29 -26
  12. package/dist/components/Field/index.js +6 -0
  13. package/dist/components/Pill/Pill.js +2 -2
  14. package/dist/components/Popover/Popover.d.ts +74 -0
  15. package/dist/components/Popover/Popover.js +75 -0
  16. package/dist/components/Popover/index.d.ts +4 -0
  17. package/dist/components/Popover/index.js +5 -0
  18. package/dist/components/Radio/Radio.d.ts +7 -1
  19. package/dist/components/Radio/Radio.js +4 -0
  20. package/dist/components/Searchbox/Searchbox.js +4 -3
  21. package/dist/components/Select/Select.d.ts +3 -0
  22. package/dist/components/Select/Select.js +4 -1
  23. package/dist/components/Signpost/Signpost.js +2 -2
  24. package/dist/components/Tag/Tag.js +2 -2
  25. package/dist/components/TextInput/TextInput.d.ts +6 -1
  26. package/dist/components/TextInput/TextInput.js +3 -0
  27. package/dist/components/Textarea/Textarea.d.ts +8 -5
  28. package/dist/components/Textarea/Textarea.js +5 -4
  29. package/dist/hooks/useSlots.js +3 -3
  30. package/dist/index.d.ts +2 -0
  31. package/dist/index.js +2 -0
  32. package/dist/node_modules/@date-fns/tz/date/index.js +83 -0
  33. package/dist/node_modules/@date-fns/tz/date/mini.js +235 -0
  34. package/dist/node_modules/@date-fns/tz/tzName/index.js +39 -0
  35. package/dist/node_modules/@date-fns/tz/tzOffset/index.js +44 -0
  36. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +814 -0
  37. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +751 -0
  38. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +350 -0
  39. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +161 -0
  40. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +137 -0
  41. package/dist/node_modules/@radix-ui/primitive/dist/index.js +11 -0
  42. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +25 -0
  43. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +39 -0
  44. package/dist/node_modules/@radix-ui/react-context/dist/index.js +63 -0
  45. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +213 -0
  46. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +31 -0
  47. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +209 -0
  48. package/dist/node_modules/@radix-ui/react-id/dist/index.js +15 -0
  49. package/dist/node_modules/@radix-ui/react-popover/dist/index.js +303 -0
  50. package/dist/node_modules/@radix-ui/react-popper/dist/index.js +285 -0
  51. package/dist/node_modules/@radix-ui/react-portal/dist/index.js +19 -0
  52. package/dist/node_modules/@radix-ui/react-presence/dist/index.js +132 -0
  53. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +43 -0
  54. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +89 -0
  55. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +12 -0
  56. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +70 -0
  57. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +18 -0
  58. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +7 -0
  59. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +40 -0
  60. package/dist/node_modules/aria-hidden/dist/es2015/index.js +137 -0
  61. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +7 -0
  62. package/dist/node_modules/date-fns/_lib/defaultOptions.js +7 -0
  63. package/dist/node_modules/date-fns/_lib/format/formatters.js +775 -0
  64. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +94 -0
  65. package/dist/node_modules/date-fns/_lib/format/longFormatters.js +66 -0
  66. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +31 -0
  67. package/dist/node_modules/date-fns/_lib/normalizeDates.js +11 -0
  68. package/dist/node_modules/date-fns/_lib/normalizeInterval.js +8 -0
  69. package/dist/node_modules/date-fns/_lib/protectedTokens.js +25 -0
  70. package/dist/node_modules/date-fns/addDays.js +41 -0
  71. package/dist/node_modules/date-fns/addMonths.js +75 -0
  72. package/dist/node_modules/date-fns/addWeeks.js +33 -0
  73. package/dist/node_modules/date-fns/addYears.js +33 -0
  74. package/dist/node_modules/date-fns/constants.js +67 -0
  75. package/dist/node_modules/date-fns/constructFrom.js +49 -0
  76. package/dist/node_modules/date-fns/differenceInCalendarDays.js +62 -0
  77. package/dist/node_modules/date-fns/differenceInCalendarMonths.js +42 -0
  78. package/dist/node_modules/date-fns/eachMonthOfInterval.js +65 -0
  79. package/dist/node_modules/date-fns/eachYearOfInterval.js +65 -0
  80. package/dist/node_modules/date-fns/endOfISOWeek.js +35 -0
  81. package/dist/node_modules/date-fns/endOfMonth.js +37 -0
  82. package/dist/node_modules/date-fns/endOfWeek.js +53 -0
  83. package/dist/node_modules/date-fns/endOfYear.js +37 -0
  84. package/dist/node_modules/date-fns/format.js +423 -0
  85. package/dist/node_modules/date-fns/getDayOfYear.js +34 -0
  86. package/dist/node_modules/date-fns/getDaysInMonth.js +36 -0
  87. package/dist/node_modules/date-fns/getDefaultOptions.js +31 -0
  88. package/dist/node_modules/date-fns/getISODay.js +33 -0
  89. package/dist/node_modules/date-fns/getISOWeek.js +40 -0
  90. package/dist/node_modules/date-fns/getISOWeekYear.js +52 -0
  91. package/dist/node_modules/date-fns/getMonth.js +29 -0
  92. package/dist/node_modules/date-fns/getWeek.js +54 -0
  93. package/dist/node_modules/date-fns/getWeekYear.js +75 -0
  94. package/dist/node_modules/date-fns/getYear.js +29 -0
  95. package/dist/node_modules/date-fns/isAfter.js +25 -0
  96. package/dist/node_modules/date-fns/isBefore.js +25 -0
  97. package/dist/node_modules/date-fns/isDate.js +41 -0
  98. package/dist/node_modules/date-fns/isSameDay.js +46 -0
  99. package/dist/node_modules/date-fns/isSameMonth.js +43 -0
  100. package/dist/node_modules/date-fns/isSameYear.js +35 -0
  101. package/dist/node_modules/date-fns/isValid.js +39 -0
  102. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +10 -0
  103. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +64 -0
  104. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +59 -0
  105. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +22 -0
  106. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +103 -0
  107. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +41 -0
  108. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +13 -0
  109. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +189 -0
  110. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +134 -0
  111. package/dist/node_modules/date-fns/locale/en-US.js +28 -0
  112. package/dist/node_modules/date-fns/max.js +49 -0
  113. package/dist/node_modules/date-fns/min.js +49 -0
  114. package/dist/node_modules/date-fns/parse/_lib/Parser.js +27 -0
  115. package/dist/node_modules/date-fns/parse/_lib/Setter.js +59 -0
  116. package/dist/node_modules/date-fns/parse/_lib/constants.js +33 -0
  117. package/dist/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js +55 -0
  118. package/dist/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js +55 -0
  119. package/dist/node_modules/date-fns/parse/_lib/parsers/DateParser.js +59 -0
  120. package/dist/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js +57 -0
  121. package/dist/node_modules/date-fns/parse/_lib/parsers/DayParser.js +64 -0
  122. package/dist/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js +56 -0
  123. package/dist/node_modules/date-fns/parse/_lib/parsers/EraParser.js +41 -0
  124. package/dist/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js +24 -0
  125. package/dist/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js +21 -0
  126. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js +36 -0
  127. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js +31 -0
  128. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js +32 -0
  129. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js +38 -0
  130. package/dist/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js +118 -0
  131. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js +47 -0
  132. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js +47 -0
  133. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js +48 -0
  134. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js +44 -0
  135. package/dist/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js +96 -0
  136. package/dist/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js +47 -0
  137. package/dist/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js +76 -0
  138. package/dist/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js +31 -0
  139. package/dist/node_modules/date-fns/parse/_lib/parsers/MonthParser.js +86 -0
  140. package/dist/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js +83 -0
  141. package/dist/node_modules/date-fns/parse/_lib/parsers/SecondParser.js +31 -0
  142. package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js +97 -0
  143. package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js +86 -0
  144. package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js +83 -0
  145. package/dist/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js +19 -0
  146. package/dist/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js +19 -0
  147. package/dist/node_modules/date-fns/parse/_lib/parsers/YearParser.js +62 -0
  148. package/dist/node_modules/date-fns/parse/_lib/parsers.js +110 -0
  149. package/dist/node_modules/date-fns/parse/_lib/utils.js +135 -0
  150. package/dist/node_modules/date-fns/parse.js +497 -0
  151. package/dist/node_modules/date-fns/setDay.js +59 -0
  152. package/dist/node_modules/date-fns/setISODay.js +40 -0
  153. package/dist/node_modules/date-fns/setISOWeek.js +39 -0
  154. package/dist/node_modules/date-fns/setMonth.js +46 -0
  155. package/dist/node_modules/date-fns/setWeek.js +53 -0
  156. package/dist/node_modules/date-fns/setYear.js +40 -0
  157. package/dist/node_modules/date-fns/startOfDay.js +35 -0
  158. package/dist/node_modules/date-fns/startOfISOWeek.js +35 -0
  159. package/dist/node_modules/date-fns/startOfISOWeekYear.js +42 -0
  160. package/dist/node_modules/date-fns/startOfMonth.js +37 -0
  161. package/dist/node_modules/date-fns/startOfWeek.js +53 -0
  162. package/dist/node_modules/date-fns/startOfWeekYear.js +64 -0
  163. package/dist/node_modules/date-fns/startOfYear.js +36 -0
  164. package/dist/node_modules/date-fns/toDate.js +46 -0
  165. package/dist/node_modules/date-fns/transpose.js +52 -0
  166. package/dist/node_modules/get-nonce/dist/es2015/index.js +8 -0
  167. package/dist/node_modules/react-day-picker/dist/esm/DayPicker.js +320 -0
  168. package/dist/node_modules/react-day-picker/dist/esm/UI.js +122 -0
  169. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js +33 -0
  170. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js +14 -0
  171. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js +13 -0
  172. package/dist/node_modules/react-day-picker/dist/esm/classes/DateLib.js +604 -0
  173. package/dist/node_modules/react-day-picker/dist/esm/components/Button.js +13 -0
  174. package/dist/node_modules/react-day-picker/dist/esm/components/CaptionLabel.js +13 -0
  175. package/dist/node_modules/react-day-picker/dist/esm/components/Chevron.js +20 -0
  176. package/dist/node_modules/react-day-picker/dist/esm/components/Day.js +18 -0
  177. package/dist/node_modules/react-day-picker/dist/esm/components/DayButton.js +19 -0
  178. package/dist/node_modules/react-day-picker/dist/esm/components/Dropdown.js +21 -0
  179. package/dist/node_modules/react-day-picker/dist/esm/components/DropdownNav.js +13 -0
  180. package/dist/node_modules/react-day-picker/dist/esm/components/Footer.js +13 -0
  181. package/dist/node_modules/react-day-picker/dist/esm/components/Month.js +15 -0
  182. package/dist/node_modules/react-day-picker/dist/esm/components/MonthCaption.js +14 -0
  183. package/dist/node_modules/react-day-picker/dist/esm/components/MonthGrid.js +13 -0
  184. package/dist/node_modules/react-day-picker/dist/esm/components/Months.js +13 -0
  185. package/dist/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js +15 -0
  186. package/dist/node_modules/react-day-picker/dist/esm/components/Nav.js +31 -0
  187. package/dist/node_modules/react-day-picker/dist/esm/components/NextMonthButton.js +15 -0
  188. package/dist/node_modules/react-day-picker/dist/esm/components/Option.js +13 -0
  189. package/dist/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.js +15 -0
  190. package/dist/node_modules/react-day-picker/dist/esm/components/Root.js +14 -0
  191. package/dist/node_modules/react-day-picker/dist/esm/components/Select.js +13 -0
  192. package/dist/node_modules/react-day-picker/dist/esm/components/Week.js +14 -0
  193. package/dist/node_modules/react-day-picker/dist/esm/components/WeekNumber.js +14 -0
  194. package/dist/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.js +13 -0
  195. package/dist/node_modules/react-day-picker/dist/esm/components/Weekday.js +13 -0
  196. package/dist/node_modules/react-day-picker/dist/esm/components/Weekdays.js +14 -0
  197. package/dist/node_modules/react-day-picker/dist/esm/components/Weeks.js +13 -0
  198. package/dist/node_modules/react-day-picker/dist/esm/components/YearsDropdown.js +15 -0
  199. package/dist/node_modules/react-day-picker/dist/esm/components/custom-components.js +26 -0
  200. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js +26 -0
  201. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatDay.js +19 -0
  202. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.js +18 -0
  203. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js +21 -0
  204. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js +13 -0
  205. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.js +19 -0
  206. package/dist/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js +23 -0
  207. package/dist/node_modules/react-day-picker/dist/esm/formatters/index.js +7 -0
  208. package/dist/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js +73 -0
  209. package/dist/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js +95 -0
  210. package/dist/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js +22 -0
  211. package/dist/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js +28 -0
  212. package/dist/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.js +33 -0
  213. package/dist/node_modules/react-day-picker/dist/esm/helpers/getComponents.js +20 -0
  214. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js +27 -0
  215. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDates.js +59 -0
  216. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDays.js +19 -0
  217. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js +33 -0
  218. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js +24 -0
  219. package/dist/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.js +46 -0
  220. package/dist/node_modules/react-day-picker/dist/esm/helpers/getFormatters.js +24 -0
  221. package/dist/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js +27 -0
  222. package/dist/node_modules/react-day-picker/dist/esm/helpers/getLabels.js +53 -0
  223. package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js +33 -0
  224. package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonths.js +69 -0
  225. package/dist/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.js +51 -0
  226. package/dist/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.js +40 -0
  227. package/dist/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.js +36 -0
  228. package/dist/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.js +37 -0
  229. package/dist/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js +27 -0
  230. package/dist/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js +26 -0
  231. package/dist/node_modules/react-day-picker/dist/esm/helpers/getWeeks.js +14 -0
  232. package/dist/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js +36 -0
  233. package/dist/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js +27 -0
  234. package/dist/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.js +31 -0
  235. package/dist/node_modules/react-day-picker/dist/esm/labels/index.js +11 -0
  236. package/dist/node_modules/react-day-picker/dist/esm/labels/labelDayButton.js +32 -0
  237. package/dist/node_modules/react-day-picker/dist/esm/labels/labelGrid.js +25 -0
  238. package/dist/node_modules/react-day-picker/dist/esm/labels/labelGridcell.js +22 -0
  239. package/dist/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js +14 -0
  240. package/dist/node_modules/react-day-picker/dist/esm/labels/labelNav.js +13 -0
  241. package/dist/node_modules/react-day-picker/dist/esm/labels/labelNext.js +16 -0
  242. package/dist/node_modules/react-day-picker/dist/esm/labels/labelPrevious.js +15 -0
  243. package/dist/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js +15 -0
  244. package/dist/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js +14 -0
  245. package/dist/node_modules/react-day-picker/dist/esm/labels/labelWeekday.js +18 -0
  246. package/dist/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js +14 -0
  247. package/dist/node_modules/react-day-picker/dist/esm/locale/en-US.js +67 -0
  248. package/dist/node_modules/react-day-picker/dist/esm/selection/useMulti.js +57 -0
  249. package/dist/node_modules/react-day-picker/dist/esm/selection/useRange.js +45 -0
  250. package/dist/node_modules/react-day-picker/dist/esm/selection/useSingle.js +44 -0
  251. package/dist/node_modules/react-day-picker/dist/esm/useAnimation.js +174 -0
  252. package/dist/node_modules/react-day-picker/dist/esm/useCalendar.js +113 -0
  253. package/dist/node_modules/react-day-picker/dist/esm/useDayPicker.js +25 -0
  254. package/dist/node_modules/react-day-picker/dist/esm/useFocus.js +56 -0
  255. package/dist/node_modules/react-day-picker/dist/esm/useSelection.js +31 -0
  256. package/dist/node_modules/react-day-picker/dist/esm/utils/addToRange.js +95 -0
  257. package/dist/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.js +57 -0
  258. package/dist/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js +62 -0
  259. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js +30 -0
  260. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js +74 -0
  261. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js +35 -0
  262. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.js +21 -0
  263. package/dist/node_modules/react-day-picker/dist/esm/utils/toTimeZone.js +16 -0
  264. package/dist/node_modules/react-day-picker/dist/esm/utils/typeguards.js +66 -0
  265. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +9 -0
  266. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +167 -0
  267. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +38 -0
  268. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +21 -0
  269. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +110 -0
  270. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +5 -0
  271. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +7 -0
  272. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +56 -0
  273. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +10 -0
  274. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +31 -0
  275. package/dist/node_modules/react-style-singleton/dist/es2015/component.js +19 -0
  276. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +25 -0
  277. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +51 -0
  278. package/dist/node_modules/tslib/tslib.es6.js +56 -0
  279. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +24 -0
  280. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +48 -0
  281. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +42 -0
  282. package/dist/node_modules/use-sidecar/dist/es2015/exports.js +21 -0
  283. package/dist/node_modules/use-sidecar/dist/es2015/medium.js +77 -0
  284. package/dist/types/index.d.ts +10 -0
  285. package/package.json +17 -13
  286. package/src/components/Checkbox/Checkbox.tsx +6 -1
  287. package/src/components/DatePicker/DatePicker.tsx +372 -0
  288. package/src/components/DatePicker/datepicker-utils.ts +269 -0
  289. package/src/components/DatePicker/index.ts +5 -0
  290. package/src/components/Field/Field.tsx +30 -28
  291. package/src/components/Popover/Popover.tsx +198 -0
  292. package/src/components/Popover/index.ts +5 -0
  293. package/src/components/Radio/Radio.tsx +6 -1
  294. package/src/components/Searchbox/Searchbox.tsx +4 -1
  295. package/src/components/Select/Select.tsx +7 -2
  296. package/src/components/TextInput/TextInput.tsx +5 -1
  297. package/src/components/Textarea/Textarea.tsx +9 -13
  298. package/src/index.ts +2 -0
  299. package/src/types/index.ts +15 -0
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import clsx from 'clsx';
3
- import React from 'react';
3
+ import React__default from 'react';
4
4
  import { useSlots } from '../../hooks/useSlots.js';
5
5
  import { hasUserBg } from '../../utils/index.js';
6
6
 
@@ -19,7 +19,7 @@ const Pill = ({ as, children, className, href, ref, size = "md", ...props }) =>
19
19
  };
20
20
  // https://github.com/facebook/react/issues/34775
21
21
  // eslint-disable-next-line react-hooks/refs
22
- return React.createElement(element, { ...componentProps, ref }, slots.PillBadge, slots.Children);
22
+ return React__default.createElement(element, { ...componentProps, ref }, slots.PillBadge, slots.Children);
23
23
  };
24
24
  const PillBadge = ({ children, className }) => {
25
25
  return (jsx("span", { className: clsx("coop-pill--badge", !hasUserBg(className) && "bg-offer-red", className), children: children }));
@@ -0,0 +1,74 @@
1
+ import type { PopoverAnchorProps as RadixPopoverAnchorProps, PopoverCloseProps as RadixPopoverCloseProps, PopoverContentProps as RadixPopoverContentProps, PopoverProps as RadixPopoverProps, PopoverTriggerProps as RadixPopoverTriggerProps } from "@radix-ui/react-popover";
2
+ import type { JSX, ReactNode, Ref } from "react";
3
+ export interface PopoverProps extends RadixPopoverProps {
4
+ /** Content inside the Popover.
5
+ *
6
+ * This should be a `Popover.Trigger` and `Popover.Content`, with an optional `Popover.Close`. Other children will be ignored. */
7
+ children: string | ReactNode;
8
+ /** **(Optional)** Callback to run when the Popover is opened or closed. */
9
+ onOpenChange?: RadixPopoverProps["onOpenChange"];
10
+ /** **(Optional)** Force the Popover state. Must be used together with `onOpenChange`. */
11
+ open?: RadixPopoverProps["open"];
12
+ }
13
+ interface PopoverTriggerProps extends RadixPopoverTriggerProps {
14
+ /** **(Optional)** When true, the element passed as a child becomes the trigger root element. */
15
+ asChild?: RadixPopoverTriggerProps["asChild"];
16
+ /** **(Optional)** Content inside the Popover Trigger. */
17
+ children?: React.ReactNode;
18
+ /** **(Optional)** Specify additional CSS classes to be applied to the component. */
19
+ className?: string;
20
+ }
21
+ interface PopoverContentProps extends RadixPopoverContentProps {
22
+ /** **(Optional)** Specify horizontal alignment of the Popover against the trigger. May change when collisions occur. */
23
+ align?: RadixPopoverContentProps["align"];
24
+ /** **(Optional)** Specify pixel offset from the "start" or "end" alignment. */
25
+ alignOffset?: RadixPopoverContentProps["alignOffset"];
26
+ /** **(Optional)** Specify whether the Popover should reposition itself if it falls out of the viewport. */
27
+ avoidCollisions?: RadixPopoverContentProps["avoidCollisions"];
28
+ /** **(Optional)** Content inside the Popover window. */
29
+ children?: React.ReactNode;
30
+ /** **(Optional)** Specify additional CSS classes to be applied to the component. */
31
+ className?: string;
32
+ /** **(Optional)** Specify pixel boundary for collision safe area. */
33
+ collisionPadding?: RadixPopoverContentProps["collisionPadding"];
34
+ /** **(Optional)** Specify a custom React ref for this component. */
35
+ ref?: Ref<HTMLDivElement>;
36
+ /** **(Optional)** Specify placement of the Popover against the trigger. Will change when collisions occur. */
37
+ side?: RadixPopoverContentProps["side"];
38
+ /** **(Optional)** Specify pixel offset from the trigger element. */
39
+ sideOffset?: RadixPopoverContentProps["sideOffset"];
40
+ }
41
+ interface PopoverCloseProps extends RadixPopoverCloseProps {
42
+ /** **(Optional)** When true, the element passed as a child becomes the close button root element. */
43
+ asChild?: RadixPopoverCloseProps["asChild"];
44
+ /** **(Optional)** Content inside the Popover Close element. */
45
+ children?: React.ReactNode;
46
+ /** **(Optional)** Specify additional CSS classes to be applied to the component. */
47
+ className?: string;
48
+ }
49
+ interface PopoverAnchorProps extends RadixPopoverAnchorProps {
50
+ /** **(Optional)** When true, the element passed as a child becomes the anchor root element. */
51
+ asChild?: RadixPopoverAnchorProps["asChild"];
52
+ /** **(Optional)** Content inside the Popover Anchor element. */
53
+ children?: React.ReactNode;
54
+ }
55
+ export declare const Popover: {
56
+ ({ children, ...props }: PopoverProps): JSX.Element;
57
+ Trigger: {
58
+ ({ asChild, children, className, ...props }: PopoverTriggerProps): JSX.Element;
59
+ displayName: string;
60
+ };
61
+ Content: {
62
+ ({ align, alignOffset, asChild, avoidCollisions, children, className, collisionPadding, ref, side, sideOffset, style, ...props }: PopoverContentProps): JSX.Element;
63
+ displayName: string;
64
+ };
65
+ Close: {
66
+ ({ asChild, children, className, ...props }: PopoverCloseProps): JSX.Element;
67
+ displayName: string;
68
+ };
69
+ Anchor: {
70
+ ({ asChild, children, ...props }: PopoverAnchorProps): JSX.Element;
71
+ displayName: string;
72
+ };
73
+ };
74
+ export default Popover;
@@ -0,0 +1,75 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { Root as Root2, Portal, Content as Content2, Arrow as Arrow2, Trigger, Close, Anchor as Anchor2 } from '../../node_modules/@radix-ui/react-popover/dist/index.js';
3
+ import clsx from 'clsx';
4
+ import { useSlots } from '../../hooks/useSlots.js';
5
+ import { hasUserBg, bgClassToColor } from '../../utils/index.js';
6
+
7
+ const componentSlots = {
8
+ PopoverAnchor: null,
9
+ PopoverContent: null,
10
+ PopoverTrigger: null,
11
+ };
12
+ const Popover = ({ children, ...props }) => {
13
+ var _a;
14
+ const slots = useSlots(componentSlots, children);
15
+ return (jsxs(Root2, { ...props, children: [(_a = slots.PopoverAnchor) !== null && _a !== void 0 ? _a : slots.PopoverTrigger, jsx(Portal, { children: slots.PopoverContent })] }));
16
+ };
17
+ const PopoverContent = ({ align = "center", alignOffset = 0, asChild = false, avoidCollisions = true, children, className, collisionPadding = 16, ref, side = "bottom", sideOffset = 4, style, ...props }) => {
18
+ const componentProps = {
19
+ align,
20
+ alignOffset,
21
+ asChild,
22
+ avoidCollisions,
23
+ className: clsx("coop-popover", !hasUserBg(className) && "bg-tint-grey", className),
24
+ collisionPadding,
25
+ side,
26
+ sideOffset,
27
+ style,
28
+ ...props,
29
+ };
30
+ componentProps.style = {
31
+ ...style,
32
+ "--popover-bg": `var(--color-${bgClassToColor(componentProps.className)})`,
33
+ };
34
+ return (jsxs(Content2, { ref: ref, ...componentProps, children: [children, jsx(Arrow2, { className: "coop-popover-arrow" })] }));
35
+ };
36
+ PopoverContent.displayName = "Popover.Content";
37
+ const PopoverTrigger = ({ asChild = false, children, className, ...props }) => {
38
+ const componentProps = {
39
+ // There is a known issue with aria-controls being set to target
40
+ // elements that do not exist yet. This does not seem to affect
41
+ // screen readers or fail e2e avt tests, but may display in
42
+ // storybook as an "inconclusive" axe error.
43
+ // https://github.com/radix-ui/primitives/pull/3243
44
+ // https://github.com/radix-ui/primitives/issues/3242
45
+ // "aria-controls": undefined,
46
+ asChild,
47
+ className: clsx("coop-popover-trigger", className),
48
+ ...props,
49
+ };
50
+ return jsx(Trigger, { ...componentProps, children: children });
51
+ };
52
+ PopoverTrigger.displayName = "Popover.Trigger";
53
+ const PopoverClose = ({ asChild = false, children, className, ...props }) => {
54
+ const componentProps = {
55
+ asChild,
56
+ className: clsx("coop-popover-close", className),
57
+ ...props,
58
+ };
59
+ return (jsx(Close, { "aria-label": "Close", ...componentProps, children: children }));
60
+ };
61
+ PopoverClose.displayName = "Popover.Close";
62
+ const PopoverAnchor = ({ asChild = false, children, ...props }) => {
63
+ const componentProps = {
64
+ asChild,
65
+ ...props,
66
+ };
67
+ return jsx(Anchor2, { ...componentProps, children: children });
68
+ };
69
+ PopoverAnchor.displayName = "Popover.Anchor";
70
+ Popover.Trigger = PopoverTrigger;
71
+ Popover.Content = PopoverContent;
72
+ Popover.Close = PopoverClose;
73
+ Popover.Anchor = PopoverAnchor;
74
+
75
+ export { Popover, Popover as default };
@@ -0,0 +1,4 @@
1
+ import Popover from "./Popover";
2
+ export default Popover;
3
+ export { Popover };
4
+ export * from "./Popover";
@@ -0,0 +1,5 @@
1
+ import { Popover } from './Popover.js';
2
+
3
+
4
+
5
+ export { Popover, Popover as default };
@@ -16,5 +16,11 @@ export interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
16
16
  /** **(Optional)** Specify the Radio size. */
17
17
  size?: StandardSizes;
18
18
  }
19
- export declare const Radio: ({ className, disabled, error, id, name, ref, size, ...props }: RadioProps) => JSX.Element;
19
+ export declare const Radio: {
20
+ ({ className, disabled, error, id, name, ref, size, ...props }: RadioProps): JSX.Element;
21
+ config: {
22
+ isField: true;
23
+ isInline: true;
24
+ };
25
+ };
20
26
  export default Radio;
@@ -17,5 +17,9 @@ const Radio = ({ className, disabled, error = false, id, name, ref, size = "md",
17
17
  //const formItemProps = { "aria-disabled": disabled ? true : undefined }
18
18
  return jsx("input", { ...componentProps, ref: ref });
19
19
  };
20
+ Radio.config = {
21
+ isField: true,
22
+ isInline: true,
23
+ };
20
24
 
21
25
  export { Radio, Radio as default };
@@ -2,15 +2,16 @@
2
2
  "use client";
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
  import clsx from 'clsx';
5
- import React, { useState, useCallback } from 'react';
5
+ import React__default, { useState, useCallback } from 'react';
6
6
  import { useId } from '../../hooks/useId.js';
7
7
  import { Button } from '../Button/Button.js';
8
+ import { Field } from '../Field/Field.js';
8
9
  import { Label } from '../FieldMarkers/Label.js';
9
10
  import { SearchIcon } from '../Icon/SearchIcon.js';
10
11
  import { TextInput } from '../TextInput/TextInput.js';
11
12
 
12
13
  const defaultButtonProps = {
13
- label: React.createElement(SearchIcon, { alt: "Search", stroke: "currentColor", strokeWidth: 2 }),
14
+ label: React__default.createElement(SearchIcon, { alt: "Search", stroke: "currentColor", strokeWidth: 2 }),
14
15
  loadingText: "",
15
16
  };
16
17
  const Searchbox = ({ action, "aria-placeholder": ariaPlaceholder, autoCapitalize = "off", autoComplete = "off", button = defaultButtonProps, className, id, label, labelVisible = false, name = "query", onSubmit, placeholder, ref, size = "md", variant = "green", ...props }) => {
@@ -59,7 +60,7 @@ const Searchbox = ({ action, "aria-placeholder": ariaPlaceholder, autoCapitalize
59
60
  htmlFor: uid + "--input",
60
61
  isVisible: labelVisible,
61
62
  };
62
- return (jsxs("form", { ...formProps, ref: ref, children: [label && jsx(Label, { ...labelProps, children: label }), jsxs("div", { className: "coop-searchbox--inner", children: [jsx(TextInput, { ...inputProps }), jsx(Button, { ...buttonProps, children: button.label })] })] }));
63
+ return (jsxs("form", { ...formProps, ref: ref, children: [label && jsx(Label, { ...labelProps, children: label }), jsxs("div", { className: "coop-searchbox--inner", children: [jsx(Field, { children: jsx(TextInput, { ...inputProps }) }), jsx(Button, { ...buttonProps, children: button.label })] })] }));
63
64
  };
64
65
 
65
66
  export { Searchbox, Searchbox as default };
@@ -42,5 +42,8 @@ export declare const Select: {
42
42
  ({ children, className, ...props }: SelectOptionProps): JSX.Element;
43
43
  displayName: string;
44
44
  };
45
+ config: {
46
+ isField: true;
47
+ };
45
48
  };
46
49
  export default Select;
@@ -18,12 +18,15 @@ const Select = ({ children, className, disabled, error, id, name, ref, size = "m
18
18
  const SelectOptionGroup = ({ children, ...props }) => {
19
19
  return jsx("optgroup", { ...props, children: children });
20
20
  };
21
+ SelectOptionGroup.displayName = "Select.OptionGroup";
21
22
  const SelectOption = ({ children, className, ...props }) => {
22
23
  return (jsx("option", { className: clsx("coop-select--option", className), ...props, children: children }));
23
24
  };
24
- SelectOptionGroup.displayName = "Select.OptionGroup";
25
25
  SelectOption.displayName = "Select.Option";
26
26
  Select.OptionGroup = SelectOptionGroup;
27
27
  Select.Option = SelectOption;
28
+ Select.config = {
29
+ isField: true,
30
+ };
28
31
 
29
32
  export { Select, Select as default };
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import clsx from 'clsx';
3
- import React from 'react';
3
+ import React__default from 'react';
4
4
  import { ChevronRightIcon } from '../Icon/ChevronRightIcon.js';
5
5
  import { Image } from '../Image/Image.js';
6
6
 
@@ -10,7 +10,7 @@ const Signpost = ({ as, children, className, headingLevel = "h3", href, image, r
10
10
  className: clsx("coop-signpost", className),
11
11
  ...props,
12
12
  };
13
- return (jsxs("div", { ...componentProps, ref: ref, children: [image && jsx(Image, { crop: "wide", ...image }), React.createElement(element, { href }, jsxs("div", { className: "coop-signpost--content", children: [React.createElement(headingLevel, { className: "coop-signpost--heading" }, children), jsx("span", { "aria-hidden": "true", className: "coop-signpost--icon", role: "presentation", children: jsx(ChevronRightIcon, {}) })] }))] }));
13
+ return (jsxs("div", { ...componentProps, ref: ref, children: [image && jsx(Image, { crop: "wide", ...image }), React__default.createElement(element, { href }, jsxs("div", { className: "coop-signpost--content", children: [React__default.createElement(headingLevel, { className: "coop-signpost--heading" }, children), jsx("span", { "aria-hidden": "true", className: "coop-signpost--icon", role: "presentation", children: jsx(ChevronRightIcon, {}) })] }))] }));
14
14
  };
15
15
 
16
16
  export { Signpost, Signpost as default };
@@ -1,5 +1,5 @@
1
1
  import clsx from 'clsx';
2
- import React from 'react';
2
+ import React__default from 'react';
3
3
  import { hasUserBg } from '../../utils/index.js';
4
4
 
5
5
  const Tag = ({ as, children, className, href, ref, size = "md", ...props }) => {
@@ -10,7 +10,7 @@ const Tag = ({ as, children, className, href, ref, size = "md", ...props }) => {
10
10
  href,
11
11
  ...props,
12
12
  };
13
- return React.createElement(element, { ...componentProps, ref }, children);
13
+ return React__default.createElement(element, { ...componentProps, ref }, children);
14
14
  };
15
15
 
16
16
  export { Tag, Tag as default };
@@ -24,5 +24,10 @@ export interface TextInputProps extends Omit<InputHTMLAttributes<HTMLInputElemen
24
24
  /** **(Optional)** Specify the TextInput type. */
25
25
  type?: "text" | "email" | "number" | "password" | "search" | "tel" | "url" | "date" | "datetime-local" | "week" | "month" | "time";
26
26
  }
27
- export declare const TextInput: ({ "aria-placeholder": ariaPlaceholder, className, disabled, error, id, name, placeholder, prefix, ref, size, suffix, type, ...props }: TextInputProps) => JSX.Element;
27
+ export declare const TextInput: {
28
+ ({ "aria-placeholder": ariaPlaceholder, className, disabled, error, id, name, placeholder, prefix, ref, size, suffix, type, ...props }: TextInputProps): JSX.Element;
29
+ config: {
30
+ isField: true;
31
+ };
32
+ };
28
33
  export default TextInput;
@@ -20,5 +20,8 @@ const TextInput = ({ "aria-placeholder": ariaPlaceholder, className, disabled, e
20
20
  //const formItemProps = { "aria-disabled": disabled ? true : undefined }
21
21
  return (jsxs("div", { className: "coop-text-input-wrapper", children: [prefix && jsx("span", { className: "coop-text-input--prefix", children: prefix }), jsx("input", { ...componentProps, ref: ref }), suffix && jsx("span", { className: "coop-text-input--suffix", children: suffix })] }));
22
22
  };
23
+ TextInput.config = {
24
+ isField: true,
25
+ };
23
26
 
24
27
  export { TextInput, TextInput as default };
@@ -9,9 +9,7 @@ export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElemen
9
9
  counter?: boolean;
10
10
  /** **(Optional)** Specify whether the Textarea should allow more characters than its `maxLength` value.
11
11
  *
12
- * Defaults to `false`, meaning users can enter more characters than the maximum but will be warned if they go over the limit. When set to `true`, users will be blocked from typing once they hit the character limit. This can be an accessiblity anti-pattern, so only use this option when absolutely necessary.
13
- *
14
- * Remember it is still your responsibility to handle validation on submission, this is simply a hint for the user.
12
+ * Defaults to `false`, meaning users can enter more characters than the maximum but will be warned if they go over the limit.
15
13
  */
16
14
  cutoff?: boolean;
17
15
  /** **(Optional)** Specify whether the Textarea should be disabled. Refer to Experience Library guidance on disabled form controls and accessibility. */
@@ -28,10 +26,15 @@ export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElemen
28
26
  placeholder?: string;
29
27
  /** **(Optional)** Specify a custom React ref for this component. */
30
28
  ref?: Ref<HTMLTextAreaElement>;
31
- /** Specify the number of rows (lines of text) in the Textarea. Defaults to `4`. */
29
+ /** **(Optional)** Specify the number of rows (lines of text) in the Textarea. Defaults to `4`. */
32
30
  rows?: number;
33
31
  /** **(Optional)** Specify the Textarea size. */
34
32
  size?: StandardSizes;
35
33
  }
36
- export declare const Textarea: ({ "aria-placeholder": ariaPlaceholder, className, cols, counter, cutoff, disabled, error, id, maxLength, name, onChange: userOnChange, placeholder, ref, rows, size, ...props }: TextareaProps) => JSX.Element;
34
+ export declare const Textarea: {
35
+ ({ "aria-placeholder": ariaPlaceholder, className, cols, counter, cutoff, disabled, error, id, maxLength, name, onChange: userOnChange, placeholder, ref, rows, size, ...props }: TextareaProps): JSX.Element;
36
+ config: {
37
+ isField: true;
38
+ };
39
+ };
37
40
  export default Textarea;
@@ -29,13 +29,14 @@ const Textarea = ({ "aria-placeholder": ariaPlaceholder, className, cols = 30, c
29
29
  const debouncedRemaining = useDebounce(remaining, DEBOUNCE_DELAY);
30
30
  const showCounter = !disabled && counter && maxLength && remaining != null && debouncedRemaining != null;
31
31
  const handleChange = (e) => {
32
+ userOnChange === null || userOnChange === void 0 ? void 0 : userOnChange(e);
32
33
  maxLength && e.target && setRemaining(maxLength - e.target.value.length);
33
34
  };
34
35
  // const formItemProps = { "aria-disabled": disabled ? true : undefined }
35
- return (jsxs("div", { className: "coop-textarea-wrapper", children: [jsx("textarea", { ...componentProps, onChange: (e) => {
36
- userOnChange === null || userOnChange === void 0 ? void 0 : userOnChange(e);
37
- handleChange(e);
38
- }, ref: ref }), showCounter && (jsxs(Fragment, { children: [jsx("small", { "aria-hidden": "true", className: "coop-textarea-counter", ...(remaining < 0 && { "data-error": true }), children: charCountMessage(remaining) }), jsx("span", { "aria-live": "polite", className: "sr-only", children: charCountMessage(debouncedRemaining) })] }))] }));
36
+ return (jsxs("div", { className: "coop-textarea-wrapper", children: [jsx("textarea", { ...componentProps, onChange: handleChange, ref: ref }), showCounter && (jsxs(Fragment, { children: [jsx("small", { "aria-hidden": "true", className: "coop-textarea-counter", ...(remaining < 0 && { "data-error": true }), children: charCountMessage(remaining) }), jsx("span", { "aria-live": "polite", className: "sr-only", children: charCountMessage(debouncedRemaining) })] }))] }));
37
+ };
38
+ Textarea.config = {
39
+ isField: true,
39
40
  };
40
41
 
41
42
  export { Textarea, Textarea as default };
@@ -1,15 +1,15 @@
1
- import React from 'react';
1
+ import React__default from 'react';
2
2
 
3
3
  function isKey(x, k) {
4
4
  return k in x;
5
5
  }
6
6
  function getSlotName(node) {
7
- return React.isValidElement(node) && node.type && typeof node.type !== "string"
7
+ return React__default.isValidElement(node) && node.type && typeof node.type !== "string"
8
8
  ? node.type.name
9
9
  : false;
10
10
  }
11
11
  function useSlots(componentSlots, children, options) {
12
- return React.Children.toArray(children).reduce((slots, child) => {
12
+ return React__default.Children.toArray(children).reduce((slots, child) => {
13
13
  var _a;
14
14
  const slotName = getSlotName(child);
15
15
  if (child && slotName && isKey(componentSlots, slotName)) {
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export * from "./components/Author";
3
3
  export * from "./components/Button";
4
4
  export * from "./components/Card";
5
5
  export * from "./components/Checkbox";
6
+ export * from "./components/DatePicker";
6
7
  export * from "./components/Expandable";
7
8
  export * from "./components/Field";
8
9
  export * from "./components/Fieldset";
@@ -10,6 +11,7 @@ export * from "./components/Flourish";
10
11
  export * from "./components/Form";
11
12
  export * from "./components/Image";
12
13
  export * from "./components/Pill";
14
+ export * from "./components/Popover";
13
15
  export * from "./components/Radio";
14
16
  export * from "./components/RootSVG";
15
17
  export * from "./components/Searchbox";
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ export { Author } from './components/Author/Author.js';
3
3
  export { Button } from './components/Button/Button.js';
4
4
  export { Card } from './components/Card/Card.js';
5
5
  export { Checkbox } from './components/Checkbox/Checkbox.js';
6
+ export { DatePicker } from './components/DatePicker/DatePicker.js';
6
7
  export { Expandable } from './components/Expandable/Expandable.js';
7
8
  export { Field, FieldControl } from './components/Field/Field.js';
8
9
  export { Fieldset, FieldsetFields } from './components/Fieldset/Fieldset.js';
@@ -10,6 +11,7 @@ export { Flourish } from './components/Flourish/Flourish.js';
10
11
  export { Form } from './components/Form/Form.js';
11
12
  export { Image } from './components/Image/Image.js';
12
13
  export { Pill } from './components/Pill/Pill.js';
14
+ export { Popover } from './components/Popover/Popover.js';
13
15
  export { Radio } from './components/Radio/Radio.js';
14
16
  export { RootSVG } from './components/RootSVG/RootSVG.js';
15
17
  export { Searchbox } from './components/Searchbox/Searchbox.js';
@@ -0,0 +1,83 @@
1
+ import { tzName } from '../tzName/index.js';
2
+ import { TZDateMini } from './mini.js';
3
+
4
+ class TZDate extends TZDateMini {
5
+ //#region static
6
+
7
+ static tz(tz, ...args) {
8
+ return args.length ? new TZDate(...args, tz) : new TZDate(Date.now(), tz);
9
+ }
10
+
11
+ //#endregion
12
+
13
+ //#region representation
14
+
15
+ toISOString() {
16
+ const [sign, hours, minutes] = this.tzComponents();
17
+ const tz = `${sign}${hours}:${minutes}`;
18
+ return this.internal.toISOString().slice(0, -1) + tz;
19
+ }
20
+ toString() {
21
+ // "Tue Aug 13 2024 07:50:19 GMT+0800 (Singapore Standard Time)";
22
+ return `${this.toDateString()} ${this.toTimeString()}`;
23
+ }
24
+ toDateString() {
25
+ // toUTCString returns RFC 7231 ("Mon, 12 Aug 2024 23:36:08 GMT")
26
+ const [day, date, month, year] = this.internal.toUTCString().split(" ");
27
+ // "Tue Aug 13 2024"
28
+ return `${day?.slice(0, -1) /* Remove "," */} ${month} ${date} ${year}`;
29
+ }
30
+ toTimeString() {
31
+ // toUTCString returns RFC 7231 ("Mon, 12 Aug 2024 23:36:08 GMT")
32
+ const time = this.internal.toUTCString().split(" ")[4];
33
+ const [sign, hours, minutes] = this.tzComponents();
34
+ // "07:42:23 GMT+0800 (Singapore Standard Time)"
35
+ return `${time} GMT${sign}${hours}${minutes} (${tzName(this.timeZone, this)})`;
36
+ }
37
+ toLocaleString(locales, options) {
38
+ return Date.prototype.toLocaleString.call(this, locales, {
39
+ ...options,
40
+ timeZone: options?.timeZone || this.timeZone
41
+ });
42
+ }
43
+ toLocaleDateString(locales, options) {
44
+ return Date.prototype.toLocaleDateString.call(this, locales, {
45
+ ...options,
46
+ timeZone: options?.timeZone || this.timeZone
47
+ });
48
+ }
49
+ toLocaleTimeString(locales, options) {
50
+ return Date.prototype.toLocaleTimeString.call(this, locales, {
51
+ ...options,
52
+ timeZone: options?.timeZone || this.timeZone
53
+ });
54
+ }
55
+
56
+ //#endregion
57
+
58
+ //#region private
59
+
60
+ tzComponents() {
61
+ const offset = this.getTimezoneOffset();
62
+ const sign = offset > 0 ? "-" : "+";
63
+ const hours = String(Math.floor(Math.abs(offset) / 60)).padStart(2, "0");
64
+ const minutes = String(Math.abs(offset) % 60).padStart(2, "0");
65
+ return [sign, hours, minutes];
66
+ }
67
+
68
+ //#endregion
69
+
70
+ withTimeZone(timeZone) {
71
+ return new TZDate(+this, timeZone);
72
+ }
73
+
74
+ //#region date-fns integration
75
+
76
+ [Symbol.for("constructDateFrom")](date) {
77
+ return new TZDate(+new Date(date), this.timeZone);
78
+ }
79
+
80
+ //#endregion
81
+ }
82
+
83
+ export { TZDate };