koval-ui 0.12.21 → 0.12.23
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/README.md +2 -0
- package/dist/index.d.ts +33 -33
- package/dist/index.js +1475 -1475
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +2 -2
- package/dist/index.umd.cjs.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +12 -12
package/dist/index.umd.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.cjs","sources":["../src/lib/Theme/theme.ts","../src/lib/Theme/themePodil.ts","../src/lib/Theme/themeDnipro.ts","../src/internal/hooks/useInternalRef.ts","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/error.svg?react","../src/internal/Icons/IconError.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/check.svg?react","../src/internal/Icons/IconValid.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/progress_activity.svg?react","../src/internal/Icons/IconLoader.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/attach_file.svg?react","../src/internal/Icons/IconFile.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/calendar_month.svg?react","../src/internal/Icons/IconCalendar.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/palette.svg?react","../src/internal/Icons/IconPalette.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/nest_clock_farsight_analog.svg?react","../src/internal/Icons/IconClock.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/expand_all.svg?react","../src/internal/Icons/IconExpand.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/collapse_all.svg?react","../src/internal/Icons/IconCollapse.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/arrow_drop_up.svg?react","../src/internal/Icons/IconArrowUp.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/arrow_drop_down.svg?react","../src/internal/Icons/IconArrowDown.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/close.svg?react","../src/internal/Icons/IconClose.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/arrow_left.svg?react","../src/internal/Icons/IconArrowLeft.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/arrow_right.svg?react","../src/internal/Icons/IconArrowRight.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/compare_arrows.svg?react","../src/internal/Icons/IconScroll.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/warning.svg?react","../src/internal/Icons/IconWarning.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/info.svg?react","../src/internal/Icons/IconInfo.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/check_circle.svg?react","../src/internal/Icons/IconSuccess.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/skip_next.svg?react","../src/internal/Icons/IconForward.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/skip_previous.svg?react","../src/internal/Icons/IconBackward.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/subdirectory_arrow_left.svg?react","../src/internal/Icons/IconEnter.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/dangerous.svg?react","../src/internal/Icons/IconDanger.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/link.svg?react","../src/internal/Icons/IconLink.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/menu.svg?react","../src/internal/Icons/IconMenu.tsx","../src/internal/hooks/useEventListener.ts","../src/internal/hooks/useFocusTrap.ts","../src/internal/Actions/ActionTypes.ts","../src/internal/Actions/ActionButton.tsx","../src/internal/Actions/ActionsTree.tsx","../src/internal/Actions/Variants.ts","../src/internal/Actions/Actions.tsx","../src/internal/hooks/useIsFirstRender.tsx","../src/internal/hooks/useSafeLayoutEffect.ts","../src/internal/Transitions/Transition.tsx","../src/internal/Transitions/Fade.tsx","../src/internal/Transitions/SlideBottom.tsx","../src/internal/Transitions/SlideLeft.tsx","../src/internal/Transitions/SlideRight.tsx","../src/lib/Dialog/TransitionDialog.tsx","../src/internal/utils/last.ts","../src/internal/utils/without.ts","../src/lib/Dialog/DialogReducer.ts","../src/lib/Dialog/DialogContext.ts","../src/lib/Dialog/useDialogState.tsx","../src/lib/Dialog/Dialog.tsx","../src/internal/store/createStoreProvider.tsx","../src/lib/Dialog/DialogProvider.ts","../src/lib/Notification/NotificationReducer.ts","../src/lib/Notification/NotificationContext.ts","../src/lib/Notification/useRegisterNotification.ts","../src/lib/Notification/useNotificationProps.ts","../src/lib/Notification/useNotificationInstance.ts","../src/lib/Notification/useNotificationState.tsx","../src/lib/Notification/Notification.tsx","../src/lib/Notification/NotificationProvider.ts","../src/internal/Portal/Portal.tsx","../src/internal/hooks/useInterval.ts","../src/lib/Toast/ToastReducer.ts","../src/lib/Toast/ToastContext.ts","../src/lib/Toast/useToastState.tsx","../src/lib/Toast/Toast.tsx","../src/lib/Toast/ToastProvider.ts","../src/internal/hooks/useDismiss.ts","../src/lib/Drawer/DrawerReducer.ts","../src/lib/Drawer/DrawerContext.ts","../src/lib/Drawer/useDrawerState.tsx","../src/lib/Drawer/Drawer.tsx","../src/lib/Drawer/DrawerProvider.ts","../src/internal/utils/convertThemeVarName.ts","../src/lib/Provider/Provider.tsx","../src/internal/hooks/useLinkRefs.ts","../src/lib/Layout/SizeTypes.tsx","../src/lib/Layout/Col.tsx","../src/lib/Layout/Row.tsx","../src/lib/Layout/Grid.tsx","../src/lib/Layout/Page.tsx","../src/lib/Layout/Main.tsx","../src/lib/Layout/Footer.tsx","../src/lib/Layout/Sidebar.tsx","../src/lib/Layout/Header.tsx","../src/lib/Layout/Content.tsx","../src/lib/Button/Button.tsx","../src/lib/Form/FormReducer.ts","../src/lib/Form/FormContext.tsx","../src/lib/Form/withFormProvider.tsx","../src/lib/Form/useFormContext.ts","../src/lib/Form/Form.tsx","../src/internal/hooks/useInternalId.ts","../src/lib/FormField/FormField.tsx","../src/internal/inputs/ValidationProps.ts","../src/internal/inputs/defaultValidator.ts","../src/internal/inputs/useHandleFormReset.ts","../src/internal/inputs/getFormState.ts","../src/internal/inputs/useValidation.ts","../src/lib/InputCheckbox/InputCheckbox.tsx","../src/lib/InputGroup/InputGroup.tsx","../src/lib/InputRadio/InputRadio.tsx","../src/lib/InputText/InputText.tsx","../src/lib/InputDate/InputDate.tsx","../src/lib/InputColor/invertColor.ts","../src/lib/InputColor/InputColor.tsx","../src/lib/InputTime/InputTime.tsx","../src/internal/hooks/useCallbackRef.ts","../src/internal/hooks/useControllableState.ts","../src/lib/InputRange/InputRange.tsx","../src/lib/InputFile/InputFile.tsx","../src/lib/InputNumber/InputNumber.tsx","../src/lib/Textarea/Textarea.tsx","../src/lib/Select/Select.tsx","../src/lib/Text/Text.tsx","../src/lib/Text/Paragraph.tsx","../src/lib/Text/Lists.tsx","../src/lib/Text/InlineElements.tsx","../src/lib/Text/Headers.tsx","../src/lib/Text/BlockQuote.tsx","../src/lib/Text/Preformatted.tsx","../src/lib/Text/Table.tsx","../src/lib/Text/Meter.tsx","../src/lib/Figure/Figure.tsx","../src/lib/Skeleton/normalizeUnit.ts","../src/lib/Skeleton/SkeletonShape.tsx","../src/lib/Skeleton/SkeletonAction.tsx","../src/lib/Skeleton/SkeletonFrame.tsx","../src/internal/utils/createArray.ts","../src/lib/Skeleton/SkeletonText.tsx","../src/lib/Picture/Picture.tsx","../src/internal/hooks/useResizeObserver.ts","../src/lib/Carousel/Cell.tsx","../src/lib/Carousel/Dots.tsx","../src/internal/hooks/useIsInViewport.tsx","../src/internal/hooks/useDocumentVisible.ts","../src/lib/Carousel/useAutoRotate.ts","../src/lib/Carousel/Carousel.tsx","../src/internal/hooks/useIsOverflow.ts","../src/lib/Tabs/TabButton.tsx","../src/lib/Tabs/Tabs.tsx","../src/lib/Tabs/Tab.tsx","../src/lib/Menu/Variants.ts","../src/lib/Menu/Menu.tsx","../src/lib/Menu/MenuActions.tsx","../src/lib/Tooltip/Arrow.tsx","../src/lib/Tooltip/Tooltip.tsx","../src/lib/Pagination/PageButton.tsx","../src/lib/Pagination/usePagePaginationState.ts","../src/lib/Pagination/Pagination.tsx","../src/lib/Card/Card.tsx","../src/internal/hooks/useMatchMedia.tsx","../src/lib/Navigation/NavList.tsx","../src/lib/Navigation/NavLink.tsx","../src/lib/Navigation/NavBrand.tsx","../src/lib/Navigation/NavPanel.tsx","../src/lib/Progress/Progress.tsx","../src/lib/Breadcrumbs/Breadcrumbs.tsx","../src/lib/ButtonGroup/ButtonGroup.tsx"],"sourcesContent":["export const theme = {\n fontFamily: `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial,\n \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`,\n fontFamilyMonospace: `\"SF Mono\", \"Courier New\", FreeMono, \"Nimbus Mono PS\", Cousine, monospace`,\n sizeUnit: '6px',\n inputWidth: '240px',\n inputHeight: '38px',\n // font sizes\n fontSizeH1: '36px',\n fontSizeH2: '28px',\n fontSizeH3: '24px',\n fontSizeH4: '22px',\n fontSizeH5: '18px',\n fontSizeH6: '16px',\n fontSizeText: '16px',\n fontSizeMedium: '16px',\n fontSizeLarge: '18px',\n fontSizeSmall: '14px',\n fontSizeExtraSmall: '12px',\n // font weights\n fontWeightNormal: 400,\n fontWeightBolder: 500,\n fontWeightBold: 600,\n // colors\n textColor: '#111111',\n background000: 'white',\n background100: '#dedede',\n background200: '#bdbdbd',\n background300: '#808080',\n background400: '#525252',\n background500: '#363636',\n background600: '#000000',\n // theme\n colorDo: '#e3a075',\n colorRe: '#61483a',\n colorMi: '#ffdea6',\n colorFa: '#20b2aa',\n colorSol: '#597480',\n colorLa: '#99DFFF',\n // info colors\n colorError: '#FF004F',\n colorWarning: '#FFC72C',\n colorSuccess: '#3c9d74',\n colorAction: '#2100FF',\n // shadow config\n shadowColor: 'color-mix(in srgb, var(--fg-background-600) 11%, transparent)',\n shadow050: '3px 3px 3px 0 var(--fg-shadow-color)',\n shadow100: '6px 6px 3px 0 var(--fg-shadow-color)',\n shadow200: '9px 9px 3px 0 var(--fg-shadow-color)',\n textShadow: '1px 1px 1px rgb(0 0 0 / 66%)',\n // border radii\n borderRadius100: '2px',\n borderRadius200: '3px',\n borderRadius300: '6px',\n borderRadius400: '9px',\n borderRadius500: '12px',\n // border widths\n borderWidth100: '1px',\n borderWidth200: '2px',\n borderWidth300: '3px',\n timeSM: '333ms',\n timeMD: '666ms',\n timeLG: '999ms',\n timeXL: '1666ms',\n};\n\nexport type ThemeType = Partial<typeof theme>;\n","import {theme as themeInternal} from './theme.ts';\nimport type {PublicThemeType} from './PublicThemeType.ts';\n\nexport const theme = {\n fontFamily: themeInternal.fontFamily,\n fontFamilyMonospace: themeInternal.fontFamilyMonospace,\n fontSizeH1: themeInternal.fontSizeH1,\n fontSizeH2: themeInternal.fontSizeH2,\n fontSizeH3: themeInternal.fontSizeH3,\n fontSizeH4: themeInternal.fontSizeH4,\n fontSizeH5: themeInternal.fontSizeH5,\n fontSizeH6: themeInternal.fontSizeH6,\n fontSizeText: themeInternal.fontSizeText,\n fontSizeMedium: themeInternal.fontSizeMedium,\n fontSizeLarge: themeInternal.fontSizeLarge,\n fontSizeSmall: themeInternal.fontSizeSmall,\n fontWeightNormal: themeInternal.fontWeightNormal,\n fontWeightBolder: themeInternal.fontWeightBolder,\n fontWeightBold: themeInternal.fontWeightBold,\n textColor: themeInternal.textColor,\n background000: themeInternal.background000,\n background100: themeInternal.background100,\n background200: themeInternal.background200,\n background300: themeInternal.background300,\n background400: themeInternal.background400,\n background500: themeInternal.background500,\n background600: themeInternal.background600,\n colorDo: themeInternal.colorDo,\n colorRe: themeInternal.colorRe,\n colorMi: themeInternal.colorMi,\n colorFa: themeInternal.colorFa,\n colorSol: themeInternal.colorSol,\n colorLa: themeInternal.colorLa,\n colorError: themeInternal.colorError,\n colorWarning: themeInternal.colorWarning,\n colorSuccess: themeInternal.colorSuccess,\n colorAction: themeInternal.colorAction,\n} as PublicThemeType;\n","import {theme as themeInternal} from './theme.ts';\nimport type {PublicThemeType} from './PublicThemeType.ts';\n\nexport const theme = {\n fontFamily: themeInternal.fontFamily,\n fontFamilyMonospace: themeInternal.fontFamilyMonospace,\n fontSizeH1: themeInternal.fontSizeH1,\n fontSizeH2: themeInternal.fontSizeH2,\n fontSizeH3: themeInternal.fontSizeH3,\n fontSizeH4: themeInternal.fontSizeH4,\n fontSizeH5: themeInternal.fontSizeH5,\n fontSizeH6: themeInternal.fontSizeH6,\n fontSizeText: themeInternal.fontSizeText,\n fontSizeMedium: themeInternal.fontSizeMedium,\n fontSizeLarge: themeInternal.fontSizeLarge,\n fontSizeSmall: themeInternal.fontSizeSmall,\n fontWeightNormal: themeInternal.fontWeightNormal,\n fontWeightBolder: themeInternal.fontWeightBolder,\n fontWeightBold: themeInternal.fontWeightBold,\n textColor: themeInternal.textColor,\n background000: themeInternal.background000,\n background100: themeInternal.background100,\n background200: themeInternal.background200,\n background300: themeInternal.background300,\n background400: themeInternal.background400,\n background500: themeInternal.background500,\n background600: themeInternal.background600,\n colorDo: themeInternal.colorFa,\n colorRe: themeInternal.colorSol,\n colorMi: themeInternal.colorLa,\n colorFa: themeInternal.colorDo,\n colorSol: themeInternal.colorRe,\n colorLa: themeInternal.colorMi,\n colorError: themeInternal.colorError,\n colorWarning: themeInternal.colorWarning,\n colorSuccess: themeInternal.colorSuccess,\n colorAction: themeInternal.colorAction,\n} as PublicThemeType;\n","import type {ForwardedRef} from 'react';\nimport {useImperativeHandle, useRef} from 'react';\n\n/** This hook allows to use forwarded ref inside component even if it's not provided. */\nexport const useInternalRef = <TElement = HTMLElement>(outerRef: ForwardedRef<TElement>) => {\n const innerRef = useRef<TElement | null>(null);\n useImperativeHandle<TElement | null, TElement | null>(outerRef, () => innerRef.current, [\n innerRef,\n ]);\n return innerRef;\n};\n","import * as React from \"react\";\nconst SvgError = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M479.75-255q24.25 0 39.75-14.75 15.5-14.76 15.5-39Q535-333 519.75-349q-15.26-16-39.5-16-24.25 0-39.75 15.98T425-308.79q0 24.25 15.25 39.02Q455.51-255 479.75-255ZM436-432h94v-270h-94v270Zm44.4 377q-88.87 0-166.12-33.08-77.25-33.09-135.18-91.02-57.93-57.93-91.02-135.12Q55-391.41 55-480.36q0-88.96 33.08-166.29 33.09-77.32 90.86-134.81 57.77-57.48 135.03-91.01Q391.24-906 480.28-906t166.49 33.45q77.44 33.46 134.85 90.81t90.89 134.87Q906-569.34 906-480.27q0 89.01-33.53 166.25t-91.01 134.86q-57.49 57.62-134.83 90.89Q569.28-55 480.4-55Zm.1-94q137.5 0 234-96.37T811-480.5q0-137.5-96.31-234T479.5-811q-137.5 0-234 96.31T149-479.5q0 137.5 96.37 234T480.5-149Zm-.5-331Z\" }));\nexport default SvgError;\n","import type {FC, SVGProps} from 'react';\nimport Error from '@material-symbols/svg-700/sharp/error.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconError: FC<Props> = ({className, ...restProps}) => {\n return <Error className={classNames(classes.icon, classes.error, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgCheck = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M378-222 130-470l68-68 180 180 383-383 68 68-451 451Z\" }));\nexport default SvgCheck;\n","import type {FC, SVGProps} from 'react';\nimport Check from '@material-symbols/svg-700/sharp/check.svg?react';\nimport classNames from 'classnames';\n\nimport classes from '@/internal/Icons/Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconValid: FC<Props> = ({className, ...restProps}) => {\n return <Check className={classNames(classes.icon, classes.valid, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgProgressActivity = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M480-55q-90.2 0-167.57-32.58-77.37-32.57-134.82-90.03-57.46-57.45-90.03-134.82Q55-389.8 55-480q0-89.87 32.56-167.25 32.57-77.37 89.87-135.11 57.31-57.74 134.79-90.69Q389.7-906 480-906v95q-138.33 0-234.66 96.27Q149-618.46 149-480.23 149-342 245.27-245.5t234.5 96.5Q618-149 714.5-245.34 811-341.67 811-480h95q0 90.3-33.01 167.79-33.02 77.5-90.5 134.85Q725-120 647.5-87.5 570.01-55 480-55Z\" }));\nexport default SvgProgressActivity;\n","import type {FC, SVGProps} from 'react';\nimport Loader from '@material-symbols/svg-700/sharp/progress_activity.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconLoader: FC<Props> = ({className, ...restProps}) => {\n return (\n <Loader\n className={classNames(classes.icon, classes.rotation, classes.loading, className)}\n {...restProps}\n />\n );\n};\n","import * as React from \"react\";\nconst SvgAttachFile = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M767-319.26Q767-206 684.32-130.5 601.65-55 487.32-55 373-55 291-130.5T209-319v-396q0-81.42 59.5-136.21Q328-906 409.76-906q81.77 0 141 54.79Q610-796.42 610-715v376q0 48.91-36.5 82.95Q537-222 487.15-222q-49.84 0-85.5-33.72Q366-289.44 366-339v-370h87v370q0 13 10.29 21.5t24.64 8.5q14.35 0 24.71-8.35Q523-325.7 523-339v-375q1-45.26-33-75.13Q456-819 409.79-819q-46.21 0-80 29.43T296-715v396q1 77.25 57.47 127.63Q409.94-141 489-141q77.67 0 134.83-50.5Q681-242 680-319v-419h87v418.74Z\" }));\nexport default SvgAttachFile;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/attach_file.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconFile: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgCalendarMonth = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M434-394v-92h92v92h-92Zm-160 0v-92h92v92h-92Zm320 0v-92h92v92h-92ZM434-234v-92h92v92h-92Zm-160 0v-92h92v92h-92Zm320 0v-92h92v92h-92ZM95-55v-791h150.2v-60H327v60h306v-60h82.2v60H866v791H95Zm94-94h582v-421H189v421Zm0-481h582v-121H189v121Zm0 0v-121 121Z\" }));\nexport default SvgCalendarMonth;\n","import type {FC, SVGProps} from 'react';\nimport Calendar from '@material-symbols/svg-700/sharp/calendar_month.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconCalendar: FC<Props> = ({className, ...restProps}) => {\n return <Calendar className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgPalette = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M480-55q-87.04 0-164.52-33.5T180-180q-58-58-91.5-135.46Q55-392.92 55-479.93 55-570 88.45-647.28q33.44-77.27 92.5-135Q240-840 318.77-873t168.61-33q83.62 0 159.41 28.46 75.79 28.45 133.5 79Q838-748 872-678.8q34 69.2 34 149.8 0 114-64 187t-178 73h-58q-16 0-28 13t-12 29q0 25 10 35t10 31q0 44-29.8 75T480-55Zm0-425Zm-224 26q20 0 35-15t15-35q0-20-15-35t-35-15q-20 0-35 15t-15 35q0 20 15 35t35 15Zm121.5-163q20.5 0 35.5-15t15-35q0-21-15-35.5T378-717q-21 0-35.5 14.5t-14.5 35q0 20.5 14.5 35.5t35 15Zm205 0q20.5 0 35.5-15t15-35q0-21-15-35.5T583-717q-21 0-35.5 14.5t-14.5 35q0 20.5 14.5 35.5t35 15ZM707-454q20 0 35-15t15-35q0-20-15-35t-35-15q-21 0-35.5 15T657-504q0 20 14.5 35t35.5 15ZM476-149q7.75 0 11.88-3.55 4.12-3.54 4.12-12.01 0-14.44-15-23.69-15-9.25-15-47.75 0-49.17 32.98-88.09Q527.96-363 576.75-363H664q74 0 110.5-44T811-523q0-132-98.59-210-98.6-78-224.83-78-141.68 0-240.13 96.37Q149-618.26 149-479.52 149-342 244.96-245.5T476-149Z\" }));\nexport default SvgPalette;\n","import type {FC, SVGProps} from 'react';\nimport Palette from '@material-symbols/svg-700/sharp/palette.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconPalette: FC<Props> = ({className, ...restProps}) => {\n return <Palette className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgNestClockFarsightAnalog = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M585-285 433-437v-214h94v174.41L651-353l-66 68ZM433-726v-124h94v124h-94Zm293 293v-94h124v94H726ZM433-110v-125h94v125h-94ZM110-433v-94h125v94H110ZM480.4-55q-88.87 0-166.12-33.08-77.25-33.09-135.18-91.02-57.93-57.93-91.02-135.12Q55-391.41 55-480.36q0-88.96 33.08-166.29 33.09-77.32 90.86-134.81 57.77-57.48 135.03-91.01Q391.24-906 480.28-906t166.49 33.45q77.44 33.46 134.85 90.81t90.89 134.87Q906-569.34 906-480.27q0 89.01-33.53 166.25t-91.01 134.86q-57.49 57.62-134.83 90.89Q569.28-55 480.4-55Zm.1-94q137.5 0 234-96.37T811-480.5q0-137.5-96.31-234T479.5-811q-137.5 0-234 96.31T149-479.5q0 137.5 96.37 234T480.5-149Zm-.5-331Z\" }));\nexport default SvgNestClockFarsightAnalog;\n","import type {FC, SVGProps} from 'react';\nimport Clock from '@material-symbols/svg-700/sharp/nest_clock_farsight_analog.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconClock: FC<Props> = ({className, ...restProps}) => {\n return <Clock className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgExpandAll = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M480-56 216-320l67-67 197 196 197-196 67 67L480-56ZM283-572l-67-68 264-264 264 264-66 68-198-197-197 197Z\" }));\nexport default SvgExpandAll;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/expand_all.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconExpand: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgCollapseAll = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m290-61-66-66 256-256 256 256-66 66-190-190L290-61Zm190-517L224-834l66-66 190 190 190-190 66 66-256 256Z\" }));\nexport default SvgCollapseAll;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/collapse_all.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconCollapse: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgArrowDropUp = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m239-383 241-242 241 242H239Z\" }));\nexport default SvgArrowDropUp;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/arrow_drop_up.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconArrowUp: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgArrowDropDown = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M480-336 239-576h482L480-336Z\" }));\nexport default SvgArrowDropDown;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/arrow_drop_down.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconArrowDown: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgClose = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m249-183-66-66 231-231-231-231 66-66 231 231 231-231 66 66-231 231 231 231-66 66-231-231-231 231Z\" }));\nexport default SvgClose;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/close.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconClose: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgArrowLeft = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M577-239 336-480l241-241v482Z\" }));\nexport default SvgArrowLeft;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/arrow_left.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconArrowLeft: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgArrowRight = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M383-239v-482l241 241-241 241Z\" }));\nexport default SvgArrowRight;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/arrow_right.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconArrowRight: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgCompareArrows = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m294-135-66-66 104-103H55v-95h277L228-503l66-66 218 217-218 217Zm372-257L449-609l217-217 66 66-103 104h277v95H629l103 103-66 66Z\" }));\nexport default SvgCompareArrows;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/compare_arrows.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconScroll: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgWarning = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m18-107 462-799 462 799H18Zm145-84h634L480-739 163-191Zm321.18-48q13.4 0 23.61-10.39Q518-259.78 518-273.18q0-13.4-10.39-23.11-10.39-9.71-23.79-9.71-13.4 0-23.61 9.89Q450-286.22 450-272.82q0 13.4 10.39 23.61Q470.78-239 484.18-239ZM454-348h60v-216h-60v216Zm26-117Z\" }));\nexport default SvgWarning;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/warning.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconWarning: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgInfo = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M442-269h82v-251h-82v251Zm38.07-310q20.43 0 34.18-13.51Q528-606.03 528-626q0-21.95-13.79-35.47Q500.41-675 480.02-675q-21.52 0-34.77 13.53Q432-647.95 432-626.5q0 20.6 13.82 34.05Q459.64-579 480.07-579Zm.33 524q-88.87 0-166.12-33.08-77.25-33.09-135.18-91.02-57.93-57.93-91.02-135.12Q55-391.41 55-480.36q0-88.96 33.08-166.29 33.09-77.32 90.86-134.81 57.77-57.48 135.03-91.01Q391.24-906 480.28-906t166.49 33.45q77.44 33.46 134.85 90.81t90.89 134.87Q906-569.34 906-480.27q0 89.01-33.53 166.25t-91.01 134.86q-57.49 57.62-134.83 90.89Q569.28-55 480.4-55Zm.1-94q137.5 0 234-96.37T811-480.5q0-137.5-96.31-234T479.5-811q-137.5 0-234 96.31T149-479.5q0 137.5 96.37 234T480.5-149Zm-.5-331Z\" }));\nexport default SvgInfo;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/info.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconInfo: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgCheckCircle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m419-283 294-294-66-66-228 228-111-111-65 66 176 177Zm61.14 228Q392-55 314.51-88.08q-77.48-33.09-135.41-91.02-57.93-57.93-91.02-135.27Q55-391.72 55-479.86 55-569 88.08-646.49q33.09-77.48 90.86-134.97 57.77-57.48 135.19-91.01Q391.56-906 479.78-906q89.22 0 166.83 33.45 77.6 33.46 135.01 90.81t90.89 134.87Q906-569.34 906-480q0 88.28-33.53 165.75t-91.01 135.28q-57.49 57.8-134.83 90.89Q569.28-55 480.14-55Zm-.14-94q138 0 234.5-96.37T811-480q0-138-96.5-234.5t-235-96.5q-137.5 0-234 96.5t-96.5 235q0 137.5 96.37 234T480-149Zm0-331Z\" }));\nexport default SvgCheckCircle;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/check_circle.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconSuccess: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSkipNext = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M693-193v-574h94v574h-94Zm-520 0v-574l417 287-417 287Zm94-287Zm0 108 156-108-156-108v216Z\" }));\nexport default SvgSkipNext;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/skip_next.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconForward: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSkipPrevious = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M173-193v-574h94v574h-94Zm614 0L370-480l417-287v574Zm-94-287Zm0 108v-216L537-480l156 108Z\" }));\nexport default SvgSkipPrevious;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/skip_previous.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconBackward: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSubdirectoryArrowLeft = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M394-95 135-357l257-258 68 67-145 146h376v-424h95v518H316l145 146-67 67Z\" }));\nexport default SvgSubdirectoryArrowLeft;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/subdirectory_arrow_left.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconEnter: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgDangerous = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M320-95 95-320v-321l225-225h321l225 225v321L641-95H320Zm41-216 119-119 119 119 51-50-120-119 120-119-51-51-119 120-119-120-50 51 119 119-119 119 50 50Zm-2 122h242l170-170v-242L601-771H359L189-601v242l170 170Zm121-291Z\" }));\nexport default SvgDangerous;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/dangerous.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconDanger: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgLink = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M439-255H280q-94.11 0-159.56-65.42Q55-385.84 55-479.7q0-93.85 65.44-160.07Q185.89-706 280-706h159v95H280.43q-55.51 0-93.47 37.76-37.96 37.77-37.96 93Q149-425 186.96-387q37.96 38 93.47 38H439v94ZM308-444v-72h344v72H308Zm213 189v-94h158.57q55.51 0 93.47-37.76 37.96-37.77 37.96-93Q811-535 773.04-573q-37.96-38-93.47-38H521v-95h159q93.79 0 159.9 66.15 66.1 66.15 66.1 160T839.9-320.5Q773.79-255 680-255H521Z\" }));\nexport default SvgLink;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/link.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconLink: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgMenu = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M95-203v-95h771v95H95Zm0-230v-94h771v94H95Zm0-229v-95h771v95H95Z\" }));\nexport default SvgMenu;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/menu.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconMenu: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import {useEffect, useRef} from 'react';\n\nexport enum EventType {\n keydown = 'keydown',\n mousedown = 'mousedown',\n animationend = 'animationend',\n}\n\nexport const useEventListener = <TEvent, TElement extends HTMLElement | null>(\n eventType: keyof typeof EventType,\n callback: (event: TEvent) => void,\n elementProp?: TElement\n) => {\n const element = elementProp ?? window;\n const callbackRef = useRef(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (element == null) return;\n const handler = ((e: TEvent) =>\n callbackRef.current(e)) as unknown as EventListenerOrEventListenerObject;\n element.addEventListener(eventType, handler);\n\n return () => element.removeEventListener(eventType, handler);\n }, [eventType, element]);\n};\n","import type {KeyboardEvent} from 'react';\nimport {useCallback, useEffect, useRef, useState} from 'react';\n\nimport {EventType, useEventListener} from '@/internal/hooks/useEventListener.ts';\n\n/**\n * React hook. Makes provided HTMLElement retain focus inside. Works conditionally using last parameter.\n */\nexport const useFocusTrap = (element: HTMLElement | null, isOpen: boolean, condition = true) => {\n const focusableElementsRef = useRef<NodeListOf<HTMLElement>>(null);\n const [elements, setElements] = useState<(HTMLElement | null)[]>([]);\n useEffect(() => {\n if (condition && isOpen) {\n // @ts-expect-error TS2540: Cannot assign to current because it is a read-only property.\n focusableElementsRef.current = element?.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n const first = focusableElementsRef.current ? focusableElementsRef.current[0] : null;\n const last = focusableElementsRef.current\n ? focusableElementsRef.current[focusableElementsRef.current.length - 1]\n : null;\n setElements([first, last]);\n }\n }, [isOpen, element, condition]);\n\n useEffect(() => {\n condition && isOpen && elements[0]?.focus();\n }, [condition, elements, isOpen]);\n\n const handleTabKeyPress = useCallback(\n (event: KeyboardEvent) => {\n const [first, last] = elements;\n if (condition && isOpen && event.key === 'Tab') {\n if (event.shiftKey && document.activeElement === first) {\n event.preventDefault();\n last!.focus();\n } else if (!event.shiftKey && document.activeElement === last) {\n event.preventDefault();\n first!.focus();\n }\n }\n },\n [condition, elements, isOpen]\n );\n\n useEventListener(EventType.keydown, handleTabKeyPress);\n};\n","export enum ActionTypes {\n default = 'default',\n success = 'success',\n link = 'link',\n danger = 'danger',\n}\n","import type {FC, HTMLAttributes, MouseEvent} from 'react';\nimport {useMemo} from 'react';\nimport {useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {IconSuccess, IconDanger, IconLink} from '@/internal/Icons';\n\nimport {ActionTypes} from './ActionTypes.ts';\nimport classes from './ActionButton.module.css';\n\nexport type Props = {\n title?: string;\n icon?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n type?: keyof typeof ActionTypes;\n onClick?: (name: MouseEvent<HTMLButtonElement>) => void;\n className?: string;\n};\n\nexport const ActionButton: FC<Props> = ({\n title,\n icon,\n type = 'default',\n onClick = () => {},\n className,\n}) => {\n const ActionIcon = useMemo(\n () =>\n icon ??\n {\n [ActionTypes.success]: IconSuccess,\n [ActionTypes.danger]: IconDanger,\n [ActionTypes.link]: IconLink,\n [ActionTypes.default]: undefined,\n }[type],\n [icon, type]\n );\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n onClick(event);\n },\n [onClick]\n );\n\n return (\n <button\n title={title}\n onClick={handleClick}\n className={classNames(\n classes.actionButton,\n {\n [classes.default]: type === ActionTypes.default,\n [classes.link]: type === ActionTypes.link,\n [classes.success]: type === ActionTypes.success,\n [classes.danger]: type === ActionTypes.danger,\n },\n className\n )}>\n {ActionIcon && <ActionIcon className={classes.actionIcon} />}\n {title && <span className={classes.actionLabel}>{title}</span>}\n </button>\n );\n};\n","import type {FC, ComponentProps} from 'react';\nimport {useId} from 'react';\nimport classNames from 'classnames';\n\nimport {ActionButton} from './ActionButton.tsx';\nimport classes from './ActionButton.module.css';\n\nexport type Props = {\n actions?: (\n | ComponentProps<typeof ActionButton>\n | [ComponentProps<typeof ActionButton>, ComponentProps<typeof ActionButton>]\n )[];\n classNameRow?: string;\n classNameAction?: string;\n actionComponent?: FC<ComponentProps<typeof ActionButton>>;\n};\n\nexport const ActionsTree: FC<Props> = ({\n actions = [],\n classNameRow,\n classNameAction,\n actionComponent: ActionComponent = ActionButton,\n}) => {\n const id = useId();\n return actions.map((actionSlot, i) => {\n if (Array.isArray(actionSlot)) {\n const [left, right] = actionSlot;\n return (\n <div key={`${id}-${i}`} className={classNames(classes.row, classNameRow)}>\n <ActionComponent\n {...left}\n className={classNames(classes.actionButton, classNameAction)}\n />\n <ActionComponent\n {...right}\n className={classNames(classes.actionButton, classNameAction)}\n />\n </div>\n );\n } else {\n return (\n <div key={`${id}-${i}`} className={classNames(classes.row, classNameRow)}>\n <ActionComponent\n {...actionSlot}\n className={classNames(classes.actionButton, classNameAction)}\n />\n </div>\n );\n }\n });\n};\n","export enum Variants {\n primary = 'primary',\n inverted = 'inverted',\n}\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport type {Props as ActionProps} from './ActionButton.tsx';\nimport {ActionsTree} from './ActionsTree.tsx';\nimport {Variants} from './Variants.ts';\nimport classes from './Actions.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Provide an array of actions with callbacks */\n actions?: (ActionProps | [ActionProps, ActionProps])[];\n /** Set design of Actions block */\n variant?: keyof typeof Variants;\n /** Provide CSS class name for action button */\n classNameAction?: string;\n /** Provide CSS class name for action button row container */\n classNameRow?: string;\n };\n\nexport const Actions = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n actions = [],\n variant = Variants.primary,\n classNameAction,\n classNameRow,\n ...nativeProps\n },\n ref\n ) => {\n return (\n <div {...nativeProps} className={classNames(classes.actions, className)} ref={ref}>\n <ActionsTree\n actions={actions}\n classNameAction={classNames(\n {\n [classes.primaryAction]: variant === Variants.primary,\n [classes.invertedAction]: variant === Variants.inverted,\n },\n classNameAction\n )}\n classNameRow={classNames(classes.actionRow, classNameRow)}\n />\n </div>\n );\n }\n);\n\nActions.displayName = 'Actions';\n","import {useRef} from 'react';\n\n/**\n * React hook to detect first render\n * @example\n * const isFirst = useIsFirstRender();\n * useEffect(() => {\n * !isFirst && doSomething();\n * }, [isFirst, doSomething]);\n */\nexport const useIsFirstRender = () => {\n const isFirst = useRef(true);\n if (isFirst.current) {\n isFirst.current = false;\n return true;\n }\n return isFirst.current;\n};\n","import {useEffect, useLayoutEffect} from 'react';\n\nexport function isBrowser() {\n return Boolean(globalThis?.document);\n}\n\nexport const useSafeLayoutEffect = isBrowser() ? useLayoutEffect : useEffect;\n","import type {FC, MutableRefObject, ReactNode} from 'react';\nimport {useMemo} from 'react';\nimport {useState} from 'react';\n\nimport {useEventListener} from '@/internal/hooks/useEventListener.ts';\nimport {useIsFirstRender} from '@/internal/hooks/useIsFirstRender.tsx';\nimport {useSafeLayoutEffect} from '@/internal/hooks/useSafeLayoutEffect.ts';\n\nexport type Props = {\n /** Control transition cycles. true starts enter cycle, false - exit. */\n show?: boolean;\n children?: ReactNode;\n /**\n * React reference to wrapper HTMLElement, transition CSS classes will be applied to\n * @example\n * const ref = useRef();\n * <Transition nodeRef={ref}>\n * <div ref={ref}>{children}</div>\n * </Transition>\n */\n nodeRef: MutableRefObject<HTMLElement | null>;\n /** CSS class to apply when exit transition starts */\n exitClassName?: string;\n /** CSS class to apply when exit transition is over */\n exitDoneClassName?: string;\n /** CSS class to apply when enter transition starts */\n enterClassName?: string;\n /** CSS class to apply when enter transition is over */\n enterDoneClassName?: string;\n /** Define if Transition component should unmount children according to show prop */\n unmountNode?: boolean;\n /** Callback triggers when exit transition is over */\n onExit?: () => void;\n /** Callback triggers when enter transition is over */\n onEnter?: () => void;\n};\n\nexport const Transition: FC<Props> = ({\n show = false,\n children,\n exitClassName = 'transition-exit',\n exitDoneClassName = 'transition-exit-done',\n enterClassName = 'transition-enter',\n enterDoneClassName = 'transition-enter-done',\n nodeRef,\n unmountNode,\n onExit = () => {},\n onEnter = () => {},\n}) => {\n const isFirstRender = useIsFirstRender();\n\n const [shouldRender, setRender] = useState(show);\n\n useSafeLayoutEffect(() => {\n show && setRender(show);\n }, [show]);\n\n const classNames = useMemo(\n () => ({\n enter: enterClassName.split(' '),\n exit: exitClassName.split(' '),\n exitDone: exitDoneClassName.split(' '),\n enterDone: enterDoneClassName.split(' '),\n }),\n [enterClassName, enterDoneClassName, exitClassName, exitDoneClassName]\n );\n\n useSafeLayoutEffect(() => {\n if (show) {\n nodeRef.current?.classList.add(...classNames.enter);\n nodeRef.current?.classList.remove(...classNames.exit);\n nodeRef.current?.classList.remove(...classNames.exitDone);\n } else {\n nodeRef.current?.classList.add(...classNames.exit);\n nodeRef.current?.classList.remove(...classNames.enter);\n nodeRef.current?.classList.remove(...classNames.enterDone);\n }\n }, [classNames, nodeRef, show, shouldRender, isFirstRender]);\n\n const handleAnimationEnd = () => {\n if (show && shouldRender) {\n onEnter();\n nodeRef.current?.classList.remove(...classNames.enter);\n nodeRef.current?.classList.add(...classNames.enterDone);\n } else if (shouldRender) {\n onExit();\n nodeRef.current?.classList.remove(...classNames.exit);\n nodeRef.current?.classList.add(...classNames.exitDone);\n setRender(false);\n }\n };\n\n useEventListener('animationend', handleAnimationEnd, nodeRef.current);\n\n return (shouldRender || !unmountNode) && children;\n};\n","import type {FC} from 'react';\n\nimport type {Props} from './Transition';\nimport {Transition} from './Transition';\nimport classes from './Transitions.module.css';\n\nexport const Fade: FC<\n Omit<Props, 'enterClassName' | 'exitClassName' | 'exitDoneClassName' | 'enterDoneClassName'>\n> = ({children, unmountNode = true, ...restProps}) => {\n return (\n <Transition\n {...restProps}\n exitClassName={classes.fadeExit}\n enterClassName={classes.fadeEnter}\n unmountNode={unmountNode}>\n {children}\n </Transition>\n );\n};\n","import type {FC} from 'react';\n\nimport type {Props} from './Transition';\nimport {Transition} from './Transition';\nimport classes from './Transitions.module.css';\n\nexport const SlideBottom: FC<\n Omit<Props, 'enterClassName' | 'exitClassName' | 'exitDoneClassName' | 'enterDoneClassName'>\n> = ({children, unmountNode = true, ...restProps}) => {\n return (\n <Transition\n {...restProps}\n unmountNode={unmountNode}\n exitClassName={classes.slideBottomExit}\n exitDoneClassName={classes.slideBottomExitDone}\n enterClassName={classes.slideBottomEnter}\n enterDoneClassName={classes.slideBottomEnterDone}>\n {children}\n </Transition>\n );\n};\n","import type {FC} from 'react';\n\nimport type {Props} from './Transition';\nimport {Transition} from './Transition';\nimport classes from './Transitions.module.css';\n\nexport const SlideLeft: FC<\n Omit<Props, 'enterClassName' | 'exitClassName' | 'exitDoneClassName' | 'enterDoneClassName'>\n> = ({children, unmountNode = true, ...restProps}) => {\n return (\n <Transition\n {...restProps}\n unmountNode={unmountNode}\n exitClassName={classes.slideLeftExit}\n enterClassName={classes.slideLeftEnter}\n enterDoneClassName={classes.slideLeftEnterDone}\n exitDoneClassName={classes.slideLeftExitDone}>\n {children}\n </Transition>\n );\n};\n","import type {FC} from 'react';\n\nimport type {Props} from './Transition';\nimport {Transition} from './Transition';\nimport classes from './Transitions.module.css';\n\nexport const SlideRight: FC<\n Omit<Props, 'enterClassName' | 'exitClassName' | 'exitDoneClassName' | 'enterDoneClassName'>\n> = ({children, unmountNode = true, ...restProps}) => {\n return (\n <Transition\n {...restProps}\n unmountNode={unmountNode}\n exitClassName={classes.slideRightExit}\n enterClassName={classes.slideRightEnter}\n enterDoneClassName={classes.slideRightEnterDone}\n exitDoneClassName={classes.slideRightExitDone}>\n {children}\n </Transition>\n );\n};\n","import type {FC, ComponentProps} from 'react';\nimport classNames from 'classnames';\n\nimport {Transition} from '@/internal/Transitions';\nimport classes from '@/internal/Transitions/Transitions.module.css';\n\nexport const TransitionDialog: FC<\n Omit<\n ComponentProps<typeof Transition>,\n 'enterClassName' | 'exitClassName' | 'exitDoneClassName' | 'enterDoneClassName'\n >\n> = ({children, ...restProps}) => {\n return (\n <Transition\n {...restProps}\n exitClassName={classNames(classes.slideTopExit, classes.backdropFadeExit)}\n enterClassName={classNames(classes.slideTopEnter, classes.backdropFadeEnter)}>\n {children}\n </Transition>\n );\n};\n","export const last = <TItem>(arr: TItem[]) => {\n return arr[arr.length - 1];\n};\n","export const without = <TValue>(value: TValue, array: TValue[]) => {\n return array.filter(member => member !== value);\n};\n","import {without} from '@/internal/utils/without.ts';\n\n/**\n * Action names collection\n * @example\n * import { Actions } from './DialogReducer';\n * dispatch({ type: Actions.DIALOG_CLOSE})\n * dispatch({ type: Actions.DIALOG_OPEN})\n * */\nexport enum Actions {\n DIALOG_CLOSE = 'DIALOG_CLOSE',\n DIALOG_OPEN = 'DIALOG_OPEN',\n}\n\n/** Dialog ID type */\nexport type Id = string;\n\n/** Dialog state type */\nexport type DialogState = {\n /** List of open modals' IDs */\n open: Id[];\n};\n\nexport const initialState = {\n open: [],\n} as DialogState;\n\nexport type DialogAction = {\n /** ID of target Dialog */\n id: Id;\n /** Action name */\n type: Actions;\n};\n\nexport const DialogReducer = (state = initialState, action: DialogAction): DialogState => {\n switch (action.type) {\n case Actions.DIALOG_CLOSE: {\n const {id} = action;\n const nextOpen = without(id, state.open);\n return {\n ...state,\n open: nextOpen,\n };\n }\n case Actions.DIALOG_OPEN: {\n const {id} = action;\n return {\n ...state,\n open: [...state.open, id],\n };\n }\n default:\n return state;\n }\n};\n","import {useContext, createContext} from 'react';\n\nimport type {DialogAction, DialogState} from './DialogReducer';\nimport {initialState} from './DialogReducer';\n\nexport type DialogContextType = {dispatch: (action: DialogAction) => void; state: DialogState};\n\nexport const DialogContext = createContext<DialogContextType>({\n state: initialState,\n dispatch: () => {},\n});\n\nexport const useDialogContext = () => useContext(DialogContext);\n","import {useCallback} from 'react';\n\nimport {last} from '@/internal/utils/last.ts';\n\nimport {useDialogContext} from './DialogContext';\nimport type {DialogState} from './DialogReducer';\nimport {Actions} from './DialogReducer';\n\nconst useSelector = (callback: (arg0: DialogState) => string | undefined) => {\n const {state} = useDialogContext();\n return callback(state);\n};\n\nexport const useDialogState = (id: string) => {\n const {dispatch} = useDialogContext();\n const openDialog = useCallback(() => {\n dispatch({\n type: Actions.DIALOG_OPEN,\n id,\n });\n }, [id, dispatch]);\n const closeDialog = useCallback(() => {\n dispatch({\n type: Actions.DIALOG_CLOSE,\n id,\n });\n }, [id, dispatch]);\n const topDialogId = useSelector((state: DialogState) => last(state.open));\n const isOpen = id === topDialogId;\n return {\n openDialog,\n closeDialog,\n isOpen,\n };\n};\n","import type {ReactNode, MouseEvent, KeyboardEvent, ComponentProps} from 'react';\nimport {forwardRef, useEffect, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\nimport {IconClose} from '@/internal/Icons';\nimport {H3} from '@/lib';\nimport {useFocusTrap} from '@/internal/hooks/useFocusTrap.ts';\nimport {ActionButton, ActionsTree} from '@/internal/Actions';\n\nimport {TransitionDialog} from './TransitionDialog.tsx';\nimport {useDialogState} from './useDialogState.tsx';\nimport classes from './Dialog.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /** Provide unique id for Dialog */\n id: NonNullable<LibraryProps['id']>;\n children?: ReactNode;\n /** Configure outside click behavior */\n closeOnClickOutside?: boolean;\n /** Callback triggered when Dialog toggles */\n onToggle?: (open: boolean) => void;\n /** Display close icon at the right top corner */\n showCloseButton?: boolean;\n /** Provide an array of actions with callbacks */\n actions?: (\n | ComponentProps<typeof ActionButton>\n | [ComponentProps<typeof ActionButton>, ComponentProps<typeof ActionButton>]\n )[];\n /** Set a title of dialog */\n dialogTitle?: string;\n /** Provide a localized value for close button */\n closeLabel?: string;\n /** Enable focus trap for Dialog */\n trapFocus?: boolean;\n };\n\nexport const Dialog = forwardRef<HTMLDialogElement, Props>(\n (\n {\n children,\n className,\n closeOnClickOutside = true,\n showCloseButton = true,\n onToggle = () => {},\n id,\n actions = [],\n dialogTitle,\n closeLabel = 'Close',\n trapFocus = true,\n ...nativeProps\n },\n ref\n ) => {\n const dialogRef = useInternalRef(ref);\n const {isOpen, closeDialog} = useDialogState(id);\n useFocusTrap(dialogRef.current, isOpen, trapFocus);\n useEffect(() => {\n if (isOpen) {\n dialogRef.current?.showModal();\n document.body.classList.add(classes.noScroll);\n }\n onToggle(isOpen);\n }, [dialogRef, onToggle, isOpen]);\n\n const handleSelfClose = useCallback(() => {\n onToggle(false);\n closeDialog();\n }, [closeDialog, onToggle]);\n\n const handleClick = useCallback(\n (event: MouseEvent<typeof dialogRef.current>) => {\n if (\n (event.target as HTMLDialogElement).nodeName === 'DIALOG' &&\n closeOnClickOutside\n ) {\n handleSelfClose();\n }\n },\n [dialogRef, handleSelfClose, closeOnClickOutside]\n );\n\n const handleKeyPress = useCallback(\n (event: KeyboardEvent<HTMLDialogElement>) => {\n event.code === 'Escape' && handleSelfClose();\n },\n [handleSelfClose]\n );\n\n const handleExit = useCallback(() => {\n dialogRef.current?.close();\n document.body.classList.remove(classes.noScroll);\n }, [dialogRef]);\n\n return (\n <TransitionDialog\n unmountNode={true}\n show={isOpen}\n nodeRef={dialogRef}\n onExit={handleExit}>\n <dialog\n {...nativeProps}\n id={id}\n onKeyDown={handleKeyPress}\n onClick={handleClick}\n className={classNames(classes.dialog, className)}\n ref={dialogRef}>\n <div className={classes.flex}>\n {dialogTitle && (\n <header className={classNames(classes.header, className)}>\n <H3>{dialogTitle}</H3>\n </header>\n )}\n <div className={classNames(classes.body, className)}>{children}</div>\n <footer className={classes.actions}>\n <ActionsTree actions={actions} />\n {showCloseButton && (\n <div key={`${id}-close`} className={classes.row}>\n <ActionButton\n onClick={handleSelfClose}\n icon={IconClose}\n title={closeLabel}\n />\n </div>\n )}\n </footer>\n </div>\n </dialog>\n </TransitionDialog>\n );\n }\n);\n\nDialog.displayName = 'Dialog';\n","import type {ReactNode, Context} from 'react';\nimport {useReducer, useMemo} from 'react';\n\ntype FactoryProps<TState, TAction> = {\n context: Context<{dispatch: (action: TAction) => void; state: TState}>;\n reducer: (state: TState, action: TAction) => TState;\n initialState: TState;\n};\n\nexport const createStoreProvider =\n <TState, TAction>({initialState, reducer, context}: FactoryProps<TState, TAction>) =>\n // eslint-disable-next-line react/display-name\n ({children}: {children?: ReactNode}) => {\n const {Provider} = context;\n const [state, dispatch] = useReducer(reducer, initialState);\n const memoizedValue = useMemo(() => ({state, dispatch}), [state]);\n return <Provider value={memoizedValue}>{children}</Provider>;\n };\n","import {createStoreProvider} from '@/internal/store/createStoreProvider.tsx';\n\nimport type {DialogState, DialogAction} from './DialogReducer';\nimport {initialState, DialogReducer} from './DialogReducer';\nimport {DialogContext} from './DialogContext';\n\nexport const DialogProvider = createStoreProvider<DialogState, DialogAction>({\n context: DialogContext,\n reducer: DialogReducer,\n initialState,\n});\n","import {without} from '@/internal/utils/without.ts';\n\n/**\n * Action names collection\n * @example\n * import { Actions } from './NotificationReducer';\n * dispatch({ type: Notification.NOTIFICATION_CLOSE})\n * dispatch({ type: Notification.NOTIFICATION_OPEN})\n * */\nexport enum Actions {\n NOTIFICATION_CLOSE = 'NOTIFICATION_CLOSE',\n NOTIFICATION_OPEN = 'NOTIFICATION_OPEN',\n NOTIFICATION_REGISTER = 'NOTIFICATION_REGISTER',\n NOTIFICATION_RE_OPEN = 'NOTIFICATION_RE_OPEN',\n}\n\n/** Dialog ID type */\nexport type Id = string;\n\nexport type NotificationProps = {\n /**\n * Defines a title for the notification, which is shown at the top of the notification window\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification#title\n */\n title: string;\n /**\n * URL of an image to be displayed in the notification\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification#icon\n */\n icon?: string;\n /**\n * Body text of the notification, which is displayed below the title\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification#body\n */\n body?: string;\n /**\n * Indicates that a notification should remain active until the user clicks or dismisses it, rather than closing automatically.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification#requireinteraction\n */\n requireInteraction?: boolean;\n};\n\n/** Dialog state type */\nexport type NotificationState = {\n /** List of open modals' IDs */\n open: Id[];\n props: Record<Id, NotificationProps>;\n instances: Record<Id, Notification>;\n};\n\nexport const initialState = {\n open: [],\n props: {},\n instances: {},\n} as NotificationState;\n\ntype CloseAction = {\n /** ID of target Dialog */\n id: Id;\n /** Action name */\n type: Actions.NOTIFICATION_CLOSE;\n};\n\ntype OpenAction = {\n /** ID of target Dialog */\n id: Id;\n /** Action name */\n type: Actions.NOTIFICATION_OPEN;\n instance: Notification;\n};\n\ntype RegisterAction = {\n /** ID of target Dialog */\n id: Id;\n /** Action name */\n type: Actions.NOTIFICATION_REGISTER;\n props: NotificationProps;\n};\n\nexport type NotificationAction = CloseAction | OpenAction | RegisterAction;\n\nconst omit = <TObject extends Record<string, unknown>>(obj: TObject, key: keyof TObject) => {\n const nextObject = {...obj};\n delete nextObject[key];\n return nextObject;\n};\n\nexport const NotificationReducer = (\n state = initialState,\n action: NotificationAction\n): NotificationState => {\n switch (action.type) {\n case Actions.NOTIFICATION_CLOSE: {\n const {id} = action;\n const nextOpen = without(id, state.open);\n const nextInstances = omit(state.instances, id);\n return {\n ...state,\n open: nextOpen,\n instances: nextInstances,\n };\n }\n case Actions.NOTIFICATION_REGISTER: {\n const {id, props} = action;\n return {\n ...state,\n props: {\n ...state.props,\n [id]: props,\n },\n };\n }\n case Actions.NOTIFICATION_OPEN: {\n const {id, instance} = action;\n return {\n ...state,\n open: [...without(id, state.open), id],\n instances: {\n ...state.instances,\n [id]: instance,\n },\n };\n }\n default:\n return state;\n }\n};\n","import {useContext, createContext} from 'react';\n\nimport type {NotificationAction, NotificationState} from './NotificationReducer.ts';\nimport {initialState} from './NotificationReducer.ts';\n\nexport type DialogContextType = {\n dispatch: (action: NotificationAction) => void;\n state: NotificationState;\n};\n\nexport const NotificationContext = createContext<DialogContextType>({\n state: initialState,\n dispatch: () => {},\n});\n\nexport const useNotificationContext = () => useContext(NotificationContext);\n","import {useCallback} from 'react';\n\nimport {useNotificationContext} from './NotificationContext.ts';\nimport {Actions} from './NotificationReducer.ts';\nimport type {NotificationProps, Id} from './NotificationReducer.ts';\n\nexport const useRegisterNotification = () => {\n const {dispatch} = useNotificationContext();\n return useCallback(\n (id: Id, props: NotificationProps) => {\n dispatch({id, props, type: Actions.NOTIFICATION_REGISTER});\n },\n [dispatch]\n );\n};\n","import {useNotificationContext} from './NotificationContext.ts';\nimport type {Id} from './NotificationReducer.ts';\n\nexport const useNotificationProps = (id: Id) => {\n const {state} = useNotificationContext();\n return state.props[id];\n};\n","import {useNotificationContext} from './NotificationContext.ts';\nimport type {Id} from './NotificationReducer.ts';\n\nexport const useNotificationInstance = (id: Id): Notification | undefined => {\n const {state} = useNotificationContext();\n return state.instances[id];\n};\n","import {useCallback, useEffect, useState} from 'react';\n\nimport {useNotificationContext} from './NotificationContext.ts';\nimport type {NotificationProps, NotificationState} from './NotificationReducer.ts';\nimport {Actions} from './NotificationReducer.ts';\nimport {useNotificationProps} from './useNotificationProps.ts';\nimport {useNotificationInstance} from './useNotificationInstance.ts';\n\nconst useSelector = <TResult,>(callback: (arg0: NotificationState) => TResult) => {\n const {state} = useNotificationContext();\n return callback(state);\n};\n\nconst createNotification = (props: NotificationProps) => {\n return new window.Notification(props.title, {\n icon: props.icon,\n body: props.body,\n requireInteraction: props.requireInteraction,\n });\n};\n\nexport const useNotificationState = (id: string) => {\n const {dispatch} = useNotificationContext();\n const instance = useNotificationInstance(id);\n const notificationProps = useNotificationProps(id);\n const isOpen = useSelector((state: NotificationState) =>\n state.open.some(notificationId => notificationId === id)\n );\n const [permission, setPermission] = useState<NotificationPermission>();\n\n const handleSelfClose = useCallback(() => {\n dispatch({\n type: Actions.NOTIFICATION_CLOSE,\n id,\n });\n }, [dispatch, id]);\n\n useEffect(() => {\n instance?.addEventListener('close', handleSelfClose);\n return () => {\n instance?.removeEventListener('close', handleSelfClose);\n };\n }, [handleSelfClose, instance]);\n\n const openNotification = useCallback(() => {\n const currentPermission = window?.Notification?.permission;\n\n /* Partially supported in Firefox. The new notification will not re-appear */\n if (isOpen) {\n instance?.close();\n }\n if (currentPermission === 'granted') {\n dispatch({\n type: Actions.NOTIFICATION_OPEN,\n id,\n instance: createNotification(notificationProps),\n });\n setPermission(currentPermission);\n } else if (currentPermission !== 'denied') {\n window?.Notification?.requestPermission().then(nextPermission => {\n setPermission(nextPermission);\n if (nextPermission === 'granted') {\n dispatch({\n type: Actions.NOTIFICATION_OPEN,\n id,\n instance: createNotification(notificationProps),\n });\n }\n });\n } else if (currentPermission === 'denied') {\n setPermission(currentPermission);\n }\n }, [dispatch, id, instance, isOpen, notificationProps]);\n\n const closeNotification = useCallback(() => {\n instance?.close();\n dispatch({type: Actions.NOTIFICATION_CLOSE, id});\n }, [dispatch, id, instance]);\n\n return {\n /**\n * Show notification to the user.\n * Warning! Will not work from component scope. Needs to be run as an effect\n * @example\n * const {openNotificaton} = useNotificationState(id);\n * const handleClick = useCallback(() => {\n * openNotification();\n * }, [openNotification]);\n */\n openNotification,\n /**\n * Hide notification.\n * Warning! Will not work from component scope. Needs to be run as an effect\n * @example\n * const {openNotificaton} = useNotificationState(id);\n * const handleClick = useCallback(() => {\n * openNotification();\n * }, [openNotification]);\n */\n closeNotification,\n /** Current visibility of notification */\n isOpen,\n /**\n * Indicates the current permission granted by the user for the current origin to display web notifications\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Notification/permission_static\n */\n permission,\n };\n};\n","import type {FC} from 'react';\nimport {Fragment, useEffect} from 'react';\n\nimport {useRegisterNotification} from './useRegisterNotification.ts';\nimport type {NotificationProps, Id} from './NotificationReducer.ts';\nimport {useNotificationState} from './useNotificationState.tsx';\n\nexport type Props = NotificationProps & {\n /** Unique id of notification */\n id: Id;\n /** Callback triggered when Notification toggles */\n onToggle?: (isOpen: boolean) => void;\n onDenied?: () => void;\n};\n\nexport const Notification: FC<Props> = ({\n id,\n title,\n icon,\n body,\n requireInteraction,\n onToggle = () => {},\n onDenied = () => {},\n}) => {\n const registerNotification = useRegisterNotification();\n const {isOpen, permission} = useNotificationState(id);\n useEffect(() => {\n registerNotification(id, {title, icon, body, requireInteraction});\n }, [id, title, icon, body, requireInteraction, registerNotification]);\n\n useEffect(() => {\n onToggle(isOpen);\n }, [isOpen, onToggle]);\n\n useEffect(() => {\n permission === 'denied' && onDenied();\n }, [onDenied, permission]);\n\n return <Fragment />;\n};\n","import {createStoreProvider} from '@/internal/store/createStoreProvider.tsx';\n\nimport type {NotificationState, NotificationAction} from './NotificationReducer.ts';\nimport {initialState, NotificationReducer} from './NotificationReducer.ts';\nimport {NotificationContext} from './NotificationContext.ts';\n\nexport const NotificationProvider = createStoreProvider<NotificationState, NotificationAction>({\n context: NotificationContext,\n reducer: NotificationReducer,\n initialState,\n});\n","import type {FC, ReactNode} from 'react';\nimport {useId, useState} from 'react';\nimport {createPortal} from 'react-dom';\n\nimport {useSafeLayoutEffect} from '@/internal/hooks/useSafeLayoutEffect.ts';\n\nexport type Props = {\n children: ReactNode;\n};\n\nexport const Portal: FC<Props> = ({children}) => {\n const id = useId();\n const [portalRendered, setPortalRendered] = useState(false);\n useSafeLayoutEffect(() => {\n if (!portalRendered) {\n const element = document.createElement('div');\n element.id = id;\n document.body.appendChild(element);\n setPortalRendered(true);\n }\n return () => {\n portalRendered && document.getElementById(id)!.remove();\n };\n }, [id, portalRendered]);\n\n return portalRendered && createPortal(children, document.getElementById(id)!, id);\n};\n","import {useEffect, useRef} from 'react';\n\ntype Props = {\n callback: () => void;\n interval: number | null;\n condition?: boolean;\n};\n\nexport const useInterval = ({callback, interval, condition = true}: Props) => {\n const savedCallback = useRef<Props['callback']>();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n let id: NodeJS.Timeout;\n const tick = () => {\n savedCallback.current?.();\n };\n if (interval !== null && condition) {\n id = setInterval(tick, interval);\n }\n return () => {\n id && clearInterval(id);\n };\n }, [condition, interval]);\n};\n","/**\n * Action names collection\n * @example\n * import { Actions } from './ToastReducer';\n * dispatch({ type: Toast.TOAST_CLOSE})\n * dispatch({ type: Toast.TOAST_OPEN})\n * */\nexport enum Actions {\n TOAST_CLOSE = 'TOAST_CLOSE',\n TOAST_OPEN = 'TOAST_OPEN',\n}\n\n/** Toast ID type */\nexport type Id = string;\n\n/** Toast state type */\nexport type ToastState = {\n /** List of open Toasts' IDs */\n open: Id;\n};\n\nexport const initialState = {\n open: '',\n} as ToastState;\n\nexport type ToastAction = {\n /** ID of target Toast */\n id: Id;\n /** Action name */\n type: Actions;\n};\n\nexport const ToastReducer = (state = initialState, action: ToastAction): ToastState => {\n switch (action.type) {\n case Actions.TOAST_CLOSE: {\n const {id} = action;\n const nextOpen = state.open === id ? '' : state.open;\n return {\n ...state,\n open: nextOpen,\n };\n }\n case Actions.TOAST_OPEN: {\n const {id} = action;\n return {\n ...state,\n open: id,\n };\n }\n default:\n return state;\n }\n};\n","import {useContext, createContext} from 'react';\n\nimport type {ToastAction, ToastState} from './ToastReducer.ts';\nimport {initialState} from './ToastReducer.ts';\n\nexport type DialogContextType = {dispatch: (action: ToastAction) => void; state: ToastState};\n\nexport const ToastContext = createContext<DialogContextType>({\n state: initialState,\n dispatch: () => {},\n});\n\nexport const useToastContext = () => useContext(ToastContext);\n","import {useCallback} from 'react';\n\nimport {useToastContext} from './ToastContext.ts';\nimport type {ToastState} from './ToastReducer.ts';\nimport {Actions} from './ToastReducer.ts';\n\nconst useSelector = (callback: (arg0: ToastState) => string | undefined) => {\n const {state} = useToastContext();\n return callback(state);\n};\n\nexport const useToastState = (id: string) => {\n const {dispatch} = useToastContext();\n const openToast = useCallback(() => {\n dispatch({\n type: Actions.TOAST_OPEN,\n id,\n });\n }, [id, dispatch]);\n const closeToast = useCallback(() => {\n dispatch({\n type: Actions.TOAST_CLOSE,\n id,\n });\n }, [id, dispatch]);\n const openToastId = useSelector((state: ToastState) => state.open);\n const isOpen = id === openToastId;\n return {\n openToast,\n closeToast,\n isOpen,\n };\n};\n","import type {FC, ReactNode} from 'react';\nimport {useEffect} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useRootTheme, useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {Portal} from '@/internal/Portal';\nimport {IconClose, IconError, IconInfo, IconSuccess, IconWarning} from '@/internal/Icons';\nimport {useInterval} from '@/internal/hooks/useInterval.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\nimport {TransitionSlideBottom} from '@/internal/Transitions';\nimport type {ActionProps} from '@/internal/Actions';\nimport {ActionsTree, ActionButton} from '@/internal/Actions';\n\nimport {useToastState} from './useToastState.tsx';\nimport classes from './Toast.module.css';\n\nenum Variants {\n default = 'default',\n success = 'success',\n error = 'error',\n warning = 'warning',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /** Provide unique id to the Toast */\n id: NonNullable<LibraryProps['id']>;\n children?: ReactNode;\n /** Provide an array of actions with callbacks */\n actions?: (ActionProps | [ActionProps, ActionProps])[];\n /**\n * Provide Icon component to show instead default one\n */\n icon?: FC;\n /** Select design variant of Toast to show */\n variant?: keyof typeof Variants;\n /** Provide a main text to display inside Toast */\n title: string;\n /** Provide an additional text to display inside Toast */\n body?: string;\n /** Callback triggered when user click closes Toast */\n onToggle?: (isOpen: boolean) => void;\n /** Set time in seconds to auto close Toast */\n autoClose?: number;\n /** Provide custom label for close Toast action */\n closeLabel?: string;\n };\n\nexport const Toast = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n actions = [],\n icon: IconProp,\n variant = Variants.default,\n title,\n body,\n onToggle = () => {},\n id,\n autoClose = null,\n closeLabel = 'Close',\n ...nativeProps\n },\n refProp\n ) => {\n const {isOpen, closeToast} = useToastState(id);\n const {LocalRoot: Provider} = useLocalTheme();\n const {getTheme} = useRootTheme();\n const Icon = IconProp\n ? IconProp\n : {\n [Variants.default]: IconInfo,\n [Variants.error]: IconError,\n [Variants.success]: IconSuccess,\n [Variants.warning]: IconWarning,\n }[variant];\n useEffect(() => {\n onToggle(isOpen);\n }, [isOpen, onToggle]);\n const needsAutoClose = typeof autoClose === 'number';\n const interval = needsAutoClose ? autoClose * 1000 : null;\n useInterval({callback: closeToast, interval, condition: needsAutoClose});\n const ref = useInternalRef(refProp);\n return (\n <Portal>\n <TransitionSlideBottom show={isOpen} nodeRef={ref}>\n <Provider className={classes.provider} theme={getTheme()}>\n <div\n {...nativeProps}\n className={classNames(\n classes.toast,\n {\n [classes.success]: variant === Variants.success,\n [classes.warning]: variant === Variants.warning,\n [classes.error]: variant === Variants.error,\n },\n className\n )}\n ref={ref}>\n <div className={classes.content}>\n <div className={classes.left}>\n <Icon className={classes.icon} />\n </div>\n <div className={classes.right}>\n <div className={classes.title}>{title}</div>\n {body && <div className={classes.body}>{body}</div>}\n </div>\n </div>\n <footer className={classes.actions}>\n <ActionsTree\n actions={actions}\n classNameAction={classes.actionButton}\n />\n <div key={`${id}-close`} className={classes.row}>\n <ActionButton\n className={classes.actionButton}\n onClick={closeToast}\n icon={IconClose}\n title={closeLabel}\n />\n </div>\n </footer>\n </div>\n </Provider>\n </TransitionSlideBottom>\n </Portal>\n );\n }\n);\n\nToast.displayName = 'Toast';\n","import {createStoreProvider} from '@/internal/store/createStoreProvider.tsx';\n\nimport type {ToastState, ToastAction} from './ToastReducer.ts';\nimport {initialState, ToastReducer} from './ToastReducer.ts';\nimport {ToastContext} from './ToastContext.ts';\n\nexport const ToastProvider = createStoreProvider<ToastState, ToastAction>({\n context: ToastContext,\n reducer: ToastReducer,\n initialState,\n});\n","import type {MouseEvent, KeyboardEvent, MutableRefObject} from 'react';\nimport {useCallback} from 'react';\n\nimport {EventType, useEventListener} from '@/internal/hooks/useEventListener.ts';\n\n/**\n * React hook. Triggers provided callback when ESC key pressed or registered click outside provided element\n */\nexport const useDismiss = <TElement extends HTMLElement | null>(\n callback: () => void,\n ref: MutableRefObject<TElement>,\n isOpen: boolean\n) => {\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<TElement>) => {\n if (isOpen && event.key === 'Escape') {\n callback();\n }\n },\n [callback, isOpen]\n );\n\n useEventListener(EventType.keydown, handleKeyDown);\n\n const handleMouseDown = useCallback(\n (event: MouseEvent<TElement>) => {\n if (isOpen && (event.target as TElement)!.contains(ref.current)) {\n callback();\n }\n },\n [callback, isOpen, ref]\n );\n\n useEventListener(EventType.mousedown, handleMouseDown);\n};\n","/**\n * Action names collection\n * @example\n * import { Actions } from './DrawerReducer';\n * dispatch({ type: Drawer.DRAWER_CLOSE})\n * dispatch({ type: Drawer.DRAWER_OPEN})\n * */\nexport enum Actions {\n DRAWER_CLOSE = 'DRAWER_CLOSE',\n DRAWER_OPEN = 'DRAWER_OPEN',\n}\n\n/** Drawer ID type */\nexport type Id = string;\n\n/** Drawer state type */\nexport type DrawerState = {\n /** List of open Drawer IDs */\n open?: Id;\n};\n\nexport const initialState = {\n open: undefined,\n} as DrawerState;\n\nexport type DrawerAction = {\n /** ID of target Drawer */\n id: Id;\n /** Action name */\n type: Actions;\n};\n\nexport const DrawerReducer = (state = initialState, action: DrawerAction): DrawerState => {\n switch (action.type) {\n case Actions.DRAWER_CLOSE: {\n const {id} = action;\n const nextOpen = id === state.open ? undefined : state.open;\n return {\n ...state,\n open: nextOpen,\n };\n }\n case Actions.DRAWER_OPEN: {\n const {id} = action;\n return {\n ...state,\n open: id,\n };\n }\n default:\n return state;\n }\n};\n","import {useContext, createContext} from 'react';\n\nimport type {DrawerAction, DrawerState} from './DrawerReducer.ts';\nimport {initialState} from './DrawerReducer.ts';\n\nexport type DialogContextType = {dispatch: (action: DrawerAction) => void; state: DrawerState};\n\nexport const DrawerContext = createContext<DialogContextType>({\n state: initialState,\n dispatch: () => {},\n});\n\nexport const useDrawerContext = () => useContext(DrawerContext);\n","import {useCallback} from 'react';\n\nimport {useDrawerContext} from './DrawerContext.ts';\nimport type {DrawerState} from './DrawerReducer.ts';\nimport {Actions} from './DrawerReducer.ts';\n\nconst useSelector = (callback: (arg0: DrawerState) => string | undefined) => {\n const {state} = useDrawerContext();\n return callback(state);\n};\n\nexport const useDrawerState = (id: string) => {\n const {dispatch} = useDrawerContext();\n const openDrawer = useCallback(() => {\n dispatch({\n type: Actions.DRAWER_OPEN,\n id,\n });\n }, [id, dispatch]);\n const closeDrawer = useCallback(() => {\n dispatch({\n type: Actions.DRAWER_CLOSE,\n id,\n });\n }, [id, dispatch]);\n const openDrawerId = useSelector((state: DrawerState) => state.open);\n const isOpen = id === openDrawerId;\n return {\n openDrawer,\n closeDrawer,\n isOpen,\n };\n};\n","import type {ReactNode} from 'react';\nimport {useMemo} from 'react';\nimport {useLocalTheme, useRootTheme} from 'css-vars-hook';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {Portal} from '@/internal/Portal';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef';\nimport {useDismiss} from '@/internal/hooks/useDismiss';\nimport {TransitionSlideLeft, TransitionSlideRight} from '@/internal/Transitions';\n\nimport classes from './Drawer.module.css';\nimport {useDrawerState} from './useDrawerState.tsx';\n\nenum Placements {\n left = 'left',\n right = 'right',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Choose side to attach Drawer */\n placement?: keyof typeof Placements;\n /** Provide unique id for Drawer */\n id: string;\n };\n\nexport const Drawer = forwardRef<HTMLDivElement, Props>(\n ({children, className, placement = Placements.left, id, ...nativeProps}, refProp) => {\n const ref = useInternalRef(refProp);\n const {isOpen, closeDrawer} = useDrawerState(id);\n\n const {getTheme} = useRootTheme();\n const {LocalRoot} = useLocalTheme();\n\n const Transition = useMemo(\n () =>\n ({\n [Placements.left]: TransitionSlideLeft,\n [Placements.right]: TransitionSlideRight,\n })[placement],\n [placement]\n );\n\n useDismiss(closeDrawer, ref, isOpen);\n\n return (\n <Portal>\n <Transition show={isOpen} nodeRef={ref}>\n <LocalRoot theme={getTheme()} className={classes.provider}>\n <div\n {...nativeProps}\n className={classNames(\n classes.drawer,\n {\n [classes.left]: placement === Placements.left,\n [classes.right]: placement === Placements.right,\n },\n className\n )}\n ref={ref}>\n {children}\n </div>\n </LocalRoot>\n </Transition>\n </Portal>\n );\n }\n);\n\nDrawer.displayName = 'Drawer';\n","import {createStoreProvider} from '@/internal/store/createStoreProvider.tsx';\n\nimport type {DrawerState, DrawerAction} from './DrawerReducer.ts';\nimport {initialState, DrawerReducer} from './DrawerReducer.ts';\nimport {DrawerContext} from './DrawerContext.ts';\n\nexport const DrawerProvider = createStoreProvider<DrawerState, DrawerAction>({\n context: DrawerContext,\n reducer: DrawerReducer,\n initialState,\n});\n","import type {ThemeType} from '@/lib';\n\nexport const convertThemeVarName = (str: string) =>\n `fg-${str\n // camelToKebabCase\n .replace(/(?<![A-Z])[A-Z]/g, (letter: string) => `-${letter.toLowerCase()}`)\n // split numbers\n .replace(/(?<=\\D)\\d/g, (num: string) => `-${num}`)\n .toLowerCase()}`;\n\nexport const convertTheme = (theme: ThemeType) => {\n const entries = Object.entries(theme).map(([key, value]) => [convertThemeVarName(key), value]);\n return Object.fromEntries(entries);\n};\n","import type {FC, ReactNode} from 'react';\nimport {useMemo} from 'react';\nimport {RootThemeProvider} from 'css-vars-hook';\n\nimport type {PublicThemeType} from '@/lib/Theme';\nimport {theme, themePodil} from '@/lib/Theme';\nimport {DialogProvider} from '@/lib/Dialog';\nimport {NotificationProvider} from '@/lib/Notification';\nimport {ToastProvider} from '@/lib/Toast';\nimport {DrawerProvider} from '@/lib/Drawer';\nimport {convertTheme} from '@/internal/utils/convertThemeVarName.ts';\n\nimport classes from './Provider.module.css';\n\nexport type Props = {\n children?: ReactNode;\n /** Provide an object with theme colors and sizes parameters */\n theme?: PublicThemeType;\n};\n\nexport const Provider: FC<Props> = ({children, theme: themeProp = themePodil}) => {\n const normalizedTheme = useMemo(() => {\n return convertTheme({...theme, ...themeProp});\n }, [themeProp]);\n return (\n <RootThemeProvider theme={normalizedTheme} className={classes.provider}>\n <DialogProvider>\n <NotificationProvider>\n <ToastProvider>\n <DrawerProvider>{children}</DrawerProvider>\n </ToastProvider>\n </NotificationProvider>\n </DialogProvider>\n </RootThemeProvider>\n );\n};\n","import type {ForwardedRef, MutableRefObject} from 'react';\nimport {useImperativeHandle, useRef} from 'react';\n\n/** This hook allows to merge forwarded ref with component's inner ref. Inner ref has to be created as MutableRefObject. */\nexport const useLinkRefs = <TElement = HTMLElement>(\n outerRef: ForwardedRef<TElement>,\n innerRef: MutableRefObject<TElement | null>\n) => {\n const backupRef = useRef<TElement | null>(null);\n\n const normalizedRef = innerRef ? innerRef : backupRef;\n\n useImperativeHandle<TElement | null, TElement | null>(outerRef, () => normalizedRef.current, [\n normalizedRef,\n ]);\n};\n","export enum Sizes {\n xs = 'xs',\n sm = 'sm',\n md = 'md',\n lg = 'lg',\n xl = 'xl',\n}\n\nexport enum Offsets {\n xs = 'shiftXS',\n sm = 'shiftSM',\n md = 'shiftMD',\n lg = 'shiftLG',\n xl = 'shiftXL',\n}\n\nexport type SizeUnit = number;\nexport type FluidUnit = 'fluid';\n\nexport type SizesConfig = {\n /** The number of columns to span on tiny devices (≥360px) */\n [Sizes.xs]: SizeUnit | FluidUnit;\n /** The number of columns to span on small devices (≥640px) */\n [Sizes.sm]: SizeUnit | FluidUnit;\n /** The number of columns to span on medium devices (≥992px) */\n [Sizes.md]: SizeUnit | FluidUnit;\n /** The number of columns to span on large devices (≥1366px) */\n [Sizes.lg]: SizeUnit | FluidUnit;\n /** The number of columns to span on extremely large devices (≥1920px) */\n [Sizes.xl]: SizeUnit | FluidUnit;\n};\n\nexport type OffsetConfig = {\n /** The number of columns to off set this item from left side on extremely small devices (≥360px) */\n [Offsets.xs]: SizeUnit;\n /** The number of columns to off set this item from left side on small devices (≥640px) */\n [Offsets.sm]: SizeUnit;\n /** The number of columns to off set this item from left side on medium devices (≥768px) */\n [Offsets.md]: SizeUnit;\n /** The number of columns to off set this item from left side on large devices (≥1366px) */\n [Offsets.lg]: SizeUnit;\n /** The number of columns to off set this item from left side on extremely large devices (≥1920px) */\n [Offsets.xl]: SizeUnit;\n};\n","import type {ReactNode} from 'react';\nimport {useMemo, forwardRef} from 'react';\nimport {useLocalTheme} from 'css-vars-hook';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport {Sizes} from './SizeTypes';\nimport type {OffsetConfig, SizesConfig} from './SizeTypes';\nimport classes from './Layout.module.css';\n\nexport type ColProps = DataAttributes &\n LibraryProps &\n Partial<SizesConfig> &\n Partial<OffsetConfig> & {\n /** Select an HTML element to render as a container */\n as?: string;\n children?: ReactNode;\n };\n\nconst filterUndefined = (target: Record<string, number | string | undefined>) => {\n return Object.fromEntries(Object.entries(target).filter(([_, v]) => v !== undefined)) as Record<\n string,\n number | string\n >;\n};\n\nexport const Col = forwardRef<HTMLElement, ColProps>(\n (\n {\n as = 'div',\n children,\n className,\n xs,\n sm,\n md,\n lg,\n xl,\n shiftXS,\n shiftSM,\n shiftMD,\n shiftLG,\n shiftXL,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: internalRef} = useLocalTheme();\n useLinkRefs(ref, internalRef);\n const theme = useMemo(\n () =>\n filterUndefined({\n [Sizes.xs]: xs ?? '',\n [Sizes.sm]: sm ?? '',\n [Sizes.md]: md ?? '',\n [Sizes.lg]: lg ?? '',\n [Sizes.xl]: xl ?? '',\n [`shift-${Sizes.xs}`]: shiftXS ?? '',\n [`shift-${Sizes.sm}`]: shiftSM ?? '',\n [`shift-${Sizes.md}`]: shiftMD ?? '',\n [`shift-${Sizes.lg}`]: shiftLG ?? '',\n [`shift-${Sizes.xl}`]: shiftXL ?? '',\n }),\n [xs, sm, md, lg, xl, shiftXS, shiftSM, shiftMD, shiftLG, shiftXL]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n as={as}\n className={classNames(\n classes.column,\n {\n [classes.xs]: !!xs,\n [classes.sm]: !!sm,\n [classes.md]: !!md,\n [classes.lg]: !!lg,\n [classes.xl]: !!xl,\n [classes['fluid-xs']]: xs === 'fluid',\n [classes['fluid-sm']]: sm === 'fluid',\n [classes['fluid-md']]: md === 'fluid',\n [classes['fluid-lg']]: lg === 'fluid',\n [classes['fluid-xl']]: xl === 'fluid',\n },\n className\n )}>\n {children}\n </LocalRoot>\n );\n }\n);\n\nCol.displayName = 'Col';\n","import {forwardRef} from 'react';\nimport type {ReactNode} from 'react';\nimport {useLocalTheme} from 'css-vars-hook';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Layout.module.css';\n\ntype RowProps = DataAttributes &\n LibraryProps & {\n /** Select an HTML element to render as a container */\n as?: string;\n children: ReactNode;\n };\n\nexport const Row = forwardRef<HTMLElement, RowProps>(\n ({className, children, as = 'div', ...nativeProps}, ref) => {\n const {LocalRoot, ref: internalRef} = useLocalTheme();\n useLinkRefs(ref, internalRef);\n return (\n <LocalRoot {...nativeProps} as={as} className={classNames(classes.row, className)}>\n {children}\n </LocalRoot>\n );\n }\n);\n\nRow.displayName = 'Row';\n","import type {ReactNode} from 'react';\nimport {useLocalTheme} from 'css-vars-hook';\nimport {useMemo, forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport type {SizeUnit, FluidUnit} from './SizeTypes';\nimport classes from './Layout.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /** Set Container width in pixels as a number or set to `fluid` to make it 100% */\n width?: SizeUnit | FluidUnit;\n /** Set amount of columns to place in container */\n base?: number;\n /** Set a gap between columns in pixels */\n gap?: number;\n /** Select HTML element to render as a container */\n as?: string;\n children: ReactNode;\n };\n\nconst normalizeWidth = (widthProp: Props['width']) => {\n if (widthProp === 'fluid') {\n return '100%';\n }\n return `${widthProp}px`;\n};\n\nexport const Grid = forwardRef<HTMLElement, Props>(\n ({width = 1280, className, as = 'div', children, gap = 16, base = 12, ...nativeProps}, ref) => {\n const {LocalRoot, ref: internalRef} = useLocalTheme();\n useLinkRefs(ref, internalRef);\n const theme = useMemo(\n () => ({'container-width': normalizeWidth(width), base, gap: `${gap}px`}),\n [width, gap, base]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n as={as}\n className={classNames(classes.grid, className)}>\n {children}\n </LocalRoot>\n );\n }\n);\n\nGrid.displayName = 'Grid';\n","import {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {Props as GridProps} from './Grid.tsx';\nimport {Grid} from './Grid.tsx';\nimport classes from './Layout.module.css';\n\nexport type Props = GridProps;\n\nexport const Page = forwardRef<HTMLDivElement, Props>(\n (\n {width = 'fluid', className, as = 'div', children, gap = 0, base = 12, ...nativeProps},\n ref\n ) => {\n return (\n <Grid\n {...nativeProps}\n width={width}\n ref={ref}\n className={classNames(classes.page, className)}\n as={as}\n gap={gap}\n base={base}>\n {children}\n </Grid>\n );\n }\n);\n\nPage.displayName = 'Page';\n","import {forwardRef} from 'react';\nimport type {FC, ReactNode} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {SizesConfig} from '@/lib/Layout/SizeTypes.tsx';\n\nimport {Col} from './Col.tsx';\nimport classes from './Layout.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Partial<SizesConfig> & {\n children?: ReactNode;\n };\n\nexport const Main: FC<Props> = forwardRef<HTMLDivElement, Props>(\n ({children, className, xs = 'fluid', sm, md, lg, xl, ...restProps}, ref) => {\n return (\n <Col\n {...restProps}\n as=\"main\"\n ref={ref}\n xs={xs}\n sm={sm}\n md={md}\n lg={lg}\n xl={xl}\n className={classNames(classes.main, className)}>\n {children}\n </Col>\n );\n }\n);\n\nMain.displayName = 'Main';\n","import {forwardRef} from 'react';\nimport type {ReactNode} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport {Row} from './Row.tsx';\nimport classes from './Layout.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const Footer = forwardRef<HTMLDivElement, Props>(\n ({children, className, ...restProps}, ref) => {\n return (\n <Row {...restProps} ref={ref} className={classNames(classes.footer, className)}>\n {children}\n </Row>\n );\n }\n);\n\nFooter.displayName = 'Footer';\n","import {forwardRef} from 'react';\nimport type {ReactNode} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {SizesConfig} from '@/lib/Layout/SizeTypes.tsx';\n\nimport {Col} from './Col.tsx';\nimport classes from './Layout.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Partial<SizesConfig> & {\n children?: ReactNode;\n };\n\nexport const Sidebar = forwardRef<HTMLDivElement, Props>(\n ({children, className, xs, sm, md, lg, xl, ...restProps}, ref) => {\n return (\n <Col\n {...restProps}\n as=\"aside\"\n xs={xs}\n sm={sm}\n md={md}\n lg={lg}\n xl={xl}\n ref={ref}\n className={classNames(classes.aside, className)}>\n {children}\n </Col>\n );\n }\n);\n\nSidebar.displayName = 'Sidebar';\n","import {forwardRef} from 'react';\nimport type {FC, ReactNode} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport {Row} from './Row.tsx';\nimport classes from './Layout.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Attach header to the page top */\n sticky?: boolean;\n };\n\nexport const Header: FC<Props> = forwardRef<HTMLDivElement, Props>(\n ({children, sticky = false, className, ...restProps}, ref) => {\n return (\n <Row\n {...restProps}\n as=\"header\"\n ref={ref}\n className={classNames(classes.header, {[classes.sticky]: sticky}, className)}>\n {children}\n </Row>\n );\n }\n);\n\nHeader.displayName = 'Header';\n","import {forwardRef} from 'react';\nimport type {ReactNode} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport {Row} from './Row.tsx';\nimport classes from './Layout.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const Content = forwardRef<HTMLDivElement, Props>(\n ({children, className, ...restProps}, ref) => {\n return (\n <Row {...restProps} ref={ref} className={classNames(classes.content, className)}>\n {children}\n </Row>\n );\n }\n);\n\nContent.displayName = 'Content';\n","import type {\n FC,\n DetailedHTMLProps,\n ButtonHTMLAttributes,\n MouseEvent,\n HTMLAttributes,\n ReactNode,\n} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Button.module.css';\nimport type {Variants, Sizes} from './Types.ts';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n type?: DetailedHTMLProps<\n ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >['type'];\n disabled?: boolean;\n variant?: keyof typeof Variants;\n size?: keyof typeof Sizes;\n prefix?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n suffix?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n };\n\nexport const Button = forwardRef<HTMLButtonElement, Props>(\n (\n {\n children,\n onClick,\n type = 'button',\n disabled,\n variant = 'primary',\n className,\n prefix: Prefix,\n suffix: Suffix,\n size = 'medium',\n ...nativeProps\n },\n ref\n ) => {\n return (\n <button\n {...nativeProps}\n ref={ref}\n onClick={onClick}\n type={type}\n className={classNames(classes.button, classes[variant], classes[size], className)}\n disabled={disabled}>\n {Prefix && <Prefix className={classes.icon} />}\n <div className={classes.content}>{children}</div>\n {Suffix && <Suffix className={classes.icon} />}\n </button>\n );\n }\n);\n\nButton.displayName = 'Button';\n","/**\n * Action names collection\n * @example\n * import { Actions } from './FormReducer';\n * dispatch({ type: Actions.FORM_SET_PRISTINE})\n * */\nexport enum Actions {\n FORM_SET_PRISTINE = 'FORM_SET_PRISTINE',\n}\n\n/** Form state type */\nexport type FormState = {\n /** Defines if form is rendered or was reset to pristine state */\n pristine: boolean;\n};\n\nexport const initialState = {\n pristine: true,\n} as FormState;\n\nexport type FormAction = {\n /** Action name */\n type: Actions;\n pristine: boolean;\n};\n\nexport const FormReducer = (state = initialState, action: FormAction): FormState => {\n switch (action.type) {\n case Actions.FORM_SET_PRISTINE: {\n return {\n ...state,\n pristine: action.pristine,\n };\n }\n default:\n return state;\n }\n};\n","import type {Dispatch} from 'react';\nimport {createContext} from 'react';\n\nimport type {FormState, FormAction} from './FormReducer.ts';\nimport {initialState} from './FormReducer.ts';\n\nexport const FormContext = createContext<{state: FormState; dispatch: Dispatch<FormAction>}>({\n state: initialState,\n dispatch: () => {},\n});\n","import type {JSX, ExoticComponent} from 'react';\nimport {useMemo, useReducer, forwardRef} from 'react';\n\nimport {FormReducer, initialState} from './FormReducer.ts';\nimport {FormContext} from './FormContext.tsx';\n\nexport const withFormProvider = <TProps extends JSX.IntrinsicAttributes>(\n Component: ExoticComponent<TProps>\n) => {\n const {Provider} = FormContext;\n const FormProvider = forwardRef<HTMLFormElement, TProps>((props, ref) => {\n const [state, dispatch] = useReducer(FormReducer, initialState);\n const memoizedValue = useMemo(() => ({state, dispatch}), [state]);\n return (\n <Provider value={memoizedValue}>\n <Component {...props} ref={ref} />\n </Provider>\n );\n });\n FormProvider.displayName = 'FormProvider';\n return FormProvider;\n};\n","import {useCallback, useContext} from 'react';\n\nimport {FormContext} from './FormContext.tsx';\nimport {Actions} from './FormReducer.ts';\n\nexport const useFormActions = () => {\n const {dispatch} = useContext(FormContext);\n const markAsPristine = useCallback(() => {\n dispatch({\n type: Actions.FORM_SET_PRISTINE,\n pristine: true,\n });\n }, [dispatch]);\n const markAsDirty = useCallback(() => {\n dispatch({\n type: Actions.FORM_SET_PRISTINE,\n pristine: false,\n });\n }, [dispatch]);\n\n return {\n markAsPristine,\n markAsDirty,\n };\n};\n\nexport const useFormSelectors = () => {\n const {state} = useContext(FormContext);\n const pristine = state.pristine;\n\n return {\n pristine,\n };\n};\n","import {type ChangeEvent, useCallback} from 'react';\nimport {forwardRef} from 'react';\nimport type {ReactNode, SyntheticEvent, FormHTMLAttributes, InvalidEvent} from 'react';\nimport classNames from 'classnames';\n\nimport type {LibraryProps, DataAttributes} from '@/internal/LibraryAPI';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport {withFormProvider} from './withFormProvider.tsx';\nimport classes from './Form.module.css';\nimport {useFormActions, useFormSelectors} from './useFormContext.ts';\n\ntype FormState = Record<string, FormDataEntryValue>;\n\ntype NativeProps = {\n name?: FormHTMLAttributes<HTMLFormElement>['name'];\n autoCapitalize?: FormHTMLAttributes<HTMLFormElement>['autoCapitalize'];\n autoComplete?: FormHTMLAttributes<HTMLFormElement>['autoComplete'];\n noValidate?: FormHTMLAttributes<HTMLFormElement>['noValidate'];\n};\n\ntype CallbackProps = {\n onSubmit?: (event: SyntheticEvent<HTMLFormElement>, formState: FormState) => void;\n onInvalid?: (event: InvalidEvent<HTMLFormElement>, formState: FormState) => void;\n onReset?: (event: ChangeEvent<HTMLFormElement>, formState: FormState) => void;\n onChange?: (event: ChangeEvent<HTMLFormElement>, formState: FormState) => void;\n};\n\ntype Props = DataAttributes &\n NativeProps &\n LibraryProps &\n CallbackProps & {\n children: ReactNode;\n };\n\nconst Form = forwardRef<HTMLFormElement, Props>(\n (\n {\n className,\n children,\n onSubmit = () => {},\n onReset = () => {},\n onChange = () => {},\n onInvalid = () => {},\n ...nativeProps\n },\n ref\n ) => {\n const {markAsPristine, markAsDirty} = useFormActions();\n const getFormState = useCallback((formElement: EventTarget & HTMLFormElement) => {\n const data = new FormData(formElement);\n const formState: FormState = {};\n for (const [key, value] of data.entries()) {\n formState[key] = value;\n }\n return formState;\n }, []);\n const handleSubmit = useCallback(\n (event: SyntheticEvent<HTMLFormElement, SubmitEvent>) => {\n event.preventDefault();\n const form = event.currentTarget as HTMLFormElement;\n // const data = new FormData(form);\n // data.set('bar', 'bar');\n const formState = getFormState(form);\n onSubmit(event, formState);\n },\n [getFormState, onSubmit]\n );\n\n const handleError = useCallback(\n (event: InvalidEvent<HTMLFormElement>) => {\n markAsDirty();\n const formState = getFormState(event.currentTarget);\n onInvalid(event, formState);\n },\n [getFormState, markAsDirty, onInvalid]\n );\n\n const handleReset = useCallback(\n (event: ChangeEvent<HTMLFormElement>) => {\n const formState = getFormState(event.currentTarget);\n markAsPristine();\n onReset(event, formState);\n },\n [getFormState, onReset, markAsPristine]\n );\n\n const {pristine} = useFormSelectors();\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLFormElement>) => {\n pristine && markAsDirty();\n const formState = getFormState(event.currentTarget);\n onChange(event, formState);\n },\n [getFormState, onChange, markAsDirty, pristine]\n );\n\n const innerRef = useInternalRef<HTMLFormElement>(ref);\n return (\n <form\n {...nativeProps}\n autoFocus={true}\n onSubmit={handleSubmit}\n onInvalid={handleError}\n onReset={handleReset}\n onChange={handleChange}\n ref={innerRef}\n className={classNames(classes.form, className)}>\n {children}\n </form>\n );\n }\n);\n\nForm.displayName = 'Form';\n\nconst WrappedForm = withFormProvider(Form);\n\nexport {WrappedForm as Form};\n","import {useId} from 'react';\n\n/** Allows to use React generated id when no id provided */\nexport const useInternalId = (id?: string) => {\n const backupId = useId();\n return id ? id : backupId;\n};\n","import {Children, cloneElement, forwardRef} from 'react';\nimport type {ReactElement} from 'react';\nimport classNames from 'classnames';\n\nimport type {LibraryProps, DataAttributes} from '@/internal/LibraryAPI';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './FormField.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children: ReactElement;\n label: string;\n hint?: string;\n };\n\nexport const FormField = forwardRef<HTMLDivElement, Props>(\n ({className, children, label, hint, ...nativeProps}, ref) => {\n const inputProps = Children.only(children).props;\n const id = useInternalId(inputProps.id);\n const childrenWithProps = inputProps.id\n ? Children.only(children)\n : cloneElement(Children.only(children), {id});\n return (\n <div {...nativeProps} ref={ref} className={classNames(classes.wrapper, className)}>\n <label\n className={classNames(classes.label, {[classes.required]: inputProps.required})}\n htmlFor={id}>\n {label}\n </label>\n {childrenWithProps}\n {hint && <div className={classes.hint}>{hint}</div>}\n </div>\n );\n }\n);\n\nFormField.displayName = 'FormField';\n","import type {FormState} from './getFormState.ts';\n\nexport enum ValidationState {\n error = 'error',\n valid = 'valid',\n inProgress = 'inProgress',\n}\n\nexport type ValidationProps = {\n validatorFn?: (\n value: unknown,\n validityState: ValidityState,\n formState: FormState\n ) => string | Promise<string>;\n};\n","import type {ValidationProps} from './ValidationProps.ts';\n\nexport const defaultValidator: ValidationProps['validatorFn'] = (_: unknown | undefined) => '';\n","import type {Dispatch} from 'react';\nimport {useEffect} from 'react';\n\nimport {useFormSelectors} from '@/lib/Form';\n\nimport type {ValidationState} from './ValidationProps.ts';\n\nexport const useHandleFormReset = (setValidity: Dispatch<ValidationState | null>) => {\n const {pristine} = useFormSelectors();\n useEffect(() => {\n pristine && setValidity(null);\n }, [pristine, setValidity]);\n};\n","export type FormState = Record<string, FormDataEntryValue>;\n\nexport const getFormState = (formElement: HTMLFormElement | null) => {\n const data = formElement && new FormData(formElement);\n const formState: FormState = {};\n if (data) {\n for (const [key, value] of data.entries()) {\n formState[key] = value;\n }\n }\n return formState;\n};\n","import type {FormEvent} from 'react';\nimport {useCallback, useState} from 'react';\nimport AwesomeDebouncePromise from 'awesome-debounce-promise';\n\nimport type {ValidationProps} from './ValidationProps.ts';\nimport {ValidationState} from './ValidationProps.ts';\nimport {defaultValidator} from './defaultValidator.ts';\nimport {useHandleFormReset} from './useHandleFormReset.ts';\nimport {getFormState} from './getFormState.ts';\n\ntype InputMode = 'interactive' | 'textual';\n\nconst getValue = <TEvent extends FormEvent, TElement extends HTMLInputElement>(\n event: TEvent,\n mode: InputMode\n) => {\n return mode === 'interactive'\n ? (event.target as TElement).checked\n : (event.target as TElement).value;\n};\n\nexport const useValidation = <TEvent extends FormEvent, TElement extends HTMLInputElement>({\n validatorFn,\n}: ValidationProps) => {\n const hasCustomValidation = validatorFn !== defaultValidator;\n const [customValidation, setCustomValidation] = useState(hasCustomValidation);\n\n const isAsync = validatorFn?.constructor.name === 'AsyncFunction';\n\n const [validity, setValidity] = useState<keyof typeof ValidationState | null>(null);\n\n useHandleFormReset(setValidity);\n\n const reportValidity = useCallback(\n (event: TEvent) => {\n const isValid = (event.target as TElement).reportValidity();\n if (!isValid && !customValidation) {\n setCustomValidation(true);\n }\n const validState = customValidation ? ValidationState.valid : null;\n const nextValidationState = isValid ? validState : ValidationState.error;\n setValidity(nextValidationState);\n },\n [customValidation, setValidity]\n );\n\n const createValidatorSync = useCallback(\n (mode: InputMode, event: TEvent) => {\n const value = getValue(event, mode);\n const formState = getFormState((event.target as TElement)!.form);\n const validationError = validatorFn?.(\n value,\n (event.target as TElement).validity,\n formState\n );\n (event.target as TElement).setCustomValidity(validationError as string);\n reportValidity(event);\n },\n [validatorFn, reportValidity]\n );\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const debouncedValidator = useCallback(AwesomeDebouncePromise(validatorFn!, 1000), [\n validatorFn,\n ]);\n\n const createValidatorAsync = useCallback(\n async (mode: InputMode, event: TEvent) => {\n (event.target as TElement).setCustomValidity('');\n const value = getValue(event, mode);\n const formState = getFormState((event.target as TElement)!.form);\n setValidity(ValidationState.inProgress);\n let validationError = '';\n try {\n validationError = await debouncedValidator(\n value,\n (event.target as TElement).validity,\n formState\n );\n } catch (error) {\n (event.target as TElement).setCustomValidity(error as string);\n }\n (event.target as TElement).setCustomValidity(validationError);\n reportValidity(event);\n },\n [setValidity, debouncedValidator, reportValidity]\n );\n\n const validateInteractive = useCallback(\n (event: TEvent) => {\n return isAsync\n ? createValidatorAsync('interactive', event)\n : createValidatorSync('interactive', event);\n },\n [createValidatorAsync, createValidatorSync, isAsync]\n );\n\n const validateTextual = useCallback(\n (event: TEvent) => {\n return isAsync\n ? createValidatorAsync('textual', event)\n : createValidatorSync('textual', event);\n },\n [createValidatorSync, isAsync, createValidatorAsync]\n );\n\n return {validateInteractive, validateTextual, validity, setValidity};\n};\n","import type {ChangeEvent} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport type {\n NativePropsInteractive,\n CallbackPropsInteractive,\n ValidationProps,\n} from '@/internal/inputs';\nimport {IconError, IconLoader, IconValid} from '@/internal/Icons';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputCheckbox.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsInteractive &\n CallbackPropsInteractive &\n ValidationProps & {\n label?: string;\n };\n\nexport const InputCheckbox = forwardRef<HTMLInputElement, Props>(\n (\n {\n className,\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n checked,\n defaultChecked,\n id: idProp,\n label,\n validatorFn = defaultValidator,\n required,\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n const {validateInteractive, validity, setValidity} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n },\n [onChange]\n );\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n <input\n {...nativeProps}\n className={classes.input}\n ref={ref}\n disabled={disabled}\n type=\"checkbox\"\n id={id}\n value={value}\n checked={checked}\n defaultChecked={defaultChecked}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInput={validateInteractive}\n onInvalid={handleInvalid}\n onReset={() => {\n console.log('reset!');\n }}\n required={required}\n />\n <label\n className={classNames(classes.label, {[classes.required]: required})}\n htmlFor={id}>\n {label}\n </label>\n {validity && <ValidationIcon className={classes.icon} />}\n </div>\n );\n }\n);\n\nInputCheckbox.displayName = 'InputCheckbox';\n","import {\n forwardRef,\n Children,\n cloneElement,\n isValidElement,\n type ReactElement,\n type FieldsetHTMLAttributes,\n useMemo,\n} from 'react';\nimport classNames from 'classnames';\n\nimport type {LibraryProps, DataAttributes} from '@/internal/LibraryAPI';\nimport type {ValidationState} from '@/internal/inputs';\n\nimport classes from './InputGroup.module.css';\n\ntype ChildProps = {\n name?: Props['name'];\n disabled?: Props['disabled'];\n required?: Props['required'];\n id?: Props['id'];\n};\n\nexport type Props = DataAttributes &\n LibraryProps & {\n validation?: keyof typeof ValidationState;\n label?: string;\n children: ReactElement<ChildProps & unknown>[];\n name: string;\n /**\n * Disable input.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset\n */\n disabled?: FieldsetHTMLAttributes<HTMLFieldSetElement>['disabled'];\n required?: boolean;\n hint?: string;\n };\n\nexport const InputGroup = forwardRef<HTMLFieldSetElement, Props>(\n (\n {\n className,\n validation,\n id,\n label,\n children,\n name,\n disabled,\n hint,\n required,\n ...nativeProps\n },\n ref\n ) => {\n const childrenWithProps = useMemo(() => {\n return Children.map(children, element => {\n if (isValidElement(element)) {\n const nextProps = {name} as ChildProps;\n /* Check if own prop is set and child doesn't have the same prop */\n if (disabled !== undefined && typeof element.props.disabled !== 'boolean') {\n nextProps.disabled = disabled;\n }\n if (required !== undefined && typeof element.props.required !== 'boolean') {\n nextProps.required = required;\n }\n return cloneElement<ChildProps>(element, nextProps);\n }\n return element;\n });\n }, [children, disabled, name, required]);\n return (\n <fieldset\n {...nativeProps}\n className={classNames(classes.wrapper, className)}\n disabled={disabled}\n id={id}\n ref={ref}>\n <legend className={classNames(classes.legend, {[classes.disabled]: disabled})}>\n {label}\n </legend>\n <div className={classes.inputs}>{childrenWithProps}</div>\n {hint && <div className={classes.hint}>{hint}</div>}\n </fieldset>\n );\n }\n);\n\nInputGroup.displayName = 'InputGroup';\n","import type {ChangeEvent} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport type {\n NativePropsInteractive,\n CallbackPropsInteractive,\n ValidationProps,\n} from '@/internal/inputs';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputRadio.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsInteractive &\n CallbackPropsInteractive &\n Omit<ValidationProps, 'validatorFn'> & {\n label?: string;\n };\n\nexport const InputRadio = forwardRef<HTMLInputElement, Props>(\n (\n {\n className,\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n checked,\n defaultChecked,\n id: idProp,\n label,\n required,\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n },\n [onChange]\n );\n return (\n <div className={classNames(classes.wrapper, className)}>\n <input\n {...nativeProps}\n className={classes.input}\n ref={ref}\n disabled={disabled}\n type=\"radio\"\n id={id}\n value={value}\n checked={checked}\n defaultChecked={defaultChecked}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n required={required}\n />\n <label\n className={classNames(classes.label, {[classes.required]: required})}\n htmlFor={id}>\n {label}\n </label>\n </div>\n );\n }\n);\n\nInputRadio.displayName = 'InputRadio';\n","import type {ChangeEvent, FC, InputHTMLAttributes} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {IconError, IconValid, IconLoader} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputText.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsTextual &\n CallbackPropsTextual &\n ValidationProps & {\n /**\n * Define a type of TextInput. Allows developer to optionally set one from supported\n * text-like input types instead of default 'text'.\n * Non-text types such as `number` or `week` are not allowed.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types\n */\n type?: 'text' | 'email' | 'password' | 'search' | 'tel' | 'url';\n /**\n * Define the width of the input in characters\n */\n size?: InputHTMLAttributes<HTMLInputElement>['size'];\n prefix?: FC;\n };\n\nexport const InputText = forwardRef<HTMLInputElement, Props>(\n (\n {\n prefix: Prefix,\n className,\n type = 'text',\n placeholder = '',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n validatorFn = defaultValidator,\n readOnly,\n size = 16,\n id,\n required,\n ...nativeProps\n },\n ref\n ) => {\n const {validateTextual, validity, setValidity} = useValidation({validatorFn});\n\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n },\n [onChange]\n );\n\n const handleInvalid = useCallback(() => {\n required && setValidity(ValidationState.error);\n }, [required, setValidity]);\n\n const handleSelect = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n readOnly && event.target.select();\n },\n [readOnly]\n );\n\n const inputId = useInternalId(id);\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n {Prefix && (\n <label className={classes.prefix} htmlFor={inputId}>\n <Prefix />\n </label>\n )}\n <input\n {...nativeProps}\n required={required}\n size={size}\n id={inputId}\n readOnly={readOnly}\n placeholder={placeholder}\n className={classes.input}\n ref={ref}\n disabled={disabled}\n type={type}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}\n onSelect={handleSelect}\n />\n {validity && <ValidationIcon />}\n </div>\n );\n }\n);\n\nInputText.displayName = 'InputText';\n","import type {ChangeEvent, FocusEvent} from 'react';\nimport {useRef} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {IconError, IconValid, IconLoader, IconCalendar} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {defaultValidator} from '@/internal/inputs';\nimport {ValidationState, useValidation} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputDate.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'maxLength' | 'minLength' | 'autoComplete' | 'inputMode' | 'pattern'> &\n CallbackPropsTextual &\n ValidationProps & {min?: string; max?: string};\n\nexport const InputDate = forwardRef<HTMLInputElement, Props>(\n (\n {\n id: idProp,\n className,\n placeholder = 'YYYY-MM-DD',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n validatorFn = defaultValidator,\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n const labelRef = useRef<HTMLLabelElement>(null);\n\n const {validateTextual, validity, setValidity} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n const displayValue = (value ?? defaultValue) as string;\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n if (labelRef?.current) {\n labelRef.current.innerText = event.target.value;\n }\n },\n [onChange]\n );\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n onFocus(event);\n event.target.showPicker();\n },\n [onFocus]\n );\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n onBlur(event);\n },\n [onBlur]\n );\n\n const handleInput = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n validateTextual(event);\n },\n [validateTextual]\n );\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n <div className={classes.toggle}>\n <input\n {...nativeProps}\n id={id}\n ref={ref}\n className={classes.input}\n type=\"date\"\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onInvalid={handleInvalid}\n onInput={handleInput}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n />\n <label htmlFor={id} className={classes.icon}>\n <IconCalendar />\n </label>\n </div>\n <label htmlFor={id} className={classes.label} ref={labelRef}>\n {displayValue || placeholder}\n </label>\n {validity && <ValidationIcon className={classes.validity} />}\n </div>\n );\n }\n);\n\nInputDate.displayName = 'InputDate';\n","const padZero = (str: string, len = 2) => {\n const zeros = new Array(len).join('0');\n return (zeros + str).slice(-len);\n};\n\nconst invertColorChannel = (channelValue: number) => {\n return (255 - channelValue).toString(16);\n};\n\nexport const invertColor = (hex?: string, bw?: boolean) => {\n if (hex) {\n if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n if (hex.length !== 6) {\n throw new Error('Invalid HEX color.');\n }\n const red = parseInt(hex.slice(0, 2), 16);\n const green = parseInt(hex.slice(2, 4), 16);\n const blue = parseInt(hex.slice(4, 6), 16);\n if (bw) {\n // https://stackoverflow.com/a/3943023/112731\n return red * 0.299 + green * 0.587 + blue * 0.114 > 186 ? '#000000' : '#FFFFFF';\n }\n // invert color components and pad each with zeros\n return (\n '#' +\n padZero(invertColorChannel(red)) +\n padZero(invertColorChannel(green)) +\n padZero(invertColorChannel(blue))\n );\n }\n return '';\n};\n","import type {ChangeEvent, FocusEvent, InputHTMLAttributes} from 'react';\nimport {useMemo, useRef} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconPalette} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {\n CallbackPropsTextual,\n ValidationProps,\n NativePropsInteractive,\n} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputColor.module.css';\nimport {invertColor} from './invertColor.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsInteractive &\n CallbackPropsTextual &\n Omit<ValidationProps, 'validatorFn'> & {\n /**\n * Set text for placeholder.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#placeholder\n */\n placeholder?: InputHTMLAttributes<HTMLInputElement>['placeholder'];\n /**\n * Provide a list if predefined colors to show in a browser-provided interface. Colors have to be in HEX format #000000.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalist#color_type\n */\n predefinedColors?: string[];\n };\n\nexport const InputColor = forwardRef<HTMLInputElement, Props>(\n (\n {\n className,\n placeholder = '#??????',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n id: idProp,\n predefinedColors = [],\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n\n const {LocalRoot, setTheme} = useLocalTheme();\n const displayValue = (value ?? defaultValue) as string;\n const theme = useMemo(\n () => ({\n 'selected-color': displayValue,\n 'inverted-color': invertColor(displayValue, true),\n }),\n [displayValue]\n );\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n onFocus(event);\n setTheme({\n 'selected-color': event.target.value,\n 'inverted-color': invertColor(event.target.value, true),\n });\n },\n [onFocus, setTheme]\n );\n\n const labelRef = useRef<HTMLLabelElement>(null);\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTheme({\n 'inverted-color': invertColor(event.target.value, true),\n });\n\n if (labelRef?.current) {\n labelRef.current.innerText = event.target.value;\n }\n onBlur(event);\n onChange(event);\n },\n [setTheme, onBlur, onChange]\n );\n\n /* onChange callback makes color picker to lose focus. It triggered in onBlur instead. */\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setTheme({\n 'selected-color': event.target.value,\n 'inverted-color': 'transparent',\n });\n },\n [setTheme]\n );\n\n const hasPredefinedColors = predefinedColors.length > 0;\n const predefinedColorsListId = `${id}_predefinedColors`;\n\n return (\n <LocalRoot theme={theme} className={classNames(classes.wrapper, className)}>\n <div className={classes.toggle}>\n <input\n {...nativeProps}\n id={id}\n ref={ref}\n type=\"color\"\n disabled={disabled}\n defaultValue={displayValue}\n className={classes.input}\n onBlur={handleBlur}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onFocus={handleFocus}\n onChange={handleChange}\n list={hasPredefinedColors ? predefinedColorsListId : undefined}\n />\n <IconPalette className={classNames(classes.icon)} />\n </div>\n <label htmlFor={id} className={classes.label} ref={labelRef}>\n {displayValue.toLowerCase() || placeholder}\n </label>\n {hasPredefinedColors && (\n <datalist id={predefinedColorsListId}>\n {predefinedColors.map(color => {\n return <option key={color} value={color} />;\n })}\n </datalist>\n )}\n </LocalRoot>\n );\n }\n);\n\nInputColor.displayName = 'InputColor';\n","import type {ChangeEvent, KeyboardEvent} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {IconError, IconValid, IconLoader, IconClock} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './InputTime.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'maxLength' | 'minLength' | 'autoComplete' | 'inputMode' | 'size'> &\n Omit<CallbackPropsTextual, 'onChange'> &\n ValidationProps & {\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n min?: string;\n max?: string;\n };\n\nexport const InputTime = forwardRef<HTMLInputElement, Props>(\n (\n {\n className,\n placeholder = '',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n validatorFn = defaultValidator,\n ...nativeProps\n },\n ref\n ) => {\n const inputRef = useInternalRef(ref);\n const {validity, setValidity, validateTextual} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const handleIconClick = useCallback(() => {\n inputRef.current?.focus();\n inputRef.current?.showPicker();\n }, [inputRef]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n onKeyDown(event);\n },\n [onKeyDown]\n );\n\n const handleKeyUp = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n onKeyUp(event);\n },\n [onKeyUp]\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const isValid = event.target.checkValidity();\n isValid && setValidity(ValidationState.valid);\n onChange(event);\n },\n [onChange, setValidity]\n );\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n <IconClock tabIndex={-1} onClick={handleIconClick} className={classes.icon} />\n <input\n {...nativeProps}\n type=\"time\"\n placeholder={placeholder}\n className={classes.input}\n ref={inputRef}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={handleKeyUp}\n onKeyDown={handleKeyDown}\n onInvalid={handleInvalid}\n onChange={handleChange}\n onInput={validateTextual}\n />\n {validity && <ValidationIcon />}\n </div>\n );\n }\n);\n\nInputTime.displayName = 'InputTime';\n","import {useCallback, useRef} from 'react';\n\nimport {useSafeLayoutEffect} from './useSafeLayoutEffect.ts';\n\n/**\n * React hook to persist any value between renders,\n * but keeps it up-to-date if it changes.\n *\n * @param fn the function to persist\n * @param deps the function dependency list\n */\n/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\nexport function useCallbackRef<T extends (...args: any[]) => any>(\n fn: T | undefined,\n deps: React.DependencyList = []\n): T {\n const ref = useRef(fn);\n\n useSafeLayoutEffect(() => {\n ref.current = fn;\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useCallback(((...args) => ref.current?.(...args)) as T, deps);\n}\n","import type {Dispatch, SetStateAction} from 'react';\nimport {useCallback, useState} from 'react';\n\nimport {useCallbackRef} from './useCallbackRef.ts';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isFunction = <T extends Function = Function>(value: unknown): value is T =>\n typeof value === 'function';\n\nexport function runIfFn<T, U>(valueOrFn: T | ((...fnArgs: U[]) => T), ...args: U[]): T {\n return isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn;\n}\n\nexport type UseControllableStateProps<T> = {\n /**\n * The value to used in controlled mode\n */\n value?: T;\n /**\n * The initial value to be used, in uncontrolled mode\n */\n defaultValue?: T | (() => T);\n /**\n * The callback fired when the value changes\n */\n onChange?: (value: T) => void;\n /**\n * The function that determines if the state should be updated\n */\n shouldUpdate?: (prev: T, next: T) => boolean;\n};\n\n/**\n * React hook for using controlling component state.\n * @param props\n */\nexport function useControllableState<T>(props: UseControllableStateProps<T>) {\n const {\n value: valueProp,\n defaultValue,\n onChange,\n shouldUpdate = (prev, next) => prev !== next,\n } = props;\n const onChangeProp = useCallbackRef(onChange);\n const shouldUpdateProp = useCallbackRef(shouldUpdate);\n\n const [valueState, setValue] = useState(defaultValue as T);\n\n const isControlled = valueProp !== undefined;\n const value = isControlled ? (valueProp as T) : valueState;\n\n const updateValue = useCallback(\n (next: SetStateAction<T>) => {\n const nextValue = runIfFn(next, value);\n\n if (!shouldUpdateProp(value, nextValue)) {\n return;\n }\n\n if (!isControlled) {\n setValue(nextValue);\n }\n\n onChangeProp(nextValue);\n },\n [isControlled, onChangeProp, value, shouldUpdateProp]\n );\n\n return [value, updateValue] as [T, Dispatch<SetStateAction<T>>];\n}\n","import type {ChangeEvent, FC, SVGProps} from 'react';\nimport {useMemo} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconError, IconValid, IconLoader} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsNumeric, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useControllableState} from '@/internal/hooks/useControllableState.ts';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputRange.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsNumeric, 'size'> &\n CallbackPropsTextual &\n ValidationProps & {\n prefix?: FC<{className?: string} & SVGProps<SVGSVGElement> & unknown>;\n bars?: number;\n scaleUnit?: string;\n };\n\nconst createOptions = ({\n min,\n max,\n bars,\n scaleUnit,\n}: {\n min: number;\n max: number;\n bars: number;\n scaleUnit?: string;\n}) => {\n const total = max - min;\n const singleBar = total / bars;\n const scale = new Array(bars + 1).fill('');\n return scale.map((_, i) => {\n const value = Math.floor(min + singleBar * i);\n return (\n <option\n value={value}\n label={`- ${value}${scaleUnit}`}\n className={classes.mark}\n key={i}></option>\n );\n });\n};\n\nexport const InputRange = forwardRef<HTMLInputElement, Props>(\n (\n {\n prefix: Prefix,\n id,\n className,\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n validatorFn = defaultValidator,\n min = 0,\n max = 100,\n bars = 5,\n scaleUnit = '',\n ...nativeProps\n },\n ref\n ) => {\n const {validateTextual, validity, setValidity} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n\n const [displayValue, setDisplayValue] = useControllableState({\n value,\n defaultValue,\n });\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setDisplayValue(event.target.value);\n onChange(event);\n },\n [onChange, setDisplayValue]\n );\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const inputId = useInternalId(id);\n const scaleId = `${inputId}-scale`;\n\n const {LocalRoot} = useLocalTheme();\n\n const theme = useMemo(\n () => ({\n 'output-length': max.toString().length + scaleUnit.length,\n }),\n [max, scaleUnit]\n );\n\n return (\n <div className={classNames(classes['input-range'], className)}>\n {Prefix && (\n <label className={classes.prefix} htmlFor={inputId}>\n <Prefix />\n </label>\n )}\n <div className={classes['scale-wrapper']}>\n <input\n {...nativeProps}\n id={inputId}\n type=\"range\"\n className={classes.input}\n ref={ref}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}\n list={scaleId}\n min={min}\n max={max}\n />\n <datalist id={scaleId} className={classes.scale}>\n {createOptions({min: Number(min), max: Number(max), bars, scaleUnit})}\n </datalist>\n </div>\n {/* TODO: add htmlFor when CSS vars hook supports it */}\n <LocalRoot as=\"output\" theme={theme} className={classes.output}>\n {displayValue || Number(max) / 2} {scaleUnit}\n </LocalRoot>\n {validity && <ValidationIcon className={classes.validation} />}\n </div>\n );\n }\n);\n\nInputRange.displayName = 'InputRange';\n","import type {ChangeEvent, InputHTMLAttributes} from 'react';\nimport {useMemo} from 'react';\nimport {useState} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconError, IconValid, IconLoader, IconFile} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputFile.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'inputMode' | 'maxLength' | 'minLength' | 'pattern' | 'readOnly'> &\n CallbackPropsTextual & {\n accept?: InputHTMLAttributes<HTMLInputElement>['accept'];\n multiple?: InputHTMLAttributes<HTMLInputElement>['multiple'];\n };\n\nexport const InputFile = forwardRef<HTMLInputElement, Props>(\n (\n {\n id: idProp,\n className,\n placeholder = '',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n size = 16,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot} = useLocalTheme();\n const theme = useMemo(\n () => ({\n 'input-width': `${size}ch`,\n }),\n [size]\n );\n\n const id = useInternalId(idProp);\n const [filename, setFileName] = useState('');\n const {validateTextual, validity, setValidity} = useValidation({\n validatorFn: defaultValidator,\n });\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n setFileName(event.target.files![0].name);\n },\n [onChange, setFileName]\n );\n\n const handleInvalid = useCallback(() => {\n setFileName('');\n setValidity(ValidationState.error);\n }, [setValidity]);\n return (\n <LocalRoot theme={theme} className={classNames(classes['input-file'], className)}>\n <div className={classes.toggle}>\n <input\n {...nativeProps}\n id={id}\n type=\"file\"\n placeholder={placeholder}\n className={classes.input}\n ref={ref}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}\n />\n <IconFile className={classNames(classes.icon)} />\n </div>\n <label htmlFor={id} className={classes.label}>\n {filename || placeholder}\n </label>\n {validity && <ValidationIcon className={classes.validity} />}\n </LocalRoot>\n );\n }\n);\n\nInputFile.displayName = 'InputFile';\n","import type {ChangeEvent, InputHTMLAttributes, FormEvent} from 'react';\nimport {useMemo} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconError, IconValid, IconLoader, IconArrowUp, IconArrowDown} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsNumeric, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './InputNumber.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsNumeric &\n CallbackPropsTextual &\n ValidationProps & {\n /**\n * Define the width of the input in characters\n */\n size?: InputHTMLAttributes<HTMLInputElement>['size'];\n };\n\nconst ChangeEventSpinner = new Event('change', {bubbles: true});\n\nexport const InputNumber = forwardRef<HTMLInputElement, Props>(\n (\n {\n className,\n placeholder = '',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n validatorFn = defaultValidator,\n size = 10,\n step = 1,\n ...nativeProps\n },\n ref\n ) => {\n const {validateTextual, validity, setValidity} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n },\n [onChange]\n );\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const inputRef = useInternalRef(ref);\n\n const handleDecrement = useCallback(() => {\n inputRef.current!.stepDown();\n inputRef.current!.dispatchEvent(ChangeEventSpinner);\n validateTextual(ChangeEventSpinner as unknown as FormEvent);\n }, [inputRef, validateTextual]);\n\n const handleIncrement = useCallback(() => {\n inputRef.current!.stepUp();\n inputRef.current!.dispatchEvent(ChangeEventSpinner);\n validateTextual(ChangeEventSpinner as unknown as FormEvent);\n }, [inputRef, validateTextual]);\n\n const {LocalRoot} = useLocalTheme();\n const theme = useMemo(() => ({size}), [size]);\n\n return (\n <LocalRoot className={classNames(classes.wrapper, className)} theme={theme}>\n <div className={classes.spinner}>\n <IconArrowUp tabIndex={-1} onClick={handleIncrement} />\n <IconArrowDown tabIndex={-1} onClick={handleDecrement} />\n </div>\n <input\n {...nativeProps}\n step={step}\n size={size}\n type=\"number\"\n placeholder={placeholder}\n className={classes.input}\n ref={inputRef}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}\n />\n {validity && <ValidationIcon className={classes.validation} />}\n </LocalRoot>\n );\n }\n);\n\nInputNumber.displayName = 'InputNumber';\n","import type {ChangeEvent, FC, TextareaHTMLAttributes} from 'react';\nimport {forwardRef, useCallback, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconError, IconValid, IconLoader} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './Textarea.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'inputMode' | 'pattern' | 'size'> &\n CallbackPropsTextual<HTMLTextAreaElement> &\n ValidationProps & {\n prefix?: FC;\n /**\n * The visible width of the text control, in average character widths.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#cols\n */\n cols?: TextareaHTMLAttributes<HTMLTextAreaElement>['cols'];\n /**\n * The number of visible text lines for the control.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#rows\n */\n rows?: TextareaHTMLAttributes<HTMLTextAreaElement>['rows'];\n /**\n * Specifies whether the Textarea is subject to spell checking by the underlying browser/OS.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#spellcheck\n */\n spellCheck?: TextareaHTMLAttributes<HTMLTextAreaElement>['spellCheck'];\n /**\n * Indicates how the control should wrap the value for form submission.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#wrap\n */\n wrap?: TextareaHTMLAttributes<HTMLTextAreaElement>['wrap'];\n /**\n * Set Textarea resizing behavior.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/resize\n */\n resize?: 'horizontal' | 'vertical' | 'both' | 'none';\n };\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, Props>(\n (\n {\n prefix: Prefix,\n className,\n placeholder = '',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n validatorFn = defaultValidator,\n id,\n readOnly,\n cols = 20,\n rows = 3,\n resize = 'both',\n ...nativeProps\n },\n ref\n ) => {\n const {validateTextual, validity, setValidity} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLTextAreaElement>) => {\n onChange(event);\n },\n [onChange]\n );\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const handleInput = useCallback(\n (event: ChangeEvent<HTMLTextAreaElement>) => {\n validateTextual(event);\n },\n [validateTextual]\n );\n\n const handleSelect = useCallback(\n (event: ChangeEvent<HTMLTextAreaElement>) => {\n readOnly && event.target.select();\n },\n [readOnly]\n );\n\n const textareaId = useInternalId(id);\n\n const {LocalRoot} = useLocalTheme();\n\n const theme = useMemo(\n () => ({\n resize,\n }),\n [resize]\n );\n\n return (\n <LocalRoot theme={theme} className={classNames(classes.wrapper, className)}>\n {Prefix && (\n <label className={classes.prefix} htmlFor={textareaId}>\n <Prefix />\n </label>\n )}\n <textarea\n {...nativeProps}\n cols={cols}\n rows={rows}\n readOnly={readOnly}\n id={textareaId}\n placeholder={placeholder}\n className={classes.textarea}\n ref={ref}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={handleInput}\n onSelect={handleSelect}\n />\n {validity && <ValidationIcon className={classes.validation} />}\n </LocalRoot>\n );\n }\n);\n\nTextarea.displayName = 'Textarea';\n","import type {ChangeEvent, FC, SelectHTMLAttributes, FocusEvent, ReactNode} from 'react';\nimport {forwardRef, useCallback, useState, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconError, IconValid, IconLoader, IconExpand, IconCollapse} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {\n NativePropsInteractive,\n CallbackPropsTextual,\n ValidationProps,\n} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './Select.module.css';\n\nenum DropdownState {\n open = 'open',\n close = 'close',\n}\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsInteractive &\n Omit<CallbackPropsTextual<HTMLSelectElement>, 'defaultValue'> &\n ValidationProps & {\n children?: ReactNode;\n prefix?: FC;\n multiple?: SelectHTMLAttributes<HTMLSelectElement>['multiple'];\n /**\n * Define the width of the input in characters\n */\n size?: SelectHTMLAttributes<HTMLSelectElement>['size'];\n };\n\nexport const Select = forwardRef<HTMLSelectElement, Props>(\n (\n {\n prefix: Prefix,\n className,\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n validatorFn = defaultValidator,\n id,\n multiple,\n children,\n size = 16,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot} = useLocalTheme();\n const theme = useMemo(\n () => ({\n 'select-width': `${size}ch`,\n }),\n [size]\n );\n\n const {validateTextual, validity, setValidity} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLSelectElement>) => {\n onChange(event);\n },\n [onChange]\n );\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const selectId = useInternalId(id);\n\n const inputRef = useInternalRef(ref);\n\n const [dropdownState, setDropdownState] = useState<keyof typeof DropdownState>('close');\n\n const Icon = {\n [DropdownState.close]: IconCollapse,\n [DropdownState.open]: IconExpand,\n }[dropdownState];\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLSelectElement>) => {\n onFocus(event);\n setDropdownState(DropdownState.close);\n },\n [onFocus, setDropdownState]\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLSelectElement>) => {\n onBlur(event);\n setDropdownState(DropdownState.open);\n },\n [onBlur, setDropdownState]\n );\n\n return (\n <LocalRoot theme={theme} className={classNames(classes.wrapper, className)}>\n {Prefix && (\n <label className={classes.prefix} htmlFor={selectId}>\n <Prefix />\n </label>\n )}\n <div className={classes.iconWrapper}>\n <select\n {...nativeProps}\n id={selectId}\n multiple={multiple}\n className={classes.select}\n ref={inputRef}\n disabled={disabled}\n value={value}\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}>\n {children}\n </select>\n {!multiple && <Icon className={classes.icon} />}\n </div>\n {validity && <ValidationIcon className={classes.validation} />}\n </LocalRoot>\n );\n }\n);\n\nSelect.displayName = 'Select';\n","import type {FC, ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const Text: FC<Props> = forwardRef<HTMLDivElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <div {...nativeProps} ref={ref} className={classNames(classes.text, className)}>\n {children}\n </div>\n );\n }\n);\n\nText.displayName = 'Text';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const P = forwardRef<HTMLParagraphElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <p {...nativeProps} className={classNames(classes.paragraph, className)} ref={ref}>\n {children}\n </p>\n );\n }\n);\n\nP.displayName = 'P';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const Ul = forwardRef<HTMLUListElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <ul {...nativeProps} className={classNames(classes.ul, className)} ref={ref}>\n {children}\n </ul>\n );\n }\n);\n\nUl.displayName = 'Ul';\n\nexport const Ol = forwardRef<HTMLOListElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <ol {...nativeProps} className={classNames(classes.ol, className)} ref={ref}>\n {children}\n </ol>\n );\n }\n);\n\nOl.displayName = 'Ol';\n\nexport const Dl = forwardRef<HTMLDListElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <dl\n {...nativeProps}\n className={classNames(classes['description-list'], className)}\n ref={ref}>\n {children}\n </dl>\n );\n }\n);\n\nDl.displayName = 'Dl';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const A = forwardRef<HTMLAnchorElement, Props & {href?: string}>(\n ({children, className, href = '#', ...nativeProps}, ref) => {\n return (\n <a\n {...nativeProps}\n href={href}\n className={classNames(classes.link, className)}\n ref={ref}>\n {children}\n </a>\n );\n }\n);\n\nA.displayName = 'A';\n\nexport const B = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <b {...nativeProps} className={classNames(classes.bold, className)} ref={ref}>\n {children}\n </b>\n );\n});\n\nB.displayName = 'B';\n\nexport const Strong = forwardRef<HTMLElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <strong {...nativeProps} className={classNames(classes.strong, className)} ref={ref}>\n {children}\n </strong>\n );\n }\n);\n\nStrong.displayName = 'Strong';\n\nB.displayName = 'B';\n\nexport const I = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <i {...nativeProps} className={classNames(classes.italic, className)} ref={ref}>\n {children}\n </i>\n );\n});\n\nI.displayName = 'I';\n\nexport const Em = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <em {...nativeProps} className={classNames(classes.emphasized, className)} ref={ref}>\n {children}\n </em>\n );\n});\n\nEm.displayName = 'Em';\n\nexport const Mark = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <mark {...nativeProps} className={classNames(classes.marked, className)} ref={ref}>\n {children}\n </mark>\n );\n});\n\nMark.displayName = 'Mark';\n\nexport const Small = forwardRef<HTMLElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <small {...nativeProps} className={classNames(classes.small, className)} ref={ref}>\n {children}\n </small>\n );\n }\n);\n\nSmall.displayName = 'Small';\n\nexport const Del = forwardRef<HTMLModElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <del {...nativeProps} className={classNames(classes.deleted, className)} ref={ref}>\n {children}\n </del>\n );\n }\n);\n\nDel.displayName = 'Del';\n\nexport const Ins = forwardRef<HTMLModElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <ins {...nativeProps} className={classNames(classes.inserted, className)} ref={ref}>\n {children}\n </ins>\n );\n }\n);\n\nIns.displayName = 'Ins';\n\nexport const Sub = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <sub {...nativeProps} className={classNames(classes.subscript, className)} ref={ref}>\n {children}\n </sub>\n );\n});\n\nSub.displayName = 'Sub';\n\nexport const Sup = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <sup {...nativeProps} className={classNames(classes.superscript, className)} ref={ref}>\n {children}\n </sup>\n );\n});\n\nSup.displayName = 'Sup';\n\nexport const Kbd = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <kbd {...nativeProps} className={classNames(classes.keyboard, className)} ref={ref}>\n {children}\n </kbd>\n );\n});\n\nKbd.displayName = 'Kbd';\n\nexport const Code = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <code {...nativeProps} className={classNames(classes.code, className)} ref={ref}>\n {children}\n </code>\n );\n});\n\nCode.displayName = 'Code';\n\nexport const S = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <s {...nativeProps} className={classNames(classes.strikeThrough, className)} ref={ref}>\n {children}\n </s>\n );\n});\n\nS.displayName = 'S';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const H1 = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h1 {...nativeProps} className={classNames(classes.header1, className)} ref={ref}>\n {children}\n </h1>\n );\n }\n);\n\nH1.displayName = 'H1';\n\nexport const H2 = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h2 {...nativeProps} className={classNames(classes.header2, className)} ref={ref}>\n {children}\n </h2>\n );\n }\n);\n\nH2.displayName = 'H2';\n\nexport const H3 = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h3 {...nativeProps} className={classNames(classes.header3, className)} ref={ref}>\n {children}\n </h3>\n );\n }\n);\n\nH3.displayName = 'H3';\n\nexport const H4 = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h4 {...nativeProps} className={classNames(classes.header4, className)} ref={ref}>\n {children}\n </h4>\n );\n }\n);\n\nH4.displayName = 'H4';\n\nexport const H5 = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h5 {...nativeProps} className={classNames(classes.header5, className)} ref={ref}>\n {children}\n </h5>\n );\n }\n);\n\nH5.displayName = 'H5';\n\nexport const H6 = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h6 {...nativeProps} className={classNames(classes.header6, className)} ref={ref}>\n {children}\n </h6>\n );\n }\n);\n\nH6.displayName = 'H6';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const BlockQuote = forwardRef<HTMLQuoteElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <blockquote\n {...nativeProps}\n className={classNames(classes.blockquote, className)}\n ref={ref}>\n {children}\n </blockquote>\n );\n }\n);\n\nBlockQuote.displayName = 'BlockQuote';\n","import {forwardRef, type HTMLAttributes, type ReactNode} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n contentEditable?: HTMLAttributes<HTMLPreElement>['contentEditable'];\n };\n\nexport const Pre = forwardRef<HTMLPreElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <pre {...nativeProps} className={classNames(classes.preformatted, className)} ref={ref}>\n {children}\n </pre>\n );\n }\n);\n\nPre.displayName = 'Pre';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children: ReactNode;\n };\n\nexport const Table = forwardRef<HTMLTableElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <div className={classes['table-wrapper']}>\n <table {...nativeProps} className={classNames(classes.table, className)} ref={ref}>\n {children}\n </table>\n </div>\n );\n }\n);\n\nTable.displayName = 'Table';\n","import {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n max: number;\n min: number;\n value: number;\n low?: number;\n high?: number;\n optimum?: number;\n };\n\nexport const Meter = forwardRef<HTMLMeterElement, Props>(\n ({max, min, value, low, high, optimum, className, ...nativeProps}, ref) => {\n return (\n <meter\n {...nativeProps}\n min={min}\n max={max}\n low={low}\n high={high}\n optimum={optimum}\n value={value}\n className={classNames(classes.meter, className)}\n ref={ref}>\n {value}\n </meter>\n );\n }\n);\n\nMeter.displayName = 'Meter';\n","import type {ReactElement} from 'react';\nimport {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Figure.module.css';\n\nenum Positions {\n center = 'center',\n left = 'left',\n right = 'right',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children: ReactElement;\n caption?: string;\n position?: keyof typeof Positions;\n };\n\nexport const Figure = forwardRef<HTMLDivElement, Props>(\n ({children, className, caption, position = Positions.center, ...nativeProps}, ref) => {\n const theme = useMemo(\n () => ({\n position,\n }),\n [position]\n );\n const {LocalRoot} = useLocalTheme();\n return (\n <LocalRoot theme={theme} className={classes.wrapper}>\n <figure\n {...nativeProps}\n className={classNames(classes.figure, className)}\n ref={ref}>\n {children}\n {caption && <figcaption>{caption}</figcaption>}\n </figure>\n </LocalRoot>\n );\n }\n);\n\nFigure.displayName = 'Figure';\n","import type {Unit} from './SkeletonTypes.ts';\n\nexport const normalizeUnit = (unitProp?: Unit) => {\n if (unitProp === undefined) {\n return 'auto';\n } else if (unitProp === 'fluid') {\n return '100%';\n }\n return `${unitProp}px`;\n};\n","import {useMemo, forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Skeleton.module.css';\nimport type {SkeletonProps} from './SkeletonTypes.ts';\nimport {normalizeUnit} from './normalizeUnit.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n SkeletonProps & {\n borderRadius?: number;\n };\n\nexport const SkeletonShape = forwardRef<HTMLDivElement, Props>(\n (\n {\n className,\n width = 'fluid',\n height,\n borderRadius = 6,\n marginY = 0,\n marginX = 0,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n useLinkRefs(ref, innerRef);\n const theme = useMemo(\n () => ({\n width: normalizeUnit(width),\n height: normalizeUnit(height),\n 'border-radius': borderRadius,\n 'margin-y': marginY,\n 'margin-x': marginX,\n }),\n [borderRadius, height, marginX, marginY, width]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.skeletonShape, className)}\n />\n );\n }\n);\n\nSkeletonShape.displayName = 'SkeletonShape';\n","import type {ReactNode} from 'react';\nimport {useMemo, forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Skeleton.module.css';\nimport {SkeletonShape} from './SkeletonShape.tsx';\nimport type {SkeletonProps} from './SkeletonTypes.ts';\nimport {normalizeUnit} from './normalizeUnit.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n SkeletonProps & {\n children?: ReactNode;\n double?: boolean;\n };\n\nexport const SkeletonAction = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n width = 'fluid',\n height = 'fluid',\n marginY = 24,\n marginX = 0,\n double = false,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n useLinkRefs(ref, innerRef);\n const theme = useMemo(\n () => ({\n width: normalizeUnit(width),\n height: normalizeUnit(height),\n 'margin-y': marginY,\n 'margin-x': marginX,\n }),\n [height, marginX, marginY, width]\n );\n return (\n <LocalRoot\n {...nativeProps}\n className={classNames(classes.skeletonAction, className)}\n theme={theme}>\n <SkeletonShape className={classes.skeletonButton} height={36} />\n {double && <SkeletonShape className={classes.skeletonButton} height={36} />}\n </LocalRoot>\n );\n }\n);\n\nSkeletonAction.displayName = 'SkeletonAction';\n","import type {ReactNode} from 'react';\nimport {useMemo, forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Skeleton.module.css';\nimport type {SkeletonProps} from './SkeletonTypes.ts';\nimport {normalizeUnit} from './normalizeUnit.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n SkeletonProps & {\n borderRadius?: number;\n children?: ReactNode;\n };\n\nexport const SkeletonFrame = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n width = 'fluid',\n height,\n borderRadius = 12,\n marginY = 0,\n marginX = 0,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n useLinkRefs(ref, innerRef);\n const theme = useMemo(\n () => ({\n width: normalizeUnit(width),\n height: normalizeUnit(height),\n 'border-radius': borderRadius,\n 'margin-y': marginY,\n 'margin-x': marginX,\n }),\n [borderRadius, height, marginX, marginY, width]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.skeletonFrame, className)}>\n {children}\n </LocalRoot>\n );\n }\n);\n\nSkeletonFrame.displayName = 'SkeletonFrame';\n","export const createArray = (length: number) => {\n return new Array(length).fill('');\n};\n","import {useMemo, forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {createArray} from '@/internal/utils/createArray.ts';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\nimport {normalizeUnit} from '@/lib/Skeleton/normalizeUnit.ts';\n\nimport classes from './Skeleton.module.css';\nimport {SkeletonShape} from './SkeletonShape.tsx';\nimport type {SkeletonProps} from './SkeletonTypes.ts';\n\nexport type Props = DataAttributes & LibraryProps & SkeletonProps & {lines?: number};\n\nexport const SkeletonText = forwardRef<HTMLDivElement, Props>(\n (\n {\n className,\n width = 'fluid',\n height,\n lines: linesProp = 3,\n marginY = 36,\n marginX = 0,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n useLinkRefs(ref, innerRef);\n const theme = useMemo(\n () => ({\n width: normalizeUnit(width),\n height: normalizeUnit(height),\n 'margin-y': marginY,\n 'margin-x': marginX,\n }),\n [height, marginX, marginY, width]\n );\n const isSingle = linesProp === 1;\n const lines = createArray(linesProp - 1);\n return (\n <LocalRoot\n {...nativeProps}\n className={classNames(classes.skeletonText, className)}\n theme={theme}>\n {isSingle && <SkeletonShape marginY={9} height={24} />}\n {!isSingle &&\n lines.map((_, i) => {\n return <SkeletonShape marginY={9} key={i} height={24} />;\n })}\n {!isSingle && (\n <SkeletonShape marginY={9} className={classes.shortLine} height={24} />\n )}\n </LocalRoot>\n );\n }\n);\n\nSkeletonText.displayName = 'SkeletonText';\n","import type {DetailedHTMLProps, ImgHTMLAttributes} from 'react';\nimport {useCallback, forwardRef, useState} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {SkeletonShape} from '@/lib/Skeleton';\n\nimport classes from './Picture.module.css';\n\ntype IntrinsicWidth = `${number}w`;\ntype DensityDescriptor = `${number}x`;\n\ntype Source = {\n /**\n * Provide the source image url\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/src\n * @see https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types\n */\n src: string;\n /**\n * Provide the source image MIME type\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#type\n */\n type?: string;\n /**\n * Provide media condition for the source image\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#media\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_media_queries\n */\n mediaCondition?: string;\n /**\n * Provide width of the slot the image will fill when the media condition is true\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#sizes\n */\n slotWidth?: string;\n /**\n * Provide the source image display height in pixels\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#height\n */\n width?: number;\n /**\n * Provide the source image display width in pixels\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#width\n */\n height?: number;\n} & (\n | {\n /**\n * Provide the source image width descriptor. Has to be a positive integer directly followed by w. E.g. 480w\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#srcset\n * @see https://developer.mozilla.org/en-US/docs/Glossary/Intrinsic_Size\n */\n intrinsicWidth?: IntrinsicWidth;\n density?: never;\n }\n | {\n intrinsicWidth?: never;\n /**\n * Provide the source image pixel density descriptor. Has to be a positive floating point number directly followed by x. E.g. 2x\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#srcset\n * @see https://developer.mozilla.org/en-US/docs/Glossary/Intrinsic_Size\n */\n density?: DensityDescriptor;\n }\n);\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide default image url\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/src\n */\n src: string;\n /**\n * Set default image width\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/width\n */\n width?: number;\n /**\n * Set default image height\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/height\n */\n height?: number;\n /**\n * Provide alternate text to display when the image is not loaded or for use by assistive devices\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/alt\n */\n alt?: string;\n /**\n * Provide alternative sources configs array\n * @see SourceDensity\n * @see SourceWidth\n */\n sources?: Source[];\n /**\n * Set image loading behavior\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/loading\n */\n loading?: DetailedHTMLProps<\n ImgHTMLAttributes<HTMLImageElement>,\n HTMLImageElement\n >['loading'];\n };\n\nexport const Picture = forwardRef<HTMLDivElement, Props>(\n ({className, alt, src, sources, width, height, loading = 'lazy', ...nativeProps}, ref) => {\n const [isLoaded, setLoaded] = useState(false);\n const handleLoad = useCallback(() => {\n setLoaded(true);\n }, []);\n return (\n <div className={classes.wrapper}>\n <picture\n {...nativeProps}\n className={classNames(\n classes.picture,\n {[classes.loading]: !isLoaded},\n className\n )}\n ref={ref}\n onLoad={handleLoad}>\n {sources?.map(\n ({\n src,\n mediaCondition,\n density = '1x',\n intrinsicWidth,\n slotWidth = '',\n type,\n width: srcWidth,\n height: srcHeight,\n }) => {\n const srcParam = intrinsicWidth ?? density;\n return (\n <source\n type={type}\n srcSet={`${src} ${srcParam}`}\n media={`${mediaCondition} ${slotWidth}`}\n width={srcWidth}\n height={srcHeight}\n key={src}\n />\n );\n }\n )}\n <img width={width} height={height} loading={loading} src={src} alt={alt} />\n </picture>\n {!isLoaded && (\n <SkeletonShape width={width} height={height} className={classes.skeleton} />\n )}\n </div>\n );\n }\n);\n\nPicture.displayName = 'Picture';\n","import {useSafeLayoutEffect} from './useSafeLayoutEffect.ts';\n\n/** Triggers callback when element resizes */\nexport const useResizeObserver = <TElement extends HTMLElement>(\n element: TElement | null | undefined,\n onResize: (element?: TElement | null) => void\n) => {\n useSafeLayoutEffect(() => {\n const handleResize = () => {\n onResize(element);\n };\n\n if (element) {\n const observer = new ResizeObserver(handleResize);\n observer.observe(element);\n return () => {\n observer.disconnect();\n };\n }\n }, [onResize, element]);\n};\n","import type {ReactNode, FC} from 'react';\nimport {useMemo} from 'react';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport classes from './Carousel.module.css';\n\nexport const Cell: FC<{children?: ReactNode; index: number}> = ({children, index}) => {\n const theme = useMemo(\n () => ({\n index,\n }),\n [index]\n );\n const {LocalRoot} = useLocalTheme();\n\n return (\n <LocalRoot theme={theme} className={classes.cell}>\n {children}\n </LocalRoot>\n );\n};\n","import type {FC} from 'react';\nimport {useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport classes from './Carousel.module.css';\n\nexport const Dots: FC<{amount: number; active: number}> = ({amount, active}) => {\n const dotsArray = useMemo(() => Array.from(Array(amount)), [amount]);\n return (\n <div className={classes.dots}>\n {dotsArray.map((_, i) => {\n const isActive = i === active;\n return (\n <div\n className={classNames(classes.dot, {[classes.active]: isActive})}\n key={i}\n />\n );\n })}\n </div>\n );\n};\n","import type {MutableRefObject} from 'react';\nimport {useMemo, useState, useEffect} from 'react';\n\nexport const useIsInViewport = (ref: MutableRefObject<HTMLElement | null>) => {\n const [isIntersecting, setIsIntersecting] = useState(false);\n\n const observer = useMemo(\n () => new IntersectionObserver(([entry]) => setIsIntersecting(entry.isIntersecting)),\n []\n );\n\n useEffect(() => {\n ref.current && observer.observe(ref.current);\n\n return () => {\n observer.disconnect();\n };\n }, [ref, observer]);\n\n return isIntersecting;\n};\n","import {useEffect, useState} from 'react';\n\n/** React hook. Checks if browser tab is visible on screen */\nexport const useDocumentVisible = () => {\n const [documentVisible, setDocumentVisible] = useState(document.visibilityState);\n\n useEffect(() => {\n const handleVisibilityChange = () => setDocumentVisible(document.visibilityState);\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n\n return () => document.removeEventListener('visibilitychange', handleVisibilityChange);\n }, []);\n\n return documentVisible === 'visible';\n};\n","import type {MutableRefObject} from 'react';\n\nimport {useInterval} from '@/internal/hooks/useInterval.ts';\nimport {useIsInViewport} from '@/internal/hooks/useIsInViewport.tsx';\nimport {useDocumentVisible} from '@/internal/hooks/useDocumentVisible.ts';\n\ntype Props = {\n rotateFn: () => void;\n interval?: number | null;\n ref: MutableRefObject<HTMLElement | null>;\n};\n\nexport const useAutoRotate = ({rotateFn, interval = null, ref}: Props) => {\n const isInViewport = useIsInViewport(ref);\n const isActiveTab = useDocumentVisible();\n const isEnabled = Boolean(interval) && isInViewport && isActiveTab;\n useInterval({callback: rotateFn, interval, condition: isEnabled});\n};\n","import type {ReactNode} from 'react';\nimport {Children, forwardRef, useMemo, useState, useCallback, useRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {IconArrowLeft, IconArrowRight} from '@/internal/Icons';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\nimport {useResizeObserver} from '@/internal/hooks/useResizeObserver.ts';\n\nimport {Cell} from './Cell.tsx';\nimport {Dots} from './Dots.tsx';\nimport {useAutoRotate} from './useAutoRotate.ts';\nimport classes from './Carousel.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n width: number;\n height: number;\n children?: ReactNode;\n defaultVisible?: number;\n showDots?: boolean;\n showArrows?: boolean;\n /** Provide time interval in seconds to auto rotate Carousel */\n autoRotate?: number;\n /** Callback when user clicks navigation arrows */\n onRotate?: (index: number) => void;\n };\n\nconst getVisibleIndex = (index: number, length: number) => {\n return index % length >= 0 ? index % length : length + (index % length);\n};\n\n// CSS formulas\n// const getTranslateZ = (width: number, amount: number) => width / (2 * Math.tan(Math.PI / amount));\n// const getRotateY = (amount: number, index: number) => Math.round(index * (360 / amount));\n// see https://3dtransforms.desandro.com/carousel\n\nexport const Carousel = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n width,\n height,\n defaultVisible = 0,\n showDots = true,\n showArrows = true,\n autoRotate,\n onRotate = () => {},\n ...nativeProps\n },\n ref\n ) => {\n const initialState = defaultVisible !== 0 ? defaultVisible - 1 : defaultVisible;\n\n const [visible, setVisible] = useState(initialState);\n\n const cellsAmount = Children.toArray(children).length;\n\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n\n useLinkRefs(ref, innerRef);\n\n const viewPortRef = useRef<HTMLDivElement>(null);\n\n const [elementWidth, setElementWidth] = useState(width);\n const [elementHeight, setElementHeight] = useState(height);\n\n const handleResize = useCallback(\n (parent?: HTMLDivElement | null) => {\n const parentWidth = parent?.offsetWidth;\n if (parentWidth && parentWidth < elementWidth) {\n const nextHeight = height * (parentWidth / width);\n setElementWidth(parentWidth);\n setElementHeight(nextHeight);\n } else if (parentWidth && parentWidth > elementWidth) {\n setElementWidth(width);\n setElementHeight(height);\n }\n },\n [elementWidth, height, width]\n );\n\n useResizeObserver(innerRef.current?.parentElement as HTMLDivElement, handleResize);\n\n const theme = useMemo(\n () => ({\n width: elementWidth,\n height: elementHeight,\n 'cells-amount': cellsAmount,\n rotations: visible,\n }),\n [elementWidth, elementHeight, cellsAmount, visible]\n );\n\n const visibleIndex = getVisibleIndex(visible, cellsAmount);\n\n const handleIncrement = useCallback(() => {\n const nextVisible = visible + 1;\n setVisible(nextVisible);\n onRotate(getVisibleIndex(nextVisible, cellsAmount));\n }, [visible, onRotate, cellsAmount]);\n\n const handleDecrement = useCallback(() => {\n const nextVisible = visible - 1;\n setVisible(nextVisible);\n onRotate(getVisibleIndex(nextVisible, cellsAmount));\n }, [visible, onRotate, cellsAmount]);\n\n const handleRotate = useCallback(() => {\n setVisible(visible + 1);\n }, [visible, setVisible]);\n\n useAutoRotate({\n rotateFn: handleRotate,\n interval: autoRotate && autoRotate * 1000,\n ref: innerRef,\n });\n\n const cells = useMemo(\n () =>\n Children.toArray(children).map((element, index) => {\n return (\n <Cell index={index} key={index}>\n {element}\n </Cell>\n );\n }),\n [children]\n );\n\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.carousel, className)}>\n <div className={classes.scene}>\n {showArrows && (\n <button\n className={classNames(classes.navigation, classes.left)}\n onClick={handleDecrement}>\n <IconArrowLeft className={classes.icon} />\n </button>\n )}\n <div className={classes.viewport} ref={viewPortRef}>\n {cells}\n </div>\n {showArrows && (\n <button\n className={classNames(classes.navigation, classes.right)}\n onClick={handleIncrement}>\n <IconArrowRight className={classes.icon} />\n </button>\n )}\n </div>\n {showDots && (\n <Dots amount={Children.toArray(children).length} active={visibleIndex} />\n )}\n </LocalRoot>\n );\n }\n);\n\nCarousel.displayName = 'Carousel';\n","import type {MutableRefObject} from 'react';\nimport {useState} from 'react';\n\nimport {useSafeLayoutEffect} from '@/internal/hooks/useSafeLayoutEffect.ts';\n\nexport const useIsOverflow = <TElement extends HTMLElement | null>(\n ref: MutableRefObject<TElement>\n) => {\n const [overflowY, setOverflowY] = useState<boolean | undefined>(undefined);\n const [overflowX, setOverflowX] = useState<boolean | undefined>(undefined);\n\n useSafeLayoutEffect(() => {\n const {current} = ref;\n\n // const trigger = () => {\n // const hasOverflowY = current.scrollHeight > current.clientHeight;\n // const hasOverflowX = current.scrollWidth > current.clientWidth;\n //\n // setOverflowY(hasOverflowY);\n // setOverflowX(hasOverflowX);\n // };\n\n if (current) {\n const hasOverflowY = current.scrollHeight > current.clientHeight;\n const hasOverflowX = current.scrollWidth > current.clientWidth;\n\n setOverflowY(hasOverflowY);\n setOverflowX(hasOverflowX);\n }\n }, [ref]);\n\n return {overflowY, overflowX};\n};\n","import type {FC, HTMLAttributes} from 'react';\nimport {useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport classes from './Tabs.module.css';\n\ntype Props = {\n tabName: string;\n activeName: string;\n onClick: (tabName: string) => void;\n icon?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n};\n\nexport const TabButton: FC<Props> = ({tabName, onClick, icon: Icon, activeName}) => {\n const handleClick = useCallback(() => {\n onClick(tabName);\n }, [onClick, tabName]);\n return (\n <button\n type=\"button\"\n key={tabName}\n onClick={handleClick}\n className={classNames(classes.button, {[classes.selected]: activeName === tabName})}>\n {Icon && <Icon className={classes.icon} />}\n {tabName}\n </button>\n );\n};\n","import type {ReactElement} from 'react';\nimport {useEffect, useMemo, forwardRef, Children, useState, useCallback, useRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\nimport {useIsOverflow} from '@/internal/hooks/useIsOverflow.ts';\nimport {IconScroll} from '@/internal/Icons';\n\nimport type {Props as TabProps} from './Tab.tsx';\nimport {TabButton} from './TabButton.tsx';\nimport classes from './Tabs.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n selected?: string;\n width?: number;\n height?: number;\n children: ReactElement<TabProps> | ReactElement<TabProps>[];\n onToggle?: (tabName: string) => void;\n };\n\nexport const Tabs = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n selected: selectedProp,\n width,\n height,\n onToggle = () => {},\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n\n useLinkRefs(ref, innerRef);\n\n const theme = useMemo(() => {\n let theme = {};\n if (height) {\n theme = {...theme, height};\n }\n if (width) {\n theme = {...theme, width};\n }\n return theme;\n }, [height, width]);\n\n const initiallySelected = useMemo(\n () =>\n selectedProp\n ? selectedProp\n : (Children.toArray(children)[0] as ReactElement<TabProps>).props.name,\n [children, selectedProp]\n );\n\n const [selected, setSelected] = useState(initiallySelected);\n\n useEffect(() => {\n if (selectedProp) {\n setSelected(selectedProp);\n } else {\n setSelected(initiallySelected);\n }\n }, [selectedProp, initiallySelected]);\n\n const handleClick = useCallback(\n (tabName: string) => {\n setSelected(tabName);\n onToggle(tabName);\n },\n [onToggle]\n );\n\n const tabs = useMemo(\n () =>\n Children.map(children, element => {\n return {tabName: element.props.name, icon: element.props.icon};\n }),\n [children]\n );\n\n const visibleTab = useMemo(\n () =>\n (Children.toArray(children) as ReactElement<TabProps>[]).find(\n element => element.props.name === selected\n ),\n [children, selected]\n );\n\n const headerRef = useRef<HTMLElement>(null);\n\n const {overflowX} = useIsOverflow(headerRef);\n\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.tabs, className)}>\n <div className={classes.viewport}>\n <header ref={headerRef} className={classes.header}>\n {tabs.map(({tabName, icon}) => {\n return (\n <TabButton\n key={tabName}\n icon={icon}\n onClick={handleClick}\n tabName={tabName}\n activeName={selected}\n />\n );\n })}\n </header>\n {overflowX && (\n <div className={classes['overflow-indicator']}>\n <IconScroll />\n </div>\n )}\n </div>\n <div className={classes.content}>{visibleTab}</div>\n </LocalRoot>\n );\n }\n);\n\nTabs.displayName = 'Tabs';\n","import type {FC, HTMLAttributes, ReactNode} from 'react';\nimport {useRef} from 'react';\n\nimport {TransitionFade} from '@/internal/Transitions';\n\nimport classes from './Tabs.module.css';\n\nexport type Props = {\n name: string;\n children: ReactNode;\n icon?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n};\n\nexport const Tab: FC<Props> = ({children}) => {\n const ref = useRef(null);\n return (\n <TransitionFade nodeRef={ref} show={true}>\n <div ref={ref} className={classes.tab}>\n {children}\n </div>\n </TransitionFade>\n );\n};\n","export enum Variants {\n bordered = 'bordered',\n plain = 'plain',\n}\n","import type {ReactNode} from 'react';\nimport {useCallback} from 'react';\nimport {useState, useEffect} from 'react';\nimport {forwardRef, Fragment} from 'react';\nimport classNames from 'classnames';\nimport {useFloating, autoUpdate, size, offset, autoPlacement} from '@floating-ui/react-dom';\nimport {useRootTheme, useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {Portal} from '@/internal/Portal';\nimport {useDismiss} from '@/internal/hooks/useDismiss.ts';\nimport {useFocusTrap} from '@/internal/hooks/useFocusTrap.ts';\n\nimport classes from './Menu.module.css';\nimport {Variants} from './Variants.ts';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children: ReactNode;\n /** Control visibility of Menu */\n isOpen?: boolean;\n /**\n * Provide Tooltip content\n * @example\n * <Menu content={<div>Foo<div>} //... />\n */\n content: ReactNode;\n /** Set class name of reference component wrapper */\n referenceClassName?: string;\n /** Provide callback for open/close events */\n onToggle?: (openState: boolean) => void;\n /** Focus on first element when open and trap focus */\n trapFocus?: boolean;\n /** Align Menu width with reference element */\n alignWidth?: boolean;\n /** Set design of Menu */\n variant?: keyof typeof Variants;\n };\n\nexport const Menu = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n isOpen: openProp = false,\n content,\n referenceClassName,\n onToggle = () => {},\n trapFocus = true,\n alignWidth = true,\n variant = Variants.plain,\n ...nativeProps\n },\n ref\n ) => {\n const [isOpen, setOpen] = useState(openProp);\n useEffect(() => {\n setOpen(openProp);\n }, [openProp, setOpen]);\n useEffect(() => {\n onToggle(isOpen);\n }, [isOpen, onToggle]);\n const {refs, floatingStyles} = useFloating<HTMLDivElement>({\n strategy: 'fixed',\n whileElementsMounted: autoUpdate,\n middleware: [\n alignWidth &&\n size({\n apply({rects, elements}) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n });\n },\n }),\n offset(18),\n autoPlacement(),\n ],\n });\n const {LocalRoot} = useLocalTheme();\n const {getTheme} = useRootTheme();\n\n const handleDismiss = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n useDismiss(handleDismiss, refs.reference, isOpen);\n useFocusTrap(refs.floating.current, isOpen, trapFocus);\n\n return (\n <Fragment>\n <div\n ref={refs.setReference}\n className={classNames(classes.reference, referenceClassName)}>\n {children}\n </div>\n {isOpen && (\n <Portal>\n <div ref={refs.setFloating} style={floatingStyles}>\n <LocalRoot className={classes.provider} theme={getTheme()}>\n <div\n {...nativeProps}\n ref={ref}\n className={classNames(\n classes.menu,\n {\n [classes.bordered]: variant === Variants.bordered,\n [classes.plain]: variant === Variants.plain,\n },\n className\n )}>\n {content}\n </div>\n </LocalRoot>\n </div>\n </Portal>\n )}\n </Fragment>\n );\n }\n);\n\nMenu.displayName = 'Menu';\n","import type {FC, ComponentProps} from 'react';\n\nimport {Actions, Variants as ActionVariants} from '@/internal/Actions';\n\nimport {Variants as MenuVariants} from './Variants.ts';\nimport type {Props as MenuProps} from './Menu.tsx';\nimport {Menu} from './Menu.tsx';\nimport classes from './Menu.module.css';\n\nexport type Props = Omit<MenuProps, 'content' | 'alignWidth'> & {\n actions?: ComponentProps<typeof Actions>['actions'];\n};\n\nexport const MenuActions: FC<Props> = ({\n children,\n /** Provide an array of actions with callbacks */\n actions = [],\n /** Set design of Menu */\n variant = MenuVariants.bordered,\n ...restProps\n}) => {\n const actionsVariant = {\n [MenuVariants.plain]: ActionVariants.inverted,\n [MenuVariants.bordered]: ActionVariants.primary,\n }[variant] as keyof typeof ActionVariants;\n return (\n <Menu\n {...restProps}\n variant={variant}\n content={\n <Actions\n variant={actionsVariant}\n actions={actions}\n classNameRow={classes.row}\n classNameAction={classes.actionButton}\n />\n }\n alignWidth={false}>\n {children}\n </Menu>\n );\n};\n","import {forwardRef, useMemo} from 'react';\nimport type {Placement} from '@floating-ui/react-dom';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Tooltip.module.css';\n\nexport type Props = {\n placement: Placement;\n left?: number;\n top?: number;\n};\n\nexport const Arrow = forwardRef<HTMLDivElement, Props>(({placement, left, top}, ref) => {\n const position = placement.split('-')[0];\n const {LocalRoot, ref: rootRef} = useLocalTheme<HTMLDivElement>();\n const theme = useMemo(() => {\n const result = {} as {top?: Props['top']; left?: Props['left']};\n if (top) {\n result.top = top;\n }\n if (left) {\n result.left = left;\n }\n return result;\n }, [left, top]);\n useLinkRefs<HTMLDivElement>(ref, rootRef);\n return (\n <LocalRoot\n theme={theme}\n className={classNames(classes.arrow, {\n [classes.bottom]: position === 'bottom',\n [classes.left]: position === 'left',\n [classes.top]: position === 'top',\n [classes.right]: position === 'right',\n })}></LocalRoot>\n );\n});\n\nArrow.displayName = 'Arrow';\n","import type {ReactNode} from 'react';\nimport {useCallback} from 'react';\nimport {useState, useEffect, useRef} from 'react';\nimport {forwardRef, Fragment} from 'react';\nimport classNames from 'classnames';\nimport type {Placement} from '@floating-ui/react-dom';\nimport {useFloating, autoUpdate, offset, arrow, flip} from '@floating-ui/react-dom';\nimport {useRootTheme, useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {Portal} from '@/internal/Portal';\nimport {useDismiss} from '@/internal/hooks/useDismiss.ts';\nimport {useFocusTrap} from '@/internal/hooks/useFocusTrap.ts';\n\nimport {Arrow} from './Arrow.tsx';\nimport classes from './Tooltip.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children: ReactNode;\n /** Control visibility of Tooltip */\n isOpen?: boolean;\n /**\n * Provide Tooltip content\n * @example\n * <Tooltip content={<div>Foo<div>} //... />\n */\n content: ReactNode;\n /** Set class name of reference component wrapper */\n referenceClassName?: string;\n /** Provide callback for open/close events */\n onToggle?: (openState: boolean) => void;\n /** Make user interactions with Tooltip possible */\n interactive?: boolean;\n /** Define recommended placement for Tooltip content, applied when possible */\n placement?: Placement;\n };\n\nexport const Tooltip = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n isOpen: openProp = false,\n content,\n referenceClassName,\n onToggle = () => {},\n interactive = true,\n placement: placementProp = 'bottom',\n ...nativeProps\n },\n ref\n ) => {\n const [isOpen, setOpen] = useState(openProp);\n useEffect(() => {\n setOpen(openProp);\n }, [openProp, setOpen]);\n useEffect(() => {\n onToggle(isOpen);\n }, [isOpen, onToggle]);\n\n const arrowRef = useRef(null);\n\n const {refs, floatingStyles, middlewareData, placement} = useFloating<HTMLDivElement>({\n strategy: 'fixed',\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(18),\n flip(),\n arrow({\n element: arrowRef,\n }),\n ],\n });\n const {LocalRoot} = useLocalTheme();\n const {getTheme} = useRootTheme();\n\n const handleDismiss = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n useDismiss(handleDismiss, refs.reference, isOpen);\n useFocusTrap(refs.floating.current, isOpen, interactive);\n\n return (\n <Fragment>\n <div\n ref={refs.setReference}\n className={classNames(classes.reference, referenceClassName)}>\n {children}\n </div>\n {isOpen && (\n <Portal>\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n className={classNames({[classes.unfocusable]: !interactive})}>\n <LocalRoot className={classes.provider} theme={getTheme()}>\n <div\n {...nativeProps}\n ref={ref}\n className={classNames(classes.tooltip, className)}>\n <Arrow\n ref={arrowRef}\n placement={placement}\n left={middlewareData.arrow?.x}\n top={middlewareData.arrow?.y}\n />\n {content}\n </div>\n </LocalRoot>\n </div>\n </Portal>\n )}\n </Fragment>\n );\n }\n);\n\nTooltip.displayName = 'Tooltip';\n","import type {FC} from 'react';\nimport {useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport classes from './Pagination.module.css';\n\ntype Props = {pageNumber: number; onClick?: (pageNumber: number) => void; isActive: boolean};\n\nexport const PageButton: FC<Props> = ({pageNumber, onClick = () => {}, isActive}) => {\n const handleClick = useCallback(() => {\n onClick(pageNumber);\n }, [onClick, pageNumber]);\n return (\n <button\n disabled={isActive}\n className={classNames(classes.pageButton, {[classes.active]: isActive})}\n onClick={handleClick}>\n {pageNumber}\n </button>\n );\n};\n","import {useCallback, useState} from 'react';\n\nconst getVisible = (totalPages: number, selectedPage: number) => {\n switch (selectedPage) {\n case 1: {\n return [selectedPage + 1, selectedPage + 2, selectedPage + 3];\n }\n case 2: {\n return [selectedPage, selectedPage + 1, selectedPage + 2];\n }\n case totalPages: {\n return [selectedPage - 3, selectedPage - 2, selectedPage - 1];\n }\n case totalPages - 1: {\n return [selectedPage - 2, selectedPage - 1, selectedPage];\n }\n default: {\n return [selectedPage - 1, selectedPage, selectedPage + 1];\n }\n }\n};\n\nexport const usePagePaginationState = (totalPages: number, initiallySelected: number) => {\n const [selectedPage, setSelectedPage] = useState(initiallySelected);\n const first = 1;\n const last = totalPages;\n const visible = getVisible(totalPages, selectedPage);\n const nextPage = selectedPage + 1 <= totalPages ? selectedPage + 1 : 1;\n const previousPage = selectedPage - 1 >= 1 ? selectedPage - 1 : totalPages;\n const isLong = totalPages > 7;\n const maxDigits = totalPages.toString().length + 1;\n const checkValidity = useCallback(\n (pageNumber: number | null) => {\n if (pageNumber === null) {\n return true;\n }\n return pageNumber >= 1 && pageNumber <= totalPages;\n },\n [totalPages]\n );\n return {\n first,\n last,\n visible,\n setSelectedPage,\n selectedPage,\n nextPage,\n previousPage,\n isLong,\n maxDigits,\n checkValidity,\n };\n};\n","import type {ReactNode, ChangeEvent, KeyboardEvent} from 'react';\nimport {useMemo} from 'react';\nimport {useCallback, useEffect, useState, Fragment, forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {createArray} from '@/internal/utils/createArray.ts';\nimport {IconForward, IconBackward, IconEnter} from '@/internal/Icons';\n\nimport {PageButton} from './PageButton.tsx';\nimport {usePagePaginationState} from './usePagePaginationState.ts';\nimport classes from './Pagination.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Set total amount of pages */\n totalPages: number;\n /** Callback to run on page change */\n onPageSelect: (pageNumber: number) => void;\n /** Set selected page externally */\n selectedPage: number;\n /** Show navigation block on the right */\n showNavigation?: boolean;\n /** Show page number buttons on the left */\n showPageButtons?: boolean;\n };\n\nexport const Pagination = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n totalPages,\n onPageSelect,\n selectedPage: selectedPageProp,\n showNavigation = true,\n showPageButtons = true,\n ...nativeProps\n },\n ref\n ) => {\n const {\n visible,\n first,\n last,\n selectedPage,\n setSelectedPage,\n nextPage,\n previousPage,\n isLong,\n maxDigits,\n checkValidity,\n } = usePagePaginationState(totalPages, selectedPageProp);\n\n const [inputPage, setInputPage] = useState<number | null>(selectedPage);\n\n useEffect(() => {\n setSelectedPage(selectedPageProp);\n }, [selectedPageProp, setSelectedPage]);\n\n const handlePageSelect = useCallback(\n (pageNumber: number) => {\n setSelectedPage(pageNumber);\n onPageSelect(pageNumber);\n },\n [onPageSelect, setSelectedPage]\n );\n\n const handleIncrement = useCallback(() => {\n setSelectedPage(nextPage);\n onPageSelect(nextPage);\n }, [nextPage, onPageSelect, setSelectedPage]);\n\n const handleDecrement = useCallback(() => {\n setSelectedPage(previousPage);\n onPageSelect(previousPage);\n }, [onPageSelect, previousPage, setSelectedPage]);\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = event.target.value !== '' ? parseInt(event.target.value) : null;\n setInputPage(nextValue);\n },\n [setInputPage]\n );\n\n const handleSubmitClick = useCallback(() => {\n checkValidity(inputPage) && inputPage !== null && handlePageSelect(inputPage);\n }, [checkValidity, handlePageSelect, inputPage]);\n\n const handleInputEnter = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n checkValidity(inputPage) && inputPage !== null && handlePageSelect(inputPage);\n }\n },\n [checkValidity, handlePageSelect, inputPage]\n );\n\n const {LocalRoot} = useLocalTheme();\n\n const theme = useMemo(\n () => ({\n digits: maxDigits,\n }),\n [maxDigits]\n );\n\n return (\n <div {...nativeProps} className={classNames(classes.pagination, className)} ref={ref}>\n {showPageButtons && (\n <div className={classes.buttons}>\n {!isLong &&\n createArray(totalPages).map((_, i) => {\n const pageNumber = i + 1;\n const isActive = pageNumber === selectedPage;\n return (\n <PageButton\n key={i}\n isActive={isActive}\n onClick={handlePageSelect}\n pageNumber={i + 1}\n />\n );\n })}\n {isLong && (\n <Fragment>\n <PageButton\n isActive={first === selectedPage}\n onClick={handlePageSelect}\n pageNumber={first}\n />\n <div className={classes.ellipsis}>…</div>\n {visible.map(pageNumber => {\n const isActive = pageNumber === selectedPage;\n return (\n <PageButton\n key={pageNumber}\n isActive={isActive}\n onClick={handlePageSelect}\n pageNumber={pageNumber}\n />\n );\n })}\n <div className={classes.ellipsis}>…</div>\n <PageButton\n isActive={last === selectedPage}\n onClick={handlePageSelect}\n pageNumber={last}\n />\n </Fragment>\n )}\n </div>\n )}\n\n {showNavigation && (\n <LocalRoot className={classes.navigation} theme={theme}>\n <div className={classes.navigationBlock}>\n <button onClick={handleDecrement} className={classes.navigationButton}>\n <IconBackward className={classes.icon} />\n </button>\n <button onClick={handleIncrement} className={classes.navigationButton}>\n <IconForward className={classes.icon} />\n </button>\n </div>\n <div className={classes.navigationBlock}>\n <input\n className={classNames(classes.input, {\n [classes.error]: !checkValidity(inputPage),\n })}\n min={first}\n max={last}\n pattern=\"[0-9]{10}\"\n step=\"1\"\n size={maxDigits}\n type=\"number\"\n defaultValue={selectedPage}\n onChange={handleInputChange}\n onKeyUp={handleInputEnter}\n />\n <button\n disabled={!checkValidity(inputPage) || inputPage === null}\n className={classes.navigationButton}\n onClick={handleSubmitClick}>\n <IconEnter className={classes.icon} />\n </button>\n </div>\n </LocalRoot>\n )}\n </div>\n );\n }\n);\n\nPagination.displayName = 'Pagination';\n","import type {ComponentProps, ReactNode} from 'react';\nimport {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\nimport {Picture} from '@/lib';\nimport type {ActionButton} from '@/internal/Actions';\nimport {ActionsTree} from '@/internal/Actions';\n\nimport classes from './Card.module.css';\n\nenum Variants {\n horizontal = 'horizontal',\n vertical = 'vertical',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Provide an url for header image */\n headerImageUrl?: string;\n /** Provide an array of actions with callbacks */\n actions?: (\n | ComponentProps<typeof ActionButton>\n | [ComponentProps<typeof ActionButton>, ComponentProps<typeof ActionButton>]\n )[];\n /** Set vertical or horizontal layout for the card */\n variant?: keyof typeof Variants;\n /** Provide width of the card. Applied in vertical mode */\n width?: number;\n /** Provide height of the card. Applied in horizontal mode */\n height?: number;\n };\n\nexport const Card = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n headerImageUrl,\n actions = [],\n id: idProp,\n variant = 'vertical',\n width,\n height,\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n const {LocalRoot, ref: internalRef} = useLocalTheme<HTMLDivElement>();\n useLinkRefs(ref, internalRef);\n const theme = useMemo(\n () => ({width: width ? `${width}px` : 'auto', height: height ? `${height}px` : 'auto'}),\n [height, width]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n id={id}\n className={classNames(\n classes.card,\n {\n [classes.vertical]: variant === Variants.vertical,\n [classes.horizontal]: variant === Variants.horizontal,\n },\n className\n )}>\n {headerImageUrl && <Picture className={classes.headerImage} src={headerImageUrl} />}\n <div className={classes.body}>{children}</div>\n <footer className={classes.actions}>\n <ActionsTree\n actions={actions}\n classNameAction={classes.actionButton}\n classNameRow={classes.row}\n />\n </footer>\n </LocalRoot>\n );\n }\n);\n\nCard.displayName = 'Card';\n","import {useState, useEffect} from 'react';\n\n/**\n * React hook, use to match media queries\n * @see https://fireship.io/snippets/use-media-query-hook/\n */\nexport const useMatchMedia = (query: string) => {\n const [matches, setMatches] = useState(false);\n\n useEffect(() => {\n const matchMedia = window.matchMedia;\n // fallback for usage in tests\n if (!matchMedia) {\n return;\n }\n const media = matchMedia(query);\n if (media.matches !== matches) {\n setMatches(media.matches);\n }\n const listener = () => setMatches(media.matches);\n window.addEventListener('resize', listener);\n return () => window.removeEventListener('resize', listener);\n }, [matches, query]);\n\n return matches;\n};\n","import type {ReactNode} from 'react';\nimport {useCallback} from 'react';\nimport {forwardRef, Fragment} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useMatchMedia} from '@/internal/hooks/useMatchMedia.tsx';\nimport {IconMenu} from '@/internal/Icons';\nimport {Drawer, useDrawerState} from '@/lib/Drawer';\n\nimport classes from './Navigation.module.css';\n\nenum Layouts {\n horizontal = 'horizontal',\n vertical = 'vertical',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n layout?: keyof typeof Layouts;\n collapsible?: boolean;\n collapsibleLabel?: string;\n };\n\nexport const NavList = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n layout = Layouts.vertical,\n collapsible = true,\n collapsibleLabel = 'Toggle menu',\n ...nativeProps\n },\n ref\n ) => {\n const isBigScreen = useMatchMedia('(width >= 640px)');\n const collapsed = collapsible && !isBigScreen && layout === Layouts.horizontal;\n const {openDrawer, isOpen, closeDrawer} = useDrawerState('foo');\n const handleClick = useCallback(() => {\n !isOpen && openDrawer();\n isOpen && closeDrawer();\n }, [closeDrawer, isOpen, openDrawer]);\n return collapsed ? (\n <Fragment>\n <button\n type=\"button\"\n onClick={handleClick}\n className={classes.buttonCollapsible}\n aria-label={collapsibleLabel}>\n <IconMenu className={classes.iconCollapsible} />\n </button>\n <Drawer id=\"foo\">\n <div\n {...nativeProps}\n className={classNames(classes.navList, classes.vertical, className)}\n ref={ref}>\n {children}\n </div>\n </Drawer>\n </Fragment>\n ) : (\n <div\n {...nativeProps}\n className={classNames(\n classes.navList,\n classes.full,\n {\n [classes.vertical]: layout === Layouts.vertical,\n [classes.horizontal]: layout === Layouts.horizontal,\n },\n className\n )}\n ref={ref}>\n {children}\n </div>\n );\n }\n);\n\nNavList.displayName = 'NavList';\n","import type {FC, ElementType, HTMLAttributes, AriaAttributes, ReactNode, ForwardedRef} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Navigation.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n title: string;\n href: string;\n as?: ElementType<\n AriaAttributes &\n DataAttributes & {\n href: string;\n className?: string;\n title?: string;\n children?: ReactNode;\n ref?: ForwardedRef<HTMLElement>;\n } & unknown\n >;\n icon?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n shift?: boolean;\n isCurrent?: boolean;\n };\n\nexport const NavLink = forwardRef<HTMLElement, Props>(\n (\n {\n title,\n as: Component = 'a',\n href,\n icon: Icon,\n shift = false,\n className,\n isCurrent,\n ...nativeProps\n },\n ref\n ) => {\n return (\n <Component\n {...nativeProps}\n ref={ref}\n title={title}\n className={classNames(\n classes.navLink,\n {\n [classes.shift]: shift,\n [classes.current]: isCurrent,\n },\n className\n )}\n href={href}>\n {Icon && <span>{<Icon className={classes.navLinkIcon} title={title} />}</span>}\n <span className={classes.navLinkTitle}>{title}</span>\n </Component>\n );\n }\n);\n\nNavLink.displayName = 'NavLink';\n","import type {FC, ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Navigation.module.css';\n\nexport type Props = DataAttributes & LibraryProps & {children: ReactNode; className?: string};\n\nexport const NavBrand: FC<Props> = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h1 {...nativeProps} className={classNames(classes.name, className)} ref={ref}>\n {children}\n </h1>\n );\n }\n);\n\nNavBrand.displayName = 'NavBrand';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Navigation.module.css';\nimport {NavBrand} from './NavBrand.tsx';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n name?: string;\n children?: ReactNode;\n };\n\nexport const NavPanel = forwardRef<HTMLDivElement, Props>(\n ({children, className, name = 'Koval App', ...nativeProps}, ref) => {\n return (\n <div {...nativeProps} className={classNames(classes.navPanel, className)} ref={ref}>\n {name && <NavBrand>{name}</NavBrand>}\n {children}\n </div>\n );\n }\n);\n\nNavPanel.displayName = 'NavPanel';\n","import {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './Progress.module.css';\n\nenum Variants {\n plain = 'plain',\n dashed = 'dashed',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide maximum for progress scale\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#max\n */\n max?: number;\n /**\n * Provide value for progress scale\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#value\n */\n value?: number;\n /**\n * Choose appearance of progress bar\n */\n variant?: keyof typeof Variants;\n /**\n * Provide an optional label to display on the left side\n */\n label?: string;\n };\n\nexport const Progress = forwardRef<HTMLProgressElement, Props>(\n (\n {max = 100, value, className, variant = Variants.plain, label, id: idProp, ...nativeProps},\n ref\n ) => {\n const id = useInternalId(idProp);\n return (\n <div className={classes.wrapper}>\n {label && (\n <label className={classes.label} htmlFor={id}>\n {label}:\n </label>\n )}\n <progress\n {...nativeProps}\n id={id}\n max={max}\n value={value}\n className={classNames(\n classes.progress,\n {[classes.dashed]: variant === Variants.dashed},\n className\n )}\n ref={ref}\n />\n </div>\n );\n }\n);\n\nProgress.displayName = 'Progress';\n","import type {FC, HTMLAttributes, ReactNode, JSX} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Breadcrumbs.module.css';\n\ntype Item = {\n name: string;\n url: string;\n icon?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n};\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Provide a list of items to render inside breadcrumbs */\n items: Item[];\n /** Enable to show '...' after first breadcrumb item */\n showEllipsis?: boolean;\n };\n\nconst conditionallyAddEllipsis = (items: JSX.Element[], showEllipsis: boolean) => {\n if (showEllipsis) {\n const [first, ...rest] = items;\n return [\n first,\n <div className={classes.ellipsis} key=\"ellypsis\">\n …\n </div>,\n ...rest,\n ];\n } else {\n return items;\n }\n};\n\nexport const Breadcrumbs = forwardRef<HTMLDivElement, Props>(\n ({className, items, showEllipsis = false, ...nativeProps}, ref) => {\n const children = items.map(({name, url, icon: Icon}) => {\n return (\n <a key={name} title={name} className={classes.crumb} href={url}>\n {Icon && <Icon className={classes.icon} />}\n <span className={classes.text}>{name}</span>\n </a>\n );\n });\n return (\n <div {...nativeProps} className={classNames(classes.breadcrumbs, className)} ref={ref}>\n {conditionallyAddEllipsis(children, showEllipsis)}\n </div>\n );\n }\n);\n\nBreadcrumbs.displayName = 'Breadcrumbs';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './ButtonGroup.module.css';\n\nenum Layouts {\n horizontal = 'horizontal',\n vertical = 'vertical',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n layout?: keyof typeof Layouts;\n };\n\nexport const ButtonGroup = forwardRef<HTMLDivElement, Props>(\n ({children, className, layout = Layouts.horizontal, ...nativeProps}, ref) => {\n return (\n <div\n {...nativeProps}\n className={classNames(\n classes.buttonGroup,\n {\n [classes.horizontal]: layout === Layouts.horizontal,\n [classes.vertical]: layout === Layouts.vertical,\n },\n className\n )}\n ref={ref}>\n {children}\n </div>\n );\n }\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n"],"names":["theme","themeInternal","useInternalRef","outerRef","innerRef","useRef","useImperativeHandle","SvgError","props","React","IconError","className","restProps","jsx","Error","classNames","classes","SvgCheck","IconValid","Check","SvgProgressActivity","IconLoader","Loader","SvgAttachFile","IconFile","Icon","SvgCalendarMonth","IconCalendar","Calendar","SvgPalette","IconPalette","Palette","SvgNestClockFarsightAnalog","IconClock","Clock","SvgExpandAll","IconExpand","SvgCollapseAll","IconCollapse","SvgArrowDropUp","IconArrowUp","SvgArrowDropDown","IconArrowDown","SvgClose","IconClose","SvgArrowLeft","IconArrowLeft","SvgArrowRight","IconArrowRight","SvgCompareArrows","IconScroll","SvgWarning","IconWarning","SvgInfo","IconInfo","SvgCheckCircle","IconSuccess","SvgSkipNext","IconForward","SvgSkipPrevious","IconBackward","SvgSubdirectoryArrowLeft","IconEnter","SvgDangerous","IconDanger","SvgLink","IconLink","SvgMenu","IconMenu","EventType","useEventListener","eventType","callback","elementProp","element","callbackRef","useEffect","handler","e","useFocusTrap","isOpen","condition","focusableElementsRef","elements","setElements","useState","first","last","_a","handleTabKeyPress","useCallback","event","ActionTypes","ActionButton","title","icon","type","onClick","ActionIcon","useMemo","handleClick","jsxs","ActionsTree","actions","classNameRow","classNameAction","ActionComponent","id","useId","actionSlot","i","left","right","Variants","Actions","forwardRef","children","variant","nativeProps","ref","Actions$5","useIsFirstRender","isFirst","isBrowser","useSafeLayoutEffect","useLayoutEffect","Transition","show","exitClassName","exitDoneClassName","enterClassName","enterDoneClassName","nodeRef","unmountNode","onExit","onEnter","isFirstRender","shouldRender","setRender","_b","_c","_d","_e","_f","Fade","SlideBottom","SlideLeft","SlideRight","TransitionDialog","arr","without","value","array","member","initialState","DialogReducer","state","action","nextOpen","DialogContext","createContext","useDialogContext","useContext","useSelector","useDialogState","dispatch","openDialog","closeDialog","topDialogId","Dialog","closeOnClickOutside","showCloseButton","onToggle","dialogTitle","closeLabel","trapFocus","dialogRef","handleSelfClose","handleKeyPress","handleExit","H3","createStoreProvider","reducer","context","Provider","useReducer","memoizedValue","DialogProvider","omit","obj","key","nextObject","NotificationReducer","nextInstances","instance","NotificationContext","useNotificationContext","useRegisterNotification","useNotificationProps","useNotificationInstance","createNotification","useNotificationState","notificationProps","notificationId","permission","setPermission","openNotification","currentPermission","nextPermission","closeNotification","Notification","body","requireInteraction","onDenied","registerNotification","Fragment","NotificationProvider","Portal","portalRendered","setPortalRendered","createPortal","useInterval","interval","savedCallback","ToastReducer","ToastContext","useToastContext","useToastState","openToast","closeToast","openToastId","Toast","IconProp","autoClose","refProp","useLocalTheme","getTheme","useRootTheme","needsAutoClose","TransitionSlideBottom","ToastProvider","useDismiss","handleKeyDown","handleMouseDown","DrawerReducer","DrawerContext","useDrawerContext","useDrawerState","openDrawer","closeDrawer","openDrawerId","Drawer","placement","LocalRoot","TransitionSlideLeft","TransitionSlideRight","DrawerProvider","convertThemeVarName","str","letter","num","convertTheme","entries","themeProp","themePodil","normalizedTheme","RootThemeProvider","useLinkRefs","backupRef","normalizedRef","Sizes","filterUndefined","target","_","v","Col","as","xs","sm","md","lg","xl","shiftXS","shiftSM","shiftMD","shiftLG","shiftXL","internalRef","Row","normalizeWidth","widthProp","Grid","width","gap","base","Page","Main","Footer","Sidebar","Header","sticky","Content","Button","disabled","Prefix","Suffix","size","FormReducer","FormContext","withFormProvider","Component","FormProvider","useFormActions","markAsPristine","markAsDirty","useFormSelectors","Form","onSubmit","onReset","onChange","onInvalid","getFormState","formElement","data","formState","handleSubmit","form","handleError","handleReset","pristine","handleChange","WrappedForm","useInternalId","backupId","FormField","label","hint","inputProps","Children","childrenWithProps","cloneElement","ValidationState","defaultValidator","useHandleFormReset","setValidity","getValue","mode","useValidation","validatorFn","hasCustomValidation","customValidation","setCustomValidation","isAsync","validity","reportValidity","isValid","validState","nextValidationState","createValidatorSync","validationError","debouncedValidator","AwesomeDebouncePromise","createValidatorAsync","error","validateInteractive","validateTextual","InputCheckbox","onFocus","onBlur","onKeyDown","onKeyUp","checked","defaultChecked","idProp","required","ValidationIcon","handleInvalid","InputGroup","validation","name","isValidElement","nextProps","InputRadio","InputText","placeholder","defaultValue","readOnly","handleSelect","inputId","InputDate","labelRef","displayValue","handleFocus","handleBlur","handleInput","padZero","len","invertColorChannel","channelValue","invertColor","hex","bw","red","green","blue","InputColor","predefinedColors","setTheme","hasPredefinedColors","predefinedColorsListId","color","InputTime","inputRef","handleIconClick","handleKeyUp","useCallbackRef","fn","deps","args","isFunction","runIfFn","valueOrFn","useControllableState","valueProp","shouldUpdate","prev","next","onChangeProp","shouldUpdateProp","valueState","setValue","isControlled","updateValue","nextValue","createOptions","min","max","bars","scaleUnit","singleBar","InputRange","setDisplayValue","scaleId","InputFile","filename","setFileName","ChangeEventSpinner","InputNumber","step","handleDecrement","handleIncrement","Textarea","cols","rows","resize","textareaId","Select","multiple","selectId","dropdownState","setDropdownState","Text","P","Ul","Ol","Dl","A","href","B","Strong","I","Em","Mark","Small","Del","Ins","Sub","Sup","Kbd","Code","S","H1","H2","H4","H5","H6","BlockQuote","Pre","Table","Meter","low","high","optimum","Figure","caption","position","normalizeUnit","unitProp","SkeletonShape","height","borderRadius","marginY","marginX","SkeletonAction","double","SkeletonFrame","createArray","length","SkeletonText","linesProp","isSingle","lines","Picture","alt","src","sources","loading","isLoaded","setLoaded","handleLoad","mediaCondition","density","intrinsicWidth","slotWidth","srcWidth","srcHeight","srcParam","useResizeObserver","onResize","handleResize","observer","Cell","index","Dots","amount","active","dotsArray","isActive","useIsInViewport","isIntersecting","setIsIntersecting","entry","useDocumentVisible","documentVisible","setDocumentVisible","handleVisibilityChange","useAutoRotate","rotateFn","isInViewport","isActiveTab","getVisibleIndex","Carousel","defaultVisible","showDots","showArrows","autoRotate","onRotate","visible","setVisible","cellsAmount","viewPortRef","elementWidth","setElementWidth","elementHeight","setElementHeight","parent","parentWidth","nextHeight","visibleIndex","nextVisible","handleRotate","cells","useIsOverflow","overflowY","setOverflowY","overflowX","setOverflowX","current","hasOverflowY","hasOverflowX","TabButton","tabName","activeName","Tabs","selectedProp","initiallySelected","selected","setSelected","tabs","visibleTab","headerRef","Tab","TransitionFade","Menu","openProp","content","referenceClassName","alignWidth","setOpen","refs","floatingStyles","useFloating","autoUpdate","rects","offset","autoPlacement","handleDismiss","MenuActions","MenuVariants","actionsVariant","ActionVariants","Arrow","top","rootRef","result","Tooltip","interactive","placementProp","arrowRef","middlewareData","flip","arrow","PageButton","pageNumber","getVisible","totalPages","selectedPage","usePagePaginationState","setSelectedPage","nextPage","previousPage","isLong","maxDigits","checkValidity","Pagination","onPageSelect","selectedPageProp","showNavigation","showPageButtons","inputPage","setInputPage","handlePageSelect","handleInputChange","handleSubmitClick","handleInputEnter","Card","headerImageUrl","useMatchMedia","query","matches","setMatches","matchMedia","media","listener","NavList","layout","collapsible","collapsibleLabel","isBigScreen","collapsed","NavLink","shift","isCurrent","NavBrand","NavPanel","Progress","conditionallyAddEllipsis","items","showEllipsis","rest","Breadcrumbs","url","ButtonGroup"],"mappings":"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","x_google_ignoreList":[4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50]}
|
|
1
|
+
{"version":3,"file":"index.umd.cjs","sources":["../src/lib/Theme/theme.ts","../src/lib/Theme/themePodil.ts","../src/lib/Theme/themeDnipro.ts","../src/internal/hooks/useInternalRef.ts","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/error.svg?react","../src/internal/Icons/IconError.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/check.svg?react","../src/internal/Icons/IconValid.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/progress_activity.svg?react","../src/internal/Icons/IconLoader.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/attach_file.svg?react","../src/internal/Icons/IconFile.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/calendar_month.svg?react","../src/internal/Icons/IconCalendar.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/palette.svg?react","../src/internal/Icons/IconPalette.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/nest_clock_farsight_analog.svg?react","../src/internal/Icons/IconClock.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/expand_all.svg?react","../src/internal/Icons/IconExpand.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/collapse_all.svg?react","../src/internal/Icons/IconCollapse.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/arrow_drop_up.svg?react","../src/internal/Icons/IconArrowUp.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/arrow_drop_down.svg?react","../src/internal/Icons/IconArrowDown.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/close.svg?react","../src/internal/Icons/IconClose.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/arrow_left.svg?react","../src/internal/Icons/IconArrowLeft.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/arrow_right.svg?react","../src/internal/Icons/IconArrowRight.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/compare_arrows.svg?react","../src/internal/Icons/IconScroll.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/warning.svg?react","../src/internal/Icons/IconWarning.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/info.svg?react","../src/internal/Icons/IconInfo.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/check_circle.svg?react","../src/internal/Icons/IconSuccess.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/skip_next.svg?react","../src/internal/Icons/IconForward.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/skip_previous.svg?react","../src/internal/Icons/IconBackward.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/subdirectory_arrow_left.svg?react","../src/internal/Icons/IconEnter.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/dangerous.svg?react","../src/internal/Icons/IconDanger.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/link.svg?react","../src/internal/Icons/IconLink.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.20.0/node_modules/@material-symbols/svg-700/sharp/menu.svg?react","../src/internal/Icons/IconMenu.tsx","../src/internal/hooks/useEventListener.ts","../src/internal/hooks/useFocusTrap.ts","../src/internal/Actions/ActionTypes.ts","../src/internal/Actions/ActionButton.tsx","../src/internal/Actions/ActionsTree.tsx","../src/internal/Actions/Variants.ts","../src/internal/Actions/Actions.tsx","../src/internal/hooks/useIsFirstRender.tsx","../src/internal/hooks/useSafeLayoutEffect.ts","../src/internal/Transitions/Transition.tsx","../src/internal/Transitions/Fade.tsx","../src/internal/Transitions/SlideBottom.tsx","../src/internal/Transitions/SlideLeft.tsx","../src/internal/Transitions/SlideRight.tsx","../src/lib/Dialog/TransitionDialog.tsx","../src/internal/utils/last.ts","../src/internal/utils/without.ts","../src/lib/Dialog/DialogReducer.ts","../src/lib/Dialog/DialogContext.ts","../src/lib/Dialog/useDialogState.tsx","../src/lib/Dialog/Dialog.tsx","../src/internal/store/createStoreProvider.tsx","../src/lib/Dialog/DialogProvider.ts","../src/lib/Notification/NotificationReducer.ts","../src/lib/Notification/NotificationContext.ts","../src/lib/Notification/useRegisterNotification.ts","../src/lib/Notification/useNotificationProps.ts","../src/lib/Notification/useNotificationInstance.ts","../src/lib/Notification/useNotificationState.tsx","../src/lib/Notification/Notification.tsx","../src/lib/Notification/NotificationProvider.ts","../src/internal/Portal/Portal.tsx","../src/internal/hooks/useInterval.ts","../src/lib/Toast/ToastReducer.ts","../src/lib/Toast/ToastContext.ts","../src/lib/Toast/useToastState.tsx","../src/lib/Toast/Toast.tsx","../src/lib/Toast/ToastProvider.ts","../src/internal/hooks/useDismiss.ts","../src/lib/Drawer/DrawerReducer.ts","../src/lib/Drawer/DrawerContext.ts","../src/lib/Drawer/useDrawerState.tsx","../src/lib/Drawer/Drawer.tsx","../src/lib/Drawer/DrawerProvider.ts","../src/internal/utils/convertThemeVarName.ts","../src/lib/Provider/Provider.tsx","../src/internal/hooks/useLinkRefs.ts","../src/lib/Layout/SizeTypes.tsx","../src/lib/Layout/Col.tsx","../src/lib/Layout/Row.tsx","../src/lib/Layout/Grid.tsx","../src/lib/Layout/Page.tsx","../src/lib/Layout/Main.tsx","../src/lib/Layout/Footer.tsx","../src/lib/Layout/Sidebar.tsx","../src/lib/Layout/Header.tsx","../src/lib/Layout/Content.tsx","../src/lib/Button/Button.tsx","../src/lib/Form/FormReducer.ts","../src/lib/Form/FormContext.tsx","../src/lib/Form/withFormProvider.tsx","../src/lib/Form/useFormContext.ts","../src/lib/Form/Form.tsx","../src/internal/hooks/useInternalId.ts","../src/lib/FormField/FormField.tsx","../src/internal/inputs/ValidationProps.ts","../src/internal/inputs/defaultValidator.ts","../src/internal/inputs/useHandleFormReset.ts","../src/internal/inputs/getFormState.ts","../src/internal/inputs/useValidation.ts","../src/lib/InputCheckbox/InputCheckbox.tsx","../src/lib/InputGroup/InputGroup.tsx","../src/lib/InputRadio/InputRadio.tsx","../src/lib/InputText/InputText.tsx","../src/lib/InputDate/InputDate.tsx","../src/lib/InputColor/invertColor.ts","../src/lib/InputColor/InputColor.tsx","../src/lib/InputTime/InputTime.tsx","../src/internal/hooks/useCallbackRef.ts","../src/internal/hooks/useControllableState.ts","../src/lib/InputRange/InputRange.tsx","../src/lib/InputFile/InputFile.tsx","../src/lib/InputNumber/InputNumber.tsx","../src/lib/Textarea/Textarea.tsx","../src/lib/Select/Select.tsx","../src/lib/Text/Text.tsx","../src/lib/Text/Paragraph.tsx","../src/lib/Text/Lists.tsx","../src/lib/Text/InlineElements.tsx","../src/lib/Text/Headers.tsx","../src/lib/Text/BlockQuote.tsx","../src/lib/Text/Preformatted.tsx","../src/lib/Text/Table.tsx","../src/lib/Text/Meter.tsx","../src/lib/Figure/Figure.tsx","../src/lib/Skeleton/normalizeUnit.ts","../src/lib/Skeleton/SkeletonShape.tsx","../src/lib/Skeleton/SkeletonAction.tsx","../src/lib/Skeleton/SkeletonFrame.tsx","../src/internal/utils/createArray.ts","../src/lib/Skeleton/SkeletonText.tsx","../src/lib/Picture/Picture.tsx","../src/internal/hooks/useResizeObserver.ts","../src/lib/Carousel/Cell.tsx","../src/lib/Carousel/Dots.tsx","../src/internal/hooks/useIsInViewport.tsx","../src/internal/hooks/useDocumentVisible.ts","../src/lib/Carousel/useAutoRotate.ts","../src/lib/Carousel/Carousel.tsx","../src/internal/hooks/useIsOverflow.ts","../src/lib/Tabs/TabButton.tsx","../src/lib/Tabs/Tabs.tsx","../src/lib/Tabs/Tab.tsx","../src/lib/Menu/Variants.ts","../src/lib/Menu/Menu.tsx","../src/lib/Menu/MenuActions.tsx","../src/lib/Tooltip/Arrow.tsx","../src/lib/Tooltip/Tooltip.tsx","../src/lib/Pagination/PageButton.tsx","../src/lib/Pagination/usePagePaginationState.ts","../src/lib/Pagination/Pagination.tsx","../src/lib/Card/Card.tsx","../src/internal/hooks/useMatchMedia.tsx","../src/lib/Navigation/NavList.tsx","../src/lib/Navigation/NavLink.tsx","../src/lib/Navigation/NavBrand.tsx","../src/lib/Navigation/NavPanel.tsx","../src/lib/Progress/Progress.tsx","../src/lib/Breadcrumbs/Breadcrumbs.tsx","../src/lib/ButtonGroup/ButtonGroup.tsx"],"sourcesContent":["export const theme = {\n fontFamily: `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial,\n \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`,\n fontFamilyMonospace: `\"SF Mono\", \"Courier New\", FreeMono, \"Nimbus Mono PS\", Cousine, monospace`,\n sizeUnit: '6px',\n inputWidth: '240px',\n inputHeight: '38px',\n // font sizes\n fontSizeH1: '36px',\n fontSizeH2: '28px',\n fontSizeH3: '24px',\n fontSizeH4: '22px',\n fontSizeH5: '18px',\n fontSizeH6: '16px',\n fontSizeText: '16px',\n fontSizeMedium: '16px',\n fontSizeLarge: '18px',\n fontSizeSmall: '14px',\n fontSizeExtraSmall: '12px',\n // font weights\n fontWeightNormal: 400,\n fontWeightBolder: 500,\n fontWeightBold: 600,\n // colors\n textColor: '#111111',\n background000: 'white',\n background100: '#dedede',\n background200: '#bdbdbd',\n background300: '#808080',\n background400: '#525252',\n background500: '#363636',\n background600: '#000000',\n // theme\n colorDo: '#e3a075',\n colorRe: '#61483a',\n colorMi: '#ffdea6',\n colorFa: '#20b2aa',\n colorSol: '#597480',\n colorLa: '#99DFFF',\n // info colors\n colorError: '#FF004F',\n colorWarning: '#FFC72C',\n colorSuccess: '#3c9d74',\n colorAction: '#2100FF',\n // shadow config\n shadowColor: 'color-mix(in srgb, var(--kg-background-600) 11%, transparent)',\n shadow050: '3px 3px 3px 0 var(--kg-shadow-color)',\n shadow100: '6px 6px 3px 0 var(--kg-shadow-color)',\n shadow200: '9px 9px 3px 0 var(--kg-shadow-color)',\n textShadow: '1px 1px 1px rgb(0 0 0 / 66%)',\n // border radii\n borderRadius100: '2px',\n borderRadius200: '3px',\n borderRadius300: '6px',\n borderRadius400: '9px',\n borderRadius500: '12px',\n // border widths\n borderWidth100: '1px',\n borderWidth200: '2px',\n borderWidth300: '3px',\n timeSM: '333ms',\n timeMD: '666ms',\n timeLG: '999ms',\n timeXL: '1666ms',\n};\n\nexport type ThemeType = Partial<typeof theme>;\n","import {theme as themeInternal} from './theme.ts';\nimport type {PublicThemeType} from './PublicThemeType.ts';\n\nexport const theme = {\n fontFamily: themeInternal.fontFamily,\n fontFamilyMonospace: themeInternal.fontFamilyMonospace,\n fontSizeH1: themeInternal.fontSizeH1,\n fontSizeH2: themeInternal.fontSizeH2,\n fontSizeH3: themeInternal.fontSizeH3,\n fontSizeH4: themeInternal.fontSizeH4,\n fontSizeH5: themeInternal.fontSizeH5,\n fontSizeH6: themeInternal.fontSizeH6,\n fontSizeText: themeInternal.fontSizeText,\n fontSizeMedium: themeInternal.fontSizeMedium,\n fontSizeLarge: themeInternal.fontSizeLarge,\n fontSizeSmall: themeInternal.fontSizeSmall,\n fontWeightNormal: themeInternal.fontWeightNormal,\n fontWeightBolder: themeInternal.fontWeightBolder,\n fontWeightBold: themeInternal.fontWeightBold,\n textColor: themeInternal.textColor,\n background000: themeInternal.background000,\n background100: themeInternal.background100,\n background200: themeInternal.background200,\n background300: themeInternal.background300,\n background400: themeInternal.background400,\n background500: themeInternal.background500,\n background600: themeInternal.background600,\n colorDo: themeInternal.colorDo,\n colorRe: themeInternal.colorRe,\n colorMi: themeInternal.colorMi,\n colorFa: themeInternal.colorFa,\n colorSol: themeInternal.colorSol,\n colorLa: themeInternal.colorLa,\n colorError: themeInternal.colorError,\n colorWarning: themeInternal.colorWarning,\n colorSuccess: themeInternal.colorSuccess,\n colorAction: themeInternal.colorAction,\n} as PublicThemeType;\n","import {theme as themeInternal} from './theme.ts';\nimport type {PublicThemeType} from './PublicThemeType.ts';\n\nexport const theme = {\n fontFamily: themeInternal.fontFamily,\n fontFamilyMonospace: themeInternal.fontFamilyMonospace,\n fontSizeH1: themeInternal.fontSizeH1,\n fontSizeH2: themeInternal.fontSizeH2,\n fontSizeH3: themeInternal.fontSizeH3,\n fontSizeH4: themeInternal.fontSizeH4,\n fontSizeH5: themeInternal.fontSizeH5,\n fontSizeH6: themeInternal.fontSizeH6,\n fontSizeText: themeInternal.fontSizeText,\n fontSizeMedium: themeInternal.fontSizeMedium,\n fontSizeLarge: themeInternal.fontSizeLarge,\n fontSizeSmall: themeInternal.fontSizeSmall,\n fontWeightNormal: themeInternal.fontWeightNormal,\n fontWeightBolder: themeInternal.fontWeightBolder,\n fontWeightBold: themeInternal.fontWeightBold,\n textColor: themeInternal.textColor,\n background000: themeInternal.background000,\n background100: themeInternal.background100,\n background200: themeInternal.background200,\n background300: themeInternal.background300,\n background400: themeInternal.background400,\n background500: themeInternal.background500,\n background600: themeInternal.background600,\n colorDo: themeInternal.colorFa,\n colorRe: themeInternal.colorSol,\n colorMi: themeInternal.colorLa,\n colorFa: themeInternal.colorDo,\n colorSol: themeInternal.colorRe,\n colorLa: themeInternal.colorMi,\n colorError: themeInternal.colorError,\n colorWarning: themeInternal.colorWarning,\n colorSuccess: themeInternal.colorSuccess,\n colorAction: themeInternal.colorAction,\n} as PublicThemeType;\n","import type {ForwardedRef} from 'react';\nimport {useImperativeHandle, useRef} from 'react';\n\n/** This hook allows to use forwarded ref inside component even if it's not provided. */\nexport const useInternalRef = <TElement = HTMLElement>(outerRef: ForwardedRef<TElement>) => {\n const innerRef = useRef<TElement | null>(null);\n useImperativeHandle<TElement | null, TElement | null>(outerRef, () => innerRef.current, [\n innerRef,\n ]);\n return innerRef;\n};\n","import * as React from \"react\";\nconst SvgError = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M479.75-255q24.25 0 39.75-14.75 15.5-14.76 15.5-39Q535-333 519.75-349q-15.26-16-39.5-16-24.25 0-39.75 15.98T425-308.79q0 24.25 15.25 39.02Q455.51-255 479.75-255ZM436-432h94v-270h-94v270Zm44.4 377q-88.87 0-166.12-33.08-77.25-33.09-135.18-91.02-57.93-57.93-91.02-135.12Q55-391.41 55-480.36q0-88.96 33.08-166.29 33.09-77.32 90.86-134.81 57.77-57.48 135.03-91.01Q391.24-906 480.28-906t166.49 33.45q77.44 33.46 134.85 90.81t90.89 134.87Q906-569.34 906-480.27q0 89.01-33.53 166.25t-91.01 134.86q-57.49 57.62-134.83 90.89Q569.28-55 480.4-55Zm.1-94q137.5 0 234-96.37T811-480.5q0-137.5-96.31-234T479.5-811q-137.5 0-234 96.31T149-479.5q0 137.5 96.37 234T480.5-149Zm-.5-331Z\" }));\nexport default SvgError;\n","import type {FC, SVGProps} from 'react';\nimport Error from '@material-symbols/svg-700/sharp/error.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconError: FC<Props> = ({className, ...restProps}) => {\n return <Error className={classNames(classes.icon, classes.error, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgCheck = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M378-222 130-470l68-68 180 180 383-383 68 68-451 451Z\" }));\nexport default SvgCheck;\n","import type {FC, SVGProps} from 'react';\nimport Check from '@material-symbols/svg-700/sharp/check.svg?react';\nimport classNames from 'classnames';\n\nimport classes from '@/internal/Icons/Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconValid: FC<Props> = ({className, ...restProps}) => {\n return <Check className={classNames(classes.icon, classes.valid, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgProgressActivity = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M480-55q-90.2 0-167.57-32.58-77.37-32.57-134.82-90.03-57.46-57.45-90.03-134.82Q55-389.8 55-480q0-89.87 32.56-167.25 32.57-77.37 89.87-135.11 57.31-57.74 134.79-90.69Q389.7-906 480-906v95q-138.33 0-234.66 96.27Q149-618.46 149-480.23 149-342 245.27-245.5t234.5 96.5Q618-149 714.5-245.34 811-341.67 811-480h95q0 90.3-33.01 167.79-33.02 77.5-90.5 134.85Q725-120 647.5-87.5 570.01-55 480-55Z\" }));\nexport default SvgProgressActivity;\n","import type {FC, SVGProps} from 'react';\nimport Loader from '@material-symbols/svg-700/sharp/progress_activity.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconLoader: FC<Props> = ({className, ...restProps}) => {\n return (\n <Loader\n className={classNames(classes.icon, classes.rotation, classes.loading, className)}\n {...restProps}\n />\n );\n};\n","import * as React from \"react\";\nconst SvgAttachFile = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M767-319.26Q767-206 684.32-130.5 601.65-55 487.32-55 373-55 291-130.5T209-319v-396q0-81.42 59.5-136.21Q328-906 409.76-906q81.77 0 141 54.79Q610-796.42 610-715v376q0 48.91-36.5 82.95Q537-222 487.15-222q-49.84 0-85.5-33.72Q366-289.44 366-339v-370h87v370q0 13 10.29 21.5t24.64 8.5q14.35 0 24.71-8.35Q523-325.7 523-339v-375q1-45.26-33-75.13Q456-819 409.79-819q-46.21 0-80 29.43T296-715v396q1 77.25 57.47 127.63Q409.94-141 489-141q77.67 0 134.83-50.5Q681-242 680-319v-419h87v418.74Z\" }));\nexport default SvgAttachFile;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/attach_file.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconFile: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgCalendarMonth = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M434-394v-92h92v92h-92Zm-160 0v-92h92v92h-92Zm320 0v-92h92v92h-92ZM434-234v-92h92v92h-92Zm-160 0v-92h92v92h-92Zm320 0v-92h92v92h-92ZM95-55v-791h150.2v-60H327v60h306v-60h82.2v60H866v791H95Zm94-94h582v-421H189v421Zm0-481h582v-121H189v121Zm0 0v-121 121Z\" }));\nexport default SvgCalendarMonth;\n","import type {FC, SVGProps} from 'react';\nimport Calendar from '@material-symbols/svg-700/sharp/calendar_month.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconCalendar: FC<Props> = ({className, ...restProps}) => {\n return <Calendar className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgPalette = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M480-55q-87.04 0-164.52-33.5T180-180q-58-58-91.5-135.46Q55-392.92 55-479.93 55-570 88.45-647.28q33.44-77.27 92.5-135Q240-840 318.77-873t168.61-33q83.62 0 159.41 28.46 75.79 28.45 133.5 79Q838-748 872-678.8q34 69.2 34 149.8 0 114-64 187t-178 73h-58q-16 0-28 13t-12 29q0 25 10 35t10 31q0 44-29.8 75T480-55Zm0-425Zm-224 26q20 0 35-15t15-35q0-20-15-35t-35-15q-20 0-35 15t-15 35q0 20 15 35t35 15Zm121.5-163q20.5 0 35.5-15t15-35q0-21-15-35.5T378-717q-21 0-35.5 14.5t-14.5 35q0 20.5 14.5 35.5t35 15Zm205 0q20.5 0 35.5-15t15-35q0-21-15-35.5T583-717q-21 0-35.5 14.5t-14.5 35q0 20.5 14.5 35.5t35 15ZM707-454q20 0 35-15t15-35q0-20-15-35t-35-15q-21 0-35.5 15T657-504q0 20 14.5 35t35.5 15ZM476-149q7.75 0 11.88-3.55 4.12-3.54 4.12-12.01 0-14.44-15-23.69-15-9.25-15-47.75 0-49.17 32.98-88.09Q527.96-363 576.75-363H664q74 0 110.5-44T811-523q0-132-98.59-210-98.6-78-224.83-78-141.68 0-240.13 96.37Q149-618.26 149-479.52 149-342 244.96-245.5T476-149Z\" }));\nexport default SvgPalette;\n","import type {FC, SVGProps} from 'react';\nimport Palette from '@material-symbols/svg-700/sharp/palette.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconPalette: FC<Props> = ({className, ...restProps}) => {\n return <Palette className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgNestClockFarsightAnalog = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M585-285 433-437v-214h94v174.41L651-353l-66 68ZM433-726v-124h94v124h-94Zm293 293v-94h124v94H726ZM433-110v-125h94v125h-94ZM110-433v-94h125v94H110ZM480.4-55q-88.87 0-166.12-33.08-77.25-33.09-135.18-91.02-57.93-57.93-91.02-135.12Q55-391.41 55-480.36q0-88.96 33.08-166.29 33.09-77.32 90.86-134.81 57.77-57.48 135.03-91.01Q391.24-906 480.28-906t166.49 33.45q77.44 33.46 134.85 90.81t90.89 134.87Q906-569.34 906-480.27q0 89.01-33.53 166.25t-91.01 134.86q-57.49 57.62-134.83 90.89Q569.28-55 480.4-55Zm.1-94q137.5 0 234-96.37T811-480.5q0-137.5-96.31-234T479.5-811q-137.5 0-234 96.31T149-479.5q0 137.5 96.37 234T480.5-149Zm-.5-331Z\" }));\nexport default SvgNestClockFarsightAnalog;\n","import type {FC, SVGProps} from 'react';\nimport Clock from '@material-symbols/svg-700/sharp/nest_clock_farsight_analog.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconClock: FC<Props> = ({className, ...restProps}) => {\n return <Clock className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgExpandAll = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M480-56 216-320l67-67 197 196 197-196 67 67L480-56ZM283-572l-67-68 264-264 264 264-66 68-198-197-197 197Z\" }));\nexport default SvgExpandAll;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/expand_all.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconExpand: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgCollapseAll = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m290-61-66-66 256-256 256 256-66 66-190-190L290-61Zm190-517L224-834l66-66 190 190 190-190 66 66-256 256Z\" }));\nexport default SvgCollapseAll;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/collapse_all.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconCollapse: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgArrowDropUp = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m239-383 241-242 241 242H239Z\" }));\nexport default SvgArrowDropUp;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/arrow_drop_up.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconArrowUp: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgArrowDropDown = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M480-336 239-576h482L480-336Z\" }));\nexport default SvgArrowDropDown;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/arrow_drop_down.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconArrowDown: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgClose = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m249-183-66-66 231-231-231-231 66-66 231 231 231-231 66 66-231 231 231 231-66 66-231-231-231 231Z\" }));\nexport default SvgClose;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/close.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconClose: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgArrowLeft = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M577-239 336-480l241-241v482Z\" }));\nexport default SvgArrowLeft;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/arrow_left.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconArrowLeft: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgArrowRight = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M383-239v-482l241 241-241 241Z\" }));\nexport default SvgArrowRight;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/arrow_right.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconArrowRight: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgCompareArrows = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m294-135-66-66 104-103H55v-95h277L228-503l66-66 218 217-218 217Zm372-257L449-609l217-217 66 66-103 104h277v95H629l103 103-66 66Z\" }));\nexport default SvgCompareArrows;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/compare_arrows.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconScroll: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgWarning = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m18-107 462-799 462 799H18Zm145-84h634L480-739 163-191Zm321.18-48q13.4 0 23.61-10.39Q518-259.78 518-273.18q0-13.4-10.39-23.11-10.39-9.71-23.79-9.71-13.4 0-23.61 9.89Q450-286.22 450-272.82q0 13.4 10.39 23.61Q470.78-239 484.18-239ZM454-348h60v-216h-60v216Zm26-117Z\" }));\nexport default SvgWarning;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/warning.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconWarning: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgInfo = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M442-269h82v-251h-82v251Zm38.07-310q20.43 0 34.18-13.51Q528-606.03 528-626q0-21.95-13.79-35.47Q500.41-675 480.02-675q-21.52 0-34.77 13.53Q432-647.95 432-626.5q0 20.6 13.82 34.05Q459.64-579 480.07-579Zm.33 524q-88.87 0-166.12-33.08-77.25-33.09-135.18-91.02-57.93-57.93-91.02-135.12Q55-391.41 55-480.36q0-88.96 33.08-166.29 33.09-77.32 90.86-134.81 57.77-57.48 135.03-91.01Q391.24-906 480.28-906t166.49 33.45q77.44 33.46 134.85 90.81t90.89 134.87Q906-569.34 906-480.27q0 89.01-33.53 166.25t-91.01 134.86q-57.49 57.62-134.83 90.89Q569.28-55 480.4-55Zm.1-94q137.5 0 234-96.37T811-480.5q0-137.5-96.31-234T479.5-811q-137.5 0-234 96.31T149-479.5q0 137.5 96.37 234T480.5-149Zm-.5-331Z\" }));\nexport default SvgInfo;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/info.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconInfo: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgCheckCircle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m419-283 294-294-66-66-228 228-111-111-65 66 176 177Zm61.14 228Q392-55 314.51-88.08q-77.48-33.09-135.41-91.02-57.93-57.93-91.02-135.27Q55-391.72 55-479.86 55-569 88.08-646.49q33.09-77.48 90.86-134.97 57.77-57.48 135.19-91.01Q391.56-906 479.78-906q89.22 0 166.83 33.45 77.6 33.46 135.01 90.81t90.89 134.87Q906-569.34 906-480q0 88.28-33.53 165.75t-91.01 135.28q-57.49 57.8-134.83 90.89Q569.28-55 480.14-55Zm-.14-94q138 0 234.5-96.37T811-480q0-138-96.5-234.5t-235-96.5q-137.5 0-234 96.5t-96.5 235q0 137.5 96.37 234T480-149Zm0-331Z\" }));\nexport default SvgCheckCircle;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/check_circle.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconSuccess: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSkipNext = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M693-193v-574h94v574h-94Zm-520 0v-574l417 287-417 287Zm94-287Zm0 108 156-108-156-108v216Z\" }));\nexport default SvgSkipNext;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/skip_next.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconForward: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSkipPrevious = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M173-193v-574h94v574h-94Zm614 0L370-480l417-287v574Zm-94-287Zm0 108v-216L537-480l156 108Z\" }));\nexport default SvgSkipPrevious;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/skip_previous.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconBackward: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSubdirectoryArrowLeft = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M394-95 135-357l257-258 68 67-145 146h376v-424h95v518H316l145 146-67 67Z\" }));\nexport default SvgSubdirectoryArrowLeft;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/subdirectory_arrow_left.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconEnter: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgDangerous = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M320-95 95-320v-321l225-225h321l225 225v321L641-95H320Zm41-216 119-119 119 119 51-50-120-119 120-119-51-51-119 120-119-120-50 51 119 119-119 119 50 50Zm-2 122h242l170-170v-242L601-771H359L189-601v242l170 170Zm121-291Z\" }));\nexport default SvgDangerous;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/dangerous.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconDanger: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgLink = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M439-255H280q-94.11 0-159.56-65.42Q55-385.84 55-479.7q0-93.85 65.44-160.07Q185.89-706 280-706h159v95H280.43q-55.51 0-93.47 37.76-37.96 37.77-37.96 93Q149-425 186.96-387q37.96 38 93.47 38H439v94ZM308-444v-72h344v72H308Zm213 189v-94h158.57q55.51 0 93.47-37.76 37.96-37.77 37.96-93Q811-535 773.04-573q-37.96-38-93.47-38H521v-95h159q93.79 0 159.9 66.15 66.1 66.15 66.1 160T839.9-320.5Q773.79-255 680-255H521Z\" }));\nexport default SvgLink;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/link.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconLink: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgMenu = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 48, height: 48, viewBox: \"0 -960 960 960\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M95-203v-95h771v95H95Zm0-230v-94h771v94H95Zm0-229v-95h771v95H95Z\" }));\nexport default SvgMenu;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/menu.svg?react';\nimport classNames from 'classnames';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconMenu: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import {useEffect, useRef} from 'react';\n\nexport enum EventType {\n keydown = 'keydown',\n mousedown = 'mousedown',\n animationend = 'animationend',\n}\n\nexport const useEventListener = <TEvent, TElement extends HTMLElement | null>(\n eventType: keyof typeof EventType,\n callback: (event: TEvent) => void,\n elementProp?: TElement\n) => {\n const element = elementProp ?? window;\n const callbackRef = useRef(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (element == null) return;\n const handler = ((e: TEvent) =>\n callbackRef.current(e)) as unknown as EventListenerOrEventListenerObject;\n element.addEventListener(eventType, handler);\n\n return () => element.removeEventListener(eventType, handler);\n }, [eventType, element]);\n};\n","import type {KeyboardEvent} from 'react';\nimport {useCallback, useEffect, useRef, useState} from 'react';\n\nimport {EventType, useEventListener} from '@/internal/hooks/useEventListener.ts';\n\n/**\n * React hook. Makes provided HTMLElement retain focus inside. Works conditionally using last parameter.\n */\nexport const useFocusTrap = (element: HTMLElement | null, isOpen: boolean, condition = true) => {\n const focusableElementsRef = useRef<NodeListOf<HTMLElement>>(null);\n const [elements, setElements] = useState<(HTMLElement | null)[]>([]);\n useEffect(() => {\n if (condition && isOpen) {\n // @ts-expect-error TS2540: Cannot assign to current because it is a read-only property.\n focusableElementsRef.current = element?.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n const first = focusableElementsRef.current ? focusableElementsRef.current[0] : null;\n const last = focusableElementsRef.current\n ? focusableElementsRef.current[focusableElementsRef.current.length - 1]\n : null;\n setElements([first, last]);\n }\n }, [isOpen, element, condition]);\n\n useEffect(() => {\n condition && isOpen && elements[0]?.focus();\n }, [condition, elements, isOpen]);\n\n const handleTabKeyPress = useCallback(\n (event: KeyboardEvent) => {\n const [first, last] = elements;\n if (condition && isOpen && event.key === 'Tab') {\n if (event.shiftKey && document.activeElement === first) {\n event.preventDefault();\n last!.focus();\n } else if (!event.shiftKey && document.activeElement === last) {\n event.preventDefault();\n first!.focus();\n }\n }\n },\n [condition, elements, isOpen]\n );\n\n useEventListener(EventType.keydown, handleTabKeyPress);\n};\n","export enum ActionTypes {\n default = 'default',\n success = 'success',\n link = 'link',\n danger = 'danger',\n}\n","import type {FC, HTMLAttributes, MouseEvent} from 'react';\nimport {useMemo} from 'react';\nimport {useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {IconSuccess, IconDanger, IconLink} from '@/internal/Icons';\n\nimport {ActionTypes} from './ActionTypes.ts';\nimport classes from './ActionButton.module.css';\n\nexport type Props = {\n title?: string;\n icon?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n type?: keyof typeof ActionTypes;\n onClick?: (name: MouseEvent<HTMLButtonElement>) => void;\n className?: string;\n};\n\nexport const ActionButton: FC<Props> = ({\n title,\n icon,\n type = 'default',\n onClick = () => {},\n className,\n}) => {\n const ActionIcon = useMemo(\n () =>\n icon ??\n {\n [ActionTypes.success]: IconSuccess,\n [ActionTypes.danger]: IconDanger,\n [ActionTypes.link]: IconLink,\n [ActionTypes.default]: undefined,\n }[type],\n [icon, type]\n );\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n onClick(event);\n },\n [onClick]\n );\n\n return (\n <button\n title={title}\n onClick={handleClick}\n className={classNames(\n classes.actionButton,\n {\n [classes.default]: type === ActionTypes.default,\n [classes.link]: type === ActionTypes.link,\n [classes.success]: type === ActionTypes.success,\n [classes.danger]: type === ActionTypes.danger,\n },\n className\n )}>\n {ActionIcon && <ActionIcon className={classes.actionIcon} />}\n {title && <span className={classes.actionLabel}>{title}</span>}\n </button>\n );\n};\n","import type {FC, ComponentProps} from 'react';\nimport {useId} from 'react';\nimport classNames from 'classnames';\n\nimport {ActionButton} from './ActionButton.tsx';\nimport classes from './ActionButton.module.css';\n\nexport type Props = {\n actions?: (\n | ComponentProps<typeof ActionButton>\n | [ComponentProps<typeof ActionButton>, ComponentProps<typeof ActionButton>]\n )[];\n classNameRow?: string;\n classNameAction?: string;\n actionComponent?: FC<ComponentProps<typeof ActionButton>>;\n};\n\nexport const ActionsTree: FC<Props> = ({\n actions = [],\n classNameRow,\n classNameAction,\n actionComponent: ActionComponent = ActionButton,\n}) => {\n const id = useId();\n return actions.map((actionSlot, i) => {\n if (Array.isArray(actionSlot)) {\n const [left, right] = actionSlot;\n return (\n <div key={`${id}-${i}`} className={classNames(classes.row, classNameRow)}>\n <ActionComponent\n {...left}\n className={classNames(classes.actionButton, classNameAction)}\n />\n <ActionComponent\n {...right}\n className={classNames(classes.actionButton, classNameAction)}\n />\n </div>\n );\n } else {\n return (\n <div key={`${id}-${i}`} className={classNames(classes.row, classNameRow)}>\n <ActionComponent\n {...actionSlot}\n className={classNames(classes.actionButton, classNameAction)}\n />\n </div>\n );\n }\n });\n};\n","export enum Variants {\n primary = 'primary',\n inverted = 'inverted',\n}\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport type {Props as ActionProps} from './ActionButton.tsx';\nimport {ActionsTree} from './ActionsTree.tsx';\nimport {Variants} from './Variants.ts';\nimport classes from './Actions.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Provide an array of actions with callbacks */\n actions?: (ActionProps | [ActionProps, ActionProps])[];\n /** Set design of Actions block */\n variant?: keyof typeof Variants;\n /** Provide CSS class name for action button */\n classNameAction?: string;\n /** Provide CSS class name for action button row container */\n classNameRow?: string;\n };\n\nexport const Actions = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n actions = [],\n variant = Variants.primary,\n classNameAction,\n classNameRow,\n ...nativeProps\n },\n ref\n ) => {\n return (\n <div {...nativeProps} className={classNames(classes.actions, className)} ref={ref}>\n <ActionsTree\n actions={actions}\n classNameAction={classNames(\n {\n [classes.primaryAction]: variant === Variants.primary,\n [classes.invertedAction]: variant === Variants.inverted,\n },\n classNameAction\n )}\n classNameRow={classNames(classes.actionRow, classNameRow)}\n />\n </div>\n );\n }\n);\n\nActions.displayName = 'Actions';\n","import {useRef} from 'react';\n\n/**\n * React hook to detect first render\n * @example\n * const isFirst = useIsFirstRender();\n * useEffect(() => {\n * !isFirst && doSomething();\n * }, [isFirst, doSomething]);\n */\nexport const useIsFirstRender = () => {\n const isFirst = useRef(true);\n if (isFirst.current) {\n isFirst.current = false;\n return true;\n }\n return isFirst.current;\n};\n","import {useEffect, useLayoutEffect} from 'react';\n\nexport function isBrowser() {\n return Boolean(globalThis?.document);\n}\n\nexport const useSafeLayoutEffect = isBrowser() ? useLayoutEffect : useEffect;\n","import type {FC, MutableRefObject, ReactNode} from 'react';\nimport {useMemo} from 'react';\nimport {useState} from 'react';\n\nimport {useEventListener} from '@/internal/hooks/useEventListener.ts';\nimport {useIsFirstRender} from '@/internal/hooks/useIsFirstRender.tsx';\nimport {useSafeLayoutEffect} from '@/internal/hooks/useSafeLayoutEffect.ts';\n\nexport type Props = {\n /** Control transition cycles. true starts enter cycle, false - exit. */\n show?: boolean;\n children?: ReactNode;\n /**\n * React reference to wrapper HTMLElement, transition CSS classes will be applied to\n * @example\n * const ref = useRef();\n * <Transition nodeRef={ref}>\n * <div ref={ref}>{children}</div>\n * </Transition>\n */\n nodeRef: MutableRefObject<HTMLElement | null>;\n /** CSS class to apply when exit transition starts */\n exitClassName?: string;\n /** CSS class to apply when exit transition is over */\n exitDoneClassName?: string;\n /** CSS class to apply when enter transition starts */\n enterClassName?: string;\n /** CSS class to apply when enter transition is over */\n enterDoneClassName?: string;\n /** Define if Transition component should unmount children according to show prop */\n unmountNode?: boolean;\n /** Callback triggers when exit transition is over */\n onExit?: () => void;\n /** Callback triggers when enter transition is over */\n onEnter?: () => void;\n};\n\nexport const Transition: FC<Props> = ({\n show = false,\n children,\n exitClassName = 'transition-exit',\n exitDoneClassName = 'transition-exit-done',\n enterClassName = 'transition-enter',\n enterDoneClassName = 'transition-enter-done',\n nodeRef,\n unmountNode,\n onExit = () => {},\n onEnter = () => {},\n}) => {\n const isFirstRender = useIsFirstRender();\n\n const [shouldRender, setRender] = useState(show);\n\n useSafeLayoutEffect(() => {\n show && setRender(show);\n }, [show]);\n\n const classNames = useMemo(\n () => ({\n enter: enterClassName.split(' '),\n exit: exitClassName.split(' '),\n exitDone: exitDoneClassName.split(' '),\n enterDone: enterDoneClassName.split(' '),\n }),\n [enterClassName, enterDoneClassName, exitClassName, exitDoneClassName]\n );\n\n useSafeLayoutEffect(() => {\n if (show) {\n nodeRef.current?.classList.add(...classNames.enter);\n nodeRef.current?.classList.remove(...classNames.exit);\n nodeRef.current?.classList.remove(...classNames.exitDone);\n } else {\n nodeRef.current?.classList.add(...classNames.exit);\n nodeRef.current?.classList.remove(...classNames.enter);\n nodeRef.current?.classList.remove(...classNames.enterDone);\n }\n }, [classNames, nodeRef, show, shouldRender, isFirstRender]);\n\n const handleAnimationEnd = () => {\n if (show && shouldRender) {\n onEnter();\n nodeRef.current?.classList.remove(...classNames.enter);\n nodeRef.current?.classList.add(...classNames.enterDone);\n } else if (shouldRender) {\n onExit();\n nodeRef.current?.classList.remove(...classNames.exit);\n nodeRef.current?.classList.add(...classNames.exitDone);\n setRender(false);\n }\n };\n\n useEventListener('animationend', handleAnimationEnd, nodeRef.current);\n\n return (shouldRender || !unmountNode) && children;\n};\n","import type {FC} from 'react';\n\nimport type {Props} from './Transition';\nimport {Transition} from './Transition';\nimport classes from './Transitions.module.css';\n\nexport const Fade: FC<\n Omit<Props, 'enterClassName' | 'exitClassName' | 'exitDoneClassName' | 'enterDoneClassName'>\n> = ({children, unmountNode = true, ...restProps}) => {\n return (\n <Transition\n {...restProps}\n exitClassName={classes.fadeExit}\n enterClassName={classes.fadeEnter}\n unmountNode={unmountNode}>\n {children}\n </Transition>\n );\n};\n","import type {FC} from 'react';\n\nimport type {Props} from './Transition';\nimport {Transition} from './Transition';\nimport classes from './Transitions.module.css';\n\nexport const SlideBottom: FC<\n Omit<Props, 'enterClassName' | 'exitClassName' | 'exitDoneClassName' | 'enterDoneClassName'>\n> = ({children, unmountNode = true, ...restProps}) => {\n return (\n <Transition\n {...restProps}\n unmountNode={unmountNode}\n exitClassName={classes.slideBottomExit}\n exitDoneClassName={classes.slideBottomExitDone}\n enterClassName={classes.slideBottomEnter}\n enterDoneClassName={classes.slideBottomEnterDone}>\n {children}\n </Transition>\n );\n};\n","import type {FC} from 'react';\n\nimport type {Props} from './Transition';\nimport {Transition} from './Transition';\nimport classes from './Transitions.module.css';\n\nexport const SlideLeft: FC<\n Omit<Props, 'enterClassName' | 'exitClassName' | 'exitDoneClassName' | 'enterDoneClassName'>\n> = ({children, unmountNode = true, ...restProps}) => {\n return (\n <Transition\n {...restProps}\n unmountNode={unmountNode}\n exitClassName={classes.slideLeftExit}\n enterClassName={classes.slideLeftEnter}\n enterDoneClassName={classes.slideLeftEnterDone}\n exitDoneClassName={classes.slideLeftExitDone}>\n {children}\n </Transition>\n );\n};\n","import type {FC} from 'react';\n\nimport type {Props} from './Transition';\nimport {Transition} from './Transition';\nimport classes from './Transitions.module.css';\n\nexport const SlideRight: FC<\n Omit<Props, 'enterClassName' | 'exitClassName' | 'exitDoneClassName' | 'enterDoneClassName'>\n> = ({children, unmountNode = true, ...restProps}) => {\n return (\n <Transition\n {...restProps}\n unmountNode={unmountNode}\n exitClassName={classes.slideRightExit}\n enterClassName={classes.slideRightEnter}\n enterDoneClassName={classes.slideRightEnterDone}\n exitDoneClassName={classes.slideRightExitDone}>\n {children}\n </Transition>\n );\n};\n","import type {FC, ComponentProps} from 'react';\nimport classNames from 'classnames';\n\nimport {Transition} from '@/internal/Transitions';\nimport classes from '@/internal/Transitions/Transitions.module.css';\n\nexport const TransitionDialog: FC<\n Omit<\n ComponentProps<typeof Transition>,\n 'enterClassName' | 'exitClassName' | 'exitDoneClassName' | 'enterDoneClassName'\n >\n> = ({children, ...restProps}) => {\n return (\n <Transition\n {...restProps}\n exitClassName={classNames(classes.slideTopExit, classes.backdropFadeExit)}\n enterClassName={classNames(classes.slideTopEnter, classes.backdropFadeEnter)}>\n {children}\n </Transition>\n );\n};\n","export const last = <TItem>(arr: TItem[]) => {\n return arr[arr.length - 1];\n};\n","export const without = <TValue>(value: TValue, array: TValue[]) => {\n return array.filter(member => member !== value);\n};\n","import {without} from '@/internal/utils/without.ts';\n\n/**\n * Action names collection\n * @example\n * import { Actions } from './DialogReducer';\n * dispatch({ type: Actions.DIALOG_CLOSE})\n * dispatch({ type: Actions.DIALOG_OPEN})\n * */\nexport enum Actions {\n DIALOG_CLOSE = 'DIALOG_CLOSE',\n DIALOG_OPEN = 'DIALOG_OPEN',\n}\n\n/** Dialog ID type */\nexport type Id = string;\n\n/** Dialog state type */\nexport type DialogState = {\n /** List of open modals' IDs */\n open: Id[];\n};\n\nexport const initialState = {\n open: [],\n} as DialogState;\n\nexport type DialogAction = {\n /** ID of target Dialog */\n id: Id;\n /** Action name */\n type: Actions;\n};\n\nexport const DialogReducer = (state = initialState, action: DialogAction): DialogState => {\n switch (action.type) {\n case Actions.DIALOG_CLOSE: {\n const {id} = action;\n const nextOpen = without(id, state.open);\n return {\n ...state,\n open: nextOpen,\n };\n }\n case Actions.DIALOG_OPEN: {\n const {id} = action;\n return {\n ...state,\n open: [...state.open, id],\n };\n }\n default:\n return state;\n }\n};\n","import {useContext, createContext} from 'react';\n\nimport type {DialogAction, DialogState} from './DialogReducer';\nimport {initialState} from './DialogReducer';\n\nexport type DialogContextType = {dispatch: (action: DialogAction) => void; state: DialogState};\n\nexport const DialogContext = createContext<DialogContextType>({\n state: initialState,\n dispatch: () => {},\n});\n\nexport const useDialogContext = () => useContext(DialogContext);\n","import {useCallback} from 'react';\n\nimport {last} from '@/internal/utils/last.ts';\n\nimport {useDialogContext} from './DialogContext';\nimport type {DialogState} from './DialogReducer';\nimport {Actions} from './DialogReducer';\n\nconst useSelector = (callback: (arg0: DialogState) => string | undefined) => {\n const {state} = useDialogContext();\n return callback(state);\n};\n\nexport const useDialogState = (id: string) => {\n const {dispatch} = useDialogContext();\n const openDialog = useCallback(() => {\n dispatch({\n type: Actions.DIALOG_OPEN,\n id,\n });\n }, [id, dispatch]);\n const closeDialog = useCallback(() => {\n dispatch({\n type: Actions.DIALOG_CLOSE,\n id,\n });\n }, [id, dispatch]);\n const topDialogId = useSelector((state: DialogState) => last(state.open));\n const isOpen = id === topDialogId;\n return {\n openDialog,\n closeDialog,\n isOpen,\n };\n};\n","import type {ReactNode, MouseEvent, KeyboardEvent, ComponentProps} from 'react';\nimport {forwardRef, useEffect, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\nimport {IconClose} from '@/internal/Icons';\nimport {H3} from '@/lib';\nimport {useFocusTrap} from '@/internal/hooks/useFocusTrap.ts';\nimport {ActionButton, ActionsTree} from '@/internal/Actions';\n\nimport {TransitionDialog} from './TransitionDialog.tsx';\nimport {useDialogState} from './useDialogState.tsx';\nimport classes from './Dialog.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /** Provide unique id for Dialog */\n id: NonNullable<LibraryProps['id']>;\n children?: ReactNode;\n /** Configure outside click behavior */\n closeOnClickOutside?: boolean;\n /** Callback triggered when Dialog toggles */\n onToggle?: (open: boolean) => void;\n /** Display close icon at the right top corner */\n showCloseButton?: boolean;\n /** Provide an array of actions with callbacks */\n actions?: (\n | ComponentProps<typeof ActionButton>\n | [ComponentProps<typeof ActionButton>, ComponentProps<typeof ActionButton>]\n )[];\n /** Set a title of dialog */\n dialogTitle?: string;\n /** Provide a localized value for close button */\n closeLabel?: string;\n /** Enable focus trap for Dialog */\n trapFocus?: boolean;\n };\n\nexport const Dialog = forwardRef<HTMLDialogElement, Props>(\n (\n {\n children,\n className,\n closeOnClickOutside = true,\n showCloseButton = true,\n onToggle = () => {},\n id,\n actions = [],\n dialogTitle,\n closeLabel = 'Close',\n trapFocus = true,\n ...nativeProps\n },\n ref\n ) => {\n const dialogRef = useInternalRef(ref);\n const {isOpen, closeDialog} = useDialogState(id);\n useFocusTrap(dialogRef.current, isOpen, trapFocus);\n useEffect(() => {\n if (isOpen) {\n dialogRef.current?.showModal();\n document.body.classList.add(classes.noScroll);\n }\n onToggle(isOpen);\n }, [dialogRef, onToggle, isOpen]);\n\n const handleSelfClose = useCallback(() => {\n onToggle(false);\n closeDialog();\n }, [closeDialog, onToggle]);\n\n const handleClick = useCallback(\n (event: MouseEvent<typeof dialogRef.current>) => {\n if (\n (event.target as HTMLDialogElement).nodeName === 'DIALOG' &&\n closeOnClickOutside\n ) {\n handleSelfClose();\n }\n },\n [dialogRef, handleSelfClose, closeOnClickOutside]\n );\n\n const handleKeyPress = useCallback(\n (event: KeyboardEvent<HTMLDialogElement>) => {\n event.code === 'Escape' && handleSelfClose();\n },\n [handleSelfClose]\n );\n\n const handleExit = useCallback(() => {\n dialogRef.current?.close();\n document.body.classList.remove(classes.noScroll);\n }, [dialogRef]);\n\n return (\n <TransitionDialog\n unmountNode={true}\n show={isOpen}\n nodeRef={dialogRef}\n onExit={handleExit}>\n <dialog\n {...nativeProps}\n id={id}\n onKeyDown={handleKeyPress}\n onClick={handleClick}\n className={classNames(classes.dialog, className)}\n ref={dialogRef}>\n <div className={classes.flex}>\n {dialogTitle && (\n <header className={classNames(classes.header, className)}>\n <H3>{dialogTitle}</H3>\n </header>\n )}\n <div className={classNames(classes.body, className)}>{children}</div>\n <footer className={classes.actions}>\n <ActionsTree actions={actions} />\n {showCloseButton && (\n <div key={`${id}-close`} className={classes.row}>\n <ActionButton\n onClick={handleSelfClose}\n icon={IconClose}\n title={closeLabel}\n />\n </div>\n )}\n </footer>\n </div>\n </dialog>\n </TransitionDialog>\n );\n }\n);\n\nDialog.displayName = 'Dialog';\n","import type {ReactNode, Context} from 'react';\nimport {useReducer, useMemo} from 'react';\n\ntype FactoryProps<TState, TAction> = {\n context: Context<{dispatch: (action: TAction) => void; state: TState}>;\n reducer: (state: TState, action: TAction) => TState;\n initialState: TState;\n};\n\nexport const createStoreProvider =\n <TState, TAction>({initialState, reducer, context}: FactoryProps<TState, TAction>) =>\n // eslint-disable-next-line react/display-name\n ({children}: {children?: ReactNode}) => {\n const {Provider} = context;\n const [state, dispatch] = useReducer(reducer, initialState);\n const memoizedValue = useMemo(() => ({state, dispatch}), [state]);\n return <Provider value={memoizedValue}>{children}</Provider>;\n };\n","import {createStoreProvider} from '@/internal/store/createStoreProvider.tsx';\n\nimport type {DialogState, DialogAction} from './DialogReducer';\nimport {initialState, DialogReducer} from './DialogReducer';\nimport {DialogContext} from './DialogContext';\n\nexport const DialogProvider = createStoreProvider<DialogState, DialogAction>({\n context: DialogContext,\n reducer: DialogReducer,\n initialState,\n});\n","import {without} from '@/internal/utils/without.ts';\n\n/**\n * Action names collection\n * @example\n * import { Actions } from './NotificationReducer';\n * dispatch({ type: Notification.NOTIFICATION_CLOSE})\n * dispatch({ type: Notification.NOTIFICATION_OPEN})\n * */\nexport enum Actions {\n NOTIFICATION_CLOSE = 'NOTIFICATION_CLOSE',\n NOTIFICATION_OPEN = 'NOTIFICATION_OPEN',\n NOTIFICATION_REGISTER = 'NOTIFICATION_REGISTER',\n NOTIFICATION_RE_OPEN = 'NOTIFICATION_RE_OPEN',\n}\n\n/** Dialog ID type */\nexport type Id = string;\n\nexport type NotificationProps = {\n /**\n * Defines a title for the notification, which is shown at the top of the notification window\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification#title\n */\n title: string;\n /**\n * URL of an image to be displayed in the notification\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification#icon\n */\n icon?: string;\n /**\n * Body text of the notification, which is displayed below the title\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification#body\n */\n body?: string;\n /**\n * Indicates that a notification should remain active until the user clicks or dismisses it, rather than closing automatically.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification#requireinteraction\n */\n requireInteraction?: boolean;\n};\n\n/** Dialog state type */\nexport type NotificationState = {\n /** List of open modals' IDs */\n open: Id[];\n props: Record<Id, NotificationProps>;\n instances: Record<Id, Notification>;\n};\n\nexport const initialState = {\n open: [],\n props: {},\n instances: {},\n} as NotificationState;\n\ntype CloseAction = {\n /** ID of target Dialog */\n id: Id;\n /** Action name */\n type: Actions.NOTIFICATION_CLOSE;\n};\n\ntype OpenAction = {\n /** ID of target Dialog */\n id: Id;\n /** Action name */\n type: Actions.NOTIFICATION_OPEN;\n instance: Notification;\n};\n\ntype RegisterAction = {\n /** ID of target Dialog */\n id: Id;\n /** Action name */\n type: Actions.NOTIFICATION_REGISTER;\n props: NotificationProps;\n};\n\nexport type NotificationAction = CloseAction | OpenAction | RegisterAction;\n\nconst omit = <TObject extends Record<string, unknown>>(obj: TObject, key: keyof TObject) => {\n const nextObject = {...obj};\n delete nextObject[key];\n return nextObject;\n};\n\nexport const NotificationReducer = (\n state = initialState,\n action: NotificationAction\n): NotificationState => {\n switch (action.type) {\n case Actions.NOTIFICATION_CLOSE: {\n const {id} = action;\n const nextOpen = without(id, state.open);\n const nextInstances = omit(state.instances, id);\n return {\n ...state,\n open: nextOpen,\n instances: nextInstances,\n };\n }\n case Actions.NOTIFICATION_REGISTER: {\n const {id, props} = action;\n return {\n ...state,\n props: {\n ...state.props,\n [id]: props,\n },\n };\n }\n case Actions.NOTIFICATION_OPEN: {\n const {id, instance} = action;\n return {\n ...state,\n open: [...without(id, state.open), id],\n instances: {\n ...state.instances,\n [id]: instance,\n },\n };\n }\n default:\n return state;\n }\n};\n","import {useContext, createContext} from 'react';\n\nimport type {NotificationAction, NotificationState} from './NotificationReducer.ts';\nimport {initialState} from './NotificationReducer.ts';\n\nexport type DialogContextType = {\n dispatch: (action: NotificationAction) => void;\n state: NotificationState;\n};\n\nexport const NotificationContext = createContext<DialogContextType>({\n state: initialState,\n dispatch: () => {},\n});\n\nexport const useNotificationContext = () => useContext(NotificationContext);\n","import {useCallback} from 'react';\n\nimport {useNotificationContext} from './NotificationContext.ts';\nimport {Actions} from './NotificationReducer.ts';\nimport type {NotificationProps, Id} from './NotificationReducer.ts';\n\nexport const useRegisterNotification = () => {\n const {dispatch} = useNotificationContext();\n return useCallback(\n (id: Id, props: NotificationProps) => {\n dispatch({id, props, type: Actions.NOTIFICATION_REGISTER});\n },\n [dispatch]\n );\n};\n","import {useNotificationContext} from './NotificationContext.ts';\nimport type {Id} from './NotificationReducer.ts';\n\nexport const useNotificationProps = (id: Id) => {\n const {state} = useNotificationContext();\n return state.props[id];\n};\n","import {useNotificationContext} from './NotificationContext.ts';\nimport type {Id} from './NotificationReducer.ts';\n\nexport const useNotificationInstance = (id: Id): Notification | undefined => {\n const {state} = useNotificationContext();\n return state.instances[id];\n};\n","import {useCallback, useEffect, useState} from 'react';\n\nimport {useNotificationContext} from './NotificationContext.ts';\nimport type {NotificationProps, NotificationState} from './NotificationReducer.ts';\nimport {Actions} from './NotificationReducer.ts';\nimport {useNotificationProps} from './useNotificationProps.ts';\nimport {useNotificationInstance} from './useNotificationInstance.ts';\n\nconst useSelector = <TResult,>(callback: (arg0: NotificationState) => TResult) => {\n const {state} = useNotificationContext();\n return callback(state);\n};\n\nconst createNotification = (props: NotificationProps) => {\n return new window.Notification(props.title, {\n icon: props.icon,\n body: props.body,\n requireInteraction: props.requireInteraction,\n });\n};\n\nexport const useNotificationState = (id: string) => {\n const {dispatch} = useNotificationContext();\n const instance = useNotificationInstance(id);\n const notificationProps = useNotificationProps(id);\n const isOpen = useSelector((state: NotificationState) =>\n state.open.some(notificationId => notificationId === id)\n );\n const [permission, setPermission] = useState<NotificationPermission>();\n\n const handleSelfClose = useCallback(() => {\n dispatch({\n type: Actions.NOTIFICATION_CLOSE,\n id,\n });\n }, [dispatch, id]);\n\n useEffect(() => {\n instance?.addEventListener('close', handleSelfClose);\n return () => {\n instance?.removeEventListener('close', handleSelfClose);\n };\n }, [handleSelfClose, instance]);\n\n const openNotification = useCallback(() => {\n const currentPermission = window?.Notification?.permission;\n\n /* Partially supported in Firefox. The new notification will not re-appear */\n if (isOpen) {\n instance?.close();\n }\n if (currentPermission === 'granted') {\n dispatch({\n type: Actions.NOTIFICATION_OPEN,\n id,\n instance: createNotification(notificationProps),\n });\n setPermission(currentPermission);\n } else if (currentPermission !== 'denied') {\n window?.Notification?.requestPermission().then(nextPermission => {\n setPermission(nextPermission);\n if (nextPermission === 'granted') {\n dispatch({\n type: Actions.NOTIFICATION_OPEN,\n id,\n instance: createNotification(notificationProps),\n });\n }\n });\n } else if (currentPermission === 'denied') {\n setPermission(currentPermission);\n }\n }, [dispatch, id, instance, isOpen, notificationProps]);\n\n const closeNotification = useCallback(() => {\n instance?.close();\n dispatch({type: Actions.NOTIFICATION_CLOSE, id});\n }, [dispatch, id, instance]);\n\n return {\n /**\n * Show notification to the user.\n * Warning! Will not work from component scope. Needs to be run as an effect\n * @example\n * const {openNotificaton} = useNotificationState(id);\n * const handleClick = useCallback(() => {\n * openNotification();\n * }, [openNotification]);\n */\n openNotification,\n /**\n * Hide notification.\n * Warning! Will not work from component scope. Needs to be run as an effect\n * @example\n * const {openNotificaton} = useNotificationState(id);\n * const handleClick = useCallback(() => {\n * openNotification();\n * }, [openNotification]);\n */\n closeNotification,\n /** Current visibility of notification */\n isOpen,\n /**\n * Indicates the current permission granted by the user for the current origin to display web notifications\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Notification/permission_static\n */\n permission,\n };\n};\n","import type {FC} from 'react';\nimport {Fragment, useEffect} from 'react';\n\nimport {useRegisterNotification} from './useRegisterNotification.ts';\nimport type {NotificationProps, Id} from './NotificationReducer.ts';\nimport {useNotificationState} from './useNotificationState.tsx';\n\nexport type Props = NotificationProps & {\n /** Unique id of notification */\n id: Id;\n /** Callback triggered when Notification toggles */\n onToggle?: (isOpen: boolean) => void;\n onDenied?: () => void;\n};\n\nexport const Notification: FC<Props> = ({\n id,\n title,\n icon,\n body,\n requireInteraction,\n onToggle = () => {},\n onDenied = () => {},\n}) => {\n const registerNotification = useRegisterNotification();\n const {isOpen, permission} = useNotificationState(id);\n useEffect(() => {\n registerNotification(id, {title, icon, body, requireInteraction});\n }, [id, title, icon, body, requireInteraction, registerNotification]);\n\n useEffect(() => {\n onToggle(isOpen);\n }, [isOpen, onToggle]);\n\n useEffect(() => {\n permission === 'denied' && onDenied();\n }, [onDenied, permission]);\n\n return <Fragment />;\n};\n","import {createStoreProvider} from '@/internal/store/createStoreProvider.tsx';\n\nimport type {NotificationState, NotificationAction} from './NotificationReducer.ts';\nimport {initialState, NotificationReducer} from './NotificationReducer.ts';\nimport {NotificationContext} from './NotificationContext.ts';\n\nexport const NotificationProvider = createStoreProvider<NotificationState, NotificationAction>({\n context: NotificationContext,\n reducer: NotificationReducer,\n initialState,\n});\n","import type {FC, ReactNode} from 'react';\nimport {useId, useState} from 'react';\nimport {createPortal} from 'react-dom';\n\nimport {useSafeLayoutEffect} from '@/internal/hooks/useSafeLayoutEffect.ts';\n\nexport type Props = {\n children: ReactNode;\n};\n\nexport const Portal: FC<Props> = ({children}) => {\n const id = useId();\n const [portalRendered, setPortalRendered] = useState(false);\n useSafeLayoutEffect(() => {\n if (!portalRendered) {\n const element = document.createElement('div');\n element.id = id;\n document.body.appendChild(element);\n setPortalRendered(true);\n }\n return () => {\n portalRendered && document.getElementById(id)!.remove();\n };\n }, [id, portalRendered]);\n\n return portalRendered && createPortal(children, document.getElementById(id)!, id);\n};\n","import {useEffect, useRef} from 'react';\n\ntype Props = {\n callback: () => void;\n interval: number | null;\n condition?: boolean;\n};\n\nexport const useInterval = ({callback, interval, condition = true}: Props) => {\n const savedCallback = useRef<Props['callback']>();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n let id: NodeJS.Timeout;\n const tick = () => {\n savedCallback.current?.();\n };\n if (interval !== null && condition) {\n id = setInterval(tick, interval);\n }\n return () => {\n id && clearInterval(id);\n };\n }, [condition, interval]);\n};\n","/**\n * Action names collection\n * @example\n * import { Actions } from './ToastReducer';\n * dispatch({ type: Toast.TOAST_CLOSE})\n * dispatch({ type: Toast.TOAST_OPEN})\n * */\nexport enum Actions {\n TOAST_CLOSE = 'TOAST_CLOSE',\n TOAST_OPEN = 'TOAST_OPEN',\n}\n\n/** Toast ID type */\nexport type Id = string;\n\n/** Toast state type */\nexport type ToastState = {\n /** List of open Toasts' IDs */\n open: Id;\n};\n\nexport const initialState = {\n open: '',\n} as ToastState;\n\nexport type ToastAction = {\n /** ID of target Toast */\n id: Id;\n /** Action name */\n type: Actions;\n};\n\nexport const ToastReducer = (state = initialState, action: ToastAction): ToastState => {\n switch (action.type) {\n case Actions.TOAST_CLOSE: {\n const {id} = action;\n const nextOpen = state.open === id ? '' : state.open;\n return {\n ...state,\n open: nextOpen,\n };\n }\n case Actions.TOAST_OPEN: {\n const {id} = action;\n return {\n ...state,\n open: id,\n };\n }\n default:\n return state;\n }\n};\n","import {useContext, createContext} from 'react';\n\nimport type {ToastAction, ToastState} from './ToastReducer.ts';\nimport {initialState} from './ToastReducer.ts';\n\nexport type DialogContextType = {dispatch: (action: ToastAction) => void; state: ToastState};\n\nexport const ToastContext = createContext<DialogContextType>({\n state: initialState,\n dispatch: () => {},\n});\n\nexport const useToastContext = () => useContext(ToastContext);\n","import {useCallback} from 'react';\n\nimport {useToastContext} from './ToastContext.ts';\nimport type {ToastState} from './ToastReducer.ts';\nimport {Actions} from './ToastReducer.ts';\n\nconst useSelector = (callback: (arg0: ToastState) => string | undefined) => {\n const {state} = useToastContext();\n return callback(state);\n};\n\nexport const useToastState = (id: string) => {\n const {dispatch} = useToastContext();\n const openToast = useCallback(() => {\n dispatch({\n type: Actions.TOAST_OPEN,\n id,\n });\n }, [id, dispatch]);\n const closeToast = useCallback(() => {\n dispatch({\n type: Actions.TOAST_CLOSE,\n id,\n });\n }, [id, dispatch]);\n const openToastId = useSelector((state: ToastState) => state.open);\n const isOpen = id === openToastId;\n return {\n openToast,\n closeToast,\n isOpen,\n };\n};\n","import type {FC, ReactNode} from 'react';\nimport {useEffect} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useRootTheme, useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {Portal} from '@/internal/Portal';\nimport {IconClose, IconError, IconInfo, IconSuccess, IconWarning} from '@/internal/Icons';\nimport {useInterval} from '@/internal/hooks/useInterval.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\nimport {TransitionSlideBottom} from '@/internal/Transitions';\nimport type {ActionProps} from '@/internal/Actions';\nimport {ActionsTree, ActionButton} from '@/internal/Actions';\n\nimport {useToastState} from './useToastState.tsx';\nimport classes from './Toast.module.css';\n\nenum Variants {\n default = 'default',\n success = 'success',\n error = 'error',\n warning = 'warning',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /** Provide unique id to the Toast */\n id: NonNullable<LibraryProps['id']>;\n children?: ReactNode;\n /** Provide an array of actions with callbacks */\n actions?: (ActionProps | [ActionProps, ActionProps])[];\n /**\n * Provide Icon component to show instead default one\n */\n icon?: FC;\n /** Select design variant of Toast to show */\n variant?: keyof typeof Variants;\n /** Provide a main text to display inside Toast */\n title: string;\n /** Provide an additional text to display inside Toast */\n body?: string;\n /** Callback triggered when user click closes Toast */\n onToggle?: (isOpen: boolean) => void;\n /** Set time in seconds to auto close Toast */\n autoClose?: number;\n /** Provide custom label for close Toast action */\n closeLabel?: string;\n };\n\nexport const Toast = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n actions = [],\n icon: IconProp,\n variant = Variants.default,\n title,\n body,\n onToggle = () => {},\n id,\n autoClose = null,\n closeLabel = 'Close',\n ...nativeProps\n },\n refProp\n ) => {\n const {isOpen, closeToast} = useToastState(id);\n const {LocalRoot: Provider} = useLocalTheme();\n const {getTheme} = useRootTheme();\n const Icon = IconProp\n ? IconProp\n : {\n [Variants.default]: IconInfo,\n [Variants.error]: IconError,\n [Variants.success]: IconSuccess,\n [Variants.warning]: IconWarning,\n }[variant];\n useEffect(() => {\n onToggle(isOpen);\n }, [isOpen, onToggle]);\n const needsAutoClose = typeof autoClose === 'number';\n const interval = needsAutoClose ? autoClose * 1000 : null;\n useInterval({callback: closeToast, interval, condition: needsAutoClose});\n const ref = useInternalRef(refProp);\n return (\n <Portal>\n <TransitionSlideBottom show={isOpen} nodeRef={ref}>\n <Provider className={classes.provider} theme={getTheme()}>\n <div\n {...nativeProps}\n className={classNames(\n classes.toast,\n {\n [classes.success]: variant === Variants.success,\n [classes.warning]: variant === Variants.warning,\n [classes.error]: variant === Variants.error,\n },\n className\n )}\n ref={ref}>\n <div className={classes.content}>\n <div className={classes.left}>\n <Icon className={classes.icon} />\n </div>\n <div className={classes.right}>\n <div className={classes.title}>{title}</div>\n {body && <div className={classes.body}>{body}</div>}\n </div>\n </div>\n <footer className={classes.actions}>\n <ActionsTree\n actions={actions}\n classNameAction={classes.actionButton}\n />\n <div key={`${id}-close`} className={classes.row}>\n <ActionButton\n className={classes.actionButton}\n onClick={closeToast}\n icon={IconClose}\n title={closeLabel}\n />\n </div>\n </footer>\n </div>\n </Provider>\n </TransitionSlideBottom>\n </Portal>\n );\n }\n);\n\nToast.displayName = 'Toast';\n","import {createStoreProvider} from '@/internal/store/createStoreProvider.tsx';\n\nimport type {ToastState, ToastAction} from './ToastReducer.ts';\nimport {initialState, ToastReducer} from './ToastReducer.ts';\nimport {ToastContext} from './ToastContext.ts';\n\nexport const ToastProvider = createStoreProvider<ToastState, ToastAction>({\n context: ToastContext,\n reducer: ToastReducer,\n initialState,\n});\n","import type {MouseEvent, KeyboardEvent, MutableRefObject} from 'react';\nimport {useCallback} from 'react';\n\nimport {EventType, useEventListener} from '@/internal/hooks/useEventListener.ts';\n\n/**\n * React hook. Triggers provided callback when ESC key pressed or registered click outside provided element\n */\nexport const useDismiss = <TElement extends HTMLElement | null>(\n callback: () => void,\n ref: MutableRefObject<TElement>,\n isOpen: boolean\n) => {\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<TElement>) => {\n if (isOpen && event.key === 'Escape') {\n callback();\n }\n },\n [callback, isOpen]\n );\n\n useEventListener(EventType.keydown, handleKeyDown);\n\n const handleMouseDown = useCallback(\n (event: MouseEvent<TElement>) => {\n if (isOpen && (event.target as TElement)!.contains(ref.current)) {\n callback();\n }\n },\n [callback, isOpen, ref]\n );\n\n useEventListener(EventType.mousedown, handleMouseDown);\n};\n","/**\n * Action names collection\n * @example\n * import { Actions } from './DrawerReducer';\n * dispatch({ type: Drawer.DRAWER_CLOSE})\n * dispatch({ type: Drawer.DRAWER_OPEN})\n * */\nexport enum Actions {\n DRAWER_CLOSE = 'DRAWER_CLOSE',\n DRAWER_OPEN = 'DRAWER_OPEN',\n}\n\n/** Drawer ID type */\nexport type Id = string;\n\n/** Drawer state type */\nexport type DrawerState = {\n /** List of open Drawer IDs */\n open?: Id;\n};\n\nexport const initialState = {\n open: undefined,\n} as DrawerState;\n\nexport type DrawerAction = {\n /** ID of target Drawer */\n id: Id;\n /** Action name */\n type: Actions;\n};\n\nexport const DrawerReducer = (state = initialState, action: DrawerAction): DrawerState => {\n switch (action.type) {\n case Actions.DRAWER_CLOSE: {\n const {id} = action;\n const nextOpen = id === state.open ? undefined : state.open;\n return {\n ...state,\n open: nextOpen,\n };\n }\n case Actions.DRAWER_OPEN: {\n const {id} = action;\n return {\n ...state,\n open: id,\n };\n }\n default:\n return state;\n }\n};\n","import {useContext, createContext} from 'react';\n\nimport type {DrawerAction, DrawerState} from './DrawerReducer.ts';\nimport {initialState} from './DrawerReducer.ts';\n\nexport type DialogContextType = {dispatch: (action: DrawerAction) => void; state: DrawerState};\n\nexport const DrawerContext = createContext<DialogContextType>({\n state: initialState,\n dispatch: () => {},\n});\n\nexport const useDrawerContext = () => useContext(DrawerContext);\n","import {useCallback} from 'react';\n\nimport {useDrawerContext} from './DrawerContext.ts';\nimport type {DrawerState} from './DrawerReducer.ts';\nimport {Actions} from './DrawerReducer.ts';\n\nconst useSelector = (callback: (arg0: DrawerState) => string | undefined) => {\n const {state} = useDrawerContext();\n return callback(state);\n};\n\nexport const useDrawerState = (id: string) => {\n const {dispatch} = useDrawerContext();\n const openDrawer = useCallback(() => {\n dispatch({\n type: Actions.DRAWER_OPEN,\n id,\n });\n }, [id, dispatch]);\n const closeDrawer = useCallback(() => {\n dispatch({\n type: Actions.DRAWER_CLOSE,\n id,\n });\n }, [id, dispatch]);\n const openDrawerId = useSelector((state: DrawerState) => state.open);\n const isOpen = id === openDrawerId;\n return {\n openDrawer,\n closeDrawer,\n isOpen,\n };\n};\n","import type {ReactNode} from 'react';\nimport {useMemo} from 'react';\nimport {useLocalTheme, useRootTheme} from 'css-vars-hook';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {Portal} from '@/internal/Portal';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef';\nimport {useDismiss} from '@/internal/hooks/useDismiss';\nimport {TransitionSlideLeft, TransitionSlideRight} from '@/internal/Transitions';\n\nimport classes from './Drawer.module.css';\nimport {useDrawerState} from './useDrawerState.tsx';\n\nenum Placements {\n left = 'left',\n right = 'right',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Choose side to attach Drawer */\n placement?: keyof typeof Placements;\n /** Provide unique id for Drawer */\n id: string;\n };\n\nexport const Drawer = forwardRef<HTMLDivElement, Props>(\n ({children, className, placement = Placements.left, id, ...nativeProps}, refProp) => {\n const ref = useInternalRef(refProp);\n const {isOpen, closeDrawer} = useDrawerState(id);\n\n const {getTheme} = useRootTheme();\n const {LocalRoot} = useLocalTheme();\n\n const Transition = useMemo(\n () =>\n ({\n [Placements.left]: TransitionSlideLeft,\n [Placements.right]: TransitionSlideRight,\n })[placement],\n [placement]\n );\n\n useDismiss(closeDrawer, ref, isOpen);\n\n return (\n <Portal>\n <Transition show={isOpen} nodeRef={ref}>\n <LocalRoot theme={getTheme()} className={classes.provider}>\n <div\n {...nativeProps}\n className={classNames(\n classes.drawer,\n {\n [classes.left]: placement === Placements.left,\n [classes.right]: placement === Placements.right,\n },\n className\n )}\n ref={ref}>\n {children}\n </div>\n </LocalRoot>\n </Transition>\n </Portal>\n );\n }\n);\n\nDrawer.displayName = 'Drawer';\n","import {createStoreProvider} from '@/internal/store/createStoreProvider.tsx';\n\nimport type {DrawerState, DrawerAction} from './DrawerReducer.ts';\nimport {initialState, DrawerReducer} from './DrawerReducer.ts';\nimport {DrawerContext} from './DrawerContext.ts';\n\nexport const DrawerProvider = createStoreProvider<DrawerState, DrawerAction>({\n context: DrawerContext,\n reducer: DrawerReducer,\n initialState,\n});\n","import type {ThemeType} from '@/lib';\n\nexport const convertThemeVarName = (str: string) =>\n `kg-${str\n // camelToKebabCase\n .replace(/(?<![A-Z])[A-Z]/g, (letter: string) => `-${letter.toLowerCase()}`)\n // split numbers\n .replace(/(?<=\\D)\\d/g, (num: string) => `-${num}`)\n .toLowerCase()}`;\n\nexport const convertTheme = (theme: ThemeType) => {\n const entries = Object.entries(theme).map(([key, value]) => [convertThemeVarName(key), value]);\n return Object.fromEntries(entries);\n};\n","import type {FC, ReactNode} from 'react';\nimport {useMemo} from 'react';\nimport {RootThemeProvider} from 'css-vars-hook';\n\nimport type {PublicThemeType} from '@/lib/Theme';\nimport {theme, themePodil} from '@/lib/Theme';\nimport {DialogProvider} from '@/lib/Dialog';\nimport {NotificationProvider} from '@/lib/Notification';\nimport {ToastProvider} from '@/lib/Toast';\nimport {DrawerProvider} from '@/lib/Drawer';\nimport {convertTheme} from '@/internal/utils/convertThemeVarName.ts';\n\nimport classes from './Provider.module.css';\n\nexport type Props = {\n children?: ReactNode;\n /** Provide an object with theme colors and sizes parameters */\n theme?: PublicThemeType;\n};\n\nexport const Provider: FC<Props> = ({children, theme: themeProp = themePodil}) => {\n const normalizedTheme = useMemo(() => {\n return convertTheme({...theme, ...themeProp});\n }, [themeProp]);\n return (\n <RootThemeProvider theme={normalizedTheme} className={classes.provider}>\n <DialogProvider>\n <NotificationProvider>\n <ToastProvider>\n <DrawerProvider>{children}</DrawerProvider>\n </ToastProvider>\n </NotificationProvider>\n </DialogProvider>\n </RootThemeProvider>\n );\n};\n","import type {ForwardedRef, MutableRefObject} from 'react';\nimport {useImperativeHandle, useRef} from 'react';\n\n/** This hook allows to merge forwarded ref with component's inner ref. Inner ref has to be created as MutableRefObject. */\nexport const useLinkRefs = <TElement = HTMLElement>(\n outerRef: ForwardedRef<TElement>,\n innerRef: MutableRefObject<TElement | null>\n) => {\n const backupRef = useRef<TElement | null>(null);\n\n const normalizedRef = innerRef ? innerRef : backupRef;\n\n useImperativeHandle<TElement | null, TElement | null>(outerRef, () => normalizedRef.current, [\n normalizedRef,\n ]);\n};\n","export enum Sizes {\n xs = 'xs',\n sm = 'sm',\n md = 'md',\n lg = 'lg',\n xl = 'xl',\n}\n\nexport enum Offsets {\n xs = 'shiftXS',\n sm = 'shiftSM',\n md = 'shiftMD',\n lg = 'shiftLG',\n xl = 'shiftXL',\n}\n\nexport type SizeUnit = number;\nexport type FluidUnit = 'fluid';\n\nexport type SizesConfig = {\n /** The number of columns to span on tiny devices (≥360px) */\n [Sizes.xs]: SizeUnit | FluidUnit;\n /** The number of columns to span on small devices (≥640px) */\n [Sizes.sm]: SizeUnit | FluidUnit;\n /** The number of columns to span on medium devices (≥992px) */\n [Sizes.md]: SizeUnit | FluidUnit;\n /** The number of columns to span on large devices (≥1366px) */\n [Sizes.lg]: SizeUnit | FluidUnit;\n /** The number of columns to span on extremely large devices (≥1920px) */\n [Sizes.xl]: SizeUnit | FluidUnit;\n};\n\nexport type OffsetConfig = {\n /** The number of columns to off set this item from left side on extremely small devices (≥360px) */\n [Offsets.xs]: SizeUnit;\n /** The number of columns to off set this item from left side on small devices (≥640px) */\n [Offsets.sm]: SizeUnit;\n /** The number of columns to off set this item from left side on medium devices (≥768px) */\n [Offsets.md]: SizeUnit;\n /** The number of columns to off set this item from left side on large devices (≥1366px) */\n [Offsets.lg]: SizeUnit;\n /** The number of columns to off set this item from left side on extremely large devices (≥1920px) */\n [Offsets.xl]: SizeUnit;\n};\n","import type {ReactNode} from 'react';\nimport {useMemo, forwardRef} from 'react';\nimport {useLocalTheme} from 'css-vars-hook';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport {Sizes} from './SizeTypes';\nimport type {OffsetConfig, SizesConfig} from './SizeTypes';\nimport classes from './Layout.module.css';\n\nexport type ColProps = DataAttributes &\n LibraryProps &\n Partial<SizesConfig> &\n Partial<OffsetConfig> & {\n /** Select an HTML element to render as a container */\n as?: string;\n children?: ReactNode;\n };\n\nconst filterUndefined = (target: Record<string, number | string | undefined>) => {\n return Object.fromEntries(Object.entries(target).filter(([_, v]) => v !== undefined)) as Record<\n string,\n number | string\n >;\n};\n\nexport const Col = forwardRef<HTMLElement, ColProps>(\n (\n {\n as = 'div',\n children,\n className,\n xs,\n sm,\n md,\n lg,\n xl,\n shiftXS,\n shiftSM,\n shiftMD,\n shiftLG,\n shiftXL,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: internalRef} = useLocalTheme();\n useLinkRefs(ref, internalRef);\n const theme = useMemo(\n () =>\n filterUndefined({\n [Sizes.xs]: xs ?? '',\n [Sizes.sm]: sm ?? '',\n [Sizes.md]: md ?? '',\n [Sizes.lg]: lg ?? '',\n [Sizes.xl]: xl ?? '',\n [`shift-${Sizes.xs}`]: shiftXS ?? '',\n [`shift-${Sizes.sm}`]: shiftSM ?? '',\n [`shift-${Sizes.md}`]: shiftMD ?? '',\n [`shift-${Sizes.lg}`]: shiftLG ?? '',\n [`shift-${Sizes.xl}`]: shiftXL ?? '',\n }),\n [xs, sm, md, lg, xl, shiftXS, shiftSM, shiftMD, shiftLG, shiftXL]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n as={as}\n className={classNames(\n classes.column,\n {\n [classes.xs]: !!xs,\n [classes.sm]: !!sm,\n [classes.md]: !!md,\n [classes.lg]: !!lg,\n [classes.xl]: !!xl,\n [classes['fluid-xs']]: xs === 'fluid',\n [classes['fluid-sm']]: sm === 'fluid',\n [classes['fluid-md']]: md === 'fluid',\n [classes['fluid-lg']]: lg === 'fluid',\n [classes['fluid-xl']]: xl === 'fluid',\n },\n className\n )}>\n {children}\n </LocalRoot>\n );\n }\n);\n\nCol.displayName = 'Col';\n","import {forwardRef} from 'react';\nimport type {ReactNode} from 'react';\nimport {useLocalTheme} from 'css-vars-hook';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Layout.module.css';\n\ntype RowProps = DataAttributes &\n LibraryProps & {\n /** Select an HTML element to render as a container */\n as?: string;\n children: ReactNode;\n };\n\nexport const Row = forwardRef<HTMLElement, RowProps>(\n ({className, children, as = 'div', ...nativeProps}, ref) => {\n const {LocalRoot, ref: internalRef} = useLocalTheme();\n useLinkRefs(ref, internalRef);\n return (\n <LocalRoot {...nativeProps} as={as} className={classNames(classes.row, className)}>\n {children}\n </LocalRoot>\n );\n }\n);\n\nRow.displayName = 'Row';\n","import type {ReactNode} from 'react';\nimport {useLocalTheme} from 'css-vars-hook';\nimport {useMemo, forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport type {SizeUnit, FluidUnit} from './SizeTypes';\nimport classes from './Layout.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /** Set Container width in pixels as a number or set to `fluid` to make it 100% */\n width?: SizeUnit | FluidUnit;\n /** Set amount of columns to place in container */\n base?: number;\n /** Set a gap between columns in pixels */\n gap?: number;\n /** Select HTML element to render as a container */\n as?: string;\n children: ReactNode;\n };\n\nconst normalizeWidth = (widthProp: Props['width']) => {\n if (widthProp === 'fluid') {\n return '100%';\n }\n return `${widthProp}px`;\n};\n\nexport const Grid = forwardRef<HTMLElement, Props>(\n ({width = 1280, className, as = 'div', children, gap = 16, base = 12, ...nativeProps}, ref) => {\n const {LocalRoot, ref: internalRef} = useLocalTheme();\n useLinkRefs(ref, internalRef);\n const theme = useMemo(\n () => ({'container-width': normalizeWidth(width), base, gap: `${gap}px`}),\n [width, gap, base]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n as={as}\n className={classNames(classes.grid, className)}>\n {children}\n </LocalRoot>\n );\n }\n);\n\nGrid.displayName = 'Grid';\n","import {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {Props as GridProps} from './Grid.tsx';\nimport {Grid} from './Grid.tsx';\nimport classes from './Layout.module.css';\n\nexport type Props = GridProps;\n\nexport const Page = forwardRef<HTMLDivElement, Props>(\n (\n {width = 'fluid', className, as = 'div', children, gap = 0, base = 12, ...nativeProps},\n ref\n ) => {\n return (\n <Grid\n {...nativeProps}\n width={width}\n ref={ref}\n className={classNames(classes.page, className)}\n as={as}\n gap={gap}\n base={base}>\n {children}\n </Grid>\n );\n }\n);\n\nPage.displayName = 'Page';\n","import {forwardRef} from 'react';\nimport type {FC, ReactNode} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {SizesConfig} from '@/lib/Layout/SizeTypes.tsx';\n\nimport {Col} from './Col.tsx';\nimport classes from './Layout.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Partial<SizesConfig> & {\n children?: ReactNode;\n };\n\nexport const Main: FC<Props> = forwardRef<HTMLDivElement, Props>(\n ({children, className, xs = 'fluid', sm, md, lg, xl, ...restProps}, ref) => {\n return (\n <Col\n {...restProps}\n as=\"main\"\n ref={ref}\n xs={xs}\n sm={sm}\n md={md}\n lg={lg}\n xl={xl}\n className={classNames(classes.main, className)}>\n {children}\n </Col>\n );\n }\n);\n\nMain.displayName = 'Main';\n","import {forwardRef} from 'react';\nimport type {ReactNode} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport {Row} from './Row.tsx';\nimport classes from './Layout.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const Footer = forwardRef<HTMLDivElement, Props>(\n ({children, className, ...restProps}, ref) => {\n return (\n <Row {...restProps} ref={ref} className={classNames(classes.footer, className)}>\n {children}\n </Row>\n );\n }\n);\n\nFooter.displayName = 'Footer';\n","import {forwardRef} from 'react';\nimport type {ReactNode} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {SizesConfig} from '@/lib/Layout/SizeTypes.tsx';\n\nimport {Col} from './Col.tsx';\nimport classes from './Layout.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Partial<SizesConfig> & {\n children?: ReactNode;\n };\n\nexport const Sidebar = forwardRef<HTMLDivElement, Props>(\n ({children, className, xs, sm, md, lg, xl, ...restProps}, ref) => {\n return (\n <Col\n {...restProps}\n as=\"aside\"\n xs={xs}\n sm={sm}\n md={md}\n lg={lg}\n xl={xl}\n ref={ref}\n className={classNames(classes.aside, className)}>\n {children}\n </Col>\n );\n }\n);\n\nSidebar.displayName = 'Sidebar';\n","import {forwardRef} from 'react';\nimport type {FC, ReactNode} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport {Row} from './Row.tsx';\nimport classes from './Layout.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Attach header to the page top */\n sticky?: boolean;\n };\n\nexport const Header: FC<Props> = forwardRef<HTMLDivElement, Props>(\n ({children, sticky = false, className, ...restProps}, ref) => {\n return (\n <Row\n {...restProps}\n as=\"header\"\n ref={ref}\n className={classNames(classes.header, {[classes.sticky]: sticky}, className)}>\n {children}\n </Row>\n );\n }\n);\n\nHeader.displayName = 'Header';\n","import {forwardRef} from 'react';\nimport type {ReactNode} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport {Row} from './Row.tsx';\nimport classes from './Layout.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const Content = forwardRef<HTMLDivElement, Props>(\n ({children, className, ...restProps}, ref) => {\n return (\n <Row {...restProps} ref={ref} className={classNames(classes.content, className)}>\n {children}\n </Row>\n );\n }\n);\n\nContent.displayName = 'Content';\n","import type {\n FC,\n DetailedHTMLProps,\n ButtonHTMLAttributes,\n MouseEvent,\n HTMLAttributes,\n ReactNode,\n} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Button.module.css';\nimport type {Variants, Sizes} from './Types.ts';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n type?: DetailedHTMLProps<\n ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >['type'];\n disabled?: boolean;\n variant?: keyof typeof Variants;\n size?: keyof typeof Sizes;\n prefix?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n suffix?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n };\n\nexport const Button = forwardRef<HTMLButtonElement, Props>(\n (\n {\n children,\n onClick,\n type = 'button',\n disabled,\n variant = 'primary',\n className,\n prefix: Prefix,\n suffix: Suffix,\n size = 'medium',\n ...nativeProps\n },\n ref\n ) => {\n return (\n <button\n {...nativeProps}\n ref={ref}\n onClick={onClick}\n type={type}\n className={classNames(classes.button, classes[variant], classes[size], className)}\n disabled={disabled}>\n {Prefix && <Prefix className={classes.icon} />}\n <div className={classes.content}>{children}</div>\n {Suffix && <Suffix className={classes.icon} />}\n </button>\n );\n }\n);\n\nButton.displayName = 'Button';\n","/**\n * Action names collection\n * @example\n * import { Actions } from './FormReducer';\n * dispatch({ type: Actions.FORM_SET_PRISTINE})\n * */\nexport enum Actions {\n FORM_SET_PRISTINE = 'FORM_SET_PRISTINE',\n}\n\n/** Form state type */\nexport type FormState = {\n /** Defines if form is rendered or was reset to pristine state */\n pristine: boolean;\n};\n\nexport const initialState = {\n pristine: true,\n} as FormState;\n\nexport type FormAction = {\n /** Action name */\n type: Actions;\n pristine: boolean;\n};\n\nexport const FormReducer = (state = initialState, action: FormAction): FormState => {\n switch (action.type) {\n case Actions.FORM_SET_PRISTINE: {\n return {\n ...state,\n pristine: action.pristine,\n };\n }\n default:\n return state;\n }\n};\n","import type {Dispatch} from 'react';\nimport {createContext} from 'react';\n\nimport type {FormState, FormAction} from './FormReducer.ts';\nimport {initialState} from './FormReducer.ts';\n\nexport const FormContext = createContext<{state: FormState; dispatch: Dispatch<FormAction>}>({\n state: initialState,\n dispatch: () => {},\n});\n","import type {JSX, ExoticComponent} from 'react';\nimport {useMemo, useReducer, forwardRef} from 'react';\n\nimport {FormReducer, initialState} from './FormReducer.ts';\nimport {FormContext} from './FormContext.tsx';\n\nexport const withFormProvider = <TProps extends JSX.IntrinsicAttributes>(\n Component: ExoticComponent<TProps>\n) => {\n const {Provider} = FormContext;\n const FormProvider = forwardRef<HTMLFormElement, TProps>((props, ref) => {\n const [state, dispatch] = useReducer(FormReducer, initialState);\n const memoizedValue = useMemo(() => ({state, dispatch}), [state]);\n return (\n <Provider value={memoizedValue}>\n <Component {...props} ref={ref} />\n </Provider>\n );\n });\n FormProvider.displayName = 'FormProvider';\n return FormProvider;\n};\n","import {useCallback, useContext} from 'react';\n\nimport {FormContext} from './FormContext.tsx';\nimport {Actions} from './FormReducer.ts';\n\nexport const useFormActions = () => {\n const {dispatch} = useContext(FormContext);\n const markAsPristine = useCallback(() => {\n dispatch({\n type: Actions.FORM_SET_PRISTINE,\n pristine: true,\n });\n }, [dispatch]);\n const markAsDirty = useCallback(() => {\n dispatch({\n type: Actions.FORM_SET_PRISTINE,\n pristine: false,\n });\n }, [dispatch]);\n\n return {\n markAsPristine,\n markAsDirty,\n };\n};\n\nexport const useFormSelectors = () => {\n const {state} = useContext(FormContext);\n const pristine = state.pristine;\n\n return {\n pristine,\n };\n};\n","import {type ChangeEvent, useCallback} from 'react';\nimport {forwardRef} from 'react';\nimport type {ReactNode, SyntheticEvent, FormHTMLAttributes, InvalidEvent} from 'react';\nimport classNames from 'classnames';\n\nimport type {LibraryProps, DataAttributes} from '@/internal/LibraryAPI';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport {withFormProvider} from './withFormProvider.tsx';\nimport classes from './Form.module.css';\nimport {useFormActions, useFormSelectors} from './useFormContext.ts';\n\ntype FormState = Record<string, FormDataEntryValue>;\n\ntype NativeProps = {\n name?: FormHTMLAttributes<HTMLFormElement>['name'];\n autoCapitalize?: FormHTMLAttributes<HTMLFormElement>['autoCapitalize'];\n autoComplete?: FormHTMLAttributes<HTMLFormElement>['autoComplete'];\n noValidate?: FormHTMLAttributes<HTMLFormElement>['noValidate'];\n};\n\ntype CallbackProps = {\n onSubmit?: (event: SyntheticEvent<HTMLFormElement>, formState: FormState) => void;\n onInvalid?: (event: InvalidEvent<HTMLFormElement>, formState: FormState) => void;\n onReset?: (event: ChangeEvent<HTMLFormElement>, formState: FormState) => void;\n onChange?: (event: ChangeEvent<HTMLFormElement>, formState: FormState) => void;\n};\n\ntype Props = DataAttributes &\n NativeProps &\n LibraryProps &\n CallbackProps & {\n children: ReactNode;\n };\n\nconst Form = forwardRef<HTMLFormElement, Props>(\n (\n {\n className,\n children,\n onSubmit = () => {},\n onReset = () => {},\n onChange = () => {},\n onInvalid = () => {},\n ...nativeProps\n },\n ref\n ) => {\n const {markAsPristine, markAsDirty} = useFormActions();\n const getFormState = useCallback((formElement: EventTarget & HTMLFormElement) => {\n const data = new FormData(formElement);\n const formState: FormState = {};\n for (const [key, value] of data.entries()) {\n formState[key] = value;\n }\n return formState;\n }, []);\n const handleSubmit = useCallback(\n (event: SyntheticEvent<HTMLFormElement, SubmitEvent>) => {\n event.preventDefault();\n const form = event.currentTarget as HTMLFormElement;\n // const data = new FormData(form);\n // data.set('bar', 'bar');\n const formState = getFormState(form);\n onSubmit(event, formState);\n },\n [getFormState, onSubmit]\n );\n\n const handleError = useCallback(\n (event: InvalidEvent<HTMLFormElement>) => {\n markAsDirty();\n const formState = getFormState(event.currentTarget);\n onInvalid(event, formState);\n },\n [getFormState, markAsDirty, onInvalid]\n );\n\n const handleReset = useCallback(\n (event: ChangeEvent<HTMLFormElement>) => {\n const formState = getFormState(event.currentTarget);\n markAsPristine();\n onReset(event, formState);\n },\n [getFormState, onReset, markAsPristine]\n );\n\n const {pristine} = useFormSelectors();\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLFormElement>) => {\n pristine && markAsDirty();\n const formState = getFormState(event.currentTarget);\n onChange(event, formState);\n },\n [getFormState, onChange, markAsDirty, pristine]\n );\n\n const innerRef = useInternalRef<HTMLFormElement>(ref);\n return (\n <form\n {...nativeProps}\n autoFocus={true}\n onSubmit={handleSubmit}\n onInvalid={handleError}\n onReset={handleReset}\n onChange={handleChange}\n ref={innerRef}\n className={classNames(classes.form, className)}>\n {children}\n </form>\n );\n }\n);\n\nForm.displayName = 'Form';\n\nconst WrappedForm = withFormProvider(Form);\n\nexport {WrappedForm as Form};\n","import {useId} from 'react';\n\n/** Allows to use React generated id when no id provided */\nexport const useInternalId = (id?: string) => {\n const backupId = useId();\n return id ? id : backupId;\n};\n","import {Children, cloneElement, forwardRef} from 'react';\nimport type {ReactElement} from 'react';\nimport classNames from 'classnames';\n\nimport type {LibraryProps, DataAttributes} from '@/internal/LibraryAPI';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './FormField.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children: ReactElement;\n label: string;\n hint?: string;\n };\n\nexport const FormField = forwardRef<HTMLDivElement, Props>(\n ({className, children, label, hint, ...nativeProps}, ref) => {\n const inputProps = Children.only(children).props;\n const id = useInternalId(inputProps.id);\n const childrenWithProps = inputProps.id\n ? Children.only(children)\n : cloneElement(Children.only(children), {id});\n return (\n <div {...nativeProps} ref={ref} className={classNames(classes.wrapper, className)}>\n <label\n className={classNames(classes.label, {[classes.required]: inputProps.required})}\n htmlFor={id}>\n {label}\n </label>\n {childrenWithProps}\n {hint && <div className={classes.hint}>{hint}</div>}\n </div>\n );\n }\n);\n\nFormField.displayName = 'FormField';\n","import type {FormState} from './getFormState.ts';\n\nexport enum ValidationState {\n error = 'error',\n valid = 'valid',\n inProgress = 'inProgress',\n}\n\nexport type ValidationProps = {\n validatorFn?: (\n value: unknown,\n validityState: ValidityState,\n formState: FormState\n ) => string | Promise<string>;\n};\n","import type {ValidationProps} from './ValidationProps.ts';\n\nexport const defaultValidator: ValidationProps['validatorFn'] = (_: unknown | undefined) => '';\n","import type {Dispatch} from 'react';\nimport {useEffect} from 'react';\n\nimport {useFormSelectors} from '@/lib/Form';\n\nimport type {ValidationState} from './ValidationProps.ts';\n\nexport const useHandleFormReset = (setValidity: Dispatch<ValidationState | null>) => {\n const {pristine} = useFormSelectors();\n useEffect(() => {\n pristine && setValidity(null);\n }, [pristine, setValidity]);\n};\n","export type FormState = Record<string, FormDataEntryValue>;\n\nexport const getFormState = (formElement: HTMLFormElement | null) => {\n const data = formElement && new FormData(formElement);\n const formState: FormState = {};\n if (data) {\n for (const [key, value] of data.entries()) {\n formState[key] = value;\n }\n }\n return formState;\n};\n","import type {FormEvent} from 'react';\nimport {useCallback, useState} from 'react';\nimport AwesomeDebouncePromise from 'awesome-debounce-promise';\n\nimport type {ValidationProps} from './ValidationProps.ts';\nimport {ValidationState} from './ValidationProps.ts';\nimport {defaultValidator} from './defaultValidator.ts';\nimport {useHandleFormReset} from './useHandleFormReset.ts';\nimport {getFormState} from './getFormState.ts';\n\ntype InputMode = 'interactive' | 'textual';\n\nconst getValue = <TEvent extends FormEvent, TElement extends HTMLInputElement>(\n event: TEvent,\n mode: InputMode\n) => {\n return mode === 'interactive'\n ? (event.target as TElement).checked\n : (event.target as TElement).value;\n};\n\nexport const useValidation = <TEvent extends FormEvent, TElement extends HTMLInputElement>({\n validatorFn,\n}: ValidationProps) => {\n const hasCustomValidation = validatorFn !== defaultValidator;\n const [customValidation, setCustomValidation] = useState(hasCustomValidation);\n\n const isAsync = validatorFn?.constructor.name === 'AsyncFunction';\n\n const [validity, setValidity] = useState<keyof typeof ValidationState | null>(null);\n\n useHandleFormReset(setValidity);\n\n const reportValidity = useCallback(\n (event: TEvent) => {\n const isValid = (event.target as TElement).reportValidity();\n if (!isValid && !customValidation) {\n setCustomValidation(true);\n }\n const validState = customValidation ? ValidationState.valid : null;\n const nextValidationState = isValid ? validState : ValidationState.error;\n setValidity(nextValidationState);\n },\n [customValidation, setValidity]\n );\n\n const createValidatorSync = useCallback(\n (mode: InputMode, event: TEvent) => {\n const value = getValue(event, mode);\n const formState = getFormState((event.target as TElement)!.form);\n const validationError = validatorFn?.(\n value,\n (event.target as TElement).validity,\n formState\n );\n (event.target as TElement).setCustomValidity(validationError as string);\n reportValidity(event);\n },\n [validatorFn, reportValidity]\n );\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const debouncedValidator = useCallback(AwesomeDebouncePromise(validatorFn!, 1000), [\n validatorFn,\n ]);\n\n const createValidatorAsync = useCallback(\n async (mode: InputMode, event: TEvent) => {\n (event.target as TElement).setCustomValidity('');\n const value = getValue(event, mode);\n const formState = getFormState((event.target as TElement)!.form);\n setValidity(ValidationState.inProgress);\n let validationError = '';\n try {\n validationError = await debouncedValidator(\n value,\n (event.target as TElement).validity,\n formState\n );\n } catch (error) {\n (event.target as TElement).setCustomValidity(error as string);\n }\n (event.target as TElement).setCustomValidity(validationError);\n reportValidity(event);\n },\n [setValidity, debouncedValidator, reportValidity]\n );\n\n const validateInteractive = useCallback(\n (event: TEvent) => {\n return isAsync\n ? createValidatorAsync('interactive', event)\n : createValidatorSync('interactive', event);\n },\n [createValidatorAsync, createValidatorSync, isAsync]\n );\n\n const validateTextual = useCallback(\n (event: TEvent) => {\n return isAsync\n ? createValidatorAsync('textual', event)\n : createValidatorSync('textual', event);\n },\n [createValidatorSync, isAsync, createValidatorAsync]\n );\n\n return {validateInteractive, validateTextual, validity, setValidity};\n};\n","import type {ChangeEvent} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport type {\n NativePropsInteractive,\n CallbackPropsInteractive,\n ValidationProps,\n} from '@/internal/inputs';\nimport {IconError, IconLoader, IconValid} from '@/internal/Icons';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputCheckbox.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsInteractive &\n CallbackPropsInteractive &\n ValidationProps & {\n label?: string;\n };\n\nexport const InputCheckbox = forwardRef<HTMLInputElement, Props>(\n (\n {\n className,\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n checked,\n defaultChecked,\n id: idProp,\n label,\n validatorFn = defaultValidator,\n required,\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n const {validateInteractive, validity, setValidity} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n },\n [onChange]\n );\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n <input\n {...nativeProps}\n className={classes.input}\n ref={ref}\n disabled={disabled}\n type=\"checkbox\"\n id={id}\n value={value}\n checked={checked}\n defaultChecked={defaultChecked}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInput={validateInteractive}\n onInvalid={handleInvalid}\n onReset={() => {\n console.log('reset!');\n }}\n required={required}\n />\n <label\n className={classNames(classes.label, {[classes.required]: required})}\n htmlFor={id}>\n {label}\n </label>\n {validity && <ValidationIcon className={classes.icon} />}\n </div>\n );\n }\n);\n\nInputCheckbox.displayName = 'InputCheckbox';\n","import {\n forwardRef,\n Children,\n cloneElement,\n isValidElement,\n type ReactElement,\n type FieldsetHTMLAttributes,\n useMemo,\n} from 'react';\nimport classNames from 'classnames';\n\nimport type {LibraryProps, DataAttributes} from '@/internal/LibraryAPI';\nimport type {ValidationState} from '@/internal/inputs';\n\nimport classes from './InputGroup.module.css';\n\ntype ChildProps = {\n name?: Props['name'];\n disabled?: Props['disabled'];\n required?: Props['required'];\n id?: Props['id'];\n};\n\nexport type Props = DataAttributes &\n LibraryProps & {\n validation?: keyof typeof ValidationState;\n label?: string;\n children: ReactElement<ChildProps & unknown>[];\n name: string;\n /**\n * Disable input.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset\n */\n disabled?: FieldsetHTMLAttributes<HTMLFieldSetElement>['disabled'];\n required?: boolean;\n hint?: string;\n };\n\nexport const InputGroup = forwardRef<HTMLFieldSetElement, Props>(\n (\n {\n className,\n validation,\n id,\n label,\n children,\n name,\n disabled,\n hint,\n required,\n ...nativeProps\n },\n ref\n ) => {\n const childrenWithProps = useMemo(() => {\n return Children.map(children, element => {\n if (isValidElement(element)) {\n const nextProps = {name} as ChildProps;\n /* Check if own prop is set and child doesn't have the same prop */\n if (disabled !== undefined && typeof element.props.disabled !== 'boolean') {\n nextProps.disabled = disabled;\n }\n if (required !== undefined && typeof element.props.required !== 'boolean') {\n nextProps.required = required;\n }\n return cloneElement<ChildProps>(element, nextProps);\n }\n return element;\n });\n }, [children, disabled, name, required]);\n return (\n <fieldset\n {...nativeProps}\n className={classNames(classes.wrapper, className)}\n disabled={disabled}\n id={id}\n ref={ref}>\n <legend className={classNames(classes.legend, {[classes.disabled]: disabled})}>\n {label}\n </legend>\n <div className={classes.inputs}>{childrenWithProps}</div>\n {hint && <div className={classes.hint}>{hint}</div>}\n </fieldset>\n );\n }\n);\n\nInputGroup.displayName = 'InputGroup';\n","import type {ChangeEvent} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport type {\n NativePropsInteractive,\n CallbackPropsInteractive,\n ValidationProps,\n} from '@/internal/inputs';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputRadio.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsInteractive &\n CallbackPropsInteractive &\n Omit<ValidationProps, 'validatorFn'> & {\n label?: string;\n };\n\nexport const InputRadio = forwardRef<HTMLInputElement, Props>(\n (\n {\n className,\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n checked,\n defaultChecked,\n id: idProp,\n label,\n required,\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n },\n [onChange]\n );\n return (\n <div className={classNames(classes.wrapper, className)}>\n <input\n {...nativeProps}\n className={classes.input}\n ref={ref}\n disabled={disabled}\n type=\"radio\"\n id={id}\n value={value}\n checked={checked}\n defaultChecked={defaultChecked}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n required={required}\n />\n <label\n className={classNames(classes.label, {[classes.required]: required})}\n htmlFor={id}>\n {label}\n </label>\n </div>\n );\n }\n);\n\nInputRadio.displayName = 'InputRadio';\n","import type {ChangeEvent, FC, InputHTMLAttributes} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {IconError, IconValid, IconLoader} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputText.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsTextual &\n CallbackPropsTextual &\n ValidationProps & {\n /**\n * Define a type of TextInput. Allows developer to optionally set one from supported\n * text-like input types instead of default 'text'.\n * Non-text types such as `number` or `week` are not allowed.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#input_types\n */\n type?: 'text' | 'email' | 'password' | 'search' | 'tel' | 'url';\n /**\n * Define the width of the input in characters\n */\n size?: InputHTMLAttributes<HTMLInputElement>['size'];\n prefix?: FC;\n };\n\nexport const InputText = forwardRef<HTMLInputElement, Props>(\n (\n {\n prefix: Prefix,\n className,\n type = 'text',\n placeholder = '',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n validatorFn = defaultValidator,\n readOnly,\n size = 16,\n id,\n required,\n ...nativeProps\n },\n ref\n ) => {\n const {validateTextual, validity, setValidity} = useValidation({validatorFn});\n\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n },\n [onChange]\n );\n\n const handleInvalid = useCallback(() => {\n required && setValidity(ValidationState.error);\n }, [required, setValidity]);\n\n const handleSelect = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n readOnly && event.target.select();\n },\n [readOnly]\n );\n\n const inputId = useInternalId(id);\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n {Prefix && (\n <label className={classes.prefix} htmlFor={inputId}>\n <Prefix />\n </label>\n )}\n <input\n {...nativeProps}\n required={required}\n size={size}\n id={inputId}\n readOnly={readOnly}\n placeholder={placeholder}\n className={classes.input}\n ref={ref}\n disabled={disabled}\n type={type}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}\n onSelect={handleSelect}\n />\n {validity && <ValidationIcon />}\n </div>\n );\n }\n);\n\nInputText.displayName = 'InputText';\n","import type {ChangeEvent, FocusEvent} from 'react';\nimport {useRef} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {IconError, IconValid, IconLoader, IconCalendar} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {defaultValidator} from '@/internal/inputs';\nimport {ValidationState, useValidation} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputDate.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'maxLength' | 'minLength' | 'autoComplete' | 'inputMode' | 'pattern'> &\n CallbackPropsTextual &\n ValidationProps & {min?: string; max?: string};\n\nexport const InputDate = forwardRef<HTMLInputElement, Props>(\n (\n {\n id: idProp,\n className,\n placeholder = 'YYYY-MM-DD',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n validatorFn = defaultValidator,\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n const labelRef = useRef<HTMLLabelElement>(null);\n\n const {validateTextual, validity, setValidity} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n const displayValue = (value ?? defaultValue) as string;\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n if (labelRef?.current) {\n labelRef.current.innerText = event.target.value;\n }\n },\n [onChange]\n );\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n onFocus(event);\n event.target.showPicker();\n },\n [onFocus]\n );\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n onBlur(event);\n },\n [onBlur]\n );\n\n const handleInput = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n validateTextual(event);\n },\n [validateTextual]\n );\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n <div className={classes.toggle}>\n <input\n {...nativeProps}\n id={id}\n ref={ref}\n className={classes.input}\n type=\"date\"\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onInvalid={handleInvalid}\n onInput={handleInput}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n />\n <label htmlFor={id} className={classes.icon}>\n <IconCalendar />\n </label>\n </div>\n <label htmlFor={id} className={classes.label} ref={labelRef}>\n {displayValue || placeholder}\n </label>\n {validity && <ValidationIcon className={classes.validity} />}\n </div>\n );\n }\n);\n\nInputDate.displayName = 'InputDate';\n","const padZero = (str: string, len = 2) => {\n const zeros = new Array(len).join('0');\n return (zeros + str).slice(-len);\n};\n\nconst invertColorChannel = (channelValue: number) => {\n return (255 - channelValue).toString(16);\n};\n\nexport const invertColor = (hex?: string, bw?: boolean) => {\n if (hex) {\n if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n if (hex.length !== 6) {\n throw new Error('Invalid HEX color.');\n }\n const red = parseInt(hex.slice(0, 2), 16);\n const green = parseInt(hex.slice(2, 4), 16);\n const blue = parseInt(hex.slice(4, 6), 16);\n if (bw) {\n // https://stackoverflow.com/a/3943023/112731\n return red * 0.299 + green * 0.587 + blue * 0.114 > 186 ? '#000000' : '#FFFFFF';\n }\n // invert color components and pad each with zeros\n return (\n '#' +\n padZero(invertColorChannel(red)) +\n padZero(invertColorChannel(green)) +\n padZero(invertColorChannel(blue))\n );\n }\n return '';\n};\n","import type {ChangeEvent, FocusEvent, InputHTMLAttributes} from 'react';\nimport {useMemo, useRef} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconPalette} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {\n CallbackPropsTextual,\n ValidationProps,\n NativePropsInteractive,\n} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputColor.module.css';\nimport {invertColor} from './invertColor.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsInteractive &\n CallbackPropsTextual &\n Omit<ValidationProps, 'validatorFn'> & {\n /**\n * Set text for placeholder.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#placeholder\n */\n placeholder?: InputHTMLAttributes<HTMLInputElement>['placeholder'];\n /**\n * Provide a list if predefined colors to show in a browser-provided interface. Colors have to be in HEX format #000000.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalist#color_type\n */\n predefinedColors?: string[];\n };\n\nexport const InputColor = forwardRef<HTMLInputElement, Props>(\n (\n {\n className,\n placeholder = '#??????',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n id: idProp,\n predefinedColors = [],\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n\n const {LocalRoot, setTheme} = useLocalTheme();\n const displayValue = (value ?? defaultValue) as string;\n const theme = useMemo(\n () => ({\n 'selected-color': displayValue,\n 'inverted-color': invertColor(displayValue, true),\n }),\n [displayValue]\n );\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n onFocus(event);\n setTheme({\n 'selected-color': event.target.value,\n 'inverted-color': invertColor(event.target.value, true),\n });\n },\n [onFocus, setTheme]\n );\n\n const labelRef = useRef<HTMLLabelElement>(null);\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTheme({\n 'inverted-color': invertColor(event.target.value, true),\n });\n\n if (labelRef?.current) {\n labelRef.current.innerText = event.target.value;\n }\n onBlur(event);\n onChange(event);\n },\n [setTheme, onBlur, onChange]\n );\n\n /* onChange callback makes color picker to lose focus. It triggered in onBlur instead. */\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setTheme({\n 'selected-color': event.target.value,\n 'inverted-color': 'transparent',\n });\n },\n [setTheme]\n );\n\n const hasPredefinedColors = predefinedColors.length > 0;\n const predefinedColorsListId = `${id}_predefinedColors`;\n\n return (\n <LocalRoot theme={theme} className={classNames(classes.wrapper, className)}>\n <div className={classes.toggle}>\n <input\n {...nativeProps}\n id={id}\n ref={ref}\n type=\"color\"\n disabled={disabled}\n defaultValue={displayValue}\n className={classes.input}\n onBlur={handleBlur}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onFocus={handleFocus}\n onChange={handleChange}\n list={hasPredefinedColors ? predefinedColorsListId : undefined}\n />\n <IconPalette className={classNames(classes.icon)} />\n </div>\n <label htmlFor={id} className={classes.label} ref={labelRef}>\n {displayValue.toLowerCase() || placeholder}\n </label>\n {hasPredefinedColors && (\n <datalist id={predefinedColorsListId}>\n {predefinedColors.map(color => {\n return <option key={color} value={color} />;\n })}\n </datalist>\n )}\n </LocalRoot>\n );\n }\n);\n\nInputColor.displayName = 'InputColor';\n","import type {ChangeEvent, KeyboardEvent} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {IconError, IconValid, IconLoader, IconClock} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './InputTime.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'maxLength' | 'minLength' | 'autoComplete' | 'inputMode' | 'size'> &\n Omit<CallbackPropsTextual, 'onChange'> &\n ValidationProps & {\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n min?: string;\n max?: string;\n };\n\nexport const InputTime = forwardRef<HTMLInputElement, Props>(\n (\n {\n className,\n placeholder = '',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n validatorFn = defaultValidator,\n ...nativeProps\n },\n ref\n ) => {\n const inputRef = useInternalRef(ref);\n const {validity, setValidity, validateTextual} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const handleIconClick = useCallback(() => {\n inputRef.current?.focus();\n inputRef.current?.showPicker();\n }, [inputRef]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n onKeyDown(event);\n },\n [onKeyDown]\n );\n\n const handleKeyUp = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n onKeyUp(event);\n },\n [onKeyUp]\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const isValid = event.target.checkValidity();\n isValid && setValidity(ValidationState.valid);\n onChange(event);\n },\n [onChange, setValidity]\n );\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n <IconClock tabIndex={-1} onClick={handleIconClick} className={classes.icon} />\n <input\n {...nativeProps}\n type=\"time\"\n placeholder={placeholder}\n className={classes.input}\n ref={inputRef}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={handleKeyUp}\n onKeyDown={handleKeyDown}\n onInvalid={handleInvalid}\n onChange={handleChange}\n onInput={validateTextual}\n />\n {validity && <ValidationIcon />}\n </div>\n );\n }\n);\n\nInputTime.displayName = 'InputTime';\n","import {useCallback, useRef} from 'react';\n\nimport {useSafeLayoutEffect} from './useSafeLayoutEffect.ts';\n\n/**\n * React hook to persist any value between renders,\n * but keeps it up-to-date if it changes.\n *\n * @param fn the function to persist\n * @param deps the function dependency list\n */\n/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\nexport function useCallbackRef<T extends (...args: any[]) => any>(\n fn: T | undefined,\n deps: React.DependencyList = []\n): T {\n const ref = useRef(fn);\n\n useSafeLayoutEffect(() => {\n ref.current = fn;\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useCallback(((...args) => ref.current?.(...args)) as T, deps);\n}\n","import type {Dispatch, SetStateAction} from 'react';\nimport {useCallback, useState} from 'react';\n\nimport {useCallbackRef} from './useCallbackRef.ts';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isFunction = <T extends Function = Function>(value: unknown): value is T =>\n typeof value === 'function';\n\nexport function runIfFn<T, U>(valueOrFn: T | ((...fnArgs: U[]) => T), ...args: U[]): T {\n return isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn;\n}\n\nexport type UseControllableStateProps<T> = {\n /**\n * The value to used in controlled mode\n */\n value?: T;\n /**\n * The initial value to be used, in uncontrolled mode\n */\n defaultValue?: T | (() => T);\n /**\n * The callback fired when the value changes\n */\n onChange?: (value: T) => void;\n /**\n * The function that determines if the state should be updated\n */\n shouldUpdate?: (prev: T, next: T) => boolean;\n};\n\n/**\n * React hook for using controlling component state.\n * @param props\n */\nexport function useControllableState<T>(props: UseControllableStateProps<T>) {\n const {\n value: valueProp,\n defaultValue,\n onChange,\n shouldUpdate = (prev, next) => prev !== next,\n } = props;\n const onChangeProp = useCallbackRef(onChange);\n const shouldUpdateProp = useCallbackRef(shouldUpdate);\n\n const [valueState, setValue] = useState(defaultValue as T);\n\n const isControlled = valueProp !== undefined;\n const value = isControlled ? (valueProp as T) : valueState;\n\n const updateValue = useCallback(\n (next: SetStateAction<T>) => {\n const nextValue = runIfFn(next, value);\n\n if (!shouldUpdateProp(value, nextValue)) {\n return;\n }\n\n if (!isControlled) {\n setValue(nextValue);\n }\n\n onChangeProp(nextValue);\n },\n [isControlled, onChangeProp, value, shouldUpdateProp]\n );\n\n return [value, updateValue] as [T, Dispatch<SetStateAction<T>>];\n}\n","import type {ChangeEvent, FC, SVGProps} from 'react';\nimport {useMemo} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconError, IconValid, IconLoader} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsNumeric, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useControllableState} from '@/internal/hooks/useControllableState.ts';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputRange.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsNumeric, 'size'> &\n CallbackPropsTextual &\n ValidationProps & {\n prefix?: FC<{className?: string} & SVGProps<SVGSVGElement> & unknown>;\n bars?: number;\n scaleUnit?: string;\n };\n\nconst createOptions = ({\n min,\n max,\n bars,\n scaleUnit,\n}: {\n min: number;\n max: number;\n bars: number;\n scaleUnit?: string;\n}) => {\n const total = max - min;\n const singleBar = total / bars;\n const scale = new Array(bars + 1).fill('');\n return scale.map((_, i) => {\n const value = Math.floor(min + singleBar * i);\n return (\n <option\n value={value}\n label={`- ${value}${scaleUnit}`}\n className={classes.mark}\n key={i}></option>\n );\n });\n};\n\nexport const InputRange = forwardRef<HTMLInputElement, Props>(\n (\n {\n prefix: Prefix,\n id,\n className,\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n validatorFn = defaultValidator,\n min = 0,\n max = 100,\n bars = 5,\n scaleUnit = '',\n ...nativeProps\n },\n ref\n ) => {\n const {validateTextual, validity, setValidity} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n\n const [displayValue, setDisplayValue] = useControllableState({\n value,\n defaultValue,\n });\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setDisplayValue(event.target.value);\n onChange(event);\n },\n [onChange, setDisplayValue]\n );\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const inputId = useInternalId(id);\n const scaleId = `${inputId}-scale`;\n\n const {LocalRoot} = useLocalTheme();\n\n const theme = useMemo(\n () => ({\n 'output-length': max.toString().length + scaleUnit.length,\n }),\n [max, scaleUnit]\n );\n\n return (\n <div className={classNames(classes['input-range'], className)}>\n {Prefix && (\n <label className={classes.prefix} htmlFor={inputId}>\n <Prefix />\n </label>\n )}\n <div className={classes['scale-wrapper']}>\n <input\n {...nativeProps}\n id={inputId}\n type=\"range\"\n className={classes.input}\n ref={ref}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}\n list={scaleId}\n min={min}\n max={max}\n />\n <datalist id={scaleId} className={classes.scale}>\n {createOptions({min: Number(min), max: Number(max), bars, scaleUnit})}\n </datalist>\n </div>\n {/* TODO: add htmlFor when CSS vars hook supports it */}\n <LocalRoot as=\"output\" theme={theme} className={classes.output}>\n {displayValue || Number(max) / 2} {scaleUnit}\n </LocalRoot>\n {validity && <ValidationIcon className={classes.validation} />}\n </div>\n );\n }\n);\n\nInputRange.displayName = 'InputRange';\n","import type {ChangeEvent, InputHTMLAttributes} from 'react';\nimport {useMemo} from 'react';\nimport {useState} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconError, IconValid, IconLoader, IconFile} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputFile.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'inputMode' | 'maxLength' | 'minLength' | 'pattern' | 'readOnly'> &\n CallbackPropsTextual & {\n accept?: InputHTMLAttributes<HTMLInputElement>['accept'];\n multiple?: InputHTMLAttributes<HTMLInputElement>['multiple'];\n };\n\nexport const InputFile = forwardRef<HTMLInputElement, Props>(\n (\n {\n id: idProp,\n className,\n placeholder = '',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n size = 16,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot} = useLocalTheme();\n const theme = useMemo(\n () => ({\n 'input-width': `${size}ch`,\n }),\n [size]\n );\n\n const id = useInternalId(idProp);\n const [filename, setFileName] = useState('');\n const {validateTextual, validity, setValidity} = useValidation({\n validatorFn: defaultValidator,\n });\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n setFileName(event.target.files![0].name);\n },\n [onChange, setFileName]\n );\n\n const handleInvalid = useCallback(() => {\n setFileName('');\n setValidity(ValidationState.error);\n }, [setValidity]);\n return (\n <LocalRoot theme={theme} className={classNames(classes['input-file'], className)}>\n <div className={classes.toggle}>\n <input\n {...nativeProps}\n id={id}\n type=\"file\"\n placeholder={placeholder}\n className={classes.input}\n ref={ref}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}\n />\n <IconFile className={classNames(classes.icon)} />\n </div>\n <label htmlFor={id} className={classes.label}>\n {filename || placeholder}\n </label>\n {validity && <ValidationIcon className={classes.validity} />}\n </LocalRoot>\n );\n }\n);\n\nInputFile.displayName = 'InputFile';\n","import type {ChangeEvent, InputHTMLAttributes, FormEvent} from 'react';\nimport {useMemo} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconError, IconValid, IconLoader, IconArrowUp, IconArrowDown} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsNumeric, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './InputNumber.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsNumeric &\n CallbackPropsTextual &\n ValidationProps & {\n /**\n * Define the width of the input in characters\n */\n size?: InputHTMLAttributes<HTMLInputElement>['size'];\n };\n\nconst ChangeEventSpinner = new Event('change', {bubbles: true});\n\nexport const InputNumber = forwardRef<HTMLInputElement, Props>(\n (\n {\n className,\n placeholder = '',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n validatorFn = defaultValidator,\n size = 10,\n step = 1,\n ...nativeProps\n },\n ref\n ) => {\n const {validateTextual, validity, setValidity} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n },\n [onChange]\n );\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const inputRef = useInternalRef(ref);\n\n const handleDecrement = useCallback(() => {\n inputRef.current!.stepDown();\n inputRef.current!.dispatchEvent(ChangeEventSpinner);\n validateTextual(ChangeEventSpinner as unknown as FormEvent);\n }, [inputRef, validateTextual]);\n\n const handleIncrement = useCallback(() => {\n inputRef.current!.stepUp();\n inputRef.current!.dispatchEvent(ChangeEventSpinner);\n validateTextual(ChangeEventSpinner as unknown as FormEvent);\n }, [inputRef, validateTextual]);\n\n const {LocalRoot} = useLocalTheme();\n const theme = useMemo(() => ({size}), [size]);\n\n return (\n <LocalRoot className={classNames(classes.wrapper, className)} theme={theme}>\n <div className={classes.spinner}>\n <IconArrowUp tabIndex={-1} onClick={handleIncrement} />\n <IconArrowDown tabIndex={-1} onClick={handleDecrement} />\n </div>\n <input\n {...nativeProps}\n step={step}\n size={size}\n type=\"number\"\n placeholder={placeholder}\n className={classes.input}\n ref={inputRef}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}\n />\n {validity && <ValidationIcon className={classes.validation} />}\n </LocalRoot>\n );\n }\n);\n\nInputNumber.displayName = 'InputNumber';\n","import type {ChangeEvent, FC, TextareaHTMLAttributes} from 'react';\nimport {forwardRef, useCallback, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconError, IconValid, IconLoader} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './Textarea.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'inputMode' | 'pattern' | 'size'> &\n CallbackPropsTextual<HTMLTextAreaElement> &\n ValidationProps & {\n prefix?: FC;\n /**\n * The visible width of the text control, in average character widths.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#cols\n */\n cols?: TextareaHTMLAttributes<HTMLTextAreaElement>['cols'];\n /**\n * The number of visible text lines for the control.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#rows\n */\n rows?: TextareaHTMLAttributes<HTMLTextAreaElement>['rows'];\n /**\n * Specifies whether the Textarea is subject to spell checking by the underlying browser/OS.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#spellcheck\n */\n spellCheck?: TextareaHTMLAttributes<HTMLTextAreaElement>['spellCheck'];\n /**\n * Indicates how the control should wrap the value for form submission.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#wrap\n */\n wrap?: TextareaHTMLAttributes<HTMLTextAreaElement>['wrap'];\n /**\n * Set Textarea resizing behavior.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/resize\n */\n resize?: 'horizontal' | 'vertical' | 'both' | 'none';\n };\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, Props>(\n (\n {\n prefix: Prefix,\n className,\n placeholder = '',\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n defaultValue,\n validatorFn = defaultValidator,\n id,\n readOnly,\n cols = 20,\n rows = 3,\n resize = 'both',\n ...nativeProps\n },\n ref\n ) => {\n const {validateTextual, validity, setValidity} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLTextAreaElement>) => {\n onChange(event);\n },\n [onChange]\n );\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const handleInput = useCallback(\n (event: ChangeEvent<HTMLTextAreaElement>) => {\n validateTextual(event);\n },\n [validateTextual]\n );\n\n const handleSelect = useCallback(\n (event: ChangeEvent<HTMLTextAreaElement>) => {\n readOnly && event.target.select();\n },\n [readOnly]\n );\n\n const textareaId = useInternalId(id);\n\n const {LocalRoot} = useLocalTheme();\n\n const theme = useMemo(\n () => ({\n resize,\n }),\n [resize]\n );\n\n return (\n <LocalRoot theme={theme} className={classNames(classes.wrapper, className)}>\n {Prefix && (\n <label className={classes.prefix} htmlFor={textareaId}>\n <Prefix />\n </label>\n )}\n <textarea\n {...nativeProps}\n cols={cols}\n rows={rows}\n readOnly={readOnly}\n id={textareaId}\n placeholder={placeholder}\n className={classes.textarea}\n ref={ref}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={handleInput}\n onSelect={handleSelect}\n />\n {validity && <ValidationIcon className={classes.validation} />}\n </LocalRoot>\n );\n }\n);\n\nTextarea.displayName = 'Textarea';\n","import type {ChangeEvent, FC, SelectHTMLAttributes, FocusEvent, ReactNode} from 'react';\nimport {forwardRef, useCallback, useState, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconError, IconValid, IconLoader, IconExpand, IconCollapse} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {\n NativePropsInteractive,\n CallbackPropsTextual,\n ValidationProps,\n} from '@/internal/inputs';\nimport {ValidationState, defaultValidator, useValidation} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './Select.module.css';\n\nenum DropdownState {\n open = 'open',\n close = 'close',\n}\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsInteractive &\n Omit<CallbackPropsTextual<HTMLSelectElement>, 'defaultValue'> &\n ValidationProps & {\n children?: ReactNode;\n prefix?: FC;\n multiple?: SelectHTMLAttributes<HTMLSelectElement>['multiple'];\n /**\n * Define the width of the input in characters\n */\n size?: SelectHTMLAttributes<HTMLSelectElement>['size'];\n };\n\nexport const Select = forwardRef<HTMLSelectElement, Props>(\n (\n {\n prefix: Prefix,\n className,\n disabled,\n value,\n onChange = () => {},\n onFocus = () => {},\n onBlur = () => {},\n onKeyDown = () => {},\n onKeyUp = () => {},\n validatorFn = defaultValidator,\n id,\n multiple,\n children,\n size = 16,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot} = useLocalTheme();\n const theme = useMemo(\n () => ({\n 'select-width': `${size}ch`,\n }),\n [size]\n );\n\n const {validateTextual, validity, setValidity} = useValidation({validatorFn});\n const ValidationIcon = {\n [ValidationState.error]: IconError,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n }[validity!];\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLSelectElement>) => {\n onChange(event);\n },\n [onChange]\n );\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const selectId = useInternalId(id);\n\n const inputRef = useInternalRef(ref);\n\n const [dropdownState, setDropdownState] = useState<keyof typeof DropdownState>('close');\n\n const Icon = {\n [DropdownState.close]: IconCollapse,\n [DropdownState.open]: IconExpand,\n }[dropdownState];\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLSelectElement>) => {\n onFocus(event);\n setDropdownState(DropdownState.close);\n },\n [onFocus, setDropdownState]\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLSelectElement>) => {\n onBlur(event);\n setDropdownState(DropdownState.open);\n },\n [onBlur, setDropdownState]\n );\n\n return (\n <LocalRoot theme={theme} className={classNames(classes.wrapper, className)}>\n {Prefix && (\n <label className={classes.prefix} htmlFor={selectId}>\n <Prefix />\n </label>\n )}\n <div className={classes.iconWrapper}>\n <select\n {...nativeProps}\n id={selectId}\n multiple={multiple}\n className={classes.select}\n ref={inputRef}\n disabled={disabled}\n value={value}\n onChange={handleChange}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}>\n {children}\n </select>\n {!multiple && <Icon className={classes.icon} />}\n </div>\n {validity && <ValidationIcon className={classes.validation} />}\n </LocalRoot>\n );\n }\n);\n\nSelect.displayName = 'Select';\n","import type {FC, ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const Text: FC<Props> = forwardRef<HTMLDivElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <div {...nativeProps} ref={ref} className={classNames(classes.text, className)}>\n {children}\n </div>\n );\n }\n);\n\nText.displayName = 'Text';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const P = forwardRef<HTMLParagraphElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <p {...nativeProps} className={classNames(classes.paragraph, className)} ref={ref}>\n {children}\n </p>\n );\n }\n);\n\nP.displayName = 'P';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const Ul = forwardRef<HTMLUListElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <ul {...nativeProps} className={classNames(classes.ul, className)} ref={ref}>\n {children}\n </ul>\n );\n }\n);\n\nUl.displayName = 'Ul';\n\nexport const Ol = forwardRef<HTMLOListElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <ol {...nativeProps} className={classNames(classes.ol, className)} ref={ref}>\n {children}\n </ol>\n );\n }\n);\n\nOl.displayName = 'Ol';\n\nexport const Dl = forwardRef<HTMLDListElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <dl\n {...nativeProps}\n className={classNames(classes['description-list'], className)}\n ref={ref}>\n {children}\n </dl>\n );\n }\n);\n\nDl.displayName = 'Dl';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const A = forwardRef<HTMLAnchorElement, Props & {href?: string}>(\n ({children, className, href = '#', ...nativeProps}, ref) => {\n return (\n <a\n {...nativeProps}\n href={href}\n className={classNames(classes.link, className)}\n ref={ref}>\n {children}\n </a>\n );\n }\n);\n\nA.displayName = 'A';\n\nexport const B = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <b {...nativeProps} className={classNames(classes.bold, className)} ref={ref}>\n {children}\n </b>\n );\n});\n\nB.displayName = 'B';\n\nexport const Strong = forwardRef<HTMLElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <strong {...nativeProps} className={classNames(classes.strong, className)} ref={ref}>\n {children}\n </strong>\n );\n }\n);\n\nStrong.displayName = 'Strong';\n\nB.displayName = 'B';\n\nexport const I = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <i {...nativeProps} className={classNames(classes.italic, className)} ref={ref}>\n {children}\n </i>\n );\n});\n\nI.displayName = 'I';\n\nexport const Em = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <em {...nativeProps} className={classNames(classes.emphasized, className)} ref={ref}>\n {children}\n </em>\n );\n});\n\nEm.displayName = 'Em';\n\nexport const Mark = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <mark {...nativeProps} className={classNames(classes.marked, className)} ref={ref}>\n {children}\n </mark>\n );\n});\n\nMark.displayName = 'Mark';\n\nexport const Small = forwardRef<HTMLElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <small {...nativeProps} className={classNames(classes.small, className)} ref={ref}>\n {children}\n </small>\n );\n }\n);\n\nSmall.displayName = 'Small';\n\nexport const Del = forwardRef<HTMLModElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <del {...nativeProps} className={classNames(classes.deleted, className)} ref={ref}>\n {children}\n </del>\n );\n }\n);\n\nDel.displayName = 'Del';\n\nexport const Ins = forwardRef<HTMLModElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <ins {...nativeProps} className={classNames(classes.inserted, className)} ref={ref}>\n {children}\n </ins>\n );\n }\n);\n\nIns.displayName = 'Ins';\n\nexport const Sub = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <sub {...nativeProps} className={classNames(classes.subscript, className)} ref={ref}>\n {children}\n </sub>\n );\n});\n\nSub.displayName = 'Sub';\n\nexport const Sup = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <sup {...nativeProps} className={classNames(classes.superscript, className)} ref={ref}>\n {children}\n </sup>\n );\n});\n\nSup.displayName = 'Sup';\n\nexport const Kbd = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <kbd {...nativeProps} className={classNames(classes.keyboard, className)} ref={ref}>\n {children}\n </kbd>\n );\n});\n\nKbd.displayName = 'Kbd';\n\nexport const Code = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <code {...nativeProps} className={classNames(classes.code, className)} ref={ref}>\n {children}\n </code>\n );\n});\n\nCode.displayName = 'Code';\n\nexport const S = forwardRef<HTMLElement, Props>(({children, className, ...nativeProps}, ref) => {\n return (\n <s {...nativeProps} className={classNames(classes.strikeThrough, className)} ref={ref}>\n {children}\n </s>\n );\n});\n\nS.displayName = 'S';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const H1 = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h1 {...nativeProps} className={classNames(classes.header1, className)} ref={ref}>\n {children}\n </h1>\n );\n }\n);\n\nH1.displayName = 'H1';\n\nexport const H2 = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h2 {...nativeProps} className={classNames(classes.header2, className)} ref={ref}>\n {children}\n </h2>\n );\n }\n);\n\nH2.displayName = 'H2';\n\nexport const H3 = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h3 {...nativeProps} className={classNames(classes.header3, className)} ref={ref}>\n {children}\n </h3>\n );\n }\n);\n\nH3.displayName = 'H3';\n\nexport const H4 = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h4 {...nativeProps} className={classNames(classes.header4, className)} ref={ref}>\n {children}\n </h4>\n );\n }\n);\n\nH4.displayName = 'H4';\n\nexport const H5 = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h5 {...nativeProps} className={classNames(classes.header5, className)} ref={ref}>\n {children}\n </h5>\n );\n }\n);\n\nH5.displayName = 'H5';\n\nexport const H6 = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h6 {...nativeProps} className={classNames(classes.header6, className)} ref={ref}>\n {children}\n </h6>\n );\n }\n);\n\nH6.displayName = 'H6';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n };\n\nexport const BlockQuote = forwardRef<HTMLQuoteElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <blockquote\n {...nativeProps}\n className={classNames(classes.blockquote, className)}\n ref={ref}>\n {children}\n </blockquote>\n );\n }\n);\n\nBlockQuote.displayName = 'BlockQuote';\n","import {forwardRef, type HTMLAttributes, type ReactNode} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n contentEditable?: HTMLAttributes<HTMLPreElement>['contentEditable'];\n };\n\nexport const Pre = forwardRef<HTMLPreElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <pre {...nativeProps} className={classNames(classes.preformatted, className)} ref={ref}>\n {children}\n </pre>\n );\n }\n);\n\nPre.displayName = 'Pre';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children: ReactNode;\n };\n\nexport const Table = forwardRef<HTMLTableElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <div className={classes['table-wrapper']}>\n <table {...nativeProps} className={classNames(classes.table, className)} ref={ref}>\n {children}\n </table>\n </div>\n );\n }\n);\n\nTable.displayName = 'Table';\n","import {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Text.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n max: number;\n min: number;\n value: number;\n low?: number;\n high?: number;\n optimum?: number;\n };\n\nexport const Meter = forwardRef<HTMLMeterElement, Props>(\n ({max, min, value, low, high, optimum, className, ...nativeProps}, ref) => {\n return (\n <meter\n {...nativeProps}\n min={min}\n max={max}\n low={low}\n high={high}\n optimum={optimum}\n value={value}\n className={classNames(classes.meter, className)}\n ref={ref}>\n {value}\n </meter>\n );\n }\n);\n\nMeter.displayName = 'Meter';\n","import type {ReactElement} from 'react';\nimport {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Figure.module.css';\n\nenum Positions {\n center = 'center',\n left = 'left',\n right = 'right',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children: ReactElement;\n caption?: string;\n position?: keyof typeof Positions;\n };\n\nexport const Figure = forwardRef<HTMLDivElement, Props>(\n ({children, className, caption, position = Positions.center, ...nativeProps}, ref) => {\n const theme = useMemo(\n () => ({\n position,\n }),\n [position]\n );\n const {LocalRoot} = useLocalTheme();\n return (\n <LocalRoot theme={theme} className={classes.wrapper}>\n <figure\n {...nativeProps}\n className={classNames(classes.figure, className)}\n ref={ref}>\n {children}\n {caption && <figcaption>{caption}</figcaption>}\n </figure>\n </LocalRoot>\n );\n }\n);\n\nFigure.displayName = 'Figure';\n","import type {Unit} from './SkeletonTypes.ts';\n\nexport const normalizeUnit = (unitProp?: Unit) => {\n if (unitProp === undefined) {\n return 'auto';\n } else if (unitProp === 'fluid') {\n return '100%';\n }\n return `${unitProp}px`;\n};\n","import {useMemo, forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Skeleton.module.css';\nimport type {SkeletonProps} from './SkeletonTypes.ts';\nimport {normalizeUnit} from './normalizeUnit.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n SkeletonProps & {\n borderRadius?: number;\n };\n\nexport const SkeletonShape = forwardRef<HTMLDivElement, Props>(\n (\n {\n className,\n width = 'fluid',\n height,\n borderRadius = 6,\n marginY = 0,\n marginX = 0,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n useLinkRefs(ref, innerRef);\n const theme = useMemo(\n () => ({\n width: normalizeUnit(width),\n height: normalizeUnit(height),\n 'border-radius': borderRadius,\n 'margin-y': marginY,\n 'margin-x': marginX,\n }),\n [borderRadius, height, marginX, marginY, width]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.skeletonShape, className)}\n />\n );\n }\n);\n\nSkeletonShape.displayName = 'SkeletonShape';\n","import type {ReactNode} from 'react';\nimport {useMemo, forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Skeleton.module.css';\nimport {SkeletonShape} from './SkeletonShape.tsx';\nimport type {SkeletonProps} from './SkeletonTypes.ts';\nimport {normalizeUnit} from './normalizeUnit.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n SkeletonProps & {\n children?: ReactNode;\n double?: boolean;\n };\n\nexport const SkeletonAction = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n width = 'fluid',\n height = 'fluid',\n marginY = 24,\n marginX = 0,\n double = false,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n useLinkRefs(ref, innerRef);\n const theme = useMemo(\n () => ({\n width: normalizeUnit(width),\n height: normalizeUnit(height),\n 'margin-y': marginY,\n 'margin-x': marginX,\n }),\n [height, marginX, marginY, width]\n );\n return (\n <LocalRoot\n {...nativeProps}\n className={classNames(classes.skeletonAction, className)}\n theme={theme}>\n <SkeletonShape className={classes.skeletonButton} height={36} />\n {double && <SkeletonShape className={classes.skeletonButton} height={36} />}\n </LocalRoot>\n );\n }\n);\n\nSkeletonAction.displayName = 'SkeletonAction';\n","import type {ReactNode} from 'react';\nimport {useMemo, forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Skeleton.module.css';\nimport type {SkeletonProps} from './SkeletonTypes.ts';\nimport {normalizeUnit} from './normalizeUnit.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n SkeletonProps & {\n borderRadius?: number;\n children?: ReactNode;\n };\n\nexport const SkeletonFrame = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n width = 'fluid',\n height,\n borderRadius = 12,\n marginY = 0,\n marginX = 0,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n useLinkRefs(ref, innerRef);\n const theme = useMemo(\n () => ({\n width: normalizeUnit(width),\n height: normalizeUnit(height),\n 'border-radius': borderRadius,\n 'margin-y': marginY,\n 'margin-x': marginX,\n }),\n [borderRadius, height, marginX, marginY, width]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.skeletonFrame, className)}>\n {children}\n </LocalRoot>\n );\n }\n);\n\nSkeletonFrame.displayName = 'SkeletonFrame';\n","export const createArray = (length: number) => {\n return new Array(length).fill('');\n};\n","import {useMemo, forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {createArray} from '@/internal/utils/createArray.ts';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\nimport {normalizeUnit} from '@/lib/Skeleton/normalizeUnit.ts';\n\nimport classes from './Skeleton.module.css';\nimport {SkeletonShape} from './SkeletonShape.tsx';\nimport type {SkeletonProps} from './SkeletonTypes.ts';\n\nexport type Props = DataAttributes & LibraryProps & SkeletonProps & {lines?: number};\n\nexport const SkeletonText = forwardRef<HTMLDivElement, Props>(\n (\n {\n className,\n width = 'fluid',\n height,\n lines: linesProp = 3,\n marginY = 36,\n marginX = 0,\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n useLinkRefs(ref, innerRef);\n const theme = useMemo(\n () => ({\n width: normalizeUnit(width),\n height: normalizeUnit(height),\n 'margin-y': marginY,\n 'margin-x': marginX,\n }),\n [height, marginX, marginY, width]\n );\n const isSingle = linesProp === 1;\n const lines = createArray(linesProp - 1);\n return (\n <LocalRoot\n {...nativeProps}\n className={classNames(classes.skeletonText, className)}\n theme={theme}>\n {isSingle && <SkeletonShape marginY={9} height={24} />}\n {!isSingle &&\n lines.map((_, i) => {\n return <SkeletonShape marginY={9} key={i} height={24} />;\n })}\n {!isSingle && (\n <SkeletonShape marginY={9} className={classes.shortLine} height={24} />\n )}\n </LocalRoot>\n );\n }\n);\n\nSkeletonText.displayName = 'SkeletonText';\n","import type {DetailedHTMLProps, ImgHTMLAttributes} from 'react';\nimport {useCallback, forwardRef, useState} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {SkeletonShape} from '@/lib/Skeleton';\n\nimport classes from './Picture.module.css';\n\ntype IntrinsicWidth = `${number}w`;\ntype DensityDescriptor = `${number}x`;\n\ntype Source = {\n /**\n * Provide the source image url\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/src\n * @see https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types\n */\n src: string;\n /**\n * Provide the source image MIME type\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#type\n */\n type?: string;\n /**\n * Provide media condition for the source image\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#media\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_media_queries\n */\n mediaCondition?: string;\n /**\n * Provide width of the slot the image will fill when the media condition is true\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#sizes\n */\n slotWidth?: string;\n /**\n * Provide the source image display height in pixels\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#height\n */\n width?: number;\n /**\n * Provide the source image display width in pixels\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#width\n */\n height?: number;\n} & (\n | {\n /**\n * Provide the source image width descriptor. Has to be a positive integer directly followed by w. E.g. 480w\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#srcset\n * @see https://developer.mozilla.org/en-US/docs/Glossary/Intrinsic_Size\n */\n intrinsicWidth?: IntrinsicWidth;\n density?: never;\n }\n | {\n intrinsicWidth?: never;\n /**\n * Provide the source image pixel density descriptor. Has to be a positive floating point number directly followed by x. E.g. 2x\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#srcset\n * @see https://developer.mozilla.org/en-US/docs/Glossary/Intrinsic_Size\n */\n density?: DensityDescriptor;\n }\n);\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide default image url\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/src\n */\n src: string;\n /**\n * Set default image width\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/width\n */\n width?: number;\n /**\n * Set default image height\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/height\n */\n height?: number;\n /**\n * Provide alternate text to display when the image is not loaded or for use by assistive devices\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/alt\n */\n alt?: string;\n /**\n * Provide alternative sources configs array\n * @see SourceDensity\n * @see SourceWidth\n */\n sources?: Source[];\n /**\n * Set image loading behavior\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/loading\n */\n loading?: DetailedHTMLProps<\n ImgHTMLAttributes<HTMLImageElement>,\n HTMLImageElement\n >['loading'];\n };\n\nexport const Picture = forwardRef<HTMLDivElement, Props>(\n ({className, alt, src, sources, width, height, loading = 'lazy', ...nativeProps}, ref) => {\n const [isLoaded, setLoaded] = useState(false);\n const handleLoad = useCallback(() => {\n setLoaded(true);\n }, []);\n return (\n <div className={classes.wrapper}>\n <picture\n {...nativeProps}\n className={classNames(\n classes.picture,\n {[classes.loading]: !isLoaded},\n className\n )}\n ref={ref}\n onLoad={handleLoad}>\n {sources?.map(\n ({\n src,\n mediaCondition,\n density = '1x',\n intrinsicWidth,\n slotWidth = '',\n type,\n width: srcWidth,\n height: srcHeight,\n }) => {\n const srcParam = intrinsicWidth ?? density;\n return (\n <source\n type={type}\n srcSet={`${src} ${srcParam}`}\n media={`${mediaCondition} ${slotWidth}`}\n width={srcWidth}\n height={srcHeight}\n key={src}\n />\n );\n }\n )}\n <img width={width} height={height} loading={loading} src={src} alt={alt} />\n </picture>\n {!isLoaded && (\n <SkeletonShape width={width} height={height} className={classes.skeleton} />\n )}\n </div>\n );\n }\n);\n\nPicture.displayName = 'Picture';\n","import {useSafeLayoutEffect} from './useSafeLayoutEffect.ts';\n\n/** Triggers callback when element resizes */\nexport const useResizeObserver = <TElement extends HTMLElement>(\n element: TElement | null | undefined,\n onResize: (element?: TElement | null) => void\n) => {\n useSafeLayoutEffect(() => {\n const handleResize = () => {\n onResize(element);\n };\n\n if (element) {\n const observer = new ResizeObserver(handleResize);\n observer.observe(element);\n return () => {\n observer.disconnect();\n };\n }\n }, [onResize, element]);\n};\n","import type {ReactNode, FC} from 'react';\nimport {useMemo} from 'react';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport classes from './Carousel.module.css';\n\nexport const Cell: FC<{children?: ReactNode; index: number}> = ({children, index}) => {\n const theme = useMemo(\n () => ({\n index,\n }),\n [index]\n );\n const {LocalRoot} = useLocalTheme();\n\n return (\n <LocalRoot theme={theme} className={classes.cell}>\n {children}\n </LocalRoot>\n );\n};\n","import type {FC} from 'react';\nimport {useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport classes from './Carousel.module.css';\n\nexport const Dots: FC<{amount: number; active: number}> = ({amount, active}) => {\n const dotsArray = useMemo(() => Array.from(Array(amount)), [amount]);\n return (\n <div className={classes.dots}>\n {dotsArray.map((_, i) => {\n const isActive = i === active;\n return (\n <div\n className={classNames(classes.dot, {[classes.active]: isActive})}\n key={i}\n />\n );\n })}\n </div>\n );\n};\n","import type {MutableRefObject} from 'react';\nimport {useMemo, useState, useEffect} from 'react';\n\nexport const useIsInViewport = (ref: MutableRefObject<HTMLElement | null>) => {\n const [isIntersecting, setIsIntersecting] = useState(false);\n\n const observer = useMemo(\n () => new IntersectionObserver(([entry]) => setIsIntersecting(entry.isIntersecting)),\n []\n );\n\n useEffect(() => {\n ref.current && observer.observe(ref.current);\n\n return () => {\n observer.disconnect();\n };\n }, [ref, observer]);\n\n return isIntersecting;\n};\n","import {useEffect, useState} from 'react';\n\n/** React hook. Checks if browser tab is visible on screen */\nexport const useDocumentVisible = () => {\n const [documentVisible, setDocumentVisible] = useState(document.visibilityState);\n\n useEffect(() => {\n const handleVisibilityChange = () => setDocumentVisible(document.visibilityState);\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n\n return () => document.removeEventListener('visibilitychange', handleVisibilityChange);\n }, []);\n\n return documentVisible === 'visible';\n};\n","import type {MutableRefObject} from 'react';\n\nimport {useInterval} from '@/internal/hooks/useInterval.ts';\nimport {useIsInViewport} from '@/internal/hooks/useIsInViewport.tsx';\nimport {useDocumentVisible} from '@/internal/hooks/useDocumentVisible.ts';\n\ntype Props = {\n rotateFn: () => void;\n interval?: number | null;\n ref: MutableRefObject<HTMLElement | null>;\n};\n\nexport const useAutoRotate = ({rotateFn, interval = null, ref}: Props) => {\n const isInViewport = useIsInViewport(ref);\n const isActiveTab = useDocumentVisible();\n const isEnabled = Boolean(interval) && isInViewport && isActiveTab;\n useInterval({callback: rotateFn, interval, condition: isEnabled});\n};\n","import type {ReactNode} from 'react';\nimport {Children, forwardRef, useMemo, useState, useCallback, useRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {IconArrowLeft, IconArrowRight} from '@/internal/Icons';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\nimport {useResizeObserver} from '@/internal/hooks/useResizeObserver.ts';\n\nimport {Cell} from './Cell.tsx';\nimport {Dots} from './Dots.tsx';\nimport {useAutoRotate} from './useAutoRotate.ts';\nimport classes from './Carousel.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n width: number;\n height: number;\n children?: ReactNode;\n defaultVisible?: number;\n showDots?: boolean;\n showArrows?: boolean;\n /** Provide time interval in seconds to auto rotate Carousel */\n autoRotate?: number;\n /** Callback when user clicks navigation arrows */\n onRotate?: (index: number) => void;\n };\n\nconst getVisibleIndex = (index: number, length: number) => {\n return index % length >= 0 ? index % length : length + (index % length);\n};\n\n// CSS formulas\n// const getTranslateZ = (width: number, amount: number) => width / (2 * Math.tan(Math.PI / amount));\n// const getRotateY = (amount: number, index: number) => Math.round(index * (360 / amount));\n// see https://3dtransforms.desandro.com/carousel\n\nexport const Carousel = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n width,\n height,\n defaultVisible = 0,\n showDots = true,\n showArrows = true,\n autoRotate,\n onRotate = () => {},\n ...nativeProps\n },\n ref\n ) => {\n const initialState = defaultVisible !== 0 ? defaultVisible - 1 : defaultVisible;\n\n const [visible, setVisible] = useState(initialState);\n\n const cellsAmount = Children.toArray(children).length;\n\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n\n useLinkRefs(ref, innerRef);\n\n const viewPortRef = useRef<HTMLDivElement>(null);\n\n const [elementWidth, setElementWidth] = useState(width);\n const [elementHeight, setElementHeight] = useState(height);\n\n const handleResize = useCallback(\n (parent?: HTMLDivElement | null) => {\n const parentWidth = parent?.offsetWidth;\n if (parentWidth && parentWidth < elementWidth) {\n const nextHeight = height * (parentWidth / width);\n setElementWidth(parentWidth);\n setElementHeight(nextHeight);\n } else if (parentWidth && parentWidth > elementWidth) {\n setElementWidth(width);\n setElementHeight(height);\n }\n },\n [elementWidth, height, width]\n );\n\n useResizeObserver(innerRef.current?.parentElement as HTMLDivElement, handleResize);\n\n const theme = useMemo(\n () => ({\n width: elementWidth,\n height: elementHeight,\n 'cells-amount': cellsAmount,\n rotations: visible,\n }),\n [elementWidth, elementHeight, cellsAmount, visible]\n );\n\n const visibleIndex = getVisibleIndex(visible, cellsAmount);\n\n const handleIncrement = useCallback(() => {\n const nextVisible = visible + 1;\n setVisible(nextVisible);\n onRotate(getVisibleIndex(nextVisible, cellsAmount));\n }, [visible, onRotate, cellsAmount]);\n\n const handleDecrement = useCallback(() => {\n const nextVisible = visible - 1;\n setVisible(nextVisible);\n onRotate(getVisibleIndex(nextVisible, cellsAmount));\n }, [visible, onRotate, cellsAmount]);\n\n const handleRotate = useCallback(() => {\n setVisible(visible + 1);\n }, [visible, setVisible]);\n\n useAutoRotate({\n rotateFn: handleRotate,\n interval: autoRotate && autoRotate * 1000,\n ref: innerRef,\n });\n\n const cells = useMemo(\n () =>\n Children.toArray(children).map((element, index) => {\n return (\n <Cell index={index} key={index}>\n {element}\n </Cell>\n );\n }),\n [children]\n );\n\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.carousel, className)}>\n <div className={classes.scene}>\n {showArrows && (\n <button\n className={classNames(classes.navigation, classes.left)}\n onClick={handleDecrement}>\n <IconArrowLeft className={classes.icon} />\n </button>\n )}\n <div className={classes.viewport} ref={viewPortRef}>\n {cells}\n </div>\n {showArrows && (\n <button\n className={classNames(classes.navigation, classes.right)}\n onClick={handleIncrement}>\n <IconArrowRight className={classes.icon} />\n </button>\n )}\n </div>\n {showDots && (\n <Dots amount={Children.toArray(children).length} active={visibleIndex} />\n )}\n </LocalRoot>\n );\n }\n);\n\nCarousel.displayName = 'Carousel';\n","import type {MutableRefObject} from 'react';\nimport {useState} from 'react';\n\nimport {useSafeLayoutEffect} from '@/internal/hooks/useSafeLayoutEffect.ts';\n\nexport const useIsOverflow = <TElement extends HTMLElement | null>(\n ref: MutableRefObject<TElement>\n) => {\n const [overflowY, setOverflowY] = useState<boolean | undefined>(undefined);\n const [overflowX, setOverflowX] = useState<boolean | undefined>(undefined);\n\n useSafeLayoutEffect(() => {\n const {current} = ref;\n\n // const trigger = () => {\n // const hasOverflowY = current.scrollHeight > current.clientHeight;\n // const hasOverflowX = current.scrollWidth > current.clientWidth;\n //\n // setOverflowY(hasOverflowY);\n // setOverflowX(hasOverflowX);\n // };\n\n if (current) {\n const hasOverflowY = current.scrollHeight > current.clientHeight;\n const hasOverflowX = current.scrollWidth > current.clientWidth;\n\n setOverflowY(hasOverflowY);\n setOverflowX(hasOverflowX);\n }\n }, [ref]);\n\n return {overflowY, overflowX};\n};\n","import type {FC, HTMLAttributes} from 'react';\nimport {useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport classes from './Tabs.module.css';\n\ntype Props = {\n tabName: string;\n activeName: string;\n onClick: (tabName: string) => void;\n icon?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n};\n\nexport const TabButton: FC<Props> = ({tabName, onClick, icon: Icon, activeName}) => {\n const handleClick = useCallback(() => {\n onClick(tabName);\n }, [onClick, tabName]);\n return (\n <button\n type=\"button\"\n key={tabName}\n onClick={handleClick}\n className={classNames(classes.button, {[classes.selected]: activeName === tabName})}>\n {Icon && <Icon className={classes.icon} />}\n {tabName}\n </button>\n );\n};\n","import type {ReactElement} from 'react';\nimport {useEffect, useMemo, forwardRef, Children, useState, useCallback, useRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\nimport {useIsOverflow} from '@/internal/hooks/useIsOverflow.ts';\nimport {IconScroll} from '@/internal/Icons';\n\nimport type {Props as TabProps} from './Tab.tsx';\nimport {TabButton} from './TabButton.tsx';\nimport classes from './Tabs.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n selected?: string;\n width?: number;\n height?: number;\n children: ReactElement<TabProps> | ReactElement<TabProps>[];\n onToggle?: (tabName: string) => void;\n };\n\nexport const Tabs = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n selected: selectedProp,\n width,\n height,\n onToggle = () => {},\n ...nativeProps\n },\n ref\n ) => {\n const {LocalRoot, ref: innerRef} = useLocalTheme<HTMLDivElement>();\n\n useLinkRefs(ref, innerRef);\n\n const theme = useMemo(() => {\n let theme = {};\n if (height) {\n theme = {...theme, height};\n }\n if (width) {\n theme = {...theme, width};\n }\n return theme;\n }, [height, width]);\n\n const initiallySelected = useMemo(\n () =>\n selectedProp\n ? selectedProp\n : (Children.toArray(children)[0] as ReactElement<TabProps>).props.name,\n [children, selectedProp]\n );\n\n const [selected, setSelected] = useState(initiallySelected);\n\n useEffect(() => {\n if (selectedProp) {\n setSelected(selectedProp);\n } else {\n setSelected(initiallySelected);\n }\n }, [selectedProp, initiallySelected]);\n\n const handleClick = useCallback(\n (tabName: string) => {\n setSelected(tabName);\n onToggle(tabName);\n },\n [onToggle]\n );\n\n const tabs = useMemo(\n () =>\n Children.map(children, element => {\n return {tabName: element.props.name, icon: element.props.icon};\n }),\n [children]\n );\n\n const visibleTab = useMemo(\n () =>\n (Children.toArray(children) as ReactElement<TabProps>[]).find(\n element => element.props.name === selected\n ),\n [children, selected]\n );\n\n const headerRef = useRef<HTMLElement>(null);\n\n const {overflowX} = useIsOverflow(headerRef);\n\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.tabs, className)}>\n <div className={classes.viewport}>\n <header ref={headerRef} className={classes.header}>\n {tabs.map(({tabName, icon}) => {\n return (\n <TabButton\n key={tabName}\n icon={icon}\n onClick={handleClick}\n tabName={tabName}\n activeName={selected}\n />\n );\n })}\n </header>\n {overflowX && (\n <div className={classes['overflow-indicator']}>\n <IconScroll />\n </div>\n )}\n </div>\n <div className={classes.content}>{visibleTab}</div>\n </LocalRoot>\n );\n }\n);\n\nTabs.displayName = 'Tabs';\n","import type {FC, HTMLAttributes, ReactNode} from 'react';\nimport {useRef} from 'react';\n\nimport {TransitionFade} from '@/internal/Transitions';\n\nimport classes from './Tabs.module.css';\n\nexport type Props = {\n name: string;\n children: ReactNode;\n icon?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n};\n\nexport const Tab: FC<Props> = ({children}) => {\n const ref = useRef(null);\n return (\n <TransitionFade nodeRef={ref} show={true}>\n <div ref={ref} className={classes.tab}>\n {children}\n </div>\n </TransitionFade>\n );\n};\n","export enum Variants {\n bordered = 'bordered',\n plain = 'plain',\n}\n","import type {ReactNode} from 'react';\nimport {useCallback} from 'react';\nimport {useState, useEffect} from 'react';\nimport {forwardRef, Fragment} from 'react';\nimport classNames from 'classnames';\nimport {useFloating, autoUpdate, size, offset, autoPlacement} from '@floating-ui/react-dom';\nimport {useRootTheme, useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {Portal} from '@/internal/Portal';\nimport {useDismiss} from '@/internal/hooks/useDismiss.ts';\nimport {useFocusTrap} from '@/internal/hooks/useFocusTrap.ts';\n\nimport classes from './Menu.module.css';\nimport {Variants} from './Variants.ts';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children: ReactNode;\n /** Control visibility of Menu */\n isOpen?: boolean;\n /**\n * Provide Tooltip content\n * @example\n * <Menu content={<div>Foo<div>} //... />\n */\n content: ReactNode;\n /** Set class name of reference component wrapper */\n referenceClassName?: string;\n /** Provide callback for open/close events */\n onToggle?: (openState: boolean) => void;\n /** Focus on first element when open and trap focus */\n trapFocus?: boolean;\n /** Align Menu width with reference element */\n alignWidth?: boolean;\n /** Set design of Menu */\n variant?: keyof typeof Variants;\n };\n\nexport const Menu = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n isOpen: openProp = false,\n content,\n referenceClassName,\n onToggle = () => {},\n trapFocus = true,\n alignWidth = true,\n variant = Variants.plain,\n ...nativeProps\n },\n ref\n ) => {\n const [isOpen, setOpen] = useState(openProp);\n useEffect(() => {\n setOpen(openProp);\n }, [openProp, setOpen]);\n useEffect(() => {\n onToggle(isOpen);\n }, [isOpen, onToggle]);\n const {refs, floatingStyles} = useFloating<HTMLDivElement>({\n strategy: 'fixed',\n whileElementsMounted: autoUpdate,\n middleware: [\n alignWidth &&\n size({\n apply({rects, elements}) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n });\n },\n }),\n offset(18),\n autoPlacement(),\n ],\n });\n const {LocalRoot} = useLocalTheme();\n const {getTheme} = useRootTheme();\n\n const handleDismiss = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n useDismiss(handleDismiss, refs.reference, isOpen);\n useFocusTrap(refs.floating.current, isOpen, trapFocus);\n\n return (\n <Fragment>\n <div\n ref={refs.setReference}\n className={classNames(classes.reference, referenceClassName)}>\n {children}\n </div>\n {isOpen && (\n <Portal>\n <div ref={refs.setFloating} style={floatingStyles}>\n <LocalRoot className={classes.provider} theme={getTheme()}>\n <div\n {...nativeProps}\n ref={ref}\n className={classNames(\n classes.menu,\n {\n [classes.bordered]: variant === Variants.bordered,\n [classes.plain]: variant === Variants.plain,\n },\n className\n )}>\n {content}\n </div>\n </LocalRoot>\n </div>\n </Portal>\n )}\n </Fragment>\n );\n }\n);\n\nMenu.displayName = 'Menu';\n","import type {FC, ComponentProps} from 'react';\n\nimport {Actions, Variants as ActionVariants} from '@/internal/Actions';\n\nimport {Variants as MenuVariants} from './Variants.ts';\nimport type {Props as MenuProps} from './Menu.tsx';\nimport {Menu} from './Menu.tsx';\nimport classes from './Menu.module.css';\n\nexport type Props = Omit<MenuProps, 'content' | 'alignWidth'> & {\n actions?: ComponentProps<typeof Actions>['actions'];\n};\n\nexport const MenuActions: FC<Props> = ({\n children,\n /** Provide an array of actions with callbacks */\n actions = [],\n /** Set design of Menu */\n variant = MenuVariants.bordered,\n ...restProps\n}) => {\n const actionsVariant = {\n [MenuVariants.plain]: ActionVariants.inverted,\n [MenuVariants.bordered]: ActionVariants.primary,\n }[variant] as keyof typeof ActionVariants;\n return (\n <Menu\n {...restProps}\n variant={variant}\n content={\n <Actions\n variant={actionsVariant}\n actions={actions}\n classNameRow={classes.row}\n classNameAction={classes.actionButton}\n />\n }\n alignWidth={false}>\n {children}\n </Menu>\n );\n};\n","import {forwardRef, useMemo} from 'react';\nimport type {Placement} from '@floating-ui/react-dom';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Tooltip.module.css';\n\nexport type Props = {\n placement: Placement;\n left?: number;\n top?: number;\n};\n\nexport const Arrow = forwardRef<HTMLDivElement, Props>(({placement, left, top}, ref) => {\n const position = placement.split('-')[0];\n const {LocalRoot, ref: rootRef} = useLocalTheme<HTMLDivElement>();\n const theme = useMemo(() => {\n const result = {} as {top?: Props['top']; left?: Props['left']};\n if (top) {\n result.top = top;\n }\n if (left) {\n result.left = left;\n }\n return result;\n }, [left, top]);\n useLinkRefs<HTMLDivElement>(ref, rootRef);\n return (\n <LocalRoot\n theme={theme}\n className={classNames(classes.arrow, {\n [classes.bottom]: position === 'bottom',\n [classes.left]: position === 'left',\n [classes.top]: position === 'top',\n [classes.right]: position === 'right',\n })}></LocalRoot>\n );\n});\n\nArrow.displayName = 'Arrow';\n","import type {ReactNode} from 'react';\nimport {useCallback} from 'react';\nimport {useState, useEffect, useRef} from 'react';\nimport {forwardRef, Fragment} from 'react';\nimport classNames from 'classnames';\nimport type {Placement} from '@floating-ui/react-dom';\nimport {useFloating, autoUpdate, offset, arrow, flip} from '@floating-ui/react-dom';\nimport {useRootTheme, useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {Portal} from '@/internal/Portal';\nimport {useDismiss} from '@/internal/hooks/useDismiss.ts';\nimport {useFocusTrap} from '@/internal/hooks/useFocusTrap.ts';\n\nimport {Arrow} from './Arrow.tsx';\nimport classes from './Tooltip.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children: ReactNode;\n /** Control visibility of Tooltip */\n isOpen?: boolean;\n /**\n * Provide Tooltip content\n * @example\n * <Tooltip content={<div>Foo<div>} //... />\n */\n content: ReactNode;\n /** Set class name of reference component wrapper */\n referenceClassName?: string;\n /** Provide callback for open/close events */\n onToggle?: (openState: boolean) => void;\n /** Make user interactions with Tooltip possible */\n interactive?: boolean;\n /** Define recommended placement for Tooltip content, applied when possible */\n placement?: Placement;\n };\n\nexport const Tooltip = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n isOpen: openProp = false,\n content,\n referenceClassName,\n onToggle = () => {},\n interactive = true,\n placement: placementProp = 'bottom',\n ...nativeProps\n },\n ref\n ) => {\n const [isOpen, setOpen] = useState(openProp);\n useEffect(() => {\n setOpen(openProp);\n }, [openProp, setOpen]);\n useEffect(() => {\n onToggle(isOpen);\n }, [isOpen, onToggle]);\n\n const arrowRef = useRef(null);\n\n const {refs, floatingStyles, middlewareData, placement} = useFloating<HTMLDivElement>({\n strategy: 'fixed',\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(18),\n flip(),\n arrow({\n element: arrowRef,\n }),\n ],\n });\n const {LocalRoot} = useLocalTheme();\n const {getTheme} = useRootTheme();\n\n const handleDismiss = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n useDismiss(handleDismiss, refs.reference, isOpen);\n useFocusTrap(refs.floating.current, isOpen, interactive);\n\n return (\n <Fragment>\n <div\n ref={refs.setReference}\n className={classNames(classes.reference, referenceClassName)}>\n {children}\n </div>\n {isOpen && (\n <Portal>\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n className={classNames({[classes.unfocusable]: !interactive})}>\n <LocalRoot className={classes.provider} theme={getTheme()}>\n <div\n {...nativeProps}\n ref={ref}\n className={classNames(classes.tooltip, className)}>\n <Arrow\n ref={arrowRef}\n placement={placement}\n left={middlewareData.arrow?.x}\n top={middlewareData.arrow?.y}\n />\n {content}\n </div>\n </LocalRoot>\n </div>\n </Portal>\n )}\n </Fragment>\n );\n }\n);\n\nTooltip.displayName = 'Tooltip';\n","import type {FC} from 'react';\nimport {useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport classes from './Pagination.module.css';\n\ntype Props = {pageNumber: number; onClick?: (pageNumber: number) => void; isActive: boolean};\n\nexport const PageButton: FC<Props> = ({pageNumber, onClick = () => {}, isActive}) => {\n const handleClick = useCallback(() => {\n onClick(pageNumber);\n }, [onClick, pageNumber]);\n return (\n <button\n disabled={isActive}\n className={classNames(classes.pageButton, {[classes.active]: isActive})}\n onClick={handleClick}>\n {pageNumber}\n </button>\n );\n};\n","import {useCallback, useState} from 'react';\n\nconst getVisible = (totalPages: number, selectedPage: number) => {\n switch (selectedPage) {\n case 1: {\n return [selectedPage + 1, selectedPage + 2, selectedPage + 3];\n }\n case 2: {\n return [selectedPage, selectedPage + 1, selectedPage + 2];\n }\n case totalPages: {\n return [selectedPage - 3, selectedPage - 2, selectedPage - 1];\n }\n case totalPages - 1: {\n return [selectedPage - 2, selectedPage - 1, selectedPage];\n }\n default: {\n return [selectedPage - 1, selectedPage, selectedPage + 1];\n }\n }\n};\n\nexport const usePagePaginationState = (totalPages: number, initiallySelected: number) => {\n const [selectedPage, setSelectedPage] = useState(initiallySelected);\n const first = 1;\n const last = totalPages;\n const visible = getVisible(totalPages, selectedPage);\n const nextPage = selectedPage + 1 <= totalPages ? selectedPage + 1 : 1;\n const previousPage = selectedPage - 1 >= 1 ? selectedPage - 1 : totalPages;\n const isLong = totalPages > 7;\n const maxDigits = totalPages.toString().length + 1;\n const checkValidity = useCallback(\n (pageNumber: number | null) => {\n if (pageNumber === null) {\n return true;\n }\n return pageNumber >= 1 && pageNumber <= totalPages;\n },\n [totalPages]\n );\n return {\n first,\n last,\n visible,\n setSelectedPage,\n selectedPage,\n nextPage,\n previousPage,\n isLong,\n maxDigits,\n checkValidity,\n };\n};\n","import type {ReactNode, ChangeEvent, KeyboardEvent} from 'react';\nimport {useMemo} from 'react';\nimport {useCallback, useEffect, useState, Fragment, forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {createArray} from '@/internal/utils/createArray.ts';\nimport {IconForward, IconBackward, IconEnter} from '@/internal/Icons';\n\nimport {PageButton} from './PageButton.tsx';\nimport {usePagePaginationState} from './usePagePaginationState.ts';\nimport classes from './Pagination.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Set total amount of pages */\n totalPages: number;\n /** Callback to run on page change */\n onPageSelect: (pageNumber: number) => void;\n /** Set selected page externally */\n selectedPage: number;\n /** Show navigation block on the right */\n showNavigation?: boolean;\n /** Show page number buttons on the left */\n showPageButtons?: boolean;\n };\n\nexport const Pagination = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n totalPages,\n onPageSelect,\n selectedPage: selectedPageProp,\n showNavigation = true,\n showPageButtons = true,\n ...nativeProps\n },\n ref\n ) => {\n const {\n visible,\n first,\n last,\n selectedPage,\n setSelectedPage,\n nextPage,\n previousPage,\n isLong,\n maxDigits,\n checkValidity,\n } = usePagePaginationState(totalPages, selectedPageProp);\n\n const [inputPage, setInputPage] = useState<number | null>(selectedPage);\n\n useEffect(() => {\n setSelectedPage(selectedPageProp);\n }, [selectedPageProp, setSelectedPage]);\n\n const handlePageSelect = useCallback(\n (pageNumber: number) => {\n setSelectedPage(pageNumber);\n onPageSelect(pageNumber);\n },\n [onPageSelect, setSelectedPage]\n );\n\n const handleIncrement = useCallback(() => {\n setSelectedPage(nextPage);\n onPageSelect(nextPage);\n }, [nextPage, onPageSelect, setSelectedPage]);\n\n const handleDecrement = useCallback(() => {\n setSelectedPage(previousPage);\n onPageSelect(previousPage);\n }, [onPageSelect, previousPage, setSelectedPage]);\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = event.target.value !== '' ? parseInt(event.target.value) : null;\n setInputPage(nextValue);\n },\n [setInputPage]\n );\n\n const handleSubmitClick = useCallback(() => {\n checkValidity(inputPage) && inputPage !== null && handlePageSelect(inputPage);\n }, [checkValidity, handlePageSelect, inputPage]);\n\n const handleInputEnter = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n checkValidity(inputPage) && inputPage !== null && handlePageSelect(inputPage);\n }\n },\n [checkValidity, handlePageSelect, inputPage]\n );\n\n const {LocalRoot} = useLocalTheme();\n\n const theme = useMemo(\n () => ({\n digits: maxDigits,\n }),\n [maxDigits]\n );\n\n return (\n <div {...nativeProps} className={classNames(classes.pagination, className)} ref={ref}>\n {showPageButtons && (\n <div className={classes.buttons}>\n {!isLong &&\n createArray(totalPages).map((_, i) => {\n const pageNumber = i + 1;\n const isActive = pageNumber === selectedPage;\n return (\n <PageButton\n key={i}\n isActive={isActive}\n onClick={handlePageSelect}\n pageNumber={i + 1}\n />\n );\n })}\n {isLong && (\n <Fragment>\n <PageButton\n isActive={first === selectedPage}\n onClick={handlePageSelect}\n pageNumber={first}\n />\n <div className={classes.ellipsis}>…</div>\n {visible.map(pageNumber => {\n const isActive = pageNumber === selectedPage;\n return (\n <PageButton\n key={pageNumber}\n isActive={isActive}\n onClick={handlePageSelect}\n pageNumber={pageNumber}\n />\n );\n })}\n <div className={classes.ellipsis}>…</div>\n <PageButton\n isActive={last === selectedPage}\n onClick={handlePageSelect}\n pageNumber={last}\n />\n </Fragment>\n )}\n </div>\n )}\n\n {showNavigation && (\n <LocalRoot className={classes.navigation} theme={theme}>\n <div className={classes.navigationBlock}>\n <button onClick={handleDecrement} className={classes.navigationButton}>\n <IconBackward className={classes.icon} />\n </button>\n <button onClick={handleIncrement} className={classes.navigationButton}>\n <IconForward className={classes.icon} />\n </button>\n </div>\n <div className={classes.navigationBlock}>\n <input\n className={classNames(classes.input, {\n [classes.error]: !checkValidity(inputPage),\n })}\n min={first}\n max={last}\n pattern=\"[0-9]{10}\"\n step=\"1\"\n size={maxDigits}\n type=\"number\"\n defaultValue={selectedPage}\n onChange={handleInputChange}\n onKeyUp={handleInputEnter}\n />\n <button\n disabled={!checkValidity(inputPage) || inputPage === null}\n className={classes.navigationButton}\n onClick={handleSubmitClick}>\n <IconEnter className={classes.icon} />\n </button>\n </div>\n </LocalRoot>\n )}\n </div>\n );\n }\n);\n\nPagination.displayName = 'Pagination';\n","import type {ComponentProps, ReactNode} from 'react';\nimport {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\nimport {Picture} from '@/lib';\nimport type {ActionButton} from '@/internal/Actions';\nimport {ActionsTree} from '@/internal/Actions';\n\nimport classes from './Card.module.css';\n\nenum Variants {\n horizontal = 'horizontal',\n vertical = 'vertical',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Provide an url for header image */\n headerImageUrl?: string;\n /** Provide an array of actions with callbacks */\n actions?: (\n | ComponentProps<typeof ActionButton>\n | [ComponentProps<typeof ActionButton>, ComponentProps<typeof ActionButton>]\n )[];\n /** Set vertical or horizontal layout for the card */\n variant?: keyof typeof Variants;\n /** Provide width of the card. Applied in vertical mode */\n width?: number;\n /** Provide height of the card. Applied in horizontal mode */\n height?: number;\n };\n\nexport const Card = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n headerImageUrl,\n actions = [],\n id: idProp,\n variant = 'vertical',\n width,\n height,\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n const {LocalRoot, ref: internalRef} = useLocalTheme<HTMLDivElement>();\n useLinkRefs(ref, internalRef);\n const theme = useMemo(\n () => ({width: width ? `${width}px` : 'auto', height: height ? `${height}px` : 'auto'}),\n [height, width]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n id={id}\n className={classNames(\n classes.card,\n {\n [classes.vertical]: variant === Variants.vertical,\n [classes.horizontal]: variant === Variants.horizontal,\n },\n className\n )}>\n {headerImageUrl && <Picture className={classes.headerImage} src={headerImageUrl} />}\n <div className={classes.body}>{children}</div>\n <footer className={classes.actions}>\n <ActionsTree\n actions={actions}\n classNameAction={classes.actionButton}\n classNameRow={classes.row}\n />\n </footer>\n </LocalRoot>\n );\n }\n);\n\nCard.displayName = 'Card';\n","import {useState, useEffect} from 'react';\n\n/**\n * React hook, use to match media queries\n * @see https://fireship.io/snippets/use-media-query-hook/\n */\nexport const useMatchMedia = (query: string) => {\n const [matches, setMatches] = useState(false);\n\n useEffect(() => {\n const matchMedia = window.matchMedia;\n // fallback for usage in tests\n if (!matchMedia) {\n return;\n }\n const media = matchMedia(query);\n if (media.matches !== matches) {\n setMatches(media.matches);\n }\n const listener = () => setMatches(media.matches);\n window.addEventListener('resize', listener);\n return () => window.removeEventListener('resize', listener);\n }, [matches, query]);\n\n return matches;\n};\n","import type {ReactNode} from 'react';\nimport {useCallback} from 'react';\nimport {forwardRef, Fragment} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useMatchMedia} from '@/internal/hooks/useMatchMedia.tsx';\nimport {IconMenu} from '@/internal/Icons';\nimport {Drawer, useDrawerState} from '@/lib/Drawer';\n\nimport classes from './Navigation.module.css';\n\nenum Layouts {\n horizontal = 'horizontal',\n vertical = 'vertical',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n layout?: keyof typeof Layouts;\n collapsible?: boolean;\n collapsibleLabel?: string;\n };\n\nexport const NavList = forwardRef<HTMLDivElement, Props>(\n (\n {\n children,\n className,\n layout = Layouts.vertical,\n collapsible = true,\n collapsibleLabel = 'Toggle menu',\n ...nativeProps\n },\n ref\n ) => {\n const isBigScreen = useMatchMedia('(width >= 640px)');\n const collapsed = collapsible && !isBigScreen && layout === Layouts.horizontal;\n const {openDrawer, isOpen, closeDrawer} = useDrawerState('foo');\n const handleClick = useCallback(() => {\n !isOpen && openDrawer();\n isOpen && closeDrawer();\n }, [closeDrawer, isOpen, openDrawer]);\n return collapsed ? (\n <Fragment>\n <button\n type=\"button\"\n onClick={handleClick}\n className={classes.buttonCollapsible}\n aria-label={collapsibleLabel}>\n <IconMenu className={classes.iconCollapsible} />\n </button>\n <Drawer id=\"foo\">\n <div\n {...nativeProps}\n className={classNames(classes.navList, classes.vertical, className)}\n ref={ref}>\n {children}\n </div>\n </Drawer>\n </Fragment>\n ) : (\n <div\n {...nativeProps}\n className={classNames(\n classes.navList,\n classes.full,\n {\n [classes.vertical]: layout === Layouts.vertical,\n [classes.horizontal]: layout === Layouts.horizontal,\n },\n className\n )}\n ref={ref}>\n {children}\n </div>\n );\n }\n);\n\nNavList.displayName = 'NavList';\n","import type {FC, ElementType, HTMLAttributes, AriaAttributes, ReactNode, ForwardedRef} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Navigation.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n title: string;\n href: string;\n as?: ElementType<\n AriaAttributes &\n DataAttributes & {\n href: string;\n className?: string;\n title?: string;\n children?: ReactNode;\n ref?: ForwardedRef<HTMLElement>;\n } & unknown\n >;\n icon?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n shift?: boolean;\n isCurrent?: boolean;\n };\n\nexport const NavLink = forwardRef<HTMLElement, Props>(\n (\n {\n title,\n as: Component = 'a',\n href,\n icon: Icon,\n shift = false,\n className,\n isCurrent,\n ...nativeProps\n },\n ref\n ) => {\n return (\n <Component\n {...nativeProps}\n ref={ref}\n title={title}\n className={classNames(\n classes.navLink,\n {\n [classes.shift]: shift,\n [classes.current]: isCurrent,\n },\n className\n )}\n href={href}>\n {Icon && <span>{<Icon className={classes.navLinkIcon} title={title} />}</span>}\n <span className={classes.navLinkTitle}>{title}</span>\n </Component>\n );\n }\n);\n\nNavLink.displayName = 'NavLink';\n","import type {FC, ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Navigation.module.css';\n\nexport type Props = DataAttributes & LibraryProps & {children: ReactNode; className?: string};\n\nexport const NavBrand: FC<Props> = forwardRef<HTMLHeadingElement, Props>(\n ({children, className, ...nativeProps}, ref) => {\n return (\n <h1 {...nativeProps} className={classNames(classes.name, className)} ref={ref}>\n {children}\n </h1>\n );\n }\n);\n\nNavBrand.displayName = 'NavBrand';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Navigation.module.css';\nimport {NavBrand} from './NavBrand.tsx';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n name?: string;\n children?: ReactNode;\n };\n\nexport const NavPanel = forwardRef<HTMLDivElement, Props>(\n ({children, className, name = 'Koval App', ...nativeProps}, ref) => {\n return (\n <div {...nativeProps} className={classNames(classes.navPanel, className)} ref={ref}>\n {name && <NavBrand>{name}</NavBrand>}\n {children}\n </div>\n );\n }\n);\n\nNavPanel.displayName = 'NavPanel';\n","import {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './Progress.module.css';\n\nenum Variants {\n plain = 'plain',\n dashed = 'dashed',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide maximum for progress scale\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#max\n */\n max?: number;\n /**\n * Provide value for progress scale\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress#value\n */\n value?: number;\n /**\n * Choose appearance of progress bar\n */\n variant?: keyof typeof Variants;\n /**\n * Provide an optional label to display on the left side\n */\n label?: string;\n };\n\nexport const Progress = forwardRef<HTMLProgressElement, Props>(\n (\n {max = 100, value, className, variant = Variants.plain, label, id: idProp, ...nativeProps},\n ref\n ) => {\n const id = useInternalId(idProp);\n return (\n <div className={classes.wrapper}>\n {label && (\n <label className={classes.label} htmlFor={id}>\n {label}:\n </label>\n )}\n <progress\n {...nativeProps}\n id={id}\n max={max}\n value={value}\n className={classNames(\n classes.progress,\n {[classes.dashed]: variant === Variants.dashed},\n className\n )}\n ref={ref}\n />\n </div>\n );\n }\n);\n\nProgress.displayName = 'Progress';\n","import type {FC, HTMLAttributes, ReactNode, JSX} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './Breadcrumbs.module.css';\n\ntype Item = {\n name: string;\n url: string;\n icon?: FC<HTMLAttributes<HTMLOrSVGElement> & unknown>;\n};\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Provide a list of items to render inside breadcrumbs */\n items: Item[];\n /** Enable to show '...' after first breadcrumb item */\n showEllipsis?: boolean;\n };\n\nconst conditionallyAddEllipsis = (items: JSX.Element[], showEllipsis: boolean) => {\n if (showEllipsis) {\n const [first, ...rest] = items;\n return [\n first,\n <div className={classes.ellipsis} key=\"ellypsis\">\n …\n </div>,\n ...rest,\n ];\n } else {\n return items;\n }\n};\n\nexport const Breadcrumbs = forwardRef<HTMLDivElement, Props>(\n ({className, items, showEllipsis = false, ...nativeProps}, ref) => {\n const children = items.map(({name, url, icon: Icon}) => {\n return (\n <a key={name} title={name} className={classes.crumb} href={url}>\n {Icon && <Icon className={classes.icon} />}\n <span className={classes.text}>{name}</span>\n </a>\n );\n });\n return (\n <div {...nativeProps} className={classNames(classes.breadcrumbs, className)} ref={ref}>\n {conditionallyAddEllipsis(children, showEllipsis)}\n </div>\n );\n }\n);\n\nBreadcrumbs.displayName = 'Breadcrumbs';\n","import type {ReactNode} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\n\nimport classes from './ButtonGroup.module.css';\n\nenum Layouts {\n horizontal = 'horizontal',\n vertical = 'vertical',\n}\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n layout?: keyof typeof Layouts;\n };\n\nexport const ButtonGroup = forwardRef<HTMLDivElement, Props>(\n ({children, className, layout = Layouts.horizontal, ...nativeProps}, ref) => {\n return (\n <div\n {...nativeProps}\n className={classNames(\n classes.buttonGroup,\n {\n [classes.horizontal]: layout === Layouts.horizontal,\n [classes.vertical]: layout === Layouts.vertical,\n },\n className\n )}\n ref={ref}>\n {children}\n </div>\n );\n }\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n"],"names":["theme","themeInternal","useInternalRef","outerRef","innerRef","useRef","useImperativeHandle","SvgError","props","React","IconError","className","restProps","jsx","Error","classNames","classes","SvgCheck","IconValid","Check","SvgProgressActivity","IconLoader","Loader","SvgAttachFile","IconFile","Icon","SvgCalendarMonth","IconCalendar","Calendar","SvgPalette","IconPalette","Palette","SvgNestClockFarsightAnalog","IconClock","Clock","SvgExpandAll","IconExpand","SvgCollapseAll","IconCollapse","SvgArrowDropUp","IconArrowUp","SvgArrowDropDown","IconArrowDown","SvgClose","IconClose","SvgArrowLeft","IconArrowLeft","SvgArrowRight","IconArrowRight","SvgCompareArrows","IconScroll","SvgWarning","IconWarning","SvgInfo","IconInfo","SvgCheckCircle","IconSuccess","SvgSkipNext","IconForward","SvgSkipPrevious","IconBackward","SvgSubdirectoryArrowLeft","IconEnter","SvgDangerous","IconDanger","SvgLink","IconLink","SvgMenu","IconMenu","EventType","useEventListener","eventType","callback","elementProp","element","callbackRef","useEffect","handler","e","useFocusTrap","isOpen","condition","focusableElementsRef","elements","setElements","useState","first","last","_a","handleTabKeyPress","useCallback","event","ActionTypes","ActionButton","title","icon","type","onClick","ActionIcon","useMemo","handleClick","jsxs","ActionsTree","actions","classNameRow","classNameAction","ActionComponent","id","useId","actionSlot","i","left","right","Variants","Actions","forwardRef","children","variant","nativeProps","ref","Actions$5","useIsFirstRender","isFirst","isBrowser","useSafeLayoutEffect","useLayoutEffect","Transition","show","exitClassName","exitDoneClassName","enterClassName","enterDoneClassName","nodeRef","unmountNode","onExit","onEnter","isFirstRender","shouldRender","setRender","_b","_c","_d","_e","_f","Fade","SlideBottom","SlideLeft","SlideRight","TransitionDialog","arr","without","value","array","member","initialState","DialogReducer","state","action","nextOpen","DialogContext","createContext","useDialogContext","useContext","useSelector","useDialogState","dispatch","openDialog","closeDialog","topDialogId","Dialog","closeOnClickOutside","showCloseButton","onToggle","dialogTitle","closeLabel","trapFocus","dialogRef","handleSelfClose","handleKeyPress","handleExit","H3","createStoreProvider","reducer","context","Provider","useReducer","memoizedValue","DialogProvider","omit","obj","key","nextObject","NotificationReducer","nextInstances","instance","NotificationContext","useNotificationContext","useRegisterNotification","useNotificationProps","useNotificationInstance","createNotification","useNotificationState","notificationProps","notificationId","permission","setPermission","openNotification","currentPermission","nextPermission","closeNotification","Notification","body","requireInteraction","onDenied","registerNotification","Fragment","NotificationProvider","Portal","portalRendered","setPortalRendered","createPortal","useInterval","interval","savedCallback","ToastReducer","ToastContext","useToastContext","useToastState","openToast","closeToast","openToastId","Toast","IconProp","autoClose","refProp","useLocalTheme","getTheme","useRootTheme","needsAutoClose","TransitionSlideBottom","ToastProvider","useDismiss","handleKeyDown","handleMouseDown","DrawerReducer","DrawerContext","useDrawerContext","useDrawerState","openDrawer","closeDrawer","openDrawerId","Drawer","placement","LocalRoot","TransitionSlideLeft","TransitionSlideRight","DrawerProvider","convertThemeVarName","str","letter","num","convertTheme","entries","themeProp","themePodil","normalizedTheme","RootThemeProvider","useLinkRefs","backupRef","normalizedRef","Sizes","filterUndefined","target","_","v","Col","as","xs","sm","md","lg","xl","shiftXS","shiftSM","shiftMD","shiftLG","shiftXL","internalRef","Row","normalizeWidth","widthProp","Grid","width","gap","base","Page","Main","Footer","Sidebar","Header","sticky","Content","Button","disabled","Prefix","Suffix","size","FormReducer","FormContext","withFormProvider","Component","FormProvider","useFormActions","markAsPristine","markAsDirty","useFormSelectors","Form","onSubmit","onReset","onChange","onInvalid","getFormState","formElement","data","formState","handleSubmit","form","handleError","handleReset","pristine","handleChange","WrappedForm","useInternalId","backupId","FormField","label","hint","inputProps","Children","childrenWithProps","cloneElement","ValidationState","defaultValidator","useHandleFormReset","setValidity","getValue","mode","useValidation","validatorFn","hasCustomValidation","customValidation","setCustomValidation","isAsync","validity","reportValidity","isValid","validState","nextValidationState","createValidatorSync","validationError","debouncedValidator","AwesomeDebouncePromise","createValidatorAsync","error","validateInteractive","validateTextual","InputCheckbox","onFocus","onBlur","onKeyDown","onKeyUp","checked","defaultChecked","idProp","required","ValidationIcon","handleInvalid","InputGroup","validation","name","isValidElement","nextProps","InputRadio","InputText","placeholder","defaultValue","readOnly","handleSelect","inputId","InputDate","labelRef","displayValue","handleFocus","handleBlur","handleInput","padZero","len","invertColorChannel","channelValue","invertColor","hex","bw","red","green","blue","InputColor","predefinedColors","setTheme","hasPredefinedColors","predefinedColorsListId","color","InputTime","inputRef","handleIconClick","handleKeyUp","useCallbackRef","fn","deps","args","isFunction","runIfFn","valueOrFn","useControllableState","valueProp","shouldUpdate","prev","next","onChangeProp","shouldUpdateProp","valueState","setValue","isControlled","updateValue","nextValue","createOptions","min","max","bars","scaleUnit","singleBar","InputRange","setDisplayValue","scaleId","InputFile","filename","setFileName","ChangeEventSpinner","InputNumber","step","handleDecrement","handleIncrement","Textarea","cols","rows","resize","textareaId","Select","multiple","selectId","dropdownState","setDropdownState","Text","P","Ul","Ol","Dl","A","href","B","Strong","I","Em","Mark","Small","Del","Ins","Sub","Sup","Kbd","Code","S","H1","H2","H4","H5","H6","BlockQuote","Pre","Table","Meter","low","high","optimum","Figure","caption","position","normalizeUnit","unitProp","SkeletonShape","height","borderRadius","marginY","marginX","SkeletonAction","double","SkeletonFrame","createArray","length","SkeletonText","linesProp","isSingle","lines","Picture","alt","src","sources","loading","isLoaded","setLoaded","handleLoad","mediaCondition","density","intrinsicWidth","slotWidth","srcWidth","srcHeight","srcParam","useResizeObserver","onResize","handleResize","observer","Cell","index","Dots","amount","active","dotsArray","isActive","useIsInViewport","isIntersecting","setIsIntersecting","entry","useDocumentVisible","documentVisible","setDocumentVisible","handleVisibilityChange","useAutoRotate","rotateFn","isInViewport","isActiveTab","getVisibleIndex","Carousel","defaultVisible","showDots","showArrows","autoRotate","onRotate","visible","setVisible","cellsAmount","viewPortRef","elementWidth","setElementWidth","elementHeight","setElementHeight","parent","parentWidth","nextHeight","visibleIndex","nextVisible","handleRotate","cells","useIsOverflow","overflowY","setOverflowY","overflowX","setOverflowX","current","hasOverflowY","hasOverflowX","TabButton","tabName","activeName","Tabs","selectedProp","initiallySelected","selected","setSelected","tabs","visibleTab","headerRef","Tab","TransitionFade","Menu","openProp","content","referenceClassName","alignWidth","setOpen","refs","floatingStyles","useFloating","autoUpdate","rects","offset","autoPlacement","handleDismiss","MenuActions","MenuVariants","actionsVariant","ActionVariants","Arrow","top","rootRef","result","Tooltip","interactive","placementProp","arrowRef","middlewareData","flip","arrow","PageButton","pageNumber","getVisible","totalPages","selectedPage","usePagePaginationState","setSelectedPage","nextPage","previousPage","isLong","maxDigits","checkValidity","Pagination","onPageSelect","selectedPageProp","showNavigation","showPageButtons","inputPage","setInputPage","handlePageSelect","handleInputChange","handleSubmitClick","handleInputEnter","Card","headerImageUrl","useMatchMedia","query","matches","setMatches","matchMedia","media","listener","NavList","layout","collapsible","collapsibleLabel","isBigScreen","collapsed","NavLink","shift","isCurrent","NavBrand","NavPanel","Progress","conditionallyAddEllipsis","items","showEllipsis","rest","Breadcrumbs","url","ButtonGroup"],"mappings":"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","x_google_ignoreList":[4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50]}
|