@stackflow/plugin-basic-ui 0.21.0 → 0.21.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1,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 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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",
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 modalPresentationStyle?: \"fullScreen\";\n children: React.ReactNode;\n};\nconst AppScreen: React.FC<AppScreenProps> = ({\n backgroundColor,\n dimBackgroundColor,\n appBar,\n preventSwipeBack,\n modalPresentationStyle,\n children,\n}) => {\n const globalOptions = useGlobalOptions();\n const activity = useNullableActivity();\n\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 const presentModalFullScreen = modalPresentationStyle === \"fullScreen\";\n const swipeBackPrevented = preventSwipeBack || presentModalFullScreen;\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: !presentModalFullScreen,\n });\n useStyleEffectSwipeBack({\n theme: globalOptions.theme,\n dimRef,\n edgeRef,\n paperRef,\n hasEffect: true,\n prevented: swipeBackPrevented,\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\n {...appBar}\n ref={appBarRef}\n modalPresentationStyle={modalPresentationStyle}\n onTopClick={onAppBarTopClick}\n />\n )}\n <div\n key={activity?.id}\n className={css.paper({\n hasAppBar,\n presentModalFullScreen,\n })}\n ref={paperRef}\n >\n {children}\n </div>\n {!activity?.isRoot &&\n globalOptions.theme === \"cupertino\" &&\n !swipeBackPrevented && (\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 effectDeps,\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 effectDeps?: any[];\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, ...(effectDeps ?? [])]);\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 prevented,\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 prevented?: 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 effectDeps: [prevented],\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 } 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 modalPresentationStyle?: \"fullScreen\";\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 modalPresentationStyle,\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 presentModalFullScreen = modalPresentationStyle === \"fullScreen\";\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 if (presentModalFullScreen) {\n return <IconClose />;\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 const showCloseButton = (closeButton: AppBarProps[\"closeButton\"]) =>\n (closeButton && \"render\" in closeButton && closeButton.render) ||\n (closeButton &&\n \"renderIcon\" in closeButton &&\n closeButton.renderIcon) ||\n (closeButton && \"onClick\" in closeButton && closeButton.onClick);\n\n if (\n !(\n showCloseButton(closeButton) ||\n showCloseButton(globalOptions.appBar?.closeButton)\n ) ||\n !isRoot\n ) {\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 presentModalFullScreen,\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=#H4sIAAAAAAAAE71WTY/aMBC98yt8qQRqjMKy/QrqoVVVqYeeeqyq1WCbxGBsy3Ggpep/r52EkCxJCHS3K6TF2DPvzczzjKcftP5GDGPy4WFGxep+fv8a/R4htASyiY3KJMVECWUitAMzxji1bmMl1B5rkcVc4iWknOCMY8q3+LHVZDH6M5qeY7y5EWOo/7e5f2tAptxyJaPi+0qZbYlx2vuUGfD/K+NwEiClgXD7a8jhDgrkRMHDlgwEWDan41kYvghQ6D5d5jw3L2lEKFy41QFzSdnPY5oOX/yKpT7zld1s4k/uuRCYJCBjFh2deCC3VfxNbcK2zFkRpfX2EKI2CkF1PDJK2e8ULPQUJ3f5HiQ1itMfrR6PDn1sCeNxYiM0Cw3bLhpyiJDgkoHBsQHKmbTjm8QXIBMvYRwWmfbJnjSTcM7w3YVEtOzCxUirKs4uwS+vhyfD4cMOra2LYztm8ty6kykxSghfFLxnyw23uNottriMnaJVRpI+YWrQzFQwd+fSrK5HF7MoOhIocJdgcrKUp1qAYyqVZI2snml71pagdVAzuELdJHMRWS5Vq77XJ6fDL/+VzFsV+jzhXIYaQrj1fjwP4XaoQUUJB1WktU/eGktfp3xEujkHukPIe+mNYTypsPpiu1pWrXSfVFZ9dIeIqt7hB0ms5jKB1C0+gnmwJmMVwuY/PmECpIFS19OxVfriIwy0dguDiwFe84xp6Tpv9DWXESIgyMUh3nQ8QS8RUdIdd/M/hRXDYBi4SZMy651OngyFyV0XQOMW9fc7bVjqnipfFQXxOROi/LlRVBE03P1z4xuEWYfs74DlZOp6k25z8z2nNnFKn969Kh9uXeOf0fhEYz5Q97Lg6Mt5ZSUXtUdlrgQfDsLXuvE8/wIwJxtwFw0AAA==';\nimport 'src/components/AppBar.css.ts.vanilla.css?source=#H4sIAAAAAAAAE81XS2/cNhC+76/gpcC6MAVpH3GyRg4NigAFmlMOPQSBQUnUijFFCiS1Xm/R/16Sej8juZvGhgFb5HAe38x8HDq/pekHJB4evOfHLdrtXfD3CoCEMBhjcozVAZyQWEMoFQoeI8qfYEqzo972kSQBzAhEaao/BKzP3Nyv/lk5HcWeVexrLUfBMxbCgFMu5qvvntRGALhAwkJ8LrVc/jBfWJpDue2QRrvtbmeFnwilMIgRO+IDUAIxGXGR3AKeooCoZ+O0lip/HBXjBGsVAU/T5OKBXkC3DemD4Fx9CZFCE6FYje+DLMVCEca/9lXWGg1YKZdEEc4OAPmS00zhOT5+DgTGrIrd/1GOf99OO5oK8QJ8ihTehmvPdX+5Ba7+tUmyW0XUrpyO171aaIiFgpPwuxkpSkW7dj8ekY7FcwVOhkKqjhQVW+/9nglk/laAujdVac4RngNVJ2Xvfgx+y6zMcRT9L44OWBnJvjed/aKYaw70uQixeFAiw5XuTc6H/AxljEL+dACESayAm55BgGiwhh74dT47WgtQkgu+uQHu0nMlo7ZKaIIDU4ElZuoTDxH9mFFaINkKcHvb0vXfGHKWwaa9Ccax/eme4p/an/PI+93PQfyaXswJE72KMBd6Mb/aKj5YDIz/KoBZ6MWrb8Muze+sm+W8G3Cm4WJqLVGEIRIYQcvMUPHUOloKYnYakemb2LdMzGXnapxuo5MvL9TSgAWGBS6Drr7JZ08UhoQd9aQDXGevp5lB0QNOUo27ORASmVKkL0fGGR4SvrNiC6d+orPRmPebKJRJ37puIvP5PlTxAWycTe5vjffGuRsL4e6AAkVOuDPeOZsxc/lQ2lWD7PnCgzy4/A0CA90v+oZNEGF/me2qFvc2ooV4KHxWI3hctypWIzTVn7lRzTrXmLjRqkEdBaDmjWDC/ZZJRaJnDYDGlOnERhSfjSmh7uuahRRHes8riiDSwnYw0kuO9/auLA5KGK4euZ6zr2SfijWf0/C+nNHIxXZDMS/ppSmQ+o/Fl4E08VRswTT0UGx0pEHJLCBKjgwShROpac7W5SCq9ZYtN3usuWpRilBCqFZuCopiKJ+lMk+eDxrWx08o+Gy/P2rJHq5vXLeblzIlNnH7PNlD18Ya6s0WCb+ESnk6g+Wt1BTFT13mdZfESP6po2pfkf6LL+pe2wzr717B7c5wne0oHwZWvpWIukcqYp3OTYLOsOjc8kDndngBVS7ptuDa3RY0u62Kxac8eBwCMcznHtM8/ISFsalriVKSSiI7tU9YjAXpd0m13lePx25oA70wkeX5Q5nig+enru35xI+vS/y4xWjd4Mw/2r1/ARbbknuvFAAA';\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'},presentModalFullScreen:{true:'AppBar_presentModalFullScreen_true__1yk3a453'}},defaultVariants:{},compoundVariants:[]});\nexport var backButton = 'AppBar__1yk3a457 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__1yk3a45a',variantClassNames:{hasLeft:{true:'AppBar_hasLeft_true__1yk3a45b'}},defaultVariants:{},compoundVariants:[]});\nexport var centerMainEdge = 'AppBar__1yk3a45c f__dhthxqi f__dhthxq4 f__dhthxq2 f__dhthxqf';\nexport var centerText = 'AppBar__1yk3a45d f__dhthxqc f__dhthxqd f__dhthxq0';\nexport var closeButton = 'AppBar__1yk3a457 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi';\nexport var container = 'AppBar__1yk3a455 f__dhthxqa f__dhthxq7 f__dhthxqc';\nexport var left = 'AppBar__1yk3a456 f__dhthxq9 f__dhthxq7 f__dhthxq1 AppBar__1yk3a450';\nexport var right = 'AppBar__1yk3a45e f__dhthxq9 f__dhthxq7 f__dhthxq1 f__dhthxq5 AppBar__1yk3a450';\nexport var safeArea = 'AppBar__1yk3a454';", "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=#H4sIAAAAAAAAE71WTY/aMBC98yt8qQRqjMKy/QrqoVVVqYeeeqyq1WCbxGBsy3Ggpep/r52EkCxJCHS3K6TF2DPvzczzjKcftP5GDGPy4WFGxep+fv8a/R4htASyiY3KJMVECWUitAMzxji1bmMl1B5rkcVc4iWknOCMY8q3+LHVZDH6M5qeY7y5EWOo/7e5f2tAptxyJaPi+0qZbYlx2vuUGfD/K+NwEiClgXD7a8jhDgrkRMHDlgwEWDan41kYvghQ6D5d5jw3L2lEKFy41QFzSdnPY5oOX/yKpT7zld1s4k/uuRCYJCBjFh2deCC3VfxNbcK2zFkRpfX2EKI2CkF1PDJK2e8ULPQUJ3f5HiQ1itMfrR6PDn1sCeNxYiM0Cw3bLhpyiJDgkoHBsQHKmbTjm8QXIBMvYRwWmfbJnjSTcM7w3YVEtOzCxUirKs4uwS+vhyfD4cMOra2LYztm8ty6kykxSghfFLxnyw23uNottriMnaJVRpI+YWrQzFQwd+fSrK5HF7MoOhIocJdgcrKUp1qAYyqVZI2snml71pagdVAzuELdJHMRWS5Vq77XJ6fDL/+VzFsV+jzhXIYaQrj1fjwP4XaoQUUJB1WktU/eGktfp3xEujkHukPIe+mNYTypsPpiu1pWrXSfVFZ9dIeIqt7hB0ms5jKB1C0+gnmwJmMVwuY/PmECpIFS19OxVfriIwy0dguDiwFe84xp6Tpv9DWXESIgyMUh3nQ8QS8RUdIdd/M/hRXDYBi4SZMy651OngyFyV0XQOMW9fc7bVjqnipfFQXxOROi/LlRVBE03P1z4xuEWYfs74DlZOp6k25z8z2nNnFKn969Kh9uXeOf0fhEYz5Q97Lg6Mt5ZSUXtUdlrgQfDsLXuvE8/wIwJxtwFw0AAA==';\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__1dlf434m f__dhthxq4 f__dhthxq2 f__dhthxq3 f__dhthxq1',variantClassNames:{hasAppBar:{true:'AppScreen_hasAppBar_true__1dlf434n'}},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'},presentModalFullScreen:{true:'AppScreen_presentModalFullScreen_true__1dlf434l'}},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
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
@@ -180,7 +180,8 @@ var connections = {};
180
180
  function useStyleEffect({
181
181
  styleName,
182
182
  refs,
183
- effect
183
+ effect,
184
+ effectDeps
184
185
  }) {
185
186
  const activity = useNullableActivity();
186
187
  useEffect3(() => {
@@ -228,7 +229,7 @@ function useStyleEffect({
228
229
  return () => {
229
230
  cleanup == null ? void 0 : cleanup();
230
231
  };
231
- }, [activity == null ? void 0 : activity.transitionState]);
232
+ }, [activity == null ? void 0 : activity.transitionState, ...effectDeps != null ? effectDeps : []]);
232
233
  }
