@edrlab/thorium-web 1.0.0-beta.5 → 1.0.0-beta.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.
Files changed (34) hide show
  1. package/dist/{actionsReducer-D4Mphfuv.d.mts → actionsReducer-ZN1H6lWp.d.mts} +1 -1
  2. package/dist/backLink.module-QFOMD4RA.module.css +36 -0
  3. package/dist/{chunk-SDVDRPT5.mjs → chunk-BD5MZ3QC.mjs} +101 -18
  4. package/dist/chunk-BD5MZ3QC.mjs.map +1 -0
  5. package/dist/{chunk-RQFPGXWN.mjs → chunk-HUMV6I5L.mjs} +9 -3
  6. package/dist/chunk-HUMV6I5L.mjs.map +1 -0
  7. package/dist/{chunk-OCASVHBV.mjs → chunk-MS2TXXYX.mjs} +3 -3
  8. package/dist/{chunk-OCASVHBV.mjs.map → chunk-MS2TXXYX.mjs.map} +1 -1
  9. package/dist/{chunk-NOV43IG4.mjs → chunk-SN7KBNGK.mjs} +3 -3
  10. package/dist/{chunk-NOV43IG4.mjs.map → chunk-SN7KBNGK.mjs.map} +1 -1
  11. package/dist/{chunk-TXILKP4F.mjs → chunk-SNRTM7N3.mjs} +8 -2
  12. package/dist/chunk-SNRTM7N3.mjs.map +1 -0
  13. package/dist/components/Epub/index.d.mts +7 -7
  14. package/dist/components/Epub/index.mjs +121 -38
  15. package/dist/components/Epub/index.mjs.map +1 -1
  16. package/dist/{const-IAfi9t_g.d.mts → const-PMmwYJND.d.mts} +19 -3
  17. package/dist/core/Components/index.d.mts +33 -5
  18. package/dist/core/Components/index.mjs +2 -2
  19. package/dist/core/Helpers/index.d.mts +2 -2
  20. package/dist/core/Helpers/index.mjs +2 -2
  21. package/dist/core/Hooks/index.d.mts +2 -2
  22. package/dist/core/Hooks/index.mjs +1 -1
  23. package/dist/{enums-DqGQ66r1.d.mts → enums-zr26wZEt.d.mts} +6 -1
  24. package/dist/lib/index.d.mts +5 -5
  25. package/dist/lib/index.mjs +2 -2
  26. package/dist/preferences/index.d.mts +6 -6
  27. package/dist/preferences/index.mjs +2 -2
  28. package/dist/{readerHeader.module-K7OLOIJP.module.css → readerHeader.module-RNGQFLVS.module.css} +12 -6
  29. package/dist/{useBreakpoints-BQaiwecQ.d.mts → useBreakpoints-D4hBQiGq.d.mts} +1 -1
  30. package/dist/{usePreferences-BMyBhq7F.d.mts → usePreferences-DN1ACFM8.d.mts} +1 -1
  31. package/package.json +1 -1
  32. package/dist/chunk-RQFPGXWN.mjs.map +0 -1
  33. package/dist/chunk-SDVDRPT5.mjs.map +0 -1
  34. package/dist/chunk-TXILKP4F.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import * as _reduxjs_toolkit from '@reduxjs/toolkit';
2
- import { a as ThDockingKeys } from './enums-DqGQ66r1.mjs';
2
+ import { a as ThDockingKeys } from './enums-zr26wZEt.mjs';
3
3
 
4
4
  type PrimitiveType = number | string | boolean;
5
5
  /** Object types that should never be mapped */
@@ -0,0 +1,36 @@
1
+ .backLink {
2
+ display: block;
3
+ box-sizing: content-box;
4
+ padding: calc(var(--icon-size, 24px) * (1/4));
5
+ text-align: start;
6
+ border-radius: var(--layout-radius);
7
+ max-width: 100%;
8
+ height: var(--icon-size, 24px);
9
+ }
10
+
11
+ .backLink svg {
12
+ fill: var(--theme-text);
13
+ max-width: 100%;
14
+ height: 100%;
15
+ }
16
+
17
+ .backLink img {
18
+ max-width: 100%;
19
+ height: 100%;
20
+ }
21
+
22
+ .backLink[data-hovered] {
23
+ background-color: var(--theme-hover);
24
+ }
25
+
26
+ .backLink[data-focus-visible] {
27
+ outline: 2px solid var(--theme-focus);
28
+ }
29
+
30
+ .backLink[data-disabled] {
31
+ color: var(--theme-disable)
32
+ }
33
+
34
+ .backLink[data-disabled] svg {
35
+ fill: var(--theme-disable);
36
+ }
@@ -1,8 +1,8 @@
1
1
  import { useCollapsibility } from './chunk-MLEYTQGK.mjs';
