koval-ui 0.18.6 → 0.18.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/lib/Theme/theme.ts","../src/lib/Theme/themePodil.ts","../src/lib/Theme/themeDnipro.ts","../src/internal/hooks/useInternalRef.ts","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/warning-circle-fill.svg?react","../src/internal/Icons/IconError.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.1/node_modules/@material-symbols/svg-700/sharp/check.svg?react","../src/internal/Icons/IconValid.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.1/node_modules/@material-symbols/svg-700/sharp/progress_activity.svg?react","../src/internal/Icons/IconLoader.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/files-fill.svg?react","../src/internal/Icons/IconFile.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/calendar-fill.svg?react","../src/internal/Icons/IconCalendar.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/watch-fill.svg?react","../src/internal/Icons/IconClock.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.1/node_modules/@material-symbols/svg-700/sharp/expand_all.svg?react","../src/internal/Icons/IconExpand.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/lock-key-fill.svg?react","../src/internal/Icons/IconLock.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/lock-key-open-fill.svg?react","../src/internal/Icons/IconLockOpen.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.1/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.29.1/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.29.1/node_modules/@material-symbols/svg-700/sharp/close.svg?react","../src/internal/Icons/IconClose.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.1/node_modules/@material-symbols/svg-700/sharp/arrow_left.svg?react","../src/internal/Icons/IconArrowLeft.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.1/node_modules/@material-symbols/svg-700/sharp/arrow_right.svg?react","../src/internal/Icons/IconArrowRight.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.1/node_modules/@material-symbols/svg-700/sharp/compare_arrows.svg?react","../src/internal/Icons/IconScroll.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/warning-fill.svg?react","../src/internal/Icons/IconWarning.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/check-circle-fill.svg?react","../src/internal/Icons/IconSuccess.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/skip-forward-fill.svg?react","../src/internal/Icons/IconForward.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/skip-back-fill.svg?react","../src/internal/Icons/IconBackward.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/key-return-fill.svg?react","../src/internal/Icons/IconEnter.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.1/node_modules/@material-symbols/svg-700/sharp/dangerous.svg?react","../src/internal/Icons/IconDanger.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/link-bold.svg?react","../src/internal/Icons/IconLink.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.1/node_modules/@material-symbols/svg-700/sharp/more_vert.svg?react","../src/internal/Icons/IconEllipsisVertical.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/columns-plus-left-bold.svg?react","../src/internal/Icons/IconPinLeft.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/columns-plus-right-bold.svg?react","../src/internal/Icons/IconPinRight.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/align-center-vertical-simple-bold.svg?react","../src/internal/Icons/IconUnPin.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.1/node_modules/@material-symbols/svg-700/sharp/filter_alt.svg?react","../src/internal/Icons/IconFilter.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.1/node_modules/@material-symbols/svg-700/sharp/filter_alt_off.svg?react","../src/internal/Icons/IconFilterOff.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/pencil-line-fill.svg?react","../src/internal/Icons/IconEdit.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/trash-fill.svg?react","../src/internal/Icons/IconDelete.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/broom-fill.svg?react","../src/internal/Icons/IconClear.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/sort-ascending-bold.svg?react","../src/internal/Icons/IconSortAsc.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/sort-descending-bold.svg?react","../src/internal/Icons/IconSortDesc.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/swatches-fill.svg?react","../src/internal/Icons/IconSwatches.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/bell-fill.svg?react","../src/internal/Icons/IconNotification.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/warning-circle-bold.svg?react","../src/internal/Icons/IconErrorOutline.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/shuffle-bold.svg?react","../src/internal/Icons/IconSortOff.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/columns-bold.svg?react","../src/internal/Icons/IconColumns.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/numpad-fill.svg?react","../src/internal/Icons/IconNumeric.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/play-fill.svg?react","../src/internal/Icons/IconPlay.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/pause-fill.svg?react","../src/internal/Icons/IconPause.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/speaker-high-fill.svg?react","../src/internal/Icons/IconVolume.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/speaker-slash-fill.svg?react","../src/internal/Icons/IconVolumeOff.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/box-arrow-down-fill.svg?react","../src/internal/Icons/IconDownloadVideo.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/cassette-tape-fill.svg?react","../src/internal/Icons/IconAudio.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/utils/isBrowser.ts","../src/internal/hooks/useSafeLayoutEffect.ts","../src/internal/Transitions/Transition.tsx","../src/internal/Transitions/SlideBottom.tsx","../src/internal/Transitions/SlideLeft.tsx","../src/internal/Transitions/SlideRight.tsx","../src/lib/Dialog/types.ts","../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/internal/inputs/useRevalidateOnFormChange.ts","../src/internal/inputs/useExternalValidation.ts","../src/internal/inputs/useValidationIcon.tsx","../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/InputDateTime/InputDateTime.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/InputPassword/InputPassword.tsx","../src/lib/InputNumber/InputNumber.tsx","../src/lib/InputNumeric/InputNumeric.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/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","../src/lib/Iframe/convertPermissions.ts","../src/lib/Iframe/Iframe.tsx","../src/internal/locale/units.ts","../src/internal/locale/useBrowserLocale.ts","../src/lib/Number/types.ts","../src/lib/Number/NumberDecimal.tsx","../src/lib/Number/NumberCurrency.tsx","../src/lib/Number/NumberPercent.tsx","../src/lib/Number/NumberUnit.tsx","../src/lib/DateTime/DateTime.tsx","../src/internal/hooks/useResizeObserverNew.ts","../src/lib/DataTable/tableFeatures/useColumnFilters.ts","../src/lib/DataTable/types.ts","../src/lib/DataTable/cells/CellWrapper.tsx","../src/lib/DataTable/cells/RowSelectionCell.tsx","../src/lib/DataTable/columns/rowSelection.tsx","../src/lib/DataTable/tableFeatures/useColumnPinning.ts","../src/lib/DataTable/TableCell.tsx","../src/lib/DataTable/tableFeatures/useVirtualRows.ts","../src/lib/DataTable/tableFeatures/useTableData.ts","../src/internal/hooks/useMatchMedia.tsx","../src/lib/DataTable/Pagination.tsx","../src/lib/DataTable/tableFeatures/usePagination.ts","../src/lib/DataTable/tableFeatures/useSorting.ts","../src/lib/DataTable/dialogs/NumberRangeField.tsx","../src/lib/DataTable/dialogs/DateRangeField.tsx","../src/lib/DataTable/dialogs/TextField.tsx","../src/lib/DataTable/dialogs/FilterDialog.tsx","../src/lib/DataTable/tableFeatures/useRowSelection.ts","../src/lib/DataTable/tableFeatures/useTableHeight.ts","../src/lib/DataTable/dialogs/DeleteDialog.tsx","../src/lib/DataTable/dialogs/PercentageInput.tsx","../src/lib/DataTable/dialogs/EditDialog.tsx","../src/lib/DataTable/SelectableActions.tsx","../src/internal/utils/set.ts","../src/lib/DataTable/tableFeatures/useEdit.ts","../src/lib/DataTable/cells/ColumnHeaderCell.tsx","../src/lib/DataTable/cells/ColumnFooterCell.tsx","../src/lib/DataTable/cells/ViewTextCell.tsx","../src/lib/DataTable/cells/ViewDecimalCell.tsx","../src/lib/DataTable/cells/ViewUnitCell.tsx","../src/lib/DataTable/cells/ViewDateCell.tsx","../src/lib/DataTable/cells/ViewCurrencyCell.tsx","../src/lib/DataTable/cells/ViewPercentageCell.tsx","../src/lib/DataTable/tableFeatures/useTableColumns.tsx","../src/lib/DataTable/filterFns.ts","../src/lib/DataTable/DataTable.tsx","../src/lib/Name/NameRegion.tsx","../src/lib/Name/NameLanguage.tsx","../src/lib/Name/NameCurrency.tsx","../src/lib/Name/NameTime.tsx","../src/lib/Flag/flagsDictionary.ts","../src/lib/Flag/Flag.tsx","../src/internal/MediaEmbeds/types.ts","../src/internal/MediaEmbeds/usePlay.ts","../src/internal/MediaEmbeds/getFileName.ts","../src/internal/MediaEmbeds/useLoadingState.ts","../src/internal/MediaEmbeds/getFormattedTime.ts","../src/internal/MediaEmbeds/useTime.ts","../src/internal/MediaEmbeds/useSound.ts","../src/lib/Audio/Audio.tsx"],"sourcesContent":["export const theme = {\n fontFamily: `'Rubik Variable', sans-serif`,\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 timeXS: '111ms',\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 SvgWarningCircleFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-8,56a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm8,104a12,12,0,1,1,12-12A12,12,0,0,1,128,184Z\" }));\nexport default SvgWarningCircleFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/warning-circle-fill.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 <Icon 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 SvgFilesFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M213.66,66.34l-40-40A8,8,0,0,0,168,24H88A16,16,0,0,0,72,40V56H56A16,16,0,0,0,40,72V216a16,16,0,0,0,16,16H168a16,16,0,0,0,16-16V200h16a16,16,0,0,0,16-16V72A8,8,0,0,0,213.66,66.34ZM136,192H88a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm0-32H88a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm64,24H184V104a8,8,0,0,0-2.34-5.66l-40-40A8,8,0,0,0,136,56H88V40h76.69L200,75.31Z\" }));\nexport default SvgFilesFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/files-fill.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 SvgCalendarFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM112,184a8,8,0,0,1-16,0V132.94l-4.42,2.22a8,8,0,0,1-7.16-14.32l16-8A8,8,0,0,1,112,120Zm56-8a8,8,0,0,1,0,16H136a8,8,0,0,1-6.4-12.8l28.78-38.37A8,8,0,1,0,145.07,132a8,8,0,1,1-13.85-8A24,24,0,0,1,176,136a23.76,23.76,0,0,1-4.84,14.45L152,176ZM48,80V48H72v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80Z\" }));\nexport default SvgCalendarFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/calendar-fill.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 <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgWatchFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M175.3,63.53l-6.24-34.38A16,16,0,0,0,153.32,16H102.68A16,16,0,0,0,86.94,29.15L80.7,63.53a79.9,79.9,0,0,0,0,128.94l6.24,34.38A16,16,0,0,0,102.68,240h50.64a16,16,0,0,0,15.74-13.15l6.24-34.38a79.9,79.9,0,0,0,0-128.94ZM102.68,32h50.64l3.91,21.55a79.75,79.75,0,0,0-58.46,0Zm50.64,192H102.68l-3.91-21.55a79.75,79.75,0,0,0,58.46,0ZM168,136H128a8,8,0,0,1-8-8V88a8,8,0,0,1,16,0v32h32a8,8,0,0,1,0,16Z\" }));\nexport default SvgWatchFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/watch-fill.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 <Icon 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 SvgLockKeyFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M208,80H176V56a48,48,0,0,0-96,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80Zm-72,78.63V184a8,8,0,0,1-16,0V158.63a24,24,0,1,1,16,0ZM160,80H96V56a32,32,0,0,1,64,0Z\" }));\nexport default SvgLockKeyFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/lock-key-fill.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 IconLock: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgLockKeyOpenFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M208,80H96V56a32,32,0,0,1,32-32c15.37,0,29.2,11,32.16,25.59a8,8,0,0,0,15.68-3.18C171.32,24.15,151.2,8,128,8A48.05,48.05,0,0,0,80,56V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80Zm-72,78.63V184a8,8,0,0,1-16,0V158.63a24,24,0,1,1,16,0Z\" }));\nexport default SvgLockKeyOpenFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/lock-key-open-fill.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 IconLockOpen: 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 SvgWarningFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM120,104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,88a12,12,0,1,1,12-12A12,12,0,0,1,128,192Z\" }));\nexport default SvgWarningFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/warning-fill.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 SvgCheckCircleFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm45.66,85.66-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35a8,8,0,0,1,11.32,11.32Z\" }));\nexport default SvgCheckCircleFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/check-circle-fill.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 SvgSkipForwardFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M208,40V216a8,8,0,0,1-16,0V146.77L72.43,221.55A15.95,15.95,0,0,1,48,208.12V47.88A15.95,15.95,0,0,1,72.43,34.45L192,109.23V40a8,8,0,0,1,16,0Z\" }));\nexport default SvgSkipForwardFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/skip-forward-fill.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 SvgSkipBackFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M208,47.88V208.12a16,16,0,0,1-24.43,13.43L64,146.77V216a8,8,0,0,1-16,0V40a8,8,0,0,1,16,0v69.23L183.57,34.45A15.95,15.95,0,0,1,208,47.88Z\" }));\nexport default SvgSkipBackFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/skip-back-fill.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 SvgKeyReturnFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm-32,96a8,8,0,0,1-8,8H99.31l10.35,10.34a8,8,0,0,1-11.32,11.32l-24-24a8,8,0,0,1,0-11.32l24-24a8,8,0,0,1,11.32,11.32L99.31,128H168V104a8,8,0,0,1,16,0Z\" }));\nexport default SvgKeyReturnFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/key-return-fill.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 SvgLinkBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\" }));\nexport default SvgLinkBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/link-bold.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 SvgMoreVert = (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.61-126q-24.61 0-42.11-17.37-17.5-17.38-17.5-41.77 0-23.46 17.3-41.66 17.3-18.2 41.59-18.2Q505-245 522-226.78q17 18.21 17 42 0 23.78-16.89 41.28-16.9 17.5-41.5 17.5Zm0-295q-24.61 0-42.11-17.3T421-479.89Q421-505 438.3-522t41.59-17Q505-539 522-522.11q17 16.9 17 41.5 0 24.61-16.89 42.11-16.9 17.5-41.5 17.5Zm0-294q-24.61 0-42.11-17.68-17.5-17.67-17.5-42.5 0-24.82 17.3-42.32t41.59-17.5Q505-835 522-817.36t17 42.47q0 24.82-16.89 42.35-16.9 17.54-41.5 17.54Z\" }));\nexport default SvgMoreVert;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/more_vert.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 IconEllipsisVertical: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgColumnsPlusLeftBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M124,28H100A20,20,0,0,0,80,48V208a20,20,0,0,0,20,20h24a20,20,0,0,0,20-20V48A20,20,0,0,0,124,28Zm-4,176H104V52h16ZM200,28H176a20,20,0,0,0-20,20V208a20,20,0,0,0,20,20h24a20,20,0,0,0,20-20V48A20,20,0,0,0,200,28Zm-4,176H180V52h16ZM68,128a12,12,0,0,1-12,12H48v8a12,12,0,0,1-24,0v-8H16a12,12,0,0,1,0-24h8v-8a12,12,0,0,1,24,0v8h8A12,12,0,0,1,68,128Z\" }));\nexport default SvgColumnsPlusLeftBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/columns-plus-left-bold.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 IconPinLeft: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgColumnsPlusRightBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M80,28H56A20,20,0,0,0,36,48V208a20,20,0,0,0,20,20H80a20,20,0,0,0,20-20V48A20,20,0,0,0,80,28ZM76,204H60V52H76ZM156,28H132a20,20,0,0,0-20,20V208a20,20,0,0,0,20,20h24a20,20,0,0,0,20-20V48A20,20,0,0,0,156,28Zm-4,176H136V52h16Zm100-76a12,12,0,0,1-12,12h-8v8a12,12,0,0,1-24,0v-8h-8a12,12,0,0,1,0-24h8v-8a12,12,0,0,1,24,0v8h8A12,12,0,0,1,252,128Z\" }));\nexport default SvgColumnsPlusRightBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/columns-plus-right-bold.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 IconPinRight: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgAlignCenterVerticalSimpleBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M208,116H180V48a20,20,0,0,0-20-20H96A20,20,0,0,0,76,48v68H48a12,12,0,0,0,0,24H76v68a20,20,0,0,0,20,20h64a20,20,0,0,0,20-20V140h28a12,12,0,0,0,0-24Zm-52,88H100V52h56Z\" }));\nexport default SvgAlignCenterVerticalSimpleBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/align-center-vertical-simple-bold.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 IconUnPin: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgFilterAlt = (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: \"M375-135v-296L67-826h826L586-431v296H375Zm105-316 221-280H260l220 280Zm0 0Z\" }));\nexport default SvgFilterAlt;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/filter_alt.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 IconFilter: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgFilterAltOff = (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: \"m603-454-67-68 165-209H326l-94-95h661L603-454ZM842-29 586-285v150H375v-361L29-842l51-50L892-80l-50 51ZM536-522Z\" }));\nexport default SvgFilterAltOff;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/filter_alt_off.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 IconFilterOff: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgPencilLineFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M227.32,73.37,182.63,28.69a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H216a8,8,0,0,0,0-16H115.32l112-112A16,16,0,0,0,227.32,73.37ZM79.32,188l90.34-90.34,16.69,16.68L96,204.69Zm79-101.66h0L68,176.69,51.31,160l90.35-90.34ZM48,179.31,76.69,208H48Z\" }));\nexport default SvgPencilLineFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/pencil-line-fill.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 IconEdit: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgTrashFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M216,48H176V40a24,24,0,0,0-24-24H104A24,24,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM112,168a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm0-120H96V40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8Z\" }));\nexport default SvgTrashFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/trash-fill.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 IconDelete: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgBroomFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M235.29,216.7C212.86,205.69,200,182.12,200,152V134.69a15.94,15.94,0,0,0-10.09-14.87l-28.65-11.46A8,8,0,0,1,156.79,98l22.32-56.67C184,28.79,178,14.21,165.34,9.51a24,24,0,0,0-30.7,13.71L112.25,80.08a8,8,0,0,1-10.41,4.5L73.11,73.08a15.91,15.91,0,0,0-17.38,3.66C34.68,98.4,24,123.71,24,152a111.53,111.53,0,0,0,31.15,77.53A8.06,8.06,0,0,0,61,232H232a8,8,0,0,0,8-7.51A8.21,8.21,0,0,0,235.29,216.7ZM115.11,216a87.52,87.52,0,0,1-24.26-41.71,8.21,8.21,0,0,0-9.25-6.18A8,8,0,0,0,75.28,178a105.33,105.33,0,0,0,18.36,38H64.44A95.62,95.62,0,0,1,40,152a85.92,85.92,0,0,1,7.73-36.3l137.8,55.13c3,18.06,10.55,33.5,21.89,45.19Z\" }));\nexport default SvgBroomFill;\n","import type {FC, SVGProps} from 'react';\nimport classNames from 'classnames';\nimport Icon from '@phosphor-icons/core/assets/fill/broom-fill.svg?react';\n\nimport classes from './Icon.module.css';\n// import Icon from './svg/broom-fill.svg?react';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconClear: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSortAscendingBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M128,128a12,12,0,0,1-12,12H48a12,12,0,0,1,0-24h68A12,12,0,0,1,128,128ZM48,76H180a12,12,0,0,0,0-24H48a12,12,0,0,0,0,24Zm52,104H48a12,12,0,0,0,0,24h52a12,12,0,0,0,0-24Zm132.49-20.49a12,12,0,0,0-17,0L196,179V112a12,12,0,0,0-24,0v67l-19.51-19.52a12,12,0,0,0-17,17l40,40a12,12,0,0,0,17,0l40-40A12,12,0,0,0,232.49,159.51Z\" }));\nexport default SvgSortAscendingBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/sort-ascending-bold.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 IconSortAsc: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSortDescendingBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M36,128a12,12,0,0,1,12-12h68a12,12,0,0,1,0,24H48A12,12,0,0,1,36,128ZM48,76h52a12,12,0,0,0,0-24H48a12,12,0,0,0,0,24ZM180,180H48a12,12,0,0,0,0,24H180a12,12,0,0,0,0-24ZM232.49,79.51l-40-40a12,12,0,0,0-17,0l-40,40a12,12,0,0,0,17,17L172,77v67a12,12,0,0,0,24,0V77l19.51,19.52a12,12,0,0,0,17-17Z\" }));\nexport default SvgSortDescendingBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/sort-descending-bold.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 IconSortDesc: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSwatchesFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M240,155.91a16,16,0,0,0-1-5.22L219.94,98.48A16,16,0,0,0,199.49,89l-67.81,24.57,12.08-69A16,16,0,0,0,130.84,26L76.17,16.25a15.94,15.94,0,0,0-18.47,13l-25,143.12A43.82,43.82,0,0,0,75.78,224H224a16,16,0,0,0,16-16ZM76,196a16,16,0,1,1,16-16A16,16,0,0,1,76,196Zm42.72-8.38,9.78-55.92L204.92,104,224,156.11,116.78,195A44.89,44.89,0,0,0,118.72,187.62ZM224,208H127.74L224,173.11Z\" }));\nexport default SvgSwatchesFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/swatches-fill.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 IconSwatches: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgBellFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M221.8,175.94C216.25,166.38,208,139.33,208,104a80,80,0,1,0-160,0c0,35.34-8.26,62.38-13.81,71.94A16,16,0,0,0,48,200H88.81a40,40,0,0,0,78.38,0H208a16,16,0,0,0,13.8-24.06ZM128,216a24,24,0,0,1-22.62-16h45.24A24,24,0,0,1,128,216Z\" }));\nexport default SvgBellFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/bell-fill.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 IconNotification: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgWarningCircleBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M128,20A108,108,0,1,0,236,128,108.12,108.12,0,0,0,128,20Zm0,192a84,84,0,1,1,84-84A84.09,84.09,0,0,1,128,212Zm-12-80V80a12,12,0,0,1,24,0v52a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,172Z\" }));\nexport default SvgWarningCircleBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/warning-circle-bold.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 IconErrorOutline: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, classes.error, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgShuffleBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M240.49,175.51a12,12,0,0,1,0,17l-24,24a12,12,0,0,1-17-17L203,196h-2.09a76.17,76.17,0,0,1-61.85-31.83L97.38,105.78A52.1,52.1,0,0,0,55.06,84H32a12,12,0,0,1,0-24H55.06a76.17,76.17,0,0,1,61.85,31.83l41.71,58.39A52.1,52.1,0,0,0,200.94,172H203l-3.52-3.51a12,12,0,0,1,17-17Zm-95.62-72.62a12,12,0,0,0,16.93-1.13A52,52,0,0,1,200.94,84H203l-3.52,3.51a12,12,0,0,0,17,17l24-24a12,12,0,0,0,0-17l-24-24a12,12,0,0,0-17,17L203,60h-2.09a76,76,0,0,0-57.2,26A12,12,0,0,0,144.87,102.89Zm-33.74,50.22a12,12,0,0,0-16.93,1.13A52,52,0,0,1,55.06,172H32a12,12,0,0,0,0,24H55.06a76,76,0,0,0,57.2-26A12,12,0,0,0,111.13,153.11Z\" }));\nexport default SvgShuffleBold;\n","import type {FC, SVGProps} from 'react';\nimport classNames from 'classnames';\nimport Icon from '@phosphor-icons/core/assets/bold/shuffle-bold.svg?react';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconSortOff: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgColumnsBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M100,28H64A20,20,0,0,0,44,48V208a20,20,0,0,0,20,20h36a20,20,0,0,0,20-20V48A20,20,0,0,0,100,28ZM96,204H68V52H96ZM192,28H156a20,20,0,0,0-20,20V208a20,20,0,0,0,20,20h36a20,20,0,0,0,20-20V48A20,20,0,0,0,192,28Zm-4,176H160V52h28Z\" }));\nexport default SvgColumnsBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/columns-bold.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 IconColumns: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgNumpadFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M200,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V40A16,16,0,0,0,200,24ZM80,164a12,12,0,1,1,12-12A12,12,0,0,1,80,164Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,80,124Zm0-40A12,12,0,1,1,92,72,12,12,0,0,1,80,84Zm48,120a12,12,0,1,1,12-12A12,12,0,0,1,128,204Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,128,164Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,128,124Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,128,84Zm48,80a12,12,0,1,1,12-12A12,12,0,0,1,176,164Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,176,124Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,176,84Z\" }));\nexport default SvgNumpadFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/numpad-fill.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 IconNumeric: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgPlayFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M240,128a15.74,15.74,0,0,1-7.6,13.51L88.32,229.65a16,16,0,0,1-16.2.3A15.86,15.86,0,0,1,64,216.13V39.87a15.86,15.86,0,0,1,8.12-13.82,16,16,0,0,1,16.2.3L232.4,114.49A15.74,15.74,0,0,1,240,128Z\" }));\nexport default SvgPlayFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/play-fill.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 IconPlay: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgPauseFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M216,48V208a16,16,0,0,1-16,16H160a16,16,0,0,1-16-16V48a16,16,0,0,1,16-16h40A16,16,0,0,1,216,48ZM96,32H56A16,16,0,0,0,40,48V208a16,16,0,0,0,16,16H96a16,16,0,0,0,16-16V48A16,16,0,0,0,96,32Z\" }));\nexport default SvgPauseFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/pause-fill.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 IconPause: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSpeakerHighFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M160,32.25V223.69a8.29,8.29,0,0,1-3.91,7.18,8,8,0,0,1-9-.56l-65.57-51A4,4,0,0,1,80,176.16V79.84a4,4,0,0,1,1.55-3.15l65.57-51a8,8,0,0,1,10,.16A8.27,8.27,0,0,1,160,32.25ZM60,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H60a4,4,0,0,0,4-4V84A4,4,0,0,0,60,80Zm126.77,20.84a8,8,0,0,0-.72,11.3,24,24,0,0,1,0,31.72,8,8,0,1,0,12,10.58,40,40,0,0,0,0-52.88A8,8,0,0,0,186.74,100.84Zm40.89-26.17a8,8,0,1,0-11.92,10.66,64,64,0,0,1,0,85.34,8,8,0,1,0,11.92,10.66,80,80,0,0,0,0-106.66Z\" }));\nexport default SvgSpeakerHighFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/speaker-high-fill.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 IconVolume: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSpeakerSlashFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M213.92,210.62a8,8,0,1,1-11.84,10.76L160,175.09v48.6a8.29,8.29,0,0,1-3.91,7.18,8,8,0,0,1-9-.56l-65.55-51A4,4,0,0,1,80,176.18V87.09L42.08,45.38A8,8,0,1,1,53.92,34.62Zm-27.21-55.46a8,8,0,0,0,11.29-.7,40,40,0,0,0,0-52.88,8,8,0,1,0-12,10.57,24,24,0,0,1,0,31.72A8,8,0,0,0,186.71,155.16Zm40.92-80.49a8,8,0,1,0-11.92,10.66,64,64,0,0,1,0,85.34,8,8,0,1,0,11.92,10.66,80,80,0,0,0,0-106.66ZM153,119.87a4,4,0,0,0,7-2.7V32.25a8.27,8.27,0,0,0-2.88-6.4,8,8,0,0,0-10-.16L103.83,59.33a4,4,0,0,0-.5,5.85ZM60,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H60a4,4,0,0,0,4-4V84A4,4,0,0,0,60,80Z\" }));\nexport default SvgSpeakerSlashFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/speaker-slash-fill.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 IconVolumeOff: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgBoxArrowDownFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M223.16,68.42l-16-32A8,8,0,0,0,200,32H56a8,8,0,0,0-7.16,4.42l-16,32A8.08,8.08,0,0,0,32,72V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V72A8.08,8.08,0,0,0,223.16,68.42Zm-57.5,89.24-32,32a8,8,0,0,1-11.32,0l-32-32a8,8,0,0,1,11.32-11.32L120,164.69V104a8,8,0,0,1,16,0v60.69l18.34-18.35a8,8,0,0,1,11.32,11.32ZM52.94,64l8-16H195.06l8,16Z\" }));\nexport default SvgBoxArrowDownFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/box-arrow-down-fill.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 IconDownloadVideo: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgCassetteTapeFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M156.3,96a31.92,31.92,0,0,0,0,32H99.7a31.92,31.92,0,0,0,0-32ZM72,96a16,16,0,1,0,16,16A16,16,0,0,0,72,96ZM240,64V192a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V64A16,16,0,0,1,32,48H224A16,16,0,0,1,240,64ZM186,192l-15.6-20.8A8,8,0,0,0,164,168H92a8,8,0,0,0-6.4,3.2L70,192Zm30-80a32,32,0,0,0-32-32H72a32,32,0,0,0,0,64H184A32,32,0,0,0,216,112ZM184,96a16,16,0,1,0,16,16A16,16,0,0,0,184,96Z\" }));\nexport default SvgCassetteTapeFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/cassette-tape-fill.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 IconAudio: 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 resize = 'resize',\n}\n\n/**\n * Utility hook to subscribe to browser events.\n * @param eventType - Select an event to subscribe to\n * @param callback - Event callback function\n * @param element - Provide an HTMLElement to attach event handlers. Optional, defaults to window\n */\nexport const useEventListener = <TEvent, TElement extends HTMLElement | null>(\n eventType: keyof typeof EventType,\n callback: (event: TEvent) => void,\n element?: TElement\n) => {\n const targetElement = element ?? window;\n const callbackRef = useRef(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (targetElement == null) return;\n const handler = ((e: TEvent) =>\n callbackRef.current(e)) as unknown as EventListenerOrEventListenerObject;\n targetElement.addEventListener(eventType, handler);\n\n return () => targetElement.removeEventListener(eventType, handler);\n }, [eventType, targetElement]);\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 disabled?: boolean;\n};\n\nexport const ActionButton: FC<Props> = ({\n title,\n icon,\n type = 'default',\n onClick = () => {},\n className,\n disabled,\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 disabled={disabled}\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","export const isBrowser = () => {\n return Boolean(globalThis?.document);\n};\n","import {useEffect, useLayoutEffect} from 'react';\n\nimport {isBrowser} from '@/internal/utils/isBrowser.ts';\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 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","export enum Animations {\n 'slide-top' = 'slide-top',\n 'scale-in' = 'scale-in',\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\nimport {Animations} from './types.ts';\n\nexport type Props = Omit<\n ComponentProps<typeof Transition>,\n 'enterClassName' | 'exitClassName' | 'exitDoneClassName' | 'enterDoneClassName'\n> & {\n animation?: keyof typeof Animations;\n};\n\nexport const TransitionDialog: FC<Props> = ({children, animation, ...restProps}) => {\n return (\n <Transition\n {...restProps}\n exitClassName={classNames(\n {\n [classes.slideTopExit]: animation === Animations['slide-top'],\n [classes.scaleInExit]: animation === Animations['scale-in'],\n },\n classes.backdropFadeExit\n )}\n enterClassName={classNames(\n {\n [classes.slideTopEnter]: animation === Animations['slide-top'],\n [classes.scaleInEnter]: animation === Animations['scale-in'],\n },\n classes.backdropFadeEnter\n )}>\n {children}\n </Transition>\n );\n};\n","export const last = <TItem>(arr: TItem[]) => {\n return arr[arr.length - 1];\n};\n","type Callback<TValue> = (value: TValue, index: number, array: TValue[]) => boolean;\n\nexport const without = <TValue>(filter: TValue | Callback<TValue>, array: TValue[]) => {\n const filterFn =\n typeof filter === 'string'\n ? (member: TValue) => member !== filter\n : (filter as Callback<TValue>);\n return array.filter(filterFn);\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 parameters */\nexport type DialogParams = Record<string, unknown>;\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: Id; params?: DialogParams}[];\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 /** Optional Dialog parameters */\n params?: DialogParams;\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: dialogId}) => dialogId !== id, state.open);\n return {\n ...state,\n open: nextOpen,\n };\n }\n case Actions.DIALOG_OPEN: {\n const {id, params} = action;\n return {\n ...state,\n open: [...state.open, {id, params}],\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, DialogParams} from './DialogReducer';\nimport {Actions} from './DialogReducer';\n\nconst useSelector = <TResult,>(callback: (arg0: DialogState) => TResult) => {\n const {state} = useDialogContext();\n return callback(state);\n};\n\nexport const useDialogState = (id: string) => {\n const {dispatch} = useDialogContext();\n const openDialog = useCallback(\n (params?: DialogParams) => {\n dispatch({\n type: Actions.DIALOG_OPEN,\n id,\n params,\n });\n },\n [id, dispatch]\n );\n const closeDialog = useCallback(() => {\n dispatch({\n type: Actions.DIALOG_CLOSE,\n id,\n });\n }, [id, dispatch]);\n const topDialogId = useSelector((state: DialogState) => {\n const topDialog = last(state.open);\n return topDialog?.id;\n });\n const isOpen = id === topDialogId;\n const dialogParams = useSelector((state: DialogState) => {\n const topDialog = state.open.find(({id: dialogId}) => id === dialogId);\n return topDialog?.params;\n });\n return {\n openDialog,\n closeDialog,\n isOpen,\n dialogParams,\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';\nimport {Animations} from './types.ts';\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 a focus trap for Dialog */\n trapFocus?: boolean;\n /** Select Dialog animation style */\n animation?: keyof typeof Animations;\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 animation = Animations['slide-top'],\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 animation={animation}\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)}>\n <H3>{dialogTitle}</H3>\n </header>\n )}\n <div className={classNames(classes.body)}>{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, IconSuccess, IconWarning, IconNotification} 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 an Icon component to show instead default one\n */\n icon?: FC;\n /** Select a 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]: IconNotification,\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 && !ref.current!.contains(event.target as TElement)) {\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 className={classes.backdrop}>\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 </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 as TProps)} 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 Props = DataAttributes &\n LibraryProps & {\n /**\n * Set the name of the HTMLFormElement.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/name\n */\n name?: FormHTMLAttributes<HTMLFormElement>['name'];\n /**\n * Define whether inputted text is automatically capitalized and, if so, in what manner.\n * Relevant for mobile devices with virtual keyboards or voice input\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autocapitalize\n */\n autoCapitalize?: FormHTMLAttributes<HTMLFormElement>['autoCapitalize'];\n /**\n * Control autocomplete behavior\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\n */\n autoComplete?: FormHTMLAttributes<HTMLFormElement>['autoComplete'];\n /**\n * Disable validation\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#novalidate\n */\n noValidate?: FormHTMLAttributes<HTMLFormElement>['noValidate'];\n /**\n * Callback when the form was submitted. Gets form state as a second parameter\n */\n onSubmit?: (event: SyntheticEvent<HTMLFormElement>, formState: FormState) => void;\n /**\n * Callback when the form has failed validation. Gets form state as a second parameter\n */\n onInvalid?: (event: InvalidEvent<HTMLFormElement>, formState: FormState) => void;\n /**\n * Callback when the form was reset. Gets form state as a second parameter\n */\n onReset?: (event: ChangeEvent<HTMLFormElement>, formState: FormState) => void;\n /**\n * Callback when the form content was change. Gets form state as a second parameter\n */\n onChange?: (event: ChangeEvent<HTMLFormElement>, formState: FormState) => void;\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\nexport {Form as FormVanilla};\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, useMemo} 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 /** Set text label */\n label: string;\n /** Set hint text to be displayed below the input */\n hint?: string;\n /**\n * Renders * character after label indicating required input status.\n * Also, set automatically when required input is provided.\n */\n required?: boolean;\n };\n\nexport const FormField = forwardRef<HTMLDivElement, Props>(\n ({className, children, label, hint, required, ...nativeProps}, ref) => {\n const inputProps = Children.only(children).props;\n const id = useInternalId(inputProps.id);\n const hintId = `${id}-hint`;\n const childrenWithProps = useMemo(\n () =>\n cloneElement(Children.only(children), {\n id,\n ...(hint && {'aria-describedby': hintId}),\n }),\n [children, hint, hintId, id]\n );\n return (\n <div {...nativeProps} ref={ref} className={classNames(classes.wrapper, className)}>\n <label\n className={classNames(classes.label, {\n [classes.required]: inputProps.required || required,\n })}\n htmlFor={id}>\n {label}\n </label>\n {childrenWithProps}\n {hint && (\n <div className={classes.hint} id={hintId}>\n {hint}\n </div>\n )}\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 pristine = 'pristine',\n}\n\nexport type ValidationConfig = {\n state: keyof typeof ValidationState;\n errorMessage?: string;\n};\n\nexport type ValidatorFn = (\n value: unknown,\n validityState: ValidityState,\n formState: FormState\n) => string | Promise<string>;\n\nexport type ValidationProps = {\n /** Enable to re-run validation when any field in the form changes */\n revalidateOnFormChange?: boolean;\n /**\n * Provide custom message for external validation errors. Applies only to errors reported by\n * validationState prop.\n * @see validationState\n */\n errorMessage?: string;\n /**\n * Set external validation state for input. Can be a string or a validator function\n * @see ValidationState\n * @see ValidatorFn\n * @see https://koval.support/inputs/input-validation\n */\n validation?: keyof typeof ValidationState | ValidatorFn;\n};\n","import type {ValidatorFn} from './ValidationProps.ts';\n\nexport const defaultValidator: ValidatorFn = (_: unknown | undefined) => '';\n","import type {Dispatch} from 'react';\nimport {useEffect} from 'react';\n\nimport {useFormSelectors} from '@/lib/Form';\n\nimport {ValidationState} from './ValidationProps.ts';\n\nexport const useHandleFormReset = (setValidity: Dispatch<ValidationState>) => {\n const {pristine} = useFormSelectors();\n useEffect(() => {\n pristine && setValidity(ValidationState.pristine);\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 {Dispatch, FormEvent, SetStateAction} from 'react';\nimport {useCallback, useState} from 'react';\nimport AwesomeDebouncePromise from 'awesome-debounce-promise';\n\nimport type {ValidationProps, ValidatorFn} 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\nconst useValidatorFn = <TEvent extends FormEvent, TElement extends HTMLInputElement>({\n validatorFn,\n reportValidity,\n setValidity,\n}: {\n validatorFn: ValidatorFn;\n reportValidity: (event: TEvent) => void;\n setValidity: Dispatch<SetStateAction<keyof typeof ValidationState>>;\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 const createValidatorExternal = useCallback(() => {}, []);\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 return {createValidatorSync, createValidatorAsync, createValidatorExternal};\n};\n\nconst createValidatorFn = (validation: ValidationProps['validation']): ValidatorFn => {\n if (typeof validation === 'function') {\n return validation;\n }\n return defaultValidator;\n};\n\nenum Modes {\n async = 'async',\n external = 'external',\n sync = 'sync',\n}\n\nconst getMode = (validation: ValidationProps['validation']) => {\n if (validation?.constructor.name === 'AsyncFunction') {\n return Modes.async;\n } else if (typeof validation === 'string') {\n return Modes.external;\n }\n\n return Modes.sync;\n};\n\nexport const useValidation = <TEvent extends FormEvent, TElement extends HTMLInputElement>({\n validation,\n hasValidators,\n}: ValidationProps & {hasValidators: boolean}) => {\n const validatorFn = createValidatorFn(validation);\n const mode = getMode(validation);\n\n const [validity, setValidity] = useState<keyof typeof ValidationState>(\n ValidationState.pristine\n );\n\n useHandleFormReset(setValidity);\n\n const reportValidity = useCallback(\n (event: TEvent) => {\n const isValid = (event.target as TElement).reportValidity();\n const ValidState = hasValidators ? ValidationState.valid : ValidationState.pristine;\n const nextValidationState = isValid ? ValidState : ValidationState.error;\n /**\n * Change state only when input has validators or is in the error state.\n * This is required to avoid always showing a green checkmark for input without validation.\n */\n (hasValidators || validity === ValidationState.error) &&\n setValidity(nextValidationState);\n },\n [hasValidators, validity]\n );\n\n const {createValidatorAsync, createValidatorSync, createValidatorExternal} = useValidatorFn({\n validatorFn,\n reportValidity,\n setValidity,\n });\n\n const validateInteractive = useCallback(\n (event: TEvent) => {\n switch (mode) {\n case 'sync': {\n return createValidatorSync('interactive', event);\n }\n case 'async': {\n return createValidatorAsync('interactive', event);\n }\n case 'external': {\n return createValidatorExternal();\n }\n }\n },\n [createValidatorAsync, createValidatorExternal, createValidatorSync, mode]\n );\n\n const validateTextual = useCallback(\n (event: TEvent) => {\n switch (mode) {\n case 'sync': {\n return createValidatorSync('textual', event);\n }\n case 'async': {\n return createValidatorAsync('textual', event);\n }\n case 'external': {\n return createValidatorExternal();\n }\n }\n },\n [mode, createValidatorSync, createValidatorAsync, createValidatorExternal]\n );\n\n return {validateInteractive, validateTextual, validity, setValidity};\n};\n","import type {MutableRefObject} from 'react';\nimport {type FormEvent, useEffect} from 'react';\n\nconst ChangeEvent = new Event('change', {bubbles: false});\n\nexport const useRevalidateOnFormChange = (\n inputRef: MutableRefObject<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null>,\n validateInput: (event: FormEvent) => unknown,\n condition?: boolean\n) => {\n useEffect(() => {\n if (condition) {\n const inputElement = inputRef?.current;\n const formElement = inputElement?.form;\n const revalidateInput = () => {\n inputElement && inputElement?.dispatchEvent(ChangeEvent);\n inputElement && validateInput(ChangeEvent as unknown as FormEvent);\n };\n formElement && formElement.addEventListener('change', revalidateInput);\n return () => {\n formElement && formElement.removeEventListener('change', revalidateInput);\n };\n }\n }, [inputRef, condition, validateInput]);\n};\n","import type {Dispatch, SetStateAction, MutableRefObject} from 'react';\nimport {useEffect} from 'react';\n\nimport type {ValidationProps} from '@/internal/inputs';\nimport {ValidationState} from '@/internal/inputs';\n\nexport type Props = {\n validation?: ValidationProps['validation'];\n setValidity: Dispatch<SetStateAction<keyof typeof ValidationState>>;\n inputRef: MutableRefObject<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null>;\n errorMessage?: string;\n};\n\n/**\n * React hook designed to contain effects which synchronize input validation\n * with external validation state via prop or context (TODO).\n * @see ValidationState\n */\nexport const useExternalValidation = ({validation, inputRef, setValidity, errorMessage}: Props) => {\n useEffect(() => {\n if (typeof validation === 'string') {\n setValidity(validation);\n switch (validation) {\n case 'valid': {\n inputRef.current?.setCustomValidity('');\n break;\n }\n case 'error': {\n inputRef.current?.setCustomValidity(errorMessage || ValidationState.error);\n break;\n }\n case 'inProgress': {\n inputRef.current?.setCustomValidity(errorMessage || ValidationState.inProgress);\n break;\n }\n default: {\n inputRef.current?.setCustomValidity('');\n }\n }\n }\n }, [errorMessage, inputRef, setValidity, validation]);\n};\n","import {Fragment} from 'react';\n\nimport {IconErrorOutline, IconLoader, IconValid} from '@/internal/Icons';\n\nimport {ValidationState} from './ValidationProps.ts';\n\nexport const useValidationIcon = (validity: keyof typeof ValidationState) => {\n return {\n [ValidationState.error]: IconErrorOutline,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n [ValidationState.pristine]: () => <Fragment />,\n }[validity!];\n};\n","import type {ChangeEvent} from 'react';\nimport {forwardRef, useCallback, useEffect} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {\n ValidationState,\n useValidation,\n useRevalidateOnFormChange,\n useExternalValidation,\n useValidationIcon,\n} from '@/internal/inputs';\nimport type {\n NativePropsInteractive,\n CallbackPropsInteractive,\n ValidationProps,\n} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './InputCheckbox.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsInteractive &\n CallbackPropsInteractive &\n ValidationProps & {\n /** Set a text for the checkbox label */\n label?: string;\n /**\n * Set an indeterminate state for the checkbox\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate\n */\n indeterminate?: boolean;\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 required,\n revalidateOnFormChange,\n validation,\n errorMessage,\n indeterminate = false,\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n\n const hasValidators = Boolean(validation) || Boolean(required);\n\n const {validateInteractive, validity, setValidity} = useValidation({\n validation,\n hasValidators,\n });\n\n const inputRef = useInternalRef(ref);\n useRevalidateOnFormChange(inputRef, validateInteractive, revalidateOnFormChange);\n\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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 useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate, inputRef]);\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n <input\n {...nativeProps}\n className={classNames(classes.input, {[classes.indeterminate]: indeterminate})}\n ref={inputRef}\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 required={required}\n />\n {label && (\n <label\n className={classNames(classes.label, {[classes.required]: required})}\n htmlFor={id}>\n {label}\n </label>\n )}\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';\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 /**\n * Set a label text for the group\n */\n label?: string;\n children: ReactElement<ChildProps & unknown>[];\n /**\n * Provide a name for each input control in the group\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#name\n */\n name: string;\n /**\n * Disable all inputs in the group\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#disabled\n */\n disabled?: FieldsetHTMLAttributes<HTMLFieldSetElement>['disabled'];\n /**\n * Make all inputs in the group required\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/required\n */\n required?: boolean;\n /**\n * Set a text for the hint displayed below the group\n */\n hint?: string;\n };\n\nexport const InputGroup = forwardRef<HTMLFieldSetElement, Props>(\n ({className, id, label, children, name, disabled, hint, required, ...nativeProps}, ref) => {\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 <label\n className={classNames(classes.label, {[classes.required]: required})}\n htmlFor={id}>\n {label}\n </label>\n )}\n </div>\n );\n }\n);\n\nInputRadio.displayName = 'InputRadio';\n","import type {ChangeEvent, FC, InputHTMLAttributes} from 'react';\nimport {Fragment} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {IconErrorOutline, IconValid, IconLoader} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {\n ValidationState,\n useValidation,\n useRevalidateOnFormChange,\n useExternalValidation,\n} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.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 a 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` aren't 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 /**\n * Provide an icon to prepend to the input\n */\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 readOnly,\n size = 16,\n id,\n required,\n revalidateOnFormChange,\n errorMessage = ValidationState.error,\n validation,\n ...nativeProps\n },\n ref\n ) => {\n const inputRef = useInternalRef(ref);\n\n const hasValidators =\n Boolean(validation) ||\n Boolean(required) ||\n typeof nativeProps.maxLength === 'number' ||\n typeof nativeProps.minLength === 'number' ||\n typeof nativeProps.pattern === 'string';\n\n const {validateTextual, validity, setValidity} = useValidation({\n validation,\n hasValidators,\n });\n\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n\n const ValidationIcon = {\n [ValidationState.error]: IconErrorOutline,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n [ValidationState.pristine]: Fragment,\n }[validity!];\n\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={inputRef}\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 {IconCalendar} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {\n useRevalidateOnFormChange,\n useExternalValidation,\n useValidationIcon,\n ValidationState,\n useValidation,\n} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.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 revalidateOnFormChange,\n validation,\n errorMessage,\n ...nativeProps\n },\n ref\n ) => {\n const hasValidators =\n Boolean(validation) ||\n typeof nativeProps.min === 'string' ||\n typeof nativeProps.max === 'string';\n\n const id = useInternalId(idProp);\n const labelRef = useRef<HTMLLabelElement>(null);\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n const inputRef = useInternalRef(ref);\n\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n\n const ValidationIcon = useValidationIcon(validity);\n\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={inputRef}\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","import type {ChangeEvent, FC} from 'react';\nimport {forwardRef, useCallback, Fragment, useEffect, useState} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {\n useRevalidateOnFormChange,\n useExternalValidation,\n ValidationState,\n useValidation,\n} from '@/internal/inputs';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\nimport {InputDate, InputTime} from '@/lib';\n\nimport classes from './InputDateTime.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'maxLength' | 'minLength' | 'autoComplete' | 'inputMode' | 'pattern'> &\n Omit<CallbackPropsTextual, 'defaultValue'> &\n ValidationProps & {\n prefix?: FC;\n };\n\nconst noOp = () => {};\n\nexport const InputDateTime = forwardRef<HTMLInputElement, 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 // TODO: enable controlled/non-controlled mode\n // defaultValue,\n validation,\n errorMessage,\n revalidateOnFormChange,\n ...nativeProps\n },\n ref\n ) => {\n const inputRef = useInternalRef(ref);\n\n const hasValidators = Boolean(validation);\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const [date, setDate] = useState('');\n const [time, setTime] = useState('00:00');\n const [combined, setCombined] = useState(value || 'T00:00');\n\n useEffect(() => {\n setCombined(value || 'T00:00');\n if (value !== undefined && value !== 'T00:00') {\n const [nextDate, nextTime] = (value as string).split('T');\n setDate(nextDate);\n setTime(nextTime);\n } else {\n setDate('');\n setTime('00:00');\n }\n }, [value]);\n\n const handleSetDate = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n setDate(event.target.value);\n }, []);\n\n const handleSetTime = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n setTime(event.target.value);\n }, []);\n\n useEffect(() => {\n setCombined(`${date}T${time}`);\n }, [date, time]);\n\n useEffect(() => {\n inputRef.current?.dispatchEvent(new Event('change', {bubbles: true}));\n }, [combined, inputRef]);\n\n useEffect(() => {\n inputRef.current?.addEventListener('change', event => {\n // TODO: improve type\n validateTextual(event as unknown as ChangeEvent<HTMLInputElement>);\n onChange(event as unknown as ChangeEvent<HTMLInputElement>);\n });\n }, [inputRef, onChange, validateTextual]);\n\n return (\n <Fragment>\n <div className={classNames(classes.wrapper, className)}>\n <input\n {...nativeProps}\n type=\"text\"\n placeholder={placeholder}\n className={classes.inputMarionette}\n ref={inputRef}\n disabled={disabled}\n value={combined}\n onChange={noOp}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n />\n <InputDate value={date} onChange={handleSetDate} validation={validity} />\n <InputTime value={time} onChange={handleSetTime} validation={validity} />\n </div>\n </Fragment>\n );\n }\n);\n\nInputDateTime.displayName = 'InputDateTime';\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 {IconSwatches} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {\n CallbackPropsTextual,\n ValidationProps,\n NativePropsInteractive,\n} from '@/internal/inputs';\nimport {useRevalidateOnFormChange} from '@/internal/inputs';\nimport {useExternalValidation, useValidation, useValidationIcon} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.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 ValidationProps & {\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 errorMessage,\n revalidateOnFormChange,\n validation,\n ...nativeProps\n },\n ref\n ) => {\n const hasValidators = Boolean(validation);\n\n const {validity, setValidity, validateTextual} = useValidation({\n validation,\n hasValidators,\n });\n const id = useInternalId(idProp);\n\n const inputRef = useInternalRef(ref);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n\n const ValidationIcon = useValidationIcon(validity);\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={inputRef}\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 <IconSwatches className={classNames(classes.icon)} />\n </div>\n <label htmlFor={id} className={classes.label} ref={labelRef}>\n {displayValue.toLowerCase() || placeholder}\n </label>\n {validity && <ValidationIcon />}\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 {IconClock} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {useExternalValidation} from '@/internal/inputs';\nimport {useRevalidateOnFormChange} from '@/internal/inputs';\nimport {ValidationState, useValidationIcon, 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 revalidateOnFormChange,\n validation,\n errorMessage,\n ...nativeProps\n },\n ref\n ) => {\n const inputRef = useInternalRef(ref);\n const hasValidators =\n Boolean(validation) ||\n typeof nativeProps.min === 'string' ||\n typeof nativeProps.max === 'string';\n\n const {validity, setValidity, validateTextual} = useValidation({validation, hasValidators});\n\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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/no-unsafe-function-type\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 type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsNumeric, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {useExternalValidation} from '@/internal/inputs';\nimport {useRevalidateOnFormChange} from '@/internal/inputs';\nimport {ValidationState, useValidationIcon, useValidation} from '@/internal/inputs';\nimport {useControllableState} from '@/internal/hooks/useControllableState.ts';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.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 * Enable to display scale below input\n */\n displayScale?: boolean;\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 min = 0,\n max = 100,\n bars = 5,\n scaleUnit = '',\n revalidateOnFormChange,\n validation,\n errorMessage,\n displayScale,\n ...nativeProps\n },\n ref\n ) => {\n const hasValidators = Boolean(validation) || Boolean(nativeProps.required);\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n const inputRef = useInternalRef(ref);\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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={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 list={scaleId}\n min={min}\n max={max}\n />\n {displayScale && (\n <datalist id={scaleId} className={classes.scale}>\n {createOptions({min: Number(min), max: Number(max), bars, scaleUnit})}\n </datalist>\n )}\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 {IconFile} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {\n useRevalidateOnFormChange,\n useExternalValidation,\n useValidationIcon,\n ValidationState,\n useValidation,\n} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './InputFile.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'inputMode' | 'maxLength' | 'minLength' | 'pattern' | 'readOnly'> &\n ValidationProps &\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 errorMessage,\n revalidateOnFormChange,\n validation,\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 hasValidators = Boolean(validation);\n const {validateTextual, validity, setValidity} = useValidation({\n validation,\n hasValidators,\n });\n const inputRef = useInternalRef(ref);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n\n const ValidationIcon = useValidationIcon(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={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 <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} from 'react';\nimport {useMemo} from 'react';\nimport {useState} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {IconLock, IconLockOpen} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {\n ValidationState,\n useValidationIcon,\n useValidation,\n useRevalidateOnFormChange,\n useExternalValidation,\n} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './InputPassword.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsTextual &\n CallbackPropsTextual &\n ValidationProps;\n\nenum InputType {\n password = 'password',\n text = 'text',\n}\n\nexport const InputPassword = 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,\n readOnly,\n size = 16,\n revalidateOnFormChange,\n validation,\n errorMessage,\n ...nativeProps\n },\n ref\n ) => {\n const hasValidators =\n Boolean(validation) ||\n Boolean(nativeProps.required) ||\n typeof nativeProps.maxLength === 'number' ||\n typeof nativeProps.minLength === 'number' ||\n typeof nativeProps.pattern === 'string';\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n const inputRef = useInternalRef(ref);\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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 inputId = useInternalId(id);\n\n const handleSelect = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n readOnly && event.target.select();\n },\n [readOnly]\n );\n\n const [type, setType] = useState<keyof typeof InputType>(InputType.password);\n\n const Icon = useMemo(\n () =>\n ({\n [InputType.text]: IconLockOpen,\n [InputType.password]: IconLock,\n })[type],\n [type]\n );\n\n const handleIconClick = useCallback(() => {\n type === InputType.password && setType(InputType.text);\n type === InputType.text && setType(InputType.password);\n }, [type, setType]);\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n <label\n tabIndex={-1}\n onClick={handleIconClick}\n className={classes.prefix}\n htmlFor={inputId}>\n <Icon />\n </label>\n <input\n {...nativeProps}\n size={size}\n id={inputId}\n readOnly={readOnly}\n placeholder={placeholder}\n className={classes.input}\n ref={inputRef}\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\nInputPassword.displayName = 'InputPassword';\n","import type {ChangeEvent, InputHTMLAttributes, FormEvent} from 'react';\nimport {useEffect} from 'react';\nimport {forwardRef, useCallback, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconArrowUp, IconArrowDown} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsNumeric, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {\n ValidationState,\n useValidation,\n useExternalValidation,\n useRevalidateOnFormChange,\n useValidationIcon,\n} 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 SPINNER_EVENT_TYPE = 'change_spinner';\n\nconst ChangeEventSpinner = new Event(SPINNER_EVENT_TYPE, {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 size = 10,\n step,\n revalidateOnFormChange,\n errorMessage = ValidationState.error,\n validation,\n ...nativeProps\n },\n ref\n ) => {\n const hasValidators =\n Boolean(validation) ||\n Boolean(nativeProps.required) ||\n typeof nativeProps.min === 'number' ||\n typeof nativeProps.min === 'string' ||\n typeof nativeProps.max === 'number' ||\n typeof nativeProps.max === 'string';\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n const inputRef = useInternalRef(ref);\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(validity);\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n },\n [onChange]\n );\n\n useEffect(() => {\n inputRef.current?.addEventListener(SPINNER_EVENT_TYPE, event => {\n // TODO: improve type\n onChange(event as unknown as ChangeEvent<HTMLInputElement>);\n });\n }, [inputRef, onChange]);\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\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, KeyboardEvent, InputHTMLAttributes} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {CallbackPropsTextual, ValidationProps, NativePropsTextual} from '@/internal/inputs';\nimport {\n useRevalidateOnFormChange,\n useExternalValidation,\n useValidationIcon,\n ValidationState,\n useValidation,\n} from '@/internal/inputs';\nimport {IconNumeric} from '@/internal/Icons';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './InputNumeric.module.css';\n\nenum Modes {\n natural = 'natural',\n integer = 'integer',\n floating = 'floating',\n scientific = 'scientific',\n}\n\nconst patternMapping = {\n [Modes.natural]: '(?:0|[1-9]\\\\d*)',\n [Modes.integer]: '[+\\\\-]?(?:0|[1-9]\\\\d*)',\n [Modes.floating]: '[+\\\\-]?(?:0|[1-9]\\\\d*)(?:\\\\.\\\\d+)?',\n [Modes.scientific]: '[+\\\\-]?(?:0|[1-9]\\\\d*)(?:\\\\.\\\\d+)?(?:[eE][+\\\\-]?\\\\d+)?',\n};\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'pattern' | 'inputMode' | 'autoComplete'> &\n CallbackPropsTextual &\n ValidationProps & {\n /**\n * Specify the amount of increment/decrement applied to the value when the user presses arrow keys\n */\n step?: number;\n /**\n * Define the width of the input in characters\n */\n size?: InputHTMLAttributes<HTMLInputElement>['size'];\n /** Select a mode of numeric input. `scientific` mode disables arrow stepper */\n mode?: keyof typeof Modes;\n };\n\nexport const InputNumeric = 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 validation,\n errorMessage,\n id: idProp,\n step = 1,\n size = 12,\n mode = Modes.natural,\n revalidateOnFormChange,\n ...nativeProps\n },\n ref\n ) => {\n const inputRef = useInternalRef(ref);\n\n const id = useInternalId(idProp);\n\n const hasValidators = Boolean(validation) || Boolean(nativeProps.required);\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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 handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n const inputValue = (event.target as HTMLInputElement).value;\n if (event.key === 'ArrowUp' && mode !== Modes.scientific) {\n const nextValue = Number(inputValue || 0) + step;\n (event.target as HTMLInputElement).value = nextValue.toString();\n }\n if (event.key === 'ArrowDown' && mode !== Modes.scientific) {\n const nextValue = Number(inputValue || 0) - step;\n (event.target as HTMLInputElement).value = nextValue.toString();\n }\n onKeyDown(event);\n },\n [mode, onKeyDown, step]\n );\n\n const handleKeyUp = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (\n (event.key === 'ArrowDown' || event.key === 'ArrowUp') &&\n mode !== Modes.scientific\n ) {\n event.currentTarget.reportValidity();\n onChange(event as unknown as ChangeEvent<HTMLInputElement>);\n }\n onKeyUp(event);\n },\n [mode, onChange, onKeyUp]\n );\n\n const pattern = patternMapping[mode];\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n <label className={classes.prefix} htmlFor={id}>\n <IconNumeric />\n </label>\n <input\n {...nativeProps}\n autoComplete=\"off\"\n ref={inputRef}\n size={size}\n id={id}\n type=\"text\"\n inputMode=\"decimal\"\n pattern={pattern}\n placeholder={placeholder}\n className={classes.input}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={handleKeyUp}\n onKeyDown={handleKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}\n />\n {validity && <ValidationIcon />}\n </div>\n );\n }\n);\n\nInputNumeric.displayName = 'InputNumeric';\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 type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {useExternalValidation} from '@/internal/inputs';\nimport {useRevalidateOnFormChange} from '@/internal/inputs';\nimport {ValidationState, useValidationIcon, useValidation} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.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 id,\n readOnly,\n cols = 20,\n rows = 3,\n resize = 'both',\n revalidateOnFormChange,\n validation,\n errorMessage,\n ...nativeProps\n },\n ref\n ) => {\n const hasValidators =\n Boolean(validation) ||\n Boolean(nativeProps.required) ||\n typeof nativeProps.maxLength === 'number' ||\n typeof nativeProps.minLength === 'number';\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n const inputRef = useInternalRef(ref);\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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={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={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, ReactNode} from 'react';\nimport {forwardRef, useCallback, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconExpand} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {\n NativePropsInteractive,\n CallbackPropsTextual,\n ValidationProps,\n} from '@/internal/inputs';\nimport {useExternalValidation} from '@/internal/inputs';\nimport {useRevalidateOnFormChange} from '@/internal/inputs';\nimport {ValidationState, useValidationIcon, 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\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 id,\n multiple,\n children,\n size = 16,\n revalidateOnFormChange,\n validation,\n errorMessage,\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 hasValidators = Boolean(validation);\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n const inputRef = useInternalRef(ref);\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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 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 onFocus={onFocus}\n onBlur={onBlur}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}>\n {children}\n </select>\n {!multiple && <IconExpand 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 {MutableRefObject, 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 wrapperRef?: MutableRefObject<HTMLDivElement | null>;\n wrapperClassName?: string;\n };\n\nexport const Table = forwardRef<HTMLTableElement, Props>(\n ({children, className, wrapperRef, wrapperClassName, ...nativeProps}, ref) => {\n return (\n <div ref={wrapperRef} className={classNames(classes.tableWrapper, wrapperClassName)}>\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 the 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 {useCallback} from 'react';\nimport {useState, useEffect} from 'react';\nimport {useDebouncedCallback} from 'use-debounce';\n\nimport {useEventListener} from '@/internal/hooks/useEventListener.ts';\n\n/**\n * Utility hook. Tracks provided element overflow state. Subscribes to window resize events.\n */\nexport const useIsOverflow = <TElement extends HTMLElement | null>(\n ref: MutableRefObject<TElement>\n) => {\n const [scrollWidth, setScrollWidth] = useState(0);\n const [scrollHeight, setScrollHeight] = useState(0);\n const [overflowY, setOverflowY] = useState<boolean | undefined>(undefined);\n const [overflowX, setOverflowX] = useState<boolean | undefined>(undefined);\n\n const handleResize = useCallback(() => {\n const {current} = ref;\n\n if (current) {\n const hasOverflowY = scrollHeight > current.offsetHeight;\n const hasOverflowX = scrollWidth > current.offsetWidth;\n setOverflowY(hasOverflowY);\n setOverflowX(hasOverflowX);\n }\n }, [ref, scrollHeight, scrollWidth]);\n\n const handleResizeDebounced = useDebouncedCallback(handleResize, 666, {trailing: true});\n\n useEventListener('resize', handleResizeDebounced);\n\n useEffect(() => {\n const {current} = ref;\n\n if (current) {\n setScrollWidth(current.scrollWidth);\n setScrollHeight(current.scrollHeight);\n const hasOverflowY = current.scrollHeight > current.offsetHeight;\n const hasOverflowX = current.scrollWidth > current.offsetWidth;\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';\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 return <div className={classes.tab}>{children}</div>;\n};\n","export enum Variants {\n bordered = 'bordered',\n plain = 'plain',\n}\n","import type {ReactNode} from 'react';\nimport {useCallback, forwardRef, Fragment, useState, useEffect} from 'react';\nimport classNames from 'classnames';\nimport type {Placement} from '@floating-ui/react-dom';\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';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.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 the 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 the first element when open and trap focus */\n trapFocus?: boolean;\n /** Align Menu width with a reference element */\n alignWidth?: boolean;\n /** Set design of Menu */\n variant?: keyof typeof Variants;\n /**\n * Define which relative positions Menu can be placed in\n */\n allowedPlacements?: Placement[];\n };\n\nconst allowedPlacementsDefault: Placement[] = [\n 'bottom',\n 'left',\n 'right',\n 'top',\n 'bottom-end',\n 'bottom-start',\n 'left-start',\n 'left-end',\n 'right-start',\n 'right-end',\n 'top-start',\n 'top-end',\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 allowedPlacements = allowedPlacementsDefault,\n ...nativeProps\n },\n ref\n ) => {\n const menuRef = useInternalRef(ref);\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({allowedPlacements}),\n ],\n });\n const {LocalRoot} = useLocalTheme();\n const {getTheme} = useRootTheme();\n\n const handleDismiss = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n useDismiss(handleDismiss, menuRef, 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\n ref={refs.setFloating}\n style={floatingStyles}\n className={classes.floating}>\n <LocalRoot className={classes.provider} theme={getTheme()}>\n <div\n {...nativeProps}\n ref={menuRef}\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';\nimport type {Placement} from '@floating-ui/react-dom';\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\nconst allowedPlacements: Placement[] = [\n 'bottom',\n 'top',\n 'bottom-end',\n 'bottom-start',\n 'top-start',\n 'top-end',\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 allowedPlacements={allowedPlacements}\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 = {\n pageNumber: number;\n onClick?: (pageNumber: number) => void;\n isActive: boolean;\n className?: string;\n};\n\nexport const PageButton: FC<Props> = ({pageNumber, onClick = () => {}, isActive, className}) => {\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}, className)}\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 the total number of pages */\n totalPages: number;\n /** Callback to run on page change */\n onPageSelect: (pageNumber: number) => void;\n /** Set the selected page externally */\n selectedPage: number;\n /** Show the 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 useEffect(() => {\n setSelectedPage(selectedPageProp);\n }, [selectedPageProp, setSelectedPage]);\n\n const [inputPage, setInputPage] = useState<number>(selectedPage);\n\n useEffect(() => {\n setInputPage(selectedPage);\n }, [selectedPage]);\n\n const handlePageSelect = useCallback(\n (pageNumber: number) => {\n setSelectedPage(pageNumber);\n setInputPage(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 = parseInt(event.target.value);\n event.target.value !== '' && 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={classNames(classes.buttons, {[classes.short]: !isLong})}>\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}>&hellip;</div>\n {visible.map((pageNumber, i) => {\n const isActive = pageNumber === selectedPage;\n return (\n <PageButton\n className={classNames({\n [classes.centerButton]: i !== 1,\n })}\n key={pageNumber}\n isActive={isActive}\n onClick={handlePageSelect}\n pageNumber={pageNumber}\n />\n );\n })}\n <div className={classes.ellipsis}>&hellip;</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\n disabled={totalPages === 1}\n onClick={handleDecrement}\n className={classes.navigationButton}>\n <IconBackward className={classes.icon} />\n </button>\n <button\n disabled={totalPages === 1}\n onClick={handleIncrement}\n 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 value={inputPage}\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 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 {ReactElement, ReactNode} from 'react';\nimport {Children, cloneElement, useMemo} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useIsOverflow} from '@/internal/hooks/useIsOverflow.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './Navigation.module.css';\nimport {NavBrand} from './NavBrand.tsx';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide a site/app name to render inside the panel on the left\n */\n name?: string;\n children?: ReactNode;\n /**\n * Enable to make the panel sticky\n */\n sticky?: boolean;\n };\n\nexport const NavPanel = forwardRef<HTMLDivElement, Props>(\n ({children, className, name = 'Koval App', sticky, ...nativeProps}, ref) => {\n const internalRef = useInternalRef(ref);\n const {overflowX} = useIsOverflow(internalRef);\n const childrenWithProps = useMemo(\n () =>\n Children.toArray(children).map(element =>\n cloneElement(element as ReactElement, {collapsed: overflowX})\n ),\n [children, overflowX]\n );\n return (\n <div\n {...nativeProps}\n className={classNames(classes.navPanel, {[classes.sticky]: sticky}, className)}\n ref={internalRef}>\n {name && <NavBrand>{name}</NavBrand>}\n {childrenWithProps}\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\ntype LinkProps = {\n href: string;\n title?: string;\n className?: string;\n children?: ReactNode;\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 ellipsis (...) after the first breadcrumb item */\n showEllipsis?: boolean;\n /**\n * Provide a link component to render as a breadcrumb. Can be used with Next.js\n * @example\n * import Link from 'next/link'\n * <Breadcrumbs linkComponent={Link} />\n */\n linkComponent?: FC<LinkProps & unknown>;\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 &hellip;\n </div>,\n ...rest,\n ];\n } else {\n return items;\n }\n};\n\nconst Link: FC<LinkProps> = ({href, children, className, title}) => {\n return (\n <a href={href} className={className} title={title}>\n {children}\n </a>\n );\n};\n\nexport const Breadcrumbs = forwardRef<HTMLDivElement, Props>(\n (\n {\n className,\n items,\n showEllipsis = false,\n linkComponent: LinkComponent = Link,\n ...nativeProps\n },\n ref\n ) => {\n const children = items.map(({name, url, icon: Icon}) => {\n return (\n <LinkComponent key={name} title={name} className={classes.crumb} href={url}>\n {Icon && <Icon className={classes.icon} />}\n <span className={classes.text}>{name}</span>\n </LinkComponent>\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","import type {PermissionsConfig, Permission} from './types.ts';\n\nconst normalizeValue = (value: string | boolean) => {\n if (typeof value === 'boolean') {\n return \"'src'\";\n } else if (value === 'self') {\n return \"'self'\";\n } else if (value === 'src') {\n return \"'src'\";\n } else if (value === 'none') {\n return \"'none'\";\n }\n return value;\n};\n\nexport const convertPermissions = (permissions: PermissionsConfig) => {\n return Object.entries(permissions)\n .filter(([_, value]) => value !== false)\n .map(([key, value]) => (Array.isArray(value) ? [key, value] : [key, [value]]))\n .map(([key, value]) => {\n return [key, (value as Permission[]).map(normalizeValue).join(' ')];\n })\n .map(permissionsArray => permissionsArray.join(' '))\n .join('; ');\n};\n","import type {\n ReactNode,\n HTMLAttributeReferrerPolicy,\n IframeHTMLAttributes,\n SyntheticEvent,\n} from 'react';\nimport {useCallback} from 'react';\nimport {useState} from 'react';\nimport {useMemo} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {SkeletonShape} from '@/lib/Skeleton';\n\nimport classes from './Iframe.module.css';\nimport type {SandboxConfig, PermissionsConfig} from './types.ts';\nimport {convertPermissions} from './convertPermissions.ts';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Provide an url of the embedded page */\n src?: string;\n /**\n * Provide custom HTML for the iframe.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/srcdoc\n */\n srcDoc?: string;\n /**\n * Set the width of the iframe in pixels.\n * Responsive\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/width\n */\n width: number;\n /**\n * Set the height of the iframe in pixels.\n * Responsive\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/height\n */\n height: number;\n /**\n * Define which referrer is sent when fetching the resource.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/referrerPolicy\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy;\n /**\n * Allow the iframe's contents to use requestFullscreen().\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/allowFullscreen\n */\n allowFullScreen?: boolean;\n /**\n * Provide a unique name for the iframe.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/name\n * @example\n * <iframe id=\"el\" name=\"example\"></iframe>\n * const el = document.getElementById(\"el\");\n * console.log(el.name); // Output: \"example\"\n */\n name?: string;\n /**\n * Provide a title for accessibility\n */\n title?: string;\n /**\n * Set iframe loading behavior\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/loading\n */\n loading?: IframeHTMLAttributes<unknown>['loading'];\n /**\n * Provide a SandboxConfig object.\n * @see SandboxConfig\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/sandbox\n */\n sandboxConfig?: SandboxConfig;\n /**\n * Provide a callback to capture iframe loaded event.\n */\n onLoad?: (event: SyntheticEvent<HTMLIFrameElement>) => void;\n /**\n * Provide a PermissionsConfig object.\n * @see PermissionsConfig\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/allow\n */\n permissionsConfig?: PermissionsConfig;\n };\n\nexport const Iframe = forwardRef<HTMLIFrameElement, Props>(\n (\n {\n children,\n className,\n src,\n width,\n height,\n referrerPolicy,\n allowFullScreen,\n name,\n title,\n srcDoc,\n loading,\n sandboxConfig,\n permissionsConfig,\n onLoad = () => {},\n ...nativeProps\n },\n ref\n ) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n const handleLoad = useCallback(\n (event: SyntheticEvent<HTMLIFrameElement>) => {\n onLoad(event);\n setIsLoaded(true);\n },\n [onLoad]\n );\n\n const sandbox =\n sandboxConfig &&\n Object.entries(sandboxConfig)\n .filter(([_, value]) => value)\n .map(([key]) => key)\n .join(' ');\n\n const allow = permissionsConfig && convertPermissions(permissionsConfig);\n\n const theme = useMemo(\n () => ({\n height,\n width,\n }),\n [height, width]\n );\n\n const {LocalRoot} = useLocalTheme();\n return (\n <LocalRoot theme={theme} className={classes.sizeContainer}>\n <div className={classes.ratioContainer}>\n <iframe\n {...nativeProps}\n className={classNames(classes.iframe, className)}\n ref={ref}\n onLoad={handleLoad}\n loading={loading}\n name={name}\n width={width}\n height={height}\n src={src}\n title={title}\n srcDoc={srcDoc}\n allow={allow}\n referrerPolicy={referrerPolicy}\n allowFullScreen={allowFullScreen}\n sandbox={sandbox}\n />\n {!isLoaded && (\n <SkeletonShape\n width={width}\n height={height}\n borderRadius={0}\n className={classes.loader}\n />\n )}\n </div>\n </LocalRoot>\n );\n }\n);\n\nIframe.displayName = 'Iframe';\n","/**\n * List of available units\n * @see https://tc39.es/ecma402/#table-sanctioned-single-unit-identifiers\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#unit_2\n */\nexport enum Units {\n acre = 'acre',\n bit = 'bit',\n byte = 'byte',\n celsius = 'celsius',\n centimeter = 'centimeter',\n day = 'day',\n degree = 'degree',\n fahrenheit = 'fahrenheit',\n 'fluid-ounce' = 'fluid-ounce',\n foot = 'foot',\n gallon = 'gallon',\n gigabit = 'gigabit',\n gigabyte = 'gigabyte',\n gram = 'gram',\n hectare = 'hectare',\n hour = 'hour',\n inch = 'inch',\n kilobit = 'kilobit',\n kilobyte = 'kilobyte',\n kilogram = 'kilogram',\n kilometer = 'kilometer',\n liter = 'liter',\n megabit = 'megabit',\n megabyte = 'megabyte',\n meter = 'meter',\n microsecond = 'microsecond',\n mile = 'mile',\n 'mile-scandinavian' = 'mile-scandinavian',\n milliliter = 'milliliter',\n millimeter = 'millimeter',\n millisecond = 'millisecond',\n minute = 'minute',\n month = 'month',\n nanosecond = 'nanosecond',\n ounce = 'ounce',\n percent = 'percent',\n petabyte = 'petabyte',\n pound = 'pound',\n second = 'second',\n stone = 'stone',\n terabit = 'terabit',\n terabyte = 'terabyte',\n week = 'week',\n yard = 'yard',\n year = 'year',\n}\n","import {useState} from 'react';\n\nimport {useSafeLayoutEffect} from '@/internal/hooks/useSafeLayoutEffect.ts';\n\n/**\n * Utility hook. Returns browser locale. Updates when it changes.\n */\nexport const useBrowserLocale = () => {\n const [locale, setLocale] = useState('en-US');\n useSafeLayoutEffect(() => {\n setLocale(navigator.language);\n }, []);\n\n return locale;\n};\n","import type {Range} from '@/internal/utils/rangeType.ts';\nimport type {Units, CurrencyCodes, Locale} from '@/internal/locale';\n\nexport enum Styles {\n decimal = 'decimal',\n currency = 'currency',\n percent = 'percent',\n unit = 'unit',\n}\n\nexport enum LocaleMatchers {\n lookup = 'lookup',\n 'best fit' = 'best fit',\n}\n\nexport enum Notations {\n standard = 'standard',\n 'scientific' = 'scientific',\n 'engineering' = 'engineering',\n 'compact' = 'compact',\n}\n\nexport enum CompactDisplayModes {\n short = 'short',\n long = 'long',\n}\n\nexport enum SignDisplayModes {\n auto = 'auto',\n always = 'always',\n exceptZero = 'exceptZero',\n // TODO: not present in built in types\n // negative = 'negative',\n never = 'never',\n}\n\nexport type DigitsConfig = {\n integer?: {\n /**\n * The minimum number of integer digits to use\n * @example\n * // minimumIntegerDigits=3\n * <Number value={3} /> // => 003\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#minimumintegerdigits\n */\n minimum?: Range<1, 22>;\n };\n fraction?: {\n /**\n * The minimum number of fraction digits to use\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#minimumfractiondigits\n */\n minimum?: Range<0, 101>;\n /**\n * The maximum number of fraction digits to use\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#maximumfractiondigits\n */\n maximum?: Range<0, 101>;\n };\n significant?: {\n /**\n * The minimum number of significant digits to use\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#minimumsignificantdigits\n */\n minimum?: Range<1, 22>;\n /**\n * The maximum number of significant digits to use\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#maximumsignificantdigits\n */\n maximum?: Range<1, 22>;\n };\n};\n\nexport type NumberProps = {\n /** Provide a value to be formatted */\n value?: number;\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers. Defaults to user setting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#locales\n */\n locale?: Locale;\n /**\n * The locale matching algorithm to use\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#localematcher\n */\n localeMatcher?: keyof typeof LocaleMatchers;\n /**\n * Provide a `digits` property config as an object\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#minimumintegerdigits\n */\n digitsConfig?: DigitsConfig;\n /**\n * The formatting that should be displayed for the number (not %, currency) (decimal, unit)\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#notation\n */\n notation?: keyof typeof Notations;\n /**\n * Only used when `notation` is `compact` (not %, currency) (decimal, unit)\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#compactdisplay\n */\n compactDisplay?: keyof typeof CompactDisplayModes;\n /**\n * Whether to use grouping separators, such as thousands' separators (not %) (decimal, unit, currency)\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#usegrouping\n */\n grouping?: boolean;\n /**\n * Display the sign for the number (all)\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#signdisplay\n */\n signDisplay?: keyof typeof SignDisplayModes;\n /**\n * Provide a unit for the number\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#unit_2\n */\n // Unit specific props\n unit?: keyof typeof Units;\n /**\n * The unit formatting style to use in unit formatting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#unitdisplay\n */\n unitDisplay?: keyof typeof UnitDisplayModes;\n // Currency specific props\n /**\n * Provide ISO 4217 currency code\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#currency_2\n */\n currency: keyof typeof CurrencyCodes;\n /**\n * How to display the currency in currency formatting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#currencydisplay\n */\n currencyDisplay?: keyof typeof CurrencyDisplayTypes;\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#currencysign\n */\n currencySign?: keyof typeof CurrencySignModes;\n};\n\nexport enum CurrencyDisplayTypes {\n code = 'code',\n symbol = 'symbol',\n narrowSymbol = 'narrowSymbol',\n name = 'name',\n}\n\nexport enum CurrencySignModes {\n standard = 'standard',\n accounting = 'accounting',\n}\n\nexport enum UnitDisplayModes {\n short = 'short',\n narrow = 'narrow',\n long = 'long',\n}\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport classes from '@/lib/Number/Number.module.css';\n\nimport type {NumberProps} from './types.ts';\nimport {Styles} from './types.ts';\nimport {LocaleMatchers, Notations, CompactDisplayModes, SignDisplayModes} from './types.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NumberProps, 'unitDisplay' | 'unit' | 'currency' | 'currencyDisplay' | 'currencySign'>;\n\nexport const NumberDecimal = forwardRef<HTMLSpanElement, Props>(\n (\n {\n value,\n className,\n locale: localeProp,\n localeMatcher = LocaleMatchers['best fit'],\n digitsConfig = {\n integer: {\n minimum: 1,\n },\n significant: {\n minimum: 1,\n maximum: 21,\n },\n fraction: {},\n },\n notation = Notations.standard,\n compactDisplay = CompactDisplayModes.short,\n grouping,\n signDisplay = SignDisplayModes.auto,\n ...nativeProps\n },\n ref\n ) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () =>\n value\n ? new Intl.NumberFormat(locale, {\n localeMatcher,\n style: Styles.decimal,\n minimumIntegerDigits: digitsConfig.integer?.minimum,\n minimumFractionDigits: digitsConfig.fraction?.minimum,\n minimumSignificantDigits: digitsConfig.significant?.minimum,\n maximumSignificantDigits: digitsConfig.significant?.maximum,\n maximumFractionDigits: digitsConfig.fraction?.maximum,\n notation,\n compactDisplay,\n useGrouping: grouping,\n signDisplay,\n }).format(value)\n : '',\n [\n compactDisplay,\n digitsConfig.fraction?.maximum,\n digitsConfig.fraction?.minimum,\n digitsConfig.integer?.minimum,\n digitsConfig.significant?.maximum,\n digitsConfig.significant?.minimum,\n grouping,\n locale,\n localeMatcher,\n notation,\n signDisplay,\n value,\n ]\n );\n return (\n value && (\n <span\n {...nativeProps}\n title={formattedValue}\n className={classNames(classes.number, className)}\n ref={ref}>\n {formattedValue}\n </span>\n )\n );\n }\n);\n\nNumberDecimal.displayName = 'NumberDecimal';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport classes from '@/lib/Number/Number.module.css';\n\nimport type {NumberProps} from './types.ts';\nimport {Styles} from './types.ts';\nimport {LocaleMatchers, CurrencyDisplayTypes, SignDisplayModes} from './types.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NumberProps, 'notation' | 'compactDisplay' | 'unitDisplay' | 'unit'>;\n\nexport const NumberCurrency = forwardRef<HTMLSpanElement, Props>(\n (\n {\n value,\n className,\n locale: localeProp,\n localeMatcher = LocaleMatchers['best fit'],\n digitsConfig = {\n integer: {\n minimum: 1,\n },\n significant: {\n minimum: 1,\n maximum: 21,\n },\n fraction: {\n maximum: 2,\n },\n },\n grouping,\n signDisplay = SignDisplayModes.auto,\n currency,\n currencyDisplay = CurrencyDisplayTypes.symbol,\n currencySign,\n ...nativeProps\n },\n ref\n ) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () =>\n value\n ? new Intl.NumberFormat(locale, {\n localeMatcher,\n style: Styles.currency,\n minimumIntegerDigits: digitsConfig.integer?.minimum,\n minimumFractionDigits: digitsConfig.fraction?.minimum,\n minimumSignificantDigits: digitsConfig.significant?.minimum,\n maximumSignificantDigits: digitsConfig.significant?.maximum,\n maximumFractionDigits: digitsConfig.fraction?.maximum,\n useGrouping: grouping,\n signDisplay,\n currency,\n currencyDisplay,\n currencySign,\n }).format(value)\n : '',\n [\n currency,\n currencyDisplay,\n currencySign,\n digitsConfig.fraction?.maximum,\n digitsConfig.fraction?.minimum,\n digitsConfig.integer?.minimum,\n digitsConfig.significant?.maximum,\n digitsConfig.significant?.minimum,\n grouping,\n locale,\n localeMatcher,\n signDisplay,\n value,\n ]\n );\n return (\n value && (\n <span\n {...nativeProps}\n title={formattedValue}\n className={classNames(classes.number, className)}\n ref={ref}>\n {formattedValue}\n </span>\n )\n );\n }\n);\n\nNumberCurrency.displayName = 'NumberCurrency';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport classes from '@/lib/Number/Number.module.css';\n\nimport type {NumberProps} from './types.ts';\nimport {Styles} from './types.ts';\nimport {LocaleMatchers, SignDisplayModes} from './types.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<\n NumberProps,\n | 'notation'\n | 'compactDisplay'\n | 'unitDisplay'\n | 'unit'\n | 'currency'\n | 'currencyDisplay'\n | 'currencySign'\n >;\n\nexport const NumberPercent = forwardRef<HTMLSpanElement, Props>(\n (\n {\n value,\n className,\n locale: localeProp,\n localeMatcher = LocaleMatchers['best fit'],\n digitsConfig = {\n integer: {\n minimum: 1,\n },\n significant: {\n minimum: 1,\n maximum: 21,\n },\n fraction: {},\n },\n grouping,\n signDisplay = SignDisplayModes.auto,\n ...nativeProps\n },\n ref\n ) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () =>\n value\n ? new Intl.NumberFormat(locale, {\n localeMatcher,\n style: Styles.percent,\n minimumIntegerDigits: digitsConfig.integer?.minimum,\n minimumFractionDigits: digitsConfig.fraction?.minimum,\n minimumSignificantDigits: digitsConfig.significant?.minimum,\n maximumSignificantDigits: digitsConfig.significant?.maximum,\n maximumFractionDigits: digitsConfig.fraction?.maximum,\n useGrouping: grouping,\n signDisplay,\n }).format(value)\n : '',\n [\n digitsConfig.fraction?.maximum,\n digitsConfig.fraction?.minimum,\n digitsConfig.integer?.minimum,\n digitsConfig.significant?.maximum,\n digitsConfig.significant?.minimum,\n grouping,\n locale,\n localeMatcher,\n signDisplay,\n value,\n ]\n );\n return (\n value && (\n <span\n {...nativeProps}\n title={formattedValue}\n className={classNames(classes.number, className)}\n ref={ref}>\n {formattedValue}\n </span>\n )\n );\n }\n);\n\nNumberPercent.displayName = 'NumberPercent';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport classes from '@/lib/Number/Number.module.css';\nimport {Units} from '@/internal/locale';\n\nimport type {NumberProps} from './types.ts';\nimport {Styles, UnitDisplayModes} from './types.ts';\nimport {LocaleMatchers, Notations, CompactDisplayModes, SignDisplayModes} from './types.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NumberProps, 'currency' | 'currencyDisplay' | 'currencySign'>;\n\nexport const NumberUnit = forwardRef<HTMLSpanElement, Props>(\n (\n {\n value,\n className,\n locale: localeProp,\n localeMatcher = LocaleMatchers['best fit'],\n digitsConfig = {\n integer: {\n minimum: 1,\n },\n significant: {\n minimum: 1,\n maximum: 21,\n },\n fraction: {},\n },\n notation = Notations.standard,\n compactDisplay = CompactDisplayModes.short,\n grouping,\n signDisplay = SignDisplayModes.auto,\n unit = Units.liter,\n unitDisplay = UnitDisplayModes.short,\n ...nativeProps\n },\n ref\n ) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () =>\n value\n ? new Intl.NumberFormat(locale, {\n localeMatcher,\n style: Styles.unit,\n minimumIntegerDigits: digitsConfig.integer?.minimum,\n minimumFractionDigits: digitsConfig.fraction?.minimum,\n minimumSignificantDigits: digitsConfig.significant?.minimum,\n maximumSignificantDigits: digitsConfig.significant?.maximum,\n maximumFractionDigits: digitsConfig.fraction?.maximum,\n notation,\n compactDisplay,\n useGrouping: grouping,\n signDisplay,\n unit,\n unitDisplay,\n }).format(value)\n : '',\n [\n compactDisplay,\n digitsConfig.fraction?.maximum,\n digitsConfig.fraction?.minimum,\n digitsConfig.integer?.minimum,\n digitsConfig.significant?.maximum,\n digitsConfig.significant?.minimum,\n grouping,\n locale,\n localeMatcher,\n notation,\n signDisplay,\n unit,\n unitDisplay,\n value,\n ]\n );\n return (\n value && (\n <span\n {...nativeProps}\n title={formattedValue}\n className={classNames(classes.number, className)}\n ref={ref}>\n {formattedValue}\n </span>\n )\n );\n }\n);\n\nNumberUnit.displayName = 'NumberUnit';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport type {Locale} from '@/internal/locale';\n\nimport classes from './DateTime.module.css';\nimport type {DateFormatOptions} from './types.ts';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * String representing the date in a simplified format based on ISO 8601.\n * Is always 24 or 27 characters long.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#date_time_string_format\n * @see https://en.wikipedia.org/wiki/ISO_8601\n */\n value?: string;\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers. Defaults to user setting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#locales\n */\n locale?: Locale;\n /**\n * Prevents line wrapping of formatted dates and times\n */\n enableNoWrap?: boolean;\n } & DateFormatOptions;\n\nexport const DateTime = forwardRef<HTMLSpanElement, Props>(\n (\n {\n className,\n locale: localeProp,\n value = '',\n weekday,\n era,\n year,\n month,\n day,\n hour,\n minute,\n second,\n timeZoneName,\n hour12,\n timeZone,\n enableNoWrap = true,\n ...nativeProps\n },\n ref\n ) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const date = useMemo(() => new Date(value), [value]);\n const formattedValue = new Intl.DateTimeFormat(locale, {\n weekday,\n era,\n year,\n month,\n day,\n hour,\n minute,\n second,\n timeZoneName,\n hour12,\n timeZone,\n }).format(date);\n return (\n value && (\n <span\n {...nativeProps}\n className={classNames(\n classes.number,\n {[classes.noWrap]: enableNoWrap},\n className\n )}\n ref={ref}>\n {formattedValue}\n </span>\n )\n );\n }\n);\n\nDateTime.displayName = 'DateTime';\n","import {type MutableRefObject, useEffect, useMemo, useRef, useState} from 'react';\n\n// Unfinished. TODO: make it work.\nexport function useResizeObserver<TElement extends HTMLElement | null>(\n ref: MutableRefObject<TElement>\n) {\n const frameID = useRef(0);\n\n const [size, setSize] = useState<ResizeObserverSize>();\n\n const result = useMemo(\n () => ({width: size?.inlineSize, height: size?.blockSize}),\n [size?.blockSize, size?.inlineSize]\n );\n\n const observer = useMemo(\n () =>\n typeof window !== 'undefined'\n ? new ResizeObserver((entries: ResizeObserverEntry[]) => {\n const entry = entries[0];\n\n if (entry) {\n cancelAnimationFrame(frameID.current);\n\n frameID.current = requestAnimationFrame(() => {\n if (ref.current) {\n setSize(entry.borderBoxSize[0]);\n }\n });\n }\n })\n : null,\n [] // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n useEffect(() => {\n if (ref.current) {\n observer?.observe(ref.current, {box: 'border-box'});\n }\n\n return () => {\n observer?.disconnect();\n\n if (frameID.current) {\n cancelAnimationFrame(frameID.current);\n }\n };\n }, [ref.current]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return result;\n}\n\nexport function useElementSize<TElement extends HTMLElement | null>(\n ref: MutableRefObject<TElement>\n) {\n const {width, height} = useResizeObserver(ref);\n return {width, height};\n}\n","import type {ColumnFiltersState} from '@tanstack/react-table';\nimport {useState, useEffect} from 'react';\n\nexport type Props = {\n columnFiltersProp: ColumnFiltersState;\n onFiltersChange: (filterState: ColumnFiltersState) => void;\n};\n\nexport const useColumnFilters = ({columnFiltersProp, onFiltersChange}: Props) => {\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>(columnFiltersProp);\n useEffect(() => {\n setColumnFilters(columnFiltersProp);\n }, [columnFiltersProp]);\n\n useEffect(() => {\n onFiltersChange(columnFilters);\n }, [onFiltersChange, columnFilters]);\n\n return {columnFilters, setColumnFilters};\n};\n","import type {\n AccessorFn as AccessorFnTanstack,\n HeaderContext,\n CellContext,\n SortingFn as SortingFnTanstack,\n FilterFnOption,\n} from '@tanstack/react-table';\nimport type {FC} from 'react';\n\nimport type {NumberProps} from '@/lib/Number';\nimport type {DateFormatOptions} from '@/lib/DateTime';\n\nexport enum Roles {\n manager = 'manager',\n developer = 'developer',\n}\n\nexport type Row = {\n firstName: string;\n lastName: string;\n role: keyof typeof Roles;\n age: number;\n email: string;\n address: {\n city: string;\n country: string;\n streetAddress: string;\n postcode: string;\n phoneNumber: string;\n };\n business: {\n iban: string;\n companyName: string;\n };\n};\n\nexport type TableValue = string | number;\n\nexport type TableRow = {[property: string]: TableRow | TableValue};\n// export type TableRow = Record<string, TableValue>;\n\n/**\n * Very liberal table data definition\n */\nexport type TableData = TableRow[];\n\nexport enum RenderModes {\n /**\n * Table renders as a virtualized list containing all cells\n */\n virtual = 'virtual',\n /**\n * Table renders as multiple pages of a certain size\n */\n paginated = 'paginated',\n}\n\nexport enum ProcessingModes {\n /**\n * Data processed by the table. Semi-controlled mode, prop changes overwrite the state\n */\n internal = 'internal',\n /**\n * Data processed by the developer. Full controlled mode\n */\n external = 'external',\n}\n\nexport enum ColumnTypes {\n text = 'text',\n decimal = 'decimal',\n percentage = 'percentage',\n currency = 'currency',\n unit = 'unit',\n date = 'date',\n select = 'select',\n}\n\n/**\n * Record which represents table change requested by the user. Key is equal to row index\n */\nexport type EditState = Record<number, TableRow>;\n\nexport type HeaderCell = FC<\n unknown & {\n title?: string;\n headerContext: HeaderContext<TableData, TableValue | TableRow>;\n }\n>;\n\nexport type CellComponent = FC<\n unknown & {\n value?: TableValue;\n cellContext: CellContext<TableData, TableRow | TableValue>;\n }\n>;\n\nexport type FooterCell = FC<\n unknown & {\n cellContext: HeaderContext<TableData, TableRow | TableValue>;\n }\n>;\n\nexport type FilterInput = FC<\n unknown & {\n value: FilterValue;\n onChange: (value: FilterValue) => void;\n }\n>;\n\nexport enum SortingModes {\n auto = 'auto',\n alphanumeric = 'alphanumeric',\n alphanumericCaseSensitive = 'alphanumericCaseSensitive',\n text = 'text',\n textCaseSensitive = 'textCaseSensitive',\n datetime = 'datetime',\n basic = 'basic',\n}\n\nexport type SortingFn = SortingFnTanstack<TableData>;\n\nexport enum FilterModes {\n auto = 'auto',\n includesString = 'includesString',\n includesStringSensitive = 'includesStringSensitive',\n equalsString = 'equalsString',\n arrIncludes = 'arrIncludes',\n arrIncludesAll = 'arrIncludesAll',\n arrIncludesSome = 'arrIncludesSome',\n equals = 'equals',\n weakEquals = 'weakEquals',\n inNumberRange = 'inNumberRange',\n}\n\nexport type ColumnFormatOptions = NumberProps | DateFormatOptions | Record<string, unknown>;\n\nexport enum CustomFilterFns {\n isInDateRange = 'isInDateRange',\n isInPercentRange = 'isInPercentRange',\n}\n\nexport type AccessorFn = AccessorFnTanstack<TableData, TableRow | TableValue>;\n\n/**\n * Table column config\n */\nexport type Column = {\n /**\n * Provide a unique id for the column\n */\n id: string;\n /**\n * Provide a human-readable title for the column\n */\n name: string;\n /**\n * Define a type of column data\n * @see ColumnTypes\n */\n columnType?: keyof typeof ColumnTypes;\n /**\n * Provide a custom React component to render column cells\n * @see CellComponent\n */\n columnCell?: CellComponent;\n /**\n * Set the width of the columns. Defaults to 166\n */\n size?: number;\n /**\n * Enable to allow user editing of the column\n */\n editable?: boolean;\n /**\n * Enable to allow user filtering of the column\n */\n filterable?: boolean;\n /**\n * Enable to make a column able to sort in ascending or descending order\n */\n sortable?: boolean;\n /**\n * Enable to make a column able to pin the left or right side\n */\n pinnable?: boolean;\n /**\n * Define a type of sorting to be used for the column. Can be one of supported modes or custom function\n * @see SortingModes\n * @see SortingFn\n */\n sortingFn?: keyof typeof SortingModes | SortingFn;\n /**\n * Define a type of filtering to be used for the column. Can be one of supported modes or custom function\n * @see FilterFnOption\n * @see CustomFilterFns\n */\n filterFn?: FilterFnOption<TableData> | keyof typeof CustomFilterFns;\n /**\n * Set props for each table cell. Useful for formatting dates, currencies, etc.\n * @see ColumnFormatOptions\n */\n cellProps?: ColumnFormatOptions;\n /**\n * Provide a custom React component to render the column header\n * @see HeaderCell\n */\n headerCell?: HeaderCell;\n /**\n * Provide a custom React component to render the column footer\n * @see FooterCell\n */\n footerCell?: FooterCell;\n /**\n * Provide a custom React component to render the column filter input\n * @see FilterInput\n */\n filterInput?: FilterInput;\n} & (\n | {\n /**\n * Provide an accessor key to get column cell value from table data\n * @example\n * {\n * accessorKey: \"foo.bar[6].bazz\"\n * }\n */\n accessorKey: string;\n /**\n * Provide an accessor function to get column cell value from table data\n */\n accessorFn?: never;\n }\n | {\n /**\n * Provide an accessor key to get column cell value from table data\n * @example\n * {\n * accessorKey: \"foo.bar[6].bazz\"\n * }\n */\n accessorKey?: never;\n /**\n * Provide an accessor function to get column cell value from table data\n */\n accessorFn: AccessorFn;\n }\n);\n\nexport type DateRangeFilterValue = string[];\nexport type RangeFilterValue = number[];\n\nexport type FilterValue = DateRangeFilterValue | RangeFilterValue | string;\n","import type {FC, ReactNode} from 'react';\nimport {useMemo, memo} from 'react';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport classes from './Cells.module.css';\n\nexport type Props = {\n children?: ReactNode;\n columnWidth?: number;\n};\n\nexport const CellWrapper: FC<Props> = memo(({children, columnWidth = 166}) => {\n const {LocalRoot} = useLocalTheme();\n const theme = useMemo(() => ({'column-width': columnWidth}), [columnWidth]);\n return (\n <LocalRoot className={classes.cellWrapper} theme={theme}>\n {children}\n </LocalRoot>\n );\n});\n\nCellWrapper.displayName = 'CellWrapper';\n","import type {FC} from 'react';\nimport classNames from 'classnames';\n\nimport {InputCheckbox} from '@/lib/InputCheckbox';\n\nimport classes from './Cells.module.css';\n\nenum Modes {\n normal = 'normal',\n inverted = 'inverted',\n}\n\nexport type Props = {\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n onChange?: (event: unknown) => void;\n mode?: keyof typeof Modes;\n};\n\nexport const RowSelectionCell: FC<Props> = ({\n checked,\n disabled,\n onChange = () => {},\n indeterminate,\n mode = Modes.normal,\n}) => {\n return (\n <div className={classes.rowSelectionCell}>\n <InputCheckbox\n indeterminate={indeterminate}\n className={classNames(classes.input, {[classes.inverted]: mode === Modes.inverted})}\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n />\n </div>\n );\n};\n","import type {ColumnDef} from '@tanstack/react-table';\nimport {createColumnHelper} from '@tanstack/react-table';\n\nimport {CellWrapper} from './../cells/CellWrapper.tsx';\nimport {RowSelectionCell} from './../cells/RowSelectionCell.tsx';\nimport type {TableValue} from './../types.ts';\nimport {ColumnTypes, type TableRow} from './../types.ts';\n\nconst columnHelper = createColumnHelper<TableRow>();\n\nexport const ROW_SELECTION_ID = 'koval-selectable';\n\nexport const rowSelection = columnHelper.display({\n id: ROW_SELECTION_ID,\n header: ({table, column}) => {\n return (\n <CellWrapper columnWidth={column.columnDef.meta?.width}>\n <RowSelectionCell\n mode=\"inverted\"\n checked={table.getIsAllRowsSelected()}\n onChange={table.getToggleAllRowsSelectedHandler()}\n indeterminate={table.getIsSomeRowsSelected()}\n />\n </CellWrapper>\n );\n },\n cell: ({row, column}) => {\n return (\n <CellWrapper columnWidth={column.columnDef.meta?.width}>\n <RowSelectionCell\n checked={row.getIsSelected()}\n disabled={!row.getCanSelect()}\n onChange={row.getToggleSelectedHandler()}\n indeterminate={false}\n />\n </CellWrapper>\n );\n },\n enableColumnFilter: false,\n size: 51,\n meta: {\n type: ColumnTypes.select,\n width: 51,\n editable: false,\n },\n footer: ({table, column}) => {\n return (\n <CellWrapper columnWidth={column.columnDef.meta?.width}>\n <RowSelectionCell\n mode=\"inverted\"\n checked={table.getIsAllRowsSelected()}\n onChange={table.getToggleAllRowsSelectedHandler()}\n indeterminate={table.getIsSomeRowsSelected()}\n />\n </CellWrapper>\n );\n },\n}) as ColumnDef<TableRow, TableValue>;\n","import {useState, useEffect, useMemo} from 'react';\nimport type {ColumnPinningState} from '@tanstack/react-table';\n\nimport {ROW_SELECTION_ID} from './../columns/rowSelection.tsx';\n\nconst defaultColumnPinning = {};\n\nexport type Props = {\n columnPinningProp?: ColumnPinningState;\n hasSelectableColumn: boolean;\n};\n\nconst normalizeProp = (hasSelectableColumn: boolean, columnPinningProp?: ColumnPinningState) => {\n const nextRight = columnPinningProp?.right ? columnPinningProp?.right : [];\n const nextLeft = columnPinningProp?.left ? columnPinningProp?.left : [];\n return {\n right: nextRight,\n left: hasSelectableColumn ? [ROW_SELECTION_ID, ...nextLeft] : nextLeft,\n };\n};\n\nexport const useColumnPinning = ({\n columnPinningProp = defaultColumnPinning,\n hasSelectableColumn,\n}: Props) => {\n const normalizedPinningState = useMemo(\n () => normalizeProp(hasSelectableColumn, columnPinningProp),\n [columnPinningProp, hasSelectableColumn]\n );\n\n const [columnPinning, setColumnPinning] = useState<ColumnPinningState>(normalizedPinningState);\n\n useEffect(() => {\n setColumnPinning(normalizedPinningState);\n }, [normalizedPinningState]);\n\n return {columnPinning, setColumnPinning};\n};\n","import type {ReactNode} from 'react';\nimport {useMemo, forwardRef} from 'react';\nimport type {ColumnPinningPosition} from '@tanstack/react-table';\nimport {useLocalTheme} from 'css-vars-hook';\nimport classNames from 'classnames';\n\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './DataTable.module.css';\n\nexport type Props = {\n children?: ReactNode;\n leftMargin?: number;\n rightMargin?: number;\n isHighlighted?: boolean;\n isPinned?: ColumnPinningPosition;\n classname?: string;\n as: 'td' | 'th';\n};\n\nexport const TableCell = forwardRef<HTMLTableCellElement, Props>(\n (\n {children, isPinned, leftMargin, rightMargin, classname, as = 'th', isHighlighted = false},\n ref\n ) => {\n const {LocalRoot, ref: localRef} = useLocalTheme<HTMLTableCellElement>();\n useLinkRefs(ref, localRef);\n const theme = useMemo(\n () => ({\n 'left-margin': leftMargin,\n 'right-margin': rightMargin,\n }),\n [leftMargin, rightMargin]\n );\n\n return (\n <LocalRoot\n theme={theme}\n as={as}\n className={classNames(\n classes.tableCell,\n {\n [classes.highlighted]: isHighlighted,\n [classes.pinned]: Boolean(isPinned),\n [classes.pinnedHeader]: Boolean(isPinned) && as === 'th',\n [classes.left]: isPinned === 'left',\n [classes.right]: isPinned === 'right',\n },\n classname\n )}>\n {children}\n </LocalRoot>\n );\n }\n);\n\nTableCell.displayName = 'TableCell';\n","import {notUndefined, useVirtualizer} from '@tanstack/react-virtual';\nimport type {MutableRefObject} from 'react';\n\nexport type Props = {\n rowsCount: number;\n scrollRef: MutableRefObject<HTMLElement | null>;\n cellHeight: number;\n overscan: number;\n};\n\nexport const useVirtualRows = ({rowsCount, scrollRef, cellHeight, overscan}: Props) => {\n const virtualizer = useVirtualizer({\n count: rowsCount,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => cellHeight,\n overscan: overscan,\n });\n\n const virtualRows = virtualizer.getVirtualItems();\n\n const [before, after] =\n virtualRows.length > 0\n ? [\n notUndefined(virtualRows[0]).start - virtualizer.options.scrollMargin,\n virtualizer.getTotalSize() -\n notUndefined(virtualRows[virtualRows.length - 1]).end,\n ]\n : [0, 0];\n\n return {virtualizer, virtualRows, before, after};\n};\n","import {useEffect, useState} from 'react';\n\nimport type {TableData} from './../types.ts';\n\nexport const useTableData = (tableDataProp: TableData) => {\n const [tableData, setTableData] = useState(() => [...tableDataProp]);\n\n useEffect(() => {\n setTableData(() => [...tableDataProp]);\n }, [tableDataProp]);\n return {tableData, setTableData};\n};\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 media = window.matchMedia(query);\n // fallback for usage in tests\n if (!window.matchMedia) {\n return;\n }\n if (media.matches !== matches) {\n setMatches(media.matches);\n }\n const listener = () => setMatches(media.matches);\n media.addEventListener('change', listener);\n return () => media.removeEventListener('change', listener);\n }, [matches, query]);\n\n return matches;\n};\n","import {useRef, useState} from 'react';\nimport type {KeyboardEvent, FC, ChangeEvent} from 'react';\nimport {useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {Pagination as PaginationVanilla} from '@/lib/Pagination';\nimport {IconEnter} from '@/internal/Icons';\nimport {useMatchMedia} from '@/internal/hooks/useMatchMedia.tsx';\n\nimport classes from './DataTable.module.css';\n\nexport type Props = {\n setCurrentPage: (page: number) => void;\n onPageSizeChange: (page: number) => void;\n currentPage: number;\n pagesAmount: number;\n pageSize: number;\n rowsCount: number;\n};\n\nexport const Pagination: FC<Props> = ({\n setCurrentPage,\n currentPage,\n pagesAmount,\n pageSize: pageSizeProp,\n onPageSizeChange,\n rowsCount,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [pageSize, setPageSize] = useState(pageSizeProp);\n\n const checkValidity = useCallback(\n (nextValue: number) => {\n return nextValue <= rowsCount;\n },\n [rowsCount]\n );\n\n const handlePageSizeChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = parseInt(event.target.value);\n setPageSize(nextValue);\n }, []);\n\n const handlePazeSizeEnter = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter' && checkValidity(pageSize)) {\n onPageSizeChange(pageSize);\n setCurrentPage(1);\n }\n },\n [checkValidity, onPageSizeChange, pageSize, setCurrentPage]\n );\n\n const handlePageSizeSubmit = useCallback(() => {\n if (checkValidity(pageSize)) {\n onPageSizeChange(pageSize);\n setCurrentPage(1);\n }\n }, [checkValidity, onPageSizeChange, pageSize, setCurrentPage]);\n\n const isBigScreen = useMatchMedia('(width >= 768px)');\n\n const displayPageButtons = isBigScreen || pagesAmount <= 7;\n const displayPageNavigation = isBigScreen || pagesAmount > 7;\n\n return (\n <div className={classes.paginationWrapper}>\n <PaginationVanilla\n showPageButtons={displayPageButtons}\n showNavigation={displayPageNavigation}\n onPageSelect={setCurrentPage}\n selectedPage={currentPage}\n totalPages={pagesAmount}\n />\n <div className={classes.paginationFieldset}>\n <label htmlFor=\"input\" className={classes.paginationLabel}>\n Rows per page:\n </label>\n <input\n min={1}\n max={rowsCount}\n ref={inputRef}\n onKeyUp={handlePazeSizeEnter}\n onChange={handlePageSizeChange}\n value={pageSize}\n id=\"input\"\n type=\"number\"\n className={classNames(classes.paginationInput, {\n [classes.error]: !checkValidity(pageSize),\n })}\n />\n <button\n disabled={!checkValidity(pageSize)}\n className={classes.paginationButton}\n onClick={handlePageSizeSubmit}>\n <IconEnter className={classes.icon} />\n </button>\n </div>\n </div>\n );\n};\n","import {useCallback, useEffect, useState} from 'react';\nimport type {PaginationState} from '@tanstack/react-table';\n\nimport type {TableData} from './../types.ts';\n\nexport type Props = {\n paginationProp: PaginationState;\n tableData: TableData;\n onPaginationChange: (paginationState: PaginationState) => void;\n};\n\nexport const usePagination = ({paginationProp, onPaginationChange}: Props) => {\n const [pagination, setPagination] = useState<PaginationState>(paginationProp);\n\n useEffect(() => {\n setPagination(paginationProp);\n }, [paginationProp]);\n\n useEffect(() => {\n onPaginationChange(pagination);\n }, [onPaginationChange, pagination]);\n\n const currentPage = pagination.pageIndex + 1;\n\n const setCurrentPage = useCallback((nextPage: number) => {\n setPagination(prevState => ({...prevState, pageIndex: nextPage - 1}));\n }, []);\n\n const setPageSize = useCallback((nextSize: number) => {\n setPagination(prevState => ({...prevState, pageSize: nextSize}));\n }, []);\n\n return {\n pagination,\n setPagination,\n currentPage,\n setCurrentPage,\n setPageSize,\n };\n};\n","import {useState, useEffect} from 'react';\nimport type {SortingState} from '@tanstack/react-table';\n\n// import type {ProcessingModes} from './types.ts';\n\nexport type Props = {\n sortingProp: SortingState;\n onSortingChange: (sortingState: SortingState) => void;\n // processingMode?: keyof typeof ProcessingModes;\n};\n\nexport const useSorting = ({sortingProp, onSortingChange}: Props) => {\n const [sorting, setSorting] = useState<SortingState>(sortingProp);\n\n useEffect(() => {\n setSorting(sortingProp);\n }, [sortingProp]);\n\n useEffect(() => {\n onSortingChange(sorting);\n }, [onSortingChange, sorting]);\n\n return {sorting, setSorting};\n};\n","import type {FC, ChangeEvent} from 'react';\nimport {useEffect} from 'react';\nimport {useCallback, useState} from 'react';\n\nimport {FormField, InputNumeric} from '@/lib';\n\nimport classes from './Dialog.module.css';\nimport type {ColumnFormatOptions, FilterValue} from './../types.ts';\n\nexport type Props = {\n value: FilterValue;\n onChange: (value: FilterValue) => void;\n cellProps?: ColumnFormatOptions;\n step?: number;\n};\n\nconst normalizeValue = (value: FilterValue) => {\n if (!Array.isArray(value)) {\n return ['', ''];\n } else {\n return value.map(filter => String(filter));\n }\n};\n\nconst valueToNumber = (value: string[]) => {\n return value.map(filter => Number(filter));\n};\n\nexport const NumberRangeField: FC<Props> = ({value: valueProp, onChange}) => {\n const [value, setValue] = useState(normalizeValue(valueProp));\n\n const [from, to] = value;\n\n const handleMinChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = [event.target.value, to];\n setValue(nextValue);\n },\n [to]\n );\n const handleMaxChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = [from, event.target.value];\n setValue(nextValue);\n },\n [from]\n );\n\n useEffect(() => {\n onChange(valueToNumber(value));\n }, [onChange, value]);\n return (\n <div className={classes.numberRange}>\n <FormField className={classes.numberField} label=\"From:\">\n <InputNumeric mode=\"floating\" value={from} onChange={handleMinChange} />\n </FormField>\n <FormField className={classes.numberField} label=\"To:\">\n <InputNumeric mode=\"floating\" value={to} onChange={handleMaxChange} />\n </FormField>\n </div>\n );\n};\n","import type {FC, ChangeEvent} from 'react';\nimport {useEffect} from 'react';\nimport {useCallback, useState} from 'react';\n\nimport {FormField, InputDate} from '@/lib';\n\nimport classes from './Dialog.module.css';\nimport type {ColumnFormatOptions, FilterValue, DateRangeFilterValue} from './../types.ts';\n\nexport type Props = {\n value: FilterValue;\n onChange: (value: FilterValue) => void;\n cellProps?: ColumnFormatOptions;\n};\n\nexport const DateRangeField: FC<Props> = ({value: valueProp, onChange}) => {\n const [value, setValue] = useState(valueProp as DateRangeFilterValue);\n\n useEffect(() => {\n setValue(valueProp as DateRangeFilterValue);\n }, [valueProp]);\n\n const [from, to] = value as DateRangeFilterValue;\n const handleMinChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = [event.target.value, to];\n setValue(nextValue);\n },\n [to]\n );\n const handleMaxChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = [from, event.target.value];\n setValue(nextValue);\n },\n [from]\n );\n\n useEffect(() => {\n onChange(value);\n }, [onChange, value]);\n return (\n <div className={classes.numberRange}>\n <FormField className={classes.numberField} label=\"From:\">\n <InputDate value={from ?? ''} onChange={handleMinChange} />\n </FormField>\n <FormField className={classes.numberField} label=\"To:\">\n <InputDate value={to || ''} onChange={handleMaxChange} />\n </FormField>\n </div>\n );\n};\n","import type {FC, ChangeEvent, InputHTMLAttributes} from 'react';\nimport {useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {FormField} from '@/lib/FormField';\nimport {InputText} from '@/lib/InputText';\n\nimport classes from './Dialog.module.css';\nimport type {FilterValue} from './../types.ts';\n\nexport type Props = {\n value: FilterValue;\n onChange: (value: FilterValue) => void;\n};\n\nexport const TextField: FC<Props> = ({value, onChange}) => {\n const handleFilterChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event.target.value);\n },\n [onChange]\n );\n return (\n <FormField className={classNames(classes.field, classes.valueField)} label=\"Filter value:\">\n <InputText\n value={value as InputHTMLAttributes<HTMLInputElement>['value']}\n onChange={handleFilterChange}\n />\n </FormField>\n );\n};\n","import type {ComponentProps, FC, ChangeEvent} from 'react';\nimport {useMemo, useState, useCallback, useEffect, memo} from 'react';\nimport type {ColumnFiltersState, Table} from '@tanstack/react-table';\n\nimport {Dialog, useDialogState} from '@/lib/Dialog';\nimport {FormField} from '@/lib/FormField';\nimport {Select} from '@/lib/Select';\nimport {IconFilter, IconFilterOff, IconColumns} from '@/internal/Icons';\n\nimport classes from './Dialog.module.css';\nimport type {TableRow, FilterValue} from './../types.ts';\nimport {ColumnTypes} from './../types.ts';\nimport {NumberRangeField} from './NumberRangeField.tsx';\nimport {DateRangeField} from './DateRangeField.tsx';\nimport {TextField} from './TextField.tsx';\n\nexport type FilterConfig = {filter: FilterValue | string; column?: string};\n\nexport type Props = {\n id: string;\n columnsList?: string[];\n onApplyFiler: (filter: FilterConfig) => void;\n columnFilters: ColumnFiltersState;\n tableContext: Table<TableRow>;\n};\n\nconst fieldMapping = {\n [ColumnTypes.text]: TextField,\n [ColumnTypes.currency]: NumberRangeField,\n [ColumnTypes.decimal]: NumberRangeField,\n [ColumnTypes.unit]: NumberRangeField,\n [ColumnTypes.percentage]: NumberRangeField,\n [ColumnTypes.select]: TextField,\n [ColumnTypes.date]: DateRangeField,\n};\n\nexport const FilterDialog: FC<Props> = memo(({id, onApplyFiler, columnFilters, tableContext}) => {\n const {dialogParams, closeDialog} = useDialogState(id);\n\n const columnsConfig = useMemo(\n () =>\n tableContext\n .getAllColumns()\n .map(column => {\n return {\n id: column.id,\n name: column.columnDef.meta?.name as string,\n type: column.columnDef.meta?.type as keyof typeof ColumnTypes,\n filterable: column?.getCanFilter(),\n };\n })\n .filter(({filterable}) => filterable),\n [tableContext]\n );\n\n const [selectedColumn, setSelectedColumn] = useState(\n dialogParams?.columnId as string | undefined\n );\n\n useEffect(() => {\n dialogParams?.columnId && setSelectedColumn(dialogParams?.columnId as string);\n }, [dialogParams?.columnId]);\n\n const handleColumnSelect = useCallback((event: ChangeEvent<HTMLSelectElement>) => {\n setSelectedColumn(event.target.value);\n }, []);\n\n const [selectedType, setSelectedType] = useState<keyof typeof ColumnTypes>(ColumnTypes.text);\n\n useEffect(() => {\n const nextType =\n columnsConfig.find(({id}) => id === selectedColumn)?.type ||\n (ColumnTypes.text as keyof typeof ColumnTypes);\n setSelectedType(nextType);\n }, [columnsConfig, selectedColumn, setSelectedType]);\n\n const FilterField = useMemo(\n () => selectedColumn && tableContext.getColumn(selectedColumn)?.columnDef.meta?.filterInput,\n [selectedColumn, tableContext]\n );\n\n const InputField = useMemo(\n () => FilterField || fieldMapping[selectedType],\n [FilterField, selectedType]\n );\n\n const tableFilterValue = useMemo(() => {\n const columnFilter = columnFilters.find(({id}) => id === selectedColumn);\n return columnFilter?.value !== undefined ? (columnFilter?.value as FilterValue) : '';\n }, [columnFilters, selectedColumn]);\n\n const [filterValue, setFilterValue] = useState(tableFilterValue);\n\n useEffect(() => {\n setFilterValue('');\n }, [selectedColumn]);\n\n const hasFilter = Array.isArray(filterValue)\n ? filterValue.every(value => Boolean(value))\n : Boolean(filterValue);\n\n useEffect(() => {\n setFilterValue(tableFilterValue);\n }, [tableFilterValue]);\n\n const handleFilterChange = useCallback((value: string | FilterValue) => {\n setFilterValue(value);\n }, []);\n\n const handleApplyFilter = useCallback(() => {\n onApplyFiler({column: selectedColumn, filter: filterValue});\n closeDialog();\n }, [closeDialog, filterValue, onApplyFiler, selectedColumn]);\n\n const handleResetFilter = useCallback(() => {\n onApplyFiler({column: selectedColumn, filter: ''});\n closeDialog();\n }, [closeDialog, onApplyFiler, selectedColumn]);\n\n const actions = useMemo<ComponentProps<typeof Dialog>['actions']>(\n () => [\n [\n {title: 'Reset filter', onClick: handleResetFilter, icon: IconFilterOff},\n {\n title: 'Apply filter',\n icon: IconFilter,\n onClick: handleApplyFilter,\n type: 'success' as const,\n disabled: !hasFilter,\n },\n ] as const,\n ],\n [handleApplyFilter, handleResetFilter, hasFilter]\n );\n\n const cellProps = useMemo(() => {\n return typeof selectedColumn === 'string'\n ? tableContext.getColumn(selectedColumn)?.columnDef.meta?.cellProps\n : {};\n }, [selectedColumn, tableContext]);\n\n return (\n <Dialog\n animation=\"scale-in\"\n showCloseButton={false}\n dialogTitle=\"Filter column\"\n id={id}\n className={classes.dialog}\n actions={actions}>\n <div className={classes.fieldset}>\n <FormField className={classes.field} label=\"Column:\">\n <Select\n prefix={IconColumns}\n value={selectedColumn}\n onChange={handleColumnSelect}>\n {columnsConfig.map(({id, name}) => (\n <option key={id} value={id}>\n {name}\n </option>\n ))}\n </Select>\n </FormField>\n {/* <FormField className={classes.field} label=\"Operator:\">\n <Select onChange={handleOperatorSelect}>\n <option value=\"includes\">Includes</option>\n <option value=\"equals\">Equals</option>\n </Select>\n </FormField>*/}\n <InputField\n value={filterValue}\n onChange={handleFilterChange}\n cellProps={cellProps}\n />\n </div>\n </Dialog>\n );\n});\n\nFilterDialog.displayName = 'FilterDialog';\n","import {useCallback, useEffect, useMemo, useState} from 'react';\nimport type {RowSelectionState, Updater} from '@tanstack/react-table';\n\nimport {ProcessingModes} from './../types.ts';\n\nexport type Props = {\n onRowSelect: (selectionState: RowSelectionState) => void;\n rowSelectionProp: RowSelectionState;\n processingMode: keyof typeof ProcessingModes;\n};\n\nexport const useRowSelection = ({rowSelectionProp, onRowSelect, processingMode}: Props) => {\n const isClient = processingMode === ProcessingModes.internal;\n const [rowSelection, setRowSelection] = useState<RowSelectionState>(rowSelectionProp);\n useEffect(() => {\n setRowSelection(rowSelectionProp);\n }, [rowSelectionProp]);\n\n useEffect(() => {\n onRowSelect(rowSelection);\n }, [onRowSelect, rowSelection]);\n\n const clearSelection = useCallback(() => {\n processingMode === ProcessingModes.internal && setRowSelection({});\n onRowSelect({});\n }, [onRowSelect, processingMode]);\n\n const handleRowSelection = useMemo(() => {\n if (isClient) {\n return setRowSelection;\n } else {\n return (updater: Updater<RowSelectionState>) => {\n if (typeof updater === 'function') {\n onRowSelect(updater(rowSelection) as RowSelectionState);\n } else {\n onRowSelect(updater);\n }\n };\n }\n }, [isClient, onRowSelect, rowSelection]);\n\n return {rowSelection, setRowSelection: handleRowSelection, clearSelection};\n};\n","export type Props = {\n tableHeightProp: number | 'full';\n};\n\nexport const useTableHeight = ({tableHeightProp}: Props) => {\n if (tableHeightProp === 'full') {\n return '100vh';\n } else {\n return `${tableHeightProp}px`;\n }\n};\n","import type {ComponentProps, FC} from 'react';\nimport {useMemo} from 'react';\n\nimport {Dialog, useDialogState} from '@/lib/Dialog';\nimport {NumberDecimal} from '@/lib/Number';\nimport {IconDelete, IconClose} from '@/internal/Icons';\n\nimport classes from './Dialog.module.css';\n\nexport type Props = {\n selectionAmount?: number;\n onDeleteConfirmation: () => void;\n id: string;\n};\n\nexport const DeleteDialog: FC<Props> = ({selectionAmount, onDeleteConfirmation, id}) => {\n const {closeDialog} = useDialogState(id);\n const actions = useMemo<ComponentProps<typeof Dialog>['actions']>(\n () =>\n [\n [\n {\n title: 'Cancel',\n type: 'default',\n icon: IconClose,\n onClick: () => {\n closeDialog();\n },\n },\n {\n title: 'Delete',\n type: 'danger',\n icon: IconDelete,\n onClick: () => {\n onDeleteConfirmation();\n closeDialog();\n },\n },\n ],\n ] as const,\n [closeDialog, onDeleteConfirmation]\n );\n return (\n <Dialog\n animation=\"scale-in\"\n id={id}\n className={classes.deleteDialog}\n actions={actions}\n showCloseButton={false}>\n Do you want to delete <NumberDecimal value={selectionAmount} /> row(s)?\n </Dialog>\n );\n};\n","import type {FC, ComponentProps, ChangeEvent} from 'react';\nimport {useCallback} from 'react';\n\nimport {InputNumber} from '@/lib';\n\nexport type Props = Omit<ComponentProps<typeof InputNumber>, 'onChange'> & {\n onChange: (value: string) => void;\n};\n\nexport const PercentageInput: FC<Props> = ({onChange = () => {}, value, ...restProps}) => {\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(String(Number(event.target.value) / 100));\n },\n [onChange]\n );\n return (\n <InputNumber\n {...restProps}\n onChange={handleChange}\n value={Number(value) * 100}\n step={0.01}\n />\n );\n};\n","import type {ComponentProps, FC, ChangeEvent, JSX} from 'react';\nimport {useMemo, useState, useCallback, useEffect, memo} from 'react';\nimport classNames from 'classnames';\n\nimport {Dialog, useDialogState} from '@/lib/Dialog';\nimport {FormField} from '@/lib/FormField';\nimport {InputText} from '@/lib/InputText';\nimport {InputNumeric} from '@/lib/InputNumeric';\nimport {InputDate} from '@/lib/InputDate';\nimport {Select} from '@/lib/Select';\nimport {IconEdit, IconClose, IconColumns} from '@/internal/Icons';\nimport {useBrowserLocale} from '@/internal/locale';\n\nimport classes from './Dialog.module.css';\nimport type {TableValue} from './../types.ts';\nimport {ColumnTypes} from './../types.ts';\nimport {PercentageInput} from './PercentageInput.tsx';\n\nexport type ColumnsConfig = {\n id: string;\n name: string;\n type: keyof typeof ColumnTypes;\n};\n\nexport type Props = {\n id: string;\n columnsConfig?: ColumnsConfig[];\n onEdit: (columnId: string, value: TableValue) => void;\n selectionAmount?: number;\n};\n\nconst withValueMapping = <TProps extends JSX.IntrinsicAttributes>(Component: FC<TProps>) => {\n const Wrapped: FC<\n Omit<ComponentProps<typeof Component>, 'onChange'> & {onChange?: (value: string) => void}\n > = ({onChange = () => {}, ...restProps}) => {\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event.target?.value);\n },\n [onChange]\n );\n return <Component {...(restProps as TProps)} mode=\"floating\" onChange={handleChange} />;\n };\n\n Wrapped.displayName = Component.displayName;\n\n return Wrapped;\n};\n\nconst valueInputMapping = {\n [ColumnTypes.text]: withValueMapping(InputText),\n [ColumnTypes.currency]: withValueMapping(InputNumeric),\n [ColumnTypes.decimal]: withValueMapping(InputNumeric),\n [ColumnTypes.unit]: withValueMapping(InputNumeric),\n [ColumnTypes.percentage]: PercentageInput,\n [ColumnTypes.select]: withValueMapping(InputText),\n [ColumnTypes.date]: withValueMapping(InputDate),\n};\n\nexport const EditDialog: FC<Props> = memo(({id, columnsConfig = [], selectionAmount, onEdit}) => {\n const {dialogParams, closeDialog} = useDialogState(id);\n\n const [selectedColumn, setSelectedColumn] = useState(columnsConfig[0].id);\n\n useEffect(() => {\n dialogParams?.columnId && setSelectedColumn(dialogParams?.columnId as string);\n }, [dialogParams?.columnId]);\n\n const handleColumnSelect = useCallback((event: ChangeEvent<HTMLSelectElement>) => {\n setSelectedColumn(event.target.value);\n }, []);\n\n const [selectedType, setSelectedType] = useState<keyof typeof ColumnTypes>(ColumnTypes.text);\n\n useEffect(() => {\n const nextType =\n columnsConfig.find(({id}) => id === selectedColumn)?.type ||\n (ColumnTypes.text as keyof typeof ColumnTypes);\n setSelectedType(nextType);\n }, [columnsConfig, selectedColumn, setSelectedType]);\n\n const Input = useMemo(() => valueInputMapping[selectedType], [selectedType]);\n\n const [selectionValue, setSelectionValue] = useState('');\n\n useEffect(() => {\n setSelectionValue('');\n }, [selectedColumn]);\n\n const handleEdit = useCallback(() => {\n onEdit(selectedColumn || columnsConfig[0].id, selectionValue);\n closeDialog();\n }, [closeDialog, columnsConfig, onEdit, selectedColumn, selectionValue]);\n\n const handleReset = useCallback(() => {\n closeDialog();\n }, [closeDialog]);\n\n const actions = useMemo<ComponentProps<typeof Dialog>['actions']>(\n () => [\n [\n {title: 'Cancel', onClick: handleReset, icon: IconClose},\n {\n title: 'Apply change',\n icon: IconEdit,\n onClick: handleEdit,\n type: 'link' as const,\n },\n ] as const,\n ],\n [handleEdit, handleReset]\n );\n\n const userLocale = useBrowserLocale();\n\n const amountFormatted = new Intl.NumberFormat(userLocale, {\n style: 'decimal',\n }).format(selectionAmount || 0);\n\n return (\n <Dialog\n animation=\"scale-in\"\n showCloseButton={false}\n dialogTitle={`Edit ${amountFormatted} row(s)`}\n id={id}\n className={classes.dialog}\n actions={actions}>\n <div className={classes.fieldset}>\n <FormField className={classes.field} label=\"Column:\">\n <Select\n prefix={IconColumns}\n value={selectedColumn}\n onChange={handleColumnSelect}>\n {columnsConfig.map(({id, name}) => (\n <option key={id} value={id}>\n {name}\n </option>\n ))}\n </Select>\n </FormField>\n <FormField\n className={classNames(classes.field, classes.valueField)}\n label=\"New value:\">\n <Input value={selectionValue} onChange={setSelectionValue} />\n </FormField>\n </div>\n </Dialog>\n );\n});\n\nEditDialog.displayName = 'EditDialog';\n","import type {FC} from 'react';\n\nimport {Button, NumberDecimal, Strong} from '@/lib';\nimport {IconClear, IconDelete, IconEdit} from '@/internal/Icons';\n\nimport classes from './DataTable.module.css';\n\nexport type Props = {\n onClear: () => void;\n onDeleteRequest: () => void;\n onEditRequest: () => void;\n selectedRows: number;\n totalRows: number;\n};\n\nexport const SelectableActions: FC<Props> = ({\n onClear,\n selectedRows,\n onDeleteRequest,\n onEditRequest,\n totalRows,\n}) => {\n const disabled = selectedRows === 0;\n return (\n <div className={classes.rowSelection}>\n <div className={classes.rowSelectionActions}>\n <Button\n className={classes.rowSelectionButton}\n prefix={IconClear}\n size=\"small\"\n variant=\"alternative\"\n onClick={onClear}\n disabled={disabled}>\n Clear selection\n </Button>\n <Button\n className={classes.rowSelectionButton}\n onClick={onDeleteRequest}\n size=\"small\"\n variant=\"alternative\"\n prefix={IconDelete}\n disabled={disabled}>\n Delete row(s)\n </Button>\n <Button\n className={classes.rowSelectionButton}\n onClick={onEditRequest}\n size=\"small\"\n variant=\"alternative\"\n prefix={IconEdit}\n disabled={disabled}>\n Edit row(s)\n </Button>\n </div>\n <div className={classes.rowSelectionText}>\n <Strong>\n <NumberDecimal value={selectedRows} />\n </Strong>{' '}\n of{' '}\n <Strong>\n <NumberDecimal value={totalRows} />\n </Strong>{' '}\n rows selected\n </div>\n </div>\n );\n};\n","/**\n * Naive implementation of a lodash set.\n * Mutates provided object.\n */\nexport const set = <TObject>(\n obj: TObject,\n path: string | string[],\n value: string | number\n): TObject => {\n if (Object(obj) !== obj) return obj; // When obj is not an object,\n // If not yet an array, get the keys from the string-path\n if (!Array.isArray(path)) path = path.toString().match(/[^.[\\]]+/g) || [];\n // @ts-expect-error TODO: improve types\n (path as string[]).slice(0, -1).reduce(\n (\n a,\n c,\n i // Iterate all of them except the last one\n ) =>\n // @ts-expect-error TODO: improve types\n Object(a[c]) === a[c] // Does the key exist and is its value an object?\n ? // Yes: then follow that path\n // @ts-expect-error TODO: improve types\n a[c]\n : // No: create the key. Is the next key a potential array-index?\n // @ts-expect-error TODO: improve types\n (a[c] =\n // @ts-expect-error TODO: improve types\n Math.abs(path[i + 1]) >> 0 === +path[i + 1]\n ? [] // Yes: assign a new array object\n : {}), // No: assign a new plain object\n obj\n )[path[path.length - 1]] = value; // Finally, assign the value to the last key\n return obj; // Return the top-level object to allow chaining\n};\n","import type {SetStateAction} from 'react';\nimport {useCallback, useMemo} from 'react';\nimport type {RowSelectionState, Table} from '@tanstack/react-table';\n\nimport {useDialogState} from '@/lib';\nimport {set} from '@/internal/utils/set.ts';\n\nimport type {TableData, TableRow, TableValue, EditState} from './../types.ts';\nimport {ProcessingModes} from './../types.ts';\n\nexport type Props = {\n rowSelection: RowSelectionState;\n table: Table<TableRow>;\n tableData: TableData;\n processingMode: keyof typeof ProcessingModes;\n setTableData: (value: SetStateAction<TableRow[]>) => void;\n onEdit: (editState: EditState) => void;\n clearSelection: () => void;\n};\n\nexport const useEdit = ({\n rowSelection,\n table,\n tableData,\n processingMode,\n setTableData,\n onEdit,\n clearSelection,\n}: Props) => {\n const {openDialog: showDeleteConfirmation} = useDialogState(\n table.options.meta?.deleteModalId as string\n );\n const {openDialog: showEditDialog} = useDialogState(table.options.meta?.editModalId as string);\n\n const handleDeleteRequest = useCallback(() => {\n showDeleteConfirmation();\n }, [showDeleteConfirmation]);\n\n const handleEditRequest = useCallback(() => {\n showEditDialog({selectionAmount: Object.keys(rowSelection).length});\n }, [rowSelection, showEditDialog]);\n\n const selectedRows = useMemo(\n () => Object.keys(rowSelection).map(rowIndex => Number(rowIndex)),\n [rowSelection]\n );\n\n const editRows = useCallback(\n (tableData: TableData, editedRows: number[], columnId: string, value: TableValue) => {\n // needs to be a copy to preserve immutability\n const result: TableData = [...tableData];\n editedRows.forEach(rowIndex => {\n // TODO: remove\n const path = table.getColumn(columnId)?.columnDef.meta?.accessorKey as string;\n set(result[rowIndex], path, value);\n });\n return result;\n },\n [table]\n );\n\n const handleEdit = useCallback(\n (columnId: string, value: string | number) => {\n const nextTableData = editRows(tableData, selectedRows, columnId, value);\n const editState: EditState = Object.fromEntries(\n selectedRows.map(rowIndex => [rowIndex, nextTableData[rowIndex]])\n );\n processingMode === ProcessingModes.internal && setTableData(nextTableData);\n onEdit(editState);\n\n clearSelection();\n },\n [clearSelection, editRows, onEdit, processingMode, selectedRows, setTableData, tableData]\n );\n\n const deleteRows = useCallback((tableData: TableData, deletedRows: Set<number>) => {\n return tableData.filter((_, i) => !deletedRows.has(i));\n }, []);\n\n const handleDelete = useCallback(() => {\n const nextTableData = deleteRows(tableData, new Set(selectedRows));\n processingMode === ProcessingModes.internal && setTableData(nextTableData);\n onEdit({});\n\n clearSelection();\n }, [deleteRows, tableData, selectedRows, processingMode, setTableData, onEdit, clearSelection]);\n\n return {handleDeleteRequest, handleDelete, handleEdit, handleEditRequest};\n};\n","import type {ComponentProps, FC, ReactNode} from 'react';\nimport {useCallback, useState, useMemo} from 'react';\n\nimport {\n IconEllipsisVertical,\n IconPinRight,\n IconPinLeft,\n IconUnPin,\n IconFilter,\n IconSortAsc,\n IconSortDesc,\n IconSortOff,\n} from '@/internal/Icons';\nimport {MenuActions} from '@/lib/Menu';\nimport {useDialogState} from '@/lib/Dialog';\n\nimport type {HeaderCell} from './../types.ts';\nimport classes from './Cells.module.css';\n\nexport type Props = ComponentProps<HeaderCell> & {\n children?: ReactNode;\n};\n\nexport const ColumnHeaderCell: FC<Props> = ({title, headerContext}) => {\n const [isOpen, setOpen] = useState(false);\n const handleClick = useCallback(() => {\n setOpen(!isOpen);\n }, [isOpen]);\n const handleToggle = useCallback(\n (openState: boolean) => {\n setOpen(openState);\n },\n [setOpen]\n );\n const isPinned = headerContext.column.getIsPinned();\n\n const isSorted = headerContext.column.getIsSorted();\n\n const hasFilter = headerContext.column.getIsFiltered();\n\n const {openDialog} = useDialogState(headerContext.table.options.meta?.filterModalId as string);\n\n const actions = useMemo(\n () => [\n {\n title: hasFilter ? 'Edit filter' : 'Filter column',\n icon: IconFilter,\n onClick: () => {\n openDialog({columnId: headerContext.column.id});\n setOpen(false);\n },\n },\n {\n title: isSorted !== 'asc' ? 'Sort ascending' : 'Clear ascending',\n icon: isSorted !== 'asc' ? IconSortAsc : IconSortOff,\n onClick: () => {\n isSorted !== 'asc' &&\n headerContext.table.setSorting([\n {desc: false, id: headerContext.column.id},\n ]);\n isSorted === 'asc' && headerContext.column.clearSorting();\n setOpen(false);\n },\n },\n {\n title: isSorted !== 'desc' ? 'Sort descending' : 'Clear descending',\n icon: isSorted !== 'desc' ? IconSortDesc : IconSortOff,\n onClick: () => {\n isSorted !== 'desc' &&\n headerContext.table.setSorting([{desc: true, id: headerContext.column.id}]);\n isSorted === 'desc' && headerContext.column.clearSorting();\n setOpen(false);\n },\n },\n {\n title: isPinned !== 'left' ? 'Pin left' : 'Unpin left',\n icon: isPinned !== 'left' ? IconPinLeft : IconUnPin,\n onClick: () => {\n setOpen(false);\n if (isPinned !== 'left') {\n headerContext.column.pin('left');\n } else {\n headerContext.column.pin(false);\n }\n },\n },\n {\n title: isPinned !== 'right' ? 'Pin right' : 'Unpin right',\n icon: isPinned !== 'right' ? IconPinRight : IconUnPin,\n onClick: () => {\n setOpen(false);\n if (isPinned !== 'right') {\n headerContext.column.pin('right');\n } else {\n headerContext.column.pin(false);\n }\n },\n },\n ],\n [hasFilter, headerContext.column, headerContext.table, isPinned, isSorted, openDialog]\n );\n return (\n <div className={classes.headerCell}>\n <div className={classes.columnTitle}>{title}</div>\n\n <div className={classes.columnActions}>\n <MenuActions\n allowedPlacements={['bottom', 'bottom-end', 'bottom-start']}\n variant=\"plain\"\n actions={actions}\n isOpen={isOpen}\n onToggle={handleToggle}>\n <button className={classes.actionsButton} onClick={handleClick}>\n <IconEllipsisVertical className={classes.actionsIcon} />\n </button>\n </MenuActions>\n </div>\n </div>\n );\n};\n","import type {ComponentProps, FC} from 'react';\nimport {useCallback} from 'react';\n\nimport {IconFilterOff, IconUnPin, IconSortOff} from '@/internal/Icons';\n\nimport type {FooterCell} from './../types.ts';\nimport classes from './Cells.module.css';\n\nexport type Props = ComponentProps<FooterCell>;\n\nexport const ColumnFooterCell: FC<Props> = ({cellContext}) => {\n const isFiltered = cellContext.column.getIsFiltered();\n const isSorted = Boolean(cellContext.column.getIsSorted());\n const isPinned = Boolean(cellContext.column.getIsPinned());\n\n const handleResetFilter = useCallback(() => {\n cellContext.column.setFilterValue('');\n }, [cellContext]);\n\n const handleResetSorting = useCallback(() => {\n cellContext.column.clearSorting();\n }, [cellContext]);\n\n const handleUnPin = useCallback(() => {\n cellContext.column.pin(false);\n }, [cellContext]);\n\n return (\n <div className={classes.footerCell}>\n {isFiltered && (\n <button\n className={classes.footerButton}\n title=\"Reset filter\"\n onClick={handleResetFilter}>\n <IconFilterOff className={classes.footerIcon} />\n </button>\n )}\n {isSorted && (\n <button\n className={classes.footerButton}\n title=\"Reset sorting\"\n onClick={handleResetSorting}>\n <IconSortOff className={classes.footerIcon} />\n </button>\n )}\n {isPinned && (\n <button className={classes.footerButton} title=\"Unpin column\" onClick={handleUnPin}>\n <IconUnPin className={classes.footerIcon} />\n </button>\n )}\n </div>\n );\n};\n","import type {ComponentProps, FC} from 'react';\n\nimport classes from './Cells.module.css';\nimport type {CellComponent} from './../types.ts';\n\nexport type Props = ComponentProps<CellComponent>;\n\nexport const ViewTextCell: FC<Props> = ({value}) => {\n return (\n <div title={String(value)} className={classes.viewTextCell}>\n {value}\n </div>\n );\n};\n","import type {ComponentProps, FC} from 'react';\n\nimport {NumberDecimal} from '@/lib/Number';\nimport type {Locale} from '@/internal/locale';\n\nimport classes from './Cells.module.css';\nimport type {CellComponent} from './../types.ts';\n\nexport type Props = ComponentProps<CellComponent>;\n\nexport const ViewDecimalCell: FC<Props> = ({value, cellContext, ...restProps}) => {\n const locale = cellContext.table.options.meta?.locale as Locale;\n return (\n <div className={classes.viewNumberCell}>\n <NumberDecimal {...restProps} locale={locale} value={Number(value)} />\n </div>\n );\n};\n","import type {FC, ComponentProps} from 'react';\n\nimport type {UnitDisplayModes} from '@/lib/Number';\nimport {NumberUnit} from '@/lib/Number';\nimport type {Locale, Units} from '@/internal/locale';\n\nimport classes from './Cells.module.css';\nimport type {CellComponent} from './../types.ts';\n\nexport type Props = ComponentProps<CellComponent> & {\n unit?: keyof typeof Units;\n unitDisplay?: keyof typeof UnitDisplayModes;\n};\n\nexport const ViewUnitCell: FC<Props> = ({value, cellContext, unit, ...restProps}) => {\n const locale = cellContext.table.options.meta?.locale as Locale;\n return (\n <div className={classes.viewNumberCell}>\n <NumberUnit {...restProps} unit={unit} locale={locale} value={Number(value)} />\n </div>\n );\n};\n","import type {ComponentProps, FC} from 'react';\n\nimport {DateTime} from '@/lib/DateTime';\nimport type {Locale} from '@/internal/locale';\n\nimport classes from './Cells.module.css';\nimport type {CellComponent} from './../types.ts';\n\nexport type Props = ComponentProps<CellComponent>;\n\nexport const ViewDateCell: FC<Props> = ({value, cellContext, ...restProps}) => {\n const locale = cellContext.table.options.meta?.locale as Locale;\n return (\n <div className={classes.viewDateCell}>\n <DateTime {...restProps} value={String(value)} locale={locale} />\n </div>\n );\n};\n","import type {ComponentProps, FC} from 'react';\n\nimport type {CurrencyCodes, Locale} from '@/internal/locale';\nimport {NumberCurrency} from '@/lib/Number';\n\nimport classes from './Cells.module.css';\nimport type {CellComponent} from './../types.ts';\n\nexport type Props = ComponentProps<CellComponent> & {\n currency?: keyof typeof CurrencyCodes;\n};\n\nexport const ViewCurrencyCell: FC<Props> = ({\n value,\n currency = 'EUR',\n cellContext,\n ...restProps\n}) => {\n const locale = cellContext.table.options.meta?.locale as Locale;\n return (\n <div className={classes.viewNumberCell}>\n <NumberCurrency\n {...restProps}\n locale={locale}\n currency={currency}\n value={Number(value)}\n />\n </div>\n );\n};\n","import type {ComponentProps, FC} from 'react';\n\nimport type {NumberProps} from '@/lib/Number';\nimport {NumberPercent} from '@/lib/Number';\nimport type {Locale} from '@/internal/locale';\n\nimport type {CellComponent} from './../types.ts';\nimport classes from './Cells.module.css';\n\nexport type Props = ComponentProps<CellComponent> &\n Omit<NumberProps, 'notation' | 'compactDisplay' | 'value' | 'locale'>;\n\nexport const ViewPercentageCell: FC<Props> = ({value, cellContext, ...restProps}) => {\n const locale = cellContext.table.options.meta?.locale as Locale;\n return (\n <div className={classes.viewNumberCell}>\n <NumberPercent {...restProps} locale={locale} value={Number(value)} />\n </div>\n );\n};\n","import type {DisplayColumnDef, AccessorColumnDef, FilterFnOption} from '@tanstack/react-table';\nimport type {FC} from 'react';\nimport {type ComponentProps, useEffect, useMemo, useState} from 'react';\n\nimport {CellWrapper} from './../cells/CellWrapper.tsx';\nimport {ColumnHeaderCell} from './../cells/ColumnHeaderCell.tsx';\nimport {ColumnFooterCell} from './../cells/ColumnFooterCell.tsx';\nimport {ColumnTypes, CustomFilterFns, FilterModes, SortingModes} from './../types.ts';\nimport type {Column, TableRow, TableValue, TableData} from './../types.ts';\nimport {rowSelection} from './../columns/rowSelection.tsx';\nimport {ViewTextCell} from './../cells/ViewTextCell.tsx';\nimport {ViewDecimalCell} from './../cells/ViewDecimalCell.tsx';\nimport {ViewUnitCell} from './../cells/ViewUnitCell.tsx';\nimport {ViewDateCell} from './../cells/ViewDateCell.tsx';\nimport {ViewCurrencyCell} from './../cells/ViewCurrencyCell.tsx';\nimport {ViewPercentageCell} from './../cells/ViewPercentageCell.tsx';\nimport type {EditDialog} from './../dialogs/EditDialog.tsx';\n\nconst normalizeValue = (value: TableRow | TableValue): TableValue => {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n return value?.toString();\n};\n\nconst cellMapping = {\n [ColumnTypes.text]: ViewTextCell,\n [ColumnTypes.unit]: ViewUnitCell,\n [ColumnTypes.date]: ViewDateCell,\n [ColumnTypes.decimal]: ViewDecimalCell,\n [ColumnTypes.currency]: ViewCurrencyCell,\n [ColumnTypes.percentage]: ViewPercentageCell,\n [ColumnTypes.select]: undefined,\n};\n\nconst sortMapping = {\n [ColumnTypes.text]: SortingModes.text,\n [ColumnTypes.decimal]: SortingModes.basic,\n [ColumnTypes.currency]: SortingModes.basic,\n [ColumnTypes.percentage]: SortingModes.basic,\n [ColumnTypes.unit]: SortingModes.basic,\n [ColumnTypes.date]: SortingModes.basic,\n [ColumnTypes.select]: undefined,\n};\n\nconst normalizeSortingFn = (\n columnType: keyof typeof ColumnTypes,\n sortingFnProp?: Column['sortingFn']\n) => {\n if (sortingFnProp !== undefined) {\n return sortingFnProp;\n }\n\n return sortMapping[columnType];\n};\n\nconst filterMapping = {\n [ColumnTypes.text]: FilterModes.includesString,\n [ColumnTypes.decimal]: FilterModes.inNumberRange,\n [ColumnTypes.currency]: FilterModes.inNumberRange,\n [ColumnTypes.percentage]: CustomFilterFns.isInPercentRange,\n [ColumnTypes.unit]: FilterModes.inNumberRange,\n [ColumnTypes.date]: CustomFilterFns.isInDateRange,\n [ColumnTypes.select]: undefined,\n};\n\nconst normalizeFilterFn = (\n columnType: keyof typeof ColumnTypes,\n filterFnProp?: FilterFnOption<TableData> | keyof typeof CustomFilterFns\n) => {\n if (filterFnProp !== undefined) {\n return filterFnProp;\n }\n\n return filterMapping[columnType];\n};\n\nexport type Props = {\n columnsProp: Column[];\n selectable?: boolean;\n};\n\nconst normalizeProp = <TColumn,>(hasSelectableColumn: boolean, columns: TColumn[]) => {\n return hasSelectableColumn ? [rowSelection, ...columns] : columns;\n};\n\nexport const useTableColumns = ({columnsProp = [], selectable}: Props) => {\n const initialColumns = useMemo(() => {\n return normalizeProp(Boolean(selectable), [\n ...columnsProp.map(\n ({\n id,\n size = 166,\n name,\n accessorKey,\n accessorFn,\n editable = true,\n filterable = true,\n sortable = true,\n pinnable = true,\n columnCell,\n sortingFn: sortingFnProp,\n cellProps = {},\n columnType = ColumnTypes.text,\n filterFn: filterFnProp,\n headerCell,\n footerCell,\n filterInput,\n }) => {\n const CellComponent =\n columnCell !== undefined ? columnCell : (cellMapping[columnType] as FC);\n const HeaderComponent =\n headerCell !== undefined ? headerCell : ColumnHeaderCell;\n const FooterComponent =\n footerCell !== undefined ? footerCell : ColumnFooterCell;\n\n return {\n meta: {\n type: columnType,\n editable,\n // TODO: replace with columnProp\n accessorKey,\n cellProps,\n name,\n filterInput,\n },\n ...(accessorKey && {accessorKey}),\n ...(accessorFn && {accessorFn}),\n id,\n sortingFn: normalizeSortingFn(columnType, sortingFnProp),\n filterFn: normalizeFilterFn(columnType, filterFnProp),\n size,\n enableColumnFilter: filterable,\n enableSorting: sortable,\n enablePinning: pinnable,\n // disabled tanstack features.\n enableMultiSort: false,\n enableGrouping: false,\n enableResizing: false,\n enableGlobalFilter: false,\n enableHiding: false,\n header: props => {\n return (\n <CellWrapper columnWidth={size}>\n <HeaderComponent headerContext={props} title={name} />\n </CellWrapper>\n );\n },\n cell: props => {\n const value = normalizeValue(props.getValue());\n return (\n <CellWrapper columnWidth={size}>\n <CellComponent\n {...cellProps}\n cellContext={props}\n value={value}\n />\n </CellWrapper>\n );\n },\n footer: props => (\n <CellWrapper columnWidth={size}>\n <FooterComponent cellContext={props} />\n </CellWrapper>\n ),\n } as\n | DisplayColumnDef<TableData, TableRow | TableValue>\n | AccessorColumnDef<TableData, TableRow | TableValue>;\n }\n ),\n ]);\n }, [columnsProp, selectable]);\n\n const [columns, setColumns] = useState(initialColumns);\n\n useEffect(() => {\n setColumns(initialColumns);\n }, [initialColumns]);\n\n const editableColumns = useMemo(\n () =>\n columnsProp\n .map(({id, name, columnType, editable = true}) => ({\n id,\n name,\n type: columnType,\n editable,\n }))\n .filter(({editable}) => editable) as ComponentProps<\n typeof EditDialog\n >['columnsConfig'],\n [columnsProp]\n );\n\n return {columns, setColumns, editableColumns};\n};\n","import type {FilterFn} from '@tanstack/react-table';\n\nimport type {TableData} from './types.ts';\n\nexport const isInDateRange: FilterFn<TableData> = (row, columnId, [from, to]: Date[]) => {\n const cellDate = new Date(row.getValue(columnId));\n return cellDate.getTime() >= from.getTime() && cellDate.getTime() <= to.getTime();\n};\n\nisInDateRange.resolveFilterValue = ([from, to]) => {\n return [new Date(from), new Date(to)];\n};\n\nexport const isInPercentRange: FilterFn<TableData> = (row, columnId, [from, to]: number[]) => {\n const cellValue = (row.getValue(columnId) as number) * 100;\n return cellValue >= from && cellValue <= to;\n};\n","import type {ReactNode} from 'react';\nimport {forwardRef, Fragment, useCallback, useMemo, useRef} from 'react';\nimport classNames from 'classnames';\nimport type {\n ColumnPinningState,\n PaginationState,\n SortingState,\n ColumnFiltersState,\n RowSelectionState,\n ColumnDef,\n} from '@tanstack/react-table';\nimport {\n flexRender,\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n getFilteredRowModel,\n} from '@tanstack/react-table';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {useResizeObserver} from '@/internal/hooks/useResizeObserverNew.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport type {Locale} from '@/internal/locale';\nimport {I, Table, Button} from '@/lib';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {IconFilterOff} from '@/internal/Icons';\n\nimport {useColumnFilters} from './tableFeatures/useColumnFilters.ts';\nimport classes from './DataTable.module.css';\nimport type {EditState, TableData, TableRow, Column} from './types.ts';\nimport {ProcessingModes, RenderModes} from './types.ts';\n// import {columns} from './columns.tsx';\nimport {useColumnPinning} from './tableFeatures/useColumnPinning.ts';\nimport {TableCell} from './TableCell.tsx';\nimport {useVirtualRows} from './tableFeatures/useVirtualRows.ts';\nimport {useTableData} from './tableFeatures/useTableData.ts';\nimport {Pagination} from './Pagination.tsx';\nimport {usePagination} from './tableFeatures/usePagination.ts';\nimport {useSorting} from './tableFeatures/useSorting.ts';\nimport type {FilterConfig} from './dialogs/FilterDialog.tsx';\nimport {FilterDialog} from './dialogs/FilterDialog.tsx';\nimport {useRowSelection} from './tableFeatures/useRowSelection.ts';\nimport {useTableHeight} from './tableFeatures/useTableHeight.ts';\nimport {DeleteDialog} from './dialogs/DeleteDialog.tsx';\nimport {EditDialog} from './dialogs/EditDialog.tsx';\nimport {SelectableActions} from './SelectableActions.tsx';\nimport {useEdit} from './tableFeatures/useEdit.ts';\nimport {useTableColumns} from './tableFeatures/useTableColumns.tsx';\nimport {isInDateRange, isInPercentRange} from './filterFns.ts';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /**\n * Provide table columns configuration\n * @see Column\n */\n columns: Column[];\n /**\n * Provide data for the table\n * @see TableData\n */\n tableData: TableData;\n /**\n * Provide a callback to capture table data changes\n * @see EditState\n */\n onEdit?: (editState: EditState) => void;\n /**\n * Control column pinning state externally\n * @see ColumnPinningState\n */\n columnPinning?: ColumnPinningState;\n /**\n * Control pagination state externally\n * @see PaginationState\n */\n pagination?: PaginationState;\n /**\n * Provide a callback to capture pagination changes\n * @see PaginationState\n */\n onPaginationChange?: (paginationState: PaginationState) => void;\n /**\n * Manage column filters externally\n * @see ColumnFiltersState\n */\n columnFilters?: ColumnFiltersState;\n /**\n * Provide a callback to capture column filters changes\n * @see ColumnFiltersState\n */\n onFiltersChange?: (filterState: ColumnFiltersState) => void;\n /**\n * Manage row selection externally\n * @see RowSelectionState\n */\n rowSelection?: RowSelectionState;\n /**\n * Provide a callback to capture row selection changes\n * @see RowSelectionState\n */\n onRowSelect?: (selectionState: RowSelectionState) => void;\n /**\n * Control table data sorting externally\n * @see SortingState\n */\n sorting?: SortingState;\n /**\n * Provide a callback to capture table data sorting changes\n * @see SortingState\n */\n onSortingChange?: (sortingState: SortingState) => void;\n /**\n * Configure how table data is processed inside or outside the component\n * @see ProcessingModes\n */\n processingMode?: keyof typeof ProcessingModes;\n /**\n * Select which type of table to render\n * @see RenderModes\n */\n renderMode?: keyof typeof RenderModes;\n /**\n * Set a controlled page count number for pagination. Required for renderMode=\"paginated-controlled\"\n * @see https://morewings.github.io/koval-ui/?path=/story/components-datatable--paginated-controlled&args=tableData:rows100\n */\n pageCount?: number;\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers.\n * Used to format dates, numbers, and units.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#locales\n * @see Locale\n */\n locale?: Locale;\n /**\n * Enable column selection\n */\n selectable?: boolean;\n /**\n * Set a height constrain to the data table. 'full' sets to 100% of viewport height\n */\n tableHeight?: number | 'full';\n /**\n * Set a caption text to render below the table\n */\n caption?: string;\n };\n\nconst CELL_HEIGHT = 42;\n\nconst OVERSCAN = 6;\n\nconst defaultPages = {\n pageIndex: 0,\n pageSize: 10,\n};\n\nconst defaultSorting: SortingState = [];\n\nconst defaultFilters: ColumnFiltersState = [];\n\nconst defaultSelection: RowSelectionState = {};\n\nexport const DataTable = forwardRef<HTMLTableElement, Props>(\n (\n {\n children,\n className,\n tableData: tableDataProp = [],\n columnPinning: columnPinningProp,\n renderMode = RenderModes.virtual,\n pagination: paginationProp = defaultPages,\n onPaginationChange = () => {},\n onSortingChange = () => {},\n onFiltersChange = () => {},\n onRowSelect = () => {},\n onEdit = () => {},\n rowSelection: rowSelectionProp = defaultSelection,\n pageCount,\n sorting: sortingProp = defaultSorting,\n processingMode = ProcessingModes.internal,\n columnFilters: columnFiltersProp = defaultFilters,\n locale: localeProp,\n selectable = false,\n tableHeight: tableHeightProp = 'full',\n caption,\n columns: columnsProp = [],\n id: idProp,\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n\n const {tableData, setTableData} = useTableData(tableDataProp);\n\n const tableRef = useInternalRef(ref);\n\n const wrapperRef = useRef(null);\n\n const {height: tableHeight} = useResizeObserver(tableRef);\n\n const {LocalRoot} = useLocalTheme();\n\n const maxHeight = useTableHeight({tableHeightProp});\n\n const theme = useMemo(\n () => ({\n 'table-height': tableHeight,\n 'cell-height': CELL_HEIGHT,\n 'max-height': maxHeight,\n }),\n [maxHeight, tableHeight]\n );\n\n const {columnPinning, setColumnPinning} = useColumnPinning({\n columnPinningProp,\n hasSelectableColumn: selectable,\n });\n\n const {pagination, setPagination, currentPage, setCurrentPage, setPageSize} = usePagination(\n {tableData, paginationProp, onPaginationChange}\n );\n\n const {sorting, setSorting} = useSorting({sortingProp, onSortingChange});\n\n const {columnFilters, setColumnFilters} = useColumnFilters({\n columnFiltersProp,\n onFiltersChange,\n });\n\n const browserLocale = useBrowserLocale();\n\n const {rowSelection, setRowSelection, clearSelection} = useRowSelection({\n rowSelectionProp,\n onRowSelect,\n processingMode,\n });\n\n const {columns, editableColumns} = useTableColumns({\n columnsProp,\n selectable,\n });\n\n const table = useReactTable({\n meta: {\n locale: localeProp || browserLocale,\n editModalId: `edit-modal-${id}`,\n filterModalId: `filter-modal-${id}`,\n deleteModalId: `delete-modal-${id}`,\n },\n data: tableData,\n columns: columns as ColumnDef<TableRow>[],\n getCoreRowModel: getCoreRowModel(),\n onColumnPinningChange: setColumnPinning,\n getPaginationRowModel:\n renderMode === RenderModes.paginated ? getPaginationRowModel() : undefined,\n onPaginationChange: renderMode === RenderModes.paginated ? setPagination : undefined,\n state: {\n pagination: renderMode === RenderModes.paginated ? pagination : undefined,\n columnPinning,\n sorting,\n columnFilters,\n rowSelection,\n },\n manualPagination: processingMode === ProcessingModes.external,\n pageCount: processingMode === ProcessingModes.external ? pageCount : undefined,\n getSortedRowModel: getSortedRowModel(),\n onSortingChange: setSorting,\n // Disabled until proper implementation\n enableMultiSort: false,\n manualSorting: processingMode === ProcessingModes.external,\n getFilteredRowModel: getFilteredRowModel(),\n onColumnFiltersChange: setColumnFilters,\n manualFiltering: processingMode === ProcessingModes.external,\n enableRowSelection: true,\n onRowSelectionChange: setRowSelection,\n filterFns: {\n isInDateRange,\n isInPercentRange,\n },\n });\n\n const {rows} = table.getRowModel();\n\n const {before, after, virtualRows} = useVirtualRows({\n rowsCount: rows.length,\n scrollRef: wrapperRef,\n overscan: OVERSCAN,\n cellHeight: CELL_HEIGHT,\n });\n\n const handleSetFilter = useCallback(\n ({filter, column}: FilterConfig) => {\n table.getColumn(column!)?.setFilterValue(filter);\n },\n [table]\n );\n\n const handleResetFilters = useCallback(() => {\n table.resetColumnFilters();\n }, [table]);\n\n const {handleEdit, handleDelete, handleDeleteRequest, handleEditRequest} = useEdit({\n rowSelection,\n onEdit,\n clearSelection,\n setTableData,\n table,\n tableData,\n processingMode,\n });\n\n const captionId = `caption-${id}`;\n\n return (\n <Fragment>\n <FilterDialog\n tableContext={table}\n id={table.options.meta?.filterModalId as string}\n onApplyFiler={handleSetFilter}\n columnFilters={columnFilters}\n />\n <EditDialog\n id={table.options.meta?.editModalId as string}\n selectionAmount={Object.keys(rowSelection).length}\n columnsConfig={editableColumns}\n onEdit={handleEdit}\n />\n <DeleteDialog\n id={table.options.meta?.deleteModalId as string}\n selectionAmount={Object.keys(rowSelection).length}\n onDeleteConfirmation={handleDelete}\n />\n <LocalRoot theme={theme} className={classes.heightContainer}>\n {selectable && (\n <SelectableActions\n selectedRows={Object.keys(rowSelection).length}\n totalRows={table.getPreFilteredRowModel().rows.length}\n onDeleteRequest={handleDeleteRequest}\n onEditRequest={handleEditRequest}\n onClear={clearSelection}\n />\n )}\n <Table\n aria-describedby={caption && captionId}\n wrapperRef={wrapperRef}\n wrapperClassName={classNames(classes.tableWrapper, {\n // Needed to apply calculated height to the table to show small tables properly\n [classes.paginated]: renderMode === RenderModes.paginated,\n [classes.selectable]: selectable,\n [classes.hasCaption]: Boolean(caption),\n })}\n {...nativeProps}\n id={id}\n className={classNames(classes.dataTable, className)}\n ref={tableRef}>\n <thead className={classes.tableHeader}>\n {table.getHeaderGroups().map(headerGroup => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map((header, i, array) => {\n const fixLeft = i > 0 ? i + 1 : 0;\n const fixRight =\n i === array.length ? 0 : array.length - (i + 1);\n return (\n <TableCell\n as=\"th\"\n key={header.id}\n leftMargin={\n header.column.getStart('left') + fixLeft\n }\n rightMargin={\n header.column.getAfter('right') + fixRight\n }\n isPinned={header.column.getIsPinned()}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableCell>\n );\n })}\n </tr>\n ))}\n </thead>\n {renderMode === RenderModes.virtual && (\n <tbody>\n <Fragment>\n {before > 0 && (\n <tr>\n <td colSpan={columns.length} style={{height: before}} />\n </tr>\n )}\n {virtualRows.map(virtualRow => {\n const row = rows[virtualRow.index];\n return (\n <tr\n key={row.id}\n style={{\n height: `${virtualRow.size}px`,\n }}>\n {row.getVisibleCells().map((cell, i, array) => {\n const fixLeft = i > 0 ? i + 1 : 0;\n const fixRight =\n i === array.length\n ? 0\n : array.length - (i + 1);\n return (\n <TableCell\n isHighlighted={Boolean(\n cell.column.getIsSorted()\n )}\n as=\"td\"\n key={cell.id}\n leftMargin={\n cell.column.getStart('left') +\n fixLeft\n }\n rightMargin={\n cell.column.getAfter('right') +\n fixRight\n }\n isPinned={cell.column.getIsPinned()}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n );\n })}\n </tr>\n );\n })}\n {after > 0 && (\n <tr>\n <td colSpan={columns.length} style={{height: after}} />\n </tr>\n )}\n </Fragment>\n </tbody>\n )}\n {renderMode === RenderModes.paginated && (\n <tbody>\n {rows.map(row => (\n <tr key={row.id}>\n {row.getVisibleCells().map((cell, i, array) => {\n const fixLeft = i > 0 ? i + 1 : 0;\n const fixRight =\n i === array.length ? 0 : array.length - (i + 1);\n return (\n <TableCell\n isHighlighted={Boolean(\n cell.column.getIsSorted()\n )}\n as=\"td\"\n key={cell.id}\n leftMargin={\n cell.column.getStart('left') + fixLeft\n }\n rightMargin={\n cell.column.getAfter('right') + fixRight\n }\n isPinned={cell.column.getIsPinned()}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n );\n })}\n </tr>\n ))}\n </tbody>\n )}\n {rows.length === 0 && (\n <tbody>\n <tr className={classes.noDataRow}>\n <td\n className={classes.noDataCell}\n colSpan={table.getAllColumns().length}>\n <div className={classes.noDataWarning}>\n <span>No data to render.</span>\n {columnFilters.length > 0 && (\n <Button\n onClick={handleResetFilters}\n prefix={IconFilterOff}\n size=\"small\"\n variant=\"link\">\n Reset all filters\n </Button>\n )}\n </div>\n </td>\n </tr>\n </tbody>\n )}\n <tfoot className={classes.tableFooter}>\n {table.getFooterGroups().map(footerGroup => (\n <tr key={footerGroup.id}>\n {footerGroup.headers.map((header, i, array) => {\n const fixLeft = i > 0 ? i + 1 : 0;\n const fixRight =\n i === array.length ? 0 : array.length - (i + 1);\n return (\n <TableCell\n as=\"th\"\n key={header.id}\n leftMargin={\n header.column.getStart('left') + fixLeft\n }\n rightMargin={\n header.column.getAfter('right') + fixRight\n }\n isPinned={header.column.getIsPinned()}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.footer,\n header.getContext()\n )}\n </TableCell>\n );\n })}\n </tr>\n ))}\n </tfoot>\n </Table>\n {renderMode === RenderModes.paginated && (\n <Pagination\n rowsCount={tableData.length}\n onPageSizeChange={setPageSize}\n currentPage={currentPage}\n pagesAmount={table.getPageCount()}\n pageSize={pagination.pageSize}\n setCurrentPage={setCurrentPage}\n />\n )}\n {caption && (\n <div id={captionId} className={classes.tableCaption}>\n <I>{caption}</I>\n </div>\n )}\n </LocalRoot>\n </Fragment>\n );\n }\n);\n\nDataTable.displayName = 'DataTable';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport type {Locale, CountryCodes} from '@/internal/locale';\n\nimport classes from './Name.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers. Defaults to user setting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames#locales\n */\n locale?: Locale;\n /**\n * Provide a two-letter ISO 3166 region code\n * @see https://www.iso.org/iso-3166-country-codes.html\n */\n countryCode: keyof typeof CountryCodes;\n };\n\nexport const NameRegion = forwardRef<HTMLDivElement, Props>(\n ({className, locale: localeProp, countryCode, ...nativeProps}, ref) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () => new Intl.DisplayNames(locale, {type: 'region'}).of(countryCode),\n [countryCode, locale]\n );\n\n return (\n <span {...nativeProps} className={classNames(classes.name, className)} ref={ref}>\n {formattedValue}\n </span>\n );\n }\n);\n\nNameRegion.displayName = 'NameRegion';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport type {Locale, LanguageCodes} from '@/internal/locale';\n\nimport classes from './Name.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers. Defaults to user setting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames#locales\n */\n locale?: Locale;\n /**\n * Provide a two-letter ISO 639-1 language code\n * @see https://www.iso.org/iso-639-language-code\n */\n languageCode: keyof typeof LanguageCodes;\n };\n\nexport const NameLanguage = forwardRef<HTMLDivElement, Props>(\n ({className, locale: localeProp, languageCode, ...nativeProps}, ref) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () => new Intl.DisplayNames(locale, {type: 'language'}).of(languageCode),\n [languageCode, locale]\n );\n\n return (\n <span {...nativeProps} className={classNames(classes.name, className)} ref={ref}>\n {formattedValue}\n </span>\n );\n }\n);\n\nNameLanguage.displayName = 'NameLanguage';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport type {Locale, CurrencyCodes} from '@/internal/locale';\n\nimport type {Styles} from './types.ts';\nimport classes from './Name.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers. Defaults to user setting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames#locales\n */\n locale?: Locale;\n /**\n * Select the formatting style to use.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames#style\n */\n style?: keyof typeof Styles;\n /**\n * Provide a three-letter ISO 4217 currency code\n * @see https://www.iso.org/iso-4217-currency-codes.html\n */\n currencyCode: keyof typeof CurrencyCodes;\n };\n\nexport const NameCurrency = forwardRef<HTMLDivElement, Props>(\n ({className, locale: localeProp, currencyCode, style, ...nativeProps}, ref) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () => new Intl.DisplayNames(locale, {type: 'currency', style}).of(currencyCode),\n [currencyCode, locale, style]\n );\n\n return (\n <span {...nativeProps} className={classNames(classes.name, className)} ref={ref}>\n {formattedValue}\n </span>\n );\n }\n);\n\nNameCurrency.displayName = 'NameCurrency';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport type {Locale} from '@/internal/locale';\n\nimport type {Styles, TimePeriods} from './types.ts';\nimport classes from './Name.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers. Defaults to user setting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames#locales\n */\n locale?: Locale;\n /**\n * Select the formatting style to use.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames#style\n */\n style?: keyof typeof Styles;\n /**\n * Define a time period name to localize\n */\n timePeriod: keyof typeof TimePeriods;\n };\n\nexport const NameTime = forwardRef<HTMLDivElement, Props>(\n ({className, locale: localeProp, timePeriod, style, ...nativeProps}, ref) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () => new Intl.DisplayNames(locale, {type: 'dateTimeField', style}).of(timePeriod),\n [timePeriod, locale, style]\n );\n\n return (\n <span {...nativeProps} className={classNames(classes.name, className)} ref={ref}>\n {formattedValue}\n </span>\n );\n }\n);\n\nNameTime.displayName = 'NameTime';\n","import type {CountryCodes} from '@/internal/locale';\n\nexport const flagsDictionary = {\n AD: '🇦🇩',\n AE: '🇦🇪',\n AF: '🇦🇫',\n AG: '🇦🇬',\n AI: '🇦🇮',\n AL: '🇦🇱',\n AM: '🇦🇲',\n AO: '🇦🇴',\n AQ: '🇦🇶',\n AR: '🇦🇷',\n AS: '🇦🇸',\n AT: '🇦🇹',\n AU: '🇦🇺',\n AW: '🇦🇼',\n AX: '🇦🇽',\n AZ: '🇦🇿',\n BA: '🇧🇦',\n BB: '🇧🇧',\n BD: '🇧🇩',\n BE: '🇧🇪',\n BF: '🇧🇫',\n BG: '🇧🇬',\n BH: '🇧🇭',\n BI: '🇧🇮',\n BJ: '🇧🇯',\n BL: '🇧🇱',\n BM: '🇧🇲',\n BN: '🇧🇳',\n BO: '🇧🇴',\n BQ: '🇧🇶',\n BR: '🇧🇷',\n BS: '🇧🇸',\n BT: '🇧🇹',\n BV: '🇧🇻',\n BW: '🇧🇼',\n BY: '🇧🇾',\n BZ: '🇧🇿',\n CA: '🇨🇦',\n CC: '🇨🇨',\n CD: '🇨🇩',\n CF: '🇨🇫',\n CG: '🇨🇬',\n CH: '🇨🇭',\n CI: '🇨🇮',\n CK: '🇨🇰',\n CL: '🇨🇱',\n CM: '🇨🇲',\n CN: '🇨🇳',\n CO: '🇨🇴',\n CR: '🇨🇷',\n CU: '🇨🇺',\n CV: '🇨🇻',\n CW: '🇨🇼',\n CX: '🇨🇽',\n CY: '🇨🇾',\n CZ: '🇨🇿',\n DE: '🇩🇪',\n DJ: '🇩🇯',\n DK: '🇩🇰',\n DM: '🇩🇲',\n DO: '🇩🇴',\n DZ: '🇩🇿',\n EC: '🇪🇨',\n EE: '🇪🇪',\n EG: '🇪🇬',\n EH: '🇪🇭',\n ER: '🇪🇷',\n ES: '🇪🇸',\n ET: '🇪🇹',\n EU: '🇪🇺',\n FI: '🇫🇮',\n FJ: '🇫🇯',\n FK: '🇫🇰',\n FM: '🇫🇲',\n FO: '🇫🇴',\n FR: '🇫🇷',\n GA: '🇬🇦',\n GB: '🇬🇧',\n GD: '🇬🇩',\n GE: '🇬🇪',\n GF: '🇬🇫',\n GG: '🇬🇬',\n GH: '🇬🇭',\n GI: '🇬🇮',\n GL: '🇬🇱',\n GM: '🇬🇲',\n GN: '🇬🇳',\n GP: '🇬🇵',\n GQ: '🇬🇶',\n GR: '🇬🇷',\n GS: '🇬🇸',\n GT: '🇬🇹',\n GU: '🇬🇺',\n GW: '🇬🇼',\n GY: '🇬🇾',\n HK: '🇭🇰',\n HM: '🇭🇲',\n HN: '🇭🇳',\n HR: '🇭🇷',\n HT: '🇭🇹',\n HU: '🇭🇺',\n ID: '🇮🇩',\n IE: '🇮🇪',\n IL: '🇮🇱',\n IM: '🇮🇲',\n IN: '🇮🇳',\n IO: '🇮🇴',\n IQ: '🇮🇶',\n IR: '🇮🇷',\n IS: '🇮🇸',\n IT: '🇮🇹',\n JE: '🇯🇪',\n JM: '🇯🇲',\n JO: '🇯🇴',\n JP: '🇯🇵',\n KE: '🇰🇪',\n KG: '🇰🇬',\n KH: '🇰🇭',\n KI: '🇰🇮',\n KM: '🇰🇲',\n KN: '🇰🇳',\n KP: '🇰🇵',\n KR: '🇰🇷',\n KW: '🇰🇼',\n KY: '🇰🇾',\n KZ: '🇰🇿',\n LA: '🇱🇦',\n LB: '🇱🇧',\n LC: '🇱🇨',\n LI: '🇱🇮',\n LK: '🇱🇰',\n LR: '🇱🇷',\n LS: '🇱🇸',\n LT: '🇱🇹',\n LU: '🇱🇺',\n LV: '🇱🇻',\n LY: '🇱🇾',\n MA: '🇲🇦',\n MC: '🇲🇨',\n MD: '🇲🇩',\n ME: '🇲🇪',\n MF: '🇲🇫',\n MG: '🇲🇬',\n MH: '🇲🇭',\n MK: '🇲🇰',\n ML: '🇲🇱',\n MM: '🇲🇲',\n MN: '🇲🇳',\n MO: '🇲🇴',\n MP: '🇲🇵',\n MQ: '🇲🇶',\n MR: '🇲🇷',\n MS: '🇲🇸',\n MT: '🇲🇹',\n MU: '🇲🇺',\n MV: '🇲🇻',\n MW: '🇲🇼',\n MX: '🇲🇽',\n MY: '🇲🇾',\n MZ: '🇲🇿',\n NA: '🇳🇦',\n NC: '🇳🇨',\n NE: '🇳🇪',\n NF: '🇳🇫',\n NG: '🇳🇬',\n NI: '🇳🇮',\n NL: '🇳🇱',\n NO: '🇳🇴',\n NP: '🇳🇵',\n NR: '🇳🇷',\n NU: '🇳🇺',\n NZ: '🇳🇿',\n OM: '🇴🇲',\n PA: '🇵🇦',\n PE: '🇵🇪',\n PF: '🇵🇫',\n PG: '🇵🇬',\n PH: '🇵🇭',\n PK: '🇵🇰',\n PL: '🇵🇱',\n PM: '🇵🇲',\n PN: '🇵🇳',\n PR: '🇵🇷',\n PS: '🇵🇸',\n PT: '🇵🇹',\n PW: '🇵🇼',\n PY: '🇵🇾',\n QA: '🇶🇦',\n RE: '🇷🇪',\n RO: '🇷🇴',\n RS: '🇷🇸',\n RU: '🇷🇺',\n RW: '🇷🇼',\n SA: '🇸🇦',\n SB: '🇸🇧',\n SC: '🇸🇨',\n SD: '🇸🇩',\n SE: '🇸🇪',\n SG: '🇸🇬',\n SH: '🇸🇭',\n SI: '🇸🇮',\n SJ: '🇸🇯',\n SK: '🇸🇰',\n SL: '🇸🇱',\n SM: '🇸🇲',\n SN: '🇸🇳',\n SO: '🇸🇴',\n SR: '🇸🇷',\n SS: '🇸🇸',\n ST: '🇸🇹',\n SV: '🇸🇻',\n SX: '🇸🇽',\n SY: '🇸🇾',\n SZ: '🇸🇿',\n TC: '🇹🇨',\n TD: '🇹🇩',\n TF: '🇹🇫',\n TG: '🇹🇬',\n TH: '🇹🇭',\n TJ: '🇹🇯',\n TK: '🇹🇰',\n TL: '🇹🇱',\n TM: '🇹🇲',\n TN: '🇹🇳',\n TO: '🇹🇴',\n TR: '🇹🇷',\n TT: '🇹🇹',\n TV: '🇹🇻',\n TW: '🇹🇼',\n TZ: '🇹🇿',\n UA: '🇺🇦',\n UG: '🇺🇬',\n UM: '🇺🇲',\n US: '🇺🇸',\n UY: '🇺🇾',\n UZ: '🇺🇿',\n VA: '🇻🇦',\n VC: '🇻🇨',\n VE: '🇻🇪',\n VG: '🇻🇬',\n VI: '🇻🇮',\n VN: '🇻🇳',\n VU: '🇻🇺',\n WF: '🇼🇫',\n WS: '🇼🇸',\n XK: '🇽🇰',\n YE: '🇾🇪',\n YT: '🇾🇹',\n ZA: '🇿🇦',\n ZM: '🇿🇲',\n ZW: '🇿🇼',\n} as Record<keyof typeof CountryCodes, string>;\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {CountryCodes} from '@/internal/locale';\nimport {useBrowserLocale} from '@/internal/locale';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Flag.module.css';\nimport {flagsDictionary} from './flagsDictionary.ts';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide a two-letter ISO 3166 region code\n * @see https://www.iso.org/iso-3166-country-codes.html\n */\n countryCode: keyof typeof CountryCodes;\n /**\n * Set the size of the flag icon in pixels. Applied to both width and height\n */\n size?: number;\n };\n\nexport const Flag = forwardRef<HTMLDivElement, Props>(\n ({className, countryCode, size = 24, ...nativeProps}, outerRef) => {\n const {LocalRoot, ref} = useLocalTheme<HTMLDivElement>();\n const theme = useMemo(() => ({size}), [size]);\n useLinkRefs(outerRef, ref);\n const flag = flagsDictionary[countryCode];\n const userLocale = useBrowserLocale();\n const countryName = useMemo(\n () => new Intl.DisplayNames(userLocale, {type: 'region'}).of(countryCode),\n [countryCode, userLocale]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.container, className)}>\n <span className={classes.flag} title={countryName}>\n {flag}\n </span>\n </LocalRoot>\n );\n }\n);\n\nFlag.displayName = 'Flag';\n","export type Source = {\n src: string;\n /**\n * Provide the source video 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 video\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\nexport enum PlayModes {\n play = 'play',\n pause = 'pause',\n pristine = 'pristine',\n}\n","import type {SyntheticEvent, MutableRefObject} from 'react';\nimport {useCallback, useState} from 'react';\n\nimport {PlayModes} from './types.ts';\n\nexport type Props<TElement> = {\n onPlay: (event: SyntheticEvent<TElement>) => void;\n onPause: (event: SyntheticEvent<TElement>) => void;\n embedRef: MutableRefObject<TElement | null>;\n};\n\nexport const usePlay = <TElement extends HTMLMediaElement>({\n onPlay,\n onPause,\n embedRef,\n}: Props<TElement>) => {\n const [playMode, setPlayMode] = useState<PlayModes>(PlayModes.pristine);\n\n const handlePlay = useCallback(\n (event: SyntheticEvent<TElement>) => {\n setPlayMode(PlayModes.play);\n onPlay(event);\n },\n [onPlay]\n );\n\n const handlePause = useCallback(\n (event: SyntheticEvent<TElement>) => {\n setPlayMode(PlayModes.pause);\n onPause(event);\n },\n [onPause]\n );\n\n const handleTogglePlay = useCallback(() => {\n if (playMode === PlayModes.play) {\n embedRef.current?.pause();\n setPlayMode(PlayModes.pause);\n } else {\n embedRef.current?.play();\n setPlayMode(PlayModes.play);\n }\n }, [playMode, embedRef]);\n\n return {handlePlay, handlePause, handleTogglePlay, playMode};\n};\n","/** Gets media filename from the provided URL string */\nexport const getFileName = (url?: string) => {\n const splitted = url?.split('/') || [];\n return splitted[splitted.length - 1];\n};\n","import type {MutableRefObject, Dispatch, SetStateAction, SyntheticEvent} from 'react';\nimport {useCallback, useState} from 'react';\n\nexport type Props = {\n embedRef: MutableRefObject<HTMLMediaElement | null>;\n setDuration: Dispatch<SetStateAction<number>>;\n onReady: (event: SyntheticEvent<HTMLVideoElement>) => void;\n onError: (event: SyntheticEvent<HTMLVideoElement>) => void;\n};\n\nexport const useLoadingState = ({embedRef, setDuration, onReady, onError}: Props) => {\n const handleLoadedMetaData = useCallback(() => {\n embedRef.current?.duration && setDuration(embedRef.current?.duration);\n }, [setDuration, embedRef]);\n\n const [readyToPlay, setReadyToPlay] = useState(false);\n\n const handleCanPlay = useCallback(\n (event: SyntheticEvent<HTMLVideoElement>) => {\n setReadyToPlay(true);\n onReady(event);\n },\n [onReady]\n );\n\n const handleError = useCallback(\n (event: SyntheticEvent<HTMLVideoElement>) => {\n onError(event);\n },\n [onError]\n );\n\n return {handleLoadedMetaData, readyToPlay, handleCanPlay, handleError};\n};\n","export const getFormattedTime = (totalSeconds = 0) => {\n const minutes = new Intl.NumberFormat(undefined, {minimumIntegerDigits: 2}).format(\n Math.floor(totalSeconds / 60)\n );\n const seconds = new Intl.NumberFormat(undefined, {minimumIntegerDigits: 2}).format(\n Math.round(totalSeconds % 60)\n );\n return `${minutes}:${seconds}`;\n};\n","import type {MutableRefObject} from 'react';\nimport {type ChangeEvent, useCallback, useEffect, useState} from 'react';\n\nimport {PlayModes} from './types.ts';\n\nexport type Props = {\n embedRef: MutableRefObject<HTMLMediaElement | null>;\n playMode: keyof typeof PlayModes;\n};\n\nexport const useTime = ({embedRef, playMode}: Props) => {\n const [currentTime, setCurrentTime] = useState(0);\n\n useEffect(() => {\n const handler = () => {\n embedRef.current?.currentTime &&\n playMode === PlayModes.play &&\n embedRef.current?.currentTime !== currentTime &&\n setCurrentTime(embedRef.current?.currentTime);\n };\n const intervalId = setInterval(handler, 1000);\n return () => {\n clearInterval(intervalId);\n };\n }, [currentTime, playMode, embedRef]);\n\n const handleSetTime = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setCurrentTime(event.target.valueAsNumber);\n embedRef.current!.currentTime = event.target.valueAsNumber;\n },\n [embedRef]\n );\n\n return {handleSetTime, currentTime, setCurrentTime};\n};\n","import {type ChangeEvent, type MutableRefObject, useCallback, useEffect, useState} from 'react';\n\nexport type Props = {\n embedRef: MutableRefObject<HTMLMediaElement | null>;\n mutedProp: boolean;\n};\n\nexport const useSound = ({embedRef, mutedProp}: Props) => {\n const [volume, setVolume] = useState(0);\n const handleSetVolume = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setVolume(event.target.valueAsNumber);\n embedRef.current!.volume = event.target.valueAsNumber;\n },\n [embedRef]\n );\n\n const [muted, setMuted] = useState(mutedProp);\n\n useEffect(() => {\n setMuted(mutedProp);\n }, [mutedProp]);\n\n const handleToggleMuted = useCallback(() => {\n setMuted(!muted);\n }, [muted]);\n\n useEffect(() => {\n setVolume(Number(embedRef.current?.volume || 0));\n }, [muted, embedRef]);\n\n return {volume, handleSetVolume, muted, handleToggleMuted, setVolume};\n};\n","import type {ReactNode, SyntheticEvent} from 'react';\nimport {forwardRef, useMemo, useState} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {Picture} from '@/lib';\nimport {\n IconPlay,\n IconPause,\n IconVolume,\n IconVolumeOff,\n IconAudio,\n IconDownloadVideo,\n} from '@/internal/Icons';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {Source} from '@/internal/MediaEmbeds';\nimport {\n PlayModes,\n usePlay,\n getFileName,\n useLoadingState,\n getFormattedTime,\n useTime,\n useSound,\n} from '@/internal/MediaEmbeds';\nimport rangeInputClasses from '@/internal/MediaEmbeds/RangeInput.module.css';\n\nimport classes from './Audio.module.css';\n\ntype Element = HTMLAudioElement;\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * A URL for an image to be shown left to audio controls.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio#poster\n */\n poster?: string;\n /**\n * Set a callback to run when the audio is buffered enough to play on the user side\n */\n onReady?: (event: SyntheticEvent<Element>) => void;\n /**\n * Set a callback to capture audio errors\n */\n onError?: (event: SyntheticEvent<Element>) => void;\n /**\n * Set a callback to run when the user plays the audio\n */\n onPlay?: (event: SyntheticEvent<Element>) => void;\n /**\n * Set a callback to run when the user pauses the audio\n */\n onPause?: (event: SyntheticEvent<Element>) => void;\n /**\n * Provide audio file url\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio\n */\n src?: string;\n /**\n * Provide audio sources configs array. An advanced alternative to `src` prop\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio\n */\n sources?: Source[];\n /**\n * Provide a title for the audio\n */\n title?: string;\n children?: ReactNode;\n };\n\nexport const Audio = forwardRef<HTMLAudioElement, Props>(\n (\n {\n children,\n className,\n onReady = () => {},\n onPlay = () => {},\n onPause = () => {},\n onError = () => {},\n src,\n poster,\n title,\n sources = [],\n ...nativeProps\n },\n refProp\n ) => {\n const embedRef = useInternalRef(refProp);\n\n const [duration, setDuration] = useState(0);\n\n const {handleLoadedMetaData, handleError, handleCanPlay, readyToPlay} = useLoadingState({\n embedRef,\n onError,\n onReady,\n setDuration,\n });\n\n const {handlePlay, handleTogglePlay, handlePause, playMode} = usePlay({\n embedRef,\n onPlay,\n onPause,\n });\n\n const {handleSetTime, currentTime} = useTime({embedRef, playMode});\n\n const {volume, handleSetVolume, muted, handleToggleMuted} = useSound({\n embedRef,\n mutedProp: false,\n });\n\n const {LocalRoot} = useLocalTheme();\n\n const theme = useMemo(() => ({background: `url(${poster})`}), [poster]);\n\n const PlayIcon =\n playMode === PlayModes.pause || playMode === PlayModes.pristine ? IconPlay : IconPause;\n\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.wrapper, className)}>\n <div className={classes.title}>\n <IconAudio className={classes.icon} />\n <span className={classes.text}>\n {title || getFileName(embedRef.current?.currentSrc)}\n </span>\n <a\n className={classes.download}\n href={embedRef.current?.currentSrc}\n download={getFileName(embedRef.current?.currentSrc)}>\n <IconDownloadVideo />\n </a>\n </div>\n <div className={classNames(classes.audio, {[classes.noPoster]: !poster})}>\n {poster && (\n <Picture className={classes.poster} src={poster} height={111} width={111} />\n )}\n <div className={classes.playWrapper}>\n <button\n onClick={handleTogglePlay}\n className={classNames(classes.playControl, {\n [classes.loading]: !readyToPlay,\n })}>\n <PlayIcon className={classes.icon} />\n </button>\n </div>\n <div className={classes.rangeControls}>\n <div className={classes.control}>\n <div className={classes.time}>\n {getFormattedTime(currentTime)}/{getFormattedTime(duration)}\n </div>\n <div className={classes.volumeControl}>\n <button className={classes.mutedButton} onClick={handleToggleMuted}>\n {muted ? (\n <IconVolumeOff className={classes.volumeIcon} />\n ) : (\n <IconVolume className={classes.volumeIcon} />\n )}\n </button>\n <input\n min={0}\n max={1}\n step={0.01}\n type=\"range\"\n value={muted ? 0 : volume}\n onChange={handleSetVolume}\n className={classNames(\n rangeInputClasses.range,\n classes.volumeInput\n )}\n />\n </div>\n </div>\n <div className={classes.control}>\n <input\n onChange={handleSetTime}\n value={currentTime}\n type=\"range\"\n className={classNames(\n rangeInputClasses.range,\n classes.navigationInput\n )}\n name=\"seek\"\n min={0}\n max={duration}\n step={1}\n />\n </div>\n </div>\n <audio\n className={classes.nativePlayer}\n ref={embedRef}\n src={src}\n onPlay={handlePlay}\n onPause={handlePause}\n onLoadedMetadata={handleLoadedMetaData}\n onCanPlay={handleCanPlay}\n onError={handleError}\n muted={muted}>\n {sources.map(({src, type, mediaCondition}) => {\n return (\n <source key={src} src={src} type={type} media={mediaCondition} />\n );\n })}\n </audio>\n {children}\n </div>\n </LocalRoot>\n );\n }\n);\n\nAudio.displayName = 'Audio';\n"],"names":["theme","themeInternal","useInternalRef","outerRef","innerRef","useRef","useImperativeHandle","SvgWarningCircleFill","props","React","IconError","className","restProps","jsx","Icon","classNames","classes","SvgCheck","IconValid","Check","SvgProgressActivity","IconLoader","Loader","SvgFilesFill","IconFile","SvgCalendarFill","IconCalendar","SvgWatchFill","IconClock","SvgExpandAll","IconExpand","SvgLockKeyFill","IconLock","SvgLockKeyOpenFill","IconLockOpen","SvgArrowDropUp","IconArrowUp","SvgArrowDropDown","IconArrowDown","SvgClose","IconClose","SvgArrowLeft","IconArrowLeft","SvgArrowRight","IconArrowRight","SvgCompareArrows","IconScroll","SvgWarningFill","IconWarning","SvgCheckCircleFill","IconSuccess","SvgSkipForwardFill","IconForward","SvgSkipBackFill","IconBackward","SvgKeyReturnFill","IconEnter","SvgDangerous","IconDanger","SvgLinkBold","IconLink","SvgMoreVert","IconEllipsisVertical","SvgColumnsPlusLeftBold","IconPinLeft","SvgColumnsPlusRightBold","IconPinRight","SvgAlignCenterVerticalSimpleBold","IconUnPin","SvgFilterAlt","IconFilter","SvgFilterAltOff","IconFilterOff","SvgPencilLineFill","IconEdit","SvgTrashFill","IconDelete","SvgBroomFill","IconClear","SvgSortAscendingBold","IconSortAsc","SvgSortDescendingBold","IconSortDesc","SvgSwatchesFill","IconSwatches","SvgBellFill","IconNotification","SvgWarningCircleBold","IconErrorOutline","SvgShuffleBold","IconSortOff","SvgColumnsBold","IconColumns","SvgNumpadFill","IconNumeric","SvgPlayFill","IconPlay","SvgPauseFill","IconPause","SvgSpeakerHighFill","IconVolume","SvgSpeakerSlashFill","IconVolumeOff","SvgBoxArrowDownFill","IconDownloadVideo","SvgCassetteTapeFill","IconAudio","EventType","useEventListener","eventType","callback","element","targetElement","callbackRef","useEffect","handler","e","useFocusTrap","isOpen","condition","focusableElementsRef","elements","setElements","useState","first","last","_a","handleTabKeyPress","useCallback","event","ActionTypes","ActionButton","title","icon","type","onClick","disabled","ActionIcon","useMemo","handleClick","jsxs","ActionsTree","actions","classNameRow","classNameAction","ActionComponent","id","useId","actionSlot","i","left","right","Variants","Actions","forwardRef","children","variant","nativeProps","ref","useIsFirstRender","isFirst","isBrowser","useSafeLayoutEffect","useLayoutEffect","Transition","show","exitClassName","exitDoneClassName","enterClassName","enterDoneClassName","nodeRef","unmountNode","onExit","onEnter","isFirstRender","shouldRender","setRender","_b","_c","_d","_e","_f","SlideBottom","SlideLeft","SlideRight","Animations","TransitionDialog","animation","arr","without","filter","array","filterFn","member","initialState","DialogReducer","state","action","nextOpen","dialogId","params","DialogContext","createContext","useDialogContext","useContext","useSelector","useDialogState","dispatch","openDialog","closeDialog","topDialogId","topDialog","dialogParams","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","value","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","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","required","inputProps","Children","hintId","childrenWithProps","cloneElement","ValidationState","defaultValidator","useHandleFormReset","setValidity","getValue","mode","useValidatorFn","validatorFn","reportValidity","createValidatorSync","validationError","createValidatorExternal","debouncedValidator","AwesomeDebouncePromise","createValidatorAsync","error","createValidatorFn","validation","getMode","useValidation","hasValidators","validity","isValid","ValidState","nextValidationState","validateInteractive","validateTextual","ChangeEvent","useRevalidateOnFormChange","inputRef","validateInput","inputElement","revalidateInput","useExternalValidation","errorMessage","useValidationIcon","InputCheckbox","onFocus","onBlur","onKeyDown","onKeyUp","checked","defaultChecked","idProp","revalidateOnFormChange","indeterminate","ValidationIcon","handleInvalid","InputGroup","name","isValidElement","nextProps","InputRadio","InputText","placeholder","defaultValue","readOnly","handleSelect","inputId","InputDate","labelRef","displayValue","handleFocus","handleBlur","handleInput","noOp","InputDateTime","date","setDate","time","setTime","combined","setCombined","nextDate","nextTime","handleSetDate","handleSetTime","InputTime","invertColor","hex","bw","red","green","blue","InputColor","predefinedColors","setTheme","hasPredefinedColors","predefinedColorsListId","color","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","displayScale","setDisplayValue","scaleId","InputFile","filename","setFileName","InputPassword","setType","SPINNER_EVENT_TYPE","ChangeEventSpinner","InputNumber","step","handleDecrement","handleIncrement","patternMapping","InputNumeric","inputValue","pattern","Textarea","cols","rows","resize","textareaId","Select","multiple","selectId","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","wrapperRef","wrapperClassName","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","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","scrollWidth","setScrollWidth","scrollHeight","setScrollHeight","overflowY","setOverflowY","overflowX","setOverflowX","current","hasOverflowY","hasOverflowX","handleResizeDebounced","useDebouncedCallback","TabButton","tabName","activeName","Tabs","selectedProp","initiallySelected","selected","setSelected","tabs","visibleTab","headerRef","Tab","allowedPlacementsDefault","Menu","openProp","content","referenceClassName","alignWidth","allowedPlacements","menuRef","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","NavLink","shift","isCurrent","NavBrand","NavPanel","Progress","conditionallyAddEllipsis","items","showEllipsis","rest","Link","Breadcrumbs","LinkComponent","url","ButtonGroup","layout","normalizeValue","convertPermissions","permissions","permissionsArray","Iframe","referrerPolicy","allowFullScreen","srcDoc","sandboxConfig","permissionsConfig","onLoad","setIsLoaded","sandbox","allow","Units","useBrowserLocale","locale","setLocale","Styles","LocaleMatchers","Notations","CompactDisplayModes","SignDisplayModes","CurrencyDisplayTypes","UnitDisplayModes","NumberDecimal","localeProp","localeMatcher","digitsConfig","notation","compactDisplay","grouping","signDisplay","userLocale","formattedValue","NumberCurrency","currency","currencyDisplay","currencySign","NumberPercent","NumberUnit","unit","unitDisplay","DateTime","weekday","era","year","month","day","hour","minute","second","timeZoneName","hour12","timeZone","enableNoWrap","frameID","setSize","useColumnFilters","columnFiltersProp","onFiltersChange","columnFilters","setColumnFilters","RenderModes","ProcessingModes","ColumnTypes","SortingModes","FilterModes","CustomFilterFns","CellWrapper","memo","columnWidth","RowSelectionCell","columnHelper","createColumnHelper","ROW_SELECTION_ID","rowSelection","table","column","row","defaultColumnPinning","normalizeProp","hasSelectableColumn","columnPinningProp","nextRight","nextLeft","useColumnPinning","normalizedPinningState","columnPinning","setColumnPinning","TableCell","isPinned","leftMargin","rightMargin","classname","isHighlighted","localRef","useVirtualRows","rowsCount","scrollRef","cellHeight","overscan","virtualizer","useVirtualizer","virtualRows","before","after","notUndefined","useTableData","tableDataProp","tableData","setTableData","useMatchMedia","query","matches","setMatches","media","listener","setCurrentPage","currentPage","pagesAmount","pageSizeProp","onPageSizeChange","pageSize","setPageSize","handlePageSizeChange","handlePazeSizeEnter","handlePageSizeSubmit","isBigScreen","displayPageButtons","displayPageNavigation","PaginationVanilla","usePagination","paginationProp","onPaginationChange","pagination","setPagination","prevState","nextSize","useSorting","sortingProp","onSortingChange","sorting","setSorting","valueToNumber","NumberRangeField","from","to","handleMinChange","handleMaxChange","DateRangeField","TextField","handleFilterChange","fieldMapping","FilterDialog","onApplyFiler","tableContext","columnsConfig","filterable","selectedColumn","setSelectedColumn","handleColumnSelect","selectedType","setSelectedType","nextType","FilterField","InputField","tableFilterValue","columnFilter","filterValue","setFilterValue","hasFilter","handleApplyFilter","handleResetFilter","cellProps","useRowSelection","rowSelectionProp","onRowSelect","processingMode","isClient","setRowSelection","clearSelection","handleRowSelection","updater","useTableHeight","tableHeightProp","DeleteDialog","selectionAmount","onDeleteConfirmation","PercentageInput","withValueMapping","Wrapped","valueInputMapping","EditDialog","onEdit","Input","selectionValue","setSelectionValue","handleEdit","amountFormatted","SelectableActions","onClear","selectedRows","onDeleteRequest","onEditRequest","totalRows","set","path","a","c","useEdit","showDeleteConfirmation","showEditDialog","handleDeleteRequest","handleEditRequest","rowIndex","editRows","editedRows","columnId","nextTableData","editState","deleteRows","deletedRows","handleDelete","ColumnHeaderCell","headerContext","handleToggle","openState","isSorted","ColumnFooterCell","cellContext","isFiltered","handleResetSorting","handleUnPin","ViewTextCell","ViewDecimalCell","ViewUnitCell","ViewDateCell","ViewCurrencyCell","ViewPercentageCell","cellMapping","sortMapping","normalizeSortingFn","columnType","sortingFnProp","filterMapping","normalizeFilterFn","filterFnProp","columns","useTableColumns","columnsProp","selectable","initialColumns","accessorKey","accessorFn","editable","sortable","pinnable","columnCell","headerCell","footerCell","filterInput","CellComponent","HeaderComponent","FooterComponent","setColumns","editableColumns","isInDateRange","cellDate","isInPercentRange","cellValue","CELL_HEIGHT","OVERSCAN","defaultPages","defaultSorting","defaultFilters","defaultSelection","DataTable","renderMode","pageCount","tableRef","tableHeight","maxHeight","browserLocale","useReactTable","getCoreRowModel","getPaginationRowModel","getSortedRowModel","getFilteredRowModel","handleSetFilter","handleResetFilters","captionId","headerGroup","header","fixLeft","fixRight","flexRender","virtualRow","cell","footerGroup","NameRegion","countryCode","NameLanguage","languageCode","NameCurrency","currencyCode","style","NameTime","timePeriod","flagsDictionary","Flag","flag","countryName","PlayModes","usePlay","onPlay","onPause","embedRef","playMode","setPlayMode","handlePlay","handlePause","handleTogglePlay","getFileName","splitted","useLoadingState","setDuration","onReady","onError","handleLoadedMetaData","readyToPlay","setReadyToPlay","handleCanPlay","getFormattedTime","totalSeconds","minutes","seconds","useTime","currentTime","setCurrentTime","intervalId","useSound","mutedProp","volume","setVolume","handleSetVolume","muted","setMuted","handleToggleMuted","Audio","poster","duration","PlayIcon","rangeInputClasses"],"mappings":"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AAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;A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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,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92]}
1
+ {"version":3,"file":"index.js","sources":["../src/lib/Theme/theme.ts","../src/lib/Theme/themePodil.ts","../src/lib/Theme/themeDnipro.ts","../src/internal/hooks/useInternalRef.ts","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/warning-circle-fill.svg?react","../src/internal/Icons/IconError.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.2/node_modules/@material-symbols/svg-700/sharp/check.svg?react","../src/internal/Icons/IconValid.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.2/node_modules/@material-symbols/svg-700/sharp/progress_activity.svg?react","../src/internal/Icons/IconLoader.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/files-fill.svg?react","../src/internal/Icons/IconFile.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/calendar-fill.svg?react","../src/internal/Icons/IconCalendar.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/watch-fill.svg?react","../src/internal/Icons/IconClock.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.2/node_modules/@material-symbols/svg-700/sharp/expand_all.svg?react","../src/internal/Icons/IconExpand.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/lock-key-fill.svg?react","../src/internal/Icons/IconLock.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/lock-key-open-fill.svg?react","../src/internal/Icons/IconLockOpen.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.2/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.29.2/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.29.2/node_modules/@material-symbols/svg-700/sharp/close.svg?react","../src/internal/Icons/IconClose.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.2/node_modules/@material-symbols/svg-700/sharp/arrow_left.svg?react","../src/internal/Icons/IconArrowLeft.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.2/node_modules/@material-symbols/svg-700/sharp/arrow_right.svg?react","../src/internal/Icons/IconArrowRight.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.2/node_modules/@material-symbols/svg-700/sharp/compare_arrows.svg?react","../src/internal/Icons/IconScroll.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/warning-fill.svg?react","../src/internal/Icons/IconWarning.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/check-circle-fill.svg?react","../src/internal/Icons/IconSuccess.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/skip-forward-fill.svg?react","../src/internal/Icons/IconForward.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/skip-back-fill.svg?react","../src/internal/Icons/IconBackward.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/key-return-fill.svg?react","../src/internal/Icons/IconEnter.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.2/node_modules/@material-symbols/svg-700/sharp/dangerous.svg?react","../src/internal/Icons/IconDanger.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/link-bold.svg?react","../src/internal/Icons/IconLink.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.2/node_modules/@material-symbols/svg-700/sharp/more_vert.svg?react","../src/internal/Icons/IconEllipsisVertical.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/columns-plus-left-bold.svg?react","../src/internal/Icons/IconPinLeft.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/columns-plus-right-bold.svg?react","../src/internal/Icons/IconPinRight.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/align-center-vertical-simple-bold.svg?react","../src/internal/Icons/IconUnPin.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.2/node_modules/@material-symbols/svg-700/sharp/filter_alt.svg?react","../src/internal/Icons/IconFilter.tsx","../node_modules/.pnpm/@material-symbols+svg-700@0.29.2/node_modules/@material-symbols/svg-700/sharp/filter_alt_off.svg?react","../src/internal/Icons/IconFilterOff.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/pencil-line-fill.svg?react","../src/internal/Icons/IconEdit.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/trash-fill.svg?react","../src/internal/Icons/IconDelete.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/broom-fill.svg?react","../src/internal/Icons/IconClear.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/sort-ascending-bold.svg?react","../src/internal/Icons/IconSortAsc.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/sort-descending-bold.svg?react","../src/internal/Icons/IconSortDesc.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/swatches-fill.svg?react","../src/internal/Icons/IconSwatches.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/bell-fill.svg?react","../src/internal/Icons/IconNotification.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/warning-circle-bold.svg?react","../src/internal/Icons/IconErrorOutline.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/shuffle-bold.svg?react","../src/internal/Icons/IconSortOff.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/bold/columns-bold.svg?react","../src/internal/Icons/IconColumns.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/numpad-fill.svg?react","../src/internal/Icons/IconNumeric.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/play-fill.svg?react","../src/internal/Icons/IconPlay.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/pause-fill.svg?react","../src/internal/Icons/IconPause.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/speaker-high-fill.svg?react","../src/internal/Icons/IconVolume.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/speaker-slash-fill.svg?react","../src/internal/Icons/IconVolumeOff.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/box-arrow-down-fill.svg?react","../src/internal/Icons/IconDownloadVideo.tsx","../node_modules/.pnpm/@phosphor-icons+core@2.1.1/node_modules/@phosphor-icons/core/assets/fill/cassette-tape-fill.svg?react","../src/internal/Icons/IconAudio.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/utils/isBrowser.ts","../src/internal/hooks/useSafeLayoutEffect.ts","../src/internal/Transitions/Transition.tsx","../src/internal/Transitions/SlideBottom.tsx","../src/internal/Transitions/SlideLeft.tsx","../src/internal/Transitions/SlideRight.tsx","../src/lib/Dialog/types.ts","../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/internal/inputs/useRevalidateOnFormChange.ts","../src/internal/inputs/useExternalValidation.ts","../src/internal/inputs/useValidationIcon.tsx","../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/InputDateTime/InputDateTime.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/InputPassword/InputPassword.tsx","../src/lib/InputNumber/InputNumber.tsx","../src/lib/InputNumeric/InputNumeric.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/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","../src/lib/Iframe/convertPermissions.ts","../src/lib/Iframe/Iframe.tsx","../src/internal/locale/units.ts","../src/internal/locale/useBrowserLocale.ts","../src/lib/Number/types.ts","../src/lib/Number/NumberDecimal.tsx","../src/lib/Number/NumberCurrency.tsx","../src/lib/Number/NumberPercent.tsx","../src/lib/Number/NumberUnit.tsx","../src/lib/DateTime/DateTime.tsx","../src/internal/hooks/useResizeObserverNew.ts","../src/lib/DataTable/tableFeatures/useColumnFilters.ts","../src/lib/DataTable/types.ts","../src/lib/DataTable/cells/CellWrapper.tsx","../src/lib/DataTable/cells/RowSelectionCell.tsx","../src/lib/DataTable/columns/rowSelection.tsx","../src/lib/DataTable/tableFeatures/useColumnPinning.ts","../src/lib/DataTable/TableCell.tsx","../src/lib/DataTable/tableFeatures/useVirtualRows.ts","../src/lib/DataTable/tableFeatures/useTableData.ts","../src/internal/hooks/useMatchMedia.tsx","../src/lib/DataTable/Pagination.tsx","../src/lib/DataTable/tableFeatures/usePagination.ts","../src/lib/DataTable/tableFeatures/useSorting.ts","../src/lib/DataTable/dialogs/NumberRangeField.tsx","../src/lib/DataTable/dialogs/DateRangeField.tsx","../src/lib/DataTable/dialogs/TextField.tsx","../src/lib/DataTable/dialogs/FilterDialog.tsx","../src/lib/DataTable/tableFeatures/useRowSelection.ts","../src/lib/DataTable/tableFeatures/useTableHeight.ts","../src/lib/DataTable/dialogs/DeleteDialog.tsx","../src/lib/DataTable/dialogs/PercentageInput.tsx","../src/lib/DataTable/dialogs/EditDialog.tsx","../src/lib/DataTable/SelectableActions.tsx","../src/internal/utils/set.ts","../src/lib/DataTable/tableFeatures/useEdit.ts","../src/lib/DataTable/cells/ColumnHeaderCell.tsx","../src/lib/DataTable/cells/ColumnFooterCell.tsx","../src/lib/DataTable/cells/ViewTextCell.tsx","../src/lib/DataTable/cells/ViewDecimalCell.tsx","../src/lib/DataTable/cells/ViewUnitCell.tsx","../src/lib/DataTable/cells/ViewDateCell.tsx","../src/lib/DataTable/cells/ViewCurrencyCell.tsx","../src/lib/DataTable/cells/ViewPercentageCell.tsx","../src/lib/DataTable/tableFeatures/useTableColumns.tsx","../src/lib/DataTable/filterFns.ts","../src/lib/DataTable/DataTable.tsx","../src/lib/Name/NameRegion.tsx","../src/lib/Name/NameLanguage.tsx","../src/lib/Name/NameCurrency.tsx","../src/lib/Name/NameTime.tsx","../src/lib/Flag/flagsDictionary.ts","../src/lib/Flag/Flag.tsx","../src/internal/MediaEmbeds/types.ts","../src/internal/MediaEmbeds/usePlay.ts","../src/internal/MediaEmbeds/getFileName.ts","../src/internal/MediaEmbeds/useLoadingState.ts","../src/internal/MediaEmbeds/getFormattedTime.ts","../src/internal/MediaEmbeds/useTime.ts","../src/internal/MediaEmbeds/useSound.ts","../src/lib/Audio/Audio.tsx"],"sourcesContent":["export const theme = {\n fontFamily: `'Rubik Variable', sans-serif`,\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 timeXS: '111ms',\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 SvgWarningCircleFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-8,56a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm8,104a12,12,0,1,1,12-12A12,12,0,0,1,128,184Z\" }));\nexport default SvgWarningCircleFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/warning-circle-fill.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 <Icon 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 SvgFilesFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M213.66,66.34l-40-40A8,8,0,0,0,168,24H88A16,16,0,0,0,72,40V56H56A16,16,0,0,0,40,72V216a16,16,0,0,0,16,16H168a16,16,0,0,0,16-16V200h16a16,16,0,0,0,16-16V72A8,8,0,0,0,213.66,66.34ZM136,192H88a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm0-32H88a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm64,24H184V104a8,8,0,0,0-2.34-5.66l-40-40A8,8,0,0,0,136,56H88V40h76.69L200,75.31Z\" }));\nexport default SvgFilesFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/files-fill.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 SvgCalendarFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM112,184a8,8,0,0,1-16,0V132.94l-4.42,2.22a8,8,0,0,1-7.16-14.32l16-8A8,8,0,0,1,112,120Zm56-8a8,8,0,0,1,0,16H136a8,8,0,0,1-6.4-12.8l28.78-38.37A8,8,0,1,0,145.07,132a8,8,0,1,1-13.85-8A24,24,0,0,1,176,136a23.76,23.76,0,0,1-4.84,14.45L152,176ZM48,80V48H72v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80Z\" }));\nexport default SvgCalendarFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/calendar-fill.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 <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgWatchFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M175.3,63.53l-6.24-34.38A16,16,0,0,0,153.32,16H102.68A16,16,0,0,0,86.94,29.15L80.7,63.53a79.9,79.9,0,0,0,0,128.94l6.24,34.38A16,16,0,0,0,102.68,240h50.64a16,16,0,0,0,15.74-13.15l6.24-34.38a79.9,79.9,0,0,0,0-128.94ZM102.68,32h50.64l3.91,21.55a79.75,79.75,0,0,0-58.46,0Zm50.64,192H102.68l-3.91-21.55a79.75,79.75,0,0,0,58.46,0ZM168,136H128a8,8,0,0,1-8-8V88a8,8,0,0,1,16,0v32h32a8,8,0,0,1,0,16Z\" }));\nexport default SvgWatchFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/watch-fill.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 <Icon 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 SvgLockKeyFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M208,80H176V56a48,48,0,0,0-96,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80Zm-72,78.63V184a8,8,0,0,1-16,0V158.63a24,24,0,1,1,16,0ZM160,80H96V56a32,32,0,0,1,64,0Z\" }));\nexport default SvgLockKeyFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/lock-key-fill.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 IconLock: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgLockKeyOpenFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M208,80H96V56a32,32,0,0,1,32-32c15.37,0,29.2,11,32.16,25.59a8,8,0,0,0,15.68-3.18C171.32,24.15,151.2,8,128,8A48.05,48.05,0,0,0,80,56V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80Zm-72,78.63V184a8,8,0,0,1-16,0V158.63a24,24,0,1,1,16,0Z\" }));\nexport default SvgLockKeyOpenFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/lock-key-open-fill.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 IconLockOpen: 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 SvgWarningFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM120,104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm8,88a12,12,0,1,1,12-12A12,12,0,0,1,128,192Z\" }));\nexport default SvgWarningFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/warning-fill.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 SvgCheckCircleFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm45.66,85.66-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35a8,8,0,0,1,11.32,11.32Z\" }));\nexport default SvgCheckCircleFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/check-circle-fill.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 SvgSkipForwardFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M208,40V216a8,8,0,0,1-16,0V146.77L72.43,221.55A15.95,15.95,0,0,1,48,208.12V47.88A15.95,15.95,0,0,1,72.43,34.45L192,109.23V40a8,8,0,0,1,16,0Z\" }));\nexport default SvgSkipForwardFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/skip-forward-fill.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 SvgSkipBackFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M208,47.88V208.12a16,16,0,0,1-24.43,13.43L64,146.77V216a8,8,0,0,1-16,0V40a8,8,0,0,1,16,0v69.23L183.57,34.45A15.95,15.95,0,0,1,208,47.88Z\" }));\nexport default SvgSkipBackFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/skip-back-fill.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 SvgKeyReturnFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm-32,96a8,8,0,0,1-8,8H99.31l10.35,10.34a8,8,0,0,1-11.32,11.32l-24-24a8,8,0,0,1,0-11.32l24-24a8,8,0,0,1,11.32,11.32L99.31,128H168V104a8,8,0,0,1,16,0Z\" }));\nexport default SvgKeyReturnFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/key-return-fill.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 SvgLinkBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M117.18,188.74a12,12,0,0,1,0,17l-5.12,5.12A58.26,58.26,0,0,1,70.6,228h0A58.62,58.62,0,0,1,29.14,127.92L63.89,93.17a58.64,58.64,0,0,1,98.56,28.11,12,12,0,1,1-23.37,5.44,34.65,34.65,0,0,0-58.22-16.58L46.11,144.89A34.62,34.62,0,0,0,70.57,204h0a34.41,34.41,0,0,0,24.49-10.14l5.11-5.12A12,12,0,0,1,117.18,188.74ZM226.83,45.17a58.65,58.65,0,0,0-82.93,0l-5.11,5.11a12,12,0,0,0,17,17l5.12-5.12a34.63,34.63,0,1,1,49,49L175.1,145.86A34.39,34.39,0,0,1,150.61,156h0a34.63,34.63,0,0,1-33.69-26.72,12,12,0,0,0-23.38,5.44A58.64,58.64,0,0,0,150.56,180h.05a58.28,58.28,0,0,0,41.47-17.17l34.75-34.75a58.62,58.62,0,0,0,0-82.91Z\" }));\nexport default SvgLinkBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/link-bold.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 SvgMoreVert = (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.61-126q-24.61 0-42.11-17.37-17.5-17.38-17.5-41.77 0-23.46 17.3-41.66 17.3-18.2 41.59-18.2Q505-245 522-226.78q17 18.21 17 42 0 23.78-16.89 41.28-16.9 17.5-41.5 17.5Zm0-295q-24.61 0-42.11-17.3T421-479.89Q421-505 438.3-522t41.59-17Q505-539 522-522.11q17 16.9 17 41.5 0 24.61-16.89 42.11-16.9 17.5-41.5 17.5Zm0-294q-24.61 0-42.11-17.68-17.5-17.67-17.5-42.5 0-24.82 17.3-42.32t41.59-17.5Q505-835 522-817.36t17 42.47q0 24.82-16.89 42.35-16.9 17.54-41.5 17.54Z\" }));\nexport default SvgMoreVert;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/more_vert.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 IconEllipsisVertical: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgColumnsPlusLeftBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M124,28H100A20,20,0,0,0,80,48V208a20,20,0,0,0,20,20h24a20,20,0,0,0,20-20V48A20,20,0,0,0,124,28Zm-4,176H104V52h16ZM200,28H176a20,20,0,0,0-20,20V208a20,20,0,0,0,20,20h24a20,20,0,0,0,20-20V48A20,20,0,0,0,200,28Zm-4,176H180V52h16ZM68,128a12,12,0,0,1-12,12H48v8a12,12,0,0,1-24,0v-8H16a12,12,0,0,1,0-24h8v-8a12,12,0,0,1,24,0v8h8A12,12,0,0,1,68,128Z\" }));\nexport default SvgColumnsPlusLeftBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/columns-plus-left-bold.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 IconPinLeft: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgColumnsPlusRightBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M80,28H56A20,20,0,0,0,36,48V208a20,20,0,0,0,20,20H80a20,20,0,0,0,20-20V48A20,20,0,0,0,80,28ZM76,204H60V52H76ZM156,28H132a20,20,0,0,0-20,20V208a20,20,0,0,0,20,20h24a20,20,0,0,0,20-20V48A20,20,0,0,0,156,28Zm-4,176H136V52h16Zm100-76a12,12,0,0,1-12,12h-8v8a12,12,0,0,1-24,0v-8h-8a12,12,0,0,1,0-24h8v-8a12,12,0,0,1,24,0v8h8A12,12,0,0,1,252,128Z\" }));\nexport default SvgColumnsPlusRightBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/columns-plus-right-bold.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 IconPinRight: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgAlignCenterVerticalSimpleBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M208,116H180V48a20,20,0,0,0-20-20H96A20,20,0,0,0,76,48v68H48a12,12,0,0,0,0,24H76v68a20,20,0,0,0,20,20h64a20,20,0,0,0,20-20V140h28a12,12,0,0,0,0-24Zm-52,88H100V52h56Z\" }));\nexport default SvgAlignCenterVerticalSimpleBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/align-center-vertical-simple-bold.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 IconUnPin: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgFilterAlt = (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: \"M375-135v-296L67-826h826L586-431v296H375Zm105-316 221-280H260l220 280Zm0 0Z\" }));\nexport default SvgFilterAlt;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/filter_alt.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 IconFilter: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgFilterAltOff = (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: \"m603-454-67-68 165-209H326l-94-95h661L603-454ZM842-29 586-285v150H375v-361L29-842l51-50L892-80l-50 51ZM536-522Z\" }));\nexport default SvgFilterAltOff;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@material-symbols/svg-700/sharp/filter_alt_off.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 IconFilterOff: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgPencilLineFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M227.32,73.37,182.63,28.69a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H216a8,8,0,0,0,0-16H115.32l112-112A16,16,0,0,0,227.32,73.37ZM79.32,188l90.34-90.34,16.69,16.68L96,204.69Zm79-101.66h0L68,176.69,51.31,160l90.35-90.34ZM48,179.31,76.69,208H48Z\" }));\nexport default SvgPencilLineFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/pencil-line-fill.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 IconEdit: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgTrashFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M216,48H176V40a24,24,0,0,0-24-24H104A24,24,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM112,168a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm0-120H96V40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8Z\" }));\nexport default SvgTrashFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/trash-fill.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 IconDelete: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgBroomFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M235.29,216.7C212.86,205.69,200,182.12,200,152V134.69a15.94,15.94,0,0,0-10.09-14.87l-28.65-11.46A8,8,0,0,1,156.79,98l22.32-56.67C184,28.79,178,14.21,165.34,9.51a24,24,0,0,0-30.7,13.71L112.25,80.08a8,8,0,0,1-10.41,4.5L73.11,73.08a15.91,15.91,0,0,0-17.38,3.66C34.68,98.4,24,123.71,24,152a111.53,111.53,0,0,0,31.15,77.53A8.06,8.06,0,0,0,61,232H232a8,8,0,0,0,8-7.51A8.21,8.21,0,0,0,235.29,216.7ZM115.11,216a87.52,87.52,0,0,1-24.26-41.71,8.21,8.21,0,0,0-9.25-6.18A8,8,0,0,0,75.28,178a105.33,105.33,0,0,0,18.36,38H64.44A95.62,95.62,0,0,1,40,152a85.92,85.92,0,0,1,7.73-36.3l137.8,55.13c3,18.06,10.55,33.5,21.89,45.19Z\" }));\nexport default SvgBroomFill;\n","import type {FC, SVGProps} from 'react';\nimport classNames from 'classnames';\nimport Icon from '@phosphor-icons/core/assets/fill/broom-fill.svg?react';\n\nimport classes from './Icon.module.css';\n// import Icon from './svg/broom-fill.svg?react';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconClear: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSortAscendingBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M128,128a12,12,0,0,1-12,12H48a12,12,0,0,1,0-24h68A12,12,0,0,1,128,128ZM48,76H180a12,12,0,0,0,0-24H48a12,12,0,0,0,0,24Zm52,104H48a12,12,0,0,0,0,24h52a12,12,0,0,0,0-24Zm132.49-20.49a12,12,0,0,0-17,0L196,179V112a12,12,0,0,0-24,0v67l-19.51-19.52a12,12,0,0,0-17,17l40,40a12,12,0,0,0,17,0l40-40A12,12,0,0,0,232.49,159.51Z\" }));\nexport default SvgSortAscendingBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/sort-ascending-bold.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 IconSortAsc: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSortDescendingBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M36,128a12,12,0,0,1,12-12h68a12,12,0,0,1,0,24H48A12,12,0,0,1,36,128ZM48,76h52a12,12,0,0,0,0-24H48a12,12,0,0,0,0,24ZM180,180H48a12,12,0,0,0,0,24H180a12,12,0,0,0,0-24ZM232.49,79.51l-40-40a12,12,0,0,0-17,0l-40,40a12,12,0,0,0,17,17L172,77v67a12,12,0,0,0,24,0V77l19.51,19.52a12,12,0,0,0,17-17Z\" }));\nexport default SvgSortDescendingBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/sort-descending-bold.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 IconSortDesc: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSwatchesFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M240,155.91a16,16,0,0,0-1-5.22L219.94,98.48A16,16,0,0,0,199.49,89l-67.81,24.57,12.08-69A16,16,0,0,0,130.84,26L76.17,16.25a15.94,15.94,0,0,0-18.47,13l-25,143.12A43.82,43.82,0,0,0,75.78,224H224a16,16,0,0,0,16-16ZM76,196a16,16,0,1,1,16-16A16,16,0,0,1,76,196Zm42.72-8.38,9.78-55.92L204.92,104,224,156.11,116.78,195A44.89,44.89,0,0,0,118.72,187.62ZM224,208H127.74L224,173.11Z\" }));\nexport default SvgSwatchesFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/swatches-fill.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 IconSwatches: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgBellFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M221.8,175.94C216.25,166.38,208,139.33,208,104a80,80,0,1,0-160,0c0,35.34-8.26,62.38-13.81,71.94A16,16,0,0,0,48,200H88.81a40,40,0,0,0,78.38,0H208a16,16,0,0,0,13.8-24.06ZM128,216a24,24,0,0,1-22.62-16h45.24A24,24,0,0,1,128,216Z\" }));\nexport default SvgBellFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/bell-fill.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 IconNotification: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgWarningCircleBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M128,20A108,108,0,1,0,236,128,108.12,108.12,0,0,0,128,20Zm0,192a84,84,0,1,1,84-84A84.09,84.09,0,0,1,128,212Zm-12-80V80a12,12,0,0,1,24,0v52a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,172Z\" }));\nexport default SvgWarningCircleBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/warning-circle-bold.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 IconErrorOutline: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, classes.error, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgShuffleBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M240.49,175.51a12,12,0,0,1,0,17l-24,24a12,12,0,0,1-17-17L203,196h-2.09a76.17,76.17,0,0,1-61.85-31.83L97.38,105.78A52.1,52.1,0,0,0,55.06,84H32a12,12,0,0,1,0-24H55.06a76.17,76.17,0,0,1,61.85,31.83l41.71,58.39A52.1,52.1,0,0,0,200.94,172H203l-3.52-3.51a12,12,0,0,1,17-17Zm-95.62-72.62a12,12,0,0,0,16.93-1.13A52,52,0,0,1,200.94,84H203l-3.52,3.51a12,12,0,0,0,17,17l24-24a12,12,0,0,0,0-17l-24-24a12,12,0,0,0-17,17L203,60h-2.09a76,76,0,0,0-57.2,26A12,12,0,0,0,144.87,102.89Zm-33.74,50.22a12,12,0,0,0-16.93,1.13A52,52,0,0,1,55.06,172H32a12,12,0,0,0,0,24H55.06a76,76,0,0,0,57.2-26A12,12,0,0,0,111.13,153.11Z\" }));\nexport default SvgShuffleBold;\n","import type {FC, SVGProps} from 'react';\nimport classNames from 'classnames';\nimport Icon from '@phosphor-icons/core/assets/bold/shuffle-bold.svg?react';\n\nimport classes from './Icon.module.css';\n\ntype Props = SVGProps<SVGSVGElement> & {\n className?: string;\n};\n\nexport const IconSortOff: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgColumnsBold = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M100,28H64A20,20,0,0,0,44,48V208a20,20,0,0,0,20,20h36a20,20,0,0,0,20-20V48A20,20,0,0,0,100,28ZM96,204H68V52H96ZM192,28H156a20,20,0,0,0-20,20V208a20,20,0,0,0,20,20h36a20,20,0,0,0,20-20V48A20,20,0,0,0,192,28Zm-4,176H160V52h28Z\" }));\nexport default SvgColumnsBold;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/bold/columns-bold.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 IconColumns: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgNumpadFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M200,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V40A16,16,0,0,0,200,24ZM80,164a12,12,0,1,1,12-12A12,12,0,0,1,80,164Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,80,124Zm0-40A12,12,0,1,1,92,72,12,12,0,0,1,80,84Zm48,120a12,12,0,1,1,12-12A12,12,0,0,1,128,204Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,128,164Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,128,124Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,128,84Zm48,80a12,12,0,1,1,12-12A12,12,0,0,1,176,164Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,176,124Zm0-40a12,12,0,1,1,12-12A12,12,0,0,1,176,84Z\" }));\nexport default SvgNumpadFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/numpad-fill.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 IconNumeric: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgPlayFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M240,128a15.74,15.74,0,0,1-7.6,13.51L88.32,229.65a16,16,0,0,1-16.2.3A15.86,15.86,0,0,1,64,216.13V39.87a15.86,15.86,0,0,1,8.12-13.82,16,16,0,0,1,16.2.3L232.4,114.49A15.74,15.74,0,0,1,240,128Z\" }));\nexport default SvgPlayFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/play-fill.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 IconPlay: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgPauseFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M216,48V208a16,16,0,0,1-16,16H160a16,16,0,0,1-16-16V48a16,16,0,0,1,16-16h40A16,16,0,0,1,216,48ZM96,32H56A16,16,0,0,0,40,48V208a16,16,0,0,0,16,16H96a16,16,0,0,0,16-16V48A16,16,0,0,0,96,32Z\" }));\nexport default SvgPauseFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/pause-fill.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 IconPause: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSpeakerHighFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M160,32.25V223.69a8.29,8.29,0,0,1-3.91,7.18,8,8,0,0,1-9-.56l-65.57-51A4,4,0,0,1,80,176.16V79.84a4,4,0,0,1,1.55-3.15l65.57-51a8,8,0,0,1,10,.16A8.27,8.27,0,0,1,160,32.25ZM60,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H60a4,4,0,0,0,4-4V84A4,4,0,0,0,60,80Zm126.77,20.84a8,8,0,0,0-.72,11.3,24,24,0,0,1,0,31.72,8,8,0,1,0,12,10.58,40,40,0,0,0,0-52.88A8,8,0,0,0,186.74,100.84Zm40.89-26.17a8,8,0,1,0-11.92,10.66,64,64,0,0,1,0,85.34,8,8,0,1,0,11.92,10.66,80,80,0,0,0,0-106.66Z\" }));\nexport default SvgSpeakerHighFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/speaker-high-fill.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 IconVolume: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgSpeakerSlashFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M213.92,210.62a8,8,0,1,1-11.84,10.76L160,175.09v48.6a8.29,8.29,0,0,1-3.91,7.18,8,8,0,0,1-9-.56l-65.55-51A4,4,0,0,1,80,176.18V87.09L42.08,45.38A8,8,0,1,1,53.92,34.62Zm-27.21-55.46a8,8,0,0,0,11.29-.7,40,40,0,0,0,0-52.88,8,8,0,1,0-12,10.57,24,24,0,0,1,0,31.72A8,8,0,0,0,186.71,155.16Zm40.92-80.49a8,8,0,1,0-11.92,10.66,64,64,0,0,1,0,85.34,8,8,0,1,0,11.92,10.66,80,80,0,0,0,0-106.66ZM153,119.87a4,4,0,0,0,7-2.7V32.25a8.27,8.27,0,0,0-2.88-6.4,8,8,0,0,0-10-.16L103.83,59.33a4,4,0,0,0-.5,5.85ZM60,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H60a4,4,0,0,0,4-4V84A4,4,0,0,0,60,80Z\" }));\nexport default SvgSpeakerSlashFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/speaker-slash-fill.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 IconVolumeOff: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgBoxArrowDownFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M223.16,68.42l-16-32A8,8,0,0,0,200,32H56a8,8,0,0,0-7.16,4.42l-16,32A8.08,8.08,0,0,0,32,72V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V72A8.08,8.08,0,0,0,223.16,68.42Zm-57.5,89.24-32,32a8,8,0,0,1-11.32,0l-32-32a8,8,0,0,1,11.32-11.32L120,164.69V104a8,8,0,0,1,16,0v60.69l18.34-18.35a8,8,0,0,1,11.32,11.32ZM52.94,64l8-16H195.06l8,16Z\" }));\nexport default SvgBoxArrowDownFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/box-arrow-down-fill.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 IconDownloadVideo: FC<Props> = ({className, ...restProps}) => {\n return <Icon className={classNames(classes.icon, className)} {...restProps} />;\n};\n","import * as React from \"react\";\nconst SvgCassetteTapeFill = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 256 256\", fill: \"currentColor\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M156.3,96a31.92,31.92,0,0,0,0,32H99.7a31.92,31.92,0,0,0,0-32ZM72,96a16,16,0,1,0,16,16A16,16,0,0,0,72,96ZM240,64V192a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V64A16,16,0,0,1,32,48H224A16,16,0,0,1,240,64ZM186,192l-15.6-20.8A8,8,0,0,0,164,168H92a8,8,0,0,0-6.4,3.2L70,192Zm30-80a32,32,0,0,0-32-32H72a32,32,0,0,0,0,64H184A32,32,0,0,0,216,112ZM184,96a16,16,0,1,0,16,16A16,16,0,0,0,184,96Z\" }));\nexport default SvgCassetteTapeFill;\n","import type {FC, SVGProps} from 'react';\nimport Icon from '@phosphor-icons/core/assets/fill/cassette-tape-fill.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 IconAudio: 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 resize = 'resize',\n}\n\n/**\n * Utility hook to subscribe to browser events.\n * @param eventType - Select an event to subscribe to\n * @param callback - Event callback function\n * @param element - Provide an HTMLElement to attach event handlers. Optional, defaults to window\n */\nexport const useEventListener = <TEvent, TElement extends HTMLElement | null>(\n eventType: keyof typeof EventType,\n callback: (event: TEvent) => void,\n element?: TElement\n) => {\n const targetElement = element ?? window;\n const callbackRef = useRef(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (targetElement == null) return;\n const handler = ((e: TEvent) =>\n callbackRef.current(e)) as unknown as EventListenerOrEventListenerObject;\n targetElement.addEventListener(eventType, handler);\n\n return () => targetElement.removeEventListener(eventType, handler);\n }, [eventType, targetElement]);\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 disabled?: boolean;\n};\n\nexport const ActionButton: FC<Props> = ({\n title,\n icon,\n type = 'default',\n onClick = () => {},\n className,\n disabled,\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 disabled={disabled}\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","export const isBrowser = () => {\n return Boolean(globalThis?.document);\n};\n","import {useEffect, useLayoutEffect} from 'react';\n\nimport {isBrowser} from '@/internal/utils/isBrowser.ts';\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 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","export enum Animations {\n 'slide-top' = 'slide-top',\n 'scale-in' = 'scale-in',\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\nimport {Animations} from './types.ts';\n\nexport type Props = Omit<\n ComponentProps<typeof Transition>,\n 'enterClassName' | 'exitClassName' | 'exitDoneClassName' | 'enterDoneClassName'\n> & {\n animation?: keyof typeof Animations;\n};\n\nexport const TransitionDialog: FC<Props> = ({children, animation, ...restProps}) => {\n return (\n <Transition\n {...restProps}\n exitClassName={classNames(\n {\n [classes.slideTopExit]: animation === Animations['slide-top'],\n [classes.scaleInExit]: animation === Animations['scale-in'],\n },\n classes.backdropFadeExit\n )}\n enterClassName={classNames(\n {\n [classes.slideTopEnter]: animation === Animations['slide-top'],\n [classes.scaleInEnter]: animation === Animations['scale-in'],\n },\n classes.backdropFadeEnter\n )}>\n {children}\n </Transition>\n );\n};\n","export const last = <TItem>(arr: TItem[]) => {\n return arr[arr.length - 1];\n};\n","type Callback<TValue> = (value: TValue, index: number, array: TValue[]) => boolean;\n\nexport const without = <TValue>(filter: TValue | Callback<TValue>, array: TValue[]) => {\n const filterFn =\n typeof filter === 'string'\n ? (member: TValue) => member !== filter\n : (filter as Callback<TValue>);\n return array.filter(filterFn);\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 parameters */\nexport type DialogParams = Record<string, unknown>;\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: Id; params?: DialogParams}[];\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 /** Optional Dialog parameters */\n params?: DialogParams;\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: dialogId}) => dialogId !== id, state.open);\n return {\n ...state,\n open: nextOpen,\n };\n }\n case Actions.DIALOG_OPEN: {\n const {id, params} = action;\n return {\n ...state,\n open: [...state.open, {id, params}],\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, DialogParams} from './DialogReducer';\nimport {Actions} from './DialogReducer';\n\nconst useSelector = <TResult,>(callback: (arg0: DialogState) => TResult) => {\n const {state} = useDialogContext();\n return callback(state);\n};\n\nexport const useDialogState = (id: string) => {\n const {dispatch} = useDialogContext();\n const openDialog = useCallback(\n (params?: DialogParams) => {\n dispatch({\n type: Actions.DIALOG_OPEN,\n id,\n params,\n });\n },\n [id, dispatch]\n );\n const closeDialog = useCallback(() => {\n dispatch({\n type: Actions.DIALOG_CLOSE,\n id,\n });\n }, [id, dispatch]);\n const topDialogId = useSelector((state: DialogState) => {\n const topDialog = last(state.open);\n return topDialog?.id;\n });\n const isOpen = id === topDialogId;\n const dialogParams = useSelector((state: DialogState) => {\n const topDialog = state.open.find(({id: dialogId}) => id === dialogId);\n return topDialog?.params;\n });\n return {\n openDialog,\n closeDialog,\n isOpen,\n dialogParams,\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';\nimport {Animations} from './types.ts';\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 a focus trap for Dialog */\n trapFocus?: boolean;\n /** Select Dialog animation style */\n animation?: keyof typeof Animations;\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 animation = Animations['slide-top'],\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 animation={animation}\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)}>\n <H3>{dialogTitle}</H3>\n </header>\n )}\n <div className={classNames(classes.body)}>{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, IconSuccess, IconWarning, IconNotification} 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 an Icon component to show instead default one\n */\n icon?: FC;\n /** Select a 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]: IconNotification,\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 && !ref.current!.contains(event.target as TElement)) {\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 className={classes.backdrop}>\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 </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 as TProps)} 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 Props = DataAttributes &\n LibraryProps & {\n /**\n * Set the name of the HTMLFormElement.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/name\n */\n name?: FormHTMLAttributes<HTMLFormElement>['name'];\n /**\n * Define whether inputted text is automatically capitalized and, if so, in what manner.\n * Relevant for mobile devices with virtual keyboards or voice input\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autocapitalize\n */\n autoCapitalize?: FormHTMLAttributes<HTMLFormElement>['autoCapitalize'];\n /**\n * Control autocomplete behavior\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\n */\n autoComplete?: FormHTMLAttributes<HTMLFormElement>['autoComplete'];\n /**\n * Disable validation\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#novalidate\n */\n noValidate?: FormHTMLAttributes<HTMLFormElement>['noValidate'];\n /**\n * Callback when the form was submitted. Gets form state as a second parameter\n */\n onSubmit?: (event: SyntheticEvent<HTMLFormElement>, formState: FormState) => void;\n /**\n * Callback when the form has failed validation. Gets form state as a second parameter\n */\n onInvalid?: (event: InvalidEvent<HTMLFormElement>, formState: FormState) => void;\n /**\n * Callback when the form was reset. Gets form state as a second parameter\n */\n onReset?: (event: ChangeEvent<HTMLFormElement>, formState: FormState) => void;\n /**\n * Callback when the form content was change. Gets form state as a second parameter\n */\n onChange?: (event: ChangeEvent<HTMLFormElement>, formState: FormState) => void;\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\nexport {Form as FormVanilla};\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, useMemo} 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 /** Set text label */\n label: string;\n /** Set hint text to be displayed below the input */\n hint?: string;\n /**\n * Renders * character after label indicating required input status.\n * Also, set automatically when required input is provided.\n */\n required?: boolean;\n };\n\nexport const FormField = forwardRef<HTMLDivElement, Props>(\n ({className, children, label, hint, required, ...nativeProps}, ref) => {\n const inputProps = Children.only(children).props;\n const id = useInternalId(inputProps.id);\n const hintId = `${id}-hint`;\n const childrenWithProps = useMemo(\n () =>\n cloneElement(Children.only(children), {\n id,\n ...(hint && {'aria-describedby': hintId}),\n }),\n [children, hint, hintId, id]\n );\n return (\n <div {...nativeProps} ref={ref} className={classNames(classes.wrapper, className)}>\n <label\n className={classNames(classes.label, {\n [classes.required]: inputProps.required || required,\n })}\n htmlFor={id}>\n {label}\n </label>\n {childrenWithProps}\n {hint && (\n <div className={classes.hint} id={hintId}>\n {hint}\n </div>\n )}\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 pristine = 'pristine',\n}\n\nexport type ValidationConfig = {\n state: keyof typeof ValidationState;\n errorMessage?: string;\n};\n\nexport type ValidatorFn = (\n value: unknown,\n validityState: ValidityState,\n formState: FormState\n) => string | Promise<string>;\n\nexport type ValidationProps = {\n /** Enable to re-run validation when any field in the form changes */\n revalidateOnFormChange?: boolean;\n /**\n * Provide custom message for external validation errors. Applies only to errors reported by\n * validationState prop.\n * @see validationState\n */\n errorMessage?: string;\n /**\n * Set external validation state for input. Can be a string or a validator function\n * @see ValidationState\n * @see ValidatorFn\n * @see https://koval.support/inputs/input-validation\n */\n validation?: keyof typeof ValidationState | ValidatorFn;\n};\n","import type {ValidatorFn} from './ValidationProps.ts';\n\nexport const defaultValidator: ValidatorFn = (_: unknown | undefined) => '';\n","import type {Dispatch} from 'react';\nimport {useEffect} from 'react';\n\nimport {useFormSelectors} from '@/lib/Form';\n\nimport {ValidationState} from './ValidationProps.ts';\n\nexport const useHandleFormReset = (setValidity: Dispatch<ValidationState>) => {\n const {pristine} = useFormSelectors();\n useEffect(() => {\n pristine && setValidity(ValidationState.pristine);\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 {Dispatch, FormEvent, SetStateAction} from 'react';\nimport {useCallback, useState} from 'react';\nimport AwesomeDebouncePromise from 'awesome-debounce-promise';\n\nimport type {ValidationProps, ValidatorFn} 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\nconst useValidatorFn = <TEvent extends FormEvent, TElement extends HTMLInputElement>({\n validatorFn,\n reportValidity,\n setValidity,\n}: {\n validatorFn: ValidatorFn;\n reportValidity: (event: TEvent) => void;\n setValidity: Dispatch<SetStateAction<keyof typeof ValidationState>>;\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 const createValidatorExternal = useCallback(() => {}, []);\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 return {createValidatorSync, createValidatorAsync, createValidatorExternal};\n};\n\nconst createValidatorFn = (validation: ValidationProps['validation']): ValidatorFn => {\n if (typeof validation === 'function') {\n return validation;\n }\n return defaultValidator;\n};\n\nenum Modes {\n async = 'async',\n external = 'external',\n sync = 'sync',\n}\n\nconst getMode = (validation: ValidationProps['validation']) => {\n if (validation?.constructor.name === 'AsyncFunction') {\n return Modes.async;\n } else if (typeof validation === 'string') {\n return Modes.external;\n }\n\n return Modes.sync;\n};\n\nexport const useValidation = <TEvent extends FormEvent, TElement extends HTMLInputElement>({\n validation,\n hasValidators,\n}: ValidationProps & {hasValidators: boolean}) => {\n const validatorFn = createValidatorFn(validation);\n const mode = getMode(validation);\n\n const [validity, setValidity] = useState<keyof typeof ValidationState>(\n ValidationState.pristine\n );\n\n useHandleFormReset(setValidity);\n\n const reportValidity = useCallback(\n (event: TEvent) => {\n const isValid = (event.target as TElement).reportValidity();\n const ValidState = hasValidators ? ValidationState.valid : ValidationState.pristine;\n const nextValidationState = isValid ? ValidState : ValidationState.error;\n /**\n * Change state only when input has validators or is in the error state.\n * This is required to avoid always showing a green checkmark for input without validation.\n */\n (hasValidators || validity === ValidationState.error) &&\n setValidity(nextValidationState);\n },\n [hasValidators, validity]\n );\n\n const {createValidatorAsync, createValidatorSync, createValidatorExternal} = useValidatorFn({\n validatorFn,\n reportValidity,\n setValidity,\n });\n\n const validateInteractive = useCallback(\n (event: TEvent) => {\n switch (mode) {\n case 'sync': {\n return createValidatorSync('interactive', event);\n }\n case 'async': {\n return createValidatorAsync('interactive', event);\n }\n case 'external': {\n return createValidatorExternal();\n }\n }\n },\n [createValidatorAsync, createValidatorExternal, createValidatorSync, mode]\n );\n\n const validateTextual = useCallback(\n (event: TEvent) => {\n switch (mode) {\n case 'sync': {\n return createValidatorSync('textual', event);\n }\n case 'async': {\n return createValidatorAsync('textual', event);\n }\n case 'external': {\n return createValidatorExternal();\n }\n }\n },\n [mode, createValidatorSync, createValidatorAsync, createValidatorExternal]\n );\n\n return {validateInteractive, validateTextual, validity, setValidity};\n};\n","import type {MutableRefObject} from 'react';\nimport {type FormEvent, useEffect} from 'react';\n\nconst ChangeEvent = new Event('change', {bubbles: false});\n\nexport const useRevalidateOnFormChange = (\n inputRef: MutableRefObject<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null>,\n validateInput: (event: FormEvent) => unknown,\n condition?: boolean\n) => {\n useEffect(() => {\n if (condition) {\n const inputElement = inputRef?.current;\n const formElement = inputElement?.form;\n const revalidateInput = () => {\n inputElement && inputElement?.dispatchEvent(ChangeEvent);\n inputElement && validateInput(ChangeEvent as unknown as FormEvent);\n };\n formElement && formElement.addEventListener('change', revalidateInput);\n return () => {\n formElement && formElement.removeEventListener('change', revalidateInput);\n };\n }\n }, [inputRef, condition, validateInput]);\n};\n","import type {Dispatch, SetStateAction, MutableRefObject} from 'react';\nimport {useEffect} from 'react';\n\nimport type {ValidationProps} from '@/internal/inputs';\nimport {ValidationState} from '@/internal/inputs';\n\nexport type Props = {\n validation?: ValidationProps['validation'];\n setValidity: Dispatch<SetStateAction<keyof typeof ValidationState>>;\n inputRef: MutableRefObject<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null>;\n errorMessage?: string;\n};\n\n/**\n * React hook designed to contain effects which synchronize input validation\n * with external validation state via prop or context (TODO).\n * @see ValidationState\n */\nexport const useExternalValidation = ({validation, inputRef, setValidity, errorMessage}: Props) => {\n useEffect(() => {\n if (typeof validation === 'string') {\n setValidity(validation);\n switch (validation) {\n case 'valid': {\n inputRef.current?.setCustomValidity('');\n break;\n }\n case 'error': {\n inputRef.current?.setCustomValidity(errorMessage || ValidationState.error);\n break;\n }\n case 'inProgress': {\n inputRef.current?.setCustomValidity(errorMessage || ValidationState.inProgress);\n break;\n }\n default: {\n inputRef.current?.setCustomValidity('');\n }\n }\n }\n }, [errorMessage, inputRef, setValidity, validation]);\n};\n","import {Fragment} from 'react';\n\nimport {IconErrorOutline, IconLoader, IconValid} from '@/internal/Icons';\n\nimport {ValidationState} from './ValidationProps.ts';\n\nexport const useValidationIcon = (validity: keyof typeof ValidationState) => {\n return {\n [ValidationState.error]: IconErrorOutline,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n [ValidationState.pristine]: () => <Fragment />,\n }[validity!];\n};\n","import type {ChangeEvent} from 'react';\nimport {forwardRef, useCallback, useEffect} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {\n ValidationState,\n useValidation,\n useRevalidateOnFormChange,\n useExternalValidation,\n useValidationIcon,\n} from '@/internal/inputs';\nimport type {\n NativePropsInteractive,\n CallbackPropsInteractive,\n ValidationProps,\n} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './InputCheckbox.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsInteractive &\n CallbackPropsInteractive &\n ValidationProps & {\n /** Set a text for the checkbox label */\n label?: string;\n /**\n * Set an indeterminate state for the checkbox\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate\n */\n indeterminate?: boolean;\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 required,\n revalidateOnFormChange,\n validation,\n errorMessage,\n indeterminate = false,\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n\n const hasValidators = Boolean(validation) || Boolean(required);\n\n const {validateInteractive, validity, setValidity} = useValidation({\n validation,\n hasValidators,\n });\n\n const inputRef = useInternalRef(ref);\n useRevalidateOnFormChange(inputRef, validateInteractive, revalidateOnFormChange);\n\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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 useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate, inputRef]);\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n <input\n {...nativeProps}\n className={classNames(classes.input, {[classes.indeterminate]: indeterminate})}\n ref={inputRef}\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 required={required}\n />\n {label && (\n <label\n className={classNames(classes.label, {[classes.required]: required})}\n htmlFor={id}>\n {label}\n </label>\n )}\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';\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 /**\n * Set a label text for the group\n */\n label?: string;\n children: ReactElement<ChildProps & unknown>[];\n /**\n * Provide a name for each input control in the group\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#name\n */\n name: string;\n /**\n * Disable all inputs in the group\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#disabled\n */\n disabled?: FieldsetHTMLAttributes<HTMLFieldSetElement>['disabled'];\n /**\n * Make all inputs in the group required\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/required\n */\n required?: boolean;\n /**\n * Set a text for the hint displayed below the group\n */\n hint?: string;\n };\n\nexport const InputGroup = forwardRef<HTMLFieldSetElement, Props>(\n ({className, id, label, children, name, disabled, hint, required, ...nativeProps}, ref) => {\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 <label\n className={classNames(classes.label, {[classes.required]: required})}\n htmlFor={id}>\n {label}\n </label>\n )}\n </div>\n );\n }\n);\n\nInputRadio.displayName = 'InputRadio';\n","import type {ChangeEvent, FC, InputHTMLAttributes} from 'react';\nimport {Fragment} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {IconErrorOutline, IconValid, IconLoader} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {\n ValidationState,\n useValidation,\n useRevalidateOnFormChange,\n useExternalValidation,\n} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.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 a 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` aren't 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 /**\n * Provide an icon to prepend to the input\n */\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 readOnly,\n size = 16,\n id,\n required,\n revalidateOnFormChange,\n errorMessage = ValidationState.error,\n validation,\n ...nativeProps\n },\n ref\n ) => {\n const inputRef = useInternalRef(ref);\n\n const hasValidators =\n Boolean(validation) ||\n Boolean(required) ||\n typeof nativeProps.maxLength === 'number' ||\n typeof nativeProps.minLength === 'number' ||\n typeof nativeProps.pattern === 'string';\n\n const {validateTextual, validity, setValidity} = useValidation({\n validation,\n hasValidators,\n });\n\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n\n const ValidationIcon = {\n [ValidationState.error]: IconErrorOutline,\n [ValidationState.valid]: IconValid,\n [ValidationState.inProgress]: IconLoader,\n [ValidationState.pristine]: Fragment,\n }[validity!];\n\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={inputRef}\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 {IconCalendar} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {\n useRevalidateOnFormChange,\n useExternalValidation,\n useValidationIcon,\n ValidationState,\n useValidation,\n} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.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 revalidateOnFormChange,\n validation,\n errorMessage,\n ...nativeProps\n },\n ref\n ) => {\n const hasValidators =\n Boolean(validation) ||\n typeof nativeProps.min === 'string' ||\n typeof nativeProps.max === 'string';\n\n const id = useInternalId(idProp);\n const labelRef = useRef<HTMLLabelElement>(null);\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n const inputRef = useInternalRef(ref);\n\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n\n const ValidationIcon = useValidationIcon(validity);\n\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={inputRef}\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","import type {ChangeEvent, FC} from 'react';\nimport {forwardRef, useCallback, Fragment, useEffect, useState} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {\n useRevalidateOnFormChange,\n useExternalValidation,\n ValidationState,\n useValidation,\n} from '@/internal/inputs';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\nimport {InputDate, InputTime} from '@/lib';\n\nimport classes from './InputDateTime.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'maxLength' | 'minLength' | 'autoComplete' | 'inputMode' | 'pattern'> &\n Omit<CallbackPropsTextual, 'defaultValue'> &\n ValidationProps & {\n prefix?: FC;\n };\n\nconst noOp = () => {};\n\nexport const InputDateTime = forwardRef<HTMLInputElement, 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 // TODO: enable controlled/non-controlled mode\n // defaultValue,\n validation,\n errorMessage,\n revalidateOnFormChange,\n ...nativeProps\n },\n ref\n ) => {\n const inputRef = useInternalRef(ref);\n\n const hasValidators = Boolean(validation);\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\n\n const [date, setDate] = useState('');\n const [time, setTime] = useState('00:00');\n const [combined, setCombined] = useState(value || 'T00:00');\n\n useEffect(() => {\n setCombined(value || 'T00:00');\n if (value !== undefined && value !== 'T00:00') {\n const [nextDate, nextTime] = (value as string).split('T');\n setDate(nextDate);\n setTime(nextTime);\n } else {\n setDate('');\n setTime('00:00');\n }\n }, [value]);\n\n const handleSetDate = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n setDate(event.target.value);\n }, []);\n\n const handleSetTime = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n setTime(event.target.value);\n }, []);\n\n useEffect(() => {\n setCombined(`${date}T${time}`);\n }, [date, time]);\n\n useEffect(() => {\n inputRef.current?.dispatchEvent(new Event('change', {bubbles: true}));\n }, [combined, inputRef]);\n\n useEffect(() => {\n inputRef.current?.addEventListener('change', event => {\n // TODO: improve type\n validateTextual(event as unknown as ChangeEvent<HTMLInputElement>);\n onChange(event as unknown as ChangeEvent<HTMLInputElement>);\n });\n }, [inputRef, onChange, validateTextual]);\n\n return (\n <Fragment>\n <div className={classNames(classes.wrapper, className)}>\n <input\n {...nativeProps}\n type=\"text\"\n placeholder={placeholder}\n className={classes.inputMarionette}\n ref={inputRef}\n disabled={disabled}\n value={combined}\n onChange={noOp}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n />\n <InputDate value={date} onChange={handleSetDate} validation={validity} />\n <InputTime value={time} onChange={handleSetTime} validation={validity} />\n </div>\n </Fragment>\n );\n }\n);\n\nInputDateTime.displayName = 'InputDateTime';\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 {IconSwatches} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {\n CallbackPropsTextual,\n ValidationProps,\n NativePropsInteractive,\n} from '@/internal/inputs';\nimport {useRevalidateOnFormChange} from '@/internal/inputs';\nimport {useExternalValidation, useValidation, useValidationIcon} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.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 ValidationProps & {\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 errorMessage,\n revalidateOnFormChange,\n validation,\n ...nativeProps\n },\n ref\n ) => {\n const hasValidators = Boolean(validation);\n\n const {validity, setValidity, validateTextual} = useValidation({\n validation,\n hasValidators,\n });\n const id = useInternalId(idProp);\n\n const inputRef = useInternalRef(ref);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n\n const ValidationIcon = useValidationIcon(validity);\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={inputRef}\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 <IconSwatches className={classNames(classes.icon)} />\n </div>\n <label htmlFor={id} className={classes.label} ref={labelRef}>\n {displayValue.toLowerCase() || placeholder}\n </label>\n {validity && <ValidationIcon />}\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 {IconClock} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {useExternalValidation} from '@/internal/inputs';\nimport {useRevalidateOnFormChange} from '@/internal/inputs';\nimport {ValidationState, useValidationIcon, 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 revalidateOnFormChange,\n validation,\n errorMessage,\n ...nativeProps\n },\n ref\n ) => {\n const inputRef = useInternalRef(ref);\n const hasValidators =\n Boolean(validation) ||\n typeof nativeProps.min === 'string' ||\n typeof nativeProps.max === 'string';\n\n const {validity, setValidity, validateTextual} = useValidation({validation, hasValidators});\n\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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/no-unsafe-function-type\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 type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsNumeric, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {useExternalValidation} from '@/internal/inputs';\nimport {useRevalidateOnFormChange} from '@/internal/inputs';\nimport {ValidationState, useValidationIcon, useValidation} from '@/internal/inputs';\nimport {useControllableState} from '@/internal/hooks/useControllableState.ts';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.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 * Enable to display scale below input\n */\n displayScale?: boolean;\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 min = 0,\n max = 100,\n bars = 5,\n scaleUnit = '',\n revalidateOnFormChange,\n validation,\n errorMessage,\n displayScale,\n ...nativeProps\n },\n ref\n ) => {\n const hasValidators = Boolean(validation) || Boolean(nativeProps.required);\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n const inputRef = useInternalRef(ref);\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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={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 list={scaleId}\n min={min}\n max={max}\n />\n {displayScale && (\n <datalist id={scaleId} className={classes.scale}>\n {createOptions({min: Number(min), max: Number(max), bars, scaleUnit})}\n </datalist>\n )}\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 {IconFile} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {\n useRevalidateOnFormChange,\n useExternalValidation,\n useValidationIcon,\n ValidationState,\n useValidation,\n} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './InputFile.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'inputMode' | 'maxLength' | 'minLength' | 'pattern' | 'readOnly'> &\n ValidationProps &\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 errorMessage,\n revalidateOnFormChange,\n validation,\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 hasValidators = Boolean(validation);\n const {validateTextual, validity, setValidity} = useValidation({\n validation,\n hasValidators,\n });\n const inputRef = useInternalRef(ref);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n\n const ValidationIcon = useValidationIcon(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={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 <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} from 'react';\nimport {useMemo} from 'react';\nimport {useState} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {IconLock, IconLockOpen} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {\n ValidationState,\n useValidationIcon,\n useValidation,\n useRevalidateOnFormChange,\n useExternalValidation,\n} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './InputPassword.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps &\n NativePropsTextual &\n CallbackPropsTextual &\n ValidationProps;\n\nenum InputType {\n password = 'password',\n text = 'text',\n}\n\nexport const InputPassword = 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,\n readOnly,\n size = 16,\n revalidateOnFormChange,\n validation,\n errorMessage,\n ...nativeProps\n },\n ref\n ) => {\n const hasValidators =\n Boolean(validation) ||\n Boolean(nativeProps.required) ||\n typeof nativeProps.maxLength === 'number' ||\n typeof nativeProps.minLength === 'number' ||\n typeof nativeProps.pattern === 'string';\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n const inputRef = useInternalRef(ref);\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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 inputId = useInternalId(id);\n\n const handleSelect = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n readOnly && event.target.select();\n },\n [readOnly]\n );\n\n const [type, setType] = useState<keyof typeof InputType>(InputType.password);\n\n const Icon = useMemo(\n () =>\n ({\n [InputType.text]: IconLockOpen,\n [InputType.password]: IconLock,\n })[type],\n [type]\n );\n\n const handleIconClick = useCallback(() => {\n type === InputType.password && setType(InputType.text);\n type === InputType.text && setType(InputType.password);\n }, [type, setType]);\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n <label\n tabIndex={-1}\n onClick={handleIconClick}\n className={classes.prefix}\n htmlFor={inputId}>\n <Icon />\n </label>\n <input\n {...nativeProps}\n size={size}\n id={inputId}\n readOnly={readOnly}\n placeholder={placeholder}\n className={classes.input}\n ref={inputRef}\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\nInputPassword.displayName = 'InputPassword';\n","import type {ChangeEvent, InputHTMLAttributes, FormEvent} from 'react';\nimport {useEffect} from 'react';\nimport {forwardRef, useCallback, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconArrowUp, IconArrowDown} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsNumeric, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {\n ValidationState,\n useValidation,\n useExternalValidation,\n useRevalidateOnFormChange,\n useValidationIcon,\n} 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 SPINNER_EVENT_TYPE = 'change_spinner';\n\nconst ChangeEventSpinner = new Event(SPINNER_EVENT_TYPE, {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 size = 10,\n step,\n revalidateOnFormChange,\n errorMessage = ValidationState.error,\n validation,\n ...nativeProps\n },\n ref\n ) => {\n const hasValidators =\n Boolean(validation) ||\n Boolean(nativeProps.required) ||\n typeof nativeProps.min === 'number' ||\n typeof nativeProps.min === 'string' ||\n typeof nativeProps.max === 'number' ||\n typeof nativeProps.max === 'string';\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n const inputRef = useInternalRef(ref);\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(validity);\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event);\n },\n [onChange]\n );\n\n useEffect(() => {\n inputRef.current?.addEventListener(SPINNER_EVENT_TYPE, event => {\n // TODO: improve type\n onChange(event as unknown as ChangeEvent<HTMLInputElement>);\n });\n }, [inputRef, onChange]);\n\n const handleInvalid = useCallback(() => {\n setValidity(ValidationState.error);\n }, [setValidity]);\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, KeyboardEvent, InputHTMLAttributes} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {CallbackPropsTextual, ValidationProps, NativePropsTextual} from '@/internal/inputs';\nimport {\n useRevalidateOnFormChange,\n useExternalValidation,\n useValidationIcon,\n ValidationState,\n useValidation,\n} from '@/internal/inputs';\nimport {IconNumeric} from '@/internal/Icons';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './InputNumeric.module.css';\n\nenum Modes {\n natural = 'natural',\n integer = 'integer',\n floating = 'floating',\n scientific = 'scientific',\n}\n\nconst patternMapping = {\n [Modes.natural]: '(?:0|[1-9]\\\\d*)',\n [Modes.integer]: '[+\\\\-]?(?:0|[1-9]\\\\d*)',\n [Modes.floating]: '[+\\\\-]?(?:0|[1-9]\\\\d*)(?:\\\\.\\\\d+)?',\n [Modes.scientific]: '[+\\\\-]?(?:0|[1-9]\\\\d*)(?:\\\\.\\\\d+)?(?:[eE][+\\\\-]?\\\\d+)?',\n};\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NativePropsTextual, 'pattern' | 'inputMode' | 'autoComplete'> &\n CallbackPropsTextual &\n ValidationProps & {\n /**\n * Specify the amount of increment/decrement applied to the value when the user presses arrow keys\n */\n step?: number;\n /**\n * Define the width of the input in characters\n */\n size?: InputHTMLAttributes<HTMLInputElement>['size'];\n /** Select a mode of numeric input. `scientific` mode disables arrow stepper */\n mode?: keyof typeof Modes;\n };\n\nexport const InputNumeric = 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 validation,\n errorMessage,\n id: idProp,\n step = 1,\n size = 12,\n mode = Modes.natural,\n revalidateOnFormChange,\n ...nativeProps\n },\n ref\n ) => {\n const inputRef = useInternalRef(ref);\n\n const id = useInternalId(idProp);\n\n const hasValidators = Boolean(validation) || Boolean(nativeProps.required);\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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 handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n const inputValue = (event.target as HTMLInputElement).value;\n if (event.key === 'ArrowUp' && mode !== Modes.scientific) {\n const nextValue = Number(inputValue || 0) + step;\n (event.target as HTMLInputElement).value = nextValue.toString();\n }\n if (event.key === 'ArrowDown' && mode !== Modes.scientific) {\n const nextValue = Number(inputValue || 0) - step;\n (event.target as HTMLInputElement).value = nextValue.toString();\n }\n onKeyDown(event);\n },\n [mode, onKeyDown, step]\n );\n\n const handleKeyUp = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (\n (event.key === 'ArrowDown' || event.key === 'ArrowUp') &&\n mode !== Modes.scientific\n ) {\n event.currentTarget.reportValidity();\n onChange(event as unknown as ChangeEvent<HTMLInputElement>);\n }\n onKeyUp(event);\n },\n [mode, onChange, onKeyUp]\n );\n\n const pattern = patternMapping[mode];\n\n return (\n <div className={classNames(classes.wrapper, className)}>\n <label className={classes.prefix} htmlFor={id}>\n <IconNumeric />\n </label>\n <input\n {...nativeProps}\n autoComplete=\"off\"\n ref={inputRef}\n size={size}\n id={id}\n type=\"text\"\n inputMode=\"decimal\"\n pattern={pattern}\n placeholder={placeholder}\n className={classes.input}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyUp={handleKeyUp}\n onKeyDown={handleKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}\n />\n {validity && <ValidationIcon />}\n </div>\n );\n }\n);\n\nInputNumeric.displayName = 'InputNumeric';\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 type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {NativePropsTextual, CallbackPropsTextual, ValidationProps} from '@/internal/inputs';\nimport {useExternalValidation} from '@/internal/inputs';\nimport {useRevalidateOnFormChange} from '@/internal/inputs';\nimport {ValidationState, useValidationIcon, useValidation} from '@/internal/inputs';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.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 id,\n readOnly,\n cols = 20,\n rows = 3,\n resize = 'both',\n revalidateOnFormChange,\n validation,\n errorMessage,\n ...nativeProps\n },\n ref\n ) => {\n const hasValidators =\n Boolean(validation) ||\n Boolean(nativeProps.required) ||\n typeof nativeProps.maxLength === 'number' ||\n typeof nativeProps.minLength === 'number';\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n const inputRef = useInternalRef(ref);\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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={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={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, ReactNode} from 'react';\nimport {forwardRef, useCallback, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {IconExpand} from '@/internal/Icons';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {\n NativePropsInteractive,\n CallbackPropsTextual,\n ValidationProps,\n} from '@/internal/inputs';\nimport {useExternalValidation} from '@/internal/inputs';\nimport {useRevalidateOnFormChange} from '@/internal/inputs';\nimport {ValidationState, useValidationIcon, 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\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 id,\n multiple,\n children,\n size = 16,\n revalidateOnFormChange,\n validation,\n errorMessage,\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 hasValidators = Boolean(validation);\n\n const {validateTextual, validity, setValidity} = useValidation({validation, hasValidators});\n\n const inputRef = useInternalRef(ref);\n useRevalidateOnFormChange(inputRef, validateTextual, revalidateOnFormChange);\n useExternalValidation({errorMessage, inputRef, setValidity, validation});\n\n const ValidationIcon = useValidationIcon(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 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 onFocus={onFocus}\n onBlur={onBlur}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n onInvalid={handleInvalid}\n onInput={validateTextual}>\n {children}\n </select>\n {!multiple && <IconExpand 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 {MutableRefObject, 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 wrapperRef?: MutableRefObject<HTMLDivElement | null>;\n wrapperClassName?: string;\n };\n\nexport const Table = forwardRef<HTMLTableElement, Props>(\n ({children, className, wrapperRef, wrapperClassName, ...nativeProps}, ref) => {\n return (\n <div ref={wrapperRef} className={classNames(classes.tableWrapper, wrapperClassName)}>\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 the 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 {useCallback} from 'react';\nimport {useState, useEffect} from 'react';\nimport {useDebouncedCallback} from 'use-debounce';\n\nimport {useEventListener} from '@/internal/hooks/useEventListener.ts';\n\n/**\n * Utility hook. Tracks provided element overflow state. Subscribes to window resize events.\n */\nexport const useIsOverflow = <TElement extends HTMLElement | null>(\n ref: MutableRefObject<TElement>\n) => {\n const [scrollWidth, setScrollWidth] = useState(0);\n const [scrollHeight, setScrollHeight] = useState(0);\n const [overflowY, setOverflowY] = useState<boolean | undefined>(undefined);\n const [overflowX, setOverflowX] = useState<boolean | undefined>(undefined);\n\n const handleResize = useCallback(() => {\n const {current} = ref;\n\n if (current) {\n const hasOverflowY = scrollHeight > current.offsetHeight;\n const hasOverflowX = scrollWidth > current.offsetWidth;\n setOverflowY(hasOverflowY);\n setOverflowX(hasOverflowX);\n }\n }, [ref, scrollHeight, scrollWidth]);\n\n const handleResizeDebounced = useDebouncedCallback(handleResize, 666, {trailing: true});\n\n useEventListener('resize', handleResizeDebounced);\n\n useEffect(() => {\n const {current} = ref;\n\n if (current) {\n setScrollWidth(current.scrollWidth);\n setScrollHeight(current.scrollHeight);\n const hasOverflowY = current.scrollHeight > current.offsetHeight;\n const hasOverflowX = current.scrollWidth > current.offsetWidth;\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';\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 return <div className={classes.tab}>{children}</div>;\n};\n","export enum Variants {\n bordered = 'bordered',\n plain = 'plain',\n}\n","import type {ReactNode} from 'react';\nimport {useCallback, forwardRef, Fragment, useState, useEffect} from 'react';\nimport classNames from 'classnames';\nimport type {Placement} from '@floating-ui/react-dom';\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';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.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 the 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 the first element when open and trap focus */\n trapFocus?: boolean;\n /** Align Menu width with a reference element */\n alignWidth?: boolean;\n /** Set design of Menu */\n variant?: keyof typeof Variants;\n /**\n * Define which relative positions Menu can be placed in\n */\n allowedPlacements?: Placement[];\n };\n\nconst allowedPlacementsDefault: Placement[] = [\n 'bottom',\n 'left',\n 'right',\n 'top',\n 'bottom-end',\n 'bottom-start',\n 'left-start',\n 'left-end',\n 'right-start',\n 'right-end',\n 'top-start',\n 'top-end',\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 allowedPlacements = allowedPlacementsDefault,\n ...nativeProps\n },\n ref\n ) => {\n const menuRef = useInternalRef(ref);\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({allowedPlacements}),\n ],\n });\n const {LocalRoot} = useLocalTheme();\n const {getTheme} = useRootTheme();\n\n const handleDismiss = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n useDismiss(handleDismiss, menuRef, 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\n ref={refs.setFloating}\n style={floatingStyles}\n className={classes.floating}>\n <LocalRoot className={classes.provider} theme={getTheme()}>\n <div\n {...nativeProps}\n ref={menuRef}\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';\nimport type {Placement} from '@floating-ui/react-dom';\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\nconst allowedPlacements: Placement[] = [\n 'bottom',\n 'top',\n 'bottom-end',\n 'bottom-start',\n 'top-start',\n 'top-end',\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 allowedPlacements={allowedPlacements}\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 = {\n pageNumber: number;\n onClick?: (pageNumber: number) => void;\n isActive: boolean;\n className?: string;\n};\n\nexport const PageButton: FC<Props> = ({pageNumber, onClick = () => {}, isActive, className}) => {\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}, className)}\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 the total number of pages */\n totalPages: number;\n /** Callback to run on page change */\n onPageSelect: (pageNumber: number) => void;\n /** Set the selected page externally */\n selectedPage: number;\n /** Show the 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 useEffect(() => {\n setSelectedPage(selectedPageProp);\n }, [selectedPageProp, setSelectedPage]);\n\n const [inputPage, setInputPage] = useState<number>(selectedPage);\n\n useEffect(() => {\n setInputPage(selectedPage);\n }, [selectedPage]);\n\n const handlePageSelect = useCallback(\n (pageNumber: number) => {\n setSelectedPage(pageNumber);\n setInputPage(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 = parseInt(event.target.value);\n event.target.value !== '' && 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={classNames(classes.buttons, {[classes.short]: !isLong})}>\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}>&hellip;</div>\n {visible.map((pageNumber, i) => {\n const isActive = pageNumber === selectedPage;\n return (\n <PageButton\n className={classNames({\n [classes.centerButton]: i !== 1,\n })}\n key={pageNumber}\n isActive={isActive}\n onClick={handlePageSelect}\n pageNumber={pageNumber}\n />\n );\n })}\n <div className={classes.ellipsis}>&hellip;</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\n disabled={totalPages === 1}\n onClick={handleDecrement}\n className={classes.navigationButton}>\n <IconBackward className={classes.icon} />\n </button>\n <button\n disabled={totalPages === 1}\n onClick={handleIncrement}\n 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 value={inputPage}\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 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 {ReactElement, ReactNode} from 'react';\nimport {Children, cloneElement, useMemo} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useIsOverflow} from '@/internal/hooks/useIsOverflow.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\n\nimport classes from './Navigation.module.css';\nimport {NavBrand} from './NavBrand.tsx';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide a site/app name to render inside the panel on the left\n */\n name?: string;\n children?: ReactNode;\n /**\n * Enable to make the panel sticky\n */\n sticky?: boolean;\n };\n\nexport const NavPanel = forwardRef<HTMLDivElement, Props>(\n ({children, className, name = 'Koval App', sticky, ...nativeProps}, ref) => {\n const internalRef = useInternalRef(ref);\n const {overflowX} = useIsOverflow(internalRef);\n const childrenWithProps = useMemo(\n () =>\n Children.toArray(children).map(element =>\n cloneElement(element as ReactElement, {collapsed: overflowX})\n ),\n [children, overflowX]\n );\n return (\n <div\n {...nativeProps}\n className={classNames(classes.navPanel, {[classes.sticky]: sticky}, className)}\n ref={internalRef}>\n {name && <NavBrand>{name}</NavBrand>}\n {childrenWithProps}\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\ntype LinkProps = {\n href: string;\n title?: string;\n className?: string;\n children?: ReactNode;\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 ellipsis (...) after the first breadcrumb item */\n showEllipsis?: boolean;\n /**\n * Provide a link component to render as a breadcrumb. Can be used with Next.js\n * @example\n * import Link from 'next/link'\n * <Breadcrumbs linkComponent={Link} />\n */\n linkComponent?: FC<LinkProps & unknown>;\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 &hellip;\n </div>,\n ...rest,\n ];\n } else {\n return items;\n }\n};\n\nconst Link: FC<LinkProps> = ({href, children, className, title}) => {\n return (\n <a href={href} className={className} title={title}>\n {children}\n </a>\n );\n};\n\nexport const Breadcrumbs = forwardRef<HTMLDivElement, Props>(\n (\n {\n className,\n items,\n showEllipsis = false,\n linkComponent: LinkComponent = Link,\n ...nativeProps\n },\n ref\n ) => {\n const children = items.map(({name, url, icon: Icon}) => {\n return (\n <LinkComponent key={name} title={name} className={classes.crumb} href={url}>\n {Icon && <Icon className={classes.icon} />}\n <span className={classes.text}>{name}</span>\n </LinkComponent>\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","import type {PermissionsConfig, Permission} from './types.ts';\n\nconst normalizeValue = (value: string | boolean) => {\n if (typeof value === 'boolean') {\n return \"'src'\";\n } else if (value === 'self') {\n return \"'self'\";\n } else if (value === 'src') {\n return \"'src'\";\n } else if (value === 'none') {\n return \"'none'\";\n }\n return value;\n};\n\nexport const convertPermissions = (permissions: PermissionsConfig) => {\n return Object.entries(permissions)\n .filter(([_, value]) => value !== false)\n .map(([key, value]) => (Array.isArray(value) ? [key, value] : [key, [value]]))\n .map(([key, value]) => {\n return [key, (value as Permission[]).map(normalizeValue).join(' ')];\n })\n .map(permissionsArray => permissionsArray.join(' '))\n .join('; ');\n};\n","import type {\n ReactNode,\n HTMLAttributeReferrerPolicy,\n IframeHTMLAttributes,\n SyntheticEvent,\n} from 'react';\nimport {useCallback} from 'react';\nimport {useState} from 'react';\nimport {useMemo} from 'react';\nimport {forwardRef} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {SkeletonShape} from '@/lib/Skeleton';\n\nimport classes from './Iframe.module.css';\nimport type {SandboxConfig, PermissionsConfig} from './types.ts';\nimport {convertPermissions} from './convertPermissions.ts';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /** Provide an url of the embedded page */\n src?: string;\n /**\n * Provide custom HTML for the iframe.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/srcdoc\n */\n srcDoc?: string;\n /**\n * Set the width of the iframe in pixels.\n * Responsive\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/width\n */\n width: number;\n /**\n * Set the height of the iframe in pixels.\n * Responsive\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/height\n */\n height: number;\n /**\n * Define which referrer is sent when fetching the resource.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/referrerPolicy\n */\n referrerPolicy?: HTMLAttributeReferrerPolicy;\n /**\n * Allow the iframe's contents to use requestFullscreen().\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/allowFullscreen\n */\n allowFullScreen?: boolean;\n /**\n * Provide a unique name for the iframe.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/name\n * @example\n * <iframe id=\"el\" name=\"example\"></iframe>\n * const el = document.getElementById(\"el\");\n * console.log(el.name); // Output: \"example\"\n */\n name?: string;\n /**\n * Provide a title for accessibility\n */\n title?: string;\n /**\n * Set iframe loading behavior\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/loading\n */\n loading?: IframeHTMLAttributes<unknown>['loading'];\n /**\n * Provide a SandboxConfig object.\n * @see SandboxConfig\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/sandbox\n */\n sandboxConfig?: SandboxConfig;\n /**\n * Provide a callback to capture iframe loaded event.\n */\n onLoad?: (event: SyntheticEvent<HTMLIFrameElement>) => void;\n /**\n * Provide a PermissionsConfig object.\n * @see PermissionsConfig\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/allow\n */\n permissionsConfig?: PermissionsConfig;\n };\n\nexport const Iframe = forwardRef<HTMLIFrameElement, Props>(\n (\n {\n children,\n className,\n src,\n width,\n height,\n referrerPolicy,\n allowFullScreen,\n name,\n title,\n srcDoc,\n loading,\n sandboxConfig,\n permissionsConfig,\n onLoad = () => {},\n ...nativeProps\n },\n ref\n ) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n const handleLoad = useCallback(\n (event: SyntheticEvent<HTMLIFrameElement>) => {\n onLoad(event);\n setIsLoaded(true);\n },\n [onLoad]\n );\n\n const sandbox =\n sandboxConfig &&\n Object.entries(sandboxConfig)\n .filter(([_, value]) => value)\n .map(([key]) => key)\n .join(' ');\n\n const allow = permissionsConfig && convertPermissions(permissionsConfig);\n\n const theme = useMemo(\n () => ({\n height,\n width,\n }),\n [height, width]\n );\n\n const {LocalRoot} = useLocalTheme();\n return (\n <LocalRoot theme={theme} className={classes.sizeContainer}>\n <div className={classes.ratioContainer}>\n <iframe\n {...nativeProps}\n className={classNames(classes.iframe, className)}\n ref={ref}\n onLoad={handleLoad}\n loading={loading}\n name={name}\n width={width}\n height={height}\n src={src}\n title={title}\n srcDoc={srcDoc}\n allow={allow}\n referrerPolicy={referrerPolicy}\n allowFullScreen={allowFullScreen}\n sandbox={sandbox}\n />\n {!isLoaded && (\n <SkeletonShape\n width={width}\n height={height}\n borderRadius={0}\n className={classes.loader}\n />\n )}\n </div>\n </LocalRoot>\n );\n }\n);\n\nIframe.displayName = 'Iframe';\n","/**\n * List of available units\n * @see https://tc39.es/ecma402/#table-sanctioned-single-unit-identifiers\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#unit_2\n */\nexport enum Units {\n acre = 'acre',\n bit = 'bit',\n byte = 'byte',\n celsius = 'celsius',\n centimeter = 'centimeter',\n day = 'day',\n degree = 'degree',\n fahrenheit = 'fahrenheit',\n 'fluid-ounce' = 'fluid-ounce',\n foot = 'foot',\n gallon = 'gallon',\n gigabit = 'gigabit',\n gigabyte = 'gigabyte',\n gram = 'gram',\n hectare = 'hectare',\n hour = 'hour',\n inch = 'inch',\n kilobit = 'kilobit',\n kilobyte = 'kilobyte',\n kilogram = 'kilogram',\n kilometer = 'kilometer',\n liter = 'liter',\n megabit = 'megabit',\n megabyte = 'megabyte',\n meter = 'meter',\n microsecond = 'microsecond',\n mile = 'mile',\n 'mile-scandinavian' = 'mile-scandinavian',\n milliliter = 'milliliter',\n millimeter = 'millimeter',\n millisecond = 'millisecond',\n minute = 'minute',\n month = 'month',\n nanosecond = 'nanosecond',\n ounce = 'ounce',\n percent = 'percent',\n petabyte = 'petabyte',\n pound = 'pound',\n second = 'second',\n stone = 'stone',\n terabit = 'terabit',\n terabyte = 'terabyte',\n week = 'week',\n yard = 'yard',\n year = 'year',\n}\n","import {useState} from 'react';\n\nimport {useSafeLayoutEffect} from '@/internal/hooks/useSafeLayoutEffect.ts';\n\n/**\n * Utility hook. Returns browser locale. Updates when it changes.\n */\nexport const useBrowserLocale = () => {\n const [locale, setLocale] = useState('en-US');\n useSafeLayoutEffect(() => {\n setLocale(navigator.language);\n }, []);\n\n return locale;\n};\n","import type {Range} from '@/internal/utils/rangeType.ts';\nimport type {Units, CurrencyCodes, Locale} from '@/internal/locale';\n\nexport enum Styles {\n decimal = 'decimal',\n currency = 'currency',\n percent = 'percent',\n unit = 'unit',\n}\n\nexport enum LocaleMatchers {\n lookup = 'lookup',\n 'best fit' = 'best fit',\n}\n\nexport enum Notations {\n standard = 'standard',\n 'scientific' = 'scientific',\n 'engineering' = 'engineering',\n 'compact' = 'compact',\n}\n\nexport enum CompactDisplayModes {\n short = 'short',\n long = 'long',\n}\n\nexport enum SignDisplayModes {\n auto = 'auto',\n always = 'always',\n exceptZero = 'exceptZero',\n // TODO: not present in built in types\n // negative = 'negative',\n never = 'never',\n}\n\nexport type DigitsConfig = {\n integer?: {\n /**\n * The minimum number of integer digits to use\n * @example\n * // minimumIntegerDigits=3\n * <Number value={3} /> // => 003\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#minimumintegerdigits\n */\n minimum?: Range<1, 22>;\n };\n fraction?: {\n /**\n * The minimum number of fraction digits to use\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#minimumfractiondigits\n */\n minimum?: Range<0, 101>;\n /**\n * The maximum number of fraction digits to use\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#maximumfractiondigits\n */\n maximum?: Range<0, 101>;\n };\n significant?: {\n /**\n * The minimum number of significant digits to use\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#minimumsignificantdigits\n */\n minimum?: Range<1, 22>;\n /**\n * The maximum number of significant digits to use\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#maximumsignificantdigits\n */\n maximum?: Range<1, 22>;\n };\n};\n\nexport type NumberProps = {\n /** Provide a value to be formatted */\n value?: number;\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers. Defaults to user setting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#locales\n */\n locale?: Locale;\n /**\n * The locale matching algorithm to use\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#localematcher\n */\n localeMatcher?: keyof typeof LocaleMatchers;\n /**\n * Provide a `digits` property config as an object\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#minimumintegerdigits\n */\n digitsConfig?: DigitsConfig;\n /**\n * The formatting that should be displayed for the number (not %, currency) (decimal, unit)\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#notation\n */\n notation?: keyof typeof Notations;\n /**\n * Only used when `notation` is `compact` (not %, currency) (decimal, unit)\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#compactdisplay\n */\n compactDisplay?: keyof typeof CompactDisplayModes;\n /**\n * Whether to use grouping separators, such as thousands' separators (not %) (decimal, unit, currency)\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#usegrouping\n */\n grouping?: boolean;\n /**\n * Display the sign for the number (all)\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#signdisplay\n */\n signDisplay?: keyof typeof SignDisplayModes;\n /**\n * Provide a unit for the number\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#unit_2\n */\n // Unit specific props\n unit?: keyof typeof Units;\n /**\n * The unit formatting style to use in unit formatting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#unitdisplay\n */\n unitDisplay?: keyof typeof UnitDisplayModes;\n // Currency specific props\n /**\n * Provide ISO 4217 currency code\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#currency_2\n */\n currency: keyof typeof CurrencyCodes;\n /**\n * How to display the currency in currency formatting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#currencydisplay\n */\n currencyDisplay?: keyof typeof CurrencyDisplayTypes;\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#currencysign\n */\n currencySign?: keyof typeof CurrencySignModes;\n};\n\nexport enum CurrencyDisplayTypes {\n code = 'code',\n symbol = 'symbol',\n narrowSymbol = 'narrowSymbol',\n name = 'name',\n}\n\nexport enum CurrencySignModes {\n standard = 'standard',\n accounting = 'accounting',\n}\n\nexport enum UnitDisplayModes {\n short = 'short',\n narrow = 'narrow',\n long = 'long',\n}\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport classes from '@/lib/Number/Number.module.css';\n\nimport type {NumberProps} from './types.ts';\nimport {Styles} from './types.ts';\nimport {LocaleMatchers, Notations, CompactDisplayModes, SignDisplayModes} from './types.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NumberProps, 'unitDisplay' | 'unit' | 'currency' | 'currencyDisplay' | 'currencySign'>;\n\nexport const NumberDecimal = forwardRef<HTMLSpanElement, Props>(\n (\n {\n value,\n className,\n locale: localeProp,\n localeMatcher = LocaleMatchers['best fit'],\n digitsConfig = {\n integer: {\n minimum: 1,\n },\n significant: {\n minimum: 1,\n maximum: 21,\n },\n fraction: {},\n },\n notation = Notations.standard,\n compactDisplay = CompactDisplayModes.short,\n grouping,\n signDisplay = SignDisplayModes.auto,\n ...nativeProps\n },\n ref\n ) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () =>\n value\n ? new Intl.NumberFormat(locale, {\n localeMatcher,\n style: Styles.decimal,\n minimumIntegerDigits: digitsConfig.integer?.minimum,\n minimumFractionDigits: digitsConfig.fraction?.minimum,\n minimumSignificantDigits: digitsConfig.significant?.minimum,\n maximumSignificantDigits: digitsConfig.significant?.maximum,\n maximumFractionDigits: digitsConfig.fraction?.maximum,\n notation,\n compactDisplay,\n useGrouping: grouping,\n signDisplay,\n }).format(value)\n : '',\n [\n compactDisplay,\n digitsConfig.fraction?.maximum,\n digitsConfig.fraction?.minimum,\n digitsConfig.integer?.minimum,\n digitsConfig.significant?.maximum,\n digitsConfig.significant?.minimum,\n grouping,\n locale,\n localeMatcher,\n notation,\n signDisplay,\n value,\n ]\n );\n return (\n value && (\n <span\n {...nativeProps}\n title={formattedValue}\n className={classNames(classes.number, className)}\n ref={ref}>\n {formattedValue}\n </span>\n )\n );\n }\n);\n\nNumberDecimal.displayName = 'NumberDecimal';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport classes from '@/lib/Number/Number.module.css';\n\nimport type {NumberProps} from './types.ts';\nimport {Styles} from './types.ts';\nimport {LocaleMatchers, CurrencyDisplayTypes, SignDisplayModes} from './types.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NumberProps, 'notation' | 'compactDisplay' | 'unitDisplay' | 'unit'>;\n\nexport const NumberCurrency = forwardRef<HTMLSpanElement, Props>(\n (\n {\n value,\n className,\n locale: localeProp,\n localeMatcher = LocaleMatchers['best fit'],\n digitsConfig = {\n integer: {\n minimum: 1,\n },\n significant: {\n minimum: 1,\n maximum: 21,\n },\n fraction: {\n maximum: 2,\n },\n },\n grouping,\n signDisplay = SignDisplayModes.auto,\n currency,\n currencyDisplay = CurrencyDisplayTypes.symbol,\n currencySign,\n ...nativeProps\n },\n ref\n ) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () =>\n value\n ? new Intl.NumberFormat(locale, {\n localeMatcher,\n style: Styles.currency,\n minimumIntegerDigits: digitsConfig.integer?.minimum,\n minimumFractionDigits: digitsConfig.fraction?.minimum,\n minimumSignificantDigits: digitsConfig.significant?.minimum,\n maximumSignificantDigits: digitsConfig.significant?.maximum,\n maximumFractionDigits: digitsConfig.fraction?.maximum,\n useGrouping: grouping,\n signDisplay,\n currency,\n currencyDisplay,\n currencySign,\n }).format(value)\n : '',\n [\n currency,\n currencyDisplay,\n currencySign,\n digitsConfig.fraction?.maximum,\n digitsConfig.fraction?.minimum,\n digitsConfig.integer?.minimum,\n digitsConfig.significant?.maximum,\n digitsConfig.significant?.minimum,\n grouping,\n locale,\n localeMatcher,\n signDisplay,\n value,\n ]\n );\n return (\n value && (\n <span\n {...nativeProps}\n title={formattedValue}\n className={classNames(classes.number, className)}\n ref={ref}>\n {formattedValue}\n </span>\n )\n );\n }\n);\n\nNumberCurrency.displayName = 'NumberCurrency';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport classes from '@/lib/Number/Number.module.css';\n\nimport type {NumberProps} from './types.ts';\nimport {Styles} from './types.ts';\nimport {LocaleMatchers, SignDisplayModes} from './types.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<\n NumberProps,\n | 'notation'\n | 'compactDisplay'\n | 'unitDisplay'\n | 'unit'\n | 'currency'\n | 'currencyDisplay'\n | 'currencySign'\n >;\n\nexport const NumberPercent = forwardRef<HTMLSpanElement, Props>(\n (\n {\n value,\n className,\n locale: localeProp,\n localeMatcher = LocaleMatchers['best fit'],\n digitsConfig = {\n integer: {\n minimum: 1,\n },\n significant: {\n minimum: 1,\n maximum: 21,\n },\n fraction: {},\n },\n grouping,\n signDisplay = SignDisplayModes.auto,\n ...nativeProps\n },\n ref\n ) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () =>\n value\n ? new Intl.NumberFormat(locale, {\n localeMatcher,\n style: Styles.percent,\n minimumIntegerDigits: digitsConfig.integer?.minimum,\n minimumFractionDigits: digitsConfig.fraction?.minimum,\n minimumSignificantDigits: digitsConfig.significant?.minimum,\n maximumSignificantDigits: digitsConfig.significant?.maximum,\n maximumFractionDigits: digitsConfig.fraction?.maximum,\n useGrouping: grouping,\n signDisplay,\n }).format(value)\n : '',\n [\n digitsConfig.fraction?.maximum,\n digitsConfig.fraction?.minimum,\n digitsConfig.integer?.minimum,\n digitsConfig.significant?.maximum,\n digitsConfig.significant?.minimum,\n grouping,\n locale,\n localeMatcher,\n signDisplay,\n value,\n ]\n );\n return (\n value && (\n <span\n {...nativeProps}\n title={formattedValue}\n className={classNames(classes.number, className)}\n ref={ref}>\n {formattedValue}\n </span>\n )\n );\n }\n);\n\nNumberPercent.displayName = 'NumberPercent';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport classes from '@/lib/Number/Number.module.css';\nimport {Units} from '@/internal/locale';\n\nimport type {NumberProps} from './types.ts';\nimport {Styles, UnitDisplayModes} from './types.ts';\nimport {LocaleMatchers, Notations, CompactDisplayModes, SignDisplayModes} from './types.ts';\n\nexport type Props = DataAttributes &\n LibraryProps &\n Omit<NumberProps, 'currency' | 'currencyDisplay' | 'currencySign'>;\n\nexport const NumberUnit = forwardRef<HTMLSpanElement, Props>(\n (\n {\n value,\n className,\n locale: localeProp,\n localeMatcher = LocaleMatchers['best fit'],\n digitsConfig = {\n integer: {\n minimum: 1,\n },\n significant: {\n minimum: 1,\n maximum: 21,\n },\n fraction: {},\n },\n notation = Notations.standard,\n compactDisplay = CompactDisplayModes.short,\n grouping,\n signDisplay = SignDisplayModes.auto,\n unit = Units.liter,\n unitDisplay = UnitDisplayModes.short,\n ...nativeProps\n },\n ref\n ) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () =>\n value\n ? new Intl.NumberFormat(locale, {\n localeMatcher,\n style: Styles.unit,\n minimumIntegerDigits: digitsConfig.integer?.minimum,\n minimumFractionDigits: digitsConfig.fraction?.minimum,\n minimumSignificantDigits: digitsConfig.significant?.minimum,\n maximumSignificantDigits: digitsConfig.significant?.maximum,\n maximumFractionDigits: digitsConfig.fraction?.maximum,\n notation,\n compactDisplay,\n useGrouping: grouping,\n signDisplay,\n unit,\n unitDisplay,\n }).format(value)\n : '',\n [\n compactDisplay,\n digitsConfig.fraction?.maximum,\n digitsConfig.fraction?.minimum,\n digitsConfig.integer?.minimum,\n digitsConfig.significant?.maximum,\n digitsConfig.significant?.minimum,\n grouping,\n locale,\n localeMatcher,\n notation,\n signDisplay,\n unit,\n unitDisplay,\n value,\n ]\n );\n return (\n value && (\n <span\n {...nativeProps}\n title={formattedValue}\n className={classNames(classes.number, className)}\n ref={ref}>\n {formattedValue}\n </span>\n )\n );\n }\n);\n\nNumberUnit.displayName = 'NumberUnit';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport type {Locale} from '@/internal/locale';\n\nimport classes from './DateTime.module.css';\nimport type {DateFormatOptions} from './types.ts';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * String representing the date in a simplified format based on ISO 8601.\n * Is always 24 or 27 characters long.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#date_time_string_format\n * @see https://en.wikipedia.org/wiki/ISO_8601\n */\n value?: string;\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers. Defaults to user setting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#locales\n */\n locale?: Locale;\n /**\n * Prevents line wrapping of formatted dates and times\n */\n enableNoWrap?: boolean;\n } & DateFormatOptions;\n\nexport const DateTime = forwardRef<HTMLSpanElement, Props>(\n (\n {\n className,\n locale: localeProp,\n value = '',\n weekday,\n era,\n year,\n month,\n day,\n hour,\n minute,\n second,\n timeZoneName,\n hour12,\n timeZone,\n enableNoWrap = true,\n ...nativeProps\n },\n ref\n ) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const date = useMemo(() => new Date(value), [value]);\n const formattedValue = new Intl.DateTimeFormat(locale, {\n weekday,\n era,\n year,\n month,\n day,\n hour,\n minute,\n second,\n timeZoneName,\n hour12,\n timeZone,\n }).format(date);\n return (\n value && (\n <span\n {...nativeProps}\n className={classNames(\n classes.number,\n {[classes.noWrap]: enableNoWrap},\n className\n )}\n ref={ref}>\n {formattedValue}\n </span>\n )\n );\n }\n);\n\nDateTime.displayName = 'DateTime';\n","import {type MutableRefObject, useEffect, useMemo, useRef, useState} from 'react';\n\n// Unfinished. TODO: make it work.\nexport function useResizeObserver<TElement extends HTMLElement | null>(\n ref: MutableRefObject<TElement>\n) {\n const frameID = useRef(0);\n\n const [size, setSize] = useState<ResizeObserverSize>();\n\n const result = useMemo(\n () => ({width: size?.inlineSize, height: size?.blockSize}),\n [size?.blockSize, size?.inlineSize]\n );\n\n const observer = useMemo(\n () =>\n typeof window !== 'undefined'\n ? new ResizeObserver((entries: ResizeObserverEntry[]) => {\n const entry = entries[0];\n\n if (entry) {\n cancelAnimationFrame(frameID.current);\n\n frameID.current = requestAnimationFrame(() => {\n if (ref.current) {\n setSize(entry.borderBoxSize[0]);\n }\n });\n }\n })\n : null,\n [] // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n useEffect(() => {\n if (ref.current) {\n observer?.observe(ref.current, {box: 'border-box'});\n }\n\n return () => {\n observer?.disconnect();\n\n if (frameID.current) {\n cancelAnimationFrame(frameID.current);\n }\n };\n }, [ref.current]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return result;\n}\n\nexport function useElementSize<TElement extends HTMLElement | null>(\n ref: MutableRefObject<TElement>\n) {\n const {width, height} = useResizeObserver(ref);\n return {width, height};\n}\n","import type {ColumnFiltersState} from '@tanstack/react-table';\nimport {useState, useEffect} from 'react';\n\nexport type Props = {\n columnFiltersProp: ColumnFiltersState;\n onFiltersChange: (filterState: ColumnFiltersState) => void;\n};\n\nexport const useColumnFilters = ({columnFiltersProp, onFiltersChange}: Props) => {\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>(columnFiltersProp);\n useEffect(() => {\n setColumnFilters(columnFiltersProp);\n }, [columnFiltersProp]);\n\n useEffect(() => {\n onFiltersChange(columnFilters);\n }, [onFiltersChange, columnFilters]);\n\n return {columnFilters, setColumnFilters};\n};\n","import type {\n AccessorFn as AccessorFnTanstack,\n HeaderContext,\n CellContext,\n SortingFn as SortingFnTanstack,\n FilterFnOption,\n} from '@tanstack/react-table';\nimport type {FC} from 'react';\n\nimport type {NumberProps} from '@/lib/Number';\nimport type {DateFormatOptions} from '@/lib/DateTime';\n\nexport enum Roles {\n manager = 'manager',\n developer = 'developer',\n}\n\nexport type Row = {\n firstName: string;\n lastName: string;\n role: keyof typeof Roles;\n age: number;\n email: string;\n address: {\n city: string;\n country: string;\n streetAddress: string;\n postcode: string;\n phoneNumber: string;\n };\n business: {\n iban: string;\n companyName: string;\n };\n};\n\nexport type TableValue = string | number;\n\nexport type TableRow = {[property: string]: TableRow | TableValue};\n// export type TableRow = Record<string, TableValue>;\n\n/**\n * Very liberal table data definition\n */\nexport type TableData = TableRow[];\n\nexport enum RenderModes {\n /**\n * Table renders as a virtualized list containing all cells\n */\n virtual = 'virtual',\n /**\n * Table renders as multiple pages of a certain size\n */\n paginated = 'paginated',\n}\n\nexport enum ProcessingModes {\n /**\n * Data processed by the table. Semi-controlled mode, prop changes overwrite the state\n */\n internal = 'internal',\n /**\n * Data processed by the developer. Full controlled mode\n */\n external = 'external',\n}\n\nexport enum ColumnTypes {\n text = 'text',\n decimal = 'decimal',\n percentage = 'percentage',\n currency = 'currency',\n unit = 'unit',\n date = 'date',\n select = 'select',\n}\n\n/**\n * Record which represents table change requested by the user. Key is equal to row index\n */\nexport type EditState = Record<number, TableRow>;\n\nexport type HeaderCell = FC<\n unknown & {\n title?: string;\n headerContext: HeaderContext<TableData, TableValue | TableRow>;\n }\n>;\n\nexport type CellComponent = FC<\n unknown & {\n value?: TableValue;\n cellContext: CellContext<TableData, TableRow | TableValue>;\n }\n>;\n\nexport type FooterCell = FC<\n unknown & {\n cellContext: HeaderContext<TableData, TableRow | TableValue>;\n }\n>;\n\nexport type FilterInput = FC<\n unknown & {\n value: FilterValue;\n onChange: (value: FilterValue) => void;\n }\n>;\n\nexport enum SortingModes {\n auto = 'auto',\n alphanumeric = 'alphanumeric',\n alphanumericCaseSensitive = 'alphanumericCaseSensitive',\n text = 'text',\n textCaseSensitive = 'textCaseSensitive',\n datetime = 'datetime',\n basic = 'basic',\n}\n\nexport type SortingFn = SortingFnTanstack<TableData>;\n\nexport enum FilterModes {\n auto = 'auto',\n includesString = 'includesString',\n includesStringSensitive = 'includesStringSensitive',\n equalsString = 'equalsString',\n arrIncludes = 'arrIncludes',\n arrIncludesAll = 'arrIncludesAll',\n arrIncludesSome = 'arrIncludesSome',\n equals = 'equals',\n weakEquals = 'weakEquals',\n inNumberRange = 'inNumberRange',\n}\n\nexport type ColumnFormatOptions = NumberProps | DateFormatOptions | Record<string, unknown>;\n\nexport enum CustomFilterFns {\n isInDateRange = 'isInDateRange',\n isInPercentRange = 'isInPercentRange',\n}\n\nexport type AccessorFn = AccessorFnTanstack<TableData, TableRow | TableValue>;\n\n/**\n * Table column config\n */\nexport type Column = {\n /**\n * Provide a unique id for the column\n */\n id: string;\n /**\n * Provide a human-readable title for the column\n */\n name: string;\n /**\n * Define a type of column data\n * @see ColumnTypes\n */\n columnType?: keyof typeof ColumnTypes;\n /**\n * Provide a custom React component to render column cells\n * @see CellComponent\n */\n columnCell?: CellComponent;\n /**\n * Set the width of the columns. Defaults to 166\n */\n size?: number;\n /**\n * Enable to allow user editing of the column\n */\n editable?: boolean;\n /**\n * Enable to allow user filtering of the column\n */\n filterable?: boolean;\n /**\n * Enable to make a column able to sort in ascending or descending order\n */\n sortable?: boolean;\n /**\n * Enable to make a column able to pin the left or right side\n */\n pinnable?: boolean;\n /**\n * Define a type of sorting to be used for the column. Can be one of supported modes or custom function\n * @see SortingModes\n * @see SortingFn\n */\n sortingFn?: keyof typeof SortingModes | SortingFn;\n /**\n * Define a type of filtering to be used for the column. Can be one of supported modes or custom function\n * @see FilterFnOption\n * @see CustomFilterFns\n */\n filterFn?: FilterFnOption<TableData> | keyof typeof CustomFilterFns;\n /**\n * Set props for each table cell. Useful for formatting dates, currencies, etc.\n * @see ColumnFormatOptions\n */\n cellProps?: ColumnFormatOptions;\n /**\n * Provide a custom React component to render the column header\n * @see HeaderCell\n */\n headerCell?: HeaderCell;\n /**\n * Provide a custom React component to render the column footer\n * @see FooterCell\n */\n footerCell?: FooterCell;\n /**\n * Provide a custom React component to render the column filter input\n * @see FilterInput\n */\n filterInput?: FilterInput;\n} & (\n | {\n /**\n * Provide an accessor key to get column cell value from table data\n * @example\n * {\n * accessorKey: \"foo.bar[6].bazz\"\n * }\n */\n accessorKey: string;\n /**\n * Provide an accessor function to get column cell value from table data\n */\n accessorFn?: never;\n }\n | {\n /**\n * Provide an accessor key to get column cell value from table data\n * @example\n * {\n * accessorKey: \"foo.bar[6].bazz\"\n * }\n */\n accessorKey?: never;\n /**\n * Provide an accessor function to get column cell value from table data\n */\n accessorFn: AccessorFn;\n }\n);\n\nexport type DateRangeFilterValue = string[];\nexport type RangeFilterValue = number[];\n\nexport type FilterValue = DateRangeFilterValue | RangeFilterValue | string;\n","import type {FC, ReactNode} from 'react';\nimport {useMemo, memo} from 'react';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport classes from './Cells.module.css';\n\nexport type Props = {\n children?: ReactNode;\n columnWidth?: number;\n};\n\nexport const CellWrapper: FC<Props> = memo(({children, columnWidth = 166}) => {\n const {LocalRoot} = useLocalTheme();\n const theme = useMemo(() => ({'column-width': columnWidth}), [columnWidth]);\n return (\n <LocalRoot className={classes.cellWrapper} theme={theme}>\n {children}\n </LocalRoot>\n );\n});\n\nCellWrapper.displayName = 'CellWrapper';\n","import type {FC} from 'react';\nimport classNames from 'classnames';\n\nimport {InputCheckbox} from '@/lib/InputCheckbox';\n\nimport classes from './Cells.module.css';\n\nenum Modes {\n normal = 'normal',\n inverted = 'inverted',\n}\n\nexport type Props = {\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n onChange?: (event: unknown) => void;\n mode?: keyof typeof Modes;\n};\n\nexport const RowSelectionCell: FC<Props> = ({\n checked,\n disabled,\n onChange = () => {},\n indeterminate,\n mode = Modes.normal,\n}) => {\n return (\n <div className={classes.rowSelectionCell}>\n <InputCheckbox\n indeterminate={indeterminate}\n className={classNames(classes.input, {[classes.inverted]: mode === Modes.inverted})}\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n />\n </div>\n );\n};\n","import type {ColumnDef} from '@tanstack/react-table';\nimport {createColumnHelper} from '@tanstack/react-table';\n\nimport {CellWrapper} from './../cells/CellWrapper.tsx';\nimport {RowSelectionCell} from './../cells/RowSelectionCell.tsx';\nimport type {TableValue} from './../types.ts';\nimport {ColumnTypes, type TableRow} from './../types.ts';\n\nconst columnHelper = createColumnHelper<TableRow>();\n\nexport const ROW_SELECTION_ID = 'koval-selectable';\n\nexport const rowSelection = columnHelper.display({\n id: ROW_SELECTION_ID,\n header: ({table, column}) => {\n return (\n <CellWrapper columnWidth={column.columnDef.meta?.width}>\n <RowSelectionCell\n mode=\"inverted\"\n checked={table.getIsAllRowsSelected()}\n onChange={table.getToggleAllRowsSelectedHandler()}\n indeterminate={table.getIsSomeRowsSelected()}\n />\n </CellWrapper>\n );\n },\n cell: ({row, column}) => {\n return (\n <CellWrapper columnWidth={column.columnDef.meta?.width}>\n <RowSelectionCell\n checked={row.getIsSelected()}\n disabled={!row.getCanSelect()}\n onChange={row.getToggleSelectedHandler()}\n indeterminate={false}\n />\n </CellWrapper>\n );\n },\n enableColumnFilter: false,\n size: 51,\n meta: {\n type: ColumnTypes.select,\n width: 51,\n editable: false,\n },\n footer: ({table, column}) => {\n return (\n <CellWrapper columnWidth={column.columnDef.meta?.width}>\n <RowSelectionCell\n mode=\"inverted\"\n checked={table.getIsAllRowsSelected()}\n onChange={table.getToggleAllRowsSelectedHandler()}\n indeterminate={table.getIsSomeRowsSelected()}\n />\n </CellWrapper>\n );\n },\n}) as ColumnDef<TableRow, TableValue>;\n","import {useState, useEffect, useMemo} from 'react';\nimport type {ColumnPinningState} from '@tanstack/react-table';\n\nimport {ROW_SELECTION_ID} from './../columns/rowSelection.tsx';\n\nconst defaultColumnPinning = {};\n\nexport type Props = {\n columnPinningProp?: ColumnPinningState;\n hasSelectableColumn: boolean;\n};\n\nconst normalizeProp = (hasSelectableColumn: boolean, columnPinningProp?: ColumnPinningState) => {\n const nextRight = columnPinningProp?.right ? columnPinningProp?.right : [];\n const nextLeft = columnPinningProp?.left ? columnPinningProp?.left : [];\n return {\n right: nextRight,\n left: hasSelectableColumn ? [ROW_SELECTION_ID, ...nextLeft] : nextLeft,\n };\n};\n\nexport const useColumnPinning = ({\n columnPinningProp = defaultColumnPinning,\n hasSelectableColumn,\n}: Props) => {\n const normalizedPinningState = useMemo(\n () => normalizeProp(hasSelectableColumn, columnPinningProp),\n [columnPinningProp, hasSelectableColumn]\n );\n\n const [columnPinning, setColumnPinning] = useState<ColumnPinningState>(normalizedPinningState);\n\n useEffect(() => {\n setColumnPinning(normalizedPinningState);\n }, [normalizedPinningState]);\n\n return {columnPinning, setColumnPinning};\n};\n","import type {ReactNode} from 'react';\nimport {useMemo, forwardRef} from 'react';\nimport type {ColumnPinningPosition} from '@tanstack/react-table';\nimport {useLocalTheme} from 'css-vars-hook';\nimport classNames from 'classnames';\n\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './DataTable.module.css';\n\nexport type Props = {\n children?: ReactNode;\n leftMargin?: number;\n rightMargin?: number;\n isHighlighted?: boolean;\n isPinned?: ColumnPinningPosition;\n classname?: string;\n as: 'td' | 'th';\n};\n\nexport const TableCell = forwardRef<HTMLTableCellElement, Props>(\n (\n {children, isPinned, leftMargin, rightMargin, classname, as = 'th', isHighlighted = false},\n ref\n ) => {\n const {LocalRoot, ref: localRef} = useLocalTheme<HTMLTableCellElement>();\n useLinkRefs(ref, localRef);\n const theme = useMemo(\n () => ({\n 'left-margin': leftMargin,\n 'right-margin': rightMargin,\n }),\n [leftMargin, rightMargin]\n );\n\n return (\n <LocalRoot\n theme={theme}\n as={as}\n className={classNames(\n classes.tableCell,\n {\n [classes.highlighted]: isHighlighted,\n [classes.pinned]: Boolean(isPinned),\n [classes.pinnedHeader]: Boolean(isPinned) && as === 'th',\n [classes.left]: isPinned === 'left',\n [classes.right]: isPinned === 'right',\n },\n classname\n )}>\n {children}\n </LocalRoot>\n );\n }\n);\n\nTableCell.displayName = 'TableCell';\n","import {notUndefined, useVirtualizer} from '@tanstack/react-virtual';\nimport type {MutableRefObject} from 'react';\n\nexport type Props = {\n rowsCount: number;\n scrollRef: MutableRefObject<HTMLElement | null>;\n cellHeight: number;\n overscan: number;\n};\n\nexport const useVirtualRows = ({rowsCount, scrollRef, cellHeight, overscan}: Props) => {\n const virtualizer = useVirtualizer({\n count: rowsCount,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => cellHeight,\n overscan: overscan,\n });\n\n const virtualRows = virtualizer.getVirtualItems();\n\n const [before, after] =\n virtualRows.length > 0\n ? [\n notUndefined(virtualRows[0]).start - virtualizer.options.scrollMargin,\n virtualizer.getTotalSize() -\n notUndefined(virtualRows[virtualRows.length - 1]).end,\n ]\n : [0, 0];\n\n return {virtualizer, virtualRows, before, after};\n};\n","import {useEffect, useState} from 'react';\n\nimport type {TableData} from './../types.ts';\n\nexport const useTableData = (tableDataProp: TableData) => {\n const [tableData, setTableData] = useState(() => [...tableDataProp]);\n\n useEffect(() => {\n setTableData(() => [...tableDataProp]);\n }, [tableDataProp]);\n return {tableData, setTableData};\n};\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 media = window.matchMedia(query);\n // fallback for usage in tests\n if (!window.matchMedia) {\n return;\n }\n if (media.matches !== matches) {\n setMatches(media.matches);\n }\n const listener = () => setMatches(media.matches);\n media.addEventListener('change', listener);\n return () => media.removeEventListener('change', listener);\n }, [matches, query]);\n\n return matches;\n};\n","import {useRef, useState} from 'react';\nimport type {KeyboardEvent, FC, ChangeEvent} from 'react';\nimport {useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {Pagination as PaginationVanilla} from '@/lib/Pagination';\nimport {IconEnter} from '@/internal/Icons';\nimport {useMatchMedia} from '@/internal/hooks/useMatchMedia.tsx';\n\nimport classes from './DataTable.module.css';\n\nexport type Props = {\n setCurrentPage: (page: number) => void;\n onPageSizeChange: (page: number) => void;\n currentPage: number;\n pagesAmount: number;\n pageSize: number;\n rowsCount: number;\n};\n\nexport const Pagination: FC<Props> = ({\n setCurrentPage,\n currentPage,\n pagesAmount,\n pageSize: pageSizeProp,\n onPageSizeChange,\n rowsCount,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [pageSize, setPageSize] = useState(pageSizeProp);\n\n const checkValidity = useCallback(\n (nextValue: number) => {\n return nextValue <= rowsCount;\n },\n [rowsCount]\n );\n\n const handlePageSizeChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = parseInt(event.target.value);\n setPageSize(nextValue);\n }, []);\n\n const handlePazeSizeEnter = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter' && checkValidity(pageSize)) {\n onPageSizeChange(pageSize);\n setCurrentPage(1);\n }\n },\n [checkValidity, onPageSizeChange, pageSize, setCurrentPage]\n );\n\n const handlePageSizeSubmit = useCallback(() => {\n if (checkValidity(pageSize)) {\n onPageSizeChange(pageSize);\n setCurrentPage(1);\n }\n }, [checkValidity, onPageSizeChange, pageSize, setCurrentPage]);\n\n const isBigScreen = useMatchMedia('(width >= 768px)');\n\n const displayPageButtons = isBigScreen || pagesAmount <= 7;\n const displayPageNavigation = isBigScreen || pagesAmount > 7;\n\n return (\n <div className={classes.paginationWrapper}>\n <PaginationVanilla\n showPageButtons={displayPageButtons}\n showNavigation={displayPageNavigation}\n onPageSelect={setCurrentPage}\n selectedPage={currentPage}\n totalPages={pagesAmount}\n />\n <div className={classes.paginationFieldset}>\n <label htmlFor=\"input\" className={classes.paginationLabel}>\n Rows per page:\n </label>\n <input\n min={1}\n max={rowsCount}\n ref={inputRef}\n onKeyUp={handlePazeSizeEnter}\n onChange={handlePageSizeChange}\n value={pageSize}\n id=\"input\"\n type=\"number\"\n className={classNames(classes.paginationInput, {\n [classes.error]: !checkValidity(pageSize),\n })}\n />\n <button\n disabled={!checkValidity(pageSize)}\n className={classes.paginationButton}\n onClick={handlePageSizeSubmit}>\n <IconEnter className={classes.icon} />\n </button>\n </div>\n </div>\n );\n};\n","import {useCallback, useEffect, useState} from 'react';\nimport type {PaginationState} from '@tanstack/react-table';\n\nimport type {TableData} from './../types.ts';\n\nexport type Props = {\n paginationProp: PaginationState;\n tableData: TableData;\n onPaginationChange: (paginationState: PaginationState) => void;\n};\n\nexport const usePagination = ({paginationProp, onPaginationChange}: Props) => {\n const [pagination, setPagination] = useState<PaginationState>(paginationProp);\n\n useEffect(() => {\n setPagination(paginationProp);\n }, [paginationProp]);\n\n useEffect(() => {\n onPaginationChange(pagination);\n }, [onPaginationChange, pagination]);\n\n const currentPage = pagination.pageIndex + 1;\n\n const setCurrentPage = useCallback((nextPage: number) => {\n setPagination(prevState => ({...prevState, pageIndex: nextPage - 1}));\n }, []);\n\n const setPageSize = useCallback((nextSize: number) => {\n setPagination(prevState => ({...prevState, pageSize: nextSize}));\n }, []);\n\n return {\n pagination,\n setPagination,\n currentPage,\n setCurrentPage,\n setPageSize,\n };\n};\n","import {useState, useEffect} from 'react';\nimport type {SortingState} from '@tanstack/react-table';\n\n// import type {ProcessingModes} from './types.ts';\n\nexport type Props = {\n sortingProp: SortingState;\n onSortingChange: (sortingState: SortingState) => void;\n // processingMode?: keyof typeof ProcessingModes;\n};\n\nexport const useSorting = ({sortingProp, onSortingChange}: Props) => {\n const [sorting, setSorting] = useState<SortingState>(sortingProp);\n\n useEffect(() => {\n setSorting(sortingProp);\n }, [sortingProp]);\n\n useEffect(() => {\n onSortingChange(sorting);\n }, [onSortingChange, sorting]);\n\n return {sorting, setSorting};\n};\n","import type {FC, ChangeEvent} from 'react';\nimport {useEffect} from 'react';\nimport {useCallback, useState} from 'react';\n\nimport {FormField, InputNumeric} from '@/lib';\n\nimport classes from './Dialog.module.css';\nimport type {ColumnFormatOptions, FilterValue} from './../types.ts';\n\nexport type Props = {\n value: FilterValue;\n onChange: (value: FilterValue) => void;\n cellProps?: ColumnFormatOptions;\n step?: number;\n};\n\nconst normalizeValue = (value: FilterValue) => {\n if (!Array.isArray(value)) {\n return ['', ''];\n } else {\n return value.map(filter => String(filter));\n }\n};\n\nconst valueToNumber = (value: string[]) => {\n return value.map(filter => Number(filter));\n};\n\nexport const NumberRangeField: FC<Props> = ({value: valueProp, onChange}) => {\n const [value, setValue] = useState(normalizeValue(valueProp));\n\n const [from, to] = value;\n\n const handleMinChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = [event.target.value, to];\n setValue(nextValue);\n },\n [to]\n );\n const handleMaxChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = [from, event.target.value];\n setValue(nextValue);\n },\n [from]\n );\n\n useEffect(() => {\n onChange(valueToNumber(value));\n }, [onChange, value]);\n return (\n <div className={classes.numberRange}>\n <FormField className={classes.numberField} label=\"From:\">\n <InputNumeric mode=\"floating\" value={from} onChange={handleMinChange} />\n </FormField>\n <FormField className={classes.numberField} label=\"To:\">\n <InputNumeric mode=\"floating\" value={to} onChange={handleMaxChange} />\n </FormField>\n </div>\n );\n};\n","import type {FC, ChangeEvent} from 'react';\nimport {useEffect} from 'react';\nimport {useCallback, useState} from 'react';\n\nimport {FormField, InputDate} from '@/lib';\n\nimport classes from './Dialog.module.css';\nimport type {ColumnFormatOptions, FilterValue, DateRangeFilterValue} from './../types.ts';\n\nexport type Props = {\n value: FilterValue;\n onChange: (value: FilterValue) => void;\n cellProps?: ColumnFormatOptions;\n};\n\nexport const DateRangeField: FC<Props> = ({value: valueProp, onChange}) => {\n const [value, setValue] = useState(valueProp as DateRangeFilterValue);\n\n useEffect(() => {\n setValue(valueProp as DateRangeFilterValue);\n }, [valueProp]);\n\n const [from, to] = value as DateRangeFilterValue;\n const handleMinChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = [event.target.value, to];\n setValue(nextValue);\n },\n [to]\n );\n const handleMaxChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = [from, event.target.value];\n setValue(nextValue);\n },\n [from]\n );\n\n useEffect(() => {\n onChange(value);\n }, [onChange, value]);\n return (\n <div className={classes.numberRange}>\n <FormField className={classes.numberField} label=\"From:\">\n <InputDate value={from ?? ''} onChange={handleMinChange} />\n </FormField>\n <FormField className={classes.numberField} label=\"To:\">\n <InputDate value={to || ''} onChange={handleMaxChange} />\n </FormField>\n </div>\n );\n};\n","import type {FC, ChangeEvent, InputHTMLAttributes} from 'react';\nimport {useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport {FormField} from '@/lib/FormField';\nimport {InputText} from '@/lib/InputText';\n\nimport classes from './Dialog.module.css';\nimport type {FilterValue} from './../types.ts';\n\nexport type Props = {\n value: FilterValue;\n onChange: (value: FilterValue) => void;\n};\n\nexport const TextField: FC<Props> = ({value, onChange}) => {\n const handleFilterChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event.target.value);\n },\n [onChange]\n );\n return (\n <FormField className={classNames(classes.field, classes.valueField)} label=\"Filter value:\">\n <InputText\n value={value as InputHTMLAttributes<HTMLInputElement>['value']}\n onChange={handleFilterChange}\n />\n </FormField>\n );\n};\n","import type {ComponentProps, FC, ChangeEvent} from 'react';\nimport {useMemo, useState, useCallback, useEffect, memo} from 'react';\nimport type {ColumnFiltersState, Table} from '@tanstack/react-table';\n\nimport {Dialog, useDialogState} from '@/lib/Dialog';\nimport {FormField} from '@/lib/FormField';\nimport {Select} from '@/lib/Select';\nimport {IconFilter, IconFilterOff, IconColumns} from '@/internal/Icons';\n\nimport classes from './Dialog.module.css';\nimport type {TableRow, FilterValue} from './../types.ts';\nimport {ColumnTypes} from './../types.ts';\nimport {NumberRangeField} from './NumberRangeField.tsx';\nimport {DateRangeField} from './DateRangeField.tsx';\nimport {TextField} from './TextField.tsx';\n\nexport type FilterConfig = {filter: FilterValue | string; column?: string};\n\nexport type Props = {\n id: string;\n columnsList?: string[];\n onApplyFiler: (filter: FilterConfig) => void;\n columnFilters: ColumnFiltersState;\n tableContext: Table<TableRow>;\n};\n\nconst fieldMapping = {\n [ColumnTypes.text]: TextField,\n [ColumnTypes.currency]: NumberRangeField,\n [ColumnTypes.decimal]: NumberRangeField,\n [ColumnTypes.unit]: NumberRangeField,\n [ColumnTypes.percentage]: NumberRangeField,\n [ColumnTypes.select]: TextField,\n [ColumnTypes.date]: DateRangeField,\n};\n\nexport const FilterDialog: FC<Props> = memo(({id, onApplyFiler, columnFilters, tableContext}) => {\n const {dialogParams, closeDialog} = useDialogState(id);\n\n const columnsConfig = useMemo(\n () =>\n tableContext\n .getAllColumns()\n .map(column => {\n return {\n id: column.id,\n name: column.columnDef.meta?.name as string,\n type: column.columnDef.meta?.type as keyof typeof ColumnTypes,\n filterable: column?.getCanFilter(),\n };\n })\n .filter(({filterable}) => filterable),\n [tableContext]\n );\n\n const [selectedColumn, setSelectedColumn] = useState(\n dialogParams?.columnId as string | undefined\n );\n\n useEffect(() => {\n dialogParams?.columnId && setSelectedColumn(dialogParams?.columnId as string);\n }, [dialogParams?.columnId]);\n\n const handleColumnSelect = useCallback((event: ChangeEvent<HTMLSelectElement>) => {\n setSelectedColumn(event.target.value);\n }, []);\n\n const [selectedType, setSelectedType] = useState<keyof typeof ColumnTypes>(ColumnTypes.text);\n\n useEffect(() => {\n const nextType =\n columnsConfig.find(({id}) => id === selectedColumn)?.type ||\n (ColumnTypes.text as keyof typeof ColumnTypes);\n setSelectedType(nextType);\n }, [columnsConfig, selectedColumn, setSelectedType]);\n\n const FilterField = useMemo(\n () => selectedColumn && tableContext.getColumn(selectedColumn)?.columnDef.meta?.filterInput,\n [selectedColumn, tableContext]\n );\n\n const InputField = useMemo(\n () => FilterField || fieldMapping[selectedType],\n [FilterField, selectedType]\n );\n\n const tableFilterValue = useMemo(() => {\n const columnFilter = columnFilters.find(({id}) => id === selectedColumn);\n return columnFilter?.value !== undefined ? (columnFilter?.value as FilterValue) : '';\n }, [columnFilters, selectedColumn]);\n\n const [filterValue, setFilterValue] = useState(tableFilterValue);\n\n useEffect(() => {\n setFilterValue('');\n }, [selectedColumn]);\n\n const hasFilter = Array.isArray(filterValue)\n ? filterValue.every(value => Boolean(value))\n : Boolean(filterValue);\n\n useEffect(() => {\n setFilterValue(tableFilterValue);\n }, [tableFilterValue]);\n\n const handleFilterChange = useCallback((value: string | FilterValue) => {\n setFilterValue(value);\n }, []);\n\n const handleApplyFilter = useCallback(() => {\n onApplyFiler({column: selectedColumn, filter: filterValue});\n closeDialog();\n }, [closeDialog, filterValue, onApplyFiler, selectedColumn]);\n\n const handleResetFilter = useCallback(() => {\n onApplyFiler({column: selectedColumn, filter: ''});\n closeDialog();\n }, [closeDialog, onApplyFiler, selectedColumn]);\n\n const actions = useMemo<ComponentProps<typeof Dialog>['actions']>(\n () => [\n [\n {title: 'Reset filter', onClick: handleResetFilter, icon: IconFilterOff},\n {\n title: 'Apply filter',\n icon: IconFilter,\n onClick: handleApplyFilter,\n type: 'success' as const,\n disabled: !hasFilter,\n },\n ] as const,\n ],\n [handleApplyFilter, handleResetFilter, hasFilter]\n );\n\n const cellProps = useMemo(() => {\n return typeof selectedColumn === 'string'\n ? tableContext.getColumn(selectedColumn)?.columnDef.meta?.cellProps\n : {};\n }, [selectedColumn, tableContext]);\n\n return (\n <Dialog\n animation=\"scale-in\"\n showCloseButton={false}\n dialogTitle=\"Filter column\"\n id={id}\n className={classes.dialog}\n actions={actions}>\n <div className={classes.fieldset}>\n <FormField className={classes.field} label=\"Column:\">\n <Select\n prefix={IconColumns}\n value={selectedColumn}\n onChange={handleColumnSelect}>\n {columnsConfig.map(({id, name}) => (\n <option key={id} value={id}>\n {name}\n </option>\n ))}\n </Select>\n </FormField>\n {/* <FormField className={classes.field} label=\"Operator:\">\n <Select onChange={handleOperatorSelect}>\n <option value=\"includes\">Includes</option>\n <option value=\"equals\">Equals</option>\n </Select>\n </FormField>*/}\n <InputField\n value={filterValue}\n onChange={handleFilterChange}\n cellProps={cellProps}\n />\n </div>\n </Dialog>\n );\n});\n\nFilterDialog.displayName = 'FilterDialog';\n","import {useCallback, useEffect, useMemo, useState} from 'react';\nimport type {RowSelectionState, Updater} from '@tanstack/react-table';\n\nimport {ProcessingModes} from './../types.ts';\n\nexport type Props = {\n onRowSelect: (selectionState: RowSelectionState) => void;\n rowSelectionProp: RowSelectionState;\n processingMode: keyof typeof ProcessingModes;\n};\n\nexport const useRowSelection = ({rowSelectionProp, onRowSelect, processingMode}: Props) => {\n const isClient = processingMode === ProcessingModes.internal;\n const [rowSelection, setRowSelection] = useState<RowSelectionState>(rowSelectionProp);\n useEffect(() => {\n setRowSelection(rowSelectionProp);\n }, [rowSelectionProp]);\n\n useEffect(() => {\n onRowSelect(rowSelection);\n }, [onRowSelect, rowSelection]);\n\n const clearSelection = useCallback(() => {\n processingMode === ProcessingModes.internal && setRowSelection({});\n onRowSelect({});\n }, [onRowSelect, processingMode]);\n\n const handleRowSelection = useMemo(() => {\n if (isClient) {\n return setRowSelection;\n } else {\n return (updater: Updater<RowSelectionState>) => {\n if (typeof updater === 'function') {\n onRowSelect(updater(rowSelection) as RowSelectionState);\n } else {\n onRowSelect(updater);\n }\n };\n }\n }, [isClient, onRowSelect, rowSelection]);\n\n return {rowSelection, setRowSelection: handleRowSelection, clearSelection};\n};\n","export type Props = {\n tableHeightProp: number | 'full';\n};\n\nexport const useTableHeight = ({tableHeightProp}: Props) => {\n if (tableHeightProp === 'full') {\n return '100vh';\n } else {\n return `${tableHeightProp}px`;\n }\n};\n","import type {ComponentProps, FC} from 'react';\nimport {useMemo} from 'react';\n\nimport {Dialog, useDialogState} from '@/lib/Dialog';\nimport {NumberDecimal} from '@/lib/Number';\nimport {IconDelete, IconClose} from '@/internal/Icons';\n\nimport classes from './Dialog.module.css';\n\nexport type Props = {\n selectionAmount?: number;\n onDeleteConfirmation: () => void;\n id: string;\n};\n\nexport const DeleteDialog: FC<Props> = ({selectionAmount, onDeleteConfirmation, id}) => {\n const {closeDialog} = useDialogState(id);\n const actions = useMemo<ComponentProps<typeof Dialog>['actions']>(\n () =>\n [\n [\n {\n title: 'Cancel',\n type: 'default',\n icon: IconClose,\n onClick: () => {\n closeDialog();\n },\n },\n {\n title: 'Delete',\n type: 'danger',\n icon: IconDelete,\n onClick: () => {\n onDeleteConfirmation();\n closeDialog();\n },\n },\n ],\n ] as const,\n [closeDialog, onDeleteConfirmation]\n );\n return (\n <Dialog\n animation=\"scale-in\"\n id={id}\n className={classes.deleteDialog}\n actions={actions}\n showCloseButton={false}>\n Do you want to delete <NumberDecimal value={selectionAmount} /> row(s)?\n </Dialog>\n );\n};\n","import type {FC, ComponentProps, ChangeEvent} from 'react';\nimport {useCallback} from 'react';\n\nimport {InputNumber} from '@/lib';\n\nexport type Props = Omit<ComponentProps<typeof InputNumber>, 'onChange'> & {\n onChange: (value: string) => void;\n};\n\nexport const PercentageInput: FC<Props> = ({onChange = () => {}, value, ...restProps}) => {\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(String(Number(event.target.value) / 100));\n },\n [onChange]\n );\n return (\n <InputNumber\n {...restProps}\n onChange={handleChange}\n value={Number(value) * 100}\n step={0.01}\n />\n );\n};\n","import type {ComponentProps, FC, ChangeEvent, JSX} from 'react';\nimport {useMemo, useState, useCallback, useEffect, memo} from 'react';\nimport classNames from 'classnames';\n\nimport {Dialog, useDialogState} from '@/lib/Dialog';\nimport {FormField} from '@/lib/FormField';\nimport {InputText} from '@/lib/InputText';\nimport {InputNumeric} from '@/lib/InputNumeric';\nimport {InputDate} from '@/lib/InputDate';\nimport {Select} from '@/lib/Select';\nimport {IconEdit, IconClose, IconColumns} from '@/internal/Icons';\nimport {useBrowserLocale} from '@/internal/locale';\n\nimport classes from './Dialog.module.css';\nimport type {TableValue} from './../types.ts';\nimport {ColumnTypes} from './../types.ts';\nimport {PercentageInput} from './PercentageInput.tsx';\n\nexport type ColumnsConfig = {\n id: string;\n name: string;\n type: keyof typeof ColumnTypes;\n};\n\nexport type Props = {\n id: string;\n columnsConfig?: ColumnsConfig[];\n onEdit: (columnId: string, value: TableValue) => void;\n selectionAmount?: number;\n};\n\nconst withValueMapping = <TProps extends JSX.IntrinsicAttributes>(Component: FC<TProps>) => {\n const Wrapped: FC<\n Omit<ComponentProps<typeof Component>, 'onChange'> & {onChange?: (value: string) => void}\n > = ({onChange = () => {}, ...restProps}) => {\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onChange(event.target?.value);\n },\n [onChange]\n );\n return <Component {...(restProps as TProps)} mode=\"floating\" onChange={handleChange} />;\n };\n\n Wrapped.displayName = Component.displayName;\n\n return Wrapped;\n};\n\nconst valueInputMapping = {\n [ColumnTypes.text]: withValueMapping(InputText),\n [ColumnTypes.currency]: withValueMapping(InputNumeric),\n [ColumnTypes.decimal]: withValueMapping(InputNumeric),\n [ColumnTypes.unit]: withValueMapping(InputNumeric),\n [ColumnTypes.percentage]: PercentageInput,\n [ColumnTypes.select]: withValueMapping(InputText),\n [ColumnTypes.date]: withValueMapping(InputDate),\n};\n\nexport const EditDialog: FC<Props> = memo(({id, columnsConfig = [], selectionAmount, onEdit}) => {\n const {dialogParams, closeDialog} = useDialogState(id);\n\n const [selectedColumn, setSelectedColumn] = useState(columnsConfig[0].id);\n\n useEffect(() => {\n dialogParams?.columnId && setSelectedColumn(dialogParams?.columnId as string);\n }, [dialogParams?.columnId]);\n\n const handleColumnSelect = useCallback((event: ChangeEvent<HTMLSelectElement>) => {\n setSelectedColumn(event.target.value);\n }, []);\n\n const [selectedType, setSelectedType] = useState<keyof typeof ColumnTypes>(ColumnTypes.text);\n\n useEffect(() => {\n const nextType =\n columnsConfig.find(({id}) => id === selectedColumn)?.type ||\n (ColumnTypes.text as keyof typeof ColumnTypes);\n setSelectedType(nextType);\n }, [columnsConfig, selectedColumn, setSelectedType]);\n\n const Input = useMemo(() => valueInputMapping[selectedType], [selectedType]);\n\n const [selectionValue, setSelectionValue] = useState('');\n\n useEffect(() => {\n setSelectionValue('');\n }, [selectedColumn]);\n\n const handleEdit = useCallback(() => {\n onEdit(selectedColumn || columnsConfig[0].id, selectionValue);\n closeDialog();\n }, [closeDialog, columnsConfig, onEdit, selectedColumn, selectionValue]);\n\n const handleReset = useCallback(() => {\n closeDialog();\n }, [closeDialog]);\n\n const actions = useMemo<ComponentProps<typeof Dialog>['actions']>(\n () => [\n [\n {title: 'Cancel', onClick: handleReset, icon: IconClose},\n {\n title: 'Apply change',\n icon: IconEdit,\n onClick: handleEdit,\n type: 'link' as const,\n },\n ] as const,\n ],\n [handleEdit, handleReset]\n );\n\n const userLocale = useBrowserLocale();\n\n const amountFormatted = new Intl.NumberFormat(userLocale, {\n style: 'decimal',\n }).format(selectionAmount || 0);\n\n return (\n <Dialog\n animation=\"scale-in\"\n showCloseButton={false}\n dialogTitle={`Edit ${amountFormatted} row(s)`}\n id={id}\n className={classes.dialog}\n actions={actions}>\n <div className={classes.fieldset}>\n <FormField className={classes.field} label=\"Column:\">\n <Select\n prefix={IconColumns}\n value={selectedColumn}\n onChange={handleColumnSelect}>\n {columnsConfig.map(({id, name}) => (\n <option key={id} value={id}>\n {name}\n </option>\n ))}\n </Select>\n </FormField>\n <FormField\n className={classNames(classes.field, classes.valueField)}\n label=\"New value:\">\n <Input value={selectionValue} onChange={setSelectionValue} />\n </FormField>\n </div>\n </Dialog>\n );\n});\n\nEditDialog.displayName = 'EditDialog';\n","import type {FC} from 'react';\n\nimport {Button, NumberDecimal, Strong} from '@/lib';\nimport {IconClear, IconDelete, IconEdit} from '@/internal/Icons';\n\nimport classes from './DataTable.module.css';\n\nexport type Props = {\n onClear: () => void;\n onDeleteRequest: () => void;\n onEditRequest: () => void;\n selectedRows: number;\n totalRows: number;\n};\n\nexport const SelectableActions: FC<Props> = ({\n onClear,\n selectedRows,\n onDeleteRequest,\n onEditRequest,\n totalRows,\n}) => {\n const disabled = selectedRows === 0;\n return (\n <div className={classes.rowSelection}>\n <div className={classes.rowSelectionActions}>\n <Button\n className={classes.rowSelectionButton}\n prefix={IconClear}\n size=\"small\"\n variant=\"alternative\"\n onClick={onClear}\n disabled={disabled}>\n Clear selection\n </Button>\n <Button\n className={classes.rowSelectionButton}\n onClick={onDeleteRequest}\n size=\"small\"\n variant=\"alternative\"\n prefix={IconDelete}\n disabled={disabled}>\n Delete row(s)\n </Button>\n <Button\n className={classes.rowSelectionButton}\n onClick={onEditRequest}\n size=\"small\"\n variant=\"alternative\"\n prefix={IconEdit}\n disabled={disabled}>\n Edit row(s)\n </Button>\n </div>\n <div className={classes.rowSelectionText}>\n <Strong>\n <NumberDecimal value={selectedRows} />\n </Strong>{' '}\n of{' '}\n <Strong>\n <NumberDecimal value={totalRows} />\n </Strong>{' '}\n rows selected\n </div>\n </div>\n );\n};\n","/**\n * Naive implementation of a lodash set.\n * Mutates provided object.\n */\nexport const set = <TObject>(\n obj: TObject,\n path: string | string[],\n value: string | number\n): TObject => {\n if (Object(obj) !== obj) return obj; // When obj is not an object,\n // If not yet an array, get the keys from the string-path\n if (!Array.isArray(path)) path = path.toString().match(/[^.[\\]]+/g) || [];\n // @ts-expect-error TODO: improve types\n (path as string[]).slice(0, -1).reduce(\n (\n a,\n c,\n i // Iterate all of them except the last one\n ) =>\n // @ts-expect-error TODO: improve types\n Object(a[c]) === a[c] // Does the key exist and is its value an object?\n ? // Yes: then follow that path\n // @ts-expect-error TODO: improve types\n a[c]\n : // No: create the key. Is the next key a potential array-index?\n // @ts-expect-error TODO: improve types\n (a[c] =\n // @ts-expect-error TODO: improve types\n Math.abs(path[i + 1]) >> 0 === +path[i + 1]\n ? [] // Yes: assign a new array object\n : {}), // No: assign a new plain object\n obj\n )[path[path.length - 1]] = value; // Finally, assign the value to the last key\n return obj; // Return the top-level object to allow chaining\n};\n","import type {SetStateAction} from 'react';\nimport {useCallback, useMemo} from 'react';\nimport type {RowSelectionState, Table} from '@tanstack/react-table';\n\nimport {useDialogState} from '@/lib';\nimport {set} from '@/internal/utils/set.ts';\n\nimport type {TableData, TableRow, TableValue, EditState} from './../types.ts';\nimport {ProcessingModes} from './../types.ts';\n\nexport type Props = {\n rowSelection: RowSelectionState;\n table: Table<TableRow>;\n tableData: TableData;\n processingMode: keyof typeof ProcessingModes;\n setTableData: (value: SetStateAction<TableRow[]>) => void;\n onEdit: (editState: EditState) => void;\n clearSelection: () => void;\n};\n\nexport const useEdit = ({\n rowSelection,\n table,\n tableData,\n processingMode,\n setTableData,\n onEdit,\n clearSelection,\n}: Props) => {\n const {openDialog: showDeleteConfirmation} = useDialogState(\n table.options.meta?.deleteModalId as string\n );\n const {openDialog: showEditDialog} = useDialogState(table.options.meta?.editModalId as string);\n\n const handleDeleteRequest = useCallback(() => {\n showDeleteConfirmation();\n }, [showDeleteConfirmation]);\n\n const handleEditRequest = useCallback(() => {\n showEditDialog({selectionAmount: Object.keys(rowSelection).length});\n }, [rowSelection, showEditDialog]);\n\n const selectedRows = useMemo(\n () => Object.keys(rowSelection).map(rowIndex => Number(rowIndex)),\n [rowSelection]\n );\n\n const editRows = useCallback(\n (tableData: TableData, editedRows: number[], columnId: string, value: TableValue) => {\n // needs to be a copy to preserve immutability\n const result: TableData = [...tableData];\n editedRows.forEach(rowIndex => {\n // TODO: remove\n const path = table.getColumn(columnId)?.columnDef.meta?.accessorKey as string;\n set(result[rowIndex], path, value);\n });\n return result;\n },\n [table]\n );\n\n const handleEdit = useCallback(\n (columnId: string, value: string | number) => {\n const nextTableData = editRows(tableData, selectedRows, columnId, value);\n const editState: EditState = Object.fromEntries(\n selectedRows.map(rowIndex => [rowIndex, nextTableData[rowIndex]])\n );\n processingMode === ProcessingModes.internal && setTableData(nextTableData);\n onEdit(editState);\n\n clearSelection();\n },\n [clearSelection, editRows, onEdit, processingMode, selectedRows, setTableData, tableData]\n );\n\n const deleteRows = useCallback((tableData: TableData, deletedRows: Set<number>) => {\n return tableData.filter((_, i) => !deletedRows.has(i));\n }, []);\n\n const handleDelete = useCallback(() => {\n const nextTableData = deleteRows(tableData, new Set(selectedRows));\n processingMode === ProcessingModes.internal && setTableData(nextTableData);\n onEdit({});\n\n clearSelection();\n }, [deleteRows, tableData, selectedRows, processingMode, setTableData, onEdit, clearSelection]);\n\n return {handleDeleteRequest, handleDelete, handleEdit, handleEditRequest};\n};\n","import type {ComponentProps, FC, ReactNode} from 'react';\nimport {useCallback, useState, useMemo} from 'react';\n\nimport {\n IconEllipsisVertical,\n IconPinRight,\n IconPinLeft,\n IconUnPin,\n IconFilter,\n IconSortAsc,\n IconSortDesc,\n IconSortOff,\n} from '@/internal/Icons';\nimport {MenuActions} from '@/lib/Menu';\nimport {useDialogState} from '@/lib/Dialog';\n\nimport type {HeaderCell} from './../types.ts';\nimport classes from './Cells.module.css';\n\nexport type Props = ComponentProps<HeaderCell> & {\n children?: ReactNode;\n};\n\nexport const ColumnHeaderCell: FC<Props> = ({title, headerContext}) => {\n const [isOpen, setOpen] = useState(false);\n const handleClick = useCallback(() => {\n setOpen(!isOpen);\n }, [isOpen]);\n const handleToggle = useCallback(\n (openState: boolean) => {\n setOpen(openState);\n },\n [setOpen]\n );\n const isPinned = headerContext.column.getIsPinned();\n\n const isSorted = headerContext.column.getIsSorted();\n\n const hasFilter = headerContext.column.getIsFiltered();\n\n const {openDialog} = useDialogState(headerContext.table.options.meta?.filterModalId as string);\n\n const actions = useMemo(\n () => [\n {\n title: hasFilter ? 'Edit filter' : 'Filter column',\n icon: IconFilter,\n onClick: () => {\n openDialog({columnId: headerContext.column.id});\n setOpen(false);\n },\n },\n {\n title: isSorted !== 'asc' ? 'Sort ascending' : 'Clear ascending',\n icon: isSorted !== 'asc' ? IconSortAsc : IconSortOff,\n onClick: () => {\n isSorted !== 'asc' &&\n headerContext.table.setSorting([\n {desc: false, id: headerContext.column.id},\n ]);\n isSorted === 'asc' && headerContext.column.clearSorting();\n setOpen(false);\n },\n },\n {\n title: isSorted !== 'desc' ? 'Sort descending' : 'Clear descending',\n icon: isSorted !== 'desc' ? IconSortDesc : IconSortOff,\n onClick: () => {\n isSorted !== 'desc' &&\n headerContext.table.setSorting([{desc: true, id: headerContext.column.id}]);\n isSorted === 'desc' && headerContext.column.clearSorting();\n setOpen(false);\n },\n },\n {\n title: isPinned !== 'left' ? 'Pin left' : 'Unpin left',\n icon: isPinned !== 'left' ? IconPinLeft : IconUnPin,\n onClick: () => {\n setOpen(false);\n if (isPinned !== 'left') {\n headerContext.column.pin('left');\n } else {\n headerContext.column.pin(false);\n }\n },\n },\n {\n title: isPinned !== 'right' ? 'Pin right' : 'Unpin right',\n icon: isPinned !== 'right' ? IconPinRight : IconUnPin,\n onClick: () => {\n setOpen(false);\n if (isPinned !== 'right') {\n headerContext.column.pin('right');\n } else {\n headerContext.column.pin(false);\n }\n },\n },\n ],\n [hasFilter, headerContext.column, headerContext.table, isPinned, isSorted, openDialog]\n );\n return (\n <div className={classes.headerCell}>\n <div className={classes.columnTitle}>{title}</div>\n\n <div className={classes.columnActions}>\n <MenuActions\n allowedPlacements={['bottom', 'bottom-end', 'bottom-start']}\n variant=\"plain\"\n actions={actions}\n isOpen={isOpen}\n onToggle={handleToggle}>\n <button className={classes.actionsButton} onClick={handleClick}>\n <IconEllipsisVertical className={classes.actionsIcon} />\n </button>\n </MenuActions>\n </div>\n </div>\n );\n};\n","import type {ComponentProps, FC} from 'react';\nimport {useCallback} from 'react';\n\nimport {IconFilterOff, IconUnPin, IconSortOff} from '@/internal/Icons';\n\nimport type {FooterCell} from './../types.ts';\nimport classes from './Cells.module.css';\n\nexport type Props = ComponentProps<FooterCell>;\n\nexport const ColumnFooterCell: FC<Props> = ({cellContext}) => {\n const isFiltered = cellContext.column.getIsFiltered();\n const isSorted = Boolean(cellContext.column.getIsSorted());\n const isPinned = Boolean(cellContext.column.getIsPinned());\n\n const handleResetFilter = useCallback(() => {\n cellContext.column.setFilterValue('');\n }, [cellContext]);\n\n const handleResetSorting = useCallback(() => {\n cellContext.column.clearSorting();\n }, [cellContext]);\n\n const handleUnPin = useCallback(() => {\n cellContext.column.pin(false);\n }, [cellContext]);\n\n return (\n <div className={classes.footerCell}>\n {isFiltered && (\n <button\n className={classes.footerButton}\n title=\"Reset filter\"\n onClick={handleResetFilter}>\n <IconFilterOff className={classes.footerIcon} />\n </button>\n )}\n {isSorted && (\n <button\n className={classes.footerButton}\n title=\"Reset sorting\"\n onClick={handleResetSorting}>\n <IconSortOff className={classes.footerIcon} />\n </button>\n )}\n {isPinned && (\n <button className={classes.footerButton} title=\"Unpin column\" onClick={handleUnPin}>\n <IconUnPin className={classes.footerIcon} />\n </button>\n )}\n </div>\n );\n};\n","import type {ComponentProps, FC} from 'react';\n\nimport classes from './Cells.module.css';\nimport type {CellComponent} from './../types.ts';\n\nexport type Props = ComponentProps<CellComponent>;\n\nexport const ViewTextCell: FC<Props> = ({value}) => {\n return (\n <div title={String(value)} className={classes.viewTextCell}>\n {value}\n </div>\n );\n};\n","import type {ComponentProps, FC} from 'react';\n\nimport {NumberDecimal} from '@/lib/Number';\nimport type {Locale} from '@/internal/locale';\n\nimport classes from './Cells.module.css';\nimport type {CellComponent} from './../types.ts';\n\nexport type Props = ComponentProps<CellComponent>;\n\nexport const ViewDecimalCell: FC<Props> = ({value, cellContext, ...restProps}) => {\n const locale = cellContext.table.options.meta?.locale as Locale;\n return (\n <div className={classes.viewNumberCell}>\n <NumberDecimal {...restProps} locale={locale} value={Number(value)} />\n </div>\n );\n};\n","import type {FC, ComponentProps} from 'react';\n\nimport type {UnitDisplayModes} from '@/lib/Number';\nimport {NumberUnit} from '@/lib/Number';\nimport type {Locale, Units} from '@/internal/locale';\n\nimport classes from './Cells.module.css';\nimport type {CellComponent} from './../types.ts';\n\nexport type Props = ComponentProps<CellComponent> & {\n unit?: keyof typeof Units;\n unitDisplay?: keyof typeof UnitDisplayModes;\n};\n\nexport const ViewUnitCell: FC<Props> = ({value, cellContext, unit, ...restProps}) => {\n const locale = cellContext.table.options.meta?.locale as Locale;\n return (\n <div className={classes.viewNumberCell}>\n <NumberUnit {...restProps} unit={unit} locale={locale} value={Number(value)} />\n </div>\n );\n};\n","import type {ComponentProps, FC} from 'react';\n\nimport {DateTime} from '@/lib/DateTime';\nimport type {Locale} from '@/internal/locale';\n\nimport classes from './Cells.module.css';\nimport type {CellComponent} from './../types.ts';\n\nexport type Props = ComponentProps<CellComponent>;\n\nexport const ViewDateCell: FC<Props> = ({value, cellContext, ...restProps}) => {\n const locale = cellContext.table.options.meta?.locale as Locale;\n return (\n <div className={classes.viewDateCell}>\n <DateTime {...restProps} value={String(value)} locale={locale} />\n </div>\n );\n};\n","import type {ComponentProps, FC} from 'react';\n\nimport type {CurrencyCodes, Locale} from '@/internal/locale';\nimport {NumberCurrency} from '@/lib/Number';\n\nimport classes from './Cells.module.css';\nimport type {CellComponent} from './../types.ts';\n\nexport type Props = ComponentProps<CellComponent> & {\n currency?: keyof typeof CurrencyCodes;\n};\n\nexport const ViewCurrencyCell: FC<Props> = ({\n value,\n currency = 'EUR',\n cellContext,\n ...restProps\n}) => {\n const locale = cellContext.table.options.meta?.locale as Locale;\n return (\n <div className={classes.viewNumberCell}>\n <NumberCurrency\n {...restProps}\n locale={locale}\n currency={currency}\n value={Number(value)}\n />\n </div>\n );\n};\n","import type {ComponentProps, FC} from 'react';\n\nimport type {NumberProps} from '@/lib/Number';\nimport {NumberPercent} from '@/lib/Number';\nimport type {Locale} from '@/internal/locale';\n\nimport type {CellComponent} from './../types.ts';\nimport classes from './Cells.module.css';\n\nexport type Props = ComponentProps<CellComponent> &\n Omit<NumberProps, 'notation' | 'compactDisplay' | 'value' | 'locale'>;\n\nexport const ViewPercentageCell: FC<Props> = ({value, cellContext, ...restProps}) => {\n const locale = cellContext.table.options.meta?.locale as Locale;\n return (\n <div className={classes.viewNumberCell}>\n <NumberPercent {...restProps} locale={locale} value={Number(value)} />\n </div>\n );\n};\n","import type {DisplayColumnDef, AccessorColumnDef, FilterFnOption} from '@tanstack/react-table';\nimport type {FC} from 'react';\nimport {type ComponentProps, useEffect, useMemo, useState} from 'react';\n\nimport {CellWrapper} from './../cells/CellWrapper.tsx';\nimport {ColumnHeaderCell} from './../cells/ColumnHeaderCell.tsx';\nimport {ColumnFooterCell} from './../cells/ColumnFooterCell.tsx';\nimport {ColumnTypes, CustomFilterFns, FilterModes, SortingModes} from './../types.ts';\nimport type {Column, TableRow, TableValue, TableData} from './../types.ts';\nimport {rowSelection} from './../columns/rowSelection.tsx';\nimport {ViewTextCell} from './../cells/ViewTextCell.tsx';\nimport {ViewDecimalCell} from './../cells/ViewDecimalCell.tsx';\nimport {ViewUnitCell} from './../cells/ViewUnitCell.tsx';\nimport {ViewDateCell} from './../cells/ViewDateCell.tsx';\nimport {ViewCurrencyCell} from './../cells/ViewCurrencyCell.tsx';\nimport {ViewPercentageCell} from './../cells/ViewPercentageCell.tsx';\nimport type {EditDialog} from './../dialogs/EditDialog.tsx';\n\nconst normalizeValue = (value: TableRow | TableValue): TableValue => {\n if (typeof value === 'string' || typeof value === 'number') {\n return value;\n }\n return value?.toString();\n};\n\nconst cellMapping = {\n [ColumnTypes.text]: ViewTextCell,\n [ColumnTypes.unit]: ViewUnitCell,\n [ColumnTypes.date]: ViewDateCell,\n [ColumnTypes.decimal]: ViewDecimalCell,\n [ColumnTypes.currency]: ViewCurrencyCell,\n [ColumnTypes.percentage]: ViewPercentageCell,\n [ColumnTypes.select]: undefined,\n};\n\nconst sortMapping = {\n [ColumnTypes.text]: SortingModes.text,\n [ColumnTypes.decimal]: SortingModes.basic,\n [ColumnTypes.currency]: SortingModes.basic,\n [ColumnTypes.percentage]: SortingModes.basic,\n [ColumnTypes.unit]: SortingModes.basic,\n [ColumnTypes.date]: SortingModes.basic,\n [ColumnTypes.select]: undefined,\n};\n\nconst normalizeSortingFn = (\n columnType: keyof typeof ColumnTypes,\n sortingFnProp?: Column['sortingFn']\n) => {\n if (sortingFnProp !== undefined) {\n return sortingFnProp;\n }\n\n return sortMapping[columnType];\n};\n\nconst filterMapping = {\n [ColumnTypes.text]: FilterModes.includesString,\n [ColumnTypes.decimal]: FilterModes.inNumberRange,\n [ColumnTypes.currency]: FilterModes.inNumberRange,\n [ColumnTypes.percentage]: CustomFilterFns.isInPercentRange,\n [ColumnTypes.unit]: FilterModes.inNumberRange,\n [ColumnTypes.date]: CustomFilterFns.isInDateRange,\n [ColumnTypes.select]: undefined,\n};\n\nconst normalizeFilterFn = (\n columnType: keyof typeof ColumnTypes,\n filterFnProp?: FilterFnOption<TableData> | keyof typeof CustomFilterFns\n) => {\n if (filterFnProp !== undefined) {\n return filterFnProp;\n }\n\n return filterMapping[columnType];\n};\n\nexport type Props = {\n columnsProp: Column[];\n selectable?: boolean;\n};\n\nconst normalizeProp = <TColumn,>(hasSelectableColumn: boolean, columns: TColumn[]) => {\n return hasSelectableColumn ? [rowSelection, ...columns] : columns;\n};\n\nexport const useTableColumns = ({columnsProp = [], selectable}: Props) => {\n const initialColumns = useMemo(() => {\n return normalizeProp(Boolean(selectable), [\n ...columnsProp.map(\n ({\n id,\n size = 166,\n name,\n accessorKey,\n accessorFn,\n editable = true,\n filterable = true,\n sortable = true,\n pinnable = true,\n columnCell,\n sortingFn: sortingFnProp,\n cellProps = {},\n columnType = ColumnTypes.text,\n filterFn: filterFnProp,\n headerCell,\n footerCell,\n filterInput,\n }) => {\n const CellComponent =\n columnCell !== undefined ? columnCell : (cellMapping[columnType] as FC);\n const HeaderComponent =\n headerCell !== undefined ? headerCell : ColumnHeaderCell;\n const FooterComponent =\n footerCell !== undefined ? footerCell : ColumnFooterCell;\n\n return {\n meta: {\n type: columnType,\n editable,\n // TODO: replace with columnProp\n accessorKey,\n cellProps,\n name,\n filterInput,\n },\n ...(accessorKey && {accessorKey}),\n ...(accessorFn && {accessorFn}),\n id,\n sortingFn: normalizeSortingFn(columnType, sortingFnProp),\n filterFn: normalizeFilterFn(columnType, filterFnProp),\n size,\n enableColumnFilter: filterable,\n enableSorting: sortable,\n enablePinning: pinnable,\n // disabled tanstack features.\n enableMultiSort: false,\n enableGrouping: false,\n enableResizing: false,\n enableGlobalFilter: false,\n enableHiding: false,\n header: props => {\n return (\n <CellWrapper columnWidth={size}>\n <HeaderComponent headerContext={props} title={name} />\n </CellWrapper>\n );\n },\n cell: props => {\n const value = normalizeValue(props.getValue());\n return (\n <CellWrapper columnWidth={size}>\n <CellComponent\n {...cellProps}\n cellContext={props}\n value={value}\n />\n </CellWrapper>\n );\n },\n footer: props => (\n <CellWrapper columnWidth={size}>\n <FooterComponent cellContext={props} />\n </CellWrapper>\n ),\n } as\n | DisplayColumnDef<TableData, TableRow | TableValue>\n | AccessorColumnDef<TableData, TableRow | TableValue>;\n }\n ),\n ]);\n }, [columnsProp, selectable]);\n\n const [columns, setColumns] = useState(initialColumns);\n\n useEffect(() => {\n setColumns(initialColumns);\n }, [initialColumns]);\n\n const editableColumns = useMemo(\n () =>\n columnsProp\n .map(({id, name, columnType, editable = true}) => ({\n id,\n name,\n type: columnType,\n editable,\n }))\n .filter(({editable}) => editable) as ComponentProps<\n typeof EditDialog\n >['columnsConfig'],\n [columnsProp]\n );\n\n return {columns, setColumns, editableColumns};\n};\n","import type {FilterFn} from '@tanstack/react-table';\n\nimport type {TableData} from './types.ts';\n\nexport const isInDateRange: FilterFn<TableData> = (row, columnId, [from, to]: Date[]) => {\n const cellDate = new Date(row.getValue(columnId));\n return cellDate.getTime() >= from.getTime() && cellDate.getTime() <= to.getTime();\n};\n\nisInDateRange.resolveFilterValue = ([from, to]) => {\n return [new Date(from), new Date(to)];\n};\n\nexport const isInPercentRange: FilterFn<TableData> = (row, columnId, [from, to]: number[]) => {\n const cellValue = (row.getValue(columnId) as number) * 100;\n return cellValue >= from && cellValue <= to;\n};\n","import type {ReactNode} from 'react';\nimport {forwardRef, Fragment, useCallback, useMemo, useRef} from 'react';\nimport classNames from 'classnames';\nimport type {\n ColumnPinningState,\n PaginationState,\n SortingState,\n ColumnFiltersState,\n RowSelectionState,\n ColumnDef,\n} from '@tanstack/react-table';\nimport {\n flexRender,\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n getFilteredRowModel,\n} from '@tanstack/react-table';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {useResizeObserver} from '@/internal/hooks/useResizeObserverNew.ts';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport type {Locale} from '@/internal/locale';\nimport {I, Table, Button} from '@/lib';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\nimport {IconFilterOff} from '@/internal/Icons';\n\nimport {useColumnFilters} from './tableFeatures/useColumnFilters.ts';\nimport classes from './DataTable.module.css';\nimport type {EditState, TableData, TableRow, Column} from './types.ts';\nimport {ProcessingModes, RenderModes} from './types.ts';\n// import {columns} from './columns.tsx';\nimport {useColumnPinning} from './tableFeatures/useColumnPinning.ts';\nimport {TableCell} from './TableCell.tsx';\nimport {useVirtualRows} from './tableFeatures/useVirtualRows.ts';\nimport {useTableData} from './tableFeatures/useTableData.ts';\nimport {Pagination} from './Pagination.tsx';\nimport {usePagination} from './tableFeatures/usePagination.ts';\nimport {useSorting} from './tableFeatures/useSorting.ts';\nimport type {FilterConfig} from './dialogs/FilterDialog.tsx';\nimport {FilterDialog} from './dialogs/FilterDialog.tsx';\nimport {useRowSelection} from './tableFeatures/useRowSelection.ts';\nimport {useTableHeight} from './tableFeatures/useTableHeight.ts';\nimport {DeleteDialog} from './dialogs/DeleteDialog.tsx';\nimport {EditDialog} from './dialogs/EditDialog.tsx';\nimport {SelectableActions} from './SelectableActions.tsx';\nimport {useEdit} from './tableFeatures/useEdit.ts';\nimport {useTableColumns} from './tableFeatures/useTableColumns.tsx';\nimport {isInDateRange, isInPercentRange} from './filterFns.ts';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n children?: ReactNode;\n /**\n * Provide table columns configuration\n * @see Column\n */\n columns: Column[];\n /**\n * Provide data for the table\n * @see TableData\n */\n tableData: TableData;\n /**\n * Provide a callback to capture table data changes\n * @see EditState\n */\n onEdit?: (editState: EditState) => void;\n /**\n * Control column pinning state externally\n * @see ColumnPinningState\n */\n columnPinning?: ColumnPinningState;\n /**\n * Control pagination state externally\n * @see PaginationState\n */\n pagination?: PaginationState;\n /**\n * Provide a callback to capture pagination changes\n * @see PaginationState\n */\n onPaginationChange?: (paginationState: PaginationState) => void;\n /**\n * Manage column filters externally\n * @see ColumnFiltersState\n */\n columnFilters?: ColumnFiltersState;\n /**\n * Provide a callback to capture column filters changes\n * @see ColumnFiltersState\n */\n onFiltersChange?: (filterState: ColumnFiltersState) => void;\n /**\n * Manage row selection externally\n * @see RowSelectionState\n */\n rowSelection?: RowSelectionState;\n /**\n * Provide a callback to capture row selection changes\n * @see RowSelectionState\n */\n onRowSelect?: (selectionState: RowSelectionState) => void;\n /**\n * Control table data sorting externally\n * @see SortingState\n */\n sorting?: SortingState;\n /**\n * Provide a callback to capture table data sorting changes\n * @see SortingState\n */\n onSortingChange?: (sortingState: SortingState) => void;\n /**\n * Configure how table data is processed inside or outside the component\n * @see ProcessingModes\n */\n processingMode?: keyof typeof ProcessingModes;\n /**\n * Select which type of table to render\n * @see RenderModes\n */\n renderMode?: keyof typeof RenderModes;\n /**\n * Set a controlled page count number for pagination. Required for renderMode=\"paginated-controlled\"\n * @see https://morewings.github.io/koval-ui/?path=/story/components-datatable--paginated-controlled&args=tableData:rows100\n */\n pageCount?: number;\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers.\n * Used to format dates, numbers, and units.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#locales\n * @see Locale\n */\n locale?: Locale;\n /**\n * Enable column selection\n */\n selectable?: boolean;\n /**\n * Set a height constrain to the data table. 'full' sets to 100% of viewport height\n */\n tableHeight?: number | 'full';\n /**\n * Set a caption text to render below the table\n */\n caption?: string;\n };\n\nconst CELL_HEIGHT = 42;\n\nconst OVERSCAN = 6;\n\nconst defaultPages = {\n pageIndex: 0,\n pageSize: 10,\n};\n\nconst defaultSorting: SortingState = [];\n\nconst defaultFilters: ColumnFiltersState = [];\n\nconst defaultSelection: RowSelectionState = {};\n\nexport const DataTable = forwardRef<HTMLTableElement, Props>(\n (\n {\n children,\n className,\n tableData: tableDataProp = [],\n columnPinning: columnPinningProp,\n renderMode = RenderModes.virtual,\n pagination: paginationProp = defaultPages,\n onPaginationChange = () => {},\n onSortingChange = () => {},\n onFiltersChange = () => {},\n onRowSelect = () => {},\n onEdit = () => {},\n rowSelection: rowSelectionProp = defaultSelection,\n pageCount,\n sorting: sortingProp = defaultSorting,\n processingMode = ProcessingModes.internal,\n columnFilters: columnFiltersProp = defaultFilters,\n locale: localeProp,\n selectable = false,\n tableHeight: tableHeightProp = 'full',\n caption,\n columns: columnsProp = [],\n id: idProp,\n ...nativeProps\n },\n ref\n ) => {\n const id = useInternalId(idProp);\n\n const {tableData, setTableData} = useTableData(tableDataProp);\n\n const tableRef = useInternalRef(ref);\n\n const wrapperRef = useRef(null);\n\n const {height: tableHeight} = useResizeObserver(tableRef);\n\n const {LocalRoot} = useLocalTheme();\n\n const maxHeight = useTableHeight({tableHeightProp});\n\n const theme = useMemo(\n () => ({\n 'table-height': tableHeight,\n 'cell-height': CELL_HEIGHT,\n 'max-height': maxHeight,\n }),\n [maxHeight, tableHeight]\n );\n\n const {columnPinning, setColumnPinning} = useColumnPinning({\n columnPinningProp,\n hasSelectableColumn: selectable,\n });\n\n const {pagination, setPagination, currentPage, setCurrentPage, setPageSize} = usePagination(\n {tableData, paginationProp, onPaginationChange}\n );\n\n const {sorting, setSorting} = useSorting({sortingProp, onSortingChange});\n\n const {columnFilters, setColumnFilters} = useColumnFilters({\n columnFiltersProp,\n onFiltersChange,\n });\n\n const browserLocale = useBrowserLocale();\n\n const {rowSelection, setRowSelection, clearSelection} = useRowSelection({\n rowSelectionProp,\n onRowSelect,\n processingMode,\n });\n\n const {columns, editableColumns} = useTableColumns({\n columnsProp,\n selectable,\n });\n\n const table = useReactTable({\n meta: {\n locale: localeProp || browserLocale,\n editModalId: `edit-modal-${id}`,\n filterModalId: `filter-modal-${id}`,\n deleteModalId: `delete-modal-${id}`,\n },\n data: tableData,\n columns: columns as ColumnDef<TableRow>[],\n getCoreRowModel: getCoreRowModel(),\n onColumnPinningChange: setColumnPinning,\n getPaginationRowModel:\n renderMode === RenderModes.paginated ? getPaginationRowModel() : undefined,\n onPaginationChange: renderMode === RenderModes.paginated ? setPagination : undefined,\n state: {\n pagination: renderMode === RenderModes.paginated ? pagination : undefined,\n columnPinning,\n sorting,\n columnFilters,\n rowSelection,\n },\n manualPagination: processingMode === ProcessingModes.external,\n pageCount: processingMode === ProcessingModes.external ? pageCount : undefined,\n getSortedRowModel: getSortedRowModel(),\n onSortingChange: setSorting,\n // Disabled until proper implementation\n enableMultiSort: false,\n manualSorting: processingMode === ProcessingModes.external,\n getFilteredRowModel: getFilteredRowModel(),\n onColumnFiltersChange: setColumnFilters,\n manualFiltering: processingMode === ProcessingModes.external,\n enableRowSelection: true,\n onRowSelectionChange: setRowSelection,\n filterFns: {\n isInDateRange,\n isInPercentRange,\n },\n });\n\n const {rows} = table.getRowModel();\n\n const {before, after, virtualRows} = useVirtualRows({\n rowsCount: rows.length,\n scrollRef: wrapperRef,\n overscan: OVERSCAN,\n cellHeight: CELL_HEIGHT,\n });\n\n const handleSetFilter = useCallback(\n ({filter, column}: FilterConfig) => {\n table.getColumn(column!)?.setFilterValue(filter);\n },\n [table]\n );\n\n const handleResetFilters = useCallback(() => {\n table.resetColumnFilters();\n }, [table]);\n\n const {handleEdit, handleDelete, handleDeleteRequest, handleEditRequest} = useEdit({\n rowSelection,\n onEdit,\n clearSelection,\n setTableData,\n table,\n tableData,\n processingMode,\n });\n\n const captionId = `caption-${id}`;\n\n return (\n <Fragment>\n <FilterDialog\n tableContext={table}\n id={table.options.meta?.filterModalId as string}\n onApplyFiler={handleSetFilter}\n columnFilters={columnFilters}\n />\n <EditDialog\n id={table.options.meta?.editModalId as string}\n selectionAmount={Object.keys(rowSelection).length}\n columnsConfig={editableColumns}\n onEdit={handleEdit}\n />\n <DeleteDialog\n id={table.options.meta?.deleteModalId as string}\n selectionAmount={Object.keys(rowSelection).length}\n onDeleteConfirmation={handleDelete}\n />\n <LocalRoot theme={theme} className={classes.heightContainer}>\n {selectable && (\n <SelectableActions\n selectedRows={Object.keys(rowSelection).length}\n totalRows={table.getPreFilteredRowModel().rows.length}\n onDeleteRequest={handleDeleteRequest}\n onEditRequest={handleEditRequest}\n onClear={clearSelection}\n />\n )}\n <Table\n aria-describedby={caption && captionId}\n wrapperRef={wrapperRef}\n wrapperClassName={classNames(classes.tableWrapper, {\n // Needed to apply calculated height to the table to show small tables properly\n [classes.paginated]: renderMode === RenderModes.paginated,\n [classes.selectable]: selectable,\n [classes.hasCaption]: Boolean(caption),\n })}\n {...nativeProps}\n id={id}\n className={classNames(classes.dataTable, className)}\n ref={tableRef}>\n <thead className={classes.tableHeader}>\n {table.getHeaderGroups().map(headerGroup => (\n <tr key={headerGroup.id}>\n {headerGroup.headers.map((header, i, array) => {\n const fixLeft = i > 0 ? i + 1 : 0;\n const fixRight =\n i === array.length ? 0 : array.length - (i + 1);\n return (\n <TableCell\n as=\"th\"\n key={header.id}\n leftMargin={\n header.column.getStart('left') + fixLeft\n }\n rightMargin={\n header.column.getAfter('right') + fixRight\n }\n isPinned={header.column.getIsPinned()}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableCell>\n );\n })}\n </tr>\n ))}\n </thead>\n {renderMode === RenderModes.virtual && (\n <tbody>\n <Fragment>\n {before > 0 && (\n <tr>\n <td colSpan={columns.length} style={{height: before}} />\n </tr>\n )}\n {virtualRows.map(virtualRow => {\n const row = rows[virtualRow.index];\n return (\n <tr\n key={row.id}\n style={{\n height: `${virtualRow.size}px`,\n }}>\n {row.getVisibleCells().map((cell, i, array) => {\n const fixLeft = i > 0 ? i + 1 : 0;\n const fixRight =\n i === array.length\n ? 0\n : array.length - (i + 1);\n return (\n <TableCell\n isHighlighted={Boolean(\n cell.column.getIsSorted()\n )}\n as=\"td\"\n key={cell.id}\n leftMargin={\n cell.column.getStart('left') +\n fixLeft\n }\n rightMargin={\n cell.column.getAfter('right') +\n fixRight\n }\n isPinned={cell.column.getIsPinned()}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n );\n })}\n </tr>\n );\n })}\n {after > 0 && (\n <tr>\n <td colSpan={columns.length} style={{height: after}} />\n </tr>\n )}\n </Fragment>\n </tbody>\n )}\n {renderMode === RenderModes.paginated && (\n <tbody>\n {rows.map(row => (\n <tr key={row.id}>\n {row.getVisibleCells().map((cell, i, array) => {\n const fixLeft = i > 0 ? i + 1 : 0;\n const fixRight =\n i === array.length ? 0 : array.length - (i + 1);\n return (\n <TableCell\n isHighlighted={Boolean(\n cell.column.getIsSorted()\n )}\n as=\"td\"\n key={cell.id}\n leftMargin={\n cell.column.getStart('left') + fixLeft\n }\n rightMargin={\n cell.column.getAfter('right') + fixRight\n }\n isPinned={cell.column.getIsPinned()}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n );\n })}\n </tr>\n ))}\n </tbody>\n )}\n {rows.length === 0 && (\n <tbody>\n <tr className={classes.noDataRow}>\n <td\n className={classes.noDataCell}\n colSpan={table.getAllColumns().length}>\n <div className={classes.noDataWarning}>\n <span>No data to render.</span>\n {columnFilters.length > 0 && (\n <Button\n onClick={handleResetFilters}\n prefix={IconFilterOff}\n size=\"small\"\n variant=\"link\">\n Reset all filters\n </Button>\n )}\n </div>\n </td>\n </tr>\n </tbody>\n )}\n <tfoot className={classes.tableFooter}>\n {table.getFooterGroups().map(footerGroup => (\n <tr key={footerGroup.id}>\n {footerGroup.headers.map((header, i, array) => {\n const fixLeft = i > 0 ? i + 1 : 0;\n const fixRight =\n i === array.length ? 0 : array.length - (i + 1);\n return (\n <TableCell\n as=\"th\"\n key={header.id}\n leftMargin={\n header.column.getStart('left') + fixLeft\n }\n rightMargin={\n header.column.getAfter('right') + fixRight\n }\n isPinned={header.column.getIsPinned()}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.footer,\n header.getContext()\n )}\n </TableCell>\n );\n })}\n </tr>\n ))}\n </tfoot>\n </Table>\n {renderMode === RenderModes.paginated && (\n <Pagination\n rowsCount={tableData.length}\n onPageSizeChange={setPageSize}\n currentPage={currentPage}\n pagesAmount={table.getPageCount()}\n pageSize={pagination.pageSize}\n setCurrentPage={setCurrentPage}\n />\n )}\n {caption && (\n <div id={captionId} className={classes.tableCaption}>\n <I>{caption}</I>\n </div>\n )}\n </LocalRoot>\n </Fragment>\n );\n }\n);\n\nDataTable.displayName = 'DataTable';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport type {Locale, CountryCodes} from '@/internal/locale';\n\nimport classes from './Name.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers. Defaults to user setting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames#locales\n */\n locale?: Locale;\n /**\n * Provide a two-letter ISO 3166 region code\n * @see https://www.iso.org/iso-3166-country-codes.html\n */\n countryCode: keyof typeof CountryCodes;\n };\n\nexport const NameRegion = forwardRef<HTMLDivElement, Props>(\n ({className, locale: localeProp, countryCode, ...nativeProps}, ref) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () => new Intl.DisplayNames(locale, {type: 'region'}).of(countryCode),\n [countryCode, locale]\n );\n\n return (\n <span {...nativeProps} className={classNames(classes.name, className)} ref={ref}>\n {formattedValue}\n </span>\n );\n }\n);\n\nNameRegion.displayName = 'NameRegion';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport type {Locale, LanguageCodes} from '@/internal/locale';\n\nimport classes from './Name.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers. Defaults to user setting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames#locales\n */\n locale?: Locale;\n /**\n * Provide a two-letter ISO 639-1 language code\n * @see https://www.iso.org/iso-639-language-code\n */\n languageCode: keyof typeof LanguageCodes;\n };\n\nexport const NameLanguage = forwardRef<HTMLDivElement, Props>(\n ({className, locale: localeProp, languageCode, ...nativeProps}, ref) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () => new Intl.DisplayNames(locale, {type: 'language'}).of(languageCode),\n [languageCode, locale]\n );\n\n return (\n <span {...nativeProps} className={classNames(classes.name, className)} ref={ref}>\n {formattedValue}\n </span>\n );\n }\n);\n\nNameLanguage.displayName = 'NameLanguage';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport type {Locale, CurrencyCodes} from '@/internal/locale';\n\nimport type {Styles} from './types.ts';\nimport classes from './Name.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers. Defaults to user setting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames#locales\n */\n locale?: Locale;\n /**\n * Select the formatting style to use.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames#style\n */\n style?: keyof typeof Styles;\n /**\n * Provide a three-letter ISO 4217 currency code\n * @see https://www.iso.org/iso-4217-currency-codes.html\n */\n currencyCode: keyof typeof CurrencyCodes;\n };\n\nexport const NameCurrency = forwardRef<HTMLDivElement, Props>(\n ({className, locale: localeProp, currencyCode, style, ...nativeProps}, ref) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () => new Intl.DisplayNames(locale, {type: 'currency', style}).of(currencyCode),\n [currencyCode, locale, style]\n );\n\n return (\n <span {...nativeProps} className={classNames(classes.name, className)} ref={ref}>\n {formattedValue}\n </span>\n );\n }\n);\n\nNameCurrency.displayName = 'NameCurrency';\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useBrowserLocale} from '@/internal/locale';\nimport type {Locale} from '@/internal/locale';\n\nimport type {Styles, TimePeriods} from './types.ts';\nimport classes from './Name.module.css';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide a string with a BCP 47 language tag or an Intl.Locale instance,\n * or an array of such locale identifiers. Defaults to user setting\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames#locales\n */\n locale?: Locale;\n /**\n * Select the formatting style to use.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames#style\n */\n style?: keyof typeof Styles;\n /**\n * Define a time period name to localize\n */\n timePeriod: keyof typeof TimePeriods;\n };\n\nexport const NameTime = forwardRef<HTMLDivElement, Props>(\n ({className, locale: localeProp, timePeriod, style, ...nativeProps}, ref) => {\n const userLocale = useBrowserLocale();\n const locale = localeProp ? localeProp : userLocale;\n const formattedValue = useMemo(\n () => new Intl.DisplayNames(locale, {type: 'dateTimeField', style}).of(timePeriod),\n [timePeriod, locale, style]\n );\n\n return (\n <span {...nativeProps} className={classNames(classes.name, className)} ref={ref}>\n {formattedValue}\n </span>\n );\n }\n);\n\nNameTime.displayName = 'NameTime';\n","import type {CountryCodes} from '@/internal/locale';\n\nexport const flagsDictionary = {\n AD: '🇦🇩',\n AE: '🇦🇪',\n AF: '🇦🇫',\n AG: '🇦🇬',\n AI: '🇦🇮',\n AL: '🇦🇱',\n AM: '🇦🇲',\n AO: '🇦🇴',\n AQ: '🇦🇶',\n AR: '🇦🇷',\n AS: '🇦🇸',\n AT: '🇦🇹',\n AU: '🇦🇺',\n AW: '🇦🇼',\n AX: '🇦🇽',\n AZ: '🇦🇿',\n BA: '🇧🇦',\n BB: '🇧🇧',\n BD: '🇧🇩',\n BE: '🇧🇪',\n BF: '🇧🇫',\n BG: '🇧🇬',\n BH: '🇧🇭',\n BI: '🇧🇮',\n BJ: '🇧🇯',\n BL: '🇧🇱',\n BM: '🇧🇲',\n BN: '🇧🇳',\n BO: '🇧🇴',\n BQ: '🇧🇶',\n BR: '🇧🇷',\n BS: '🇧🇸',\n BT: '🇧🇹',\n BV: '🇧🇻',\n BW: '🇧🇼',\n BY: '🇧🇾',\n BZ: '🇧🇿',\n CA: '🇨🇦',\n CC: '🇨🇨',\n CD: '🇨🇩',\n CF: '🇨🇫',\n CG: '🇨🇬',\n CH: '🇨🇭',\n CI: '🇨🇮',\n CK: '🇨🇰',\n CL: '🇨🇱',\n CM: '🇨🇲',\n CN: '🇨🇳',\n CO: '🇨🇴',\n CR: '🇨🇷',\n CU: '🇨🇺',\n CV: '🇨🇻',\n CW: '🇨🇼',\n CX: '🇨🇽',\n CY: '🇨🇾',\n CZ: '🇨🇿',\n DE: '🇩🇪',\n DJ: '🇩🇯',\n DK: '🇩🇰',\n DM: '🇩🇲',\n DO: '🇩🇴',\n DZ: '🇩🇿',\n EC: '🇪🇨',\n EE: '🇪🇪',\n EG: '🇪🇬',\n EH: '🇪🇭',\n ER: '🇪🇷',\n ES: '🇪🇸',\n ET: '🇪🇹',\n EU: '🇪🇺',\n FI: '🇫🇮',\n FJ: '🇫🇯',\n FK: '🇫🇰',\n FM: '🇫🇲',\n FO: '🇫🇴',\n FR: '🇫🇷',\n GA: '🇬🇦',\n GB: '🇬🇧',\n GD: '🇬🇩',\n GE: '🇬🇪',\n GF: '🇬🇫',\n GG: '🇬🇬',\n GH: '🇬🇭',\n GI: '🇬🇮',\n GL: '🇬🇱',\n GM: '🇬🇲',\n GN: '🇬🇳',\n GP: '🇬🇵',\n GQ: '🇬🇶',\n GR: '🇬🇷',\n GS: '🇬🇸',\n GT: '🇬🇹',\n GU: '🇬🇺',\n GW: '🇬🇼',\n GY: '🇬🇾',\n HK: '🇭🇰',\n HM: '🇭🇲',\n HN: '🇭🇳',\n HR: '🇭🇷',\n HT: '🇭🇹',\n HU: '🇭🇺',\n ID: '🇮🇩',\n IE: '🇮🇪',\n IL: '🇮🇱',\n IM: '🇮🇲',\n IN: '🇮🇳',\n IO: '🇮🇴',\n IQ: '🇮🇶',\n IR: '🇮🇷',\n IS: '🇮🇸',\n IT: '🇮🇹',\n JE: '🇯🇪',\n JM: '🇯🇲',\n JO: '🇯🇴',\n JP: '🇯🇵',\n KE: '🇰🇪',\n KG: '🇰🇬',\n KH: '🇰🇭',\n KI: '🇰🇮',\n KM: '🇰🇲',\n KN: '🇰🇳',\n KP: '🇰🇵',\n KR: '🇰🇷',\n KW: '🇰🇼',\n KY: '🇰🇾',\n KZ: '🇰🇿',\n LA: '🇱🇦',\n LB: '🇱🇧',\n LC: '🇱🇨',\n LI: '🇱🇮',\n LK: '🇱🇰',\n LR: '🇱🇷',\n LS: '🇱🇸',\n LT: '🇱🇹',\n LU: '🇱🇺',\n LV: '🇱🇻',\n LY: '🇱🇾',\n MA: '🇲🇦',\n MC: '🇲🇨',\n MD: '🇲🇩',\n ME: '🇲🇪',\n MF: '🇲🇫',\n MG: '🇲🇬',\n MH: '🇲🇭',\n MK: '🇲🇰',\n ML: '🇲🇱',\n MM: '🇲🇲',\n MN: '🇲🇳',\n MO: '🇲🇴',\n MP: '🇲🇵',\n MQ: '🇲🇶',\n MR: '🇲🇷',\n MS: '🇲🇸',\n MT: '🇲🇹',\n MU: '🇲🇺',\n MV: '🇲🇻',\n MW: '🇲🇼',\n MX: '🇲🇽',\n MY: '🇲🇾',\n MZ: '🇲🇿',\n NA: '🇳🇦',\n NC: '🇳🇨',\n NE: '🇳🇪',\n NF: '🇳🇫',\n NG: '🇳🇬',\n NI: '🇳🇮',\n NL: '🇳🇱',\n NO: '🇳🇴',\n NP: '🇳🇵',\n NR: '🇳🇷',\n NU: '🇳🇺',\n NZ: '🇳🇿',\n OM: '🇴🇲',\n PA: '🇵🇦',\n PE: '🇵🇪',\n PF: '🇵🇫',\n PG: '🇵🇬',\n PH: '🇵🇭',\n PK: '🇵🇰',\n PL: '🇵🇱',\n PM: '🇵🇲',\n PN: '🇵🇳',\n PR: '🇵🇷',\n PS: '🇵🇸',\n PT: '🇵🇹',\n PW: '🇵🇼',\n PY: '🇵🇾',\n QA: '🇶🇦',\n RE: '🇷🇪',\n RO: '🇷🇴',\n RS: '🇷🇸',\n RU: '🇷🇺',\n RW: '🇷🇼',\n SA: '🇸🇦',\n SB: '🇸🇧',\n SC: '🇸🇨',\n SD: '🇸🇩',\n SE: '🇸🇪',\n SG: '🇸🇬',\n SH: '🇸🇭',\n SI: '🇸🇮',\n SJ: '🇸🇯',\n SK: '🇸🇰',\n SL: '🇸🇱',\n SM: '🇸🇲',\n SN: '🇸🇳',\n SO: '🇸🇴',\n SR: '🇸🇷',\n SS: '🇸🇸',\n ST: '🇸🇹',\n SV: '🇸🇻',\n SX: '🇸🇽',\n SY: '🇸🇾',\n SZ: '🇸🇿',\n TC: '🇹🇨',\n TD: '🇹🇩',\n TF: '🇹🇫',\n TG: '🇹🇬',\n TH: '🇹🇭',\n TJ: '🇹🇯',\n TK: '🇹🇰',\n TL: '🇹🇱',\n TM: '🇹🇲',\n TN: '🇹🇳',\n TO: '🇹🇴',\n TR: '🇹🇷',\n TT: '🇹🇹',\n TV: '🇹🇻',\n TW: '🇹🇼',\n TZ: '🇹🇿',\n UA: '🇺🇦',\n UG: '🇺🇬',\n UM: '🇺🇲',\n US: '🇺🇸',\n UY: '🇺🇾',\n UZ: '🇺🇿',\n VA: '🇻🇦',\n VC: '🇻🇨',\n VE: '🇻🇪',\n VG: '🇻🇬',\n VI: '🇻🇮',\n VN: '🇻🇳',\n VU: '🇻🇺',\n WF: '🇼🇫',\n WS: '🇼🇸',\n XK: '🇽🇰',\n YE: '🇾🇪',\n YT: '🇾🇹',\n ZA: '🇿🇦',\n ZM: '🇿🇲',\n ZW: '🇿🇼',\n} as Record<keyof typeof CountryCodes, string>;\n","import {forwardRef, useMemo} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {CountryCodes} from '@/internal/locale';\nimport {useBrowserLocale} from '@/internal/locale';\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './Flag.module.css';\nimport {flagsDictionary} from './flagsDictionary.ts';\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * Provide a two-letter ISO 3166 region code\n * @see https://www.iso.org/iso-3166-country-codes.html\n */\n countryCode: keyof typeof CountryCodes;\n /**\n * Set the size of the flag icon in pixels. Applied to both width and height\n */\n size?: number;\n };\n\nexport const Flag = forwardRef<HTMLDivElement, Props>(\n ({className, countryCode, size = 24, ...nativeProps}, outerRef) => {\n const {LocalRoot, ref} = useLocalTheme<HTMLDivElement>();\n const theme = useMemo(() => ({size}), [size]);\n useLinkRefs(outerRef, ref);\n const flag = flagsDictionary[countryCode];\n const userLocale = useBrowserLocale();\n const countryName = useMemo(\n () => new Intl.DisplayNames(userLocale, {type: 'region'}).of(countryCode),\n [countryCode, userLocale]\n );\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.container, className)}>\n <span className={classes.flag} title={countryName}>\n {flag}\n </span>\n </LocalRoot>\n );\n }\n);\n\nFlag.displayName = 'Flag';\n","export type Source = {\n src: string;\n /**\n * Provide the source video 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 video\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\nexport enum PlayModes {\n play = 'play',\n pause = 'pause',\n pristine = 'pristine',\n}\n","import type {SyntheticEvent, MutableRefObject} from 'react';\nimport {useCallback, useState} from 'react';\n\nimport {PlayModes} from './types.ts';\n\nexport type Props<TElement> = {\n onPlay: (event: SyntheticEvent<TElement>) => void;\n onPause: (event: SyntheticEvent<TElement>) => void;\n embedRef: MutableRefObject<TElement | null>;\n};\n\nexport const usePlay = <TElement extends HTMLMediaElement>({\n onPlay,\n onPause,\n embedRef,\n}: Props<TElement>) => {\n const [playMode, setPlayMode] = useState<PlayModes>(PlayModes.pristine);\n\n const handlePlay = useCallback(\n (event: SyntheticEvent<TElement>) => {\n setPlayMode(PlayModes.play);\n onPlay(event);\n },\n [onPlay]\n );\n\n const handlePause = useCallback(\n (event: SyntheticEvent<TElement>) => {\n setPlayMode(PlayModes.pause);\n onPause(event);\n },\n [onPause]\n );\n\n const handleTogglePlay = useCallback(() => {\n if (playMode === PlayModes.play) {\n embedRef.current?.pause();\n setPlayMode(PlayModes.pause);\n } else {\n embedRef.current?.play();\n setPlayMode(PlayModes.play);\n }\n }, [playMode, embedRef]);\n\n return {handlePlay, handlePause, handleTogglePlay, playMode};\n};\n","/** Gets media filename from the provided URL string */\nexport const getFileName = (url?: string) => {\n const splitted = url?.split('/') || [];\n return splitted[splitted.length - 1];\n};\n","import type {MutableRefObject, Dispatch, SetStateAction, SyntheticEvent} from 'react';\nimport {useCallback, useState} from 'react';\n\nexport type Props = {\n embedRef: MutableRefObject<HTMLMediaElement | null>;\n setDuration: Dispatch<SetStateAction<number>>;\n onReady: (event: SyntheticEvent<HTMLVideoElement>) => void;\n onError: (event: SyntheticEvent<HTMLVideoElement>) => void;\n};\n\nexport const useLoadingState = ({embedRef, setDuration, onReady, onError}: Props) => {\n const handleLoadedMetaData = useCallback(() => {\n embedRef.current?.duration && setDuration(embedRef.current?.duration);\n }, [setDuration, embedRef]);\n\n const [readyToPlay, setReadyToPlay] = useState(false);\n\n const handleCanPlay = useCallback(\n (event: SyntheticEvent<HTMLVideoElement>) => {\n setReadyToPlay(true);\n onReady(event);\n },\n [onReady]\n );\n\n const handleError = useCallback(\n (event: SyntheticEvent<HTMLVideoElement>) => {\n onError(event);\n },\n [onError]\n );\n\n return {handleLoadedMetaData, readyToPlay, handleCanPlay, handleError};\n};\n","export const getFormattedTime = (totalSeconds = 0) => {\n const minutes = new Intl.NumberFormat(undefined, {minimumIntegerDigits: 2}).format(\n Math.floor(totalSeconds / 60)\n );\n const seconds = new Intl.NumberFormat(undefined, {minimumIntegerDigits: 2}).format(\n Math.round(totalSeconds % 60)\n );\n return `${minutes}:${seconds}`;\n};\n","import type {MutableRefObject} from 'react';\nimport {type ChangeEvent, useCallback, useEffect, useState} from 'react';\n\nimport {PlayModes} from './types.ts';\n\nexport type Props = {\n embedRef: MutableRefObject<HTMLMediaElement | null>;\n playMode: keyof typeof PlayModes;\n};\n\nexport const useTime = ({embedRef, playMode}: Props) => {\n const [currentTime, setCurrentTime] = useState(0);\n\n useEffect(() => {\n const handler = () => {\n embedRef.current?.currentTime &&\n playMode === PlayModes.play &&\n embedRef.current?.currentTime !== currentTime &&\n setCurrentTime(embedRef.current?.currentTime);\n };\n const intervalId = setInterval(handler, 1000);\n return () => {\n clearInterval(intervalId);\n };\n }, [currentTime, playMode, embedRef]);\n\n const handleSetTime = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setCurrentTime(event.target.valueAsNumber);\n embedRef.current!.currentTime = event.target.valueAsNumber;\n },\n [embedRef]\n );\n\n return {handleSetTime, currentTime, setCurrentTime};\n};\n","import {type ChangeEvent, type MutableRefObject, useCallback, useEffect, useState} from 'react';\n\nexport type Props = {\n embedRef: MutableRefObject<HTMLMediaElement | null>;\n mutedProp: boolean;\n};\n\nexport const useSound = ({embedRef, mutedProp}: Props) => {\n const [volume, setVolume] = useState(0);\n const handleSetVolume = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setVolume(event.target.valueAsNumber);\n embedRef.current!.volume = event.target.valueAsNumber;\n },\n [embedRef]\n );\n\n const [muted, setMuted] = useState(mutedProp);\n\n useEffect(() => {\n setMuted(mutedProp);\n }, [mutedProp]);\n\n const handleToggleMuted = useCallback(() => {\n setMuted(!muted);\n }, [muted]);\n\n useEffect(() => {\n setVolume(Number(embedRef.current?.volume || 0));\n }, [muted, embedRef]);\n\n return {volume, handleSetVolume, muted, handleToggleMuted, setVolume};\n};\n","import type {ReactNode, SyntheticEvent} from 'react';\nimport {forwardRef, useMemo, useState} from 'react';\nimport classNames from 'classnames';\nimport {useLocalTheme} from 'css-vars-hook';\n\nimport {Picture} from '@/lib';\nimport {\n IconPlay,\n IconPause,\n IconVolume,\n IconVolumeOff,\n IconAudio,\n IconDownloadVideo,\n} from '@/internal/Icons';\nimport {useInternalRef} from '@/internal/hooks/useInternalRef.ts';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport type {Source} from '@/internal/MediaEmbeds';\nimport {\n PlayModes,\n usePlay,\n getFileName,\n useLoadingState,\n getFormattedTime,\n useTime,\n useSound,\n} from '@/internal/MediaEmbeds';\nimport rangeInputClasses from '@/internal/MediaEmbeds/RangeInput.module.css';\n\nimport classes from './Audio.module.css';\n\ntype Element = HTMLAudioElement;\n\nexport type Props = DataAttributes &\n LibraryProps & {\n /**\n * A URL for an image to be shown left to audio controls.\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio#poster\n */\n poster?: string;\n /**\n * Set a callback to run when the audio is buffered enough to play on the user side\n */\n onReady?: (event: SyntheticEvent<Element>) => void;\n /**\n * Set a callback to capture audio errors\n */\n onError?: (event: SyntheticEvent<Element>) => void;\n /**\n * Set a callback to run when the user plays the audio\n */\n onPlay?: (event: SyntheticEvent<Element>) => void;\n /**\n * Set a callback to run when the user pauses the audio\n */\n onPause?: (event: SyntheticEvent<Element>) => void;\n /**\n * Provide audio file url\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio\n */\n src?: string;\n /**\n * Provide audio sources configs array. An advanced alternative to `src` prop\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio\n */\n sources?: Source[];\n /**\n * Provide a title for the audio\n */\n title?: string;\n children?: ReactNode;\n };\n\nexport const Audio = forwardRef<HTMLAudioElement, Props>(\n (\n {\n children,\n className,\n onReady = () => {},\n onPlay = () => {},\n onPause = () => {},\n onError = () => {},\n src,\n poster,\n title,\n sources = [],\n ...nativeProps\n },\n refProp\n ) => {\n const embedRef = useInternalRef(refProp);\n\n const [duration, setDuration] = useState(0);\n\n const {handleLoadedMetaData, handleError, handleCanPlay, readyToPlay} = useLoadingState({\n embedRef,\n onError,\n onReady,\n setDuration,\n });\n\n const {handlePlay, handleTogglePlay, handlePause, playMode} = usePlay({\n embedRef,\n onPlay,\n onPause,\n });\n\n const {handleSetTime, currentTime} = useTime({embedRef, playMode});\n\n const {volume, handleSetVolume, muted, handleToggleMuted} = useSound({\n embedRef,\n mutedProp: false,\n });\n\n const {LocalRoot} = useLocalTheme();\n\n const theme = useMemo(() => ({background: `url(${poster})`}), [poster]);\n\n const PlayIcon =\n playMode === PlayModes.pause || playMode === PlayModes.pristine ? IconPlay : IconPause;\n\n return (\n <LocalRoot\n {...nativeProps}\n theme={theme}\n className={classNames(classes.wrapper, className)}>\n <div className={classes.title}>\n <IconAudio className={classes.icon} />\n <span className={classes.text}>\n {title || getFileName(embedRef.current?.currentSrc)}\n </span>\n <a\n className={classes.download}\n href={embedRef.current?.currentSrc}\n download={getFileName(embedRef.current?.currentSrc)}>\n <IconDownloadVideo />\n </a>\n </div>\n <div className={classNames(classes.audio, {[classes.noPoster]: !poster})}>\n {poster && (\n <Picture className={classes.poster} src={poster} height={111} width={111} />\n )}\n <div className={classes.playWrapper}>\n <button\n onClick={handleTogglePlay}\n className={classNames(classes.playControl, {\n [classes.loading]: !readyToPlay,\n })}>\n <PlayIcon className={classes.icon} />\n </button>\n </div>\n <div className={classes.rangeControls}>\n <div className={classes.control}>\n <div className={classes.time}>\n {getFormattedTime(currentTime)}/{getFormattedTime(duration)}\n </div>\n <div className={classes.volumeControl}>\n <button className={classes.mutedButton} onClick={handleToggleMuted}>\n {muted ? (\n <IconVolumeOff className={classes.volumeIcon} />\n ) : (\n <IconVolume className={classes.volumeIcon} />\n )}\n </button>\n <input\n min={0}\n max={1}\n step={0.01}\n type=\"range\"\n value={muted ? 0 : volume}\n onChange={handleSetVolume}\n className={classNames(\n rangeInputClasses.range,\n classes.volumeInput\n )}\n />\n </div>\n </div>\n <div className={classes.control}>\n <input\n onChange={handleSetTime}\n value={currentTime}\n type=\"range\"\n className={classNames(\n rangeInputClasses.range,\n classes.navigationInput\n )}\n name=\"seek\"\n min={0}\n max={duration}\n step={1}\n />\n </div>\n </div>\n <audio\n className={classes.nativePlayer}\n ref={embedRef}\n src={src}\n onPlay={handlePlay}\n onPause={handlePause}\n onLoadedMetadata={handleLoadedMetaData}\n onCanPlay={handleCanPlay}\n onError={handleError}\n muted={muted}>\n {sources.map(({src, type, mediaCondition}) => {\n return (\n <source key={src} src={src} type={type} media={mediaCondition} />\n );\n })}\n </audio>\n {children}\n </div>\n </LocalRoot>\n );\n }\n);\n\nAudio.displayName = 'Audio';\n"],"names":["theme","themeInternal","useInternalRef","outerRef","innerRef","useRef","useImperativeHandle","SvgWarningCircleFill","props","React","IconError","className","restProps","jsx","Icon","classNames","classes","SvgCheck","IconValid","Check","SvgProgressActivity","IconLoader","Loader","SvgFilesFill","IconFile","SvgCalendarFill","IconCalendar","SvgWatchFill","IconClock","SvgExpandAll","IconExpand","SvgLockKeyFill","IconLock","SvgLockKeyOpenFill","IconLockOpen","SvgArrowDropUp","IconArrowUp","SvgArrowDropDown","IconArrowDown","SvgClose","IconClose","SvgArrowLeft","IconArrowLeft","SvgArrowRight","IconArrowRight","SvgCompareArrows","IconScroll","SvgWarningFill","IconWarning","SvgCheckCircleFill","IconSuccess","SvgSkipForwardFill","IconForward","SvgSkipBackFill","IconBackward","SvgKeyReturnFill","IconEnter","SvgDangerous","IconDanger","SvgLinkBold","IconLink","SvgMoreVert","IconEllipsisVertical","SvgColumnsPlusLeftBold","IconPinLeft","SvgColumnsPlusRightBold","IconPinRight","SvgAlignCenterVerticalSimpleBold","IconUnPin","SvgFilterAlt","IconFilter","SvgFilterAltOff","IconFilterOff","SvgPencilLineFill","IconEdit","SvgTrashFill","IconDelete","SvgBroomFill","IconClear","SvgSortAscendingBold","IconSortAsc","SvgSortDescendingBold","IconSortDesc","SvgSwatchesFill","IconSwatches","SvgBellFill","IconNotification","SvgWarningCircleBold","IconErrorOutline","SvgShuffleBold","IconSortOff","SvgColumnsBold","IconColumns","SvgNumpadFill","IconNumeric","SvgPlayFill","IconPlay","SvgPauseFill","IconPause","SvgSpeakerHighFill","IconVolume","SvgSpeakerSlashFill","IconVolumeOff","SvgBoxArrowDownFill","IconDownloadVideo","SvgCassetteTapeFill","IconAudio","EventType","useEventListener","eventType","callback","element","targetElement","callbackRef","useEffect","handler","e","useFocusTrap","isOpen","condition","focusableElementsRef","elements","setElements","useState","first","last","_a","handleTabKeyPress","useCallback","event","ActionTypes","ActionButton","title","icon","type","onClick","disabled","ActionIcon","useMemo","handleClick","jsxs","ActionsTree","actions","classNameRow","classNameAction","ActionComponent","id","useId","actionSlot","i","left","right","Variants","Actions","forwardRef","children","variant","nativeProps","ref","useIsFirstRender","isFirst","isBrowser","useSafeLayoutEffect","useLayoutEffect","Transition","show","exitClassName","exitDoneClassName","enterClassName","enterDoneClassName","nodeRef","unmountNode","onExit","onEnter","isFirstRender","shouldRender","setRender","_b","_c","_d","_e","_f","SlideBottom","SlideLeft","SlideRight","Animations","TransitionDialog","animation","arr","without","filter","array","filterFn","member","initialState","DialogReducer","state","action","nextOpen","dialogId","params","DialogContext","createContext","useDialogContext","useContext","useSelector","useDialogState","dispatch","openDialog","closeDialog","topDialogId","topDialog","dialogParams","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","value","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","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","required","inputProps","Children","hintId","childrenWithProps","cloneElement","ValidationState","defaultValidator","useHandleFormReset","setValidity","getValue","mode","useValidatorFn","validatorFn","reportValidity","createValidatorSync","validationError","createValidatorExternal","debouncedValidator","AwesomeDebouncePromise","createValidatorAsync","error","createValidatorFn","validation","getMode","useValidation","hasValidators","validity","isValid","ValidState","nextValidationState","validateInteractive","validateTextual","ChangeEvent","useRevalidateOnFormChange","inputRef","validateInput","inputElement","revalidateInput","useExternalValidation","errorMessage","useValidationIcon","InputCheckbox","onFocus","onBlur","onKeyDown","onKeyUp","checked","defaultChecked","idProp","revalidateOnFormChange","indeterminate","ValidationIcon","handleInvalid","InputGroup","name","isValidElement","nextProps","InputRadio","InputText","placeholder","defaultValue","readOnly","handleSelect","inputId","InputDate","labelRef","displayValue","handleFocus","handleBlur","handleInput","noOp","InputDateTime","date","setDate","time","setTime","combined","setCombined","nextDate","nextTime","handleSetDate","handleSetTime","InputTime","invertColor","hex","bw","red","green","blue","InputColor","predefinedColors","setTheme","hasPredefinedColors","predefinedColorsListId","color","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","displayScale","setDisplayValue","scaleId","InputFile","filename","setFileName","InputPassword","setType","SPINNER_EVENT_TYPE","ChangeEventSpinner","InputNumber","step","handleDecrement","handleIncrement","patternMapping","InputNumeric","inputValue","pattern","Textarea","cols","rows","resize","textareaId","Select","multiple","selectId","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","wrapperRef","wrapperClassName","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","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","scrollWidth","setScrollWidth","scrollHeight","setScrollHeight","overflowY","setOverflowY","overflowX","setOverflowX","current","hasOverflowY","hasOverflowX","handleResizeDebounced","useDebouncedCallback","TabButton","tabName","activeName","Tabs","selectedProp","initiallySelected","selected","setSelected","tabs","visibleTab","headerRef","Tab","allowedPlacementsDefault","Menu","openProp","content","referenceClassName","alignWidth","allowedPlacements","menuRef","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","NavLink","shift","isCurrent","NavBrand","NavPanel","Progress","conditionallyAddEllipsis","items","showEllipsis","rest","Link","Breadcrumbs","LinkComponent","url","ButtonGroup","layout","normalizeValue","convertPermissions","permissions","permissionsArray","Iframe","referrerPolicy","allowFullScreen","srcDoc","sandboxConfig","permissionsConfig","onLoad","setIsLoaded","sandbox","allow","Units","useBrowserLocale","locale","setLocale","Styles","LocaleMatchers","Notations","CompactDisplayModes","SignDisplayModes","CurrencyDisplayTypes","UnitDisplayModes","NumberDecimal","localeProp","localeMatcher","digitsConfig","notation","compactDisplay","grouping","signDisplay","userLocale","formattedValue","NumberCurrency","currency","currencyDisplay","currencySign","NumberPercent","NumberUnit","unit","unitDisplay","DateTime","weekday","era","year","month","day","hour","minute","second","timeZoneName","hour12","timeZone","enableNoWrap","frameID","setSize","useColumnFilters","columnFiltersProp","onFiltersChange","columnFilters","setColumnFilters","RenderModes","ProcessingModes","ColumnTypes","SortingModes","FilterModes","CustomFilterFns","CellWrapper","memo","columnWidth","RowSelectionCell","columnHelper","createColumnHelper","ROW_SELECTION_ID","rowSelection","table","column","row","defaultColumnPinning","normalizeProp","hasSelectableColumn","columnPinningProp","nextRight","nextLeft","useColumnPinning","normalizedPinningState","columnPinning","setColumnPinning","TableCell","isPinned","leftMargin","rightMargin","classname","isHighlighted","localRef","useVirtualRows","rowsCount","scrollRef","cellHeight","overscan","virtualizer","useVirtualizer","virtualRows","before","after","notUndefined","useTableData","tableDataProp","tableData","setTableData","useMatchMedia","query","matches","setMatches","media","listener","setCurrentPage","currentPage","pagesAmount","pageSizeProp","onPageSizeChange","pageSize","setPageSize","handlePageSizeChange","handlePazeSizeEnter","handlePageSizeSubmit","isBigScreen","displayPageButtons","displayPageNavigation","PaginationVanilla","usePagination","paginationProp","onPaginationChange","pagination","setPagination","prevState","nextSize","useSorting","sortingProp","onSortingChange","sorting","setSorting","valueToNumber","NumberRangeField","from","to","handleMinChange","handleMaxChange","DateRangeField","TextField","handleFilterChange","fieldMapping","FilterDialog","onApplyFiler","tableContext","columnsConfig","filterable","selectedColumn","setSelectedColumn","handleColumnSelect","selectedType","setSelectedType","nextType","FilterField","InputField","tableFilterValue","columnFilter","filterValue","setFilterValue","hasFilter","handleApplyFilter","handleResetFilter","cellProps","useRowSelection","rowSelectionProp","onRowSelect","processingMode","isClient","setRowSelection","clearSelection","handleRowSelection","updater","useTableHeight","tableHeightProp","DeleteDialog","selectionAmount","onDeleteConfirmation","PercentageInput","withValueMapping","Wrapped","valueInputMapping","EditDialog","onEdit","Input","selectionValue","setSelectionValue","handleEdit","amountFormatted","SelectableActions","onClear","selectedRows","onDeleteRequest","onEditRequest","totalRows","set","path","a","c","useEdit","showDeleteConfirmation","showEditDialog","handleDeleteRequest","handleEditRequest","rowIndex","editRows","editedRows","columnId","nextTableData","editState","deleteRows","deletedRows","handleDelete","ColumnHeaderCell","headerContext","handleToggle","openState","isSorted","ColumnFooterCell","cellContext","isFiltered","handleResetSorting","handleUnPin","ViewTextCell","ViewDecimalCell","ViewUnitCell","ViewDateCell","ViewCurrencyCell","ViewPercentageCell","cellMapping","sortMapping","normalizeSortingFn","columnType","sortingFnProp","filterMapping","normalizeFilterFn","filterFnProp","columns","useTableColumns","columnsProp","selectable","initialColumns","accessorKey","accessorFn","editable","sortable","pinnable","columnCell","headerCell","footerCell","filterInput","CellComponent","HeaderComponent","FooterComponent","setColumns","editableColumns","isInDateRange","cellDate","isInPercentRange","cellValue","CELL_HEIGHT","OVERSCAN","defaultPages","defaultSorting","defaultFilters","defaultSelection","DataTable","renderMode","pageCount","tableRef","tableHeight","maxHeight","browserLocale","useReactTable","getCoreRowModel","getPaginationRowModel","getSortedRowModel","getFilteredRowModel","handleSetFilter","handleResetFilters","captionId","headerGroup","header","fixLeft","fixRight","flexRender","virtualRow","cell","footerGroup","NameRegion","countryCode","NameLanguage","languageCode","NameCurrency","currencyCode","style","NameTime","timePeriod","flagsDictionary","Flag","flag","countryName","PlayModes","usePlay","onPlay","onPause","embedRef","playMode","setPlayMode","handlePlay","handlePause","handleTogglePlay","getFileName","splitted","useLoadingState","setDuration","onReady","onError","handleLoadedMetaData","readyToPlay","setReadyToPlay","handleCanPlay","getFormattedTime","totalSeconds","minutes","seconds","useTime","currentTime","setCurrentTime","intervalId","useSound","mutedProp","volume","setVolume","handleSetVolume","muted","setMuted","handleToggleMuted","Audio","poster","duration","PlayIcon","rangeInputClasses"],"mappings":";;;;;;;;;;;;AAAO,MAAMA,IAAQ;AAAA,EACjB,YAAY;AAAA,EACZ,qBAAqB;AAAA,EACrB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,aAAa;AAAA;AAAA,EAEb,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,oBAAoB;AAAA;AAAA,EAEpB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA;AAAA,EAEhB,WAAW;AAAA,EACX,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA;AAAA,EAEf,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA;AAAA,EAET,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,cAAc;AAAA,EACd,aAAa;AAAA;AAAA,EAEb,aAAa;AAAA,EACb,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA;AAAA,EAEZ,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA;AAAA,EAEjB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AACZ,GC7DaA,KAAQ;AAAA,EACjB,YAAYC,EAAc;AAAA,EAC1B,qBAAqBA,EAAc;AAAA,EACnC,YAAYA,EAAc;AAAA,EAC1B,YAAYA,EAAc;AAAA,EAC1B,YAAYA,EAAc;AAAA,EAC1B,YAAYA,EAAc;AAAA,EAC1B,YAAYA,EAAc;AAAA,EAC1B,YAAYA,EAAc;AAAA,EAC1B,cAAcA,EAAc;AAAA,EAC5B,gBAAgBA,EAAc;AAAA,EAC9B,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,kBAAkBA,EAAc;AAAA,EAChC,kBAAkBA,EAAc;AAAA,EAChC,gBAAgBA,EAAc;AAAA,EAC9B,WAAWA,EAAc;AAAA,EACzB,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,SAASA,EAAc;AAAA,EACvB,SAASA,EAAc;AAAA,EACvB,SAASA,EAAc;AAAA,EACvB,SAASA,EAAc;AAAA,EACvB,UAAUA,EAAc;AAAA,EACxB,SAASA,EAAc;AAAA,EACvB,YAAYA,EAAc;AAAA,EAC1B,cAAcA,EAAc;AAAA,EAC5B,cAAcA,EAAc;AAAA,EAC5B,aAAaA,EAAc;AAC/B,GClCaD,KAAQ;AAAA,EACjB,YAAYC,EAAc;AAAA,EAC1B,qBAAqBA,EAAc;AAAA,EACnC,YAAYA,EAAc;AAAA,EAC1B,YAAYA,EAAc;AAAA,EAC1B,YAAYA,EAAc;AAAA,EAC1B,YAAYA,EAAc;AAAA,EAC1B,YAAYA,EAAc;AAAA,EAC1B,YAAYA,EAAc;AAAA,EAC1B,cAAcA,EAAc;AAAA,EAC5B,gBAAgBA,EAAc;AAAA,EAC9B,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,kBAAkBA,EAAc;AAAA,EAChC,kBAAkBA,EAAc;AAAA,EAChC,gBAAgBA,EAAc;AAAA,EAC9B,WAAWA,EAAc;AAAA,EACzB,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,eAAeA,EAAc;AAAA,EAC7B,SAASA,EAAc;AAAA,EACvB,SAASA,EAAc;AAAA,EACvB,SAASA,EAAc;AAAA,EACvB,SAASA,EAAc;AAAA,EACvB,UAAUA,EAAc;AAAA,EACxB,SAASA,EAAc;AAAA,EACvB,YAAYA,EAAc;AAAA,EAC1B,cAAcA,EAAc;AAAA,EAC5B,cAAcA,EAAc;AAAA,EAC5B,aAAaA,EAAc;AAC/B,GCjCaC,KAAiB,CAAyBC,MAAqC;AAClF,QAAAC,IAAWC,GAAwB,IAAI;AACS,SAAAC,GAAAH,GAAU,MAAMC,EAAS,SAAS;AAAA,IACpFA;AAAA,EAAA,CACH,GACMA;AACX;;;;;;GCTMG,KAAuB,CAACC,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,iJAAgJ,CAAE,CAAC,GCS3WC,KAAuB,CAAC,EAAC,WAAAC,GAAW,GAAGC,QACzC,gBAAAC,EAACC,IAAK,EAAA,WAAWC,EAAWC,EAAQ,MAAMA,EAAQ,OAAOL,CAAS,GAAI,GAAGC,EAAW,CAAA,GCVzFK,KAAW,CAACT,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,wDAAuD,CAAE,CAAC,GCS1QS,KAAuB,CAAC,EAAC,WAAAP,GAAW,GAAGC,QACzC,gBAAAC,EAACM,IAAM,EAAA,WAAWJ,EAAWC,EAAQ,MAAMA,EAAQ,OAAOL,CAAS,GAAI,GAAGC,EAAW,CAAA,GCV1FQ,KAAsB,CAACZ,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,qYAAoY,CAAE,CAAC,GCSlmBY,KAAwB,CAAC,EAAC,WAAAV,GAAW,GAAGC,QAE7C,gBAAAC;AAAA,EAACS;AAAAA,EAAA;AAAA,IACG,WAAWP,EAAWC,EAAQ,MAAMA,EAAQ,UAAUA,EAAQ,SAASL,CAAS;AAAA,IAC/E,GAAGC;AAAA,EAAA;AACR,GCdFW,KAAe,CAACf,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,6VAA4V,CAAE,CAAC,GCS/iBe,KAAsB,CAAC,EAAC,WAAAb,GAAW,GAAGC,QACxC,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1Ea,KAAkB,CAACjB,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,6bAA4b,CAAE,CAAC,GCSlpBiB,KAA0B,CAAC,EAAC,WAAAf,GAAW,GAAGC,QAC5C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1Ee,KAAe,CAACnB,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,yYAAwY,CAAE,CAAC,GCS3lBmB,KAAuB,CAAC,EAAC,WAAAjB,GAAW,GAAGC,QACzC,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EiB,KAAe,CAACrB,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,4GAA2G,CAAE,CAAC,GCSlUqB,KAAwB,CAAC,EAAC,WAAAnB,GAAW,GAAGC,QAC1C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EmB,KAAiB,CAACvB,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,kNAAiN,CAAE,CAAC,GCStauB,KAAsB,CAAC,EAAC,WAAArB,GAAW,GAAGC,QACxC,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EqB,KAAqB,CAACzB,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,uRAAsR,CAAE,CAAC,GCS/eyB,KAA0B,CAAC,EAAC,WAAAvB,GAAW,GAAGC,QAC5C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EuB,KAAiB,CAAC3B,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,gCAA+B,CAAE,CAAC,GCSxP2B,KAAyB,CAAC,EAAC,WAAAzB,GAAW,GAAGC,QAC3C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EyB,KAAmB,CAAC7B,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,gCAA+B,CAAE,CAAC,GCS1P6B,KAA2B,CAAC,EAAC,WAAA3B,GAAW,GAAGC,QAC7C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E2B,KAAW,CAAC/B,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,oGAAmG,CAAE,CAAC,GCStT+B,KAAuB,CAAC,EAAC,WAAA7B,GAAW,GAAGC,QACzC,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E6B,KAAe,CAACjC,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,gCAA+B,CAAE,CAAC,GCStPiC,KAA2B,CAAC,EAAC,WAAA/B,GAAW,GAAGC,QAC7C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E+B,KAAgB,CAACnC,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,iCAAgC,CAAE,CAAC,GCSxPmC,KAA4B,CAAC,EAAC,WAAAjC,GAAW,GAAGC,QAC9C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EiC,KAAmB,CAACrC,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,mIAAkI,CAAE,CAAC,GCS7VqC,KAAwB,CAAC,EAAC,WAAAnC,GAAW,GAAGC,QAC1C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EmC,KAAiB,CAACvC,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,oRAAmR,CAAE,CAAC,GCSxeuC,KAAyB,CAAC,EAAC,WAAArC,GAAW,GAAGC,QAC3C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EqC,KAAqB,CAACzC,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,2KAA0K,CAAE,CAAC,GCSnYyC,KAAyB,CAAC,EAAC,WAAAvC,GAAW,GAAGC,QAC3C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EuC,KAAqB,CAAC3C,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,+IAA8I,CAAE,CAAC,GCSvW2C,KAAyB,CAAC,EAAC,WAAAzC,GAAW,GAAGC,QAC3C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EyC,KAAkB,CAAC7C,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,2IAA0I,CAAE,CAAC,GCShW6C,KAA0B,CAAC,EAAC,WAAA3C,GAAW,GAAGC,QAC5C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E2C,KAAmB,CAAC/C,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,sPAAqP,CAAE,CAAC,GCS5c+C,KAAuB,CAAC,EAAC,WAAA7C,GAAW,GAAGC,QACzC,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E6C,KAAe,CAACjD,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,4NAA2N,CAAE,CAAC,GCSlbiD,KAAwB,CAAC,EAAC,WAAA/C,GAAW,GAAGC,QAC1C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E+C,KAAc,CAACnD,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,mmBAAkmB,CAAE,CAAC,GCSpzBmD,KAAsB,CAAC,EAAC,WAAAjD,GAAW,GAAGC,QACxC,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EiD,KAAc,CAACrD,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,6cAA4c,CAAE,CAAC,GCSlqBqD,KAAkC,CAAC,EAAC,WAAAnD,GAAW,GAAGC,QACpD,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EmD,KAAyB,CAACvD,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,yVAAwV,CAAE,CAAC,GCSrjBuD,KAAyB,CAAC,EAAC,WAAArD,GAAW,GAAGC,QAC3C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EqD,KAA0B,CAACzD,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,sVAAqV,CAAE,CAAC,GCSnjByD,KAA0B,CAAC,EAAC,WAAAvD,GAAW,GAAGC,QAC5C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EuD,KAAmC,CAAC3D,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,wKAAuK,CAAE,CAAC,GCS9Y2D,KAAuB,CAAC,EAAC,WAAAzD,GAAW,GAAGC,QACzC,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EyD,KAAe,CAAC7D,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,8EAA6E,CAAE,CAAC,GCSpS6D,KAAwB,CAAC,EAAC,WAAA3D,GAAW,GAAGC,QAC1C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E2D,KAAkB,CAAC/D,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,kBAAkB,GAAGD,EAAK,GAAoB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,kHAAiH,CAAE,CAAC,GCS3U+D,KAA2B,CAAC,EAAC,WAAA7D,GAAW,GAAGC,QAC7C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E6D,KAAoB,CAACjE,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,2RAA0R,CAAE,CAAC,GCSlfiE,KAAsB,CAAC,EAAC,WAAA/D,GAAW,GAAGC,QACxC,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E+D,KAAe,CAACnE,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,+QAA8Q,CAAE,CAAC,GCSjemE,KAAwB,CAAC,EAAC,WAAAjE,GAAW,GAAGC,QAC1C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EiE,KAAe,CAACrE,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,qmBAAomB,CAAE,CAAC,GCUvzBqE,KAAuB,CAAC,EAAC,WAAAnE,GAAW,GAAGC,QACzC,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCX1EmE,KAAuB,CAACvE,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,8TAA6T,CAAE,CAAC,GCSxhBuE,KAAyB,CAAC,EAAC,WAAArE,GAAW,GAAGC,QAC3C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EqE,KAAwB,CAACzE,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,mSAAkS,CAAE,CAAC,GCS9fyE,KAA0B,CAAC,EAAC,WAAAvE,GAAW,GAAGC,QAC5C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EuE,KAAkB,CAAC3E,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,qXAAoX,CAAE,CAAC,GCS1kB2E,KAA0B,CAAC,EAAC,WAAAzE,GAAW,GAAGC,QAC5C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EyE,KAAc,CAAC7E,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,mOAAkO,CAAE,CAAC,GCSpb6E,KAA8B,CAAC,EAAC,WAAA3E,GAAW,GAAGC,QAChD,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E2E,KAAuB,CAAC/E,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,4MAA2M,CAAE,CAAC,GCSta+E,KAA8B,CAAC,EAAC,WAAA7E,GAAW,GAAGC,QAChD,gBAAAC,EAACC,IAAK,EAAA,WAAWC,EAAWC,EAAQ,MAAMA,EAAQ,OAAOL,CAAS,GAAI,GAAGC,EAAW,CAAA,GCVzF6E,KAAiB,CAACjF,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,wlBAAulB,CAAE,CAAC,GCS5yBiF,KAAyB,CAAC,EAAC,WAAA/E,GAAW,GAAGC,QAC3C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E+E,KAAiB,CAACnF,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,mOAAkO,CAAE,CAAC,GCSvbmF,KAAyB,CAAC,EAAC,WAAAjF,GAAW,GAAGC,QAC3C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EiF,KAAgB,CAACrF,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,yhBAAwhB,CAAE,CAAC,GCS5uBqF,KAAyB,CAAC,EAAC,WAAAnF,GAAW,GAAGC,QAC3C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EmF,KAAc,CAACvF,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,iMAAgM,CAAE,CAAC,GCSlZuF,KAAsB,CAAC,EAAC,WAAArF,GAAW,GAAGC,QACxC,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EqF,KAAe,CAACzF,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,8LAA6L,CAAE,CAAC,GCShZyF,KAAuB,CAAC,EAAC,WAAAvF,GAAW,GAAGC,QACzC,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EuF,KAAqB,CAAC3F,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,sdAAqd,CAAE,CAAC,GCS9qB2F,KAAwB,CAAC,EAAC,WAAAzF,GAAW,GAAGC,QAC1C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1EyF,KAAsB,CAAC7F,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,8jBAA6jB,CAAE,CAAC,GCSvxB6F,KAA2B,CAAC,EAAC,WAAA3F,GAAW,GAAGC,QAC7C,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E2F,KAAsB,CAAC/F,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,4UAA2U,CAAE,CAAC,GCSriB+F,KAA+B,CAAC,EAAC,WAAA7F,GAAW,GAAGC,QACjD,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW,GCV1E6F,KAAsB,CAACjG,MAA0B,gBAAAC,EAAM,cAAc,OAAO,EAAE,OAAO,8BAA8B,SAAS,eAAe,MAAM,gBAAgB,GAAGD,EAAO,GAAkB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,8XAA6X,CAAE,CAAC,GCSvlBiG,KAAuB,CAAC,EAAC,WAAA/F,GAAW,GAAGC,QACzC,gBAAAC,EAACC,MAAK,WAAWC,EAAWC,EAAQ,MAAML,CAAS,GAAI,GAAGC,GAAW;ACTpE,IAAA+F,uBAAAA,OACRA,EAAA,UAAU,WACVA,EAAA,YAAY,aACZA,EAAA,eAAe,gBACfA,EAAA,SAAS,UAJDA,IAAAA,MAAA,CAAA,CAAA;AAaL,MAAMC,KAAmB,CAC5BC,GACAC,GACAC,MACC;AACD,QAAMC,IAAgBD,KAAW,QAC3BE,IAAc5G,GAAOyG,CAAQ;AAEnC,EAAAI,EAAU,MAAM;AACZ,IAAAD,EAAY,UAAUH;AAAA,EAAA,GACvB,CAACA,CAAQ,CAAC,GAEbI,EAAU,MAAM;AACZ,QAAIF,KAAiB,KAAM;AAC3B,UAAMG,IAAW,CAACC,MACdH,EAAY,QAAQG,CAAC;AACX,WAAAJ,EAAA,iBAAiBH,GAAWM,CAAO,GAE1C,MAAMH,EAAc,oBAAoBH,GAAWM,CAAO;AAAA,EAAA,GAClE,CAACN,GAAWG,CAAa,CAAC;AACjC,GC3BaK,KAAe,CAACN,GAA6BO,GAAiBC,IAAY,OAAS;AACtF,QAAAC,IAAuBnH,GAAgC,IAAI,GAC3D,CAACoH,GAAUC,CAAW,IAAIC,EAAiC,CAAA,CAAE;AACnE,EAAAT,EAAU,MAAM;AACZ,QAAIK,KAAaD,GAAQ;AAErB,MAAAE,EAAqB,UAAUT,KAAA,gBAAAA,EAAS;AAAA,QACpC;AAAA;AAEJ,YAAMa,IAAQJ,EAAqB,UAAUA,EAAqB,QAAQ,CAAC,IAAI,MACzEK,IAAOL,EAAqB,UAC5BA,EAAqB,QAAQA,EAAqB,QAAQ,SAAS,CAAC,IACpE;AACM,MAAAE,EAAA,CAACE,GAAOC,CAAI,CAAC;AAAA,IAAA;AAAA,EAE9B,GAAA,CAACP,GAAQP,GAASQ,CAAS,CAAC,GAE/BL,EAAU,MAAM;;AACZ,IAAAK,KAAaD,OAAUQ,IAAAL,EAAS,CAAC,MAAV,QAAAK,EAAa;AAAA,EACrC,GAAA,CAACP,GAAWE,GAAUH,CAAM,CAAC;AAEhC,QAAMS,IAAoBC;AAAA,IACtB,CAACC,MAAyB;AAChB,YAAA,CAACL,GAAOC,CAAI,IAAIJ;AACtB,MAAIF,KAAaD,KAAUW,EAAM,QAAQ,UACjCA,EAAM,YAAY,SAAS,kBAAkBL,KAC7CK,EAAM,eAAe,GACrBJ,EAAM,MAAM,KACL,CAACI,EAAM,YAAY,SAAS,kBAAkBJ,MACrDI,EAAM,eAAe,GACrBL,EAAO,MAAM;AAAA,IAGzB;AAAA,IACA,CAACL,GAAWE,GAAUH,CAAM;AAAA,EAChC;AAEiB,EAAAV,GAAAD,GAAU,SAASoB,CAAiB;AACzD;AC9CY,IAAAG,uBAAAA,OACRA,EAAA,UAAU,WACVA,EAAA,UAAU,WACVA,EAAA,OAAO,QACPA,EAAA,SAAS,UAJDA,IAAAA,MAAA,CAAA,CAAA;;;;;;;;;;GCmBCC,KAA0B,CAAC;AAAA,EACpC,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU,MAAM;AAAA,EAAC;AAAA,EACjB,WAAA5H;AAAA,EACA,UAAA6H;AACJ,MAAM;AACF,QAAMC,IAAaC;AAAA,IACf,MACIL,KACA;AAAA,MACI,CAACH,GAAY,OAAO,GAAGhF;AAAA,MACvB,CAACgF,GAAY,MAAM,GAAGxE;AAAA,MACtB,CAACwE,GAAY,IAAI,GAAGtE;AAAA,MACpB,CAACsE,GAAY,OAAO,GAAG;AAAA,MACzBI,CAAI;AAAA,IACV,CAACD,GAAMC,CAAI;AAAA,EACf,GAEMK,IAAcX;AAAA,IAChB,CAACC,MAAyC;AACtC,MAAAM,EAAQN,CAAK;AAAA,IACjB;AAAA,IACA,CAACM,CAAO;AAAA,EACZ;AAGI,SAAA,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,UAAAJ;AAAA,MACA,OAAAJ;AAAA,MACA,SAASO;AAAA,MACT,WAAW5H;AAAA,QACPC,GAAQ;AAAA,QACR;AAAA,UACI,CAACA,GAAQ,OAAO,GAAGsH,MAASJ,GAAY;AAAA,UACxC,CAAClH,GAAQ,IAAI,GAAGsH,MAASJ,GAAY;AAAA,UACrC,CAAClH,GAAQ,OAAO,GAAGsH,MAASJ,GAAY;AAAA,UACxC,CAAClH,GAAQ,MAAM,GAAGsH,MAASJ,GAAY;AAAA,QAC3C;AAAA,QACAvH;AAAA,MACJ;AAAA,MACC,UAAA;AAAA,QAAA8H,KAAe,gBAAA5H,EAAA4H,GAAA,EAAW,WAAWzH,GAAQ,YAAY;AAAA,QACzDoH,KAAU,gBAAAvH,EAAA,QAAA,EAAK,WAAWG,GAAQ,aAAc,UAAMoH,EAAA,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAC3D;AAER,GChDaS,KAAyB,CAAC;AAAA,EACnC,SAAAC,IAAU,CAAC;AAAA,EACX,cAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,iBAAiBC,IAAkBd;AACvC,MAAM;AACF,QAAMe,IAAKC,GAAM;AACjB,SAAOL,EAAQ,IAAI,CAACM,GAAYC,MAAM;AAC9B,QAAA,MAAM,QAAQD,CAAU,GAAG;AACrB,YAAA,CAACE,GAAMC,CAAK,IAAIH;AACtB,+BACK,OAAuB,EAAA,WAAWrI,EAAWC,GAAQ,KAAK+H,CAAY,GACnE,UAAA;AAAA,QAAA,gBAAAlI;AAAA,UAACoI;AAAA,UAAA;AAAA,YACI,GAAGK;AAAA,YACJ,WAAWvI,EAAWC,GAAQ,cAAcgI,CAAe;AAAA,UAAA;AAAA,QAC/D;AAAA,QACA,gBAAAnI;AAAA,UAACoI;AAAA,UAAA;AAAA,YACI,GAAGM;AAAA,YACJ,WAAWxI,EAAWC,GAAQ,cAAcgI,CAAe;AAAA,UAAA;AAAA,QAAA;AAAA,MAC/D,EAAA,GARM,GAAGE,CAAE,IAAIG,CAAC,EASpB;AAAA,IAAA;AAGJ,+BACK,OAAuB,EAAA,WAAWtI,EAAWC,GAAQ,KAAK+H,CAAY,GACnE,UAAA,gBAAAlI;AAAA,QAACoI;AAAA,QAAA;AAAA,UACI,GAAGG;AAAA,UACJ,WAAWrI,EAAWC,GAAQ,cAAcgI,CAAe;AAAA,QAAA;AAAA,MAHzD,EAAA,GAAA,GAAGE,CAAE,IAAIG,CAAC,EAKpB;AAAA,EAER,CACH;AACL;AClDY,IAAAG,uBAAAA,OACRA,EAAA,UAAU,WACVA,EAAA,WAAW,YAFHA,IAAAA,MAAA,CAAA,CAAA;;;;;;GCwBCC,KAAUC;AAAA,EACnB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,SAAAmI,IAAU,CAAC;AAAA,IACX,SAAAc,IAAUJ,GAAS;AAAA,IACnB,iBAAAR;AAAA,IACA,cAAAD;AAAA,IACA,GAAGc;AAAA,KAEPC,MAGI,gBAAAjJ,EAAC,OAAK,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,GAAQ,SAASL,CAAS,GAAG,KAAAmJ,GACrE,UAAA,gBAAAjJ;AAAA,IAACgI;AAAA,IAAA;AAAA,MACG,SAAAC;AAAA,MACA,iBAAiB/H;AAAA,QACb;AAAA,UACI,CAACC,GAAQ,aAAa,GAAG4I,MAAYJ,GAAS;AAAA,UAC9C,CAACxI,GAAQ,cAAc,GAAG4I,MAAYJ,GAAS;AAAA,QACnD;AAAA,QACAR;AAAA,MACJ;AAAA,MACA,cAAcjI,EAAWC,GAAQ,WAAW+H,CAAY;AAAA,IAAA;AAAA,EAAA,GAEhE;AAGZ;AAEAU,GAAQ,cAAc;AC7Cf,MAAMM,KAAmB,MAAM;AAC5B,QAAAC,IAAU3J,GAAO,EAAI;AAC3B,SAAI2J,EAAQ,WACRA,EAAQ,UAAU,IACX,MAEJA,EAAQ;AACnB,GCjBaC,KAAY,MACd,GAAQ,iCAAY,WCGlBC,KAAsBD,OAAcE,KAAkBjD,GCiCtDkD,KAAwB,CAAC;AAAA,EAClC,MAAAC,IAAO;AAAA,EACP,UAAAV;AAAA,EACA,eAAAW,IAAgB;AAAA,EAChB,mBAAAC,IAAoB;AAAA,EACpB,gBAAAC,IAAiB;AAAA,EACjB,oBAAAC,IAAqB;AAAA,EACrB,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC,IAAS,MAAM;AAAA,EAAC;AAAA,EAChB,SAAAC,IAAU,MAAM;AAAA,EAAA;AACpB,MAAM;AACF,QAAMC,IAAgBf,GAAiB,GAEjC,CAACgB,GAAcC,CAAS,IAAIrD,EAAS0C,CAAI;AAE/C,EAAAH,GAAoB,MAAM;AACtB,IAAAG,KAAQW,EAAUX,CAAI;AAAA,EAAA,GACvB,CAACA,CAAI,CAAC;AAET,QAAMtJ,IAAa2H;AAAA,IACf,OAAO;AAAA,MACH,OAAO8B,EAAe,MAAM,GAAG;AAAA,MAC/B,MAAMF,EAAc,MAAM,GAAG;AAAA,MAC7B,UAAUC,EAAkB,MAAM,GAAG;AAAA,MACrC,WAAWE,EAAmB,MAAM,GAAG;AAAA,IAAA;AAAA,IAE3C,CAACD,GAAgBC,GAAoBH,GAAeC,CAAiB;AAAA,EACzE;AAEA,SAAAL,GAAoB,MAAM;;AACtB,IAAIG,MACAvC,IAAA4C,EAAQ,YAAR,QAAA5C,EAAiB,UAAU,IAAI,GAAG/G,EAAW,SAC7CkK,IAAAP,EAAQ,YAAR,QAAAO,EAAiB,UAAU,OAAO,GAAGlK,EAAW,QAChDmK,IAAAR,EAAQ,YAAR,QAAAQ,EAAiB,UAAU,OAAO,GAAGnK,EAAW,eAEhDoK,IAAAT,EAAQ,YAAR,QAAAS,EAAiB,UAAU,IAAI,GAAGpK,EAAW,QAC7CqK,IAAAV,EAAQ,YAAR,QAAAU,EAAiB,UAAU,OAAO,GAAGrK,EAAW,SAChDsK,IAAAX,EAAQ,YAAR,QAAAW,EAAiB,UAAU,OAAO,GAAGtK,EAAW;AAAA,EACpD,GACD,CAACA,GAAY2J,GAASL,GAAMU,GAAcD,CAAa,CAAC,GAe1ClE,GAAA,gBAbU,MAAM;;AAC7B,IAAIyD,KAAQU,KACAF,EAAA,IACR/C,IAAA4C,EAAQ,YAAR,QAAA5C,EAAiB,UAAU,OAAO,GAAG/G,EAAW,SAChDkK,IAAAP,EAAQ,YAAR,QAAAO,EAAiB,UAAU,IAAI,GAAGlK,EAAW,cACtCgK,MACAH,EAAA,IACPM,IAAAR,EAAQ,YAAR,QAAAQ,EAAiB,UAAU,OAAO,GAAGnK,EAAW,QAChDoK,IAAAT,EAAQ,YAAR,QAAAS,EAAiB,UAAU,IAAI,GAAGpK,EAAW,WAC7CiK,EAAU,EAAK;AAAA,EAEvB,GAEqDN,EAAQ,OAAO,IAE5DK,KAAgB,CAACJ,MAAgBhB;AAC7C;;;;;;;;;;;;;;;;;;;GCzFa2B,KAET,CAAC,EAAC,UAAA3B,GAAU,aAAAgB,IAAc,IAAM,GAAG/J,QAE/B,gBAAAC;AAAA,EAACuJ;AAAA,EAAA;AAAA,IACI,GAAGxJ;AAAA,IACJ,aAAA+J;AAAA,IACA,eAAe3J,GAAQ;AAAA,IACvB,mBAAmBA,GAAQ;AAAA,IAC3B,gBAAgBA,GAAQ;AAAA,IACxB,oBAAoBA,GAAQ;AAAA,IAC3B,UAAA2I;AAAA,EAAA;AACL,GCZK4B,KAET,CAAC,EAAC,UAAA5B,GAAU,aAAAgB,IAAc,IAAM,GAAG/J,QAE/B,gBAAAC;AAAA,EAACuJ;AAAA,EAAA;AAAA,IACI,GAAGxJ;AAAA,IACJ,aAAA+J;AAAA,IACA,eAAe3J,GAAQ;AAAA,IACvB,gBAAgBA,GAAQ;AAAA,IACxB,oBAAoBA,GAAQ;AAAA,IAC5B,mBAAmBA,GAAQ;AAAA,IAC1B,UAAA2I;AAAA,EAAA;AACL,GCZK6B,KAET,CAAC,EAAC,UAAA7B,GAAU,aAAAgB,IAAc,IAAM,GAAG/J,QAE/B,gBAAAC;AAAA,EAACuJ;AAAA,EAAA;AAAA,IACI,GAAGxJ;AAAA,IACJ,aAAA+J;AAAA,IACA,eAAe3J,GAAQ;AAAA,IACvB,gBAAgBA,GAAQ;AAAA,IACxB,oBAAoBA,GAAQ;AAAA,IAC5B,mBAAmBA,GAAQ;AAAA,IAC1B,UAAA2I;AAAA,EAAA;AACL;AClBI,IAAA8B,uBAAAA,OACRA,EAAA,WAAc,IAAA,aACdA,EAAA,UAAa,IAAA,YAFLA,IAAAA,MAAA,CAAA,CAAA;ACeL,MAAMC,KAA8B,CAAC,EAAC,UAAA/B,GAAU,WAAAgC,GAAW,GAAG/K,QAE7D,gBAAAC;AAAA,EAACuJ;AAAA,EAAA;AAAA,IACI,GAAGxJ;AAAA,IACJ,eAAeG;AAAA,MACX;AAAA,QACI,CAACC,GAAQ,YAAY,GAAG2K,MAAcF,GAAW,WAAW;AAAA,QAC5D,CAACzK,GAAQ,WAAW,GAAG2K,MAAcF,GAAW,UAAU;AAAA,MAC9D;AAAA,MACAzK,GAAQ;AAAA,IACZ;AAAA,IACA,gBAAgBD;AAAA,MACZ;AAAA,QACI,CAACC,GAAQ,aAAa,GAAG2K,MAAcF,GAAW,WAAW;AAAA,QAC7D,CAACzK,GAAQ,YAAY,GAAG2K,MAAcF,GAAW,UAAU;AAAA,MAC/D;AAAA,MACAzK,GAAQ;AAAA,IACZ;AAAA,IACC,UAAA2I;AAAA,EAAA;AACL,GClCK9B,KAAO,CAAQ+D,MACjBA,EAAIA,EAAI,SAAS,CAAC,GCChBC,KAAU,CAASC,GAAmCC,MAAoB;AACnF,QAAMC,IACF,OAAOF,KAAW,WACZ,CAACG,MAAmBA,MAAWH,IAC9BA;AACJ,SAAAC,EAAM,OAAOC,CAAQ;AAChC;ACCY,IAAAvC,uBAAAA,OACRA,EAAA,eAAe,gBACfA,EAAA,cAAc,eAFNA,IAAAA,MAAA,CAAA,CAAA;AAiBL,MAAMyC,KAAe;AAAA,EACxB,MAAM,CAAA;AACV,GAWaC,KAAgB,CAACC,IAAQF,IAAcG,MAAsC;AACtF,UAAQA,EAAO,MAAM;AAAA,IACjB,KAAK,gBAAsB;AACjB,YAAA,EAAC,IAAAnD,MAAMmD,GACPC,IAAWT,GAAQ,CAAC,EAAC,IAAIU,EAAc,MAAAA,MAAarD,GAAIkD,EAAM,IAAI;AACjE,aAAA;AAAA,QACH,GAAGA;AAAA,QACH,MAAME;AAAA,MACV;AAAA,IAAA;AAAA,IAEJ,KAAK,eAAqB;AAChB,YAAA,EAAC,IAAApD,GAAI,QAAAsD,EAAA,IAAUH;AACd,aAAA;AAAA,QACH,GAAGD;AAAA,QACH,MAAM,CAAC,GAAGA,EAAM,MAAM,EAAC,IAAAlD,GAAI,QAAAsD,EAAO,CAAA;AAAA,MACtC;AAAA,IAAA;AAAA,IAEJ;AACW,aAAAJ;AAAA,EAAA;AAEnB,GCpDaK,KAAgBC,GAAiC;AAAA,EAC1D,OAAOR;AAAAA,EACP,UAAU,MAAM;AAAA,EAAA;AACpB,CAAC,GAEYS,KAAmB,MAAMC,GAAWH,EAAa,GCJxDI,KAAc,CAAW/F,MAA6C;AAClE,QAAA,EAAC,OAAAsF,EAAK,IAAIO,GAAiB;AACjC,SAAO7F,EAASsF,CAAK;AACzB,GAEaU,KAAiB,CAAC5D,MAAe;AACpC,QAAA,EAAC,UAAA6D,EAAQ,IAAIJ,GAAiB,GAC9BK,IAAahF;AAAA,IACf,CAACwE,MAA0B;AACd,MAAAO,EAAA;AAAA,QACL,MAAMtD,GAAQ;AAAA,QACd,IAAAP;AAAA,QACA,QAAAsD;AAAA,MAAA,CACH;AAAA,IACL;AAAA,IACA,CAACtD,GAAI6D,CAAQ;AAAA,EACjB,GACME,IAAcjF,EAAY,MAAM;AACzB,IAAA+E,EAAA;AAAA,MACL,MAAMtD,GAAQ;AAAA,MACd,IAAAP;AAAA,IAAA,CACH;AAAA,EAAA,GACF,CAACA,GAAI6D,CAAQ,CAAC,GACXG,IAAcL,GAAY,CAACT,MAAuB;AAC9C,UAAAe,IAAYtF,GAAKuE,EAAM,IAAI;AACjC,WAAOe,KAAA,gBAAAA,EAAW;AAAA,EAAA,CACrB,GACK7F,IAAS4B,MAAOgE,GAChBE,IAAeP,GAAY,CAACT,MAAuB;AAC/C,UAAAe,IAAYf,EAAM,KAAK,KAAK,CAAC,EAAC,IAAIG,EAAA,MAAcrD,MAAOqD,CAAQ;AACrE,WAAOY,KAAA,gBAAAA,EAAW;AAAA,EAAA,CACrB;AACM,SAAA;AAAA,IACH,YAAAH;AAAA,IACA,aAAAC;AAAA,IACA,QAAA3F;AAAA,IACA,cAAA8F;AAAA,EACJ;AACJ;;;;;;;;GCJaC,KAAS3D;AAAA,EAClB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,qBAAA2M,IAAsB;AAAA,IACtB,iBAAAC,IAAkB;AAAA,IAClB,UAAAC,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,IAAAtE;AAAA,IACA,SAAAJ,IAAU,CAAC;AAAA,IACX,aAAA2E;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,WAAAC,IAAY;AAAA,IACZ,WAAAhC,IAAYF,GAAW,WAAW;AAAA,IAClC,GAAG5B;AAAA,KAEPC,MACC;AACK,UAAA8D,IAAY1N,GAAe4J,CAAG,GAC9B,EAAC,QAAAxC,GAAQ,aAAA2F,MAAeH,GAAe5D,CAAE;AAClC,IAAA7B,GAAAuG,EAAU,SAAStG,GAAQqG,CAAS,GACjDzG,EAAU,MAAM;;AACZ,MAAII,OACAQ,IAAA8F,EAAU,YAAV,QAAA9F,EAAmB,aACnB,SAAS,KAAK,UAAU,IAAI9G,GAAQ,QAAQ,IAEhDwM,EAASlG,CAAM;AAAA,IAChB,GAAA,CAACsG,GAAWJ,GAAUlG,CAAM,CAAC;AAE1B,UAAAuG,IAAkB7F,EAAY,MAAM;AACtC,MAAAwF,EAAS,EAAK,GACFP,EAAA;AAAA,IAAA,GACb,CAACA,GAAaO,CAAQ,CAAC,GAEpB7E,IAAcX;AAAA,MAChB,CAACC,MAAgD;AAC7C,QACKA,EAAM,OAA6B,aAAa,YACjDqF,KAEgBO,EAAA;AAAA,MAExB;AAAA,MACA,CAACD,GAAWC,GAAiBP,CAAmB;AAAA,IACpD,GAEMQ,IAAiB9F;AAAA,MACnB,CAACC,MAA4C;AACnC,QAAAA,EAAA,SAAS,YAAY4F,EAAgB;AAAA,MAC/C;AAAA,MACA,CAACA,CAAe;AAAA,IACpB,GAEME,IAAa/F,EAAY,MAAM;;AACjC,OAAAF,IAAA8F,EAAU,YAAV,QAAA9F,EAAmB,SACnB,SAAS,KAAK,UAAU,OAAO9G,GAAQ,QAAQ;AAAA,IAAA,GAChD,CAAC4M,CAAS,CAAC;AAGV,WAAA,gBAAA/M;AAAA,MAAC6K;AAAA,MAAA;AAAA,QACG,WAAAC;AAAA,QACA,aAAa;AAAA,QACb,MAAMrE;AAAA,QACN,SAASsG;AAAA,QACT,QAAQG;AAAA,QACR,UAAA,gBAAAlN;AAAA,UAAC;AAAA,UAAA;AAAA,YACI,GAAGgJ;AAAA,YACJ,IAAAX;AAAA,YACA,WAAW4E;AAAA,YACX,SAASnF;AAAA,YACT,WAAW5H,EAAWC,GAAQ,QAAQL,CAAS;AAAA,YAC/C,KAAKiN;AAAA,YACL,UAAC,gBAAAhF,EAAA,OAAA,EAAI,WAAW5H,GAAQ,MACnB,UAAA;AAAA,cACGyM,KAAA,gBAAA5M,EAAC,UAAO,EAAA,WAAWE,EAAWC,GAAQ,MAAM,GACxC,UAAA,gBAAAH,EAACmN,IAAI,EAAA,UAAAP,EAAY,CAAA,GACrB;AAAA,gCAEH,OAAI,EAAA,WAAW1M,EAAWC,GAAQ,IAAI,GAAI,UAAA2I,GAAS;AAAA,cACnD,gBAAAf,EAAA,UAAA,EAAO,WAAW5H,GAAQ,SACvB,UAAA;AAAA,gBAAA,gBAAAH,EAACgI,MAAY,SAAAC,GAAkB;AAAA,gBAC9ByE,KACG,gBAAA1M,EAAC,OAAwB,EAAA,WAAWG,GAAQ,KACxC,UAAA,gBAAAH;AAAA,kBAACsH;AAAA,kBAAA;AAAA,oBACG,SAAS0F;AAAA,oBACT,MAAMrL;AAAA,oBACN,OAAOkL;AAAA,kBAAA;AAAA,gBAAA,KAJL,GAAGxE,CAAE,QAMf;AAAA,cAAA,EAER,CAAA;AAAA,YAAA,EACJ,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACJ;AAAA,IACJ;AAAA,EAAA;AAGZ;AAEAmE,GAAO,cAAc;ACnId,MAAMY,KACT,CAAkB,EAAC,cAAA/B,GAAc,SAAAgC,GAAS,SAAAC,EAAO;AAAA;AAAA,EAEjD,CAAC,EAAC,UAAAxE,EAAA,MAAsC;AAC9B,UAAA,EAAC,UAAAyE,MAAYD,GACb,CAAC/B,GAAOW,CAAQ,IAAIsB,GAAWH,GAAShC,CAAY,GACpDoC,IAAgB5F,EAAQ,OAAO,EAAC,OAAA0D,GAAO,UAAAW,MAAY,CAACX,CAAK,CAAC;AAChE,WAAQ,gBAAAvL,EAAAuN,GAAA,EAAS,OAAOE,GAAgB,UAAA3E,EAAS,CAAA;AAAA,EAAA;AAAA,GCV5C4E,KAAiBN,GAA+C;AAAA,EACzE,SAASxB;AAAA,EACT,SAASN;AAAA,EACTD,cAAAA;AACJ,CAAC;ACDW,IAAAzC,uBAAAA,OACRA,EAAA,qBAAqB,sBACrBA,EAAA,oBAAoB,qBACpBA,EAAA,wBAAwB,yBACxBA,EAAA,uBAAuB,wBAJfA,IAAAA,MAAA,CAAA,CAAA;AAyCL,MAAMyC,KAAe;AAAA,EACxB,MAAM,CAAC;AAAA,EACP,OAAO,CAAC;AAAA,EACR,WAAW,CAAA;AACf,GA2BMsC,KAAO,CAA0CC,GAAcC,MAAuB;AAClF,QAAAC,IAAa,EAAC,GAAGF,EAAG;AAC1B,gBAAOE,EAAWD,CAAG,GACdC;AACX,GAEaC,KAAsB,CAC/BxC,IAAQF,IACRG,MACoB;AACpB,UAAQA,EAAO,MAAM;AAAA,IACjB,KAAK,sBAA4B;AACvB,YAAA,EAAC,IAAAnD,MAAMmD,GACPC,IAAWT,GAAQ3C,GAAIkD,EAAM,IAAI,GACjCyC,IAAgBL,GAAKpC,EAAM,WAAWlD,CAAE;AACvC,aAAA;AAAA,QACH,GAAGkD;AAAA,QACH,MAAME;AAAA,QACN,WAAWuC;AAAA,MACf;AAAA,IAAA;AAAA,IAEJ,KAAK,yBAA+B;AAC1B,YAAA,EAAC,IAAA3F,GAAI,OAAA1I,EAAA,IAAS6L;AACb,aAAA;AAAA,QACH,GAAGD;AAAA,QACH,OAAO;AAAA,UACH,GAAGA,EAAM;AAAA,UACT,CAAClD,CAAE,GAAG1I;AAAA,QAAA;AAAA,MAEd;AAAA,IAAA;AAAA,IAEJ,KAAK,qBAA2B;AACtB,YAAA,EAAC,IAAA0I,GAAI,UAAA4F,EAAA,IAAYzC;AAChB,aAAA;AAAA,QACH,GAAGD;AAAA,QACH,MAAM,CAAC,GAAGP,GAAQ3C,GAAIkD,EAAM,IAAI,GAAGlD,CAAE;AAAA,QACrC,WAAW;AAAA,UACP,GAAGkD,EAAM;AAAA,UACT,CAAClD,CAAE,GAAG4F;AAAA,QAAA;AAAA,MAEd;AAAA,IAAA;AAAA,IAEJ;AACW,aAAA1C;AAAA,EAAA;AAEnB,GCpHa2C,KAAsBrC,GAAiC;AAAA,EAChE,OAAOR;AAAAA,EACP,UAAU,MAAM;AAAA,EAAA;AACpB,CAAC,GAEY8C,KAAyB,MAAMpC,GAAWmC,EAAmB,GCT7DE,KAA0B,MAAM;AACnC,QAAA,EAAC,UAAAlC,EAAQ,IAAIiC,GAAuB;AACnC,SAAAhH;AAAA,IACH,CAACkB,GAAQ1I,MAA6B;AAClC,MAAAuM,EAAS,EAAC,IAAA7D,GAAI,OAAA1I,GAAO,MAAMiJ,GAAQ,uBAAsB;AAAA,IAC7D;AAAA,IACA,CAACsD,CAAQ;AAAA,EACb;AACJ,GCXamC,KAAuB,CAAChG,MAAW;AACtC,QAAA,EAAC,OAAAkD,EAAK,IAAI4C,GAAuB;AAChC,SAAA5C,EAAM,MAAMlD,CAAE;AACzB,GCHaiG,KAA0B,CAACjG,MAAqC;AACnE,QAAA,EAAC,OAAAkD,EAAK,IAAI4C,GAAuB;AAChC,SAAA5C,EAAM,UAAUlD,CAAE;AAC7B,GCEM2D,KAAc,CAAW/F,MAAmD;AACxE,QAAA,EAAC,OAAAsF,EAAK,IAAI4C,GAAuB;AACvC,SAAOlI,EAASsF,CAAK;AACzB,GAEMgD,KAAqB,CAAC5O,MACjB,IAAI,OAAO,aAAaA,EAAM,OAAO;AAAA,EACxC,MAAMA,EAAM;AAAA,EACZ,MAAMA,EAAM;AAAA,EACZ,oBAAoBA,EAAM;AAAA,CAC7B,GAGQ6O,KAAuB,CAACnG,MAAe;AAC1C,QAAA,EAAC,UAAA6D,EAAQ,IAAIiC,GAAuB,GACpCF,IAAWK,GAAwBjG,CAAE,GACrCoG,IAAoBJ,GAAqBhG,CAAE,GAC3C5B,IAASuF;AAAAA,IAAY,CAACT,MACxBA,EAAM,KAAK,KAAK,CAAAmD,MAAkBA,MAAmBrG,CAAE;AAAA,EAC3D,GACM,CAACsG,GAAYC,CAAa,IAAI9H,EAAiC,GAE/DkG,IAAkB7F,EAAY,MAAM;AAC7B,IAAA+E,EAAA;AAAA,MACL,MAAMtD,GAAQ;AAAA,MACd,IAAAP;AAAA,IAAA,CACH;AAAA,EAAA,GACF,CAAC6D,GAAU7D,CAAE,CAAC;AAEjB,EAAAhC,EAAU,OACI4H,KAAA,QAAAA,EAAA,iBAAiB,SAASjB,IAC7B,MAAM;AACC,IAAAiB,KAAA,QAAAA,EAAA,oBAAoB,SAASjB;AAAA,EAC3C,IACD,CAACA,GAAiBiB,CAAQ,CAAC;AAExB,QAAAY,IAAmB1H,EAAY,MAAM;;AACjC,UAAA2H,KAAoB7H,IAAA,iCAAQ,iBAAR,gBAAAA,EAAsB;AAGhD,IAAIR,MACAwH,KAAA,QAAAA,EAAU,UAEVa,MAAsB,aACb5C,EAAA;AAAA,MACL,MAAMtD,GAAQ;AAAA,MACd,IAAAP;AAAA,MACA,UAAUkG,GAAmBE,CAAiB;AAAA,IAAA,CACjD,GACDG,EAAcE,CAAiB,KACxBA,MAAsB,YAC7B1E,IAAA,iCAAQ,iBAAR,QAAAA,EAAsB,oBAAoB,KAAK,CAAkB2E,MAAA;AAC7D,MAAAH,EAAcG,CAAc,GACxBA,MAAmB,aACV7C,EAAA;AAAA,QACL,MAAMtD,GAAQ;AAAA,QACd,IAAAP;AAAA,QACA,UAAUkG,GAAmBE,CAAiB;AAAA,MAAA,CACjD;AAAA,IACL,KAEGK,MAAsB,YAC7BF,EAAcE,CAAiB;AAAA,EACnC,GACD,CAAC5C,GAAU7D,GAAI4F,GAAUxH,GAAQgI,CAAiB,CAAC,GAEhDO,IAAoB7H,EAAY,MAAM;AACxC,IAAA8G,KAAA,QAAAA,EAAU,SACV/B,EAAS,EAAC,MAAMtD,GAAQ,oBAAoB,IAAAP,GAAG;AAAA,EAChD,GAAA,CAAC6D,GAAU7D,GAAI4F,CAAQ,CAAC;AAEpB,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUH,kBAAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,mBAAAG;AAAA;AAAA,IAEA,QAAAvI;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,YAAAkI;AAAA,EACJ;AACJ,GC7FaM,KAA0B,CAAC;AAAA,EACpC,IAAA5G;AAAA,EACA,OAAAd;AAAA,EACA,MAAAC;AAAA,EACA,MAAA0H;AAAA,EACA,oBAAAC;AAAA,EACA,UAAAxC,IAAW,MAAM;AAAA,EAAC;AAAA,EAClB,UAAAyC,IAAW,MAAM;AAAA,EAAA;AACrB,MAAM;AACF,QAAMC,IAAuBjB,GAAwB,GAC/C,EAAC,QAAA3H,GAAQ,YAAAkI,MAAcH,GAAqBnG,CAAE;AACpD,SAAAhC,EAAU,MAAM;AACZ,IAAAgJ,EAAqBhH,GAAI,EAAC,OAAAd,GAAO,MAAAC,GAAM,MAAA0H,GAAM,oBAAAC,GAAmB;AAAA,EAAA,GACjE,CAAC9G,GAAId,GAAOC,GAAM0H,GAAMC,GAAoBE,CAAoB,CAAC,GAEpEhJ,EAAU,MAAM;AACZ,IAAAsG,EAASlG,CAAM;AAAA,EAAA,GAChB,CAACA,GAAQkG,CAAQ,CAAC,GAErBtG,EAAU,MAAM;AACZ,IAAAsI,MAAe,YAAYS,EAAS;AAAA,EAAA,GACrC,CAACA,GAAUT,CAAU,CAAC,qBAEjBW,IAAS,EAAA;AACrB,GCjCaC,KAAuBnC,GAA2D;AAAA,EAC3F,SAASc;AAAA,EACT,SAASH;AAAA,EACT1C,cAAAA;AACJ,CAAC,GCAYmE,KAAoB,CAAC,EAAC,UAAA1G,QAAc;AAC7C,QAAMT,IAAKC,GAAM,GACX,CAACmH,GAAgBC,CAAiB,IAAI5I,EAAS,EAAK;AAC1D,SAAAuC,GAAoB,MAAM;AACtB,QAAI,CAACoG,GAAgB;AACX,YAAAvJ,IAAU,SAAS,cAAc,KAAK;AAC5C,MAAAA,EAAQ,KAAKmC,GACJ,SAAA,KAAK,YAAYnC,CAAO,GACjCwJ,EAAkB,EAAI;AAAA,IAAA;AAE1B,WAAO,MAAM;AACT,MAAAD,KAAkB,SAAS,eAAepH,CAAE,EAAG,OAAO;AAAA,IAC1D;AAAA,EAAA,GACD,CAACA,GAAIoH,CAAc,CAAC,GAEhBA,KAAkBE,GAAa7G,GAAU,SAAS,eAAeT,CAAE,GAAIA,CAAE;AACpF,GClBauH,KAAc,CAAC,EAAC,UAAA3J,GAAU,UAAA4J,GAAU,WAAAnJ,IAAY,SAAiB;AAC1E,QAAMoJ,IAAgBtQ,GAA0B;AAEhD,EAAA6G,EAAU,MAAM;AACZ,IAAAyJ,EAAc,UAAU7J;AAAA,EAAA,GACzB,CAACA,CAAQ,CAAC,GAEbI,EAAU,MAAM;AACR,QAAAgC;AAIA,WAAAwH,MAAa,QAAQnJ,MAChB2B,IAAA,YAJI,MAAM;;AACf,OAAApB,IAAA6I,EAAc,YAAd,QAAA7I,EAAA,KAAA6I;AAAA,IACJ,GAE2BD,CAAQ,IAE5B,MAAM;AACT,MAAAxH,KAAM,cAAcA,CAAE;AAAA,IAC1B;AAAA,EAAA,GACD,CAAC3B,GAAWmJ,CAAQ,CAAC;AAC5B;ACpBY,IAAAjH,uBAAAA,OACRA,EAAA,cAAc,eACdA,EAAA,aAAa,cAFLA,IAAAA,MAAA,CAAA,CAAA;AAcL,MAAMyC,KAAe;AAAA,EACxB,MAAM;AACV,GASa0E,KAAe,CAACxE,IAAQF,IAAcG,MAAoC;AACnF,UAAQA,EAAO,MAAM;AAAA,IACjB,KAAK,eAAqB;AAChB,YAAA,EAAC,IAAAnD,MAAMmD,GACPC,IAAWF,EAAM,SAASlD,IAAK,KAAKkD,EAAM;AACzC,aAAA;AAAA,QACH,GAAGA;AAAA,QACH,MAAME;AAAA,MACV;AAAA,IAAA;AAAA,IAEJ,KAAK,cAAoB;AACf,YAAA,EAAC,IAAApD,MAAMmD;AACN,aAAA;AAAA,QACH,GAAGD;AAAA,QACH,MAAMlD;AAAA,MACV;AAAA,IAAA;AAAA,IAEJ;AACW,aAAAkD;AAAA,EAAA;AAEnB,GC7CayE,KAAenE,GAAiC;AAAA,EACzD,OAAOR;AAAAA,EACP,UAAU,MAAM;AAAA,EAAA;AACpB,CAAC,GAEY4E,KAAkB,MAAMlE,GAAWiE,EAAY,GCNtDhE,KAAc,CAAC/F,MAAuD;AAClE,QAAA,EAAC,OAAAsF,EAAK,IAAI0E,GAAgB;AAChC,SAAOhK,EAASsF,CAAK;AACzB,GAEa2E,KAAgB,CAAC7H,MAAe;AACnC,QAAA,EAAC,UAAA6D,EAAQ,IAAI+D,GAAgB,GAC7BE,IAAYhJ,EAAY,MAAM;AACvB,IAAA+E,EAAA;AAAA,MACL,MAAMtD,GAAQ;AAAA,MACd,IAAAP;AAAA,IAAA,CACH;AAAA,EAAA,GACF,CAACA,GAAI6D,CAAQ,CAAC,GACXkE,IAAajJ,EAAY,MAAM;AACxB,IAAA+E,EAAA;AAAA,MACL,MAAMtD,GAAQ;AAAA,MACd,IAAAP;AAAA,IAAA,CACH;AAAA,EAAA,GACF,CAACA,GAAI6D,CAAQ,CAAC,GACXmE,IAAcrE,GAAY,CAACT,MAAsBA,EAAM,IAAI;AAE1D,SAAA;AAAA,IACH,WAAA4E;AAAA,IACA,YAAAC;AAAA,IACA,QAJW/H,MAAOgI;AAAA,EAKtB;AACJ;;;;;;;;;;;;;;GCkBaC,KAAQzH;AAAA,EACjB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,SAAAmI,IAAU,CAAC;AAAA,IACX,MAAMsI;AAAA,IACN,SAAAxH,IAAU;AAAA,IACV,OAAAxB;AAAA,IACA,MAAA2H;AAAA,IACA,UAAAvC,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,IAAAtE;AAAA,IACA,WAAAmI,IAAY;AAAA,IACZ,YAAA3D,IAAa;AAAA,IACb,GAAG7D;AAAA,KAEPyH,MACC;AACD,UAAM,EAAC,QAAAhK,GAAQ,YAAA2J,MAAcF,GAAc7H,CAAE,GACvC,EAAC,WAAWkF,EAAQ,IAAImD,EAAc,GACtC,EAAC,UAAAC,EAAQ,IAAIC,GAAa,GAC1B3Q,IAAOsQ,KAEP;AAAA,MACK,SAAmB9L;AAAA,MACnB,OAAiB5E;AAAA,MACjB,SAAmBwC;AAAA,MACnB,SAAmBF;AAAA,MACtB4G,CAAO;AACf,IAAA1C,EAAU,MAAM;AACZ,MAAAsG,EAASlG,CAAM;AAAA,IAAA,GAChB,CAACA,GAAQkG,CAAQ,CAAC;AACf,UAAAkE,IAAiB,OAAOL,KAAc,UACtCX,IAAWgB,IAAiBL,IAAY,MAAO;AACrD,IAAAZ,GAAY,EAAC,UAAUQ,GAAY,UAAAP,GAAU,WAAWgB,GAAe;AACjE,UAAA5H,IAAM5J,GAAeoR,CAAO;AAClC,WACK,gBAAAzQ,EAAAwP,IAAA,EACG,UAAC,gBAAAxP,EAAA8Q,IAAA,EAAsB,MAAMrK,GAAQ,SAASwC,GAC1C,UAAA,gBAAAjJ,EAACuN,KAAS,WAAWpN,GAAQ,UAAU,OAAOwQ,KAC1C,UAAA,gBAAA5I;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAGiB;AAAA,QACJ,WAAW9I;AAAA,UACPC,GAAQ;AAAA,UACR;AAAA,YACI,CAACA,GAAQ,OAAO,GAAG4I,MAAY;AAAA,YAC/B,CAAC5I,GAAQ,OAAO,GAAG4I,MAAY;AAAA,YAC/B,CAAC5I,GAAQ,KAAK,GAAG4I,MAAY;AAAA;AAAA,UACjC;AAAA,UACAjJ;AAAA,QACJ;AAAA,QACA,KAAAmJ;AAAA,QACA,UAAA;AAAA,UAAC,gBAAAlB,EAAA,OAAA,EAAI,WAAW5H,GAAQ,SACpB,UAAA;AAAA,YAAC,gBAAAH,EAAA,OAAA,EAAI,WAAWG,GAAQ,MACpB,4BAACF,GAAK,EAAA,WAAWE,GAAQ,KAAA,CAAM,EACnC,CAAA;AAAA,YACC,gBAAA4H,EAAA,OAAA,EAAI,WAAW5H,GAAQ,OACpB,UAAA;AAAA,cAAA,gBAAAH,EAAC,OAAI,EAAA,WAAWG,GAAQ,OAAQ,UAAMoH,GAAA;AAAA,cACrC2H,KAAS,gBAAAlP,EAAA,OAAA,EAAI,WAAWG,GAAQ,MAAO,UAAK+O,EAAA,CAAA;AAAA,YAAA,EACjD,CAAA;AAAA,UAAA,GACJ;AAAA,UACC,gBAAAnH,EAAA,UAAA,EAAO,WAAW5H,GAAQ,SACvB,UAAA;AAAA,YAAA,gBAAAH;AAAA,cAACgI;AAAA,cAAA;AAAA,gBACG,SAAAC;AAAA,gBACA,iBAAiB9H,GAAQ;AAAA,cAAA;AAAA,YAC7B;AAAA,YACC,gBAAAH,EAAA,OAAA,EAAwB,WAAWG,GAAQ,KACxC,UAAA,gBAAAH;AAAA,cAACsH;AAAA,cAAA;AAAA,gBACG,WAAWnH,GAAQ;AAAA,gBACnB,SAASiQ;AAAA,gBACT,MAAMzO;AAAA,gBACN,OAAOkL;AAAA,cAAA;AAAA,YAAA,KALL,GAAGxE,CAAE,QAOf;AAAA,UAAA,EACJ,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,EAER,CAAA,EACJ,CAAA,GACJ;AAAA,EAAA;AAGZ;AAEAiI,GAAM,cAAc;AC/Hb,MAAMS,KAAgB3D,GAA6C;AAAA,EACtE,SAAS4C;AAAA,EACT,SAASD;AAAA,EACT1E,cAAAA;AACJ,CAAC,GCFY2F,KAAa,CACtB/K,GACAgD,GACAxC,MACC;AACD,QAAMwK,IAAgB9J;AAAA,IAClB,CAACC,MAAmC;AAC5B,MAAAX,KAAUW,EAAM,QAAQ,YACfnB,EAAA;AAAA,IAEjB;AAAA,IACA,CAACA,GAAUQ,CAAM;AAAA,EACrB;AAEiB,EAAAV,GAAAD,GAAU,SAASmL,CAAa;AAEjD,QAAMC,IAAkB/J;AAAA,IACpB,CAACC,MAAgC;AAC7B,MAAIX,KAAU,CAACwC,EAAI,QAAS,SAAS7B,EAAM,MAAkB,KAChDnB,EAAA;AAAA,IAEjB;AAAA,IACA,CAACA,GAAUQ,GAAQwC,CAAG;AAAA,EAC1B;AAEiB,EAAAlD,GAAAD,GAAU,WAAWoL,CAAe;AACzD;;;;;;;AC3BY,IAAAtI,uBAAAA,OACRA,EAAA,eAAe,gBACfA,EAAA,cAAc,eAFNA,IAAAA,MAAA,CAAA,CAAA;AAcL,MAAMyC,KAAe;AAAA,EACxB,MAAM;AACV,GASa8F,KAAgB,CAAC5F,IAAQF,IAAcG,MAAsC;AACtF,UAAQA,EAAO,MAAM;AAAA,IACjB,KAAK,gBAAsB;AACjB,YAAA,EAAC,IAAAnD,MAAMmD,GACPC,IAAWpD,MAAOkD,EAAM,OAAO,SAAYA,EAAM;AAChD,aAAA;AAAA,QACH,GAAGA;AAAA,QACH,MAAME;AAAA,MACV;AAAA,IAAA;AAAA,IAEJ,KAAK,eAAqB;AAChB,YAAA,EAAC,IAAApD,MAAMmD;AACN,aAAA;AAAA,QACH,GAAGD;AAAA,QACH,MAAMlD;AAAA,MACV;AAAA,IAAA;AAAA,IAEJ;AACW,aAAAkD;AAAA,EAAA;AAEnB,GC7Ca6F,KAAgBvF,GAAiC;AAAA,EAC1D,OAAOR;AAAAA,EACP,UAAU,MAAM;AAAA,EAAA;AACpB,CAAC,GAEYgG,KAAmB,MAAMtF,GAAWqF,EAAa,GCNxDpF,KAAc,CAAC/F,MAAwD;AACnE,QAAA,EAAC,OAAAsF,EAAK,IAAI8F,GAAiB;AACjC,SAAOpL,EAASsF,CAAK;AACzB,GAEa+F,KAAiB,CAACjJ,MAAe;AACpC,QAAA,EAAC,UAAA6D,EAAQ,IAAImF,GAAiB,GAC9BE,IAAapK,EAAY,MAAM;AACxB,IAAA+E,EAAA;AAAA,MACL,MAAMtD,GAAQ;AAAA,MACd,IAAAP;AAAA,IAAA,CACH;AAAA,EAAA,GACF,CAACA,GAAI6D,CAAQ,CAAC,GACXsF,IAAcrK,EAAY,MAAM;AACzB,IAAA+E,EAAA;AAAA,MACL,MAAMtD,GAAQ;AAAA,MACd,IAAAP;AAAA,IAAA,CACH;AAAA,EAAA,GACF,CAACA,GAAI6D,CAAQ,CAAC,GACXuF,IAAezF,GAAY,CAACT,MAAuBA,EAAM,IAAI;AAE5D,SAAA;AAAA,IACH,YAAAgG;AAAA,IACA,aAAAC;AAAA,IACA,QAJWnJ,MAAOoJ;AAAA,EAKtB;AACJ,GCHaC,KAAS7I;AAAA,EAClB,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,WAAA6R,IAAY,QAAiB,IAAAtJ,GAAI,GAAGW,EAAW,GAAGyH,MAAY;AAC3E,UAAAxH,IAAM5J,GAAeoR,CAAO,GAC5B,EAAC,QAAAhK,GAAQ,aAAA+K,MAAeF,GAAejJ,CAAE,GAEzC,EAAC,UAAAsI,EAAQ,IAAIC,GAAa,GAC1B,EAAC,WAAAgB,EAAS,IAAIlB,EAAc,GAE5BnH,IAAa1B;AAAA,MACf,OACK;AAAA,QACI,MAAkBgK;AAAAA,QAClB,OAAmBC;AAAAA,SACrBH,CAAS;AAAA,MAChB,CAACA,CAAS;AAAA,IACd;AAEW,WAAAX,GAAAQ,GAAavI,GAAKxC,CAAM,GAG/B,gBAAAzG,EAACwP,MACG,UAAC,gBAAAxP,EAAAuJ,GAAA,EAAW,MAAM9C,GAAQ,SAASwC,GAC/B,UAAC,gBAAAjJ,EAAA4R,GAAA,EAAU,OAAOjB,EAAS,GAAG,WAAWxQ,GAAQ,UAC7C,4BAAC,OAAI,EAAA,WAAWA,GAAQ,UACpB,UAAA,gBAAAH;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAGgJ;AAAA,QACJ,WAAW9I;AAAA,UACPC,GAAQ;AAAA,UACR;AAAA,YACI,CAACA,GAAQ,IAAI,GAAGwR,MAAc;AAAA,YAC9B,CAACxR,GAAQ,KAAK,GAAGwR,MAAc;AAAA;AAAA,UACnC;AAAA,UACA7R;AAAA,QACJ;AAAA,QACA,KAAAmJ;AAAA,QACC,UAAAH;AAAA,MAAA;AAAA,IAAA,GAET,EACJ,CAAA,EACJ,CAAA,GACJ;AAAA,EAAA;AAGZ;AAEA4I,GAAO,cAAc;ACpEd,MAAMK,KAAiB3E,GAA+C;AAAA,EACzE,SAASgE;AAAA,EACT,SAASD;AAAA,EACT9F,cAAAA;AACJ,CAAC,GCRY2G,KAAsB,CAACC,MAChC,MAAMA,EAED,QAAQ,WAAA,mBAAA,GAAoB,GAAA,CAACC,MAAmB,IAAIA,EAAO,aAAa,EAAE,EAE1E,QAAQ,WAAA,eAAA,GAAA,GAAc,CAACC,MAAgB,IAAIA,CAAG,EAAE,EAChD,YAAa,CAAA,IAETC,KAAe,CAACjT,MAAqB;AAC9C,QAAMkT,IAAU,OAAO,QAAQlT,CAAK,EAAE,IAAI,CAAC,CAAC0O,GAAKyE,CAAK,MAAM,CAACN,GAAoBnE,CAAG,GAAGyE,CAAK,CAAC;AACtF,SAAA,OAAO,YAAYD,CAAO;AACrC;;GCOa9E,KAAsB,CAAC,EAAC,UAAAzE,GAAU,OAAOyJ,IAAYC,SAAgB;AACxE,QAAAC,IAAkB5K,EAAQ,MACrBuK,GAAa,EAAC,GAAGjT,GAAO,GAAGoT,GAAU,GAC7C,CAACA,CAAS,CAAC;AACd,2BACKG,IAAkB,EAAA,OAAOD,GAAiB,WAAWtS,GAAQ,UAC1D,UAAC,gBAAAH,EAAA0N,IAAA,EACG,4BAAC6B,IACG,EAAA,UAAA,gBAAAvP,EAAC+Q,MACG,UAAC,gBAAA/Q,EAAA+R,IAAA,EAAgB,UAAAjJ,GAAS,EAC9B,CAAA,EAAA,CACJ,GACJ,EACJ,CAAA;AAER,GC/Ba6J,KAAc,CACvBrT,GACAC,MACC;AACK,QAAAqT,IAAYpT,GAAwB,IAAI,GAExCqT,IAAgBtT,KAAsBqT;AAEU,EAAAnT,GAAAH,GAAU,MAAMuT,EAAc,SAAS;AAAA,IACzFA;AAAA,EAAA,CACH;AACL;ACfY,IAAAC,uBAAAA,OACRA,EAAA,KAAK,MACLA,EAAA,KAAK,MACLA,EAAA,KAAK,MACLA,EAAA,KAAK,MACLA,EAAA,KAAK,MALGA,IAAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;GCqBNC,KAAkB,CAACC,MACd,OAAO,YAAY,OAAO,QAAQA,CAAM,EAAE,OAAO,CAAC,CAACC,GAAGC,CAAC,MAAMA,MAAM,MAAS,CAAC,GAM3EC,KAAMtK;AAAA,EACf,CACI;AAAA,IACI,IAAAuK,IAAK;AAAA,IACL,UAAAtK;AAAA,IACA,WAAAhJ;AAAA,IACA,IAAAuT;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,GAAG9K;AAAA,KAEPC,MACC;AACD,UAAM,EAAC,WAAA2I,GAAW,KAAKmC,EAAA,IAAerD,EAAc;AACpD,IAAAiC,GAAY1J,GAAK8K,CAAW;AAC5B,UAAM5U,IAAQ0I;AAAA,MACV,MACIkL,GAAgB;AAAA,QACZ,CAACD,GAAM,EAAE,GAAGO,KAAM;AAAA,QAClB,CAACP,GAAM,EAAE,GAAGQ,KAAM;AAAA,QAClB,CAACR,GAAM,EAAE,GAAGS,KAAM;AAAA,QAClB,CAACT,GAAM,EAAE,GAAGU,KAAM;AAAA,QAClB,CAACV,GAAM,EAAE,GAAGW,KAAM;AAAA,QAClB,CAAC,SAASX,GAAM,EAAE,EAAE,GAAGY,KAAW;AAAA,QAClC,CAAC,SAASZ,GAAM,EAAE,EAAE,GAAGa,KAAW;AAAA,QAClC,CAAC,SAASb,GAAM,EAAE,EAAE,GAAGc,KAAW;AAAA,QAClC,CAAC,SAASd,GAAM,EAAE,EAAE,GAAGe,KAAW;AAAA,QAClC,CAAC,SAASf,GAAM,EAAE,EAAE,GAAGgB,KAAW;AAAA,MAAA,CACrC;AAAA,MACL,CAACT,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAASC,GAASC,GAASC,GAASC,CAAO;AAAA,IACpE;AAEI,WAAA,gBAAA9T;AAAA,MAAC4R;AAAA,MAAA;AAAA,QACI,GAAG5I;AAAA,QACJ,OAAA7J;AAAA,QACA,IAAAiU;AAAA,QACA,WAAWlT;AAAA,UACPC,GAAQ;AAAA,UACR;AAAA,YACI,CAACA,GAAQ,EAAE,GAAG,CAAC,CAACkT;AAAA,YAChB,CAAClT,GAAQ,EAAE,GAAG,CAAC,CAACmT;AAAA,YAChB,CAACnT,GAAQ,EAAE,GAAG,CAAC,CAACoT;AAAA,YAChB,CAACpT,GAAQ,EAAE,GAAG,CAAC,CAACqT;AAAA,YAChB,CAACrT,GAAQ,EAAE,GAAG,CAAC,CAACsT;AAAA,YAChB,CAACtT,GAAQ,UAAU,CAAC,GAAGkT,MAAO;AAAA,YAC9B,CAAClT,GAAQ,UAAU,CAAC,GAAGmT,MAAO;AAAA,YAC9B,CAACnT,GAAQ,UAAU,CAAC,GAAGoT,MAAO;AAAA,YAC9B,CAACpT,GAAQ,UAAU,CAAC,GAAGqT,MAAO;AAAA,YAC9B,CAACrT,GAAQ,UAAU,CAAC,GAAGsT,MAAO;AAAA,UAClC;AAAA,UACA3T;AAAA,QACJ;AAAA,QACC,UAAAgJ;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGZ;AAEAqK,GAAI,cAAc;AC5EX,MAAMa,KAAMnL;AAAA,EACf,CAAC,EAAC,WAAA/I,GAAW,UAAAgJ,GAAU,IAAAsK,IAAK,OAAO,GAAGpK,EAAW,GAAGC,MAAQ;AACxD,UAAM,EAAC,WAAA2I,GAAW,KAAKmC,EAAA,IAAerD,EAAc;AACpD,WAAAiC,GAAY1J,GAAK8K,CAAW,GAExB,gBAAA/T,EAAC4R,GAAW,EAAA,GAAG5I,GAAa,IAAAoK,GAAQ,WAAWlT,EAAWC,GAAQ,KAAKL,CAAS,GAC3E,UAAAgJ,EACL,CAAA;AAAA,EAAA;AAGZ;AAEAkL,GAAI,cAAc;ACLlB,MAAMC,KAAiB,CAACC,MAChBA,MAAc,UACP,SAEJ,GAAGA,CAAS,MAGVC,KAAOtL;AAAA,EAChB,CAAC,EAAC,OAAAuL,IAAQ,MAAM,WAAAtU,GAAW,IAAAsT,IAAK,OAAO,UAAAtK,GAAU,KAAAuL,IAAM,IAAI,MAAAC,IAAO,IAAI,GAAGtL,EAAA,GAAcC,MAAQ;AAC3F,UAAM,EAAC,WAAA2I,GAAW,KAAKmC,EAAA,IAAerD,EAAc;AACpD,IAAAiC,GAAY1J,GAAK8K,CAAW;AAC5B,UAAM5U,IAAQ0I;AAAA,MACV,OAAO,EAAC,mBAAmBoM,GAAeG,CAAK,GAAG,MAAAE,GAAM,KAAK,GAAGD,CAAG;MACnE,CAACD,GAAOC,GAAKC,CAAI;AAAA,IACrB;AAEI,WAAA,gBAAAtU;AAAA,MAAC4R;AAAA,MAAA;AAAA,QACI,GAAG5I;AAAA,QACJ,OAAA7J;AAAA,QACA,IAAAiU;AAAA,QACA,WAAWlT,EAAWC,GAAQ,MAAML,CAAS;AAAA,QAC5C,UAAAgJ;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGZ;AAEAqL,GAAK,cAAc;AC1CZ,MAAMI,KAAO1L;AAAA,EAChB,CACI,EAAC,OAAAuL,IAAQ,SAAS,WAAAtU,GAAW,IAAAsT,IAAK,OAAO,UAAAtK,GAAU,KAAAuL,IAAM,GAAG,MAAAC,IAAO,IAAI,GAAGtL,EAAA,GAC1EC,MAGI,gBAAAjJ;AAAA,IAACmU;AAAA,IAAA;AAAA,MACI,GAAGnL;AAAA,MACJ,OAAAoL;AAAA,MACA,KAAAnL;AAAA,MACA,WAAW/I,EAAWC,GAAQ,MAAML,CAAS;AAAA,MAC7C,IAAAsT;AAAA,MACA,KAAAiB;AAAA,MACA,MAAAC;AAAA,MACC,UAAAxL;AAAA,IAAA;AAAA,EACL;AAGZ;AAEAyL,GAAK,cAAc;ACbZ,MAAMC,KAAkB3L;AAAA,EAC3B,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,IAAAuT,IAAK,SAAS,IAAAC,GAAI,IAAAC,GAAI,IAAAC,GAAI,IAAAC,GAAI,GAAG1T,EAAA,GAAYkJ,MAE5D,gBAAAjJ;AAAA,IAACmT;AAAA,IAAA;AAAA,MACI,GAAGpT;AAAA,MACJ,IAAG;AAAA,MACH,KAAAkJ;AAAA,MACA,IAAAoK;AAAA,MACA,IAAAC;AAAA,MACA,IAAAC;AAAA,MACA,IAAAC;AAAA,MACA,IAAAC;AAAA,MACA,WAAWvT,EAAWC,GAAQ,MAAML,CAAS;AAAA,MAC5C,UAAAgJ;AAAA,IAAA;AAAA,EACL;AAGZ;AAEA0L,GAAK,cAAc;ACrBZ,MAAMC,KAAS5L;AAAA,EAClB,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGC,EAAA,GAAYkJ,MAE9B,gBAAAjJ,EAACgU,IAAK,EAAA,GAAGjU,GAAW,KAAAkJ,GAAU,WAAW/I,EAAWC,GAAQ,QAAQL,CAAS,GACxE,UAAAgJ,EACL,CAAA;AAGZ;AAEA2L,GAAO,cAAc;ACRd,MAAMC,KAAU7L;AAAA,EACnB,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,IAAAuT,GAAI,IAAAC,GAAI,IAAAC,GAAI,IAAAC,GAAI,IAAAC,GAAI,GAAG1T,EAAS,GAAGkJ,MAElD,gBAAAjJ;AAAA,IAACmT;AAAA,IAAA;AAAA,MACI,GAAGpT;AAAA,MACJ,IAAG;AAAA,MACH,IAAAsT;AAAA,MACA,IAAAC;AAAA,MACA,IAAAC;AAAA,MACA,IAAAC;AAAA,MACA,IAAAC;AAAA,MACA,KAAAxK;AAAA,MACA,WAAW/I,EAAWC,GAAQ,OAAOL,CAAS;AAAA,MAC7C,UAAAgJ;AAAA,IAAA;AAAA,EACL;AAGZ;AAEA4L,GAAQ,cAAc;ACnBf,MAAMC,KAAoB9L;AAAA,EAC7B,CAAC,EAAC,UAAAC,GAAU,QAAA8L,IAAS,IAAO,WAAA9U,GAAW,GAAGC,EAAS,GAAGkJ,MAE9C,gBAAAjJ;AAAA,IAACgU;AAAA,IAAA;AAAA,MACI,GAAGjU;AAAA,MACJ,IAAG;AAAA,MACH,KAAAkJ;AAAA,MACA,WAAW/I,EAAWC,GAAQ,QAAQ,EAAC,CAACA,GAAQ,MAAM,GAAGyU,EAAM,GAAG9U,CAAS;AAAA,MAC1E,UAAAgJ;AAAA,IAAA;AAAA,EACL;AAGZ;AAEA6L,GAAO,cAAc;AChBd,MAAME,KAAUhM;AAAA,EACnB,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGC,EAAA,GAAYkJ,MAE9B,gBAAAjJ,EAACgU,IAAK,EAAA,GAAGjU,GAAW,KAAAkJ,GAAU,WAAW/I,EAAWC,GAAQ,SAASL,CAAS,GACzE,UAAAgJ,EACL,CAAA;AAGZ;AAEA+L,GAAQ,cAAc;;;;;;;;;;;;;;GCOTC,KAASjM;AAAA,EAClB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,SAAApB;AAAA,IACA,MAAAD,IAAO;AAAA,IACP,UAAAE;AAAA,IACA,SAAAoB,IAAU;AAAA,IACV,WAAAjJ;AAAA,IACA,QAAQiV;AAAA,IACR,QAAQC;AAAA,IACR,MAAAC,IAAO;AAAA,IACP,GAAGjM;AAAA,KAEPC,MAGI,gBAAAlB;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGiB;AAAA,MACJ,KAAAC;AAAA,MACA,SAAAvB;AAAA,MACA,MAAAD;AAAA,MACA,WAAWvH,EAAWC,GAAQ,QAAQA,GAAQ4I,CAAO,GAAG5I,GAAQ8U,CAAI,GAAGnV,CAAS;AAAA,MAChF,UAAA6H;AAAA,MACC,UAAA;AAAA,QAAAoN,KAAW,gBAAA/U,EAAA+U,GAAA,EAAO,WAAW5U,GAAQ,MAAM;AAAA,QAC3C,gBAAAH,EAAA,OAAA,EAAI,WAAWG,GAAQ,SAAU,UAAA2I,GAAS;AAAA,QAC1CkM,KAAU,gBAAAhV,EAACgV,GAAO,EAAA,WAAW7U,GAAQ,KAAM,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAChD;AAGZ;AAEA2U,GAAO,cAAc;ACzDT,IAAAlM,uBAAAA,OACRA,EAAA,oBAAoB,qBADZA,IAAAA,MAAA,CAAA,CAAA;AAUL,MAAMyC,KAAe;AAAA,EACxB,UAAU;AACd,GAQa6J,KAAc,CAAC3J,IAAQF,IAAcG,MAAkC;AAChF,UAAQA,EAAO,MAAM;AAAA,IACjB,KAAK;AACM,aAAA;AAAA,QACH,GAAGD;AAAA,QACH,UAAUC,EAAO;AAAA,MACrB;AAAA,IAEJ;AACW,aAAAD;AAAA,EAAA;AAEnB,GC/Ba4J,KAActJ,GAAkE;AAAA,EACzF,OAAOR;AAAA,EACP,UAAU,MAAM;AAAA,EAAA;AACpB,CAAC,GCHY+J,KAAmB,CAC5BC,MACC;AACK,QAAA,EAAC,UAAA9H,MAAY4H,IACbG,IAAezM,EAAoC,CAAClJ,GAAOsJ,MAAQ;AACrE,UAAM,CAACsC,GAAOW,CAAQ,IAAIsB,GAAW0H,IAAa7J,EAAY,GACxDoC,IAAgB5F,EAAQ,OAAO,EAAC,OAAA0D,GAAO,UAAAW,MAAY,CAACX,CAAK,CAAC;AAE5D,WAAA,gBAAAvL,EAACuN,KAAS,OAAOE,GACb,4BAAC4H,GAAW,EAAA,GAAI1V,GAAkB,KAAAsJ,EAAA,CAAU,EAChD,CAAA;AAAA,EAAA,CAEP;AACD,SAAAqM,EAAa,cAAc,gBACpBA;AACX;;GChBaC,KAAiB,MAAM;AAChC,QAAM,EAAC,UAAArJ,EAAA,IAAYH,GAAWoJ,EAAW,GACnCK,IAAiBrO,EAAY,MAAM;AAC5B,IAAA+E,EAAA;AAAA,MACL,MAAMtD,GAAQ;AAAA,MACd,UAAU;AAAA,IAAA,CACb;AAAA,EAAA,GACF,CAACsD,CAAQ,CAAC,GACPuJ,IAActO,EAAY,MAAM;AACzB,IAAA+E,EAAA;AAAA,MACL,MAAMtD,GAAQ;AAAA,MACd,UAAU;AAAA,IAAA,CACb;AAAA,EAAA,GACF,CAACsD,CAAQ,CAAC;AAEN,SAAA;AAAA,IACH,gBAAAsJ;AAAA,IACA,aAAAC;AAAA,EACJ;AACJ,GAEaC,KAAmB,MAAM;AAClC,QAAM,EAAC,OAAAnK,EAAA,IAASQ,GAAWoJ,EAAW;AAG/B,SAAA;AAAA,IACH,UAHa5J,EAAM;AAAA,EAIvB;AACJ,GCuBMoK,KAAO9M;AAAA,EACT,CACI;AAAA,IACI,WAAA/I;AAAA,IACA,UAAAgJ;AAAA,IACA,UAAA8M,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,UAAAC,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,GAAG/M;AAAA,KAEPC,MACC;AACD,UAAM,EAAC,gBAAAuM,GAAgB,aAAAC,EAAW,IAAIF,GAAe,GAC/CS,IAAe7O,EAAY,CAAC8O,MAA+C;AACvE,YAAAC,IAAO,IAAI,SAASD,CAAW,GAC/BE,IAAuB,CAAC;AAC9B,iBAAW,CAACtI,GAAKyE,CAAK,KAAK4D,EAAK;AAC5B,QAAAC,EAAUtI,CAAG,IAAIyE;AAEd,aAAA6D;AAAA,IACX,GAAG,EAAE,GACCC,IAAejP;AAAA,MACjB,CAACC,MAAwD;AACrD,QAAAA,EAAM,eAAe;AACrB,cAAMiP,IAAOjP,EAAM,eAGb+O,IAAYH,EAAaK,CAAI;AACnC,QAAAT,EAASxO,GAAO+O,CAAS;AAAA,MAC7B;AAAA,MACA,CAACH,GAAcJ,CAAQ;AAAA,IAC3B,GAEMU,IAAcnP;AAAA,MAChB,CAACC,MAAyC;AAC1B,QAAAqO,EAAA;AACN,cAAAU,IAAYH,EAAa5O,EAAM,aAAa;AAClD,QAAA2O,EAAU3O,GAAO+O,CAAS;AAAA,MAC9B;AAAA,MACA,CAACH,GAAcP,GAAaM,CAAS;AAAA,IACzC,GAEMQ,IAAcpP;AAAA,MAChB,CAACC,MAAwC;AAC/B,cAAA+O,IAAYH,EAAa5O,EAAM,aAAa;AACnC,QAAAoO,EAAA,GACfK,EAAQzO,GAAO+O,CAAS;AAAA,MAC5B;AAAA,MACA,CAACH,GAAcH,GAASL,CAAc;AAAA,IAC1C,GAEM,EAAC,UAAAgB,EAAQ,IAAId,GAAiB,GAC9Be,IAAetP;AAAA,MACjB,CAACC,MAAwC;AACrC,QAAAoP,KAAYf,EAAY;AAClB,cAAAU,IAAYH,EAAa5O,EAAM,aAAa;AAClD,QAAA0O,EAAS1O,GAAO+O,CAAS;AAAA,MAC7B;AAAA,MACA,CAACH,GAAcF,GAAUL,GAAae,CAAQ;AAAA,IAClD,GAEMjX,IAAWF,GAAgC4J,CAAG;AAEhD,WAAA,gBAAAjJ;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAGgJ;AAAA,QACJ,WAAW;AAAA,QACX,UAAUoN;AAAA,QACV,WAAWE;AAAA,QACX,SAASC;AAAA,QACT,UAAUE;AAAA,QACV,KAAKlX;AAAA,QACL,WAAWW,EAAWC,GAAQ,MAAML,CAAS;AAAA,QAC5C,UAAAgJ;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGZ;AAEA6M,GAAK,cAAc;AAIb,MAAAe,KAActB,GAAiBO,EAAI,GCxI5BgB,KAAgB,CAACtO,MAAgB;AAC1C,QAAMuO,IAAWtO,GAAM;AACvB,SAAOD,KAAUuO;AACrB;;;;;GCiBaC,KAAYhO;AAAA,EACrB,CAAC,EAAC,WAAA/I,GAAW,UAAAgJ,GAAU,OAAAgO,GAAO,MAAAC,GAAM,UAAAC,GAAU,GAAGhO,EAAW,GAAGC,MAAQ;AACnE,UAAMgO,IAAaC,GAAS,KAAKpO,CAAQ,EAAE,OACrCT,IAAKsO,GAAcM,EAAW,EAAE,GAChCE,IAAS,GAAG9O,CAAE,SACd+O,IAAoBvP;AAAA,MACtB,MACIwP,GAAaH,GAAS,KAAKpO,CAAQ,GAAG;AAAA,QAClC,IAAAT;AAAA,QACA,GAAI0O,KAAQ,EAAC,oBAAoBI,EAAM;AAAA,MAAA,CAC1C;AAAA,MACL,CAACrO,GAAUiO,GAAMI,GAAQ9O,CAAE;AAAA,IAC/B;AAEI,WAAA,gBAAAN,EAAC,OAAK,EAAA,GAAGiB,GAAa,KAAAC,GAAU,WAAW/I,EAAWC,GAAQ,SAASL,CAAS,GAC5E,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,WAAWE,EAAWC,GAAQ,OAAO;AAAA,YACjC,CAACA,GAAQ,QAAQ,GAAG8W,EAAW,YAAYD;AAAA,UAAA,CAC9C;AAAA,UACD,SAAS3O;AAAA,UACR,UAAAyO;AAAA,QAAA;AAAA,MACL;AAAA,MACCM;AAAA,MACAL,uBACI,OAAI,EAAA,WAAW5W,GAAQ,MAAM,IAAIgX,GAC7B,UACLJ,EAAA,CAAA;AAAA,IAAA,GAER;AAAA,EAAA;AAGZ;AAEAF,GAAU,cAAc;ACtDZ,IAAAS,sBAAAA,OACRA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SACRA,EAAA,aAAa,cACbA,EAAA,WAAW,YAJHA,IAAAA,KAAA,CAAA,CAAA;ACAC,MAAAC,KAAgC,CAACtE,MAA2B,ICK5DuE,KAAqB,CAACC,MAA2C;AACpE,QAAA,EAAC,UAAAjB,EAAQ,IAAId,GAAiB;AACpC,EAAArP,EAAU,MAAM;AACA,IAAAmQ,KAAAiB,EAAYH,EAAgB,QAAQ;AAAA,EAAA,GACjD,CAACd,GAAUiB,CAAW,CAAC;AAC9B,GCVazB,KAAe,CAACC,MAAwC;AACjE,QAAMC,IAAOD,KAAe,IAAI,SAASA,CAAW,GAC9CE,IAAuB,CAAC;AAC9B,MAAID;AACA,eAAW,CAACrI,GAAKyE,CAAK,KAAK4D,EAAK;AAC5B,MAAAC,EAAUtI,CAAG,IAAIyE;AAGlB,SAAA6D;AACX,GCCMuB,KAAW,CACbtQ,GACAuQ,MAEOA,MAAS,gBACTvQ,EAAM,OAAoB,UAC1BA,EAAM,OAAoB,OAG/BwQ,KAAiB,CAA8D;AAAA,EACjF,aAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,aAAAL;AACJ,MAIM;AACF,QAAMM,IAAsB5Q;AAAA,IACxB,CAACwQ,GAAiBvQ,MAAkB;AAC1B,YAAAkL,IAAQoF,GAAStQ,GAAOuQ,CAAI,GAC5BxB,IAAYH,GAAc5O,EAAM,OAAqB,IAAI,GACzD4Q,IAAkBH,KAAA,gBAAAA;AAAA,QACpBvF;AAAA,QACClL,EAAM,OAAoB;AAAA,QAC3B+O;AAAA;AAEH,MAAA/O,EAAM,OAAoB,kBAAkB4Q,CAAyB,GACtEF,EAAe1Q,CAAK;AAAA,IACxB;AAAA,IACA,CAACyQ,GAAaC,CAAc;AAAA,EAChC,GAEMG,IAA0B9Q,EAAY,MAAM;AAAA,EAAC,GAAG,EAAE,GAGlD+Q,IAAqB/Q,EAAYgR,GAAuBN,GAAc,GAAI,GAAG;AAAA,IAC/EA;AAAA,EAAA,CACH,GAEKO,IAAuBjR;AAAA,IACzB,OAAOwQ,GAAiBvQ,MAAkB;AACrC,MAAAA,EAAM,OAAoB,kBAAkB,EAAE;AACzC,YAAAkL,IAAQoF,GAAStQ,GAAOuQ,CAAI,GAC5BxB,IAAYH,GAAc5O,EAAM,OAAqB,IAAI;AAC/D,MAAAqQ,EAAYH,EAAgB,UAAU;AACtC,UAAIU,IAAkB;AAClB,UAAA;AACA,QAAAA,IAAkB,MAAME;AAAA,UACpB5F;AAAA,UACClL,EAAM,OAAoB;AAAA,UAC3B+O;AAAA,QACJ;AAAA,eACKkC,GAAO;AACX,QAAAjR,EAAM,OAAoB,kBAAkBiR,CAAe;AAAA,MAAA;AAE/D,MAAAjR,EAAM,OAAoB,kBAAkB4Q,CAAe,GAC5DF,EAAe1Q,CAAK;AAAA,IACxB;AAAA,IACA,CAACqQ,GAAaS,GAAoBJ,CAAc;AAAA,EACpD;AAEO,SAAA,EAAC,qBAAAC,GAAqB,sBAAAK,GAAsB,yBAAAH,EAAuB;AAC9E,GAEMK,KAAoB,CAACC,MACnB,OAAOA,KAAe,aACfA,IAEJhB,IASLiB,KAAU,CAACD,OACTA,KAAA,gBAAAA,EAAY,YAAY,UAAS,kBAC1B,UACA,OAAOA,KAAe,WACtB,aAGJ,QAGEE,KAAgB,CAA8D;AAAA,EACvF,YAAAF;AAAA,EACA,eAAAG;AACJ,MAAkD;AACxC,QAAAb,IAAcS,GAAkBC,CAAU,GAC1CZ,IAAOa,GAAQD,CAAU,GAEzB,CAACI,GAAUlB,CAAW,IAAI3Q;AAAA,IAC5BwQ,EAAgB;AAAA,EACpB;AAEA,EAAAE,GAAmBC,CAAW;AAE9B,QAAMK,IAAiB3Q;AAAA,IACnB,CAACC,MAAkB;AACT,YAAAwR,IAAWxR,EAAM,OAAoB,eAAe,GACpDyR,IAAaH,IAAgBpB,EAAgB,QAAQA,EAAgB,UACrEwB,IAAsBF,IAAUC,IAAavB,EAAgB;AAKnE,OAACoB,KAAiBC,MAAarB,EAAgB,UAC3CG,EAAYqB,CAAmB;AAAA,IACvC;AAAA,IACA,CAACJ,GAAeC,CAAQ;AAAA,EAC5B,GAEM,EAAC,sBAAAP,GAAsB,qBAAAL,GAAqB,yBAAAE,EAAA,IAA2BL,GAAe;AAAA,IACxF,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAL;AAAA,EAAA,CACH,GAEKsB,IAAsB5R;AAAA,IACxB,CAACC,MAAkB;AACf,cAAQuQ,GAAM;AAAA,QACV,KAAK;AACM,iBAAAI,EAAoB,eAAe3Q,CAAK;AAAA,QAEnD,KAAK;AACM,iBAAAgR,EAAqB,eAAehR,CAAK;AAAA,QAEpD,KAAK;AACD,iBAAO6Q,EAAwB;AAAA,MACnC;AAAA,IAER;AAAA,IACA,CAACG,GAAsBH,GAAyBF,GAAqBJ,CAAI;AAAA,EAC7E,GAEMqB,IAAkB7R;AAAA,IACpB,CAACC,MAAkB;AACf,cAAQuQ,GAAM;AAAA,QACV,KAAK;AACM,iBAAAI,EAAoB,WAAW3Q,CAAK;AAAA,QAE/C,KAAK;AACM,iBAAAgR,EAAqB,WAAWhR,CAAK;AAAA,QAEhD,KAAK;AACD,iBAAO6Q,EAAwB;AAAA,MACnC;AAAA,IAER;AAAA,IACA,CAACN,GAAMI,GAAqBK,GAAsBH,CAAuB;AAAA,EAC7E;AAEA,SAAO,EAAC,qBAAAc,GAAqB,iBAAAC,GAAiB,UAAAL,GAAU,aAAAlB,EAAW;AACvE,GCtKMwB,KAAc,IAAI,MAAM,UAAU,EAAC,SAAS,IAAM,GAE3CC,KAA4B,CACrCC,GACAC,GACA1S,MACC;AACD,EAAAL,EAAU,MAAM;AACZ,QAAIK,GAAW;AACX,YAAM2S,IAAeF,KAAA,gBAAAA,EAAU,SACzBlD,IAAcoD,KAAA,gBAAAA,EAAc,MAC5BC,IAAkB,MAAM;AACV,QAAAD,MAAAA,KAAA,QAAAA,EAAc,cAAcJ,MAC5CI,KAAgBD,EAAcH,EAAmC;AAAA,MACrE;AACe,aAAAhD,KAAAA,EAAY,iBAAiB,UAAUqD,CAAe,GAC9D,MAAM;AACM,QAAArD,KAAAA,EAAY,oBAAoB,UAAUqD,CAAe;AAAA,MAC5E;AAAA,IAAA;AAAA,EAEL,GAAA,CAACH,GAAUzS,GAAW0S,CAAa,CAAC;AAC3C,GCNaG,KAAwB,CAAC,EAAC,YAAAhB,GAAY,UAAAY,GAAU,aAAA1B,GAAa,cAAA+B,QAAyB;AAC/F,EAAAnT,EAAU,MAAM;;AACR,QAAA,OAAOkS,KAAe;AAEtB,cADAd,EAAYc,CAAU,GACdA,GAAY;AAAA,QAChB,KAAK,SAAS;AACD,WAAAtR,IAAAkS,EAAA,YAAA,QAAAlS,EAAS,kBAAkB;AACpC;AAAA,QAAA;AAAA,QAEJ,KAAK,SAAS;AACV,WAAAmD,IAAA+O,EAAS,YAAT,QAAA/O,EAAkB,kBAAkBoP,KAAgBlC,EAAgB;AACpE;AAAA,QAAA;AAAA,QAEJ,KAAK,cAAc;AACf,WAAAjN,IAAA8O,EAAS,YAAT,QAAA9O,EAAkB,kBAAkBmP,KAAgBlC,EAAgB;AACpE;AAAA,QAAA;AAAA,QAEJ;AACa,WAAAhN,IAAA6O,EAAA,YAAA,QAAA7O,EAAS,kBAAkB;AAAA,MACxC;AAAA,KAGT,CAACkP,GAAcL,GAAU1B,GAAac,CAAU,CAAC;AACxD,GCnCakB,KAAoB,CAACd,OACvB;AAAA,EACH,CAACrB,EAAgB,KAAK,GAAG3S;AAAA,EACzB,CAAC2S,EAAgB,KAAK,GAAGjX;AAAA,EACzB,CAACiX,EAAgB,UAAU,GAAG9W;AAAA,EAC9B,CAAC8W,EAAgB,QAAQ,GAAG,wBAAOhI,IAAS,CAAA,CAAA;GAC9CqJ,CAAS;;;;;;;GCwBFe,KAAgB7Q;AAAA,EACzB,CACI;AAAA,IACI,WAAA/I;AAAA,IACA,UAAA6H;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,SAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,IAAIC;AAAA,IACJ,OAAAnD;AAAA,IACA,UAAAE;AAAA,IACA,wBAAAkD;AAAA,IACA,YAAA3B;AAAA,IACA,cAAAiB;AAAA,IACA,eAAAW,IAAgB;AAAA,IAChB,GAAGnR;AAAA,KAEPC,MACC;AACK,UAAAZ,IAAKsO,GAAcsD,CAAM,GAEzBvB,IAAgB,EAAQH,KAAe,EAAQvB,GAE/C,EAAC,qBAAA+B,GAAqB,UAAAJ,GAAU,aAAAlB,EAAA,IAAegB,GAAc;AAAA,MAC/D,YAAAF;AAAA,MACA,eAAAG;AAAA,IAAA,CACH,GAEKS,IAAW9Z,GAAe4J,CAAG;AACT,IAAAiQ,GAAAC,GAAUJ,GAAqBmB,CAAsB,GAE/EX,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW;AAEjE,UAAA6B,IAAiBX,GAAkBd,CAAQ,GAE3ClC,IAAetP;AAAA,MACjB,CAACC,MAAyC;AACtC,QAAA0O,EAAS1O,CAAK;AAAA,MAClB;AAAA,MACA,CAAC0O,CAAQ;AAAA,IACb,GAEMuE,IAAgBlT,EAAY,MAAM;AACpC,MAAAsQ,EAAYH,EAAgB,KAAK;AAAA,IAAA,GAClC,CAACG,CAAW,CAAC;AAEhB,WAAApR,EAAU,MAAM;AACZ,MAAI8S,EAAS,YACTA,EAAS,QAAQ,gBAAgBgB;AAAA,IACrC,GACD,CAACA,GAAehB,CAAQ,CAAC,qBAGvB,OAAI,EAAA,WAAWjZ,EAAWC,GAAQ,SAASL,CAAS,GACjD,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAGgJ;AAAA,UACJ,WAAW9I,EAAWC,GAAQ,OAAO,EAAC,CAACA,GAAQ,aAAa,GAAGga,GAAc;AAAA,UAC7E,KAAKhB;AAAA,UACL,UAAAxR;AAAA,UACA,MAAK;AAAA,UACL,IAAAU;AAAA,UACA,OAAAiK;AAAA,UACA,SAAAyH;AAAA,UACA,gBAAAC;AAAA,UACA,UAAUvD;AAAA,UACV,QAAAmD;AAAA,UACA,SAAAD;AAAA,UACA,SAAAG;AAAA,UACA,WAAAD;AAAA,UACA,SAASd;AAAA,UACT,WAAWsB;AAAA,UACX,UAAArD;AAAA,QAAA;AAAA,MACJ;AAAA,MACCF,KACG,gBAAA9W;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,WAAWE,EAAWC,GAAQ,OAAO,EAAC,CAACA,GAAQ,QAAQ,GAAG6W,GAAS;AAAA,UACnE,SAAS3O;AAAA,UACR,UAAAyO;AAAA,QAAA;AAAA,MACL;AAAA,MAEH6B,KAAY,gBAAA3Y,EAACoa,GAAe,EAAA,WAAWja,GAAQ,KAAM,CAAA;AAAA,IAAA,GAC1D;AAAA,EAAA;AAGZ;AAEAuZ,GAAc,cAAc;;;;;;;GC7EfY,KAAazR;AAAA,EACtB,CAAC,EAAC,WAAA/I,GAAW,IAAAuI,GAAI,OAAAyO,GAAO,UAAAhO,GAAU,MAAAyR,GAAM,UAAA5S,GAAU,MAAAoP,GAAM,UAAAC,GAAU,GAAGhO,EAAA,GAAcC,MAAQ;AACjF,UAAAmO,IAAoBvP,EAAQ,MACvBqP,GAAS,IAAIpO,GAAU,CAAW5C,MAAA;AACjC,UAAAsU,GAAetU,CAAO,GAAG;AACnB,cAAAuU,IAAY,EAAC,MAAAF,EAAI;AAEvB,eAAI5S,MAAa,UAAa,OAAOzB,EAAQ,MAAM,YAAa,cAC5DuU,EAAU,WAAW9S,IAErBqP,MAAa,UAAa,OAAO9Q,EAAQ,MAAM,YAAa,cAC5DuU,EAAU,WAAWzD,IAElBK,GAAyBnR,GAASuU,CAAS;AAAA,MAAA;AAE/C,aAAAvU;AAAA,IAAA,CACV,GACF,CAAC4C,GAAUnB,GAAU4S,GAAMvD,CAAQ,CAAC;AAEnC,WAAA,gBAAAjP;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAGiB;AAAA,QACJ,WAAW9I,EAAWC,GAAQ,SAASL,CAAS;AAAA,QAChD,UAAA6H;AAAA,QACA,IAAAU;AAAA,QACA,KAAAY;AAAA,QACA,UAAA;AAAA,UAAA,gBAAAjJ,EAAC,UAAO,EAAA,WAAWE,EAAWC,GAAQ,QAAQ,EAAC,CAACA,GAAQ,QAAQ,GAAGwH,EAAQ,CAAC,GACvE,UACLmP,EAAA,CAAA;AAAA,UACC,gBAAA9W,EAAA,OAAA,EAAI,WAAWG,GAAQ,QAAS,UAAkBiX,GAAA;AAAA,UAClDL,KAAS,gBAAA/W,EAAA,OAAA,EAAI,WAAWG,GAAQ,MAAO,UAAK4W,EAAA,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACjD;AAAA,EAAA;AAGZ;AAEAuD,GAAW,cAAc;;;;;;GC/DZI,KAAa7R;AAAA,EACtB,CACI;AAAA,IACI,WAAA/I;AAAA,IACA,UAAA6H;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,SAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,IAAIC;AAAA,IACJ,OAAAnD;AAAA,IACA,UAAAE;AAAA,IACA,GAAGhO;AAAA,KAEPC,MACC;AACK,UAAAZ,IAAKsO,GAAcsD,CAAM,GAEzBxD,IAAetP;AAAA,MACjB,CAACC,MAAyC;AACtC,QAAA0O,EAAS1O,CAAK;AAAA,MAClB;AAAA,MACA,CAAC0O,CAAQ;AAAA,IACb;AACA,6BACK,OAAI,EAAA,WAAW5V,EAAWC,GAAQ,SAASL,CAAS,GACjD,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAGgJ;AAAA,UACJ,WAAW7I,GAAQ;AAAA,UACnB,KAAA8I;AAAA,UACA,UAAAtB;AAAA,UACA,MAAK;AAAA,UACL,IAAAU;AAAA,UACA,OAAAiK;AAAA,UACA,SAAAyH;AAAA,UACA,gBAAAC;AAAA,UACA,UAAUvD;AAAA,UACV,QAAAmD;AAAA,UACA,SAAAD;AAAA,UACA,SAAAG;AAAA,UACA,WAAAD;AAAA,UACA,UAAA7C;AAAA,QAAA;AAAA,MACJ;AAAA,MACCF,KACG,gBAAA9W;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,WAAWE,EAAWC,GAAQ,OAAO,EAAC,CAACA,GAAQ,QAAQ,GAAG6W,GAAS;AAAA,UACnE,SAAS3O;AAAA,UACR,UAAAyO;AAAA,QAAA;AAAA,MAAA;AAAA,IACL,GAER;AAAA,EAAA;AAGZ;AAEA4D,GAAW,cAAc;;;;;GCxCZC,KAAY9R;AAAA,EACrB,CACI;AAAA,IACI,QAAQkM;AAAA,IACR,WAAAjV;AAAA,IACA,MAAA2H,IAAO;AAAA,IACP,aAAAmT,IAAc;AAAA,IACd,UAAAjT;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,cAAAe;AAAA,IACA,UAAAC;AAAA,IACA,MAAA7F,IAAO;AAAA,IACP,IAAA5M;AAAA,IACA,UAAA2O;AAAA,IACA,wBAAAkD;AAAA,IACA,cAAAV,IAAelC,EAAgB;AAAA,IAC/B,YAAAiB;AAAA,IACA,GAAGvP;AAAA,KAEPC,MACC;AACK,UAAAkQ,IAAW9Z,GAAe4J,CAAG,GAE7ByP,IACF,EAAQH,KACR,EAAQvB,KACR,OAAOhO,EAAY,aAAc,YACjC,OAAOA,EAAY,aAAc,YACjC,OAAOA,EAAY,WAAY,UAE7B,EAAC,iBAAAgQ,GAAiB,UAAAL,GAAU,aAAAlB,EAAA,IAAegB,GAAc;AAAA,MAC3D,YAAAF;AAAA,MACA,eAAAG;AAAA,IAAA,CACH;AAED,IAAAa,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW,GAE7CW,GAAAC,GAAUH,GAAiBkB,CAAsB;AAE3E,UAAME,IAAiB;AAAA,MACnB,CAAC9C,EAAgB,KAAK,GAAG3S;AAAA,MACzB,CAAC2S,EAAgB,KAAK,GAAGjX;AAAA,MACzB,CAACiX,EAAgB,UAAU,GAAG9W;AAAA,MAC9B,CAAC8W,EAAgB,QAAQ,GAAGhI;AAAA,MAC9BqJ,CAAS,GAELlC,IAAetP;AAAA,MACjB,CAACC,MAAyC;AACtC,QAAA0O,EAAS1O,CAAK;AAAA,MAClB;AAAA,MACA,CAAC0O,CAAQ;AAAA,IACb,GAEMuE,IAAgBlT,EAAY,MAAM;AACxB,MAAA6P,KAAAS,EAAYH,EAAgB,KAAK;AAAA,IAAA,GAC9C,CAACN,GAAUS,CAAW,CAAC,GAEpBsD,IAAe5T;AAAA,MACjB,CAACC,MAAyC;AAC1B,QAAA0T,KAAA1T,EAAM,OAAO,OAAO;AAAA,MACpC;AAAA,MACA,CAAC0T,CAAQ;AAAA,IACb,GAEME,IAAUrE,GAActO,CAAE;AAEhC,6BACK,OAAI,EAAA,WAAWnI,EAAWC,GAAQ,SAASL,CAAS,GAChD,UAAA;AAAA,MACGiV,KAAA,gBAAA/U,EAAC,WAAM,WAAWG,GAAQ,QAAQ,SAAS6a,GACvC,UAAC,gBAAAhb,EAAA+U,GAAA,CAAA,CAAO,EACZ,CAAA;AAAA,MAEJ,gBAAA/U;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAGgJ;AAAA,UACJ,UAAAgO;AAAA,UACA,MAAA/B;AAAA,UACA,IAAI+F;AAAA,UACJ,UAAAF;AAAA,UACA,aAAAF;AAAA,UACA,WAAWza,GAAQ;AAAA,UACnB,KAAKgZ;AAAA,UACL,UAAAxR;AAAA,UACA,MAAAF;AAAA,UACA,OAAA6K;AAAA,UACA,cAAAuI;AAAA,UACA,UAAUpE;AAAA,UACV,QAAAmD;AAAA,UACA,SAAAD;AAAA,UACA,SAAAG;AAAA,UACA,WAAAD;AAAA,UACA,WAAWQ;AAAA,UACX,SAASrB;AAAA,UACT,UAAU+B;AAAA,QAAA;AAAA,MACd;AAAA,MACCpC,uBAAayB,GAAe,CAAA,CAAA;AAAA,IAAA,GACjC;AAAA,EAAA;AAGZ;AAEAO,GAAU,cAAc;;;;;;;;GCzHXM,KAAYpS;AAAA,EACrB,CACI;AAAA,IACI,IAAIoR;AAAA,IACJ,WAAAna;AAAA,IACA,aAAA8a,IAAc;AAAA,IACd,UAAAjT;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,cAAAe;AAAA,IACA,wBAAAX;AAAA,IACA,YAAA3B;AAAA,IACA,cAAAiB;AAAA,IACA,GAAGxQ;AAAA,KAEPC,MACC;AACK,UAAAyP,IACF,EAAQH,KACR,OAAOvP,EAAY,OAAQ,YAC3B,OAAOA,EAAY,OAAQ,UAEzBX,IAAKsO,GAAcsD,CAAM,GACzBiB,IAAW1b,GAAyB,IAAI,GAExC,EAAC,iBAAAwZ,GAAiB,UAAAL,GAAU,aAAAlB,EAAA,IAAegB,GAAc,EAAC,YAAAF,GAAY,eAAAG,GAAc,GAEpFS,IAAW9Z,GAAe4J,CAAG;AAEnC,IAAAsQ,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW,GAC7CW,GAAAC,GAAUH,GAAiBkB,CAAsB;AAErE,UAAAE,IAAiBX,GAAkBd,CAAQ,GAE3CwC,IAAgB7I,KAASuI,GACzBpE,IAAetP;AAAA,MACjB,CAACC,MAAyC;AACtC,QAAA0O,EAAS1O,CAAK,GACV8T,KAAA,QAAAA,EAAU,YACDA,EAAA,QAAQ,YAAY9T,EAAM,OAAO;AAAA,MAElD;AAAA,MACA,CAAC0O,CAAQ;AAAA,IACb,GAEMuE,IAAgBlT,EAAY,MAAM;AACpC,MAAAsQ,EAAYH,EAAgB,KAAK;AAAA,IAAA,GAClC,CAACG,CAAW,CAAC,GAEV2D,IAAcjU;AAAA,MAChB,CAACC,MAAwC;AACrC,QAAAuS,EAAQvS,CAAK,GACbA,EAAM,OAAO,WAAW;AAAA,MAC5B;AAAA,MACA,CAACuS,CAAO;AAAA,IACZ,GACM0B,IAAalU;AAAA,MACf,CAACC,MAAwC;AACrC,QAAAwS,EAAOxS,CAAK;AAAA,MAChB;AAAA,MACA,CAACwS,CAAM;AAAA,IACX,GAEM0B,IAAcnU;AAAA,MAChB,CAACC,MAAyC;AACtC,QAAA4R,EAAgB5R,CAAK;AAAA,MACzB;AAAA,MACA,CAAC4R,CAAe;AAAA,IACpB;AAEA,6BACK,OAAI,EAAA,WAAW9Y,EAAWC,GAAQ,SAASL,CAAS,GACjD,UAAA;AAAA,MAAC,gBAAAiI,EAAA,OAAA,EAAI,WAAW5H,GAAQ,QACpB,UAAA;AAAA,QAAA,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YACI,GAAGgJ;AAAA,YACJ,IAAAX;AAAA,YACA,KAAK8Q;AAAA,YACL,WAAWhZ,GAAQ;AAAA,YACnB,MAAK;AAAA,YACL,UAAAwH;AAAA,YACA,OAAA2K;AAAA,YACA,cAAAuI;AAAA,YACA,UAAUpE;AAAA,YACV,WAAW4D;AAAA,YACX,SAASiB;AAAA,YACT,SAASF;AAAA,YACT,QAAQC;AAAA,YACR,SAAAvB;AAAA,YACA,WAAAD;AAAA,UAAA;AAAA,QACJ;AAAA,QACA,gBAAA7Z,EAAC,WAAM,SAASqI,GAAI,WAAWlI,GAAQ,MACnC,UAAC,gBAAAH,EAAAa,IAAA,CAAa,CAAA,EAClB,CAAA;AAAA,MAAA,GACJ;AAAA,MACA,gBAAAb,EAAC,SAAM,EAAA,SAASqI,GAAI,WAAWlI,GAAQ,OAAO,KAAK+a,GAC9C,UAAAC,KAAgBP,EACrB,CAAA;AAAA,MACCjC,KAAY,gBAAA3Y,EAACoa,GAAe,EAAA,WAAWja,GAAQ,SAAU,CAAA;AAAA,IAAA,GAC9D;AAAA,EAAA;AAGZ;AAEA8a,GAAU,cAAc;;;;GC5GlBM,KAAO,MAAM;AAAC,GAEPC,KAAgB3S;AAAA,EACzB,CACI;AAAA,IACI,QAAQkM;AAAA,IACR,WAAAjV;AAAA,IACA,aAAA8a,IAAc;AAAA,IACd,UAAAjT;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA;AAAA;AAAA,IAGjB,YAAAvB;AAAA,IACA,cAAAiB;AAAA,IACA,wBAAAU;AAAA,IACA,GAAGlR;AAAA,KAEPC,MACC;AACK,UAAAkQ,IAAW9Z,GAAe4J,CAAG,GAE7ByP,IAAgB,EAAQH,GAExB,EAAC,iBAAAS,GAAiB,UAAAL,GAAU,aAAAlB,EAAA,IAAegB,GAAc,EAAC,YAAAF,GAAY,eAAAG,GAAc;AAEhE,IAAAQ,GAAAC,GAAUH,GAAiBkB,CAAsB,GAC3EX,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW;AAEjE,UAAA8B,IAAgBlT,EAAY,MAAM;AACpC,MAAAsQ,EAAYH,EAAgB,KAAK;AAAA,IAAA,GAClC,CAACG,CAAW,CAAC,GAEV,CAACgE,GAAMC,CAAO,IAAI5U,EAAS,EAAE,GAC7B,CAAC6U,GAAMC,CAAO,IAAI9U,EAAS,OAAO,GAClC,CAAC+U,GAAUC,CAAW,IAAIhV,EAASwL,KAAS,QAAQ;AAE1D,IAAAjM,EAAU,MAAM;AAER,UADJyV,EAAYxJ,KAAS,QAAQ,GACzBA,MAAU,UAAaA,MAAU,UAAU;AAC3C,cAAM,CAACyJ,GAAUC,CAAQ,IAAK1J,EAAiB,MAAM,GAAG;AACxD,QAAAoJ,EAAQK,CAAQ,GAChBH,EAAQI,CAAQ;AAAA,MAAA;AAEhB,QAAAN,EAAQ,EAAE,GACVE,EAAQ,OAAO;AAAA,IACnB,GACD,CAACtJ,CAAK,CAAC;AAEJ,UAAA2J,IAAgB9U,EAAY,CAACC,MAAyC;AAChE,MAAAsU,EAAAtU,EAAM,OAAO,KAAK;AAAA,IAC9B,GAAG,EAAE,GAEC8U,IAAgB/U,EAAY,CAACC,MAAyC;AAChE,MAAAwU,EAAAxU,EAAM,OAAO,KAAK;AAAA,IAC9B,GAAG,EAAE;AAEL,WAAAf,EAAU,MAAM;AACZ,MAAAyV,EAAY,GAAGL,CAAI,IAAIE,CAAI,EAAE;AAAA,IAAA,GAC9B,CAACF,GAAME,CAAI,CAAC,GAEftV,EAAU,MAAM;;AACH,OAAAY,IAAAkS,EAAA,YAAA,QAAAlS,EAAS,cAAc,IAAI,MAAM,UAAU,EAAC,SAAS,GAAI,CAAC;AAAA,IAAC,GACrE,CAAC4U,GAAU1C,CAAQ,CAAC,GAEvB9S,EAAU,MAAM;;AACH,OAAAY,IAAAkS,EAAA,YAAA,QAAAlS,EAAS,iBAAiB,UAAU,CAASG,MAAA;AAElD,QAAA4R,EAAgB5R,CAAiD,GACjE0O,EAAS1O,CAAiD;AAAA,MAAA;AAAA,IAE/D,GAAA,CAAC+R,GAAUrD,GAAUkD,CAAe,CAAC,GAGpC,gBAAAhZ,EAACsP,MACG,UAAC,gBAAAvH,EAAA,OAAA,EAAI,WAAW7H,EAAWC,GAAQ,SAASL,CAAS,GACjD,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAGgJ;AAAA,UACJ,MAAK;AAAA,UACL,aAAA4R;AAAA,UACA,WAAWza,GAAQ;AAAA,UACnB,KAAKgZ;AAAA,UACL,UAAAxR;AAAA,UACA,OAAOkU;AAAA,UACP,UAAUN;AAAA,UACV,QAAA3B;AAAA,UACA,SAAAD;AAAA,UACA,SAAAG;AAAA,UACA,WAAAD;AAAA,UACA,WAAWQ;AAAA,QAAA;AAAA,MACf;AAAA,wBACCY,IAAU,EAAA,OAAOQ,GAAM,UAAUQ,GAAe,YAAYtD,GAAU;AAAA,wBACtEwD,IAAU,EAAA,OAAOR,GAAM,UAAUO,GAAe,YAAYvD,EAAU,CAAA;AAAA,IAAA,EAAA,CAC3E,EACJ,CAAA;AAAA,EAAA;AAGZ;AAEA6C,GAAc,cAAc;;;;;;;GCvHfY,KAAc,CAACC,GAAcC,MAAiB;AACvD,MAAID,GAAK;AAQD,QAPAA,EAAI,WAAW,GAAG,MACZA,IAAAA,EAAI,MAAM,CAAC,IAGjBA,EAAI,WAAW,MACfA,IAAMA,EAAI,CAAC,IAAIA,EAAI,CAAC,IAAIA,EAAI,CAAC,IAAIA,EAAI,CAAC,IAAIA,EAAI,CAAC,IAAIA,EAAI,CAAC,IAExDA,EAAI,WAAW;AACT,YAAA,IAAI,MAAM,oBAAoB;AAExC,UAAME,IAAM,SAASF,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAClCG,IAAQ,SAASH,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GACpCI,IAAO,SAASJ,EAAI,MAAM,GAAG,CAAC,GAAG,EAAE;AAGrC,WAAOE,IAAM,QAAQC,IAAQ,QAAQC,IAAO,QAAQ,MAAM,YAAY;AAAA,EAOtC;AAGjC,SAAA;AACX,GCCaC,KAAa7T;AAAA,EACtB,CACI;AAAA,IACI,WAAA/I;AAAA,IACA,aAAA8a,IAAc;AAAA,IACd,UAAAjT;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,cAAAe;AAAA,IACA,IAAIZ;AAAA,IACJ,kBAAA0C,IAAmB,CAAC;AAAA,IACpB,cAAAnD;AAAA,IACA,wBAAAU;AAAA,IACA,YAAA3B;AAAA,IACA,GAAGvP;AAAA,KAEPC,MACC;AACK,UAAAyP,IAAgB,EAAQH,GAExB,EAAC,UAAAI,GAAU,aAAAlB,GAAa,iBAAAuB,EAAA,IAAmBP,GAAc;AAAA,MAC3D,YAAAF;AAAA,MACA,eAAAG;AAAA,IAAA,CACH,GACKrQ,IAAKsO,GAAcsD,CAAM,GAEzBd,IAAW9Z,GAAe4J,CAAG;AACnC,IAAAsQ,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW,GAE7CW,GAAAC,GAAUH,GAAiBkB,CAAsB;AAErE,UAAAE,IAAiBX,GAAkBd,CAAQ,GAE3C,EAAC,WAAA/G,GAAW,UAAAgL,EAAQ,IAAIlM,EAAc,GACtCyK,IAAgB7I,KAASuI,GACzB1b,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,kBAAkBsT;AAAA,QAClB,kBAAkBiB,GAAYjB,CAAkB;AAAA,MAAA;AAAA,MAEpD,CAACA,CAAY;AAAA,IACjB,GAEMC,IAAcjU;AAAA,MAChB,CAACC,MAAwC;AACrC,QAAAuS,EAAQvS,CAAK,GACJwV,EAAA;AAAA,UACL,kBAAkBxV,EAAM,OAAO;AAAA,UAC/B,kBAAkBgV,GAAYhV,EAAM,OAAO,KAAW;AAAA,QAAA,CACzD;AAAA,MACL;AAAA,MACA,CAACuS,GAASiD,CAAQ;AAAA,IACtB,GAEM1B,IAAW1b,GAAyB,IAAI,GAExC6b,IAAalU;AAAA,MACf,CAACC,MAAwC;AAC5B,QAAAwV,EAAA;AAAA,UACL,kBAAkBR,GAAYhV,EAAM,OAAO,KAAW;AAAA,QAAA,CACzD,GAEG8T,KAAA,QAAAA,EAAU,YACDA,EAAA,QAAQ,YAAY9T,EAAM,OAAO,QAE9CwS,EAAOxS,CAAK,GACZ0O,EAAS1O,CAAK;AAAA,MAClB;AAAA,MACA,CAACwV,GAAUhD,GAAQ9D,CAAQ;AAAA,IAC/B,GAGMW,IAAetP;AAAA,MACjB,CAACC,MAAyC;AAC7B,QAAAwV,EAAA;AAAA,UACL,kBAAkBxV,EAAM,OAAO;AAAA,UAC/B,kBAAkB;AAAA,QAAA,CACrB;AAAA,MACL;AAAA,MACA,CAACwV,CAAQ;AAAA,IACb,GAEMC,IAAsBF,EAAiB,SAAS,GAChDG,KAAyB,GAAGzU,CAAE;AAGhC,WAAA,gBAAAN,EAAC6J,KAAU,OAAAzS,GAAc,WAAWe,EAAWC,GAAQ,SAASL,CAAS,GACrE,UAAA;AAAA,MAAC,gBAAAiI,EAAA,OAAA,EAAI,WAAW5H,GAAQ,QACpB,UAAA;AAAA,QAAA,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YACI,GAAGgJ;AAAA,YACJ,IAAAX;AAAA,YACA,KAAK8Q;AAAA,YACL,MAAK;AAAA,YACL,UAAAxR;AAAA,YACA,cAAcwT;AAAA,YACd,WAAWhb,GAAQ;AAAA,YACnB,QAAQkb;AAAA,YACR,SAAAvB;AAAA,YACA,WAAAD;AAAA,YACA,SAASuB;AAAA,YACT,UAAU3E;AAAA,YACV,MAAMoG,IAAsBC,KAAyB;AAAA,UAAA;AAAA,QACzD;AAAA,0BACCvY,IAAa,EAAA,WAAWrE,EAAWC,GAAQ,IAAI,EAAG,CAAA;AAAA,MAAA,GACvD;AAAA,MACC,gBAAAH,EAAA,SAAA,EAAM,SAASqI,GAAI,WAAWlI,GAAQ,OAAO,KAAK+a,GAC9C,UAAAC,EAAa,YAAY,KAAKP,EACnC,CAAA;AAAA,MACCjC,uBAAayB,GAAe,EAAA;AAAA,MAC5ByC,KACI,gBAAA7c,EAAA,YAAA,EAAS,IAAI8c,IACT,UAAAH,EAAiB,IAAI,CAASI,MACnB,gBAAA/c,EAAA,UAAA,EAAmB,OAAO+c,EAAA,GAAdA,CAAqB,CAC5C,EACL,CAAA;AAAA,IAAA,GAER;AAAA,EAAA;AAGZ;AAEAL,GAAW,cAAc;;;;;GC3IZP,KAAYtT;AAAA,EACrB,CACI;AAAA,IACI,WAAA/I;AAAA,IACA,aAAA8a,IAAc;AAAA,IACd,UAAAjT;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,cAAAe;AAAA,IACA,wBAAAX;AAAA,IACA,YAAA3B;AAAA,IACA,cAAAiB;AAAA,IACA,GAAGxQ;AAAA,KAEPC,MACC;AACK,UAAAkQ,IAAW9Z,GAAe4J,CAAG,GAC7ByP,IACF,EAAQH,KACR,OAAOvP,EAAY,OAAQ,YAC3B,OAAOA,EAAY,OAAQ,UAEzB,EAAC,UAAA2P,GAAU,aAAAlB,GAAa,iBAAAuB,EAAA,IAAmBP,GAAc,EAAC,YAAAF,GAAY,eAAAG,GAAc;AAEhE,IAAAQ,GAAAC,GAAUH,GAAiBkB,CAAsB,GAC3EX,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW;AAEjE,UAAA6B,IAAiBX,GAAkBd,CAAQ,GAE3C0B,IAAgBlT,EAAY,MAAM;AACpC,MAAAsQ,EAAYH,EAAgB,KAAK;AAAA,IAAA,GAClC,CAACG,CAAW,CAAC,GAEVuF,IAAkB7V,EAAY,MAAM;;AACtC,OAAAF,IAAAkS,EAAS,YAAT,QAAAlS,EAAkB,UAClBmD,IAAA+O,EAAS,YAAT,QAAA/O,EAAkB;AAAA,IAAW,GAC9B,CAAC+O,CAAQ,CAAC,GAEPlI,IAAgB9J;AAAA,MAClB,CAACC,MAA2C;AACxC,QAAAyS,EAAUzS,CAAK;AAAA,MACnB;AAAA,MACA,CAACyS,CAAS;AAAA,IACd,GAEMoD,IAAc9V;AAAA,MAChB,CAACC,MAA2C;AACxC,QAAA0S,EAAQ1S,CAAK;AAAA,MACjB;AAAA,MACA,CAAC0S,CAAO;AAAA,IACZ,GAEMrD,IAAetP;AAAA,MACjB,CAACC,MAAyC;AAE3B,QADKA,EAAM,OAAO,cAAc,KAChCqQ,EAAYH,EAAgB,KAAK,GAC5CxB,EAAS1O,CAAK;AAAA,MAClB;AAAA,MACA,CAAC0O,GAAU2B,CAAW;AAAA,IAC1B;AAEA,6BACK,OAAI,EAAA,WAAWvX,EAAWC,GAAQ,SAASL,CAAS,GACjD,UAAA;AAAA,MAAA,gBAAAE,EAACe,MAAU,UAAU,IAAI,SAASic,GAAiB,WAAW7c,GAAQ,MAAM;AAAA,MAC5E,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAGgJ;AAAA,UACJ,MAAK;AAAA,UACL,aAAA4R;AAAA,UACA,WAAWza,GAAQ;AAAA,UACnB,KAAKgZ;AAAA,UACL,UAAAxR;AAAA,UACA,OAAA2K;AAAA,UACA,cAAAuI;AAAA,UACA,QAAAjB;AAAA,UACA,SAAAD;AAAA,UACA,SAASsD;AAAA,UACT,WAAWhM;AAAA,UACX,WAAWoJ;AAAA,UACX,UAAU5D;AAAA,UACV,SAASuC;AAAA,QAAA;AAAA,MACb;AAAA,MACCL,uBAAayB,GAAe,CAAA,CAAA;AAAA,IAAA,GACjC;AAAA,EAAA;AAGZ;AAEA+B,GAAU,cAAc;ACvGjB,SAASe,GACZC,GACAC,IAA6B,IAC5B;AACK,QAAAnU,IAAMzJ,GAAO2d,CAAE;AAErB,SAAA9T,GAAoB,MAAM;AACtB,IAAAJ,EAAI,UAAUkU;AAAA,EAAA,CACjB,GAGMhW,EAAa,IAAIkW,MAAS;;AAAA,YAAApW,IAAAgC,EAAI,YAAJ,gBAAAhC,EAAA,KAAAgC,GAAc,GAAGoU;AAAA,KAAaD,CAAI;AACvE;AClBA,MAAME,KAAa,CAAgChL,MAC/C,OAAOA,KAAU;AAEL,SAAAiL,GAAcC,MAA2CH,GAAc;AACnF,SAAOC,GAAWE,CAAS,IAAIA,EAAU,GAAGH,CAAI,IAAIG;AACxD;AAyBO,SAASC,GAAwB9d,GAAqC;AACnE,QAAA;AAAA,IACF,OAAO+d;AAAA,IACP,cAAA7C;AAAA,IACA,UAAA/E;AAAA,IACA,cAAA6H,IAAe,CAACC,GAAMC,MAASD,MAASC;AAAA,EAAA,IACxCle,GACEme,IAAeZ,GAAepH,CAAQ,GACtCiI,IAAmBb,GAAeS,CAAY,GAE9C,CAACK,GAAYC,CAAQ,IAAInX,EAAS+T,CAAiB,GAEnDqD,IAAeR,MAAc,QAC7BpL,IAAQ4L,IAAgBR,IAAkBM,GAE1CG,IAAchX;AAAA,IAChB,CAAC0W,MAA4B;AACnB,YAAAO,IAAYb,GAAQM,GAAMvL,CAAK;AAErC,MAAKyL,EAAiBzL,GAAO8L,CAAS,MAIjCF,KACDD,EAASG,CAAS,GAGtBN,EAAaM,CAAS;AAAA,IAC1B;AAAA,IACA,CAACF,GAAcJ,GAAcxL,GAAOyL,CAAgB;AAAA,EACxD;AAEO,SAAA,CAACzL,GAAO6L,CAAW;AAC9B;;;;;;;;;;GCtCME,KAAgB,CAAC;AAAA,EACnB,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AACJ,MAKM;AAEF,QAAMC,KADQH,IAAMD,KACME;AAE1B,SADc,IAAI,MAAMA,IAAO,CAAC,EAAE,KAAK,EAAE,EAC5B,IAAI,CAACvL,GAAG,MAAM;AACvB,UAAMX,IAAQ,KAAK,MAAMgM,IAAMI,IAAY,CAAC;AAExC,WAAA,gBAAA1e;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,OAAAsS;AAAA,QACA,OAAO,KAAKA,CAAK,GAAGmM,CAAS;AAAA,QAC7B,WAAWte,GAAQ;AAAA,MAAA;AAAA,MACd;AAAA,IAAG;AAAA,EAAA,CAEnB;AACL,GAEawe,KAAa9V;AAAA,EACtB,CACI;AAAA,IACI,QAAQkM;AAAA,IACR,IAAA1M;AAAA,IACA,WAAAvI;AAAA,IACA,UAAA6H;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,cAAAe;AAAA,IACA,KAAAyD,IAAM;AAAA,IACN,KAAAC,IAAM;AAAA,IACN,MAAAC,IAAO;AAAA,IACP,WAAAC,IAAY;AAAA,IACZ,wBAAAvE;AAAA,IACA,YAAA3B;AAAA,IACA,cAAAiB;AAAA,IACA,cAAAoF;AAAA,IACA,GAAG5V;AAAA,KAEPC,MACC;AACD,UAAMyP,IAAgB,EAAQH,KAAe,EAAQvP,EAAY,UAE3D,EAAC,iBAAAgQ,GAAiB,UAAAL,GAAU,aAAAlB,EAAA,IAAegB,GAAc,EAAC,YAAAF,GAAY,eAAAG,GAAc,GAEpFS,IAAW9Z,GAAe4J,CAAG;AACT,IAAAiQ,GAAAC,GAAUH,GAAiBkB,CAAsB,GAC3EX,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW;AAEjE,UAAA6B,IAAiBX,GAAkBd,CAAQ,GAE3C,CAACwC,GAAc0D,CAAe,IAAIpB,GAAqB;AAAA,MACzD,OAAAnL;AAAA,MACA,cAAAuI;AAAA,IAAA,CACH,GAEKpE,IAAetP;AAAA,MACjB,CAACC,OAAyC;AACtB,QAAAyX,EAAAzX,GAAM,OAAO,KAAK,GAClC0O,EAAS1O,EAAK;AAAA,MAClB;AAAA,MACA,CAAC0O,GAAU+I,CAAe;AAAA,IAC9B,GAEMxE,IAAgBlT,EAAY,MAAM;AACpC,MAAAsQ,EAAYH,EAAgB,KAAK;AAAA,IAAA,GAClC,CAACG,CAAW,CAAC,GAEVuD,IAAUrE,GAActO,CAAE,GAC1ByW,IAAU,GAAG9D,CAAO,UAEpB,EAAC,WAAApJ,GAAS,IAAIlB,EAAc,GAE5BvR,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,iBAAiB0W,EAAI,WAAW,SAASE,EAAU;AAAA,MAAA;AAAA,MAEvD,CAACF,GAAKE,CAAS;AAAA,IACnB;AAGI,WAAA,gBAAA1W,EAAC,SAAI,WAAW7H,EAAWC,GAAQ,aAAa,GAAGL,CAAS,GACvD,UAAA;AAAA,MACGiV,KAAA,gBAAA/U,EAAC,WAAM,WAAWG,GAAQ,QAAQ,SAAS6a,GACvC,UAAC,gBAAAhb,EAAA+U,GAAA,CAAA,CAAO,EACZ,CAAA;AAAA,MAEH,gBAAAhN,EAAA,OAAA,EAAI,WAAW5H,GAAQ,eAAe,GACnC,UAAA;AAAA,QAAA,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YACI,GAAGgJ;AAAA,YACJ,IAAIgS;AAAA,YACJ,MAAK;AAAA,YACL,WAAW7a,GAAQ;AAAA,YACnB,KAAKgZ;AAAA,YACL,UAAAxR;AAAA,YACA,OAAA2K;AAAA,YACA,cAAAuI;AAAA,YACA,UAAUpE;AAAA,YACV,QAAAmD;AAAA,YACA,SAAAD;AAAA,YACA,SAAAG;AAAA,YACA,WAAAD;AAAA,YACA,WAAWQ;AAAA,YACX,SAASrB;AAAA,YACT,MAAM8F;AAAA,YACN,KAAAR;AAAA,YACA,KAAAC;AAAA,UAAA;AAAA,QACJ;AAAA,QACCK,uBACI,YAAS,EAAA,IAAIE,GAAS,WAAW3e,GAAQ,OACrC,UAAcke,GAAA,EAAC,KAAK,OAAOC,CAAG,GAAG,KAAK,OAAOC,CAAG,GAAG,MAAAC,GAAM,WAAAC,EAAS,CAAC,EACxE,CAAA;AAAA,MAAA,GAER;AAAA,wBAEC7M,IAAU,EAAA,IAAG,UAAS,OAAAzS,GAAc,WAAWgB,GAAQ,QACnD,UAAA;AAAA,QAAgBgb,KAAA,OAAOoD,CAAG,IAAI;AAAA,QAAE;AAAA,QAAEE;AAAA,MAAA,GACvC;AAAA,MACC9F,KAAY,gBAAA3Y,EAACoa,GAAe,EAAA,WAAWja,GAAQ,WAAY,CAAA;AAAA,IAAA,GAChE;AAAA,EAAA;AAGZ;AAEAwe,GAAW,cAAc;;;;;;;;GCvIZI,KAAYlW;AAAA,EACrB,CACI;AAAA,IACI,IAAIoR;AAAA,IACJ,WAAAna;AAAA,IACA,aAAA8a,IAAc;AAAA,IACd,UAAAjT;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,cAAAe;AAAA,IACA,MAAA5F,IAAO;AAAA,IACP,cAAAuE;AAAA,IACA,wBAAAU;AAAA,IACA,YAAA3B;AAAA,IACA,GAAGvP;AAAA,KAEPC,MACC;AACK,UAAA,EAAC,WAAA2I,EAAS,IAAIlB,EAAc,GAC5BvR,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,eAAe,GAAGoN,CAAI;AAAA,MAAA;AAAA,MAE1B,CAACA,CAAI;AAAA,IACT,GAEM5M,IAAKsO,GAAcsD,CAAM,GACzB,CAAC+E,GAAUC,CAAW,IAAInY,EAAS,EAAE,GACrC4R,IAAgB,EAAQH,GACxB,EAAC,iBAAAS,GAAiB,UAAAL,GAAU,aAAAlB,EAAA,IAAegB,GAAc;AAAA,MAC3D,YAAAF;AAAA,MACA,eAAAG;AAAA,IAAA,CACH,GACKS,IAAW9Z,GAAe4J,CAAG;AACnC,IAAAsQ,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW,GAC7CW,GAAAC,GAAUH,GAAiBkB,CAAsB;AAErE,UAAAE,IAAiBX,GAAkBd,CAAQ,GAC3ClC,IAAetP;AAAA,MACjB,CAACC,MAAyC;AACtC,QAAA0O,EAAS1O,CAAK,GACd6X,EAAY7X,EAAM,OAAO,MAAO,CAAC,EAAE,IAAI;AAAA,MAC3C;AAAA,MACA,CAAC0O,GAAUmJ,CAAW;AAAA,IAC1B,GAEM5E,IAAgBlT,EAAY,MAAM;AACpC,MAAA8X,EAAY,EAAE,GACdxH,EAAYH,EAAgB,KAAK;AAAA,IAAA,GAClC,CAACG,CAAW,CAAC;AAEZ,WAAA,gBAAA1P,EAAC6J,KAAU,OAAAzS,GAAc,WAAWe,EAAWC,GAAQ,YAAY,GAAGL,CAAS,GAC3E,UAAA;AAAA,MAAC,gBAAAiI,EAAA,OAAA,EAAI,WAAW5H,GAAQ,QACpB,UAAA;AAAA,QAAA,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YACI,GAAGgJ;AAAA,YACJ,IAAAX;AAAA,YACA,MAAK;AAAA,YACL,aAAAuS;AAAA,YACA,WAAWza,GAAQ;AAAA,YACnB,KAAKgZ;AAAA,YACL,UAAAxR;AAAA,YACA,OAAA2K;AAAA,YACA,cAAAuI;AAAA,YACA,UAAUpE;AAAA,YACV,QAAAmD;AAAA,YACA,SAAAD;AAAA,YACA,SAAAG;AAAA,YACA,WAAAD;AAAA,YACA,WAAWQ;AAAA,YACX,SAASrB;AAAA,UAAA;AAAA,QACb;AAAA,0BACCrY,IAAS,EAAA,WAAWT,EAAWC,GAAQ,IAAI,EAAG,CAAA;AAAA,MAAA,GACnD;AAAA,MACA,gBAAAH,EAAC,WAAM,SAASqI,GAAI,WAAWlI,GAAQ,OAClC,eAAYya,EACjB,CAAA;AAAA,MACCjC,KAAY,gBAAA3Y,EAACoa,GAAe,EAAA,WAAWja,GAAQ,SAAU,CAAA;AAAA,IAAA,GAC9D;AAAA,EAAA;AAGZ;AAEA4e,GAAU,cAAc;;;;;GCrFXG,KAAgBrW;AAAA,EACzB,CACI;AAAA,IACI,WAAA/I;AAAA,IACA,aAAA8a,IAAc;AAAA,IACd,UAAAjT;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,cAAAe;AAAA,IACA,IAAAxS;AAAA,IACA,UAAAyS;AAAA,IACA,MAAA7F,IAAO;AAAA,IACP,wBAAAiF;AAAA,IACA,YAAA3B;AAAA,IACA,cAAAiB;AAAA,IACA,GAAGxQ;AAAA,KAEPC,MACC;AACD,UAAMyP,IACF,EAAQH,KACR,EAAQvP,EAAY,YACpB,OAAOA,EAAY,aAAc,YACjC,OAAOA,EAAY,aAAc,YACjC,OAAOA,EAAY,WAAY,UAE7B,EAAC,iBAAAgQ,GAAiB,UAAAL,GAAU,aAAAlB,EAAA,IAAegB,GAAc,EAAC,YAAAF,GAAY,eAAAG,GAAc,GAEpFS,IAAW9Z,GAAe4J,CAAG;AACT,IAAAiQ,GAAAC,GAAUH,GAAiBkB,CAAsB,GAC3EX,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW;AAEjE,UAAA6B,IAAiBX,GAAkBd,CAAQ,GAC3ClC,IAAetP;AAAA,MACjB,CAACC,MAAyC;AACtC,QAAA0O,EAAS1O,CAAK;AAAA,MAClB;AAAA,MACA,CAAC0O,CAAQ;AAAA,IACb,GAEMuE,IAAgBlT,EAAY,MAAM;AACpC,MAAAsQ,EAAYH,EAAgB,KAAK;AAAA,IAAA,GAClC,CAACG,CAAW,CAAC,GAEVuD,IAAUrE,GAActO,CAAE,GAE1B0S,IAAe5T;AAAA,MACjB,CAACC,MAAyC;AAC1B,QAAA0T,KAAA1T,EAAM,OAAO,OAAO;AAAA,MACpC;AAAA,MACA,CAAC0T,CAAQ;AAAA,IACb,GAEM,CAACrT,GAAM0X,CAAO,IAAIrY;AAAA,MAAiC;AAAA;AAAA,IAAkB,GAErE7G,IAAO4H;AAAA,MACT,OACK;AAAA,QACI,MAAiBxG;AAAA,QACjB,UAAqBF;AAAA,SACvBsG,CAAI;AAAA,MACX,CAACA,CAAI;AAAA,IACT,GAEMuV,IAAkB7V,EAAY,MAAM;AAC7B,MAAAM,MAAA,cAAsB0X;AAAA,QAAQ;AAAA;AAAA,MAAc,GAC5C1X,MAAA,UAAkB0X;AAAA,QAAQ;AAAA;AAAA,MAAkB;AAAA,IAAA,GACtD,CAAC1X,GAAM0X,CAAO,CAAC;AAElB,6BACK,OAAI,EAAA,WAAWjf,EAAWC,GAAQ,SAASL,CAAS,GACjD,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,UAAU;AAAA,UACV,SAASgd;AAAA,UACT,WAAW7c,GAAQ;AAAA,UACnB,SAAS6a;AAAA,UACT,4BAAC/a,GAAK,CAAA,CAAA;AAAA,QAAA;AAAA,MACV;AAAA,MACA,gBAAAD;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAGgJ;AAAA,UACJ,MAAAiM;AAAA,UACA,IAAI+F;AAAA,UACJ,UAAAF;AAAA,UACA,aAAAF;AAAA,UACA,WAAWza,GAAQ;AAAA,UACnB,KAAKgZ;AAAA,UACL,UAAAxR;AAAA,UACA,MAAAF;AAAA,UACA,OAAA6K;AAAA,UACA,cAAAuI;AAAA,UACA,UAAUpE;AAAA,UACV,QAAAmD;AAAA,UACA,SAAAD;AAAA,UACA,SAAAG;AAAA,UACA,WAAAD;AAAA,UACA,WAAWQ;AAAA,UACX,SAASrB;AAAA,UACT,UAAU+B;AAAA,QAAA;AAAA,MACd;AAAA,MACCpC,uBAAayB,GAAe,CAAA,CAAA;AAAA,IAAA,GACjC;AAAA,EAAA;AAGZ;AAEA8E,GAAc,cAAc;;;;;;GC9GtBE,KAAqB,kBAErBC,KAAqB,IAAI,MAAMD,IAAoB,EAAC,SAAS,IAAK,GAE3DE,KAAczW;AAAA,EACvB,CACI;AAAA,IACI,WAAA/I;AAAA,IACA,aAAA8a,IAAc;AAAA,IACd,UAAAjT;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,cAAAe;AAAA,IACA,MAAA5F,IAAO;AAAA,IACP,MAAAsK;AAAA,IACA,wBAAArF;AAAA,IACA,cAAAV,IAAelC,EAAgB;AAAA,IAC/B,YAAAiB;AAAA,IACA,GAAGvP;AAAA,KAEPC,MACC;AACK,UAAAyP,IACF,EAAQH,KACR,EAAQvP,EAAY,YACpB,OAAOA,EAAY,OAAQ,YAC3B,OAAOA,EAAY,OAAQ,YAC3B,OAAOA,EAAY,OAAQ,YAC3B,OAAOA,EAAY,OAAQ,UAEzB,EAAC,iBAAAgQ,GAAiB,UAAAL,GAAU,aAAAlB,EAAA,IAAegB,GAAc,EAAC,YAAAF,GAAY,eAAAG,GAAc,GAEpFS,IAAW9Z,GAAe4J,CAAG;AACT,IAAAiQ,GAAAC,GAAUH,GAAiBkB,CAAsB,GAC3EX,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW;AAEjE,UAAA6B,IAAiBX,GAAkBd,CAAQ,GAC3ClC,IAAetP;AAAA,MACjB,CAACC,MAAyC;AACtC,QAAA0O,EAAS1O,CAAK;AAAA,MAClB;AAAA,MACA,CAAC0O,CAAQ;AAAA,IACb;AAEA,IAAAzP,EAAU,MAAM;;AACH,OAAAY,IAAAkS,EAAA,YAAA,QAAAlS,EAAS,iBAAiBmY,IAAoB,CAAShY,MAAA;AAE5D,QAAA0O,EAAS1O,CAAiD;AAAA,MAAA;AAAA,IAC7D,GACF,CAAC+R,GAAUrD,CAAQ,CAAC;AAEjB,UAAAuE,IAAgBlT,EAAY,MAAM;AACpC,MAAAsQ,EAAYH,EAAgB,KAAK;AAAA,IAAA,GAClC,CAACG,CAAW,CAAC,GAEV+H,IAAkBrY,EAAY,MAAM;AACtC,MAAAgS,EAAS,QAAS,SAAS,GAClBA,EAAA,QAAS,cAAckG,EAAkB,GAClDrG,EAAgBqG,EAA0C;AAAA,IAAA,GAC3D,CAAClG,GAAUH,CAAe,CAAC,GAExByG,IAAkBtY,EAAY,MAAM;AACtC,MAAAgS,EAAS,QAAS,OAAO,GAChBA,EAAA,QAAS,cAAckG,EAAkB,GAClDrG,EAAgBqG,EAA0C;AAAA,IAAA,GAC3D,CAAClG,GAAUH,CAAe,CAAC,GAExB,EAAC,WAAApH,EAAS,IAAIlB,EAAc,GAC5BvR,IAAQ0I,EAAQ,OAAO,EAAC,MAAAoN,MAAQ,CAACA,CAAI,CAAC;AAGxC,WAAA,gBAAAlN,EAAC6J,KAAU,WAAW1R,EAAWC,GAAQ,SAASL,CAAS,GAAG,OAAAX,GAC1D,UAAA;AAAA,MAAC,gBAAA4I,EAAA,OAAA,EAAI,WAAW5H,GAAQ,SACpB,UAAA;AAAA,QAAA,gBAAAH,EAACuB,IAAY,EAAA,UAAU,IAAI,SAASke,GAAiB;AAAA,QACpD,gBAAAzf,EAAAyB,IAAA,EAAc,UAAU,IAAI,SAAS+d,EAAiB,CAAA;AAAA,MAAA,GAC3D;AAAA,MACA,gBAAAxf;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAGgJ;AAAA,UACJ,MAAAuW;AAAA,UACA,MAAAtK;AAAA,UACA,MAAK;AAAA,UACL,aAAA2F;AAAA,UACA,WAAWza,GAAQ;AAAA,UACnB,KAAKgZ;AAAA,UACL,UAAAxR;AAAA,UACA,OAAA2K;AAAA,UACA,cAAAuI;AAAA,UACA,UAAUpE;AAAA,UACV,QAAAmD;AAAA,UACA,SAAAD;AAAA,UACA,SAAAG;AAAA,UACA,WAAAD;AAAA,UACA,WAAWQ;AAAA,UACX,SAASrB;AAAA,QAAA;AAAA,MACb;AAAA,MACCL,KAAY,gBAAA3Y,EAACoa,GAAe,EAAA,WAAWja,GAAQ,WAAY,CAAA;AAAA,IAAA,GAChE;AAAA,EAAA;AAGZ;AAEAmf,GAAY,cAAc;;;;;GC9GpBI,KAAiB;AAAA,EAClB,SAAgB;AAAA,EAChB,SAAgB;AAAA,EAChB,UAAiB;AAAA,EACjB,YAAmB;AACxB,GAmBaC,KAAe9W;AAAA,EACxB,CACI;AAAA,IACI,WAAA/I;AAAA,IACA,aAAA8a,IAAc;AAAA,IACd,UAAAjT;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,cAAAe;AAAA,IACA,YAAAtC;AAAA,IACA,cAAAiB;AAAA,IACA,IAAIS;AAAA,IACJ,MAAAsF,IAAO;AAAA,IACP,MAAAtK,IAAO;AAAA,IACP,MAAA0C,IAAO;AAAA,IACP,wBAAAuC;AAAA,IACA,GAAGlR;AAAA,KAEPC,MACC;AACK,UAAAkQ,IAAW9Z,GAAe4J,CAAG,GAE7BZ,IAAKsO,GAAcsD,CAAM,GAEzBvB,IAAgB,EAAQH,KAAe,EAAQvP,EAAY,UAE3D,EAAC,iBAAAgQ,GAAiB,UAAAL,GAAU,aAAAlB,EAAA,IAAegB,GAAc,EAAC,YAAAF,GAAY,eAAAG,GAAc;AAEhE,IAAAQ,GAAAC,GAAUH,GAAiBkB,CAAsB,GAC3EX,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW;AAEjE,UAAA6B,IAAiBX,GAAkBd,CAAQ,GAC3ClC,IAAetP;AAAA,MACjB,CAACC,MAAyC;AACtC,QAAA0O,EAAS1O,CAAK;AAAA,MAClB;AAAA,MACA,CAAC0O,CAAQ;AAAA,IACb,GAEMuE,IAAgBlT,EAAY,MAAM;AACpC,MAAAsQ,EAAYH,EAAgB,KAAK;AAAA,IAAA,GAClC,CAACG,CAAW,CAAC,GAEVxG,IAAgB9J;AAAA,MAClB,CAACC,MAA2C;AAClC,cAAAwY,IAAcxY,EAAM,OAA4B;AACtD,YAAIA,EAAM,QAAQ,aAAauQ,MAAS,cAAkB;AACtD,gBAAMyG,KAAY,OAAOwB,KAAc,CAAC,IAAIL;AAC3C,UAAAnY,EAAM,OAA4B,QAAQgX,GAAU,SAAS;AAAA,QAAA;AAElE,YAAIhX,EAAM,QAAQ,eAAeuQ,MAAS,cAAkB;AACxD,gBAAMyG,KAAY,OAAOwB,KAAc,CAAC,IAAIL;AAC3C,UAAAnY,EAAM,OAA4B,QAAQgX,GAAU,SAAS;AAAA,QAAA;AAElE,QAAAvE,EAAUzS,CAAK;AAAA,MACnB;AAAA,MACA,CAACuQ,GAAMkC,GAAW0F,CAAI;AAAA,IAC1B,GAEMtC,IAAc9V;AAAA,MAChB,CAACC,MAA2C;AACxC,SACKA,EAAM,QAAQ,eAAeA,EAAM,QAAQ,cAC5CuQ,MAAS,iBAETvQ,EAAM,cAAc,eAAe,GACnC0O,EAAS1O,CAAiD,IAE9D0S,EAAQ1S,CAAK;AAAA,MACjB;AAAA,MACA,CAACuQ,GAAM7B,GAAUgE,CAAO;AAAA,IAC5B,GAEM+F,IAAUH,GAAe/H,CAAI;AAEnC,6BACK,OAAI,EAAA,WAAWzX,EAAWC,GAAQ,SAASL,CAAS,GACjD,UAAA;AAAA,MAAC,gBAAAE,EAAA,SAAA,EAAM,WAAWG,GAAQ,QAAQ,SAASkI,GACvC,UAAA,gBAAArI,EAACiF,MAAY,EACjB,CAAA;AAAA,MACA,gBAAAjF;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAGgJ;AAAA,UACJ,cAAa;AAAA,UACb,KAAKmQ;AAAA,UACL,MAAAlE;AAAA,UACA,IAAA5M;AAAA,UACA,MAAK;AAAA,UACL,WAAU;AAAA,UACV,SAAAwX;AAAA,UACA,aAAAjF;AAAA,UACA,WAAWza,GAAQ;AAAA,UACnB,UAAAwH;AAAA,UACA,OAAA2K;AAAA,UACA,cAAAuI;AAAA,UACA,UAAUpE;AAAA,UACV,QAAAmD;AAAA,UACA,SAAAD;AAAA,UACA,SAASsD;AAAA,UACT,WAAWhM;AAAA,UACX,WAAWoJ;AAAA,UACX,SAASrB;AAAA,QAAA;AAAA,MACb;AAAA,MACCL,uBAAayB,GAAe,CAAA,CAAA;AAAA,IAAA,GACjC;AAAA,EAAA;AAGZ;AAEAuF,GAAa,cAAc;;;;;;GClHdG,KAAWjX;AAAA,EACpB,CACI;AAAA,IACI,QAAQkM;AAAA,IACR,WAAAjV;AAAA,IACA,aAAA8a,IAAc;AAAA,IACd,UAAAjT;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,cAAAe;AAAA,IACA,IAAAxS;AAAA,IACA,UAAAyS;AAAA,IACA,MAAAiF,IAAO;AAAA,IACP,MAAAC,IAAO;AAAA,IACP,QAAAC,IAAS;AAAA,IACT,wBAAA/F;AAAA,IACA,YAAA3B;AAAA,IACA,cAAAiB;AAAA,IACA,GAAGxQ;AAAA,KAEPC,MACC;AACD,UAAMyP,IACF,EAAQH,KACR,EAAQvP,EAAY,YACpB,OAAOA,EAAY,aAAc,YACjC,OAAOA,EAAY,aAAc,UAE/B,EAAC,iBAAAgQ,GAAiB,UAAAL,GAAU,aAAAlB,EAAA,IAAegB,GAAc,EAAC,YAAAF,GAAY,eAAAG,GAAc,GAEpFS,IAAW9Z,GAAe4J,CAAG;AACT,IAAAiQ,GAAAC,GAAUH,GAAiBkB,CAAsB,GAC3EX,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW;AAEjE,UAAA6B,IAAiBX,GAAkBd,CAAQ,GAC3ClC,IAAetP;AAAA,MACjB,CAACC,MAA4C;AACzC,QAAA0O,EAAS1O,CAAK;AAAA,MAClB;AAAA,MACA,CAAC0O,CAAQ;AAAA,IACb,GAEMuE,IAAgBlT,EAAY,MAAM;AACpC,MAAAsQ,EAAYH,EAAgB,KAAK;AAAA,IAAA,GAClC,CAACG,CAAW,CAAC,GAEV6D,IAAcnU;AAAA,MAChB,CAACC,MAA4C;AACzC,QAAA4R,EAAgB5R,CAAK;AAAA,MACzB;AAAA,MACA,CAAC4R,CAAe;AAAA,IACpB,GAEM+B,IAAe5T;AAAA,MACjB,CAACC,MAA4C;AAC7B,QAAA0T,KAAA1T,EAAM,OAAO,OAAO;AAAA,MACpC;AAAA,MACA,CAAC0T,CAAQ;AAAA,IACb,GAEMoF,IAAavJ,GAActO,CAAE,GAE7B,EAAC,WAAAuJ,EAAS,IAAIlB,EAAc,GAE5BvR,KAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,QAAAoY;AAAA,MAAA;AAAA,MAEJ,CAACA,CAAM;AAAA,IACX;AAGI,WAAA,gBAAAlY,EAAC6J,KAAU,OAAAzS,IAAc,WAAWe,EAAWC,GAAQ,SAASL,CAAS,GACpE,UAAA;AAAA,MACGiV,KAAA,gBAAA/U,EAAC,WAAM,WAAWG,GAAQ,QAAQ,SAAS+f,GACvC,UAAC,gBAAAlgB,EAAA+U,GAAA,CAAA,CAAO,EACZ,CAAA;AAAA,MAEJ,gBAAA/U;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAGgJ;AAAA,UACJ,MAAA+W;AAAA,UACA,MAAAC;AAAA,UACA,UAAAlF;AAAA,UACA,IAAIoF;AAAA,UACJ,aAAAtF;AAAA,UACA,WAAWza,GAAQ;AAAA,UACnB,KAAKgZ;AAAA,UACL,UAAAxR;AAAA,UACA,OAAA2K;AAAA,UACA,cAAAuI;AAAA,UACA,UAAUpE;AAAA,UACV,QAAAmD;AAAA,UACA,SAAAD;AAAA,UACA,SAAAG;AAAA,UACA,WAAAD;AAAA,UACA,WAAWQ;AAAA,UACX,SAASiB;AAAA,UACT,UAAUP;AAAA,QAAA;AAAA,MACd;AAAA,MACCpC,KAAY,gBAAA3Y,EAACoa,GAAe,EAAA,WAAWja,GAAQ,WAAY,CAAA;AAAA,IAAA,GAChE;AAAA,EAAA;AAGZ;AAEA2f,GAAS,cAAc;;;;;;;;GC3HVK,KAAStX;AAAA,EAClB,CACI;AAAA,IACI,QAAQkM;AAAA,IACR,WAAAjV;AAAA,IACA,UAAA6H;AAAA,IACA,OAAA2K;AAAA,IACA,UAAAwD,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,SAAA6D,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,WAAAC,IAAY,MAAM;AAAA,IAAC;AAAA,IACnB,SAAAC,IAAU,MAAM;AAAA,IAAC;AAAA,IACjB,IAAAzR;AAAA,IACA,UAAA+X;AAAA,IACA,UAAAtX;AAAA,IACA,MAAAmM,IAAO;AAAA,IACP,wBAAAiF;AAAA,IACA,YAAA3B;AAAA,IACA,cAAAiB;AAAA,IACA,GAAGxQ;AAAA,KAEPC,MACC;AACK,UAAA,EAAC,WAAA2I,EAAS,IAAIlB,EAAc,GAC5BvR,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,gBAAgB,GAAGoN,CAAI;AAAA,MAAA;AAAA,MAE3B,CAACA,CAAI;AAAA,IACT,GAEMyD,IAAgB,EAAQH,GAExB,EAAC,iBAAAS,GAAiB,UAAAL,GAAU,aAAAlB,EAAA,IAAegB,GAAc,EAAC,YAAAF,GAAY,eAAAG,GAAc,GAEpFS,IAAW9Z,GAAe4J,CAAG;AACT,IAAAiQ,GAAAC,GAAUH,GAAiBkB,CAAsB,GAC3EX,GAAsB,EAAC,cAAAC,GAAc,UAAAL,GAAU,aAAA1B,GAAa,YAAAc,GAAW;AAEjE,UAAA6B,IAAiBX,GAAkBd,CAAQ,GAC3ClC,IAAetP;AAAA,MACjB,CAACC,MAA0C;AACvC,QAAA0O,EAAS1O,CAAK;AAAA,MAClB;AAAA,MACA,CAAC0O,CAAQ;AAAA,IACb,GAEMuE,IAAgBlT,EAAY,MAAM;AACpC,MAAAsQ,EAAYH,EAAgB,KAAK;AAAA,IAAA,GAClC,CAACG,CAAW,CAAC,GAEV4I,IAAW1J,GAActO,CAAE;AAG7B,WAAA,gBAAAN,EAAC6J,KAAU,OAAAzS,GAAc,WAAWe,EAAWC,GAAQ,SAASL,CAAS,GACpE,UAAA;AAAA,MACGiV,KAAA,gBAAA/U,EAAC,WAAM,WAAWG,GAAQ,QAAQ,SAASkgB,GACvC,UAAC,gBAAArgB,EAAA+U,GAAA,CAAA,CAAO,EACZ,CAAA;AAAA,MAEH,gBAAAhN,EAAA,OAAA,EAAI,WAAW5H,GAAQ,aACpB,UAAA;AAAA,QAAA,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YACI,GAAGgJ;AAAA,YACJ,IAAIqX;AAAA,YACJ,UAAAD;AAAA,YACA,WAAWjgB,GAAQ;AAAA,YACnB,KAAKgZ;AAAA,YACL,UAAAxR;AAAA,YACA,OAAA2K;AAAA,YACA,UAAUmE;AAAA,YACV,SAAAkD;AAAA,YACA,QAAAC;AAAA,YACA,SAAAE;AAAA,YACA,WAAAD;AAAA,YACA,WAAWQ;AAAA,YACX,SAASrB;AAAA,YACR,UAAAlQ;AAAA,UAAA;AAAA,QACL;AAAA,QACC,CAACsX,KAAY,gBAAApgB,EAACiB,IAAW,EAAA,WAAWd,GAAQ,KAAM,CAAA;AAAA,MAAA,GACvD;AAAA,MACCwY,KAAY,gBAAA3Y,EAACoa,GAAe,EAAA,WAAWja,GAAQ,WAAY,CAAA;AAAA,IAAA,GAChE;AAAA,EAAA;AAGZ;AAEAggB,GAAO,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GC3GRG,KAAkBzX;AAAA,EAC3B,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,OAAK,EAAA,GAAGgJ,GAAa,KAAAC,GAAU,WAAW/I,EAAWC,EAAQ,MAAML,CAAS,GACxE,UAAAgJ,EACL,CAAA;AAGZ;AAEAwX,GAAK,cAAc;ACVZ,MAAMC,KAAI1X;AAAA,EACb,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,KAAG,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,WAAWL,CAAS,GAAG,KAAAmJ,GACpE,UAAAH,EACL,CAAA;AAGZ;AAEAyX,GAAE,cAAc;ACVT,MAAMC,KAAK3X;AAAA,EACd,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,MAAI,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,IAAIL,CAAS,GAAG,KAAAmJ,GAC9D,UAAAH,EACL,CAAA;AAGZ;AAEA0X,GAAG,cAAc;AAEV,MAAMC,KAAK5X;AAAA,EACd,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,MAAI,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,IAAIL,CAAS,GAAG,KAAAmJ,GAC9D,UAAAH,EACL,CAAA;AAGZ;AAEA2X,GAAG,cAAc;AAEV,MAAMC,KAAK7X;AAAA,EACd,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGgJ;AAAA,MACJ,WAAW9I,EAAWC,EAAQ,kBAAkB,GAAGL,CAAS;AAAA,MAC5D,KAAAmJ;AAAA,MACC,UAAAH;AAAA,IAAA;AAAA,EACL;AAGZ;AAEA4X,GAAG,cAAc;ACrCV,MAAMC,KAAI9X;AAAA,EACb,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,MAAA8gB,IAAO,KAAK,GAAG5X,EAAW,GAAGC,MAE5C,gBAAAjJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGgJ;AAAA,MACJ,MAAA4X;AAAA,MACA,WAAW1gB,EAAWC,EAAQ,MAAML,CAAS;AAAA,MAC7C,KAAAmJ;AAAA,MACC,UAAAH;AAAA,IAAA;AAAA,EACL;AAGZ;AAEA6X,GAAE,cAAc;AAEH,MAAAE,KAAIhY,EAA+B,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAW,GAAGC,MAEhF,gBAAAjJ,EAAC,KAAG,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,MAAML,CAAS,GAAG,KAAAmJ,GAC/D,UAAAH,EACL,CAAA,CAEP;AAED+X,GAAE,cAAc;AAET,MAAMC,KAASjY;AAAA,EAClB,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,UAAQ,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,QAAQL,CAAS,GAAG,KAAAmJ,GACtE,UAAAH,EACL,CAAA;AAGZ;AAEAgY,GAAO,cAAc;AAErBD,GAAE,cAAc;AAEH,MAAAE,KAAIlY,EAA+B,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAW,GAAGC,MAEhF,gBAAAjJ,EAAC,KAAG,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,QAAQL,CAAS,GAAG,KAAAmJ,GACjE,UAAAH,EACL,CAAA,CAEP;AAEDiY,GAAE,cAAc;AAEH,MAAAC,KAAKnY,EAA+B,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAW,GAAGC,MAEjF,gBAAAjJ,EAAC,MAAI,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,YAAYL,CAAS,GAAG,KAAAmJ,GACtE,UAAAH,EACL,CAAA,CAEP;AAEDkY,GAAG,cAAc;AAEJ,MAAAC,KAAOpY,EAA+B,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAW,GAAGC,MAEnF,gBAAAjJ,EAAC,QAAM,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,QAAQL,CAAS,GAAG,KAAAmJ,GACpE,UAAAH,EACL,CAAA,CAEP;AAEDmY,GAAK,cAAc;AAEZ,MAAMC,KAAQrY;AAAA,EACjB,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,SAAO,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,OAAOL,CAAS,GAAG,KAAAmJ,GACpE,UAAAH,EACL,CAAA;AAGZ;AAEAoY,GAAM,cAAc;AAEb,MAAMC,KAAMtY;AAAA,EACf,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,OAAK,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,SAASL,CAAS,GAAG,KAAAmJ,GACpE,UAAAH,EACL,CAAA;AAGZ;AAEAqY,GAAI,cAAc;AAEX,MAAMC,KAAMvY;AAAA,EACf,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,OAAK,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,UAAUL,CAAS,GAAG,KAAAmJ,GACrE,UAAAH,EACL,CAAA;AAGZ;AAEAsY,GAAI,cAAc;AAEL,MAAAC,KAAMxY,EAA+B,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAW,GAAGC,MAElF,gBAAAjJ,EAAC,OAAK,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,WAAWL,CAAS,GAAG,KAAAmJ,GACtE,UAAAH,EACL,CAAA,CAEP;AAEDuY,GAAI,cAAc;AAEL,MAAAC,KAAMzY,EAA+B,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAW,GAAGC,MAElF,gBAAAjJ,EAAC,OAAK,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,aAAaL,CAAS,GAAG,KAAAmJ,GACxE,UAAAH,EACL,CAAA,CAEP;AAEDwY,GAAI,cAAc;AAEL,MAAAC,KAAM1Y,EAA+B,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAW,GAAGC,MAElF,gBAAAjJ,EAAC,OAAK,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,UAAUL,CAAS,GAAG,KAAAmJ,GACrE,UAAAH,EACL,CAAA,CAEP;AAEDyY,GAAI,cAAc;AAEL,MAAAC,KAAO3Y,EAA+B,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAW,GAAGC,MAEnF,gBAAAjJ,EAAC,QAAM,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,MAAML,CAAS,GAAG,KAAAmJ,GAClE,UAAAH,EACL,CAAA,CAEP;AAED0Y,GAAK,cAAc;AAEN,MAAAC,KAAI5Y,EAA+B,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAW,GAAGC,MAEhF,gBAAAjJ,EAAC,KAAG,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,eAAeL,CAAS,GAAG,KAAAmJ,GACxE,UAAAH,EACL,CAAA,CAEP;AAED2Y,GAAE,cAAc;AC1JT,MAAMC,KAAK7Y;AAAA,EACd,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,MAAI,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,SAASL,CAAS,GAAG,KAAAmJ,GACnE,UAAAH,EACL,CAAA;AAGZ;AAEA4Y,GAAG,cAAc;AAEV,MAAMC,KAAK9Y;AAAA,EACd,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,MAAI,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,SAASL,CAAS,GAAG,KAAAmJ,GACnE,UAAAH,EACL,CAAA;AAGZ;AAEA6Y,GAAG,cAAc;AAEV,MAAMxU,KAAKtE;AAAA,EACd,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,MAAI,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,SAASL,CAAS,GAAG,KAAAmJ,GACnE,UAAAH,EACL,CAAA;AAGZ;AAEAqE,GAAG,cAAc;AAEV,MAAMyU,KAAK/Y;AAAA,EACd,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,MAAI,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,SAASL,CAAS,GAAG,KAAAmJ,GACnE,UAAAH,EACL,CAAA;AAGZ;AAEA8Y,GAAG,cAAc;AAEV,MAAMC,KAAKhZ;AAAA,EACd,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,MAAI,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,SAASL,CAAS,GAAG,KAAAmJ,GACnE,UAAAH,EACL,CAAA;AAGZ;AAEA+Y,GAAG,cAAc;AAEV,MAAMC,KAAKjZ;AAAA,EACd,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,MAAI,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,SAASL,CAAS,GAAG,KAAAmJ,GACnE,UAAAH,EACL,CAAA;AAGZ;AAEAgZ,GAAG,cAAc;ACtEV,MAAMC,KAAalZ;AAAA,EACtB,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGgJ;AAAA,MACJ,WAAW9I,EAAWC,EAAQ,YAAYL,CAAS;AAAA,MACnD,KAAAmJ;AAAA,MACC,UAAAH;AAAA,IAAA;AAAA,EACL;AAGZ;AAEAiZ,GAAW,cAAc;ACblB,MAAMC,KAAMnZ;AAAA,EACf,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,OAAK,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,cAAcL,CAAS,GAAG,KAAAmJ,GACzE,UAAAH,EACL,CAAA;AAGZ;AAEAkZ,GAAI,cAAc;ACRX,MAAMC,KAAQpZ;AAAA,EACjB,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,YAAAoiB,GAAY,kBAAAC,GAAkB,GAAGnZ,EAAW,GAAGC,MAE9D,gBAAAjJ,EAAC,SAAI,KAAKkiB,GAAY,WAAWhiB,EAAWC,EAAQ,cAAcgiB,CAAgB,GAC9E,UAAA,gBAAAniB,EAAC,WAAO,GAAGgJ,GAAa,WAAW9I,EAAWC,EAAQ,OAAOL,CAAS,GAAG,KAAAmJ,GACpE,UAAAH,EAAA,CACL,EACJ,CAAA;AAGZ;AAEAmZ,GAAM,cAAc;ACVb,MAAMG,KAAQvZ;AAAA,EACjB,CAAC,EAAC,KAAA0V,GAAK,KAAAD,GAAK,OAAAhM,GAAO,KAAA+P,GAAK,MAAAC,GAAM,SAAAC,GAAS,WAAAziB,GAAW,GAAGkJ,EAAW,GAAGC,MAE3D,gBAAAjJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGgJ;AAAA,MACJ,KAAAsV;AAAA,MACA,KAAAC;AAAA,MACA,KAAA8D;AAAA,MACA,MAAAC;AAAA,MACA,SAAAC;AAAA,MACA,OAAAjQ;AAAA,MACA,WAAWpS,EAAWC,EAAQ,OAAOL,CAAS;AAAA,MAC9C,KAAAmJ;AAAA,MACC,UAAAqJ;AAAA,IAAA;AAAA,EACL;AAGZ;AAEA8P,GAAM,cAAc;;;;GCdPI,KAAS3Z;AAAA,EAClB,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,SAAA2iB,GAAS,UAAAC,IAAW,UAAkB,GAAG1Z,EAAW,GAAGC,MAAQ;AAClF,UAAM9J,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,UAAA6a;AAAA,MAAA;AAAA,MAEJ,CAACA,CAAQ;AAAA,IACb,GACM,EAAC,WAAA9Q,EAAS,IAAIlB,EAAc;AAClC,WACK,gBAAA1Q,EAAA4R,GAAA,EAAU,OAAAzS,GAAc,WAAWgB,GAAQ,SACxC,UAAA,gBAAA4H;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAGiB;AAAA,QACJ,WAAW9I,EAAWC,GAAQ,QAAQL,CAAS;AAAA,QAC/C,KAAAmJ;AAAA,QACC,UAAA;AAAA,UAAAH;AAAA,UACA2Z,KAAY,gBAAAziB,EAAA,cAAA,EAAY,UAAQyiB,EAAA,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAEzC;AAAA,EAAA;AAGZ;AAEAD,GAAO,cAAc;;;;;;;;GC3CRG,KAAgB,CAACC,MACtBA,MAAa,SACN,SACAA,MAAa,UACb,SAEJ,GAAGA,CAAQ,MCSTC,KAAgBha;AAAA,EACzB,CACI;AAAA,IACI,WAAA/I;AAAA,IACA,OAAAsU,IAAQ;AAAA,IACR,QAAA0O;AAAA,IACA,cAAAC,IAAe;AAAA,IACf,SAAAC,IAAU;AAAA,IACV,SAAAC,IAAU;AAAA,IACV,GAAGja;AAAA,KAEPC,MACC;AACD,UAAM,EAAC,WAAA2I,GAAW,KAAKrS,EAAA,IAAYmR,EAA8B;AACjE,IAAAiC,GAAY1J,GAAK1J,CAAQ;AACzB,UAAMJ,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,OAAO8a,GAAcvO,CAAK;AAAA,QAC1B,QAAQuO,GAAcG,CAAM;AAAA,QAC5B,iBAAiBC;AAAA,QACjB,YAAYC;AAAA,QACZ,YAAYC;AAAA,MAAA;AAAA,MAEhB,CAACF,GAAcD,GAAQG,GAASD,GAAS5O,CAAK;AAAA,IAClD;AAEI,WAAA,gBAAApU;AAAA,MAAC4R;AAAA,MAAA;AAAA,QACI,GAAG5I;AAAA,QACJ,OAAA7J;AAAA,QACA,WAAWe,EAAWC,GAAQ,eAAeL,CAAS;AAAA,MAAA;AAAA,IAC1D;AAAA,EAAA;AAGZ;AAEA+iB,GAAc,cAAc;AChCrB,MAAMK,KAAiBra;AAAA,EAC1B,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,OAAAsU,IAAQ;AAAA,IACR,QAAA0O,IAAS;AAAA,IACT,SAAAE,IAAU;AAAA,IACV,SAAAC,IAAU;AAAA,IACV,QAAAE,IAAS;AAAA,IACT,GAAGna;AAAA,KAEPC,MACC;AACD,UAAM,EAAC,WAAA2I,GAAW,KAAKrS,EAAA,IAAYmR,EAA8B;AACjE,IAAAiC,GAAY1J,GAAK1J,CAAQ;AACzB,UAAMJ,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,OAAO8a,GAAcvO,CAAK;AAAA,QAC1B,QAAQuO,GAAcG,CAAM;AAAA,QAC5B,YAAYE;AAAA,QACZ,YAAYC;AAAA,MAAA;AAAA,MAEhB,CAACH,GAAQG,GAASD,GAAS5O,CAAK;AAAA,IACpC;AAEI,WAAA,gBAAArM;AAAA,MAAC6J;AAAA,MAAA;AAAA,QACI,GAAG5I;AAAA,QACJ,WAAW9I,EAAWC,GAAQ,gBAAgBL,CAAS;AAAA,QACvD,OAAAX;AAAA,QACA,UAAA;AAAA,UAAA,gBAAAa,EAAC6iB,IAAc,EAAA,WAAW1iB,GAAQ,gBAAgB,QAAQ,IAAI;AAAA,UAC7DgjB,KAAW,gBAAAnjB,EAAA6iB,IAAA,EAAc,WAAW1iB,GAAQ,gBAAgB,QAAQ,GAAI,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAC7E;AAAA,EAAA;AAGZ;AAEA+iB,GAAe,cAAc;ACtCtB,MAAME,KAAgBva;AAAA,EACzB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,OAAAsU,IAAQ;AAAA,IACR,QAAA0O;AAAA,IACA,cAAAC,IAAe;AAAA,IACf,SAAAC,IAAU;AAAA,IACV,SAAAC,IAAU;AAAA,IACV,GAAGja;AAAA,KAEPC,MACC;AACD,UAAM,EAAC,WAAA2I,GAAW,KAAKrS,EAAA,IAAYmR,EAA8B;AACjE,IAAAiC,GAAY1J,GAAK1J,CAAQ;AACzB,UAAMJ,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,OAAO8a,GAAcvO,CAAK;AAAA,QAC1B,QAAQuO,GAAcG,CAAM;AAAA,QAC5B,iBAAiBC;AAAA,QACjB,YAAYC;AAAA,QACZ,YAAYC;AAAA,MAAA;AAAA,MAEhB,CAACF,GAAcD,GAAQG,GAASD,GAAS5O,CAAK;AAAA,IAClD;AAEI,WAAA,gBAAApU;AAAA,MAAC4R;AAAA,MAAA;AAAA,QACI,GAAG5I;AAAA,QACJ,OAAA7J;AAAA,QACA,WAAWe,EAAWC,GAAQ,eAAeL,CAAS;AAAA,QACrD,UAAAgJ;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGZ;AAEAsa,GAAc,cAAc;ACxDf,MAAAC,KAAc,CAACC,MACjB,IAAI,MAAMA,CAAM,EAAE,KAAK,EAAE,GCcvBC,KAAe1a;AAAA,EACxB,CACI;AAAA,IACI,WAAA/I;AAAA,IACA,OAAAsU,IAAQ;AAAA,IACR,QAAA0O;AAAA,IACA,OAAOU,IAAY;AAAA,IACnB,SAAAR,IAAU;AAAA,IACV,SAAAC,IAAU;AAAA,IACV,GAAGja;AAAA,KAEPC,MACC;AACD,UAAM,EAAC,WAAA2I,GAAW,KAAKrS,EAAA,IAAYmR,EAA8B;AACjE,IAAAiC,GAAY1J,GAAK1J,CAAQ;AACzB,UAAMJ,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,OAAO8a,GAAcvO,CAAK;AAAA,QAC1B,QAAQuO,GAAcG,CAAM;AAAA,QAC5B,YAAYE;AAAA,QACZ,YAAYC;AAAA,MAAA;AAAA,MAEhB,CAACH,GAAQG,GAASD,GAAS5O,CAAK;AAAA,IACpC,GACMqP,IAAWD,MAAc,GACzBE,IAAQL,GAAYG,IAAY,CAAC;AAEnC,WAAA,gBAAAzb;AAAA,MAAC6J;AAAA,MAAA;AAAA,QACI,GAAG5I;AAAA,QACJ,WAAW9I,EAAWC,GAAQ,cAAcL,CAAS;AAAA,QACrD,OAAAX;AAAA,QACC,UAAA;AAAA,UAAAskB,KAAa,gBAAAzjB,EAAA6iB,IAAA,EAAc,SAAS,GAAG,QAAQ,IAAI;AAAA,UACnD,CAACY,KACEC,EAAM,IAAI,CAACzQ,GAAGzK,wBACFqa,IAAc,EAAA,SAAS,GAAW,QAAQ,MAAXra,CAAe,CACzD;AAAA,UACJ,CAACib,KACE,gBAAAzjB,EAAC6iB,IAAc,EAAA,SAAS,GAAG,WAAW1iB,GAAQ,WAAW,QAAQ,GAAI,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAE7E;AAAA,EAAA;AAGZ;AAEAojB,GAAa,cAAc;;;;;;GC6CdI,KAAU9a;AAAA,EACnB,CAAC,EAAC,WAAA/I,GAAW,KAAA8jB,GAAK,KAAAC,GAAK,SAAAC,GAAS,OAAA1P,GAAO,QAAA0O,GAAQ,SAAAiB,IAAU,QAAQ,GAAG/a,EAAA,GAAcC,MAAQ;AACtF,UAAM,CAAC+a,GAAUC,CAAS,IAAInd,EAAS,EAAK,GACtCod,IAAa/c,EAAY,MAAM;AACjC,MAAA8c,EAAU,EAAI;AAAA,IAClB,GAAG,EAAE;AACL,WACK,gBAAAlc,EAAA,OAAA,EAAI,WAAW5H,GAAQ,SACpB,UAAA;AAAA,MAAA,gBAAA4H;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAGiB;AAAA,UACJ,WAAW9I;AAAA,YACPC,GAAQ;AAAA,YACR,EAAC,CAACA,GAAQ,OAAO,GAAG,CAAC6jB,EAAQ;AAAA,YAC7BlkB;AAAA,UACJ;AAAA,UACA,KAAAmJ;AAAA,UACA,QAAQib;AAAA,UACP,UAAA;AAAA,YAASJ,KAAA,gBAAAA,EAAA;AAAA,cACN,CAAC;AAAA,gBACG,KAAAD;AAAAA,gBACA,gBAAAM;AAAA,gBACA,SAAAC,IAAU;AAAA,gBACV,gBAAAC;AAAA,gBACA,WAAAC,IAAY;AAAA,gBACZ,MAAA7c;AAAA,gBACA,OAAO8c;AAAA,gBACP,QAAQC;AAAA,cAAA,MAIJ,gBAAAxkB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,MAAAyH;AAAA,kBACA,QAAQ,GAAGoc,CAAG,IAJLQ,KAAkBD,CAID;AAAA,kBAC1B,OAAO,GAAGD,CAAc,IAAIG,CAAS;AAAA,kBACrC,OAAOC;AAAA,kBACP,QAAQC;AAAA,gBAAA;AAAA,gBACHX;AAAAA,cACT;AAAA;AAAA,8BAIX,OAAI,EAAA,OAAAzP,GAAc,QAAA0O,GAAgB,SAAAiB,GAAkB,KAAAF,GAAU,KAAAD,EAAU,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC7E;AAAA,MACC,CAACI,KACG,gBAAAhkB,EAAA6iB,IAAA,EAAc,OAAAzO,GAAc,QAAA0O,GAAgB,WAAW3iB,GAAQ,SAAU,CAAA;AAAA,IAAA,GAElF;AAAA,EAAA;AAGZ;AAEAwjB,GAAQ,cAAc;ACxJT,MAAAc,KAAoB,CAC7Bve,GACAwe,MACC;AACD,EAAArb,GAAoB,MAAM;AACtB,UAAMsb,IAAe,MAAM;AACvB,MAAAD,EAASxe,CAAO;AAAA,IACpB;AAEA,QAAIA,GAAS;AACH,YAAA0e,IAAW,IAAI,eAAeD,CAAY;AAChD,aAAAC,EAAS,QAAQ1e,CAAO,GACjB,MAAM;AACT,QAAA0e,EAAS,WAAW;AAAA,MACxB;AAAA,IAAA;AAAA,EACJ,GACD,CAACF,GAAUxe,CAAO,CAAC;AAC1B;;;;;;;;;;;;GCda2e,KAAkD,CAAC,EAAC,UAAA/b,GAAU,OAAAgc,QAAW;AAClF,QAAM3lB,IAAQ0I;AAAA,IACV,OAAO;AAAA,MACH,OAAAid;AAAA,IAAA;AAAA,IAEJ,CAACA,CAAK;AAAA,EACV,GACM,EAAC,WAAAlT,EAAS,IAAIlB,EAAc;AAElC,2BACKkB,GAAU,EAAA,OAAAzS,GAAc,WAAWgB,GAAQ,MACvC,UAAA2I,GACL;AAER,GCdaic,KAA6C,CAAC,EAAC,QAAAC,GAAQ,QAAAC,QAAY;AACtE,QAAAC,IAAYrd,EAAQ,MAAM,MAAM,KAAK,MAAMmd,CAAM,CAAC,GAAG,CAACA,CAAM,CAAC;AAE/D,SAAA,gBAAAhlB,EAAC,SAAI,WAAWG,GAAQ,MACnB,UAAU+kB,EAAA,IAAI,CAACjS,GAAGzK,MAAM;AACrB,UAAM2c,IAAW3c,MAAMyc;AAEnB,WAAA,gBAAAjlB;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAWE,EAAWC,GAAQ,KAAK,EAAC,CAACA,GAAQ,MAAM,GAAGglB,EAAS,CAAA;AAAA,MAAA;AAAA,MAC1D3c;AAAA,IACT;AAAA,EAEP,CAAA,GACL;AAER,GClBa4c,KAAkB,CAACnc,MAA8C;AAC1E,QAAM,CAACoc,GAAgBC,CAAiB,IAAIxe,EAAS,EAAK,GAEpD8d,IAAW/c;AAAA,IACb,MAAM,IAAI,qBAAqB,CAAC,CAAC0d,CAAK,MAAMD,EAAkBC,EAAM,cAAc,CAAC;AAAA,IACnF,CAAA;AAAA,EACJ;AAEA,SAAAlf,EAAU,OACN4C,EAAI,WAAW2b,EAAS,QAAQ3b,EAAI,OAAO,GAEpC,MAAM;AACT,IAAA2b,EAAS,WAAW;AAAA,EACxB,IACD,CAAC3b,GAAK2b,CAAQ,CAAC,GAEXS;AACX,GCjBaG,KAAqB,MAAM;AACpC,QAAM,CAACC,GAAiBC,CAAkB,IAAI5e,EAAS,SAAS,eAAe;AAE/E,SAAAT,EAAU,MAAM;AACZ,UAAMsf,IAAyB,MAAMD,EAAmB,SAAS,eAAe;AAEvE,oBAAA,iBAAiB,oBAAoBC,CAAsB,GAE7D,MAAM,SAAS,oBAAoB,oBAAoBA,CAAsB;AAAA,EACxF,GAAG,EAAE,GAEEF,MAAoB;AAC/B,GCHaG,KAAgB,CAAC,EAAC,UAAAC,GAAU,UAAAhW,IAAW,MAAM,KAAA5G,QAAgB;AAChE,QAAA6c,IAAeV,GAAgBnc,CAAG,GAClC8c,IAAcP,GAAmB;AAEvC,EAAA5V,GAAY,EAAC,UAAUiW,GAAU,UAAAhW,GAAU,WADzB,EAAQA,KAAaiW,KAAgBC,GACS;AACpE,GCYMC,KAAkB,CAAClB,GAAexB,MAC7BwB,IAAQxB,KAAU,IAAIwB,IAAQxB,IAASA,IAAUwB,IAAQxB,GAQvD2C,KAAWpd;AAAA,EACpB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,OAAAsU;AAAA,IACA,QAAA0O;AAAA,IACA,gBAAAoD,IAAiB;AAAA,IACjB,UAAAC,IAAW;AAAA,IACX,YAAAC,IAAa;AAAA,IACb,YAAAC;AAAA,IACA,UAAAC,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,GAAGtd;AAAA,KAEPC,MACC;;AACD,UAAMoC,IAAe6a,MAAmB,IAAIA,IAAiB,IAAIA,GAE3D,CAACK,GAASC,CAAU,IAAI1f,EAASuE,CAAY,GAE7Cob,IAAcvP,GAAS,QAAQpO,CAAQ,EAAE,QAEzC,EAAC,WAAA8I,GAAW,KAAKrS,EAAA,IAAYmR,EAA8B;AAEjE,IAAAiC,GAAY1J,GAAK1J,CAAQ;AAEnB,UAAAmnB,IAAclnB,GAAuB,IAAI,GAEzC,CAACmnB,GAAcC,CAAe,IAAI9f,EAASsN,CAAK,GAChD,CAACyS,GAAeC,CAAgB,IAAIhgB,EAASgc,CAAM,GAEnD6B,IAAexd;AAAA,MACjB,CAAC4f,MAAmC;AAChC,cAAMC,IAAcD,KAAA,gBAAAA,EAAQ;AACxB,YAAAC,KAAeA,IAAcL,GAAc;AACrC,gBAAAM,IAAanE,KAAUkE,IAAc5S;AAC3C,UAAAwS,EAAgBI,CAAW,GAC3BF,EAAiBG,CAAU;AAAA,QAAA,MAC/B,CAAWD,KAAeA,IAAcL,MACpCC,EAAgBxS,CAAK,GACrB0S,EAAiBhE,CAAM;AAAA,MAE/B;AAAA,MACA,CAAC6D,GAAc7D,GAAQ1O,CAAK;AAAA,IAChC;AAEkBqQ,IAAAA,IAAAxd,IAAA1H,EAAS,YAAT,gBAAA0H,EAAkB,eAAiC0d,CAAY;AAEjF,UAAMxlB,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,OAAO8e;AAAA,QACP,QAAQE;AAAA,QACR,gBAAgBJ;AAAA,QAChB,WAAWF;AAAA,MAAA;AAAA,MAEf,CAACI,GAAcE,GAAeJ,GAAaF,CAAO;AAAA,IACtD,GAEMW,IAAelB,GAAgBO,GAASE,CAAW,GAEnDhH,IAAkBtY,EAAY,MAAM;AACtC,YAAMggB,IAAcZ,IAAU;AAC9B,MAAAC,EAAWW,CAAW,GACbb,EAAAN,GAAgBmB,GAAaV,CAAW,CAAC;AAAA,IACnD,GAAA,CAACF,GAASD,GAAUG,CAAW,CAAC,GAE7BjH,IAAkBrY,EAAY,MAAM;AACtC,YAAMggB,IAAcZ,IAAU;AAC9B,MAAAC,EAAWW,CAAW,GACbb,EAAAN,GAAgBmB,GAAaV,CAAW,CAAC;AAAA,IACnD,GAAA,CAACF,GAASD,GAAUG,CAAW,CAAC,GAE7BW,IAAejgB,EAAY,MAAM;AACnC,MAAAqf,EAAWD,IAAU,CAAC;AAAA,IAAA,GACvB,CAACA,GAASC,CAAU,CAAC;AAEV,IAAAZ,GAAA;AAAA,MACV,UAAUwB;AAAA,MACV,UAAUf,KAAcA,IAAa;AAAA,MACrC,KAAK9mB;AAAA,IAAA,CACR;AAED,UAAM8nB,IAAQxf;AAAA,MACV,MACIqP,GAAS,QAAQpO,CAAQ,EAAE,IAAI,CAAC5C,GAAS4e,MAEhC,gBAAA9kB,EAAA6kB,IAAA,EAAK,OAAAC,GACD,UAAA5e,EAAA,GADoB4e,CAEzB,CAEP;AAAA,MACL,CAAChc,CAAQ;AAAA,IACb;AAGI,WAAA,gBAAAf;AAAA,MAAC6J;AAAA,MAAA;AAAA,QACI,GAAG5I;AAAA,QACJ,OAAA7J;AAAA,QACA,WAAWe,EAAWC,GAAQ,UAAUL,CAAS;AAAA,QACjD,UAAA;AAAA,UAAC,gBAAAiI,EAAA,OAAA,EAAI,WAAW5H,GAAQ,OACnB,UAAA;AAAA,YACGimB,KAAA,gBAAApmB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACG,WAAWE,EAAWC,GAAQ,YAAYA,GAAQ,IAAI;AAAA,gBACtD,SAASqf;AAAA,gBACT,UAAC,gBAAAxf,EAAA6B,IAAA,EAAc,WAAW1B,GAAQ,KAAM,CAAA;AAAA,cAAA;AAAA,YAC5C;AAAA,8BAEH,OAAI,EAAA,WAAWA,GAAQ,UAAU,KAAKumB,GAClC,UACLW,GAAA;AAAA,YACCjB,KACG,gBAAApmB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACG,WAAWE,EAAWC,GAAQ,YAAYA,GAAQ,KAAK;AAAA,gBACvD,SAASsf;AAAA,gBACT,UAAC,gBAAAzf,EAAA+B,IAAA,EAAe,WAAW5B,GAAQ,KAAM,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAC7C,GAER;AAAA,UACCgmB,KACI,gBAAAnmB,EAAA+kB,IAAA,EAAK,QAAQ7N,GAAS,QAAQpO,CAAQ,EAAE,QAAQ,QAAQoe,EAAc,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAE/E;AAAA,EAAA;AAGZ;AAEAjB,GAAS,cAAc;AC1JV,MAAAqB,KAAgB,CACzBre,MACC;AACD,QAAM,CAACse,GAAaC,CAAc,IAAI1gB,EAAS,CAAC,GAC1C,CAAC2gB,GAAcC,CAAe,IAAI5gB,EAAS,CAAC,GAC5C,CAAC6gB,GAAWC,CAAY,IAAI9gB,EAA8B,MAAS,GACnE,CAAC+gB,GAAWC,CAAY,IAAIhhB,EAA8B,MAAS,GAEnE6d,IAAexd,EAAY,MAAM;AAC7B,UAAA,EAAC,SAAA4gB,MAAW9e;AAElB,QAAI8e,GAAS;AACH,YAAAC,IAAeP,IAAeM,EAAQ,cACtCE,IAAeV,IAAcQ,EAAQ;AAC3C,MAAAH,EAAaI,CAAY,GACzBF,EAAaG,CAAY;AAAA,IAAA;AAAA,EAE9B,GAAA,CAAChf,GAAKwe,GAAcF,CAAW,CAAC,GAE7BW,IAAwBC,GAAqBxD,GAAc,KAAK,EAAC,UAAU,IAAK;AAEtF,SAAA5e,GAAiB,UAAUmiB,CAAqB,GAEhD7hB,EAAU,MAAM;AACN,UAAA,EAAC,SAAA0hB,MAAW9e;AAElB,QAAI8e,GAAS;AACT,MAAAP,EAAeO,EAAQ,WAAW,GAClCL,EAAgBK,EAAQ,YAAY;AAC9B,YAAAC,IAAeD,EAAQ,eAAeA,EAAQ,cAC9CE,IAAeF,EAAQ,cAAcA,EAAQ;AAEnD,MAAAH,EAAaI,CAAY,GACzBF,EAAaG,CAAY;AAAA,IAAA;AAAA,EAC7B,GACD,CAAChf,CAAG,CAAC,GAED,EAAC,WAAA0e,GAAW,WAAAE,EAAS;AAChC;;;;;;;;;;GCnCaO,KAAuB,CAAC,EAAC,SAAAC,GAAS,SAAA3gB,GAAS,MAAMzH,GAAM,YAAAqoB,QAAgB;AAC1E,QAAAxgB,IAAcX,EAAY,MAAM;AAClC,IAAAO,EAAQ2gB,CAAO;AAAA,EAAA,GAChB,CAAC3gB,GAAS2gB,CAAO,CAAC;AAEjB,SAAA,gBAAAtgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAK;AAAA,MAEL,SAASD;AAAA,MACT,WAAW5H,EAAWC,GAAQ,QAAQ,EAAC,CAACA,GAAQ,QAAQ,GAAGmoB,MAAeD,GAAQ;AAAA,MACjF,UAAA;AAAA,QAAApoB,KAAS,gBAAAD,EAAAC,GAAA,EAAK,WAAWE,GAAQ,MAAM;AAAA,QACvCkoB;AAAA,MAAA;AAAA,IAAA;AAAA,IAJIA;AAAA,EAKT;AAER,GCJaE,KAAO1f;AAAA,EAChB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,UAAU0oB;AAAA,IACV,OAAApU;AAAA,IACA,QAAA0O;AAAA,IACA,UAAAnW,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,GAAG3D;AAAA,KAEPC,MACC;AACD,UAAM,EAAC,WAAA2I,GAAW,KAAKrS,EAAA,IAAYmR,EAA8B;AAEjE,IAAAiC,GAAY1J,GAAK1J,CAAQ;AAEnB,UAAAJ,IAAQ0I,EAAQ,MAAM;AACxB,UAAI1I,IAAQ,CAAC;AACb,aAAI2jB,MACA3jB,IAAQ,EAAC,GAAGA,GAAO,QAAA2jB,EAAM,IAEzB1O,MACAjV,IAAQ,EAAC,GAAGA,GAAO,OAAAiV,EAAK,IAErBjV;AAAAA,IAAA,GACR,CAAC2jB,GAAQ1O,CAAK,CAAC,GAEZqU,IAAoB5gB;AAAA,MACtB,MACI2gB,KAEOtR,GAAS,QAAQpO,CAAQ,EAAE,CAAC,EAA6B,MAAM;AAAA,MAC1E,CAACA,GAAU0f,CAAY;AAAA,IAC3B,GAEM,CAACE,GAAUC,CAAW,IAAI7hB,EAAS2hB,CAAiB;AAE1D,IAAApiB,EAAU,MAAM;AACZ,MACIsiB,EADAH,KAGYC,CAFY;AAAA,IAG5B,GACD,CAACD,GAAcC,CAAiB,CAAC;AAEpC,UAAM3gB,IAAcX;AAAA,MAChB,CAACkhB,MAAoB;AACjB,QAAAM,EAAYN,CAAO,GACnB1b,EAAS0b,CAAO;AAAA,MACpB;AAAA,MACA,CAAC1b,CAAQ;AAAA,IACb,GAEMic,IAAO/gB;AAAA,MACT,MACIqP,GAAS,IAAIpO,GAAU,CAAW5C,OACvB,EAAC,SAASA,EAAQ,MAAM,MAAM,MAAMA,EAAQ,MAAM,KAAI,EAChE;AAAA,MACL,CAAC4C,CAAQ;AAAA,IACb,GAEM+f,IAAahhB;AAAA,MACf,MACKqP,GAAS,QAAQpO,CAAQ,EAA+B;AAAA,QACrD,CAAA5C,MAAWA,EAAQ,MAAM,SAASwiB;AAAA,MACtC;AAAA,MACJ,CAAC5f,GAAU4f,CAAQ;AAAA,IACvB,GAEMI,IAAYtpB,GAAoB,IAAI,GAEpC,EAAC,WAAAqoB,EAAA,IAAaP,GAAcwB,CAAS;AAGvC,WAAA,gBAAA/gB;AAAA,MAAC6J;AAAA,MAAA;AAAA,QACI,GAAG5I;AAAA,QACJ,OAAA7J;AAAA,QACA,WAAWe,EAAWC,GAAQ,MAAML,CAAS;AAAA,QAC7C,UAAA;AAAA,UAAC,gBAAAiI,EAAA,OAAA,EAAI,WAAW5H,GAAQ,UACpB,UAAA;AAAA,YAAA,gBAAAH,EAAC,UAAO,EAAA,KAAK8oB,GAAW,WAAW3oB,GAAQ,QACtC,UAAKyoB,EAAA,IAAI,CAAC,EAAC,SAAAP,GAAS,MAAA7gB,EAAA,MAEb,gBAAAxH;AAAA,cAACooB;AAAA,cAAA;AAAA,gBAEG,MAAA5gB;AAAA,gBACA,SAASM;AAAA,gBACT,SAAAugB;AAAA,gBACA,YAAYK;AAAA,cAAA;AAAA,cAJPL;AAAA,YAKT,CAEP,GACL;AAAA,YACCR,uBACI,OAAI,EAAA,WAAW1nB,GAAQ,oBAAoB,GACxC,UAAC,gBAAAH,EAAAiC,IAAA,CAAW,CAAA,EAChB,CAAA;AAAA,UAAA,GAER;AAAA,UACC,gBAAAjC,EAAA,OAAA,EAAI,WAAWG,GAAQ,SAAU,UAAW0oB,EAAA,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACjD;AAAA,EAAA;AAGZ;AAEAN,GAAK,cAAc;ACtHZ,MAAMQ,KAAiB,CAAC,EAAC,UAAAjgB,QACpB,gBAAA9I,EAAA,OAAA,EAAI,WAAWG,GAAQ,KAAM,UAAA2I,GAAS;;;;;;;;;;ACXtC,IAAAH,uBAAAA,OACRA,EAAA,WAAW,YACXA,EAAA,QAAQ,SAFAA,IAAAA,MAAA,CAAA,CAAA;AC2CZ,MAAMqgB,KAAwC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAEaC,KAAOpgB;AAAA,EAChB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,QAAQopB,IAAW;AAAA,IACnB,SAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,UAAAzc,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,WAAAG,IAAY;AAAA,IACZ,YAAAuc,IAAa;AAAA,IACb,SAAAtgB,IAAUJ,GAAS;AAAA,IACnB,mBAAA2gB,IAAoBN;AAAA,IACpB,GAAGhgB;AAAA,KAEPC,MACC;AACK,UAAAsgB,IAAUlqB,GAAe4J,CAAG,GAC5B,CAACxC,GAAQ+iB,CAAO,IAAI1iB,EAASoiB,CAAQ;AAC3C,IAAA7iB,EAAU,MAAM;AACZ,MAAAmjB,EAAQN,CAAQ;AAAA,IAAA,GACjB,CAACA,GAAUM,CAAO,CAAC,GACtBnjB,EAAU,MAAM;AACZ,MAAAsG,EAASlG,CAAM;AAAA,IAAA,GAChB,CAACA,GAAQkG,CAAQ,CAAC;AACrB,UAAM,EAAC,MAAA8c,GAAM,gBAAAC,EAAc,IAAIC,GAA4B;AAAA,MACvD,UAAU;AAAA,MACV,sBAAsBC;AAAA,MACtB,YAAY;AAAA,QACRP,KACIpU,GAAK;AAAA,UACD,MAAM,EAAC,OAAA4U,GAAO,UAAAjjB,KAAW;AACd,mBAAA,OAAOA,EAAS,SAAS,OAAO;AAAA,cACnC,OAAO,GAAGijB,EAAM,UAAU,KAAK;AAAA,YAAA,CAClC;AAAA,UAAA;AAAA,QACL,CACH;AAAA,QACLC,GAAO,EAAE;AAAA,QACTC,GAAc,EAAC,mBAAAT,EAAkB,CAAA;AAAA,MAAA;AAAA,IACrC,CACH,GACK,EAAC,WAAA1X,EAAS,IAAIlB,EAAc,GAC5B,EAAC,UAAAC,EAAQ,IAAIC,GAAa,GAE1BoZ,IAAgB7iB,EAAY,MAAM;AACpC,MAAAqiB,EAAQ,EAAK;AAAA,IAAA,GACd,CAACA,CAAO,CAAC;AAED,WAAAxY,GAAAgZ,GAAeT,GAAS9iB,CAAM,GACzCD,GAAaijB,EAAK,SAAS,SAAShjB,GAAQqG,CAAS,qBAGhDwC,IACG,EAAA,UAAA;AAAA,MAAA,gBAAAtP;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,KAAKypB,EAAK;AAAA,UACV,WAAWvpB,EAAWC,GAAQ,WAAWipB,CAAkB;AAAA,UAC1D,UAAAtgB;AAAA,QAAA;AAAA,MACL;AAAA,MACCrC,uBACI+I,IACG,EAAA,UAAA,gBAAAxP;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,KAAKypB,EAAK;AAAA,UACV,OAAOC;AAAA,UACP,WAAWvpB,GAAQ;AAAA,UACnB,4BAACyR,GAAU,EAAA,WAAWzR,GAAQ,UAAU,OAAOwQ,KAC3C,UAAA,gBAAA3Q;AAAA,YAAC;AAAA,YAAA;AAAA,cACI,GAAGgJ;AAAA,cACJ,KAAKugB;AAAA,cACL,WAAWrpB;AAAA,gBACPC,GAAQ;AAAA,gBACR;AAAA,kBACI,CAACA,GAAQ,QAAQ,GAAG4I,MAAYJ,GAAS;AAAA,kBACzC,CAACxI,GAAQ,KAAK,GAAG4I,MAAYJ,GAAS;AAAA,gBAC1C;AAAA,gBACA7I;AAAA,cACJ;AAAA,cACC,UAAAqpB;AAAA,YAAA;AAAA,UAAA,EAET,CAAA;AAAA,QAAA;AAAA,MAAA,EAER,CAAA;AAAA,IAAA,GAER;AAAA,EAAA;AAGZ;AAEAF,GAAK,cAAc;ACnInB,MAAMK,KAAiC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAEaW,KAAyB,CAAC;AAAA,EACnC,UAAAnhB;AAAA;AAAA,EAEA,SAAAb,IAAU,CAAC;AAAA;AAAA,EAEX,SAAAc,IAAUmhB,GAAa;AAAA,EACvB,GAAGnqB;AACP,MAAM;AACF,QAAMoqB,IAAiB;AAAA,IACnB,CAACD,GAAa,KAAK,GAAGE,GAAe;AAAA,IACrC,CAACF,GAAa,QAAQ,GAAGE,GAAe;AAAA,IAC1CrhB,CAAO;AAEL,SAAA,gBAAA/I;AAAA,IAACipB;AAAA,IAAA;AAAA,MACI,GAAGlpB;AAAA,MACJ,mBAAAupB;AAAA,MACA,SAAAvgB;AAAA,MACA,SACI,gBAAA/I;AAAA,QAAC4I;AAAAA,QAAA;AAAA,UACG,SAASuhB;AAAA,UACT,SAAAliB;AAAA,UACA,cAAc9H,GAAQ;AAAA,UACtB,iBAAiBA,GAAQ;AAAA,QAAA;AAAA,MAC7B;AAAA,MAEJ,YAAY;AAAA,MACX,UAAA2I;AAAA,IAAA;AAAA,EACL;AAER;;;;;;;;;;GCrCauhB,KAAQxhB,EAAkC,CAAC,EAAC,WAAA8I,GAAW,MAAAlJ,GAAM,KAAA6hB,KAAMrhB,MAAQ;AACpF,QAAMyZ,IAAW/Q,EAAU,MAAM,GAAG,EAAE,CAAC,GACjC,EAAC,WAAAC,GAAW,KAAK2Y,EAAA,IAAW7Z,EAA8B,GAC1DvR,IAAQ0I,EAAQ,MAAM;AACxB,UAAM2iB,IAAS,CAAC;AAChB,WAAIF,MACAE,EAAO,MAAMF,IAEb7hB,MACA+hB,EAAO,OAAO/hB,IAEX+hB;AAAA,EAAA,GACR,CAAC/hB,GAAM6hB,CAAG,CAAC;AACd,SAAA3X,GAA4B1J,GAAKshB,CAAO,GAEpC,gBAAAvqB;AAAA,IAAC4R;AAAA,IAAA;AAAA,MACG,OAAAzS;AAAA,MACA,WAAWe,EAAWC,GAAQ,OAAO;AAAA,QACjC,CAACA,GAAQ,MAAM,GAAGuiB,MAAa;AAAA,QAC/B,CAACviB,GAAQ,IAAI,GAAGuiB,MAAa;AAAA,QAC7B,CAACviB,GAAQ,GAAG,GAAGuiB,MAAa;AAAA,QAC5B,CAACviB,GAAQ,KAAK,GAAGuiB,MAAa;AAAA,MACjC,CAAA;AAAA,IAAA;AAAA,EAAG;AAEhB,CAAC;AAED2H,GAAM,cAAc;ACHb,MAAMI,KAAU5hB;AAAA,EACnB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,QAAQopB,IAAW;AAAA,IACnB,SAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,UAAAzc,IAAW,MAAM;AAAA,IAAC;AAAA,IAClB,aAAA+d,IAAc;AAAA,IACd,WAAWC,IAAgB;AAAA,IAC3B,GAAG3hB;AAAA,KAEPC,MACC;;AACD,UAAM,CAACxC,GAAQ+iB,CAAO,IAAI1iB,EAASoiB,CAAQ;AAC3C,IAAA7iB,EAAU,MAAM;AACZ,MAAAmjB,EAAQN,CAAQ;AAAA,IAAA,GACjB,CAACA,GAAUM,CAAO,CAAC,GACtBnjB,EAAU,MAAM;AACZ,MAAAsG,EAASlG,CAAM;AAAA,IAAA,GAChB,CAACA,GAAQkG,CAAQ,CAAC;AAEf,UAAAie,IAAWprB,GAAO,IAAI,GAEtB,EAAC,MAAAiqB,GAAM,gBAAAC,GAAgB,gBAAAmB,GAAgB,WAAAlZ,EAAA,IAAagY,GAA4B;AAAA,MAClF,UAAU;AAAA,MACV,WAAWgB;AAAA,MACX,sBAAsBf;AAAA,MACtB,YAAY;AAAA,QACRE,GAAO,EAAE;AAAA,QACTgB,GAAK;AAAA,QACLC,GAAM;AAAA,UACF,SAASH;AAAA,QACZ,CAAA;AAAA,MAAA;AAAA,IACL,CACH,GACK,EAAC,WAAAhZ,EAAS,IAAIlB,EAAc,GAC5B,EAAC,UAAAC,EAAQ,IAAIC,GAAa,GAE1BoZ,IAAgB7iB,EAAY,MAAM;AACpC,MAAAqiB,EAAQ,EAAK;AAAA,IAAA,GACd,CAACA,CAAO,CAAC;AAED,WAAAxY,GAAAgZ,GAAeP,EAAK,WAAWhjB,CAAM,GAChDD,GAAaijB,EAAK,SAAS,SAAShjB,GAAQikB,CAAW,qBAGlDpb,IACG,EAAA,UAAA;AAAA,MAAA,gBAAAtP;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,KAAKypB,EAAK;AAAA,UACV,WAAWvpB,EAAWC,GAAQ,WAAWipB,CAAkB;AAAA,UAC1D,UAAAtgB;AAAA,QAAA;AAAA,MACL;AAAA,MACCrC,uBACI+I,IACG,EAAA,UAAA,gBAAAxP;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,KAAKypB,EAAK;AAAA,UACV,OAAOC;AAAA,UACP,WAAWxpB,EAAW,EAAC,CAACC,GAAQ,WAAW,GAAG,CAACuqB,GAAY;AAAA,UAC3D,4BAAC9Y,GAAU,EAAA,WAAWzR,GAAQ,UAAU,OAAOwQ,KAC3C,UAAA,gBAAA5I;AAAA,YAAC;AAAA,YAAA;AAAA,cACI,GAAGiB;AAAA,cACJ,KAAAC;AAAA,cACA,WAAW/I,EAAWC,GAAQ,SAASL,CAAS;AAAA,cAChD,UAAA;AAAA,gBAAA,gBAAAE;AAAA,kBAACqqB;AAAA,kBAAA;AAAA,oBACG,KAAKO;AAAA,oBACL,WAAAjZ;AAAA,oBACA,OAAM1K,IAAA4jB,EAAe,UAAf,gBAAA5jB,EAAsB;AAAA,oBAC5B,MAAKmD,IAAAygB,EAAe,UAAf,gBAAAzgB,EAAsB;AAAA,kBAAA;AAAA,gBAC/B;AAAA,gBACC+e;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA,EAET,CAAA;AAAA,QAAA;AAAA,MAAA,EAER,CAAA;AAAA,IAAA,GAER;AAAA,EAAA;AAGZ;AAEAsB,GAAQ,cAAc;;;;;;;;;;;;;;;GC3GTO,KAAwB,CAAC,EAAC,YAAAC,GAAY,SAAAvjB,IAAU,MAAM;AAAC,GAAG,UAAAyd,GAAU,WAAArlB,QAAe;AACtF,QAAAgI,IAAcX,EAAY,MAAM;AAClC,IAAAO,EAAQujB,CAAU;AAAA,EAAA,GACnB,CAACvjB,GAASujB,CAAU,CAAC;AAEpB,SAAA,gBAAAjrB;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,UAAUmlB;AAAA,MACV,WAAWjlB,EAAWC,GAAQ,YAAY,EAAC,CAACA,GAAQ,MAAM,GAAGglB,EAAQ,GAAGrlB,CAAS;AAAA,MACjF,SAASgI;AAAA,MACR,UAAAmjB;AAAA,IAAA;AAAA,EACL;AAER,GCvBMC,KAAa,CAACC,GAAoBC,MAAyB;AAC7D,UAAQA,GAAc;AAAA,IAClB,KAAK;AACD,aAAO,CAACA,IAAe,GAAGA,IAAe,GAAGA,IAAe,CAAC;AAAA,IAEhE,KAAK;AACD,aAAO,CAACA,GAAcA,IAAe,GAAGA,IAAe,CAAC;AAAA,IAE5D,KAAKD;AACD,aAAO,CAACC,IAAe,GAAGA,IAAe,GAAGA,IAAe,CAAC;AAAA,IAEhE,KAAKD,IAAa;AACd,aAAO,CAACC,IAAe,GAAGA,IAAe,GAAGA,CAAY;AAAA,IAE5D;AACI,aAAO,CAACA,IAAe,GAAGA,GAAcA,IAAe,CAAC;AAAA,EAC5D;AAER,GAEaC,KAAyB,CAACF,GAAoB1C,MAA8B;AACrF,QAAM,CAAC2C,GAAcE,CAAe,IAAIxkB,EAAS2hB,CAAiB,GAC5D1hB,IAAQ,GACRC,IAAOmkB,GACP5E,IAAU2E,GAAWC,GAAYC,CAAY,GAC7CG,IAAWH,IAAe,KAAKD,IAAaC,IAAe,IAAI,GAC/DI,IAAeJ,IAAe,KAAK,IAAIA,IAAe,IAAID,GAC1DM,IAASN,IAAa,GACtBO,IAAYP,EAAW,SAAS,EAAE,SAAS,GAC3CQ,IAAgBxkB;AAAA,IAClB,CAAC8jB,MACOA,MAAe,OACR,KAEJA,KAAc,KAAKA,KAAcE;AAAA,IAE5C,CAACA,CAAU;AAAA,EACf;AACO,SAAA;AAAA,IACH,OAAApkB;AAAA,IACA,MAAAC;AAAA,IACA,SAAAuf;AAAA,IACA,iBAAA+E;AAAA,IACA,cAAAF;AAAA,IACA,UAAAG;AAAA,IACA,cAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,eAAAC;AAAA,EACJ;AACJ,GCvBaC,KAAa/iB;AAAA,EACtB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,YAAAqrB;AAAA,IACA,cAAAU;AAAA,IACA,cAAcC;AAAA,IACd,gBAAAC,IAAiB;AAAA,IACjB,iBAAAC,IAAkB;AAAA,IAClB,GAAGhjB;AAAA,KAEPC,MACC;AACK,UAAA;AAAA,MACF,SAAAsd;AAAA,MACA,OAAAxf;AAAA,MACA,MAAAC;AAAA,MACA,cAAAokB;AAAA,MACA,iBAAAE;AAAA,MACA,UAAAC;AAAA,MACA,cAAAC;AAAA,MACA,QAAAC;AAAA,MACA,WAAAC;AAAA,MACA,eAAAC;AAAA,IAAA,IACAN,GAAuBF,GAAYW,CAAgB;AAEvD,IAAAzlB,EAAU,MAAM;AACZ,MAAAilB,EAAgBQ,CAAgB;AAAA,IAAA,GACjC,CAACA,GAAkBR,CAAe,CAAC;AAEtC,UAAM,CAACW,GAAWC,CAAY,IAAIplB,EAAiBskB,CAAY;AAE/D,IAAA/kB,EAAU,MAAM;AACZ,MAAA6lB,EAAad,CAAY;AAAA,IAAA,GAC1B,CAACA,CAAY,CAAC;AAEjB,UAAMe,IAAmBhlB;AAAA,MACrB,CAAC8jB,MAAuB;AACpB,QAAAK,EAAgBL,CAAU,GAC1BiB,EAAajB,CAAU,GACvBY,EAAaZ,CAAU;AAAA,MAC3B;AAAA,MACA,CAACY,GAAcP,CAAe;AAAA,IAClC,GAEM7L,IAAkBtY,EAAY,MAAM;AACtC,MAAAmkB,EAAgBC,CAAQ,GACxBM,EAAaN,CAAQ;AAAA,IACtB,GAAA,CAACA,GAAUM,GAAcP,CAAe,CAAC,GAEtC9L,IAAkBrY,EAAY,MAAM;AACtC,MAAAmkB,EAAgBE,CAAY,GAC5BK,EAAaL,CAAY;AAAA,IAC1B,GAAA,CAACK,GAAcL,GAAcF,CAAe,CAAC,GAE1Cc,IAAoBjlB;AAAA,MACtB,CAACC,MAAyC;AACtC,cAAMgX,IAAY,SAAShX,EAAM,OAAO,KAAK;AAC7C,QAAAA,EAAM,OAAO,UAAU,MAAM8kB,EAAa9N,CAAS;AAAA,MACvD;AAAA,MACA,CAAC8N,CAAY;AAAA,IACjB,GAEMG,IAAoBllB,EAAY,MAAM;AACxC,MAAAwkB,EAAcM,CAAS,KAAKA,MAAc,QAAQE,EAAiBF,CAAS;AAAA,IAC7E,GAAA,CAACN,GAAeQ,GAAkBF,CAAS,CAAC,GAEzCK,IAAmBnlB;AAAA,MACrB,CAACC,MAA2C;AACpC,QAAAA,EAAM,QAAQ,WACdukB,EAAcM,CAAS,KAAKA,MAAc,QAAQE,EAAiBF,CAAS;AAAA,MAEpF;AAAA,MACA,CAACN,GAAeQ,GAAkBF,CAAS;AAAA,IAC/C,GAEM,EAAC,WAAAra,EAAS,IAAIlB,EAAc,GAE5BvR,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,QAAQ6jB;AAAA,MAAA;AAAA,MAEZ,CAACA,CAAS;AAAA,IACd;AAGI,WAAA,gBAAA3jB,EAAC,OAAK,EAAA,GAAGiB,GAAa,WAAW9I,EAAWC,GAAQ,YAAYL,CAAS,GAAG,KAAAmJ,GACvE,UAAA;AAAA,MAAA+iB,KACI,gBAAAjkB,EAAA,OAAA,EAAI,WAAW7H,EAAWC,GAAQ,SAAS,EAAC,CAACA,GAAQ,KAAK,GAAG,CAACsrB,EAAO,CAAA,GACjE,UAAA;AAAA,QAAA,CAACA,KACEpI,GAAY8H,CAAU,EAAE,IAAI,CAAClY,GAAGzK,MAAM;AAElC,gBAAM2c,IADa3c,IAAI,MACS4iB;AAE5B,iBAAA,gBAAAprB;AAAA,YAACgrB;AAAA,YAAA;AAAA,cAEG,UAAA7F;AAAA,cACA,SAASgH;AAAA,cACT,YAAY3jB,IAAI;AAAA,YAAA;AAAA,YAHXA;AAAA,UAIT;AAAA,QAAA,CAEP;AAAA,QACJijB,uBACInc,IACG,EAAA,UAAA;AAAA,UAAA,gBAAAtP;AAAA,YAACgrB;AAAA,YAAA;AAAA,cACG,UAAUjkB,MAAUqkB;AAAA,cACpB,SAASe;AAAA,cACT,YAAYplB;AAAA,YAAA;AAAA,UAChB;AAAA,UACC,gBAAA/G,EAAA,OAAA,EAAI,WAAWG,GAAQ,UAAU,UAAQ,KAAA;AAAA,UACzComB,EAAQ,IAAI,CAAC0E,GAAYziB,MAAM;AAC5B,kBAAM2c,IAAW8F,MAAeG;AAE5B,mBAAA,gBAAAprB;AAAA,cAACgrB;AAAA,cAAA;AAAA,gBACG,WAAW9qB,EAAW;AAAA,kBAClB,CAACC,GAAQ,YAAY,GAAGqI,MAAM;AAAA,gBAAA,CACjC;AAAA,gBAED,UAAA2c;AAAA,gBACA,SAASgH;AAAA,gBACT,YAAAlB;AAAA,cAAA;AAAA,cAHKA;AAAA,YAIT;AAAA,UAAA,CAEP;AAAA,UACA,gBAAAjrB,EAAA,OAAA,EAAI,WAAWG,GAAQ,UAAU,UAAQ,KAAA;AAAA,UAC1C,gBAAAH;AAAA,YAACgrB;AAAA,YAAA;AAAA,cACG,UAAUhkB,MAASokB;AAAA,cACnB,SAASe;AAAA,cACT,YAAYnlB;AAAA,YAAA;AAAA,UAAA;AAAA,QAChB,EACJ,CAAA;AAAA,MAAA,GAER;AAAA,MAGH+kB,KACI,gBAAAhkB,EAAA6J,GAAA,EAAU,WAAWzR,GAAQ,YAAY,OAAAhB,GACtC,UAAA;AAAA,QAAC,gBAAA4I,EAAA,OAAA,EAAI,WAAW5H,GAAQ,iBACpB,UAAA;AAAA,UAAA,gBAAAH;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,UAAUmrB,MAAe;AAAA,cACzB,SAAS3L;AAAA,cACT,WAAWrf,GAAQ;AAAA,cACnB,UAAC,gBAAAH,EAAAyC,IAAA,EAAa,WAAWtC,GAAQ,KAAM,CAAA;AAAA,YAAA;AAAA,UAC3C;AAAA,UACA,gBAAAH;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,UAAUmrB,MAAe;AAAA,cACzB,SAAS1L;AAAA,cACT,WAAWtf,GAAQ;AAAA,cACnB,UAAC,gBAAAH,EAAAuC,IAAA,EAAY,WAAWpC,GAAQ,KAAM,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAC1C,GACJ;AAAA,QACC,gBAAA4H,EAAA,OAAA,EAAI,WAAW5H,GAAQ,iBACpB,UAAA;AAAA,UAAA,gBAAAH;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,WAAWE,EAAWC,GAAQ,OAAO;AAAA,gBACjC,CAACA,GAAQ,KAAK,GAAG,CAACwrB,EAAcM,CAAS;AAAA,cAAA,CAC5C;AAAA,cACD,KAAKllB;AAAA,cACL,KAAKC;AAAA,cACL,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,MAAM0kB;AAAA,cACN,MAAK;AAAA,cACL,OAAOO;AAAA,cACP,UAAUG;AAAA,cACV,SAASE;AAAA,YAAA;AAAA,UACb;AAAA,UACA,gBAAAtsB;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,UAAU,CAAC2rB,EAAcM,CAAS,KAAKA,MAAc;AAAA,cACrD,WAAW9rB,GAAQ;AAAA,cACnB,SAASksB;AAAA,cACT,UAAC,gBAAArsB,EAAA2C,IAAA,EAAU,WAAWxC,GAAQ,KAAM,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACxC,EACJ,CAAA;AAAA,MAAA,EACJ,CAAA;AAAA,IAAA,GAER;AAAA,EAAA;AAGZ;AAEAyrB,GAAW,cAAc;;;;;;;;;;GC7KZW,KAAO1jB;AAAA,EAChB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,gBAAA0sB;AAAA,IACA,SAAAvkB,IAAU,CAAC;AAAA,IACX,IAAIgS;AAAA,IACJ,SAAAlR,IAAU;AAAA,IACV,OAAAqL;AAAA,IACA,QAAA0O;AAAA,IACA,GAAG9Z;AAAA,KAEPC,MACC;AACK,UAAAZ,IAAKsO,GAAcsD,CAAM,GACzB,EAAC,WAAArI,GAAW,KAAKmC,EAAA,IAAerD,EAA8B;AACpE,IAAAiC,GAAY1J,GAAK8K,CAAW;AAC5B,UAAM5U,IAAQ0I;AAAA,MACV,OAAO,EAAC,OAAOuM,IAAQ,GAAGA,CAAK,OAAO,QAAQ,QAAQ0O,IAAS,GAAGA,CAAM,OAAO,OAAM;AAAA,MACrF,CAACA,GAAQ1O,CAAK;AAAA,IAClB;AAEI,WAAA,gBAAArM;AAAA,MAAC6J;AAAA,MAAA;AAAA,QACI,GAAG5I;AAAA,QACJ,OAAA7J;AAAA,QACA,IAAAkJ;AAAA,QACA,WAAWnI;AAAA,UACPC,GAAQ;AAAA,UACR;AAAA,YACI,CAACA,GAAQ,QAAQ,GAAG4I,MAAY;AAAA,YAChC,CAAC5I,GAAQ,UAAU,GAAG4I,MAAY;AAAA;AAAA,UACtC;AAAA,UACAjJ;AAAA,QACJ;AAAA,QACC,UAAA;AAAA,UAAA0sB,uBAAmB7I,IAAQ,EAAA,WAAWxjB,GAAQ,aAAa,KAAKqsB,GAAgB;AAAA,UAChF,gBAAAxsB,EAAA,OAAA,EAAI,WAAWG,GAAQ,MAAO,UAAA2I,GAAS;AAAA,UACvC,gBAAA9I,EAAA,UAAA,EAAO,WAAWG,GAAQ,SACvB,UAAA,gBAAAH;AAAA,YAACgI;AAAA,YAAA;AAAA,cACG,SAAAC;AAAA,cACA,iBAAiB9H,GAAQ;AAAA,cACzB,cAAcA,GAAQ;AAAA,YAAA;AAAA,UAAA,EAE9B,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAGZ;AAEAosB,GAAK,cAAc;;;;;;;;;GC3DNE,KAAU5jB;AAAA,EACnB,CACI;AAAA,IACI,OAAAtB;AAAA,IACA,IAAI8N,IAAY;AAAA,IAChB,MAAAuL;AAAA,IACA,MAAM3gB;AAAA,IACN,OAAAysB,IAAQ;AAAA,IACR,WAAA5sB;AAAA,IACA,WAAA6sB;AAAA,IACA,GAAG3jB;AAAA,KAEPC,MAGI,gBAAAlB;AAAA,IAACsN;AAAA,IAAA;AAAA,MACI,GAAGrM;AAAA,MACJ,KAAAC;AAAA,MACA,OAAA1B;AAAA,MACA,WAAWrH;AAAA,QACPC,GAAQ;AAAA,QACR;AAAA,UACI,CAACA,GAAQ,KAAK,GAAGusB;AAAA,UACjB,CAACvsB,GAAQ,OAAO,GAAGwsB;AAAA,QACvB;AAAA,QACA7sB;AAAA,MACJ;AAAA,MACA,MAAA8gB;AAAA,MACC,UAAA;AAAA,QAAQ3gB,KAAA,gBAAAD,EAAC,UAAM,UAAC,gBAAAA,EAAAC,GAAA,EAAK,WAAWE,GAAQ,aAAa,OAAAoH,GAAc,EAAG,CAAA;AAAA,QACtE,gBAAAvH,EAAA,QAAA,EAAK,WAAWG,GAAQ,cAAe,UAAMoH,EAAA,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAClD;AAGZ;AAEAklB,GAAQ,cAAc;ACpDf,MAAMG,KAAsB/jB;AAAA,EAC/B,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,GAAGkJ,EAAA,GAAcC,MAEhC,gBAAAjJ,EAAC,MAAI,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,GAAQ,MAAML,CAAS,GAAG,KAAAmJ,GAChE,UAAAH,EACL,CAAA;AAGZ;AAEA8jB,GAAS,cAAc;ACKhB,MAAMC,KAAWhkB;AAAA,EACpB,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,MAAAya,IAAO,aAAa,QAAA3F,GAAQ,GAAG5L,EAAW,GAAGC,MAAQ;AAClE,UAAA8K,IAAc1U,GAAe4J,CAAG,GAChC,EAAC,WAAA4e,EAAA,IAAaP,GAAcvT,CAAW,GACvCqD,IAAoBvP;AAAA,MACtB,MACIqP,GAAS,QAAQpO,CAAQ,EAAE;AAAA,QAAI,OAC3BuO,GAAanR,GAAyB,EAAC,WAAW2hB,EAAU,CAAA;AAAA,MAChE;AAAA,MACJ,CAAC/e,GAAU+e,CAAS;AAAA,IACxB;AAEI,WAAA,gBAAA9f;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAGiB;AAAA,QACJ,WAAW9I,EAAWC,GAAQ,UAAU,EAAC,CAACA,GAAQ,MAAM,GAAGyU,EAAM,GAAG9U,CAAS;AAAA,QAC7E,KAAKiU;AAAA,QACJ,UAAA;AAAA,UAAQwG,KAAA,gBAAAva,EAAC4sB,MAAU,UAAKrS,EAAA,CAAA;AAAA,UACxBnD;AAAA,QAAA;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGZ;AAEAyV,GAAS,cAAc;;;;;;GCbVC,KAAWjkB;AAAA,EACpB,CACI,EAAC,KAAA0V,IAAM,KAAK,OAAAjM,GAAO,WAAAxS,GAAW,SAAAiJ,IAAU,SAAgB,OAAA+N,GAAO,IAAImD,GAAQ,GAAGjR,EAAA,GAC9EC,MACC;AACK,UAAAZ,IAAKsO,GAAcsD,CAAM;AAC/B,WACK,gBAAAlS,EAAA,OAAA,EAAI,WAAW5H,GAAQ,SACnB,UAAA;AAAA,MAAA2W,uBACI,SAAM,EAAA,WAAW3W,GAAQ,OAAO,SAASkI,GACrC,UAAA;AAAA,QAAAyO;AAAA,QAAM;AAAA,MAAA,GACX;AAAA,MAEJ,gBAAA9W;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAGgJ;AAAA,UACJ,IAAAX;AAAA,UACA,KAAAkW;AAAA,UACA,OAAAjM;AAAA,UACA,WAAWpS;AAAA,YACPC,GAAQ;AAAA,YACR;AAAA,cAAC,CAACA,GAAQ,MAAM,GAAG4I,MAAY;AAAA;AAAA,YAAe;AAAA,YAC9CjJ;AAAA,UACJ;AAAA,UACA,KAAAmJ;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ,GACJ;AAAA,EAAA;AAGZ;AAEA6jB,GAAS,cAAc;;;;;;;GC5BjBC,KAA2B,CAACC,GAAsBC,MAA0B;AAC9E,MAAIA,GAAc;AACd,UAAM,CAAClmB,GAAO,GAAGmmB,CAAI,IAAIF;AAClB,WAAA;AAAA,MACHjmB;AAAA,wBACC,OAAI,EAAA,WAAW5G,GAAQ,UAAyB,iBAAX,UAEtC;AAAA,MACA,GAAG+sB;AAAA,IACP;AAAA,EAAA;AAEO,WAAAF;AAEf,GAEMG,KAAsB,CAAC,EAAC,MAAAvM,GAAM,UAAA9X,GAAU,WAAAhJ,GAAW,OAAAyH,QAEhD,gBAAAvH,EAAA,KAAA,EAAE,MAAA4gB,GAAY,WAAA9gB,GAAsB,OAAAyH,GAChC,UAAAuB,GACL,GAIKskB,KAAcvkB;AAAA,EACvB,CACI;AAAA,IACI,WAAA/I;AAAA,IACA,OAAAktB;AAAA,IACA,cAAAC,IAAe;AAAA,IACf,eAAeI,IAAgBF;AAAA,IAC/B,GAAGnkB;AAAA,KAEPC,MACC;AACK,UAAAH,IAAWkkB,EAAM,IAAI,CAAC,EAAC,MAAAzS,GAAM,KAAA+S,GAAK,MAAMrtB,QAEtC,gBAAA8H,EAACslB,KAAyB,OAAO9S,GAAM,WAAWpa,GAAQ,OAAO,MAAMmtB,GAClE,UAAA;AAAA,MAAArtB,KAAS,gBAAAD,EAAAC,GAAA,EAAK,WAAWE,GAAQ,MAAM;AAAA,MACvC,gBAAAH,EAAA,QAAA,EAAK,WAAWG,GAAQ,MAAO,UAAKoa,EAAA,CAAA;AAAA,IAAA,EAAA,GAFrBA,CAGpB,CAEP;AACD,WACK,gBAAAva,EAAA,OAAA,EAAK,GAAGgJ,GAAa,WAAW9I,EAAWC,GAAQ,aAAaL,CAAS,GAAG,KAAAmJ,GACxE,UAAyB8jB,GAAAjkB,GAAUmkB,CAAY,GACpD;AAAA,EAAA;AAGZ;AAEAG,GAAY,cAAc;;;;;GCpEbG,KAAc1kB;AAAA,EACvB,CAAC,EAAC,UAAAC,GAAU,WAAAhJ,GAAW,QAAA0tB,IAAS,cAAoB,GAAGxkB,EAAW,GAAGC,MAE7D,gBAAAjJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGgJ;AAAA,MACJ,WAAW9I;AAAA,QACPC,GAAQ;AAAA,QACR;AAAA,UACI,CAACA,GAAQ,UAAU,GAAGqtB,MAAW;AAAA,UACjC,CAACrtB,GAAQ,QAAQ,GAAGqtB,MAAW;AAAA;AAAA,QACnC;AAAA,QACA1tB;AAAA,MACJ;AAAA,MACA,KAAAmJ;AAAA,MACC,UAAAH;AAAA,IAAA;AAAA,EACL;AAGZ;AAEAykB,GAAY,cAAc;;;;;;GCrCpBE,KAAiB,CAACnb,MAChB,OAAOA,KAAU,YACV,UACAA,MAAU,SACV,WACAA,MAAU,QACV,UACAA,MAAU,SACV,WAEJA,GAGEob,KAAqB,CAACC,MACxB,OAAO,QAAQA,CAAW,EAC5B,OAAO,CAAC,CAAC1a,GAAGX,CAAK,MAAMA,MAAU,EAAK,EACtC,IAAI,CAAC,CAACzE,GAAKyE,CAAK,MAAO,MAAM,QAAQA,CAAK,IAAI,CAACzE,GAAKyE,CAAK,IAAI,CAACzE,GAAK,CAACyE,CAAK,CAAC,CAAE,EAC5E,IAAI,CAAC,CAACzE,GAAKyE,CAAK,MACN,CAACzE,GAAMyE,EAAuB,IAAImb,EAAc,EAAE,KAAK,GAAG,CAAC,CACrE,EACA,IAAI,CAAoBG,MAAAA,EAAiB,KAAK,GAAG,CAAC,EAClD,KAAK,IAAI,GCiELC,KAAShlB;AAAA,EAClB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,KAAA+jB;AAAA,IACA,OAAAzP;AAAA,IACA,QAAA0O;AAAA,IACA,gBAAAgL;AAAA,IACA,iBAAAC;AAAA,IACA,MAAAxT;AAAA,IACA,OAAAhT;AAAA,IACA,QAAAymB;AAAA,IACA,SAAAjK;AAAA,IACA,eAAAkK;AAAA,IACA,mBAAAC;AAAA,IACA,QAAAC,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,GAAGnlB;AAAA,KAEPC,MACC;AACD,UAAM,CAAC+a,GAAUoK,CAAW,IAAItnB,EAAS,EAAK,GAExCod,IAAa/c;AAAA,MACf,CAACC,MAA6C;AAC1C,QAAA+mB,EAAO/mB,CAAK,GACZgnB,EAAY,EAAI;AAAA,MACpB;AAAA,MACA,CAACD,CAAM;AAAA,IACX,GAEME,IACFJ,KACA,OAAO,QAAQA,CAAa,EACvB,OAAO,CAAC,CAAChb,GAAGX,CAAK,MAAMA,CAAK,EAC5B,IAAI,CAAC,CAACzE,CAAG,MAAMA,CAAG,EAClB,KAAK,GAAG,GAEXygB,IAAQJ,KAAqBR,GAAmBQ,CAAiB,GAEjE/uB,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,QAAAib;AAAA,QACA,OAAA1O;AAAA,MAAA;AAAA,MAEJ,CAAC0O,GAAQ1O,CAAK;AAAA,IAClB,GAEM,EAAC,WAAAxC,EAAS,IAAIlB,EAAc;AAE9B,WAAA,gBAAA1Q,EAAC4R,GAAU,EAAA,OAAAzS,GAAc,WAAWgB,GAAQ,eACxC,UAAC,gBAAA4H,EAAA,OAAA,EAAI,WAAW5H,GAAQ,gBACpB,UAAA;AAAA,MAAA,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UACI,GAAGgJ;AAAA,UACJ,WAAW9I,EAAWC,GAAQ,QAAQL,CAAS;AAAA,UAC/C,KAAAmJ;AAAA,UACA,QAAQib;AAAA,UACR,SAAAH;AAAA,UACA,MAAAxJ;AAAA,UACA,OAAAnG;AAAA,UACA,QAAA0O;AAAA,UACA,KAAAe;AAAA,UACA,OAAAtc;AAAA,UACA,QAAAymB;AAAA,UACA,OAAAM;AAAA,UACA,gBAAAR;AAAA,UACA,iBAAAC;AAAA,UACA,SAAAM;AAAA,QAAA;AAAA,MACJ;AAAA,MACC,CAACrK,KACE,gBAAAhkB;AAAA,QAAC6iB;AAAA,QAAA;AAAA,UACG,OAAAzO;AAAA,UACA,QAAA0O;AAAA,UACA,cAAc;AAAA,UACd,WAAW3iB,GAAQ;AAAA,QAAA;AAAA,MAAA;AAAA,IACvB,EAAA,CAER,EACJ,CAAA;AAAA,EAAA;AAGZ;AAEA0tB,GAAO,cAAc;ACtKT,IAAAU,uBAAAA,OACRA,EAAA,OAAO,QACPA,EAAA,MAAM,OACNA,EAAA,OAAO,QACPA,EAAA,UAAU,WACVA,EAAA,aAAa,cACbA,EAAA,MAAM,OACNA,EAAA,SAAS,UACTA,EAAA,aAAa,cACbA,EAAA,aAAgB,IAAA,eAChBA,EAAA,OAAO,QACPA,EAAA,SAAS,UACTA,EAAA,UAAU,WACVA,EAAA,WAAW,YACXA,EAAA,OAAO,QACPA,EAAA,UAAU,WACVA,EAAA,OAAO,QACPA,EAAA,OAAO,QACPA,EAAA,UAAU,WACVA,EAAA,WAAW,YACXA,EAAA,WAAW,YACXA,EAAA,YAAY,aACZA,EAAA,QAAQ,SACRA,EAAA,UAAU,WACVA,EAAA,WAAW,YACXA,EAAA,QAAQ,SACRA,EAAA,cAAc,eACdA,EAAA,OAAO,QACPA,EAAA,mBAAsB,IAAA,qBACtBA,EAAA,aAAa,cACbA,EAAA,aAAa,cACbA,EAAA,cAAc,eACdA,EAAA,SAAS,UACTA,EAAA,QAAQ,SACRA,EAAA,aAAa,cACbA,EAAA,QAAQ,SACRA,EAAA,UAAU,WACVA,EAAA,WAAW,YACXA,EAAA,QAAQ,SACRA,EAAA,SAAS,UACTA,EAAA,QAAQ,SACRA,EAAA,UAAU,WACVA,EAAA,WAAW,YACXA,EAAA,OAAO,QACPA,EAAA,OAAO,QACPA,EAAA,OAAO,QA7CCA,IAAAA,MAAA,CAAA,CAAA;ACEL,MAAMC,KAAmB,MAAM;AAClC,QAAM,CAACC,GAAQC,CAAS,IAAI5nB,EAAS,OAAO;AAC5C,SAAAuC,GAAoB,MAAM;AACtB,IAAAqlB,EAAU,UAAU,QAAQ;AAAA,EAChC,GAAG,EAAE,GAEED;AACX;;;ACXY,IAAAE,uBAAAA,OACRA,EAAA,UAAU,WACVA,EAAA,WAAW,YACXA,EAAA,UAAU,WACVA,EAAA,OAAO,QAJCA,IAAAA,MAAA,CAAA,CAAA,GAOAC,uBAAAA,OACRA,EAAA,SAAS,UACTA,EAAA,UAAa,IAAA,YAFLA,IAAAA,MAAA,CAAA,CAAA,GAKAC,uBAAAA,OACRA,EAAA,WAAW,YACXA,EAAA,aAAe,cACfA,EAAA,cAAgB,eAChBA,EAAA,UAAY,WAJJA,IAAAA,MAAA,CAAA,CAAA,GAOAC,uBAAAA,OACRA,EAAA,QAAQ,SACRA,EAAA,OAAO,QAFCA,IAAAA,MAAA,CAAA,CAAA,GAKAC,uBAAAA,OACRA,EAAA,OAAO,QACPA,EAAA,SAAS,UACTA,EAAA,aAAa,cAGbA,EAAA,QAAQ,SANAA,IAAAA,MAAA,CAAA,CAAA,GAiHAC,uBAAAA,OACRA,EAAA,OAAO,QACPA,EAAA,SAAS,UACTA,EAAA,eAAe,gBACfA,EAAA,OAAO,QAJCA,IAAAA,MAAA,CAAA,CAAA,GAYAC,uBAAAA,OACRA,EAAA,QAAQ,SACRA,EAAA,SAAS,UACTA,EAAA,OAAO,QAHCA,IAAAA,MAAA,CAAA,CAAA;ACzIL,MAAMC,KAAgBrmB;AAAA,EACzB,CACI;AAAA,IACI,OAAAyJ;AAAA,IACA,WAAAxS;AAAA,IACA,QAAQqvB;AAAA,IACR,eAAAC,IAAgBR,GAAe,UAAU;AAAA,IACzC,cAAAS,IAAe;AAAA,MACX,SAAS;AAAA,QACL,SAAS;AAAA,MACb;AAAA,MACA,aAAa;AAAA,QACT,SAAS;AAAA,QACT,SAAS;AAAA,MACb;AAAA,MACA,UAAU,CAAA;AAAA,IACd;AAAA,IACA,UAAAC,IAAWT,GAAU;AAAA,IACrB,gBAAAU,IAAiBT,GAAoB;AAAA,IACrC,UAAAU;AAAA,IACA,aAAAC,IAAcV,GAAiB;AAAA,IAC/B,GAAG/lB;AAAA,KAEPC,MACC;;AACD,UAAMymB,IAAalB,GAAiB,GAC9BC,IAASU,KAA0BO,GACnCC,IAAiB9nB;AAAA,MACnB,MAAA;;AACI,eAAAyK,IACM,IAAI,KAAK,aAAamc,GAAQ;AAAA,UAC1B,eAAAW;AAAA,UACA,OAAOT,GAAO;AAAA,UACd,uBAAsB1nB,IAAAooB,EAAa,YAAb,gBAAApoB,EAAsB;AAAA,UAC5C,wBAAuBmD,IAAAilB,EAAa,aAAb,gBAAAjlB,EAAuB;AAAA,UAC9C,2BAA0BC,IAAAglB,EAAa,gBAAb,gBAAAhlB,EAA0B;AAAA,UACpD,2BAA0BC,IAAA+kB,EAAa,gBAAb,gBAAA/kB,EAA0B;AAAA,UACpD,wBAAuBC,IAAA8kB,EAAa,aAAb,gBAAA9kB,EAAuB;AAAA,UAC9C,UAAA+kB;AAAA,UACA,gBAAAC;AAAA,UACA,aAAaC;AAAA,UACb,aAAAC;AAAA,QAAA,CACH,EAAE,OAAOnd,CAAK,IACf;AAAA;AAAA,MACV;AAAA,QACIid;AAAA,SACAtoB,IAAAooB,EAAa,aAAb,gBAAApoB,EAAuB;AAAA,SACvBmD,IAAAilB,EAAa,aAAb,gBAAAjlB,EAAuB;AAAA,SACvBC,IAAAglB,EAAa,YAAb,gBAAAhlB,EAAsB;AAAA,SACtBC,IAAA+kB,EAAa,gBAAb,gBAAA/kB,EAA0B;AAAA,SAC1BC,IAAA8kB,EAAa,gBAAb,gBAAA9kB,EAA0B;AAAA,QAC1BilB;AAAA,QACAf;AAAA,QACAW;AAAA,QACAE;AAAA,QACAG;AAAA,QACAnd;AAAA,MAAA;AAAA,IAER;AACA,WACIA,KACI,gBAAAtS;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAGgJ;AAAA,QACJ,OAAO2mB;AAAA,QACP,WAAWzvB,EAAWC,GAAQ,QAAQL,CAAS;AAAA,QAC/C,KAAAmJ;AAAA,QACC,UAAA0mB;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAIhB;AAEAT,GAAc,cAAc;ACzErB,MAAMU,KAAiB/mB;AAAA,EAC1B,CACI;AAAA,IACI,OAAAyJ;AAAA,IACA,WAAAxS;AAAA,IACA,QAAQqvB;AAAA,IACR,eAAAC,IAAgBR,GAAe,UAAU;AAAA,IACzC,cAAAS,IAAe;AAAA,MACX,SAAS;AAAA,QACL,SAAS;AAAA,MACb;AAAA,MACA,aAAa;AAAA,QACT,SAAS;AAAA,QACT,SAAS;AAAA,MACb;AAAA,MACA,UAAU;AAAA,QACN,SAAS;AAAA,MAAA;AAAA,IAEjB;AAAA,IACA,UAAAG;AAAA,IACA,aAAAC,IAAcV,GAAiB;AAAA,IAC/B,UAAAc;AAAA,IACA,iBAAAC,IAAkBd,GAAqB;AAAA,IACvC,cAAAe;AAAA,IACA,GAAG/mB;AAAA,KAEPC,MACC;;AACD,UAAMymB,IAAalB,GAAiB,GAC9BC,IAASU,KAA0BO,GACnCC,IAAiB9nB;AAAA,MACnB,MAAA;;AACI,eAAAyK,IACM,IAAI,KAAK,aAAamc,GAAQ;AAAA,UAC1B,eAAAW;AAAA,UACA,OAAOT,GAAO;AAAA,UACd,uBAAsB1nB,IAAAooB,EAAa,YAAb,gBAAApoB,EAAsB;AAAA,UAC5C,wBAAuBmD,IAAAilB,EAAa,aAAb,gBAAAjlB,EAAuB;AAAA,UAC9C,2BAA0BC,IAAAglB,EAAa,gBAAb,gBAAAhlB,EAA0B;AAAA,UACpD,2BAA0BC,IAAA+kB,EAAa,gBAAb,gBAAA/kB,EAA0B;AAAA,UACpD,wBAAuBC,IAAA8kB,EAAa,aAAb,gBAAA9kB,EAAuB;AAAA,UAC9C,aAAailB;AAAA,UACb,aAAAC;AAAA,UACA,UAAAI;AAAA,UACA,iBAAAC;AAAA,UACA,cAAAC;AAAA,QAAA,CACH,EAAE,OAAOzd,CAAK,IACf;AAAA;AAAA,MACV;AAAA,QACIud;AAAA,QACAC;AAAA,QACAC;AAAA,SACA9oB,IAAAooB,EAAa,aAAb,gBAAApoB,EAAuB;AAAA,SACvBmD,IAAAilB,EAAa,aAAb,gBAAAjlB,EAAuB;AAAA,SACvBC,IAAAglB,EAAa,YAAb,gBAAAhlB,EAAsB;AAAA,SACtBC,IAAA+kB,EAAa,gBAAb,gBAAA/kB,EAA0B;AAAA,SAC1BC,IAAA8kB,EAAa,gBAAb,gBAAA9kB,EAA0B;AAAA,QAC1BilB;AAAA,QACAf;AAAA,QACAW;AAAA,QACAK;AAAA,QACAnd;AAAA,MAAA;AAAA,IAER;AACA,WACIA,KACI,gBAAAtS;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAGgJ;AAAA,QACJ,OAAO2mB;AAAA,QACP,WAAWzvB,EAAWC,GAAQ,QAAQL,CAAS;AAAA,QAC/C,KAAAmJ;AAAA,QACC,UAAA0mB;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAIhB;AAEAC,GAAe,cAAc;ACrEtB,MAAMI,KAAgBnnB;AAAA,EACzB,CACI;AAAA,IACI,OAAAyJ;AAAA,IACA,WAAAxS;AAAA,IACA,QAAQqvB;AAAA,IACR,eAAAC,IAAgBR,GAAe,UAAU;AAAA,IACzC,cAAAS,IAAe;AAAA,MACX,SAAS;AAAA,QACL,SAAS;AAAA,MACb;AAAA,MACA,aAAa;AAAA,QACT,SAAS;AAAA,QACT,SAAS;AAAA,MACb;AAAA,MACA,UAAU,CAAA;AAAA,IACd;AAAA,IACA,UAAAG;AAAA,IACA,aAAAC,IAAcV,GAAiB;AAAA,IAC/B,GAAG/lB;AAAA,KAEPC,MACC;;AACD,UAAMymB,IAAalB,GAAiB,GAC9BC,IAASU,KAA0BO,GACnCC,IAAiB9nB;AAAA,MACnB,MAAA;;AACI,eAAAyK,IACM,IAAI,KAAK,aAAamc,GAAQ;AAAA,UAC1B,eAAAW;AAAA,UACA,OAAOT,GAAO;AAAA,UACd,uBAAsB1nB,IAAAooB,EAAa,YAAb,gBAAApoB,EAAsB;AAAA,UAC5C,wBAAuBmD,IAAAilB,EAAa,aAAb,gBAAAjlB,EAAuB;AAAA,UAC9C,2BAA0BC,IAAAglB,EAAa,gBAAb,gBAAAhlB,EAA0B;AAAA,UACpD,2BAA0BC,IAAA+kB,EAAa,gBAAb,gBAAA/kB,EAA0B;AAAA,UACpD,wBAAuBC,IAAA8kB,EAAa,aAAb,gBAAA9kB,EAAuB;AAAA,UAC9C,aAAailB;AAAA,UACb,aAAAC;AAAA,QAAA,CACH,EAAE,OAAOnd,CAAK,IACf;AAAA;AAAA,MACV;AAAA,SACIrL,IAAAooB,EAAa,aAAb,gBAAApoB,EAAuB;AAAA,SACvBmD,IAAAilB,EAAa,aAAb,gBAAAjlB,EAAuB;AAAA,SACvBC,IAAAglB,EAAa,YAAb,gBAAAhlB,EAAsB;AAAA,SACtBC,IAAA+kB,EAAa,gBAAb,gBAAA/kB,EAA0B;AAAA,SAC1BC,IAAA8kB,EAAa,gBAAb,gBAAA9kB,EAA0B;AAAA,QAC1BilB;AAAA,QACAf;AAAA,QACAW;AAAA,QACAK;AAAA,QACAnd;AAAA,MAAA;AAAA,IAER;AACA,WACIA,KACI,gBAAAtS;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAGgJ;AAAA,QACJ,OAAO2mB;AAAA,QACP,WAAWzvB,EAAWC,GAAQ,QAAQL,CAAS;AAAA,QAC/C,KAAAmJ;AAAA,QACC,UAAA0mB;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAIhB;AAEAK,GAAc,cAAc;AC3ErB,MAAMC,KAAapnB;AAAA,EACtB,CACI;AAAA,IACI,OAAAyJ;AAAA,IACA,WAAAxS;AAAA,IACA,QAAQqvB;AAAA,IACR,eAAAC,IAAgBR,GAAe,UAAU;AAAA,IACzC,cAAAS,IAAe;AAAA,MACX,SAAS;AAAA,QACL,SAAS;AAAA,MACb;AAAA,MACA,aAAa;AAAA,QACT,SAAS;AAAA,QACT,SAAS;AAAA,MACb;AAAA,MACA,UAAU,CAAA;AAAA,IACd;AAAA,IACA,UAAAC,IAAWT,GAAU;AAAA,IACrB,gBAAAU,IAAiBT,GAAoB;AAAA,IACrC,UAAAU;AAAA,IACA,aAAAC,IAAcV,GAAiB;AAAA,IAC/B,MAAAmB,IAAO3B,GAAM;AAAA,IACb,aAAA4B,IAAclB,GAAiB;AAAA,IAC/B,GAAGjmB;AAAA,KAEPC,MACC;;AACD,UAAMymB,IAAalB,GAAiB,GAC9BC,IAASU,KAA0BO,GACnCC,IAAiB9nB;AAAA,MACnB,MAAA;;AACI,eAAAyK,IACM,IAAI,KAAK,aAAamc,GAAQ;AAAA,UAC1B,eAAAW;AAAA,UACA,OAAOT,GAAO;AAAA,UACd,uBAAsB1nB,IAAAooB,EAAa,YAAb,gBAAApoB,EAAsB;AAAA,UAC5C,wBAAuBmD,IAAAilB,EAAa,aAAb,gBAAAjlB,EAAuB;AAAA,UAC9C,2BAA0BC,IAAAglB,EAAa,gBAAb,gBAAAhlB,EAA0B;AAAA,UACpD,2BAA0BC,IAAA+kB,EAAa,gBAAb,gBAAA/kB,EAA0B;AAAA,UACpD,wBAAuBC,IAAA8kB,EAAa,aAAb,gBAAA9kB,EAAuB;AAAA,UAC9C,UAAA+kB;AAAA,UACA,gBAAAC;AAAA,UACA,aAAaC;AAAA,UACb,aAAAC;AAAA,UACA,MAAAS;AAAA,UACA,aAAAC;AAAA,QAAA,CACH,EAAE,OAAO7d,CAAK,IACf;AAAA;AAAA,MACV;AAAA,QACIid;AAAA,SACAtoB,IAAAooB,EAAa,aAAb,gBAAApoB,EAAuB;AAAA,SACvBmD,IAAAilB,EAAa,aAAb,gBAAAjlB,EAAuB;AAAA,SACvBC,IAAAglB,EAAa,YAAb,gBAAAhlB,EAAsB;AAAA,SACtBC,IAAA+kB,EAAa,gBAAb,gBAAA/kB,EAA0B;AAAA,SAC1BC,IAAA8kB,EAAa,gBAAb,gBAAA9kB,EAA0B;AAAA,QAC1BilB;AAAA,QACAf;AAAA,QACAW;AAAA,QACAE;AAAA,QACAG;AAAA,QACAS;AAAA,QACAC;AAAA,QACA7d;AAAA,MAAA;AAAA,IAER;AACA,WACIA,KACI,gBAAAtS;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAGgJ;AAAA,QACJ,OAAO2mB;AAAA,QACP,WAAWzvB,EAAWC,GAAQ,QAAQL,CAAS;AAAA,QAC/C,KAAAmJ;AAAA,QACC,UAAA0mB;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAIhB;AAEAM,GAAW,cAAc;;;GChEZG,KAAWvnB;AAAA,EACpB,CACI;AAAA,IACI,WAAA/I;AAAA,IACA,QAAQqvB;AAAA,IACR,OAAA7c,IAAQ;AAAA,IACR,SAAA+d;AAAA,IACA,KAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,KAAAC;AAAA,IACA,MAAAC;AAAA,IACA,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,cAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC,IAAe;AAAA,IACf,GAAGhoB;AAAA,KAEPC,MACC;AACD,UAAMymB,IAAalB,GAAiB,GAC9BC,IAASU,KAA0BO,GACnCjU,IAAO5T,EAAQ,MAAM,IAAI,KAAKyK,CAAK,GAAG,CAACA,CAAK,CAAC,GAC7Cqd,IAAiB,IAAI,KAAK,eAAelB,GAAQ;AAAA,MACnD,SAAA4B;AAAA,MACA,KAAAC;AAAA,MACA,MAAAC;AAAA,MACA,OAAAC;AAAA,MACA,KAAAC;AAAA,MACA,MAAAC;AAAA,MACA,QAAAC;AAAA,MACA,QAAAC;AAAA,MACA,cAAAC;AAAA,MACA,QAAAC;AAAA,MACA,UAAAC;AAAA,IAAA,CACH,EAAE,OAAOtV,CAAI;AACd,WACInJ,KACI,gBAAAtS;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAGgJ;AAAA,QACJ,WAAW9I;AAAA,UACPC,GAAQ;AAAA,UACR,EAAC,CAACA,GAAQ,MAAM,GAAG6wB,EAAY;AAAA,UAC/BlxB;AAAA,QACJ;AAAA,QACA,KAAAmJ;AAAA,QACC,UAAA0mB;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAIhB;AAEAS,GAAS,cAAc;ACnFhB,SAAS3L,GACZxb,GACF;AACQ,QAAAgoB,IAAUzxB,GAAO,CAAC,GAElB,CAACyV,GAAMic,CAAO,IAAIpqB,EAA6B,GAE/C0jB,IAAS3iB;AAAA,IACX,OAAO,EAAC,OAAOoN,KAAA,gBAAAA,EAAM,YAAY,QAAQA,KAAA,gBAAAA,EAAM;IAC/C,CAACA,KAAA,gBAAAA,EAAM,WAAWA,KAAA,gBAAAA,EAAM,UAAU;AAAA,EACtC,GAEM2P,IAAW/c;AAAA,IACb,MACI,OAAO,SAAW,MACZ,IAAI,eAAe,CAACwK,MAAmC;AAC7C,YAAAkT,IAAQlT,EAAQ,CAAC;AAEvB,MAAIkT,MACA,qBAAqB0L,EAAQ,OAAO,GAE5BA,EAAA,UAAU,sBAAsB,MAAM;AAC1C,QAAIhoB,EAAI,WACIioB,EAAA3L,EAAM,cAAc,CAAC,CAAC;AAAA,MAClC,CACH;AAAA,IAER,CAAA,IACD;AAAA,IACV,CAAA;AAAA;AAAA,EACJ;AAEA,SAAAlf,EAAU,OACF4C,EAAI,YACJ2b,KAAA,QAAAA,EAAU,QAAQ3b,EAAI,SAAS,EAAC,KAAK,kBAGlC,MAAM;AACT,IAAA2b,KAAA,QAAAA,EAAU,cAENqM,EAAQ,WACR,qBAAqBA,EAAQ,OAAO;AAAA,EAE5C,IACD,CAAChoB,EAAI,OAAO,CAAC,GAETuhB;AACX;AC1CO,MAAM2G,KAAmB,CAAC,EAAC,mBAAAC,GAAmB,iBAAAC,QAA4B;AAC7E,QAAM,CAACC,GAAeC,CAAgB,IAAIzqB,EAA6BsqB,CAAiB;AACxF,SAAA/qB,EAAU,MAAM;AACZ,IAAAkrB,EAAiBH,CAAiB;AAAA,EAAA,GACnC,CAACA,CAAiB,CAAC,GAEtB/qB,EAAU,MAAM;AACZ,IAAAgrB,EAAgBC,CAAa;AAAA,EAAA,GAC9B,CAACD,GAAiBC,CAAa,CAAC,GAE5B,EAAC,eAAAA,GAAe,kBAAAC,EAAgB;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC2BY,IAAAC,uBAAAA,OAIRA,EAAA,UAAU,WAIVA,EAAA,YAAY,aARJA,IAAAA,MAAA,CAAA,CAAA,GAWAC,uBAAAA,OAIRA,EAAA,WAAW,YAIXA,EAAA,WAAW,YARHA,IAAAA,MAAA,CAAA,CAAA,GAWAC,sBAAAA,OACRA,EAAA,OAAO,QACPA,EAAA,UAAU,WACVA,EAAA,aAAa,cACbA,EAAA,WAAW,YACXA,EAAA,OAAO,QACPA,EAAA,OAAO,QACPA,EAAA,SAAS,UAPDA,IAAAA,KAAA,CAAA,CAAA,GA0CAC,uBAAAA,OACRA,EAAA,OAAO,QACPA,EAAA,eAAe,gBACfA,EAAA,4BAA4B,6BAC5BA,EAAA,OAAO,QACPA,EAAA,oBAAoB,qBACpBA,EAAA,WAAW,YACXA,EAAA,QAAQ,SAPAA,IAAAA,MAAA,CAAA,CAAA,GAYAC,uBAAAA,OACRA,EAAA,OAAO,QACPA,EAAA,iBAAiB,kBACjBA,EAAA,0BAA0B,2BAC1BA,EAAA,eAAe,gBACfA,EAAA,cAAc,eACdA,EAAA,iBAAiB,kBACjBA,EAAA,kBAAkB,mBAClBA,EAAA,SAAS,UACTA,EAAA,aAAa,cACbA,EAAA,gBAAgB,iBAVRA,IAAAA,MAAA,CAAA,CAAA,GAeAC,uBAAAA,OACRA,EAAA,gBAAgB,iBAChBA,EAAA,mBAAmB,oBAFXA,IAAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;GC9HCC,KAAyBC,GAAK,CAAC,EAAC,UAAAjpB,GAAU,aAAAkpB,IAAc,UAAS;AACpE,QAAA,EAAC,WAAApgB,EAAS,IAAIlB,EAAc,GAC5BvR,IAAQ0I,EAAQ,OAAO,EAAC,gBAAgBmqB,MAAe,CAACA,CAAW,CAAC;AAC1E,2BACKpgB,GAAU,EAAA,WAAWzR,EAAQ,aAAa,OAAAhB,GACtC,UAAA2J,GACL;AAER,CAAC;AAEDgpB,GAAY,cAAc;ACDnB,MAAMG,KAA8B,CAAC;AAAA,EACxC,SAAAlY;AAAA,EACA,UAAApS;AAAA,EACA,UAAAmO,IAAW,MAAM;AAAA,EAAC;AAAA,EAClB,eAAAqE;AAAA,EACA,MAAAxC,IAAO;AAAA;AACX,MAES,gBAAA3X,EAAA,OAAA,EAAI,WAAWG,EAAQ,kBACpB,UAAA,gBAAAH;AAAA,EAAC0Z;AAAA,EAAA;AAAA,IACG,eAAAS;AAAA,IACA,WAAWja,EAAWC,EAAQ,OAAO;AAAA,MAAC,CAACA,EAAQ,QAAQ,GAAGwX,MAAS;AAAA;AAAA,KAAe;AAAA,IAClF,SAAAoC;AAAA,IACA,UAAApS;AAAA,IACA,UAAAmO;AAAA,EAAA;AAAA,GAER,GC5BFoc,KAAeC,GAA6B,GAErCC,KAAmB,oBAEnBC,KAAeH,GAAa,QAAQ;AAAA,EAC7C,IAAIE;AAAA,EACJ,QAAQ,CAAC,EAAC,OAAAE,GAAO,QAAAC,QAAY;;AACzB,6BACKT,IAAY,EAAA,cAAa7qB,IAAAsrB,EAAO,UAAU,SAAjB,gBAAAtrB,EAAuB,OAC7C,UAAA,gBAAAjH;AAAA,MAACiyB;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,SAASK,EAAM,qBAAqB;AAAA,QACpC,UAAUA,EAAM,gCAAgC;AAAA,QAChD,eAAeA,EAAM,sBAAsB;AAAA,MAAA;AAAA,IAAA,GAEnD;AAAA,EAER;AAAA,EACA,MAAM,CAAC,EAAC,KAAAE,GAAK,QAAAD,QAAY;;AACrB,6BACKT,IAAY,EAAA,cAAa7qB,IAAAsrB,EAAO,UAAU,SAAjB,gBAAAtrB,EAAuB,OAC7C,UAAA,gBAAAjH;AAAA,MAACiyB;AAAA,MAAA;AAAA,QACG,SAASO,EAAI,cAAc;AAAA,QAC3B,UAAU,CAACA,EAAI,aAAa;AAAA,QAC5B,UAAUA,EAAI,yBAAyB;AAAA,QACvC,eAAe;AAAA,MAAA;AAAA,IAAA,GAEvB;AAAA,EAER;AAAA,EACA,oBAAoB;AAAA,EACpB,MAAM;AAAA,EACN,MAAM;AAAA,IACF,MAAMd,EAAY;AAAA,IAClB,OAAO;AAAA,IACP,UAAU;AAAA,EACd;AAAA,EACA,QAAQ,CAAC,EAAC,OAAAY,GAAO,QAAAC,QAAY;;AACzB,6BACKT,IAAY,EAAA,cAAa7qB,IAAAsrB,EAAO,UAAU,SAAjB,gBAAAtrB,EAAuB,OAC7C,UAAA,gBAAAjH;AAAA,MAACiyB;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,SAASK,EAAM,qBAAqB;AAAA,QACpC,UAAUA,EAAM,gCAAgC;AAAA,QAChD,eAAeA,EAAM,sBAAsB;AAAA,MAAA;AAAA,IAAA,GAEnD;AAAA,EAAA;AAGZ,CAAC,GCpDKG,KAAuB,CAAC,GAOxBC,KAAgB,CAACC,GAA8BC,MAA2C;AAC5F,QAAMC,IAAYD,KAAA,QAAAA,EAAmB,QAAQA,KAAA,gBAAAA,EAAmB,QAAQ,CAAC,GACnEE,IAAWF,KAAA,QAAAA,EAAmB,OAAOA,KAAA,gBAAAA,EAAmB,OAAO,CAAC;AAC/D,SAAA;AAAA,IACH,OAAOC;AAAA,IACP,MAAMF,IAAsB,CAACP,IAAkB,GAAGU,CAAQ,IAAIA;AAAA,EAClE;AACJ,GAEaC,KAAmB,CAAC;AAAA,EAC7B,mBAAAH,IAAoBH;AAAA,EACpB,qBAAAE;AACJ,MAAa;AACT,QAAMK,IAAyBnrB;AAAA,IAC3B,MAAM6qB,GAAcC,GAAqBC,CAAiB;AAAA,IAC1D,CAACA,GAAmBD,CAAmB;AAAA,EAC3C,GAEM,CAACM,GAAeC,CAAgB,IAAIpsB,EAA6BksB,CAAsB;AAE7F,SAAA3sB,EAAU,MAAM;AACZ,IAAA6sB,EAAiBF,CAAsB;AAAA,EAAA,GACxC,CAACA,CAAsB,CAAC,GAEpB,EAAC,eAAAC,GAAe,kBAAAC,EAAgB;AAC3C,GCjBaC,KAAYtqB;AAAA,EACrB,CACI,EAAC,UAAAC,GAAU,UAAAsqB,GAAU,YAAAC,GAAY,aAAAC,GAAa,WAAAC,GAAW,IAAAngB,IAAK,MAAM,eAAAogB,IAAgB,GAAK,GACzFvqB,MACC;AACD,UAAM,EAAC,WAAA2I,GAAW,KAAK6hB,EAAA,IAAY/iB,EAAoC;AACvE,IAAAiC,GAAY1J,GAAKwqB,CAAQ;AACzB,UAAMt0B,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,eAAewrB;AAAA,QACf,gBAAgBC;AAAA,MAAA;AAAA,MAEpB,CAACD,GAAYC,CAAW;AAAA,IAC5B;AAGI,WAAA,gBAAAtzB;AAAA,MAAC4R;AAAA,MAAA;AAAA,QACG,OAAAzS;AAAA,QACA,IAAAiU;AAAA,QACA,WAAWlT;AAAA,UACPC,EAAQ;AAAA,UACR;AAAA,YACI,CAACA,EAAQ,WAAW,GAAGqzB;AAAA,YACvB,CAACrzB,EAAQ,MAAM,GAAG,EAAQizB;AAAA,YAC1B,CAACjzB,EAAQ,YAAY,GAAG,EAAQizB,KAAahgB,MAAO;AAAA,YACpD,CAACjT,EAAQ,IAAI,GAAGizB,MAAa;AAAA,YAC7B,CAACjzB,EAAQ,KAAK,GAAGizB,MAAa;AAAA,UAClC;AAAA,UACAG;AAAA,QACJ;AAAA,QACC,UAAAzqB;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGZ;AAEAqqB,GAAU,cAAc;AC9CjB,MAAMO,KAAiB,CAAC,EAAC,WAAAC,GAAW,WAAAC,GAAW,YAAAC,GAAY,UAAAC,QAAqB;AACnF,QAAMC,IAAcC,GAAe;AAAA,IAC/B,OAAOL;AAAA,IACP,kBAAkB,MAAMC,EAAU;AAAA,IAClC,cAAc,MAAMC;AAAA,IACpB,UAAAC;AAAA,EAAA,CACH,GAEKG,IAAcF,EAAY,gBAAgB,GAE1C,CAACG,GAAQC,CAAK,IAChBF,EAAY,SAAS,IACf;AAAA,IACIG,GAAaH,EAAY,CAAC,CAAC,EAAE,QAAQF,EAAY,QAAQ;AAAA,IACzDA,EAAY,aACR,IAAAK,GAAaH,EAAYA,EAAY,SAAS,CAAC,CAAC,EAAE;AAAA,EAAA,IAE1D,CAAC,GAAG,CAAC;AAEf,SAAO,EAAC,aAAAF,GAAa,aAAAE,GAAa,QAAAC,GAAQ,OAAAC,EAAK;AACnD,GC1BaE,KAAe,CAACC,MAA6B;AAChD,QAAA,CAACC,GAAWC,CAAY,IAAI1tB,EAAS,MAAM,CAAC,GAAGwtB,CAAa,CAAC;AAEnE,SAAAjuB,EAAU,MAAM;AACZ,IAAAmuB,EAAa,MAAM,CAAC,GAAGF,CAAa,CAAC;AAAA,EAAA,GACtC,CAACA,CAAa,CAAC,GACX,EAAC,WAAAC,GAAW,cAAAC,EAAY;AACnC,GCLaC,KAAgB,CAACC,MAAkB;AAC5C,QAAM,CAACC,GAASC,CAAU,IAAI9tB,EAAS,EAAK;AAE5C,SAAAT,EAAU,MAAM;AACN,UAAAwuB,IAAQ,OAAO,WAAWH,CAAK;AAEjC,QAAA,CAAC,OAAO;AACR;AAEA,IAAAG,EAAM,YAAYF,KAClBC,EAAWC,EAAM,OAAO;AAE5B,UAAMC,IAAW,MAAMF,EAAWC,EAAM,OAAO;AACzC,WAAAA,EAAA,iBAAiB,UAAUC,CAAQ,GAClC,MAAMD,EAAM,oBAAoB,UAAUC,CAAQ;AAAA,EAAA,GAC1D,CAACH,GAASD,CAAK,CAAC,GAEZC;AACX,GCJa/I,KAAwB,CAAC;AAAA,EAClC,gBAAAmJ;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAUC;AAAA,EACV,kBAAAC;AAAA,EACA,WAAAxB;AACJ,MAAM;AACI,QAAAxa,IAAW3Z,GAAyB,IAAI,GAExC,CAAC41B,GAAUC,CAAW,IAAIvuB,EAASouB,CAAY,GAE/CvJ,IAAgBxkB;AAAA,IAClB,CAACiX,MACUA,KAAauV;AAAA,IAExB,CAACA,CAAS;AAAA,EACd,GAEM2B,IAAuBnuB,EAAY,CAACC,MAAyC;AAC/E,UAAMgX,IAAY,SAAShX,EAAM,OAAO,KAAK;AAC7C,IAAAiuB,EAAYjX,CAAS;AAAA,EACzB,GAAG,EAAE,GAECmX,IAAsBpuB;AAAA,IACxB,CAACC,MAA2C;AACxC,MAAIA,EAAM,QAAQ,WAAWukB,EAAcyJ,CAAQ,MAC/CD,EAAiBC,CAAQ,GACzBL,EAAe,CAAC;AAAA,IAExB;AAAA,IACA,CAACpJ,GAAewJ,GAAkBC,GAAUL,CAAc;AAAA,EAC9D,GAEMS,IAAuBruB,EAAY,MAAM;AACvC,IAAAwkB,EAAcyJ,CAAQ,MACtBD,EAAiBC,CAAQ,GACzBL,EAAe,CAAC;AAAA,KAErB,CAACpJ,GAAewJ,GAAkBC,GAAUL,CAAc,CAAC,GAExDU,IAAchB,GAAc,kBAAkB,GAE9CiB,IAAqBD,KAAeR,KAAe,GACnDU,IAAwBF,KAAeR,IAAc;AAE3D,SACK,gBAAAltB,EAAA,OAAA,EAAI,WAAW5H,EAAQ,mBACpB,UAAA;AAAA,IAAA,gBAAAH;AAAA,MAAC41B;AAAAA,MAAA;AAAA,QACG,iBAAiBF;AAAA,QACjB,gBAAgBC;AAAA,QAChB,cAAcZ;AAAA,QACd,cAAcC;AAAA,QACd,YAAYC;AAAA,MAAA;AAAA,IAChB;AAAA,IACC,gBAAAltB,EAAA,OAAA,EAAI,WAAW5H,EAAQ,oBACpB,UAAA;AAAA,MAAA,gBAAAH,EAAC,WAAM,SAAQ,SAAQ,WAAWG,EAAQ,iBAAiB,UAE3D,kBAAA;AAAA,MACA,gBAAAH;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,KAAK;AAAA,UACL,KAAK2zB;AAAA,UACL,KAAKxa;AAAA,UACL,SAASoc;AAAA,UACT,UAAUD;AAAA,UACV,OAAOF;AAAA,UACP,IAAG;AAAA,UACH,MAAK;AAAA,UACL,WAAWl1B,EAAWC,EAAQ,iBAAiB;AAAA,YAC3C,CAACA,EAAQ,KAAK,GAAG,CAACwrB,EAAcyJ,CAAQ;AAAA,UAC3C,CAAA;AAAA,QAAA;AAAA,MACL;AAAA,MACA,gBAAAp1B;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,UAAU,CAAC2rB,EAAcyJ,CAAQ;AAAA,UACjC,WAAWj1B,EAAQ;AAAA,UACnB,SAASq1B;AAAA,UACT,UAAC,gBAAAx1B,EAAA2C,IAAA,EAAU,WAAWxC,EAAQ,KAAM,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACxC,EACJ,CAAA;AAAA,EAAA,GACJ;AAER,GC1Fa01B,KAAgB,CAAC,EAAC,gBAAAC,GAAgB,oBAAAC,QAA+B;AAC1E,QAAM,CAACC,GAAYC,CAAa,IAAInvB,EAA0BgvB,CAAc;AAE5E,EAAAzvB,EAAU,MAAM;AACZ,IAAA4vB,EAAcH,CAAc;AAAA,EAAA,GAC7B,CAACA,CAAc,CAAC,GAEnBzvB,EAAU,MAAM;AACZ,IAAA0vB,EAAmBC,CAAU;AAAA,EAAA,GAC9B,CAACD,GAAoBC,CAAU,CAAC;AAE7B,QAAAhB,IAAcgB,EAAW,YAAY,GAErCjB,IAAiB5tB,EAAY,CAACokB,MAAqB;AACrD,IAAA0K,EAAc,QAAc,EAAC,GAAGC,GAAW,WAAW3K,IAAW,IAAG;AAAA,EACxE,GAAG,EAAE,GAEC8J,IAAcluB,EAAY,CAACgvB,MAAqB;AAClD,IAAAF,EAAc,QAAc,EAAC,GAAGC,GAAW,UAAUC,IAAU;AAAA,EACnE,GAAG,EAAE;AAEE,SAAA;AAAA,IACH,YAAAH;AAAA,IACA,eAAAC;AAAA,IACA,aAAAjB;AAAA,IACA,gBAAAD;AAAA,IACA,aAAAM;AAAA,EACJ;AACJ,GC5Bae,KAAa,CAAC,EAAC,aAAAC,GAAa,iBAAAC,QAA4B;AACjE,QAAM,CAACC,GAASC,CAAU,IAAI1vB,EAAuBuvB,CAAW;AAEhE,SAAAhwB,EAAU,MAAM;AACZ,IAAAmwB,EAAWH,CAAW;AAAA,EAAA,GACvB,CAACA,CAAW,CAAC,GAEhBhwB,EAAU,MAAM;AACZ,IAAAiwB,EAAgBC,CAAO;AAAA,EAAA,GACxB,CAACD,GAAiBC,CAAO,CAAC,GAEtB,EAAC,SAAAA,GAAS,YAAAC,EAAU;AAC/B;;;;;;;;GCPM/I,KAAiB,CAACnb,MACf,MAAM,QAAQA,CAAK,IAGbA,EAAM,IAAI,CAAUrH,MAAA,OAAOA,CAAM,CAAC,IAFlC,CAAC,IAAI,EAAE,GAMhBwrB,KAAgB,CAACnkB,MACZA,EAAM,IAAI,CAAUrH,MAAA,OAAOA,CAAM,CAAC,GAGhCyrB,KAA8B,CAAC,EAAC,OAAOhZ,GAAW,UAAA5H,QAAc;AACzE,QAAM,CAACxD,GAAO2L,CAAQ,IAAInX,EAAS2mB,GAAe/P,CAAS,CAAC,GAEtD,CAACiZ,GAAMC,CAAE,IAAItkB,GAEbukB,IAAkB1vB;AAAA,IACpB,CAACC,MAAyC;AACtC,YAAMgX,IAAY,CAAChX,EAAM,OAAO,OAAOwvB,CAAE;AACzC,MAAA3Y,EAASG,CAAS;AAAA,IACtB;AAAA,IACA,CAACwY,CAAE;AAAA,EACP,GACME,IAAkB3vB;AAAA,IACpB,CAACC,MAAyC;AACtC,YAAMgX,IAAY,CAACuY,GAAMvvB,EAAM,OAAO,KAAK;AAC3C,MAAA6W,EAASG,CAAS;AAAA,IACtB;AAAA,IACA,CAACuY,CAAI;AAAA,EACT;AAEA,SAAAtwB,EAAU,MAAM;AACH,IAAAyP,EAAA2gB,GAAcnkB,CAAK,CAAC;AAAA,EAAA,GAC9B,CAACwD,GAAUxD,CAAK,CAAC,GAEf,gBAAAvK,EAAA,OAAA,EAAI,WAAW5H,GAAQ,aACpB,UAAA;AAAA,IAAA,gBAAAH,EAAC6W,IAAU,EAAA,WAAW1W,GAAQ,aAAa,OAAM,SAC7C,UAAA,gBAAAH,EAAC2f,IAAa,EAAA,MAAK,YAAW,OAAOgX,GAAM,UAAUE,EAAiB,CAAA,GAC1E;AAAA,IACC,gBAAA72B,EAAA6W,IAAA,EAAU,WAAW1W,GAAQ,aAAa,OAAM,OAC7C,UAAC,gBAAAH,EAAA2f,IAAA,EAAa,MAAK,YAAW,OAAOiX,GAAI,UAAUE,GAAiB,EACxE,CAAA;AAAA,EAAA,GACJ;AAER,GC9CaC,KAA4B,CAAC,EAAC,OAAOrZ,GAAW,UAAA5H,QAAc;AACvE,QAAM,CAACxD,GAAO2L,CAAQ,IAAInX,EAAS4W,CAAiC;AAEpE,EAAArX,EAAU,MAAM;AACZ,IAAA4X,EAASP,CAAiC;AAAA,EAAA,GAC3C,CAACA,CAAS,CAAC;AAER,QAAA,CAACiZ,GAAMC,CAAE,IAAItkB,GACbukB,IAAkB1vB;AAAA,IACpB,CAACC,MAAyC;AACtC,YAAMgX,IAAY,CAAChX,EAAM,OAAO,OAAOwvB,CAAE;AACzC,MAAA3Y,EAASG,CAAS;AAAA,IACtB;AAAA,IACA,CAACwY,CAAE;AAAA,EACP,GACME,IAAkB3vB;AAAA,IACpB,CAACC,MAAyC;AACtC,YAAMgX,IAAY,CAACuY,GAAMvvB,EAAM,OAAO,KAAK;AAC3C,MAAA6W,EAASG,CAAS;AAAA,IACtB;AAAA,IACA,CAACuY,CAAI;AAAA,EACT;AAEA,SAAAtwB,EAAU,MAAM;AACZ,IAAAyP,EAASxD,CAAK;AAAA,EAAA,GACf,CAACwD,GAAUxD,CAAK,CAAC,GAEf,gBAAAvK,EAAA,OAAA,EAAI,WAAW5H,GAAQ,aACpB,UAAA;AAAA,IAAA,gBAAAH,EAAC6W,IAAU,EAAA,WAAW1W,GAAQ,aAAa,OAAM,SAC7C,UAAC,gBAAAH,EAAAib,IAAA,EAAU,OAAO0b,KAAQ,IAAI,UAAUE,EAAiB,CAAA,GAC7D;AAAA,IACC,gBAAA72B,EAAA6W,IAAA,EAAU,WAAW1W,GAAQ,aAAa,OAAM,OAC7C,UAAC,gBAAAH,EAAAib,IAAA,EAAU,OAAO2b,KAAM,IAAI,UAAUE,GAAiB,EAC3D,CAAA;AAAA,EAAA,GACJ;AAER,GCpCaE,KAAuB,CAAC,EAAC,OAAA1kB,GAAO,UAAAwD,QAAc;AACvD,QAAMmhB,IAAqB9vB;AAAA,IACvB,CAACC,MAAyC;AAC7B,MAAA0O,EAAA1O,EAAM,OAAO,KAAK;AAAA,IAC/B;AAAA,IACA,CAAC0O,CAAQ;AAAA,EACb;AAEI,SAAA,gBAAA9V,EAAC6W,IAAU,EAAA,WAAW3W,EAAWC,GAAQ,OAAOA,GAAQ,UAAU,GAAG,OAAM,iBACvE,UAAA,gBAAAH;AAAA,IAAC2a;AAAA,IAAA;AAAA,MACG,OAAArI;AAAA,MACA,UAAU2kB;AAAA,IAAA;AAAA,EAAA,GAElB;AAER,GCJMC,KAAe;AAAA,EACjB,CAACxF,EAAY,IAAI,GAAGsF;AAAA,EACpB,CAACtF,EAAY,QAAQ,GAAGgF;AAAA,EACxB,CAAChF,EAAY,OAAO,GAAGgF;AAAA,EACvB,CAAChF,EAAY,IAAI,GAAGgF;AAAA,EACpB,CAAChF,EAAY,UAAU,GAAGgF;AAAA,EAC1B,CAAChF,EAAY,MAAM,GAAGsF;AAAA,EACtB,CAACtF,EAAY,IAAI,GAAGqF;AACxB,GAEaI,KAA0BpF,GAAK,CAAC,EAAC,IAAA1pB,GAAI,cAAA+uB,GAAc,eAAA9F,GAAe,cAAA+F,QAAkB;AAC7F,QAAM,EAAC,cAAA9qB,GAAc,aAAAH,MAAeH,GAAe5D,CAAE,GAE/CivB,IAAgBzvB;AAAA,IAClB,MACIwvB,EACK,cAAc,EACd,IAAI,CAAU9E,MAAA;;AACJ,aAAA;AAAA,QACH,IAAIA,EAAO;AAAA,QACX,OAAMtrB,IAAAsrB,EAAO,UAAU,SAAjB,gBAAAtrB,EAAuB;AAAA,QAC7B,OAAMmD,IAAAmoB,EAAO,UAAU,SAAjB,gBAAAnoB,EAAuB;AAAA,QAC7B,YAAYmoB,KAAA,gBAAAA,EAAQ;AAAA,MACxB;AAAA,IACH,CAAA,EACA,OAAO,CAAC,EAAC,YAAAgF,EAAA,MAAgBA,CAAU;AAAA,IAC5C,CAACF,CAAY;AAAA,EACjB,GAEM,CAACG,GAAgBC,CAAiB,IAAI3wB;AAAA,IACxCyF,KAAA,gBAAAA,EAAc;AAAA,EAClB;AAEA,EAAAlG,EAAU,MAAM;AACE,IAAAkG,KAAA,QAAAA,EAAA,YAAYkrB,EAAkBlrB,KAAA,gBAAAA,EAAc,QAAkB;AAAA,EAAA,GAC7E,CAACA,KAAA,gBAAAA,EAAc,QAAQ,CAAC;AAErB,QAAAmrB,IAAqBvwB,EAAY,CAACC,MAA0C;AAC5D,IAAAqwB,EAAArwB,EAAM,OAAO,KAAK;AAAA,EACxC,GAAG,EAAE,GAEC,CAACuwB,GAAcC,CAAe,IAAI9wB,EAAmC4qB,EAAY,IAAI;AAE3F,EAAArrB,EAAU,MAAM;;AACZ,UAAMwxB,MACF5wB,IAAAqwB,EAAc,KAAK,CAAC,EAAC,IAAAjvB,EAAE,MAAMA,MAAOmvB,CAAc,MAAlD,gBAAAvwB,EAAqD,SACpDyqB,EAAY;AACjB,IAAAkG,EAAgBC,CAAQ;AAAA,EACzB,GAAA,CAACP,GAAeE,GAAgBI,CAAe,CAAC;AAEnD,QAAME,IAAcjwB;AAAA,IAChB,MAAM;;AAAA,aAAA2vB,OAAkBptB,KAAAnD,IAAAowB,EAAa,UAAUG,CAAc,MAArC,gBAAAvwB,EAAwC,UAAU,SAAlD,gBAAAmD,EAAwD;AAAA;AAAA,IAChF,CAACotB,GAAgBH,CAAY;AAAA,EACjC,GAEMU,IAAalwB;AAAA,IACf,MAAMiwB,KAAeZ,GAAaS,CAAY;AAAA,IAC9C,CAACG,GAAaH,CAAY;AAAA,EAC9B,GAEMK,IAAmBnwB,EAAQ,MAAM;AAC7B,UAAAowB,IAAe3G,EAAc,KAAK,CAAC,EAAC,IAAAjpB,EAAAA,MAAQA,MAAOmvB,CAAc;AACvE,YAAOS,KAAA,gBAAAA,EAAc,WAAU,SAAaA,KAAA,gBAAAA,EAAc,QAAwB;AAAA,EAAA,GACnF,CAAC3G,GAAekG,CAAc,CAAC,GAE5B,CAACU,GAAaC,CAAc,IAAIrxB,EAASkxB,CAAgB;AAE/D,EAAA3xB,EAAU,MAAM;AACZ,IAAA8xB,EAAe,EAAE;AAAA,EAAA,GAClB,CAACX,CAAc,CAAC;AAEnB,QAAMY,IAAY,MAAM,QAAQF,CAAW,IACrCA,EAAY,MAAM,CAAA5lB,MAAS,EAAQA,CAAM,IACzC,EAAQ4lB;AAEd,EAAA7xB,EAAU,MAAM;AACZ,IAAA8xB,EAAeH,CAAgB;AAAA,EAAA,GAChC,CAACA,CAAgB,CAAC;AAEf,QAAAf,IAAqB9vB,EAAY,CAACmL,MAAgC;AACpE,IAAA6lB,EAAe7lB,CAAK;AAAA,EACxB,GAAG,EAAE,GAEC+lB,IAAoBlxB,EAAY,MAAM;AACxC,IAAAiwB,EAAa,EAAC,QAAQI,GAAgB,QAAQU,GAAY,GAC9C9rB,EAAA;AAAA,KACb,CAACA,GAAa8rB,GAAad,GAAcI,CAAc,CAAC,GAErDc,IAAoBnxB,EAAY,MAAM;AACxC,IAAAiwB,EAAa,EAAC,QAAQI,GAAgB,QAAQ,IAAG,GACrCprB,EAAA;AAAA,EACb,GAAA,CAACA,GAAagrB,GAAcI,CAAc,CAAC,GAExCvvB,IAAUJ;AAAA,IACZ,MAAM;AAAA,MACF;AAAA,QACI,EAAC,OAAO,gBAAgB,SAASywB,GAAmB,MAAM30B,GAAa;AAAA,QACvE;AAAA,UACI,OAAO;AAAA,UACP,MAAMF;AAAA,UACN,SAAS40B;AAAA,UACT,MAAM;AAAA,UACN,UAAU,CAACD;AAAA,QAAA;AAAA,MACf;AAAA,IAER;AAAA,IACA,CAACC,GAAmBC,GAAmBF,CAAS;AAAA,EACpD,GAEMG,IAAY1wB,EAAQ,MAAM;;AACrB,WAAA,OAAO2vB,KAAmB,YAC3BptB,KAAAnD,IAAAowB,EAAa,UAAUG,CAAc,MAArC,gBAAAvwB,EAAwC,UAAU,SAAlD,gBAAAmD,EAAwD,YACxD,CAAC;AAAA,EAAA,GACR,CAACotB,GAAgBH,CAAY,CAAC;AAG7B,SAAA,gBAAAr3B;AAAA,IAACwM;AAAA,IAAA;AAAA,MACG,WAAU;AAAA,MACV,iBAAiB;AAAA,MACjB,aAAY;AAAA,MACZ,IAAAnE;AAAA,MACA,WAAWlI,GAAQ;AAAA,MACnB,SAAA8H;AAAA,MACA,UAAC,gBAAAF,EAAA,OAAA,EAAI,WAAW5H,GAAQ,UACpB,UAAA;AAAA,QAAA,gBAAAH,EAAC6W,IAAU,EAAA,WAAW1W,GAAQ,OAAO,OAAM,WACvC,UAAA,gBAAAH;AAAA,UAACmgB;AAAA,UAAA;AAAA,YACG,QAAQpb;AAAA,YACR,OAAOyyB;AAAA,YACP,UAAUE;AAAA,YACT,UAAcJ,EAAA,IAAI,CAAC,EAAC,IAAAjvB,GAAI,MAAAkS,EACrB,MAAA,gBAAAva,EAAC,UAAgB,EAAA,OAAOqI,GACnB,UAAAkS,EAAA,GADQlS,CAEb,CACH;AAAA,UAAA;AAAA,QAAA,GAET;AAAA,QAOA,gBAAArI;AAAA,UAAC+3B;AAAA,UAAA;AAAA,YACG,OAAOG;AAAA,YACP,UAAUjB;AAAA,YACV,WAAAsB;AAAA,UAAA;AAAA,QAAA;AAAA,MACJ,EACJ,CAAA;AAAA,IAAA;AAAA,EACJ;AAER,CAAC;AAEDpB,GAAa,cAAc;ACvKpB,MAAMqB,KAAkB,CAAC,EAAC,kBAAAC,GAAkB,aAAAC,GAAa,gBAAAC,QAA2B;AACjF,QAAAC,IAAWD,MAAmBlH,GAAgB,UAC9C,CAACY,GAAcwG,CAAe,IAAI/xB,EAA4B2xB,CAAgB;AACpF,EAAApyB,EAAU,MAAM;AACZ,IAAAwyB,EAAgBJ,CAAgB;AAAA,EAAA,GACjC,CAACA,CAAgB,CAAC,GAErBpyB,EAAU,MAAM;AACZ,IAAAqyB,EAAYrG,CAAY;AAAA,EAAA,GACzB,CAACqG,GAAarG,CAAY,CAAC;AAExB,QAAAyG,IAAiB3xB,EAAY,MAAM;AACrC,IAAAwxB,MAAmBlH,GAAgB,YAAYoH,EAAgB,CAAA,CAAE,GACjEH,EAAY,CAAA,CAAE;AAAA,EAAA,GACf,CAACA,GAAaC,CAAc,CAAC,GAE1BI,IAAqBlxB,EAAQ,MAC3B+wB,IACOC,IAEA,CAACG,MAAwC;AACxC,IACYN,EADZ,OAAOM,KAAY,aACPA,EAAQ3G,CAAY,IAEpB2G,CAF0C;AAAA,EAI9D,GAEL,CAACJ,GAAUF,GAAarG,CAAY,CAAC;AAExC,SAAO,EAAC,cAAAA,GAAc,iBAAiB0G,GAAoB,gBAAAD,EAAc;AAC7E,GCtCaG,KAAiB,CAAC,EAAC,iBAAAC,QACxBA,MAAoB,SACb,UAEA,GAAGA,CAAe,MCOpBC,KAA0B,CAAC,EAAC,iBAAAC,GAAiB,sBAAAC,GAAsB,IAAAhxB,QAAQ;AACpF,QAAM,EAAC,aAAA+D,EAAA,IAAeH,GAAe5D,CAAE,GACjCJ,IAAUJ;AAAA,IACZ,MACI;AAAA,MACI;AAAA,QACI;AAAA,UACI,OAAO;AAAA,UACP,MAAM;AAAA,UACN,MAAMlG;AAAA,UACN,SAAS,MAAM;AACC,YAAAyK,EAAA;AAAA,UAAA;AAAA,QAEpB;AAAA,QACA;AAAA,UACI,OAAO;AAAA,UACP,MAAM;AAAA,UACN,MAAMrI;AAAA,UACN,SAAS,MAAM;AACU,YAAAs1B,EAAA,GACTjtB,EAAA;AAAA,UAAA;AAAA,QAChB;AAAA,MACJ;AAAA,IAER;AAAA,IACJ,CAACA,GAAaitB,CAAoB;AAAA,EACtC;AAEI,SAAA,gBAAAtxB;AAAA,IAACyE;AAAA,IAAA;AAAA,MACG,WAAU;AAAA,MACV,IAAAnE;AAAA,MACA,WAAWlI,GAAQ;AAAA,MACnB,SAAA8H;AAAA,MACA,iBAAiB;AAAA,MAAO,UAAA;AAAA,QAAA;AAAA,QACF,gBAAAjI,EAACkvB,IAAc,EAAA,OAAOkK,EAAiB,CAAA;AAAA,QAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EACnE;AAER,GC3CaE,KAA6B,CAAC,EAAC,UAAAxjB,IAAW,MAAM;AAAC,GAAG,OAAAxD,GAAO,GAAGvS,QAAe;AACtF,QAAM0W,IAAetP;AAAA,IACjB,CAACC,MAAyC;AACtC,MAAA0O,EAAS,OAAO,OAAO1O,EAAM,OAAO,KAAK,IAAI,GAAG,CAAC;AAAA,IACrD;AAAA,IACA,CAAC0O,CAAQ;AAAA,EACb;AAEI,SAAA,gBAAA9V;AAAA,IAACsf;AAAA,IAAA;AAAA,MACI,GAAGvf;AAAA,MACJ,UAAU0W;AAAA,MACV,OAAO,OAAOnE,CAAK,IAAI;AAAA,MACvB,MAAM;AAAA,IAAA;AAAA,EACV;AAER,GCOMinB,KAAmB,CAAyClkB,MAA0B;AACxF,QAAMmkB,IAEF,CAAC,EAAC,UAAA1jB,IAAW,MAAM;AAAA,EAAA,GAAI,GAAG/V,EAAA,MAAe;AACzC,UAAM0W,IAAetP;AAAA,MACjB,CAACC,MAAyC;;AAC7B,QAAA0O,GAAA7O,IAAAG,EAAM,WAAN,gBAAAH,EAAc,KAAK;AAAA,MAChC;AAAA,MACA,CAAC6O,CAAQ;AAAA,IACb;AACA,6BAAQT,GAAW,EAAA,GAAItV,GAAsB,MAAK,YAAW,UAAU0W,GAAc;AAAA,EACzF;AAEA,SAAA+iB,EAAQ,cAAcnkB,EAAU,aAEzBmkB;AACX,GAEMC,KAAoB;AAAA,EACtB,CAAC/H,EAAY,IAAI,GAAG6H,GAAiB5e,EAAS;AAAA,EAC9C,CAAC+W,EAAY,QAAQ,GAAG6H,GAAiB5Z,EAAY;AAAA,EACrD,CAAC+R,EAAY,OAAO,GAAG6H,GAAiB5Z,EAAY;AAAA,EACpD,CAAC+R,EAAY,IAAI,GAAG6H,GAAiB5Z,EAAY;AAAA,EACjD,CAAC+R,EAAY,UAAU,GAAG4H;AAAA,EAC1B,CAAC5H,EAAY,MAAM,GAAG6H,GAAiB5e,EAAS;AAAA,EAChD,CAAC+W,EAAY,IAAI,GAAG6H,GAAiBte,EAAS;AAClD,GAEaye,KAAwB3H,GAAK,CAAC,EAAC,IAAA1pB,GAAI,eAAAivB,IAAgB,IAAI,iBAAA8B,GAAiB,QAAAO,QAAY;AAC7F,QAAM,EAAC,cAAAptB,GAAc,aAAAH,MAAeH,GAAe5D,CAAE,GAE/C,CAACmvB,GAAgBC,CAAiB,IAAI3wB,EAASwwB,EAAc,CAAC,EAAE,EAAE;AAExE,EAAAjxB,EAAU,MAAM;AACE,IAAAkG,KAAA,QAAAA,EAAA,YAAYkrB,EAAkBlrB,KAAA,gBAAAA,EAAc,QAAkB;AAAA,EAAA,GAC7E,CAACA,KAAA,gBAAAA,EAAc,QAAQ,CAAC;AAErB,QAAAmrB,IAAqBvwB,EAAY,CAACC,MAA0C;AAC5D,IAAAqwB,EAAArwB,EAAM,OAAO,KAAK;AAAA,EACxC,GAAG,EAAE,GAEC,CAACuwB,GAAcC,CAAe,IAAI9wB,EAAmC4qB,EAAY,IAAI;AAE3F,EAAArrB,EAAU,MAAM;;AACZ,UAAMwxB,MACF5wB,IAAAqwB,EAAc,KAAK,CAAC,EAAC,IAAAjvB,EAAE,MAAMA,MAAOmvB,CAAc,MAAlD,gBAAAvwB,EAAqD,SACpDyqB,EAAY;AACjB,IAAAkG,EAAgBC,CAAQ;AAAA,EACzB,GAAA,CAACP,GAAeE,GAAgBI,CAAe,CAAC;AAE7C,QAAAgC,IAAQ/xB,EAAQ,MAAM4xB,GAAkB9B,CAAY,GAAG,CAACA,CAAY,CAAC,GAErE,CAACkC,GAAgBC,CAAiB,IAAIhzB,EAAS,EAAE;AAEvD,EAAAT,EAAU,MAAM;AACZ,IAAAyzB,EAAkB,EAAE;AAAA,EAAA,GACrB,CAACtC,CAAc,CAAC;AAEb,QAAAuC,IAAa5yB,EAAY,MAAM;AACjC,IAAAwyB,EAAOnC,KAAkBF,EAAc,CAAC,EAAE,IAAIuC,CAAc,GAChDztB,EAAA;AAAA,EAAA,GACb,CAACA,GAAakrB,GAAeqC,GAAQnC,GAAgBqC,CAAc,CAAC,GAEjEtjB,IAAcpP,EAAY,MAAM;AACtB,IAAAiF,EAAA;AAAA,EAAA,GACb,CAACA,CAAW,CAAC,GAEVnE,IAAUJ;AAAA,IACZ,MAAM;AAAA,MACF;AAAA,QACI,EAAC,OAAO,UAAU,SAAS0O,GAAa,MAAM5U,GAAS;AAAA,QACvD;AAAA,UACI,OAAO;AAAA,UACP,MAAMkC;AAAA,UACN,SAASk2B;AAAA,UACT,MAAM;AAAA,QAAA;AAAA,MACV;AAAA,IAER;AAAA,IACA,CAACA,GAAYxjB,CAAW;AAAA,EAC5B,GAEMmZ,IAAalB,GAAiB,GAE9BwL,IAAkB,IAAI,KAAK,aAAatK,GAAY;AAAA,IACtD,OAAO;AAAA,EAAA,CACV,EAAE,OAAO0J,KAAmB,CAAC;AAG1B,SAAA,gBAAAp5B;AAAA,IAACwM;AAAA,IAAA;AAAA,MACG,WAAU;AAAA,MACV,iBAAiB;AAAA,MACjB,aAAa,QAAQwtB,CAAe;AAAA,MACpC,IAAA3xB;AAAA,MACA,WAAWlI,GAAQ;AAAA,MACnB,SAAA8H;AAAA,MACA,UAAC,gBAAAF,EAAA,OAAA,EAAI,WAAW5H,GAAQ,UACpB,UAAA;AAAA,QAAA,gBAAAH,EAAC6W,IAAU,EAAA,WAAW1W,GAAQ,OAAO,OAAM,WACvC,UAAA,gBAAAH;AAAA,UAACmgB;AAAA,UAAA;AAAA,YACG,QAAQpb;AAAA,YACR,OAAOyyB;AAAA,YACP,UAAUE;AAAA,YACT,UAAcJ,EAAA,IAAI,CAAC,EAAC,IAAAjvB,GAAI,MAAAkS,EACrB,MAAA,gBAAAva,EAAC,UAAgB,EAAA,OAAOqI,GACnB,UAAAkS,EAAA,GADQlS,CAEb,CACH;AAAA,UAAA;AAAA,QAAA,GAET;AAAA,QACA,gBAAArI;AAAA,UAAC6W;AAAA,UAAA;AAAA,YACG,WAAW3W,EAAWC,GAAQ,OAAOA,GAAQ,UAAU;AAAA,YACvD,OAAM;AAAA,YACN,UAAC,gBAAAH,EAAA45B,GAAA,EAAM,OAAOC,GAAgB,UAAUC,EAAmB,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC/D,EACJ,CAAA;AAAA,IAAA;AAAA,EACJ;AAER,CAAC;AAEDJ,GAAW,cAAc;ACvIlB,MAAMO,KAA+B,CAAC;AAAA,EACzC,SAAAC;AAAA,EACA,cAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,WAAAC;AACJ,MAAM;AACF,QAAM3yB,IAAWwyB,MAAiB;AAClC,SACK,gBAAApyB,EAAA,OAAA,EAAI,WAAW5H,EAAQ,cACpB,UAAA;AAAA,IAAC,gBAAA4H,EAAA,OAAA,EAAI,WAAW5H,EAAQ,qBACpB,UAAA;AAAA,MAAA,gBAAAH;AAAA,QAAC8U;AAAA,QAAA;AAAA,UACG,WAAW3U,EAAQ;AAAA,UACnB,QAAQ8D;AAAA,UACR,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,SAASi2B;AAAA,UACT,UAAAvyB;AAAA,UAAoB,UAAA;AAAA,QAAA;AAAA,MAExB;AAAA,MACA,gBAAA3H;AAAA,QAAC8U;AAAA,QAAA;AAAA,UACG,WAAW3U,EAAQ;AAAA,UACnB,SAASi6B;AAAA,UACT,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,QAAQr2B;AAAA,UACR,UAAA4D;AAAA,UAAoB,UAAA;AAAA,QAAA;AAAA,MAExB;AAAA,MACA,gBAAA3H;AAAA,QAAC8U;AAAA,QAAA;AAAA,UACG,WAAW3U,EAAQ;AAAA,UACnB,SAASk6B;AAAA,UACT,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,QAAQx2B;AAAA,UACR,UAAA8D;AAAA,UAAoB,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAExB,GACJ;AAAA,IACC,gBAAAI,EAAA,OAAA,EAAI,WAAW5H,EAAQ,kBACpB,UAAA;AAAA,MAAA,gBAAAH,EAAC8gB,IACG,EAAA,UAAA,gBAAA9gB,EAACkvB,IAAc,EAAA,OAAOiL,EAAc,CAAA,GACxC;AAAA,MAAU;AAAA,MAAI;AAAA,MACX;AAAA,wBACFrZ,IACG,EAAA,UAAA,gBAAA9gB,EAACkvB,IAAc,EAAA,OAAOoL,EAAW,CAAA,GACrC;AAAA,MAAU;AAAA,MAAI;AAAA,IAAA,EAElB,CAAA;AAAA,EAAA,GACJ;AAER,GC9DaC,KAAM,CACf3sB,GACA4sB,GACAloB,OAEI,OAAO1E,CAAG,MAAMA,MAEf,MAAM,QAAQ4sB,CAAI,MAAGA,IAAOA,EAAK,SAAW,EAAA,MAAM,WAAW,KAAK,CAAC,IAEvEA,EAAkB,MAAM,GAAG,EAAE,EAAE;AAAA,EAC5B,CACIC,GACAC,GACAlyB;AAAA;AAAA,IAGA,OAAOiyB,EAAEC,CAAC,CAAC,MAAMD,EAAEC,CAAC;AAAA;AAAA;AAAA,MAGdD,EAAEC,CAAC;AAAA;AAAA;AAAA;AAAA,MAGFD,EAAEC,CAAC;AAAA,MAEA,KAAK,IAAIF,EAAKhyB,IAAI,CAAC,CAAC,KAAK,MAAM,CAACgyB,EAAKhyB,IAAI,CAAC,IACpC,CAAA,IACA,CAAA;AAAA;AAAA;AAAA;AAAA,EACpBoF;EACF4sB,EAAKA,EAAK,SAAS,CAAC,CAAC,IAAIloB,IACpB1E,ICbE+sB,KAAU,CAAC;AAAA,EACpB,cAAAtI;AAAA,EACA,OAAAC;AAAA,EACA,WAAAiC;AAAA,EACA,gBAAAoE;AAAA,EACA,cAAAnE;AAAA,EACA,QAAAmF;AAAA,EACA,gBAAAb;AACJ,MAAa;;AACH,QAAA,EAAC,YAAY8B,EAAA,IAA0B3uB;AAAA,KACzChF,IAAAqrB,EAAM,QAAQ,SAAd,gBAAArrB,EAAoB;AAAA,EACxB,GACM,EAAC,YAAY4zB,MAAkB5uB,IAAe7B,IAAAkoB,EAAM,QAAQ,SAAd,gBAAAloB,EAAoB,WAAqB,GAEvF0wB,IAAsB3zB,EAAY,MAAM;AACnB,IAAAyzB,EAAA;AAAA,EAAA,GACxB,CAACA,CAAsB,CAAC,GAErBG,IAAoB5zB,EAAY,MAAM;AACxC,IAAA0zB,EAAe,EAAC,iBAAiB,OAAO,KAAKxI,CAAY,EAAE,QAAO;AAAA,EAAA,GACnE,CAACA,GAAcwI,CAAc,CAAC,GAE3BV,IAAetyB;AAAA,IACjB,MAAM,OAAO,KAAKwqB,CAAY,EAAE,IAAI,CAAA2I,MAAY,OAAOA,CAAQ,CAAC;AAAA,IAChE,CAAC3I,CAAY;AAAA,EACjB,GAEM4I,IAAW9zB;AAAA,IACb,CAACotB,GAAsB2G,GAAsBC,GAAkB7oB,MAAsB;AAE3E,YAAAkY,IAAoB,CAAC,GAAG+J,CAAS;AACvC,aAAA2G,EAAW,QAAQ,CAAYF,MAAA;;AAE3B,cAAMR,KAAOpwB,KAAAnD,IAAAqrB,EAAM,UAAU6I,CAAQ,MAAxB,gBAAAl0B,EAA2B,UAAU,SAArC,gBAAAmD,EAA2C;AACxD,QAAAmwB,GAAI/P,EAAOwQ,CAAQ,GAAGR,GAAMloB,CAAK;AAAA,MAAA,CACpC,GACMkY;AAAA,IACX;AAAA,IACA,CAAC8H,CAAK;AAAA,EACV,GAEMyH,IAAa5yB;AAAA,IACf,CAACg0B,GAAkB7oB,MAA2B;AAC1C,YAAM8oB,IAAgBH,EAAS1G,GAAW4F,GAAcgB,GAAU7oB,CAAK,GACjE+oB,IAAuB,OAAO;AAAA,QAChClB,EAAa,IAAI,CAAYa,MAAA,CAACA,GAAUI,EAAcJ,CAAQ,CAAC,CAAC;AAAA,MACpE;AACmB,MAAArC,MAAAlH,GAAgB,YAAY+C,EAAa4G,CAAa,GACzEzB,EAAO0B,CAAS,GAEDvC,EAAA;AAAA,IACnB;AAAA,IACA,CAACA,GAAgBmC,GAAUtB,GAAQhB,GAAgBwB,GAAc3F,GAAcD,CAAS;AAAA,EAC5F,GAEM+G,IAAan0B,EAAY,CAACotB,GAAsBgH,MAC3ChH,EAAU,OAAO,CAACthB,GAAGzK,MAAM,CAAC+yB,EAAY,IAAI/yB,CAAC,CAAC,GACtD,EAAE,GAECgzB,IAAer0B,EAAY,MAAM;AACnC,UAAMi0B,IAAgBE,EAAW/G,GAAW,IAAI,IAAI4F,CAAY,CAAC;AAC9C,IAAAxB,MAAAlH,GAAgB,YAAY+C,EAAa4G,CAAa,GACzEzB,EAAO,CAAA,CAAE,GAEMb,EAAA;AAAA,EAAA,GAChB,CAACwC,GAAY/G,GAAW4F,GAAcxB,GAAgBnE,GAAcmF,GAAQb,CAAc,CAAC;AAE9F,SAAO,EAAC,qBAAAgC,GAAqB,cAAAU,GAAc,YAAAzB,GAAY,mBAAAgB,EAAiB;AAC5E,GCjEaU,KAA8B,CAAC,EAAC,OAAAl0B,GAAO,eAAAm0B,QAAmB;;AACnE,QAAM,CAACj1B,GAAQ+iB,CAAO,IAAI1iB,EAAS,EAAK,GAClCgB,IAAcX,EAAY,MAAM;AAClC,IAAAqiB,EAAQ,CAAC/iB,CAAM;AAAA,EAAA,GAChB,CAACA,CAAM,CAAC,GACLk1B,IAAex0B;AAAA,IACjB,CAACy0B,MAAuB;AACpB,MAAApS,EAAQoS,CAAS;AAAA,IACrB;AAAA,IACA,CAACpS,CAAO;AAAA,EACZ,GACM4J,IAAWsI,EAAc,OAAO,YAAY,GAE5CG,IAAWH,EAAc,OAAO,YAAY,GAE5CtD,IAAYsD,EAAc,OAAO,cAAc,GAE/C,EAAC,YAAAvvB,EAAc,IAAAF,IAAehF,IAAAy0B,EAAc,MAAM,QAAQ,SAA5B,gBAAAz0B,EAAkC,aAAuB,GAEvFgB,IAAUJ;AAAA,IACZ,MAAM;AAAA,MACF;AAAA,QACI,OAAOuwB,IAAY,gBAAgB;AAAA,QACnC,MAAM30B;AAAA,QACN,SAAS,MAAM;AACX,UAAA0I,EAAW,EAAC,UAAUuvB,EAAc,OAAO,IAAG,GAC9ClS,EAAQ,EAAK;AAAA,QAAA;AAAA,MAErB;AAAA,MACA;AAAA,QACI,OAAOqS,MAAa,QAAQ,mBAAmB;AAAA,QAC/C,MAAMA,MAAa,QAAQ13B,KAAcU;AAAA,QACzC,SAAS,MAAM;AACE,UAAAg3B,MAAA,SACTH,EAAc,MAAM,WAAW;AAAA,YAC3B,EAAC,MAAM,IAAO,IAAIA,EAAc,OAAO,GAAE;AAAA,UAAA,CAC5C,GACQG,MAAA,SAASH,EAAc,OAAO,aAAa,GACxDlS,EAAQ,EAAK;AAAA,QAAA;AAAA,MAErB;AAAA,MACA;AAAA,QACI,OAAOqS,MAAa,SAAS,oBAAoB;AAAA,QACjD,MAAMA,MAAa,SAASx3B,KAAeQ;AAAA,QAC3C,SAAS,MAAM;AACX,UAAAg3B,MAAa,UACTH,EAAc,MAAM,WAAW,CAAC,EAAC,MAAM,IAAM,IAAIA,EAAc,OAAO,GAAG,CAAA,CAAC,GACjEG,MAAA,UAAUH,EAAc,OAAO,aAAa,GACzDlS,EAAQ,EAAK;AAAA,QAAA;AAAA,MAErB;AAAA,MACA;AAAA,QACI,OAAO4J,MAAa,SAAS,aAAa;AAAA,QAC1C,MAAMA,MAAa,SAASjwB,KAAcI;AAAA,QAC1C,SAAS,MAAM;AACX,UAAAimB,EAAQ,EAAK,GACT4J,MAAa,SACCsI,EAAA,OAAO,IAAI,MAAM,IAEjBA,EAAA,OAAO,IAAI,EAAK;AAAA,QAClC;AAAA,MAER;AAAA,MACA;AAAA,QACI,OAAOtI,MAAa,UAAU,cAAc;AAAA,QAC5C,MAAMA,MAAa,UAAU/vB,KAAeE;AAAA,QAC5C,SAAS,MAAM;AACX,UAAAimB,EAAQ,EAAK,GACT4J,MAAa,UACCsI,EAAA,OAAO,IAAI,OAAO,IAElBA,EAAA,OAAO,IAAI,EAAK;AAAA,QAClC;AAAA,MACJ;AAAA,IAER;AAAA,IACA,CAACtD,GAAWsD,EAAc,QAAQA,EAAc,OAAOtI,GAAUyI,GAAU1vB,CAAU;AAAA,EACzF;AACA,SACK,gBAAApE,EAAA,OAAA,EAAI,WAAW5H,EAAQ,YACpB,UAAA;AAAA,IAAA,gBAAAH,EAAC,OAAI,EAAA,WAAWG,EAAQ,aAAc,UAAMoH,GAAA;AAAA,IAE3C,gBAAAvH,EAAA,OAAA,EAAI,WAAWG,EAAQ,eACpB,UAAA,gBAAAH;AAAA,MAACiqB;AAAA,MAAA;AAAA,QACG,mBAAmB,CAAC,UAAU,cAAc,cAAc;AAAA,QAC1D,SAAQ;AAAA,QACR,SAAAhiB;AAAA,QACA,QAAAxB;AAAA,QACA,UAAUk1B;AAAA,QACV,UAAC,gBAAA37B,EAAA,UAAA,EAAO,WAAWG,EAAQ,eAAe,SAAS2H,GAC/C,UAAA,gBAAA9H,EAACiD,IAAqB,EAAA,WAAW9C,EAAQ,YAAA,CAAa,EAC1D,CAAA;AAAA,MAAA;AAAA,IAAA,EAER,CAAA;AAAA,EAAA,GACJ;AAER,GC7Ga27B,KAA8B,CAAC,EAAC,aAAAC,QAAiB;AACpD,QAAAC,IAAaD,EAAY,OAAO,cAAc,GAC9CF,IAAW,EAAQE,EAAY,OAAO,eACtC3I,IAAW,EAAQ2I,EAAY,OAAO,eAEtCzD,IAAoBnxB,EAAY,MAAM;AAC5B,IAAA40B,EAAA,OAAO,eAAe,EAAE;AAAA,EAAA,GACrC,CAACA,CAAW,CAAC,GAEVE,IAAqB90B,EAAY,MAAM;AACzC,IAAA40B,EAAY,OAAO,aAAa;AAAA,EAAA,GACjC,CAACA,CAAW,CAAC,GAEVG,IAAc/0B,EAAY,MAAM;AACtB,IAAA40B,EAAA,OAAO,IAAI,EAAK;AAAA,EAAA,GAC7B,CAACA,CAAW,CAAC;AAEhB,SACK,gBAAAh0B,EAAA,OAAA,EAAI,WAAW5H,EAAQ,YACnB,UAAA;AAAA,IACG67B,KAAA,gBAAAh8B;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAWG,EAAQ;AAAA,QACnB,OAAM;AAAA,QACN,SAASm4B;AAAA,QACT,UAAC,gBAAAt4B,EAAA2D,IAAA,EAAc,WAAWxD,EAAQ,WAAY,CAAA;AAAA,MAAA;AAAA,IAClD;AAAA,IAEH07B,KACG,gBAAA77B;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAWG,EAAQ;AAAA,QACnB,OAAM;AAAA,QACN,SAAS87B;AAAA,QACT,UAAC,gBAAAj8B,EAAA6E,IAAA,EAAY,WAAW1E,EAAQ,WAAY,CAAA;AAAA,MAAA;AAAA,IAChD;AAAA,IAEHizB,KACG,gBAAApzB,EAAC,UAAO,EAAA,WAAWG,EAAQ,cAAc,OAAM,gBAAe,SAAS+7B,GACnE,UAAC,gBAAAl8B,EAAAuD,IAAA,EAAU,WAAWpD,EAAQ,YAAY,EAC9C,CAAA;AAAA,EAAA,GAER;AAER,GC7Cag8B,KAA0B,CAAC,EAAC,OAAA7pB,QAEjC,gBAAAtS,EAAC,SAAI,OAAO,OAAOsS,CAAK,GAAG,WAAWnS,EAAQ,cACzC,UACLmS,EAAA,CAAA,GCDK8pB,KAA6B,CAAC,EAAC,OAAA9pB,GAAO,aAAAypB,GAAa,GAAGh8B,QAAe;;AAC9E,QAAM0uB,KAASxnB,IAAA80B,EAAY,MAAM,QAAQ,SAA1B,gBAAA90B,EAAgC;AAC/C,SACK,gBAAAjH,EAAA,OAAA,EAAI,WAAWG,EAAQ,gBACpB,UAAC,gBAAAH,EAAAkvB,IAAA,EAAe,GAAGnvB,GAAW,QAAA0uB,GAAgB,OAAO,OAAOnc,CAAK,EAAG,CAAA,GACxE;AAER,GCHa+pB,KAA0B,CAAC,EAAC,OAAA/pB,GAAO,aAAAypB,GAAa,MAAA7L,GAAM,GAAGnwB,QAAe;;AACjF,QAAM0uB,KAASxnB,IAAA80B,EAAY,MAAM,QAAQ,SAA1B,gBAAA90B,EAAgC;AAC/C,SACK,gBAAAjH,EAAA,OAAA,EAAI,WAAWG,EAAQ,gBACpB,UAAC,gBAAAH,EAAAiwB,IAAA,EAAY,GAAGlwB,GAAW,MAAAmwB,GAAY,QAAAzB,GAAgB,OAAO,OAAOnc,CAAK,EAAG,CAAA,GACjF;AAER,GCXagqB,KAA0B,CAAC,EAAC,OAAAhqB,GAAO,aAAAypB,GAAa,GAAGh8B,QAAe;;AAC3E,QAAM0uB,KAASxnB,IAAA80B,EAAY,MAAM,QAAQ,SAA1B,gBAAA90B,EAAgC;AAC/C,SACK,gBAAAjH,EAAA,OAAA,EAAI,WAAWG,EAAQ,cACpB,UAAC,gBAAAH,EAAAowB,IAAA,EAAU,GAAGrwB,GAAW,OAAO,OAAOuS,CAAK,GAAG,QAAAmc,EAAgB,CAAA,GACnE;AAER,GCLa8N,KAA8B,CAAC;AAAA,EACxC,OAAAjqB;AAAA,EACA,UAAAud,IAAW;AAAA,EACX,aAAAkM;AAAA,EACA,GAAGh8B;AACP,MAAM;;AACF,QAAM0uB,KAASxnB,IAAA80B,EAAY,MAAM,QAAQ,SAA1B,gBAAA90B,EAAgC;AAC/C,SACK,gBAAAjH,EAAA,OAAA,EAAI,WAAWG,EAAQ,gBACpB,UAAA,gBAAAH;AAAA,IAAC4vB;AAAA,IAAA;AAAA,MACI,GAAG7vB;AAAA,MACJ,QAAA0uB;AAAA,MACA,UAAAoB;AAAA,MACA,OAAO,OAAOvd,CAAK;AAAA,IAAA;AAAA,EAAA,GAE3B;AAER,GCjBakqB,KAAgC,CAAC,EAAC,OAAAlqB,GAAO,aAAAypB,GAAa,GAAGh8B,QAAe;;AACjF,QAAM0uB,KAASxnB,IAAA80B,EAAY,MAAM,QAAQ,SAA1B,gBAAA90B,EAAgC;AAC/C,SACK,gBAAAjH,EAAA,OAAA,EAAI,WAAWG,EAAQ,gBACpB,UAAC,gBAAAH,EAAAgwB,IAAA,EAAe,GAAGjwB,GAAW,QAAA0uB,GAAgB,OAAO,OAAOnc,CAAK,EAAG,CAAA,GACxE;AAER,GCDMmb,KAAiB,CAACnb,MAChB,OAAOA,KAAU,YAAY,OAAOA,KAAU,WACvCA,IAEJA,KAAA,gBAAAA,EAAO,YAGZmqB,KAAc;AAAA,EAChB,CAAC/K,EAAY,IAAI,GAAGyK;AAAA,EACpB,CAACzK,EAAY,IAAI,GAAG2K;AAAA,EACpB,CAAC3K,EAAY,IAAI,GAAG4K;AAAA,EACpB,CAAC5K,EAAY,OAAO,GAAG0K;AAAA,EACvB,CAAC1K,EAAY,QAAQ,GAAG6K;AAAA,EACxB,CAAC7K,EAAY,UAAU,GAAG8K;AAAA,EAC1B,CAAC9K,EAAY,MAAM,GAAG;AAC1B,GAEMgL,KAAc;AAAA,EAChB,CAAChL,EAAY,IAAI,GAAGC,GAAa;AAAA,EACjC,CAACD,EAAY,OAAO,GAAGC,GAAa;AAAA,EACpC,CAACD,EAAY,QAAQ,GAAGC,GAAa;AAAA,EACrC,CAACD,EAAY,UAAU,GAAGC,GAAa;AAAA,EACvC,CAACD,EAAY,IAAI,GAAGC,GAAa;AAAA,EACjC,CAACD,EAAY,IAAI,GAAGC,GAAa;AAAA,EACjC,CAACD,EAAY,MAAM,GAAG;AAC1B,GAEMiL,KAAqB,CACvBC,GACAC,MAEIA,MAAkB,SACXA,IAGJH,GAAYE,CAAU,GAG3BE,KAAgB;AAAA,EAClB,CAACpL,EAAY,IAAI,GAAGE,GAAY;AAAA,EAChC,CAACF,EAAY,OAAO,GAAGE,GAAY;AAAA,EACnC,CAACF,EAAY,QAAQ,GAAGE,GAAY;AAAA,EACpC,CAACF,EAAY,UAAU,GAAGG,GAAgB;AAAA,EAC1C,CAACH,EAAY,IAAI,GAAGE,GAAY;AAAA,EAChC,CAACF,EAAY,IAAI,GAAGG,GAAgB;AAAA,EACpC,CAACH,EAAY,MAAM,GAAG;AAC1B,GAEMqL,KAAoB,CACtBH,GACAI,MAEIA,MAAiB,SACVA,IAGJF,GAAcF,CAAU,GAQ7BlK,KAAgB,CAAWC,GAA8BsK,MACpDtK,IAAsB,CAACN,IAAc,GAAG4K,CAAO,IAAIA,GAGjDC,KAAkB,CAAC,EAAC,aAAAC,IAAc,CAAC,GAAG,YAAAC,QAAuB;AAChE,QAAAC,IAAiBx1B,EAAQ,MACpB6qB,GAAc,EAAQ0K,GAAa;AAAA,IACtC,GAAGD,EAAY;AAAA,MACX,CAAC;AAAA,QACG,IAAA90B;AAAA,QACA,MAAA4M,IAAO;AAAA,QACP,MAAAsF;AAAA,QACA,aAAA+iB;AAAA,QACA,YAAAC;AAAA,QACA,UAAAC,IAAW;AAAA,QACX,YAAAjG,IAAa;AAAA,QACb,UAAAkG,IAAW;AAAA,QACX,UAAAC,IAAW;AAAA,QACX,YAAAC;AAAA,QACA,WAAWd;AAAA,QACX,WAAAtE,IAAY,CAAC;AAAA,QACb,YAAAqE,IAAalL,EAAY;AAAA,QACzB,UAAUsL;AAAA,QACV,YAAAY;AAAA,QACA,YAAAC;AAAA,QACA,aAAAC;AAAA,MAAA,MACE;AACF,cAAMC,IACFJ,MAAe,SAAYA,IAAclB,GAAYG,CAAU,GAC7DoB,IACFJ,MAAe,SAAYA,IAAanC,IACtCwC,IACFJ,MAAe,SAAYA,IAAa/B;AAErC,eAAA;AAAA,UACH,MAAM;AAAA,YACF,MAAMc;AAAA,YACN,UAAAY;AAAA;AAAA,YAEA,aAAAF;AAAA,YACA,WAAA/E;AAAA,YACA,MAAAhe;AAAA,YACA,aAAAujB;AAAA,UACJ;AAAA,UACA,GAAIR,KAAe,EAAC,aAAAA,EAAW;AAAA,UAC/B,GAAIC,KAAc,EAAC,YAAAA,EAAU;AAAA,UAC7B,IAAAl1B;AAAA,UACA,WAAWs0B,GAAmBC,GAAYC,CAAa;AAAA,UACvD,UAAUE,GAAkBH,GAAYI,CAAY;AAAA,UACpD,MAAA/nB;AAAA,UACA,oBAAoBsiB;AAAA,UACpB,eAAekG;AAAA,UACf,eAAeC;AAAA;AAAA,UAEf,iBAAiB;AAAA,UACjB,gBAAgB;AAAA,UAChB,gBAAgB;AAAA,UAChB,oBAAoB;AAAA,UACpB,cAAc;AAAA,UACd,QAAQ,CAAS/9B,MAET,gBAAAK,EAAC8xB,IAAY,EAAA,aAAa7c,GACtB,UAAA,gBAAAjV,EAACg+B,KAAgB,eAAer+B,GAAO,OAAO4a,EAAA,CAAM,EACxD,CAAA;AAAA,UAGR,MAAM,CAAS5a,MAAA;AACX,kBAAM2S,IAAQmb,GAAe9tB,EAAM,SAAA,CAAU;AAEzC,mBAAA,gBAAAK,EAAC8xB,IAAY,EAAA,aAAa7c,GACtB,UAAA,gBAAAjV;AAAA,cAAC+9B;AAAA,cAAA;AAAA,gBACI,GAAGxF;AAAA,gBACJ,aAAa54B;AAAA,gBACb,OAAA2S;AAAA,cAAA;AAAA,YAAA,GAER;AAAA,UAER;AAAA,UACA,QAAQ,CACJ3S,MAAA,gBAAAK,EAAC8xB,IAAY,EAAA,aAAa7c,GACtB,UAAC,gBAAAjV,EAAAi+B,GAAA,EAAgB,aAAat+B,EAAO,CAAA,EACzC,CAAA;AAAA,QAER;AAAA,MAAA;AAAA,IAGJ;AAAA,EACJ,CACH,GACF,CAACw9B,GAAaC,CAAU,CAAC,GAEtB,CAACH,GAASiB,CAAU,IAAIp3B,EAASu2B,CAAc;AAErD,EAAAh3B,EAAU,MAAM;AACZ,IAAA63B,EAAWb,CAAc;AAAA,EAAA,GAC1B,CAACA,CAAc,CAAC;AAEnB,QAAMc,IAAkBt2B;AAAA,IACpB,MACIs1B,EACK,IAAI,CAAC,EAAC,IAAA90B,GAAI,MAAAkS,GAAM,YAAAqiB,GAAY,UAAAY,IAAW,UAAW;AAAA,MAC/C,IAAAn1B;AAAA,MACA,MAAAkS;AAAA,MACA,MAAMqiB;AAAA,MACN,UAAAY;AAAA,MACF,EACD,OAAO,CAAC,EAAC,UAAAA,EAAA,MAAcA,CAAQ;AAAA,IAGxC,CAACL,CAAW;AAAA,EAChB;AAEO,SAAA,EAAC,SAAAF,GAAS,YAAAiB,GAAY,iBAAAC,EAAe;AAChD,GC/LaC,KAAqC,CAAC5L,GAAK2I,GAAU,CAACxE,GAAMC,CAAE,MAAc;AACrF,QAAMyH,IAAW,IAAI,KAAK7L,EAAI,SAAS2I,CAAQ,CAAC;AACzC,SAAAkD,EAAS,QAAQ,KAAK1H,EAAK,aAAa0H,EAAS,QAAA,KAAazH,EAAG,QAAQ;AACpF;AAEAwH,GAAc,qBAAqB,CAAC,CAACzH,GAAMC,CAAE,MAClC,CAAC,IAAI,KAAKD,CAAI,GAAG,IAAI,KAAKC,CAAE,CAAC;AAGjC,MAAM0H,KAAwC,CAAC9L,GAAK2I,GAAU,CAACxE,GAAMC,CAAE,MAAgB;AAC1F,QAAM2H,IAAa/L,EAAI,SAAS2I,CAAQ,IAAe;AAChD,SAAAoD,KAAa5H,KAAQ4H,KAAa3H;AAC7C,GCyIM4H,KAAc,IAEdC,KAAW,GAEXC,KAAe;AAAA,EACjB,WAAW;AAAA,EACX,UAAU;AACd,GAEMC,KAA+B,CAAC,GAEhCC,KAAqC,CAAC,GAEtCC,KAAsC,CAAC,GAEhCC,KAAYj2B;AAAA,EACrB,CACI;AAAA,IACI,UAAAC;AAAA,IACA,WAAAhJ;AAAA,IACA,WAAWw0B,IAAgB,CAAC;AAAA,IAC5B,eAAe1B;AAAA,IACf,YAAAmM,IAAavN,GAAY;AAAA,IACzB,YAAYsE,IAAiB4I;AAAA,IAC7B,oBAAA3I,IAAqB,MAAM;AAAA,IAAC;AAAA,IAC5B,iBAAAO,IAAkB,MAAM;AAAA,IAAC;AAAA,IACzB,iBAAAjF,IAAkB,MAAM;AAAA,IAAC;AAAA,IACzB,aAAAqH,IAAc,MAAM;AAAA,IAAC;AAAA,IACrB,QAAAiB,IAAS,MAAM;AAAA,IAAC;AAAA,IAChB,cAAclB,IAAmBoG;AAAA,IACjC,WAAAG;AAAA,IACA,SAAS3I,IAAcsI;AAAA,IACvB,gBAAAhG,IAAiBlH,GAAgB;AAAA,IACjC,eAAeL,IAAoBwN;AAAA,IACnC,QAAQzP;AAAA,IACR,YAAAiO,IAAa;AAAA,IACb,aAAalE,IAAkB;AAAA,IAC/B,SAAAzW;AAAA,IACA,SAAS0a,IAAc,CAAC;AAAA,IACxB,IAAIljB;AAAA,IACJ,GAAGjR;AAAA,KAEPC,MACC;;AACK,UAAAZ,IAAKsO,GAAcsD,CAAM,GAEzB,EAAC,WAAAsa,GAAW,cAAAC,MAAgBH,GAAaC,CAAa,GAEtD2K,IAAW5/B,GAAe4J,CAAG,GAE7BiZ,IAAa1iB,GAAO,IAAI,GAExB,EAAC,QAAQ0/B,MAAeza,GAAkBwa,CAAQ,GAElD,EAAC,WAAArtB,EAAS,IAAIlB,EAAc,GAE5ByuB,IAAYlG,GAAe,EAAC,iBAAAC,GAAgB,GAE5C/5B,IAAQ0I;AAAA,MACV,OAAO;AAAA,QACH,gBAAgBq3B;AAAA,QAChB,eAAeV;AAAA,QACf,cAAcW;AAAA,MAAA;AAAA,MAElB,CAACA,GAAWD,CAAW;AAAA,IAC3B,GAEM,EAAC,eAAAjM,IAAe,kBAAAC,EAAgB,IAAIH,GAAiB;AAAA,MACvD,mBAAAH;AAAA,MACA,qBAAqBwK;AAAA,IAAA,CACxB,GAEK,EAAC,YAAApH,IAAY,eAAAC,IAAe,aAAAjB,IAAa,gBAAAD,IAAgB,aAAAM,OAAeQ;AAAA,MAC1E,EAAY,gBAAAC,GAAgB,oBAAAC,EAAkB;AAAA,IAClD,GAEM,EAAC,SAAAQ,IAAS,YAAAC,GAAU,IAAIJ,GAAW,EAAC,aAAAC,GAAa,iBAAAC,GAAgB,GAEjE,EAAC,eAAAhF,IAAe,kBAAAC,GAAgB,IAAIJ,GAAiB;AAAA,MACvD,mBAAAC;AAAA,MACA,iBAAAC;AAAA,IAAA,CACH,GAEK+N,KAAgB5Q,GAAiB,GAEjC,EAAC,cAAA6D,IAAc,iBAAAwG,IAAiB,gBAAAC,GAAA,IAAkBN,GAAgB;AAAA,MACpE,kBAAAC;AAAA,MACA,aAAAC;AAAA,MACA,gBAAAC;AAAA,IAAA,CACH,GAEK,EAAC,SAAAsE,IAAS,iBAAAkB,GAAe,IAAIjB,GAAgB;AAAA,MAC/C,aAAAC;AAAA,MACA,YAAAC;AAAA,IAAA,CACH,GAEK9K,KAAQ+M,GAAc;AAAA,MACxB,MAAM;AAAA,QACF,QAAQlQ,KAAciQ;AAAA,QACtB,aAAa,cAAc/2B,CAAE;AAAA,QAC7B,eAAe,gBAAgBA,CAAE;AAAA,QACjC,eAAe,gBAAgBA,CAAE;AAAA,MACrC;AAAA,MACA,MAAMksB;AAAA,MACN,SAAA0I;AAAA,MACA,iBAAiBqC,GAAgB;AAAA,MACjC,uBAAuBpM;AAAA,MACvB,uBACI6L,MAAevN,GAAY,YAAY+N,GAA0B,IAAA;AAAA,MACrE,oBAAoBR,MAAevN,GAAY,YAAYyE,KAAgB;AAAA,MAC3E,OAAO;AAAA,QACH,YAAY8I,MAAevN,GAAY,YAAYwE,KAAa;AAAA,QAChE,eAAA/C;AAAA,QACA,SAAAsD;AAAA,QACA,eAAAjF;AAAA,QACA,cAAAe;AAAA,MACJ;AAAA,MACA,kBAAkBsG,MAAmBlH,GAAgB;AAAA,MACrD,WAAWkH,MAAmBlH,GAAgB,WAAWuN,IAAY;AAAA,MACrE,mBAAmBQ,GAAkB;AAAA,MACrC,iBAAiBhJ;AAAA;AAAA,MAEjB,iBAAiB;AAAA,MACjB,eAAemC,MAAmBlH,GAAgB;AAAA,MAClD,qBAAqBgO,GAAoB;AAAA,MACzC,uBAAuBlO;AAAA,MACvB,iBAAiBoH,MAAmBlH,GAAgB;AAAA,MACpD,oBAAoB;AAAA,MACpB,sBAAsBoH;AAAA,MACtB,WAAW;AAAA,QACP,eAAAuF;AAAA,QACA,kBAAAE;AAAA,MAAA;AAAA,IACJ,CACH,GAEK,EAAC,MAAAte,GAAA,IAAQsS,GAAM,YAAY,GAE3B,EAAC,QAAA4B,IAAQ,OAAAC,IAAO,aAAAF,GAAA,IAAeP,GAAe;AAAA,MAChD,WAAW1T,GAAK;AAAA,MAChB,WAAWkC;AAAA,MACX,UAAUuc;AAAA,MACV,YAAYD;AAAA,IAAA,CACf,GAEKkB,KAAkBv4B;AAAA,MACpB,CAAC,EAAC,QAAA8D,IAAQ,QAAAsnB,QAA0B;;AAChC,SAAAtrB,IAAAqrB,GAAM,UAAUC,CAAO,MAAvB,QAAAtrB,EAA0B,eAAegE;AAAA,MAC7C;AAAA,MACA,CAACqnB,EAAK;AAAA,IACV,GAEMqN,KAAqBx4B,EAAY,MAAM;AACzC,MAAAmrB,GAAM,mBAAmB;AAAA,IAAA,GAC1B,CAACA,EAAK,CAAC,GAEJ,EAAC,YAAAyH,IAAY,cAAAyB,IAAc,qBAAAV,IAAqB,mBAAAC,GAAA,IAAqBJ,GAAQ;AAAA,MAC/E,cAAAtI;AAAA,MACA,QAAAsH;AAAA,MACA,gBAAAb;AAAA,MACA,cAAAtE;AAAA,MACA,OAAAlC;AAAA,MACA,WAAAiC;AAAA,MACA,gBAAAoE;AAAA,IAAA,CACH,GAEKiH,KAAY,WAAWv3B,CAAE;AAE/B,6BACKiH,IACG,EAAA,UAAA;AAAA,MAAA,gBAAAtP;AAAA,QAACm3B;AAAA,QAAA;AAAA,UACG,cAAc7E;AAAA,UACd,KAAIrrB,KAAAqrB,GAAM,QAAQ,SAAd,gBAAArrB,GAAoB;AAAA,UACxB,cAAcy4B;AAAA,UACd,eAAApO;AAAA,QAAA;AAAA,MACJ;AAAA,MACA,gBAAAtxB;AAAA,QAAC05B;AAAA,QAAA;AAAA,UACG,KAAItvB,KAAAkoB,GAAM,QAAQ,SAAd,gBAAAloB,GAAoB;AAAA,UACxB,iBAAiB,OAAO,KAAKioB,EAAY,EAAE;AAAA,UAC3C,eAAe8L;AAAA,UACf,QAAQpE;AAAA,QAAA;AAAA,MACZ;AAAA,MACA,gBAAA/5B;AAAA,QAACm5B;AAAA,QAAA;AAAA,UACG,KAAI9uB,KAAAioB,GAAM,QAAQ,SAAd,gBAAAjoB,GAAoB;AAAA,UACxB,iBAAiB,OAAO,KAAKgoB,EAAY,EAAE;AAAA,UAC3C,sBAAsBmJ;AAAA,QAAA;AAAA,MAC1B;AAAA,MACC,gBAAAzzB,EAAA6J,GAAA,EAAU,OAAAzS,GAAc,WAAWgB,EAAQ,iBACvC,UAAA;AAAA,QACGi9B,KAAA,gBAAAp9B;AAAA,UAACi6B;AAAA,UAAA;AAAA,YACG,cAAc,OAAO,KAAK5H,EAAY,EAAE;AAAA,YACxC,WAAWC,GAAM,uBAAuB,EAAE,KAAK;AAAA,YAC/C,iBAAiBwI;AAAA,YACjB,eAAeC;AAAA,YACf,SAASjC;AAAA,UAAA;AAAA,QACb;AAAA,QAEJ,gBAAA/wB;AAAA,UAACka;AAAA,UAAA;AAAA,YACG,oBAAkBQ,KAAWmd;AAAA,YAC7B,YAAA1d;AAAA,YACA,kBAAkBhiB,EAAWC,EAAQ,cAAc;AAAA;AAAA,cAE/C,CAACA,EAAQ,SAAS,GAAG4+B,MAAevN,GAAY;AAAA,cAChD,CAACrxB,EAAQ,UAAU,GAAGi9B;AAAA,cACtB,CAACj9B,EAAQ,UAAU,GAAG,EAAQsiB;AAAA,YAAO,CACxC;AAAA,YACA,GAAGzZ;AAAA,YACJ,IAAAX;AAAA,YACA,WAAWnI,EAAWC,EAAQ,WAAWL,CAAS;AAAA,YAClD,KAAKm/B;AAAA,YACL,UAAA;AAAA,cAAA,gBAAAj/B,EAAC,WAAM,WAAWG,EAAQ,aACrB,UAAAmyB,GAAM,gBAAkB,EAAA,IAAI,CACzBuN,OAAA,gBAAA7/B,EAAC,QACI,UAAY6/B,GAAA,QAAQ,IAAI,CAACC,GAAQt3B,GAAG0C,OAAU;AAC3C,sBAAM60B,KAAUv3B,IAAI,IAAIA,IAAI,IAAI,GAC1Bw3B,KACFx3B,MAAM0C,GAAM,SAAS,IAAIA,GAAM,UAAU1C,IAAI;AAE7C,uBAAA,gBAAAxI;AAAA,kBAACmzB;AAAA,kBAAA;AAAA,oBACG,IAAG;AAAA,oBAEH,YACI2M,EAAO,OAAO,SAAS,MAAM,IAAIC;AAAA,oBAErC,aACID,EAAO,OAAO,SAAS,OAAO,IAAIE;AAAA,oBAEtC,UAAUF,EAAO,OAAO,YAAY;AAAA,oBACnC,UAAAA,EAAO,gBACF,OACAG;AAAA,sBACIH,EAAO,OAAO,UAAU;AAAA,sBACxBA,EAAO,WAAW;AAAA,oBAAA;AAAA,kBACtB;AAAA,kBAbDA,EAAO;AAAA,gBAchB;AAAA,cAEP,CAAA,KAxBID,GAAY,EAyBrB,CACH,EACL,CAAA;AAAA,cACCd,MAAevN,GAAY,WACvB,gBAAAxxB,EAAA,SAAA,EACG,4BAACsP,IACI,EAAA,UAAA;AAAA,gBAAA4kB,KAAS,KACN,gBAAAl0B,EAAC,MACG,EAAA,UAAA,gBAAAA,EAAC,MAAG,EAAA,SAASi9B,GAAQ,QAAQ,OAAO,EAAC,QAAQ/I,GAAA,EAAS,CAAA,GAC1D;AAAA,gBAEHD,GAAY,IAAI,CAAciM,OAAA;AACrB,wBAAA1N,IAAMxS,GAAKkgB,GAAW,KAAK;AAE7B,yBAAA,gBAAAlgC;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBAEG,OAAO;AAAA,wBACH,QAAQ,GAAGkgC,GAAW,IAAI;AAAA,sBAC9B;AAAA,sBACC,YAAI,gBAAgB,EAAE,IAAI,CAACC,GAAM33B,IAAG0C,OAAU;AAC3C,8BAAM60B,KAAUv3B,KAAI,IAAIA,KAAI,IAAI,GAC1Bw3B,KACFx3B,OAAM0C,GAAM,SACN,IACAA,GAAM,UAAU1C,KAAI;AAE1B,+BAAA,gBAAAxI;AAAA,0BAACmzB;AAAA,0BAAA;AAAA,4BACG,eAAe,EACXgN,EAAK,OAAO,YAAY;AAAA,4BAE5B,IAAG;AAAA,4BAEH,YACIA,EAAK,OAAO,SAAS,MAAM,IAC3BJ;AAAA,4BAEJ,aACII,EAAK,OAAO,SAAS,OAAO,IAC5BH;AAAA,4BAEJ,UAAUG,EAAK,OAAO,YAAY;AAAA,4BACjC,UAAAF;AAAA,8BACGE,EAAK,OAAO,UAAU;AAAA,8BACtBA,EAAK,WAAW;AAAA,4BAAA;AAAA,0BACpB;AAAA,0BAbKA,EAAK;AAAA,wBAcd;AAAA,sBAEP,CAAA;AAAA,oBAAA;AAAA,oBAhCI3N,EAAI;AAAA,kBAiCb;AAAA,gBAAA,CAEP;AAAA,gBACA2B,KAAQ,KACJ,gBAAAn0B,EAAA,MAAA,EACG,4BAAC,MAAG,EAAA,SAASi9B,GAAQ,QAAQ,OAAO,EAAC,QAAQ9I,MAAQ,EACzD,CAAA;AAAA,cAAA,EAAA,CAER,EACJ,CAAA;AAAA,cAEH4K,MAAevN,GAAY,aACvB,gBAAAxxB,EAAA,SAAA,EACI,aAAK,IAAI,CAAAwyB,OACL,gBAAAxyB,EAAA,MAAA,EACI,aAAI,gBAAgB,EAAE,IAAI,CAACmgC,GAAM33B,GAAG0C,OAAU;AAC3C,sBAAM60B,KAAUv3B,IAAI,IAAIA,IAAI,IAAI,GAC1Bw3B,KACFx3B,MAAM0C,GAAM,SAAS,IAAIA,GAAM,UAAU1C,IAAI;AAE7C,uBAAA,gBAAAxI;AAAA,kBAACmzB;AAAA,kBAAA;AAAA,oBACG,eAAe,EACXgN,EAAK,OAAO,YAAY;AAAA,oBAE5B,IAAG;AAAA,oBAEH,YACIA,EAAK,OAAO,SAAS,MAAM,IAAIJ;AAAA,oBAEnC,aACII,EAAK,OAAO,SAAS,OAAO,IAAIH;AAAA,oBAEpC,UAAUG,EAAK,OAAO,YAAY;AAAA,oBACjC,UAAAF;AAAA,sBACGE,EAAK,OAAO,UAAU;AAAA,sBACtBA,EAAK,WAAW;AAAA,oBAAA;AAAA,kBACpB;AAAA,kBAXKA,EAAK;AAAA,gBAYd;AAAA,cAEP,CAAA,KAzBI3N,GAAI,EA0Bb,CACH,EACL,CAAA;AAAA,cAEHxS,GAAK,WAAW,KACb,gBAAAhgB,EAAC,WACG,UAAC,gBAAAA,EAAA,MAAA,EAAG,WAAWG,EAAQ,WACnB,UAAA,gBAAAH;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,WAAWG,EAAQ;AAAA,kBACnB,SAASmyB,GAAM,cAAA,EAAgB;AAAA,kBAC/B,UAAC,gBAAAvqB,EAAA,OAAA,EAAI,WAAW5H,EAAQ,eACpB,UAAA;AAAA,oBAAA,gBAAAH,EAAC,UAAK,UAAkB,qBAAA,CAAA;AAAA,oBACvBsxB,GAAc,SAAS,KACpB,gBAAAtxB;AAAA,sBAAC8U;AAAA,sBAAA;AAAA,wBACG,SAAS6qB;AAAA,wBACT,QAAQh8B;AAAA,wBACR,MAAK;AAAA,wBACL,SAAQ;AAAA,wBAAO,UAAA;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBAEnB,EAER,CAAA;AAAA,gBAAA;AAAA,iBAER,EACJ,CAAA;AAAA,gCAEH,SAAM,EAAA,WAAWxD,EAAQ,aACrB,UAAAmyB,GAAM,gBAAkB,EAAA,IAAI,CACzB8N,OAAA,gBAAApgC,EAAC,QACI,UAAYogC,GAAA,QAAQ,IAAI,CAACN,GAAQt3B,GAAG0C,OAAU;AAC3C,sBAAM60B,KAAUv3B,IAAI,IAAIA,IAAI,IAAI,GAC1Bw3B,KACFx3B,MAAM0C,GAAM,SAAS,IAAIA,GAAM,UAAU1C,IAAI;AAE7C,uBAAA,gBAAAxI;AAAA,kBAACmzB;AAAA,kBAAA;AAAA,oBACG,IAAG;AAAA,oBAEH,YACI2M,EAAO,OAAO,SAAS,MAAM,IAAIC;AAAA,oBAErC,aACID,EAAO,OAAO,SAAS,OAAO,IAAIE;AAAA,oBAEtC,UAAUF,EAAO,OAAO,YAAY;AAAA,oBACnC,UAAAA,EAAO,gBACF,OACAG;AAAA,sBACIH,EAAO,OAAO,UAAU;AAAA,sBACxBA,EAAO,WAAW;AAAA,oBAAA;AAAA,kBACtB;AAAA,kBAbDA,EAAO;AAAA,gBAchB;AAAA,cAEP,CAAA,KAxBIM,GAAY,EAyBrB,CACH,EACL,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACJ;AAAA,QACCrB,MAAevN,GAAY,aACxB,gBAAAxxB;AAAA,UAAC4rB;AAAA,UAAA;AAAA,YACG,WAAW2I,EAAU;AAAA,YACrB,kBAAkBc;AAAA,YAClB,aAAAL;AAAA,YACA,aAAa1C,GAAM,aAAa;AAAA,YAChC,UAAU0D,GAAW;AAAA,YACrB,gBAAAjB;AAAA,UAAA;AAAA,QACJ;AAAA,QAEHtS,KACI,gBAAAziB,EAAA,OAAA,EAAI,IAAI4/B,IAAW,WAAWz/B,EAAQ,cACnC,UAAA,gBAAAH,EAAC+gB,IAAG,EAAA,UAAA0B,EAAA,CAAQ,EAChB,CAAA;AAAA,MAAA,EAER,CAAA;AAAA,IAAA,GACJ;AAAA,EAAA;AAGZ;AAEAqc,GAAU,cAAc;;;GCnhBXuB,KAAax3B;AAAA,EACtB,CAAC,EAAC,WAAA/I,GAAW,QAAQqvB,GAAY,aAAAmR,GAAa,GAAGt3B,EAAW,GAAGC,MAAQ;AACnE,UAAMymB,IAAalB,GAAiB,GAC9BC,IAASU,KAA0BO,GACnCC,IAAiB9nB;AAAA,MACnB,MAAM,IAAI,KAAK,aAAa4mB,GAAQ,EAAC,MAAM,SAAS,CAAA,EAAE,GAAG6R,CAAW;AAAA,MACpE,CAACA,GAAa7R,CAAM;AAAA,IACxB;AAGI,WAAA,gBAAAzuB,EAAC,QAAM,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,GAAQ,MAAML,CAAS,GAAG,KAAAmJ,GAClE,UACL0mB,EAAA,CAAA;AAAA,EAAA;AAGZ;AAEA0Q,GAAW,cAAc;ACjBlB,MAAME,KAAe13B;AAAA,EACxB,CAAC,EAAC,WAAA/I,GAAW,QAAQqvB,GAAY,cAAAqR,GAAc,GAAGx3B,EAAW,GAAGC,MAAQ;AACpE,UAAMymB,IAAalB,GAAiB,GAC9BC,IAASU,KAA0BO,GACnCC,IAAiB9nB;AAAA,MACnB,MAAM,IAAI,KAAK,aAAa4mB,GAAQ,EAAC,MAAM,WAAW,CAAA,EAAE,GAAG+R,CAAY;AAAA,MACvE,CAACA,GAAc/R,CAAM;AAAA,IACzB;AAGI,WAAA,gBAAAzuB,EAAC,QAAM,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,GAAQ,MAAML,CAAS,GAAG,KAAAmJ,GAClE,UACL0mB,EAAA,CAAA;AAAA,EAAA;AAGZ;AAEA4Q,GAAa,cAAc;ACXpB,MAAME,KAAe53B;AAAA,EACxB,CAAC,EAAC,WAAA/I,GAAW,QAAQqvB,GAAY,cAAAuR,GAAc,OAAAC,GAAO,GAAG33B,EAAW,GAAGC,MAAQ;AAC3E,UAAMymB,IAAalB,GAAiB,GAC9BC,IAASU,KAA0BO,GACnCC,IAAiB9nB;AAAA,MACnB,MAAM,IAAI,KAAK,aAAa4mB,GAAQ,EAAC,MAAM,YAAY,OAAAkS,EAAM,CAAA,EAAE,GAAGD,CAAY;AAAA,MAC9E,CAACA,GAAcjS,GAAQkS,CAAK;AAAA,IAChC;AAGI,WAAA,gBAAA3gC,EAAC,QAAM,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,GAAQ,MAAML,CAAS,GAAG,KAAAmJ,GAClE,UACL0mB,EAAA,CAAA;AAAA,EAAA;AAGZ;AAEA8Q,GAAa,cAAc;AClBpB,MAAMG,KAAW/3B;AAAA,EACpB,CAAC,EAAC,WAAA/I,GAAW,QAAQqvB,GAAY,YAAA0R,GAAY,OAAAF,GAAO,GAAG33B,EAAW,GAAGC,MAAQ;AACzE,UAAMymB,IAAalB,GAAiB,GAC9BC,IAASU,KAA0BO,GACnCC,IAAiB9nB;AAAA,MACnB,MAAM,IAAI,KAAK,aAAa4mB,GAAQ,EAAC,MAAM,iBAAiB,OAAAkS,EAAM,CAAA,EAAE,GAAGE,CAAU;AAAA,MACjF,CAACA,GAAYpS,GAAQkS,CAAK;AAAA,IAC9B;AAGI,WAAA,gBAAA3gC,EAAC,QAAM,EAAA,GAAGgJ,GAAa,WAAW9I,EAAWC,GAAQ,MAAML,CAAS,GAAG,KAAAmJ,GAClE,UACL0mB,EAAA,CAAA;AAAA,EAAA;AAGZ;AAEAiR,GAAS,cAAc;;;;GC5CVE,KAAkB;AAAA,EAC3B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;A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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,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92]}