233
234
 
234
235
  // src/hooks/useStyleEffectHide.ts
@@ -344,6 +345,7 @@ function useStyleEffectSwipeBack({
344
345
  edgeRef,
345
346
  paperRef,
346
347
  hasEffect,
348
+ prevented,
347
349
  onSwiped
348
350
  }) {
349
351
  useStyleEffect({
@@ -500,7 +502,8 @@ function useStyleEffectSwipeBack({
500
502
  $edge.removeEventListener("touchend", onTouchEnd);
501
503
  $edge.removeEventListener("touchcancel", onTouchEnd);
502
504
  };
503
- } : void 0
505
+ } : void 0,
506
+ effectDeps: [prevented]
504
507
  });
505
508
  }
506
509
 
@@ -544,24 +547,24 @@ var IconClose_default = IconClose;
544
547
 
545
548
  // src/components/AppBar.css.ts
546
549
  import { createRuntimeFn as _7a468 } from "@vanilla-extract/recipes/createRuntimeFn";
547
- 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: [] });
548
- var backButton = "AppBar__1yk3a456 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi";
550
+ var appBar = _7a468({ defaultClassName: "AppBar__1yk3a451 f__dhthxq4 f__dhthxq0 f__dhthxqh f__dhthxqc AppScreen__1dlf4347", variantClassNames: { border: { true: "AppBar_border_true__1yk3a452" }, presentModalFullScreen: { true: "AppBar_presentModalFullScreen_true__1yk3a453" } }, defaultVariants: {}, compoundVariants: [] });
551
+ var backButton = "AppBar__1yk3a457 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi";
549
552
  var center = "f__dhthxq9 f__dhthxq7 f__dhthxq8 AppBar__1yk3a450";