2
2
  import { useObjectRef, FocusScope, OverlayProvider, useDialog, useOverlay, useModal } from 'react-aria';
3
- import { Toolbar, TooltipTrigger, Button, Tooltip, MenuTrigger, Popover, Menu, Dialog, Modal, Heading, Form, NumberField, Label, Input, Text, TextField, FieldError, SearchField, MenuItem, Keyboard, Group, RadioGroup, Radio, Slider, SliderOutput, SliderTrack, SliderThumb, Switch, SelectValue, Select, ListBox, ListBoxItem } from 'react-aria-components';
3
+ import { Toolbar, TooltipTrigger, Button, Tooltip, MenuTrigger, Popover, Menu, Dialog, Modal, Heading, Form, NumberField, Label, Input, Text, TextField, FieldError, SearchField, Link, MenuItem, Keyboard, Group, RadioGroup, Radio, Slider, SliderOutput, SliderTrack, SliderThumb, Switch, SelectValue, Select, ListBox, ListBoxItem } from 'react-aria-components';
4
4
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
5
- import React19, { useRef, Fragment as Fragment$1, useEffect, useMemo, createElement, useState, useCallback } from 'react';
5
+ import React21, { useRef, Fragment as Fragment$1, useEffect, useMemo, createElement, useState, useCallback } from 'react';
6
6
  import { createPortal } from 'react-dom';
7
7
  import { useOverlayTriggerState } from 'react-stately';
8
8
  import { Sheet } from 'react-modal-sheet';
