@stackflow/plugin-basic-ui 0.20.2 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/basicUIPlugin.d.ts +7 -0
- package/dist/components/AppBar.d.ts +2 -0
- package/dist/index.js +24 -10
- package/dist/index.js.map +3 -3
- package/dist/index.mjs +24 -10
- package/dist/index.mjs.map +3 -3
- package/package.json +4 -4
- package/src/basicUIPlugin.tsx +9 -0
- package/src/components/AppBar.tsx +49 -8
- package/src/components/AppScreen.tsx +3 -3
package/dist/basicUIPlugin.d.ts
CHANGED
|
@@ -6,8 +6,15 @@ declare type BasicUIPluginOptions = RecursivePartial<theme.GlobalVars> & {
|
|
|
6
6
|
theme: "android" | "cupertino";
|
|
7
7
|
rootClassName?: string;
|
|
8
8
|
appBar?: {
|
|
9
|
+
backButton?: {
|
|
10
|
+
renderIcon?: () => React.ReactNode;
|
|
11
|
+
ariaLabel?: string;
|
|
12
|
+
} | {
|
|
13
|
+
render?: () => React.ReactNode;
|
|
14
|
+
};
|
|
9
15
|
closeButton?: {
|
|
10
16
|
renderIcon?: () => React.ReactNode;
|
|
17
|
+
ariaLabel?: string;
|
|
11
18
|
onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
12
19
|
} | {
|
|
13
20
|
render?: () => React.ReactNode;
|
|
@@ -14,12 +14,14 @@ declare const AppBar: React.ForwardRefExoticComponent<Partial<Pick<{
|
|
|
14
14
|
appendRight?: (() => React.ReactNode) | undefined;
|
|
15
15
|
backButton?: {
|
|
16
16
|
renderIcon?: (() => React.ReactNode) | undefined;
|
|
17
|
+
ariaLabel?: string | undefined;
|
|
17
18
|
onClick?: ((e: React.MouseEvent<HTMLButtonElement>) => void) | undefined;
|
|
18
19
|
} | {
|
|
19
20
|
render?: (() => React.ReactNode) | undefined;
|
|
20
21
|
} | undefined;
|
|
21
22
|
closeButton?: {
|
|
22
23
|
renderIcon?: (() => React.ReactNode) | undefined;
|
|
24
|
+
ariaLabel?: string | undefined;
|
|
23
25
|
onClick?: ((e: React.MouseEvent<HTMLButtonElement>) => void) | undefined;
|
|
24
26
|
} | {
|
|
25
27
|
render?: (() => React.ReactNode) | undefined;
|
package/dist/index.js
CHANGED
|
@@ -612,11 +612,12 @@ var AppBar = import_react9.default.forwardRef(
|
|
|
612
612
|
backgroundColor,
|
|
613
613
|
onTopClick
|
|
614
614
|
}, ref) => {
|
|
615
|
-
var _a;
|
|
615
|
+
var _a, _b;
|
|
616
616
|
const actions = (0, import_react8.useActions)();
|
|
617
617
|
const activity = useNullableActivity();
|
|
618
618
|
const globalOptions = useGlobalOptions();
|
|
619
619
|
const globalCloseButton = (_a = globalOptions.appBar) == null ? void 0 : _a.closeButton;
|
|
620
|
+
const globalBackButton = (_b = globalOptions.appBar) == null ? void 0 : _b.backButton;
|
|
620
621
|
const centerRef = (0, import_react9.useRef)(null);
|
|
621
622
|
const { maxWidth } = useMaxWidth({
|
|
622
623
|
outerRef: ref,
|
|
@@ -632,28 +633,40 @@ var AppBar = import_react9.default.forwardRef(
|
|
|
632
633
|
}
|
|
633
634
|
};
|
|
634
635
|
const renderBackButton = () => {
|
|
635
|
-
var _a2;
|
|
636
|
+
var _a2, _b2;
|
|
636
637
|
if (!activity) {
|
|
637
638
|
return null;
|
|
638
639
|
}
|
|
639
640
|
if (activity.isRoot) {
|
|
640
641
|
return null;
|
|
641
642
|
}
|
|
642
|
-
if (!backButton2) {
|
|
643
|
+
if (!backButton2 && !globalBackButton) {
|
|
643
644
|
return /* @__PURE__ */ import_react9.default.createElement("button", {
|
|
644
645
|
type: "button",
|
|
645
646
|
className: backButton,
|
|
646
647
|
onClick: onBackClick
|
|
647
648
|
}, /* @__PURE__ */ import_react9.default.createElement(IconBack_default, null));
|
|
648
649
|
}
|
|
649
|
-
if ("render" in backButton2 && backButton2.render) {
|
|
650
|
+
if (backButton2 && "render" in backButton2 && backButton2.render) {
|
|
650
651
|
return (_a2 = backButton2.render) == null ? void 0 : _a2.call(backButton2);
|
|
651
652
|
}
|
|
653
|
+
if (globalBackButton && "render" in globalBackButton && globalBackButton.render) {
|
|
654
|
+
return (_b2 = globalBackButton.render) == null ? void 0 : _b2.call(globalBackButton);
|
|
655
|
+
}
|
|
652
656
|
return /* @__PURE__ */ import_react9.default.createElement("button", {
|
|
653
657
|
type: "button",
|
|
654
658
|
className: backButton,
|
|
659
|
+
"aria-label": backButton2 && "ariaLabel" in backButton2 ? backButton2.ariaLabel : globalBackButton && "ariaLabel" in globalBackButton ? globalBackButton.ariaLabel : void 0,
|
|
655
660
|
onClick: onBackClick
|
|
656
|
-
},
|
|
661
|
+
}, (() => {
|
|
662
|
+
if (backButton2 && "renderIcon" in backButton2 && backButton2.renderIcon) {
|
|
663
|
+
return backButton2.renderIcon();
|
|
664
|
+
}
|
|
665
|
+
if (globalBackButton && "renderIcon" in globalBackButton && globalBackButton.renderIcon) {
|
|
666
|
+
return globalBackButton.renderIcon();
|
|
667
|
+
}
|
|
668
|
+
return /* @__PURE__ */ import_react9.default.createElement(IconBack_default, null);
|
|
669
|
+
})());
|
|
657
670
|
};
|
|
658
671
|
const onCloseClick = (e) => {
|
|
659
672
|
var _a2;
|
|
@@ -679,6 +692,7 @@ var AppBar = import_react9.default.forwardRef(
|
|
|
679
692
|
return /* @__PURE__ */ import_react9.default.createElement("button", {
|
|
680
693
|
type: "button",
|
|
681
694
|
className: closeButton,
|
|
695
|
+
"aria-label": closeButton2 && "ariaLabel" in closeButton2 ? closeButton2.ariaLabel : globalCloseButton && "ariaLabel" in globalCloseButton ? globalCloseButton.ariaLabel : void 0,
|
|
682
696
|
onClick: onCloseClick
|
|
683
697
|
}, (() => {
|
|
684
698
|
if (closeButton2 && "renderIcon" in closeButton2 && closeButton2.renderIcon) {
|
|
@@ -827,7 +841,10 @@ var AppScreen = ({
|
|
|
827
841
|
}, /* @__PURE__ */ import_react11.default.createElement("div", {
|
|
828
842
|
className: dim,
|
|
829
843
|
ref: dimRef
|
|
830
|
-
}), /* @__PURE__ */ import_react11.default.createElement(
|
|
844
|
+
}), appBar2 && /* @__PURE__ */ import_react11.default.createElement(AppBar_default, __spreadProps(__spreadValues({}, appBar2), {
|
|
845
|
+
ref: appBarRef,
|
|
846
|
+
onTopClick: onAppBarTopClick
|
|
847
|
+
})), /* @__PURE__ */ import_react11.default.createElement("div", {
|
|
831
848
|
key: activity == null ? void 0 : activity.id,
|
|
832
849
|
className: paper({
|
|
833
850
|
hasAppBar
|
|
@@ -836,10 +853,7 @@ var AppScreen = ({
|
|
|
836
853
|
}, children), !(activity == null ? void 0 : activity.isRoot) && globalOptions.theme === "cupertino" && !preventSwipeBack && /* @__PURE__ */ import_react11.default.createElement("div", {
|
|
837
854
|
className: edge({ hasAppBar }),
|
|
838
855
|
ref: edgeRef
|
|
839
|
-
})
|
|
840
|
-
ref: appBarRef,
|
|
841
|
-
onTopClick: onAppBarTopClick
|
|
842
|
-
}))));
|
|
856
|
+
})));
|
|
843
857
|
};
|
|
844
858
|
AppScreen.displayName = "AppScreen";
|
|
845
859
|
var AppScreen_default = AppScreen;
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/basicUIPlugin.tsx", "../src/theme.css.ts", "../src/utils/compact.ts", "../src/utils/compactMap.ts", "../src/utils/listenOnce.ts", "../src/utils/listenResize.ts", "../src/utils/noop.ts", "../src/utils/requestNextFrame.tsx", "../src/components/AppScreen.tsx", "../src/hooks/useLazy.tsx", "../src/hooks/useMaxWidth.ts", "../src/hooks/useNullableActivity.ts", "../src/hooks/useStyleEffect.ts", "../src/hooks/useStyleEffectHide.ts", "../src/hooks/useStyleEffectOffset.ts", "../src/hooks/useStyleEffectSwipeBack.ts", "../src/components/AppBar.tsx", "../src/assets/IconBack.tsx", "../src/assets/IconClose.tsx", "../src/components/AppBar.css.ts", "../src/components/AppScreen.css.ts", "../src/components/BottomSheet.tsx", "../src/components/BottomSheet.css.ts", "../src/components/Modal.tsx", "../src/components/Modal.css.ts"],
|
|
4
|
-
"sourcesContent": ["export { basicUIPlugin } from \"./basicUIPlugin\";\nexport {\n default as AppScreen,\n AppScreenContext,\n AppScreenProps,\n useAppScreen,\n} from \"./components/AppScreen\";\nexport {\n default as BottomSheet,\n BottomSheetProps,\n} from \"./components/BottomSheet\";\nexport { default as Modal, ModalProps } from \"./components/Modal\";\nexport { globalVars as cssVars } from \"./theme.css\";\n", "import type { StackflowReactPlugin } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { createContext, useContext } from \"react\";\n\nimport * as theme from \"./theme.css\";\nimport type { RecursivePartial } from \"./utils\";\nimport { compact, compactMap } from \"./utils\";\n\ntype BasicUIPluginOptions = RecursivePartial<theme.GlobalVars> & {\n theme: \"android\" | \"cupertino\";\n rootClassName?: string;\n appBar?: {\n closeButton?:\n | {\n renderIcon?: () => React.ReactNode;\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n }\n | {\n render?: () => React.ReactNode;\n };\n };\n};\n\nconst GlobalOptionsContext = createContext<BasicUIPluginOptions>({\n theme: \"android\",\n});\n\nexport const GlobalOptionsProvider = GlobalOptionsContext.Provider;\n\nexport function useGlobalOptions() {\n return useContext(GlobalOptionsContext);\n}\n\nexport const basicUIPlugin: (\n options: BasicUIPluginOptions,\n) => StackflowReactPlugin = (options) => () => ({\n key: \"basic-ui\",\n wrapStack({ stack }) {\n return (\n <GlobalOptionsProvider value={options}>\n <div\n className={\n typeof window !== \"undefined\"\n ? compact([theme[options.theme], options.rootClassName]).join(\" \")\n : options.rootClassName\n }\n style={assignInlineVars(\n compactMap({\n [theme.globalVars.backgroundColor]: options.backgroundColor,\n [theme.globalVars.dimBackgroundColor]: options.dimBackgroundColor,\n [theme.globalVars.appBar.borderColor]:\n options.appBar?.borderColor,\n [theme.globalVars.appBar.borderSize]: options.appBar?.borderSize,\n [theme.globalVars.appBar.height]: options.appBar?.height,\n [theme.globalVars.appBar.iconColor]: options.appBar?.iconColor,\n [theme.globalVars.appBar.textColor]: options.appBar?.textColor,\n [theme.globalVars.bottomSheet.borderRadius]:\n options.bottomSheet?.borderRadius,\n [theme.globalVars.modal.borderRadius]:\n options.modal?.borderRadius,\n }),\n )}\n >\n {stack.render()}\n </div>\n </GlobalOptionsProvider>\n );\n },\n});\n", "import 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nexport var android = 'theme__1coppmz0';\nexport var cupertino = 'theme__1coppmz1';\nexport var globalVars = {backgroundColor:'var(--stackflow-plugin-basic-ui-background-color)',dimBackgroundColor:'var(--stackflow-plugin-basic-ui-dim-background-color)',appBar:{borderColor:'var(--stackflow-plugin-basic-ui-app-bar-border-color)',borderSize:'var(--stackflow-plugin-basic-ui-app-bar-border-size)',height:'var(--stackflow-plugin-basic-ui-app-bar-height)',heightTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-height-transition-duration)',minHeight:'var(--stackflow-plugin-basic-ui-app-bar-min-height)',iconColor:'var(--stackflow-plugin-basic-ui-app-bar-icon-color)',textColor:'var(--stackflow-plugin-basic-ui-app-bar-text-color)',backgroundColor:'var(--stackflow-plugin-basic-ui-app-bar-background-color)'},bottomSheet:{borderRadius:'var(--stackflow-plugin-basic-ui-bottom-sheet-border-radius)'},modal:{borderRadius:'var(--stackflow-plugin-basic-ui-bottom-sheet-border-radius)'}};\nexport var rootAndroid = ':root[data-stackflow-plugin-basic-ui-theme=android]';\nexport var rootCupertino = ':root[data-stackflow-plugin-basic-ui-theme=cupertino]';", "export function compact<T>(arr: Array<T>): Array<NonNullable<T>> {\n return arr.filter(\n (item): item is NonNullable<typeof item> =>\n item !== undefined && item !== null,\n );\n}\n", "export function compactMap<T extends {}>(\n obj: T,\n): {\n [key in keyof T]: NonNullable<T[key]>;\n} {\n return Object.entries(obj).reduce<any>((acc, [key, value]) => {\n if (value !== null && value !== undefined) {\n acc[key] = value;\n }\n\n return acc;\n }, {});\n}\n", "export function listenOnce<T extends HTMLElement>(\n el: T,\n type: keyof HTMLElementEventMap,\n cb: () => void,\n) {\n const listener = () => {\n el.removeEventListener(type, listener);\n cb();\n };\n\n el.addEventListener(type, listener);\n}\n", "export const listenResize = (cb: () => void) => {\n cb();\n window.addEventListener(\"resize\", cb);\n\n return () => {\n window.removeEventListener(\"resize\", cb);\n };\n};\n", "export const noop = () => {};\n", "// https://github.com/MingruiZhang/react-animate-mount/blob/32300c04a4fdfa97724b70aaaf0c0f403d6da247/src/Animate.js#L171-L179\nexport function requestNextFrame(cb: () => void) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n cb();\n });\n });\n}\n", "/* eslint-disable no-param-reassign */\n\nimport { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { createContext, useContext, useMemo, useRef } from \"react\";\n\nimport { useGlobalOptions } from \"../basicUIPlugin\";\nimport {\n useLazy,\n useNullableActivity,\n useStyleEffectHide,\n useStyleEffectOffset,\n useStyleEffectSwipeBack,\n} from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport type { PropOf } from \"../utils\";\nimport { compactMap } from \"../utils\";\nimport AppBar from \"./AppBar\";\nimport * as css from \"./AppScreen.css\";\n\nexport type AppScreenContext = {\n scroll: (args: { top: number }) => void;\n};\nconst Context = createContext<AppScreenContext>(null as any);\n\nexport function useAppScreen() {\n return useContext(Context);\n}\n\nexport type AppScreenProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"dimBackgroundColor\">\n> & {\n appBar?: Omit<PropOf<typeof AppBar>, \"theme\" | \"ref\" | \"key\">;\n preventSwipeBack?: boolean;\n children: React.ReactNode;\n};\nconst AppScreen: React.FC<AppScreenProps> = ({\n backgroundColor,\n dimBackgroundColor,\n appBar,\n preventSwipeBack,\n children,\n}) => {\n const globalOptions = useGlobalOptions();\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const appScreenRef = useRef<HTMLDivElement>(null);\n const dimRef = useRef<HTMLDivElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n const edgeRef = useRef<HTMLDivElement>(null);\n const appBarRef = useRef<HTMLDivElement>(null);\n\n useStyleEffectHide({\n refs: [appScreenRef],\n hasEffect: true,\n });\n useStyleEffectOffset({\n theme: globalOptions.theme,\n refs:\n globalOptions.theme === \"cupertino\" ? [paperRef] : [paperRef, appBarRef],\n hasEffect: true,\n });\n useStyleEffectSwipeBack({\n theme: globalOptions.theme,\n dimRef,\n edgeRef,\n paperRef,\n hasEffect: true,\n onSwiped() {\n pop();\n },\n });\n\n const hasAppBar = !!appBar;\n\n const zIndexBase = (activity?.zIndex ?? 0) * 5;\n const zIndexDim = zIndexBase;\n const zIndexPaper =\n zIndexBase + (globalOptions.theme === \"cupertino\" && hasAppBar ? 1 : 3);\n const zIndexEdge = zIndexBase + 4;\n const zIndexAppBar = zIndexBase + 7;\n\n const transitionState = activity?.transitionState ?? \"enter-done\";\n const lazyTransitionState = useLazy(transitionState);\n\n const onAppBarTopClick: React.MouseEventHandler = (e) => {\n appBar?.onTopClick?.(e);\n\n if (!e.defaultPrevented) {\n paperRef.current?.scroll({\n top: 0,\n behavior: \"smooth\",\n });\n }\n };\n\n return (\n <Context.Provider\n value={useMemo(\n () => ({\n scroll({ top }) {\n paperRef?.current?.scroll({\n top,\n behavior: \"smooth\",\n });\n },\n }),\n [paperRef],\n )}\n >\n <div\n ref={appScreenRef}\n className={css.appScreen({\n transitionState:\n transitionState === \"enter-done\" || transitionState === \"exit-done\"\n ? transitionState\n : lazyTransitionState,\n })}\n style={assignInlineVars(\n compactMap({\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [globalVars.appBar.height]: appBar?.height,\n [globalVars.appBar.heightTransitionDuration]:\n appBar?.heightTransitionDuration,\n [css.vars.zIndexes.dim]: `${zIndexDim}`,\n [css.vars.zIndexes.paper]: `${zIndexPaper}`,\n [css.vars.zIndexes.edge]: `${zIndexEdge}`,\n [css.vars.zIndexes.appBar]: `${zIndexAppBar}`,\n [css.vars.transitionDuration]:\n transitionState === \"enter-active\" ||\n transitionState === \"exit-active\"\n ? `var(--stackflow-transition-duration)`\n : \"0ms\",\n }),\n )}\n >\n <div className={css.dim} ref={dimRef} />\n <div\n key={activity?.id}\n className={css.paper({\n hasAppBar,\n })}\n ref={paperRef}\n >\n {children}\n </div>\n {!activity?.isRoot &&\n globalOptions.theme === \"cupertino\" &&\n !preventSwipeBack && (\n <div className={css.edge({ hasAppBar })} ref={edgeRef} />\n )}\n {appBar && (\n <AppBar {...appBar} ref={appBarRef} onTopClick={onAppBarTopClick} />\n )}\n </div>\n </Context.Provider>\n );\n};\n\nAppScreen.displayName = \"AppScreen\";\n\nexport default AppScreen;\n", "import { useEffect, useState } from \"react\";\n\nimport { requestNextFrame } from \"../utils\";\n\nexport function useLazy<T>(value: T) {\n const [state, setState] = useState<T | undefined>(undefined);\n\n useEffect(() => {\n requestNextFrame(() => {\n setState(value);\n });\n }, [value]);\n\n return state;\n}\n", "import type React from \"react\";\nimport { useEffect, useState } from \"react\";\n\nimport { listenResize, noop } from \"../utils\";\n\nexport function useMaxWidth({\n outerRef,\n innerRef,\n enable,\n}: {\n outerRef: React.ForwardedRef<any>;\n innerRef: React.MutableRefObject<any>;\n enable: boolean;\n}) {\n const [maxWidth, setMaxWidth] = useState<number | undefined>(undefined);\n\n useEffect(() => {\n const $outer = outerRef && \"current\" in outerRef && outerRef.current;\n const $inner = innerRef.current;\n\n if (!enable || !$outer || !$inner) {\n return noop;\n }\n\n const dispose = listenResize(() => {\n const screenWidth = $outer.clientWidth;\n\n const leftWidth = $inner.offsetLeft;\n const centerWidth = $inner.clientWidth;\n const rightWidth = screenWidth - leftWidth - centerWidth;\n\n const sideMargin = Math.max(leftWidth, rightWidth);\n\n setMaxWidth(screenWidth - 2 * sideMargin);\n });\n\n return dispose;\n }, []);\n\n return {\n maxWidth,\n };\n}\n", "import type { Activity } from \"@stackflow/core\";\nimport { useActivity } from \"@stackflow/react\";\n\nexport function useNullableActivity() {\n return useActivity() as Activity | null;\n}\n", "import type { ActivityTransitionState } from \"@stackflow/core\";\nimport type React from \"react\";\nimport { useEffect } from \"react\";\n\nimport { useNullableActivity } from \"./useNullableActivity\";\n\nconst connections: {\n [styleName: string]: Map<\n number,\n {\n refs: Array<React.RefObject<any>>;\n hasEffect: boolean;\n }\n >;\n} = {};\n\nexport function useStyleEffect({\n styleName,\n refs,\n effect,\n}: {\n styleName: string;\n refs: Array<React.RefObject<any>>;\n effect?: (params: {\n activityTransitionState: ActivityTransitionState;\n refs: Array<React.RefObject<HTMLElement>>;\n }) => (() => void) | void;\n}) {\n const activity = useNullableActivity();\n\n useEffect(() => {\n if (!activity) {\n return () => {};\n }\n if (!connections[styleName]) {\n connections[styleName] = new Map();\n }\n\n connections[styleName].set(activity.zIndex, {\n refs,\n hasEffect: !!effect,\n });\n\n return () => {\n connections[styleName].delete(activity.zIndex);\n };\n }, [activity?.id, refs, effect]);\n\n useEffect(() => {\n if (!activity) {\n return () => {};\n }\n if (!effect) {\n return () => {};\n }\n\n const refs = (() => {\n let arr: Array<React.RefObject<any>> = [];\n\n for (let i = 1; i <= activity.zIndex; i += 1) {\n const connection = connections[styleName].get(activity.zIndex - i);\n\n if (connection?.refs) {\n arr = [...arr, ...connection.refs];\n }\n if (connection?.hasEffect) {\n break;\n }\n }\n\n return arr;\n })();\n\n const cleanup = effect({\n activityTransitionState: activity.transitionState,\n refs,\n });\n\n return () => {\n cleanup?.();\n };\n }, [activity?.transitionState]);\n}\n", "/* eslint-disable no-param-reassign */\n\nimport type React from \"react\";\n\nimport { useStyleEffect } from \"./useStyleEffect\";\n\nexport function useStyleEffectHide({\n refs,\n hasEffect,\n}: {\n refs: Array<React.RefObject<any>>;\n hasEffect?: boolean;\n}) {\n useStyleEffect({\n styleName: \"hide\",\n refs,\n effect: hasEffect\n ? ({ activityTransitionState, refs }) => {\n const cleanup = () => {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n const $ref = ref.current;\n\n $ref.style.display = \"\";\n });\n };\n\n switch (activityTransitionState) {\n case \"enter-done\": {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n const $ref = ref.current;\n\n $ref.style.display = \"none\";\n });\n\n return () => {\n cleanup();\n };\n }\n default: {\n cleanup();\n\n return () => {};\n }\n }\n }\n : undefined,\n });\n}\n", "/* eslint-disable no-param-reassign */\n\nimport { listenOnce, requestNextFrame } from \"../utils\";\nimport { useStyleEffect } from \"./useStyleEffect\";\n\nexport const OFFSET_PX_ANDROID = 32;\nexport const OFFSET_PX_CUPERTINO = 80;\n\nexport function useStyleEffectOffset({\n refs,\n theme,\n hasEffect,\n}: {\n refs: Array<React.RefObject<any>>;\n theme: \"android\" | \"cupertino\";\n hasEffect?: boolean;\n}) {\n useStyleEffect({\n styleName: \"offset\",\n refs,\n effect: hasEffect\n ? ({ activityTransitionState, refs }) => {\n const transform =\n theme === \"cupertino\"\n ? `translate3d(-${OFFSET_PX_CUPERTINO / 16}rem, 0, 0)`\n : `translate3d(0, -${OFFSET_PX_ANDROID / 16}rem, 0)`;\n\n const cleanup = () => {\n requestNextFrame(() => {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n const $el = ref.current;\n\n $el.style.transform = \"\";\n\n listenOnce($el, \"transitionend\", () => {\n $el.style.transition = \"\";\n });\n });\n });\n };\n\n switch (activityTransitionState) {\n case \"enter-active\":\n case \"enter-done\": {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n ref.current.style.transition = `var(--stackflow-transition-duration)`;\n ref.current.style.transform = transform;\n });\n\n switch (activityTransitionState) {\n case \"enter-done\":\n return () => {\n cleanup();\n };\n case \"enter-active\":\n default:\n return () => {};\n }\n }\n case \"exit-active\":\n case \"exit-done\": {\n requestNextFrame(() => {\n cleanup();\n });\n\n return () => {};\n }\n default: {\n return () => {};\n }\n }\n }\n : undefined,\n });\n}\n", "/* eslint-disable no-param-reassign */\n\nimport { listenOnce } from \"../utils\";\nimport { useStyleEffect } from \"./useStyleEffect\";\nimport { OFFSET_PX_CUPERTINO } from \"./useStyleEffectOffset\";\n\nexport function useStyleEffectSwipeBack({\n theme,\n dimRef,\n edgeRef,\n paperRef,\n hasEffect,\n onSwiped,\n}: {\n theme: \"android\" | \"cupertino\";\n dimRef: React.RefObject<HTMLDivElement>;\n edgeRef: React.RefObject<HTMLDivElement>;\n paperRef: React.RefObject<HTMLDivElement>;\n hasEffect?: boolean;\n onSwiped?: () => void;\n}) {\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [paperRef],\n effect: hasEffect\n ? ({ refs }) => {\n if (theme !== \"cupertino\") {\n return () => {};\n }\n\n if (!dimRef.current || !edgeRef.current || !paperRef.current) {\n return () => {};\n }\n\n const $dim = dimRef.current;\n const $edge = edgeRef.current;\n const $paper = paperRef.current;\n\n let x0: number | null = null;\n let t0: number | null = null;\n let x: number | null = null;\n\n let cachedRefs: Array<{\n style: {\n transform: string;\n transition: string;\n };\n parentElement?: {\n style: {\n display: string;\n };\n };\n }> = [];\n\n const resetState = () => {\n x0 = null;\n t0 = null;\n x = null;\n cachedRefs = [];\n };\n\n let _rAFLock = false;\n\n function movePaper(dx: number) {\n if (!_rAFLock) {\n _rAFLock = true;\n\n requestAnimationFrame(() => {\n const p = dx / $paper.clientWidth;\n\n $dim.style.opacity = `${1 - p}`;\n $dim.style.transition = \"0s\";\n\n $paper.style.overflowY = \"hidden\";\n $paper.style.transform = `translate3d(${dx}px, 0, 0)`;\n $paper.style.transition = \"0s\";\n\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n ref.current.style.transform = `translate3d(${\n -1 * (1 - p) * OFFSET_PX_CUPERTINO\n }px, 0, 0)`;\n ref.current.style.transition = \"0s\";\n\n if (ref.current.parentElement?.style.display === \"none\") {\n ref.current.parentElement.style.display = \"block\";\n }\n });\n\n _rAFLock = false;\n });\n }\n }\n\n function resetPaper({ swiped }: { swiped: boolean }): Promise<void> {\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n $dim.style.opacity = `${swiped ? 0 : 1}`;\n $dim.style.transition = \"var(--stackflow-transition-duration)\";\n\n $paper.style.overflowY = \"hidden\";\n $paper.style.transform = `translateX(${swiped ? \"100%\" : \"0\"})`;\n $paper.style.transition =\n \"var(--stackflow-transition-duration)\";\n\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n ref.current.style.transition = `var(--stackflow-transition-duration)`;\n ref.current.style.transform = `translate3d(${\n swiped ? \"0\" : `-${OFFSET_PX_CUPERTINO / 16}rem`\n }, 0, 0)`;\n });\n\n const _cachedRefs = [...cachedRefs];\n\n resolve();\n\n listenOnce($paper, \"transitionend\", () => {\n $dim.style.opacity = \"\";\n $paper.style.overflowY = \"\";\n $paper.style.transform = \"\";\n\n refs.forEach((ref, i) => {\n if (!ref.current) {\n return;\n }\n\n const _cachedRef = _cachedRefs[i];\n\n if (swiped) {\n ref.current.style.transition = \"\";\n ref.current.style.transform = \"\";\n\n if (ref.current.parentElement) {\n ref.current.parentElement.style.display = \"\";\n }\n } else if (_cachedRef) {\n ref.current.style.transition =\n _cachedRef.style.transition;\n ref.current.style.transform = _cachedRef.style.transform;\n\n if (\n ref.current.parentElement &&\n _cachedRef.parentElement\n ) {\n ref.current.parentElement.style.display =\n _cachedRef.parentElement.style.display;\n }\n }\n });\n });\n });\n });\n }\n\n const onTouchStart = (e: TouchEvent) => {\n const { activeElement } = document as any;\n\n activeElement?.blur?.();\n // eslint-disable-next-line no-multi-assign\n x0 = x = e.touches[0].clientX;\n t0 = Date.now();\n\n cachedRefs = refs.map((ref) => {\n if (!ref.current) {\n return {\n style: {\n transform: \"\",\n transition: \"\",\n },\n };\n }\n\n return {\n style: {\n transform: ref.current.style.transform,\n transition: ref.current.style.transition,\n },\n parentElement: ref.current.parentElement\n ? {\n style: {\n display: ref.current.parentElement.style.display,\n },\n }\n : undefined,\n };\n });\n };\n\n const onTouchMove = (e: TouchEvent) => {\n if (!x0) {\n resetState();\n return;\n }\n\n x = e.touches[0].clientX;\n\n movePaper(x - x0);\n };\n\n const onTouchEnd = () => {\n if (!x0 || !t0 || !x) {\n resetState();\n return;\n }\n\n const t = Date.now();\n const v = (x - x0) / (t - t0);\n const swiped = v > 1 || x / $paper.clientWidth > 0.4;\n\n if (swiped) {\n onSwiped?.();\n }\n\n Promise.resolve()\n .then(() => resetPaper({ swiped }))\n .then(() => resetState());\n };\n\n $edge.addEventListener(\"touchstart\", onTouchStart, { passive: true });\n $edge.addEventListener(\"touchmove\", onTouchMove, { passive: true });\n $edge.addEventListener(\"touchend\", onTouchEnd, { passive: true });\n $edge.addEventListener(\"touchcancel\", onTouchEnd, { passive: true });\n\n return () => {\n $edge.removeEventListener(\"touchstart\", onTouchStart);\n $edge.removeEventListener(\"touchmove\", onTouchMove);\n $edge.removeEventListener(\"touchend\", onTouchEnd);\n $edge.removeEventListener(\"touchcancel\", onTouchEnd);\n };\n }\n : undefined,\n });\n}\n", "import { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { useRef } from \"react\";\n\nimport { IconBack, IconClose } from \"../assets\";\nimport { useGlobalOptions } from \"../basicUIPlugin\";\nimport { useMaxWidth, useNullableActivity } from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport { compactMap, noop } from \"../utils\";\nimport * as css from \"./AppBar.css\";\nimport * as appScreenCss from \"./AppScreen.css\";\n\ntype AppBarProps = Partial<\n Pick<\n GlobalVars[\"appBar\"],\n | \"borderColor\"\n | \"borderSize\"\n | \"height\"\n | \"heightTransitionDuration\"\n | \"iconColor\"\n | \"textColor\"\n | \"backgroundColor\"\n >\n> & {\n title?: React.ReactNode;\n appendLeft?: () => React.ReactNode;\n appendRight?: () => React.ReactNode;\n backButton?:\n | {\n renderIcon?: () => React.ReactNode;\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n }\n | {\n render?: () => React.ReactNode;\n };\n closeButton?:\n | {\n renderIcon?: () => React.ReactNode;\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n }\n | {\n render?: () => React.ReactNode;\n };\n closeButtonLocation?: \"left\" | \"right\";\n border?: boolean;\n onTopClick?: (e: React.MouseEvent) => void;\n};\nconst AppBar = React.forwardRef<HTMLDivElement, AppBarProps>(\n (\n {\n title,\n appendLeft,\n appendRight,\n backButton,\n closeButton,\n closeButtonLocation = \"left\",\n border = true,\n iconColor,\n textColor,\n borderColor,\n borderSize,\n height,\n backgroundColor,\n onTopClick,\n },\n ref,\n ) => {\n const actions = useActions();\n const activity = useNullableActivity();\n\n const globalOptions = useGlobalOptions();\n const globalCloseButton = globalOptions.appBar?.closeButton;\n\n const centerRef = useRef<any>(null);\n\n const { maxWidth } = useMaxWidth({\n outerRef: ref,\n innerRef: centerRef,\n enable: globalOptions.theme === \"cupertino\",\n });\n\n const onBackClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (backButton && \"onClick\" in backButton && backButton.onClick) {\n backButton.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n actions.pop();\n }\n };\n\n const renderBackButton = () => {\n if (!activity) {\n return null;\n }\n if (activity.isRoot) {\n return null;\n }\n\n if (!backButton) {\n return (\n <button\n type=\"button\"\n className={css.backButton}\n onClick={onBackClick}\n >\n <IconBack />\n </button>\n );\n }\n\n if (\"render\" in backButton && backButton.render) {\n return backButton.render?.();\n }\n\n return (\n <button type=\"button\" className={css.backButton} onClick={onBackClick}>\n {\"renderIcon\" in backButton && backButton.renderIcon ? (\n backButton.renderIcon()\n ) : (\n <IconBack />\n )}\n </button>\n );\n };\n\n const onCloseClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (closeButton && \"onClick\" in closeButton && closeButton.onClick) {\n closeButton.onClick(e);\n }\n\n if (\n !e.defaultPrevented &&\n globalCloseButton &&\n \"onClick\" in globalCloseButton\n ) {\n globalCloseButton.onClick?.(e);\n }\n };\n\n const renderCloseButton = () => {\n const isRoot = !activity || activity.isRoot;\n\n if ((!closeButton && !globalOptions.appBar?.closeButton) || !isRoot) {\n return null;\n }\n if (closeButton && \"render\" in closeButton && closeButton.render) {\n return closeButton.render();\n }\n if (\n globalCloseButton &&\n \"render\" in globalCloseButton &&\n globalCloseButton.render\n ) {\n return globalCloseButton.render();\n }\n\n return (\n <button\n type=\"button\"\n className={css.closeButton}\n onClick={onCloseClick}\n >\n {(() => {\n if (\n closeButton &&\n \"renderIcon\" in closeButton &&\n closeButton.renderIcon\n ) {\n return closeButton.renderIcon();\n }\n if (\n globalCloseButton &&\n \"renderIcon\" in globalCloseButton &&\n globalCloseButton.renderIcon\n ) {\n return globalCloseButton.renderIcon();\n }\n\n return <IconClose />;\n })()}\n </button>\n );\n };\n\n const hasLeft = !!(\n (closeButtonLocation === \"left\" && closeButton) ||\n backButton ||\n appendLeft\n );\n\n return (\n <div\n ref={ref}\n className={css.appBar({\n border,\n })}\n style={assignInlineVars(\n compactMap({\n [globalVars.appBar.iconColor]: iconColor,\n [globalVars.appBar.textColor]: textColor,\n [globalVars.appBar.borderColor]: borderColor,\n [globalVars.appBar.borderSize]: borderSize,\n [globalVars.appBar.height]: height,\n [globalVars.appBar.backgroundColor]:\n backgroundColor || globalVars.backgroundColor,\n [appScreenCss.vars.appBar.center.mainWidth]: `${maxWidth}px`,\n }),\n )}\n >\n <div className={css.safeArea} />\n <div className={css.container}>\n <div className={css.left}>\n {closeButtonLocation === \"left\" && renderCloseButton()}\n {renderBackButton()}\n {appendLeft?.()}\n </div>\n <div ref={centerRef} className={css.center}>\n <div\n className={css.centerMain({\n hasLeft,\n })}\n >\n {typeof title === \"string\" ? (\n <div className={css.centerText}>{title}</div>\n ) : (\n title\n )}\n <button\n className={css.centerMainEdge}\n type=\"button\"\n aria-hidden=\"true\"\n onClick={onTopClick}\n />\n </div>\n </div>\n <div className={css.right}>\n {appendRight?.()}\n {closeButtonLocation === \"right\" && renderCloseButton()}\n </div>\n </div>\n </div>\n );\n },\n);\n\nAppBar.displayName = \"AppBar\";\n\nexport default AppBar;\n", "import React from \"react\";\n\nconst IconBack: React.FC<{\n className?: string;\n}> = (props) => (\n <svg\n className={props.className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5659 5.56564C11.8783 5.25322 11.8783 4.74669 11.5659 4.43427C11.2535 4.12185 10.7469 4.12185 10.4345 4.43427L3.43451 11.4343C3.12209 11.7467 3.12209 12.2532 3.43451 12.5656L10.4345 19.5656C10.7469 19.8781 11.2535 19.8781 11.5659 19.5656C11.8783 19.2532 11.8783 18.7467 11.5659 18.4343L5.93157 12.8H20.0002C20.442 12.8 20.8002 12.4418 20.8002 12C20.8002 11.5581 20.442 11.2 20.0002 11.2H5.93157L11.5659 5.56564Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default IconBack;\n", "import React from \"react\";\n\nconst IconClose: React.FC<{\n className?: string;\n}> = (props) => (\n <svg\n className={props.className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.56588 5.43433C6.25346 5.12191 5.74693 5.12191 5.43451 5.43433C5.12209 5.74675 5.12209 6.25328 5.43451 6.5657L10.8688 12L5.43451 17.4343C5.12209 17.7467 5.12209 18.2533 5.43451 18.5657C5.74693 18.8781 6.25346 18.8781 6.56588 18.5657L12.0002 13.1314L17.4345 18.5657C17.7469 18.8781 18.2535 18.8781 18.5659 18.5657C18.8783 18.2533 18.8783 17.7467 18.5659 17.4343L13.1316 12L18.5659 6.5657C18.8783 6.25328 18.8783 5.74675 18.5659 5.43433C18.2535 5.12191 17.7469 5.12191 17.4345 5.43433L12.0002 10.8686L6.56588 5.43433Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.56588 5.43433C6.25346 5.12191 5.74693 5.12191 5.43451 5.43433C5.12209 5.74675 5.12209 6.25328 5.43451 6.5657L10.8688 12L5.43451 17.4343C5.12209 17.7467 5.12209 18.2533 5.43451 18.5657C5.74693 18.8781 6.25346 18.8781 6.56588 18.5657L12.0002 13.1314L17.4345 18.5657C17.7469 18.8781 18.2535 18.8781 18.5659 18.5657C18.8783 18.2533 18.8783 17.7467 18.5659 17.4343L13.1316 12L18.5659 6.5657C18.8783 6.25328 18.8783 5.74675 18.5659 5.43433C18.2535 5.12191 17.7469 5.12191 17.4345 5.43433L12.0002 10.8686L6.56588 5.43433Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default IconClose;\n", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/AppScreen.css.ts.vanilla.css?source=#H4sIAAAAAAAAE71WwY7aMBC98xW+VAIVo2TZbtugHlr10nOPVbWa2CYxOLblONBS9d9rJxDYrpMlNKqEBJZn3ryZecx48VHrr8QwJh8fYyrW98v7B/RrglAKZJsZVUmKiRLKJGgHZopxad3FWqg91qLKuMQplJzgimPKC/y312w1+T1ZPI/x9sYY1+K/q/GtAVlyy5VMmt9rZYpjjPPd58qA/26do9kcKQ2E25/XGHdQIGcKPuyRgQDLlnQaR9GrOYrcp8ud1+5HGgmKVu50wFxS9uNUpsMXf2Klr3zrF8+85Z4LgUkOMmPJCaQOZHNWMGdMlNbFIUKhyHOUGKXsNwoWenpRQ30ASY3i9HsQqc4hZzzLbYLiyLBi9aTtCRJcMjA4M0A5k3Z6k8jmyGQpTKOmor6oXVV9302zLXXc4Qv/4Jte4Rt1Cul2301jtmOmrqazLIlRQvg24D1Lt9zi9ra54jJzWlUVyfskp0Ez04a5ey66VvhdzJLkRKCJm4KpyVJeagGOqVSSBTQbh8qxGaRZUjnylksVVO1myB/3Cm5BzY1JOBygL4toYApB6Y+ZQjjAjSkEp9owtn1TbROYzN0k66k3hOgIculj3yOWyyk2Wt1HkE5fOj3CGZ7OGSmH0h0+gXm0pmIt8PY/PivmSAOlbhpjq/SLDyPQ2h0MbpbtBTKmR+h6RF9AJoiAIC8u3KfAM/QaESWdudvVJawZBsPA7YiSWQ86Gy0Kk7uuAMF9IurW7Dm1uev44u7N8bHRtcAYzc59XV7Z/6Lpv09rYEari4dQXRG/SBAeCuN5/gG9kduZswsAAA==';\nimport 'src/components/AppBar.css.ts.vanilla.css?source=#H4sIAAAAAAAAE7VWyW7bMBC95yt4KWAXoUB5SRoFPTQoChRoTzn0UBQBJVI2G4oUSCpeiv57SWqxLUteEhcI4IicGc48vnnD4FOeP2D19BSunsd4MkXgzxUAGRNwTtlsbiLwgtUAQm1w8pxyuYA5L2Z2O8aaJbBgEOe5/VBw4zO8v/p7FbQChz5wbKPMlCwEgYnkUp0evu1pDwFgDZkgdFlHWX91X1Q7p/JswtPJeDLxxgvGOUzmWMxoBIzCQqdSZddA5jhhZuWTNnOaUeuXyDzP1iHYq+IaREpK85Nggw9k7eN8TIqcKsOE/LUfyMORS80MkyICONaSF4b2ZvGYKEpFU1J82dSOR/f5NqhVAHJs6JgMQoTeXQNk/4Yd+aM3pooFUZKRPgyr64sAuu/P0OYWIkWzMsXKrIK+calYtNn7XCjsfhtc0LChyynGvWC04L67JELHY+/CFh6G7fCttg7D/7GQjtivLKQKE0tFqHoyqqBNyFGpUnIJ9RwTuYgAE5oagPIlSDBPBjAE70/XLH8C1GxNh0OAzvWrdW5fTMc+zVqhEylsTGEGGqcUYkUx9FlDI3PP9tqQipcem/0jJjtHnJp5MwB2W6xcPjPKVm9BUjVXZ6rTUksxIUzMrA4AFExtr3eaRjTLbfM6B8J0zrEljpCCdhnfeLMz5xSzt7E1obZRqJVjjFCmy4lEzDwCo2BU5rvBexTc9pVwE+HEsBfaEr9g1Hcc0l1h7rx/lUFZXDk1YUKFsezLMBM/3HbTgVNf0Zl4GLo0PXhcmBXHps7dZabODnBu8rmyfhfasHRlC7XYCXuBKadLd4Yy9xtuQk5TuxdWl51aYy8OdikIP9zWJOBM0Ob5FQbTxnZRrcWSk/tap9jas77SDLt00kPmPDAOPGTueh8yWx3m0HALmLOZgMzQTFvZ8jzrRG+z5enj3bZXPRopzhi3wR1BOIV6pY0b8A8WvufvOHn031+s5R5+Nwi18a+h9xc0LS+1a5YMoN3cEdXXSKPMT1Btb3VQsvsYP8f6my1kd7Tht9G/O+a28lbsRsG4V7tib78D8obnjQgexj3DS1h1X+3QUvJXyNoJHRNfqmPi3ekTc5k8d4GVlE9u1wDyhSp3mOUD5yzXTLf4y8ScKrbP9GZ9Pzzpm5oOYuVKKu8JF0Z2+h8cpcfEmFxGjHuKcP/YNP4BuwZEPN0OAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var appBar = _7a468({defaultClassName:'AppBar__1yk3a451 f__dhthxq4 f__dhthxq0 f__dhthxqh f__dhthxqc AppScreen__1dlf4347',variantClassNames:{border:{true:'AppBar_border_true__1yk3a452'}},defaultVariants:{},compoundVariants:[]});\nexport var backButton = 'AppBar__1yk3a456 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi';\nexport var center = 'f__dhthxq9 f__dhthxq7 f__dhthxq8 AppBar__1yk3a450';\nexport var centerMain = _7a468({defaultClassName:'AppBar__1yk3a459',variantClassNames:{hasLeft:{true:'AppBar_hasLeft_true__1yk3a45a'}},defaultVariants:{},compoundVariants:[]});\nexport var centerMainEdge = 'AppBar__1yk3a45b f__dhthxqi f__dhthxq4 f__dhthxq2 f__dhthxqf';\nexport var centerText = 'AppBar__1yk3a45c f__dhthxqc f__dhthxqd f__dhthxq0';\nexport var closeButton = 'AppBar__1yk3a456 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi';\nexport var container = 'AppBar__1yk3a454 f__dhthxqa f__dhthxq7 f__dhthxqc';\nexport var left = 'AppBar__1yk3a455 f__dhthxq9 f__dhthxq7 f__dhthxq1 AppBar__1yk3a450';\nexport var right = 'AppBar__1yk3a45d f__dhthxq9 f__dhthxq7 f__dhthxq1 f__dhthxq5 AppBar__1yk3a450';\nexport var safeArea = 'AppBar__1yk3a453';", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/AppScreen.css.ts.vanilla.css?source=#H4sIAAAAAAAAE71WwY7aMBC98xW+VAIVo2TZbtugHlr10nOPVbWa2CYxOLblONBS9d9rJxDYrpMlNKqEBJZn3ryZecx48VHrr8QwJh8fYyrW98v7B/RrglAKZJsZVUmKiRLKJGgHZopxad3FWqg91qLKuMQplJzgimPKC/y312w1+T1ZPI/x9sYY1+K/q/GtAVlyy5VMmt9rZYpjjPPd58qA/26do9kcKQ2E25/XGHdQIGcKPuyRgQDLlnQaR9GrOYrcp8ud1+5HGgmKVu50wFxS9uNUpsMXf2Klr3zrF8+85Z4LgUkOMmPJCaQOZHNWMGdMlNbFIUKhyHOUGKXsNwoWenpRQ30ASY3i9HsQqc4hZzzLbYLiyLBi9aTtCRJcMjA4M0A5k3Z6k8jmyGQpTKOmor6oXVV9302zLXXc4Qv/4Jte4Rt1Cul2301jtmOmrqazLIlRQvg24D1Lt9zi9ra54jJzWlUVyfskp0Ez04a5ey66VvhdzJLkRKCJm4KpyVJeagGOqVSSBTQbh8qxGaRZUjnylksVVO1myB/3Cm5BzY1JOBygL4toYApB6Y+ZQjjAjSkEp9owtn1TbROYzN0k66k3hOgIculj3yOWyyk2Wt1HkE5fOj3CGZ7OGSmH0h0+gXm0pmIt8PY/PivmSAOlbhpjq/SLDyPQ2h0MbpbtBTKmR+h6RF9AJoiAIC8u3KfAM/QaESWdudvVJawZBsPA7YiSWQ86Gy0Kk7uuAMF9IurW7Dm1uev44u7N8bHRtcAYzc59XV7Z/6Lpv09rYEari4dQXRG/SBAeCuN5/gG9kduZswsAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var allTransitions = 'AppScreen__1dlf4348';\nexport var appScreen = _7a468({defaultClassName:'f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc',variantClassNames:{transitionState:{'enter-active':'AppScreen__1dlf4349','enter-done':'AppScreen__1dlf434a','exit-active':'AppScreen__1dlf434b','exit-done':'AppScreen__1dlf434c'}},defaultVariants:{},compoundVariants:[]});\nexport var background = 'AppScreen__1dlf4347';\nexport var dim = 'AppScreen__1dlf434i f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 AppScreen__1dlf4346 AppScreen__1dlf4348';\nexport var edge = _7a468({defaultClassName:'AppScreen__1dlf434l f__dhthxq4 f__dhthxq2 f__dhthxq3 f__dhthxq1',variantClassNames:{hasAppBar:{true:'AppScreen_hasAppBar_true__1dlf434m'}},defaultVariants:{},compoundVariants:[]});\nexport var enterActive = 'AppScreen__1dlf4349';\nexport var enterDone = 'AppScreen__1dlf434a';\nexport var exitActive = 'AppScreen__1dlf434b';\nexport var exitDone = 'AppScreen__1dlf434c';\nexport var paper = _7a468({defaultClassName:'AppScreen__1dlf434j f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 AppScreen__1dlf4347 AppScreen__1dlf4348',variantClassNames:{hasAppBar:{true:'AppScreen_hasAppBar_true__1dlf434k f__dhthxqg'}},defaultVariants:{},compoundVariants:[]});\nexport var vars = {transitionDuration:'var(--transitionDuration__1dlf4340)',zIndexes:{dim:'var(--zIndexes-dim__1dlf4341)',paper:'var(--zIndexes-paper__1dlf4342)',edge:'var(--zIndexes-edge__1dlf4343)',appBar:'var(--zIndexes-appBar__1dlf4344)'},appBar:{center:{mainWidth:'var(--appBar-center-mainWidth__1dlf4345)'}}};", "/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\nimport { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { useRef } from \"react\";\n\nimport { useLazy, useNullableActivity, useStyleEffect } from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./BottomSheet.css\";\n\nexport type BottomSheetProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"dimBackgroundColor\">\n> &\n Partial<GlobalVars[\"bottomSheet\"]> & {\n onOutsideClick?: React.MouseEventHandler;\n children: React.ReactNode;\n };\nconst BottomSheet: React.FC<BottomSheetProps> = ({\n borderRadius = \"1rem\",\n backgroundColor,\n dimBackgroundColor,\n onOutsideClick,\n children,\n}) => {\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const containerRef = useRef<HTMLDivElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n\n useStyleEffect({\n styleName: \"hide\",\n refs: [containerRef],\n });\n useStyleEffect({\n styleName: \"offset\",\n refs: [paperRef],\n });\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [paperRef],\n });\n\n const popLock = useRef(false);\n\n const onDimClick: React.MouseEventHandler = (e) => {\n onOutsideClick?.(e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (popLock.current) {\n return;\n }\n popLock.current = true;\n\n pop();\n };\n const onPaperClick: React.MouseEventHandler = (e) => {\n e.stopPropagation();\n };\n\n const zIndexBase = (activity?.zIndex ?? 0) * 5 + 3;\n const zIndexPaper = (activity?.zIndex ?? 0) * 5 + 4;\n const transitionState = activity?.transitionState ?? \"enter-done\";\n\n return (\n <div\n className={css.container({\n transitionState: useLazy(transitionState),\n })}\n ref={containerRef}\n style={assignInlineVars(\n compactMap({\n [globalVars.bottomSheet.borderRadius]: borderRadius,\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [css.vars.zIndexes.dim]: `${zIndexBase}`,\n [css.vars.zIndexes.paper]: `${zIndexPaper}`,\n [css.vars.transitionDuration]:\n transitionState === \"enter-active\" ||\n transitionState === \"exit-active\"\n ? `var(--stackflow-transition-duration)`\n : \"0ms\",\n }),\n )}\n >\n <div className={css.dim} ref={paperRef} onClick={onDimClick}>\n <div className={css.paper} onClick={onPaperClick}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nBottomSheet.displayName = \"BottomSheet\";\n\nexport default BottomSheet;\n", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/BottomSheet.css.ts.vanilla.css?source=#H4sIAAAAAAAAE6VT3U7DIBS+71NwY7IlPQtN1ZnuznjjtQ+wUGAtkcIC1OmM7y5U20ZT3GaTJpSf7+ccPlb32jndPNWcu+02q11+V+McvScIOUOUFU5oVaAXYhYA48pDa0gYBwhebpKPZDXFth7Zdto0xdevJI7nbJFhfJUi7L84AesISkKfK6NbxYBqqU1vyjq/sZP6AHvZVkJBSayg0ApgooHfKK+C0BGEYvy1Zzg+hhm3ATCIZt1JvSdUuLcC4ai7azRtOp1ev4kc72oc5LKo3O1lcuuz5OLV8X/2frLvB8Fc7Yvzdx6mpTaMGzCEidaeQdnZAxv8wQ/schYWh/KDOSmB1kRVvBjTmvZN2sQz7NP7HeOZmeGXZYb/9bDw8KrmxCrmKBKrU46ibfoES/9iF4cEAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc',variantClassNames:{transitionState:{'enter-active':'BottomSheet__1ht38h04','enter-done':'BottomSheet__1ht38h05','exit-active':'BottomSheet__1ht38h06','exit-done':'BottomSheet__1ht38h07'}},defaultVariants:{},compoundVariants:[]});\nexport var dim = 'BottomSheet__1ht38h0d f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc f__dhthxqa f__dhthxq7 BottomSheet__1ht38h03';\nexport var enterActive = 'BottomSheet__1ht38h04';\nexport var enterDone = 'BottomSheet__1ht38h05';\nexport var exitActive = 'BottomSheet__1ht38h06';\nexport var exitDone = 'BottomSheet__1ht38h07';\nexport var paper = 'BottomSheet__1ht38h0e f__dhthxqc BottomSheet__1ht38h03';\nexport var vars = {transitionDuration:'var(--transitionDuration__1ht38h00)',zIndexes:{dim:'var(--zIndexes-dim__1ht38h01)',paper:'var(--zIndexes-paper__1ht38h02)'}};", "/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\nimport { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { useRef } from \"react\";\n\nimport { useLazy, useNullableActivity, useStyleEffect } from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./Modal.css\";\n\nexport type ModalProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"dimBackgroundColor\">\n> &\n Partial<GlobalVars[\"modal\"]> & {\n onOutsideClick?: React.MouseEventHandler;\n children: React.ReactNode;\n };\nconst Modal: React.FC<ModalProps> = ({\n backgroundColor,\n dimBackgroundColor,\n borderRadius = \"1rem\",\n onOutsideClick,\n children,\n}) => {\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const containerRef = useRef<HTMLDivElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n\n useStyleEffect({\n styleName: \"hide\",\n refs: [containerRef],\n });\n useStyleEffect({\n styleName: \"offset\",\n refs: [paperRef],\n });\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [paperRef],\n });\n\n const popLock = useRef(false);\n\n const onDimClick: React.MouseEventHandler = (e) => {\n onOutsideClick?.(e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (popLock.current) {\n return;\n }\n popLock.current = true;\n\n pop();\n };\n const onPaperClick: React.MouseEventHandler = (e) => {\n e.stopPropagation();\n };\n\n const zIndexBase = (activity?.zIndex ?? 0) * 5 + 3;\n const zIndexPaper = (activity?.zIndex ?? 0) * 5 + 4;\n const transitionState = activity?.transitionState ?? \"enter-done\";\n\n return (\n <div\n className={css.container({\n transitionState: useLazy(transitionState),\n })}\n ref={containerRef}\n style={assignInlineVars(\n compactMap({\n [globalVars.bottomSheet.borderRadius]: borderRadius,\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [css.vars.zIndexes.dim]: `${zIndexBase}`,\n [css.vars.zIndexes.paper]: `${zIndexPaper}`,\n [css.vars.transitionDuration]:\n transitionState === \"enter-active\" ||\n transitionState === \"exit-active\"\n ? `var(--stackflow-transition-duration)`\n : \"0ms\",\n }),\n )}\n >\n <div className={css.dim} ref={paperRef} onClick={onDimClick}>\n <div className={css.paper} onClick={onPaperClick}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nModal.displayName = \"Modal\";\n\nexport default Modal;\n", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/Modal.css.ts.vanilla.css?source=#H4sIAAAAAAAAE51T0W6CMBR99yv6sgQT2hQZ0+HrXvawbzCXtmKzQk1bpnPZv6+AaECcbkkT2ttzzj339kLeNAe1WiX6kC9YjL4mCDkDpZVO6jJFH2ACjM+Rl8pA/e0YdLqcfE9IT2V+VllrU6TtVoETMQ8iSh9CRP0aYfKGmQF7z42uSo6ZVtp0LqzzF2uld3irqlyWOAMrGa4k5rLAQ5aXR+iAZcnFvlM4vNYnYWtClzNqgHoLTLrPFNFLV49o4DIcBJIhoCnjJBldSj7dkpz/LjniUvyzd6N920nuNt65f6z6WIDxHJ8WzUhiRFHHMr3HdgNc73x8u0eUPM3qOw+J583G5BkEtH1sv0iUTMMGSpITdHEFOuugcdRCyfM11WnrxnBhsAEuK3tH0do5XXj/Qjjc4x7LVwqzDZS5SM+DHHb9X/bH2zJQIojI3ydJ3JokMfyVjrn6me4YsItMwwG7lmmsqh+//tn1NQQAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc',variantClassNames:{transitionState:{'enter-active':'Modal__5ozg8c4','enter-done':'Modal__5ozg8c5','exit-active':'Modal__5ozg8c6','exit-done':'Modal__5ozg8c7'}},defaultVariants:{},compoundVariants:[]});\nexport var dim = 'Modal__5ozg8cd f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc f__dhthxq9 f__dhthxq7 f__dhthxqb Modal__5ozg8c3';\nexport var enterActive = 'Modal__5ozg8c4';\nexport var enterDone = 'Modal__5ozg8c5';\nexport var exitActive = 'Modal__5ozg8c6';\nexport var exitDone = 'Modal__5ozg8c7';\nexport var paper = 'Modal__5ozg8ce f__dhthxqc Modal__5ozg8c3';\nexport var vars = {transitionDuration:'var(--transitionDuration__5ozg8c0)',zIndexes:{dim:'var(--zIndexes-dim__5ozg8c1)',paper:'var(--zIndexes-paper__5ozg8c2)'}};"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "import_react", "import_dynamic", "import_react", "import_react", "import_react", "import_react", "refs", "refs", "refs", "import_react", "import_dynamic", "import_react", "React", "import_react", "React", "_7a468", "import_createRuntimeFn", "_7a468", "_7a468", "_7a468", "React", "backButton", "closeButton", "_a", "appBar", "_a", "_b", "React", "import_react", "import_dynamic", "import_createRuntimeFn", "container", "_7a468", "dim", "paper", "vars", "React", "container", "vars", "dim", "paper", "import_react", "import_dynamic", "import_createRuntimeFn", "container", "_7a468", "dim", "paper", "vars", "React", "container", "vars", "dim", "paper"]
|
|
4
|
+
"sourcesContent": ["export { basicUIPlugin } from \"./basicUIPlugin\";\nexport {\n default as AppScreen,\n AppScreenContext,\n AppScreenProps,\n useAppScreen,\n} from \"./components/AppScreen\";\nexport {\n default as BottomSheet,\n BottomSheetProps,\n} from \"./components/BottomSheet\";\nexport { default as Modal, ModalProps } from \"./components/Modal\";\nexport { globalVars as cssVars } from \"./theme.css\";\n", "import type { StackflowReactPlugin } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { createContext, useContext } from \"react\";\n\nimport * as theme from \"./theme.css\";\nimport type { RecursivePartial } from \"./utils\";\nimport { compact, compactMap } from \"./utils\";\n\ntype BasicUIPluginOptions = RecursivePartial<theme.GlobalVars> & {\n theme: \"android\" | \"cupertino\";\n rootClassName?: string;\n appBar?: {\n backButton?:\n | {\n renderIcon?: () => React.ReactNode;\n ariaLabel?: string;\n }\n | {\n render?: () => React.ReactNode;\n };\n closeButton?:\n | {\n renderIcon?: () => React.ReactNode;\n ariaLabel?: string;\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n }\n | {\n render?: () => React.ReactNode;\n };\n };\n};\n\nconst GlobalOptionsContext = createContext<BasicUIPluginOptions>({\n theme: \"android\",\n});\n\nexport const GlobalOptionsProvider = GlobalOptionsContext.Provider;\n\nexport function useGlobalOptions() {\n return useContext(GlobalOptionsContext);\n}\n\nexport const basicUIPlugin: (\n options: BasicUIPluginOptions,\n) => StackflowReactPlugin = (options) => () => ({\n key: \"basic-ui\",\n wrapStack({ stack }) {\n return (\n <GlobalOptionsProvider value={options}>\n <div\n className={\n typeof window !== \"undefined\"\n ? compact([theme[options.theme], options.rootClassName]).join(\" \")\n : options.rootClassName\n }\n style={assignInlineVars(\n compactMap({\n [theme.globalVars.backgroundColor]: options.backgroundColor,\n [theme.globalVars.dimBackgroundColor]: options.dimBackgroundColor,\n [theme.globalVars.appBar.borderColor]:\n options.appBar?.borderColor,\n [theme.globalVars.appBar.borderSize]: options.appBar?.borderSize,\n [theme.globalVars.appBar.height]: options.appBar?.height,\n [theme.globalVars.appBar.iconColor]: options.appBar?.iconColor,\n [theme.globalVars.appBar.textColor]: options.appBar?.textColor,\n [theme.globalVars.bottomSheet.borderRadius]:\n options.bottomSheet?.borderRadius,\n [theme.globalVars.modal.borderRadius]:\n options.modal?.borderRadius,\n }),\n )}\n >\n {stack.render()}\n </div>\n </GlobalOptionsProvider>\n );\n },\n});\n", "import 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nexport var android = 'theme__1coppmz0';\nexport var cupertino = 'theme__1coppmz1';\nexport var globalVars = {backgroundColor:'var(--stackflow-plugin-basic-ui-background-color)',dimBackgroundColor:'var(--stackflow-plugin-basic-ui-dim-background-color)',appBar:{borderColor:'var(--stackflow-plugin-basic-ui-app-bar-border-color)',borderSize:'var(--stackflow-plugin-basic-ui-app-bar-border-size)',height:'var(--stackflow-plugin-basic-ui-app-bar-height)',heightTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-height-transition-duration)',minHeight:'var(--stackflow-plugin-basic-ui-app-bar-min-height)',iconColor:'var(--stackflow-plugin-basic-ui-app-bar-icon-color)',textColor:'var(--stackflow-plugin-basic-ui-app-bar-text-color)',backgroundColor:'var(--stackflow-plugin-basic-ui-app-bar-background-color)'},bottomSheet:{borderRadius:'var(--stackflow-plugin-basic-ui-bottom-sheet-border-radius)'},modal:{borderRadius:'var(--stackflow-plugin-basic-ui-bottom-sheet-border-radius)'}};\nexport var rootAndroid = ':root[data-stackflow-plugin-basic-ui-theme=android]';\nexport var rootCupertino = ':root[data-stackflow-plugin-basic-ui-theme=cupertino]';", "export function compact<T>(arr: Array<T>): Array<NonNullable<T>> {\n return arr.filter(\n (item): item is NonNullable<typeof item> =>\n item !== undefined && item !== null,\n );\n}\n", "export function compactMap<T extends {}>(\n obj: T,\n): {\n [key in keyof T]: NonNullable<T[key]>;\n} {\n return Object.entries(obj).reduce<any>((acc, [key, value]) => {\n if (value !== null && value !== undefined) {\n acc[key] = value;\n }\n\n return acc;\n }, {});\n}\n", "export function listenOnce<T extends HTMLElement>(\n el: T,\n type: keyof HTMLElementEventMap,\n cb: () => void,\n) {\n const listener = () => {\n el.removeEventListener(type, listener);\n cb();\n };\n\n el.addEventListener(type, listener);\n}\n", "export const listenResize = (cb: () => void) => {\n cb();\n window.addEventListener(\"resize\", cb);\n\n return () => {\n window.removeEventListener(\"resize\", cb);\n };\n};\n", "export const noop = () => {};\n", "// https://github.com/MingruiZhang/react-animate-mount/blob/32300c04a4fdfa97724b70aaaf0c0f403d6da247/src/Animate.js#L171-L179\nexport function requestNextFrame(cb: () => void) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n cb();\n });\n });\n}\n", "/* eslint-disable no-param-reassign */\n\nimport { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { createContext, useContext, useMemo, useRef } from \"react\";\n\nimport { useGlobalOptions } from \"../basicUIPlugin\";\nimport {\n useLazy,\n useNullableActivity,\n useStyleEffectHide,\n useStyleEffectOffset,\n useStyleEffectSwipeBack,\n} from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport type { PropOf } from \"../utils\";\nimport { compactMap } from \"../utils\";\nimport AppBar from \"./AppBar\";\nimport * as css from \"./AppScreen.css\";\n\nexport type AppScreenContext = {\n scroll: (args: { top: number }) => void;\n};\nconst Context = createContext<AppScreenContext>(null as any);\n\nexport function useAppScreen() {\n return useContext(Context);\n}\n\nexport type AppScreenProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"dimBackgroundColor\">\n> & {\n appBar?: Omit<PropOf<typeof AppBar>, \"theme\" | \"ref\" | \"key\">;\n preventSwipeBack?: boolean;\n children: React.ReactNode;\n};\nconst AppScreen: React.FC<AppScreenProps> = ({\n backgroundColor,\n dimBackgroundColor,\n appBar,\n preventSwipeBack,\n children,\n}) => {\n const globalOptions = useGlobalOptions();\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const appScreenRef = useRef<HTMLDivElement>(null);\n const dimRef = useRef<HTMLDivElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n const edgeRef = useRef<HTMLDivElement>(null);\n const appBarRef = useRef<HTMLDivElement>(null);\n\n useStyleEffectHide({\n refs: [appScreenRef],\n hasEffect: true,\n });\n useStyleEffectOffset({\n theme: globalOptions.theme,\n refs:\n globalOptions.theme === \"cupertino\" ? [paperRef] : [paperRef, appBarRef],\n hasEffect: true,\n });\n useStyleEffectSwipeBack({\n theme: globalOptions.theme,\n dimRef,\n edgeRef,\n paperRef,\n hasEffect: true,\n onSwiped() {\n pop();\n },\n });\n\n const hasAppBar = !!appBar;\n\n const zIndexBase = (activity?.zIndex ?? 0) * 5;\n const zIndexDim = zIndexBase;\n const zIndexPaper =\n zIndexBase + (globalOptions.theme === \"cupertino\" && hasAppBar ? 1 : 3);\n const zIndexEdge = zIndexBase + 4;\n const zIndexAppBar = zIndexBase + 7;\n\n const transitionState = activity?.transitionState ?? \"enter-done\";\n const lazyTransitionState = useLazy(transitionState);\n\n const onAppBarTopClick: React.MouseEventHandler = (e) => {\n appBar?.onTopClick?.(e);\n\n if (!e.defaultPrevented) {\n paperRef.current?.scroll({\n top: 0,\n behavior: \"smooth\",\n });\n }\n };\n\n return (\n <Context.Provider\n value={useMemo(\n () => ({\n scroll({ top }) {\n paperRef?.current?.scroll({\n top,\n behavior: \"smooth\",\n });\n },\n }),\n [paperRef],\n )}\n >\n <div\n ref={appScreenRef}\n className={css.appScreen({\n transitionState:\n transitionState === \"enter-done\" || transitionState === \"exit-done\"\n ? transitionState\n : lazyTransitionState,\n })}\n style={assignInlineVars(\n compactMap({\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [globalVars.appBar.height]: appBar?.height,\n [globalVars.appBar.heightTransitionDuration]:\n appBar?.heightTransitionDuration,\n [css.vars.zIndexes.dim]: `${zIndexDim}`,\n [css.vars.zIndexes.paper]: `${zIndexPaper}`,\n [css.vars.zIndexes.edge]: `${zIndexEdge}`,\n [css.vars.zIndexes.appBar]: `${zIndexAppBar}`,\n [css.vars.transitionDuration]:\n transitionState === \"enter-active\" ||\n transitionState === \"exit-active\"\n ? `var(--stackflow-transition-duration)`\n : \"0ms\",\n }),\n )}\n >\n <div className={css.dim} ref={dimRef} />\n {appBar && (\n <AppBar {...appBar} ref={appBarRef} onTopClick={onAppBarTopClick} />\n )}\n <div\n key={activity?.id}\n className={css.paper({\n hasAppBar,\n })}\n ref={paperRef}\n >\n {children}\n </div>\n {!activity?.isRoot &&\n globalOptions.theme === \"cupertino\" &&\n !preventSwipeBack && (\n <div className={css.edge({ hasAppBar })} ref={edgeRef} />\n )}\n </div>\n </Context.Provider>\n );\n};\n\nAppScreen.displayName = \"AppScreen\";\n\nexport default AppScreen;\n", "import { useEffect, useState } from \"react\";\n\nimport { requestNextFrame } from \"../utils\";\n\nexport function useLazy<T>(value: T) {\n const [state, setState] = useState<T | undefined>(undefined);\n\n useEffect(() => {\n requestNextFrame(() => {\n setState(value);\n });\n }, [value]);\n\n return state;\n}\n", "import type React from \"react\";\nimport { useEffect, useState } from \"react\";\n\nimport { listenResize, noop } from \"../utils\";\n\nexport function useMaxWidth({\n outerRef,\n innerRef,\n enable,\n}: {\n outerRef: React.ForwardedRef<any>;\n innerRef: React.MutableRefObject<any>;\n enable: boolean;\n}) {\n const [maxWidth, setMaxWidth] = useState<number | undefined>(undefined);\n\n useEffect(() => {\n const $outer = outerRef && \"current\" in outerRef && outerRef.current;\n const $inner = innerRef.current;\n\n if (!enable || !$outer || !$inner) {\n return noop;\n }\n\n const dispose = listenResize(() => {\n const screenWidth = $outer.clientWidth;\n\n const leftWidth = $inner.offsetLeft;\n const centerWidth = $inner.clientWidth;\n const rightWidth = screenWidth - leftWidth - centerWidth;\n\n const sideMargin = Math.max(leftWidth, rightWidth);\n\n setMaxWidth(screenWidth - 2 * sideMargin);\n });\n\n return dispose;\n }, []);\n\n return {\n maxWidth,\n };\n}\n", "import type { Activity } from \"@stackflow/core\";\nimport { useActivity } from \"@stackflow/react\";\n\nexport function useNullableActivity() {\n return useActivity() as Activity | null;\n}\n", "import type { ActivityTransitionState } from \"@stackflow/core\";\nimport type React from \"react\";\nimport { useEffect } from \"react\";\n\nimport { useNullableActivity } from \"./useNullableActivity\";\n\nconst connections: {\n [styleName: string]: Map<\n number,\n {\n refs: Array<React.RefObject<any>>;\n hasEffect: boolean;\n }\n >;\n} = {};\n\nexport function useStyleEffect({\n styleName,\n refs,\n effect,\n}: {\n styleName: string;\n refs: Array<React.RefObject<any>>;\n effect?: (params: {\n activityTransitionState: ActivityTransitionState;\n refs: Array<React.RefObject<HTMLElement>>;\n }) => (() => void) | void;\n}) {\n const activity = useNullableActivity();\n\n useEffect(() => {\n if (!activity) {\n return () => {};\n }\n if (!connections[styleName]) {\n connections[styleName] = new Map();\n }\n\n connections[styleName].set(activity.zIndex, {\n refs,\n hasEffect: !!effect,\n });\n\n return () => {\n connections[styleName].delete(activity.zIndex);\n };\n }, [activity?.id, refs, effect]);\n\n useEffect(() => {\n if (!activity) {\n return () => {};\n }\n if (!effect) {\n return () => {};\n }\n\n const refs = (() => {\n let arr: Array<React.RefObject<any>> = [];\n\n for (let i = 1; i <= activity.zIndex; i += 1) {\n const connection = connections[styleName].get(activity.zIndex - i);\n\n if (connection?.refs) {\n arr = [...arr, ...connection.refs];\n }\n if (connection?.hasEffect) {\n break;\n }\n }\n\n return arr;\n })();\n\n const cleanup = effect({\n activityTransitionState: activity.transitionState,\n refs,\n });\n\n return () => {\n cleanup?.();\n };\n }, [activity?.transitionState]);\n}\n", "/* eslint-disable no-param-reassign */\n\nimport type React from \"react\";\n\nimport { useStyleEffect } from \"./useStyleEffect\";\n\nexport function useStyleEffectHide({\n refs,\n hasEffect,\n}: {\n refs: Array<React.RefObject<any>>;\n hasEffect?: boolean;\n}) {\n useStyleEffect({\n styleName: \"hide\",\n refs,\n effect: hasEffect\n ? ({ activityTransitionState, refs }) => {\n const cleanup = () => {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n const $ref = ref.current;\n\n $ref.style.display = \"\";\n });\n };\n\n switch (activityTransitionState) {\n case \"enter-done\": {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n const $ref = ref.current;\n\n $ref.style.display = \"none\";\n });\n\n return () => {\n cleanup();\n };\n }\n default: {\n cleanup();\n\n return () => {};\n }\n }\n }\n : undefined,\n });\n}\n", "/* eslint-disable no-param-reassign */\n\nimport { listenOnce, requestNextFrame } from \"../utils\";\nimport { useStyleEffect } from \"./useStyleEffect\";\n\nexport const OFFSET_PX_ANDROID = 32;\nexport const OFFSET_PX_CUPERTINO = 80;\n\nexport function useStyleEffectOffset({\n refs,\n theme,\n hasEffect,\n}: {\n refs: Array<React.RefObject<any>>;\n theme: \"android\" | \"cupertino\";\n hasEffect?: boolean;\n}) {\n useStyleEffect({\n styleName: \"offset\",\n refs,\n effect: hasEffect\n ? ({ activityTransitionState, refs }) => {\n const transform =\n theme === \"cupertino\"\n ? `translate3d(-${OFFSET_PX_CUPERTINO / 16}rem, 0, 0)`\n : `translate3d(0, -${OFFSET_PX_ANDROID / 16}rem, 0)`;\n\n const cleanup = () => {\n requestNextFrame(() => {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n const $el = ref.current;\n\n $el.style.transform = \"\";\n\n listenOnce($el, \"transitionend\", () => {\n $el.style.transition = \"\";\n });\n });\n });\n };\n\n switch (activityTransitionState) {\n case \"enter-active\":\n case \"enter-done\": {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n ref.current.style.transition = `var(--stackflow-transition-duration)`;\n ref.current.style.transform = transform;\n });\n\n switch (activityTransitionState) {\n case \"enter-done\":\n return () => {\n cleanup();\n };\n case \"enter-active\":\n default:\n return () => {};\n }\n }\n case \"exit-active\":\n case \"exit-done\": {\n requestNextFrame(() => {\n cleanup();\n });\n\n return () => {};\n }\n default: {\n return () => {};\n }\n }\n }\n : undefined,\n });\n}\n", "/* eslint-disable no-param-reassign */\n\nimport { listenOnce } from \"../utils\";\nimport { useStyleEffect } from \"./useStyleEffect\";\nimport { OFFSET_PX_CUPERTINO } from \"./useStyleEffectOffset\";\n\nexport function useStyleEffectSwipeBack({\n theme,\n dimRef,\n edgeRef,\n paperRef,\n hasEffect,\n onSwiped,\n}: {\n theme: \"android\" | \"cupertino\";\n dimRef: React.RefObject<HTMLDivElement>;\n edgeRef: React.RefObject<HTMLDivElement>;\n paperRef: React.RefObject<HTMLDivElement>;\n hasEffect?: boolean;\n onSwiped?: () => void;\n}) {\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [paperRef],\n effect: hasEffect\n ? ({ refs }) => {\n if (theme !== \"cupertino\") {\n return () => {};\n }\n\n if (!dimRef.current || !edgeRef.current || !paperRef.current) {\n return () => {};\n }\n\n const $dim = dimRef.current;\n const $edge = edgeRef.current;\n const $paper = paperRef.current;\n\n let x0: number | null = null;\n let t0: number | null = null;\n let x: number | null = null;\n\n let cachedRefs: Array<{\n style: {\n transform: string;\n transition: string;\n };\n parentElement?: {\n style: {\n display: string;\n };\n };\n }> = [];\n\n const resetState = () => {\n x0 = null;\n t0 = null;\n x = null;\n cachedRefs = [];\n };\n\n let _rAFLock = false;\n\n function movePaper(dx: number) {\n if (!_rAFLock) {\n _rAFLock = true;\n\n requestAnimationFrame(() => {\n const p = dx / $paper.clientWidth;\n\n $dim.style.opacity = `${1 - p}`;\n $dim.style.transition = \"0s\";\n\n $paper.style.overflowY = \"hidden\";\n $paper.style.transform = `translate3d(${dx}px, 0, 0)`;\n $paper.style.transition = \"0s\";\n\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n ref.current.style.transform = `translate3d(${\n -1 * (1 - p) * OFFSET_PX_CUPERTINO\n }px, 0, 0)`;\n ref.current.style.transition = \"0s\";\n\n if (ref.current.parentElement?.style.display === \"none\") {\n ref.current.parentElement.style.display = \"block\";\n }\n });\n\n _rAFLock = false;\n });\n }\n }\n\n function resetPaper({ swiped }: { swiped: boolean }): Promise<void> {\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n $dim.style.opacity = `${swiped ? 0 : 1}`;\n $dim.style.transition = \"var(--stackflow-transition-duration)\";\n\n $paper.style.overflowY = \"hidden\";\n $paper.style.transform = `translateX(${swiped ? \"100%\" : \"0\"})`;\n $paper.style.transition =\n \"var(--stackflow-transition-duration)\";\n\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n ref.current.style.transition = `var(--stackflow-transition-duration)`;\n ref.current.style.transform = `translate3d(${\n swiped ? \"0\" : `-${OFFSET_PX_CUPERTINO / 16}rem`\n }, 0, 0)`;\n });\n\n const _cachedRefs = [...cachedRefs];\n\n resolve();\n\n listenOnce($paper, \"transitionend\", () => {\n $dim.style.opacity = \"\";\n $paper.style.overflowY = \"\";\n $paper.style.transform = \"\";\n\n refs.forEach((ref, i) => {\n if (!ref.current) {\n return;\n }\n\n const _cachedRef = _cachedRefs[i];\n\n if (swiped) {\n ref.current.style.transition = \"\";\n ref.current.style.transform = \"\";\n\n if (ref.current.parentElement) {\n ref.current.parentElement.style.display = \"\";\n }\n } else if (_cachedRef) {\n ref.current.style.transition =\n _cachedRef.style.transition;\n ref.current.style.transform = _cachedRef.style.transform;\n\n if (\n ref.current.parentElement &&\n _cachedRef.parentElement\n ) {\n ref.current.parentElement.style.display =\n _cachedRef.parentElement.style.display;\n }\n }\n });\n });\n });\n });\n }\n\n const onTouchStart = (e: TouchEvent) => {\n const { activeElement } = document as any;\n\n activeElement?.blur?.();\n // eslint-disable-next-line no-multi-assign\n x0 = x = e.touches[0].clientX;\n t0 = Date.now();\n\n cachedRefs = refs.map((ref) => {\n if (!ref.current) {\n return {\n style: {\n transform: \"\",\n transition: \"\",\n },\n };\n }\n\n return {\n style: {\n transform: ref.current.style.transform,\n transition: ref.current.style.transition,\n },\n parentElement: ref.current.parentElement\n ? {\n style: {\n display: ref.current.parentElement.style.display,\n },\n }\n : undefined,\n };\n });\n };\n\n const onTouchMove = (e: TouchEvent) => {\n if (!x0) {\n resetState();\n return;\n }\n\n x = e.touches[0].clientX;\n\n movePaper(x - x0);\n };\n\n const onTouchEnd = () => {\n if (!x0 || !t0 || !x) {\n resetState();\n return;\n }\n\n const t = Date.now();\n const v = (x - x0) / (t - t0);\n const swiped = v > 1 || x / $paper.clientWidth > 0.4;\n\n if (swiped) {\n onSwiped?.();\n }\n\n Promise.resolve()\n .then(() => resetPaper({ swiped }))\n .then(() => resetState());\n };\n\n $edge.addEventListener(\"touchstart\", onTouchStart, { passive: true });\n $edge.addEventListener(\"touchmove\", onTouchMove, { passive: true });\n $edge.addEventListener(\"touchend\", onTouchEnd, { passive: true });\n $edge.addEventListener(\"touchcancel\", onTouchEnd, { passive: true });\n\n return () => {\n $edge.removeEventListener(\"touchstart\", onTouchStart);\n $edge.removeEventListener(\"touchmove\", onTouchMove);\n $edge.removeEventListener(\"touchend\", onTouchEnd);\n $edge.removeEventListener(\"touchcancel\", onTouchEnd);\n };\n }\n : undefined,\n });\n}\n", "import { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { useRef } from \"react\";\n\nimport { IconBack, IconClose } from \"../assets\";\nimport { useGlobalOptions } from \"../basicUIPlugin\";\nimport { useMaxWidth, useNullableActivity } from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport { compactMap, noop } from \"../utils\";\nimport * as css from \"./AppBar.css\";\nimport * as appScreenCss from \"./AppScreen.css\";\n\ntype AppBarProps = Partial<\n Pick<\n GlobalVars[\"appBar\"],\n | \"borderColor\"\n | \"borderSize\"\n | \"height\"\n | \"heightTransitionDuration\"\n | \"iconColor\"\n | \"textColor\"\n | \"backgroundColor\"\n >\n> & {\n title?: React.ReactNode;\n appendLeft?: () => React.ReactNode;\n appendRight?: () => React.ReactNode;\n backButton?:\n | {\n renderIcon?: () => React.ReactNode;\n ariaLabel?: string;\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n }\n | {\n render?: () => React.ReactNode;\n };\n closeButton?:\n | {\n renderIcon?: () => React.ReactNode;\n ariaLabel?: string;\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n }\n | {\n render?: () => React.ReactNode;\n };\n closeButtonLocation?: \"left\" | \"right\";\n border?: boolean;\n onTopClick?: (e: React.MouseEvent) => void;\n};\nconst AppBar = React.forwardRef<HTMLDivElement, AppBarProps>(\n (\n {\n title,\n appendLeft,\n appendRight,\n backButton,\n closeButton,\n closeButtonLocation = \"left\",\n border = true,\n iconColor,\n textColor,\n borderColor,\n borderSize,\n height,\n backgroundColor,\n onTopClick,\n },\n ref,\n ) => {\n const actions = useActions();\n const activity = useNullableActivity();\n\n const globalOptions = useGlobalOptions();\n const globalCloseButton = globalOptions.appBar?.closeButton;\n const globalBackButton = globalOptions.appBar?.backButton;\n\n const centerRef = useRef<any>(null);\n\n const { maxWidth } = useMaxWidth({\n outerRef: ref,\n innerRef: centerRef,\n enable: globalOptions.theme === \"cupertino\",\n });\n\n const onBackClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (backButton && \"onClick\" in backButton && backButton.onClick) {\n backButton.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n actions.pop();\n }\n };\n\n const renderBackButton = () => {\n if (!activity) {\n return null;\n }\n if (activity.isRoot) {\n return null;\n }\n\n if (!backButton && !globalBackButton) {\n return (\n <button\n type=\"button\"\n className={css.backButton}\n onClick={onBackClick}\n >\n <IconBack />\n </button>\n );\n }\n\n if (backButton && \"render\" in backButton && backButton.render) {\n return backButton.render?.();\n }\n if (\n globalBackButton &&\n \"render\" in globalBackButton &&\n globalBackButton.render\n ) {\n return globalBackButton.render?.();\n }\n\n return (\n <button\n type=\"button\"\n className={css.backButton}\n aria-label={\n backButton && \"ariaLabel\" in backButton\n ? backButton.ariaLabel\n : globalBackButton && \"ariaLabel\" in globalBackButton\n ? globalBackButton.ariaLabel\n : undefined\n }\n onClick={onBackClick}\n >\n {(() => {\n if (\n backButton &&\n \"renderIcon\" in backButton &&\n backButton.renderIcon\n ) {\n return backButton.renderIcon();\n }\n if (\n globalBackButton &&\n \"renderIcon\" in globalBackButton &&\n globalBackButton.renderIcon\n ) {\n return globalBackButton.renderIcon();\n }\n\n return <IconBack />;\n })()}\n </button>\n );\n };\n\n const onCloseClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (closeButton && \"onClick\" in closeButton && closeButton.onClick) {\n closeButton.onClick(e);\n }\n\n if (\n !e.defaultPrevented &&\n globalCloseButton &&\n \"onClick\" in globalCloseButton\n ) {\n globalCloseButton.onClick?.(e);\n }\n };\n\n const renderCloseButton = () => {\n const isRoot = !activity || activity.isRoot;\n\n if ((!closeButton && !globalOptions.appBar?.closeButton) || !isRoot) {\n return null;\n }\n if (closeButton && \"render\" in closeButton && closeButton.render) {\n return closeButton.render();\n }\n if (\n globalCloseButton &&\n \"render\" in globalCloseButton &&\n globalCloseButton.render\n ) {\n return globalCloseButton.render();\n }\n\n return (\n <button\n type=\"button\"\n className={css.closeButton}\n aria-label={\n closeButton && \"ariaLabel\" in closeButton\n ? closeButton.ariaLabel\n : globalCloseButton && \"ariaLabel\" in globalCloseButton\n ? globalCloseButton.ariaLabel\n : undefined\n }\n onClick={onCloseClick}\n >\n {(() => {\n if (\n closeButton &&\n \"renderIcon\" in closeButton &&\n closeButton.renderIcon\n ) {\n return closeButton.renderIcon();\n }\n if (\n globalCloseButton &&\n \"renderIcon\" in globalCloseButton &&\n globalCloseButton.renderIcon\n ) {\n return globalCloseButton.renderIcon();\n }\n\n return <IconClose />;\n })()}\n </button>\n );\n };\n\n const hasLeft = !!(\n (closeButtonLocation === \"left\" && closeButton) ||\n backButton ||\n appendLeft\n );\n\n return (\n <div\n ref={ref}\n className={css.appBar({\n border,\n })}\n style={assignInlineVars(\n compactMap({\n [globalVars.appBar.iconColor]: iconColor,\n [globalVars.appBar.textColor]: textColor,\n [globalVars.appBar.borderColor]: borderColor,\n [globalVars.appBar.borderSize]: borderSize,\n [globalVars.appBar.height]: height,\n [globalVars.appBar.backgroundColor]:\n backgroundColor || globalVars.backgroundColor,\n [appScreenCss.vars.appBar.center.mainWidth]: `${maxWidth}px`,\n }),\n )}\n >\n <div className={css.safeArea} />\n <div className={css.container}>\n <div className={css.left}>\n {closeButtonLocation === \"left\" && renderCloseButton()}\n {renderBackButton()}\n {appendLeft?.()}\n </div>\n <div ref={centerRef} className={css.center}>\n <div\n className={css.centerMain({\n hasLeft,\n })}\n >\n {typeof title === \"string\" ? (\n <div className={css.centerText}>{title}</div>\n ) : (\n title\n )}\n <button\n className={css.centerMainEdge}\n type=\"button\"\n aria-hidden=\"true\"\n onClick={onTopClick}\n />\n </div>\n </div>\n <div className={css.right}>\n {appendRight?.()}\n {closeButtonLocation === \"right\" && renderCloseButton()}\n </div>\n </div>\n </div>\n );\n },\n);\n\nAppBar.displayName = \"AppBar\";\n\nexport default AppBar;\n", "import React from \"react\";\n\nconst IconBack: React.FC<{\n className?: string;\n}> = (props) => (\n <svg\n className={props.className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5659 5.56564C11.8783 5.25322 11.8783 4.74669 11.5659 4.43427C11.2535 4.12185 10.7469 4.12185 10.4345 4.43427L3.43451 11.4343C3.12209 11.7467 3.12209 12.2532 3.43451 12.5656L10.4345 19.5656C10.7469 19.8781 11.2535 19.8781 11.5659 19.5656C11.8783 19.2532 11.8783 18.7467 11.5659 18.4343L5.93157 12.8H20.0002C20.442 12.8 20.8002 12.4418 20.8002 12C20.8002 11.5581 20.442 11.2 20.0002 11.2H5.93157L11.5659 5.56564Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default IconBack;\n", "import React from \"react\";\n\nconst IconClose: React.FC<{\n className?: string;\n}> = (props) => (\n <svg\n className={props.className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.56588 5.43433C6.25346 5.12191 5.74693 5.12191 5.43451 5.43433C5.12209 5.74675 5.12209 6.25328 5.43451 6.5657L10.8688 12L5.43451 17.4343C5.12209 17.7467 5.12209 18.2533 5.43451 18.5657C5.74693 18.8781 6.25346 18.8781 6.56588 18.5657L12.0002 13.1314L17.4345 18.5657C17.7469 18.8781 18.2535 18.8781 18.5659 18.5657C18.8783 18.2533 18.8783 17.7467 18.5659 17.4343L13.1316 12L18.5659 6.5657C18.8783 6.25328 18.8783 5.74675 18.5659 5.43433C18.2535 5.12191 17.7469 5.12191 17.4345 5.43433L12.0002 10.8686L6.56588 5.43433Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.56588 5.43433C6.25346 5.12191 5.74693 5.12191 5.43451 5.43433C5.12209 5.74675 5.12209 6.25328 5.43451 6.5657L10.8688 12L5.43451 17.4343C5.12209 17.7467 5.12209 18.2533 5.43451 18.5657C5.74693 18.8781 6.25346 18.8781 6.56588 18.5657L12.0002 13.1314L17.4345 18.5657C17.7469 18.8781 18.2535 18.8781 18.5659 18.5657C18.8783 18.2533 18.8783 17.7467 18.5659 17.4343L13.1316 12L18.5659 6.5657C18.8783 6.25328 18.8783 5.74675 18.5659 5.43433C18.2535 5.12191 17.7469 5.12191 17.4345 5.43433L12.0002 10.8686L6.56588 5.43433Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default IconClose;\n", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/AppScreen.css.ts.vanilla.css?source=#H4sIAAAAAAAAE71WwY7aMBC98xW+VAIVo2TZbtugHlr10nOPVbWa2CYxOLblONBS9d9rJxDYrpMlNKqEBJZn3ryZecx48VHrr8QwJh8fYyrW98v7B/RrglAKZJsZVUmKiRLKJGgHZopxad3FWqg91qLKuMQplJzgimPKC/y312w1+T1ZPI/x9sYY1+K/q/GtAVlyy5VMmt9rZYpjjPPd58qA/26do9kcKQ2E25/XGHdQIGcKPuyRgQDLlnQaR9GrOYrcp8ud1+5HGgmKVu50wFxS9uNUpsMXf2Klr3zrF8+85Z4LgUkOMmPJCaQOZHNWMGdMlNbFIUKhyHOUGKXsNwoWenpRQ30ASY3i9HsQqc4hZzzLbYLiyLBi9aTtCRJcMjA4M0A5k3Z6k8jmyGQpTKOmor6oXVV9302zLXXc4Qv/4Jte4Rt1Cul2301jtmOmrqazLIlRQvg24D1Lt9zi9ra54jJzWlUVyfskp0Ez04a5ey66VvhdzJLkRKCJm4KpyVJeagGOqVSSBTQbh8qxGaRZUjnylksVVO1myB/3Cm5BzY1JOBygL4toYApB6Y+ZQjjAjSkEp9owtn1TbROYzN0k66k3hOgIculj3yOWyyk2Wt1HkE5fOj3CGZ7OGSmH0h0+gXm0pmIt8PY/PivmSAOlbhpjq/SLDyPQ2h0MbpbtBTKmR+h6RF9AJoiAIC8u3KfAM/QaESWdudvVJawZBsPA7YiSWQ86Gy0Kk7uuAMF9IurW7Dm1uev44u7N8bHRtcAYzc59XV7Z/6Lpv09rYEari4dQXRG/SBAeCuN5/gG9kduZswsAAA==';\nimport 'src/components/AppBar.css.ts.vanilla.css?source=#H4sIAAAAAAAAE7VWyW7bMBC95yt4KWAXoUB5SRoFPTQoChRoTzn0UBQBJVI2G4oUSCpeiv57SWqxLUteEhcI4IicGc48vnnD4FOeP2D19BSunsd4MkXgzxUAGRNwTtlsbiLwgtUAQm1w8pxyuYA5L2Z2O8aaJbBgEOe5/VBw4zO8v/p7FbQChz5wbKPMlCwEgYnkUp0evu1pDwFgDZkgdFlHWX91X1Q7p/JswtPJeDLxxgvGOUzmWMxoBIzCQqdSZddA5jhhZuWTNnOaUeuXyDzP1iHYq+IaREpK85Nggw9k7eN8TIqcKsOE/LUfyMORS80MkyICONaSF4b2ZvGYKEpFU1J82dSOR/f5NqhVAHJs6JgMQoTeXQNk/4Yd+aM3pooFUZKRPgyr64sAuu/P0OYWIkWzMsXKrIK+calYtNn7XCjsfhtc0LChyynGvWC04L67JELHY+/CFh6G7fCttg7D/7GQjtivLKQKE0tFqHoyqqBNyFGpUnIJ9RwTuYgAE5oagPIlSDBPBjAE70/XLH8C1GxNh0OAzvWrdW5fTMc+zVqhEylsTGEGGqcUYkUx9FlDI3PP9tqQipcem/0jJjtHnJp5MwB2W6xcPjPKVm9BUjVXZ6rTUksxIUzMrA4AFExtr3eaRjTLbfM6B8J0zrEljpCCdhnfeLMz5xSzt7E1obZRqJVjjFCmy4lEzDwCo2BU5rvBexTc9pVwE+HEsBfaEr9g1Hcc0l1h7rx/lUFZXDk1YUKFsezLMBM/3HbTgVNf0Zl4GLo0PXhcmBXHps7dZabODnBu8rmyfhfasHRlC7XYCXuBKadLd4Yy9xtuQk5TuxdWl51aYy8OdikIP9zWJOBM0Ob5FQbTxnZRrcWSk/tap9jas77SDLt00kPmPDAOPGTueh8yWx3m0HALmLOZgMzQTFvZ8jzrRG+z5enj3bZXPRopzhi3wR1BOIV6pY0b8A8WvufvOHn031+s5R5+Nwi18a+h9xc0LS+1a5YMoN3cEdXXSKPMT1Btb3VQsvsYP8f6my1kd7Tht9G/O+a28lbsRsG4V7tib78D8obnjQgexj3DS1h1X+3QUvJXyNoJHRNfqmPi3ekTc5k8d4GVlE9u1wDyhSp3mOUD5yzXTLf4y8ScKrbP9GZ9Pzzpm5oOYuVKKu8JF0Z2+h8cpcfEmFxGjHuKcP/YNP4BuwZEPN0OAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var appBar = _7a468({defaultClassName:'AppBar__1yk3a451 f__dhthxq4 f__dhthxq0 f__dhthxqh f__dhthxqc AppScreen__1dlf4347',variantClassNames:{border:{true:'AppBar_border_true__1yk3a452'}},defaultVariants:{},compoundVariants:[]});\nexport var backButton = 'AppBar__1yk3a456 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi';\nexport var center = 'f__dhthxq9 f__dhthxq7 f__dhthxq8 AppBar__1yk3a450';\nexport var centerMain = _7a468({defaultClassName:'AppBar__1yk3a459',variantClassNames:{hasLeft:{true:'AppBar_hasLeft_true__1yk3a45a'}},defaultVariants:{},compoundVariants:[]});\nexport var centerMainEdge = 'AppBar__1yk3a45b f__dhthxqi f__dhthxq4 f__dhthxq2 f__dhthxqf';\nexport var centerText = 'AppBar__1yk3a45c f__dhthxqc f__dhthxqd f__dhthxq0';\nexport var closeButton = 'AppBar__1yk3a456 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi';\nexport var container = 'AppBar__1yk3a454 f__dhthxqa f__dhthxq7 f__dhthxqc';\nexport var left = 'AppBar__1yk3a455 f__dhthxq9 f__dhthxq7 f__dhthxq1 AppBar__1yk3a450';\nexport var right = 'AppBar__1yk3a45d f__dhthxq9 f__dhthxq7 f__dhthxq1 f__dhthxq5 AppBar__1yk3a450';\nexport var safeArea = 'AppBar__1yk3a453';", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/AppScreen.css.ts.vanilla.css?source=#H4sIAAAAAAAAE71WwY7aMBC98xW+VAIVo2TZbtugHlr10nOPVbWa2CYxOLblONBS9d9rJxDYrpMlNKqEBJZn3ryZecx48VHrr8QwJh8fYyrW98v7B/RrglAKZJsZVUmKiRLKJGgHZopxad3FWqg91qLKuMQplJzgimPKC/y312w1+T1ZPI/x9sYY1+K/q/GtAVlyy5VMmt9rZYpjjPPd58qA/26do9kcKQ2E25/XGHdQIGcKPuyRgQDLlnQaR9GrOYrcp8ud1+5HGgmKVu50wFxS9uNUpsMXf2Klr3zrF8+85Z4LgUkOMmPJCaQOZHNWMGdMlNbFIUKhyHOUGKXsNwoWenpRQ30ASY3i9HsQqc4hZzzLbYLiyLBi9aTtCRJcMjA4M0A5k3Z6k8jmyGQpTKOmor6oXVV9302zLXXc4Qv/4Jte4Rt1Cul2301jtmOmrqazLIlRQvg24D1Lt9zi9ra54jJzWlUVyfskp0Ez04a5ey66VvhdzJLkRKCJm4KpyVJeagGOqVSSBTQbh8qxGaRZUjnylksVVO1myB/3Cm5BzY1JOBygL4toYApB6Y+ZQjjAjSkEp9owtn1TbROYzN0k66k3hOgIculj3yOWyyk2Wt1HkE5fOj3CGZ7OGSmH0h0+gXm0pmIt8PY/PivmSAOlbhpjq/SLDyPQ2h0MbpbtBTKmR+h6RF9AJoiAIC8u3KfAM/QaESWdudvVJawZBsPA7YiSWQ86Gy0Kk7uuAMF9IurW7Dm1uev44u7N8bHRtcAYzc59XV7Z/6Lpv09rYEari4dQXRG/SBAeCuN5/gG9kduZswsAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var allTransitions = 'AppScreen__1dlf4348';\nexport var appScreen = _7a468({defaultClassName:'f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc',variantClassNames:{transitionState:{'enter-active':'AppScreen__1dlf4349','enter-done':'AppScreen__1dlf434a','exit-active':'AppScreen__1dlf434b','exit-done':'AppScreen__1dlf434c'}},defaultVariants:{},compoundVariants:[]});\nexport var background = 'AppScreen__1dlf4347';\nexport var dim = 'AppScreen__1dlf434i f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 AppScreen__1dlf4346 AppScreen__1dlf4348';\nexport var edge = _7a468({defaultClassName:'AppScreen__1dlf434l f__dhthxq4 f__dhthxq2 f__dhthxq3 f__dhthxq1',variantClassNames:{hasAppBar:{true:'AppScreen_hasAppBar_true__1dlf434m'}},defaultVariants:{},compoundVariants:[]});\nexport var enterActive = 'AppScreen__1dlf4349';\nexport var enterDone = 'AppScreen__1dlf434a';\nexport var exitActive = 'AppScreen__1dlf434b';\nexport var exitDone = 'AppScreen__1dlf434c';\nexport var paper = _7a468({defaultClassName:'AppScreen__1dlf434j f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 AppScreen__1dlf4347 AppScreen__1dlf4348',variantClassNames:{hasAppBar:{true:'AppScreen_hasAppBar_true__1dlf434k f__dhthxqg'}},defaultVariants:{},compoundVariants:[]});\nexport var vars = {transitionDuration:'var(--transitionDuration__1dlf4340)',zIndexes:{dim:'var(--zIndexes-dim__1dlf4341)',paper:'var(--zIndexes-paper__1dlf4342)',edge:'var(--zIndexes-edge__1dlf4343)',appBar:'var(--zIndexes-appBar__1dlf4344)'},appBar:{center:{mainWidth:'var(--appBar-center-mainWidth__1dlf4345)'}}};", "/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\nimport { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { useRef } from \"react\";\n\nimport { useLazy, useNullableActivity, useStyleEffect } from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./BottomSheet.css\";\n\nexport type BottomSheetProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"dimBackgroundColor\">\n> &\n Partial<GlobalVars[\"bottomSheet\"]> & {\n onOutsideClick?: React.MouseEventHandler;\n children: React.ReactNode;\n };\nconst BottomSheet: React.FC<BottomSheetProps> = ({\n borderRadius = \"1rem\",\n backgroundColor,\n dimBackgroundColor,\n onOutsideClick,\n children,\n}) => {\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const containerRef = useRef<HTMLDivElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n\n useStyleEffect({\n styleName: \"hide\",\n refs: [containerRef],\n });\n useStyleEffect({\n styleName: \"offset\",\n refs: [paperRef],\n });\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [paperRef],\n });\n\n const popLock = useRef(false);\n\n const onDimClick: React.MouseEventHandler = (e) => {\n onOutsideClick?.(e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (popLock.current) {\n return;\n }\n popLock.current = true;\n\n pop();\n };\n const onPaperClick: React.MouseEventHandler = (e) => {\n e.stopPropagation();\n };\n\n const zIndexBase = (activity?.zIndex ?? 0) * 5 + 3;\n const zIndexPaper = (activity?.zIndex ?? 0) * 5 + 4;\n const transitionState = activity?.transitionState ?? \"enter-done\";\n\n return (\n <div\n className={css.container({\n transitionState: useLazy(transitionState),\n })}\n ref={containerRef}\n style={assignInlineVars(\n compactMap({\n [globalVars.bottomSheet.borderRadius]: borderRadius,\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [css.vars.zIndexes.dim]: `${zIndexBase}`,\n [css.vars.zIndexes.paper]: `${zIndexPaper}`,\n [css.vars.transitionDuration]:\n transitionState === \"enter-active\" ||\n transitionState === \"exit-active\"\n ? `var(--stackflow-transition-duration)`\n : \"0ms\",\n }),\n )}\n >\n <div className={css.dim} ref={paperRef} onClick={onDimClick}>\n <div className={css.paper} onClick={onPaperClick}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nBottomSheet.displayName = \"BottomSheet\";\n\nexport default BottomSheet;\n", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/BottomSheet.css.ts.vanilla.css?source=#H4sIAAAAAAAAE6VT3U7DIBS+71NwY7IlPQtN1ZnuznjjtQ+wUGAtkcIC1OmM7y5U20ZT3GaTJpSf7+ccPlb32jndPNWcu+02q11+V+McvScIOUOUFU5oVaAXYhYA48pDa0gYBwhebpKPZDXFth7Zdto0xdevJI7nbJFhfJUi7L84AesISkKfK6NbxYBqqU1vyjq/sZP6AHvZVkJBSayg0ApgooHfKK+C0BGEYvy1Zzg+hhm3ATCIZt1JvSdUuLcC4ai7azRtOp1ev4kc72oc5LKo3O1lcuuz5OLV8X/2frLvB8Fc7Yvzdx6mpTaMGzCEidaeQdnZAxv8wQ/schYWh/KDOSmB1kRVvBjTmvZN2sQz7NP7HeOZmeGXZYb/9bDw8KrmxCrmKBKrU46ibfoES/9iF4cEAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc',variantClassNames:{transitionState:{'enter-active':'BottomSheet__1ht38h04','enter-done':'BottomSheet__1ht38h05','exit-active':'BottomSheet__1ht38h06','exit-done':'BottomSheet__1ht38h07'}},defaultVariants:{},compoundVariants:[]});\nexport var dim = 'BottomSheet__1ht38h0d f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc f__dhthxqa f__dhthxq7 BottomSheet__1ht38h03';\nexport var enterActive = 'BottomSheet__1ht38h04';\nexport var enterDone = 'BottomSheet__1ht38h05';\nexport var exitActive = 'BottomSheet__1ht38h06';\nexport var exitDone = 'BottomSheet__1ht38h07';\nexport var paper = 'BottomSheet__1ht38h0e f__dhthxqc BottomSheet__1ht38h03';\nexport var vars = {transitionDuration:'var(--transitionDuration__1ht38h00)',zIndexes:{dim:'var(--zIndexes-dim__1ht38h01)',paper:'var(--zIndexes-paper__1ht38h02)'}};", "/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\nimport { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { useRef } from \"react\";\n\nimport { useLazy, useNullableActivity, useStyleEffect } from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./Modal.css\";\n\nexport type ModalProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"dimBackgroundColor\">\n> &\n Partial<GlobalVars[\"modal\"]> & {\n onOutsideClick?: React.MouseEventHandler;\n children: React.ReactNode;\n };\nconst Modal: React.FC<ModalProps> = ({\n backgroundColor,\n dimBackgroundColor,\n borderRadius = \"1rem\",\n onOutsideClick,\n children,\n}) => {\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const containerRef = useRef<HTMLDivElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n\n useStyleEffect({\n styleName: \"hide\",\n refs: [containerRef],\n });\n useStyleEffect({\n styleName: \"offset\",\n refs: [paperRef],\n });\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [paperRef],\n });\n\n const popLock = useRef(false);\n\n const onDimClick: React.MouseEventHandler = (e) => {\n onOutsideClick?.(e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (popLock.current) {\n return;\n }\n popLock.current = true;\n\n pop();\n };\n const onPaperClick: React.MouseEventHandler = (e) => {\n e.stopPropagation();\n };\n\n const zIndexBase = (activity?.zIndex ?? 0) * 5 + 3;\n const zIndexPaper = (activity?.zIndex ?? 0) * 5 + 4;\n const transitionState = activity?.transitionState ?? \"enter-done\";\n\n return (\n <div\n className={css.container({\n transitionState: useLazy(transitionState),\n })}\n ref={containerRef}\n style={assignInlineVars(\n compactMap({\n [globalVars.bottomSheet.borderRadius]: borderRadius,\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [css.vars.zIndexes.dim]: `${zIndexBase}`,\n [css.vars.zIndexes.paper]: `${zIndexPaper}`,\n [css.vars.transitionDuration]:\n transitionState === \"enter-active\" ||\n transitionState === \"exit-active\"\n ? `var(--stackflow-transition-duration)`\n : \"0ms\",\n }),\n )}\n >\n <div className={css.dim} ref={paperRef} onClick={onDimClick}>\n <div className={css.paper} onClick={onPaperClick}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nModal.displayName = \"Modal\";\n\nexport default Modal;\n", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/Modal.css.ts.vanilla.css?source=#H4sIAAAAAAAAE51T0W6CMBR99yv6sgQT2hQZ0+HrXvawbzCXtmKzQk1bpnPZv6+AaECcbkkT2ttzzj339kLeNAe1WiX6kC9YjL4mCDkDpZVO6jJFH2ACjM+Rl8pA/e0YdLqcfE9IT2V+VllrU6TtVoETMQ8iSh9CRP0aYfKGmQF7z42uSo6ZVtp0LqzzF2uld3irqlyWOAMrGa4k5rLAQ5aXR+iAZcnFvlM4vNYnYWtClzNqgHoLTLrPFNFLV49o4DIcBJIhoCnjJBldSj7dkpz/LjniUvyzd6N920nuNt65f6z6WIDxHJ8WzUhiRFHHMr3HdgNc73x8u0eUPM3qOw+J583G5BkEtH1sv0iUTMMGSpITdHEFOuugcdRCyfM11WnrxnBhsAEuK3tH0do5XXj/Qjjc4x7LVwqzDZS5SM+DHHb9X/bH2zJQIojI3ydJ3JokMfyVjrn6me4YsItMwwG7lmmsqh+//tn1NQQAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc',variantClassNames:{transitionState:{'enter-active':'Modal__5ozg8c4','enter-done':'Modal__5ozg8c5','exit-active':'Modal__5ozg8c6','exit-done':'Modal__5ozg8c7'}},defaultVariants:{},compoundVariants:[]});\nexport var dim = 'Modal__5ozg8cd f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc f__dhthxq9 f__dhthxq7 f__dhthxqb Modal__5ozg8c3';\nexport var enterActive = 'Modal__5ozg8c4';\nexport var enterDone = 'Modal__5ozg8c5';\nexport var exitActive = 'Modal__5ozg8c6';\nexport var exitDone = 'Modal__5ozg8c7';\nexport var paper = 'Modal__5ozg8ce f__dhthxqc Modal__5ozg8c3';\nexport var vars = {transitionDuration:'var(--transitionDuration__5ozg8c0)',zIndexes:{dim:'var(--zIndexes-dim__5ozg8c1)',paper:'var(--zIndexes-paper__5ozg8c2)'}};"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "import_react", "import_dynamic", "import_react", "import_react", "import_react", "import_react", "refs", "refs", "refs", "import_react", "import_dynamic", "import_react", "React", "import_react", "React", "_7a468", "import_createRuntimeFn", "_7a468", "_7a468", "_7a468", "React", "backButton", "closeButton", "_a", "_b", "appBar", "_a", "_b", "React", "import_react", "import_dynamic", "import_createRuntimeFn", "container", "_7a468", "dim", "paper", "vars", "React", "container", "vars", "dim", "paper", "import_react", "import_dynamic", "import_createRuntimeFn", "container", "_7a468", "dim", "paper", "vars", "React", "container", "vars", "dim", "paper"]
|
|
7
7
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -582,11 +582,12 @@ var AppBar = React4.forwardRef(
|
|
|
582
582
|
backgroundColor,
|
|
583
583
|
onTopClick
|
|
584
584
|
}, ref) => {
|
|
585
|
-
var _a;
|
|
585
|
+
var _a, _b;
|
|
586
586
|
const actions = useActions();
|
|
587
587
|
const activity = useNullableActivity();
|
|
588
588
|
const globalOptions = useGlobalOptions();
|
|
589
589
|
const globalCloseButton = (_a = globalOptions.appBar) == null ? void 0 : _a.closeButton;
|
|
590
|
+
const globalBackButton = (_b = globalOptions.appBar) == null ? void 0 : _b.backButton;
|
|
590
591
|
const centerRef = useRef(null);
|
|
591
592
|
const { maxWidth } = useMaxWidth({
|
|
592
593
|
outerRef: ref,
|
|
@@ -602,28 +603,40 @@ var AppBar = React4.forwardRef(
|
|
|
602
603
|
}
|
|
603
604
|
};
|
|
604
605
|
const renderBackButton = () => {
|
|
605
|
-
var _a2;
|
|
606
|
+
var _a2, _b2;
|
|
606
607
|
if (!activity) {
|
|
607
608
|
return null;
|
|
608
609
|
}
|
|
609
610
|
if (activity.isRoot) {
|
|
610
611
|
return null;
|
|
611
612
|
}
|
|
612
|
-
if (!backButton2) {
|
|
613
|
+
if (!backButton2 && !globalBackButton) {
|
|
613
614
|
return /* @__PURE__ */ React4.createElement("button", {
|
|
614
615
|
type: "button",
|
|
615
616
|
className: backButton,
|
|
616
617
|
onClick: onBackClick
|
|
617
618
|
}, /* @__PURE__ */ React4.createElement(IconBack_default, null));
|
|
618
619
|
}
|
|
619
|
-
if ("render" in backButton2 && backButton2.render) {
|
|
620
|
+
if (backButton2 && "render" in backButton2 && backButton2.render) {
|
|
620
621
|
return (_a2 = backButton2.render) == null ? void 0 : _a2.call(backButton2);
|
|
621
622
|
}
|
|
623
|
+
if (globalBackButton && "render" in globalBackButton && globalBackButton.render) {
|
|
624
|
+
return (_b2 = globalBackButton.render) == null ? void 0 : _b2.call(globalBackButton);
|
|
625
|
+
}
|
|
622
626
|
return /* @__PURE__ */ React4.createElement("button", {
|
|
623
627
|
type: "button",
|
|
624
628
|
className: backButton,
|
|
629
|
+
"aria-label": backButton2 && "ariaLabel" in backButton2 ? backButton2.ariaLabel : globalBackButton && "ariaLabel" in globalBackButton ? globalBackButton.ariaLabel : void 0,
|
|
625
630
|
onClick: onBackClick
|
|
626
|
-
},
|
|
631
|
+
}, (() => {
|
|
632
|
+
if (backButton2 && "renderIcon" in backButton2 && backButton2.renderIcon) {
|
|
633
|
+
return backButton2.renderIcon();
|
|
634
|
+
}
|
|
635
|
+
if (globalBackButton && "renderIcon" in globalBackButton && globalBackButton.renderIcon) {
|
|
636
|
+
return globalBackButton.renderIcon();
|
|
637
|
+
}
|
|
638
|
+
return /* @__PURE__ */ React4.createElement(IconBack_default, null);
|
|
639
|
+
})());
|
|
627
640
|
};
|
|
628
641
|
const onCloseClick = (e) => {
|
|
629
642
|
var _a2;
|
|
@@ -649,6 +662,7 @@ var AppBar = React4.forwardRef(
|
|
|
649
662
|
return /* @__PURE__ */ React4.createElement("button", {
|
|
650
663
|
type: "button",
|
|
651
664
|
className: closeButton,
|
|
665
|
+
"aria-label": closeButton2 && "ariaLabel" in closeButton2 ? closeButton2.ariaLabel : globalCloseButton && "ariaLabel" in globalCloseButton ? globalCloseButton.ariaLabel : void 0,
|
|
652
666
|
onClick: onCloseClick
|
|
653
667
|
}, (() => {
|
|
654
668
|
if (closeButton2 && "renderIcon" in closeButton2 && closeButton2.renderIcon) {
|
|
@@ -797,7 +811,10 @@ var AppScreen = ({
|
|
|
797
811
|
}, /* @__PURE__ */ React5.createElement("div", {
|
|
798
812
|
className: dim,
|
|
799
813
|
ref: dimRef
|
|
800
|
-
}), /* @__PURE__ */ React5.createElement(
|
|
814
|
+
}), appBar2 && /* @__PURE__ */ React5.createElement(AppBar_default, __spreadProps(__spreadValues({}, appBar2), {
|
|
815
|
+
ref: appBarRef,
|
|
816
|
+
onTopClick: onAppBarTopClick
|
|
817
|
+
})), /* @__PURE__ */ React5.createElement("div", {
|
|
801
818
|
key: activity == null ? void 0 : activity.id,
|
|
802
819
|
className: paper({
|
|
803
820
|
hasAppBar
|
|
@@ -806,10 +823,7 @@ var AppScreen = ({
|
|
|
806
823
|
}, children), !(activity == null ? void 0 : activity.isRoot) && globalOptions.theme === "cupertino" && !preventSwipeBack && /* @__PURE__ */ React5.createElement("div", {
|
|
807
824
|
className: edge({ hasAppBar }),
|
|
808
825
|
ref: edgeRef
|
|
809
|
-
})
|
|
810
|
-
ref: appBarRef,
|
|
811
|
-
onTopClick: onAppBarTopClick
|
|
812
|
-
}))));
|
|
826
|
+
})));
|
|
813
827
|
};
|
|
814
828
|
AppScreen.displayName = "AppScreen";
|
|
815
829
|
var AppScreen_default = AppScreen;
|
package/dist/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/basicUIPlugin.tsx", "../src/theme.css.ts", "../src/utils/compact.ts", "../src/utils/compactMap.ts", "../src/utils/listenOnce.ts", "../src/utils/listenResize.ts", "../src/utils/noop.ts", "../src/utils/requestNextFrame.tsx", "../src/components/AppScreen.tsx", "../src/hooks/useLazy.tsx", "../src/hooks/useMaxWidth.ts", "../src/hooks/useNullableActivity.ts", "../src/hooks/useStyleEffect.ts", "../src/hooks/useStyleEffectHide.ts", "../src/hooks/useStyleEffectOffset.ts", "../src/hooks/useStyleEffectSwipeBack.ts", "../src/components/AppBar.tsx", "../src/assets/IconBack.tsx", "../src/assets/IconClose.tsx", "../src/components/AppBar.css.ts", "../src/components/AppScreen.css.ts", "../src/components/BottomSheet.tsx", "../src/components/BottomSheet.css.ts", "../src/components/Modal.tsx", "../src/components/Modal.css.ts"],
|
|
4
|
-
"sourcesContent": ["import type { StackflowReactPlugin } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { createContext, useContext } from \"react\";\n\nimport * as theme from \"./theme.css\";\nimport type { RecursivePartial } from \"./utils\";\nimport { compact, compactMap } from \"./utils\";\n\ntype BasicUIPluginOptions = RecursivePartial<theme.GlobalVars> & {\n theme: \"android\" | \"cupertino\";\n rootClassName?: string;\n appBar?: {\n closeButton?:\n | {\n renderIcon?: () => React.ReactNode;\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n }\n | {\n render?: () => React.ReactNode;\n };\n };\n};\n\nconst GlobalOptionsContext = createContext<BasicUIPluginOptions>({\n theme: \"android\",\n});\n\nexport const GlobalOptionsProvider = GlobalOptionsContext.Provider;\n\nexport function useGlobalOptions() {\n return useContext(GlobalOptionsContext);\n}\n\nexport const basicUIPlugin: (\n options: BasicUIPluginOptions,\n) => StackflowReactPlugin = (options) => () => ({\n key: \"basic-ui\",\n wrapStack({ stack }) {\n return (\n <GlobalOptionsProvider value={options}>\n <div\n className={\n typeof window !== \"undefined\"\n ? compact([theme[options.theme], options.rootClassName]).join(\" \")\n : options.rootClassName\n }\n style={assignInlineVars(\n compactMap({\n [theme.globalVars.backgroundColor]: options.backgroundColor,\n [theme.globalVars.dimBackgroundColor]: options.dimBackgroundColor,\n [theme.globalVars.appBar.borderColor]:\n options.appBar?.borderColor,\n [theme.globalVars.appBar.borderSize]: options.appBar?.borderSize,\n [theme.globalVars.appBar.height]: options.appBar?.height,\n [theme.globalVars.appBar.iconColor]: options.appBar?.iconColor,\n [theme.globalVars.appBar.textColor]: options.appBar?.textColor,\n [theme.globalVars.bottomSheet.borderRadius]:\n options.bottomSheet?.borderRadius,\n [theme.globalVars.modal.borderRadius]:\n options.modal?.borderRadius,\n }),\n )}\n >\n {stack.render()}\n </div>\n </GlobalOptionsProvider>\n );\n },\n});\n", "import 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nexport var android = 'theme__1coppmz0';\nexport var cupertino = 'theme__1coppmz1';\nexport var globalVars = {backgroundColor:'var(--stackflow-plugin-basic-ui-background-color)',dimBackgroundColor:'var(--stackflow-plugin-basic-ui-dim-background-color)',appBar:{borderColor:'var(--stackflow-plugin-basic-ui-app-bar-border-color)',borderSize:'var(--stackflow-plugin-basic-ui-app-bar-border-size)',height:'var(--stackflow-plugin-basic-ui-app-bar-height)',heightTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-height-transition-duration)',minHeight:'var(--stackflow-plugin-basic-ui-app-bar-min-height)',iconColor:'var(--stackflow-plugin-basic-ui-app-bar-icon-color)',textColor:'var(--stackflow-plugin-basic-ui-app-bar-text-color)',backgroundColor:'var(--stackflow-plugin-basic-ui-app-bar-background-color)'},bottomSheet:{borderRadius:'var(--stackflow-plugin-basic-ui-bottom-sheet-border-radius)'},modal:{borderRadius:'var(--stackflow-plugin-basic-ui-bottom-sheet-border-radius)'}};\nexport var rootAndroid = ':root[data-stackflow-plugin-basic-ui-theme=android]';\nexport var rootCupertino = ':root[data-stackflow-plugin-basic-ui-theme=cupertino]';", "export function compact<T>(arr: Array<T>): Array<NonNullable<T>> {\n return arr.filter(\n (item): item is NonNullable<typeof item> =>\n item !== undefined && item !== null,\n );\n}\n", "export function compactMap<T extends {}>(\n obj: T,\n): {\n [key in keyof T]: NonNullable<T[key]>;\n} {\n return Object.entries(obj).reduce<any>((acc, [key, value]) => {\n if (value !== null && value !== undefined) {\n acc[key] = value;\n }\n\n return acc;\n }, {});\n}\n", "export function listenOnce<T extends HTMLElement>(\n el: T,\n type: keyof HTMLElementEventMap,\n cb: () => void,\n) {\n const listener = () => {\n el.removeEventListener(type, listener);\n cb();\n };\n\n el.addEventListener(type, listener);\n}\n", "export const listenResize = (cb: () => void) => {\n cb();\n window.addEventListener(\"resize\", cb);\n\n return () => {\n window.removeEventListener(\"resize\", cb);\n };\n};\n", "export const noop = () => {};\n", "// https://github.com/MingruiZhang/react-animate-mount/blob/32300c04a4fdfa97724b70aaaf0c0f403d6da247/src/Animate.js#L171-L179\nexport function requestNextFrame(cb: () => void) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n cb();\n });\n });\n}\n", "/* eslint-disable no-param-reassign */\n\nimport { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { createContext, useContext, useMemo, useRef } from \"react\";\n\nimport { useGlobalOptions } from \"../basicUIPlugin\";\nimport {\n useLazy,\n useNullableActivity,\n useStyleEffectHide,\n useStyleEffectOffset,\n useStyleEffectSwipeBack,\n} from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport type { PropOf } from \"../utils\";\nimport { compactMap } from \"../utils\";\nimport AppBar from \"./AppBar\";\nimport * as css from \"./AppScreen.css\";\n\nexport type AppScreenContext = {\n scroll: (args: { top: number }) => void;\n};\nconst Context = createContext<AppScreenContext>(null as any);\n\nexport function useAppScreen() {\n return useContext(Context);\n}\n\nexport type AppScreenProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"dimBackgroundColor\">\n> & {\n appBar?: Omit<PropOf<typeof AppBar>, \"theme\" | \"ref\" | \"key\">;\n preventSwipeBack?: boolean;\n children: React.ReactNode;\n};\nconst AppScreen: React.FC<AppScreenProps> = ({\n backgroundColor,\n dimBackgroundColor,\n appBar,\n preventSwipeBack,\n children,\n}) => {\n const globalOptions = useGlobalOptions();\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const appScreenRef = useRef<HTMLDivElement>(null);\n const dimRef = useRef<HTMLDivElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n const edgeRef = useRef<HTMLDivElement>(null);\n const appBarRef = useRef<HTMLDivElement>(null);\n\n useStyleEffectHide({\n refs: [appScreenRef],\n hasEffect: true,\n });\n useStyleEffectOffset({\n theme: globalOptions.theme,\n refs:\n globalOptions.theme === \"cupertino\" ? [paperRef] : [paperRef, appBarRef],\n hasEffect: true,\n });\n useStyleEffectSwipeBack({\n theme: globalOptions.theme,\n dimRef,\n edgeRef,\n paperRef,\n hasEffect: true,\n onSwiped() {\n pop();\n },\n });\n\n const hasAppBar = !!appBar;\n\n const zIndexBase = (activity?.zIndex ?? 0) * 5;\n const zIndexDim = zIndexBase;\n const zIndexPaper =\n zIndexBase + (globalOptions.theme === \"cupertino\" && hasAppBar ? 1 : 3);\n const zIndexEdge = zIndexBase + 4;\n const zIndexAppBar = zIndexBase + 7;\n\n const transitionState = activity?.transitionState ?? \"enter-done\";\n const lazyTransitionState = useLazy(transitionState);\n\n const onAppBarTopClick: React.MouseEventHandler = (e) => {\n appBar?.onTopClick?.(e);\n\n if (!e.defaultPrevented) {\n paperRef.current?.scroll({\n top: 0,\n behavior: \"smooth\",\n });\n }\n };\n\n return (\n <Context.Provider\n value={useMemo(\n () => ({\n scroll({ top }) {\n paperRef?.current?.scroll({\n top,\n behavior: \"smooth\",\n });\n },\n }),\n [paperRef],\n )}\n >\n <div\n ref={appScreenRef}\n className={css.appScreen({\n transitionState:\n transitionState === \"enter-done\" || transitionState === \"exit-done\"\n ? transitionState\n : lazyTransitionState,\n })}\n style={assignInlineVars(\n compactMap({\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [globalVars.appBar.height]: appBar?.height,\n [globalVars.appBar.heightTransitionDuration]:\n appBar?.heightTransitionDuration,\n [css.vars.zIndexes.dim]: `${zIndexDim}`,\n [css.vars.zIndexes.paper]: `${zIndexPaper}`,\n [css.vars.zIndexes.edge]: `${zIndexEdge}`,\n [css.vars.zIndexes.appBar]: `${zIndexAppBar}`,\n [css.vars.transitionDuration]:\n transitionState === \"enter-active\" ||\n transitionState === \"exit-active\"\n ? `var(--stackflow-transition-duration)`\n : \"0ms\",\n }),\n )}\n >\n <div className={css.dim} ref={dimRef} />\n <div\n key={activity?.id}\n className={css.paper({\n hasAppBar,\n })}\n ref={paperRef}\n >\n {children}\n </div>\n {!activity?.isRoot &&\n globalOptions.theme === \"cupertino\" &&\n !preventSwipeBack && (\n <div className={css.edge({ hasAppBar })} ref={edgeRef} />\n )}\n {appBar && (\n <AppBar {...appBar} ref={appBarRef} onTopClick={onAppBarTopClick} />\n )}\n </div>\n </Context.Provider>\n );\n};\n\nAppScreen.displayName = \"AppScreen\";\n\nexport default AppScreen;\n", "import { useEffect, useState } from \"react\";\n\nimport { requestNextFrame } from \"../utils\";\n\nexport function useLazy<T>(value: T) {\n const [state, setState] = useState<T | undefined>(undefined);\n\n useEffect(() => {\n requestNextFrame(() => {\n setState(value);\n });\n }, [value]);\n\n return state;\n}\n", "import type React from \"react\";\nimport { useEffect, useState } from \"react\";\n\nimport { listenResize, noop } from \"../utils\";\n\nexport function useMaxWidth({\n outerRef,\n innerRef,\n enable,\n}: {\n outerRef: React.ForwardedRef<any>;\n innerRef: React.MutableRefObject<any>;\n enable: boolean;\n}) {\n const [maxWidth, setMaxWidth] = useState<number | undefined>(undefined);\n\n useEffect(() => {\n const $outer = outerRef && \"current\" in outerRef && outerRef.current;\n const $inner = innerRef.current;\n\n if (!enable || !$outer || !$inner) {\n return noop;\n }\n\n const dispose = listenResize(() => {\n const screenWidth = $outer.clientWidth;\n\n const leftWidth = $inner.offsetLeft;\n const centerWidth = $inner.clientWidth;\n const rightWidth = screenWidth - leftWidth - centerWidth;\n\n const sideMargin = Math.max(leftWidth, rightWidth);\n\n setMaxWidth(screenWidth - 2 * sideMargin);\n });\n\n return dispose;\n }, []);\n\n return {\n maxWidth,\n };\n}\n", "import type { Activity } from \"@stackflow/core\";\nimport { useActivity } from \"@stackflow/react\";\n\nexport function useNullableActivity() {\n return useActivity() as Activity | null;\n}\n", "import type { ActivityTransitionState } from \"@stackflow/core\";\nimport type React from \"react\";\nimport { useEffect } from \"react\";\n\nimport { useNullableActivity } from \"./useNullableActivity\";\n\nconst connections: {\n [styleName: string]: Map<\n number,\n {\n refs: Array<React.RefObject<any>>;\n hasEffect: boolean;\n }\n >;\n} = {};\n\nexport function useStyleEffect({\n styleName,\n refs,\n effect,\n}: {\n styleName: string;\n refs: Array<React.RefObject<any>>;\n effect?: (params: {\n activityTransitionState: ActivityTransitionState;\n refs: Array<React.RefObject<HTMLElement>>;\n }) => (() => void) | void;\n}) {\n const activity = useNullableActivity();\n\n useEffect(() => {\n if (!activity) {\n return () => {};\n }\n if (!connections[styleName]) {\n connections[styleName] = new Map();\n }\n\n connections[styleName].set(activity.zIndex, {\n refs,\n hasEffect: !!effect,\n });\n\n return () => {\n connections[styleName].delete(activity.zIndex);\n };\n }, [activity?.id, refs, effect]);\n\n useEffect(() => {\n if (!activity) {\n return () => {};\n }\n if (!effect) {\n return () => {};\n }\n\n const refs = (() => {\n let arr: Array<React.RefObject<any>> = [];\n\n for (let i = 1; i <= activity.zIndex; i += 1) {\n const connection = connections[styleName].get(activity.zIndex - i);\n\n if (connection?.refs) {\n arr = [...arr, ...connection.refs];\n }\n if (connection?.hasEffect) {\n break;\n }\n }\n\n return arr;\n })();\n\n const cleanup = effect({\n activityTransitionState: activity.transitionState,\n refs,\n });\n\n return () => {\n cleanup?.();\n };\n }, [activity?.transitionState]);\n}\n", "/* eslint-disable no-param-reassign */\n\nimport type React from \"react\";\n\nimport { useStyleEffect } from \"./useStyleEffect\";\n\nexport function useStyleEffectHide({\n refs,\n hasEffect,\n}: {\n refs: Array<React.RefObject<any>>;\n hasEffect?: boolean;\n}) {\n useStyleEffect({\n styleName: \"hide\",\n refs,\n effect: hasEffect\n ? ({ activityTransitionState, refs }) => {\n const cleanup = () => {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n const $ref = ref.current;\n\n $ref.style.display = \"\";\n });\n };\n\n switch (activityTransitionState) {\n case \"enter-done\": {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n const $ref = ref.current;\n\n $ref.style.display = \"none\";\n });\n\n return () => {\n cleanup();\n };\n }\n default: {\n cleanup();\n\n return () => {};\n }\n }\n }\n : undefined,\n });\n}\n", "/* eslint-disable no-param-reassign */\n\nimport { listenOnce, requestNextFrame } from \"../utils\";\nimport { useStyleEffect } from \"./useStyleEffect\";\n\nexport const OFFSET_PX_ANDROID = 32;\nexport const OFFSET_PX_CUPERTINO = 80;\n\nexport function useStyleEffectOffset({\n refs,\n theme,\n hasEffect,\n}: {\n refs: Array<React.RefObject<any>>;\n theme: \"android\" | \"cupertino\";\n hasEffect?: boolean;\n}) {\n useStyleEffect({\n styleName: \"offset\",\n refs,\n effect: hasEffect\n ? ({ activityTransitionState, refs }) => {\n const transform =\n theme === \"cupertino\"\n ? `translate3d(-${OFFSET_PX_CUPERTINO / 16}rem, 0, 0)`\n : `translate3d(0, -${OFFSET_PX_ANDROID / 16}rem, 0)`;\n\n const cleanup = () => {\n requestNextFrame(() => {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n const $el = ref.current;\n\n $el.style.transform = \"\";\n\n listenOnce($el, \"transitionend\", () => {\n $el.style.transition = \"\";\n });\n });\n });\n };\n\n switch (activityTransitionState) {\n case \"enter-active\":\n case \"enter-done\": {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n ref.current.style.transition = `var(--stackflow-transition-duration)`;\n ref.current.style.transform = transform;\n });\n\n switch (activityTransitionState) {\n case \"enter-done\":\n return () => {\n cleanup();\n };\n case \"enter-active\":\n default:\n return () => {};\n }\n }\n case \"exit-active\":\n case \"exit-done\": {\n requestNextFrame(() => {\n cleanup();\n });\n\n return () => {};\n }\n default: {\n return () => {};\n }\n }\n }\n : undefined,\n });\n}\n", "/* eslint-disable no-param-reassign */\n\nimport { listenOnce } from \"../utils\";\nimport { useStyleEffect } from \"./useStyleEffect\";\nimport { OFFSET_PX_CUPERTINO } from \"./useStyleEffectOffset\";\n\nexport function useStyleEffectSwipeBack({\n theme,\n dimRef,\n edgeRef,\n paperRef,\n hasEffect,\n onSwiped,\n}: {\n theme: \"android\" | \"cupertino\";\n dimRef: React.RefObject<HTMLDivElement>;\n edgeRef: React.RefObject<HTMLDivElement>;\n paperRef: React.RefObject<HTMLDivElement>;\n hasEffect?: boolean;\n onSwiped?: () => void;\n}) {\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [paperRef],\n effect: hasEffect\n ? ({ refs }) => {\n if (theme !== \"cupertino\") {\n return () => {};\n }\n\n if (!dimRef.current || !edgeRef.current || !paperRef.current) {\n return () => {};\n }\n\n const $dim = dimRef.current;\n const $edge = edgeRef.current;\n const $paper = paperRef.current;\n\n let x0: number | null = null;\n let t0: number | null = null;\n let x: number | null = null;\n\n let cachedRefs: Array<{\n style: {\n transform: string;\n transition: string;\n };\n parentElement?: {\n style: {\n display: string;\n };\n };\n }> = [];\n\n const resetState = () => {\n x0 = null;\n t0 = null;\n x = null;\n cachedRefs = [];\n };\n\n let _rAFLock = false;\n\n function movePaper(dx: number) {\n if (!_rAFLock) {\n _rAFLock = true;\n\n requestAnimationFrame(() => {\n const p = dx / $paper.clientWidth;\n\n $dim.style.opacity = `${1 - p}`;\n $dim.style.transition = \"0s\";\n\n $paper.style.overflowY = \"hidden\";\n $paper.style.transform = `translate3d(${dx}px, 0, 0)`;\n $paper.style.transition = \"0s\";\n\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n ref.current.style.transform = `translate3d(${\n -1 * (1 - p) * OFFSET_PX_CUPERTINO\n }px, 0, 0)`;\n ref.current.style.transition = \"0s\";\n\n if (ref.current.parentElement?.style.display === \"none\") {\n ref.current.parentElement.style.display = \"block\";\n }\n });\n\n _rAFLock = false;\n });\n }\n }\n\n function resetPaper({ swiped }: { swiped: boolean }): Promise<void> {\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n $dim.style.opacity = `${swiped ? 0 : 1}`;\n $dim.style.transition = \"var(--stackflow-transition-duration)\";\n\n $paper.style.overflowY = \"hidden\";\n $paper.style.transform = `translateX(${swiped ? \"100%\" : \"0\"})`;\n $paper.style.transition =\n \"var(--stackflow-transition-duration)\";\n\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n ref.current.style.transition = `var(--stackflow-transition-duration)`;\n ref.current.style.transform = `translate3d(${\n swiped ? \"0\" : `-${OFFSET_PX_CUPERTINO / 16}rem`\n }, 0, 0)`;\n });\n\n const _cachedRefs = [...cachedRefs];\n\n resolve();\n\n listenOnce($paper, \"transitionend\", () => {\n $dim.style.opacity = \"\";\n $paper.style.overflowY = \"\";\n $paper.style.transform = \"\";\n\n refs.forEach((ref, i) => {\n if (!ref.current) {\n return;\n }\n\n const _cachedRef = _cachedRefs[i];\n\n if (swiped) {\n ref.current.style.transition = \"\";\n ref.current.style.transform = \"\";\n\n if (ref.current.parentElement) {\n ref.current.parentElement.style.display = \"\";\n }\n } else if (_cachedRef) {\n ref.current.style.transition =\n _cachedRef.style.transition;\n ref.current.style.transform = _cachedRef.style.transform;\n\n if (\n ref.current.parentElement &&\n _cachedRef.parentElement\n ) {\n ref.current.parentElement.style.display =\n _cachedRef.parentElement.style.display;\n }\n }\n });\n });\n });\n });\n }\n\n const onTouchStart = (e: TouchEvent) => {\n const { activeElement } = document as any;\n\n activeElement?.blur?.();\n // eslint-disable-next-line no-multi-assign\n x0 = x = e.touches[0].clientX;\n t0 = Date.now();\n\n cachedRefs = refs.map((ref) => {\n if (!ref.current) {\n return {\n style: {\n transform: \"\",\n transition: \"\",\n },\n };\n }\n\n return {\n style: {\n transform: ref.current.style.transform,\n transition: ref.current.style.transition,\n },\n parentElement: ref.current.parentElement\n ? {\n style: {\n display: ref.current.parentElement.style.display,\n },\n }\n : undefined,\n };\n });\n };\n\n const onTouchMove = (e: TouchEvent) => {\n if (!x0) {\n resetState();\n return;\n }\n\n x = e.touches[0].clientX;\n\n movePaper(x - x0);\n };\n\n const onTouchEnd = () => {\n if (!x0 || !t0 || !x) {\n resetState();\n return;\n }\n\n const t = Date.now();\n const v = (x - x0) / (t - t0);\n const swiped = v > 1 || x / $paper.clientWidth > 0.4;\n\n if (swiped) {\n onSwiped?.();\n }\n\n Promise.resolve()\n .then(() => resetPaper({ swiped }))\n .then(() => resetState());\n };\n\n $edge.addEventListener(\"touchstart\", onTouchStart, { passive: true });\n $edge.addEventListener(\"touchmove\", onTouchMove, { passive: true });\n $edge.addEventListener(\"touchend\", onTouchEnd, { passive: true });\n $edge.addEventListener(\"touchcancel\", onTouchEnd, { passive: true });\n\n return () => {\n $edge.removeEventListener(\"touchstart\", onTouchStart);\n $edge.removeEventListener(\"touchmove\", onTouchMove);\n $edge.removeEventListener(\"touchend\", onTouchEnd);\n $edge.removeEventListener(\"touchcancel\", onTouchEnd);\n };\n }\n : undefined,\n });\n}\n", "import { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { useRef } from \"react\";\n\nimport { IconBack, IconClose } from \"../assets\";\nimport { useGlobalOptions } from \"../basicUIPlugin\";\nimport { useMaxWidth, useNullableActivity } from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport { compactMap, noop } from \"../utils\";\nimport * as css from \"./AppBar.css\";\nimport * as appScreenCss from \"./AppScreen.css\";\n\ntype AppBarProps = Partial<\n Pick<\n GlobalVars[\"appBar\"],\n | \"borderColor\"\n | \"borderSize\"\n | \"height\"\n | \"heightTransitionDuration\"\n | \"iconColor\"\n | \"textColor\"\n | \"backgroundColor\"\n >\n> & {\n title?: React.ReactNode;\n appendLeft?: () => React.ReactNode;\n appendRight?: () => React.ReactNode;\n backButton?:\n | {\n renderIcon?: () => React.ReactNode;\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n }\n | {\n render?: () => React.ReactNode;\n };\n closeButton?:\n | {\n renderIcon?: () => React.ReactNode;\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n }\n | {\n render?: () => React.ReactNode;\n };\n closeButtonLocation?: \"left\" | \"right\";\n border?: boolean;\n onTopClick?: (e: React.MouseEvent) => void;\n};\nconst AppBar = React.forwardRef<HTMLDivElement, AppBarProps>(\n (\n {\n title,\n appendLeft,\n appendRight,\n backButton,\n closeButton,\n closeButtonLocation = \"left\",\n border = true,\n iconColor,\n textColor,\n borderColor,\n borderSize,\n height,\n backgroundColor,\n onTopClick,\n },\n ref,\n ) => {\n const actions = useActions();\n const activity = useNullableActivity();\n\n const globalOptions = useGlobalOptions();\n const globalCloseButton = globalOptions.appBar?.closeButton;\n\n const centerRef = useRef<any>(null);\n\n const { maxWidth } = useMaxWidth({\n outerRef: ref,\n innerRef: centerRef,\n enable: globalOptions.theme === \"cupertino\",\n });\n\n const onBackClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (backButton && \"onClick\" in backButton && backButton.onClick) {\n backButton.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n actions.pop();\n }\n };\n\n const renderBackButton = () => {\n if (!activity) {\n return null;\n }\n if (activity.isRoot) {\n return null;\n }\n\n if (!backButton) {\n return (\n <button\n type=\"button\"\n className={css.backButton}\n onClick={onBackClick}\n >\n <IconBack />\n </button>\n );\n }\n\n if (\"render\" in backButton && backButton.render) {\n return backButton.render?.();\n }\n\n return (\n <button type=\"button\" className={css.backButton} onClick={onBackClick}>\n {\"renderIcon\" in backButton && backButton.renderIcon ? (\n backButton.renderIcon()\n ) : (\n <IconBack />\n )}\n </button>\n );\n };\n\n const onCloseClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (closeButton && \"onClick\" in closeButton && closeButton.onClick) {\n closeButton.onClick(e);\n }\n\n if (\n !e.defaultPrevented &&\n globalCloseButton &&\n \"onClick\" in globalCloseButton\n ) {\n globalCloseButton.onClick?.(e);\n }\n };\n\n const renderCloseButton = () => {\n const isRoot = !activity || activity.isRoot;\n\n if ((!closeButton && !globalOptions.appBar?.closeButton) || !isRoot) {\n return null;\n }\n if (closeButton && \"render\" in closeButton && closeButton.render) {\n return closeButton.render();\n }\n if (\n globalCloseButton &&\n \"render\" in globalCloseButton &&\n globalCloseButton.render\n ) {\n return globalCloseButton.render();\n }\n\n return (\n <button\n type=\"button\"\n className={css.closeButton}\n onClick={onCloseClick}\n >\n {(() => {\n if (\n closeButton &&\n \"renderIcon\" in closeButton &&\n closeButton.renderIcon\n ) {\n return closeButton.renderIcon();\n }\n if (\n globalCloseButton &&\n \"renderIcon\" in globalCloseButton &&\n globalCloseButton.renderIcon\n ) {\n return globalCloseButton.renderIcon();\n }\n\n return <IconClose />;\n })()}\n </button>\n );\n };\n\n const hasLeft = !!(\n (closeButtonLocation === \"left\" && closeButton) ||\n backButton ||\n appendLeft\n );\n\n return (\n <div\n ref={ref}\n className={css.appBar({\n border,\n })}\n style={assignInlineVars(\n compactMap({\n [globalVars.appBar.iconColor]: iconColor,\n [globalVars.appBar.textColor]: textColor,\n [globalVars.appBar.borderColor]: borderColor,\n [globalVars.appBar.borderSize]: borderSize,\n [globalVars.appBar.height]: height,\n [globalVars.appBar.backgroundColor]:\n backgroundColor || globalVars.backgroundColor,\n [appScreenCss.vars.appBar.center.mainWidth]: `${maxWidth}px`,\n }),\n )}\n >\n <div className={css.safeArea} />\n <div className={css.container}>\n <div className={css.left}>\n {closeButtonLocation === \"left\" && renderCloseButton()}\n {renderBackButton()}\n {appendLeft?.()}\n </div>\n <div ref={centerRef} className={css.center}>\n <div\n className={css.centerMain({\n hasLeft,\n })}\n >\n {typeof title === \"string\" ? (\n <div className={css.centerText}>{title}</div>\n ) : (\n title\n )}\n <button\n className={css.centerMainEdge}\n type=\"button\"\n aria-hidden=\"true\"\n onClick={onTopClick}\n />\n </div>\n </div>\n <div className={css.right}>\n {appendRight?.()}\n {closeButtonLocation === \"right\" && renderCloseButton()}\n </div>\n </div>\n </div>\n );\n },\n);\n\nAppBar.displayName = \"AppBar\";\n\nexport default AppBar;\n", "import React from \"react\";\n\nconst IconBack: React.FC<{\n className?: string;\n}> = (props) => (\n <svg\n className={props.className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5659 5.56564C11.8783 5.25322 11.8783 4.74669 11.5659 4.43427C11.2535 4.12185 10.7469 4.12185 10.4345 4.43427L3.43451 11.4343C3.12209 11.7467 3.12209 12.2532 3.43451 12.5656L10.4345 19.5656C10.7469 19.8781 11.2535 19.8781 11.5659 19.5656C11.8783 19.2532 11.8783 18.7467 11.5659 18.4343L5.93157 12.8H20.0002C20.442 12.8 20.8002 12.4418 20.8002 12C20.8002 11.5581 20.442 11.2 20.0002 11.2H5.93157L11.5659 5.56564Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default IconBack;\n", "import React from \"react\";\n\nconst IconClose: React.FC<{\n className?: string;\n}> = (props) => (\n <svg\n className={props.className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.56588 5.43433C6.25346 5.12191 5.74693 5.12191 5.43451 5.43433C5.12209 5.74675 5.12209 6.25328 5.43451 6.5657L10.8688 12L5.43451 17.4343C5.12209 17.7467 5.12209 18.2533 5.43451 18.5657C5.74693 18.8781 6.25346 18.8781 6.56588 18.5657L12.0002 13.1314L17.4345 18.5657C17.7469 18.8781 18.2535 18.8781 18.5659 18.5657C18.8783 18.2533 18.8783 17.7467 18.5659 17.4343L13.1316 12L18.5659 6.5657C18.8783 6.25328 18.8783 5.74675 18.5659 5.43433C18.2535 5.12191 17.7469 5.12191 17.4345 5.43433L12.0002 10.8686L6.56588 5.43433Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.56588 5.43433C6.25346 5.12191 5.74693 5.12191 5.43451 5.43433C5.12209 5.74675 5.12209 6.25328 5.43451 6.5657L10.8688 12L5.43451 17.4343C5.12209 17.7467 5.12209 18.2533 5.43451 18.5657C5.74693 18.8781 6.25346 18.8781 6.56588 18.5657L12.0002 13.1314L17.4345 18.5657C17.7469 18.8781 18.2535 18.8781 18.5659 18.5657C18.8783 18.2533 18.8783 17.7467 18.5659 17.4343L13.1316 12L18.5659 6.5657C18.8783 6.25328 18.8783 5.74675 18.5659 5.43433C18.2535 5.12191 17.7469 5.12191 17.4345 5.43433L12.0002 10.8686L6.56588 5.43433Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default IconClose;\n", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/AppScreen.css.ts.vanilla.css?source=#H4sIAAAAAAAAE71WwY7aMBC98xW+VAIVo2TZbtugHlr10nOPVbWa2CYxOLblONBS9d9rJxDYrpMlNKqEBJZn3ryZecx48VHrr8QwJh8fYyrW98v7B/RrglAKZJsZVUmKiRLKJGgHZopxad3FWqg91qLKuMQplJzgimPKC/y312w1+T1ZPI/x9sYY1+K/q/GtAVlyy5VMmt9rZYpjjPPd58qA/26do9kcKQ2E25/XGHdQIGcKPuyRgQDLlnQaR9GrOYrcp8ud1+5HGgmKVu50wFxS9uNUpsMXf2Klr3zrF8+85Z4LgUkOMmPJCaQOZHNWMGdMlNbFIUKhyHOUGKXsNwoWenpRQ30ASY3i9HsQqc4hZzzLbYLiyLBi9aTtCRJcMjA4M0A5k3Z6k8jmyGQpTKOmor6oXVV9302zLXXc4Qv/4Jte4Rt1Cul2301jtmOmrqazLIlRQvg24D1Lt9zi9ra54jJzWlUVyfskp0Ez04a5ey66VvhdzJLkRKCJm4KpyVJeagGOqVSSBTQbh8qxGaRZUjnylksVVO1myB/3Cm5BzY1JOBygL4toYApB6Y+ZQjjAjSkEp9owtn1TbROYzN0k66k3hOgIculj3yOWyyk2Wt1HkE5fOj3CGZ7OGSmH0h0+gXm0pmIt8PY/PivmSAOlbhpjq/SLDyPQ2h0MbpbtBTKmR+h6RF9AJoiAIC8u3KfAM/QaESWdudvVJawZBsPA7YiSWQ86Gy0Kk7uuAMF9IurW7Dm1uev44u7N8bHRtcAYzc59XV7Z/6Lpv09rYEari4dQXRG/SBAeCuN5/gG9kduZswsAAA==';\nimport 'src/components/AppBar.css.ts.vanilla.css?source=#H4sIAAAAAAAAE7VWyW7bMBC95yt4KWAXoUB5SRoFPTQoChRoTzn0UBQBJVI2G4oUSCpeiv57SWqxLUteEhcI4IicGc48vnnD4FOeP2D19BSunsd4MkXgzxUAGRNwTtlsbiLwgtUAQm1w8pxyuYA5L2Z2O8aaJbBgEOe5/VBw4zO8v/p7FbQChz5wbKPMlCwEgYnkUp0evu1pDwFgDZkgdFlHWX91X1Q7p/JswtPJeDLxxgvGOUzmWMxoBIzCQqdSZddA5jhhZuWTNnOaUeuXyDzP1iHYq+IaREpK85Nggw9k7eN8TIqcKsOE/LUfyMORS80MkyICONaSF4b2ZvGYKEpFU1J82dSOR/f5NqhVAHJs6JgMQoTeXQNk/4Yd+aM3pooFUZKRPgyr64sAuu/P0OYWIkWzMsXKrIK+calYtNn7XCjsfhtc0LChyynGvWC04L67JELHY+/CFh6G7fCttg7D/7GQjtivLKQKE0tFqHoyqqBNyFGpUnIJ9RwTuYgAE5oagPIlSDBPBjAE70/XLH8C1GxNh0OAzvWrdW5fTMc+zVqhEylsTGEGGqcUYkUx9FlDI3PP9tqQipcem/0jJjtHnJp5MwB2W6xcPjPKVm9BUjVXZ6rTUksxIUzMrA4AFExtr3eaRjTLbfM6B8J0zrEljpCCdhnfeLMz5xSzt7E1obZRqJVjjFCmy4lEzDwCo2BU5rvBexTc9pVwE+HEsBfaEr9g1Hcc0l1h7rx/lUFZXDk1YUKFsezLMBM/3HbTgVNf0Zl4GLo0PXhcmBXHps7dZabODnBu8rmyfhfasHRlC7XYCXuBKadLd4Yy9xtuQk5TuxdWl51aYy8OdikIP9zWJOBM0Ob5FQbTxnZRrcWSk/tap9jas77SDLt00kPmPDAOPGTueh8yWx3m0HALmLOZgMzQTFvZ8jzrRG+z5enj3bZXPRopzhi3wR1BOIV6pY0b8A8WvufvOHn031+s5R5+Nwi18a+h9xc0LS+1a5YMoN3cEdXXSKPMT1Btb3VQsvsYP8f6my1kd7Tht9G/O+a28lbsRsG4V7tib78D8obnjQgexj3DS1h1X+3QUvJXyNoJHRNfqmPi3ekTc5k8d4GVlE9u1wDyhSp3mOUD5yzXTLf4y8ScKrbP9GZ9Pzzpm5oOYuVKKu8JF0Z2+h8cpcfEmFxGjHuKcP/YNP4BuwZEPN0OAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var appBar = _7a468({defaultClassName:'AppBar__1yk3a451 f__dhthxq4 f__dhthxq0 f__dhthxqh f__dhthxqc AppScreen__1dlf4347',variantClassNames:{border:{true:'AppBar_border_true__1yk3a452'}},defaultVariants:{},compoundVariants:[]});\nexport var backButton = 'AppBar__1yk3a456 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi';\nexport var center = 'f__dhthxq9 f__dhthxq7 f__dhthxq8 AppBar__1yk3a450';\nexport var centerMain = _7a468({defaultClassName:'AppBar__1yk3a459',variantClassNames:{hasLeft:{true:'AppBar_hasLeft_true__1yk3a45a'}},defaultVariants:{},compoundVariants:[]});\nexport var centerMainEdge = 'AppBar__1yk3a45b f__dhthxqi f__dhthxq4 f__dhthxq2 f__dhthxqf';\nexport var centerText = 'AppBar__1yk3a45c f__dhthxqc f__dhthxqd f__dhthxq0';\nexport var closeButton = 'AppBar__1yk3a456 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi';\nexport var container = 'AppBar__1yk3a454 f__dhthxqa f__dhthxq7 f__dhthxqc';\nexport var left = 'AppBar__1yk3a455 f__dhthxq9 f__dhthxq7 f__dhthxq1 AppBar__1yk3a450';\nexport var right = 'AppBar__1yk3a45d f__dhthxq9 f__dhthxq7 f__dhthxq1 f__dhthxq5 AppBar__1yk3a450';\nexport var safeArea = 'AppBar__1yk3a453';", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/AppScreen.css.ts.vanilla.css?source=#H4sIAAAAAAAAE71WwY7aMBC98xW+VAIVo2TZbtugHlr10nOPVbWa2CYxOLblONBS9d9rJxDYrpMlNKqEBJZn3ryZecx48VHrr8QwJh8fYyrW98v7B/RrglAKZJsZVUmKiRLKJGgHZopxad3FWqg91qLKuMQplJzgimPKC/y312w1+T1ZPI/x9sYY1+K/q/GtAVlyy5VMmt9rZYpjjPPd58qA/26do9kcKQ2E25/XGHdQIGcKPuyRgQDLlnQaR9GrOYrcp8ud1+5HGgmKVu50wFxS9uNUpsMXf2Klr3zrF8+85Z4LgUkOMmPJCaQOZHNWMGdMlNbFIUKhyHOUGKXsNwoWenpRQ30ASY3i9HsQqc4hZzzLbYLiyLBi9aTtCRJcMjA4M0A5k3Z6k8jmyGQpTKOmor6oXVV9302zLXXc4Qv/4Jte4Rt1Cul2301jtmOmrqazLIlRQvg24D1Lt9zi9ra54jJzWlUVyfskp0Ez04a5ey66VvhdzJLkRKCJm4KpyVJeagGOqVSSBTQbh8qxGaRZUjnylksVVO1myB/3Cm5BzY1JOBygL4toYApB6Y+ZQjjAjSkEp9owtn1TbROYzN0k66k3hOgIculj3yOWyyk2Wt1HkE5fOj3CGZ7OGSmH0h0+gXm0pmIt8PY/PivmSAOlbhpjq/SLDyPQ2h0MbpbtBTKmR+h6RF9AJoiAIC8u3KfAM/QaESWdudvVJawZBsPA7YiSWQ86Gy0Kk7uuAMF9IurW7Dm1uev44u7N8bHRtcAYzc59XV7Z/6Lpv09rYEari4dQXRG/SBAeCuN5/gG9kduZswsAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var allTransitions = 'AppScreen__1dlf4348';\nexport var appScreen = _7a468({defaultClassName:'f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc',variantClassNames:{transitionState:{'enter-active':'AppScreen__1dlf4349','enter-done':'AppScreen__1dlf434a','exit-active':'AppScreen__1dlf434b','exit-done':'AppScreen__1dlf434c'}},defaultVariants:{},compoundVariants:[]});\nexport var background = 'AppScreen__1dlf4347';\nexport var dim = 'AppScreen__1dlf434i f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 AppScreen__1dlf4346 AppScreen__1dlf4348';\nexport var edge = _7a468({defaultClassName:'AppScreen__1dlf434l f__dhthxq4 f__dhthxq2 f__dhthxq3 f__dhthxq1',variantClassNames:{hasAppBar:{true:'AppScreen_hasAppBar_true__1dlf434m'}},defaultVariants:{},compoundVariants:[]});\nexport var enterActive = 'AppScreen__1dlf4349';\nexport var enterDone = 'AppScreen__1dlf434a';\nexport var exitActive = 'AppScreen__1dlf434b';\nexport var exitDone = 'AppScreen__1dlf434c';\nexport var paper = _7a468({defaultClassName:'AppScreen__1dlf434j f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 AppScreen__1dlf4347 AppScreen__1dlf4348',variantClassNames:{hasAppBar:{true:'AppScreen_hasAppBar_true__1dlf434k f__dhthxqg'}},defaultVariants:{},compoundVariants:[]});\nexport var vars = {transitionDuration:'var(--transitionDuration__1dlf4340)',zIndexes:{dim:'var(--zIndexes-dim__1dlf4341)',paper:'var(--zIndexes-paper__1dlf4342)',edge:'var(--zIndexes-edge__1dlf4343)',appBar:'var(--zIndexes-appBar__1dlf4344)'},appBar:{center:{mainWidth:'var(--appBar-center-mainWidth__1dlf4345)'}}};", "/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\nimport { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { useRef } from \"react\";\n\nimport { useLazy, useNullableActivity, useStyleEffect } from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./BottomSheet.css\";\n\nexport type BottomSheetProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"dimBackgroundColor\">\n> &\n Partial<GlobalVars[\"bottomSheet\"]> & {\n onOutsideClick?: React.MouseEventHandler;\n children: React.ReactNode;\n };\nconst BottomSheet: React.FC<BottomSheetProps> = ({\n borderRadius = \"1rem\",\n backgroundColor,\n dimBackgroundColor,\n onOutsideClick,\n children,\n}) => {\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const containerRef = useRef<HTMLDivElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n\n useStyleEffect({\n styleName: \"hide\",\n refs: [containerRef],\n });\n useStyleEffect({\n styleName: \"offset\",\n refs: [paperRef],\n });\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [paperRef],\n });\n\n const popLock = useRef(false);\n\n const onDimClick: React.MouseEventHandler = (e) => {\n onOutsideClick?.(e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (popLock.current) {\n return;\n }\n popLock.current = true;\n\n pop();\n };\n const onPaperClick: React.MouseEventHandler = (e) => {\n e.stopPropagation();\n };\n\n const zIndexBase = (activity?.zIndex ?? 0) * 5 + 3;\n const zIndexPaper = (activity?.zIndex ?? 0) * 5 + 4;\n const transitionState = activity?.transitionState ?? \"enter-done\";\n\n return (\n <div\n className={css.container({\n transitionState: useLazy(transitionState),\n })}\n ref={containerRef}\n style={assignInlineVars(\n compactMap({\n [globalVars.bottomSheet.borderRadius]: borderRadius,\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [css.vars.zIndexes.dim]: `${zIndexBase}`,\n [css.vars.zIndexes.paper]: `${zIndexPaper}`,\n [css.vars.transitionDuration]:\n transitionState === \"enter-active\" ||\n transitionState === \"exit-active\"\n ? `var(--stackflow-transition-duration)`\n : \"0ms\",\n }),\n )}\n >\n <div className={css.dim} ref={paperRef} onClick={onDimClick}>\n <div className={css.paper} onClick={onPaperClick}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nBottomSheet.displayName = \"BottomSheet\";\n\nexport default BottomSheet;\n", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/BottomSheet.css.ts.vanilla.css?source=#H4sIAAAAAAAAE6VT3U7DIBS+71NwY7IlPQtN1ZnuznjjtQ+wUGAtkcIC1OmM7y5U20ZT3GaTJpSf7+ccPlb32jndPNWcu+02q11+V+McvScIOUOUFU5oVaAXYhYA48pDa0gYBwhebpKPZDXFth7Zdto0xdevJI7nbJFhfJUi7L84AesISkKfK6NbxYBqqU1vyjq/sZP6AHvZVkJBSayg0ApgooHfKK+C0BGEYvy1Zzg+hhm3ATCIZt1JvSdUuLcC4ai7azRtOp1ev4kc72oc5LKo3O1lcuuz5OLV8X/2frLvB8Fc7Yvzdx6mpTaMGzCEidaeQdnZAxv8wQ/schYWh/KDOSmB1kRVvBjTmvZN2sQz7NP7HeOZmeGXZYb/9bDw8KrmxCrmKBKrU46ibfoES/9iF4cEAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc',variantClassNames:{transitionState:{'enter-active':'BottomSheet__1ht38h04','enter-done':'BottomSheet__1ht38h05','exit-active':'BottomSheet__1ht38h06','exit-done':'BottomSheet__1ht38h07'}},defaultVariants:{},compoundVariants:[]});\nexport var dim = 'BottomSheet__1ht38h0d f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc f__dhthxqa f__dhthxq7 BottomSheet__1ht38h03';\nexport var enterActive = 'BottomSheet__1ht38h04';\nexport var enterDone = 'BottomSheet__1ht38h05';\nexport var exitActive = 'BottomSheet__1ht38h06';\nexport var exitDone = 'BottomSheet__1ht38h07';\nexport var paper = 'BottomSheet__1ht38h0e f__dhthxqc BottomSheet__1ht38h03';\nexport var vars = {transitionDuration:'var(--transitionDuration__1ht38h00)',zIndexes:{dim:'var(--zIndexes-dim__1ht38h01)',paper:'var(--zIndexes-paper__1ht38h02)'}};", "/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\nimport { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { useRef } from \"react\";\n\nimport { useLazy, useNullableActivity, useStyleEffect } from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./Modal.css\";\n\nexport type ModalProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"dimBackgroundColor\">\n> &\n Partial<GlobalVars[\"modal\"]> & {\n onOutsideClick?: React.MouseEventHandler;\n children: React.ReactNode;\n };\nconst Modal: React.FC<ModalProps> = ({\n backgroundColor,\n dimBackgroundColor,\n borderRadius = \"1rem\",\n onOutsideClick,\n children,\n}) => {\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const containerRef = useRef<HTMLDivElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n\n useStyleEffect({\n styleName: \"hide\",\n refs: [containerRef],\n });\n useStyleEffect({\n styleName: \"offset\",\n refs: [paperRef],\n });\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [paperRef],\n });\n\n const popLock = useRef(false);\n\n const onDimClick: React.MouseEventHandler = (e) => {\n onOutsideClick?.(e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (popLock.current) {\n return;\n }\n popLock.current = true;\n\n pop();\n };\n const onPaperClick: React.MouseEventHandler = (e) => {\n e.stopPropagation();\n };\n\n const zIndexBase = (activity?.zIndex ?? 0) * 5 + 3;\n const zIndexPaper = (activity?.zIndex ?? 0) * 5 + 4;\n const transitionState = activity?.transitionState ?? \"enter-done\";\n\n return (\n <div\n className={css.container({\n transitionState: useLazy(transitionState),\n })}\n ref={containerRef}\n style={assignInlineVars(\n compactMap({\n [globalVars.bottomSheet.borderRadius]: borderRadius,\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [css.vars.zIndexes.dim]: `${zIndexBase}`,\n [css.vars.zIndexes.paper]: `${zIndexPaper}`,\n [css.vars.transitionDuration]:\n transitionState === \"enter-active\" ||\n transitionState === \"exit-active\"\n ? `var(--stackflow-transition-duration)`\n : \"0ms\",\n }),\n )}\n >\n <div className={css.dim} ref={paperRef} onClick={onDimClick}>\n <div className={css.paper} onClick={onPaperClick}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nModal.displayName = \"Modal\";\n\nexport default Modal;\n", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/Modal.css.ts.vanilla.css?source=#H4sIAAAAAAAAE51T0W6CMBR99yv6sgQT2hQZ0+HrXvawbzCXtmKzQk1bpnPZv6+AaECcbkkT2ttzzj339kLeNAe1WiX6kC9YjL4mCDkDpZVO6jJFH2ACjM+Rl8pA/e0YdLqcfE9IT2V+VllrU6TtVoETMQ8iSh9CRP0aYfKGmQF7z42uSo6ZVtp0LqzzF2uld3irqlyWOAMrGa4k5rLAQ5aXR+iAZcnFvlM4vNYnYWtClzNqgHoLTLrPFNFLV49o4DIcBJIhoCnjJBldSj7dkpz/LjniUvyzd6N920nuNt65f6z6WIDxHJ8WzUhiRFHHMr3HdgNc73x8u0eUPM3qOw+J583G5BkEtH1sv0iUTMMGSpITdHEFOuugcdRCyfM11WnrxnBhsAEuK3tH0do5XXj/Qjjc4x7LVwqzDZS5SM+DHHb9X/bH2zJQIojI3ydJ3JokMfyVjrn6me4YsItMwwG7lmmsqh+//tn1NQQAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc',variantClassNames:{transitionState:{'enter-active':'Modal__5ozg8c4','enter-done':'Modal__5ozg8c5','exit-active':'Modal__5ozg8c6','exit-done':'Modal__5ozg8c7'}},defaultVariants:{},compoundVariants:[]});\nexport var dim = 'Modal__5ozg8cd f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc f__dhthxq9 f__dhthxq7 f__dhthxqb Modal__5ozg8c3';\nexport var enterActive = 'Modal__5ozg8c4';\nexport var enterDone = 'Modal__5ozg8c5';\nexport var exitActive = 'Modal__5ozg8c6';\nexport var exitDone = 'Modal__5ozg8c7';\nexport var paper = 'Modal__5ozg8ce f__dhthxqc Modal__5ozg8c3';\nexport var vars = {transitionDuration:'var(--transitionDuration__5ozg8c0)',zIndexes:{dim:'var(--zIndexes-dim__5ozg8c1)',paper:'var(--zIndexes-paper__5ozg8c2)'}};"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAS,wBAAwB;AACjC,OAAO,SAAS,eAAe,kBAAkB;;;ACFjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACO,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,aAAa,EAAC,iBAAgB,qDAAoD,oBAAmB,yDAAwD,QAAO,EAAC,aAAY,yDAAwD,YAAW,wDAAuD,QAAO,mDAAkD,0BAAyB,uEAAsE,WAAU,uDAAsD,WAAU,uDAAsD,WAAU,uDAAsD,iBAAgB,4DAA2D,GAAE,aAAY,EAAC,cAAa,8DAA6D,GAAE,OAAM,EAAC,cAAa,8DAA6D,EAAC;AAC/3B,IAAI,cAAc;AAClB,IAAI,gBAAgB;;;ACLpB,SAAS,QAAW,KAAsC;AAC/D,SAAO,IAAI;AAAA,IACT,CAAC,SACC,SAAS,UAAa,SAAS;AAAA,EACnC;AACF;;;ACLO,SAAS,WACd,KAGA;AACA,SAAO,OAAO,QAAQ,GAAG,EAAE,OAAY,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;AAC5D,QAAI,UAAU,QAAQ,UAAU,QAAW;AACzC,UAAI,OAAO;AAAA,IACb;AAEA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AACP;;;ACZO,SAAS,WACd,IACA,MACA,IACA;AACA,QAAM,WAAW,MAAM;AACrB,OAAG,oBAAoB,MAAM,QAAQ;AACrC,OAAG;AAAA,EACL;AAEA,KAAG,iBAAiB,MAAM,QAAQ;AACpC;;;ACXO,IAAM,eAAe,CAAC,OAAmB;AAC9C,KAAG;AACH,SAAO,iBAAiB,UAAU,EAAE;AAEpC,SAAO,MAAM;AACX,WAAO,oBAAoB,UAAU,EAAE;AAAA,EACzC;AACF;;;ACPO,IAAM,OAAO,MAAM;AAAC;;;ACCpB,SAAS,iBAAiB,IAAgB;AAC/C,wBAAsB,MAAM;AAC1B,0BAAsB,MAAM;AAC1B,SAAG;AAAA,IACL,CAAC;AAAA,EACH,CAAC;AACH;;;APgBA,IAAM,uBAAuB,cAAoC;AAAA,EAC/D,OAAO;AACT,CAAC;AAEM,IAAM,wBAAwB,qBAAqB;AAEnD,SAAS,mBAAmB;AACjC,SAAO,WAAW,oBAAoB;AACxC;AAEO,IAAM,gBAEe,CAAC,YAAY,OAAO;AAAA,EAC9C,KAAK;AAAA,EACL,UAAU,EAAE,MAAM,GAAG;AArCvB;AAsCI,WACE,oCAAC;AAAA,MAAsB,OAAO;AAAA,OAC5B,oCAAC;AAAA,MACC,WACE,OAAO,WAAW,cACd,QAAQ,CAAC,kBAAM,QAAQ,QAAQ,QAAQ,aAAa,CAAC,EAAE,KAAK,GAAG,IAC/D,QAAQ;AAAA,MAEd,OAAO;AAAA,QACL,WAAW;AAAA,UACT,CAAO,WAAW,kBAAkB,QAAQ;AAAA,UAC5C,CAAO,WAAW,qBAAqB,QAAQ;AAAA,UAC/C,CAAO,WAAW,OAAO,eACvB,aAAQ,WAAR,mBAAgB;AAAA,UAClB,CAAO,WAAW,OAAO,cAAa,aAAQ,WAAR,mBAAgB;AAAA,UACtD,CAAO,WAAW,OAAO,UAAS,aAAQ,WAAR,mBAAgB;AAAA,UAClD,CAAO,WAAW,OAAO,aAAY,aAAQ,WAAR,mBAAgB;AAAA,UACrD,CAAO,WAAW,OAAO,aAAY,aAAQ,WAAR,mBAAgB;AAAA,UACrD,CAAO,WAAW,YAAY,gBAC5B,aAAQ,gBAAR,mBAAqB;AAAA,UACvB,CAAO,WAAW,MAAM,gBACtB,aAAQ,UAAR,mBAAe;AAAA,QACnB,CAAC;AAAA,MACH;AAAA,OAEC,MAAM,OAAO,CAChB,CACF;AAAA,EAEJ;AACF;;;AQlEA,SAAS,cAAAA,mBAAkB;AAC3B,SAAS,oBAAAC,yBAAwB;AACjC,OAAOC,UAAS,iBAAAC,gBAAe,cAAAC,aAAY,SAAS,UAAAC,eAAc;;;ACJlE,SAAS,WAAW,gBAAgB;AAI7B,SAAS,QAAW,OAAU;AACnC,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,MAAS;AAE3D,YAAU,MAAM;AACd,qBAAiB,MAAM;AACrB,eAAS,KAAK;AAAA,IAChB,CAAC;AAAA,EACH,GAAG,CAAC,KAAK,CAAC;AAEV,SAAO;AACT;;;ACbA,SAAS,aAAAC,YAAW,YAAAC,iBAAgB;AAI7B,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,CAAC,UAAU,WAAW,IAAIC,UAA6B,MAAS;AAEtE,EAAAC,WAAU,MAAM;AACd,UAAM,SAAS,YAAY,aAAa,YAAY,SAAS;AAC7D,UAAM,SAAS,SAAS;AAExB,QAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ;AACjC,aAAO;AAAA,IACT;AAEA,UAAM,UAAU,aAAa,MAAM;AACjC,YAAM,cAAc,OAAO;AAE3B,YAAM,YAAY,OAAO;AACzB,YAAM,cAAc,OAAO;AAC3B,YAAM,aAAa,cAAc,YAAY;AAE7C,YAAM,aAAa,KAAK,IAAI,WAAW,UAAU;AAEjD,kBAAY,cAAc,IAAI,UAAU;AAAA,IAC1C,CAAC;AAED,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACL;AAAA,EACF;AACF;;;ACzCA,SAAS,mBAAmB;AAErB,SAAS,sBAAsB;AACpC,SAAO,YAAY;AACrB;;;ACHA,SAAS,aAAAC,kBAAiB;AAI1B,IAAM,cAQF,CAAC;AAEE,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACF,GAOG;AACD,QAAM,WAAW,oBAAoB;AAErC,EAAAC,WAAU,MAAM;AACd,QAAI,CAAC,UAAU;AACb,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AACA,QAAI,CAAC,YAAY,YAAY;AAC3B,kBAAY,aAAa,oBAAI,IAAI;AAAA,IACnC;AAEA,gBAAY,WAAW,IAAI,SAAS,QAAQ;AAAA,MAC1C;AAAA,MACA,WAAW,CAAC,CAAC;AAAA,IACf,CAAC;AAED,WAAO,MAAM;AACX,kBAAY,WAAW,OAAO,SAAS,MAAM;AAAA,IAC/C;AAAA,EACF,GAAG,CAAC,qCAAU,IAAI,MAAM,MAAM,CAAC;AAE/B,EAAAA,WAAU,MAAM;AACd,QAAI,CAAC,UAAU;AACb,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AACA,QAAI,CAAC,QAAQ;AACX,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AAEA,UAAMC,SAAQ,MAAM;AAClB,UAAI,MAAmC,CAAC;AAExC,eAAS,IAAI,GAAG,KAAK,SAAS,QAAQ,KAAK,GAAG;AAC5C,cAAM,aAAa,YAAY,WAAW,IAAI,SAAS,SAAS,CAAC;AAEjE,YAAI,yCAAY,MAAM;AACpB,gBAAM,CAAC,GAAG,KAAK,GAAG,WAAW,IAAI;AAAA,QACnC;AACA,YAAI,yCAAY,WAAW;AACzB;AAAA,QACF;AAAA,MACF;AAEA,aAAO;AAAA,IACT,GAAG;AAEH,UAAM,UAAU,OAAO;AAAA,MACrB,yBAAyB,SAAS;AAAA,MAClC,MAAAA;AAAA,IACF,CAAC;AAED,WAAO,MAAM;AACX;AAAA,IACF;AAAA,EACF,GAAG,CAAC,qCAAU,eAAe,CAAC;AAChC;;;AC5EO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AACF,GAGG;AACD,iBAAe;AAAA,IACb,WAAW;AAAA,IACX;AAAA,IACA,QAAQ,YACJ,CAAC,EAAE,yBAAyB,MAAAC,MAAK,MAAM;AACrC,YAAM,UAAU,MAAM;AACpB,QAAAA,MAAK,QAAQ,CAAC,QAAQ;AACpB,cAAI,CAAC,IAAI,SAAS;AAChB;AAAA,UACF;AACA,gBAAM,OAAO,IAAI;AAEjB,eAAK,MAAM,UAAU;AAAA,QACvB,CAAC;AAAA,MACH;AAEA,cAAQ;AAAA,aACD,cAAc;AACjB,UAAAA,MAAK,QAAQ,CAAC,QAAQ;AACpB,gBAAI,CAAC,IAAI,SAAS;AAChB;AAAA,YACF;AACA,kBAAM,OAAO,IAAI;AAEjB,iBAAK,MAAM,UAAU;AAAA,UACvB,CAAC;AAED,iBAAO,MAAM;AACX,oBAAQ;AAAA,UACV;AAAA,QACF;AAAA,iBACS;AACP,kBAAQ;AAER,iBAAO,MAAM;AAAA,UAAC;AAAA,QAChB;AAAA;AAAA,IAEJ,IACA;AAAA,EACN,CAAC;AACH;;;AChDO,IAAM,oBAAoB;AAC1B,IAAM,sBAAsB;AAE5B,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,iBAAe;AAAA,IACb,WAAW;AAAA,IACX;AAAA,IACA,QAAQ,YACJ,CAAC,EAAE,yBAAyB,MAAAC,MAAK,MAAM;AACrC,YAAM,YACJ,UAAU,cACN,gBAAgB,sBAAsB,iBACtC,mBAAmB,oBAAoB;AAE7C,YAAM,UAAU,MAAM;AACpB,yBAAiB,MAAM;AACrB,UAAAA,MAAK,QAAQ,CAAC,QAAQ;AACpB,gBAAI,CAAC,IAAI,SAAS;AAChB;AAAA,YACF;AAEA,kBAAM,MAAM,IAAI;AAEhB,gBAAI,MAAM,YAAY;AAEtB,uBAAW,KAAK,iBAAiB,MAAM;AACrC,kBAAI,MAAM,aAAa;AAAA,YACzB,CAAC;AAAA,UACH,CAAC;AAAA,QACH,CAAC;AAAA,MACH;AAEA,cAAQ;AAAA,aACD;AAAA,aACA,cAAc;AACjB,UAAAA,MAAK,QAAQ,CAAC,QAAQ;AACpB,gBAAI,CAAC,IAAI,SAAS;AAChB;AAAA,YACF;AAEA,gBAAI,QAAQ,MAAM,aAAa;AAC/B,gBAAI,QAAQ,MAAM,YAAY;AAAA,UAChC,CAAC;AAED,kBAAQ;AAAA,iBACD;AACH,qBAAO,MAAM;AACX,wBAAQ;AAAA,cACV;AAAA,iBACG;AAAA;AAEH,qBAAO,MAAM;AAAA,cAAC;AAAA;AAAA,QAEpB;AAAA,aACK;AAAA,aACA,aAAa;AAChB,2BAAiB,MAAM;AACrB,oBAAQ;AAAA,UACV,CAAC;AAED,iBAAO,MAAM;AAAA,UAAC;AAAA,QAChB;AAAA,iBACS;AACP,iBAAO,MAAM;AAAA,UAAC;AAAA,QAChB;AAAA;AAAA,IAEJ,IACA;AAAA,EACN,CAAC;AACH;;;AC5EO,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAOG;AACD,iBAAe;AAAA,IACb,WAAW;AAAA,IACX,MAAM,CAAC,QAAQ;AAAA,IACf,QAAQ,YACJ,CAAC,EAAE,KAAK,MAAM;AACZ,UAAI,UAAU,aAAa;AACzB,eAAO,MAAM;AAAA,QAAC;AAAA,MAChB;AAEA,UAAI,CAAC,OAAO,WAAW,CAAC,QAAQ,WAAW,CAAC,SAAS,SAAS;AAC5D,eAAO,MAAM;AAAA,QAAC;AAAA,MAChB;AAEA,YAAM,OAAO,OAAO;AACpB,YAAM,QAAQ,QAAQ;AACtB,YAAM,SAAS,SAAS;AAExB,UAAI,KAAoB;AACxB,UAAI,KAAoB;AACxB,UAAI,IAAmB;AAEvB,UAAI,aAUC,CAAC;AAEN,YAAM,aAAa,MAAM;AACvB,aAAK;AACL,aAAK;AACL,YAAI;AACJ,qBAAa,CAAC;AAAA,MAChB;AAEA,UAAI,WAAW;AAEf,eAAS,UAAU,IAAY;AAC7B,YAAI,CAAC,UAAU;AACb,qBAAW;AAEX,gCAAsB,MAAM;AAC1B,kBAAM,IAAI,KAAK,OAAO;AAEtB,iBAAK,MAAM,UAAU,GAAG,IAAI;AAC5B,iBAAK,MAAM,aAAa;AAExB,mBAAO,MAAM,YAAY;AACzB,mBAAO,MAAM,YAAY,eAAe;AACxC,mBAAO,MAAM,aAAa;AAE1B,iBAAK,QAAQ,CAAC,QAAQ;AA7EtC;AA8EkB,kBAAI,CAAC,IAAI,SAAS;AAChB;AAAA,cACF;AAEA,kBAAI,QAAQ,MAAM,YAAY,eAC5B,MAAM,IAAI,KAAK;AAEjB,kBAAI,QAAQ,MAAM,aAAa;AAE/B,oBAAI,SAAI,QAAQ,kBAAZ,mBAA2B,MAAM,aAAY,QAAQ;AACvD,oBAAI,QAAQ,cAAc,MAAM,UAAU;AAAA,cAC5C;AAAA,YACF,CAAC;AAED,uBAAW;AAAA,UACb,CAAC;AAAA,QACH;AAAA,MACF;AAEA,eAAS,WAAW,EAAE,OAAO,GAAuC;AAClE,eAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,gCAAsB,MAAM;AAC1B,iBAAK,MAAM,UAAU,GAAG,SAAS,IAAI;AACrC,iBAAK,MAAM,aAAa;AAExB,mBAAO,MAAM,YAAY;AACzB,mBAAO,MAAM,YAAY,cAAc,SAAS,SAAS;AACzD,mBAAO,MAAM,aACX;AAEF,iBAAK,QAAQ,CAAC,QAAQ;AACpB,kBAAI,CAAC,IAAI,SAAS;AAChB;AAAA,cACF;AAEA,kBAAI,QAAQ,MAAM,aAAa;AAC/B,kBAAI,QAAQ,MAAM,YAAY,eAC5B,SAAS,MAAM,IAAI,sBAAsB;AAAA,YAE7C,CAAC;AAED,kBAAM,cAAc,CAAC,GAAG,UAAU;AAElC,oBAAQ;AAER,uBAAW,QAAQ,iBAAiB,MAAM;AACxC,mBAAK,MAAM,UAAU;AACrB,qBAAO,MAAM,YAAY;AACzB,qBAAO,MAAM,YAAY;AAEzB,mBAAK,QAAQ,CAAC,KAAK,MAAM;AACvB,oBAAI,CAAC,IAAI,SAAS;AAChB;AAAA,gBACF;AAEA,sBAAM,aAAa,YAAY;AAE/B,oBAAI,QAAQ;AACV,sBAAI,QAAQ,MAAM,aAAa;AAC/B,sBAAI,QAAQ,MAAM,YAAY;AAE9B,sBAAI,IAAI,QAAQ,eAAe;AAC7B,wBAAI,QAAQ,cAAc,MAAM,UAAU;AAAA,kBAC5C;AAAA,gBACF,WAAW,YAAY;AACrB,sBAAI,QAAQ,MAAM,aAChB,WAAW,MAAM;AACnB,sBAAI,QAAQ,MAAM,YAAY,WAAW,MAAM;AAE/C,sBACE,IAAI,QAAQ,iBACZ,WAAW,eACX;AACA,wBAAI,QAAQ,cAAc,MAAM,UAC9B,WAAW,cAAc,MAAM;AAAA,kBACnC;AAAA,gBACF;AAAA,cACF,CAAC;AAAA,YACH,CAAC;AAAA,UACH,CAAC;AAAA,QACH,CAAC;AAAA,MACH;AAEA,YAAM,eAAe,CAAC,MAAkB;AAjKlD;AAkKY,cAAM,EAAE,cAAc,IAAI;AAE1B,6DAAe,SAAf;AAEA,aAAK,IAAI,EAAE,QAAQ,GAAG;AACtB,aAAK,KAAK,IAAI;AAEd,qBAAa,KAAK,IAAI,CAAC,QAAQ;AAC7B,cAAI,CAAC,IAAI,SAAS;AAChB,mBAAO;AAAA,cACL,OAAO;AAAA,gBACL,WAAW;AAAA,gBACX,YAAY;AAAA,cACd;AAAA,YACF;AAAA,UACF;AAEA,iBAAO;AAAA,YACL,OAAO;AAAA,cACL,WAAW,IAAI,QAAQ,MAAM;AAAA,cAC7B,YAAY,IAAI,QAAQ,MAAM;AAAA,YAChC;AAAA,YACA,eAAe,IAAI,QAAQ,gBACvB;AAAA,cACE,OAAO;AAAA,gBACL,SAAS,IAAI,QAAQ,cAAc,MAAM;AAAA,cAC3C;AAAA,YACF,IACA;AAAA,UACN;AAAA,QACF,CAAC;AAAA,MACH;AAEA,YAAM,cAAc,CAAC,MAAkB;AACrC,YAAI,CAAC,IAAI;AACP,qBAAW;AACX;AAAA,QACF;AAEA,YAAI,EAAE,QAAQ,GAAG;AAEjB,kBAAU,IAAI,EAAE;AAAA,MAClB;AAEA,YAAM,aAAa,MAAM;AACvB,YAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;AACpB,qBAAW;AACX;AAAA,QACF;AAEA,cAAM,IAAI,KAAK,IAAI;AACnB,cAAM,KAAK,IAAI,OAAO,IAAI;AAC1B,cAAM,SAAS,IAAI,KAAK,IAAI,OAAO,cAAc;AAEjD,YAAI,QAAQ;AACV;AAAA,QACF;AAEA,gBAAQ,QAAQ,EACb,KAAK,MAAM,WAAW,EAAE,OAAO,CAAC,CAAC,EACjC,KAAK,MAAM,WAAW,CAAC;AAAA,MAC5B;AAEA,YAAM,iBAAiB,cAAc,cAAc,EAAE,SAAS,KAAK,CAAC;AACpE,YAAM,iBAAiB,aAAa,aAAa,EAAE,SAAS,KAAK,CAAC;AAClE,YAAM,iBAAiB,YAAY,YAAY,EAAE,SAAS,KAAK,CAAC;AAChE,YAAM,iBAAiB,eAAe,YAAY,EAAE,SAAS,KAAK,CAAC;AAEnE,aAAO,MAAM;AACX,cAAM,oBAAoB,cAAc,YAAY;AACpD,cAAM,oBAAoB,aAAa,WAAW;AAClD,cAAM,oBAAoB,YAAY,UAAU;AAChD,cAAM,oBAAoB,eAAe,UAAU;AAAA,MACrD;AAAA,IACF,IACA;AAAA,EACN,CAAC;AACH;;;AC/OA,SAAS,kBAAkB;AAC3B,SAAS,oBAAAC,yBAAwB;AACjC,OAAOC,UAAS,cAAc;;;ACF9B,OAAOC,YAAW;AAElB,IAAM,WAED,CAAC,UACJ,gBAAAA,OAAA,cAAC;AAAA,EACC,WAAW,MAAM;AAAA,EACjB,OAAM;AAAA,EACN,QAAO;AAAA,EACP,SAAQ;AAAA,EACR,MAAK;AAAA,EACL,OAAM;AAAA,GAEN,gBAAAA,OAAA,cAAC;AAAA,EACC,GAAE;AAAA,EACF,MAAK;AAAA,CACP,CACF;AAGF,IAAO,mBAAQ;;;ACpBf,OAAOC,YAAW;AAElB,IAAM,YAED,CAAC,UACJ,gBAAAA,OAAA,cAAC;AAAA,EACC,WAAW,MAAM;AAAA,EACjB,OAAM;AAAA,EACN,QAAO;AAAA,EACP,SAAQ;AAAA,EACR,MAAK;AAAA,EACL,OAAM;AAAA,GAEN,gBAAAA,OAAA,cAAC;AAAA,EACC,GAAE;AAAA,EACF,MAAK;AAAA,CACP,GACA,gBAAAA,OAAA,cAAC;AAAA,EACC,GAAE;AAAA,EACF,MAAK;AAAA,CACP,CACF;AAGF,IAAO,oBAAQ;;;ACpBf,SAAS,mBAAmB,cAAc;AACnC,IAAI,SAAS,OAAO,EAAC,kBAAiB,oFAAmF,mBAAkB,EAAC,QAAO,EAAC,MAAK,+BAA8B,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;AACjO,IAAI,aAAa;AACjB,IAAI,SAAS;AACb,IAAI,aAAa,OAAO,EAAC,kBAAiB,oBAAmB,mBAAkB,EAAC,SAAQ,EAAC,MAAK,gCAA+B,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;AACvK,IAAI,iBAAiB;AACrB,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,WAAW;;;ACZtB,SAAS,mBAAmBC,eAAc;AAEnC,IAAI,YAAYC,QAAO,EAAC,kBAAiB,qEAAoE,mBAAkB,EAAC,iBAAgB,EAAC,gBAAe,uBAAsB,cAAa,uBAAsB,eAAc,uBAAsB,aAAY,sBAAqB,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;AAExU,IAAI,MAAM;AACV,IAAI,OAAOC,QAAO,EAAC,kBAAiB,mEAAkE,mBAAkB,EAAC,WAAU,EAAC,MAAK,qCAAoC,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;AAKvN,IAAI,QAAQC,QAAO,EAAC,kBAAiB,sHAAqH,mBAAkB,EAAC,WAAU,EAAC,MAAK,gDAA+C,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;AACtR,IAAI,OAAO,EAAC,oBAAmB,uCAAsC,UAAS,EAAC,KAAI,iCAAgC,OAAM,mCAAkC,MAAK,kCAAiC,QAAO,mCAAkC,GAAE,QAAO,EAAC,QAAO,EAAC,WAAU,2CAA0C,EAAC,EAAC;;;AJkCzT,IAAM,SAASC,OAAM;AAAA,EACnB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,sBAAsB;AAAA,IACtB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GACA,QACG;AAnEP;AAoEI,UAAM,UAAU,WAAW;AAC3B,UAAM,WAAW,oBAAoB;AAErC,UAAM,gBAAgB,iBAAiB;AACvC,UAAM,qBAAoB,mBAAc,WAAd,mBAAsB;AAEhD,UAAM,YAAY,OAAY,IAAI;AAElC,UAAM,EAAE,SAAS,IAAI,YAAY;AAAA,MAC/B,UAAU;AAAA,MACV,UAAU;AAAA,MACV,QAAQ,cAAc,UAAU;AAAA,IAClC,CAAC;AAED,UAAM,cAAc,CAAC,MAA2C;AAC9D,UAAID,eAAc,aAAaA,eAAcA,YAAW,SAAS;AAC/D,QAAAA,YAAW,QAAQ,CAAC;AAAA,MACtB;AAEA,UAAI,CAAC,EAAE,kBAAkB;AACvB,gBAAQ,IAAI;AAAA,MACd;AAAA,IACF;AAEA,UAAM,mBAAmB,MAAM;AA5FnC,UAAAE;AA6FM,UAAI,CAAC,UAAU;AACb,eAAO;AAAA,MACT;AACA,UAAI,SAAS,QAAQ;AACnB,eAAO;AAAA,MACT;AAEA,UAAI,CAACF,aAAY;AACf,eACE,gBAAAD,OAAA,cAAC;AAAA,UACC,MAAK;AAAA,UACL,WAAe;AAAA,UACf,SAAS;AAAA,WAET,gBAAAA,OAAA,cAAC,sBAAS,CACZ;AAAA,MAEJ;AAEA,UAAI,YAAYC,eAAcA,YAAW,QAAQ;AAC/C,gBAAOE,MAAAF,YAAW,WAAX,gBAAAE,IAAA,KAAAF;AAAA,MACT;AAEA,aACE,gBAAAD,OAAA,cAAC;AAAA,QAAO,MAAK;AAAA,QAAS,WAAe;AAAA,QAAY,SAAS;AAAA,SACvD,gBAAgBC,eAAcA,YAAW,aACxCA,YAAW,WAAW,IAEtB,gBAAAD,OAAA,cAAC,sBAAS,CAEd;AAAA,IAEJ;AAEA,UAAM,eAAe,CAAC,MAA2C;AA/HrE,UAAAG;AAgIM,UAAID,gBAAe,aAAaA,gBAAeA,aAAY,SAAS;AAClE,QAAAA,aAAY,QAAQ,CAAC;AAAA,MACvB;AAEA,UACE,CAAC,EAAE,oBACH,qBACA,aAAa,mBACb;AACA,SAAAC,MAAA,kBAAkB,YAAlB,gBAAAA,IAAA,wBAA4B;AAAA,MAC9B;AAAA,IACF;AAEA,UAAM,oBAAoB,MAAM;AA7IpC,UAAAA;AA8IM,YAAM,SAAS,CAAC,YAAY,SAAS;AAErC,UAAK,CAACD,gBAAe,GAACC,MAAA,cAAc,WAAd,gBAAAA,IAAsB,gBAAgB,CAAC,QAAQ;AACnE,eAAO;AAAA,MACT;AACA,UAAID,gBAAe,YAAYA,gBAAeA,aAAY,QAAQ;AAChE,eAAOA,aAAY,OAAO;AAAA,MAC5B;AACA,UACE,qBACA,YAAY,qBACZ,kBAAkB,QAClB;AACA,eAAO,kBAAkB,OAAO;AAAA,MAClC;AAEA,aACE,gBAAAF,OAAA,cAAC;AAAA,QACC,MAAK;AAAA,QACL,WAAe;AAAA,QACf,SAAS;AAAA,UAEP,MAAM;AACN,YACEE,gBACA,gBAAgBA,gBAChBA,aAAY,YACZ;AACA,iBAAOA,aAAY,WAAW;AAAA,QAChC;AACA,YACE,qBACA,gBAAgB,qBAChB,kBAAkB,YAClB;AACA,iBAAO,kBAAkB,WAAW;AAAA,QACtC;AAEA,eAAO,gBAAAF,OAAA,cAAC,uBAAU;AAAA,MACpB,GAAG,CACL;AAAA,IAEJ;AAEA,UAAM,UAAU,CAAC,EACd,wBAAwB,UAAUE,gBACnCD,eACA;AAGF,WACE,gBAAAD,OAAA,cAAC;AAAA,MACC;AAAA,MACA,WAAe,OAAO;AAAA,QACpB;AAAA,MACF,CAAC;AAAA,MACD,OAAOI;AAAA,QACL,WAAW;AAAA,UACT,CAAC,WAAW,OAAO,YAAY;AAAA,UAC/B,CAAC,WAAW,OAAO,YAAY;AAAA,UAC/B,CAAC,WAAW,OAAO,cAAc;AAAA,UACjC,CAAC,WAAW,OAAO,aAAa;AAAA,UAChC,CAAC,WAAW,OAAO,SAAS;AAAA,UAC5B,CAAC,WAAW,OAAO,kBACjB,mBAAmB,WAAW;AAAA,UAChC,CAAc,KAAK,OAAO,OAAO,YAAY,GAAG;AAAA,QAClD,CAAC;AAAA,MACH;AAAA,OAEA,gBAAAJ,OAAA,cAAC;AAAA,MAAI,WAAe;AAAA,KAAU,GAC9B,gBAAAA,OAAA,cAAC;AAAA,MAAI,WAAe;AAAA,OAClB,gBAAAA,OAAA,cAAC;AAAA,MAAI,WAAe;AAAA,OACjB,wBAAwB,UAAU,kBAAkB,GACpD,iBAAiB,GACjB,0CACH,GACA,gBAAAA,OAAA,cAAC;AAAA,MAAI,KAAK;AAAA,MAAW,WAAe;AAAA,OAClC,gBAAAA,OAAA,cAAC;AAAA,MACC,WAAe,WAAW;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,OAEA,OAAO,UAAU,WAChB,gBAAAA,OAAA,cAAC;AAAA,MAAI,WAAe;AAAA,OAAa,KAAM,IAEvC,OAEF,gBAAAA,OAAA,cAAC;AAAA,MACC,WAAe;AAAA,MACf,MAAK;AAAA,MACL,eAAY;AAAA,MACZ,SAAS;AAAA,KACX,CACF,CACF,GACA,gBAAAA,OAAA,cAAC;AAAA,MAAI,WAAe;AAAA,OACjB,8CACA,wBAAwB,WAAW,kBAAkB,CACxD,CACF,CACF;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;AAErB,IAAO,iBAAQ;;;ARjOf,IAAM,UAAUK,eAAgC,IAAW;AAEpD,SAAS,eAAe;AAC7B,SAAOC,YAAW,OAAO;AAC3B;AASA,IAAM,YAAsC,CAAC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA,QAAAC;AAAA,EACA;AAAA,EACA;AACF,MAAM;AA3CN;AA4CE,QAAM,gBAAgB,iBAAiB;AACvC,QAAM,WAAW,oBAAoB;AACrC,QAAM,EAAE,IAAI,IAAIC,YAAW;AAE3B,QAAM,eAAeC,QAAuB,IAAI;AAChD,QAAM,SAASA,QAAuB,IAAI;AAC1C,QAAM,WAAWA,QAAuB,IAAI;AAC5C,QAAM,UAAUA,QAAuB,IAAI;AAC3C,QAAM,YAAYA,QAAuB,IAAI;AAE7C,qBAAmB;AAAA,IACjB,MAAM,CAAC,YAAY;AAAA,IACnB,WAAW;AAAA,EACb,CAAC;AACD,uBAAqB;AAAA,IACnB,OAAO,cAAc;AAAA,IACrB,MACE,cAAc,UAAU,cAAc,CAAC,QAAQ,IAAI,CAAC,UAAU,SAAS;AAAA,IACzE,WAAW;AAAA,EACb,CAAC;AACD,0BAAwB;AAAA,IACtB,OAAO,cAAc;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,WAAW;AACT,UAAI;AAAA,IACN;AAAA,EACF,CAAC;AAED,QAAM,YAAY,CAAC,CAACF;AAEpB,QAAM,eAAc,0CAAU,WAAV,YAAoB,KAAK;AAC7C,QAAM,YAAY;AAClB,QAAM,cACJ,cAAc,cAAc,UAAU,eAAe,YAAY,IAAI;AACvE,QAAM,aAAa,aAAa;AAChC,QAAM,eAAe,aAAa;AAElC,QAAM,mBAAkB,0CAAU,oBAAV,YAA6B;AACrD,QAAM,sBAAsB,QAAQ,eAAe;AAEnD,QAAM,mBAA4C,CAAC,MAAM;AAvF3D,QAAAG,KAAAC;AAwFI,KAAAD,MAAAH,WAAA,gBAAAA,QAAQ,eAAR,gBAAAG,IAAA,KAAAH,SAAqB;AAErB,QAAI,CAAC,EAAE,kBAAkB;AACvB,OAAAI,MAAA,SAAS,YAAT,gBAAAA,IAAkB,OAAO;AAAA,QACvB,KAAK;AAAA,QACL,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AAEA,SACE,gBAAAC,OAAA,cAAC,QAAQ,UAAR;AAAA,IACC,OAAO;AAAA,MACL,OAAO;AAAA,QACL,OAAO,EAAE,IAAI,GAAG;AAtG1B,cAAAF;AAuGY,WAAAA,MAAA,qCAAU,YAAV,gBAAAA,IAAmB,OAAO;AAAA,YACxB;AAAA,YACA,UAAU;AAAA,UACZ;AAAA,QACF;AAAA,MACF;AAAA,MACA,CAAC,QAAQ;AAAA,IACX;AAAA,KAEA,gBAAAE,OAAA,cAAC;AAAA,IACC,KAAK;AAAA,IACL,WAAe,UAAU;AAAA,MACvB,iBACE,oBAAoB,gBAAgB,oBAAoB,cACpD,kBACA;AAAA,IACR,CAAC;AAAA,IACD,OAAOC;AAAA,MACL,WAAW;AAAA,QACT,CAAC,WAAW,kBAAkB;AAAA,QAC9B,CAAC,WAAW,qBAAqB;AAAA,QACjC,CAAC,WAAW,OAAO,SAASN,WAAA,gBAAAA,QAAQ;AAAA,QACpC,CAAC,WAAW,OAAO,2BACjBA,WAAA,gBAAAA,QAAQ;AAAA,QACV,CAAK,KAAK,SAAS,MAAM,GAAG;AAAA,QAC5B,CAAK,KAAK,SAAS,QAAQ,GAAG;AAAA,QAC9B,CAAK,KAAK,SAAS,OAAO,GAAG;AAAA,QAC7B,CAAK,KAAK,SAAS,SAAS,GAAG;AAAA,QAC/B,CAAK,KAAK,qBACR,oBAAoB,kBACpB,oBAAoB,gBAChB,yCACA;AAAA,MACR,CAAC;AAAA,IACH;AAAA,KAEA,gBAAAK,OAAA,cAAC;AAAA,IAAI,WAAe;AAAA,IAAK,KAAK;AAAA,GAAQ,GACtC,gBAAAA,OAAA,cAAC;AAAA,IACC,KAAK,qCAAU;AAAA,IACf,WAAe,MAAM;AAAA,MACnB;AAAA,IACF,CAAC;AAAA,IACD,KAAK;AAAA,KAEJ,QACH,GACC,EAAC,qCAAU,WACV,cAAc,UAAU,eACxB,CAAC,oBACC,gBAAAA,OAAA,cAAC;AAAA,IAAI,WAAe,KAAK,EAAE,UAAU,CAAC;AAAA,IAAG,KAAK;AAAA,GAAS,GAE1DL,WACC,gBAAAK,OAAA,cAAC,iDAAWL,UAAX;AAAA,IAAmB,KAAK;AAAA,IAAW,YAAY;AAAA,IAAkB,CAEtE,CACF;AAEJ;AAEA,UAAU,cAAc;AAExB,IAAO,oBAAQ;;;AalKf,SAAS,cAAAO,mBAAkB;AAC3B,SAAS,oBAAAC,yBAAwB;AACjC,OAAOC,UAAS,UAAAC,eAAc;;;ACD9B,SAAS,mBAAmBC,eAAc;AACnC,IAAIC,aAAYD,QAAO,EAAC,kBAAiB,qEAAoE,mBAAkB,EAAC,iBAAgB,EAAC,gBAAe,yBAAwB,cAAa,yBAAwB,eAAc,yBAAwB,aAAY,wBAAuB,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;AAChV,IAAIE,OAAM;AAKV,IAAIC,SAAQ;AACZ,IAAIC,QAAO,EAAC,oBAAmB,uCAAsC,UAAS,EAAC,KAAI,iCAAgC,OAAM,kCAAiC,EAAC;;;ADQlK,IAAM,cAA0C,CAAC;AAAA,EAC/C,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AAzBN;AA0BE,QAAM,WAAW,oBAAoB;AACrC,QAAM,EAAE,IAAI,IAAIC,YAAW;AAE3B,QAAM,eAAeC,QAAuB,IAAI;AAChD,QAAM,WAAWA,QAAuB,IAAI;AAE5C,iBAAe;AAAA,IACb,WAAW;AAAA,IACX,MAAM,CAAC,YAAY;AAAA,EACrB,CAAC;AACD,iBAAe;AAAA,IACb,WAAW;AAAA,IACX,MAAM,CAAC,QAAQ;AAAA,EACjB,CAAC;AACD,iBAAe;AAAA,IACb,WAAW;AAAA,IACX,MAAM,CAAC,QAAQ;AAAA,EACjB,CAAC;AAED,QAAM,UAAUA,QAAO,KAAK;AAE5B,QAAM,aAAsC,CAAC,MAAM;AACjD,qDAAiB;AAEjB,QAAI,EAAE,kBAAkB;AACtB;AAAA,IACF;AAEA,QAAI,QAAQ,SAAS;AACnB;AAAA,IACF;AACA,YAAQ,UAAU;AAElB,QAAI;AAAA,EACN;AACA,QAAM,eAAwC,CAAC,MAAM;AACnD,MAAE,gBAAgB;AAAA,EACpB;AAEA,QAAM,eAAc,0CAAU,WAAV,YAAoB,KAAK,IAAI;AACjD,QAAM,gBAAe,0CAAU,WAAV,YAAoB,KAAK,IAAI;AAClD,QAAM,mBAAkB,0CAAU,oBAAV,YAA6B;AAErD,SACE,gBAAAC,OAAA,cAAC;AAAA,IACC,WAAeC,WAAU;AAAA,MACvB,iBAAiB,QAAQ,eAAe;AAAA,IAC1C,CAAC;AAAA,IACD,KAAK;AAAA,IACL,OAAOC;AAAA,MACL,WAAW;AAAA,QACT,CAAC,WAAW,YAAY,eAAe;AAAA,QACvC,CAAC,WAAW,kBAAkB;AAAA,QAC9B,CAAC,WAAW,qBAAqB;AAAA,QACjC,CAAKC,MAAK,SAAS,MAAM,GAAG;AAAA,QAC5B,CAAKA,MAAK,SAAS,QAAQ,GAAG;AAAA,QAC9B,CAAKA,MAAK,qBACR,oBAAoB,kBACpB,oBAAoB,gBAChB,yCACA;AAAA,MACR,CAAC;AAAA,IACH;AAAA,KAEA,gBAAAH,OAAA,cAAC;AAAA,IAAI,WAAeI;AAAA,IAAK,KAAK;AAAA,IAAU,SAAS;AAAA,KAC/C,gBAAAJ,OAAA,cAAC;AAAA,IAAI,WAAeK;AAAA,IAAO,SAAS;AAAA,KACjC,QACH,CACF,CACF;AAEJ;AAEA,YAAY,cAAc;AAE1B,IAAO,sBAAQ;;;AEnGf,SAAS,cAAAC,mBAAkB;AAC3B,SAAS,oBAAAC,yBAAwB;AACjC,OAAOC,UAAS,UAAAC,eAAc;;;ACD9B,SAAS,mBAAmBC,eAAc;AACnC,IAAIC,aAAYD,QAAO,EAAC,kBAAiB,qEAAoE,mBAAkB,EAAC,iBAAgB,EAAC,gBAAe,kBAAiB,cAAa,kBAAiB,eAAc,kBAAiB,aAAY,iBAAgB,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;AACpT,IAAIE,OAAM;AAKV,IAAIC,SAAQ;AACZ,IAAIC,QAAO,EAAC,oBAAmB,sCAAqC,UAAS,EAAC,KAAI,gCAA+B,OAAM,iCAAgC,EAAC;;;ADQ/J,IAAM,QAA8B,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AACF,MAAM;AAzBN;AA0BE,QAAM,WAAW,oBAAoB;AACrC,QAAM,EAAE,IAAI,IAAIC,YAAW;AAE3B,QAAM,eAAeC,QAAuB,IAAI;AAChD,QAAM,WAAWA,QAAuB,IAAI;AAE5C,iBAAe;AAAA,IACb,WAAW;AAAA,IACX,MAAM,CAAC,YAAY;AAAA,EACrB,CAAC;AACD,iBAAe;AAAA,IACb,WAAW;AAAA,IACX,MAAM,CAAC,QAAQ;AAAA,EACjB,CAAC;AACD,iBAAe;AAAA,IACb,WAAW;AAAA,IACX,MAAM,CAAC,QAAQ;AAAA,EACjB,CAAC;AAED,QAAM,UAAUA,QAAO,KAAK;AAE5B,QAAM,aAAsC,CAAC,MAAM;AACjD,qDAAiB;AAEjB,QAAI,EAAE,kBAAkB;AACtB;AAAA,IACF;AAEA,QAAI,QAAQ,SAAS;AACnB;AAAA,IACF;AACA,YAAQ,UAAU;AAElB,QAAI;AAAA,EACN;AACA,QAAM,eAAwC,CAAC,MAAM;AACnD,MAAE,gBAAgB;AAAA,EACpB;AAEA,QAAM,eAAc,0CAAU,WAAV,YAAoB,KAAK,IAAI;AACjD,QAAM,gBAAe,0CAAU,WAAV,YAAoB,KAAK,IAAI;AAClD,QAAM,mBAAkB,0CAAU,oBAAV,YAA6B;AAErD,SACE,gBAAAC,OAAA,cAAC;AAAA,IACC,WAAeC,WAAU;AAAA,MACvB,iBAAiB,QAAQ,eAAe;AAAA,IAC1C,CAAC;AAAA,IACD,KAAK;AAAA,IACL,OAAOC;AAAA,MACL,WAAW;AAAA,QACT,CAAC,WAAW,YAAY,eAAe;AAAA,QACvC,CAAC,WAAW,kBAAkB;AAAA,QAC9B,CAAC,WAAW,qBAAqB;AAAA,QACjC,CAAKC,MAAK,SAAS,MAAM,GAAG;AAAA,QAC5B,CAAKA,MAAK,SAAS,QAAQ,GAAG;AAAA,QAC9B,CAAKA,MAAK,qBACR,oBAAoB,kBACpB,oBAAoB,gBAChB,yCACA;AAAA,MACR,CAAC;AAAA,IACH;AAAA,KAEA,gBAAAH,OAAA,cAAC;AAAA,IAAI,WAAeI;AAAA,IAAK,KAAK;AAAA,IAAU,SAAS;AAAA,KAC/C,gBAAAJ,OAAA,cAAC;AAAA,IAAI,WAAeK;AAAA,IAAO,SAAS;AAAA,KACjC,QACH,CACF,CACF;AAEJ;AAEA,MAAM,cAAc;AAEpB,IAAO,gBAAQ;",
|
|
6
|
-
"names": ["useActions", "assignInlineVars", "React", "createContext", "useContext", "useRef", "useEffect", "useState", "useState", "useEffect", "useEffect", "useEffect", "refs", "refs", "refs", "assignInlineVars", "React", "React", "React", "_7a468", "_7a468", "_7a468", "_7a468", "React", "backButton", "closeButton", "_a", "assignInlineVars", "createContext", "useContext", "appBar", "useActions", "useRef", "_a", "_b", "React", "assignInlineVars", "useActions", "assignInlineVars", "React", "useRef", "_7a468", "container", "dim", "paper", "vars", "useActions", "useRef", "React", "container", "assignInlineVars", "vars", "dim", "paper", "useActions", "assignInlineVars", "React", "useRef", "_7a468", "container", "dim", "paper", "vars", "useActions", "useRef", "React", "container", "assignInlineVars", "vars", "dim", "paper"]
|
|
4
|
+
"sourcesContent": ["import type { StackflowReactPlugin } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { createContext, useContext } from \"react\";\n\nimport * as theme from \"./theme.css\";\nimport type { RecursivePartial } from \"./utils\";\nimport { compact, compactMap } from \"./utils\";\n\ntype BasicUIPluginOptions = RecursivePartial<theme.GlobalVars> & {\n theme: \"android\" | \"cupertino\";\n rootClassName?: string;\n appBar?: {\n backButton?:\n | {\n renderIcon?: () => React.ReactNode;\n ariaLabel?: string;\n }\n | {\n render?: () => React.ReactNode;\n };\n closeButton?:\n | {\n renderIcon?: () => React.ReactNode;\n ariaLabel?: string;\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n }\n | {\n render?: () => React.ReactNode;\n };\n };\n};\n\nconst GlobalOptionsContext = createContext<BasicUIPluginOptions>({\n theme: \"android\",\n});\n\nexport const GlobalOptionsProvider = GlobalOptionsContext.Provider;\n\nexport function useGlobalOptions() {\n return useContext(GlobalOptionsContext);\n}\n\nexport const basicUIPlugin: (\n options: BasicUIPluginOptions,\n) => StackflowReactPlugin = (options) => () => ({\n key: \"basic-ui\",\n wrapStack({ stack }) {\n return (\n <GlobalOptionsProvider value={options}>\n <div\n className={\n typeof window !== \"undefined\"\n ? compact([theme[options.theme], options.rootClassName]).join(\" \")\n : options.rootClassName\n }\n style={assignInlineVars(\n compactMap({\n [theme.globalVars.backgroundColor]: options.backgroundColor,\n [theme.globalVars.dimBackgroundColor]: options.dimBackgroundColor,\n [theme.globalVars.appBar.borderColor]:\n options.appBar?.borderColor,\n [theme.globalVars.appBar.borderSize]: options.appBar?.borderSize,\n [theme.globalVars.appBar.height]: options.appBar?.height,\n [theme.globalVars.appBar.iconColor]: options.appBar?.iconColor,\n [theme.globalVars.appBar.textColor]: options.appBar?.textColor,\n [theme.globalVars.bottomSheet.borderRadius]:\n options.bottomSheet?.borderRadius,\n [theme.globalVars.modal.borderRadius]:\n options.modal?.borderRadius,\n }),\n )}\n >\n {stack.render()}\n </div>\n </GlobalOptionsProvider>\n );\n },\n});\n", "import 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nexport var android = 'theme__1coppmz0';\nexport var cupertino = 'theme__1coppmz1';\nexport var globalVars = {backgroundColor:'var(--stackflow-plugin-basic-ui-background-color)',dimBackgroundColor:'var(--stackflow-plugin-basic-ui-dim-background-color)',appBar:{borderColor:'var(--stackflow-plugin-basic-ui-app-bar-border-color)',borderSize:'var(--stackflow-plugin-basic-ui-app-bar-border-size)',height:'var(--stackflow-plugin-basic-ui-app-bar-height)',heightTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-height-transition-duration)',minHeight:'var(--stackflow-plugin-basic-ui-app-bar-min-height)',iconColor:'var(--stackflow-plugin-basic-ui-app-bar-icon-color)',textColor:'var(--stackflow-plugin-basic-ui-app-bar-text-color)',backgroundColor:'var(--stackflow-plugin-basic-ui-app-bar-background-color)'},bottomSheet:{borderRadius:'var(--stackflow-plugin-basic-ui-bottom-sheet-border-radius)'},modal:{borderRadius:'var(--stackflow-plugin-basic-ui-bottom-sheet-border-radius)'}};\nexport var rootAndroid = ':root[data-stackflow-plugin-basic-ui-theme=android]';\nexport var rootCupertino = ':root[data-stackflow-plugin-basic-ui-theme=cupertino]';", "export function compact<T>(arr: Array<T>): Array<NonNullable<T>> {\n return arr.filter(\n (item): item is NonNullable<typeof item> =>\n item !== undefined && item !== null,\n );\n}\n", "export function compactMap<T extends {}>(\n obj: T,\n): {\n [key in keyof T]: NonNullable<T[key]>;\n} {\n return Object.entries(obj).reduce<any>((acc, [key, value]) => {\n if (value !== null && value !== undefined) {\n acc[key] = value;\n }\n\n return acc;\n }, {});\n}\n", "export function listenOnce<T extends HTMLElement>(\n el: T,\n type: keyof HTMLElementEventMap,\n cb: () => void,\n) {\n const listener = () => {\n el.removeEventListener(type, listener);\n cb();\n };\n\n el.addEventListener(type, listener);\n}\n", "export const listenResize = (cb: () => void) => {\n cb();\n window.addEventListener(\"resize\", cb);\n\n return () => {\n window.removeEventListener(\"resize\", cb);\n };\n};\n", "export const noop = () => {};\n", "// https://github.com/MingruiZhang/react-animate-mount/blob/32300c04a4fdfa97724b70aaaf0c0f403d6da247/src/Animate.js#L171-L179\nexport function requestNextFrame(cb: () => void) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n cb();\n });\n });\n}\n", "/* eslint-disable no-param-reassign */\n\nimport { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { createContext, useContext, useMemo, useRef } from \"react\";\n\nimport { useGlobalOptions } from \"../basicUIPlugin\";\nimport {\n useLazy,\n useNullableActivity,\n useStyleEffectHide,\n useStyleEffectOffset,\n useStyleEffectSwipeBack,\n} from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport type { PropOf } from \"../utils\";\nimport { compactMap } from \"../utils\";\nimport AppBar from \"./AppBar\";\nimport * as css from \"./AppScreen.css\";\n\nexport type AppScreenContext = {\n scroll: (args: { top: number }) => void;\n};\nconst Context = createContext<AppScreenContext>(null as any);\n\nexport function useAppScreen() {\n return useContext(Context);\n}\n\nexport type AppScreenProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"dimBackgroundColor\">\n> & {\n appBar?: Omit<PropOf<typeof AppBar>, \"theme\" | \"ref\" | \"key\">;\n preventSwipeBack?: boolean;\n children: React.ReactNode;\n};\nconst AppScreen: React.FC<AppScreenProps> = ({\n backgroundColor,\n dimBackgroundColor,\n appBar,\n preventSwipeBack,\n children,\n}) => {\n const globalOptions = useGlobalOptions();\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const appScreenRef = useRef<HTMLDivElement>(null);\n const dimRef = useRef<HTMLDivElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n const edgeRef = useRef<HTMLDivElement>(null);\n const appBarRef = useRef<HTMLDivElement>(null);\n\n useStyleEffectHide({\n refs: [appScreenRef],\n hasEffect: true,\n });\n useStyleEffectOffset({\n theme: globalOptions.theme,\n refs:\n globalOptions.theme === \"cupertino\" ? [paperRef] : [paperRef, appBarRef],\n hasEffect: true,\n });\n useStyleEffectSwipeBack({\n theme: globalOptions.theme,\n dimRef,\n edgeRef,\n paperRef,\n hasEffect: true,\n onSwiped() {\n pop();\n },\n });\n\n const hasAppBar = !!appBar;\n\n const zIndexBase = (activity?.zIndex ?? 0) * 5;\n const zIndexDim = zIndexBase;\n const zIndexPaper =\n zIndexBase + (globalOptions.theme === \"cupertino\" && hasAppBar ? 1 : 3);\n const zIndexEdge = zIndexBase + 4;\n const zIndexAppBar = zIndexBase + 7;\n\n const transitionState = activity?.transitionState ?? \"enter-done\";\n const lazyTransitionState = useLazy(transitionState);\n\n const onAppBarTopClick: React.MouseEventHandler = (e) => {\n appBar?.onTopClick?.(e);\n\n if (!e.defaultPrevented) {\n paperRef.current?.scroll({\n top: 0,\n behavior: \"smooth\",\n });\n }\n };\n\n return (\n <Context.Provider\n value={useMemo(\n () => ({\n scroll({ top }) {\n paperRef?.current?.scroll({\n top,\n behavior: \"smooth\",\n });\n },\n }),\n [paperRef],\n )}\n >\n <div\n ref={appScreenRef}\n className={css.appScreen({\n transitionState:\n transitionState === \"enter-done\" || transitionState === \"exit-done\"\n ? transitionState\n : lazyTransitionState,\n })}\n style={assignInlineVars(\n compactMap({\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [globalVars.appBar.height]: appBar?.height,\n [globalVars.appBar.heightTransitionDuration]:\n appBar?.heightTransitionDuration,\n [css.vars.zIndexes.dim]: `${zIndexDim}`,\n [css.vars.zIndexes.paper]: `${zIndexPaper}`,\n [css.vars.zIndexes.edge]: `${zIndexEdge}`,\n [css.vars.zIndexes.appBar]: `${zIndexAppBar}`,\n [css.vars.transitionDuration]:\n transitionState === \"enter-active\" ||\n transitionState === \"exit-active\"\n ? `var(--stackflow-transition-duration)`\n : \"0ms\",\n }),\n )}\n >\n <div className={css.dim} ref={dimRef} />\n {appBar && (\n <AppBar {...appBar} ref={appBarRef} onTopClick={onAppBarTopClick} />\n )}\n <div\n key={activity?.id}\n className={css.paper({\n hasAppBar,\n })}\n ref={paperRef}\n >\n {children}\n </div>\n {!activity?.isRoot &&\n globalOptions.theme === \"cupertino\" &&\n !preventSwipeBack && (\n <div className={css.edge({ hasAppBar })} ref={edgeRef} />\n )}\n </div>\n </Context.Provider>\n );\n};\n\nAppScreen.displayName = \"AppScreen\";\n\nexport default AppScreen;\n", "import { useEffect, useState } from \"react\";\n\nimport { requestNextFrame } from \"../utils\";\n\nexport function useLazy<T>(value: T) {\n const [state, setState] = useState<T | undefined>(undefined);\n\n useEffect(() => {\n requestNextFrame(() => {\n setState(value);\n });\n }, [value]);\n\n return state;\n}\n", "import type React from \"react\";\nimport { useEffect, useState } from \"react\";\n\nimport { listenResize, noop } from \"../utils\";\n\nexport function useMaxWidth({\n outerRef,\n innerRef,\n enable,\n}: {\n outerRef: React.ForwardedRef<any>;\n innerRef: React.MutableRefObject<any>;\n enable: boolean;\n}) {\n const [maxWidth, setMaxWidth] = useState<number | undefined>(undefined);\n\n useEffect(() => {\n const $outer = outerRef && \"current\" in outerRef && outerRef.current;\n const $inner = innerRef.current;\n\n if (!enable || !$outer || !$inner) {\n return noop;\n }\n\n const dispose = listenResize(() => {\n const screenWidth = $outer.clientWidth;\n\n const leftWidth = $inner.offsetLeft;\n const centerWidth = $inner.clientWidth;\n const rightWidth = screenWidth - leftWidth - centerWidth;\n\n const sideMargin = Math.max(leftWidth, rightWidth);\n\n setMaxWidth(screenWidth - 2 * sideMargin);\n });\n\n return dispose;\n }, []);\n\n return {\n maxWidth,\n };\n}\n", "import type { Activity } from \"@stackflow/core\";\nimport { useActivity } from \"@stackflow/react\";\n\nexport function useNullableActivity() {\n return useActivity() as Activity | null;\n}\n", "import type { ActivityTransitionState } from \"@stackflow/core\";\nimport type React from \"react\";\nimport { useEffect } from \"react\";\n\nimport { useNullableActivity } from \"./useNullableActivity\";\n\nconst connections: {\n [styleName: string]: Map<\n number,\n {\n refs: Array<React.RefObject<any>>;\n hasEffect: boolean;\n }\n >;\n} = {};\n\nexport function useStyleEffect({\n styleName,\n refs,\n effect,\n}: {\n styleName: string;\n refs: Array<React.RefObject<any>>;\n effect?: (params: {\n activityTransitionState: ActivityTransitionState;\n refs: Array<React.RefObject<HTMLElement>>;\n }) => (() => void) | void;\n}) {\n const activity = useNullableActivity();\n\n useEffect(() => {\n if (!activity) {\n return () => {};\n }\n if (!connections[styleName]) {\n connections[styleName] = new Map();\n }\n\n connections[styleName].set(activity.zIndex, {\n refs,\n hasEffect: !!effect,\n });\n\n return () => {\n connections[styleName].delete(activity.zIndex);\n };\n }, [activity?.id, refs, effect]);\n\n useEffect(() => {\n if (!activity) {\n return () => {};\n }\n if (!effect) {\n return () => {};\n }\n\n const refs = (() => {\n let arr: Array<React.RefObject<any>> = [];\n\n for (let i = 1; i <= activity.zIndex; i += 1) {\n const connection = connections[styleName].get(activity.zIndex - i);\n\n if (connection?.refs) {\n arr = [...arr, ...connection.refs];\n }\n if (connection?.hasEffect) {\n break;\n }\n }\n\n return arr;\n })();\n\n const cleanup = effect({\n activityTransitionState: activity.transitionState,\n refs,\n });\n\n return () => {\n cleanup?.();\n };\n }, [activity?.transitionState]);\n}\n", "/* eslint-disable no-param-reassign */\n\nimport type React from \"react\";\n\nimport { useStyleEffect } from \"./useStyleEffect\";\n\nexport function useStyleEffectHide({\n refs,\n hasEffect,\n}: {\n refs: Array<React.RefObject<any>>;\n hasEffect?: boolean;\n}) {\n useStyleEffect({\n styleName: \"hide\",\n refs,\n effect: hasEffect\n ? ({ activityTransitionState, refs }) => {\n const cleanup = () => {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n const $ref = ref.current;\n\n $ref.style.display = \"\";\n });\n };\n\n switch (activityTransitionState) {\n case \"enter-done\": {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n const $ref = ref.current;\n\n $ref.style.display = \"none\";\n });\n\n return () => {\n cleanup();\n };\n }\n default: {\n cleanup();\n\n return () => {};\n }\n }\n }\n : undefined,\n });\n}\n", "/* eslint-disable no-param-reassign */\n\nimport { listenOnce, requestNextFrame } from \"../utils\";\nimport { useStyleEffect } from \"./useStyleEffect\";\n\nexport const OFFSET_PX_ANDROID = 32;\nexport const OFFSET_PX_CUPERTINO = 80;\n\nexport function useStyleEffectOffset({\n refs,\n theme,\n hasEffect,\n}: {\n refs: Array<React.RefObject<any>>;\n theme: \"android\" | \"cupertino\";\n hasEffect?: boolean;\n}) {\n useStyleEffect({\n styleName: \"offset\",\n refs,\n effect: hasEffect\n ? ({ activityTransitionState, refs }) => {\n const transform =\n theme === \"cupertino\"\n ? `translate3d(-${OFFSET_PX_CUPERTINO / 16}rem, 0, 0)`\n : `translate3d(0, -${OFFSET_PX_ANDROID / 16}rem, 0)`;\n\n const cleanup = () => {\n requestNextFrame(() => {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n const $el = ref.current;\n\n $el.style.transform = \"\";\n\n listenOnce($el, \"transitionend\", () => {\n $el.style.transition = \"\";\n });\n });\n });\n };\n\n switch (activityTransitionState) {\n case \"enter-active\":\n case \"enter-done\": {\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n ref.current.style.transition = `var(--stackflow-transition-duration)`;\n ref.current.style.transform = transform;\n });\n\n switch (activityTransitionState) {\n case \"enter-done\":\n return () => {\n cleanup();\n };\n case \"enter-active\":\n default:\n return () => {};\n }\n }\n case \"exit-active\":\n case \"exit-done\": {\n requestNextFrame(() => {\n cleanup();\n });\n\n return () => {};\n }\n default: {\n return () => {};\n }\n }\n }\n : undefined,\n });\n}\n", "/* eslint-disable no-param-reassign */\n\nimport { listenOnce } from \"../utils\";\nimport { useStyleEffect } from \"./useStyleEffect\";\nimport { OFFSET_PX_CUPERTINO } from \"./useStyleEffectOffset\";\n\nexport function useStyleEffectSwipeBack({\n theme,\n dimRef,\n edgeRef,\n paperRef,\n hasEffect,\n onSwiped,\n}: {\n theme: \"android\" | \"cupertino\";\n dimRef: React.RefObject<HTMLDivElement>;\n edgeRef: React.RefObject<HTMLDivElement>;\n paperRef: React.RefObject<HTMLDivElement>;\n hasEffect?: boolean;\n onSwiped?: () => void;\n}) {\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [paperRef],\n effect: hasEffect\n ? ({ refs }) => {\n if (theme !== \"cupertino\") {\n return () => {};\n }\n\n if (!dimRef.current || !edgeRef.current || !paperRef.current) {\n return () => {};\n }\n\n const $dim = dimRef.current;\n const $edge = edgeRef.current;\n const $paper = paperRef.current;\n\n let x0: number | null = null;\n let t0: number | null = null;\n let x: number | null = null;\n\n let cachedRefs: Array<{\n style: {\n transform: string;\n transition: string;\n };\n parentElement?: {\n style: {\n display: string;\n };\n };\n }> = [];\n\n const resetState = () => {\n x0 = null;\n t0 = null;\n x = null;\n cachedRefs = [];\n };\n\n let _rAFLock = false;\n\n function movePaper(dx: number) {\n if (!_rAFLock) {\n _rAFLock = true;\n\n requestAnimationFrame(() => {\n const p = dx / $paper.clientWidth;\n\n $dim.style.opacity = `${1 - p}`;\n $dim.style.transition = \"0s\";\n\n $paper.style.overflowY = \"hidden\";\n $paper.style.transform = `translate3d(${dx}px, 0, 0)`;\n $paper.style.transition = \"0s\";\n\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n ref.current.style.transform = `translate3d(${\n -1 * (1 - p) * OFFSET_PX_CUPERTINO\n }px, 0, 0)`;\n ref.current.style.transition = \"0s\";\n\n if (ref.current.parentElement?.style.display === \"none\") {\n ref.current.parentElement.style.display = \"block\";\n }\n });\n\n _rAFLock = false;\n });\n }\n }\n\n function resetPaper({ swiped }: { swiped: boolean }): Promise<void> {\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n $dim.style.opacity = `${swiped ? 0 : 1}`;\n $dim.style.transition = \"var(--stackflow-transition-duration)\";\n\n $paper.style.overflowY = \"hidden\";\n $paper.style.transform = `translateX(${swiped ? \"100%\" : \"0\"})`;\n $paper.style.transition =\n \"var(--stackflow-transition-duration)\";\n\n refs.forEach((ref) => {\n if (!ref.current) {\n return;\n }\n\n ref.current.style.transition = `var(--stackflow-transition-duration)`;\n ref.current.style.transform = `translate3d(${\n swiped ? \"0\" : `-${OFFSET_PX_CUPERTINO / 16}rem`\n }, 0, 0)`;\n });\n\n const _cachedRefs = [...cachedRefs];\n\n resolve();\n\n listenOnce($paper, \"transitionend\", () => {\n $dim.style.opacity = \"\";\n $paper.style.overflowY = \"\";\n $paper.style.transform = \"\";\n\n refs.forEach((ref, i) => {\n if (!ref.current) {\n return;\n }\n\n const _cachedRef = _cachedRefs[i];\n\n if (swiped) {\n ref.current.style.transition = \"\";\n ref.current.style.transform = \"\";\n\n if (ref.current.parentElement) {\n ref.current.parentElement.style.display = \"\";\n }\n } else if (_cachedRef) {\n ref.current.style.transition =\n _cachedRef.style.transition;\n ref.current.style.transform = _cachedRef.style.transform;\n\n if (\n ref.current.parentElement &&\n _cachedRef.parentElement\n ) {\n ref.current.parentElement.style.display =\n _cachedRef.parentElement.style.display;\n }\n }\n });\n });\n });\n });\n }\n\n const onTouchStart = (e: TouchEvent) => {\n const { activeElement } = document as any;\n\n activeElement?.blur?.();\n // eslint-disable-next-line no-multi-assign\n x0 = x = e.touches[0].clientX;\n t0 = Date.now();\n\n cachedRefs = refs.map((ref) => {\n if (!ref.current) {\n return {\n style: {\n transform: \"\",\n transition: \"\",\n },\n };\n }\n\n return {\n style: {\n transform: ref.current.style.transform,\n transition: ref.current.style.transition,\n },\n parentElement: ref.current.parentElement\n ? {\n style: {\n display: ref.current.parentElement.style.display,\n },\n }\n : undefined,\n };\n });\n };\n\n const onTouchMove = (e: TouchEvent) => {\n if (!x0) {\n resetState();\n return;\n }\n\n x = e.touches[0].clientX;\n\n movePaper(x - x0);\n };\n\n const onTouchEnd = () => {\n if (!x0 || !t0 || !x) {\n resetState();\n return;\n }\n\n const t = Date.now();\n const v = (x - x0) / (t - t0);\n const swiped = v > 1 || x / $paper.clientWidth > 0.4;\n\n if (swiped) {\n onSwiped?.();\n }\n\n Promise.resolve()\n .then(() => resetPaper({ swiped }))\n .then(() => resetState());\n };\n\n $edge.addEventListener(\"touchstart\", onTouchStart, { passive: true });\n $edge.addEventListener(\"touchmove\", onTouchMove, { passive: true });\n $edge.addEventListener(\"touchend\", onTouchEnd, { passive: true });\n $edge.addEventListener(\"touchcancel\", onTouchEnd, { passive: true });\n\n return () => {\n $edge.removeEventListener(\"touchstart\", onTouchStart);\n $edge.removeEventListener(\"touchmove\", onTouchMove);\n $edge.removeEventListener(\"touchend\", onTouchEnd);\n $edge.removeEventListener(\"touchcancel\", onTouchEnd);\n };\n }\n : undefined,\n });\n}\n", "import { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { useRef } from \"react\";\n\nimport { IconBack, IconClose } from \"../assets\";\nimport { useGlobalOptions } from \"../basicUIPlugin\";\nimport { useMaxWidth, useNullableActivity } from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport { compactMap, noop } from \"../utils\";\nimport * as css from \"./AppBar.css\";\nimport * as appScreenCss from \"./AppScreen.css\";\n\ntype AppBarProps = Partial<\n Pick<\n GlobalVars[\"appBar\"],\n | \"borderColor\"\n | \"borderSize\"\n | \"height\"\n | \"heightTransitionDuration\"\n | \"iconColor\"\n | \"textColor\"\n | \"backgroundColor\"\n >\n> & {\n title?: React.ReactNode;\n appendLeft?: () => React.ReactNode;\n appendRight?: () => React.ReactNode;\n backButton?:\n | {\n renderIcon?: () => React.ReactNode;\n ariaLabel?: string;\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n }\n | {\n render?: () => React.ReactNode;\n };\n closeButton?:\n | {\n renderIcon?: () => React.ReactNode;\n ariaLabel?: string;\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n }\n | {\n render?: () => React.ReactNode;\n };\n closeButtonLocation?: \"left\" | \"right\";\n border?: boolean;\n onTopClick?: (e: React.MouseEvent) => void;\n};\nconst AppBar = React.forwardRef<HTMLDivElement, AppBarProps>(\n (\n {\n title,\n appendLeft,\n appendRight,\n backButton,\n closeButton,\n closeButtonLocation = \"left\",\n border = true,\n iconColor,\n textColor,\n borderColor,\n borderSize,\n height,\n backgroundColor,\n onTopClick,\n },\n ref,\n ) => {\n const actions = useActions();\n const activity = useNullableActivity();\n\n const globalOptions = useGlobalOptions();\n const globalCloseButton = globalOptions.appBar?.closeButton;\n const globalBackButton = globalOptions.appBar?.backButton;\n\n const centerRef = useRef<any>(null);\n\n const { maxWidth } = useMaxWidth({\n outerRef: ref,\n innerRef: centerRef,\n enable: globalOptions.theme === \"cupertino\",\n });\n\n const onBackClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (backButton && \"onClick\" in backButton && backButton.onClick) {\n backButton.onClick(e);\n }\n\n if (!e.defaultPrevented) {\n actions.pop();\n }\n };\n\n const renderBackButton = () => {\n if (!activity) {\n return null;\n }\n if (activity.isRoot) {\n return null;\n }\n\n if (!backButton && !globalBackButton) {\n return (\n <button\n type=\"button\"\n className={css.backButton}\n onClick={onBackClick}\n >\n <IconBack />\n </button>\n );\n }\n\n if (backButton && \"render\" in backButton && backButton.render) {\n return backButton.render?.();\n }\n if (\n globalBackButton &&\n \"render\" in globalBackButton &&\n globalBackButton.render\n ) {\n return globalBackButton.render?.();\n }\n\n return (\n <button\n type=\"button\"\n className={css.backButton}\n aria-label={\n backButton && \"ariaLabel\" in backButton\n ? backButton.ariaLabel\n : globalBackButton && \"ariaLabel\" in globalBackButton\n ? globalBackButton.ariaLabel\n : undefined\n }\n onClick={onBackClick}\n >\n {(() => {\n if (\n backButton &&\n \"renderIcon\" in backButton &&\n backButton.renderIcon\n ) {\n return backButton.renderIcon();\n }\n if (\n globalBackButton &&\n \"renderIcon\" in globalBackButton &&\n globalBackButton.renderIcon\n ) {\n return globalBackButton.renderIcon();\n }\n\n return <IconBack />;\n })()}\n </button>\n );\n };\n\n const onCloseClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (closeButton && \"onClick\" in closeButton && closeButton.onClick) {\n closeButton.onClick(e);\n }\n\n if (\n !e.defaultPrevented &&\n globalCloseButton &&\n \"onClick\" in globalCloseButton\n ) {\n globalCloseButton.onClick?.(e);\n }\n };\n\n const renderCloseButton = () => {\n const isRoot = !activity || activity.isRoot;\n\n if ((!closeButton && !globalOptions.appBar?.closeButton) || !isRoot) {\n return null;\n }\n if (closeButton && \"render\" in closeButton && closeButton.render) {\n return closeButton.render();\n }\n if (\n globalCloseButton &&\n \"render\" in globalCloseButton &&\n globalCloseButton.render\n ) {\n return globalCloseButton.render();\n }\n\n return (\n <button\n type=\"button\"\n className={css.closeButton}\n aria-label={\n closeButton && \"ariaLabel\" in closeButton\n ? closeButton.ariaLabel\n : globalCloseButton && \"ariaLabel\" in globalCloseButton\n ? globalCloseButton.ariaLabel\n : undefined\n }\n onClick={onCloseClick}\n >\n {(() => {\n if (\n closeButton &&\n \"renderIcon\" in closeButton &&\n closeButton.renderIcon\n ) {\n return closeButton.renderIcon();\n }\n if (\n globalCloseButton &&\n \"renderIcon\" in globalCloseButton &&\n globalCloseButton.renderIcon\n ) {\n return globalCloseButton.renderIcon();\n }\n\n return <IconClose />;\n })()}\n </button>\n );\n };\n\n const hasLeft = !!(\n (closeButtonLocation === \"left\" && closeButton) ||\n backButton ||\n appendLeft\n );\n\n return (\n <div\n ref={ref}\n className={css.appBar({\n border,\n })}\n style={assignInlineVars(\n compactMap({\n [globalVars.appBar.iconColor]: iconColor,\n [globalVars.appBar.textColor]: textColor,\n [globalVars.appBar.borderColor]: borderColor,\n [globalVars.appBar.borderSize]: borderSize,\n [globalVars.appBar.height]: height,\n [globalVars.appBar.backgroundColor]:\n backgroundColor || globalVars.backgroundColor,\n [appScreenCss.vars.appBar.center.mainWidth]: `${maxWidth}px`,\n }),\n )}\n >\n <div className={css.safeArea} />\n <div className={css.container}>\n <div className={css.left}>\n {closeButtonLocation === \"left\" && renderCloseButton()}\n {renderBackButton()}\n {appendLeft?.()}\n </div>\n <div ref={centerRef} className={css.center}>\n <div\n className={css.centerMain({\n hasLeft,\n })}\n >\n {typeof title === \"string\" ? (\n <div className={css.centerText}>{title}</div>\n ) : (\n title\n )}\n <button\n className={css.centerMainEdge}\n type=\"button\"\n aria-hidden=\"true\"\n onClick={onTopClick}\n />\n </div>\n </div>\n <div className={css.right}>\n {appendRight?.()}\n {closeButtonLocation === \"right\" && renderCloseButton()}\n </div>\n </div>\n </div>\n );\n },\n);\n\nAppBar.displayName = \"AppBar\";\n\nexport default AppBar;\n", "import React from \"react\";\n\nconst IconBack: React.FC<{\n className?: string;\n}> = (props) => (\n <svg\n className={props.className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5659 5.56564C11.8783 5.25322 11.8783 4.74669 11.5659 4.43427C11.2535 4.12185 10.7469 4.12185 10.4345 4.43427L3.43451 11.4343C3.12209 11.7467 3.12209 12.2532 3.43451 12.5656L10.4345 19.5656C10.7469 19.8781 11.2535 19.8781 11.5659 19.5656C11.8783 19.2532 11.8783 18.7467 11.5659 18.4343L5.93157 12.8H20.0002C20.442 12.8 20.8002 12.4418 20.8002 12C20.8002 11.5581 20.442 11.2 20.0002 11.2H5.93157L11.5659 5.56564Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default IconBack;\n", "import React from \"react\";\n\nconst IconClose: React.FC<{\n className?: string;\n}> = (props) => (\n <svg\n className={props.className}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.56588 5.43433C6.25346 5.12191 5.74693 5.12191 5.43451 5.43433C5.12209 5.74675 5.12209 6.25328 5.43451 6.5657L10.8688 12L5.43451 17.4343C5.12209 17.7467 5.12209 18.2533 5.43451 18.5657C5.74693 18.8781 6.25346 18.8781 6.56588 18.5657L12.0002 13.1314L17.4345 18.5657C17.7469 18.8781 18.2535 18.8781 18.5659 18.5657C18.8783 18.2533 18.8783 17.7467 18.5659 17.4343L13.1316 12L18.5659 6.5657C18.8783 6.25328 18.8783 5.74675 18.5659 5.43433C18.2535 5.12191 17.7469 5.12191 17.4345 5.43433L12.0002 10.8686L6.56588 5.43433Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.56588 5.43433C6.25346 5.12191 5.74693 5.12191 5.43451 5.43433C5.12209 5.74675 5.12209 6.25328 5.43451 6.5657L10.8688 12L5.43451 17.4343C5.12209 17.7467 5.12209 18.2533 5.43451 18.5657C5.74693 18.8781 6.25346 18.8781 6.56588 18.5657L12.0002 13.1314L17.4345 18.5657C17.7469 18.8781 18.2535 18.8781 18.5659 18.5657C18.8783 18.2533 18.8783 17.7467 18.5659 17.4343L13.1316 12L18.5659 6.5657C18.8783 6.25328 18.8783 5.74675 18.5659 5.43433C18.2535 5.12191 17.7469 5.12191 17.4345 5.43433L12.0002 10.8686L6.56588 5.43433Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default IconClose;\n", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/AppScreen.css.ts.vanilla.css?source=#H4sIAAAAAAAAE71WwY7aMBC98xW+VAIVo2TZbtugHlr10nOPVbWa2CYxOLblONBS9d9rJxDYrpMlNKqEBJZn3ryZecx48VHrr8QwJh8fYyrW98v7B/RrglAKZJsZVUmKiRLKJGgHZopxad3FWqg91qLKuMQplJzgimPKC/y312w1+T1ZPI/x9sYY1+K/q/GtAVlyy5VMmt9rZYpjjPPd58qA/26do9kcKQ2E25/XGHdQIGcKPuyRgQDLlnQaR9GrOYrcp8ud1+5HGgmKVu50wFxS9uNUpsMXf2Klr3zrF8+85Z4LgUkOMmPJCaQOZHNWMGdMlNbFIUKhyHOUGKXsNwoWenpRQ30ASY3i9HsQqc4hZzzLbYLiyLBi9aTtCRJcMjA4M0A5k3Z6k8jmyGQpTKOmor6oXVV9302zLXXc4Qv/4Jte4Rt1Cul2301jtmOmrqazLIlRQvg24D1Lt9zi9ra54jJzWlUVyfskp0Ez04a5ey66VvhdzJLkRKCJm4KpyVJeagGOqVSSBTQbh8qxGaRZUjnylksVVO1myB/3Cm5BzY1JOBygL4toYApB6Y+ZQjjAjSkEp9owtn1TbROYzN0k66k3hOgIculj3yOWyyk2Wt1HkE5fOj3CGZ7OGSmH0h0+gXm0pmIt8PY/PivmSAOlbhpjq/SLDyPQ2h0MbpbtBTKmR+h6RF9AJoiAIC8u3KfAM/QaESWdudvVJawZBsPA7YiSWQ86Gy0Kk7uuAMF9IurW7Dm1uev44u7N8bHRtcAYzc59XV7Z/6Lpv09rYEari4dQXRG/SBAeCuN5/gG9kduZswsAAA==';\nimport 'src/components/AppBar.css.ts.vanilla.css?source=#H4sIAAAAAAAAE7VWyW7bMBC95yt4KWAXoUB5SRoFPTQoChRoTzn0UBQBJVI2G4oUSCpeiv57SWqxLUteEhcI4IicGc48vnnD4FOeP2D19BSunsd4MkXgzxUAGRNwTtlsbiLwgtUAQm1w8pxyuYA5L2Z2O8aaJbBgEOe5/VBw4zO8v/p7FbQChz5wbKPMlCwEgYnkUp0evu1pDwFgDZkgdFlHWX91X1Q7p/JswtPJeDLxxgvGOUzmWMxoBIzCQqdSZddA5jhhZuWTNnOaUeuXyDzP1iHYq+IaREpK85Nggw9k7eN8TIqcKsOE/LUfyMORS80MkyICONaSF4b2ZvGYKEpFU1J82dSOR/f5NqhVAHJs6JgMQoTeXQNk/4Yd+aM3pooFUZKRPgyr64sAuu/P0OYWIkWzMsXKrIK+calYtNn7XCjsfhtc0LChyynGvWC04L67JELHY+/CFh6G7fCttg7D/7GQjtivLKQKE0tFqHoyqqBNyFGpUnIJ9RwTuYgAE5oagPIlSDBPBjAE70/XLH8C1GxNh0OAzvWrdW5fTMc+zVqhEylsTGEGGqcUYkUx9FlDI3PP9tqQipcem/0jJjtHnJp5MwB2W6xcPjPKVm9BUjVXZ6rTUksxIUzMrA4AFExtr3eaRjTLbfM6B8J0zrEljpCCdhnfeLMz5xSzt7E1obZRqJVjjFCmy4lEzDwCo2BU5rvBexTc9pVwE+HEsBfaEr9g1Hcc0l1h7rx/lUFZXDk1YUKFsezLMBM/3HbTgVNf0Zl4GLo0PXhcmBXHps7dZabODnBu8rmyfhfasHRlC7XYCXuBKadLd4Yy9xtuQk5TuxdWl51aYy8OdikIP9zWJOBM0Ob5FQbTxnZRrcWSk/tap9jas77SDLt00kPmPDAOPGTueh8yWx3m0HALmLOZgMzQTFvZ8jzrRG+z5enj3bZXPRopzhi3wR1BOIV6pY0b8A8WvufvOHn031+s5R5+Nwi18a+h9xc0LS+1a5YMoN3cEdXXSKPMT1Btb3VQsvsYP8f6my1kd7Tht9G/O+a28lbsRsG4V7tib78D8obnjQgexj3DS1h1X+3QUvJXyNoJHRNfqmPi3ekTc5k8d4GVlE9u1wDyhSp3mOUD5yzXTLf4y8ScKrbP9GZ9Pzzpm5oOYuVKKu8JF0Z2+h8cpcfEmFxGjHuKcP/YNP4BuwZEPN0OAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var appBar = _7a468({defaultClassName:'AppBar__1yk3a451 f__dhthxq4 f__dhthxq0 f__dhthxqh f__dhthxqc AppScreen__1dlf4347',variantClassNames:{border:{true:'AppBar_border_true__1yk3a452'}},defaultVariants:{},compoundVariants:[]});\nexport var backButton = 'AppBar__1yk3a456 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi';\nexport var center = 'f__dhthxq9 f__dhthxq7 f__dhthxq8 AppBar__1yk3a450';\nexport var centerMain = _7a468({defaultClassName:'AppBar__1yk3a459',variantClassNames:{hasLeft:{true:'AppBar_hasLeft_true__1yk3a45a'}},defaultVariants:{},compoundVariants:[]});\nexport var centerMainEdge = 'AppBar__1yk3a45b f__dhthxqi f__dhthxq4 f__dhthxq2 f__dhthxqf';\nexport var centerText = 'AppBar__1yk3a45c f__dhthxqc f__dhthxqd f__dhthxq0';\nexport var closeButton = 'AppBar__1yk3a456 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi';\nexport var container = 'AppBar__1yk3a454 f__dhthxqa f__dhthxq7 f__dhthxqc';\nexport var left = 'AppBar__1yk3a455 f__dhthxq9 f__dhthxq7 f__dhthxq1 AppBar__1yk3a450';\nexport var right = 'AppBar__1yk3a45d f__dhthxq9 f__dhthxq7 f__dhthxq1 f__dhthxq5 AppBar__1yk3a450';\nexport var safeArea = 'AppBar__1yk3a453';", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/AppScreen.css.ts.vanilla.css?source=#H4sIAAAAAAAAE71WwY7aMBC98xW+VAIVo2TZbtugHlr10nOPVbWa2CYxOLblONBS9d9rJxDYrpMlNKqEBJZn3ryZecx48VHrr8QwJh8fYyrW98v7B/RrglAKZJsZVUmKiRLKJGgHZopxad3FWqg91qLKuMQplJzgimPKC/y312w1+T1ZPI/x9sYY1+K/q/GtAVlyy5VMmt9rZYpjjPPd58qA/26do9kcKQ2E25/XGHdQIGcKPuyRgQDLlnQaR9GrOYrcp8ud1+5HGgmKVu50wFxS9uNUpsMXf2Klr3zrF8+85Z4LgUkOMmPJCaQOZHNWMGdMlNbFIUKhyHOUGKXsNwoWenpRQ30ASY3i9HsQqc4hZzzLbYLiyLBi9aTtCRJcMjA4M0A5k3Z6k8jmyGQpTKOmor6oXVV9302zLXXc4Qv/4Jte4Rt1Cul2301jtmOmrqazLIlRQvg24D1Lt9zi9ra54jJzWlUVyfskp0Ez04a5ey66VvhdzJLkRKCJm4KpyVJeagGOqVSSBTQbh8qxGaRZUjnylksVVO1myB/3Cm5BzY1JOBygL4toYApB6Y+ZQjjAjSkEp9owtn1TbROYzN0k66k3hOgIculj3yOWyyk2Wt1HkE5fOj3CGZ7OGSmH0h0+gXm0pmIt8PY/PivmSAOlbhpjq/SLDyPQ2h0MbpbtBTKmR+h6RF9AJoiAIC8u3KfAM/QaESWdudvVJawZBsPA7YiSWQ86Gy0Kk7uuAMF9IurW7Dm1uev44u7N8bHRtcAYzc59XV7Z/6Lpv09rYEari4dQXRG/SBAeCuN5/gG9kduZswsAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var allTransitions = 'AppScreen__1dlf4348';\nexport var appScreen = _7a468({defaultClassName:'f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc',variantClassNames:{transitionState:{'enter-active':'AppScreen__1dlf4349','enter-done':'AppScreen__1dlf434a','exit-active':'AppScreen__1dlf434b','exit-done':'AppScreen__1dlf434c'}},defaultVariants:{},compoundVariants:[]});\nexport var background = 'AppScreen__1dlf4347';\nexport var dim = 'AppScreen__1dlf434i f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 AppScreen__1dlf4346 AppScreen__1dlf4348';\nexport var edge = _7a468({defaultClassName:'AppScreen__1dlf434l f__dhthxq4 f__dhthxq2 f__dhthxq3 f__dhthxq1',variantClassNames:{hasAppBar:{true:'AppScreen_hasAppBar_true__1dlf434m'}},defaultVariants:{},compoundVariants:[]});\nexport var enterActive = 'AppScreen__1dlf4349';\nexport var enterDone = 'AppScreen__1dlf434a';\nexport var exitActive = 'AppScreen__1dlf434b';\nexport var exitDone = 'AppScreen__1dlf434c';\nexport var paper = _7a468({defaultClassName:'AppScreen__1dlf434j f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 AppScreen__1dlf4347 AppScreen__1dlf4348',variantClassNames:{hasAppBar:{true:'AppScreen_hasAppBar_true__1dlf434k f__dhthxqg'}},defaultVariants:{},compoundVariants:[]});\nexport var vars = {transitionDuration:'var(--transitionDuration__1dlf4340)',zIndexes:{dim:'var(--zIndexes-dim__1dlf4341)',paper:'var(--zIndexes-paper__1dlf4342)',edge:'var(--zIndexes-edge__1dlf4343)',appBar:'var(--zIndexes-appBar__1dlf4344)'},appBar:{center:{mainWidth:'var(--appBar-center-mainWidth__1dlf4345)'}}};", "/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\nimport { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { useRef } from \"react\";\n\nimport { useLazy, useNullableActivity, useStyleEffect } from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./BottomSheet.css\";\n\nexport type BottomSheetProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"dimBackgroundColor\">\n> &\n Partial<GlobalVars[\"bottomSheet\"]> & {\n onOutsideClick?: React.MouseEventHandler;\n children: React.ReactNode;\n };\nconst BottomSheet: React.FC<BottomSheetProps> = ({\n borderRadius = \"1rem\",\n backgroundColor,\n dimBackgroundColor,\n onOutsideClick,\n children,\n}) => {\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const containerRef = useRef<HTMLDivElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n\n useStyleEffect({\n styleName: \"hide\",\n refs: [containerRef],\n });\n useStyleEffect({\n styleName: \"offset\",\n refs: [paperRef],\n });\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [paperRef],\n });\n\n const popLock = useRef(false);\n\n const onDimClick: React.MouseEventHandler = (e) => {\n onOutsideClick?.(e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (popLock.current) {\n return;\n }\n popLock.current = true;\n\n pop();\n };\n const onPaperClick: React.MouseEventHandler = (e) => {\n e.stopPropagation();\n };\n\n const zIndexBase = (activity?.zIndex ?? 0) * 5 + 3;\n const zIndexPaper = (activity?.zIndex ?? 0) * 5 + 4;\n const transitionState = activity?.transitionState ?? \"enter-done\";\n\n return (\n <div\n className={css.container({\n transitionState: useLazy(transitionState),\n })}\n ref={containerRef}\n style={assignInlineVars(\n compactMap({\n [globalVars.bottomSheet.borderRadius]: borderRadius,\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [css.vars.zIndexes.dim]: `${zIndexBase}`,\n [css.vars.zIndexes.paper]: `${zIndexPaper}`,\n [css.vars.transitionDuration]:\n transitionState === \"enter-active\" ||\n transitionState === \"exit-active\"\n ? `var(--stackflow-transition-duration)`\n : \"0ms\",\n }),\n )}\n >\n <div className={css.dim} ref={paperRef} onClick={onDimClick}>\n <div className={css.paper} onClick={onPaperClick}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nBottomSheet.displayName = \"BottomSheet\";\n\nexport default BottomSheet;\n", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/BottomSheet.css.ts.vanilla.css?source=#H4sIAAAAAAAAE6VT3U7DIBS+71NwY7IlPQtN1ZnuznjjtQ+wUGAtkcIC1OmM7y5U20ZT3GaTJpSf7+ccPlb32jndPNWcu+02q11+V+McvScIOUOUFU5oVaAXYhYA48pDa0gYBwhebpKPZDXFth7Zdto0xdevJI7nbJFhfJUi7L84AesISkKfK6NbxYBqqU1vyjq/sZP6AHvZVkJBSayg0ApgooHfKK+C0BGEYvy1Zzg+hhm3ATCIZt1JvSdUuLcC4ai7azRtOp1ev4kc72oc5LKo3O1lcuuz5OLV8X/2frLvB8Fc7Yvzdx6mpTaMGzCEidaeQdnZAxv8wQ/schYWh/KDOSmB1kRVvBjTmvZN2sQz7NP7HeOZmeGXZYb/9bDw8KrmxCrmKBKrU46ibfoES/9iF4cEAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc',variantClassNames:{transitionState:{'enter-active':'BottomSheet__1ht38h04','enter-done':'BottomSheet__1ht38h05','exit-active':'BottomSheet__1ht38h06','exit-done':'BottomSheet__1ht38h07'}},defaultVariants:{},compoundVariants:[]});\nexport var dim = 'BottomSheet__1ht38h0d f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc f__dhthxqa f__dhthxq7 BottomSheet__1ht38h03';\nexport var enterActive = 'BottomSheet__1ht38h04';\nexport var enterDone = 'BottomSheet__1ht38h05';\nexport var exitActive = 'BottomSheet__1ht38h06';\nexport var exitDone = 'BottomSheet__1ht38h07';\nexport var paper = 'BottomSheet__1ht38h0e f__dhthxqc BottomSheet__1ht38h03';\nexport var vars = {transitionDuration:'var(--transitionDuration__1ht38h00)',zIndexes:{dim:'var(--zIndexes-dim__1ht38h01)',paper:'var(--zIndexes-paper__1ht38h02)'}};", "/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\nimport { useActions } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport React, { useRef } from \"react\";\n\nimport { useLazy, useNullableActivity, useStyleEffect } from \"../hooks\";\nimport type { GlobalVars } from \"../theme.css\";\nimport { globalVars } from \"../theme.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./Modal.css\";\n\nexport type ModalProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"dimBackgroundColor\">\n> &\n Partial<GlobalVars[\"modal\"]> & {\n onOutsideClick?: React.MouseEventHandler;\n children: React.ReactNode;\n };\nconst Modal: React.FC<ModalProps> = ({\n backgroundColor,\n dimBackgroundColor,\n borderRadius = \"1rem\",\n onOutsideClick,\n children,\n}) => {\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const containerRef = useRef<HTMLDivElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n\n useStyleEffect({\n styleName: \"hide\",\n refs: [containerRef],\n });\n useStyleEffect({\n styleName: \"offset\",\n refs: [paperRef],\n });\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [paperRef],\n });\n\n const popLock = useRef(false);\n\n const onDimClick: React.MouseEventHandler = (e) => {\n onOutsideClick?.(e);\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (popLock.current) {\n return;\n }\n popLock.current = true;\n\n pop();\n };\n const onPaperClick: React.MouseEventHandler = (e) => {\n e.stopPropagation();\n };\n\n const zIndexBase = (activity?.zIndex ?? 0) * 5 + 3;\n const zIndexPaper = (activity?.zIndex ?? 0) * 5 + 4;\n const transitionState = activity?.transitionState ?? \"enter-done\";\n\n return (\n <div\n className={css.container({\n transitionState: useLazy(transitionState),\n })}\n ref={containerRef}\n style={assignInlineVars(\n compactMap({\n [globalVars.bottomSheet.borderRadius]: borderRadius,\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [css.vars.zIndexes.dim]: `${zIndexBase}`,\n [css.vars.zIndexes.paper]: `${zIndexPaper}`,\n [css.vars.transitionDuration]:\n transitionState === \"enter-active\" ||\n transitionState === \"exit-active\"\n ? `var(--stackflow-transition-duration)`\n : \"0ms\",\n }),\n )}\n >\n <div className={css.dim} ref={paperRef} onClick={onDimClick}>\n <div className={css.paper} onClick={onPaperClick}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nModal.displayName = \"Modal\";\n\nexport default Modal;\n", "import 'src/styles/f.css.ts.vanilla.css?source=LmZfX2RodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5mX19kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmZfX2RodGh4cTIgewogIHRvcDogMDsKfQouZl9fZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZl9fZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5mX19kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmZfX2RodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmZfX2RodGh4cTggewogIGZsZXg6IDE7Cn0KLmZfX2RodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmZfX2RodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZl9fZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmZfX2RodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmZfX2RodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmZfX2RodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZl9fZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmZfX2RodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmZfX2RodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5mX19kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAE+2U30rDMBTG7/cUAW8UltJWyyDik4iMNEnbYJMTTk5xTHx3s+Hu1LW9kdmRQP5+X044P45AAFozcRietSTJI0n12vTwxkM/tNbzWkar+GA5dcaZJ+k1gtUv7H3FGP/lep0OWoTBa66gBxTspmmaxzMqbd03SmxreZuv2VfPiurunJEMIS2Q14Da4E9G+WaqUbR7I1gRdmN1nbFtR4LdZxUaN03FCaWPlix4rgeUh4lg5aZycayRS5vzQrAqvXpKXVmk9jBWSmZHM6XzsKmBCByPnTF0yhRKbYeYcnX888dqAuRqCAbJelg45nlWTQe9zDZ/TvrEGP4b6tkR4+22UBCC2+fLpvharC+e4GLZBF/r8EVS/AmYPn1EXgsAAA==';\nimport 'src/components/Modal.css.ts.vanilla.css?source=#H4sIAAAAAAAAE51T0W6CMBR99yv6sgQT2hQZ0+HrXvawbzCXtmKzQk1bpnPZv6+AaECcbkkT2ttzzj339kLeNAe1WiX6kC9YjL4mCDkDpZVO6jJFH2ACjM+Rl8pA/e0YdLqcfE9IT2V+VllrU6TtVoETMQ8iSh9CRP0aYfKGmQF7z42uSo6ZVtp0LqzzF2uld3irqlyWOAMrGa4k5rLAQ5aXR+iAZcnFvlM4vNYnYWtClzNqgHoLTLrPFNFLV49o4DIcBJIhoCnjJBldSj7dkpz/LjniUvyzd6N920nuNt65f6z6WIDxHJ8WzUhiRFHHMr3HdgNc73x8u0eUPM3qOw+J583G5BkEtH1sv0iUTMMGSpITdHEFOuugcdRCyfM11WnrxnBhsAEuK3tH0do5XXj/Qjjc4x7LVwqzDZS5SM+DHHb9X/bH2zJQIojI3ydJ3JokMfyVjrn6me4YsItMwwG7lmmsqh+//tn1NQQAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc',variantClassNames:{transitionState:{'enter-active':'Modal__5ozg8c4','enter-done':'Modal__5ozg8c5','exit-active':'Modal__5ozg8c6','exit-done':'Modal__5ozg8c7'}},defaultVariants:{},compoundVariants:[]});\nexport var dim = 'Modal__5ozg8cd f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 f__dhthxqc f__dhthxq9 f__dhthxq7 f__dhthxqb Modal__5ozg8c3';\nexport var enterActive = 'Modal__5ozg8c4';\nexport var enterDone = 'Modal__5ozg8c5';\nexport var exitActive = 'Modal__5ozg8c6';\nexport var exitDone = 'Modal__5ozg8c7';\nexport var paper = 'Modal__5ozg8ce f__dhthxqc Modal__5ozg8c3';\nexport var vars = {transitionDuration:'var(--transitionDuration__5ozg8c0)',zIndexes:{dim:'var(--zIndexes-dim__5ozg8c1)',paper:'var(--zIndexes-paper__5ozg8c2)'}};"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useActions", "assignInlineVars", "React", "createContext", "useContext", "useRef", "useEffect", "useState", "useState", "useEffect", "useEffect", "useEffect", "refs", "refs", "refs", "assignInlineVars", "React", "React", "React", "_7a468", "_7a468", "_7a468", "_7a468", "React", "backButton", "closeButton", "_a", "_b", "assignInlineVars", "createContext", "useContext", "appBar", "useActions", "useRef", "_a", "_b", "React", "assignInlineVars", "useActions", "assignInlineVars", "React", "useRef", "_7a468", "container", "dim", "paper", "vars", "useActions", "useRef", "React", "container", "assignInlineVars", "vars", "dim", "paper", "useActions", "assignInlineVars", "React", "useRef", "_7a468", "container", "dim", "paper", "vars", "useActions", "useRef", "React", "container", "assignInlineVars", "vars", "dim", "paper"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackflow/plugin-basic-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"ts-pattern": "^4.0.5"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@stackflow/core": "^0.
|
|
34
|
+
"@stackflow/core": "^0.21.0",
|
|
35
35
|
"@stackflow/esbuild-config": "^0.20.0",
|
|
36
36
|
"@stackflow/eslint-config": "^0.20.0",
|
|
37
|
-
"@stackflow/react": "^0.
|
|
37
|
+
"@stackflow/react": "^0.21.0",
|
|
38
38
|
"@types/react": "^18.0.10",
|
|
39
39
|
"@typescript-eslint/eslint-plugin": "^5.32.0",
|
|
40
40
|
"@typescript-eslint/parser": "^5.20.0",
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
"build"
|
|
69
69
|
]
|
|
70
70
|
},
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "e1dbe93f0389895ecc79c05ddd54198f30e32463"
|
|
72
72
|
}
|
package/src/basicUIPlugin.tsx
CHANGED
|
@@ -10,9 +10,18 @@ type BasicUIPluginOptions = RecursivePartial<theme.GlobalVars> & {
|
|
|
10
10
|
theme: "android" | "cupertino";
|
|
11
11
|
rootClassName?: string;
|
|
12
12
|
appBar?: {
|
|
13
|
+
backButton?:
|
|
14
|
+
| {
|
|
15
|
+
renderIcon?: () => React.ReactNode;
|
|
16
|
+
ariaLabel?: string;
|
|
17
|
+
}
|
|
18
|
+
| {
|
|
19
|
+
render?: () => React.ReactNode;
|
|
20
|
+
};
|
|
13
21
|
closeButton?:
|
|
14
22
|
| {
|
|
15
23
|
renderIcon?: () => React.ReactNode;
|
|
24
|
+
ariaLabel?: string;
|
|
16
25
|
onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
17
26
|
}
|
|
18
27
|
| {
|
|
@@ -29,6 +29,7 @@ type AppBarProps = Partial<
|
|
|
29
29
|
backButton?:
|
|
30
30
|
| {
|
|
31
31
|
renderIcon?: () => React.ReactNode;
|
|
32
|
+
ariaLabel?: string;
|
|
32
33
|
onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
33
34
|
}
|
|
34
35
|
| {
|
|
@@ -37,6 +38,7 @@ type AppBarProps = Partial<
|
|
|
37
38
|
closeButton?:
|
|
38
39
|
| {
|
|
39
40
|
renderIcon?: () => React.ReactNode;
|
|
41
|
+
ariaLabel?: string;
|
|
40
42
|
onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
41
43
|
}
|
|
42
44
|
| {
|
|
@@ -71,6 +73,7 @@ const AppBar = React.forwardRef<HTMLDivElement, AppBarProps>(
|
|
|
71
73
|
|
|
72
74
|
const globalOptions = useGlobalOptions();
|
|
73
75
|
const globalCloseButton = globalOptions.appBar?.closeButton;
|
|
76
|
+
const globalBackButton = globalOptions.appBar?.backButton;
|
|
74
77
|
|
|
75
78
|
const centerRef = useRef<any>(null);
|
|
76
79
|
|
|
@@ -98,7 +101,7 @@ const AppBar = React.forwardRef<HTMLDivElement, AppBarProps>(
|
|
|
98
101
|
return null;
|
|
99
102
|
}
|
|
100
103
|
|
|
101
|
-
if (!backButton) {
|
|
104
|
+
if (!backButton && !globalBackButton) {
|
|
102
105
|
return (
|
|
103
106
|
<button
|
|
104
107
|
type="button"
|
|
@@ -110,17 +113,48 @@ const AppBar = React.forwardRef<HTMLDivElement, AppBarProps>(
|
|
|
110
113
|
);
|
|
111
114
|
}
|
|
112
115
|
|
|
113
|
-
if ("render" in backButton && backButton.render) {
|
|
116
|
+
if (backButton && "render" in backButton && backButton.render) {
|
|
114
117
|
return backButton.render?.();
|
|
115
118
|
}
|
|
119
|
+
if (
|
|
120
|
+
globalBackButton &&
|
|
121
|
+
"render" in globalBackButton &&
|
|
122
|
+
globalBackButton.render
|
|
123
|
+
) {
|
|
124
|
+
return globalBackButton.render?.();
|
|
125
|
+
}
|
|
116
126
|
|
|
117
127
|
return (
|
|
118
|
-
<button
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
128
|
+
<button
|
|
129
|
+
type="button"
|
|
130
|
+
className={css.backButton}
|
|
131
|
+
aria-label={
|
|
132
|
+
backButton && "ariaLabel" in backButton
|
|
133
|
+
? backButton.ariaLabel
|
|
134
|
+
: globalBackButton && "ariaLabel" in globalBackButton
|
|
135
|
+
? globalBackButton.ariaLabel
|
|
136
|
+
: undefined
|
|
137
|
+
}
|
|
138
|
+
onClick={onBackClick}
|
|
139
|
+
>
|
|
140
|
+
{(() => {
|
|
141
|
+
if (
|
|
142
|
+
backButton &&
|
|
143
|
+
"renderIcon" in backButton &&
|
|
144
|
+
backButton.renderIcon
|
|
145
|
+
) {
|
|
146
|
+
return backButton.renderIcon();
|
|
147
|
+
}
|
|
148
|
+
if (
|
|
149
|
+
globalBackButton &&
|
|
150
|
+
"renderIcon" in globalBackButton &&
|
|
151
|
+
globalBackButton.renderIcon
|
|
152
|
+
) {
|
|
153
|
+
return globalBackButton.renderIcon();
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
return <IconBack />;
|
|
157
|
+
})()}
|
|
124
158
|
</button>
|
|
125
159
|
);
|
|
126
160
|
};
|
|
@@ -160,6 +194,13 @@ const AppBar = React.forwardRef<HTMLDivElement, AppBarProps>(
|
|
|
160
194
|
<button
|
|
161
195
|
type="button"
|
|
162
196
|
className={css.closeButton}
|
|
197
|
+
aria-label={
|
|
198
|
+
closeButton && "ariaLabel" in closeButton
|
|
199
|
+
? closeButton.ariaLabel
|
|
200
|
+
: globalCloseButton && "ariaLabel" in globalCloseButton
|
|
201
|
+
? globalCloseButton.ariaLabel
|
|
202
|
+
: undefined
|
|
203
|
+
}
|
|
163
204
|
onClick={onCloseClick}
|
|
164
205
|
>
|
|
165
206
|
{(() => {
|
|
@@ -138,6 +138,9 @@ const AppScreen: React.FC<AppScreenProps> = ({
|
|
|
138
138
|
)}
|
|
139
139
|
>
|
|
140
140
|
<div className={css.dim} ref={dimRef} />
|
|
141
|
+
{appBar && (
|
|
142
|
+
<AppBar {...appBar} ref={appBarRef} onTopClick={onAppBarTopClick} />
|
|
143
|
+
)}
|
|
141
144
|
<div
|
|
142
145
|
key={activity?.id}
|
|
143
146
|
className={css.paper({
|
|
@@ -152,9 +155,6 @@ const AppScreen: React.FC<AppScreenProps> = ({
|
|
|
152
155
|
!preventSwipeBack && (
|
|
153
156
|
<div className={css.edge({ hasAppBar })} ref={edgeRef} />
|
|
154
157
|
)}
|
|
155
|
-
{appBar && (
|
|
156
|
-
<AppBar {...appBar} ref={appBarRef} onTopClick={onAppBarTopClick} />
|
|
157
|
-
)}
|
|
158
158
|
</div>
|
|
159
159
|
</Context.Provider>
|
|
160
160
|
);
|