@coopdigital/react 0.49.1 → 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.
- package/dist/components/Button/Button.js +2 -2
- package/dist/components/Button/index.js +5 -0
- package/dist/components/Card/Card.js +4 -4
- package/dist/components/Checkbox/Checkbox.d.ts +7 -1
- package/dist/components/Checkbox/Checkbox.js +4 -0
- package/dist/components/DatePicker/DatePicker.d.ts +61 -0
- package/dist/components/DatePicker/DatePicker.js +135 -0
- package/dist/components/DatePicker/datepicker-utils.d.ts +68 -0
- package/dist/components/DatePicker/datepicker-utils.js +215 -0
- package/dist/components/DatePicker/index.d.ts +4 -0
- package/dist/components/Field/Field.js +29 -26
- package/dist/components/Field/index.js +6 -0
- package/dist/components/Pill/Pill.js +2 -2
- package/dist/components/Popover/Popover.d.ts +74 -0
- package/dist/components/Popover/Popover.js +75 -0
- package/dist/components/Popover/index.d.ts +4 -0
- package/dist/components/Popover/index.js +5 -0
- package/dist/components/Radio/Radio.d.ts +7 -1
- package/dist/components/Radio/Radio.js +4 -0
- package/dist/components/Searchbox/Searchbox.js +4 -3
- package/dist/components/Select/Select.d.ts +3 -0
- package/dist/components/Select/Select.js +4 -1
- package/dist/components/Signpost/Signpost.js +2 -2
- package/dist/components/Tag/Tag.js +2 -2
- package/dist/components/TextInput/TextInput.d.ts +6 -1
- package/dist/components/TextInput/TextInput.js +3 -0
- package/dist/components/Textarea/Textarea.d.ts +8 -5
- package/dist/components/Textarea/Textarea.js +5 -4
- package/dist/hooks/useSlots.js +3 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/node_modules/@date-fns/tz/date/index.js +83 -0
- package/dist/node_modules/@date-fns/tz/date/mini.js +235 -0
- package/dist/node_modules/@date-fns/tz/tzName/index.js +39 -0
- package/dist/node_modules/@date-fns/tz/tzOffset/index.js +44 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +814 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +751 -0
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +350 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +161 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +137 -0
- package/dist/node_modules/@radix-ui/primitive/dist/index.js +11 -0
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +25 -0
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +39 -0
- package/dist/node_modules/@radix-ui/react-context/dist/index.js +63 -0
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +213 -0
- package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +31 -0
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +209 -0
- package/dist/node_modules/@radix-ui/react-id/dist/index.js +15 -0
- package/dist/node_modules/@radix-ui/react-popover/dist/index.js +303 -0
- package/dist/node_modules/@radix-ui/react-popper/dist/index.js +285 -0
- package/dist/node_modules/@radix-ui/react-portal/dist/index.js +19 -0
- package/dist/node_modules/@radix-ui/react-presence/dist/index.js +132 -0
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +43 -0
- package/dist/node_modules/@radix-ui/react-slot/dist/index.js +89 -0
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +12 -0
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +70 -0
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +18 -0
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +7 -0
- package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +40 -0
- package/dist/node_modules/aria-hidden/dist/es2015/index.js +137 -0
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +7 -0
- package/dist/node_modules/date-fns/_lib/defaultOptions.js +7 -0
- package/dist/node_modules/date-fns/_lib/format/formatters.js +775 -0
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +94 -0
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js +66 -0
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +31 -0
- package/dist/node_modules/date-fns/_lib/normalizeDates.js +11 -0
- package/dist/node_modules/date-fns/_lib/normalizeInterval.js +8 -0
- package/dist/node_modules/date-fns/_lib/protectedTokens.js +25 -0
- package/dist/node_modules/date-fns/addDays.js +41 -0
- package/dist/node_modules/date-fns/addMonths.js +75 -0
- package/dist/node_modules/date-fns/addWeeks.js +33 -0
- package/dist/node_modules/date-fns/addYears.js +33 -0
- package/dist/node_modules/date-fns/constants.js +67 -0
- package/dist/node_modules/date-fns/constructFrom.js +49 -0
- package/dist/node_modules/date-fns/differenceInCalendarDays.js +62 -0
- package/dist/node_modules/date-fns/differenceInCalendarMonths.js +42 -0
- package/dist/node_modules/date-fns/eachMonthOfInterval.js +65 -0
- package/dist/node_modules/date-fns/eachYearOfInterval.js +65 -0
- package/dist/node_modules/date-fns/endOfISOWeek.js +35 -0
- package/dist/node_modules/date-fns/endOfMonth.js +37 -0
- package/dist/node_modules/date-fns/endOfWeek.js +53 -0
- package/dist/node_modules/date-fns/endOfYear.js +37 -0
- package/dist/node_modules/date-fns/format.js +423 -0
- package/dist/node_modules/date-fns/getDayOfYear.js +34 -0
- package/dist/node_modules/date-fns/getDaysInMonth.js +36 -0
- package/dist/node_modules/date-fns/getDefaultOptions.js +31 -0
- package/dist/node_modules/date-fns/getISODay.js +33 -0
- package/dist/node_modules/date-fns/getISOWeek.js +40 -0
- package/dist/node_modules/date-fns/getISOWeekYear.js +52 -0
- package/dist/node_modules/date-fns/getMonth.js +29 -0
- package/dist/node_modules/date-fns/getWeek.js +54 -0
- package/dist/node_modules/date-fns/getWeekYear.js +75 -0
- package/dist/node_modules/date-fns/getYear.js +29 -0
- package/dist/node_modules/date-fns/isAfter.js +25 -0
- package/dist/node_modules/date-fns/isBefore.js +25 -0
- package/dist/node_modules/date-fns/isDate.js +41 -0
- package/dist/node_modules/date-fns/isSameDay.js +46 -0
- package/dist/node_modules/date-fns/isSameMonth.js +43 -0
- package/dist/node_modules/date-fns/isSameYear.js +35 -0
- package/dist/node_modules/date-fns/isValid.js +39 -0
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +10 -0
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +64 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +59 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +22 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +103 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +41 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +13 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +189 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +134 -0
- package/dist/node_modules/date-fns/locale/en-US.js +28 -0
- package/dist/node_modules/date-fns/max.js +49 -0
- package/dist/node_modules/date-fns/min.js +49 -0
- package/dist/node_modules/date-fns/parse/_lib/Parser.js +27 -0
- package/dist/node_modules/date-fns/parse/_lib/Setter.js +59 -0
- package/dist/node_modules/date-fns/parse/_lib/constants.js +33 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js +55 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js +55 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/DateParser.js +59 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js +57 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/DayParser.js +64 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js +56 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/EraParser.js +41 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js +24 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js +21 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js +36 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js +31 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js +32 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js +38 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js +118 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js +47 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js +47 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js +48 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js +44 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js +96 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js +47 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js +76 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js +31 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/MonthParser.js +86 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js +83 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/SecondParser.js +31 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js +97 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js +86 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js +83 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js +19 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js +19 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers/YearParser.js +62 -0
- package/dist/node_modules/date-fns/parse/_lib/parsers.js +110 -0
- package/dist/node_modules/date-fns/parse/_lib/utils.js +135 -0
- package/dist/node_modules/date-fns/parse.js +497 -0
- package/dist/node_modules/date-fns/setDay.js +59 -0
- package/dist/node_modules/date-fns/setISODay.js +40 -0
- package/dist/node_modules/date-fns/setISOWeek.js +39 -0
- package/dist/node_modules/date-fns/setMonth.js +46 -0
- package/dist/node_modules/date-fns/setWeek.js +53 -0
- package/dist/node_modules/date-fns/setYear.js +40 -0
- package/dist/node_modules/date-fns/startOfDay.js +35 -0
- package/dist/node_modules/date-fns/startOfISOWeek.js +35 -0
- package/dist/node_modules/date-fns/startOfISOWeekYear.js +42 -0
- package/dist/node_modules/date-fns/startOfMonth.js +37 -0
- package/dist/node_modules/date-fns/startOfWeek.js +53 -0
- package/dist/node_modules/date-fns/startOfWeekYear.js +64 -0
- package/dist/node_modules/date-fns/startOfYear.js +36 -0
- package/dist/node_modules/date-fns/toDate.js +46 -0
- package/dist/node_modules/date-fns/transpose.js +52 -0
- package/dist/node_modules/get-nonce/dist/es2015/index.js +8 -0
- package/dist/node_modules/react-day-picker/dist/esm/DayPicker.js +320 -0
- package/dist/node_modules/react-day-picker/dist/esm/UI.js +122 -0
- package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js +33 -0
- package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js +14 -0
- package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/classes/DateLib.js +604 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Button.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/CaptionLabel.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Chevron.js +20 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Day.js +18 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/DayButton.js +19 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Dropdown.js +21 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/DropdownNav.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Footer.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Month.js +15 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/MonthCaption.js +14 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/MonthGrid.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Months.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js +15 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Nav.js +31 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/NextMonthButton.js +15 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Option.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.js +15 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Root.js +14 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Select.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Week.js +14 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/WeekNumber.js +14 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Weekday.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Weekdays.js +14 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/Weeks.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/YearsDropdown.js +15 -0
- package/dist/node_modules/react-day-picker/dist/esm/components/custom-components.js +26 -0
- package/dist/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js +26 -0
- package/dist/node_modules/react-day-picker/dist/esm/formatters/formatDay.js +19 -0
- package/dist/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.js +18 -0
- package/dist/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js +21 -0
- package/dist/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.js +19 -0
- package/dist/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js +23 -0
- package/dist/node_modules/react-day-picker/dist/esm/formatters/index.js +7 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js +73 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js +95 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js +22 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js +28 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.js +33 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getComponents.js +20 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js +27 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getDates.js +59 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getDays.js +19 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js +33 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js +24 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.js +46 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getFormatters.js +24 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js +27 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getLabels.js +53 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js +33 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonths.js +69 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.js +51 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.js +40 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.js +36 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.js +37 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js +27 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js +26 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getWeeks.js +14 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js +36 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js +27 -0
- package/dist/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.js +31 -0
- package/dist/node_modules/react-day-picker/dist/esm/labels/index.js +11 -0
- package/dist/node_modules/react-day-picker/dist/esm/labels/labelDayButton.js +32 -0
- package/dist/node_modules/react-day-picker/dist/esm/labels/labelGrid.js +25 -0
- package/dist/node_modules/react-day-picker/dist/esm/labels/labelGridcell.js +22 -0
- package/dist/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js +14 -0
- package/dist/node_modules/react-day-picker/dist/esm/labels/labelNav.js +13 -0
- package/dist/node_modules/react-day-picker/dist/esm/labels/labelNext.js +16 -0
- package/dist/node_modules/react-day-picker/dist/esm/labels/labelPrevious.js +15 -0
- package/dist/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js +15 -0
- package/dist/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js +14 -0
- package/dist/node_modules/react-day-picker/dist/esm/labels/labelWeekday.js +18 -0
- package/dist/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js +14 -0
- package/dist/node_modules/react-day-picker/dist/esm/locale/en-US.js +67 -0
- package/dist/node_modules/react-day-picker/dist/esm/selection/useMulti.js +57 -0
- package/dist/node_modules/react-day-picker/dist/esm/selection/useRange.js +45 -0
- package/dist/node_modules/react-day-picker/dist/esm/selection/useSingle.js +44 -0
- package/dist/node_modules/react-day-picker/dist/esm/useAnimation.js +174 -0
- package/dist/node_modules/react-day-picker/dist/esm/useCalendar.js +113 -0
- package/dist/node_modules/react-day-picker/dist/esm/useDayPicker.js +25 -0
- package/dist/node_modules/react-day-picker/dist/esm/useFocus.js +56 -0
- package/dist/node_modules/react-day-picker/dist/esm/useSelection.js +31 -0
- package/dist/node_modules/react-day-picker/dist/esm/utils/addToRange.js +95 -0
- package/dist/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.js +57 -0
- package/dist/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js +62 -0
- package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js +30 -0
- package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js +74 -0
- package/dist/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js +35 -0
- package/dist/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.js +21 -0
- package/dist/node_modules/react-day-picker/dist/esm/utils/toTimeZone.js +16 -0
- package/dist/node_modules/react-day-picker/dist/esm/utils/typeguards.js +66 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +9 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +167 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +38 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +21 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +110 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +5 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +7 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +56 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +10 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +31 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/component.js +19 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +25 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +51 -0
- package/dist/node_modules/tslib/tslib.es6.js +56 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +24 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +48 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +42 -0
- package/dist/node_modules/use-sidecar/dist/es2015/exports.js +21 -0
- package/dist/node_modules/use-sidecar/dist/es2015/medium.js +77 -0
- package/dist/types/index.d.ts +10 -0
- package/package.json +10 -6
- package/src/components/Checkbox/Checkbox.tsx +6 -1
- package/src/components/DatePicker/DatePicker.tsx +372 -0
- package/src/components/DatePicker/datepicker-utils.ts +269 -0
- package/src/components/DatePicker/index.ts +5 -0
- package/src/components/Field/Field.tsx +30 -28
- package/src/components/Popover/Popover.tsx +198 -0
- package/src/components/Popover/index.ts +5 -0
- package/src/components/Radio/Radio.tsx +6 -1
- package/src/components/Searchbox/Searchbox.tsx +4 -1
- package/src/components/Select/Select.tsx +7 -2
- package/src/components/TextInput/TextInput.tsx +5 -1
- package/src/components/Textarea/Textarea.tsx +9 -13
- package/src/index.ts +2 -0
- 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
|
|
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
|
|
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 };
|
|
@@ -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:
|
|
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
|
|
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:
|
|
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 };
|
|
@@ -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
|
|
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 }),
|
|
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
|
|
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
|
|
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:
|
|
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.
|
|
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:
|
|
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: (
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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 };
|
package/dist/hooks/useSlots.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import
|
|
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
|
|
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
|
|
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 };
|