550
- var centerMain = _7a468({ defaultClassName: "AppBar__1yk3a459", variantClassNames: { hasLeft: { true: "AppBar_hasLeft_true__1yk3a45a" } }, defaultVariants: {}, compoundVariants: [] });
551
- var centerMainEdge = "AppBar__1yk3a45b f__dhthxqi f__dhthxq4 f__dhthxq2 f__dhthxqf";
552
- var centerText = "AppBar__1yk3a45c f__dhthxqc f__dhthxqd f__dhthxq0";
553
- var closeButton = "AppBar__1yk3a456 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi";
554
- var container = "AppBar__1yk3a454 f__dhthxqa f__dhthxq7 f__dhthxqc";
555
- var left = "AppBar__1yk3a455 f__dhthxq9 f__dhthxq7 f__dhthxq1 AppBar__1yk3a450";
556
- var right = "AppBar__1yk3a45d f__dhthxq9 f__dhthxq7 f__dhthxq1 f__dhthxq5 AppBar__1yk3a450";
557
- var safeArea = "AppBar__1yk3a453";
553
+ var centerMain = _7a468({ defaultClassName: "AppBar__1yk3a45a", variantClassNames: { hasLeft: { true: "AppBar_hasLeft_true__1yk3a45b" } }, defaultVariants: {}, compoundVariants: [] });
554
+ var centerMainEdge = "AppBar__1yk3a45c f__dhthxqi f__dhthxq4 f__dhthxq2 f__dhthxqf";
555
+ var centerText = "AppBar__1yk3a45d f__dhthxqc f__dhthxqd f__dhthxq0";
556
+ var closeButton = "AppBar__1yk3a457 f__dhthxq9 f__dhthxq7 f__dhthxqb f__dhthxqf f__dhthxqi";
557
+ var container = "AppBar__1yk3a455 f__dhthxqa f__dhthxq7 f__dhthxqc";
558
+ var left = "AppBar__1yk3a456 f__dhthxq9 f__dhthxq7 f__dhthxq1 AppBar__1yk3a450";
559
+ var right = "AppBar__1yk3a45e f__dhthxq9 f__dhthxq7 f__dhthxq1 f__dhthxq5 AppBar__1yk3a450";
560
+ var safeArea = "AppBar__1yk3a454";
558
561
 
