@stackflow/plugin-basic-ui 1.17.0 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/assets/IconBack.tsx", "../src/assets/IconClose.tsx", "../src/basicUIPlugin.tsx", "../src/basicUIPlugin.css.ts", "../src/utils/compact.ts", "../src/utils/compactMap.ts", "../src/components/AppBar.tsx", "../src/components/AppBar.css.ts", "../src/components/AppScreen.css.ts", "../src/components/AppScreen.tsx", "../src/components/BottomSheet.tsx", "../src/components/BottomSheet.css.ts", "../src/components/Modal.tsx", "../src/components/Modal.css.ts"],
4
- "sourcesContent": ["const 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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.7241 2.76052C17.105 3.16043 17.0896 3.79341 16.6897 4.17431L8.45 12.0222L16.6896 19.8689C17.0896 20.2498 17.105 20.8827 16.7242 21.2827C16.3433 21.6826 15.7103 21.6981 15.3104 21.3172L6.31037 12.7464C6.11218 12.5576 6.00001 12.2959 6 12.0222C5.99999 11.7486 6.11215 11.4868 6.31032 11.2981L15.3103 2.72608C15.7102 2.34518 16.3432 2.3606 16.7241 2.76052Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default IconBack;\n", "const 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=\"M20.7071 4.70711C21.0976 4.31658 21.0976 3.68342 20.7071 3.29289C20.3166 2.90237 19.6834 2.90237 19.2929 3.29289L12 10.5858L4.70711 3.29289C4.31658 2.90237 3.68342 2.90237 3.29289 3.29289C2.90237 3.68342 2.90237 4.31658 3.29289 4.70711L10.5858 12L3.29289 19.2929C2.90237 19.6834 2.90237 20.3166 3.29289 20.7071C3.68342 21.0976 4.31658 21.0976 4.70711 20.7071L12 13.4142L19.2929 20.7071C19.6834 21.0976 20.3166 21.0976 20.7071 20.7071C21.0976 20.3166 21.0976 19.6834 20.7071 19.2929L13.4142 12L20.7071 4.70711Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default IconClose;\n", "import type { StackflowReactPlugin } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport { createContext, useContext } from \"react\";\n\nimport * as css from \"./basicUIPlugin.css\";\nimport type { RecursivePartial } from \"./utils\";\nimport { compact, compactMap, isBrowser } from \"./utils\";\n\ntype BasicUIPluginOptions = RecursivePartial<css.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:\n | BasicUIPluginOptions\n | ((args: { initialContext?: any }) => BasicUIPluginOptions),\n) => StackflowReactPlugin = (options) => () => ({\n key: \"basic-ui\",\n wrapStack({ stack, initialContext }) {\n const _options =\n typeof options === \"function\" ? options({ initialContext }) : options;\n\n return (\n <GlobalOptionsProvider\n value={{\n ..._options,\n theme: initialContext?.theme ?? _options.theme,\n }}\n >\n <div\n className={compact([\n css.stackWrapper({\n theme: initialContext?.theme ?? _options.theme,\n }),\n _options.rootClassName,\n ]).join(\" \")}\n style={assignInlineVars(\n compactMap({\n [css.globalVars.backgroundColor]: _options.backgroundColor,\n [css.globalVars.backgroundImage]: _options.backgroundImage,\n [css.globalVars.dimBackgroundColor]: _options.dimBackgroundColor,\n [css.globalVars.transitionDuration]:\n `${stack.transitionDuration}ms`,\n [css.globalVars.computedTransitionDuration]:\n stack.globalTransitionState === \"loading\"\n ? `${stack.transitionDuration}ms`\n : \"0ms\",\n [css.globalVars.appBar.borderColor]: _options.appBar?.borderColor,\n [css.globalVars.appBar.borderSize]: _options.appBar?.borderSize,\n [css.globalVars.appBar.height]: _options.appBar?.height,\n [css.globalVars.appBar.iconColor]: _options.appBar?.iconColor,\n [css.globalVars.appBar.textColor]: _options.appBar?.textColor,\n [css.globalVars.appBar.minSafeAreaInsetTop]:\n _options.appBar?.minSafeAreaInsetTop,\n [css.globalVars.bottomSheet.borderRadius]:\n _options.bottomSheet?.borderRadius,\n [css.globalVars.modal.borderRadius]: _options.modal?.borderRadius,\n [css.globalVars.appBar.containerPadding]:\n _options.appBar?.containerPadding,\n [css.globalVars.appBar.fontSize]: _options.appBar?.fontSize,\n [css.globalVars.appBar.lineHeight]: _options.appBar?.lineHeight,\n [css.globalVars.appBar.hitSlop]: _options.appBar?.hitSlop,\n [css.globalVars.appBar.itemGap]: _options.appBar?.itemGap,\n }),\n )}\n >\n {stack.render()}\n </div>\n </GlobalOptionsProvider>\n );\n },\n});\n", "import 'src/basicUIPlugin.css.ts.vanilla.css?source=#H4sIAAAAAAAAA+2YUYvUMBDH3/dTBERQMKWprgc57pOIyLSZtnPXZHrp1FsUv7usuOfLrd10F065QB/60F/yHzqTH6T4Yu4/utvqtlTfN0ppPQk0d+3AD3oc5o6CrmGiRs+ka2juushzcLrhgaNVr9q2vT6dIg8dWjWHCWUJc+Sf2DB2Nbwp36nfT2G2b5cWkghhIiEO2s0R9i9WldMS1rAfZ0G3lodx1DVEXXN0GI/lL68W8z+10IVCTfQNrTLj7lSuR+p6sep9sY3o06hzM3sKK/enhsNjx1amMtWHdPTc+II7WRniD3r2f181wcfoC6ZJORmO4efG4a8Y9x9Y1ZNzGFIac4IWNUQETfsStPBoVXn6YDUcBChg1CM4R6GzyqR0uKDXHYxpVMtBDmdAYaqkkSbR0/CryKRRHCjg4xSbYrsoDxZhr6ceUQ6nVgRH83RaqZ4dDOtBDzv9QE56q0xZvr7e/NgUB1+a7MuX6cuy2KYbsyqunleZiQGyM7MzszP/PWcGjh6G/0+bNjLLJwcCf1NPjx5vmnnEKBT4czZsNmw2bDZsNmw2bDbs5QwLwUUml/36Qv2ab3yzW7Nbs1vzje8JYv0JCopajSEdAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var android = '_1q6dj2j0';\nexport var cupertino = '_1q6dj2j1';\nexport var globalVars = {backgroundColor:'var(--stackflow-plugin-basic-ui-background-color)',backgroundImage:'var(--stackflow-plugin-basic-ui-background-image)',dimBackgroundColor:'var(--stackflow-plugin-basic-ui-dim-background-color)',transitionDuration:'var(--stackflow-plugin-basic-ui-transition-duration)',computedTransitionDuration:'var(--stackflow-plugin-basic-ui-computed-transition-duration)',appBar:{borderColor:'var(--stackflow-plugin-basic-ui-app-bar-border-color)',borderColorTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-border-color-transition-duration)',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)',iconColorTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-icon-color-transition-duration)',textColor:'var(--stackflow-plugin-basic-ui-app-bar-text-color)',textColorTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-text-color-transition-duration)',backgroundColor:'var(--stackflow-plugin-basic-ui-app-bar-background-color)',backgroundColorTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-background-color-transition-duration)',backgroundImage:'var(--stackflow-plugin-basic-ui-app-bar-background-image)',backgroundImageTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-background-image-transition-duration)',overflow:'var(--stackflow-plugin-basic-ui-app-bar-overflow)',minSafeAreaInsetTop:'var(--stackflow-plugin-basic-ui-app-bar-min-safe-area-inset-top)',containerPadding:'var(--stackflow-plugin-basic-ui-app-bar-container-padding)',itemGap:'var(--stackflow-plugin-basic-ui-app-bar-item-gap)',fontSize:'var(--stackflow-plugin-basic-ui-app-bar-font-size)',lineHeight:'var(--stackflow-plugin-basic-ui-app-bar-line-height)',hitSlop:'var(--stackflow-plugin-basic-ui-app-bar-hit-slop)'},bottomSheet:{borderRadius:'var(--stackflow-plugin-basic-ui-bottom-sheet-border-radius)'},modal:{borderRadius:'var(--stackflow-plugin-basic-ui-modal-border-radius)',maxWidth:'var(--stackflow-plugin-basic-ui-modal-max-width)'}};\nexport var stackWrapper = _7a468({defaultClassName:'_1q6dj2j2',variantClassNames:{theme:{android:'_1q6dj2j0',cupertino:'_1q6dj2j1'}},defaultVariants:{},compoundVariants:[]});", "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", "import { useActions } from \"@stackflow/react\";\nimport {\n useActivityDataAttributes,\n useAppBarTitleMaxWidth,\n useMounted,\n useNullableActivity,\n} from \"@stackflow/react-ui-core\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport clsx from \"clsx\";\nimport { forwardRef, useRef } from \"react\";\nimport { IconBack, IconClose } from \"../assets\";\nimport { useGlobalOptions } from \"../basicUIPlugin\";\nimport type { GlobalVars } from \"../basicUIPlugin.css\";\nimport { globalVars } from \"../basicUIPlugin.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./AppBar.css\";\nimport * as appScreenCss from \"./AppScreen.css\";\n\nexport type AppBarProps = Partial<\n Pick<\n GlobalVars[\"appBar\"],\n | \"borderColor\"\n | \"borderColorTransitionDuration\"\n | \"borderSize\"\n | \"height\"\n | \"heightTransitionDuration\"\n | \"overflow\"\n | \"iconColor\"\n | \"iconColorTransitionDuration\"\n | \"textColor\"\n | \"textColorTransitionDuration\"\n | \"backgroundColor\"\n | \"backgroundColorTransitionDuration\"\n | \"backgroundImage\"\n | \"backgroundImageTransitionDuration\"\n | \"minHeight\"\n | \"fontSize\"\n | \"lineHeight\"\n | \"hitSlop\"\n | \"containerPadding\"\n | \"itemGap\"\n >\n> & {\n title?: React.ReactNode;\n renderLeft?: () => React.ReactNode;\n renderRight?: () => 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 activityEnterStyle?: \"slideInLeft\";\n onTopClick?: (e: React.MouseEvent) => void;\n enterStyle?: \"cover\";\n className?: string;\n};\nconst AppBar = forwardRef<HTMLDivElement, AppBarProps>(\n (\n {\n title,\n renderLeft,\n renderRight,\n backButton,\n closeButton,\n closeButtonLocation = \"left\",\n border = true,\n modalPresentationStyle,\n activityEnterStyle,\n iconColor,\n iconColorTransitionDuration,\n textColor,\n textColorTransitionDuration,\n borderColor,\n borderColorTransitionDuration,\n borderSize,\n height,\n heightTransitionDuration,\n overflow,\n backgroundColor,\n backgroundColorTransitionDuration,\n backgroundImage,\n backgroundImageTransitionDuration,\n onTopClick,\n enterStyle,\n className,\n minHeight,\n fontSize,\n lineHeight,\n hitSlop,\n containerPadding,\n itemGap,\n },\n ref,\n ) => {\n const actions = useActions();\n const activity = useNullableActivity();\n const activityDataAttributes = useActivityDataAttributes();\n\n const mounted = useMounted();\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 } = useAppBarTitleMaxWidth({\n outerRef: ref,\n innerRef: centerRef,\n enable: globalOptions.theme === \"cupertino\",\n });\n\n const isUnderAppBarSlideTransition =\n ((globalOptions.theme === \"cupertino\" &&\n modalPresentationStyle !== \"fullScreen\") ||\n activityEnterStyle === \"slideInLeft\") &&\n enterStyle !== \"cover\";\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 aria-label=\"Go Back\"\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 (modalPresentationStyle === \"fullScreen\") {\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 return (\n <div\n ref={ref}\n className={clsx(\n css.appBar({\n border,\n modalPresentationStyle,\n activityEnterStyle,\n enterStyle,\n }),\n className,\n )}\n style={assignInlineVars(\n compactMap({\n [globalVars.appBar.iconColor]: iconColor,\n [globalVars.appBar.iconColorTransitionDuration]:\n iconColorTransitionDuration,\n [globalVars.appBar.textColor]: textColor,\n [globalVars.appBar.textColorTransitionDuration]:\n textColorTransitionDuration,\n [globalVars.appBar.borderColor]: borderColor,\n [globalVars.appBar.borderColorTransitionDuration]:\n borderColorTransitionDuration,\n [globalVars.appBar.borderSize]: borderSize,\n [globalVars.appBar.height]: height,\n [globalVars.appBar.heightTransitionDuration]:\n heightTransitionDuration,\n [globalVars.appBar.overflow]: overflow,\n [globalVars.appBar.backgroundColor]:\n backgroundColor ??\n (isUnderAppBarSlideTransition\n ? globalVars.backgroundColor\n : \"transparent\"),\n [globalVars.appBar.backgroundColorTransitionDuration]:\n backgroundColorTransitionDuration,\n [globalVars.appBar.backgroundImage]:\n backgroundImage ??\n (isUnderAppBarSlideTransition\n ? globalVars.appBar.backgroundImage\n : \"none\"),\n [globalVars.appBar.backgroundImageTransitionDuration]:\n backgroundImageTransitionDuration,\n [appScreenCss.vars.appBar.center.mainWidth]: `${maxWidth}px`,\n [globalVars.appBar.minHeight]: minHeight,\n [globalVars.appBar.containerPadding]: containerPadding,\n [globalVars.appBar.fontSize]: fontSize,\n [globalVars.appBar.hitSlop]: hitSlop,\n [globalVars.appBar.lineHeight]: lineHeight,\n [globalVars.appBar.itemGap]: itemGap,\n }),\n )}\n data-part=\"appBar\"\n {...activityDataAttributes}\n >\n <div className={css.safeArea} />\n <div className={css.container}>\n <div className={css.left}>\n {closeButtonLocation === \"left\" && renderCloseButton()}\n {renderBackButton()}\n {renderLeft?.()}\n </div>\n <div ref={centerRef} className={css.center}>\n <div className={css.centerMain}>\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 onClick={onTopClick}\n />\n </div>\n </div>\n <div className={css.right}>\n {renderRight?.()}\n {closeButtonLocation === \"right\" && renderCloseButton()}\n </div>\n </div>\n </div>\n );\n },\n);\n\nAppBar.displayName = \"AppBar\";\n\nexport default AppBar;\n", "import 'src/basicUIPlugin.css.ts.vanilla.css?source=#H4sIAAAAAAAAA+2YUYvUMBDH3/dTBERQMKWprgc57pOIyLSZtnPXZHrp1FsUv7usuOfLrd10F065QB/60F/yHzqTH6T4Yu4/utvqtlTfN0ppPQk0d+3AD3oc5o6CrmGiRs+ka2juushzcLrhgaNVr9q2vT6dIg8dWjWHCWUJc+Sf2DB2Nbwp36nfT2G2b5cWkghhIiEO2s0R9i9WldMS1rAfZ0G3lodx1DVEXXN0GI/lL68W8z+10IVCTfQNrTLj7lSuR+p6sep9sY3o06hzM3sKK/enhsNjx1amMtWHdPTc+II7WRniD3r2f181wcfoC6ZJORmO4efG4a8Y9x9Y1ZNzGFIac4IWNUQETfsStPBoVXn6YDUcBChg1CM4R6GzyqR0uKDXHYxpVMtBDmdAYaqkkSbR0/CryKRRHCjg4xSbYrsoDxZhr6ceUQ6nVgRH83RaqZ4dDOtBDzv9QE56q0xZvr7e/NgUB1+a7MuX6cuy2KYbsyqunleZiQGyM7MzszP/PWcGjh6G/0+bNjLLJwcCf1NPjx5vmnnEKBT4czZsNmw2bDZsNmw2bDbs5QwLwUUml/36Qv2ab3yzW7Nbs1vzje8JYv0JCopajSEdAAA=';\nimport 'src/styles/f.css.ts.vanilla.css?source=LmRodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmRodGh4cTIgewogIHRvcDogMDsKfQouZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmRodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmRodGh4cTggewogIGZsZXg6IDE7Cn0KLmRodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmRodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmRodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmRodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmRodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmRodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmRodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/components/AppScreen.css.ts.vanilla.css?source=#H4sIAAAAAAAAA9WU3Y6bMBCF7/MUc1MJVByZ7Gbbem/6JtWAHeIANmtMflrtu1cY2ACB/Kx601yhjM/nM8djL3+FPNs8Pz1/gz8LgAjjNDG6UpzEOtOGwR6NR0hpMU43mT6QIqsSqUiEpYxJJQmXORmr/NfF+2LZkb9/kjxBHWBkjol4COMUQ3M/nDlrUJXSSq1Y873RJm/J3UrqB6ALjKU9XVQGSH5G1piWmKEVT9wLKf0SAA1gJNo5UctnQOtefxOpuDiy0XZhp3x74bvVjsIIshUy2VoGITUiH2bGIJNKoCGJQS6Fst6njjcAk0To0aaRuhdnaQHu92EHe86CcTHqFZvaIIBwChhfA/LrQDqIO3XFmYBXw4BDGMnuO9rWn3N4AepFkwZXV/ZySruFV0zQ4XBdjEg6MWfzKDdC8w3RuxuitxvqH/297TWYzOnP57e+/ShgUZAIDWnuiv/6D96AAHI09SZWFw/uT857E14ZrD+cpwI5lyqpkeMhXc8OaX5jPto5nR0RdU2/nn6+dHOEe2FcuycGZWx0ltVNkIOIUmnJR7UpSZUwsLqKt0MSY52gWRehcXAuyyLDEwOllRhIClc/pz8V1flZjDGL3V0FcrFu2NSb4x4kt1sG4XK1bt/TmWfjaahuXPfsPDSN827vxjg7P8uqKLSxJXjtMDHI8ejR4uj7gIr3/o+1Ki0q65W4EQSNQCJVKWydqe+7dkZ3bnTrnNkHXcJX5+deVS4VmbIX3HDvQn1/MBCh9v9nFrPGuxj+Ao0vfk33CQAA';\nimport 'src/components/AppBar.css.ts.vanilla.css?source=#H4sIAAAAAAAAA+1ZzZKjKhjd91Ow6apkSrqw89N3zG4Ws5vVfYApVFQ6CI6QdNK37rvfEmMEYxJJZ/rOwl6lFQ4f53wcPvDpp79fz/B8gcA/DwDklMOM0DRTAdjicgKhVDhaJ0y8wYJtUsphiCWN4IZCXBQwxCVs+0xXD/8+PDWIvkYUW1JW3YfjNT1stGeNFuJonZZiw2MYCSbK4ajdntOVDUdznJKb4HRPDfcOKY/JrkH56ccsmc/mc/1SlZhLqqjgwck0bp4FbFFhvClx9WPqnczr5mmdwxc7KDMci7fhyKKMSXkh6oPav5bx6/OrDzrCF6LhDodSsI0ip+1rtqNuVz1YIso8qH8yrMgsnvgIPXoAeQCN8gyQx2t5BEha5KMu46LAEVX7AKDVef6RB3xUknwUwF0A21/Q1GsoP3lTCfUADn+2YnUTbIjnXWwZGi2bhpba/mW1D0utP3Fm94A6MYDZaACfYQCGW88HM37VvQ2oUZabbMFa/Mai9nuX/9y70tYwgHnb9ILeaFxed9PxSP2iLoSPIQSAckkUQMUORJhFE+iDL65xSfpOplOAbprP2dJteSU5fIS22Zggn7b/X7WApYMFLB0t4Krfj9nyR2RLX3X24oG+xOgvuq43jo3Gww8Mi7Fc+x8S4MQjXno9ov+c8HJLVT9q+1u1rZX5SyvTXPXleDdxue6TOCEQlwRDXXtAJYqpByLBpcJcTfpea2HvOx7h23NDGTP9as106KjHC007G+vHjijXr7sMq63DLXAcU55CRhKHoCPBFaaclPDQX8ffYJVuDPSBGbRiK05HbKpIDlNcdCADkhdqr4FjKguG9wHggvdc9fXF8HGujFhCDe14x0wjwY3bZTNxmkU5QyiXHnCzshb3TCodSXBIcKqgZKLQvXNcppQHN5wfjjAd+gIcKbolnd396fkcL+j+pBjhEDunEkZ2K3d5FdkpQ95EcKUPTsMRjl00AKOcOH9tMTq1UbwdQELB4t9nWa4KtXw5OWAt1huNVRZURf9jNaPXjVQ02etlS7iqNaxiKNWqOQ7Td70CDttnKHbnfMMawd4ml/Vq6vnaAABmNOXau2QAIsIVKXtDa19pBnQ386mWLME5ZfsAVGwxAuVequou/BujfP0DR3/r/78LrqdXW9uipqKvgJrABXq0tthbNjpRfF4pcMfBhtUBiRbdYtKVK3v5XtYhxzt4yDDtqu5jgC9goaE6e+GFzO1P98R2v5CJaG1Rk9Yn7ypZ28+1hDFaSCo7Vkd5RkqqTqzn+NzAzT6wP/eXCJlriZB9pEzprRH+A4G80EAyHwAA';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var appBar = _7a468({defaultClassName:'_1yk3a452 dhthxq4 dhthxq0 dhthxqh _1yk3a451',variantClassNames:{activityEnterStyle:{slideInLeft:'_1yk3a453'},enterStyle:{cover:'_1yk3a454'},border:{true:'_1yk3a455'},modalPresentationStyle:{fullScreen:'_1yk3a456'}},defaultVariants:{},compoundVariants:[[{activityEnterStyle:'slideInLeft',enterStyle:'cover'},'_1yk3a457']]});\nexport var backButton = '_1yk3a45b dhthxq9 dhthxq7 dhthxqb dhthxqf dhthxqi';\nexport var center = 'dhthxq9 dhthxq7 dhthxq8 _1yk3a450';\nexport var centerMain = '_1yk3a45e';\nexport var centerMainEdge = '_1yk3a45f dhthxqi dhthxq4 dhthxq2 dhthxqf';\nexport var centerText = '_1yk3a45g dhthxqc dhthxqd dhthxq0';\nexport var closeButton = '_1yk3a45b dhthxq9 dhthxq7 dhthxqb dhthxqf dhthxqi';\nexport var container = '_1yk3a459 dhthxqa dhthxq7 _1yk3a451';\nexport var left = '_1yk3a45a dhthxq9 dhthxq7 dhthxq1 _1yk3a450';\nexport var right = '_1yk3a45h dhthxq9 dhthxq7 dhthxq1 dhthxq5 _1yk3a450';\nexport var safeArea = '_1yk3a458';", "import 'src/basicUIPlugin.css.ts.vanilla.css?source=#H4sIAAAAAAAAA+2YUYvUMBDH3/dTBERQMKWprgc57pOIyLSZtnPXZHrp1FsUv7usuOfLrd10F065QB/60F/yHzqTH6T4Yu4/utvqtlTfN0ppPQk0d+3AD3oc5o6CrmGiRs+ka2juushzcLrhgaNVr9q2vT6dIg8dWjWHCWUJc+Sf2DB2Nbwp36nfT2G2b5cWkghhIiEO2s0R9i9WldMS1rAfZ0G3lodx1DVEXXN0GI/lL68W8z+10IVCTfQNrTLj7lSuR+p6sep9sY3o06hzM3sKK/enhsNjx1amMtWHdPTc+II7WRniD3r2f181wcfoC6ZJORmO4efG4a8Y9x9Y1ZNzGFIac4IWNUQETfsStPBoVXn6YDUcBChg1CM4R6GzyqR0uKDXHYxpVMtBDmdAYaqkkSbR0/CryKRRHCjg4xSbYrsoDxZhr6ceUQ6nVgRH83RaqZ4dDOtBDzv9QE56q0xZvr7e/NgUB1+a7MuX6cuy2KYbsyqunleZiQGyM7MzszP/PWcGjh6G/0+bNjLLJwcCf1NPjx5vmnnEKBT4czZsNmw2bDZsNmw2bDbs5QwLwUUml/36Qv2ab3yzW7Nbs1vzje8JYv0JCopajSEdAAA=';\nimport 'src/styles/f.css.ts.vanilla.css?source=LmRodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmRodGh4cTIgewogIHRvcDogMDsKfQouZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmRodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmRodGh4cTggewogIGZsZXg6IDE7Cn0KLmRodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmRodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmRodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmRodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmRodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmRodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmRodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/components/AppScreen.css.ts.vanilla.css?source=#H4sIAAAAAAAAA9WU3Y6bMBCF7/MUc1MJVByZ7Gbbem/6JtWAHeIANmtMflrtu1cY2ACB/Kx601yhjM/nM8djL3+FPNs8Pz1/gz8LgAjjNDG6UpzEOtOGwR6NR0hpMU43mT6QIqsSqUiEpYxJJQmXORmr/NfF+2LZkb9/kjxBHWBkjol4COMUQ3M/nDlrUJXSSq1Y873RJm/J3UrqB6ALjKU9XVQGSH5G1piWmKEVT9wLKf0SAA1gJNo5UctnQOtefxOpuDiy0XZhp3x74bvVjsIIshUy2VoGITUiH2bGIJNKoCGJQS6Fst6njjcAk0To0aaRuhdnaQHu92EHe86CcTHqFZvaIIBwChhfA/LrQDqIO3XFmYBXw4BDGMnuO9rWn3N4AepFkwZXV/ZySruFV0zQ4XBdjEg6MWfzKDdC8w3RuxuitxvqH/297TWYzOnP57e+/ShgUZAIDWnuiv/6D96AAHI09SZWFw/uT857E14ZrD+cpwI5lyqpkeMhXc8OaX5jPto5nR0RdU2/nn6+dHOEe2FcuycGZWx0ltVNkIOIUmnJR7UpSZUwsLqKt0MSY52gWRehcXAuyyLDEwOllRhIClc/pz8V1flZjDGL3V0FcrFu2NSb4x4kt1sG4XK1bt/TmWfjaahuXPfsPDSN827vxjg7P8uqKLSxJXjtMDHI8ejR4uj7gIr3/o+1Ki0q65W4EQSNQCJVKWydqe+7dkZ3bnTrnNkHXcJX5+deVS4VmbIX3HDvQn1/MBCh9v9nFrPGuxj+Ao0vfk33CQAA';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var allTransitions = '_1dlf4349';\nexport var appScreen = _7a468({defaultClassName:'dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 dhthxqc',variantClassNames:{transitionState:{'enter-active':'_1dlf434a','enter-done':'_1dlf434b','exit-active':'_1dlf434c','exit-done':'_1dlf434d'}},defaultVariants:{},compoundVariants:[]});\nexport var background = '_1dlf4348';\nexport var dim = '_1dlf434j dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 _1dlf4347 _1dlf4349';\nexport var edge = _7a468({defaultClassName:'_1dlf434q dhthxq4 dhthxq2 dhthxq3 dhthxq1',variantClassNames:{hasAppBar:{true:'_1dlf434r'}},defaultVariants:{},compoundVariants:[]});\nexport var enterActive = '_1dlf434a';\nexport var enterDone = '_1dlf434b';\nexport var exitActive = '_1dlf434c';\nexport var exitDone = '_1dlf434d';\nexport var paper = _7a468({defaultClassName:'_1dlf434k dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 _1dlf4348 _1dlf4349',variantClassNames:{hasAppBar:{true:'_1dlf434l dhthxqg'},modalPresentationStyle:{fullScreen:'_1dlf434m'},activityEnterStyle:{slideInLeft:'_1dlf434n'}},defaultVariants:{},compoundVariants:[]});\nexport var paperContent = _7a468({defaultClassName:'_1dlf434o dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3',variantClassNames:{hasAppBar:{true:'_1dlf434p'}},defaultVariants:{},compoundVariants:[]});\nexport var vars = {transitionDuration:'var(--_1dlf4340)',zIndexes:{dim:'var(--_1dlf4341)',paper:'var(--_1dlf4342)',edge:'var(--_1dlf4343)',appBar:'var(--_1dlf4344)'},appBar:{topMargin:'var(--_1dlf4345)',center:{mainWidth:'var(--_1dlf4346)'}}};", "import { useActions, useStack } from \"@stackflow/react\";\nimport {\n useActivityDataAttributes,\n useLazy,\n useMounted,\n useNullableActivity,\n usePreventTouchDuringTransition,\n useStyleEffectHide,\n useStyleEffectOffset,\n useStyleEffectSwipeBack,\n useZIndexBase,\n} from \"@stackflow/react-ui-core\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport clsx from \"clsx\";\nimport { createContext, useContext, useMemo, useRef } from \"react\";\nimport { useGlobalOptions } from \"../basicUIPlugin\";\nimport type { GlobalVars } from \"../basicUIPlugin.css\";\nimport { globalVars } from \"../basicUIPlugin.css\";\nimport type { PropOf } from \"../utils\";\nimport { compactMap } from \"../utils\";\nimport AppBar from \"./AppBar\";\nimport * as css from \"./AppScreen.css\";\n\nexport const OFFSET_PX_ANDROID = 32;\nexport const OFFSET_PX_CUPERTINO = 80;\n\nexport type AppScreenContext = {\n scroll: (args: { top: number }) => void;\n zIndices: {\n dim: number;\n paper: number;\n edge: number;\n appBar: number;\n };\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\" | \"backgroundImage\" | \"dimBackgroundColor\">\n> & {\n appBar?: Omit<\n PropOf<typeof AppBar>,\n \"theme\" | \"modalPresentationStyle\" | \"ref\" | \"key\"\n >;\n preventSwipeBack?: boolean;\n CUPERTINO_ONLY_modalPresentationStyle?: \"fullScreen\";\n ANDROID_ONLY_activityEnterStyle?: \"slideInLeft\";\n className?: string;\n children: React.ReactNode;\n};\nconst AppScreen: React.FC<AppScreenProps> = ({\n backgroundColor,\n backgroundImage,\n dimBackgroundColor,\n appBar,\n preventSwipeBack,\n CUPERTINO_ONLY_modalPresentationStyle,\n ANDROID_ONLY_activityEnterStyle,\n className,\n children,\n}) => {\n const globalOptions = useGlobalOptions();\n const activity = useNullableActivity();\n const activityDataAttributes = useActivityDataAttributes();\n const mounted = useMounted();\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 const paperContentRef = useRef<HTMLDivElement>(null);\n\n const modalPresentationStyle =\n globalOptions.theme === \"cupertino\"\n ? CUPERTINO_ONLY_modalPresentationStyle\n : undefined;\n const activityEnterStyle =\n globalOptions.theme === \"android\"\n ? ANDROID_ONLY_activityEnterStyle\n : undefined;\n\n const isSwipeBackPrevented =\n preventSwipeBack || modalPresentationStyle === \"fullScreen\";\n\n const hasAppBar = !!appBar;\n\n const zIndexBase = useZIndexBase();\n\n let zIndexDim: number;\n let zIndexPaper: number;\n let zIndexEdge: number;\n let zIndexAppBar: number;\n\n switch (globalOptions.theme) {\n case \"cupertino\": {\n zIndexDim =\n zIndexBase + (modalPresentationStyle === \"fullScreen\" ? 2 : 0);\n zIndexPaper =\n zIndexBase +\n (hasAppBar && modalPresentationStyle !== \"fullScreen\"\n ? appBar.enterStyle === \"cover\"\n ? 2\n : 1\n : 3);\n zIndexEdge = zIndexBase + 4;\n zIndexAppBar = zIndexBase + 7;\n break;\n }\n default: {\n zIndexDim = zIndexBase;\n zIndexPaper =\n zIndexBase +\n (activityEnterStyle === \"slideInLeft\" && appBar?.enterStyle !== \"cover\"\n ? 0\n : 2);\n zIndexEdge = zIndexBase + 4;\n zIndexAppBar =\n zIndexBase + (activityEnterStyle === \"slideInLeft\" ? 6 : 4);\n break;\n }\n }\n\n const transitionState = activity?.transitionState ?? \"enter-done\";\n const lazyTransitionState = useLazy(transitionState);\n\n useStyleEffectHide({\n refs: [appScreenRef],\n });\n useStyleEffectOffset({\n refs:\n (globalOptions.theme === \"cupertino\" ||\n activityEnterStyle === \"slideInLeft\") &&\n appBar?.enterStyle !== \"cover\"\n ? [paperRef]\n : [paperRef, appBarRef],\n offsetStyles:\n globalOptions.theme === \"cupertino\"\n ? {\n transform: `translate3d(-${OFFSET_PX_CUPERTINO / 16}rem, 0, 0)`,\n opacity: \"1\",\n }\n : activityEnterStyle === \"slideInLeft\"\n ? {\n transform: \"translate3d(-50%, 0, 0)\",\n opacity: \"0\",\n }\n : {\n transform: `translate3d(0, -${OFFSET_PX_ANDROID / 16}rem, 0)`,\n opacity: \"1\",\n },\n transitionDuration: globalVars.computedTransitionDuration,\n hasEffect: modalPresentationStyle !== \"fullScreen\",\n });\n useStyleEffectSwipeBack({\n dimRef,\n edgeRef,\n paperRef,\n appBarRef,\n offset: OFFSET_PX_CUPERTINO,\n transitionDuration: globalVars.transitionDuration,\n moveAppBarTogether: appBar?.enterStyle === \"cover\",\n preventSwipeBack:\n isSwipeBackPrevented || globalOptions.theme !== \"cupertino\",\n getActivityTransitionState() {\n const $paper = paperRef.current;\n const $appScreen = $paper?.parentElement;\n\n if (!$appScreen) {\n return null;\n }\n\n if ($appScreen.classList.contains(css.enterActive)) {\n return \"enter-active\";\n }\n if ($appScreen.classList.contains(css.enterDone)) {\n return \"enter-done\";\n }\n if ($appScreen.classList.contains(css.exitActive)) {\n return \"exit-active\";\n }\n if ($appScreen.classList.contains(css.exitDone)) {\n return \"exit-done\";\n }\n\n return null;\n },\n onSwipeEnd({ swiped }) {\n if (swiped) {\n pop();\n }\n },\n });\n\n const onAppBarTopClick: React.MouseEventHandler = (e) => {\n appBar?.onTopClick?.(e);\n\n if (!e.defaultPrevented) {\n paperContentRef.current?.scroll({\n top: 0,\n behavior: \"smooth\",\n });\n }\n };\n\n usePreventTouchDuringTransition({\n ref: appScreenRef,\n });\n\n return (\n <Context.Provider\n value={useMemo(\n () => ({\n scroll({ top }) {\n paperContentRef?.current?.scroll({\n top,\n behavior: \"smooth\",\n });\n },\n zIndices: {\n dim: zIndexDim,\n paper: zIndexPaper,\n edge: zIndexEdge,\n appBar: zIndexAppBar,\n },\n }),\n [paperContentRef, zIndexDim, zIndexPaper, zIndexEdge, zIndexAppBar],\n )}\n >\n <div\n ref={appScreenRef}\n className={clsx(\n css.appScreen({\n transitionState:\n transitionState === \"enter-done\" ||\n transitionState === \"exit-done\"\n ? transitionState\n : lazyTransitionState,\n }),\n className,\n )}\n style={assignInlineVars(\n compactMap({\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.backgroundImage]: backgroundImage,\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 ? globalVars.computedTransitionDuration\n : \"0ms\",\n }),\n )}\n data-stackflow-component-name=\"AppScreen\"\n {...activityDataAttributes}\n >\n {activityEnterStyle !== \"slideInLeft\" && (\n <div\n ref={dimRef}\n className={css.dim}\n data-part=\"dim\"\n {...activityDataAttributes}\n />\n )}\n {appBar && (\n <AppBar\n {...appBar}\n ref={appBarRef}\n modalPresentationStyle={modalPresentationStyle}\n activityEnterStyle={activityEnterStyle}\n onTopClick={onAppBarTopClick}\n />\n )}\n <div\n key={activity?.id}\n ref={paperRef}\n className={css.paper({\n hasAppBar,\n modalPresentationStyle,\n activityEnterStyle,\n })}\n data-part=\"paper\"\n {...activityDataAttributes}\n >\n <div\n ref={paperContentRef}\n className={css.paperContent({ hasAppBar })}\n >\n {children}\n </div>\n </div>\n {!activity?.isRoot &&\n globalOptions.theme === \"cupertino\" &&\n !isSwipeBackPrevented && (\n <div\n ref={edgeRef}\n className={css.edge({ hasAppBar })}\n data-part=\"edge\"\n {...activityDataAttributes}\n />\n )}\n </div>\n </Context.Provider>\n );\n};\n\nexport default AppScreen;\n", "import { useActions } from \"@stackflow/react\";\nimport {\n useLazy,\n useNullableActivity,\n usePreventTouchDuringTransition,\n useStyleEffect,\n useZIndexBase,\n} from \"@stackflow/react-ui-core\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport clsx from \"clsx\";\nimport { useRef } from \"react\";\nimport type { GlobalVars } from \"../basicUIPlugin.css\";\nimport { globalVars } from \"../basicUIPlugin.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./BottomSheet.css\";\n\nexport type BottomSheetProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"backgroundImage\" | \"dimBackgroundColor\">\n> &\n Partial<GlobalVars[\"bottomSheet\"]> & {\n paperRef?: React.Ref<HTMLDivElement>;\n onOutsideClick?: React.MouseEventHandler;\n children: React.ReactNode;\n className?: string;\n };\nconst BottomSheet: React.FC<BottomSheetProps> = ({\n borderRadius = \"1rem\",\n backgroundColor,\n backgroundImage,\n dimBackgroundColor,\n paperRef,\n onOutsideClick,\n children,\n className,\n}) => {\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const containerRef = useRef<HTMLDivElement>(null);\n const dimRef = useRef<HTMLDivElement>(null);\n\n useStyleEffect({\n styleName: \"hide\",\n refs: [containerRef],\n });\n useStyleEffect({\n styleName: \"offset\",\n refs: [dimRef],\n });\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [dimRef],\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 = useZIndexBase() + 3;\n const zIndexPaper = useZIndexBase() + 4;\n const transitionState = activity?.transitionState ?? \"enter-done\";\n\n usePreventTouchDuringTransition({\n ref: containerRef,\n });\n\n return (\n <div\n className={clsx(\n css.container({\n transitionState: useLazy(transitionState),\n }),\n className,\n )}\n ref={containerRef}\n style={assignInlineVars(\n compactMap({\n [globalVars.bottomSheet.borderRadius]: borderRadius,\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.backgroundImage]: backgroundImage,\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 ? globalVars.computedTransitionDuration\n : \"0ms\",\n }),\n )}\n data-stackflow-component-name=\"BottomSheet\"\n data-stackflow-activity-id={activity?.id}\n data-stackflow-activity-is-active={activity?.isActive}\n >\n <div className={css.dim} ref={dimRef} onClick={onDimClick}>\n <div className={css.paper} ref={paperRef} onClick={onPaperClick}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nBottomSheet.displayName = \"BottomSheet\";\n\nexport default BottomSheet;\n", "import 'src/basicUIPlugin.css.ts.vanilla.css?source=#H4sIAAAAAAAAA+2YUYvUMBDH3/dTBERQMKWprgc57pOIyLSZtnPXZHrp1FsUv7usuOfLrd10F065QB/60F/yHzqTH6T4Yu4/utvqtlTfN0ppPQk0d+3AD3oc5o6CrmGiRs+ka2juushzcLrhgaNVr9q2vT6dIg8dWjWHCWUJc+Sf2DB2Nbwp36nfT2G2b5cWkghhIiEO2s0R9i9WldMS1rAfZ0G3lodx1DVEXXN0GI/lL68W8z+10IVCTfQNrTLj7lSuR+p6sep9sY3o06hzM3sKK/enhsNjx1amMtWHdPTc+II7WRniD3r2f181wcfoC6ZJORmO4efG4a8Y9x9Y1ZNzGFIac4IWNUQETfsStPBoVXn6YDUcBChg1CM4R6GzyqR0uKDXHYxpVMtBDmdAYaqkkSbR0/CryKRRHCjg4xSbYrsoDxZhr6ceUQ6nVgRH83RaqZ4dDOtBDzv9QE56q0xZvr7e/NgUB1+a7MuX6cuy2KYbsyqunleZiQGyM7MzszP/PWcGjh6G/0+bNjLLJwcCf1NPjx5vmnnEKBT4czZsNmw2bDZsNmw2bDbs5QwLwUUml/36Qv2ab3yzW7Nbs1vzje8JYv0JCopajSEdAAA=';\nimport 'src/styles/f.css.ts.vanilla.css?source=LmRodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmRodGh4cTIgewogIHRvcDogMDsKfQouZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmRodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmRodGh4cTggewogIGZsZXg6IDE7Cn0KLmRodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmRodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmRodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmRodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmRodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmRodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmRodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/components/BottomSheet.css.ts.vanilla.css?source=Ll8xaHQzOGgwMyB7CiAgdHJhbnNpdGlvbjogdmFyKC0tXzFodDM4aDAwKTsKfQouXzFodDM4aDA3IHsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApOwp9Ci5fMWh0MzhoMGQgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN0YWNrZmxvdy1wbHVnaW4tYmFzaWMtdWktZGltLWJhY2tncm91bmQtY29sb3IpOwogIHotaW5kZXg6IHZhcigtLV8xaHQzOGgwMSk7CiAgb3BhY2l0eTogMDsKfQouXzFodDM4aDA0IC5fMWh0MzhoMGQsIC5fMWh0MzhoMDUgLl8xaHQzOGgwZCB7CiAgb3BhY2l0eTogMTsKfQouXzFodDM4aDA2IC5fMWh0MzhoMGQsIC5fMWh0MzhoMDcgLl8xaHQzOGgwZCB7CiAgb3BhY2l0eTogMDsKfQouXzFodDM4aDBlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdGFja2Zsb3ctcGx1Z2luLWJhc2ljLXVpLWJhY2tncm91bmQtY29sb3IpOwogIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLXN0YWNrZmxvdy1wbHVnaW4tYmFzaWMtdWktYmFja2dyb3VuZC1pbWFnZSk7CiAgd2lkdGg6IDEwMCU7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc3RhY2tmbG93LXBsdWdpbi1iYXNpYy11aS1ib3R0b20tc2hlZXQtYm9yZGVyLXJhZGl1cykgdmFyKC0tc3RhY2tmbG93LXBsdWdpbi1iYXNpYy11aS1ib3R0b20tc2hlZXQtYm9yZGVyLXJhZGl1cykgMCAwOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7CiAgb3BhY2l0eTogMDsKfQouXzFodDM4aDA0IC5fMWh0MzhoMGUsIC5fMWh0MzhoMDUgLl8xaHQzOGgwZSB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICBvcGFjaXR5OiAxOwp9Ci5fMWh0MzhoMDYgLl8xaHQzOGgwZSwgLl8xaHQzOGgwNyAuXzFodDM4aDBlIHsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApICFpbXBvcnRhbnQ7CiAgb3BhY2l0eTogMCAhaW1wb3J0YW50Owp9';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 dhthxqc',variantClassNames:{transitionState:{'enter-active':'_1ht38h04','enter-done':'_1ht38h05','exit-active':'_1ht38h06','exit-done':'_1ht38h07'}},defaultVariants:{},compoundVariants:[]});\nexport var dim = '_1ht38h0d dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 dhthxqc dhthxqa dhthxq7 _1ht38h03';\nexport var enterActive = '_1ht38h04';\nexport var enterDone = '_1ht38h05';\nexport var exitActive = '_1ht38h06';\nexport var exitDone = '_1ht38h07';\nexport var paper = '_1ht38h0e dhthxqc _1ht38h03';\nexport var vars = {transitionDuration:'var(--_1ht38h00)',zIndexes:{dim:'var(--_1ht38h01)',paper:'var(--_1ht38h02)'}};", "import { useActions } from \"@stackflow/react\";\nimport {\n useLazy,\n useNullableActivity,\n usePreventTouchDuringTransition,\n useStyleEffect,\n useZIndexBase,\n} from \"@stackflow/react-ui-core\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport clsx from \"clsx\";\nimport { useRef } from \"react\";\nimport type { GlobalVars } from \"../basicUIPlugin.css\";\nimport { globalVars } from \"../basicUIPlugin.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./Modal.css\";\n\nexport type ModalProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"backgroundImage\" | \"dimBackgroundColor\">\n> &\n Partial<GlobalVars[\"modal\"]> & {\n onOutsideClick?: React.MouseEventHandler;\n children: React.ReactNode;\n className?: string;\n };\nconst Modal: React.FC<ModalProps> = ({\n backgroundColor,\n backgroundImage,\n dimBackgroundColor,\n borderRadius = \"1rem\",\n maxWidth,\n onOutsideClick,\n children,\n className,\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 = useZIndexBase() + 3;\n const zIndexPaper = useZIndexBase() + 4;\n const transitionState = activity?.transitionState ?? \"enter-done\";\n\n usePreventTouchDuringTransition({\n ref: containerRef,\n });\n\n return (\n <div\n className={clsx(\n css.container({\n transitionState: useLazy(transitionState),\n }),\n className,\n )}\n ref={containerRef}\n style={assignInlineVars(\n compactMap({\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.backgroundImage]: backgroundImage,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [globalVars.modal.borderRadius]: borderRadius,\n [globalVars.modal.maxWidth]: maxWidth,\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 ? globalVars.computedTransitionDuration\n : \"0ms\",\n }),\n )}\n data-stackflow-component-name=\"Modal\"\n data-stackflow-activity-id={activity?.id}\n data-stackflow-activity-is-active={activity?.isActive}\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/basicUIPlugin.css.ts.vanilla.css?source=#H4sIAAAAAAAAA+2YUYvUMBDH3/dTBERQMKWprgc57pOIyLSZtnPXZHrp1FsUv7usuOfLrd10F065QB/60F/yHzqTH6T4Yu4/utvqtlTfN0ppPQk0d+3AD3oc5o6CrmGiRs+ka2juushzcLrhgaNVr9q2vT6dIg8dWjWHCWUJc+Sf2DB2Nbwp36nfT2G2b5cWkghhIiEO2s0R9i9WldMS1rAfZ0G3lodx1DVEXXN0GI/lL68W8z+10IVCTfQNrTLj7lSuR+p6sep9sY3o06hzM3sKK/enhsNjx1amMtWHdPTc+II7WRniD3r2f181wcfoC6ZJORmO4efG4a8Y9x9Y1ZNzGFIac4IWNUQETfsStPBoVXn6YDUcBChg1CM4R6GzyqR0uKDXHYxpVMtBDmdAYaqkkSbR0/CryKRRHCjg4xSbYrsoDxZhr6ceUQ6nVgRH83RaqZ4dDOtBDzv9QE56q0xZvr7e/NgUB1+a7MuX6cuy2KYbsyqunleZiQGyM7MzszP/PWcGjh6G/0+bNjLLJwcCf1NPjx5vmnnEKBT4czZsNmw2bDZsNmw2bDbs5QwLwUUml/36Qv2ab3yzW7Nbs1vzje8JYv0JCopajSEdAAA=';\nimport 'src/styles/f.css.ts.vanilla.css?source=LmRodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmRodGh4cTIgewogIHRvcDogMDsKfQouZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmRodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmRodGh4cTggewogIGZsZXg6IDE7Cn0KLmRodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmRodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmRodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmRodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmRodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmRodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmRodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/components/Modal.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51TQW6DMBC884q9VAIJWwZKkpLHVIvtECuAIwOFpurfqxhCIQI1zW3tnRnP2mP6HutLtuMRfDkAtcGyUrXSZQIfaFxChjbz9s63Q4fV9hd80KZI+jLHWkbCDRh78YH5MOcIy0mRnzKjm1IQrnNtbsdUNfLTIdctOedNpkqSYqU4aRQRqiD3LG/vAFyIKoXs7owGtqfPyFX9mQCbWniF0Yw/ljHMHY7UYErdLFG3a9TZqfLJwReHnmyqAjP5LxnLsDKtEvUxgetTXZcFdmTY+kuu0AJzMhK8nm4yVSbAIKSxkYU1qjtSHVHoNgF27oDRTXjtQUijrS1MlqLL+qT4wGgQe76F0niE7lag4Q0aBT2Uvq2p9temjZCGGBSqqR4dckayMpPEVxxz6Qb0sbzJpbzJ+180aM4VV2Iol2K4prjk8gfbkIMO+QMAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 dhthxqc',variantClassNames:{transitionState:{'enter-active':'_5ozg8c4','enter-done':'_5ozg8c5','exit-active':'_5ozg8c6','exit-done':'_5ozg8c7'}},defaultVariants:{},compoundVariants:[]});\nexport var dim = '_5ozg8cd dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 dhthxqc dhthxq9 dhthxq7 dhthxqb _5ozg8c3';\nexport var enterActive = '_5ozg8c4';\nexport var enterDone = '_5ozg8c5';\nexport var exitActive = '_5ozg8c6';\nexport var exitDone = '_5ozg8c7';\nexport var paper = '_5ozg8ce dhthxqc _5ozg8c3';\nexport var vars = {transitionDuration:'var(--_5ozg8c0)',zIndexes:{dim:'var(--_5ozg8c1)',paper:'var(--_5ozg8c2)'}};"],
5
- "mappings": "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",
4
+ "sourcesContent": ["const 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 fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.7241 2.76052C17.105 3.16043 17.0896 3.79341 16.6897 4.17431L8.45 12.0222L16.6896 19.8689C17.0896 20.2498 17.105 20.8827 16.7242 21.2827C16.3433 21.6826 15.7103 21.6981 15.3104 21.3172L6.31037 12.7464C6.11218 12.5576 6.00001 12.2959 6 12.0222C5.99999 11.7486 6.11215 11.4868 6.31032 11.2981L15.3103 2.72608C15.7102 2.34518 16.3432 2.3606 16.7241 2.76052Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default IconBack;\n", "const 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=\"M20.7071 4.70711C21.0976 4.31658 21.0976 3.68342 20.7071 3.29289C20.3166 2.90237 19.6834 2.90237 19.2929 3.29289L12 10.5858L4.70711 3.29289C4.31658 2.90237 3.68342 2.90237 3.29289 3.29289C2.90237 3.68342 2.90237 4.31658 3.29289 4.70711L10.5858 12L3.29289 19.2929C2.90237 19.6834 2.90237 20.3166 3.29289 20.7071C3.68342 21.0976 4.31658 21.0976 4.70711 20.7071L12 13.4142L19.2929 20.7071C19.6834 21.0976 20.3166 21.0976 20.7071 20.7071C21.0976 20.3166 21.0976 19.6834 20.7071 19.2929L13.4142 12L20.7071 4.70711Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default IconClose;\n", "import type { StackflowReactPlugin } from \"@stackflow/react\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport { createContext, useContext } from \"react\";\n\nimport * as css from \"./basicUIPlugin.css\";\nimport type { RecursivePartial } from \"./utils\";\nimport { compact, compactMap, isBrowser } from \"./utils\";\n\ntype BasicUIPluginOptions = RecursivePartial<css.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:\n | BasicUIPluginOptions\n | ((args: { initialContext?: any }) => BasicUIPluginOptions),\n) => StackflowReactPlugin = (options) => () => ({\n key: \"basic-ui\",\n wrapStack({ stack, initialContext }) {\n const _options =\n typeof options === \"function\" ? options({ initialContext }) : options;\n\n return (\n <GlobalOptionsProvider\n value={{\n ..._options,\n theme: initialContext?.theme ?? _options.theme,\n }}\n >\n <div\n className={compact([\n css.stackWrapper({\n theme: initialContext?.theme ?? _options.theme,\n }),\n _options.rootClassName,\n ]).join(\" \")}\n style={assignInlineVars(\n compactMap({\n [css.globalVars.backgroundColor]: _options.backgroundColor,\n [css.globalVars.backgroundImage]: _options.backgroundImage,\n [css.globalVars.dimBackgroundColor]: _options.dimBackgroundColor,\n [css.globalVars.dimHeight]: _options.dimHeight,\n [css.globalVars.transitionDuration]:\n `${stack.transitionDuration}ms`,\n [css.globalVars.computedTransitionDuration]:\n stack.globalTransitionState === \"loading\"\n ? `${stack.transitionDuration}ms`\n : \"0ms\",\n [css.globalVars.defaultTransitionOffSet]:\n _options.defaultTransitionOffSet,\n [css.globalVars.appBar.borderColor]: _options.appBar?.borderColor,\n [css.globalVars.appBar.borderSize]: _options.appBar?.borderSize,\n [css.globalVars.appBar.height]: _options.appBar?.height,\n [css.globalVars.appBar.iconColor]: _options.appBar?.iconColor,\n [css.globalVars.appBar.textColor]: _options.appBar?.textColor,\n [css.globalVars.appBar.minSafeAreaInsetTop]:\n _options.appBar?.minSafeAreaInsetTop,\n [css.globalVars.bottomSheet.borderRadius]:\n _options.bottomSheet?.borderRadius,\n [css.globalVars.modal.borderRadius]: _options.modal?.borderRadius,\n [css.globalVars.appBar.containerPadding]:\n _options.appBar?.containerPadding,\n [css.globalVars.appBar.fontSize]: _options.appBar?.fontSize,\n [css.globalVars.appBar.lineHeight]: _options.appBar?.lineHeight,\n [css.globalVars.appBar.hitSlop]: _options.appBar?.hitSlop,\n [css.globalVars.appBar.itemGap]: _options.appBar?.itemGap,\n [css.globalVars.edge.width]: _options.edge?.width,\n })\n )}\n >\n {stack.render()}\n </div>\n </GlobalOptionsProvider>\n );\n },\n});\n", "import 'src/basicUIPlugin.css.ts.vanilla.css?source=#H4sIAAAAAAAAA+1YYYvUMBD9fr8iIIKCKW11PejhLxGRaTNt567J1GTqLYr/XVZv70RubdNV3GMD/dAPecmbSWbeY7KPxae35rq8ztXXC6W0DgLNTTvwrR6HqSOnawjU6Il0Dc1N53lyRjc8sK/Us7Ztr5ajyEKHlZpcQJmDGbKPHOi7Gl7kr9TdlxWbl0s26pG6XipV5B7tHEA8uEBC7LSZPOx+KpWHOVjDdpwEzVq8wRamQX6Fc9vqgEt5wzjqGryu2Rv0hzKWX85m7LGN1kb1216BvmClinG7FLe/udfZJiIFP1HHcrbkVp5PDbv7GimLsijfxEOPpS+4lZUkHqBH3/uqnnEI/RfZxPSiQ/Bj6fBn9LsFlerJGHQxDzNAixo8gqZdCFp4rFS+vLAadgLk0OsRjCHXVaqIeeGCVncwxqFadrLvAVlRRpU0iQ7DjyCjSnEghw/9P9vMyhWLsNWhR5R91/JgaArLQrVsYFgPtLDVt2Sk3zX9/PkcCE2H9+uzu4R+u8j2ol6chajP5+kkNX2e9tOR9DzbxIt6mV3+X1WPJJBkPcl6kvXTk3XH3sJwFspeeWZ5b0DgT2rXo8V3zTSiF3L8IZmAZAKSCUgmIJmAZAKSCTgrEwDOeCZzHhYgDfdPwASk4X4yAMkAJAOQhvv/Rv2/A99CNeuxHwAA';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var android = '_1q6dj2j0';\nexport var cupertino = '_1q6dj2j1';\nexport var globalVars = {backgroundColor:'var(--stackflow-plugin-basic-ui-background-color)',backgroundImage:'var(--stackflow-plugin-basic-ui-background-image)',dimBackgroundColor:'var(--stackflow-plugin-basic-ui-dim-background-color)',dimHeight:'var(--stackflow-plugin-basic-ui-dim-height)',transitionDuration:'var(--stackflow-plugin-basic-ui-transition-duration)',computedTransitionDuration:'var(--stackflow-plugin-basic-ui-computed-transition-duration)',defaultTransitionOffSet:'var(--stackflow-plugin-basic-ui-default-transition-off-set)',appBar:{borderColor:'var(--stackflow-plugin-basic-ui-app-bar-border-color)',borderColorTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-border-color-transition-duration)',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)',iconColorTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-icon-color-transition-duration)',textColor:'var(--stackflow-plugin-basic-ui-app-bar-text-color)',textColorTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-text-color-transition-duration)',backgroundColor:'var(--stackflow-plugin-basic-ui-app-bar-background-color)',backgroundColorTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-background-color-transition-duration)',backgroundImage:'var(--stackflow-plugin-basic-ui-app-bar-background-image)',backgroundImageTransitionDuration:'var(--stackflow-plugin-basic-ui-app-bar-background-image-transition-duration)',overflow:'var(--stackflow-plugin-basic-ui-app-bar-overflow)',minSafeAreaInsetTop:'var(--stackflow-plugin-basic-ui-app-bar-min-safe-area-inset-top)',containerPadding:'var(--stackflow-plugin-basic-ui-app-bar-container-padding)',itemGap:'var(--stackflow-plugin-basic-ui-app-bar-item-gap)',fontSize:'var(--stackflow-plugin-basic-ui-app-bar-font-size)',lineHeight:'var(--stackflow-plugin-basic-ui-app-bar-line-height)',hitSlop:'var(--stackflow-plugin-basic-ui-app-bar-hit-slop)'},bottomSheet:{borderRadius:'var(--stackflow-plugin-basic-ui-bottom-sheet-border-radius)'},modal:{borderRadius:'var(--stackflow-plugin-basic-ui-modal-border-radius)',maxWidth:'var(--stackflow-plugin-basic-ui-modal-max-width)'},edge:{width:'var(--stackflow-plugin-basic-ui-edge-width)'}};\nexport var stackWrapper = _7a468({defaultClassName:'_1q6dj2j2',variantClassNames:{theme:{android:'_1q6dj2j0',cupertino:'_1q6dj2j1'}},defaultVariants:{},compoundVariants:[]});", "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", "import { useActions } from \"@stackflow/react\";\nimport {\n useActivityDataAttributes,\n useAppBarTitleMaxWidth,\n useMounted,\n useNullableActivity,\n} from \"@stackflow/react-ui-core\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport clsx from \"clsx\";\nimport { forwardRef, useRef } from \"react\";\nimport { IconBack, IconClose } from \"../assets\";\nimport { useGlobalOptions } from \"../basicUIPlugin\";\nimport type { GlobalVars } from \"../basicUIPlugin.css\";\nimport { globalVars } from \"../basicUIPlugin.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./AppBar.css\";\nimport * as appScreenCss from \"./AppScreen.css\";\n\nexport type AppBarProps = Partial<\n Pick<\n GlobalVars[\"appBar\"],\n | \"borderColor\"\n | \"borderColorTransitionDuration\"\n | \"borderSize\"\n | \"height\"\n | \"heightTransitionDuration\"\n | \"overflow\"\n | \"iconColor\"\n | \"iconColorTransitionDuration\"\n | \"textColor\"\n | \"textColorTransitionDuration\"\n | \"backgroundColor\"\n | \"backgroundColorTransitionDuration\"\n | \"backgroundImage\"\n | \"backgroundImageTransitionDuration\"\n | \"minHeight\"\n | \"fontSize\"\n | \"lineHeight\"\n | \"hitSlop\"\n | \"containerPadding\"\n | \"itemGap\"\n >\n> & {\n title?: React.ReactNode;\n renderLeft?: () => React.ReactNode;\n renderRight?: () => 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 activityEnterStyle?: \"slideInLeft\";\n onTopClick?: (e: React.MouseEvent) => void;\n enterStyle?: \"cover\";\n className?: string;\n};\nconst AppBar = forwardRef<HTMLDivElement, AppBarProps>(\n (\n {\n title,\n renderLeft,\n renderRight,\n backButton,\n closeButton,\n closeButtonLocation = \"left\",\n border = true,\n modalPresentationStyle,\n activityEnterStyle,\n iconColor,\n iconColorTransitionDuration,\n textColor,\n textColorTransitionDuration,\n borderColor,\n borderColorTransitionDuration,\n borderSize,\n height,\n heightTransitionDuration,\n overflow,\n backgroundColor,\n backgroundColorTransitionDuration,\n backgroundImage,\n backgroundImageTransitionDuration,\n onTopClick,\n enterStyle,\n className,\n minHeight,\n fontSize,\n lineHeight,\n hitSlop,\n containerPadding,\n itemGap,\n },\n ref,\n ) => {\n const actions = useActions();\n const activity = useNullableActivity();\n const activityDataAttributes = useActivityDataAttributes();\n\n const mounted = useMounted();\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 } = useAppBarTitleMaxWidth({\n outerRef: ref,\n innerRef: centerRef,\n enable: globalOptions.theme === \"cupertino\",\n });\n\n const isUnderAppBarSlideTransition =\n ((globalOptions.theme === \"cupertino\" &&\n modalPresentationStyle !== \"fullScreen\") ||\n activityEnterStyle === \"slideInLeft\") &&\n enterStyle !== \"cover\";\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 aria-label=\"Go Back\"\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 (modalPresentationStyle === \"fullScreen\") {\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 return (\n <div\n ref={ref}\n className={clsx(\n css.appBar({\n border,\n modalPresentationStyle,\n activityEnterStyle,\n enterStyle,\n }),\n className,\n )}\n style={assignInlineVars(\n compactMap({\n [globalVars.appBar.iconColor]: iconColor,\n [globalVars.appBar.iconColorTransitionDuration]:\n iconColorTransitionDuration,\n [globalVars.appBar.textColor]: textColor,\n [globalVars.appBar.textColorTransitionDuration]:\n textColorTransitionDuration,\n [globalVars.appBar.borderColor]: borderColor,\n [globalVars.appBar.borderColorTransitionDuration]:\n borderColorTransitionDuration,\n [globalVars.appBar.borderSize]: borderSize,\n [globalVars.appBar.height]: height,\n [globalVars.appBar.heightTransitionDuration]:\n heightTransitionDuration,\n [globalVars.appBar.overflow]: overflow,\n [globalVars.appBar.backgroundColor]:\n backgroundColor ??\n (isUnderAppBarSlideTransition\n ? globalVars.backgroundColor\n : \"transparent\"),\n [globalVars.appBar.backgroundColorTransitionDuration]:\n backgroundColorTransitionDuration,\n [globalVars.appBar.backgroundImage]:\n backgroundImage ??\n (isUnderAppBarSlideTransition\n ? globalVars.appBar.backgroundImage\n : \"none\"),\n [globalVars.appBar.backgroundImageTransitionDuration]:\n backgroundImageTransitionDuration,\n [appScreenCss.vars.appBar.center.mainWidth]: `${maxWidth}px`,\n [globalVars.appBar.minHeight]: minHeight,\n [globalVars.appBar.containerPadding]: containerPadding,\n [globalVars.appBar.fontSize]: fontSize,\n [globalVars.appBar.hitSlop]: hitSlop,\n [globalVars.appBar.lineHeight]: lineHeight,\n [globalVars.appBar.itemGap]: itemGap,\n }),\n )}\n data-part=\"appBar\"\n {...activityDataAttributes}\n >\n <div className={css.safeArea} />\n <div className={css.container}>\n <div className={css.left}>\n {closeButtonLocation === \"left\" && renderCloseButton()}\n {renderBackButton()}\n {renderLeft?.()}\n </div>\n <div ref={centerRef} className={css.center}>\n <div className={css.centerMain}>\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 onClick={onTopClick}\n />\n </div>\n </div>\n <div className={css.right}>\n {renderRight?.()}\n {closeButtonLocation === \"right\" && renderCloseButton()}\n </div>\n </div>\n </div>\n );\n },\n);\n\nAppBar.displayName = \"AppBar\";\n\nexport default AppBar;\n", "import 'src/basicUIPlugin.css.ts.vanilla.css?source=#H4sIAAAAAAAAA+1YYYvUMBD9fr8iIIKCKW11PejhLxGRaTNt567J1GTqLYr/XVZv70RubdNV3GMD/dAPecmbSWbeY7KPxae35rq8ztXXC6W0DgLNTTvwrR6HqSOnawjU6Il0Dc1N53lyRjc8sK/Us7Ztr5ajyEKHlZpcQJmDGbKPHOi7Gl7kr9TdlxWbl0s26pG6XipV5B7tHEA8uEBC7LSZPOx+KpWHOVjDdpwEzVq8wRamQX6Fc9vqgEt5wzjqGryu2Rv0hzKWX85m7LGN1kb1216BvmClinG7FLe/udfZJiIFP1HHcrbkVp5PDbv7GimLsijfxEOPpS+4lZUkHqBH3/uqnnEI/RfZxPSiQ/Bj6fBn9LsFlerJGHQxDzNAixo8gqZdCFp4rFS+vLAadgLk0OsRjCHXVaqIeeGCVncwxqFadrLvAVlRRpU0iQ7DjyCjSnEghw/9P9vMyhWLsNWhR5R91/JgaArLQrVsYFgPtLDVt2Sk3zX9/PkcCE2H9+uzu4R+u8j2ol6chajP5+kkNX2e9tOR9DzbxIt6mV3+X1WPJJBkPcl6kvXTk3XH3sJwFspeeWZ5b0DgT2rXo8V3zTSiF3L8IZmAZAKSCUgmIJmAZAKSCTgrEwDOeCZzHhYgDfdPwASk4X4yAMkAJAOQhvv/Rv2/A99CNeuxHwAA';\nimport 'src/styles/f.css.ts.vanilla.css?source=LmRodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmRodGh4cTIgewogIHRvcDogMDsKfQouZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmRodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmRodGh4cTggewogIGZsZXg6IDE7Cn0KLmRodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmRodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmRodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmRodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmRodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmRodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmRodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/components/AppScreen.css.ts.vanilla.css?source=#H4sIAAAAAAAAA9WV23KbMBCG7/0UuukMTFFGjpMe6E3fpLMggWULiUjCh3by7h0EDghzsJPe1Fcer/bffz+tVw+/1lRkT5unr+jPCqEE0n2uVSUpTpVQOkYH0AHGxkK6z4Q64lJUOZc4AcNTXHFMeYGHWeGP1evq4aL87Z3KI6qeDC8gZ3fJuAzf3HdnzmqQhluuZNx8z5QuWuXLSRJGSJWQcnu+iniStJOsZVpFAZZtaLAm5FOESIQGSTuX1Gk+LzcGZYkT0HjLeL61vtzeybV2Y0RqdL8xl5Sd4oH7tePaiNx23X7Bly9097gjaFC7wx4jwSUDjXMNlDNpg3fNVIR0nkBAGno1QOdghdznrTr0jETDYNILNjEP03pMMJ0TpPOCxLsU4YIT1/Do81yjQdrEPC2iZBlUwuJuwrHKMmyYDXtj2LblGruq3yMqotmTPbzicnDGO/H/CFeDJEaGeFrqYyQmMJCbMZBlDP05uxVKI1P8ky0VoQJ0zcSq8s7t0qdGKw31F7c3SqCUy7yWHE708+REy4WpaJfk5GCoufzn8QVbNldwYNq1e46RSbUSom4CH1my5xa/RZsQl3mMrKrSra8Ux5eE5lwC2olTbkoB5xhJJZmX8uLiHf0xVN0OTkGk7qFA+Oqc31RT98ip3S6vbkZzht3ZcOY52PgVTIP6w5Z/mqoslbYGBe3IxKiAU0DKUxgikLT3e6qksSBtYCBjGDQDzKVhtiYXhs7Q4N0cvJzOzZ3PJ/rs/NyaVXCJx+xFC+4dtdc7gTB5+D9ZTBq/YPgLcEW/En8KAAA=';\nimport 'src/components/AppBar.css.ts.vanilla.css?source=#H4sIAAAAAAAAA+1ZTXOjOBC951fokio7hVIi/sgsvu1hb3uaH5ASIECxkFgkO3am9r9vWRgjYWyQ45nZAzk5oH5q9Wu9bonnN3+/nuH5AoEfDwDklMOM0DRTAdjicgKhVDhaJ0x8wIJtUsphiCWN4IZCXBQwxCVsbKarh38fnmtEXyOKLSkP5sPxagsb7UWjhThap6XY8BhGgolyOGrbcrqy4WiOU3ITnLbUcJ+Q8pjsapQ3P2bJfDaf65eqxFxSRQUPzpZx8ypggwrjTYkPP6be2bpuXtYlfLGDMsOx+BiOLMqYlFe8PrL9zzJ+f3n3QYv4QtSxw6EUbKPI+fgq2lHbVE+WiDIPqp8MKzKLJ32OxyTBG6ZMX0WSQEnU1APIA2hkdQCrXhN+gKTFGWoTJQocUbUPAFpdpg15vc5dZ26kzZE2W8zQ1KuJOntzoPcBHP9snqsh2KDcuzoyNEbWA60c8a/nyHGDdqfb7B5QZ2ozu6Y2PkKPo2zcQzaM0jAfHPHeUmFAjbTcJAvW5jc2td+5/edez1hDAObN0Ct8o3F73Y3HU+gXVdd9ciEAlEuiACp2IMIsmkAfPLn6JeknmU4Bumk9F/vEZU9y+AhtszFBfln975WApYMELB0loFfvx2z5X2RLV3f26oGuxOhuuvoHx8bg4ceMxdiu/YYEONOI106N6D4nvN7S1Y/c/lRuK2a+aWbqe8Uc73ovX8y7RYkTAnFJMNS9B1SimHogElwqzNWk67Um9r7zEb69NJWx0j+slQ6d9XR7amdj9dgRpf9uzZDayt0CxzHlKWQkcXA6ElxhykkJj/ba/xqrdItAF5gRVmz56YhNFclhiosWZEDyQu01cExlwfA+AFzwjnvFLh++HivDl1BDO15o00hw4yrbTJx6U84QyqUH3KSswb2QSqcgOCQ4VVAyUWjrHJcp5cEN54cTTCt8AY4U3ZJWdX9+uRQXdP+gGO4QO6cSRnYrd3oV2SmD3kRwpQ9OwxFOJhqAUU6cP+0YRo0XH0eQULD450mWK0NNvJwUsCLrg8YqCw5N/+NhRe8bqWiy19uWcFVxePChVKv6OEw/9Q44ls9Q7C7phjWDXSaX1W7q+LQBAGY05Vq7ZAAiwhUpO11rXukIaDPzqaYswTll+wAcosUIlHupSO6BPxnl679x9F3//5fgenmVtC2qUHQ1UBO4QI9Wib2l0Ini17UCd5xsWB+QaNKtSLrGyt6+13nI8Q4eM0yrqvsc4AksNFSrFl7J3O50T2z1C5mI1lZo0urkfUjW5tswYYwWksqW1FGekZKqM+k5PTdwsy/U5+4WIXNtEbKvtCmdPcJ/GPaZMZ8fAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var appBar = _7a468({defaultClassName:'_1yk3a452 dhthxq4 dhthxq0 dhthxqh _1yk3a451',variantClassNames:{activityEnterStyle:{slideInLeft:'_1yk3a453'},enterStyle:{cover:'_1yk3a454'},border:{true:'_1yk3a455'},modalPresentationStyle:{fullScreen:'_1yk3a456'}},defaultVariants:{},compoundVariants:[[{activityEnterStyle:'slideInLeft',enterStyle:'cover'},'_1yk3a457']]});\nexport var backButton = '_1yk3a45b dhthxq9 dhthxq7 dhthxqb dhthxqf dhthxqi';\nexport var center = 'dhthxq9 dhthxq7 dhthxq8 _1yk3a450';\nexport var centerMain = '_1yk3a45e';\nexport var centerMainEdge = '_1yk3a45f dhthxqi dhthxq4 dhthxq2 dhthxqf';\nexport var centerText = '_1yk3a45g dhthxqc dhthxqd dhthxq0';\nexport var closeButton = '_1yk3a45b dhthxq9 dhthxq7 dhthxqb dhthxqf dhthxqi';\nexport var container = '_1yk3a459 dhthxqa dhthxq7 _1yk3a451';\nexport var left = '_1yk3a45a dhthxq9 dhthxq7 dhthxq1 _1yk3a450';\nexport var right = '_1yk3a45h dhthxq9 dhthxq7 dhthxq1 dhthxq5 _1yk3a450';\nexport var safeArea = '_1yk3a458';", "import 'src/basicUIPlugin.css.ts.vanilla.css?source=#H4sIAAAAAAAAA+1YYYvUMBD9fr8iIIKCKW11PejhLxGRaTNt567J1GTqLYr/XVZv70RubdNV3GMD/dAPecmbSWbeY7KPxae35rq8ztXXC6W0DgLNTTvwrR6HqSOnawjU6Il0Dc1N53lyRjc8sK/Us7Ztr5ajyEKHlZpcQJmDGbKPHOi7Gl7kr9TdlxWbl0s26pG6XipV5B7tHEA8uEBC7LSZPOx+KpWHOVjDdpwEzVq8wRamQX6Fc9vqgEt5wzjqGryu2Rv0hzKWX85m7LGN1kb1216BvmClinG7FLe/udfZJiIFP1HHcrbkVp5PDbv7GimLsijfxEOPpS+4lZUkHqBH3/uqnnEI/RfZxPSiQ/Bj6fBn9LsFlerJGHQxDzNAixo8gqZdCFp4rFS+vLAadgLk0OsRjCHXVaqIeeGCVncwxqFadrLvAVlRRpU0iQ7DjyCjSnEghw/9P9vMyhWLsNWhR5R91/JgaArLQrVsYFgPtLDVt2Sk3zX9/PkcCE2H9+uzu4R+u8j2ol6chajP5+kkNX2e9tOR9DzbxIt6mV3+X1WPJJBkPcl6kvXTk3XH3sJwFspeeWZ5b0DgT2rXo8V3zTSiF3L8IZmAZAKSCUgmIJmAZAKSCTgrEwDOeCZzHhYgDfdPwASk4X4yAMkAJAOQhvv/Rv2/A99CNeuxHwAA';\nimport 'src/styles/f.css.ts.vanilla.css?source=LmRodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmRodGh4cTIgewogIHRvcDogMDsKfQouZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmRodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmRodGh4cTggewogIGZsZXg6IDE7Cn0KLmRodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmRodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmRodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmRodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmRodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmRodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmRodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/components/AppScreen.css.ts.vanilla.css?source=#H4sIAAAAAAAAA9WV23KbMBCG7/0UuukMTFFGjpMe6E3fpLMggWULiUjCh3by7h0EDghzsJPe1Fcer/bffz+tVw+/1lRkT5unr+jPCqEE0n2uVSUpTpVQOkYH0AHGxkK6z4Q64lJUOZc4AcNTXHFMeYGHWeGP1evq4aL87Z3KI6qeDC8gZ3fJuAzf3HdnzmqQhluuZNx8z5QuWuXLSRJGSJWQcnu+iniStJOsZVpFAZZtaLAm5FOESIQGSTuX1Gk+LzcGZYkT0HjLeL61vtzeybV2Y0RqdL8xl5Sd4oH7tePaiNx23X7Bly9097gjaFC7wx4jwSUDjXMNlDNpg3fNVIR0nkBAGno1QOdghdznrTr0jETDYNILNjEP03pMMJ0TpPOCxLsU4YIT1/Do81yjQdrEPC2iZBlUwuJuwrHKMmyYDXtj2LblGruq3yMqotmTPbzicnDGO/H/CFeDJEaGeFrqYyQmMJCbMZBlDP05uxVKI1P8ky0VoQJ0zcSq8s7t0qdGKw31F7c3SqCUy7yWHE708+REy4WpaJfk5GCoufzn8QVbNldwYNq1e46RSbUSom4CH1my5xa/RZsQl3mMrKrSra8Ux5eE5lwC2olTbkoB5xhJJZmX8uLiHf0xVN0OTkGk7qFA+Oqc31RT98ip3S6vbkZzht3ZcOY52PgVTIP6w5Z/mqoslbYGBe3IxKiAU0DKUxgikLT3e6qksSBtYCBjGDQDzKVhtiYXhs7Q4N0cvJzOzZ3PJ/rs/NyaVXCJx+xFC+4dtdc7gTB5+D9ZTBq/YPgLcEW/En8KAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var allTransitions = '_1dlf4349';\nexport var appScreen = _7a468({defaultClassName:'dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 dhthxqc',variantClassNames:{transitionState:{'enter-active':'_1dlf434a','enter-done':'_1dlf434b','exit-active':'_1dlf434c','exit-done':'_1dlf434d'},hasAppBar:{true:'_1dlf434j'}},defaultVariants:{},compoundVariants:[]});\nexport var background = '_1dlf4348';\nexport var dim = '_1dlf434k dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 _1dlf4347 _1dlf4349';\nexport var edge = _7a468({defaultClassName:'_1dlf434r dhthxq4 dhthxq2 dhthxq3 dhthxq1',variantClassNames:{hasAppBar:{true:'_1dlf434s'}},defaultVariants:{},compoundVariants:[]});\nexport var enterActive = '_1dlf434a';\nexport var enterDone = '_1dlf434b';\nexport var exitActive = '_1dlf434c';\nexport var exitDone = '_1dlf434d';\nexport var paper = _7a468({defaultClassName:'_1dlf434l dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 _1dlf4348 _1dlf4349',variantClassNames:{hasAppBar:{true:'_1dlf434m dhthxqg'},modalPresentationStyle:{fullScreen:'_1dlf434n'},activityEnterStyle:{slideInLeft:'_1dlf434o'}},defaultVariants:{},compoundVariants:[]});\nexport var paperContent = _7a468({defaultClassName:'_1dlf434p dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3',variantClassNames:{hasAppBar:{true:'_1dlf434q'}},defaultVariants:{},compoundVariants:[]});\nexport var vars = {transitionDuration:'var(--_1dlf4340)',zIndexes:{dim:'var(--_1dlf4341)',paper:'var(--_1dlf4342)',edge:'var(--_1dlf4343)',appBar:'var(--_1dlf4344)'},appBar:{topMargin:'var(--_1dlf4345)',center:{mainWidth:'var(--_1dlf4346)'}}};", "import { useActions, useStack } from \"@stackflow/react\";\nimport {\n useActivityDataAttributes,\n useLazy,\n useMounted,\n useNullableActivity,\n usePreventTouchDuringTransition,\n useStyleEffectHide,\n useStyleEffectOffset,\n useStyleEffectSwipeBack,\n useZIndexBase,\n} from \"@stackflow/react-ui-core\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport clsx from \"clsx\";\nimport { createContext, useContext, useMemo, useRef } from \"react\";\nimport { useGlobalOptions } from \"../basicUIPlugin\";\nimport type { GlobalVars } from \"../basicUIPlugin.css\";\nimport { globalVars } from \"../basicUIPlugin.css\";\nimport type { PropOf } from \"../utils\";\nimport { compactMap } from \"../utils\";\nimport AppBar from \"./AppBar\";\nimport * as css from \"./AppScreen.css\";\n\nexport const OFFSET_PX_ANDROID = 32;\nexport const OFFSET_PX_CUPERTINO = 80;\n\nexport type AppScreenContext = {\n scroll: (args: { top: number }) => void;\n zIndices: {\n dim: number;\n paper: number;\n edge: number;\n appBar: number;\n };\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\" | \"backgroundImage\" | \"dimBackgroundColor\">\n> & {\n appBar?: Omit<\n PropOf<typeof AppBar>,\n \"theme\" | \"modalPresentationStyle\" | \"ref\" | \"key\"\n >;\n preventSwipeBack?: boolean;\n CUPERTINO_ONLY_modalPresentationStyle?: \"fullScreen\";\n ANDROID_ONLY_activityEnterStyle?: \"slideInLeft\";\n className?: string;\n children: React.ReactNode;\n};\nconst AppScreen: React.FC<AppScreenProps> = ({\n backgroundColor,\n backgroundImage,\n dimBackgroundColor,\n appBar,\n preventSwipeBack,\n CUPERTINO_ONLY_modalPresentationStyle,\n ANDROID_ONLY_activityEnterStyle,\n className,\n children,\n}) => {\n const globalOptions = useGlobalOptions();\n const activity = useNullableActivity();\n const activityDataAttributes = useActivityDataAttributes();\n const mounted = useMounted();\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 const paperContentRef = useRef<HTMLDivElement>(null);\n\n const modalPresentationStyle =\n globalOptions.theme === \"cupertino\"\n ? CUPERTINO_ONLY_modalPresentationStyle\n : undefined;\n const activityEnterStyle =\n globalOptions.theme === \"android\"\n ? ANDROID_ONLY_activityEnterStyle\n : undefined;\n\n const isSwipeBackPrevented =\n preventSwipeBack || modalPresentationStyle === \"fullScreen\";\n\n const hasAppBar = !!appBar;\n\n const zIndexBase = useZIndexBase();\n\n let zIndexDim: number;\n let zIndexPaper: number;\n let zIndexEdge: number;\n let zIndexAppBar: number;\n\n switch (globalOptions.theme) {\n case \"cupertino\": {\n zIndexDim =\n zIndexBase + (modalPresentationStyle === \"fullScreen\" ? 2 : 0);\n zIndexPaper =\n zIndexBase +\n (hasAppBar && modalPresentationStyle !== \"fullScreen\"\n ? appBar.enterStyle === \"cover\"\n ? 2\n : 1\n : 3);\n zIndexEdge = zIndexBase + 4;\n zIndexAppBar = zIndexBase + 7;\n break;\n }\n default: {\n zIndexDim = zIndexBase;\n zIndexPaper =\n zIndexBase +\n (activityEnterStyle === \"slideInLeft\" && appBar?.enterStyle !== \"cover\"\n ? 0\n : 2);\n zIndexEdge = zIndexBase + 4;\n zIndexAppBar =\n zIndexBase + (activityEnterStyle === \"slideInLeft\" ? 6 : 4);\n break;\n }\n }\n\n const transitionState = activity?.transitionState ?? \"enter-done\";\n const lazyTransitionState = useLazy(transitionState);\n\n useStyleEffectHide({\n refs: [appScreenRef],\n });\n useStyleEffectOffset({\n refs:\n (globalOptions.theme === \"cupertino\" ||\n activityEnterStyle === \"slideInLeft\") &&\n appBar?.enterStyle !== \"cover\"\n ? [paperRef]\n : [paperRef, appBarRef],\n offsetStyles:\n globalOptions.theme === \"cupertino\"\n ? {\n transform: `translate3d(-${OFFSET_PX_CUPERTINO / 16}rem, 0, 0)`,\n opacity: \"1\",\n }\n : activityEnterStyle === \"slideInLeft\"\n ? {\n transform: \"translate3d(-50%, 0, 0)\",\n opacity: \"0\",\n }\n : {\n transform: `translate3d(0, -${OFFSET_PX_ANDROID / 16}rem, 0)`,\n opacity: \"1\",\n },\n transitionDuration: globalVars.computedTransitionDuration,\n hasEffect: modalPresentationStyle !== \"fullScreen\",\n });\n useStyleEffectSwipeBack({\n dimRef,\n edgeRef,\n paperRef,\n appBarRef,\n offset: OFFSET_PX_CUPERTINO,\n transitionDuration: globalVars.transitionDuration,\n moveAppBarTogether: appBar?.enterStyle === \"cover\",\n preventSwipeBack:\n isSwipeBackPrevented || globalOptions.theme !== \"cupertino\",\n getActivityTransitionState() {\n const $paper = paperRef.current;\n const $appScreen = $paper?.parentElement;\n\n if (!$appScreen) {\n return null;\n }\n\n if ($appScreen.classList.contains(css.enterActive)) {\n return \"enter-active\";\n }\n if ($appScreen.classList.contains(css.enterDone)) {\n return \"enter-done\";\n }\n if ($appScreen.classList.contains(css.exitActive)) {\n return \"exit-active\";\n }\n if ($appScreen.classList.contains(css.exitDone)) {\n return \"exit-done\";\n }\n\n return null;\n },\n onSwipeEnd({ swiped }) {\n if (swiped) {\n pop();\n }\n },\n });\n\n const onAppBarTopClick: React.MouseEventHandler = (e) => {\n appBar?.onTopClick?.(e);\n\n if (!e.defaultPrevented) {\n paperContentRef.current?.scroll({\n top: 0,\n behavior: \"smooth\",\n });\n }\n };\n\n usePreventTouchDuringTransition({\n ref: appScreenRef,\n });\n\n return (\n <Context.Provider\n value={useMemo(\n () => ({\n scroll({ top }) {\n paperContentRef?.current?.scroll({\n top,\n behavior: \"smooth\",\n });\n },\n zIndices: {\n dim: zIndexDim,\n paper: zIndexPaper,\n edge: zIndexEdge,\n appBar: zIndexAppBar,\n },\n }),\n [paperContentRef, zIndexDim, zIndexPaper, zIndexEdge, zIndexAppBar],\n )}\n >\n <div\n ref={appScreenRef}\n className={clsx(\n css.appScreen({\n hasAppBar,\n transitionState:\n transitionState === \"enter-done\" ||\n transitionState === \"exit-done\"\n ? transitionState\n : lazyTransitionState,\n }),\n className,\n )}\n style={assignInlineVars(\n compactMap({\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.backgroundImage]: backgroundImage,\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 ? globalVars.computedTransitionDuration\n : \"0ms\",\n }),\n )}\n data-stackflow-component-name=\"AppScreen\"\n {...activityDataAttributes}\n >\n {activityEnterStyle !== \"slideInLeft\" && (\n <div\n ref={dimRef}\n className={css.dim}\n data-part=\"dim\"\n {...activityDataAttributes}\n />\n )}\n {appBar && (\n <AppBar\n {...appBar}\n ref={appBarRef}\n modalPresentationStyle={modalPresentationStyle}\n activityEnterStyle={activityEnterStyle}\n onTopClick={onAppBarTopClick}\n />\n )}\n <div\n key={activity?.id}\n ref={paperRef}\n className={css.paper({\n hasAppBar,\n modalPresentationStyle,\n activityEnterStyle,\n })}\n data-part=\"paper\"\n {...activityDataAttributes}\n >\n <div\n ref={paperContentRef}\n className={css.paperContent({ hasAppBar })}\n >\n {children}\n </div>\n </div>\n {!activity?.isRoot &&\n globalOptions.theme === \"cupertino\" &&\n !isSwipeBackPrevented && (\n <div\n ref={edgeRef}\n className={css.edge({ hasAppBar })}\n data-part=\"edge\"\n {...activityDataAttributes}\n />\n )}\n </div>\n </Context.Provider>\n );\n};\n\nexport default AppScreen;\n", "import { useActions } from \"@stackflow/react\";\nimport {\n useLazy,\n useNullableActivity,\n usePreventTouchDuringTransition,\n useStyleEffect,\n useZIndexBase,\n} from \"@stackflow/react-ui-core\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport clsx from \"clsx\";\nimport { useRef } from \"react\";\nimport type { GlobalVars } from \"../basicUIPlugin.css\";\nimport { globalVars } from \"../basicUIPlugin.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./BottomSheet.css\";\n\nexport type BottomSheetProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"backgroundImage\" | \"dimBackgroundColor\">\n> &\n Partial<GlobalVars[\"bottomSheet\"]> & {\n paperRef?: React.Ref<HTMLDivElement>;\n onOutsideClick?: React.MouseEventHandler;\n children: React.ReactNode;\n className?: string;\n };\nconst BottomSheet: React.FC<BottomSheetProps> = ({\n borderRadius = \"1rem\",\n backgroundColor,\n backgroundImage,\n dimBackgroundColor,\n paperRef,\n onOutsideClick,\n children,\n className,\n}) => {\n const activity = useNullableActivity();\n const { pop } = useActions();\n\n const containerRef = useRef<HTMLDivElement>(null);\n const dimRef = useRef<HTMLDivElement>(null);\n\n useStyleEffect({\n styleName: \"hide\",\n refs: [containerRef],\n });\n useStyleEffect({\n styleName: \"offset\",\n refs: [dimRef],\n });\n useStyleEffect({\n styleName: \"swipe-back\",\n refs: [dimRef],\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 = useZIndexBase() + 3;\n const zIndexPaper = useZIndexBase() + 4;\n const transitionState = activity?.transitionState ?? \"enter-done\";\n\n usePreventTouchDuringTransition({\n ref: containerRef,\n });\n\n return (\n <div\n className={clsx(\n css.container({\n transitionState: useLazy(transitionState),\n }),\n className,\n )}\n ref={containerRef}\n style={assignInlineVars(\n compactMap({\n [globalVars.bottomSheet.borderRadius]: borderRadius,\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.backgroundImage]: backgroundImage,\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 ? globalVars.computedTransitionDuration\n : \"0ms\",\n }),\n )}\n data-stackflow-component-name=\"BottomSheet\"\n data-stackflow-activity-id={activity?.id}\n data-stackflow-activity-is-active={activity?.isActive}\n >\n <div className={css.dim} ref={dimRef} onClick={onDimClick}>\n <div className={css.paper} ref={paperRef} onClick={onPaperClick}>\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nBottomSheet.displayName = \"BottomSheet\";\n\nexport default BottomSheet;\n", "import 'src/basicUIPlugin.css.ts.vanilla.css?source=#H4sIAAAAAAAAA+1YYYvUMBD9fr8iIIKCKW11PejhLxGRaTNt567J1GTqLYr/XVZv70RubdNV3GMD/dAPecmbSWbeY7KPxae35rq8ztXXC6W0DgLNTTvwrR6HqSOnawjU6Il0Dc1N53lyRjc8sK/Us7Ztr5ajyEKHlZpcQJmDGbKPHOi7Gl7kr9TdlxWbl0s26pG6XipV5B7tHEA8uEBC7LSZPOx+KpWHOVjDdpwEzVq8wRamQX6Fc9vqgEt5wzjqGryu2Rv0hzKWX85m7LGN1kb1216BvmClinG7FLe/udfZJiIFP1HHcrbkVp5PDbv7GimLsijfxEOPpS+4lZUkHqBH3/uqnnEI/RfZxPSiQ/Bj6fBn9LsFlerJGHQxDzNAixo8gqZdCFp4rFS+vLAadgLk0OsRjCHXVaqIeeGCVncwxqFadrLvAVlRRpU0iQ7DjyCjSnEghw/9P9vMyhWLsNWhR5R91/JgaArLQrVsYFgPtLDVt2Sk3zX9/PkcCE2H9+uzu4R+u8j2ol6chajP5+kkNX2e9tOR9DzbxIt6mV3+X1WPJJBkPcl6kvXTk3XH3sJwFspeeWZ5b0DgT2rXo8V3zTSiF3L8IZmAZAKSCUgmIJmAZAKSCTgrEwDOeCZzHhYgDfdPwASk4X4yAMkAJAOQhvv/Rv2/A99CNeuxHwAA';\nimport 'src/styles/f.css.ts.vanilla.css?source=LmRodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmRodGh4cTIgewogIHRvcDogMDsKfQouZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmRodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmRodGh4cTggewogIGZsZXg6IDE7Cn0KLmRodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmRodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmRodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmRodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmRodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmRodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmRodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/components/BottomSheet.css.ts.vanilla.css?source=Ll8xaHQzOGgwMyB7CiAgdHJhbnNpdGlvbjogdmFyKC0tXzFodDM4aDAwKTsKfQouXzFodDM4aDA3IHsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApOwp9Ci5fMWh0MzhoMGQgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN0YWNrZmxvdy1wbHVnaW4tYmFzaWMtdWktZGltLWJhY2tncm91bmQtY29sb3IpOwogIHotaW5kZXg6IHZhcigtLV8xaHQzOGgwMSk7CiAgb3BhY2l0eTogMDsKfQouXzFodDM4aDA0IC5fMWh0MzhoMGQsIC5fMWh0MzhoMDUgLl8xaHQzOGgwZCB7CiAgb3BhY2l0eTogMTsKfQouXzFodDM4aDA2IC5fMWh0MzhoMGQsIC5fMWh0MzhoMDcgLl8xaHQzOGgwZCB7CiAgb3BhY2l0eTogMDsKfQouXzFodDM4aDBlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdGFja2Zsb3ctcGx1Z2luLWJhc2ljLXVpLWJhY2tncm91bmQtY29sb3IpOwogIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLXN0YWNrZmxvdy1wbHVnaW4tYmFzaWMtdWktYmFja2dyb3VuZC1pbWFnZSk7CiAgd2lkdGg6IDEwMCU7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc3RhY2tmbG93LXBsdWdpbi1iYXNpYy11aS1ib3R0b20tc2hlZXQtYm9yZGVyLXJhZGl1cykgdmFyKC0tc3RhY2tmbG93LXBsdWdpbi1iYXNpYy11aS1ib3R0b20tc2hlZXQtYm9yZGVyLXJhZGl1cykgMCAwOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7CiAgb3BhY2l0eTogMDsKfQouXzFodDM4aDA0IC5fMWh0MzhoMGUsIC5fMWh0MzhoMDUgLl8xaHQzOGgwZSB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICBvcGFjaXR5OiAxOwp9Ci5fMWh0MzhoMDYgLl8xaHQzOGgwZSwgLl8xaHQzOGgwNyAuXzFodDM4aDBlIHsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApICFpbXBvcnRhbnQ7CiAgb3BhY2l0eTogMCAhaW1wb3J0YW50Owp9';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 dhthxqc',variantClassNames:{transitionState:{'enter-active':'_1ht38h04','enter-done':'_1ht38h05','exit-active':'_1ht38h06','exit-done':'_1ht38h07'}},defaultVariants:{},compoundVariants:[]});\nexport var dim = '_1ht38h0d dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 dhthxqc dhthxqa dhthxq7 _1ht38h03';\nexport var enterActive = '_1ht38h04';\nexport var enterDone = '_1ht38h05';\nexport var exitActive = '_1ht38h06';\nexport var exitDone = '_1ht38h07';\nexport var paper = '_1ht38h0e dhthxqc _1ht38h03';\nexport var vars = {transitionDuration:'var(--_1ht38h00)',zIndexes:{dim:'var(--_1ht38h01)',paper:'var(--_1ht38h02)'}};", "import { useActions } from \"@stackflow/react\";\nimport {\n useLazy,\n useNullableActivity,\n usePreventTouchDuringTransition,\n useStyleEffect,\n useZIndexBase,\n} from \"@stackflow/react-ui-core\";\nimport { assignInlineVars } from \"@vanilla-extract/dynamic\";\nimport clsx from \"clsx\";\nimport { useRef } from \"react\";\nimport type { GlobalVars } from \"../basicUIPlugin.css\";\nimport { globalVars } from \"../basicUIPlugin.css\";\nimport { compactMap } from \"../utils\";\nimport * as css from \"./Modal.css\";\n\nexport type ModalProps = Partial<\n Pick<GlobalVars, \"backgroundColor\" | \"backgroundImage\" | \"dimBackgroundColor\">\n> &\n Partial<GlobalVars[\"modal\"]> & {\n onOutsideClick?: React.MouseEventHandler;\n children: React.ReactNode;\n className?: string;\n };\nconst Modal: React.FC<ModalProps> = ({\n backgroundColor,\n backgroundImage,\n dimBackgroundColor,\n borderRadius = \"1rem\",\n maxWidth,\n onOutsideClick,\n children,\n className,\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 = useZIndexBase() + 3;\n const zIndexPaper = useZIndexBase() + 4;\n const transitionState = activity?.transitionState ?? \"enter-done\";\n\n usePreventTouchDuringTransition({\n ref: containerRef,\n });\n\n return (\n <div\n className={clsx(\n css.container({\n transitionState: useLazy(transitionState),\n }),\n className,\n )}\n ref={containerRef}\n style={assignInlineVars(\n compactMap({\n [globalVars.backgroundColor]: backgroundColor,\n [globalVars.backgroundImage]: backgroundImage,\n [globalVars.dimBackgroundColor]: dimBackgroundColor,\n [globalVars.modal.borderRadius]: borderRadius,\n [globalVars.modal.maxWidth]: maxWidth,\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 ? globalVars.computedTransitionDuration\n : \"0ms\",\n }),\n )}\n data-stackflow-component-name=\"Modal\"\n data-stackflow-activity-id={activity?.id}\n data-stackflow-activity-is-active={activity?.isActive}\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/basicUIPlugin.css.ts.vanilla.css?source=#H4sIAAAAAAAAA+1YYYvUMBD9fr8iIIKCKW11PejhLxGRaTNt567J1GTqLYr/XVZv70RubdNV3GMD/dAPecmbSWbeY7KPxae35rq8ztXXC6W0DgLNTTvwrR6HqSOnawjU6Il0Dc1N53lyRjc8sK/Us7Ztr5ajyEKHlZpcQJmDGbKPHOi7Gl7kr9TdlxWbl0s26pG6XipV5B7tHEA8uEBC7LSZPOx+KpWHOVjDdpwEzVq8wRamQX6Fc9vqgEt5wzjqGryu2Rv0hzKWX85m7LGN1kb1216BvmClinG7FLe/udfZJiIFP1HHcrbkVp5PDbv7GimLsijfxEOPpS+4lZUkHqBH3/uqnnEI/RfZxPSiQ/Bj6fBn9LsFlerJGHQxDzNAixo8gqZdCFp4rFS+vLAadgLk0OsRjCHXVaqIeeGCVncwxqFadrLvAVlRRpU0iQ7DjyCjSnEghw/9P9vMyhWLsNWhR5R91/JgaArLQrVsYFgPtLDVt2Sk3zX9/PkcCE2H9+uzu4R+u8j2ol6chajP5+kkNX2e9tOR9DzbxIt6mV3+X1WPJJBkPcl6kvXTk3XH3sJwFspeeWZ5b0DgT2rXo8V3zTSiF3L8IZmAZAKSCUgmIJmAZAKSCTgrEwDOeCZzHhYgDfdPwASk4X4yAMkAJAOQhvv/Rv2/A99CNeuxHwAA';\nimport 'src/styles/f.css.ts.vanilla.css?source=LmRodGh4cTAgewogIHdpZHRoOiAxMDAlOwp9Ci5kaHRoeHExIHsKICBoZWlnaHQ6IDEwMCU7Cn0KLmRodGh4cTIgewogIHRvcDogMDsKfQouZGh0aHhxMyB7CiAgbGVmdDogMDsKfQouZGh0aHhxNCB7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci5kaHRoeHE1IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmRodGh4cTcgewogIGRpc3BsYXk6IGZsZXg7Cn0KLmRodGh4cTggewogIGZsZXg6IDE7Cn0KLmRodGh4cTkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmRodGh4cWEgewogIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKfQouZGh0aHhxYiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KLmRodGh4cWMgewogIG92ZXJmbG93OiBoaWRkZW47Cn0KLmRodGh4cWQgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLmRodGh4cWUgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQouZGh0aHhxZiB7CiAgY3Vyc29yOiBwb2ludGVyOwogIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KLmRodGh4cWcgewogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLmRodGh4cWggewogIGJveC1zaXppbmc6IGNvbnRlbnQtYm94Owp9Ci5kaHRoeHFpIHsKICBhcHBlYXJhbmNlOiBub25lOwogIGJvcmRlcjogMDsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7Cn0=';\nimport 'src/components/Modal.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51TQW6DMBC884q9VAIJWwZKkpLHVIvtECuAIwOFpurfqxhCIQI1zW3tnRnP2mP6HutLtuMRfDkAtcGyUrXSZQIfaFxChjbz9s63Q4fV9hd80KZI+jLHWkbCDRh78YH5MOcIy0mRnzKjm1IQrnNtbsdUNfLTIdctOedNpkqSYqU4aRQRqiD3LG/vAFyIKoXs7owGtqfPyFX9mQCbWniF0Yw/ljHMHY7UYErdLFG3a9TZqfLJwReHnmyqAjP5LxnLsDKtEvUxgetTXZcFdmTY+kuu0AJzMhK8nm4yVSbAIKSxkYU1qjtSHVHoNgF27oDRTXjtQUijrS1MlqLL+qT4wGgQe76F0niE7lag4Q0aBT2Uvq2p9temjZCGGBSqqR4dckayMpPEVxxz6Qb0sbzJpbzJ+180aM4VV2Iol2K4prjk8gfbkIMO+QMAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var container = _7a468({defaultClassName:'dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 dhthxqc',variantClassNames:{transitionState:{'enter-active':'_5ozg8c4','enter-done':'_5ozg8c5','exit-active':'_5ozg8c6','exit-done':'_5ozg8c7'}},defaultVariants:{},compoundVariants:[]});\nexport var dim = '_5ozg8cd dhthxq4 dhthxq0 dhthxq1 dhthxq2 dhthxq3 dhthxqc dhthxq9 dhthxq7 dhthxqb _5ozg8c3';\nexport var enterActive = '_5ozg8c4';\nexport var enterDone = '_5ozg8c5';\nexport var exitActive = '_5ozg8c6';\nexport var exitDone = '_5ozg8c7';\nexport var paper = '_5ozg8ce dhthxqc _5ozg8c3';\nexport var vars = {transitionDuration:'var(--_5ozg8c0)',zIndexes:{dim:'var(--_5ozg8c1)',paper:'var(--_5ozg8c2)'}};"],
5
+ "mappings": "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",
6
6
  "names": ["jsx", "jsx", "assignInlineVars", "_7a468", "_7a468", "_7a468", "_7a468", "jsx", "backButton", "closeButton", "_a", "_b", "assignInlineVars", "useActions", "useActivityDataAttributes", "useMounted", "useNullableActivity", "assignInlineVars", "clsx", "createContext", "useContext", "useRef", "jsx", "jsxs", "createContext", "useContext", "appBar", "useNullableActivity", "useActivityDataAttributes", "useMounted", "useActions", "useRef", "_a", "clsx", "assignInlineVars", "useActions", "useLazy", "useNullableActivity", "usePreventTouchDuringTransition", "useZIndexBase", "assignInlineVars", "clsx", "useRef", "_7a468", "container", "dim", "paper", "vars", "jsx", "useNullableActivity", "useActions", "useRef", "useZIndexBase", "usePreventTouchDuringTransition", "clsx", "container", "useLazy", "assignInlineVars", "vars", "dim", "paper", "useActions", "useLazy", "useNullableActivity", "usePreventTouchDuringTransition", "useStyleEffect", "useZIndexBase", "assignInlineVars", "clsx", "useRef", "_7a468", "container", "dim", "paper", "vars", "jsx", "useNullableActivity", "useActions", "useRef", "useStyleEffect", "useZIndexBase", "usePreventTouchDuringTransition", "clsx", "container", "useLazy", "assignInlineVars", "vars", "dim", "paper"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackflow/plugin-basic-ui",
3
- "version": "1.17.0",
3
+ "version": "1.18.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/daangn/stackflow.git",
@@ -42,7 +42,7 @@
42
42
  "devDependencies": {
43
43
  "@stackflow/core": "^1.2.0",
44
44
  "@stackflow/esbuild-config": "^1.0.3",
45
- "@stackflow/react": "^1.6.0",
45
+ "@stackflow/react": "^1.9.0",
46
46
  "@types/react": "^18.3.3",
47
47
  "esbuild": "^0.23.0",
48
48
  "react": "^18.3.1",
@@ -9,8 +9,10 @@ const GLOBAL_VARS = {
9
9
  backgroundColor: "background-color",
10
10
  backgroundImage: "background-image",
11
11
  dimBackgroundColor: "dim-background-color",
12
+ dimHeight: "dim-height",
12
13
  transitionDuration: "transition-duration",
13
14
  computedTransitionDuration: "computed-transition-duration",
15
+ defaultTransitionOffSet: "default-transition-off-set",
14
16
  appBar: {
15
17
  borderColor: "app-bar-border-color",
16
18
  borderColorTransitionDuration: "app-bar-border-color-transition-duration",
@@ -43,6 +45,9 @@ const GLOBAL_VARS = {
43
45
  borderRadius: "modal-border-radius",
44
46
  maxWidth: "modal-max-width",
45
47
  },
48
+ edge: {
49
+ width: 'edge-width',
50
+ }
46
51
  };
47
52
 
48
53
  export const globalVars = createGlobalThemeContract(
@@ -56,8 +61,10 @@ const androidValues: GlobalVars = {
56
61
  backgroundColor: "#fff",
57
62
  backgroundImage: "unset",
58
63
  dimBackgroundColor: "rgba(0, 0, 0, 0.15)",
64
+ dimHeight: "10rem",
59
65
  transitionDuration: "0s",
60
66
  computedTransitionDuration: "0s",
67
+ defaultTransitionOffSet: "10rem",
61
68
  appBar: {
62
69
  borderColor: "rgba(0, 0, 0, 0.07)",
63
70
  borderColorTransitionDuration: "0s",
@@ -88,10 +95,15 @@ const androidValues: GlobalVars = {
88
95
  borderRadius: "1rem",
89
96
  maxWidth: "100%",
90
97
  },
98
+ edge: {
99
+ width: "1.25rem",
100
+ }
91
101
  };
92
102
 
93
103
  const cupertinoValues: GlobalVars = {
94
104
  ...androidValues,
105
+ dimHeight: "100%",
106
+ defaultTransitionOffSet: "100%",
95
107
  appBar: {
96
108
  ...androidValues.appBar,
97
109
  height: "2.75rem",
@@ -69,12 +69,15 @@ export const basicUIPlugin: (
69
69
  [css.globalVars.backgroundColor]: _options.backgroundColor,
70
70
  [css.globalVars.backgroundImage]: _options.backgroundImage,
71
71
  [css.globalVars.dimBackgroundColor]: _options.dimBackgroundColor,
72
+ [css.globalVars.dimHeight]: _options.dimHeight,
72
73
  [css.globalVars.transitionDuration]:
73
74
  `${stack.transitionDuration}ms`,
74
75
  [css.globalVars.computedTransitionDuration]:
75
76
  stack.globalTransitionState === "loading"
76
77
  ? `${stack.transitionDuration}ms`
77
78
  : "0ms",
79
+ [css.globalVars.defaultTransitionOffSet]:
80
+ _options.defaultTransitionOffSet,
78
81
  [css.globalVars.appBar.borderColor]: _options.appBar?.borderColor,
79
82
  [css.globalVars.appBar.borderSize]: _options.appBar?.borderSize,
80
83
  [css.globalVars.appBar.height]: _options.appBar?.height,
@@ -91,7 +94,8 @@ export const basicUIPlugin: (
91
94
  [css.globalVars.appBar.lineHeight]: _options.appBar?.lineHeight,
92
95
  [css.globalVars.appBar.hitSlop]: _options.appBar?.hitSlop,
93
96
  [css.globalVars.appBar.itemGap]: _options.appBar?.itemGap,
94
- }),
97
+ [css.globalVars.edge.width]: _options.edge?.width,
98
+ })
95
99
  )}
96
100
  >
97
101
  {stack.render()}
@@ -45,7 +45,7 @@ export const appBar = recipe({
45
45
  position: "absolute",
46
46
  },
47
47
  [`${cupertino} ${exitActive} &`]: {
48
- transform: "translate3d(100%, 0, 0)",
48
+ transform: `translate3d(${globalVars.defaultTransitionOffSet}, 0, 0)`,
49
49
  transition: transitions({
50
50
  ...appBarCommonTransition,
51
51
  transform: "0s",
@@ -53,7 +53,7 @@ export const appBar = recipe({
53
53
  },
54
54
  [`${android} &`]: {
55
55
  opacity: 0,
56
- transform: "translate3d(0, 10rem, 0)",
56
+ transform: `translate3d(0, ${globalVars.defaultTransitionOffSet}, 0)`,
57
57
  transition: transitions({
58
58
  ...appBarCommonTransition,
59
59
  transform: vars.transitionDuration,
@@ -49,6 +49,33 @@ export const appScreen = recipe({
49
49
  "exit-active": exitActive,
50
50
  "exit-done": exitDone,
51
51
  },
52
+ hasAppBar: {
53
+ true: {
54
+ vars: {
55
+ [vars.appBar.topMargin]: globalVars.appBar.height,
56
+ },
57
+ /**
58
+ * When `max()` and `env()` (or `constant()`) supported
59
+ *
60
+ * - https://caniuse.com/css-env-function
61
+ * - https://caniuse.com/css-math-functions
62
+ */
63
+ "@supports": {
64
+ "(padding: max(0px)) and (padding: constant(safe-area-inset-top))": {
65
+ vars: {
66
+ [vars.appBar.topMargin]:
67
+ `calc(${globalVars.appBar.height} + max(${globalVars.appBar.minSafeAreaInsetTop}, constant(safe-area-inset-top)))`,
68
+ },
69
+ },
70
+ "(padding: max(0px)) and (padding: env(safe-area-inset-top))": {
71
+ vars: {
72
+ [vars.appBar.topMargin]:
73
+ `calc(${globalVars.appBar.height} + max(${globalVars.appBar.minSafeAreaInsetTop}, env(safe-area-inset-top)))`,
74
+ },
75
+ },
76
+ },
77
+ },
78
+ },
52
79
  },
53
80
  });
54
81
 
@@ -59,9 +86,9 @@ export const dim = style([
59
86
  {
60
87
  opacity: 0,
61
88
  zIndex: vars.zIndexes.dim,
89
+ height: globalVars.dimHeight,
62
90
  selectors: {
63
91
  [`${android} &`]: {
64
- height: "10rem",
65
92
  background: `linear-gradient(${globalVars.dimBackgroundColor}, rgba(0, 0, 0, 0))`,
66
93
  },
67
94
  [`
@@ -89,7 +116,7 @@ export const paper = recipe({
89
116
  zIndex: vars.zIndexes.paper,
90
117
  selectors: {
91
118
  [`${cupertino} &`]: {
92
- transform: "translate3d(100%, 0, 0)",
119
+ transform: `translate3d(${globalVars.defaultTransitionOffSet}, 0, 0)`,
93
120
  },
94
121
  [`
95
122
  ${cupertino} ${enterActive} &,
@@ -99,7 +126,7 @@ export const paper = recipe({
99
126
  },
100
127
  [`${android} &`]: {
101
128
  opacity: 0,
102
- transform: "translate3d(0, 10rem, 0)",
129
+ transform: `translate3d(0, ${globalVars.defaultTransitionOffSet}, 0)`,
103
130
  },
104
131
  [`
105
132
  ${android} ${enterActive} &,
@@ -118,30 +145,6 @@ export const paper = recipe({
118
145
  {
119
146
  transition: `transform ${vars.transitionDuration}, opacity ${vars.transitionDuration}, margin-top ${globalVars.appBar.heightTransitionDuration}`,
120
147
  paddingTop: vars.appBar.topMargin,
121
- vars: {
122
- [vars.appBar.topMargin]: globalVars.appBar.height,
123
- },
124
- /**
125
- * When `max()` and `env()` (or `constant()`) supported
126
- *
127
- * - https://caniuse.com/css-env-function
128
- * - https://caniuse.com/css-math-functions
129
- */
130
- "@supports": {
131
- "(padding: max(0px)) and (padding: constant(safe-area-inset-top))":
132
- {
133
- vars: {
134
- [vars.appBar.topMargin]:
135
- `calc(${globalVars.appBar.height} + max(${globalVars.appBar.minSafeAreaInsetTop}, constant(safe-area-inset-top)))`,
136
- },
137
- },
138
- "(padding: max(0px)) and (padding: env(safe-area-inset-top))": {
139
- vars: {
140
- [vars.appBar.topMargin]:
141
- `calc(${globalVars.appBar.height} + max(${globalVars.appBar.minSafeAreaInsetTop}, env(safe-area-inset-top)))`,
142
- },
143
- },
144
- },
145
148
  },
146
149
  ],
147
150
  },
@@ -195,15 +198,15 @@ export const edge = recipe({
195
198
  f.left0,
196
199
  f.fullHeight,
197
200
  {
198
- width: "1.25rem",
201
+ width: globalVars.edge.width,
199
202
  zIndex: vars.zIndexes.edge,
200
203
  },
201
204
  ],
202
205
  variants: {
203
206
  hasAppBar: {
204
207
  true: {
205
- top: globalVars.appBar.height,
206
- height: `calc(100% - ${globalVars.appBar.height})`,
208
+ top: vars.appBar.topMargin,
209
+ height: `calc(100% - ${vars.appBar.topMargin})`,
207
210
  },
208
211
  },
209
212
  },
@@ -237,6 +237,7 @@ const AppScreen: React.FC<AppScreenProps> = ({
237
237
  ref={appScreenRef}
238
238
  className={clsx(
239
239
  css.appScreen({
240
+ hasAppBar,
240
241
  transitionState:
241
242
  transitionState === "enter-done" ||
242
243
  transitionState === "exit-done"