@@ -174,7 +174,7 @@ var ThMenu = ({
174
174
  {
175
175
  ...compounds?.menuTrigger,
176
176
  children: [
177
- compounds?.button && React19.isValidElement(compounds.button) ? compounds.button : /* @__PURE__ */ jsx(
177
+ compounds?.button && React21.isValidElement(compounds.button) ? compounds.button : /* @__PURE__ */ jsx(
178
178
  ThMenuButton,
179
179
  {
180
180
  ref: buttonRef,
@@ -241,7 +241,7 @@ var ThCollapsibleActionsBar = ({
241
241
  Target && /* @__PURE__ */ jsx(Target, { triggerRef: resolvedRef }, `${key}-container`)
242
242
  ] }, key)
243
243
  ),
244
- React19.isValidElement(compounds?.menu) ? React19.cloneElement(compounds.menu, {
244
+ React21.isValidElement(compounds?.menu) ? React21.cloneElement(compounds.menu, {
245
245
  ...compounds.menu.props,
246
246
  id,
247
247
  triggerRef: resolvedRef,
@@ -311,7 +311,7 @@ var ThNavigationButton = ({
311
311
  children,
312
312
  ...props
313
313
  }) => {
314
- const fallBackChildren = /* @__PURE__ */ jsxs(React19.Fragment, { children: [
314
+ const fallBackChildren = /* @__PURE__ */ jsxs(React21.Fragment, { children: [
315
315
  direction === "right" ? /* @__PURE__ */ jsx(arrow_forward_default, { "aria-hidden": "true", focusable: "false" }) : /* @__PURE__ */ jsx(arrow_back_default, { "aria-hidden": "true", focusable: "false" }),
316
316
  label
317
317
  ] });
@@ -575,7 +575,7 @@ var ThBottomSheetContainer = ({
575
575
  const [Header, Body] = useMemo(() => {
576
576
  const header = children.find((child) => child.type === ThContainerHeader);
577
577
  const body = children.find((child) => child.type === ThContainerBody);
578
- const modifiedHeader = header ? React19.cloneElement(header, {
578
+ const modifiedHeader = header ? React21.cloneElement(header, {
579
579
  ...header.props,
580
580
  compounds: {
581
581
  ...header.props.compounds,
@@ -709,7 +709,7 @@ var ThTypedComponentRenderer = ({
709
709
  if (!Component) {
710
710
  throw new Error(`Unsupported type: ${type}`);
711
711
  }
712
- return React19.createElement(Component, props, children);
712
+ return React21.createElement(Component, props, children);
713
713
  };
714
714
  var ThForm = ({
715
715
  ref,
@@ -725,7 +725,7 @@ var ThForm = ({
725
725
  ...props,
726
726
  children: [
727
727
  children,
728
- compounds?.button && React19.isValidElement(compounds.button) ? compounds.button : /* @__PURE__ */ jsx(
728
+ compounds?.button && React21.isValidElement(compounds.button) ? compounds.button : /* @__PURE__ */ jsx(
729
729
  Button,
730
730
  {
731
731
  ...compounds?.button,
@@ -798,13 +798,96 @@ var ThFormSearchField = ({
798
798
  label && /* @__PURE__ */ jsx(Label, { ...compounds?.label, children: label }),
799
799
  errorMessage && /* @__PURE__ */ jsx(FieldError, { ...compounds?.fieldError, children: errorMessage }),
800
800
  /* @__PURE__ */ jsx(Input, { ...compounds?.input }),
801
- compounds?.searchIcon && React19.isValidElement(compounds.searchIcon) ? compounds.searchIcon : /* @__PURE__ */ jsx("div", { ...compounds?.searchIcon, children: /* @__PURE__ */ jsx(search_default, { "aria-hidden": "true", focusable: "false" }) }),
802
- compounds?.clearButton && React19.isValidElement(compounds.clearButton) ? compounds.clearButton : /* @__PURE__ */ jsx(ThCloseButton, { ...compounds?.clearButton, type: "button" }),
801
+ compounds?.searchIcon && React21.isValidElement(compounds.searchIcon) ? compounds.searchIcon : /* @__PURE__ */ jsx("div", { ...compounds?.searchIcon, children: /* @__PURE__ */ jsx(search_default, { "aria-hidden": "true", focusable: "false" }) }),
802
+ compounds?.clearButton && React21.isValidElement(compounds.clearButton) ? compounds.clearButton : /* @__PURE__ */ jsx(ThCloseButton, { ...compounds?.clearButton, type: "button" }),
803
803
  compounds?.description && /* @__PURE__ */ jsx(Text, { slot: "description", children: compounds?.description })
804
804
  ] }) })
805
805
  }
806
806
  ) });
807
807
  };
808
+ var ThLink = ({
809
+ ref,
810
+ href,
811
+ children,
812
+ compounds,
813
+ ...props
814
+ }) => {
815
+ if (compounds) {
816
+ return /* @__PURE__ */ jsxs(
817
+ TooltipTrigger,
818
+ {
819
+ ...compounds.tooltipTrigger,
820
+ children: [
821
+ /* @__PURE__ */ jsx(
822
+ Link,
823
+ {
824
+ href,
825
+ ref,
826
+ ...props,
827
+ children
828
+ }
829
+ ),
830
+ /* @__PURE__ */ jsx(
831
+ Tooltip,
832
+ {
833
+ arrowBoundaryOffset: 0,
834
+ ...compounds.tooltip,
835
+ children: compounds.label
836
+ }
837
+ )
838
+ ]
839
+ }
840
+ );
841
+ } else {
842
+ return /* @__PURE__ */ jsx(
843
+ Link,
844
+ {
845
+ href,
846
+ ref,
847
+ ...props,
848
+ children
849
+ }
850
+ );
851
+ }
852
+ };
853
+ var SvgHome = (props) => /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 -960 960 960", width: "24px", fill: "Inherit", ...props, children: /* @__PURE__ */ jsx("path", { d: "M240-200h120v-240h240v240h120v-360L480-740 240-560v360Zm-80 80v-480l320-240 320 240v480H520v-240h-80v240H160Zm320-350Z" }) });
854
+ var home_default = SvgHome;
855
+ var ThHome = ({
856
+ ref,
857
+ href,
858
+ "aria-label": ariaLabel,
859
+ ...props
860
+ }) => {
861
+ return /* @__PURE__ */ jsx(
862
+ ThLink,
863
+ {
864
+ href,
865
+ ref,
866
+ "aria-label": ariaLabel,
867
+ ...props,
868
+ children: /* @__PURE__ */ jsx(home_default, { "aria-hidden": "true", focusable: "false" })
869
+ }
870
+ );
871
+ };
872
+ var SvgNewsstand = (props) => /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 -960 960 960", width: "24px", fill: "Inherit", ...props, children: /* @__PURE__ */ jsx("path", { d: "M80-160v-80h800v80H80Zm80-160v-320h80v320h-80Zm160 0v-480h80v480h-80Zm160 0v-480h80v480h-80Zm280 0L600-600l70-40 160 280-70 40Z" }) });
873
+ var newsstand_default = SvgNewsstand;
874
+ var ThLibrary = ({
875
+ ref,
876
+ href,
877
+ "aria-label": ariaLabel,
878
+ ...props
879
+ }) => {
880
+ return /* @__PURE__ */ jsx(
881
+ ThLink,
882
+ {
883
+ href,
884
+ ref,
885
+ "aria-label": ariaLabel,
886
+ ...props,
887
+ children: /* @__PURE__ */ jsx(newsstand_default, { "aria-hidden": "true", focusable: "false" })
888
+ }
889
+ );
890
+ };
808
891
  var ThMenuItem = ({
809
892
  ref,
810
893
  id,
@@ -1056,7 +1139,7 @@ var ThRadioGroup = ({
1056
1139
  children,
1057
1140
  ...props
1058
1141
  }) => {
1059
- if (React19.isValidElement(children)) {
1142
+ if (React21.isValidElement(children)) {
1060
1143
  return /* @__PURE__ */ jsxs(
1061
1144
  RadioGroup,
1062
1145
  {
@@ -1083,7 +1166,7 @@ var ThRadioGroup = ({
1083
1166
  value: item.value,
1084
1167
  isDisabled: item.isDisabled
1085
1168
  },
1086
- /* @__PURE__ */ jsxs(React19.Fragment, { children: [
1169
+ /* @__PURE__ */ jsxs(React21.Fragment, { children: [
1087
1170
  item.icon && /* @__PURE__ */ jsx(item.icon, { "aria-hidden": "true", focusable: "false" }),
1088
1171
  /* @__PURE__ */ jsx("span", { ...compounds?.radioLabel, children: item.label })
1089
1172
  ] })
@@ -1163,7 +1246,7 @@ var ThDropdown = ({
1163
1246
  compounds,
1164
1247
  ...props
1165
1248
  }) => {
1166
- if (!items && !React19.isValidElement(compounds?.listbox)) {
1249
+ if (!items && !React21.isValidElement(compounds?.listbox)) {
1167
1250
  return null;
1168
1251
  }
1169
1252
  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
@@ -1173,12 +1256,12 @@ var ThDropdown = ({
1173
1256
  ...props,
1174
1257
  children: [
1175
1258
  label && /* @__PURE__ */ jsx(Label, { ...compounds?.label, children: label }),
1176
- compounds?.button && React19.isValidElement(compounds.button) ? compounds.button : /* @__PURE__ */ jsx(ThDropdownButton, { ...compounds?.button }),
1259
+ compounds?.button && React21.isValidElement(compounds.button) ? compounds.button : /* @__PURE__ */ jsx(ThDropdownButton, { ...compounds?.button }),
1177
1260
  /* @__PURE__ */ jsx(
1178
1261
  Popover,
1179
1262
  {
1180
1263
  ...compounds?.popover,
1181
- children: compounds?.listbox && React19.isValidElement(compounds.listbox) ? compounds.listbox : /* @__PURE__ */ jsx(
1264
+ children: compounds?.listbox && React21.isValidElement(compounds.listbox) ? compounds.listbox : /* @__PURE__ */ jsx(
1182
1265
  ListBox,
1183
1266
  {
1184
1267
  items,
@@ -1284,6 +1367,6 @@ var ThGrid = ({
1284
1367
  );
1285
1368
  };
1286
1369
 
1287
- export { ThActionButton, ThActionsBar, ThActionsTriggerVariant, ThBottomSheet, ThCloseButton, ThCollapsibleActionsBar, ThContainerBody, ThContainerHeader, ThContainerHeaderWithClose, ThContainerHeaderWithPrevious, ThDockedPanel, ThDragIndicatorButton, ThDropdown, ThDropdownButton, ThFooter, ThForm, ThFormNumberField, ThFormSearchField, ThFormTextField, ThGrid, ThHeader, ThInteractiveOverlay, ThLoader, ThMenu, ThMenuButton, ThMenuItem, ThModal, ThNavigationButton, ThNumberField, ThPagination, ThPopover, ThProgression, ThRadioGroup, ThRunningHead, ThSettingsWrapper, ThSettingsWrapperButton, ThSlider, ThSwitch, ThTypedComponentRenderer, useActions, useFirstFocusable };
1288
- //# sourceMappingURL=chunk-SDVDRPT5.mjs.map
1289
- //# sourceMappingURL=chunk-SDVDRPT5.mjs.map
1370
+ export { ThActionButton, ThActionsBar, ThActionsTriggerVariant, ThBottomSheet, ThCloseButton, ThCollapsibleActionsBar, ThContainerBody, ThContainerHeader, ThContainerHeaderWithClose, ThContainerHeaderWithPrevious, 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, ThSettingsWrapper, ThSettingsWrapperButton, ThSlider, ThSwitch, ThTypedComponentRenderer, useActions, useFirstFocusable };
1371
+ //# sourceMappingURL=chunk-BD5MZ3QC.mjs.map
1372
+ //# sourceMappingURL=chunk-BD5MZ3QC.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/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/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/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","element","Popover","Dialog","useEffect","FocusScope","Label","Input","Text","FieldError","TooltipTrigger","Tooltip","NumberField","Heading","createElement"],"mappings":"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","file":"chunk-BD5MZ3QC.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 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 } from \"react\";\n\nexport interface UseFirstFocusableProps {\n withinRef?: React.RefObject<HTMLElement | null>;\n fallbackRef?: React.RefObject<HTMLElement | null>;\n scrollerRef?: React.RefObject<HTMLElement | null>;\n trackedState?: boolean;\n autoFocus?: boolean;\n updateState?: unknown;\n}\n\nexport const useFirstFocusable = (props?: UseFirstFocusableProps) => {\n const { withinRef, fallbackRef, scrollerRef, trackedState, autoFocus = true, updateState } = props ?? {};\n\n const focusableElement = useRef<HTMLElement | null>(null);\n const attemptsRef = useRef(0);\n\n useEffect(() => {\n if (!withinRef || !trackedState) return;\n\n attemptsRef.current = 0;\n\n const tryFocus = () => {\n const targetElement = withinRef.current && withinRef.current.firstElementChild || withinRef.current;\n const selectedEl = targetElement && targetElement.querySelector(\"[data-selected]\");\n\n let firstFocusable: HTMLElement | null = null;\n\n if (selectedEl === null) {\n const inputs = targetElement && targetElement.querySelectorAll(\"input\");\n const input = inputs && Array.from(inputs).find((input: HTMLInputElement) => !input.disabled && input.tabIndex >= 0);\n firstFocusable = input as HTMLElement | null;\n } else if (selectedEl instanceof HTMLElement) {\n firstFocusable = selectedEl;\n }\n\n if (!firstFocusable) {\n const focusableElements = withinRef.current && withinRef.current.querySelectorAll(\"a, button, input, select\");\n const element = focusableElements && Array.from(focusableElements).find(element => {\n const htmlElement = element as HTMLAnchorElement | HTMLButtonElement | HTMLInputElement | HTMLSelectElement;\n if (htmlElement instanceof HTMLAnchorElement) return true;\n return !htmlElement.disabled && htmlElement.tabIndex >= 0;\n });\n firstFocusable = element as HTMLElement | null;\n }\n\n if (firstFocusable) {\n if (autoFocus) {\n firstFocusable.focus({ preventScroll: true });\n if (scrollerRef?.current) {\n scrollerRef.current.scrollTop = 0;\n } else {\n withinRef.current!.scrollTop = 0;\n }\n }\n focusableElement.current = firstFocusable;\n } else {\n attemptsRef.current++;\n if (attemptsRef.current < 3) {\n setTimeout(tryFocus, 50);\n } else {\n if (fallbackRef?.current) {\n if (autoFocus) {\n fallbackRef.current.focus({ preventScroll: true });\n }\n focusableElement.current = fallbackRef.current;\n }\n }\n }\n };\n\n tryFocus();\n\n return () => {\n attemptsRef.current = 0;\n };\n }, [withinRef, fallbackRef, scrollerRef, trackedState, autoFocus, updateState]);\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 useFirstFocusable(focusOptions);\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 useFirstFocusable(focusOptions);\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 useFirstFocusable(focusOptions);\n\n return (\n <>\n { isOpen && portal && createPortal(\n <FocusScope \n contain={ false }\n autoFocus={ focusOptions?.autoFocus ?? true } \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 CSSProperties,\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\";\nimport { useFirstFocusable, UseFirstFocusableProps } from \"../hooks/useFirstFocusable\";\n\nimport { ThDragIndicatorButton, ThDragIndicatorButtonProps } from \"./ThDragIndicatorButton\";\n\nimport { Sheet, 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\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 content?: React.ComponentProps<typeof Sheet.Content>,\n scroller?: React.ComponentProps<typeof Sheet.Scroller>,\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 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 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 useModal();\n\n const fullHeightIntersectionCallback = useCallback((entries: IntersectionObserverEntry[]) => {\n entries.forEach( (entry) => {\n if (\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]);\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 = focusOptions ? {\n ...focusOptions,\n scrollerRef: scrollerRef\n } : undefined;\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 { ...compounds?.content }\n // Motion being picky with style on bundling so we have to cast like this… \n { ...(isDraggable ? { style: { paddingBottom: (sheetRef.current as SheetRef)?.y }} as { [key: string]: any } : {} )}\n >\n <Sheet.Scroller \n ref={ scrollerRef }\n { ...compounds?.scroller }\n // This is enabled by default since 4.4 but breaks scroll on focus…\n autoPadding={ false }\n >\n { Body }\n </Sheet.Scroller>\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 // Otherwise buggy with prefersReducedMotion\n // as the bottom sheet won’t be displayed on mount\n style={{\n zIndex: isOpen ? \"999999\" : \"-1\",\n visibility: isOpen ? \"visible\" : \"hidden\"\n } as CSSProperties }\n detent={ detent }\n snapPoints={ snapPoints }\n { ...props }\n >\n <OverlayProvider>\n <FocusScope \n contain={ true } \n autoFocus={ focusOptions?.autoFocus ?? true } \n restoreFocus={ true }\n >\n <ThBottomSheetContainer \n sheetRef={ resolvedRef } \n sheetState={ sheetState } \n isDraggable= { isDraggable }\n isKeyboardDismissDisabled={ isKeyboardDismissDisabled }\n focusOptions={ focusOptions }\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};","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, { useEffect } from \"react\";\n\nimport { HTMLAttributesWithRef } from \"../customTypes\";\n\nexport interface ThRunningHeadProps extends HTMLAttributesWithRef<HTMLHeadingElement> {\n ref?: React.RefObject<HTMLHeadingElement>\n label: string;\n syncDocTitle?: boolean; \n}\n\nexport const ThRunningHead = ({ \n ref,\n label,\n syncDocTitle,\n ...props\n}: ThRunningHeadProps) => {\n\n useEffect(() => {\n if (syncDocTitle && label) document.title = label;\n }, [syncDocTitle, label])\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;","\"use client\";\n\nimport { ComponentType, SVGProps } from \"react\";\n\nimport { WithRef } from \"../customTypes\";\n\nimport AddIcon from \"./assets/icons/add.svg\";\nimport RemoveIcon from \"./assets/icons/remove.svg\";\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\nexport interface ThNumberFieldProps extends Omit<NumberFieldProps, \"minValue\" | \"maxValue\" | \"decrementAriaLabel\" | \"incrementAriaLabel\"> {\n ref?: React.ForwardedRef<HTMLInputElement>;\n label?: 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 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?: WithRef<InputProps, HTMLInputElement>;\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}\n\nexport const ThNumberField = ({\n ref,\n label,\n range,\n isVirtualKeyboardDisabled,\n steppers,\n compounds,\n ...props\n}: ThNumberFieldProps) => {\n\n return (\n <NumberField \n ref={ ref }\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 />\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 );\n};","\"use client\";\n\nimport React, { ComponentType, SVGProps } 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 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 ...props\n}: ThRadioGroupProps) => {\n if (React.isValidElement(children)) {\n return (\n <RadioGroup \n ref={ ref }\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 { ...props }\n >\n { label && <Label { ...compounds?.label }>\n { label }\n </Label> \n }\n <div { ...compounds?.wrapper }>\n { items.map((item, index) => (\n <Radio \n { ...compounds?.radio }\n key={ index }\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 { WithRef } from \"../customTypes\";\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\nexport interface ThSliderProps extends Omit<SliderProps, \"minValue\" | \"maxValue\"> {\n ref?: React.ForwardedRef<HTMLDivElement>;\n label?: string;\n range: number[];\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 slider output component. See `SliderOutputProps` for more information.\n */\n output?: WithRef<SliderOutputProps, HTMLOutputElement>;\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}\n\nexport const ThSlider = ({\n ref,\n label,\n range,\n compounds,\n ...props\n}: ThSliderProps) => {\n return(\n <>\n <Slider \n ref={ ref }\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 <SliderTrack { ...compounds?.track }>\n <SliderThumb { ...compounds?.thumb } />\n </SliderTrack>\n </Slider>\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};"]}
@@ -25,6 +25,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  ));
26
26
 
27
27
  // src/preferences/models/enums.ts
28
+ var ThBackLinkVariant = /* @__PURE__ */ ((ThBackLinkVariant2) => {
29
+ ThBackLinkVariant2["home"] = "home";
30
+ ThBackLinkVariant2["library"] = "library";
31
+ ThBackLinkVariant2["custom"] = "custom";
32
+ return ThBackLinkVariant2;
33
+ })(ThBackLinkVariant || {});
28
34
  var ThLayoutUI = /* @__PURE__ */ ((ThLayoutUI2) => {
29
35
  ThLayoutUI2["stacked"] = "stacked-ui";
30
36
  ThLayoutUI2["layered"] = "layered-ui";
@@ -153,6 +159,6 @@ var ThLineHeightOptions = /* @__PURE__ */ ((ThLineHeightOptions2) => {
153
159
  return ThLineHeightOptions2;
154
160
  })(ThLineHeightOptions || {});
155
161
 
156
- export { ThActionsKeys, ThBreakpoints, ThDockingKeys, ThDockingTypes, ThLayoutDirection, ThLayoutOptions, ThLayoutUI, ThLineHeightOptions, ThSettingsContainerKeys, ThSettingsKeys, ThSettingsRangeVariant, ThSheetHeaderVariant, ThSheetTypes, ThSpacingSettingsKeys, ThTextAlignOptions, ThTextSettingsKeys, ThThemeKeys, __commonJS, __toESM };
157
- //# sourceMappingURL=chunk-RQFPGXWN.mjs.map
158
- //# sourceMappingURL=chunk-RQFPGXWN.mjs.map
162
+ export { ThActionsKeys, ThBackLinkVariant, ThBreakpoints, ThDockingKeys, ThDockingTypes, ThLayoutDirection, ThLayoutOptions, ThLayoutUI, ThLineHeightOptions, ThSettingsContainerKeys, ThSettingsKeys, ThSettingsRangeVariant, ThSheetHeaderVariant, ThSheetTypes, ThSpacingSettingsKeys, ThTextAlignOptions, ThTextSettingsKeys, ThThemeKeys, __commonJS, __toESM };
163
+ //# sourceMappingURL=chunk-HUMV6I5L.mjs.map
164
+ //# sourceMappingURL=chunk-HUMV6I5L.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/preferences/models/enums.ts"],"names":["ThBackLinkVariant","ThLayoutUI","ThActionsKeys","ThBreakpoints","ThDockingKeys","ThDockingTypes","ThSettingsKeys","ThTextSettingsKeys","ThSpacingSettingsKeys","ThSettingsContainerKeys","ThSettingsRangeVariant","ThSheetTypes","ThSheetHeaderVariant","ThThemeKeys","ThLayoutDirection","ThLayoutOptions","ThTextAlignOptions","ThLineHeightOptions"],"mappings":"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","file":"chunk-HUMV6I5L.mjs","sourcesContent":["\"use client\";\n\nexport enum ThBackLinkVariant {\n home = \"home\",\n library = \"library\",\n custom = \"custom\"\n}\n\nexport enum ThLayoutUI {\n stacked = \"stacked-ui\",\n layered = \"layered-ui\"\n}\n\nexport enum ThActionsKeys {\n fullscreen = \"fullscreen\",\n jumpToPosition = \"jumpToPosition\",\n settings = \"settings\",\n toc = \"toc\"\n}\n\nexport enum ThBreakpoints {\n compact = \"compact\",\n medium = \"medium\",\n expanded = \"expanded\",\n large = \"large\",\n xLarge = \"xLarge\"\n}\n\nexport enum ThDockingKeys {\n start = \"dockingStart\",\n end = \"dockingEnd\",\n transient = \"dockingTransient\"\n}\n\nexport enum ThDockingTypes {\n none = \"none\",\n both = \"both\",\n start = \"start\",\n end = \"end\"\n}\n\nexport enum ThSettingsKeys {\n columns = \"columns\",\n fontFamily = \"fontFamily\",\n fontWeight = \"fontWeight\",\n hyphens = \"hyphens\",\n layout = \"layout\",\n letterSpacing = \"letterSpacing\",\n lineHeight = \"lineHeight\",\n paragraphIndent = \"paragraphIndent\",\n paragraphSpacing = \"paragraphSpacing\",\n publisherStyles = \"publisherStyles\",\n spacingGroup = \"spacingGroup\",\n textAlign = \"textAlign\",\n textGroup = \"textGroup\",\n textNormalize = \"textNormalize\",\n theme = \"theme\",\n wordSpacing = \"wordSpacing\",\n zoom = \"zoom\"\n}\n\nexport enum ThTextSettingsKeys {\n fontFamily = \"fontFamily\",\n fontWeight = \"fontWeight\",\n hyphens = \"hyphens\",\n textAlign = \"textAlign\",\n textNormalize = \"textNormalize\"\n}\n\nexport enum ThSpacingSettingsKeys {\n letterSpacing = \"letterSpacing\",\n lineHeight = \"lineHeight\",\n paragraphIndent = \"paragraphIndent\",\n paragraphSpacing = \"paragraphSpacing\",\n publisherStyles = \"publisherStyles\",\n wordSpacing = \"wordSpacing\"\n}\n\nexport enum ThSettingsContainerKeys {\n initial = \"initial\",\n text = \"text\",\n spacing = \"spacing\"\n}\n\nexport enum ThSettingsRangeVariant {\n slider = \"slider\",\n numberField = \"numberField\"\n}\n\nexport enum ThSheetTypes {\n popover = \"popover\",\n fullscreen = \"fullscreen\",\n dockedStart = \"docked start\",\n dockedEnd = \"docked end\",\n bottomSheet = \"bottomSheet\"\n}\n\nexport enum ThSheetHeaderVariant {\n close = \"close\",\n previous = \"previous\"\n}\n\nexport enum ThThemeKeys {\n light = \"light\",\n sepia = \"sepia\",\n dark = \"dark\",\n paper = \"paper\",\n contrast1 = \"contrast1\",\n contrast2 = \"contrast2\",\n contrast3 = \"contrast3\"\n}\n\nexport enum ThLayoutDirection {\n rtl = \"rtl\",\n ltr = \"ltr\"\n}\n\nexport enum ThLayoutOptions { \n scroll = \"scroll_option\",\n paginated = \"page_option\"\n}\n\nexport enum ThTextAlignOptions {\n publisher = \"publisher\",\n start = \"start\",\n justify = \"justify\"\n}\n\nexport enum ThLineHeightOptions {\n publisher = \"publisher\",\n small = \"small\",\n medium = \"medium\",\n large = \"large\"\n}"]}
@@ -1,5 +1,5 @@
1
1
  import { defaultPlatformModifier } from './chunk-IEYR7QV7.mjs';
2
- import { __commonJS, __toESM } from './chunk-RQFPGXWN.mjs';
2
+ import { __commonJS, __toESM } from './chunk-HUMV6I5L.mjs';
3
3
  import { useRef } from 'react';
4
4
  import { useDispatch, useSelector, useStore, Provider } from 'react-redux';
5
5
  import { createSlice, configureStore } from '@reduxjs/toolkit';
@@ -693,5 +693,5 @@ var useAppSelector = useSelector;
693
693
  var useAppStore = useStore;
694
694
 
695
695
  export { ThStoreProvider, actionsSlice, activateDockPanel, collapseDockPanel, deactivateDockPanel, dockAction, expandDockPanel, makeStore, publicationSlice, readerSlice, require_debounce, setActionOpen, setArrows, setBreakpoint, setColorScheme, setColumnCount, setContrast, setDirection, setDockPanelWidth, setFXL, setFontFamily, setFontSize, setFontWeight, setForcedColors, setFullscreen, setHovering, setHyphens, setImmersive, setLetterSpacing, setLineHeight, setLineLength, setLoading, setMonochrome, setOverflow, setParagraphIndent, setParagraphSpacing, setPlatformModifier, setPositionsList, setProgression, setPublicationEnd, setPublicationStart, setPublisherStyles, setRTL, setReducedMotion, setReducedTransparency, setRunningHead, setScroll, setScrollAffordance, setSettingsContainer, setTextAlign, setTextNormalization, setTheme, setTimeline, setTocEntry, setTocTree, setWordSpacing, settingsSlice, themeSlice, toggleActionOpen, toggleImmersive, useAppDispatch, useAppSelector, useAppStore };
696
- //# sourceMappingURL=chunk-OCASVHBV.mjs.map
697
- //# sourceMappingURL=chunk-OCASVHBV.mjs.map
696
+ //# sourceMappingURL=chunk-MS2TXXYX.mjs.map
697
+ //# sourceMappingURL=chunk-MS2TXXYX.mjs.map