559
562
  // src/components/AppScreen.css.ts
560
563
  import { createRuntimeFn as _7a4682 } from "@vanilla-extract/recipes/createRuntimeFn";
561
564
  var appScreen = _7a4682({ 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: [] });
562
565
  var dim = "AppScreen__1dlf434i f__dhthxq4 f__dhthxq0 f__dhthxq1 f__dhthxq2 f__dhthxq3 AppScreen__1dlf4346 AppScreen__1dlf4348";
563
- var edge = _7a4682({ defaultClassName: "AppScreen__1dlf434l f__dhthxq4 f__dhthxq2 f__dhthxq3 f__dhthxq1", variantClassNames: { hasAppBar: { true: "AppScreen_hasAppBar_true__1dlf434m" } }, defaultVariants: {}, compoundVariants: [] });
564
- var paper = _7a4682({ 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: [] });
566
+ var edge = _7a4682({ defaultClassName: "AppScreen__1dlf434m f__dhthxq4 f__dhthxq2 f__dhthxq3 f__dhthxq1", variantClassNames: { hasAppBar: { true: "AppScreen_hasAppBar_true__1dlf434n" } }, defaultVariants: {}, compoundVariants: [] });
567
+ var paper = _7a4682({ 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" }, presentModalFullScreen: { true: "AppScreen_presentModalFullScreen_true__1dlf434l" } }, defaultVariants: {}, compoundVariants: [] });
565
568
  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)" } } };
566
569
 
567
570
  // src/components/AppBar.tsx
@@ -574,6 +577,7 @@ var AppBar = React4.forwardRef(
574
577
  closeButton: closeButton2,
575
578
  closeButtonLocation = "left",
576
579
  border = true,
580
+ modalPresentationStyle,
577
581
  iconColor,
578
582
  textColor,
579
583
  borderColor,
@@ -594,6 +598,7 @@ var AppBar = React4.forwardRef(
594
598
  innerRef: centerRef,
595
599
  enable: globalOptions.theme === "cupertino"
596
600
  });
601
+ const presentModalFullScreen = modalPresentationStyle === "fullScreen";
597
602
  const onBackClick = (e) => {
598
603
  if (backButton2 && "onClick" in backButton2 && backButton2.onClick) {
599
604
  backButton2.onClick(e);
@@ -635,6 +640,9 @@ var AppBar = React4.forwardRef(
635
640
  if (globalBackButton && "renderIcon" in globalBackButton && globalBackButton.renderIcon) {
636
641
  return globalBackButton.renderIcon();
637
642
  }
643
+ if (presentModalFullScreen) {
644
+ return /* @__PURE__ */ React4.createElement(IconClose_default, null);
645
+ }
638
646
  return /* @__PURE__ */ React4.createElement(IconBack_default, null);
639
647
  })());
640
648
  };
