@edrlab/thorium-web 1.0.5 → 1.0.6

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.
@@ -151,7 +151,7 @@ interface ThRadioGroupProps extends RadioGroupProps {
151
151
  radioLabel?: HTMLAttributesWithRef<HTMLSpanElement>;
152
152
  };
153
153
  }
154
- declare const ThRadioGroup: ({ ref, label, items, compounds, children, ...props }: ThRadioGroupProps) => react_jsx_runtime.JSX.Element | undefined;
154
+ declare const ThRadioGroup: ({ ref, label, items, compounds, children, value, ...props }: ThRadioGroupProps) => react_jsx_runtime.JSX.Element | undefined;
155
155
 
156
156
  interface ThSliderProps extends Omit<SliderProps, "minValue" | "maxValue"> {
157
157
  ref?: React.ForwardedRef<HTMLDivElement>;
@@ -7,6 +7,7 @@ import React22, { useRef, Fragment as Fragment$1, useEffect, useMemo, useCallbac
7
7
  import { createPortal } from 'react-dom';
8
8
  import { useOverlayTriggerState } from 'react-stately';
9
9
  import { Sheet } from 'react-modal-sheet';
10
+ import { useTransform } from 'motion/react';
10
11
 
11
12
  // src/core/Components/Actions/hooks/useActions.ts
12
13
  var useActions = (actionMap) => {
@@ -652,6 +653,9 @@ var ThBottomSheetContainer = ({
652
653
  isKeyboardDismissDisabled
653
654
  }, containerRef);
654
655
  const [isFullHeight, setFullHeight] = useState(false);
656
+ const autoPadding = useTransform(() => {
657
+ return sheetRef.current?.y.get() ?? 0;
658
+ });
655
659
  useEffect(() => {
656
660
  if (!scrollerRef.current || !compounds?.scroller?.className) return;
657
661
  scrollerRef.current.className = compounds.scroller.className;
@@ -734,7 +738,7 @@ var ThBottomSheetContainer = ({
734
738
  {
735
739
  scrollRef: scrollerRef,
736
740
  ...compounds?.content,
737
- ...isDraggable ? { style: { ...compounds?.content?.style, paddingBottom: sheetRef.current?.y } } : {},
741
+ ...isDraggable && compounds?.content?.disableDrag ? { style: { ...compounds?.content?.style, paddingBottom: autoPadding } } : {},
738
742
  children: Body
739
743
  }
740
744
  )
@@ -1295,13 +1299,27 @@ var ThRadioGroup = ({
1295
1299
  items,
1296
1300
  compounds,
1297
1301
  children,
1302
+ value,
1298
1303
  ...props
1299
1304
  }) => {
1305
+ const radioGroupRef = useRef(null);
1306
+ useEffect(() => {
1307
+ if (items?.length && radioGroupRef.current && value !== void 0) {
1308
+ const valueMatches = items.some((item) => item.value === value);
1309
+ if (!valueMatches) {
1310
+ const firstRadio = radioGroupRef.current.querySelector("input[type='radio']");
1311
+ if (firstRadio && firstRadio.getAttribute("tabindex") !== "0") {
1312
+ firstRadio.setAttribute("tabindex", "0");
1313
+ }
1314
+ }
1315
+ }
1316
+ }, [items, value]);
1300
1317
  if (React22.isValidElement(children)) {
1301
1318
  return /* @__PURE__ */ jsxs(
1302
1319
  RadioGroup,
1303
1320
  {
1304
- ref,
1321
+ ref: ref || radioGroupRef,
1322
+ value,
1305
1323
  ...props,
1306
1324
  children: [
1307
1325
  label && /* @__PURE__ */ jsx(Label, { ...compounds?.label, children: label }),
@@ -1313,6 +1331,8 @@ var ThRadioGroup = ({
1313
1331
  return /* @__PURE__ */ jsxs(
1314
1332
  RadioGroup,
1315
1333
  {
1334
+ ref: radioGroupRef,
1335
+ value,
1316
1336
  ...props,
1317
1337
  children: [
1318
1338
  label && /* @__PURE__ */ jsx(Label, { ...compounds?.label, children: label }),
@@ -1546,5 +1566,5 @@ var ThGrid = ({
1546
1566
  };
1547
1567
 
1548
1568
  export { ThActionButton, ThActionsBar, ThActionsTriggerVariant, ThBackArrow, ThBottomSheet, ThCloseButton, ThCollapsibleActionsBar, ThContainerBody, ThContainerHeader, ThContainerHeaderWithClose, ThContainerHeaderWithPrevious, ThDeleteButton, ThDockedPanel, ThDragIndicatorButton, ThDropdown, ThDropdownButton, ThFooter, ThForm, ThFormNumberField, ThFormSearchField, ThFormTextField, ThGrid, ThHeader, ThHome, ThInteractiveOverlay, ThLibrary, ThLink, ThLoader, ThMenu, ThMenuButton, ThMenuItem, ThModal, ThNavigationButton, ThNumberField, ThPagination, ThPopover, ThProgression, ThRadioGroup, ThRunningHead, ThSettingsResetButton, ThSettingsWrapper, ThSettingsWrapperButton, ThSlider, ThSwitch, ThTypedComponentRenderer, useActions, useFirstFocusable };
1549
- //# sourceMappingURL=chunk-A3CHUZC2.mjs.map
1550
- //# sourceMappingURL=chunk-A3CHUZC2.mjs.map
1569
+ //# sourceMappingURL=chunk-SVU2VLMW.mjs.map
1570
+ //# sourceMappingURL=chunk-SVU2VLMW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/Components/Actions/hooks/useActions.ts","../src/core/Components/Actions/ThActionsBar.tsx","../src/core/Components/Menu/assets/icons/more_vert.svg","../src/core/Components/Buttons/ThActionButton.tsx","../src/core/Components/Menu/ThMenuButton.tsx","../src/core/Components/Menu/ThMenu.tsx","../src/core/Components/Actions/ThCollapsibleActionsBar.tsx","../src/core/Components/Buttons/assets/icons/close.svg","../src/core/Components/Buttons/ThCloseButton.tsx","../src/core/Components/Buttons/assets/icons/delete.svg","../src/core/Components/Buttons/ThDeleteButton.tsx","../src/core/Components/Containers/ThBottomSheet/assets/icons/horizontal_rule.svg","../src/core/Components/Containers/ThBottomSheet/ThDragIndicatorButton.tsx","../src/core/Components/assets/icons/arrow_back.svg","../src/core/Components/assets/icons/arrow_forward.svg","../src/core/Components/Buttons/ThNavigationButton.tsx","../src/core/Components/Containers/hooks/useFirstFocusable.ts","../src/core/Components/Containers/ThPopover.tsx","../src/core/Components/Containers/ThModal.tsx","../src/core/Components/Containers/ThDockedPanel.tsx","../src/core/Components/Containers/ThContainerHeader/ThContainerHeader.tsx","../src/core/Components/Containers/ThContainerHeader/ThContainerHeaderWithClose.tsx","../src/core/Components/Containers/ThContainerHeader/ThContainerHeaderWithPrevious.tsx","../src/core/Components/Containers/ThContainerBody.tsx","../src/core/Components/Containers/ThBottomSheet/ThBottomSheet.tsx","../src/core/Components/Containers/ThTypedComponentRenderer.tsx","../src/core/Components/Form/ThForm.tsx","../src/core/Components/Form/Fields/ThFormNumberField.tsx","../src/core/Components/Form/Fields/ThFormTextField.tsx","../src/core/Components/Form/Fields/assets/icons/search.svg","../src/core/Components/Form/Fields/ThFormSearchField.tsx","../src/core/Components/Links/ThLink.tsx","../src/core/Components/Links/ThBackArrow.tsx","../src/core/Components/Links/assets/icons/home.svg","../src/core/Components/Links/ThHome.tsx","../src/core/Components/Links/assets/icons/newsstand.svg","../src/core/Components/Links/ThLibrary.tsx","../src/core/Components/Menu/ThMenuItem.tsx","../src/core/Components/Reader/ThFooter.tsx","../src/core/Components/Reader/ThLoader.tsx","../src/core/Components/Reader/ThHeader.tsx","../src/core/Components/Reader/ThInteractiveOverlay.tsx","../src/core/Components/Reader/ThPagination.tsx","../src/core/Components/Reader/ThProgression.tsx","../src/core/Components/Reader/ThRunningHead.tsx","../src/core/Components/Settings/assets/icons/add.svg","../src/core/Components/Settings/assets/icons/remove.svg","../src/core/Components/Settings/assets/icons/undo.svg","../src/core/Components/Settings/ThSettingsResetButton.tsx","../src/core/Components/Settings/ThNumberField.tsx","../src/core/Components/Settings/ThRadioGroup.tsx","../src/core/Components/Settings/ThSlider.tsx","../src/core/Components/Settings/ThSwitch.tsx","../src/core/Components/Settings/ThDropdown/assets/icons/arrow_drop_down.svg","../src/core/Components/Settings/ThDropdown/ThDropdownButton.tsx","../src/core/Components/Settings/ThDropdown/ThDropdown.tsx","../src/core/Components/Settings/ThSettingsWrapper/assets/icons/settings.svg","../src/core/Components/Settings/ThSettingsWrapper/ThSettingsWrapperButton.tsx","../src/core/Components/Settings/ThSettingsWrapper/ThSettingsWrapper.tsx","../src/core/Components/ThGrid.tsx"],"names":["ThActionsTriggerVariant","jsx","jsxs","Fragment","React","useObjectRef","Button","useRef","input","Popover","Dialog","useEffect","FocusScope","Label","Input","Text","FieldError","TooltipTrigger","Tooltip","useCallback","NumberField","Heading","createElement"],"mappings":"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","file":"chunk-SVU2VLMW.mjs","sourcesContent":["\"use client\";\n\nimport { ActionStateObject } from \"@/lib/actionsReducer\";\nimport { ThDockingKeys } from \"@/preferences/models/enums\";\n\nexport interface ThActionMap {\n [key: string | number | symbol]: ActionStateObject | undefined;\n}\n\nexport const useActions = <K extends string | number | symbol>(actionMap: ThActionMap) => {\n const findOpen = () => {\n const open: K[] = [];\n\n Object.entries(actionMap).forEach(([key, value]) => {\n if (value?.isOpen) open.push(key as K);\n });\n\n return open;\n };\n\n const anyOpen = () => {\n return Object.values(actionMap).some((value) => value?.isOpen);\n };\n\n const isOpen = (key?: K | null) => {\n if (key) {\n if (actionMap[key]?.isOpen == null) {\n return false;\n } else {\n return actionMap[key]?.isOpen;\n }\n }\n return false;\n };\n\n const findDocked = () => {\n const docked: K[] = [];\n\n Object.entries(actionMap).forEach(([key, value]) => {\n const docking = value?.docking;\n if (docking === ThDockingKeys.start || docking === ThDockingKeys.end) {\n docked.push(key as K);\n }\n });\n\n return docked;\n };\n\n const anyDocked = () => {\n return Object.values(actionMap).some((value) => {\n const docking = value?.docking;\n return docking === ThDockingKeys.start || docking === ThDockingKeys.end;\n });\n };\n\n const isDocked = (key?: K | null) => {\n if (!key) return false;\n const docking = actionMap[key]?.docking;\n return docking === ThDockingKeys.start || docking === ThDockingKeys.end;\n };\n\n const whichDocked = (key?: K | null) => {\n return key ? actionMap[key]?.docking : null;\n };\n\n const getDockedWidth = (key?: K | null) => {\n return key && actionMap[key]?.dockedWidth || undefined;\n };\n\n const everyOpenDocked = () => {\n const opens = findOpen();\n\n return opens.every((key) => {\n return isDocked(key);\n });\n };\n\n return {\n findOpen,\n anyOpen,\n isOpen,\n findDocked,\n anyDocked,\n isDocked,\n whichDocked,\n getDockedWidth,\n everyOpenDocked,\n };\n};","\"use client\";\n\nimport { useObjectRef } from \"react-aria\";\nimport { Toolbar, ToolbarProps } from \"react-aria-components\";\n\nexport enum ThActionsTriggerVariant {\n button = \"iconButton\",\n menu = \"menuItem\"\n}\n\nexport interface ThActionEntry<T> {\n key: T;\n associatedKey?: string;\n Trigger: React.ComponentType<any>;\n Target?: React.ComponentType<any>;\n}\n\nexport interface ThActionsBarProps extends ToolbarProps {\n ref?: React.ForwardedRef<HTMLDivElement>\n};\n\nexport const ThActionsBar = ({ \n ref, \n children, \n ...props \n}: ThActionsBarProps) => {\n const resolvedRef = useObjectRef(ref);\n\n return (\n <Toolbar \n ref={ resolvedRef } \n { ...props }\n >\n { children }\n </Toolbar>\n )\n}","import * as React from \"react\";\nconst SvgMoreVert = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"inherit\" {...props}><path d=\"M480-160q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm0-240q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm0-240q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Z\" /></svg>;\nexport default SvgMoreVert;","\"use client\";\n\nimport { WithRef } from \"../customTypes\";\n\nimport { Button, ButtonProps, Tooltip, TooltipProps, TooltipTrigger } from \"react-aria-components\";\nimport { TooltipTriggerProps } from \"react-aria\";\n\nexport interface ThActionButtonProps extends ButtonProps {\n label?: string,\n ref?: React.ForwardedRef<HTMLButtonElement>,\n compounds?: {\n /**\n * Props for the tooltipTrigger component. See `TooltipTriggerProps` for more information.\n */\n tooltipTrigger?: WithRef<TooltipTriggerProps, HTMLDivElement>,\n /**\n * Props for the tooltip component. See `TooltipProps` for more information.\n */\n tooltip?: WithRef<TooltipProps, HTMLDivElement>,\n /**\n * String for the tooltip\n */\n label: string \n }\n}\n\nexport const ThActionButton = ({\n ref,\n compounds,\n children,\n ...props\n}: ThActionButtonProps) => { \n if (compounds) {\n return (\n <>\n <TooltipTrigger\n { ...compounds.tooltipTrigger }\n >\n <Button \n ref={ ref }\n { ...props }\n >\n { children } \n </Button>\n <Tooltip\n arrowBoundaryOffset={ 0 }\n { ...compounds.tooltip }\n >\n { compounds.label }\n </Tooltip>\n </TooltipTrigger>\n </>\n )\n } else {\n return (\n <>\n <Button \n { ...props }\n >\n { children }\n </Button>\n </>\n )\n }\n}","\"use client\";\n\nimport MoreVertIcon from \"./assets/icons/more_vert.svg\";\n\nimport { ThActionButton, ThActionButtonProps } from \"../Buttons/ThActionButton\";\n\nexport const ThMenuButton = ({\n label,\n ref,\n compounds,\n children,\n ...props\n}: ThActionButtonProps) => {\n return (\n <ThActionButton\n ref={ ref }\n compounds={ compounds }\n { ...props }\n >\n { children \n ? children \n : <>\n <MoreVertIcon aria-hidden=\"true\" focusable=\"false\" /> \n { label }\n </> \n }\n </ThActionButton>\n )\n}","\"use client\";\n\nimport React, { useRef } from \"react\";\n\nimport { WithRef } from \"../customTypes\";\n\nimport { Menu, MenuProps, MenuTrigger, MenuTriggerProps, Popover, PopoverProps } from \"react-aria-components\";\n\nimport { ThMenuButton } from \"./ThMenuButton\";\nimport { ThActionButtonProps } from \"../Buttons\";\nimport { ThActionEntry, ThActionsTriggerVariant } from \"../Actions/ThActionsBar\";\n\nexport interface THMenuProps<T> extends MenuProps<ThActionEntry<T>> {\n ref?: React.ForwardedRef<HTMLDivElement>;\n triggerRef?: React.RefObject<HTMLElement | null>;\n items?: Iterable<ThActionEntry<T>>;\n children?: never;\n compounds?: {\n /**\n * Props for the trigger component. See `MenuTriggerProps` for more information.\n */\n menuTrigger?: Omit<WithRef<MenuTriggerProps, HTMLDivElement>, \"children\">;\n /**\n * Props for the button component. See `ThActionButtonProps` for more information.\n * Alternatively you can provide your own component\n */\n button?: ThActionButtonProps | React.ReactElement<ThActionButtonProps>;\n /**\n * Props for the popover component. See `PopoverProps` for more information.\n */\n popover?: WithRef<PopoverProps, HTMLDivElement>;\n }\n}\n\nexport const ThMenu = ({\n ref,\n id,\n triggerRef,\n items,\n dependencies,\n compounds,\n ...props\n}: THMenuProps<string>) => {\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n\n if (items) {\n return (\n <>\n <MenuTrigger \n { ...compounds?.menuTrigger }\n >\n { compounds?.button && React.isValidElement(compounds.button) \n ? compounds.button \n : <ThMenuButton \n ref={ buttonRef }\n { ...compounds?.button as ThActionButtonProps }\n />\n }\n <Popover { ...compounds?.popover }>\n <Menu \n ref={ ref }\n id={ id }\n dependencies={ dependencies }\n { ...props }\n >\n { Array.from(items).map(({ Trigger, key, associatedKey }) => \n <Trigger \n key={ `${ key }-menuItem` } \n variant={ ThActionsTriggerVariant.menu }\n { ...(associatedKey ? { associatedKey: associatedKey } : {}) } \n { ...props }\n />\n )}\n </Menu>\n </Popover>\n </MenuTrigger>\n { Array.from(items).map(({ Target, key }) => \n Target && <Target key={ `${ key }-container` } triggerRef={ triggerRef || buttonRef } { ...props } />\n )}\n </>\n )\n }\n}","\"use client\";\n\nimport React, { Fragment } from \"react\";\n\nimport { ThActionEntry, ThActionsBar, ThActionsBarProps, ThActionsTriggerVariant } from \"./ThActionsBar\";\nimport { ThMenu, THMenuProps } from \"../Menu/ThMenu\";\n\nimport { useObjectRef } from \"react-aria\";\nimport { CollapsiblePref, useCollapsibility } from \"./hooks/useCollapsibility\";\n\nexport interface ThCollapsibleActionsBarProps extends ThActionsBarProps {\n id: string;\n items: ThActionEntry<string>[];\n prefs: CollapsiblePref;\n breakpoint?: string;\n children?: never;\n compounds?: {\n menu: THMenuProps<string> | React.ReactElement<typeof ThMenu>;\n }\n}\n\nexport const ThCollapsibleActionsBar = ({\n ref,\n id,\n items,\n prefs,\n breakpoint,\n compounds,\n ...props\n}: ThCollapsibleActionsBarProps) => {\n const resolvedRef = useObjectRef(ref);\n const Actions = useCollapsibility(items, prefs, breakpoint);\n\n return (\n <>\n <ThActionsBar \n ref={ resolvedRef }\n { ...props }\n >\n { Actions.ActionIcons.map(({ Trigger, Target, key, associatedKey }) => \n <Fragment key={ key }>\n <Trigger \n key={ `${ key }-trigger` } \n variant={ ThActionsTriggerVariant.button }\n { ...(associatedKey ? { associatedKey: associatedKey } : {}) } \n { ...props }\n />\n { Target && <Target key={ `${ key }-container` } triggerRef={ resolvedRef } /> }\n </Fragment>\n ) \n }\n\n { React.isValidElement(compounds?.menu) \n ? (React.cloneElement(compounds.menu, {\n ...compounds.menu.props,\n id: id,\n triggerRef: resolvedRef,\n items: Actions.MenuItems,\n dependencies: [\"Trigger\"],\n } as THMenuProps<string>)) \n : (<ThMenu \n id={ id } \n triggerRef={ resolvedRef }\n items={ Actions.MenuItems }\n dependencies={ [\"Trigger\"] }\n { ...compounds?.menu }\n />\n )}\n </ThActionsBar>\n </>\n )\n}\n","import * as React from \"react\";\nconst SvgClose = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"inherit\" {...props}><path d=\"m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z\" /></svg>;\nexport default SvgClose;","\"use client\";\n\nimport Close from \"./assets/icons/close.svg\";\n\nimport { ThActionButton, ThActionButtonProps } from \"./ThActionButton\";\n\nexport const ThCloseButton = ({\n label,\n ref,\n compounds,\n children,\n ...props\n}: ThActionButtonProps) => {\n return (\n <ThActionButton\n ref={ ref }\n compounds={ compounds }\n { ...props }\n >\n { children \n ? children \n : <>\n <Close aria-hidden=\"true\" focusable=\"false\" /> \n { label }\n </> \n }\n </ThActionButton>\n )\n}","import * as React from \"react\";\nconst SvgDelete = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"inherit\" {...props}><path d=\"M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z\" /></svg>;\nexport default SvgDelete;","\"use client\";\n\nimport Delete from \"./assets/icons/delete.svg\";\n\nimport { ThActionButton, ThActionButtonProps } from \"./ThActionButton\";\n\nexport const ThDeleteButton = ({\n label,\n ref,\n compounds,\n children,\n ...props\n}: ThActionButtonProps) => {\n return (\n <ThActionButton\n ref={ ref }\n compounds={ compounds }\n { ...props }\n >\n { children \n ? children \n : <>\n <Delete aria-hidden=\"true\" focusable=\"false\" /> \n { label }\n </> \n }\n </ThActionButton>\n )\n}","import * as React from \"react\";\nconst SvgHorizontalRule = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"inherit\" {...props}><path d=\"M200-440q-17 0-28.5-11.5T160-480q0-17 11.5-28.5T200-520h560q17 0 28.5 11.5T800-480q0 17-11.5 28.5T760-440H200Z\" /></svg>;\nexport default SvgHorizontalRule;","\"use client\";\n\nimport HorizontalRule from \"./assets/icons/horizontal_rule.svg\";\n\nimport { Button, ButtonProps } from \"react-aria-components\";\n\nexport interface ThDragIndicatorButtonProps extends ButtonProps {\n ref?: React.ForwardedRef<HTMLButtonElement>;\n}\n\nexport const ThDragIndicatorButton = ({\n ref,\n children,\n ...props\n}: ThDragIndicatorButtonProps) => {\n return (\n <>\n <Button \n ref={ ref }\n { ...props }\n >\n { children ? children : <HorizontalRule aria-hidden=\"true\" focusable=\"false\" /> }\n </Button>\n </>\n )\n}","import * as React from \"react\";\nconst SvgArrowBack = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"inherit\" {...props}><path d=\"M640-80 240-480l400-400 71 71-329 329 329 329-71 71Z\" /></svg>;\nexport default SvgArrowBack;","import * as React from \"react\";\nconst SvgArrowForward = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"inherit\" {...props}><path d=\"m321-80-71-71 329-329-329-329 71-71 400 400L321-80Z\" /></svg>;\nexport default SvgArrowForward;","\"use client\";\n\nimport React from \"react\";\n\nimport ArrowBack from \"../assets/icons/arrow_back.svg\";\nimport ArrowForward from \"../assets/icons/arrow_forward.svg\";\n\nimport { ThActionButton, ThActionButtonProps } from \"./ThActionButton\";\n\nexport interface ThNavigationButtonProps extends ThActionButtonProps {\n direction?: \"left\" | \"right\";\n}\n\nexport const ThNavigationButton = ({\n direction,\n label,\n ref,\n compounds,\n children,\n ...props\n}: ThNavigationButtonProps) => {\n const fallBackChildren = (\n <React.Fragment>\n { direction === \"right\"\n ? <ArrowForward aria-hidden=\"true\" focusable=\"false\" />\n : <ArrowBack aria-hidden=\"true\" focusable=\"false\" />\n }\n { label }\n </React.Fragment>\n );\n\n return (\n <ThActionButton\n ref={ ref }\n compounds={ compounds }\n { ...props }\n >\n { children || fallBackChildren }\n </ThActionButton>\n )\n}\n","\"use client\";\n\nimport { useEffect, useRef, RefObject } from \"react\";\nimport { usePrevious } from \"../../../Hooks/usePrevious\";\n\ntype ScrollOptions = {\n behavior?: ScrollBehavior;\n block?: ScrollLogicalPosition;\n inline?: ScrollLogicalPosition;\n};\n\ntype Action = \n | { \n type: \"focus\";\n options?: {\n preventScroll?: boolean;\n scrollContainerToTop?: boolean;\n };\n }\n | { \n type: \"scrollIntoView\";\n options?: ScrollOptions;\n }\n | { \n type: \"none\";\n };\n\nexport interface UseFirstFocusableProps {\n withinRef: RefObject<HTMLElement | null>;\n fallbackRef?: RefObject<HTMLElement | null>;\n scrollerRef?: RefObject<HTMLElement | null>;\n trackedState?: boolean;\n updateState?: unknown;\n action?: Action;\n}\n\nconst isInViewport = (element: Element, container: Element | null = null): boolean => {\n const elementRect = element.getBoundingClientRect();\n const containerRect = container?.getBoundingClientRect() ?? {\n top: 0,\n bottom: window.innerHeight,\n left: 0,\n right: window.innerWidth\n };\n\n return (\n elementRect.top >= containerRect.top &&\n elementRect.bottom <= containerRect.bottom &&\n elementRect.left >= containerRect.left &&\n elementRect.right <= containerRect.right\n );\n};\n\n// WARNING: This hook is not a general purpose hook, \n// it is specifically designed to be used with React Aria Components\n// It is not recommended to use it with other libraries or components\nexport const useFirstFocusable = (props?: UseFirstFocusableProps) => {\n const { \n withinRef, \n fallbackRef, \n scrollerRef, \n trackedState, \n updateState,\n action = { type: \"none\" } // Default to no action if not provided\n } = props || {};\n\n // Store action in a ref to avoid triggering useEffect on action change\n // action will be updated on every render, but ref will not trigger useEffect\n const actionRef = useRef(action);\n actionRef.current = action;\n\n const focusableElement = useRef<HTMLElement | null>(null);\n const attemptsRef = useRef(0);\n const timeoutRef = useRef<number | null>(null);\n\n const previousUpdateState = usePrevious(updateState);\n const previousTrackedState = usePrevious(trackedState);\n\n useEffect(() => {\n if (!withinRef) return;\n \n // If trackedState is false and updateState hasn't changed, do nothing\n if (!trackedState && updateState === previousUpdateState) return;\n \n // Determine what triggered this effect\n const isTrackedStateUpdate = trackedState && (previousTrackedState !== trackedState);\n const isUpdateStateUpdate = updateState !== previousUpdateState;\n\n attemptsRef.current = 0;\n\n const tryFindAndHandle = () => {\n const targetElement = withinRef.current?.firstElementChild || withinRef.current;\n let firstFocusable: HTMLElement | null = null;\n\n if (targetElement?.getAttribute(\"role\") === \"radiogroup\") {\n const selectedEl = targetElement?.querySelector(\"[data-selected]\");\n\n if (selectedEl === null) {\n const inputs = targetElement?.querySelectorAll(\"input\");\n const input = inputs && Array.from(inputs).find(\n (input: HTMLInputElement) => !input.disabled && input.tabIndex >= 0\n );\n firstFocusable = input as HTMLElement | null;\n } else if (selectedEl instanceof HTMLElement) {\n firstFocusable = selectedEl;\n }\n }\n\n if (!firstFocusable) {\n const focusableElements = withinRef.current?.querySelectorAll(\"a, button, input, select, [data-selected]\");\n const element = focusableElements && Array.from(focusableElements).find(el => {\n const htmlEl = el as HTMLAnchorElement | HTMLButtonElement | HTMLInputElement | HTMLSelectElement;\n if (htmlEl instanceof HTMLAnchorElement) return true;\n if (htmlEl.getAttribute(\"data-selected\") === \"true\") return true;\n return !htmlEl.disabled && htmlEl.tabIndex >= 0;\n });\n firstFocusable = element as HTMLElement | null;\n }\n\n const handleElement = (element: HTMLElement) => {\n if (actionRef.current.type === \"none\") return;\n\n switch (actionRef.current.type) {\n case \"focus\": {\n const preventScroll = actionRef.current.options?.scrollContainerToTop || actionRef.current.options?.preventScroll;\n element.focus({ preventScroll: preventScroll ?? false });\n \n // Handle container scrolling if requested\n if (actionRef.current.options?.scrollContainerToTop) {\n const scrollContainer = scrollerRef?.current || withinRef.current;\n scrollContainer?.scrollTo({ top: 0 });\n }\n break;\n }\n \n case \"scrollIntoView\":\n if (!isInViewport(element, scrollerRef?.current || null)) {\n element.scrollIntoView(actionRef.current.options);\n }\n break;\n }\n };\n\n if (firstFocusable) {\n handleElement(firstFocusable);\n focusableElement.current = firstFocusable;\n } else {\n attemptsRef.current++;\n if (attemptsRef.current < 3) {\n timeoutRef.current = window.setTimeout(tryFindAndHandle, 50);\n } else if (fallbackRef?.current) {\n // Handle fallback based on action type\n if (actionRef.current.type === \"focus\") {\n fallbackRef.current.focus({ preventScroll: true });\n } else if (actionRef.current.type === \"scrollIntoView\") {\n fallbackRef.current.scrollIntoView(actionRef.current.options);\n }\n focusableElement.current = fallbackRef.current;\n }\n }\n };\n\n if (isTrackedStateUpdate) {\n // Store the initial timeout ID\n // We need this because of the bottom sheet animation\n // requestAnimationFrame is not enough, and trackingState\n // from onOpenEnd does not work either for some unknown reason…\n const initialTimeoutId = window.setTimeout(() => {\n tryFindAndHandle();\n }, 100);\n\n return () => {\n // Clear the initial timeout\n clearTimeout(initialTimeoutId);\n\n // Clear any retry timeouts\n if (timeoutRef.current !== null) {\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n attemptsRef.current = 0;\n };\n } else if (isUpdateStateUpdate) {\n // For updateState changes, run immediately in the next frame\n const rafId = requestAnimationFrame(() => {\n tryFindAndHandle();\n });\n\n return () => {\n cancelAnimationFrame(rafId);\n if (timeoutRef.current !== null) {\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n attemptsRef.current = 0;\n };\n }\n }, [withinRef, fallbackRef, scrollerRef, trackedState, previousUpdateState, updateState, previousTrackedState]);\n\n return focusableElement.current;\n};","\"use client\";\n\nimport React from \"react\";\n\nimport { WithRef } from \"../customTypes\";\n\nimport { ThContainerProps } from \"./ThContainer\";\n\nimport { Dialog, DialogProps, Popover, PopoverProps } from \"react-aria-components\";\n\nimport { useObjectRef } from \"react-aria\";\nimport { useFirstFocusable } from \"./hooks/useFirstFocusable\";\n\nexport interface ThPopoverProps extends Omit<PopoverProps, \"children\">, ThContainerProps {\n triggerRef: React.RefObject<HTMLElement | null>;\n compounds?: {\n dialog: WithRef<DialogProps, HTMLDivElement>;\n }\n}\n\nexport const ThPopover = ({ \n ref,\n triggerRef,\n focusOptions,\n compounds,\n maxHeight,\n children, \n ...props \n}: ThPopoverProps) => {\n const resolvedRef = useObjectRef(ref as React.RefObject<HTMLDivElement | null>);\n\n const updatedFocusOptions = focusOptions ? {\n ...focusOptions,\n scrollerRef: focusOptions.scrollerRef || resolvedRef\n } : undefined;\n\n useFirstFocusable(updatedFocusOptions);\n\n const computeMaxHeight = () => {\n if (!resolvedRef.current) return;\n return window.innerHeight - resolvedRef.current.offsetTop;\n };\n\n return (\n <Popover \n ref={ resolvedRef }\n triggerRef={ triggerRef }\n maxHeight={ maxHeight || computeMaxHeight() }\n { ...props }\n >\n <Dialog { ...compounds?.dialog }>\n { children }\n </Dialog>\n </Popover>\n )\n}","\"use client\";\n\nimport React from \"react\";\n\nimport { WithRef } from \"../customTypes\";\n\nimport { ThContainerProps } from \"./ThContainer\";\n\nimport { Dialog, DialogProps, Modal, ModalOverlayProps } from \"react-aria-components\";\n\nimport { useObjectRef } from \"react-aria\";\nimport { useFirstFocusable } from \"./hooks/useFirstFocusable\";\n\nexport interface ThModalProps extends Omit<ModalOverlayProps, \"children\">, ThContainerProps {\n compounds?: {\n dialog: WithRef<DialogProps, HTMLDivElement>;\n }\n}\n\nexport const ThModal = ({ \n ref,\n focusOptions,\n compounds,\n children, \n ...props \n}: ThModalProps) => {\n const resolvedRef = useObjectRef(ref as React.RefObject<HTMLDivElement | null>);\n\n const updatedFocusOptions = focusOptions ? {\n ...focusOptions,\n scrollerRef: focusOptions.scrollerRef || resolvedRef\n } : undefined;\n\n useFirstFocusable(updatedFocusOptions);\n\n return (\n <Modal \n ref={ resolvedRef }\n { ...props }\n >\n <Dialog { ...compounds?.dialog }>\n { children }\n </Dialog>\n </Modal>\n )\n}","\"use client\";\n\nimport React from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { ThContainerProps } from \"./ThContainer\";\n\nimport { FocusScope, useObjectRef } from \"react-aria\";\nimport { useFirstFocusable } from \"./hooks/useFirstFocusable\";\n\nexport interface ThDockedPanelProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\">, ThContainerProps {\n isOpen: boolean;\n portal: HTMLElement | null;\n}\n\nexport const ThDockedPanel = ({ \n ref,\n isOpen,\n portal,\n focusOptions,\n children, \n ...props \n}: ThDockedPanelProps) => {\n const resolvedRef = useObjectRef(ref as React.RefObject<HTMLDivElement | null>);\n\n const updatedFocusOptions = focusOptions ? {\n ...focusOptions,\n scrollerRef: focusOptions.scrollerRef || resolvedRef\n } : undefined;\n\n useFirstFocusable(updatedFocusOptions);\n\n return (\n <>\n { isOpen && portal && createPortal(\n <FocusScope \n contain={ false }\n autoFocus={ (focusOptions?.action?.type && focusOptions.action.type === \"focus\") ?? false } \n restoreFocus={ true }\n >\n <div\n ref={ resolvedRef } \n { ...props }\n >\n { children }\n </div>\n </FocusScope>\n , portal)\n }\n </>\n )\n}","\"use client\";\n\nimport { Heading, HeadingProps } from \"react-aria-components\";\nimport { HTMLAttributesWithRef, WithRef } from \"../../customTypes\";\n\nexport interface ThContainerHeaderProps extends HTMLAttributesWithRef<HTMLDivElement> {\n ref?: React.ForwardedRef<HTMLDivElement>;\n label: string;\n compounds?: {\n heading?: WithRef<HeadingProps, HTMLHeadingElement>;\n }\n}\n\nexport const ThContainerHeader = ({ \n ref,\n label,\n compounds,\n children,\n ...props \n}: ThContainerHeaderProps) => {\n return (\n <div \n ref={ ref } \n { ...props }\n >\n <Heading \n slot=\"title\"\n { ...compounds?.heading }\n >\n { label }\n </Heading>\n { children }\n </div>\n )\n}","\"use client\";\n\nimport { WithRef } from \"../../customTypes\";\n\nimport { HeadingProps } from \"react-aria-components\";\nimport { ThActionButtonProps, ThCloseButton } from \"../../Buttons\";\nimport { ThContainerHeader, ThContainerHeaderProps } from \"./ThContainerHeader\"\n\nexport interface THContainerWithCloseProps extends ThContainerHeaderProps {\n closeRef?: React.ForwardedRef<HTMLButtonElement>;\n children?: never;\n compounds?: {\n heading: WithRef<HeadingProps, HTMLHeadingElement>;\n button: ThActionButtonProps;\n }\n}\nexport const ThContainerHeaderWithClose = ({ \n ref,\n closeRef,\n label,\n compounds,\n ...props \n}: THContainerWithCloseProps) => {\n return (\n <ThContainerHeader \n ref={ ref } \n label={ label }\n { ...props }\n compounds={ { heading: compounds?.heading }}\n >\n <ThCloseButton ref={ closeRef } { ...compounds?.button } />\n </ThContainerHeader>\n )\n}","\"use client\";\n\nimport { WithRef } from \"../../customTypes\";\n\nimport { HeadingProps } from \"react-aria-components\";\nimport { ThNavigationButton, ThNavigationButtonProps } from \"../../Buttons\";\nimport { ThContainerHeader, ThContainerHeaderProps } from \"./ThContainerHeader\"\n\nexport interface THContainerWithPreviousProps extends ThContainerHeaderProps {\n previousRef?: React.ForwardedRef<HTMLButtonElement>;\n children?: never;\n compounds?: {\n heading: WithRef<HeadingProps, HTMLHeadingElement>;\n button: ThNavigationButtonProps;\n }\n}\nexport const ThContainerHeaderWithPrevious = ({ \n ref,\n previousRef,\n label,\n compounds,\n ...props \n}: THContainerWithPreviousProps) => {\n return (\n <ThContainerHeader \n ref={ ref } \n label={ label }\n { ...props }\n compounds={ { heading: compounds?.heading }}\n >\n <ThNavigationButton ref={ previousRef } { ...compounds?.button } />\n </ThContainerHeader>\n )\n}","\"use client\";\n\nimport { HTMLAttributesWithRef } from \"../customTypes\";\n\nexport interface ThContainerBodyProps extends HTMLAttributesWithRef<HTMLDivElement> {}\n\nexport const ThContainerBody = ({ \n ref,\n children,\n ...props \n}: ThContainerBodyProps) => {\n return (\n <div \n ref={ ref } \n { ...props }\n >\n { children }\n </div>\n )\n}","\"use client\";\n\nimport React, { \n RefObject, \n useCallback, \n useEffect, \n useMemo, \n useState \n} from \"react\";\n\nimport { OverlayTriggerState, useOverlayTriggerState } from \"react-stately\";\n\nimport { ThContainerHeader, ThContainerHeaderProps } from \"../ThContainerHeader\";\nimport { ThContainerBody } from \"../ThContainerBody\";\nimport { ThContainerProps } from \"../ThContainer\";\n\nimport { ThDragIndicatorButton, ThDragIndicatorButtonProps } from \"./ThDragIndicatorButton\";\n\nimport { Sheet, SheetDetent, SheetRef } from \"react-modal-sheet\";\nimport { HeadingProps } from \"react-aria-components\";\nimport { \n AriaOverlayProps, \n FocusScope, \n OverlayProvider, \n useDialog, \n useModal, \n useObjectRef, \n useOverlay \n} from \"react-aria\";\n\nimport { useTransform } from \"motion/react\";\nimport { useFirstFocusable, UseFirstFocusableProps } from \"../hooks/useFirstFocusable\";\n\nexport interface ThBottomSheetHeaderProps extends ThContainerHeaderProps {\n wrapper: React.ComponentProps<typeof Sheet.Header>,\n dragIndicator: React.ComponentProps<typeof ThDragIndicatorButton>,\n header: ThContainerHeaderProps,\n heading: HeadingProps\n}\n\nexport interface ThBottomSheetCompounds {\n container?: Omit<React.ComponentProps<typeof Sheet.Container>, \"children\">,\n header?: React.ComponentProps<typeof Sheet.Header>,\n dragIndicator?: ThDragIndicatorButtonProps,\n scroller?: { \n ref?: React.RefObject<HTMLDivElement>; \n className?: string; \n },\n content?: React.ComponentProps<typeof Sheet.Content>,\n backdrop?: React.ComponentProps<typeof Sheet.Backdrop>\n}\n\nexport interface ThBottomSheetProps extends Omit<React.ComponentProps<typeof Sheet>, \"children\" | \"ref\" | \"isOpen\" | \"onClose\">, AriaOverlayProps, ThContainerProps {\n onOpenChange?: (isOpen: boolean) => void;\n isKeyboardDismissDisabled?: boolean;\n compounds?: ThBottomSheetCompounds;\n}\n\nconst ThBottomSheetContainer = ({\n sheetRef,\n sheetState,\n isDraggable, \n isKeyboardDismissDisabled,\n focusOptions,\n detent,\n compounds,\n children\n}: {\n sheetRef: RefObject<HTMLDivElement | SheetRef | null>;\n sheetState: OverlayTriggerState;\n onFullHeight?: Omit<React.ComponentProps<typeof Sheet.Container>, \"children\">;\n isDraggable?: boolean;\n isKeyboardDismissDisabled?: boolean;\n focusOptions?: UseFirstFocusableProps;\n detent?: SheetDetent;\n compounds?: ThBottomSheetCompounds;\n children: ThContainerProps[\"children\"];\n}) => {\n const containerRef = useObjectRef(compounds?.container?.ref);\n const scrollerRef = useObjectRef(compounds?.scroller?.ref);\n const dialog = useDialog({}, containerRef);\n const overlay = useOverlay({ \n onClose: sheetState.close, \n isOpen: true, \n isDismissable: true,\n isKeyboardDismissDisabled: isKeyboardDismissDisabled\n }, containerRef);\n const [isFullHeight, setFullHeight] = useState<boolean>(false);\n\n const autoPadding = useTransform(() => {\n return (sheetRef.current as SheetRef)?.y.get() ?? 0;\n });\n\n // Apply scroller className from compounds\n useEffect(() => {\n if (!scrollerRef.current || !compounds?.scroller?.className) return;\n scrollerRef.current.className = compounds.scroller.className;\n }, [scrollerRef, compounds?.scroller]);\n\n useEffect(() => {\n if (!isDraggable || !scrollerRef.current) return;\n\n // We need this so that scrolling into the scrollerRef does not shift Sheet.content\n scrollerRef.current.style.overscrollBehavior = \"contain\";\n scrollerRef.current.style.contain = \"content\";\n }, [isDraggable, scrollerRef]);\n\n useModal();\n\n const fullHeightIntersectionCallback = useCallback((entries: IntersectionObserverEntry[]) => {\n entries.forEach( (entry) => {\n if (\n detent === \"default\" &&\n entry.isIntersecting && \n entry.intersectionRatio === 1 && \n // For some reason width is larger on mobile (and border-right is almost invisible)…\n entry.boundingClientRect.width >= window.innerWidth\n ) {\n setFullHeight(true);\n } else {\n setFullHeight(false);\n }\n });\n }, [setFullHeight, detent]);\n\n useEffect(() => {\n const observer = new IntersectionObserver(fullHeightIntersectionCallback, {\n threshold: 1.0\n });\n containerRef.current && observer.observe(containerRef.current);\n\n return () => {\n observer.disconnect();\n }\n });\n\n const [Header, Body] = useMemo(() => {\n const header = children.find((child) => child.type === ThContainerHeader);\n const body = children.find((child) => child.type === ThContainerBody);\n \n const modifiedHeader = header ? React.cloneElement(header as React.ReactElement<ThContainerHeaderProps>, {\n ...header.props,\n compounds: {\n ...(header.props as ThContainerHeaderProps).compounds,\n heading: {\n ...(header.props as ThContainerHeaderProps).compounds?.heading,\n ...dialog.titleProps\n }\n }\n }) : null;\n\n return [modifiedHeader, body];\n }, [children, dialog.titleProps]);\n\n const updatedFocusOptions = useMemo(() => \n focusOptions ? {\n ...focusOptions,\n scrollerRef: scrollerRef\n } : undefined,\n [focusOptions, scrollerRef]\n );\n\n useFirstFocusable(updatedFocusOptions);\n\n return (\n <>\n <Sheet.Container \n { ...compounds?.container }\n ref={ containerRef }\n {...(isFullHeight ? { \"data-full-height\": \"true\" } : {} )}\n { ...overlay.overlayProps as any}\n { ...dialog.dialogProps }\n >\n <Sheet.Header\n { ...compounds?.header }\n >\n { isDraggable && \n <ThDragIndicatorButton \n { ...compounds?.dragIndicator }\n /> \n }\n { Header }\n </Sheet.Header>\n <Sheet.Content \n scrollRef={ scrollerRef }\n { ...compounds?.content }\n { ...(isDraggable && compounds?.content?.disableDrag ? { style: { ...compounds?.content?.style, paddingBottom: autoPadding } as { [key: string]: any }} : {})}\n >\n { Body }\n </Sheet.Content>\n </Sheet.Container>\n <Sheet.Backdrop \n { ...compounds?.backdrop }\n />\n </>\n )\n}\n\nexport const ThBottomSheet = ({\n id,\n isOpen,\n onOpenChange,\n ref,\n focusOptions,\n isKeyboardDismissDisabled,\n detent,\n snapPoints,\n compounds,\n children, \n ...props\n}: ThBottomSheetProps) => {\n const resolvedRef = useObjectRef(ref);\n\n let sheetState = useOverlayTriggerState({\n isOpen: isOpen,\n onOpenChange: onOpenChange\n });\n\n const isDraggable = useMemo(() => snapPoints && snapPoints.length > 1, [snapPoints]);\n\n return(\n <>\n <Sheet\n ref={ resolvedRef }\n isOpen={ sheetState.isOpen }\n onClose={ sheetState.close }\n detent={ detent }\n snapPoints={ snapPoints }\n { ...props }\n >\n <OverlayProvider>\n <FocusScope \n contain={ true } \n // If not set to true, focus is not contained on open\n autoFocus={ true } \n restoreFocus={ true }\n >\n <ThBottomSheetContainer \n sheetRef={ resolvedRef } \n sheetState={ sheetState } \n isDraggable= { isDraggable }\n isKeyboardDismissDisabled={ isKeyboardDismissDisabled }\n focusOptions={ focusOptions }\n detent={ detent }\n compounds={ compounds }\n >\n { children }\n </ThBottomSheetContainer>\n </FocusScope>\n </OverlayProvider>\n </Sheet> \n </>\n )\n}","\"use client\";\n\nimport React, { ReactNode } from \"react\";\n\nexport type ComponentMap<T extends string> = {\n [type in T]: React.ComponentType<any>;\n}\n\nexport interface TypedComponentRendererProps<T extends string, K extends keyof ComponentMap<T>> {\n type: K;\n componentMap: ComponentMap<T>;\n props?: any;\n children?: ReactNode;\n}\n\nexport const ThTypedComponentRenderer = <T extends string, K extends keyof ComponentMap<T>>({\n type,\n componentMap,\n props,\n children,\n}: TypedComponentRendererProps<T, K>) => {\n const Component = componentMap[type];\n\n if (!Component) {\n throw new Error(`Unsupported type: ${type}`);\n }\n\n return React.createElement(Component, props, children);\n};","\"use client\";\n\nimport React from \"react\";\n\nimport { WithRef } from \"../customTypes\";\n\nimport { Button, ButtonProps, Form, FormProps } from \"react-aria-components\";\n\nexport interface ThFormProps extends FormProps {\n ref?: React.ForwardedRef<HTMLFormElement>;\n label: string;\n compounds?: {\n button?: Exclude<WithRef<ButtonProps, HTMLButtonElement>, \"type\"> | React.ReactElement<typeof Button>;\n }\n}\n\nexport const ThForm = ({\n ref,\n label,\n compounds,\n children,\n ...props\n}: ThFormProps) => {\n return(\n <>\n <Form\n ref={ ref }\n {...props}\n >\n { children }\n \n { compounds?.button && React.isValidElement(compounds.button) \n ? compounds.button \n : <Button\n { ...compounds?.button }\n type=\"submit\"\n >\n { label }\n </Button>\n }\n </Form>\n </>\n )\n}","\"use client\";\n\nimport { WithRef } from \"../../customTypes\";\n\nimport { \n Input, \n InputProps, \n Label, \n LabelProps, \n NumberField, \n NumberFieldProps, \n Text \n} from \"react-aria-components\";\n\nexport interface ThFormNumberFieldProps extends NumberFieldProps {\n ref?: React.ForwardedRef<HTMLInputElement>;\n label?: string;\n compounds?: {\n label?: WithRef<LabelProps, HTMLLabelElement>;\n input?: WithRef<InputProps, HTMLInputElement>;\n description?: string;\n }\n}\n\nexport const ThFormNumberField = ({\n ref,\n label,\n compounds,\n children,\n ...props\n}: ThFormNumberFieldProps) => {\n return(\n <>\n <NumberField\n ref={ ref }\n {...props }\n >\n { children \n ? children \n : <>\n { label && <Label {...compounds?.label }>\n { label }\n </Label>\n }\n\n <Input {...compounds?.input } />\n \n { compounds?.description && <Text slot=\"description\"> \n { compounds?.description } \n </Text> \n }\n </> \n }\n </NumberField>\n </>\n )\n}","\"use client\";\n\nimport { WithRef } from \"../../customTypes\";\n\nimport { \n FieldError, \n FieldErrorProps, \n Input, \n InputProps, \n Label, \n LabelProps, \n Text, \n TextField, \n TextFieldProps, \n ValidationResult \n} from \"react-aria-components\";\n\nexport interface ThFormTextFieldProps extends TextFieldProps {\n ref?: React.ForwardedRef<HTMLInputElement>;\n label?: string;\n compounds?: {\n label?: WithRef<LabelProps, HTMLLabelElement>;\n input?: WithRef<InputProps, HTMLInputElement>;\n description?: string;\n fieldError?: WithRef<FieldErrorProps, HTMLDivElement>;\n },\n errorMessage?: string | ((validation: ValidationResult) => string);\n}\n\nexport const ThFormTextField = ({\n ref,\n label,\n children,\n compounds,\n errorMessage,\n ...props\n}: ThFormTextFieldProps) => {\n return(\n <>\n <TextField\n ref={ ref }\n {...props }\n >\n <>\n { children \n ? children \n : <>\n { label && <Label {...compounds?.label }>\n { label }\n </Label>\n }\n \n { errorMessage && <FieldError { ...compounds?.fieldError }>\n { errorMessage }\n </FieldError> \n }\n \n <Input {...compounds?.input } />\n \n { compounds?.description && <Text slot=\"description\"> \n { compounds?.description } \n </Text> \n }\n </> \n }\n </>\n </TextField>\n </>\n )\n}","import * as React from \"react\";\nconst SvgSearch = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"inherit\" {...props}><path d=\"M784-120 532-372q-30 24-69 38t-83 14q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z\" /></svg>;\nexport default SvgSearch;","\"use client\";\n\nimport React, { HTMLAttributes } from \"react\";\n\nimport { WithRef } from \"../../customTypes\";\n\nimport SearchIcon from \"./assets/icons/search.svg\";\n\nimport { \n FieldError, \n FieldErrorProps, \n Input, \n InputProps, \n Label, \n LabelProps, \n SearchField, \n SearchFieldProps, \n Text, \n ValidationResult \n} from \"react-aria-components\";\nimport { ThActionButtonProps, ThCloseButton } from \"../../Buttons\";\n\nexport interface ThFormSearchFieldProps extends SearchFieldProps {\n ref?: React.ForwardedRef<HTMLInputElement>;\n label?: string;\n compounds?: {\n label?: WithRef<LabelProps, HTMLLabelElement>;\n input?: WithRef<InputProps, HTMLInputElement>;\n searchIcon?: HTMLAttributes<HTMLDivElement> | React.ReactElement<HTMLDivElement>;\n clearButton?: ThActionButtonProps | React.ReactElement<ThActionButtonProps>;\n description?: string;\n fieldError?: WithRef<FieldErrorProps, HTMLDivElement>;\n },\n errorMessage?: string | ((validation: ValidationResult) => string);\n}\n\nexport const ThFormSearchField = ({\n ref,\n label,\n children,\n compounds,\n errorMessage,\n ...props\n}: ThFormSearchFieldProps) => {\n return(\n <>\n <SearchField\n ref={ ref }\n {...props }\n >\n <>\n { children \n ? children \n : <>\n { label && <Label { ...compounds?.label }>\n { label }\n </Label>\n }\n\n { errorMessage && <FieldError { ...compounds?.fieldError }>\n { errorMessage }\n </FieldError> \n }\n \n <Input { ...compounds?.input } />\n\n { compounds?.searchIcon && React.isValidElement(compounds.searchIcon)\n ? compounds.searchIcon\n : <div {...compounds?.searchIcon }>\n <SearchIcon aria-hidden=\"true\" focusable=\"false\" />\n </div>\n }\n \n { compounds?.clearButton && React.isValidElement(compounds.clearButton) \n ? compounds.clearButton \n : <ThCloseButton { ...compounds?.clearButton } type=\"button\" />\n }\n \n { compounds?.description && <Text slot=\"description\"> \n { compounds?.description } \n </Text> \n }\n </> \n }\n </>\n </SearchField>\n </>\n )\n}","\"use client\";\n\nimport { Link, LinkProps, Tooltip, TooltipProps, TooltipTrigger } from \"react-aria-components\";\nimport { WithRef } from \"../customTypes\";\nimport { TooltipTriggerProps } from \"react-aria\";\n\nexport interface ThLinkProps extends LinkProps {\n ref?: React.ForwardedRef<HTMLAnchorElement>;\n href: string;\n children: React.ReactNode;\n compounds?: {\n /**\n * Props for the tooltipTrigger component. See `TooltipTriggerProps` for more information.\n */\n tooltipTrigger?: WithRef<TooltipTriggerProps, HTMLDivElement>,\n /**\n * Props for the tooltip component. See `TooltipProps` for more information.\n */\n tooltip?: WithRef<TooltipProps, HTMLDivElement>,\n /**\n * String for the tooltip\n */\n label: string \n }\n}\n\nexport interface ThLinkIconProps extends Omit<ThLinkProps, \"children\"> {\n \"aria-label\": string;\n}\n\nexport const ThLink = ({ \n ref,\n href,\n children,\n compounds,\n ...props \n}: ThLinkProps) => {\n if (compounds) {\n return (\n <TooltipTrigger\n { ...compounds.tooltipTrigger }\n >\n <Link \n href={ href }\n ref={ ref }\n { ...props }\n >\n { children }\n </Link>\n <Tooltip\n arrowBoundaryOffset={ 0 }\n { ...compounds.tooltip }\n >\n { compounds.label }\n </Tooltip>\n </TooltipTrigger>\n );\n } else {\n return (\n <Link \n href={ href }\n ref={ ref }\n { ...props }\n >\n { children }\n </Link>\n );\n }\n};","\"use client\";\n\nimport ArrowBackIcon from \"../assets/icons/arrow_back.svg\";\nimport ArrowForwardIcon from \"../assets/icons/arrow_forward.svg\";\n\nimport { ThLink, ThLinkIconProps } from \"./ThLink\";\n\nexport interface ThBackArrowProps extends ThLinkIconProps {\n direction?: \"left\" | \"right\";\n}\n\nexport const ThBackArrow = ({\n ref,\n href,\n \"aria-label\": ariaLabel,\n direction,\n ...props\n}: ThBackArrowProps) => {\n return (\n <ThLink \n href={ href }\n ref={ ref }\n aria-label={ ariaLabel }\n { ...props }\n >\n { direction === \"right\"\n ? <ArrowForwardIcon aria-hidden=\"true\" focusable=\"false\" />\n : <ArrowBackIcon aria-hidden=\"true\" focusable=\"false\" />\n }\n </ThLink>\n );\n};","import * as React from \"react\";\nconst SvgHome = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"Inherit\" {...props}><path d=\"M240-200h120v-240h240v240h120v-360L480-740 240-560v360Zm-80 80v-480l320-240 320 240v480H520v-240h-80v240H160Zm320-350Z\" /></svg>;\nexport default SvgHome;","\"use client\";\n\nimport HomeIcon from \"./assets/icons/home.svg\";\n\nimport { ThLink, ThLinkIconProps } from \"./ThLink\";\n\nexport const ThHome = ({\n ref,\n href,\n \"aria-label\": ariaLabel,\n ...props\n}: ThLinkIconProps) => {\n return (\n <ThLink \n href={ href }\n ref={ ref }\n aria-label={ ariaLabel }\n { ...props }\n >\n <HomeIcon aria-hidden=\"true\" focusable=\"false\" />\n </ThLink>\n );\n};","import * as React from \"react\";\nconst SvgNewsstand = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"Inherit\" {...props}><path d=\"M80-160v-80h800v80H80Zm80-160v-320h80v320h-80Zm160 0v-480h80v480h-80Zm160 0v-480h80v480h-80Zm280 0L600-600l70-40 160 280-70 40Z\" /></svg>;\nexport default SvgNewsstand;","\"use client\";\n\nimport LibraryIcon from \"./assets/icons/newsstand.svg\";\n\nimport { ThLink, ThLinkIconProps } from \"./ThLink\";\n\nexport const ThLibrary = ({\n ref,\n href,\n \"aria-label\": ariaLabel,\n ...props\n}: ThLinkIconProps) => {\n return (\n <ThLink \n href={ href }\n ref={ ref }\n aria-label={ ariaLabel }\n { ...props }\n >\n <LibraryIcon aria-hidden=\"true\" focusable=\"false\" />\n </ThLink>\n );\n};","\"use client\";\n\nimport React from \"react\";\nimport { KeyboardProps } from \"react-aria\";\n\nimport { WithRef } from \"../customTypes\";\n\nimport { Keyboard, LabelProps, MenuItem, MenuItemProps, Text } from \"react-aria-components\";\n\nexport interface ThMenuItemProps extends MenuItemProps {\n ref?: React.Ref<HTMLDivElement>;\n id: string;\n SVGIcon?: React.ComponentType<React.SVGProps<SVGElement>>;\n label: string;\n shortcut?: string;\n compounds?: {\n label: WithRef<LabelProps, HTMLSpanElement>;\n shortcut: WithRef<KeyboardProps, HTMLSpanElement>;\n }\n}\n\nexport const ThMenuItem = ({\n ref,\n id,\n SVGIcon,\n label, \n shortcut,\n compounds,\n children,\n ...props\n}: ThMenuItemProps) => {\n const menuItemLabelId = `${ id }-label`; \n return(\n <>\n <MenuItem \n ref={ ref }\n id={ id } \n { ...(children ? {} : { \"aria-labelledby\": menuItemLabelId }) }\n { ...props }\n >\n { children \n ? children \n : <>\n { SVGIcon && <SVGIcon aria-hidden=\"true\" focusable=\"false\" /> }\n <Text \n { ...compounds?.label } \n slot=\"label\"\n id={ menuItemLabelId }\n >\n { label }\n </Text>\n { shortcut && <Keyboard { ...compounds?.shortcut }>{ shortcut }</Keyboard> }\n </>\n }\n </MenuItem>\n </>\n )\n}","\"use client\";\n\nimport { HTMLAttributesWithRef } from \"../customTypes\";\n\nexport const ThFooter = ({ \n ref,\n children,\n ...props \n}: HTMLAttributesWithRef<HTMLDivElement>) => {\n return (\n <aside \n ref={ ref } \n { ...props }\n >\n { children }\n </aside>\n )\n}","\"use client\";\n\nimport { ReactNode } from \"react\";\n\nimport { HTMLAttributesWithRef } from \"../customTypes\";\n\nexport interface ThLoaderProps extends Omit<HTMLAttributesWithRef<HTMLDivElement>, \"aria-busy\" | \"aria-live\"> {\n ref?: React.ForwardedRef<HTMLDivElement>;\n isLoading: boolean;\n loader: ReactNode;\n}\n\n// Since we are removing loader entirely, no need for aria-hidden={ !isLoading }\n// No need for a label either since we are using the string for the animation\nexport const ThLoader = ({ \n ref, \n isLoading,\n loader,\n children,\n ...props\n }: ThLoaderProps) => {\n return (\n <>\n <div \n ref={ ref }\n { ...props }\n aria-busy={ isLoading } \n aria-live=\"polite\"\n >\n { isLoading && loader }\n { children }\n </div>\n </>\n )\n}","\"use client\";\n\nimport { HTMLAttributesWithRef } from \"../customTypes\";\n\nexport const ThHeader = ({ \n ref,\n children,\n ...props \n}: HTMLAttributesWithRef<HTMLDivElement>) => {\n return (\n <header \n ref={ ref } \n { ...props }\n >\n { children }\n </header>\n )\n}","export interface ThInteractiveOverlayProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.ForwardedRef<HTMLDivElement>;\n isActive: boolean;\n children?: never;\n}\n\n// This is meant to mount invisible zones that can be hovered, clicked, etc.\nexport const ThInteractiveOverlay = ({ \n ref,\n isActive,\n className,\n style,\n ...props \n}: ThInteractiveOverlayProps) => {\n const defaultStyles: React.CSSProperties = {\n opacity: 0,\n zIndex: 10000,\n pointerEvents: \"auto\",\n };\n\n const mergedStyles = className \n ? undefined \n : {\n ...defaultStyles,\n ...style\n };\n\n if (isActive) {\n return (\n <div \n ref={ ref } \n className={ className }\n style={ mergedStyles }\n { ...props }\n ></div>\n )\n }\n}","\"use client\";\n\nimport React, { ComponentType, SVGProps } from \"react\";\n\nimport { Button, ButtonProps } from \"react-aria-components\";\nimport { WithRef } from \"../customTypes\";\n\nimport ArrowBack from \"../assets/icons/arrow_back.svg\";\nimport ArrowForward from \"../assets/icons/arrow_forward.svg\";\n\nexport interface ThPaginationLinkProps {\n icon?: ComponentType<SVGProps<SVGElement>> | null;\n node: React.ReactNode;\n onPress: () => void;\n}\n\nexport interface ThPaginationProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.RefObject<HTMLDivElement>;\n direction?: \"left\" | \"right\";\n children?: React.ReactNode;\n links?: {\n previous?: ThPaginationLinkProps;\n next?: ThPaginationLinkProps;\n };\n compounds?: {\n /**\n * Props for the list item element wrapping links and children\n */\n listItem?: React.HTMLAttributes<HTMLLIElement>;\n /**\n * Props for the previous button element\n */\n previousButton?: Exclude<WithRef<ButtonProps, HTMLButtonElement>, \"type\">;\n /**\n * Props for the next button element\n */\n nextButton?: Exclude<WithRef<ButtonProps, HTMLButtonElement>, \"type\">;\n };\n}\n\nexport const ThPagination = ({\n ref,\n direction = \"left\",\n links,\n compounds,\n children,\n ...props\n}: ThPaginationProps) => {\n if (!links) {\n return null;\n }\n\n const { previous, next } = links;\n\n return (\n <nav\n ref={ ref }\n { ...props }\n >\n { previous && (\n <li { ...compounds?.listItem }>\n <Button\n { ...compounds?.previousButton }\n type=\"button\"\n onPress={ previous.onPress }\n >\n { previous.icon \n ? <previous.icon aria-hidden=\"true\" focusable=\"false\" /> \n : direction === \"left\"\n ? <ArrowBack aria-hidden=\"true\" focusable=\"false\" />\n : <ArrowForward aria-hidden=\"true\" focusable=\"false\" />\n }\n { previous.node }\n </Button>\n </li>\n )}\n\n { children && (\n <li { ...compounds?.listItem }>\n { children }\n </li>\n )}\n\n { next && (\n <li { ...compounds?.listItem }>\n <Button\n { ...compounds?.nextButton }\n type=\"button\"\n onPress={ next.onPress }\n >\n { next.node }\n \n { next.icon \n ? <next.icon aria-hidden=\"true\" focusable=\"false\" /> \n : direction === \"left\"\n ? <ArrowForward aria-hidden=\"true\" focusable=\"false\" />\n : <ArrowBack aria-hidden=\"true\" focusable=\"false\" />\n }\n </Button>\n </li>\n )}\n </nav>\n );\n};","\"use client\";\n\nimport React from \"react\";\n\nexport interface ThProgressionProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.RefObject<HTMLDivElement>\n}\n\nexport const ThProgression = ({ \n ref,\n children, \n ...props\n}: ThProgressionProps) => {\n return (\n <>\n <div \n ref={ ref } \n {...props }\n >\n { children }\n </div>\n </>\n )\n}","\"use client\";\n\nimport React from \"react\";\n\nimport { HTMLAttributesWithRef } from \"../customTypes\";\n\nexport interface ThRunningHeadProps extends HTMLAttributesWithRef<HTMLHeadingElement> {\n ref?: React.RefObject<HTMLHeadingElement>\n label: string;\n}\n\nexport const ThRunningHead = ({ \n ref,\n label,\n ...props\n}: ThRunningHeadProps) => {\n\n return(\n <>\n <h1 \n ref={ ref }\n { ...props }\n >\n { label }\n </h1>\n </>\n )\n}","import * as React from \"react\";\nconst SvgAdd = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"Inherit\" {...props}><path d=\"M440-440H200v-80h240v-240h80v240h240v80H520v240h-80v-240Z\" /></svg>;\nexport default SvgAdd;","import * as React from \"react\";\nconst SvgRemove = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"Inherit\" {...props}><path d=\"M200-440v-80h560v80H200Z\" /></svg>;\nexport default SvgRemove;","import * as React from \"react\";\nconst SvgUndo = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"inherit\" {...props}><path d=\"M280-200v-80h284q63 0 109.5-40T720-420q0-60-46.5-100T564-560H312l104 104-56 56-200-200 200-200 56 56-104 104h252q97 0 166.5 63T800-420q0 94-69.5 157T564-200H280Z\" /></svg>;\nexport default SvgUndo;","\"use client\";\n\nimport Undo from \"./assets/icons/undo.svg\";\n\nimport { ThActionButton, ThActionButtonProps } from \"../Buttons/ThActionButton\";\n\nexport const ThSettingsResetButton = ({\n label,\n ref,\n compounds,\n children,\n ...props\n}: ThActionButtonProps) => {\n return (\n <ThActionButton\n ref={ ref }\n compounds={ compounds }\n { ...props }\n >\n { children \n ? children \n : <>\n <Undo aria-hidden=\"true\" focusable=\"false\" /> \n { label }\n </> \n }\n </ThActionButton>\n )\n}","\"use client\";\n\nimport { ComponentType, SVGProps, useCallback } from \"react\";\n\nimport { HTMLAttributesWithRef, WithRef } from \"../customTypes\";\nimport { ThActionButtonProps } from \"../Buttons\";\n\nimport AddIcon from \"./assets/icons/add.svg\";\nimport RemoveIcon from \"./assets/icons/remove.svg\";\n\nimport { ThSettingsResetButton } from \"./ThSettingsResetButton\";\n\nimport {\n Button,\n ButtonProps,\n Group,\n GroupProps,\n Input,\n InputProps,\n Label,\n LabelProps,\n NumberField,\n NumberFieldProps\n} from \"react-aria-components\";\n\nimport { useObjectRef } from \"react-aria\";\n\nexport interface ThNumberFieldProps extends Omit<NumberFieldProps, \"minValue\" | \"maxValue\" | \"decrementAriaLabel\" | \"incrementAriaLabel\"> {\n ref?: React.ForwardedRef<HTMLInputElement>;\n onReset?: () => void;\n label?: string;\n placeholder?: string;\n range: number[];\n isVirtualKeyboardDisabled?: boolean;\n steppers?: {\n decrementIcon?: ComponentType<SVGProps<SVGElement>> | null;\n decrementLabel: string;\n incrementIcon?: ComponentType<SVGProps<SVGElement>> | null;\n incrementLabel: string;\n };\n compounds?: {\n /**\n * Props for the wrapper component.\n */\n wrapper?: HTMLAttributesWithRef<HTMLDivElement>;\n /**\n * Props for the Group component. See `GroupProps` for more information.\n */\n group?: WithRef<GroupProps, HTMLDivElement>;\n /**\n * Props for the Input component. See `InputProps` for more information.\n */\n input?: Omit<WithRef<InputProps, HTMLInputElement>, \"placeholder\">;\n /**\n * Props for the Label component. See `LabelProps` for more information.\n */\n label?: WithRef<LabelProps, HTMLLabelElement>;\n /**\n * Props for the Button component used for decrement/increment. See `ButtonProps` for more information.\n */\n stepper?: ButtonProps;\n /**\n * Props for the Button component used for resetting the value. See `ThActionButtonProps` for more information.\n */\n reset?: ThActionButtonProps;\n };\n}\n\nexport const ThNumberField = ({\n ref,\n onReset,\n label,\n placeholder,\n range,\n isVirtualKeyboardDisabled,\n steppers,\n compounds,\n value,\n ...props\n}: ThNumberFieldProps) => {\n const resolvedRef = useObjectRef(ref);\n\n // Callback that handles reset and focus restoration\n const handleResetWithFocus = useCallback(() => {\n onReset?.();\n // Use requestAnimationFrame to defer focus until after current call stack\n requestAnimationFrame(() => {\n if (resolvedRef.current) {\n const inputElement = resolvedRef.current.querySelector(\"input\");\n if (inputElement) {\n (inputElement as HTMLElement).focus();\n }\n }\n });\n }, [onReset, resolvedRef]);\n\n return (\n <>\n <div { ...compounds?.wrapper }>\n <NumberField\n ref={ resolvedRef }\n // This looks super weird but is the only way\n // to unset the value in NumberField as undefined\n // will not update the value\n value={ value === undefined ? NaN : value }\n minValue={ Math.min(...range) }\n maxValue={ Math.max(...range) }\n decrementAriaLabel={ steppers?.decrementLabel }\n incrementAriaLabel={ steppers?.incrementLabel }\n { ...props }\n >\n { label && <Label { ...compounds?.label }>\n { label }\n </Label>\n }\n\n <Group { ...compounds?.group }>\n {steppers &&\n <Button\n { ...compounds?.stepper }\n slot=\"decrement\"\n >\n { steppers.decrementIcon\n ? <steppers.decrementIcon aria-hidden=\"true\" focusable=\"false\" />\n : <RemoveIcon aria-hidden=\"true\" focusable=\"false\" /> }\n </Button>\n }\n\n <Input\n { ...compounds?.input }\n { ...(isVirtualKeyboardDisabled ? { inputMode: \"none\" } : {}) }\n placeholder={ placeholder }\n />\n\n { steppers &&\n <Button\n { ...compounds?.stepper }\n slot=\"increment\"\n >\n { steppers.incrementIcon\n ? <steppers.incrementIcon aria-hidden=\"true\" focusable=\"false\" />\n : <AddIcon aria-hidden=\"true\" focusable=\"false\" /> }\n </Button>\n }\n </Group>\n </NumberField>\n { onReset && <ThSettingsResetButton { ...compounds?.reset } onClick={ handleResetWithFocus } /> }\n </div>\n </>\n );\n};","\"use client\";\n\nimport React, { ComponentType, SVGProps, useEffect, useRef } from \"react\";\n\nimport { HTMLAttributesWithRef, WithRef } from \"../customTypes\";\n\nimport { \n Label, \n LabelProps, \n Radio, \n RadioGroup, \n RadioGroupProps, \n RadioProps \n} from \"react-aria-components\"\n\nexport interface ThRadioGroupItems {\n id: string;\n value: string;\n icon?: ComponentType<SVGProps<SVGElement>>;\n label: string;\n isDisabled?: boolean;\n}\n\nexport interface ThRadioGroupProps extends RadioGroupProps {\n ref?: React.ForwardedRef<HTMLDivElement>;\n label?: string;\n items?: ThRadioGroupItems[];\n compounds?: {\n /**\n * Props for the wrapper component. See `HTMLAttributesWithRef` for more information.\n */\n wrapper?: HTMLAttributesWithRef<HTMLDivElement>;\n /**\n * Props for the label component. See `LabelProps` for more information.\n */\n label?: WithRef<LabelProps, HTMLLabelElement>;\n /**\n * Props for the radio component. See `RadioProps` for more information.\n */\n radio?: Omit<RadioProps, \"value\">;\n /**\n * Props for the radio label component. See `HTMLAttributesWithRef` for more information.\n */\n radioLabel?: HTMLAttributesWithRef<HTMLSpanElement>;\n }\n}\n\nexport const ThRadioGroup = ({\n ref,\n label,\n items,\n compounds,\n children,\n value,\n ...props\n}: ThRadioGroupProps) => {\n const radioGroupRef = useRef<HTMLDivElement>(null);\n\n // Auto-detect when value doesn't match items and ensure first radio is focusable\n // Otherwise all inputs will have tabindex -1 and the entire group will be skipped\n // when tabbing.\n useEffect(() => {\n if (items?.length && radioGroupRef.current && value !== undefined) {\n const valueMatches = items.some((item) => item.value === value);\n\n if (!valueMatches) {\n // When no value matches, make first radio focusable for tab navigation\n const firstRadio = radioGroupRef.current.querySelector(\"input[type='radio']\") as HTMLInputElement;\n if (firstRadio && firstRadio.getAttribute(\"tabindex\") !== \"0\") {\n firstRadio.setAttribute(\"tabindex\", \"0\");\n }\n }\n // When value matches, let React Aria handle tabindex completely\n }\n }, [items, value]);\n\n if (React.isValidElement(children)) {\n return (\n <RadioGroup\n ref={ ref || radioGroupRef }\n value={ value }\n { ...props }\n >\n { label && <Label { ...compounds?.label }>\n { label }\n </Label>\n }\n { children }\n </RadioGroup>\n )\n } else if (items) {\n return (\n <RadioGroup\n ref={ radioGroupRef }\n value={ value }\n { ...props }\n >\n { label && <Label { ...compounds?.label }>\n { label }\n </Label>\n }\n <div { ...compounds?.wrapper }>\n { items.map((item) => (\n <Radio\n { ...compounds?.radio }\n id={ item.id }\n key={ item.id }\n value={ item.value }\n isDisabled={ item.isDisabled }\n >\n <React.Fragment>\n { item.icon && <item.icon aria-hidden=\"true\" focusable=\"false\" /> }\n <span { ...compounds?.radioLabel }>\n { item.label }\n </span>\n </React.Fragment>\n </Radio>\n )) }\n </div>\n </RadioGroup>\n )\n }\n};","\"use client\";\n\nimport { useCallback } from \"react\";\n\nimport { HTMLAttributesWithRef, WithRef } from \"../customTypes\";\nimport { ThActionButtonProps } from \"../Buttons\";\n\nimport { ThSettingsResetButton } from \"./ThSettingsResetButton\";\n\nimport { \n Label,\n LabelProps,\n Slider,\n SliderOutput,\n SliderOutputProps,\n SliderProps,\n SliderThumb,\n SliderThumbProps,\n SliderTrack,\n SliderTrackProps \n} from \"react-aria-components\";\n\nimport { useObjectRef } from \"react-aria\";\n\nexport interface ThSliderProps extends Omit<SliderProps, \"minValue\" | \"maxValue\"> {\n ref?: React.ForwardedRef<HTMLDivElement>;\n onReset?: () => void;\n label?: string;\n placeholder?: string;\n range: number[];\n compounds?: {\n /**\n * Props for the wrapper component.\n */\n wrapper?: HTMLAttributesWithRef<HTMLDivElement>;\n /**\n * Props for the label component. See `LabelProps` for more information.\n */\n label?: WithRef<LabelProps, HTMLLabelElement>;\n /**\n * Props for the slider output component. See `SliderOutputProps` for more information.\n */\n output?: WithRef<SliderOutputProps, HTMLOutputElement>;\n /**\n * Props for the slider placeholder component. See `HTMLSpanElement` for more information.\n */\n placeholder?: HTMLAttributesWithRef<HTMLSpanElement>;\n /**\n * Props for the slider track component. See `SliderTrackProps` for more information.\n */\n track?: WithRef<SliderTrackProps, HTMLDivElement>;\n /**\n * Props for the slider thumb component. See `SliderThumbProps` for more information.\n */\n thumb?: WithRef<SliderThumbProps, HTMLDivElement>;\n /**\n * Props for the reset button component. See `ThActionButtonProps` for more information.\n */\n reset?: ThActionButtonProps;\n };\n}\n\nexport const ThSlider = ({\n ref,\n onReset,\n label,\n placeholder,\n range,\n compounds,\n value,\n ...props\n}: ThSliderProps) => {\n const resolvedRef = useObjectRef(ref);\n\n // Callback that handles reset and focus restoration\n const handleResetWithFocus = useCallback(() => {\n onReset?.();\n // Use requestAnimationFrame to defer focus until after current call stack\n requestAnimationFrame(() => {\n if (resolvedRef.current) {\n const inputElement = resolvedRef.current.querySelector(\"input\");\n if (inputElement) {\n (inputElement as HTMLElement).focus();\n }\n }\n });\n }, [onReset, resolvedRef]);\n return(\n <>\n <div { ...compounds?.wrapper }>\n <Slider\n ref={ resolvedRef }\n value={ value }\n minValue={ Math.min(...range) }\n maxValue={ Math.max(...range) }\n { ...props }\n >\n { label && <Label { ...compounds?.label }>\n { label }\n </Label>\n }\n <SliderOutput { ...compounds?.output }>\n { value !== undefined\n ? value\n : placeholder\n ? <span { ...compounds?.placeholder }>{ placeholder }</span>\n : null\n }\n </SliderOutput>\n <SliderTrack { ...compounds?.track }>\n <SliderThumb { ...compounds?.thumb } />\n </SliderTrack>\n </Slider>\n { onReset && <ThSettingsResetButton { ...compounds?.reset } onClick={ handleResetWithFocus } /> }\n </div>\n </>\n )\n}","\"use client\";\n\nimport { HTMLAttributesWithRef, WithRef } from \"../customTypes\";\n\nimport { Heading, HeadingProps, Switch, SwitchProps } from \"react-aria-components\";\n\nexport interface ThSwitchProps extends SwitchProps {\n ref?: React.ForwardedRef<HTMLLabelElement>;\n label: string;\n heading?: string;\n compounds?: {\n /**\n * Props for the wrapper component. See `HTMLAttributesWithRef` for more information.\n */\n wrapper?: HTMLAttributesWithRef<HTMLDivElement>;\n /**\n * Props for the heading component. See `HeadingProps` for more information.\n */\n heading?: WithRef<HeadingProps, HTMLHeadingElement>;\n /**\n * Props for the indicator component. See `HTMLAttributesWithRef` for more information.\n */\n indicator?: HTMLAttributesWithRef<HTMLDivElement>;\n }\n}\n\nexport const ThSwitch = ({\n ref,\n label,\n compounds,\n heading, \n ...props\n}: ThSwitchProps) => {\n return(\n <>\n <div { ...compounds?.wrapper }>\n { heading && <Heading { ...compounds?.heading }>\n { heading }\n </Heading> \n }\n <Switch \n ref={ ref }\n { ...props }\n >\n <div { ...compounds?.indicator } />\n { label }\n </Switch>\n </div>\n </>\n )\n}","import * as React from \"react\";\nconst SvgArrowDropDown = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"Inherit\" {...props}><path d=\"M480-360 280-560h400L480-360Z\" /></svg>;\nexport default SvgArrowDropDown;","\"use client\";\n\nimport ArrowDropDownIcon from \"./assets/icons/arrow_drop_down.svg\";\n\nimport { Button, ButtonProps, SelectValue } from \"react-aria-components\";\n\nexport interface ThDropdownButtonProps extends ButtonProps {\n ref?: React.ForwardedRef<HTMLButtonElement>;\n}\n\nexport const ThDropdownButton = ({\n ref,\n children,\n ...props\n}: ThDropdownButtonProps) => {\n return (\n <>\n <Button \n ref={ ref }\n { ...props }\n >\n { children \n ? children \n : <>\n <SelectValue /> \n <ArrowDropDownIcon aria-hidden=\"true\" focusable=\"false\" />\n </> \n }\n </Button>\n </>\n )\n}","\"use client\";\n\nimport React from \"react\";\n\nimport { WithRef } from \"../../customTypes\";\n\nimport { \n Button,\n ButtonProps, \n Label, \n LabelProps, \n ListBox, \n ListBoxItem, \n ListBoxItemProps, \n ListBoxProps, \n Popover, \n PopoverProps, \n Select, \n SelectProps \n} from \"react-aria-components\";\nimport { ThDropdownButton, ThDropdownButtonProps } from \"./ThDropdownButton\";\n\nexport interface ThDropdownEntry {\n id: string;\n label: string;\n value: string;\n}\n\nexport interface ThDropdownProps extends SelectProps {\n ref?: React.ForwardedRef<HTMLDivElement>;\n label?: string;\n items?: Iterable<ThDropdownEntry>;\n children?: never;\n compounds?: {\n /**\n * Props for the label component. See `LabelProps` for more information.\n */\n label?: WithRef<LabelProps, HTMLLabelElement>;\n /**\n * Props for the button component. See `ThDropdownButtonProps` for more information.\n * Alternatively you can provide your own Button component\n */\n button?: WithRef<ButtonProps, HTMLButtonElement> | React.ReactElement<typeof Button>;\n /**\n * Props for the popover component. See `PopoverProps` for more information.\n */\n popover?: WithRef<PopoverProps, HTMLDivElement>;\n /**\n * Props for the listbox component. See `LisboxProps` for more information.\n * Alternatively you can provide your own Listbox component\n */\n listbox?: WithRef<ListBoxProps<ThDropdownEntry>, HTMLDivElement> | React.ReactElement<typeof ListBox | HTMLDivElement>;\n /**\n * Props for the listboxItem component. See `ListBoxItemProps` for more information.\n */\n listboxItem?: ListBoxItemProps<ThDropdownEntry>;\n }\n}\n\nexport const ThDropdown = ({\n ref,\n label,\n items,\n compounds,\n ...props\n}: ThDropdownProps) => {\n if (!items && !React.isValidElement(compounds?.listbox)) {\n return null;\n }\n\n return(\n <>\n <Select\n ref={ ref }\n { ...props }\n >\n { label && <Label { ...compounds?.label }>\n { label }\n </Label>\n }\n { compounds?.button && React.isValidElement(compounds.button) \n ? compounds.button \n : <ThDropdownButton { ...compounds?.button as ThDropdownButtonProps } />\n }\n <Popover\n { ...compounds?.popover }\n >\n { compounds?.listbox && React.isValidElement(compounds.listbox) \n ? compounds.listbox \n : <ListBox \n items={ items } \n { ...compounds?.listbox }>\n { (item: ThDropdownEntry) => <ListBoxItem \n { ...compounds?.listboxItem }\n id={ item.id } \n key={ item.id } \n textValue={ item.value || undefined }\n >\n { item.label }\n </ListBoxItem>\n }\n </ListBox>\n }\n </Popover>\n </Select>\n </>\n )\n}\n","import * as React from \"react\";\nconst SvgSettings = props => <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"inherit\" {...props}><path d=\"m370-80-16-128q-13-5-24.5-12T307-235l-119 50L78-375l103-78q-1-7-1-13.5v-27q0-6.5 1-13.5L78-585l110-190 119 50q11-8 23-15t24-12l16-128h220l16 128q13 5 24.5 12t22.5 15l119-50 110 190-103 78q1 7 1 13.5v27q0 6.5-2 13.5l103 78-110 190-118-50q-11 8-23 15t-24 12L590-80H370Zm70-80h79l14-106q31-8 57.5-23.5T639-327l99 41 39-68-86-65q5-14 7-29.5t2-31.5q0-16-2-31.5t-7-29.5l86-65-39-68-99 42q-22-23-48.5-38.5T533-694l-13-106h-79l-14 106q-31 8-57.5 23.5T321-633l-99-41-39 68 86 64q-5 15-7 30t-2 32q0 16 2 31t7 30l-86 65 39 68 99-42q22 23 48.5 38.5T427-266l13 106Zm42-180q58 0 99-41t41-99q0-58-41-99t-99-41q-59 0-99.5 41T342-480q0 58 40.5 99t99.5 41Zm-2-140Z\" /></svg>;\nexport default SvgSettings;","\"use client\";\n\nimport Settings from \"./assets/icons/settings.svg\";\n\nimport { ThActionButton, ThActionButtonProps } from \"../../Buttons/ThActionButton\";\n\nexport const ThSettingsWrapperButton = ({\n label,\n ref,\n compounds,\n children,\n ...props\n}: ThActionButtonProps) => {\n return (\n <ThActionButton\n ref={ ref }\n compounds={ compounds }\n { ...props }\n >\n { children \n ? children \n : <>\n <Settings aria-hidden=\"true\" focusable=\"false\" /> \n { label }\n </> \n }\n </ThActionButton>\n )\n}","\"use client\";\n\nimport { ThSettingsWrapperButton } from \"./ThSettingsWrapperButton\";\n\nimport { Heading, HeadingProps } from \"react-aria-components\";\nimport { HTMLAttributesWithRef, WithRef } from \"../../customTypes\";\nimport { ThActionButtonProps } from \"../../Buttons\";\n\nexport interface ThSettingsEntry {\n Comp: React.ComponentType<any>\n}\n\nexport interface ThSettingsPrefs {\n main: string[];\n subPanel?: string[] | null;\n}\n\nexport interface ThSettingsWrapperProps extends HTMLAttributesWithRef<HTMLDivElement> {\n items?: Record<string, ThSettingsEntry> | null;\n prefs: ThSettingsPrefs;\n compounds?: {\n /**\n * Label for advanced settings that will be displayed as a heading\n */\n label?: string;\n /**\n * Props for the heading. See `HeadingProps` for more information.\n */\n heading?: WithRef<HeadingProps, HTMLHeadingElement>;\n /**\n * Props for the button that triggers the subpanel. See `ThActionButtonProps` for more information.\n */\n button?: ThActionButtonProps;\n }\n}\n\n// TODO: Handle Standalone and Usage as Group\nexport const ThSettingsWrapper = ({\n ref,\n items,\n prefs,\n compounds,\n ...props\n}: ThSettingsWrapperProps) => {\n const main = prefs.main;\n const displayOrder = prefs.subPanel;\n \n const isAdvanced = items &&(\n main.length < Object.keys(items).length && \n displayOrder && displayOrder.length > 0\n );\n\n if (items) {\n return(\n <>\n <div \n ref={ ref }\n { ...props }\n >\n { isAdvanced && compounds?.label &&\n <Heading { ...compounds?.heading }>\n { compounds.label }\n </Heading> }\n { main.map((key, index) => {\n const match = items[key];\n return match && <match.Comp key={ key } standalone={ !isAdvanced || index !== 0 } { ...props } />;\n }) }\n { isAdvanced && (\n <ThSettingsWrapperButton\n { ...compounds?.button }\n />\n ) }\n </div>\n </>\n )\n }\n}","\"use client\";\n\nimport React from \"react\";\nimport { HTMLAttributesWithRef } from \"./customTypes\";\n\nexport interface ThGridProps<T> extends HTMLAttributesWithRef<HTMLUListElement> {\n items: T[];\n children?: never;\n renderItem: (item: T, index: number) => React.ReactNode;\n columnWidth?: number | string;\n gap?: number | string;\n}\n\nexport const ThGrid = <T extends unknown>({\n ref,\n items,\n renderItem,\n columnWidth,\n gap,\n ...props\n}: ThGridProps<T>) => {\n return (\n <ul \n ref={ ref } \n { ...props }\n style={{\n ...props.style,\n listStyle: \"none\",\n margin: 0,\n padding: 0,\n display: \"grid\",\n boxSizing: \"border-box\",\n gridTemplateColumns: `repeat(auto-fill, minmax(min(100%, ${typeof columnWidth === \"string\" ? columnWidth : columnWidth + \"px\"}), 1fr))`,\n gap: typeof gap === \"string\" ? gap : gap + \"px\"\n }}\n >\n { items.map((item, index) => (\n <li key={ index }>\n { renderItem(item, index) }\n </li>\n )) }\n </ul>\n );\n};"]}
@@ -3,7 +3,7 @@ import { b as ThActionsKeys, a as ThDockingKeys, e as ThTextSettingsKeys, f as T
3
3
  import { T as ThColorScheme } from '../../useContrast-Cgsrl7GS.mjs';
4
4
  import { p as ThSettingsGroupPref, O as defaultFontFamilyOptions, a as ThPreferences, D as DefaultKeys } from '../../ThPreferencesAdapter-DrpMdZt6.mjs';
5
5
  export { G as useTheming } from '../../ThPreferencesAdapter-DrpMdZt6.mjs';
6
- import { T as ThActionButtonProps, f as ThMenuItemProps, a as ThCollapsibleActionsBarProps, q as ThSettingsEntry, h as ThNumberFieldProps, k as ThRadioGroupProps, m as ThSliderProps, o as ThSwitchProps } from '../../ThSettingsWrapper-cIeG-ame.mjs';
6
+ import { T as ThActionButtonProps, f as ThMenuItemProps, a as ThCollapsibleActionsBarProps, q as ThSettingsEntry, h as ThNumberFieldProps, k as ThRadioGroupProps, m as ThSliderProps, o as ThSwitchProps } from '../../ThSettingsWrapper-DM_6Bw-b.mjs';
7
7
  import React__default, { RefObject, ReactNode } from 'react';
8
8
  import { d as ThActionsTriggerVariant, a as ThCollapsibilityVisibility, b as ThActionEntry } from '../../useCollapsibility-CM1I24Ol.mjs';
9
9
  import { a as ActionsStateKeys } from '../../actionsReducer-CwI-Bgzm.mjs';
@@ -144,8 +144,9 @@ declare const StatefulNumberField: ({ standalone, label, placeholder, value, res
144
144
  interface StatefulRadioGroupProps extends Omit<ThRadioGroupProps, "classNames"> {
145
145
  standalone?: boolean;
146
146
  useGraphicalNavigation?: boolean;
147
+ onEscape?: () => void;
147
148
  }
148
- declare const StatefulRadioGroup: ({ ref, standalone, useGraphicalNavigation, label, items, value, children, onChange, ...props }: StatefulRadioGroupProps) => react_jsx_runtime.JSX.Element;
149
+ declare const StatefulRadioGroup: ({ ref, standalone, useGraphicalNavigation, label, items, value, children, onChange, onEscape, ...props }: StatefulRadioGroupProps) => react_jsx_runtime.JSX.Element;
149
150
 
150
151
  interface StatefulSliderProps extends Omit<ThSliderProps, "classNames"> {
151
152
  standalone?: boolean;
@@ -160,6 +161,21 @@ interface StatefulSwitchProps extends Omit<ThSwitchProps, "classNames"> {
160
161
  }
161
162
  declare const StatefulSwitch: ({ standalone, label, heading, ...props }: StatefulSwitchProps) => react_jsx_runtime.JSX.Element;
162
163
 
164
+ interface useGridNavigationProps {
165
+ containerRef: React__default.RefObject<HTMLDivElement | null>;
166
+ items: React__default.RefObject<any[]>;
167
+ currentValue: any;
168
+ onChange: (value: any) => void;
169
+ isRTL?: boolean;
170
+ onEscape?: () => void;
171
+ onFocus?: (value: string) => void;
172
+ }
173
+ declare const useGridNavigation: ({ containerRef, items, currentValue, onChange, isRTL, onEscape, onFocus }: useGridNavigationProps) => {
174
+ onKeyDown: (e: React__default.KeyboardEvent) => void;
175
+ };
176
+
177
+ declare const useGridTemplate: (ref: React.RefObject<HTMLDivElement | null>, type?: "columns" | "rows") => number | null;
178
+
163
179
  declare const StatefulSpacingPresets: ({ standalone }: StatefulSettingsItemProps) => react_jsx_runtime.JSX.Element | null;
164
180
 
165
181
  declare const StatefulWordSpacing: ({ standalone }: StatefulSettingsItemProps) => react_jsx_runtime.JSX.Element;
@@ -352,4 +368,4 @@ declare const usePublication: ({ url, onError }: UsePublicationOptions) => {
352
368
  selfLink: string | undefined;
353
369
  };
354
370
 
355
- export { ActionsStateKeys, DefaultImage, LineLengthStateObject, type Publication, PublicationGrid, type PublicationGridProps, type ReadiumCSSSettings, type ScrimPref, type StatefulActionContainerProps, StatefulActionIcon, type StatefulActionIconProps, type StatefulActionTriggerProps, type StatefulActionsMapObject, StatefulBottomSheet, type StatefulBottomSheetProps, StatefulCollapsibleActionsBar, type StatefulCollapsibleActionsBarProps, StatefulColumns, StatefulDockedSheet, type StatefulDockedSheetProps, StatefulFontFamily, StatefulFullScreenSheet, type StatefulFullScreenSheetProps, StatefulFullscreenTrigger, StatefulGroupWrapper, type StatefulGroupWrapperProps, StatefulHyphens, StatefulJumpToPositionContainer, StatefulJumpToPositionTrigger, StatefulLayout, StatefulLetterSpacing, StatefulLineHeight, StatefulLoader, StatefulNumberField, type StatefulNumberFieldProps, StatefulOverflowMenu, StatefulOverflowMenuItem, type StatefulOverflowMenuItemProps, type StatefulOverflowMenuProps, StatefulParagraphIndent, StatefulParagraphSpacing, StatefulPopoverSheet, type StatefulPopoverSheetProps, StatefulPreferencesProvider, StatefulPublisherStyles, StatefulRadioGroup, type StatefulRadioGroupProps, StatefulReader, type StatefulReaderProps, StatefulSettingsContainer, type StatefulSettingsItemProps, StatefulSettingsTrigger, type StatefulSheet, StatefulSheetWrapper, StatefulSlider, type StatefulSliderProps, StatefulSpacingGroup, StatefulSpacingGroupContainer, StatefulSpacingPresets, StatefulSwitch, type StatefulSwitchProps, StatefulTextAlign, StatefulTextGroup, StatefulTextGroupContainer, StatefulTextNormalize, StatefulTheme, StatefulTocContainer, StatefulTocTrigger, StatefulWordSpacing, StatefulZoom, type StatelessCache, type ThPlugin, UnstableStatefulFontWeight, createDefaultPlugin, useDocking, useLineHeight, usePublication, useSpacingPresets };
371
+ export { ActionsStateKeys, DefaultImage, LineLengthStateObject, type Publication, PublicationGrid, type PublicationGridProps, type ReadiumCSSSettings, type ScrimPref, type StatefulActionContainerProps, StatefulActionIcon, type StatefulActionIconProps, type StatefulActionTriggerProps, type StatefulActionsMapObject, StatefulBottomSheet, type StatefulBottomSheetProps, StatefulCollapsibleActionsBar, type StatefulCollapsibleActionsBarProps, StatefulColumns, StatefulDockedSheet, type StatefulDockedSheetProps, StatefulFontFamily, StatefulFullScreenSheet, type StatefulFullScreenSheetProps, StatefulFullscreenTrigger, StatefulGroupWrapper, type StatefulGroupWrapperProps, StatefulHyphens, StatefulJumpToPositionContainer, StatefulJumpToPositionTrigger, StatefulLayout, StatefulLetterSpacing, StatefulLineHeight, StatefulLoader, StatefulNumberField, type StatefulNumberFieldProps, StatefulOverflowMenu, StatefulOverflowMenuItem, type StatefulOverflowMenuItemProps, type StatefulOverflowMenuProps, StatefulParagraphIndent, StatefulParagraphSpacing, StatefulPopoverSheet, type StatefulPopoverSheetProps, StatefulPreferencesProvider, StatefulPublisherStyles, StatefulRadioGroup, type StatefulRadioGroupProps, StatefulReader, type StatefulReaderProps, StatefulSettingsContainer, type StatefulSettingsItemProps, StatefulSettingsTrigger, type StatefulSheet, StatefulSheetWrapper, StatefulSlider, type StatefulSliderProps, StatefulSpacingGroup, StatefulSpacingGroupContainer, StatefulSpacingPresets, StatefulSwitch, type StatefulSwitchProps, StatefulTextAlign, StatefulTextGroup, StatefulTextGroupContainer, StatefulTextNormalize, StatefulTheme, StatefulTocContainer, StatefulTocTrigger, StatefulWordSpacing, StatefulZoom, type StatelessCache, type ThPlugin, UnstableStatefulFontWeight, createDefaultPlugin, useDocking, useGridNavigation, type useGridNavigationProps, useGridTemplate, useLineHeight, usePublication, useSpacingPresets };
@@ -1,10 +1,10 @@
1
1
  import { useI18n } from '../../chunk-F5DEEGRL.mjs';
2
2
  export { DEFAULT_CONFIG, ThI18nProvider, Trans, i18n, initI18n, useI18n } from '../../chunk-F5DEEGRL.mjs';
3
- import { require_debounce, useAppSelector, useAppDispatch, setActionOpen, setColumnCount, setScroll, setTheme, setLetterSpacing, setLineHeight, setParagraphIndent, setParagraphSpacing, setWordSpacing, setSpacingPreset, setPublisherStyles, setFontSize, setSettingsContainer, setFontFamily, setFontWeight, setHyphens, setTextAlign, setTextNormalization, setFullscreen, dockAction, setReducedTransparency, setReducedMotion, setMonochrome, setForcedColors, setContrast, setColorScheme, setBreakpoint, setTimeline, setImmersive, setHovering, setArrows, toggleImmersive, useAppStore, toggleActionOpen, setDirection, setPlatformModifier, setRTL, setFXL, ThReduxPreferencesAdapter, setOverflow, setTocEntry, setScrollAffordance, setPublicationStart, setPublicationEnd, setPositionsList, setLoading, collapseDockPanel, expandDockPanel, activateDockPanel, deactivateDockPanel, setDockPanelWidth } from '../../chunk-ACBBACML.mjs';
3
+ import { require_debounce, useAppSelector, useAppDispatch, setSettingsContainer, setActionOpen, setColumnCount, setScroll, setTheme, setLetterSpacing, setLineHeight, setParagraphIndent, setParagraphSpacing, setWordSpacing, setSpacingPreset, setPublisherStyles, setFontSize, setFontFamily, setFontWeight, setHyphens, setTextAlign, setTextNormalization, setFullscreen, dockAction, setReducedTransparency, setReducedMotion, setMonochrome, setForcedColors, setContrast, setColorScheme, setBreakpoint, setTimeline, setImmersive, setHovering, setArrows, toggleImmersive, useAppStore, toggleActionOpen, setDirection, setPlatformModifier, setRTL, setFXL, ThReduxPreferencesAdapter, setOverflow, setTocEntry, setScrollAffordance, setPublicationStart, setPublicationEnd, setPositionsList, setLoading, collapseDockPanel, expandDockPanel, activateDockPanel, deactivateDockPanel, setDockPanelWidth } from '../../chunk-ACBBACML.mjs';
4
4
  export { ThReduxPreferencesAdapter, ThStoreProvider, actionsSlice, activateDockPanel, collapseDockPanel, deactivateDockPanel, dockAction, expandDockPanel, initialSettingsState, makeStore, preferencesSlice, publicationSlice, readerSlice, setActionOpen, setArrows, setBreakpoint, setColorScheme, setColumnCount, setContrast, setDirection, setDockPanelWidth, setFXL, setFontFamily, setFontSize, setFontWeight, setForcedColors, setFullscreen, setHovering, setHyphens, setImmersive, setL10n, setLetterSpacing, setLineHeight, setLineLength, setLoading, setMonochrome, setOverflow, setParagraphIndent, setParagraphSpacing, setPlatformModifier, setPositionsList, setProgressionFormat, setPublicationEnd, setPublicationStart, setPublisherStyles, setRTL, setReducedMotion, setReducedTransparency, setRunningHeadFormat, setScroll, setScrollAffordance, setScrollAffordances, setSettingsContainer, setSpacingPreset, setTextAlign, setTextNormalization, setTheme, setTimeline, setTocEntry, setTocTree, setUI, setWordSpacing, settingsSlice, themeSlice, toggleActionOpen, toggleImmersive, updateFromPreferences, useAppDispatch, useAppSelector, useAppStore } from '../../chunk-ACBBACML.mjs';
5
5
  import { usePreferenceKeys, usePreferences, buildThemeObject, defaultSpacingSettingsMain, defaultSpacingSettingsSubpanel, defaultFontFamilyOptions, defaultTextSettingsSubpanel, defaultTextSettingsMain, useTheming, defaultPreferences, ThPreferencesProvider } from '../../chunk-DFDBT76F.mjs';
6
6
  export { ThPreferencesProvider, usePreferences, useTheming } from '../../chunk-DFDBT76F.mjs';
7
- import { ThRadioGroup, ThSwitch, ThSlider, ThNumberField, ThSettingsWrapper, ThDropdown, ThActionButton, ThMenu, ThCollapsibleActionsBar, ThMenuItem, ThPopover, ThContainerHeader, ThNavigationButton, ThContainerBody, ThBottomSheet, ThCloseButton, ThModal, ThDockedPanel, ThTypedComponentRenderer, useActions, ThForm, ThFormNumberField, ThFormSearchField, ThLoader, ThGrid, ThInteractiveOverlay, ThHeader, ThFooter, ThLink, ThLibrary, ThHome, ThBackArrow, ThRunningHead, ThPagination, ThProgression } from '../../chunk-A3CHUZC2.mjs';
7
+ import { ThRadioGroup, ThSwitch, ThSlider, ThNumberField, ThSettingsWrapper, ThDropdown, ThActionButton, ThMenu, ThCollapsibleActionsBar, ThMenuItem, ThPopover, ThContainerHeader, ThNavigationButton, ThContainerBody, ThBottomSheet, ThCloseButton, ThModal, ThDockedPanel, ThTypedComponentRenderer, useActions, ThForm, ThFormNumberField, ThFormSearchField, ThLoader, ThGrid, ThInteractiveOverlay, ThHeader, ThFooter, ThLink, ThLibrary, ThHome, ThBackArrow, ThRunningHead, ThPagination, ThProgression } from '../../chunk-SVU2VLMW.mjs';
8
8
  import '../../chunk-MLEYTQGK.mjs';
9
9
  import { makeBreakpointsMap, isKeyboardTriggered, isActiveElement, isInteractiveElement } from '../../chunk-SQUC6VZK.mjs';
10
10
  export { isActiveElement, isInteractiveElement, isKeyboardTriggered, makeBreakpointsMap } from '../../chunk-SQUC6VZK.mjs';
@@ -19,7 +19,7 @@ import '../../chunk-NQ2ZSGCX.mjs';
19
19
  import { usePrevious } from '../../chunk-YZ73DHRU.mjs';
20
20
  import { ThDockingTypes, ThSheetTypes, ThRunningHeadFormat, ThProgressionFormat } from '../../chunk-O6E2A4KD.mjs';
21
21
  import { __toESM } from '../../chunk-3QS3WKRC.mjs';
22
- import React54, { createContext, useRef, useCallback, useState, useMemo, useEffect, useContext, isValidElement, cloneElement } from 'react';
22
+ import React54, { createContext, useState, useEffect, useRef, useCallback, useMemo, useContext, isValidElement, cloneElement } from 'react';
23
23
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
24
24
  import settingsStyles4 from '../../settings.module-O55ZM6BK.module.css';
25
25
  import { Radio, ListBox, ListBoxItem, Text, useFilter, Tree, TreeItem, TreeItemContent, Button, Collection, Link, Keyboard, Toolbar } from 'react-aria-components';
@@ -145,19 +145,25 @@ var StatefulRadioGroup = ({
145
145
  value,
146
146
  children,
147
147
  onChange,
148
+ onEscape,
148
149
  ...props
149
150
  }) => {
150
151
  const itemsRef = useRef(items || []);
151
152
  const wrapperRef = useRef(null);
152
153
  const direction = useAppSelector((state) => state.reader.direction);
153
154
  const isRTL = direction === "rtl" /* rtl */;
155
+ const settingsContainer = useAppSelector((state) => state.reader.settingsContainer);
154
156
  const dispatch = useAppDispatch();
155
157
  const onEscapeCallback = useCallback(() => {
156
- dispatch(setActionOpen({
157
- key: "settings" /* settings */,
158
- isOpen: false
159
- }));
160
- }, [dispatch]);
158
+ if (settingsContainer !== "initial" /* initial */) {
159
+ dispatch(setSettingsContainer("initial" /* initial */));
160
+ } else {
161
+ dispatch(setActionOpen({
162
+ key: "settings" /* settings */,
163
+ isOpen: false
164
+ }));
165
+ }
166
+ }, [dispatch, settingsContainer]);
161
167
  const onFocusCallback = useCallback((value2) => {
162
168
  const element = wrapperRef.current?.querySelector(`[value="${value2}"]`);
163
169
  if (element) element.focus();
@@ -169,7 +175,7 @@ var StatefulRadioGroup = ({
169
175
  onChange: onChange || (() => {
170
176
  }),
171
177
  isRTL,
172
- onEscape: onEscapeCallback,
178
+ onEscape: onEscape || onEscapeCallback,
173
179
  onFocus: onFocusCallback
174
180
  });
175
181
  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
@@ -5371,6 +5377,6 @@ var usePublication = ({
5371
5377
  };
5372
5378
  };
5373
5379
 
5374
- export { DefaultImage, PublicationGrid, StatefulActionIcon, StatefulBottomSheet, StatefulCollapsibleActionsBar, StatefulColumns, StatefulDockedSheet, StatefulFontFamily, StatefulFullScreenSheet, StatefulFullscreenTrigger, StatefulGroupWrapper, StatefulHyphens, StatefulJumpToPositionContainer, StatefulJumpToPositionTrigger, StatefulLayout, StatefulLetterSpacing, StatefulLineHeight, StatefulLoader, StatefulNumberField, StatefulOverflowMenu, StatefulOverflowMenuItem, StatefulParagraphIndent, StatefulParagraphSpacing, StatefulPopoverSheet, StatefulPreferencesProvider, StatefulPublisherStyles, StatefulRadioGroup, StatefulReader, StatefulSettingsContainer, StatefulSettingsTrigger, StatefulSheetWrapper, StatefulSlider, StatefulSpacingGroup, StatefulSpacingGroupContainer, StatefulSpacingPresets, StatefulSwitch, StatefulTextAlign, StatefulTextGroup, StatefulTextGroupContainer, StatefulTextNormalize, StatefulTheme, StatefulTocContainer, StatefulTocTrigger, StatefulWordSpacing, StatefulZoom, UnstableStatefulFontWeight, createDefaultPlugin, useDocking, useLineHeight, usePublication, useSpacingPresets };
5380
+ export { DefaultImage, PublicationGrid, StatefulActionIcon, StatefulBottomSheet, StatefulCollapsibleActionsBar, StatefulColumns, StatefulDockedSheet, StatefulFontFamily, StatefulFullScreenSheet, StatefulFullscreenTrigger, StatefulGroupWrapper, StatefulHyphens, StatefulJumpToPositionContainer, StatefulJumpToPositionTrigger, StatefulLayout, StatefulLetterSpacing, StatefulLineHeight, StatefulLoader, StatefulNumberField, StatefulOverflowMenu, StatefulOverflowMenuItem, StatefulParagraphIndent, StatefulParagraphSpacing, StatefulPopoverSheet, StatefulPreferencesProvider, StatefulPublisherStyles, StatefulRadioGroup, StatefulReader, StatefulSettingsContainer, StatefulSettingsTrigger, StatefulSheetWrapper, StatefulSlider, StatefulSpacingGroup, StatefulSpacingGroupContainer, StatefulSpacingPresets, StatefulSwitch, StatefulTextAlign, StatefulTextGroup, StatefulTextGroupContainer, StatefulTextNormalize, StatefulTheme, StatefulTocContainer, StatefulTocTrigger, StatefulWordSpacing, StatefulZoom, UnstableStatefulFontWeight, createDefaultPlugin, useDocking, useGridNavigation, useGridTemplate, useLineHeight, usePublication, useSpacingPresets };
5375
5381
  //# sourceMappingURL=index.mjs.map
5376
5382
  //# sourceMappingURL=index.mjs.map