@lumx/react 3.0.2-alpha-react-utils.2 → 3.0.2-alpha-react-utils.3
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/_internal/{6340c129.js → ClickAwayProvider.js} +107 -2
- package/_internal/ClickAwayProvider.js.map +1 -0
- package/_internal/{eca6d4dc.d.ts → types.d.ts} +1 -1
- package/index.d.ts +2627 -56
- package/index.js +12438 -56
- package/index.js.map +1 -1
- package/package.json +4 -4
- package/utils/index.d.ts +1 -1
- package/utils/index.js +1 -1
- package/_internal/0062d1bc.js +0 -220
- package/_internal/0062d1bc.js.map +0 -1
- package/_internal/03e8323d.d.ts +0 -118
- package/_internal/0402f9bc.d.ts +0 -183
- package/_internal/0b370acc.js +0 -796
- package/_internal/0b370acc.js.map +0 -1
- package/_internal/0d154d73.d.ts +0 -67
- package/_internal/113e3b40.d.ts +0 -31
- package/_internal/12ab39e4.js +0 -58
- package/_internal/12ab39e4.js.map +0 -1
- package/_internal/13e759f3.js +0 -343
- package/_internal/13e759f3.js.map +0 -1
- package/_internal/158b46d5.js +0 -151
- package/_internal/158b46d5.js.map +0 -1
- package/_internal/17b74e16.d.ts +0 -31
- package/_internal/1b1530a4.d.ts +0 -43
- package/_internal/20976405.js +0 -87
- package/_internal/20976405.js.map +0 -1
- package/_internal/20b0e9a5.d.ts +0 -77
- package/_internal/26cd9c63.js +0 -118
- package/_internal/26cd9c63.js.map +0 -1
- package/_internal/27f21164.js +0 -79
- package/_internal/27f21164.js.map +0 -1
- package/_internal/288dfd0f.js +0 -13
- package/_internal/288dfd0f.js.map +0 -1
- package/_internal/28aaf23a.d.ts +0 -41
- package/_internal/2c829c0b.d.ts +0 -57
- package/_internal/2cc0aec5.js +0 -86
- package/_internal/2cc0aec5.js.map +0 -1
- package/_internal/2d0a5b28.js +0 -23
- package/_internal/2d0a5b28.js.map +0 -1
- package/_internal/2d4b5a5e.d.ts +0 -92
- package/_internal/2d770113.d.ts +0 -38
- package/_internal/2fe97f00.js +0 -291
- package/_internal/2fe97f00.js.map +0 -1
- package/_internal/31c16fa0.d.ts +0 -37
- package/_internal/329a01d3.js +0 -25
- package/_internal/329a01d3.js.map +0 -1
- package/_internal/3326e990.js +0 -168
- package/_internal/3326e990.js.map +0 -1
- package/_internal/377b2f44.js +0 -70
- package/_internal/377b2f44.js.map +0 -1
- package/_internal/3b8d2a6e.js +0 -124
- package/_internal/3b8d2a6e.js.map +0 -1
- package/_internal/3bd3186e.d.ts +0 -57
- package/_internal/48e40868.js +0 -101
- package/_internal/48e40868.js.map +0 -1
- package/_internal/490ec1da.js +0 -322
- package/_internal/490ec1da.js.map +0 -1
- package/_internal/49127d69.d.ts +0 -52
- package/_internal/4dcd87cb.js +0 -78
- package/_internal/4dcd87cb.js.map +0 -1
- package/_internal/4f44d848.js +0 -157
- package/_internal/4f44d848.js.map +0 -1
- package/_internal/4fc64a2e.js +0 -27
- package/_internal/4fc64a2e.js.map +0 -1
- package/_internal/53a831be.js +0 -108
- package/_internal/53a831be.js.map +0 -1
- package/_internal/55271fa1.d.ts +0 -34
- package/_internal/55d30377.d.ts +0 -22
- package/_internal/56385b04.js +0 -116
- package/_internal/56385b04.js.map +0 -1
- package/_internal/599e250a.d.ts +0 -88
- package/_internal/5a054691.d.ts +0 -33
- package/_internal/5a127b58.js +0 -82
- package/_internal/5a127b58.js.map +0 -1
- package/_internal/5a1c0db4.js +0 -156
- package/_internal/5a1c0db4.js.map +0 -1
- package/_internal/5babcc39.js +0 -147
- package/_internal/5babcc39.js.map +0 -1
- package/_internal/5c1bf4d4.d.ts +0 -81
- package/_internal/5d8ed4ee.js +0 -113
- package/_internal/5d8ed4ee.js.map +0 -1
- package/_internal/616f2912.js +0 -301
- package/_internal/616f2912.js.map +0 -1
- package/_internal/61f915de.d.ts +0 -49
- package/_internal/620081fa.js +0 -122
- package/_internal/620081fa.js.map +0 -1
- package/_internal/6340c129.js.map +0 -1
- package/_internal/6581c863.d.ts +0 -34
- package/_internal/66de4d45.d.ts +0 -32
- package/_internal/6735c5c8.d.ts +0 -62
- package/_internal/69dd1472.js +0 -112
- package/_internal/69dd1472.js.map +0 -1
- package/_internal/6a0e1c77.js +0 -327
- package/_internal/6a0e1c77.js.map +0 -1
- package/_internal/701c20b0.d.ts +0 -24
- package/_internal/7391188a.js +0 -81
- package/_internal/7391188a.js.map +0 -1
- package/_internal/74cb6c26.js +0 -136
- package/_internal/74cb6c26.js.map +0 -1
- package/_internal/761031bf.js +0 -314
- package/_internal/761031bf.js.map +0 -1
- package/_internal/76fed69d.js +0 -50
- package/_internal/76fed69d.js.map +0 -1
- package/_internal/78ef8e34.js +0 -40
- package/_internal/78ef8e34.js.map +0 -1
- package/_internal/7b906e16.d.ts +0 -17
- package/_internal/7be11ddc.d.ts +0 -35
- package/_internal/7d39705e.d.ts +0 -20
- package/_internal/7e03266f.js +0 -47
- package/_internal/7e03266f.js.map +0 -1
- package/_internal/7e8d0ac5.js +0 -84
- package/_internal/7e8d0ac5.js.map +0 -1
- package/_internal/7ffa45f6.js +0 -48
- package/_internal/7ffa45f6.js.map +0 -1
- package/_internal/84c1ec44.js +0 -257
- package/_internal/84c1ec44.js.map +0 -1
- package/_internal/8518279f.js +0 -96
- package/_internal/8518279f.js.map +0 -1
- package/_internal/853713cd.js +0 -25
- package/_internal/853713cd.js.map +0 -1
- package/_internal/86566d75.d.ts +0 -27
- package/_internal/86d22dde.d.ts +0 -57
- package/_internal/8e755ded.d.ts +0 -101
- package/_internal/901471f5.d.ts +0 -37
- package/_internal/935ce959.d.ts +0 -49
- package/_internal/97089888.d.ts +0 -16
- package/_internal/97cc728c.d.ts +0 -26
- package/_internal/9ab3c637.js +0 -2474
- package/_internal/9ab3c637.js.map +0 -1
- package/_internal/9ca3f59c.js +0 -60
- package/_internal/9ca3f59c.js.map +0 -1
- package/_internal/9e95ea38.d.ts +0 -43
- package/_internal/a0108f92.js +0 -84
- package/_internal/a0108f92.js.map +0 -1
- package/_internal/a493a193.d.ts +0 -65
- package/_internal/a521723d.js +0 -120
- package/_internal/a521723d.js.map +0 -1
- package/_internal/a6fad025.d.ts +0 -107
- package/_internal/a8fa525f.js +0 -124
- package/_internal/a8fa525f.js.map +0 -1
- package/_internal/aca2ecf5.js +0 -141
- package/_internal/aca2ecf5.js.map +0 -1
- package/_internal/aef2ef1c.js +0 -53
- package/_internal/aef2ef1c.js.map +0 -1
- package/_internal/af048b0c.js +0 -89
- package/_internal/af048b0c.js.map +0 -1
- package/_internal/af2cd0cd.d.ts +0 -17
- package/_internal/afec6b62.js +0 -864
- package/_internal/afec6b62.js.map +0 -1
- package/_internal/b0eb3a30.js +0 -72
- package/_internal/b0eb3a30.js.map +0 -1
- package/_internal/b89517ea.js +0 -275
- package/_internal/b89517ea.js.map +0 -1
- package/_internal/bafa6fcc.js +0 -116
- package/_internal/bafa6fcc.js.map +0 -1
- package/_internal/bbbeb49e.js +0 -47
- package/_internal/bbbeb49e.js.map +0 -1
- package/_internal/c11f6162.d.ts +0 -52
- package/_internal/c723dab4.js +0 -133
- package/_internal/c723dab4.js.map +0 -1
- package/_internal/c87cc857.d.ts +0 -42
- package/_internal/c97f8d04.js +0 -424
- package/_internal/c97f8d04.js.map +0 -1
- package/_internal/cbb373ea.d.ts +0 -6
- package/_internal/cbef23b6.d.ts +0 -104
- package/_internal/cdf77f06.d.ts +0 -88
- package/_internal/d350f2ff.js +0 -105
- package/_internal/d350f2ff.js.map +0 -1
- package/_internal/d71a8cf7.js +0 -54
- package/_internal/d71a8cf7.js.map +0 -1
- package/_internal/d9337952.js +0 -96
- package/_internal/d9337952.js.map +0 -1
- package/_internal/def14e1a.d.ts +0 -24
- package/_internal/e0cd29c7.d.ts +0 -35
- package/_internal/e354228f.js +0 -145
- package/_internal/e354228f.js.map +0 -1
- package/_internal/e3922a05.d.ts +0 -22
- package/_internal/e3cb6177.d.ts +0 -75
- package/_internal/e810c841.d.ts +0 -182
- package/_internal/ea700b01.d.ts +0 -43
- package/_internal/eed07003.js +0 -122
- package/_internal/eed07003.js.map +0 -1
- package/_internal/f1c9b334.d.ts +0 -22
- package/_internal/f3c3a674.js +0 -281
- package/_internal/f3c3a674.js.map +0 -1
- package/_internal/f571cdcd.js +0 -132
- package/_internal/f571cdcd.js.map +0 -1
- package/_internal/f5bdff7e.js +0 -282
- package/_internal/f5bdff7e.js.map +0 -1
- package/_internal/f851fc00.d.ts +0 -34
- package/_internal/f859b007.d.ts +0 -49
- package/_internal/fb384b79.d.ts +0 -38
- package/_internal/fc4c034b.js +0 -63
- package/_internal/fc4c034b.js.map +0 -1
- package/_internal/fc608bd9.js +0 -16
- package/_internal/fc608bd9.js.map +0 -1
- package/_internal/fd1f4d68.d.ts +0 -36
- package/_internal/fd867c9d.js +0 -346
- package/_internal/fd867c9d.js.map +0 -1
- package/_internal/ff8081e5.js +0 -57
- package/_internal/ff8081e5.js.map +0 -1
- package/_internal/ffd1bfe3.js +0 -123
- package/_internal/ffd1bfe3.js.map +0 -1
- package/components/alert-dialog.d.ts +0 -6
- package/components/alert-dialog.js +0 -2
- package/components/alert-dialog.js.map +0 -1
- package/components/autocomplete.d.ts +0 -8
- package/components/autocomplete.js +0 -2
- package/components/autocomplete.js.map +0 -1
- package/components/avatar.d.ts +0 -4
- package/components/avatar.js +0 -2
- package/components/avatar.js.map +0 -1
- package/components/badge.d.ts +0 -3
- package/components/badge.js +0 -2
- package/components/badge.js.map +0 -1
- package/components/button.d.ts +0 -8
- package/components/button.js +0 -4
- package/components/button.js.map +0 -1
- package/components/checkbox.d.ts +0 -3
- package/components/checkbox.js +0 -2
- package/components/checkbox.js.map +0 -1
- package/components/chip.d.ts +0 -3
- package/components/chip.js +0 -3
- package/components/chip.js.map +0 -1
- package/components/comment-block.d.ts +0 -5
- package/components/comment-block.js +0 -2
- package/components/comment-block.js.map +0 -1
- package/components/date-picker.d.ts +0 -7
- package/components/date-picker.js +0 -2
- package/components/date-picker.js.map +0 -1
- package/components/dialog.d.ts +0 -3
- package/components/dialog.js +0 -2
- package/components/dialog.js.map +0 -1
- package/components/divider.d.ts +0 -3
- package/components/divider.js +0 -2
- package/components/divider.js.map +0 -1
- package/components/drag-handle.d.ts +0 -3
- package/components/drag-handle.js +0 -2
- package/components/drag-handle.js.map +0 -1
- package/components/dropdown.d.ts +0 -4
- package/components/dropdown.js +0 -2
- package/components/dropdown.js.map +0 -1
- package/components/expansion-panel.d.ts +0 -7
- package/components/expansion-panel.js +0 -2
- package/components/expansion-panel.js.map +0 -1
- package/components/flag.d.ts +0 -3
- package/components/flag.js +0 -2
- package/components/flag.js.map +0 -1
- package/components/flex-box.d.ts +0 -3
- package/components/flex-box.js +0 -2
- package/components/flex-box.js.map +0 -1
- package/components/generic-block.d.ts +0 -4
- package/components/generic-block.js +0 -2
- package/components/generic-block.js.map +0 -1
- package/components/grid.d.ts +0 -3
- package/components/grid.js +0 -2
- package/components/grid.js.map +0 -1
- package/components/heading.d.ts +0 -4
- package/components/heading.js +0 -2
- package/components/heading.js.map +0 -1
- package/components/icon.d.ts +0 -3
- package/components/icon.js +0 -2
- package/components/icon.js.map +0 -1
- package/components/image-block.d.ts +0 -4
- package/components/image-block.js +0 -2
- package/components/image-block.js.map +0 -1
- package/components/input-helper.d.ts +0 -3
- package/components/input-helper.js +0 -2
- package/components/input-helper.js.map +0 -1
- package/components/input-label.d.ts +0 -3
- package/components/input-label.js +0 -2
- package/components/input-label.js.map +0 -1
- package/components/lightbox.d.ts +0 -7
- package/components/lightbox.js +0 -2
- package/components/lightbox.js.map +0 -1
- package/components/link-preview.d.ts +0 -5
- package/components/link-preview.js +0 -2
- package/components/link-preview.js.map +0 -1
- package/components/link.d.ts +0 -3
- package/components/link.js +0 -2
- package/components/link.js.map +0 -1
- package/components/list.d.ts +0 -3
- package/components/list.js +0 -3
- package/components/list.js.map +0 -1
- package/components/message.d.ts +0 -3
- package/components/message.js +0 -2
- package/components/message.js.map +0 -1
- package/components/mosaic.d.ts +0 -4
- package/components/mosaic.js +0 -2
- package/components/mosaic.js.map +0 -1
- package/components/notification.d.ts +0 -3
- package/components/notification.js +0 -2
- package/components/notification.js.map +0 -1
- package/components/popover.d.ts +0 -3
- package/components/popover.js +0 -2
- package/components/popover.js.map +0 -1
- package/components/post-block.d.ts +0 -4
- package/components/post-block.js +0 -2
- package/components/post-block.js.map +0 -1
- package/components/progress-tracker.d.ts +0 -3
- package/components/progress-tracker.js +0 -2
- package/components/progress-tracker.js.map +0 -1
- package/components/progress.d.ts +0 -3
- package/components/progress.js +0 -2
- package/components/progress.js.map +0 -1
- package/components/radio-button.d.ts +0 -3
- package/components/radio-button.js +0 -2
- package/components/radio-button.js.map +0 -1
- package/components/select.d.ts +0 -7
- package/components/select.js +0 -2
- package/components/select.js.map +0 -1
- package/components/side-navigation.d.ts +0 -7
- package/components/side-navigation.js +0 -2
- package/components/side-navigation.js.map +0 -1
- package/components/skeleton.d.ts +0 -3
- package/components/skeleton.js +0 -2
- package/components/skeleton.js.map +0 -1
- package/components/slider.d.ts +0 -3
- package/components/slider.js +0 -2
- package/components/slider.js.map +0 -1
- package/components/slideshow.d.ts +0 -7
- package/components/slideshow.js +0 -2
- package/components/slideshow.js.map +0 -1
- package/components/switch.d.ts +0 -3
- package/components/switch.js +0 -2
- package/components/switch.js.map +0 -1
- package/components/table.d.ts +0 -3
- package/components/table.js +0 -2
- package/components/table.js.map +0 -1
- package/components/tabs.d.ts +0 -4
- package/components/tabs.js +0 -2
- package/components/tabs.js.map +0 -1
- package/components/text-field.d.ts +0 -7
- package/components/text-field.js +0 -2
- package/components/text-field.js.map +0 -1
- package/components/text.d.ts +0 -3
- package/components/text.js +0 -2
- package/components/text.js.map +0 -1
- package/components/thumbnail.d.ts +0 -4
- package/components/thumbnail.js +0 -3
- package/components/thumbnail.js.map +0 -1
- package/components/toolbar.d.ts +0 -3
- package/components/toolbar.js +0 -2
- package/components/toolbar.js.map +0 -1
- package/components/tooltip.d.ts +0 -4
- package/components/tooltip.js +0 -2
- package/components/tooltip.js.map +0 -1
- package/components/uploader.d.ts +0 -3
- package/components/uploader.js +0 -2
- package/components/uploader.js.map +0 -1
- package/components/user-block.d.ts +0 -5
- package/components/user-block.js +0 -2
- package/components/user-block.js.map +0 -1
- package/components.d.ts +0 -2
- package/components.js +0 -156
- package/components.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"13e759f3.js","sources":["../../src/components/date-picker/constants.ts","../../../lumx-core/src/js/date-picker.ts","../../src/components/date-picker/DatePickerControlled.tsx","../../src/components/date-picker/DatePicker.tsx","../../src/components/date-picker/DatePickerField.tsx"],"sourcesContent":["import { getRootClassName } from '@lumx/react/utils/className';\n\n/**\n * Component display name.\n */\nexport const COMPONENT_NAME = 'DatePicker';\n\n/**\n * Component default class name and class prefix.\n */\nexport const CLASSNAME = getRootClassName(COMPONENT_NAME);\n","import range from 'lodash/range';\nimport mMoment, { Moment } from 'moment';\nimport { extendMoment } from 'moment-range';\n\nconst moment = extendMoment(mMoment as any);\n\nconst DAYS_PER_WEEK = 7;\n\ninterface AnnotatedDate {\n date: Moment;\n isDisplayed: boolean;\n isClickable: boolean;\n isToday: boolean;\n}\n\n/**\n * Get the list of days in a week based on locale.\n *\n * @param locale The locale using to generate the order of days in a week.\n * @return The list of days in a week based on locale.\n */\nexport function getWeekDays(locale: string): Moment[] {\n return range(DAYS_PER_WEEK).map((_, i) => moment().locale(locale).weekday(i));\n}\n\n/**\n * Get month calendar based on locale and start date.\n *\n * @param locale The locale using to generate the order of days in a week.\n * @param selectedMonth The selected month.\n * @return The list of days in a week based on locale.\n */\nexport function getMonthCalendar(locale: string, selectedMonth?: Moment): Moment[] {\n const firstDayOfMonth = moment(selectedMonth).startOf('month');\n const endDayOfMonth = moment(selectedMonth).endOf('month');\n // The first day of the week depends on the locale used. In FR the first day is a monday but in EN the first day is sunday\n const firstDay = firstDayOfMonth.locale(locale).startOf('week');\n const monthRange = moment.range(firstDay.toDate(), endDayOfMonth.toDate());\n\n return Array.from(monthRange.by('day'));\n}\n\n/**\n * Get month calendar based on locale and start date.\n * Each day is annotated to know if they are displayed and/or clickable.\n *\n * @param locale The locale using to generate the order of days in a week.\n * @param minDate The first selectable date.\n * @param maxDate The last selectable date.\n * @param selectedMonth The selected month.\n * @return The list of days in a week based on locale.\n */\nexport function getAnnotatedMonthCalendar(\n locale: string,\n minDate?: Date,\n maxDate?: Date,\n selectedMonth?: Moment,\n): AnnotatedDate[] {\n const month = moment(selectedMonth).locale(locale).month();\n\n const clickableRange = moment.range(minDate as Date, maxDate as Date);\n\n return getMonthCalendar(locale, selectedMonth).map((date) => {\n return {\n date,\n isClickable: clickableRange.contains(date),\n isDisplayed: date.month() === month,\n isToday: date.isSame(moment(), 'day'),\n };\n });\n}\n","import React, { forwardRef } from 'react';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport { DatePickerProps, Emphasis, IconButton, Toolbar } from '@lumx/react';\nimport { mdiChevronLeft, mdiChevronRight } from '@lumx/icons';\nimport { getAnnotatedMonthCalendar, getWeekDays } from '@lumx/core/js/date-picker';\nimport { Comp } from '@lumx/react/utils/type';\nimport { CLASSNAME } from './constants';\n\n/**\n * Defines the props of the component.\n */\nexport interface DatePickerControlledProps extends DatePickerProps {\n /** Selected month to display. */\n selectedMonth: Date;\n /** On previous month change callback. */\n onPrevMonthChange(): void;\n /** On next month change callback. */\n onNextMonthChange(): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'DatePickerControlled';\n\n/**\n * DatePickerControlled component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePickerControlled: Comp<DatePickerControlledProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n locale,\n maxDate,\n minDate,\n nextButtonProps,\n onChange,\n onNextMonthChange,\n onPrevMonthChange,\n previousButtonProps,\n selectedMonth,\n todayOrSelectedDateRef,\n value,\n } = props;\n const days = React.useMemo(() => {\n return getAnnotatedMonthCalendar(locale, minDate, maxDate, moment(selectedMonth));\n }, [locale, minDate, maxDate, selectedMonth]);\n\n const weekDays = React.useMemo(() => {\n return getWeekDays(locale);\n }, [locale]);\n\n return (\n <div ref={ref} className={`${CLASSNAME}`}>\n <Toolbar\n className={`${CLASSNAME}__toolbar`}\n after={\n <IconButton\n {...nextButtonProps}\n emphasis={Emphasis.low}\n icon={mdiChevronRight}\n onClick={onNextMonthChange}\n />\n }\n before={\n <IconButton\n {...previousButtonProps}\n emphasis={Emphasis.low}\n icon={mdiChevronLeft}\n onClick={onPrevMonthChange}\n />\n }\n label={\n <span className={`${CLASSNAME}__month`}>\n {moment(selectedMonth).locale(locale).format('MMMM YYYY')}\n </span>\n }\n />\n <div className={`${CLASSNAME}__calendar`}>\n <div className={`${CLASSNAME}__week-days ${CLASSNAME}__days-wrapper`}>\n {weekDays.map((weekDay) => (\n <div key={weekDay.unix()} className={`${CLASSNAME}__day-wrapper`}>\n <span className={`${CLASSNAME}__week-day`}>\n {weekDay.format('dddd').slice(0, 1).toLocaleUpperCase()}\n </span>\n </div>\n ))}\n </div>\n\n <div className={`${CLASSNAME}__month-days ${CLASSNAME}__days-wrapper`}>\n {days.map((annotatedDate) => {\n if (annotatedDate.isDisplayed) {\n return (\n <div key={annotatedDate.date.unix()} className={`${CLASSNAME}__day-wrapper`}>\n <button\n ref={\n (value && annotatedDate.date.isSame(value, 'day')) ||\n (!value && annotatedDate.isToday)\n ? todayOrSelectedDateRef\n : null\n }\n className={classNames(`${CLASSNAME}__month-day`, {\n [`${CLASSNAME}__month-day--is-selected`]:\n value && annotatedDate.date.isSame(value, 'day'),\n [`${CLASSNAME}__month-day--is-today`]:\n annotatedDate.isClickable && annotatedDate.isToday,\n })}\n disabled={!annotatedDate.isClickable}\n type=\"button\"\n onClick={() => onChange(moment(annotatedDate.date).toDate())}\n >\n <span>{annotatedDate.date.format('DD')}</span>\n </button>\n </div>\n );\n }\n return <div key={annotatedDate.date.unix()} className={`${CLASSNAME}__day-wrapper`} />;\n })}\n </div>\n </div>\n </div>\n );\n});\nDatePickerControlled.displayName = COMPONENT_NAME;\nDatePickerControlled.className = CLASSNAME;\n","import moment from 'moment';\nimport React, { forwardRef, useState } from 'react';\nimport { Comp } from '@lumx/react/utils/type';\nimport { CLASSNAME, COMPONENT_NAME } from './constants';\nimport { DatePickerControlled } from './DatePickerControlled';\nimport { DatePickerProps } from './types';\n\n/**\n * DatePicker component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePicker: Comp<DatePickerProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { defaultMonth, locale, value, onChange, ...forwardedProps } = props;\n let castedValue;\n if (value) {\n castedValue = moment(value);\n } else if (defaultMonth) {\n castedValue = moment(defaultMonth);\n }\n if (castedValue && !castedValue.isValid()) {\n // eslint-disable-next-line no-console\n console.warn(`[@lumx/react/DatePicker] Invalid date provided ${castedValue}`);\n }\n const selectedDay = castedValue && castedValue.isValid() ? castedValue : moment();\n\n const [monthOffset, setMonthOffset] = useState(0);\n\n const setPrevMonth = () => setMonthOffset(monthOffset - 1);\n const setNextMonth = () => setMonthOffset(monthOffset + 1);\n\n const onDatePickerChange = (newDate?: Date) => {\n onChange(newDate);\n setMonthOffset(0);\n };\n\n const selectedMonth = moment(selectedDay).locale(locale).add(monthOffset, 'months').toDate();\n\n return (\n <DatePickerControlled\n ref={ref}\n {...forwardedProps}\n defaultMonth={defaultMonth}\n locale={locale}\n value={value}\n onPrevMonthChange={setPrevMonth}\n onNextMonthChange={setNextMonth}\n selectedMonth={selectedMonth}\n onChange={onDatePickerChange}\n />\n );\n});\nDatePicker.displayName = COMPONENT_NAME;\nDatePicker.className = CLASSNAME;\n","import { DatePicker, Placement, Popover, TextField, IconButtonProps } from '@lumx/react';\nimport { useFocusTrap } from '@lumx/react/hooks/useFocusTrap';\n\nimport moment from 'moment';\n\nimport React, { forwardRef, SyntheticEvent, useCallback, useRef, useState } from 'react';\n\nimport { useFocus } from '@lumx/react/hooks/useFocus';\nimport { Comp, GenericProps } from '@lumx/react/utils/type';\n\n/**\n * Defines the props of the component.\n */\nexport interface DatePickerFieldProps extends GenericProps {\n /** Default month. */\n defaultMonth?: Date;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Locale (language or region) to use. */\n locale: string;\n /** Date after which dates can't be selected. */\n maxDate?: Date;\n /** Date before which dates can't be selected. */\n minDate?: Date;\n /** Native input name property. */\n name?: string;\n /** Props to pass to the next month button (minus those already set by the DatePickerControlled props). */\n nextButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Props to pass to the previous month button (minus those already set by the DatePickerControlled props). */\n previousButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /** Currently selected date. */\n value: Date | undefined;\n /** On change callback. */\n onChange(value: Date | undefined, name?: string, event?: SyntheticEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'DatePickerField';\n\n/**\n * DatePickerField component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const DatePickerField: Comp<DatePickerFieldProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n defaultMonth,\n disabled,\n isDisabled = disabled,\n locale,\n maxDate,\n minDate,\n name,\n nextButtonProps,\n onChange,\n previousButtonProps,\n value,\n ...forwardedProps\n } = props;\n const [wrapperElement, setWrapperElement] = useState<HTMLDivElement | null>(null);\n const anchorRef = useRef(null);\n\n const [isOpen, setIsOpen] = useState(false);\n\n const toggleSimpleMenu = () => {\n setIsOpen(!isOpen);\n };\n\n const onClose = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n useFocus(anchorRef.current, isOpen);\n const handleKeyboardNav = (evt: React.KeyboardEvent) => {\n if ((evt.key === 'Enter' || evt.key === ' ') && toggleSimpleMenu) {\n toggleSimpleMenu();\n }\n };\n\n // Handle focus trap.\n const [todayOrSelectedDate, setTodayOrSelectedDate] = useState<HTMLButtonElement | null>(null);\n useFocusTrap(isOpen && wrapperElement, todayOrSelectedDate);\n\n const onTextFieldChange = (textFieldValue: string, textFieldName?: string, event?: SyntheticEvent) => {\n if (!textFieldValue) {\n onChange(undefined, textFieldName, event);\n }\n };\n\n const onDatePickerChange = (newDate?: Date) => {\n onChange(newDate, name);\n onClose();\n };\n\n return (\n <>\n <TextField\n ref={ref}\n {...forwardedProps}\n name={name}\n forceFocusStyle={isOpen}\n textFieldRef={anchorRef}\n value={value ? moment(value).locale(locale).format('LL') : ''}\n onClick={toggleSimpleMenu}\n onChange={onTextFieldChange}\n onKeyPress={handleKeyboardNav}\n isDisabled={isDisabled}\n readOnly\n />\n {isOpen ? (\n <Popover\n anchorRef={anchorRef}\n placement={Placement.BOTTOM_START}\n isOpen={isOpen}\n onClose={onClose}\n closeOnClickAway\n closeOnEscape\n >\n <DatePicker\n ref={setWrapperElement}\n locale={locale}\n maxDate={maxDate}\n minDate={minDate}\n value={value}\n onChange={onDatePickerChange}\n todayOrSelectedDateRef={setTodayOrSelectedDate}\n defaultMonth={defaultMonth}\n nextButtonProps={nextButtonProps}\n previousButtonProps={previousButtonProps}\n />\n </Popover>\n ) : null}\n </>\n );\n});\nDatePickerField.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","moment","extendMoment","mMoment","DAYS_PER_WEEK","getWeekDays","locale","range","map","_","i","weekday","getMonthCalendar","selectedMonth","firstDayOfMonth","startOf","endDayOfMonth","endOf","firstDay","monthRange","toDate","Array","from","by","getAnnotatedMonthCalendar","minDate","maxDate","month","clickableRange","date","isClickable","contains","isDisplayed","isToday","isSame","DatePickerControlled","forwardRef","props","ref","nextButtonProps","onChange","onNextMonthChange","onPrevMonthChange","previousButtonProps","todayOrSelectedDateRef","value","days","React","useMemo","weekDays","Emphasis","low","mdiChevronRight","mdiChevronLeft","format","weekDay","unix","slice","toLocaleUpperCase","annotatedDate","classNames","displayName","className","DatePicker","defaultMonth","forwardedProps","castedValue","isValid","console","warn","selectedDay","useState","monthOffset","setMonthOffset","setPrevMonth","setNextMonth","onDatePickerChange","newDate","add","DatePickerField","disabled","isDisabled","name","wrapperElement","setWrapperElement","anchorRef","useRef","isOpen","setIsOpen","toggleSimpleMenu","onClose","useCallback","useFocus","current","handleKeyboardNav","evt","key","todayOrSelectedDate","setTodayOrSelectedDate","useFocusTrap","onTextFieldChange","textFieldValue","textFieldName","event","undefined","Placement","BOTTOM_START"],"mappings":"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"}
|
package/_internal/158b46d5.js
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { b as _objectWithoutProperties, c as _extends, _ as _objectSpread2 } from './6340c129.js';
|
|
2
|
-
import { Theme, Size, Emphasis } from '../components.js';
|
|
3
|
-
import React, { forwardRef, Children } from 'react';
|
|
4
|
-
import { g as getRootClassName, c as classnames, h as handleBasicClasses, o as onEnterPressed } from './fd867c9d.js';
|
|
5
|
-
import { I as Icon, i as mdiChevronUp, j as mdiChevronDown } from './a521723d.js';
|
|
6
|
-
import isEmpty from 'lodash/isEmpty';
|
|
7
|
-
import { r as renderLink } from './329a01d3.js';
|
|
8
|
-
import { I as IconButton } from './377b2f44.js';
|
|
9
|
-
import { i as isComponent } from './78ef8e34.js';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Defines the props of the component.
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Component display name.
|
|
17
|
-
*/
|
|
18
|
-
var COMPONENT_NAME = 'SideNavigation';
|
|
19
|
-
/**
|
|
20
|
-
* Component default class name and class prefix.
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
var CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
24
|
-
/**
|
|
25
|
-
* SideNavigation component.
|
|
26
|
-
*
|
|
27
|
-
* @param props Component props.
|
|
28
|
-
* @param ref Component ref.
|
|
29
|
-
* @return React element.
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
var SideNavigation = forwardRef(function (props, ref) {
|
|
33
|
-
var children = props.children,
|
|
34
|
-
className = props.className,
|
|
35
|
-
theme = props.theme,
|
|
36
|
-
forwardedProps = _objectWithoutProperties(props, ["children", "className", "theme"]);
|
|
37
|
-
|
|
38
|
-
var content = Children.toArray(children).filter(isComponent(SideNavigationItem));
|
|
39
|
-
return React.createElement("ul", _extends({
|
|
40
|
-
ref: ref
|
|
41
|
-
}, forwardedProps, {
|
|
42
|
-
className: classnames(className, theme === Theme.dark && 'lumx-color-font-light-N', handleBasicClasses({
|
|
43
|
-
prefix: CLASSNAME
|
|
44
|
-
}))
|
|
45
|
-
}), content);
|
|
46
|
-
});
|
|
47
|
-
SideNavigation.displayName = COMPONENT_NAME;
|
|
48
|
-
SideNavigation.className = CLASSNAME;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Defines the props of the component.
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Component display name.
|
|
56
|
-
*/
|
|
57
|
-
var COMPONENT_NAME$1 = 'SideNavigationItem';
|
|
58
|
-
/**
|
|
59
|
-
* Component default class name and class prefix.
|
|
60
|
-
*/
|
|
61
|
-
|
|
62
|
-
var CLASSNAME$1 = getRootClassName(COMPONENT_NAME$1);
|
|
63
|
-
/**
|
|
64
|
-
* Component default props.
|
|
65
|
-
*/
|
|
66
|
-
|
|
67
|
-
var DEFAULT_PROPS = {
|
|
68
|
-
emphasis: Emphasis.high,
|
|
69
|
-
closeMode: 'unmount'
|
|
70
|
-
};
|
|
71
|
-
/**
|
|
72
|
-
* SideNavigationItem component.
|
|
73
|
-
*
|
|
74
|
-
* @param props Component props.
|
|
75
|
-
* @param ref Component ref.
|
|
76
|
-
* @return React element.
|
|
77
|
-
*/
|
|
78
|
-
|
|
79
|
-
var SideNavigationItem = forwardRef(function (props, ref) {
|
|
80
|
-
var children = props.children,
|
|
81
|
-
className = props.className,
|
|
82
|
-
emphasis = props.emphasis,
|
|
83
|
-
icon = props.icon,
|
|
84
|
-
isOpen = props.isOpen,
|
|
85
|
-
isSelected = props.isSelected,
|
|
86
|
-
label = props.label,
|
|
87
|
-
linkAs = props.linkAs,
|
|
88
|
-
linkProps = props.linkProps,
|
|
89
|
-
onActionClick = props.onActionClick,
|
|
90
|
-
onClick = props.onClick,
|
|
91
|
-
toggleButtonProps = props.toggleButtonProps,
|
|
92
|
-
_props$closeMode = props.closeMode,
|
|
93
|
-
closeMode = _props$closeMode === void 0 ? 'unmount' : _props$closeMode,
|
|
94
|
-
forwardedProps = _objectWithoutProperties(props, ["children", "className", "emphasis", "icon", "isOpen", "isSelected", "label", "linkAs", "linkProps", "onActionClick", "onClick", "toggleButtonProps", "closeMode"]);
|
|
95
|
-
|
|
96
|
-
var content = children && Children.toArray(children).filter(isComponent(SideNavigationItem));
|
|
97
|
-
var hasContent = !isEmpty(content);
|
|
98
|
-
var shouldSplitActions = Boolean(onActionClick);
|
|
99
|
-
var showChildren = hasContent && isOpen;
|
|
100
|
-
return React.createElement("li", _extends({
|
|
101
|
-
ref: ref
|
|
102
|
-
}, forwardedProps, {
|
|
103
|
-
className: classnames(className, handleBasicClasses({
|
|
104
|
-
emphasis: emphasis,
|
|
105
|
-
isOpen: showChildren,
|
|
106
|
-
isSelected: isSelected,
|
|
107
|
-
prefix: CLASSNAME$1
|
|
108
|
-
}))
|
|
109
|
-
}), shouldSplitActions ? React.createElement("div", {
|
|
110
|
-
className: "".concat(CLASSNAME$1, "__wrapper")
|
|
111
|
-
}, renderLink(_objectSpread2({
|
|
112
|
-
linkAs: linkAs
|
|
113
|
-
}, linkProps, {
|
|
114
|
-
className: "".concat(CLASSNAME$1, "__link"),
|
|
115
|
-
onClick: onClick,
|
|
116
|
-
tabIndex: 0
|
|
117
|
-
}), icon && React.createElement(Icon, {
|
|
118
|
-
className: "".concat(CLASSNAME$1, "__icon"),
|
|
119
|
-
icon: icon,
|
|
120
|
-
size: Size.xs
|
|
121
|
-
}), React.createElement("span", null, label)), React.createElement(IconButton, _extends({}, toggleButtonProps, {
|
|
122
|
-
className: "".concat(CLASSNAME$1, "__toggle"),
|
|
123
|
-
icon: isOpen ? mdiChevronUp : mdiChevronDown,
|
|
124
|
-
size: Size.m,
|
|
125
|
-
emphasis: Emphasis.low,
|
|
126
|
-
onClick: onActionClick
|
|
127
|
-
}))) : renderLink(_objectSpread2({
|
|
128
|
-
linkAs: linkAs
|
|
129
|
-
}, linkProps, {
|
|
130
|
-
className: "".concat(CLASSNAME$1, "__link"),
|
|
131
|
-
tabIndex: 0,
|
|
132
|
-
onClick: onClick,
|
|
133
|
-
onKeyDown: onClick ? onEnterPressed(onClick) : undefined
|
|
134
|
-
}), icon && React.createElement(Icon, {
|
|
135
|
-
className: "".concat(CLASSNAME$1, "__icon"),
|
|
136
|
-
icon: icon,
|
|
137
|
-
size: Size.xs
|
|
138
|
-
}), React.createElement("span", null, label), hasContent && React.createElement(Icon, {
|
|
139
|
-
className: "".concat(CLASSNAME$1, "__chevron"),
|
|
140
|
-
icon: isOpen ? mdiChevronUp : mdiChevronDown,
|
|
141
|
-
size: Size.xs
|
|
142
|
-
})), (closeMode === 'hide' || showChildren) && React.createElement("ul", {
|
|
143
|
-
className: "".concat(CLASSNAME$1, "__children")
|
|
144
|
-
}, content));
|
|
145
|
-
});
|
|
146
|
-
SideNavigationItem.displayName = COMPONENT_NAME$1;
|
|
147
|
-
SideNavigationItem.className = CLASSNAME$1;
|
|
148
|
-
SideNavigationItem.defaultProps = DEFAULT_PROPS;
|
|
149
|
-
|
|
150
|
-
export { SideNavigation as S, SideNavigationItem as a };
|
|
151
|
-
//# sourceMappingURL=158b46d5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"158b46d5.js","sources":["../../src/components/side-navigation/SideNavigation.tsx","../../src/components/side-navigation/SideNavigationItem.tsx"],"sourcesContent":["import React, { Children, forwardRef, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { SideNavigationItem, Theme } from '@lumx/react';\n\nimport { Comp, GenericProps, HasTheme, isComponent } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\n\n/**\n * Defines the props of the component.\n */\nexport interface SideNavigationProps extends GenericProps, HasTheme {\n /** SideNavigationItem elements. */\n children: ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SideNavigation';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * SideNavigation component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SideNavigation: Comp<SideNavigationProps, HTMLUListElement> = forwardRef((props, ref) => {\n const { children, className, theme, ...forwardedProps } = props;\n const content = Children.toArray(children).filter(isComponent(SideNavigationItem));\n\n return (\n <ul\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n theme === Theme.dark && 'lumx-color-font-light-N',\n handleBasicClasses({ prefix: CLASSNAME }),\n )}\n >\n {content}\n </ul>\n );\n});\nSideNavigation.displayName = COMPONENT_NAME;\nSideNavigation.className = CLASSNAME;\n","import React, { Children, forwardRef, ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { mdiChevronDown, mdiChevronUp } from '@lumx/icons';\n\nimport { Emphasis, Icon, Size, IconButton, IconButtonProps } from '@lumx/react';\n\nimport { Callback, Comp, GenericProps, isComponent } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { onEnterPressed } from '@lumx/react/utils/event';\nimport { renderLink } from '@lumx/react/utils/renderLink';\n\n/**\n * Defines the props of the component.\n */\nexport interface SideNavigationItemProps extends GenericProps {\n /** SideNavigationItem elements. */\n children?: ReactNode;\n /** Emphasis variant. */\n emphasis?: Emphasis;\n /** Label content. */\n label: string | ReactNode;\n /** Icon (SVG path). */\n icon?: string;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Custom react component for the link (can be used to inject react router Link). */\n linkAs?: 'a' | any;\n /** Props to pass to the link (minus those already set by the SideNavigationItem props). */\n linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;\n /** Props to pass to the toggle button (minus those already set by the SideNavigationItem props). */\n toggleButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color' | 'size'>;\n /**\n * Choose how the children are hidden when closed\n * ('hide' keeps the children in DOM but hide them, 'unmount' remove the children from the DOM).\n */\n closeMode?: 'hide' | 'unmount';\n /** On action button click callback. */\n onActionClick?(evt: React.MouseEvent): void;\n /** On click callback. */\n onClick?(evt: React.MouseEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SideNavigationItem';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<SideNavigationItemProps> = {\n emphasis: Emphasis.high,\n closeMode: 'unmount',\n};\n\n/**\n * SideNavigationItem component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SideNavigationItem: Comp<SideNavigationItemProps, HTMLLIElement> = forwardRef((props, ref) => {\n const {\n children,\n className,\n emphasis,\n icon,\n isOpen,\n isSelected,\n label,\n linkAs,\n linkProps,\n onActionClick,\n onClick,\n toggleButtonProps,\n closeMode = 'unmount',\n ...forwardedProps\n } = props;\n\n const content = children && Children.toArray(children).filter(isComponent(SideNavigationItem));\n const hasContent = !isEmpty(content);\n const shouldSplitActions = Boolean(onActionClick);\n const showChildren = hasContent && isOpen;\n\n return (\n <li\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n emphasis,\n isOpen: showChildren,\n isSelected,\n prefix: CLASSNAME,\n }),\n )}\n >\n {shouldSplitActions ? (\n <div className={`${CLASSNAME}__wrapper`}>\n {renderLink(\n {\n linkAs,\n ...linkProps,\n className: `${CLASSNAME}__link`,\n onClick,\n tabIndex: 0,\n },\n icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} />,\n <span>{label}</span>,\n )}\n\n <IconButton\n {...toggleButtonProps}\n className={`${CLASSNAME}__toggle`}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n size={Size.m}\n emphasis={Emphasis.low}\n onClick={onActionClick}\n />\n </div>\n ) : (\n renderLink(\n {\n linkAs,\n ...linkProps,\n className: `${CLASSNAME}__link`,\n tabIndex: 0,\n onClick,\n onKeyDown: onClick ? onEnterPressed(onClick as Callback) : undefined,\n },\n icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} />,\n <span>{label}</span>,\n hasContent && (\n <Icon\n className={`${CLASSNAME}__chevron`}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n size={Size.xs}\n />\n ),\n )\n )}\n\n {(closeMode === 'hide' || showChildren) && <ul className={`${CLASSNAME}__children`}>{content}</ul>}\n </li>\n );\n});\nSideNavigationItem.displayName = COMPONENT_NAME;\nSideNavigationItem.className = CLASSNAME;\nSideNavigationItem.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","SideNavigation","forwardRef","props","ref","children","className","theme","forwardedProps","content","Children","toArray","filter","isComponent","SideNavigationItem","classNames","Theme","dark","handleBasicClasses","prefix","displayName","DEFAULT_PROPS","emphasis","Emphasis","high","closeMode","icon","isOpen","isSelected","label","linkAs","linkProps","onActionClick","onClick","toggleButtonProps","hasContent","isEmpty","shouldSplitActions","Boolean","showChildren","renderLink","tabIndex","Size","xs","mdiChevronUp","mdiChevronDown","m","low","onKeyDown","onEnterPressed","undefined","defaultProps"],"mappings":";;;;;;;;;;AASA;;;;AAQA;;;AAGA,IAAMA,cAAc,GAAG,gBAAvB;AAEA;;;;AAGA,IAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAD,CAAlC;AAEA;;;;;;;;IAOaG,cAA2D,GAAGC,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MAC1FC,QAD0F,GACxCF,KADwC,CAC1FE,QAD0F;AAAA,MAChFC,SADgF,GACxCH,KADwC,CAChFG,SADgF;AAAA,MACrEC,KADqE,GACxCJ,KADwC,CACrEI,KADqE;AAAA,MAC3DC,cAD2D,4BACxCL,KADwC;;AAElG,MAAMM,OAAO,GAAGC,QAAQ,CAACC,OAAT,CAAiBN,QAAjB,EAA2BO,MAA3B,CAAkCC,WAAW,CAACC,kBAAD,CAA7C,CAAhB;AAEA,SACI;AACI,IAAA,GAAG,EAAEV;AADT,KAEQI,cAFR;AAGI,IAAA,SAAS,EAAEO,UAAU,CACjBT,SADiB,EAEjBC,KAAK,KAAKS,KAAK,CAACC,IAAhB,IAAwB,yBAFP,EAGjBC,kBAAkB,CAAC;AAAEC,MAAAA,MAAM,EAAEpB;AAAV,KAAD,CAHD;AAHzB,MASKU,OATL,CADJ;AAaH,CAjBoF;AAkBrFR,cAAc,CAACmB,WAAf,GAA6BtB,cAA7B;AACAG,cAAc,CAACK,SAAf,GAA2BP,SAA3B;;ACvCA;;;;AAkCA;;;AAGA,IAAMD,gBAAc,GAAG,oBAAvB;AAEA;;;;AAGA,IAAMC,WAAS,GAAGC,gBAAgB,CAACF,gBAAD,CAAlC;AAEA;;;;AAGA,IAAMuB,aAA+C,GAAG;AACpDC,EAAAA,QAAQ,EAAEC,QAAQ,CAACC,IADiC;AAEpDC,EAAAA,SAAS,EAAE;AAFyC,CAAxD;AAKA;;;;;;;;IAOaX,kBAAgE,GAAGZ,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MAEnGC,QAFmG,GAgBnGF,KAhBmG,CAEnGE,QAFmG;AAAA,MAGnGC,SAHmG,GAgBnGH,KAhBmG,CAGnGG,SAHmG;AAAA,MAInGgB,QAJmG,GAgBnGnB,KAhBmG,CAInGmB,QAJmG;AAAA,MAKnGI,IALmG,GAgBnGvB,KAhBmG,CAKnGuB,IALmG;AAAA,MAMnGC,MANmG,GAgBnGxB,KAhBmG,CAMnGwB,MANmG;AAAA,MAOnGC,UAPmG,GAgBnGzB,KAhBmG,CAOnGyB,UAPmG;AAAA,MAQnGC,KARmG,GAgBnG1B,KAhBmG,CAQnG0B,KARmG;AAAA,MASnGC,MATmG,GAgBnG3B,KAhBmG,CASnG2B,MATmG;AAAA,MAUnGC,SAVmG,GAgBnG5B,KAhBmG,CAUnG4B,SAVmG;AAAA,MAWnGC,aAXmG,GAgBnG7B,KAhBmG,CAWnG6B,aAXmG;AAAA,MAYnGC,OAZmG,GAgBnG9B,KAhBmG,CAYnG8B,OAZmG;AAAA,MAanGC,iBAbmG,GAgBnG/B,KAhBmG,CAanG+B,iBAbmG;AAAA,yBAgBnG/B,KAhBmG,CAcnGsB,SAdmG;AAAA,MAcnGA,SAdmG,iCAcvF,SAduF;AAAA,MAehGjB,cAfgG,4BAgBnGL,KAhBmG;;AAkBvG,MAAMM,OAAO,GAAGJ,QAAQ,IAAIK,QAAQ,CAACC,OAAT,CAAiBN,QAAjB,EAA2BO,MAA3B,CAAkCC,WAAW,CAACC,kBAAD,CAA7C,CAA5B;AACA,MAAMqB,UAAU,GAAG,CAACC,OAAO,CAAC3B,OAAD,CAA3B;AACA,MAAM4B,kBAAkB,GAAGC,OAAO,CAACN,aAAD,CAAlC;AACA,MAAMO,YAAY,GAAGJ,UAAU,IAAIR,MAAnC;AAEA,SACI;AACI,IAAA,GAAG,EAAEvB;AADT,KAEQI,cAFR;AAGI,IAAA,SAAS,EAAEO,UAAU,CACjBT,SADiB,EAEjBY,kBAAkB,CAAC;AACfI,MAAAA,QAAQ,EAARA,QADe;AAEfK,MAAAA,MAAM,EAAEY,YAFO;AAGfX,MAAAA,UAAU,EAAVA,UAHe;AAIfT,MAAAA,MAAM,EAAEpB;AAJO,KAAD,CAFD;AAHzB,MAaKsC,kBAAkB,GACf;AAAK,IAAA,SAAS,YAAKtC,WAAL;AAAd,KACKyC,UAAU;AAEHV,IAAAA,MAAM,EAANA;AAFG,KAGAC,SAHA;AAIHzB,IAAAA,SAAS,YAAKP,WAAL,WAJN;AAKHkC,IAAAA,OAAO,EAAPA,OALG;AAMHQ,IAAAA,QAAQ,EAAE;AANP,MAQPf,IAAI,IAAI,oBAAC,IAAD;AAAM,IAAA,SAAS,YAAK3B,WAAL,WAAf;AAAuC,IAAA,IAAI,EAAE2B,IAA7C;AAAmD,IAAA,IAAI,EAAEgB,IAAI,CAACC;AAA9D,IARD,EASP,kCAAOd,KAAP,CATO,CADf,EAaI,oBAAC,UAAD,eACQK,iBADR;AAEI,IAAA,SAAS,YAAKnC,WAAL,aAFb;AAGI,IAAA,IAAI,EAAE4B,MAAM,GAAGiB,YAAH,GAAkBC,cAHlC;AAII,IAAA,IAAI,EAAEH,IAAI,CAACI,CAJf;AAKI,IAAA,QAAQ,EAAEvB,QAAQ,CAACwB,GALvB;AAMI,IAAA,OAAO,EAAEf;AANb,KAbJ,CADe,GAwBfQ,UAAU;AAEFV,IAAAA,MAAM,EAANA;AAFE,KAGCC,SAHD;AAIFzB,IAAAA,SAAS,YAAKP,WAAL,WAJP;AAKF0C,IAAAA,QAAQ,EAAE,CALR;AAMFR,IAAAA,OAAO,EAAPA,OANE;AAOFe,IAAAA,SAAS,EAAEf,OAAO,GAAGgB,cAAc,CAAChB,OAAD,CAAjB,GAAyCiB;AAPzD,MASNxB,IAAI,IAAI,oBAAC,IAAD;AAAM,IAAA,SAAS,YAAK3B,WAAL,WAAf;AAAuC,IAAA,IAAI,EAAE2B,IAA7C;AAAmD,IAAA,IAAI,EAAEgB,IAAI,CAACC;AAA9D,IATF,EAUN,kCAAOd,KAAP,CAVM,EAWNM,UAAU,IACN,oBAAC,IAAD;AACI,IAAA,SAAS,YAAKpC,WAAL,cADb;AAEI,IAAA,IAAI,EAAE4B,MAAM,GAAGiB,YAAH,GAAkBC,cAFlC;AAGI,IAAA,IAAI,EAAEH,IAAI,CAACC;AAHf,IAZE,CArClB,EA0DK,CAAClB,SAAS,KAAK,MAAd,IAAwBc,YAAzB,KAA0C;AAAI,IAAA,SAAS,YAAKxC,WAAL;AAAb,KAA0CU,OAA1C,CA1D/C,CADJ;AA8DH,CArFyF;AAsF1FK,kBAAkB,CAACM,WAAnB,GAAiCtB,gBAAjC;AACAgB,kBAAkB,CAACR,SAAnB,GAA+BP,WAA/B;AACAe,kBAAkB,CAACqC,YAAnB,GAAkC9B,aAAlC;;;;"}
|
package/_internal/17b74e16.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
import { l as GenericProps, k as Comp } from './eca6d4dc.js';
|
|
3
|
-
import { P as Placement } from './599e250a.js';
|
|
4
|
-
|
|
5
|
-
/** Position of the tooltip relative to the anchor element. */
|
|
6
|
-
declare type TooltipPlacement = Extract<Placement, 'top' | 'right' | 'bottom' | 'left'>;
|
|
7
|
-
/**
|
|
8
|
-
* Defines the props of the component.
|
|
9
|
-
*/
|
|
10
|
-
interface TooltipProps extends GenericProps {
|
|
11
|
-
/** Anchor (element on which we activate the tooltip). */
|
|
12
|
-
children: ReactNode;
|
|
13
|
-
/** Delay (in ms) before closing the tooltip. */
|
|
14
|
-
delay?: number;
|
|
15
|
-
/** Whether the tooltip is displayed even without the mouse hovering the anchor. */
|
|
16
|
-
forceOpen?: boolean;
|
|
17
|
-
/** Label text. */
|
|
18
|
-
label?: string | null | false;
|
|
19
|
-
/** Placement of the tooltip relative to the anchor. */
|
|
20
|
-
placement?: TooltipPlacement;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Tooltip component.
|
|
24
|
-
*
|
|
25
|
-
* @param props Component props.
|
|
26
|
-
* @param ref Component ref.
|
|
27
|
-
* @return React element.
|
|
28
|
-
*/
|
|
29
|
-
declare const Tooltip: Comp<TooltipProps, HTMLDivElement>;
|
|
30
|
-
|
|
31
|
-
export { TooltipPlacement as T, TooltipProps as a, Tooltip as b };
|
package/_internal/1b1530a4.d.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import React, { ReactNode } from 'react';
|
|
2
|
-
import { A as Alignment, S as Size, V as VerticalAlignment, H as HorizontalAlignment, l as GenericProps, O as Orientation, k as Comp } from './eca6d4dc.js';
|
|
3
|
-
|
|
4
|
-
declare type MarginAutoAlignment = Extract<Alignment, 'top' | 'bottom' | 'right' | 'left'>;
|
|
5
|
-
declare type GapSize = Extract<Size, 'tiny' | 'regular' | 'medium' | 'big' | 'huge'>;
|
|
6
|
-
declare type SpaceAlignment = Extract<Alignment, 'space-between' | 'space-evenly' | 'space-around'>;
|
|
7
|
-
declare type FlexVerticalAlignment = VerticalAlignment | SpaceAlignment;
|
|
8
|
-
declare type FlexHorizontalAlignment = HorizontalAlignment | SpaceAlignment;
|
|
9
|
-
/**
|
|
10
|
-
* Defines the props of the component.
|
|
11
|
-
*/
|
|
12
|
-
interface FlexBoxProps extends GenericProps {
|
|
13
|
-
/** Customize the root element. */
|
|
14
|
-
as?: React.ElementType;
|
|
15
|
-
/** Children elements. */
|
|
16
|
-
children?: ReactNode;
|
|
17
|
-
/** Whether the "content filling space" is enabled or not. */
|
|
18
|
-
fillSpace?: boolean;
|
|
19
|
-
/** Gap space between flexbox items. */
|
|
20
|
-
gap?: GapSize;
|
|
21
|
-
/** Flex horizontal alignment. */
|
|
22
|
-
hAlign?: FlexVerticalAlignment;
|
|
23
|
-
/** Whether the "auto margin" is enabled all around or not. */
|
|
24
|
-
marginAuto?: MarginAutoAlignment | MarginAutoAlignment[];
|
|
25
|
-
/** Whether the "content shrink" is disabled or not. */
|
|
26
|
-
noShrink?: boolean;
|
|
27
|
-
/** Flex direction. */
|
|
28
|
-
orientation?: Orientation;
|
|
29
|
-
/** Flex vertical alignment. */
|
|
30
|
-
vAlign?: FlexHorizontalAlignment;
|
|
31
|
-
/** Whether the "flex wrap" is enabled or not. */
|
|
32
|
-
wrap?: boolean;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* FlexBox component.
|
|
36
|
-
*
|
|
37
|
-
* @param props Component props.
|
|
38
|
-
* @param ref Component ref.
|
|
39
|
-
* @return React element.
|
|
40
|
-
*/
|
|
41
|
-
declare const FlexBox: Comp<FlexBoxProps, HTMLDivElement>;
|
|
42
|
-
|
|
43
|
-
export { FlexVerticalAlignment as F, GapSize as G, MarginAutoAlignment as M, FlexHorizontalAlignment as a, FlexBoxProps as b, FlexBox as c };
|
package/_internal/20976405.js
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { e as _toConsumableArray } from './6340c129.js';
|
|
2
|
-
import { useEffect } from 'react';
|
|
3
|
-
|
|
4
|
-
var useRovingTabIndex = function useRovingTabIndex(_ref) {
|
|
5
|
-
var parentRef = _ref.parentRef,
|
|
6
|
-
elementSelector = _ref.elementSelector,
|
|
7
|
-
keepTabIndex = _ref.keepTabIndex,
|
|
8
|
-
onElementFocus = _ref.onElementFocus,
|
|
9
|
-
_ref$extraDependencie = _ref.extraDependencies,
|
|
10
|
-
extraDependencies = _ref$extraDependencie === void 0 ? [] : _ref$extraDependencie;
|
|
11
|
-
useEffect(function () {
|
|
12
|
-
var parent = parentRef === null || parentRef === void 0 ? void 0 : parentRef.current;
|
|
13
|
-
|
|
14
|
-
if (!parent) {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
var elements = parent.querySelectorAll(elementSelector);
|
|
19
|
-
var initialFocusableElement = parent === null || parent === void 0 ? void 0 : parent.querySelector("".concat(elementSelector, "[tabindex=\"0\"]"));
|
|
20
|
-
|
|
21
|
-
var handleKeyDown = function handleKeyDown(index) {
|
|
22
|
-
return function (evt) {
|
|
23
|
-
var newTabFocus = index;
|
|
24
|
-
|
|
25
|
-
if (!(evt.key === 'ArrowRight' || evt.key === 'ArrowLeft')) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
if (evt.key === 'ArrowRight') {
|
|
30
|
-
// Move right
|
|
31
|
-
newTabFocus += 1; // If we're at the end, go to the start
|
|
32
|
-
|
|
33
|
-
if (newTabFocus >= elements.length) {
|
|
34
|
-
newTabFocus = 0;
|
|
35
|
-
}
|
|
36
|
-
} else if (evt.key === 'ArrowLeft') {
|
|
37
|
-
// Move left
|
|
38
|
-
newTabFocus -= 1;
|
|
39
|
-
|
|
40
|
-
if (newTabFocus < 0) {
|
|
41
|
-
// If we're at the start, move to the end
|
|
42
|
-
newTabFocus = elements.length - 1;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
var newElement = elements[newTabFocus];
|
|
47
|
-
newElement === null || newElement === void 0 ? void 0 : newElement.focus(); // When an element is focused using roving tab index, trigger the onElementFocus callback
|
|
48
|
-
|
|
49
|
-
if (newElement && onElementFocus) {
|
|
50
|
-
onElementFocus(newElement);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (keepTabIndex) {
|
|
54
|
-
evt.currentTarget.setAttribute('tabindex', '-1');
|
|
55
|
-
newElement === null || newElement === void 0 ? void 0 : newElement.setAttribute('tabindex', '0');
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
if ((elements === null || elements === void 0 ? void 0 : elements.length) > 0) {
|
|
61
|
-
elements.forEach(function (el, key) {
|
|
62
|
-
// if no element has tabindex set to 0, set the first element as focusable
|
|
63
|
-
if (!initialFocusableElement && key === 0) {
|
|
64
|
-
el.setAttribute('tabindex', '0'); // set all other to -1
|
|
65
|
-
} else if (initialFocusableElement !== el) {
|
|
66
|
-
el.setAttribute('tabindex', '-1');
|
|
67
|
-
} // add event listener
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
el.addEventListener('keydown', handleKeyDown(key));
|
|
71
|
-
});
|
|
72
|
-
} // Cleanup listeners
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return function () {
|
|
76
|
-
if ((elements === null || elements === void 0 ? void 0 : elements.length) > 0) {
|
|
77
|
-
elements.forEach(function (el, key) {
|
|
78
|
-
el.removeEventListener('keydown', handleKeyDown(key));
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
83
|
-
[parentRef].concat(_toConsumableArray(extraDependencies)));
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
export { useRovingTabIndex as u };
|
|
87
|
-
//# sourceMappingURL=20976405.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"20976405.js","sources":["../../src/hooks/useRovingTabIndex.tsx"],"sourcesContent":["import { RefObject, useEffect } from 'react';\n\ninterface UseRovingTabIndexOptions {\n parentRef: RefObject<HTMLElement>;\n elementSelector: string;\n keepTabIndex?: boolean;\n /** Action to trigger when an element is focused using roving tab index */\n onElementFocus?: (element: HTMLElement) => void;\n /** List of values to be used as extra dependencies of the useEffect */\n extraDependencies?: any[];\n}\n\nexport const useRovingTabIndex = ({\n parentRef,\n elementSelector,\n keepTabIndex,\n onElementFocus,\n extraDependencies = [],\n}: UseRovingTabIndexOptions): void => {\n useEffect(\n () => {\n const parent = parentRef?.current;\n if (!parent) {\n return undefined;\n }\n\n const elements = parent.querySelectorAll(elementSelector) as NodeListOf<HTMLElement>;\n const initialFocusableElement = parent?.querySelector(`${elementSelector}[tabindex=\"0\"]`);\n\n const handleKeyDown = (index: number) => (evt: KeyboardEvent) => {\n let newTabFocus = index;\n if (!(evt.key === 'ArrowRight' || evt.key === 'ArrowLeft')) {\n return;\n }\n\n if (evt.key === 'ArrowRight') {\n // Move right\n newTabFocus += 1;\n // If we're at the end, go to the start\n if (newTabFocus >= elements.length) {\n newTabFocus = 0;\n }\n } else if (evt.key === 'ArrowLeft') {\n // Move left\n newTabFocus -= 1;\n if (newTabFocus < 0) {\n // If we're at the start, move to the end\n newTabFocus = elements.length - 1;\n }\n }\n const newElement = elements[newTabFocus];\n newElement?.focus();\n\n // When an element is focused using roving tab index, trigger the onElementFocus callback\n if (newElement && onElementFocus) {\n onElementFocus(newElement);\n }\n\n if (keepTabIndex) {\n (evt.currentTarget as HTMLElement).setAttribute('tabindex', '-1');\n newElement?.setAttribute('tabindex', '0');\n }\n };\n\n if (elements?.length > 0) {\n elements.forEach((el, key) => {\n // if no element has tabindex set to 0, set the first element as focusable\n if (!initialFocusableElement && key === 0) {\n el.setAttribute('tabindex', '0');\n // set all other to -1\n } else if (initialFocusableElement !== el) {\n el.setAttribute('tabindex', '-1');\n }\n // add event listener\n el.addEventListener('keydown', handleKeyDown(key) as EventListener);\n });\n }\n\n // Cleanup listeners\n return () => {\n if (elements?.length > 0) {\n elements.forEach((el, key) => {\n el.removeEventListener('keydown', handleKeyDown(key) as EventListener);\n });\n }\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [parentRef, ...extraDependencies],\n );\n};\n"],"names":["useRovingTabIndex","parentRef","elementSelector","keepTabIndex","onElementFocus","extraDependencies","useEffect","parent","current","undefined","elements","querySelectorAll","initialFocusableElement","querySelector","handleKeyDown","index","evt","newTabFocus","key","length","newElement","focus","currentTarget","setAttribute","forEach","el","addEventListener","removeEventListener"],"mappings":"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"}
|
package/_internal/20b0e9a5.d.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
import { k as Comp } from './eca6d4dc.js';
|
|
3
|
-
import { b as FlexBoxProps } from './1b1530a4.js';
|
|
4
|
-
|
|
5
|
-
interface GenericBlockProps extends FlexBoxProps {
|
|
6
|
-
/**
|
|
7
|
-
* Component to use as visual element.
|
|
8
|
-
*/
|
|
9
|
-
figure?: ReactNode;
|
|
10
|
-
/**
|
|
11
|
-
* Actions to set after the main content.
|
|
12
|
-
*/
|
|
13
|
-
actions?: ReactNode;
|
|
14
|
-
/**
|
|
15
|
-
* Main content to display or sections components
|
|
16
|
-
* ({@see GenericBlock.Figure}, {@see GenericBlock.Content} & {@see GenericBlock.Actions})
|
|
17
|
-
*/
|
|
18
|
-
children: ReactNode;
|
|
19
|
-
/**
|
|
20
|
-
* Orientation of the 3 sections
|
|
21
|
-
*/
|
|
22
|
-
orientation?: FlexBoxProps['orientation'];
|
|
23
|
-
/**
|
|
24
|
-
* Horizontal alignment.
|
|
25
|
-
*/
|
|
26
|
-
hAlign?: FlexBoxProps['hAlign'];
|
|
27
|
-
/**
|
|
28
|
-
* Vertical alignment.
|
|
29
|
-
*/
|
|
30
|
-
vAlign?: FlexBoxProps['vAlign'];
|
|
31
|
-
/**
|
|
32
|
-
* The props to forward to the content.
|
|
33
|
-
* By default, the content will have the same alignment as wrapper.
|
|
34
|
-
*/
|
|
35
|
-
contentProps?: Omit<FlexBoxProps, 'children'>;
|
|
36
|
-
/**
|
|
37
|
-
* props to forward to the actions element.
|
|
38
|
-
*/
|
|
39
|
-
actionsProps?: Omit<FlexBoxProps, 'children'>;
|
|
40
|
-
/**
|
|
41
|
-
* props to forward to the figure element.
|
|
42
|
-
*/
|
|
43
|
-
figureProps?: Omit<FlexBoxProps, 'children'>;
|
|
44
|
-
}
|
|
45
|
-
declare type BaseGenericBlock = Comp<GenericBlockProps, HTMLDivElement>;
|
|
46
|
-
/**
|
|
47
|
-
* The GenericBlock is a layout component made of 3 sections that can be
|
|
48
|
-
* displayed either horizontally of vertically with the same gap between each section.
|
|
49
|
-
*
|
|
50
|
-
* The sections are:
|
|
51
|
-
* - `Figure` => A visual element to display before the main content.
|
|
52
|
-
* - `Content` => The main content displayed
|
|
53
|
-
* - `Actions` => One or more actions to set after the element.
|
|
54
|
-
*
|
|
55
|
-
* @see https://www.figma.com/file/lzzrQmsfaXRaOyRfoEogPZ/DS%3A-playground?node-id=1%3A4076
|
|
56
|
-
*/
|
|
57
|
-
declare const BaseGenericBlock: BaseGenericBlock;
|
|
58
|
-
interface GenericBlock extends BaseGenericBlock {
|
|
59
|
-
/**
|
|
60
|
-
* Use `GenericBlock.Figure` component as children of the `GenericBlock` component as an alternative way to inject
|
|
61
|
-
* the "figure" section of the block (instead of using `figure` and `figureProps` props).
|
|
62
|
-
*/
|
|
63
|
-
Figure: Comp<FlexBoxProps>;
|
|
64
|
-
/**
|
|
65
|
-
* Use `GenericBlock.Content` component as children of the `GenericBlock` component as an alternative way to inject
|
|
66
|
-
* the "content" section of the block (instead of using `content` and `contentProps` props).
|
|
67
|
-
*/
|
|
68
|
-
Content: Comp<FlexBoxProps>;
|
|
69
|
-
/**
|
|
70
|
-
* Use `GenericBlock.Actions` component as children of the `GenericBlock` component as an alternative way to inject
|
|
71
|
-
* the "actions" section of the block (instead of using `actions` and `actionsProps` props).
|
|
72
|
-
*/
|
|
73
|
-
Actions: Comp<FlexBoxProps>;
|
|
74
|
-
}
|
|
75
|
-
declare const GenericBlock: GenericBlock;
|
|
76
|
-
|
|
77
|
-
export { GenericBlockProps as G, GenericBlock as a };
|
package/_internal/26cd9c63.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { b as _objectWithoutProperties, c as _extends, a as _defineProperty } from './6340c129.js';
|
|
2
|
-
import { Size, Theme, ColorPalette } from '../components.js';
|
|
3
|
-
import React, { useCallback, forwardRef } from 'react';
|
|
4
|
-
import { g as getRootClassName, c as classnames, h as handleBasicClasses, o as onEnterPressed } from './fd867c9d.js';
|
|
5
|
-
import isFunction from 'lodash/isFunction';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Wrap mouse event handler to stop event propagation.
|
|
9
|
-
*
|
|
10
|
-
* @param handler The mouse handler to wrap.
|
|
11
|
-
* @return Mouse handler stopping propagation.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
function useStopPropagation(handler) {
|
|
15
|
-
return useCallback(function (evt) {
|
|
16
|
-
if (!evt || !isFunction(handler)) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
handler(evt);
|
|
21
|
-
evt.stopPropagation();
|
|
22
|
-
}, [handler]);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Chip sizes.
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Component display name.
|
|
31
|
-
*/
|
|
32
|
-
var COMPONENT_NAME = 'Chip';
|
|
33
|
-
/**
|
|
34
|
-
* Component default class name and class prefix.
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
var CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
38
|
-
/**
|
|
39
|
-
* Component default props.
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
var DEFAULT_PROPS = {
|
|
43
|
-
size: Size.m,
|
|
44
|
-
theme: Theme.light
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* Chip component.
|
|
48
|
-
*
|
|
49
|
-
* @param props Component props.
|
|
50
|
-
* @param ref Component ref.
|
|
51
|
-
* @return React element.
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
var Chip = forwardRef(function (props, ref) {
|
|
55
|
-
var after = props.after,
|
|
56
|
-
before = props.before,
|
|
57
|
-
children = props.children,
|
|
58
|
-
className = props.className,
|
|
59
|
-
color = props.color,
|
|
60
|
-
disabled = props.disabled,
|
|
61
|
-
isClickable = props.isClickable,
|
|
62
|
-
_props$isDisabled = props.isDisabled,
|
|
63
|
-
isDisabled = _props$isDisabled === void 0 ? disabled : _props$isDisabled,
|
|
64
|
-
isHighlighted = props.isHighlighted,
|
|
65
|
-
isSelected = props.isSelected,
|
|
66
|
-
onAfterClick = props.onAfterClick,
|
|
67
|
-
onBeforeClick = props.onBeforeClick,
|
|
68
|
-
onClick = props.onClick,
|
|
69
|
-
size = props.size,
|
|
70
|
-
theme = props.theme,
|
|
71
|
-
forwardedProps = _objectWithoutProperties(props, ["after", "before", "children", "className", "color", "disabled", "isClickable", "isDisabled", "isHighlighted", "isSelected", "onAfterClick", "onBeforeClick", "onClick", "size", "theme"]);
|
|
72
|
-
|
|
73
|
-
var hasAfterClick = isFunction(onAfterClick);
|
|
74
|
-
var hasBeforeClick = isFunction(onBeforeClick);
|
|
75
|
-
var hasOnClick = isFunction(onClick); // Adapt color to the theme.
|
|
76
|
-
|
|
77
|
-
var chipColor = color || (theme === Theme.light ? ColorPalette.dark : ColorPalette.light);
|
|
78
|
-
var handleOnBeforeClick = useStopPropagation(onBeforeClick);
|
|
79
|
-
var handleOnAfterClick = useStopPropagation(onAfterClick);
|
|
80
|
-
return (// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
81
|
-
React.createElement("a", _extends({}, forwardedProps, {
|
|
82
|
-
ref: ref,
|
|
83
|
-
className: classnames(className, handleBasicClasses({
|
|
84
|
-
clickable: Boolean(hasOnClick) || isClickable,
|
|
85
|
-
color: chipColor,
|
|
86
|
-
isDisabled: isDisabled,
|
|
87
|
-
hasAfter: Boolean(after),
|
|
88
|
-
hasBefore: Boolean(before),
|
|
89
|
-
highlighted: Boolean(isHighlighted),
|
|
90
|
-
prefix: CLASSNAME,
|
|
91
|
-
selected: Boolean(isSelected),
|
|
92
|
-
size: size,
|
|
93
|
-
unselected: Boolean(!isSelected)
|
|
94
|
-
})),
|
|
95
|
-
role: hasOnClick ? 'button' : undefined,
|
|
96
|
-
tabIndex: isDisabled || !hasOnClick ? -1 : 0,
|
|
97
|
-
"aria-disabled": hasOnClick && isDisabled || undefined,
|
|
98
|
-
onClick: hasOnClick ? onClick : undefined,
|
|
99
|
-
onKeyDown: hasOnClick ? onEnterPressed(onClick) : undefined
|
|
100
|
-
}), before && // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
|
|
101
|
-
React.createElement("div", {
|
|
102
|
-
className: classnames("".concat(CLASSNAME, "__before"), _defineProperty({}, "".concat(CLASSNAME, "__before--is-clickable"), hasBeforeClick)),
|
|
103
|
-
onClick: handleOnBeforeClick
|
|
104
|
-
}, before), React.createElement("div", {
|
|
105
|
-
className: "".concat(CLASSNAME, "__label")
|
|
106
|
-
}, children), after && // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
|
|
107
|
-
React.createElement("div", {
|
|
108
|
-
className: classnames("".concat(CLASSNAME, "__after"), _defineProperty({}, "".concat(CLASSNAME, "__after--is-clickable"), hasAfterClick)),
|
|
109
|
-
onClick: handleOnAfterClick
|
|
110
|
-
}, after))
|
|
111
|
-
);
|
|
112
|
-
});
|
|
113
|
-
Chip.displayName = COMPONENT_NAME;
|
|
114
|
-
Chip.className = CLASSNAME;
|
|
115
|
-
Chip.defaultProps = DEFAULT_PROPS;
|
|
116
|
-
|
|
117
|
-
export { Chip as C };
|
|
118
|
-
//# sourceMappingURL=26cd9c63.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"26cd9c63.js","sources":["../../src/hooks/useStopPropagation.ts","../../src/components/chip/Chip.tsx"],"sourcesContent":["import isFunction from 'lodash/isFunction';\nimport { MouseEventHandler, useCallback } from 'react';\n\n/**\n * Wrap mouse event handler to stop event propagation.\n *\n * @param handler The mouse handler to wrap.\n * @return Mouse handler stopping propagation.\n */\nexport function useStopPropagation(handler?: MouseEventHandler): MouseEventHandler {\n return useCallback(\n (evt) => {\n if (!evt || !isFunction(handler)) {\n return;\n }\n handler(evt);\n evt.stopPropagation();\n },\n [handler],\n );\n}\n","import { Color, ColorPalette, Size, Theme } from '@lumx/react';\nimport { useStopPropagation } from '@lumx/react/hooks/useStopPropagation';\n\nimport { Comp, GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { onEnterPressed } from '@lumx/react/utils/event';\n\nimport classNames from 'classnames';\n\nimport isFunction from 'lodash/isFunction';\nimport React, { forwardRef, MouseEventHandler, ReactNode } from 'react';\n\n/**\n * Chip sizes.\n */\ntype ChipSize = Extract<Size, 's' | 'm'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface ChipProps extends GenericProps, HasTheme {\n /** A component to be rendered after the content. */\n after?: ReactNode;\n /** A component to be rendered before the content. */\n before?: ReactNode;\n /** Color variant. */\n color?: Color;\n /** Whether the component is clickable or not. */\n isClickable?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the chip is currently in a highlighted state or not. */\n isHighlighted?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Size variant. */\n size?: ChipSize;\n /** On \"after\" element clicked callback. */\n onAfterClick?: MouseEventHandler;\n /** On \"before\" element clicked callback. */\n onBeforeClick?: MouseEventHandler;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Chip';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ChipProps> = {\n size: Size.m,\n theme: Theme.light,\n};\n\n/**\n * Chip component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Chip: Comp<ChipProps, HTMLAnchorElement> = forwardRef((props, ref) => {\n const {\n after,\n before,\n children,\n className,\n color,\n disabled,\n isClickable,\n isDisabled = disabled,\n isHighlighted,\n isSelected,\n onAfterClick,\n onBeforeClick,\n onClick,\n size,\n theme,\n ...forwardedProps\n } = props;\n const hasAfterClick = isFunction(onAfterClick);\n const hasBeforeClick = isFunction(onBeforeClick);\n const hasOnClick = isFunction(onClick);\n\n // Adapt color to the theme.\n const chipColor = color || (theme === Theme.light ? ColorPalette.dark : ColorPalette.light);\n\n const handleOnBeforeClick = useStopPropagation(onBeforeClick);\n const handleOnAfterClick = useStopPropagation(onAfterClick);\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <a\n {...forwardedProps}\n ref={ref}\n className={classNames(\n className,\n handleBasicClasses({\n clickable: Boolean(hasOnClick) || isClickable,\n color: chipColor,\n isDisabled,\n hasAfter: Boolean(after),\n hasBefore: Boolean(before),\n highlighted: Boolean(isHighlighted),\n prefix: CLASSNAME,\n selected: Boolean(isSelected),\n size,\n unselected: Boolean(!isSelected),\n }),\n )}\n role={hasOnClick ? 'button' : undefined}\n tabIndex={isDisabled || !hasOnClick ? -1 : 0}\n aria-disabled={(hasOnClick && isDisabled) || undefined}\n onClick={hasOnClick ? onClick : undefined}\n onKeyDown={hasOnClick ? onEnterPressed(onClick) : undefined}\n >\n {before && (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <div\n className={classNames(`${CLASSNAME}__before`, {\n [`${CLASSNAME}__before--is-clickable`]: hasBeforeClick,\n })}\n onClick={handleOnBeforeClick}\n >\n {before}\n </div>\n )}\n\n <div className={`${CLASSNAME}__label`}>{children}</div>\n\n {after && (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <div\n className={classNames(`${CLASSNAME}__after`, {\n [`${CLASSNAME}__after--is-clickable`]: hasAfterClick,\n })}\n onClick={handleOnAfterClick}\n >\n {after}\n </div>\n )}\n </a>\n );\n});\nChip.displayName = COMPONENT_NAME;\nChip.className = CLASSNAME;\nChip.defaultProps = DEFAULT_PROPS;\n"],"names":["useStopPropagation","handler","useCallback","evt","isFunction","stopPropagation","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","size","Size","m","theme","Theme","light","Chip","forwardRef","props","ref","after","before","children","className","color","disabled","isClickable","isDisabled","isHighlighted","isSelected","onAfterClick","onBeforeClick","onClick","forwardedProps","hasAfterClick","hasBeforeClick","hasOnClick","chipColor","ColorPalette","dark","handleOnBeforeClick","handleOnAfterClick","classNames","handleBasicClasses","clickable","Boolean","hasAfter","hasBefore","highlighted","prefix","selected","unselected","undefined","onEnterPressed","displayName","defaultProps"],"mappings":"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"}
|