@@ -650,7 +658,8 @@ var AppBar = React4.forwardRef(
650
658
  const renderCloseButton = () => {
651
659
  var _a2;
652
660
  const isRoot = !activity || activity.isRoot;
653
- if (!closeButton2 && !((_a2 = globalOptions.appBar) == null ? void 0 : _a2.closeButton) || !isRoot) {
661
+ const showCloseButton = (closeButton3) => closeButton3 && "render" in closeButton3 && closeButton3.render || closeButton3 && "renderIcon" in closeButton3 && closeButton3.renderIcon || closeButton3 && "onClick" in closeButton3 && closeButton3.onClick;
662
+ if (!(showCloseButton(closeButton2) || showCloseButton((_a2 = globalOptions.appBar) == null ? void 0 : _a2.closeButton)) || !isRoot) {
654
663
  return null;
655
664
  }
656
665
  if (closeButton2 && "render" in closeButton2 && closeButton2.render) {
@@ -678,7 +687,8 @@ var AppBar = React4.forwardRef(
678
687
  return /* @__PURE__ */ React4.createElement("div", {
679
688
  ref,
680
689
  className: appBar({
681
- border
690
+ border,
691
+ presentModalFullScreen
682
692
  }),
683
693
  style: assignInlineVars2(
684
694
  compactMap({
@@ -729,6 +739,7 @@ var AppScreen = ({
729
739
  dimBackgroundColor,
730
740
  appBar: appBar2,
731
741
  preventSwipeBack,
742
+ modalPresentationStyle,
732
743
  children
733
744
  }) => {
734
745
  var _a, _b;
@@ -740,6 +751,8 @@ var AppScreen = ({
740
751
  const paperRef = useRef2(null);
741
752
  const edgeRef = useRef2(null);
742
753
  const appBarRef = useRef2(null);
754
+ const presentModalFullScreen = modalPresentationStyle === "fullScreen";
755
+ const swipeBackPrevented = preventSwipeBack || presentModalFullScreen;
743
756
  useStyleEffectHide({
744
757
  refs: [appScreenRef],
745
758
  hasEffect: true
@@ -747,7 +760,7 @@ var AppScreen = ({
747
760
  useStyleEffectOffset({
748
761
  theme: globalOptions.theme,
749
762
  refs: globalOptions.theme === "cupertino" ? [paperRef] : [paperRef, appBarRef],
750
- hasEffect: true
763
+ hasEffect: !presentModalFullScreen
751
764
  });
752
765
  useStyleEffectSwipeBack({
753
766
  theme: globalOptions.theme,
@@ -755,6 +768,7 @@ var AppScreen = ({
755
768
  edgeRef,
756
769
  paperRef,
757
770
  hasEffect: true,
771
+ prevented: swipeBackPrevented,
758
772
  onSwiped() {
759
773
  pop();
760
774
  }
@@ -813,14 +827,16 @@ var AppScreen = ({
813
827
  ref: dimRef
814
828
  }), appBar2 && /* @__PURE__ */ React5.createElement(AppBar_default, __spreadProps(__spreadValues({}, appBar2), {
815
829
  ref: appBarRef,
830
+ modalPresentationStyle,
816
831
  onTopClick: onAppBarTopClick
817
832
  })), /* @__PURE__ */ React5.createElement("div", {
818
833
  key: activity == null ? void 0 : activity.id,
819
834
  className: paper({
820
- hasAppBar
835
+ hasAppBar,
836
+ presentModalFullScreen
821
837
  }),
822
838
  ref: paperRef
823
- }, children), !(activity == null ? void 0 : activity.isRoot) && globalOptions.theme === "cupertino" && !preventSwipeBack && /* @__PURE__ */ React5.createElement("div", {
839
+ }, children), !(activity == null ? void 0 : activity.isRoot) && globalOptions.theme === "cupertino" && !swipeBackPrevented && /* @__PURE__ */ React5.createElement("div", {
824
840
  className: edge({ hasAppBar }),
825
841
  ref: edgeRef
826
842
  })));