@chem-po/react-web 0.0.44 → 0.0.45

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 +1 @@
1
- {"version":3,"sources":["../src/components/auth/SignIn.tsx","../src/components/box/CollapseHorizontal.tsx","../src/components/box/ContentBox.tsx","../src/hooks/ui/useBorderColor.ts","../src/components/button/ViewButton.tsx","../src/components/box/Expandable.tsx","../src/components/box/ExpandOnMount.tsx","../src/components/box/FullSizeContainer.tsx","../src/contexts/view.tsx","../src/components/modal/ForceMobile.tsx","../src/components/nav/NavBar.tsx","../src/components/view/ErrorView.tsx","../src/components/loading/CircularProgress.tsx","../src/components/loading/Loading.tsx","../src/components/view/RedirectView.tsx","../src/components/box/MobileFrame/index.tsx","../src/components/button/DeleteButton.tsx","../src/components/button/Toggle.tsx","../src/components/feed/context.tsx","../src/components/overlay/ImageViewOverlay.tsx","../src/components/loading/LoadingImage.tsx","../src/components/loading/LoadingSwitch.tsx","../src/components/feed/constants.ts","../src/components/feed/FeedContentPane.tsx","../src/components/feed/hooks.ts","../src/components/feed/MediaFeedBackground.tsx","../src/components/feed/MediaFeedRefresh.tsx","../src/components/feed/MediaFeed.tsx","../src/components/form/Condition.tsx","../src/components/form/input/boolean/index.tsx","../src/components/form/input/hooks/useInputImperativeHandle.ts","../src/components/text/GradientText/index.tsx","../src/components/form/input/InputSlider.tsx","../src/components/form/input/color/index.tsx","../src/components/form/input/date/index.tsx","../src/components/form/input/time/index.tsx","../src/components/form/input/datetime/index.tsx","../src/store/usePlayer.ts","../src/components/media/PlayButton.tsx","../src/components/form/input/file.tsx","../src/components/form/input/hooks/useInputStyles.ts","../src/components/form/input/multipleSelect/index.tsx","../src/components/form/input/shared/InputContainer.tsx","../src/components/form/input/number/index.tsx","../src/components/form/input/OptionalTag.tsx","../src/components/form/input/select/index.tsx","../src/components/form/input/socialMedia/index.tsx","../src/components/form/input/text/textarea.tsx","../src/components/form/input/text/index.tsx","../src/components/form/input/input.tsx","../src/components/form/Field.tsx","../src/components/form/UploadProgress/index.tsx","../src/components/form/FormFooter.tsx","../src/components/form/view/file.tsx","../src/components/form/view/multipleSelect.tsx","../src/components/form/view/select.tsx","../src/components/form/view/index.tsx","../src/components/form/input/StandaloneInput.tsx","../src/components/form/input/Editable.tsx","../src/components/form/Form.tsx","../src/components/list/ListContainer.tsx","../src/components/list/ListItem/ListCell.tsx","../src/components/list/NoItems.tsx","../src/components/list/utils.ts","../src/components/list/Body/hooks.ts","../src/components/list/Body/InfiniteScrollGridBody.tsx","../src/components/list/ListItem/ListRow.tsx","../src/components/list/Body/InfiniteScrollListBody.tsx","../src/components/list/Body/PagedGridBody.tsx","../src/components/list/Body/PagedListBody.tsx","../src/components/list/Body/ListBody.tsx","../src/components/modal/DesktopModal.tsx","../src/components/overlay/MobileOverlay.tsx","../src/components/modal/MobileModal.tsx","../src/components/modal/DefaultModal.tsx","../src/components/list/ListCreate.tsx","../src/components/list/ListFooter.tsx","../src/components/list/ListFilters.tsx","../src/components/list/ListSort.tsx","../src/components/list/ListHeader.tsx","../src/components/list/ListItemView.tsx","../src/components/list/ListContent.tsx","../src/components/list/DataList.tsx","../src/components/text/NumberTicker.tsx","../src/components/theme/colorMode/DarkModeToggle.tsx","../src/contexts/theme.ts","../src/store/useScreen.ts"],"names":["SignIn","layout","auth","useBackendBase","user","useAuth","s","React","Flex","Button","Text","AbsoluteLogin","props","Portal","CollapseHorizontal","width","children","active","duration","Center","ContentBoxBase","ref","ContentBox","forwardRef","useBorderColor","useColorModeValue","ViewButton","viewText","hideText","onClick","isOpen","color","IconButton","ChevronUpIcon","ChevronDownIcon","e","Expandable","Header","initExpanded","nested","alwaysExpanded","headerProps","iconColor","Footer","isOpenProp","onCloseProp","onOpenProp","stackProps","onClose","onOpen","useDisclosure","handleOpenClick","useCallback","borderColor","VStack","HStack","Box","Collapse","ExpandOnMount","animateOpacity","isIn","onExited","mounted","useMounted","bodyHeight","setBodyHeight","useState","bodyRef","useRef","isAnimating","setIsAnimating","expanded","useMemo","height","handleBodyResize","useResizeObserver","animatingTimeout","useEffect","transition","FullSizeContainer","Children","setWidth","setHeight","handleResize","entry","FullSizeProvider","contextValue","FullSizeContext","ViewsContext","createContext","useViews","useContext","ViewsProvider","views","value","getUserViews","view","getViewRoutes","ForceMobileContext","ForceMobile","useForceMobile","NAV_BAR_HEIGHT","NavBarLink","absolute","paths","name","icon","iconScale","path","iconBrightness","usedBrightness","pathname","useLocation","hoverBg","body","Image","Link","NavBar","selectedView","bg","palette","defaultBorderColor","menuViews","v","isAbsolute","background","ErrorView","message","CircularProgress","Orig","LottieLoadingLogo","size","isLoading","speed","inFeed","asset","_animationData","animationData","options","style","View","pause","play","setSpeed","useLottie","SVGLoadingLogo","_svg","svg","LoadingBody","loading","useAppAssets","LoadingLogo","Loading","text","inBox","LoadingOverlay","RedirectView","timer","authLoading","navigate","useNavigate","IPHONE_12_WIDTH","IPHONE_12_HEIGHT","IPHONE_12_ASPECT","MobileFrameBody","navBarChildren","isMobile","screenHeight","screenWidth","useScreen","contentHeight","contentWidth","h","w","cappedHeight","cappedWidth","outerBg","cssGradients","location","currentOutlet","useOutlet","matchRoutes","viewKey","overlayRef","nodeRef","absoluteNavBar","contextData","MobileFrameProvider","AnimatePresence","SwitchTransition","CSSTransition","motion","ErrorBoundary","MobileFrame","defaultAlertBodyText","DeleteConfirmAlert","confirmActive","onCancel","onConfirm","actionName","actionLoading","itemName","cancelRef","AlertDialog","AlertDialogOverlay","AlertDialogContent","AlertDialogBody","DeleteButton","onDelete","noConfirm","alertBody","deleteLoading","setDeleteLoading","setConfirmActive","confirmTimer","isMounted","toast","useToast","handleDelete","err","DeleteIcon","ToggleButton","selected","Render","label","disabledMessage","Tooltip","Toggle","onChange","option","MediaFeedContext","MediaFeedProvider","curr","useMediaFeed","ImageViewOverlay","src","setLoading","imageSize","setImageSize","ratio","onLoadStart","onLoad","naturalWidth","naturalHeight","Modal","ModalOverlay","ModalContent","CloseIcon","emptyPng","LoadingImage","loadingOverride","alt","withFullView","buttonFullView","imageProps","boxProps","imageLoading","setImageLoading","imageRef","viewing","setViewing","handleImageLoad","prevSrc","setPrevSrc","fullViewButtonFilter","LoadingSwitch","setIsLoading","reportComplete","fetchedOn","buffer","Switch","springConfig","SWIPE_THRESHOLD","REFRESH_THRESHOLD","getContentScale","status","getContentX","contentSize","cWidth","getContentY","cHeight","FeedContentPane","id","collectionPath","onItemLoad","RenderItem","offsetY","enterStatus","useMobileFrame","scale","useSpring","baseY","useMotionValue","yVal","useTransform","y","docPath","item","useDocument","init","newScale","updatedX","DEFAULT_LIMIT","fetch","onUpdatePanels","limit","authRequired","ids","setIds","idIdx","setIdIdx","refreshing","setRefreshing","error","setError","itemLoading","setItemLoading","direction","setDirection","fetchingId","idsRef","updateCurr","updateNext","updatePrev","fetchIds","startBefore","startAfter","isPrefetch","data","firstId","secondId","newLastId","getNextId","currIdx","currIds","nextIds","nextIdx","fetchedNextId","getPrevId","prevIds","prevIdx","newFirstId","fetchedPrevIds","fetchedPrevId","goNext","newPrev","nextIdData","nextId","newNextId","goPrev","newNext","prevIdData","prevId","newPrevId","refresh","initFetchIds","canGoPrev","canGoNext","FillBackground","FileValueBackground","getBackgroundValue","filter","url","useObjectUrl","usedIndex","index","setIndex","url1","setUrl1","url2","setUrl2","UrlBackground","getBackgroundUrl","MediaFeedBackground","WINDOW","MediaFeedRefresh","canRefresh","progress","rotate","RepeatIcon","useUpdatePanels","setItems","updated","MediaFeed","defaultBackground","swipeDisabled","contentRef","containerRef","panels","setPanels","onNewData","backgroundRef","pointerDown","dragStart","onDragStart","dragEndListener","ev","maxY","minY","oY","onDragMove","oX","containerStyle","setCurr","handleItemLoad","p","panel","Condition","condition","useWatch","BaseCheckboxComponent","field","input","placeholder","useImperativeHandle","Checkbox","CheckboxBooleanComponent","BaseSwitchComponent","SwitchBooleanComponent","BaseBooleanComponent","BooleanComponent","useInputImperativeHandle","onFocus","onBlur","inputRef","GradientText","InputSlider","gradient","min","max","gradientCss","gradientToCssGradientProp","Slider","SliderTrack","SliderFilledTrack","SliderThumb","ColorComponentSlider","ColorComponent","meta","withAlpha","defaultValue","handleChange","key","val","withDefault","asHex","colorValueToHex","gradients","updatedRed","updatedGreen","updatedBlue","updatedAlpha","padZeros","n","digits","i","parseDate","date","DateInput","minDate","maxDate","optional","disabled","res","Popover","PopoverTrigger","getDateString","PopoverContent","PopoverArrow","DayPicker","TimeInput","Input","parseDateAndTime","timestamp","d","DateTimeInput","time","set","focusedElement","setFocused","type","dateString","usePlayer","create","MotionValue","useActiveMedia","media","playlist","PlayButton","opacity","buttonProps","mediaId","usePlaylist","api","playerIsPlaying","playerIsLoading","currentMedia","isPlaying","isFetching","generateAccept","accept","AudioFileView","hasUpload","noLabel","generateId","ImageFileView","loadingProp","loaded","setLoaded","shape","objectFit","placeholderSrc","placeholderOpacity","placeholderScale","useImageSize","optWidth","optHeight","extensionIcons","ExtensionIcon","extension","parts","FileViewBody","imageOptions","NoFileView","FileView","storagePath","dataUrl","missingFile","FileComponent","file","isImageField","imgOptions","inputStyles","iconSizeMap","clearButtonSizeMap","inputSizeMap","editableInputSizeMap","inputTextSizeMap","buttonContainerSizeMap","useInputStyles","inEditable","formSize","formElementBg","useBackgroundColor","textColor","useTextColor","usedSize","getRenderSelectedOptionText","textStyle","RenderOption","MultipleSelectComponent","colorMode","useColorMode","RenderSelectedOptionText","o","InputContainer","NumberComponent","prefix","className","container","endsWith","setEndsWith","displayed","CurrencyInput","_","values","BaseCurrencyAmountComponent","CurrencyAmountComponent","OptionalTag","top","SelectComponent","customRender","menuBg","PopoverBody","facebookLogo","instagramLogo","soundcloudLogo","twitterLogo","youtubeLogo","siteToIcon","SocialMediaSiteInput","site","handle","getHandle","displayedText","SocialMediaComponent","sites","_curr","rest","TextAreaComponent","TextareaAutosize","TextComponent","isHidden","setIsHidden","ViewIcon","ViewOffIcon","Components","InputBase","touched","_type","Label","showPlaceholder","styles","Component","pb","FieldComponentBase","control","getOnChange","fieldBlur","useField","Controller","_r","inputProps","FieldComponent","UploadProgress","uploads","asArr","TransitionGroup","upload","Progress","CancelButton","onBack","SubmitButton","onSubmitClick","submitting","FormErrorView","formError","useChempoForm","FormFooter","RenderFooter","buttonText","onSubmit","valid","useFormState","FileFieldView","MultipleSelectFieldView","selectedOptions","stringifyValue","DefaultRenderOption","SelectFieldView","propSize","selectedOption","DefaultFieldView","formatted","format","formatField","FieldView","StandaloneInputBase","useStandaloneInput","StandaloneInput","Editable","initValue","onEditClose","onEditOpen","CustomInput","CustomView","setValue","editHovered","handleEditOpen","handleEditClose","isEditing","setEditHovered","submit","submitValue","useEditable","alwaysEditing","editingBorderColor","RenderInput","RenderView","EditIcon","CheckIcon","makeOnDragEndFunction","move","result","ListFieldInput","emptyData","isField","isListField","draggingBg","useFormContext","fields","append","remove","useFieldArray","onDragEnd","DragDropContext","Droppable","droppableProvided","draggingFromThisWith","formField","idx","Draggable","dragHandleProps","draggableProps","innerRef","isDragging","DragHandleIcon","FormElement","childName","childField","f","b","ListFieldView","getItemField","useGetItemField","FormElementView","updateField","useDataView","DataView","fieldName","setIsEditing","DataViewProvider","Form","FieldMapForm","renderFooter","submitDataProps","useFormSubmit","Stack","FieldForm","fieldMap","ChempoFormProvider","ListContainer","ListCell","rowIndex","columnIndex","items","onSelect","refetch","grid","numCols","itemIdx","NoItemsRow","list","debounced","search","useDataList","usePaginatedList","showLoading","pluralItemName","noItemsMessage","searchRequired","toPlural","getIsDynamicSize","itemHeight","nativeFilterMatchesPreset","nativeFilter","presetFilter","arrayOperators","nativeValues","filterMatchesPreset","getCellDims","gridWidth","rowHeight","columnWidth","getCellSize","preferredHeight","preferredWidth","numRows","colWidths","_i","_j","j","acc","itemWidth","rowHeights","colWidth","useGridDims","InfiniteScrollGridBody","totalCount","refetchItem","isItemLoaded","fetchMoreData","onSelectItem","mobileLayout","query","useFullSize","previewHeight","mobile","itemData","varRef","varGrid","infiniteLoaderRef","isDynamicHeight","itemKey","onRendered","overscanColumnStartIndex","overscanColumnStopIndex","overscanRowStartIndex","overscanRowStopIndex","visibleColumnStartIndex","visibleColumnStopIndex","visibleRowStartIndex","visibleRowStopIndex","onItemsRendered","start","stop","overscanStart","overscanStop","InfiniteLoader","VariableSizeGrid","r","FixedSizeGrid","ListRow","InfiniteScrollListBody","getItemSize","VariableSizeList","FixedSizeList","BasePagedGridBody","pageIndex","variableRef","fixedRef","fixGrid","PagedGridBody","memo","BasePagedListBody","varList","fixList","PagedListBody","ListBody","infiniteScroll","gridLayout","DesktopModal","contentProps","MobileOverlay","MobileOverlayBackground","MobileModal","onContentMounted","closeOnOverlayClick","setIsMounted","contentMounted","setContentMounted","unmountTimeout","contentMountTimeout","DefaultModal","forceMobile","ListCreate","baseQuery","setIsOpen","db","handleSubmit","NextButton","ChevronRightIcon","PrevButton","ChevronLeftIcon","FooterLoadingAndError","progressBg","getGroupIndex","numPages","NAV_BUTTON_SIZE","MOBILE_NAV_BUTTON_SIZE","PageNavButton","isActive","PageNavGroup","indicators","collapsed","goToPage","PageNav","groups","nPages","g","groupIndex","group","FOOTER_TEXT_WIDTH","ListFooter","onResize","flexProps","noFooter","numFetched","hasMoreData","itemsText","pageText","hasPrev","hasNext","FilterButton","filters","GroupRender","toggleFilter","CustomRender","FilterGroup","groupFilters","PresetFilters","currentFilters","filterPresets","isFilterGroup","PopoverCloseButton","SortButton","preset","setSortFromPreset","sort","ArrowUpIcon","ArrowDownIcon","ListSortView","sortPresets","ListSearch","update","searchIcon","iconFilter","InputGroup","InputLeftElement","SearchIcon","HeaderButtons","setNewItemOpen","access","canCreate","getHasAccess","AddIcon","gridToggleOptions","GridViewToggle","toggleGridLayout","DataListHeader","searchPath","hasSearch","ListItemView","selectedItemId","deselectItem","ItemView","contentOffset","setContentOffset","errorColor","prevItem","setPrevItem","x","ListContent","modals","footerProps","headerHeight","setHeaderHeight","footerHeight","setFooterHeight","handleHeaderResize","handleFooterResize","ItemViewComponent","createField","DataList","state","useDataListData","usePaginatedQuery","PaginatedListProvider","NumberTicker","spanRef","helperValue","intervalRef","DarkModeToggle","toggleColorMode","hoverColor","SunIcon","MoonIcon","AbsoluteDarkModeToggle","definePartsStyle","defineMultiStyleConfig","createMultiStyleConfigHelpers","switchAnatomy","switchBaseTheme","switchTheme","$arrowBg","cssVar","headingFont","bodyFont","baseTheme","extendTheme","initializeScreen"],"mappings":"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","file":"index.cjs","sourcesContent":["import { Button, Flex, Portal, Text } from '@chakra-ui/react'\nimport { useAuth, useBackendBase } from '@chem-po/react'\nimport React from 'react'\ninterface SignInProps {\n // authProviders: Array<AuthProviderData<FC<{ noText?: boolean }>>>\n layout?: 'row' | 'column'\n}\n\nexport const SignIn = ({ layout = 'row' }: SignInProps) => {\n const {\n adapter: { auth },\n } = useBackendBase()\n\n const user = useAuth(s => s.user)\n return (\n <Flex gap={[1, 1, 2]} align=\"center\" flexFlow={['column', 'column', 'row']}>\n {user ? (\n <Button\n size=\"sm\"\n onClick={() => {\n auth.logout()\n }}>\n SIGN OUT\n </Button>\n ) : (\n <>\n <Text whiteSpace=\"nowrap\" textAlign=\"center\" opacity={0.8} fontWeight={600} fontSize=\"sm\">\n SIGN IN\n </Text>\n <Flex flexFlow={layout} gap={2} w=\"100%\"></Flex>\n </>\n )}\n </Flex>\n )\n}\n\nexport const AbsoluteLogin = (props: SignInProps) => (\n <Portal>\n <Flex position=\"fixed\" bottom={4} left={4}>\n <SignIn {...props} />\n </Flex>\n </Portal>\n)\n","import { Center, CenterProps } from '@chakra-ui/react'\nimport React from 'react'\n\nexport const CollapseHorizontal = ({\n width,\n children,\n active,\n duration = 400,\n ...props\n}: CenterProps & { width: number; active: boolean; duration?: number }) => (\n <Center\n width={`${active ? width : 0}px`}\n opacity={active ? 1 : 0}\n transition={`all ${duration}ms ease-in-out`}\n overflow=\"hidden\"\n {...props}>\n {children}\n </Center>\n)\n","import { Flex, FlexProps } from '@chakra-ui/react'\nimport React, { ForwardedRef, forwardRef } from 'react'\n\nconst ContentBoxBase = (props: FlexProps, ref: ForwardedRef<HTMLDivElement>) => {\n return (\n <Flex\n ref={ref}\n bg=\"background.100\"\n p={3}\n borderRadius={6}\n boxShadow=\"1px 1px 4px #00000066\"\n {...props}\n />\n )\n}\n\nexport const ContentBox = forwardRef<HTMLDivElement, FlexProps>(ContentBoxBase)\n","import { useColorModeValue } from '@chakra-ui/react'\n\n// TODO: these need to be updated to use chakra theme\nexport const useBorderColor = () => useColorModeValue('#00000033', '#ffffff33')\n","import { ChevronDownIcon, ChevronUpIcon } from '@chakra-ui/icons'\nimport { IconButton } from '@chakra-ui/react'\nimport React, { FC, MouseEvent } from 'react'\n\nexport const ViewButton: FC<{\n onClick: (e: MouseEvent) => void\n isOpen: boolean\n viewText?: string\n hideText?: string\n color?: string\n}> = ({ viewText = 'View', hideText = 'Hide', onClick, isOpen, color }) => (\n <IconButton\n icon={\n isOpen ? <ChevronUpIcon width={5} height={5} /> : <ChevronDownIcon width={5} height={5} />\n }\n aria-label={isOpen ? hideText : viewText}\n variant=\"ghost\"\n p=\"2px\"\n ml=\"auto\"\n size=\"xs\"\n fontSize=\"xs\"\n borderRadius=\"full\"\n _hover={{ bg: 'blackAlpha.200' }}\n color={color ?? '#777'}\n onClick={e => {\n e.stopPropagation()\n onClick(e)\n }}\n />\n)\n","import {\n Box,\n Collapse,\n Flex,\n HStack,\n StackProps,\n Text,\n useDisclosure,\n VStack,\n} from '@chakra-ui/react'\nimport React, { FC, PropsWithChildren, useCallback } from 'react'\nimport { useBorderColor } from '../../hooks/ui/useBorderColor'\nimport { ViewButton } from '../button/ViewButton'\n\nexport const Expandable = ({\n header: Header,\n children,\n initExpanded = false,\n nested,\n alwaysExpanded,\n headerProps,\n iconColor,\n footer: Footer,\n isOpen: isOpenProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...stackProps\n}: PropsWithChildren<\n StackProps & {\n header: string | FC<{ isOpen: boolean; onClose: () => void }>\n footer?: FC<{ isOpen: boolean; onClose: () => void }>\n headerProps?: StackProps\n nested?: boolean\n alwaysExpanded?: boolean\n initExpanded?: boolean\n isOpen?: boolean\n onClose?: () => void\n iconColor?: string\n onOpen?: () => void\n }\n>) => {\n const { isOpen, onClose, onOpen } = useDisclosure({\n defaultIsOpen: alwaysExpanded ?? initExpanded,\n isOpen: isOpenProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n\n const handleOpenClick = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation()\n if (alwaysExpanded) return\n if (isOpen) {\n onClose()\n return\n }\n onOpen()\n },\n [alwaysExpanded, onOpen, onClose, isOpen],\n )\n const borderColor = useBorderColor()\n return (\n <VStack spacing={0} borderColor={borderColor} w=\"100%\" {...stackProps}>\n <HStack\n borderBottom={isOpen ? `1px solid ${borderColor}` : undefined}\n px={2}\n spacing={0}\n w=\"100%\"\n {...headerProps}>\n <Flex\n onClick={handleOpenClick}\n cursor=\"pointer\"\n aria-label=\"expand/hide\"\n align=\"center\"\n flex={1}>\n {typeof Header === 'string' ? (\n <Text fontWeight={600} color=\"gray.500\" flex={1}>\n {Header}\n </Text>\n ) : (\n <Header isOpen={isOpen} onClose={onClose} />\n )}\n </Flex>\n {alwaysExpanded ? null : (\n <ViewButton color={iconColor} onClick={handleOpenClick} isOpen={isOpen} />\n )}\n </HStack>\n <Box w=\"100%\" borderLeft={nested ? '4px solid #00000033' : undefined}>\n <Collapse unmountOnExit style={{ width: '100%' }} in={isOpen}>\n {children as any}\n </Collapse>\n </Box>\n {Footer ? <Footer isOpen={isOpen} onClose={onClose} /> : null}\n </VStack>\n )\n}\n","import { Box, BoxProps } from '@chakra-ui/react'\nimport { useMounted } from '@chem-po/react'\nimport useResizeObserver from '@react-hook/resize-observer'\nimport React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nexport const ExpandOnMount: FC<\n BoxProps & { in?: boolean; animateOpacity?: boolean; duration?: number; onExited?: () => void }\n> = ({ animateOpacity, duration = 300, children, in: isIn = true, onExited, ...props }) => {\n const mounted = useMounted()\n\n const [bodyHeight, setBodyHeight] = useState<number>(0)\n const bodyRef = useRef<HTMLDivElement | null>(null)\n\n const [isAnimating, setIsAnimating] = useState(false)\n const expanded = useMemo(() => mounted && isIn, [isIn, mounted])\n const height = useMemo(() => (expanded ? bodyHeight : 0), [bodyHeight, expanded])\n const handleBodyResize = useCallback((e: ResizeObserverEntry) => {\n setBodyHeight(e.target.scrollHeight)\n }, [])\n\n useResizeObserver(bodyRef, handleBodyResize)\n\n const animatingTimeout = useRef<ReturnType<typeof setTimeout> | null>(null)\n useEffect(() => {\n if (animatingTimeout.current) {\n clearTimeout(animatingTimeout.current)\n animatingTimeout.current = null\n }\n setIsAnimating(true)\n animatingTimeout.current = setTimeout(() => {\n setIsAnimating(false)\n if (onExited && !expanded) onExited()\n }, duration)\n }, [expanded, duration, onExited])\n const transition = useMemo(() => {\n if (!isAnimating && expanded) return 'height 0ms'\n if (!animateOpacity) return `height ${duration}ms`\n return `height ${duration}ms, opacity ${duration}ms ease ${expanded ? duration : 0}ms`\n }, [animateOpacity, duration, expanded, isAnimating])\n\n return (\n <Box overflow=\"hidden\" w=\"100%\" transition={transition} height={`${height}px`} {...props}>\n <Box ref={bodyRef} w=\"100%\" {...props}>\n {children}\n </Box>\n </Box>\n )\n}\n","import { Box, BoxProps } from '@chakra-ui/react'\nimport { FullSizeContext } from '@chem-po/react'\nimport useResizeObserver from '@react-hook/resize-observer'\nimport React, { FC, useCallback, useMemo, useRef, useState } from 'react'\n\nexport const FullSizeContainer = ({\n children: Children,\n ...props\n}: Omit<BoxProps, 'children'> & { children: FC<{ width: number; height: number }> }) => {\n const [width, setWidth] = useState(0)\n const [height, setHeight] = useState(0)\n\n const ref = useRef<HTMLDivElement>(null)\n const handleResize = useCallback((entry: ResizeObserverEntry) => {\n // const rect = entry.target.getBoundingClientRect()\n setWidth(entry.target.scrollWidth)\n setHeight(entry.target.scrollHeight)\n }, [])\n\n useResizeObserver(ref, handleResize)\n\n return (\n <Box ref={ref} {...props} width=\"100%\" height=\"100%\">\n <Children width={width} height={height} />\n </Box>\n )\n}\n\n// same as FullSizeContainer, but provides the width and height in a context instead of a render prop\nexport const FullSizeProvider = ({ children, ...props }: BoxProps) => {\n const [width, setWidth] = useState(0)\n const [height, setHeight] = useState(0)\n\n const ref = useRef<HTMLDivElement>(null)\n const handleResize = useCallback((entry: ResizeObserverEntry) => {\n // const rect = entry.target.getBoundingClientRect()\n setWidth(entry.target.scrollWidth)\n setHeight(entry.target.scrollHeight)\n }, [])\n\n useResizeObserver(ref, handleResize)\n\n const contextValue = useMemo(() => ({ width, height }), [width, height])\n\n return (\n <Box ref={ref} {...props} width=\"100%\" height=\"100%\">\n <FullSizeContext.Provider value={contextValue}>{children}</FullSizeContext.Provider>\n </Box>\n )\n}\n","import { BaseUserData, getUserViews, getViewRoutes, View } from '@chem-po/core'\nimport { useAuth } from '@chem-po/react'\nimport React, { createContext, FC, PropsWithChildren, useContext, useMemo } from 'react'\nimport { RouteObject } from 'react-router'\n\nexport const ViewsContext = createContext<\n Array<{ view: View<FC, BaseUserData>; routes: RouteObject[] }>\n>([])\n\nexport const useViews = () => useContext(ViewsContext)\n\nexport const ViewsProvider = ({\n children,\n views,\n}: PropsWithChildren & { views: Array<View<FC, BaseUserData>> }) => {\n const user = useAuth(s => s.user)\n const value = useMemo(\n () =>\n getUserViews(views, user).map(view => ({\n view,\n routes: getViewRoutes(view),\n })),\n [user, views],\n )\n return <ViewsContext.Provider value={value}>{children}</ViewsContext.Provider>\n}\n","import React, { PropsWithChildren, useContext } from 'react'\n\nconst ForceMobileContext = React.createContext(false)\nexport const ForceMobile = ({ children }: PropsWithChildren) => (\n <ForceMobileContext.Provider value={true}>{children}</ForceMobileContext.Provider>\n)\nexport const useForceMobile = () => useContext(ForceMobileContext)\n","import { Button, Flex, Image, useColorModeValue } from '@chakra-ui/react'\nimport { palette } from '@chem-po/core'\nimport { View } from '@chem-po/react'\nimport React, { PropsWithChildren, useMemo } from 'react'\nimport { Link, useLocation } from 'react-router-dom'\nimport { useViews } from '../../contexts/view'\n\nexport const NAV_BAR_HEIGHT = 50\n\nconst NavBarLink = ({ view, absolute }: { view: View; absolute: boolean }) => {\n const { path: paths, name, icon, iconScale } = view\n const path = Array.isArray(paths) ? paths[0] : paths\n\n // const hoverBg = useColorModeValue('#00000033', '#f7f7f777')\n // const textColor = useColorModeValue('#777', '#cdcdcd')\n const iconBrightness = useColorModeValue(1, 1.8)\n const usedBrightness = useMemo(\n () => (absolute ? 2.4 : iconBrightness),\n [absolute, iconBrightness],\n )\n const { pathname } = useLocation()\n const hoverBg = useColorModeValue('#ffffff33', '#00000033')\n const body = (\n <Button\n pointerEvents={pathname === path ? 'none' : 'auto'}\n opacity={pathname === path ? 1 : 0.7}\n width=\"100%\"\n height=\"100%\"\n borderRadius={0}\n flexFlow=\"column\"\n _hover={{\n bg: hoverBg,\n }}\n variant=\"unstyled\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\">\n <Image\n height={`${34 * (iconScale ?? 1)}px`}\n filter={`brightness(${usedBrightness})${\n absolute ? ' drop-shadow(1px 1px 3px #00000099 )' : ''\n }`}\n src={icon}\n alt={name}\n />\n {/* <Text color={textColor} lineHeight={1} fontWeight={400} fontSize='xs'>\n {name}\n </Text> */}\n </Button>\n )\n return pathname === path ? (\n <Flex key={path} flex={1} h=\"100%\" justify=\"center\">\n {body}\n </Flex>\n ) : (\n <Link\n key={path}\n style={{\n flex: 1,\n display: 'flex',\n height: '100%',\n justifyContent: 'center',\n }}\n to={path}>\n {body}\n </Link>\n )\n}\n\nexport const NavBar = ({\n selectedView,\n children,\n}: PropsWithChildren<{ selectedView?: View | null }>) => {\n const bg = useColorModeValue('#dedede', palette.gray.dark)\n const defaultBorderColor = useColorModeValue('#00000022', '#ffffff33')\n const views = useViews()\n const menuViews = useMemo(() => views.filter(v => !!v.view.icon), [views])\n const isAbsolute = useMemo(() => !!selectedView?.navBar?.absolute, [selectedView])\n const background = useMemo(() => selectedView?.navBar?.backgroundColor ?? bg, [bg, selectedView])\n const borderColor = useMemo(() => {\n if (selectedView?.navBar?.borderColor) return !!selectedView?.navBar?.borderColor\n return isAbsolute ? '#ffffff33' : defaultBorderColor\n }, [defaultBorderColor, selectedView, isAbsolute])\n return (\n <Flex\n position=\"absolute\"\n bottom={0}\n left={0}\n bg={background}\n w=\"100%\"\n transition=\"all 500ms\"\n h={`${NAV_BAR_HEIGHT}px`}\n borderTop={`1px solid ${borderColor}`}>\n <Flex position=\"relative\" w=\"100%\" justify=\"space-around\" align=\"center\">\n {menuViews.map(({ view }) => (\n <NavBarLink absolute={isAbsolute} key={view.name} view={view} />\n ))}\n {children}\n </Flex>\n </Flex>\n )\n}\n","import { Flex, Text, useColorModeValue } from '@chakra-ui/react'\nimport React from 'react'\nimport { ContentBox } from '../box/ContentBox'\n\nexport const ErrorView = ({ message }: { message?: string }) => {\n const color = useColorModeValue('gray.600', 'gray.100')\n return (\n <Flex pt={4}>\n <ContentBox>\n <Text color={color}>{message ?? 'Sorry, something went wrong.'}</Text>\n </ContentBox>\n </Flex>\n )\n}\n","import {\n CircularProgressProps,\n CircularProgress as Orig,\n useColorModeValue,\n} from '@chakra-ui/react'\nimport React from 'react'\n\nexport const CircularProgress = (props: CircularProgressProps) => {\n const color = useColorModeValue('gray.400', 'gray.400')\n const bg = useColorModeValue('gray.300', 'gray.600')\n return <Orig isIndeterminate trackColor={bg} color={color} {...props} />\n}\n","import { Center, CenterProps, HStack, StackProps, Text, useColorModeValue } from '@chakra-ui/react'\nimport { ThemedAsset, useAppAssets } from '@chem-po/react'\nimport { LottieOptions, useLottie } from 'lottie-react'\nimport React, { useEffect, useMemo } from 'react'\nimport { ContentBox } from '../box/ContentBox'\n// import loadingAnimation from './circles_loading.json'\n// import loadingAnimationLight from './circles_loading_light.json'\n\nexport const LottieLoadingLogo = ({\n size = 30,\n isLoading,\n speed = 2,\n inFeed,\n asset,\n}: {\n size?: number | string\n color?: string\n isLoading: boolean\n asset: ThemedAsset\n inFeed?: boolean\n speed?: number\n}) => {\n const _animationData = useColorModeValue(asset.default, asset.dark ?? asset.default)\n const animationData = useMemo(\n () => (inFeed ? (asset.dark ?? asset.default) : _animationData),\n [_animationData, asset, inFeed],\n )\n const options = useMemo<LottieOptions>(\n () => ({\n // animationData: getLoaderJson(propColor || defaultColor),\n animationData,\n loop: true,\n }),\n [animationData],\n )\n const style = useMemo(\n () => ({\n width: size,\n height: size,\n opacity: isLoading ? 0.85 : 0,\n transition: 'opacity 300ms ease-in-out',\n }),\n [size, isLoading],\n )\n const { View, pause, play, setSpeed } = useLottie(options, style)\n useEffect(() => {\n setSpeed(speed)\n }, [setSpeed, speed])\n useEffect(() => {\n if (isLoading) {\n play()\n } else pause()\n }, [isLoading, play, pause])\n\n return <>{View}</>\n}\n\nconst SVGLoadingLogo = ({\n size = 30,\n isLoading,\n asset,\n inFeed,\n}: {\n size?: number | string\n isLoading: boolean\n asset: ThemedAsset\n inFeed?: boolean\n}) => {\n const _svg = useColorModeValue(asset.default, asset.dark ?? asset.default)\n const svg = useMemo(() => (inFeed ? (asset.dark ?? asset.default) : _svg), [_svg, asset, inFeed])\n const style = useMemo(\n () => ({\n width: size,\n height: size,\n opacity: isLoading ? 0.85 : 0,\n transition: 'opacity 300ms ease-in-out',\n }),\n [size, isLoading],\n )\n return <img src={svg} style={style} alt=\"loading\" />\n}\n\nconst LoadingBody = ({ isLoading, size }: { isLoading: boolean; size?: number | string }) => {\n const { loading } = useAppAssets()\n if (loading.lottieJson)\n return <LottieLoadingLogo isLoading={isLoading} size={size} asset={loading.lottieJson} />\n if (loading.svg) return <SVGLoadingLogo isLoading={isLoading} size={size} asset={loading.svg} />\n return null\n}\n\nexport const LoadingLogo = ({\n isLoading,\n size,\n inFeed,\n}: {\n isLoading: boolean\n size?: number | string\n inFeed?: boolean\n}) => {\n const { loading } = useAppAssets()\n if (loading.lottieJson)\n return (\n <LottieLoadingLogo\n inFeed={inFeed}\n isLoading={isLoading}\n size={size}\n asset={loading.lottieJson}\n />\n )\n if (loading.svg)\n return <SVGLoadingLogo inFeed={inFeed} isLoading={isLoading} size={size} asset={loading.svg} />\n return <Text color=\"red\">ERROR: No loading animation found</Text>\n}\n\nexport const Loading = ({\n text = 'Loading...',\n inBox,\n stackProps,\n}: {\n text?: string\n inBox?: boolean\n stackProps?: StackProps\n}) => {\n const body = (\n <HStack p={2} {...stackProps}>\n <LoadingBody isLoading />\n <Text opacity={0.8} fontSize=\"sm\">\n {text}\n </Text>\n </HStack>\n )\n return inBox ? <ContentBox>{body}</ContentBox> : body\n}\n\nexport const LoadingOverlay = ({\n isLoading,\n text,\n inFeed,\n ...props\n}: { isLoading: boolean; text?: string; inFeed?: boolean } & CenterProps) => {\n const bg = useColorModeValue('#ffffffaa', '#00000088')\n return (\n <Center\n pos={'absolute'}\n top={0}\n left={0}\n right={0}\n bottom={0}\n bg={bg}\n pointerEvents={isLoading ? 'auto' : 'none'}\n opacity={isLoading ? 1 : 0}\n {...props}>\n {!text ? (\n <LoadingLogo inFeed={inFeed} size={100} isLoading={isLoading} />\n ) : (\n <Loading text={text} />\n )}\n </Center>\n )\n}\n","import { Center, HStack, Text, VStack } from '@chakra-ui/react'\nimport { useAuth } from '@chem-po/react'\nimport React, { useEffect, useRef } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { ContentBox } from '../box/ContentBox'\nimport { CircularProgress } from '../loading/CircularProgress'\nimport { Loading } from '../loading/Loading'\n\nexport const RedirectView: React.FC<{ loading?: boolean }> = ({ loading }) => {\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null)\n const authLoading = useAuth(s => s.signInLoading)\n const multiFactorLoading = useAuth(s => s.multiFactorLoading)\n\n const navigate = useNavigate()\n useEffect(() => {\n if (!loading && !authLoading) {\n timer.current = setTimeout(() => {\n navigate('/')\n }, 1500)\n }\n return () => {\n if (timer.current) clearTimeout(timer.current)\n }\n }, [loading, navigate, authLoading])\n\n return !loading && !authLoading ? (\n <Center minH=\"100%\" w=\"100%\">\n <ContentBox maxW=\"500px\">\n <HStack spacing={3}>\n <CircularProgress size={6} />\n <VStack spacing={0} align=\"flex-start\">\n <Text>404</Text>\n <Text fontSize=\"sm\" opacity={0.7}>\n Page not found - redirecting to Home...\n </Text>\n </VStack>\n </HStack>\n </ContentBox>\n </Center>\n ) : (\n <Loading />\n )\n}\n","import { Box, Center, Flex, useColorModeValue } from '@chakra-ui/react'\nimport { cssGradients } from '@chem-po/core'\nimport { MobileFrameProvider, useScreen, View } from '@chem-po/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport React, { PropsWithChildren, ReactNode, useMemo, useRef } from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { matchRoutes, useLocation, useOutlet } from 'react-router-dom'\nimport { CSSTransition, SwitchTransition } from 'react-transition-group'\nimport { useViews, ViewsProvider } from '../../../contexts/view'\nimport { ForceMobile } from '../../modal/ForceMobile'\nimport { NAV_BAR_HEIGHT, NavBar } from '../../nav/NavBar'\nimport { ErrorView } from '../../view/ErrorView'\nimport { RedirectView } from '../../view/RedirectView'\nimport './styles.css'\n\nconst IPHONE_12_WIDTH = 390\nconst IPHONE_12_HEIGHT = 844\nconst IPHONE_12_ASPECT = IPHONE_12_WIDTH / IPHONE_12_HEIGHT\n\nconst MobileFrameBody = ({\n children,\n navBarChildren,\n}: PropsWithChildren<{ navBarChildren?: ReactNode }>) => {\n const { isMobile, height: screenHeight, width: screenWidth } = useScreen()\n\n // const contentHeight = useMemo(() => (isMobile ? screenHeight : IPHONE_12_HEIGHT), [isMobile, screenHeight])\n // const contentWidth = useMemo(() => (isMobile ? screenWidth : IPHONE_12_WIDTH), [isMobile, screenWidth])\n // should be constrained to the screen size\n const { contentHeight, contentWidth } = useMemo(() => {\n let h = isMobile ? screenHeight : IPHONE_12_HEIGHT\n let w = isMobile ? screenWidth : IPHONE_12_WIDTH\n if (isMobile) return { contentHeight: h, contentWidth: w }\n const cappedHeight = Math.floor(screenHeight * 0.9)\n const cappedWidth = Math.floor(screenWidth * 0.9)\n if (h > cappedHeight) {\n w = Math.floor(cappedHeight * IPHONE_12_ASPECT)\n h = cappedHeight\n } else if (w > cappedWidth) {\n h = Math.floor(cappedWidth / IPHONE_12_ASPECT)\n w = cappedWidth\n }\n return { contentHeight: h, contentWidth: w }\n }, [isMobile, screenHeight, screenWidth])\n\n const outerBg = useColorModeValue(cssGradients.accentGray, cssGradients.darkGray)\n const location = useLocation()\n const currentOutlet = useOutlet()\n const views = useViews()\n const view = useMemo(() => views.find(v => !!matchRoutes(v.routes, location)), [views, location])\n const viewKey = useMemo(() => {\n if (!view) return '404'\n return typeof view.view.path === 'string' ? view.view.path : view.view.path[0]\n }, [view])\n const overlayRef = useRef<HTMLDivElement>(null)\n const nodeRef = useRef<HTMLDivElement>(null)\n const absoluteNavBar = useMemo(() => !!view?.view?.navBar?.absolute, [view])\n const bodyHeight = useMemo(\n () => contentHeight - (absoluteNavBar ? 0 : NAV_BAR_HEIGHT),\n [contentHeight, absoluteNavBar],\n )\n const contextData = useMemo(\n () => ({\n overlayRef,\n height: contentHeight,\n width: contentWidth,\n absoluteNavBar,\n bodyHeight,\n }),\n [overlayRef, contentHeight, contentWidth, absoluteNavBar, bodyHeight],\n )\n return (\n <ForceMobile>\n <MobileFrameProvider value={contextData}>\n <Center position=\"relative\" bg={outerBg} w=\"100%\" height=\"100%\">\n <Flex\n bg=\"background.100\"\n // ref={frameRef}\n position=\"relative\"\n style={{ height: `${contentHeight}px`, width: `${contentWidth}px` }}\n boxShadow={isMobile ? 'none' : '1px 1px 4px rgba(0,0,0,0.4)'}\n borderRadius={isMobile ? 0 : 10}\n overflow=\"hidden\"\n direction=\"column\"\n maxH={contentHeight}>\n <AnimatePresence>\n <SwitchTransition>\n <CSSTransition\n key={viewKey}\n nodeRef={nodeRef}\n unmountOnExit\n classNames=\"page\"\n timeout={300}>\n {() => (\n <motion.div\n style={{\n position: 'relative',\n width: '100%',\n overflow: 'hidden',\n }}\n animate={{\n height: bodyHeight,\n opacity: 1,\n dur: 0.5,\n scale: 1,\n }}\n initial={{ opacity: 0, scale: 0.9, height: bodyHeight }}\n exit={{ opacity: 0 }}>\n <ErrorBoundary FallbackComponent={() => <ErrorView />}>\n {view ? currentOutlet : <RedirectView />}\n </ErrorBoundary>\n {children ? (\n <Box\n height=\"100%\"\n w=\"100%\"\n position=\"absolute\"\n top={0}\n left={0}\n pointerEvents=\"none\">\n {children}\n </Box>\n ) : null}\n </motion.div>\n )}\n </CSSTransition>\n </SwitchTransition>\n </AnimatePresence>\n <NavBar selectedView={view?.view}>{navBarChildren}</NavBar>\n <Flex pos=\"absolute\" pointerEvents=\"none\" bottom={0} w=\"100%\" h=\"100%\">\n <Flex ref={overlayRef} w=\"100%\" h=\"100%\" pos=\"relative\" />\n </Flex>\n </Flex>\n </Center>\n </MobileFrameProvider>\n </ForceMobile>\n )\n}\n\nexport const MobileFrame = ({\n children,\n navBarChildren,\n views,\n}: PropsWithChildren<{ views: View[]; navBarChildren?: ReactNode }>) => (\n <ViewsProvider views={views}>\n <MobileFrameBody navBarChildren={navBarChildren}>{children}</MobileFrameBody>\n </ViewsProvider>\n)\n","import { DeleteIcon } from '@chakra-ui/icons'\nimport {\n AlertDialog,\n AlertDialogBody,\n AlertDialogContent,\n AlertDialogOverlay,\n Button,\n Flex,\n HStack,\n IconButton,\n IconButtonProps,\n Text,\n useToast,\n VStack,\n} from '@chakra-ui/react'\nimport React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react'\n\nconst defaultAlertBodyText = \"Are you sure? You can't undo this action afterwards.\"\nexport const DeleteConfirmAlert = ({\n confirmActive,\n onCancel,\n onConfirm,\n body = defaultAlertBodyText,\n actionName = 'Delete',\n actionLoading,\n itemName,\n}: {\n confirmActive: boolean\n onCancel: () => void\n onConfirm: () => void\n body?: string | ReactNode\n actionLoading?: boolean\n actionName?: string\n itemName: string\n}) => {\n const cancelRef = useRef<HTMLButtonElement>(null)\n return (\n <AlertDialog\n isCentered\n isOpen={confirmActive}\n leastDestructiveRef={cancelRef}\n onClose={() => onCancel()}>\n <AlertDialogOverlay>\n <AlertDialogContent gap={0}>\n <AlertDialogBody>\n <VStack align=\"flex-start\" py={1}>\n <Text fontSize=\"lg\" fontWeight={500}>\n {actionName} {itemName}?\n </Text>\n {typeof body === 'string' ? <Text fontSize=\"md\">{body}</Text> : body}\n <HStack justify=\"flex-end\" w=\"100%\">\n <Button size=\"sm\" ref={cancelRef} onClick={onCancel}>\n Cancel\n </Button>\n <Button\n size=\"sm\"\n isLoading={actionLoading}\n color=\"white\"\n textShadow=\"1px 1px 3px #00000077\"\n bg=\"red.500\"\n _dark={{\n bg: 'red.500',\n }}\n onClick={onConfirm}>\n {actionName}\n </Button>\n </HStack>\n </VStack>\n </AlertDialogBody>\n </AlertDialogContent>\n </AlertDialogOverlay>\n </AlertDialog>\n )\n}\n\nexport const DeleteButton: React.FC<\n Partial<IconButtonProps> & {\n onDelete: (() => Promise<any>) | (() => void)\n itemName: string\n actionName?: string\n noConfirm?: boolean\n text?: string\n alertBody?: string | ReactNode\n }\n> = ({ onDelete, itemName, noConfirm, alertBody, text, actionName = 'Delete', ...props }) => {\n const [deleteLoading, setDeleteLoading] = useState(false)\n const [confirmActive, setConfirmActive] = useState(false)\n const confirmTimer = useRef<ReturnType<typeof setTimeout> | null>(null)\n const isMounted = useRef(true)\n useEffect(() => {\n isMounted.current = true\n\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const toast = useToast()\n const handleDelete = useCallback(async () => {\n if (confirmTimer.current) clearTimeout(confirmTimer.current)\n setConfirmActive(false)\n if (onDelete) {\n setDeleteLoading(true)\n try {\n await onDelete()\n } catch (err: any) {\n console.error(err)\n toast({\n title: 'Error',\n description: err.message ?? 'An error occurred',\n status: 'error',\n duration: 5000,\n isClosable: true,\n })\n }\n if (isMounted.current) {\n setDeleteLoading(false)\n }\n } else {\n console.error('No delete function')\n }\n }, [onDelete, toast])\n\n return (\n <>\n {text ? (\n <Button\n variant=\"ghost\"\n size={props.size ?? 'md'}\n aria-label=\"delete\"\n _hover={{ color: 'red.600', bg: 'red.200' }}\n color=\"red.600\"\n onClick={e => {\n e.stopPropagation()\n if (noConfirm) handleDelete()\n else setConfirmActive(true)\n }}\n isLoading={deleteLoading}\n {...props}>\n <Flex align=\"center\" gap={1}>\n <DeleteIcon />\n <Text>{text}</Text>\n </Flex>\n </Button>\n ) : (\n <IconButton\n variant=\"ghost\"\n size={props.size ?? 'sm'}\n aria-label={actionName}\n _hover={{ color: 'red.600', bg: 'red.200' }}\n color=\"red.500\"\n borderRadius=\"full\"\n icon={<DeleteIcon />}\n onClick={e => {\n e.stopPropagation()\n if (noConfirm) handleDelete()\n else setConfirmActive(true)\n }}\n isLoading={deleteLoading}\n {...props}\n />\n )}\n {noConfirm ? null : (\n <DeleteConfirmAlert\n confirmActive={confirmActive}\n onCancel={() => setConfirmActive(false)}\n actionLoading={deleteLoading}\n onConfirm={() => {\n handleDelete()\n }}\n actionName={actionName}\n body={alertBody}\n itemName={itemName}\n />\n )}\n </>\n )\n}\n","import { Box, Flex, IconButton, IconButtonProps, Tooltip } from '@chakra-ui/react'\nimport React, { JSX } from 'react'\nimport { useBorderColor } from '../../hooks'\n\nexport interface ToggleOption<Option extends string = string> {\n id: Option\n label: string\n disabledMessage?: string\n Render: (selected: boolean) => JSX.Element\n}\nexport interface ToggleProps<Option extends string> {\n options: ToggleOption<Option>[]\n value: Option\n size?: number\n onChange: (value: Option) => Promise<void> | void\n}\n\nconst ToggleButton = <Option extends string>({\n selected,\n option: { Render, label, disabledMessage },\n size,\n ...props\n}: Omit<IconButtonProps, 'children' | 'aria-label' | 'size'> & {\n option: ToggleOption<Option>\n size: number\n selected: boolean\n}) => {\n const body = (\n <Box>\n <IconButton\n variant=\"unstyled\"\n w={`${size}px`}\n h={`${size}px`}\n minW={0}\n borderRadius={0}\n outline=\"none\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n opacity={!disabledMessage ? 1 : 0.6}\n filter={!disabledMessage ? 'none' : 'grayscale(1)'}\n bg={selected ? 'whiteAlpha.500' : 'blackAlpha.100'}\n _dark={{ bg: selected ? 'blackAlpha.500' : 'whiteAlpha.200' }}\n icon={Render(selected)}\n pointerEvents={selected ? 'none' : 'auto'}\n aria-label={label}\n {...props}\n />\n </Box>\n )\n\n return (\n <Tooltip label={disabledMessage ?? label} aria-label={label}>\n {body}\n </Tooltip>\n )\n}\n\nexport const Toggle = <Option extends string>({\n value,\n onChange,\n size = 28,\n options,\n}: ToggleProps<Option>) => {\n const borderColor = useBorderColor()\n return (\n <Flex\n bg=\"whiteAlpha.300\"\n _dark={{ bg: 'blackAlpha.300' }}\n border={`1px solid ${borderColor}`}\n borderRadius={3}>\n {options.map((option, i) => (\n <ToggleButton<Option>\n key={option.id}\n onClick={() => {\n onChange(option.id)\n }}\n option={option}\n size={size}\n borderLeftRadius={i ? 0 : 3}\n borderRightRadius={i === options.length - 1 ? 3 : 0}\n selected={option.id === value}\n borderLeft={i ? `1px solid ${borderColor}` : 'none'}\n />\n ))}\n </Flex>\n )\n}\n","import { AnyObject, WithId } from '@chem-po/core'\nimport React, { createContext, PropsWithChildren, useContext, useMemo } from 'react'\n\ninterface MediaFeedContextValue<T extends AnyObject = AnyObject> {\n curr: WithId<T> | null\n}\nexport const MediaFeedContext = createContext<MediaFeedContextValue<any>>(\n {} as MediaFeedContextValue<any>,\n)\n\nexport const MediaFeedProvider = <T extends AnyObject = AnyObject>({\n curr,\n children,\n}: PropsWithChildren<{ curr: WithId<T> | null }>) => {\n const contextData = useMemo(() => ({ curr }), [curr])\n return <MediaFeedContext.Provider value={contextData}>{children}</MediaFeedContext.Provider>\n}\nexport const useMediaFeed = <T extends AnyObject = AnyObject>() =>\n useContext(MediaFeedContext) as MediaFeedContextValue<T>\n","import { CloseIcon } from '@chakra-ui/icons'\nimport { Center, IconButton, Image, Modal, ModalContent, ModalOverlay } from '@chakra-ui/react'\nimport { useScreen } from '@chem-po/react'\nimport React, { SyntheticEvent, useCallback, useMemo, useState } from 'react'\nimport { LoadingLogo } from '../loading/Loading'\n\nexport const ImageViewOverlay = ({ src, onClose }: { src: string; onClose: () => void }) => {\n const [loading, setLoading] = useState(true)\n const screenWidth = useScreen(s => s.width)\n const screenHeight = useScreen(s => s.height)\n const [imageSize, setImageSize] = useState({ width: screenWidth / 2, height: screenHeight / 2 })\n\n const { height, width } = useMemo(() => {\n if (loading) return imageSize\n const ratio = imageSize.width / imageSize.height\n let h = Math.min(imageSize.height, screenHeight * 0.9)\n let w = h * ratio\n if (w > screenWidth * 0.9) {\n w = Math.min(imageSize.width, screenWidth * 0.9)\n h = w / ratio\n }\n return { height: h, width: w }\n }, [screenHeight, screenWidth, imageSize, loading])\n\n const onLoadStart = useCallback(() => setLoading(true), [])\n const onLoad = useCallback((e: SyntheticEvent<HTMLImageElement>) => {\n const { naturalWidth, naturalHeight } = e.currentTarget\n setImageSize({ width: naturalWidth, height: naturalHeight })\n setLoading(false)\n }, [])\n return (\n <Modal size=\"full\" isOpen onClose={onClose}>\n <ModalOverlay bg=\"blackAlpha.700\" />\n <ModalContent\n style={{ background: 'transparent' }}\n pointerEvents=\"none\"\n width=\"100%\"\n height=\"100%\">\n <Center\n pointerEvents=\"none\"\n position=\"fixed\"\n p={[4, 6, 8]}\n top={0}\n left={0}\n right={0}\n bottom={0}\n zIndex={4}>\n <Center\n opacity={loading ? 0 : 1}\n transition=\"all 500ms\"\n overflow=\"hidden\"\n w={`${width}px`}\n height={`${height}px`}>\n <Image\n onLoadStart={onLoadStart}\n onLoad={onLoad}\n transition=\"opacity 300ms\"\n height=\"100%\"\n objectFit=\"contain\"\n borderRadius={4}\n src={src}\n />\n </Center>\n <IconButton\n borderRadius=\"full\"\n position=\"absolute\"\n top={4}\n right={4}\n aria-label=\"close\"\n icon={<CloseIcon />}\n onClick={onClose}\n />\n </Center>\n <Center\n position=\"absolute\"\n top={0}\n left={0}\n right={0}\n bottom={0}\n pointerEvents=\"none\"\n opacity={loading ? 1 : 0}\n transition=\"opacity 300ms\">\n <LoadingLogo isLoading={loading} size={70} />\n </Center>\n </ModalContent>\n </Modal>\n )\n}\n","import { BoxProps, Center, IconButton, Image, ImageProps } from '@chakra-ui/react'\nimport { useColorModeValue, useMounted } from '@chem-po/react'\nimport React, { SyntheticEvent, useCallback, useEffect, useRef, useState } from 'react'\nimport { ImageViewOverlay } from '../overlay/ImageViewOverlay'\nimport { LoadingLogo } from './Loading'\n\nexport interface LoadingImageProps {\n src?: string | null\n loadingOverride?: boolean\n onLoad?: ImageProps['onLoad']\n alt?: string\n withFullView?: boolean\n buttonFullView?: boolean\n imageProps?: Omit<ImageProps, 'onLoad'>\n}\n\nconst emptyPng =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkAAIAAAoAAv/lxKUAAAAASUVORK5CYII='\nexport const LoadingImage = ({\n src,\n loadingOverride,\n alt,\n onLoad,\n width,\n height,\n withFullView,\n buttonFullView,\n imageProps,\n ...boxProps\n}: LoadingImageProps & Omit<BoxProps, 'onLoad'>) => {\n const [imageLoading, setImageLoading] = useState(!!src)\n const imageRef = useRef<HTMLImageElement>(null)\n\n const [viewing, setViewing] = useState(false)\n const mounted = useMounted(100)\n useEffect(() => {\n if (imageRef.current?.complete) {\n setImageLoading(true)\n }\n }, [imageRef])\n\n const handleImageLoad = useCallback(\n (e: SyntheticEvent<HTMLImageElement>) => {\n setImageLoading(false)\n if (onLoad) onLoad(e)\n },\n [onLoad],\n )\n\n const [prevSrc, setPrevSrc] = useState(src)\n useEffect(() => {\n if (src) setPrevSrc(src)\n }, [src, prevSrc])\n\n const fullViewButtonFilter = useColorModeValue(\n 'none',\n 'brightness(300%) drop-shadow(1px 1px 3px #00000066)',\n )\n\n const loading = imageLoading || !!loadingOverride\n return (\n <Center\n opacity={mounted ? 1 : 0}\n transition=\"opacity 333ms\"\n w={width ?? '100%'}\n h={height ?? '100%'}\n overflow=\"hidden\"\n position=\"relative\"\n {...boxProps}>\n <Image\n src={src ?? emptyPng}\n alt={alt}\n onClick={!withFullView || buttonFullView ? undefined : () => setViewing(true)}\n onLoad={handleImageLoad}\n onLoadStart={() => setImageLoading(true)}\n top={0}\n left={0}\n cursor={!withFullView || buttonFullView ? 'default' : 'pointer'}\n draggable={false}\n opacity={src && !loading ? 1 : 0}\n transition=\"opacity 300ms ease-in-out\"\n w=\"100%\"\n h=\"100%\"\n objectFit={src ? 'cover' : 'contain'}\n zIndex={0}\n {...imageProps}\n />\n {buttonFullView ? (\n <IconButton\n pos=\"absolute\"\n top={2}\n right={2}\n zIndex={1}\n w={7}\n minW={0}\n borderRadius={10}\n h={7}\n size=\"sm\"\n aria-label=\"View Image\"\n icon={\n <Image\n height=\"20px\"\n src=\"/icons/open_in_full.svg\"\n opacity={0.8}\n filter={fullViewButtonFilter}\n />\n }\n onClick={() => setViewing(true)}\n />\n ) : null}\n <Center\n pos=\"absolute\"\n top={0}\n left={0}\n zIndex={2}\n pointerEvents=\"none\"\n transition=\"opacity 0.5s ease-in-out\"\n opacity={loading || !src ? 1 : 0}\n w=\"100%\"\n h=\"100%\">\n <LoadingLogo isLoading={loading} size=\"60%\" />\n </Center>\n {viewing ? (\n <ImageViewOverlay src={src ?? emptyPng} onClose={() => setViewing(false)} />\n ) : null}\n </Center>\n )\n}\n","import { Center, Flex, Switch, Text, useToast } from '@chakra-ui/react'\nimport React, { useCallback, useState } from 'react'\nimport { Loading } from './Loading'\n\nexport const LoadingSwitch = ({\n value,\n label,\n onChange,\n}: {\n value: boolean\n label: string\n onChange: (updated: boolean) => Promise<void>\n}) => {\n const toast = useToast()\n const [isLoading, setIsLoading] = useState(false)\n\n const reportComplete = useCallback((fetchedOn: number) => {\n const buffer = Math.max(0, 1000 - (Date.now() - fetchedOn))\n setTimeout(() => {\n setIsLoading(false)\n }, buffer)\n }, [])\n\n return (\n <Flex\n py={1}\n pr={2}\n pl={3}\n bg=\"gray.700\"\n borderRadius={12}\n boxShadow=\"0 0 4px black\"\n pos=\"relative\"\n align=\"center\">\n <Flex\n opacity={isLoading ? 0 : 1}\n transition={`opacity 300ms ${isLoading ? 'ease-out' : 'ease-in'}`}\n pointerEvents={isLoading ? 'none' : 'auto'}\n align=\"center\"\n gap={2}>\n <Text style={{ fontSize: '1.2rem', height: '24px' }}>{label}</Text>\n <Switch\n size=\"md\"\n isChecked={value}\n onChange={e => {\n setIsLoading(true)\n const fetchedOn = Date.now()\n onChange(e.target.checked).catch(err => {\n console.error(err)\n toast({\n title: 'Error',\n description: err?.message ?? 'Error occurred',\n status: 'error',\n duration: 5000,\n isClosable: true,\n })\n })\n\n reportComplete(fetchedOn)\n }}\n />\n </Flex>\n <Center\n opacity={isLoading ? 1 : 0}\n transition={`opacity 300ms ${!isLoading ? 'ease-out' : 'ease-in'}`}\n pointerEvents={isLoading ? 'auto' : 'none'}\n pos=\"absolute\"\n top=\"-10%\"\n left=\"-10%\"\n w=\"120%\"\n borderRadius={8}\n p={1}\n gap={2}\n h=\"120%\">\n <Loading />\n </Center>\n </Flex>\n )\n}\n","import { SpringOptions } from 'framer-motion'\n\nexport const springConfig: SpringOptions = {\n damping: 25,\n stiffness: 200,\n bounce: 0.5,\n // restSpeed: 0.1,\n}\n\nexport const SWIPE_THRESHOLD = 75\nexport const REFRESH_THRESHOLD = 100\n","import { AnyObject, WithId } from '@chem-po/core'\nimport { MobileFrameContextData, useDocument, useMobileFrame } from '@chem-po/react'\nimport { motion, MotionValue, useMotionValue, useSpring, useTransform } from 'framer-motion'\nimport React, { JSX, useEffect, useMemo, useRef } from 'react'\nimport { springConfig } from './constants'\nimport { PanelStatus } from './types'\n\nconst getContentScale = (status: PanelStatus) => {\n // if (status === 'current') return 1\n if (status === 'current') return 1\n return 0\n}\nconst getContentX = (status: PanelStatus, contentSize: { width: number; height: number }) => {\n const { width: cWidth } = contentSize\n if (status === 'current') return 0\n if (status === 'next') return cWidth\n if (status === 'prev') return -cWidth\n return 0\n}\n\nconst getContentY = (status: PanelStatus, contentSize: { width: number; height: number }) => {\n const { height: cHeight } = contentSize\n if (status === 'current') return 0\n if (status === 'next') return cHeight * 1.1\n if (status === 'prev') return -cHeight * 1.1\n return 0\n}\n\ninterface FeedContentPaneProps<T extends AnyObject = AnyObject> {\n id: string\n collectionPath: string\n RenderItem: (i: WithId<T>) => JSX.Element\n onItemLoad: (data: WithId<T> | null) => void\n status: PanelStatus\n enterStatus?: PanelStatus | null\n offsetY: MotionValue<number>\n}\n\nexport const FeedContentPane = <T extends AnyObject = AnyObject>({\n id,\n collectionPath,\n onItemLoad,\n RenderItem,\n status,\n offsetY,\n enterStatus,\n}: FeedContentPaneProps<T>) => {\n const contentSize = useMobileFrame()\n const scale = useSpring(0, springConfig)\n const baseY = useMotionValue(getContentY(enterStatus ?? 'next', contentSize))\n const yVal = useTransform(() => baseY.get() + offsetY.get())\n const y = useSpring(yVal, springConfig)\n\n const docPath = useMemo(() => `${collectionPath}/${id}`, [collectionPath, id])\n const { data: item } = useDocument<T>(docPath, onItemLoad)\n\n const init = useRef<{\n status: PanelStatus\n contentSize: MobileFrameContextData\n y: number\n scale: number\n }>({\n contentSize,\n status: enterStatus ?? status,\n // x: getContentX(fromStatus || status, contentSize),\n y: getContentY(enterStatus ?? status, contentSize),\n scale: getContentScale(enterStatus ?? status),\n })\n\n useEffect(() => {\n const newScale = getContentScale(status)\n const updatedX = getContentX(status, contentSize)\n baseY.set(updatedX)\n scale.set(newScale)\n }, [status, baseY, scale, contentSize])\n\n return (\n // <AnimatePresence>\n <motion.div\n initial={{\n x: 0,\n y: init.current.y,\n scale: init.current.scale,\n }}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n touchAction: 'none',\n userSelect: 'none',\n height: '100%',\n y,\n scale,\n opacity: scale,\n width: '100%',\n }}\n exit={{\n opacity: 0,\n scale: 0,\n // x: getContentX(fromStatus || status, contentSize),\n x: 0,\n y: getContentY(enterStatus === 'next' ? 'prev' : 'next', contentSize),\n }}>\n {item ? RenderItem(item) : null}\n </motion.div>\n // </AnimatePresence>\n )\n}\n","import { useToast } from '@chakra-ui/react'\nimport { FetchFeedFunction } from '@chem-po/core'\nimport { useAuth } from '@chem-po/react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { UpdatePanelsArgs } from './types'\n\nconst DEFAULT_LIMIT = 10\nexport const useMediaFeed = (\n fetch: FetchFeedFunction,\n onUpdatePanels: (items: UpdatePanelsArgs) => void,\n limit: number = DEFAULT_LIMIT,\n authRequired = false,\n) => {\n // first element is prev ids, second element is curr ids, third element is next ids\n const [ids, setIds] = useState<[string[] | null, string[] | null, string[] | null]>([\n null,\n null,\n null,\n ])\n const [idIdx, setIdIdx] = useState<number>(0)\n const user = useAuth(s => s.user)\n\n const [loading, setLoading] = useState(false)\n const [refreshing, setRefreshing] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [itemLoading, setItemLoading] = useState(false)\n const [direction, setDirection] = useState<'next' | 'prev' | null>(null)\n\n const toast = useToast()\n\n const fetchingId = useRef<string | null>(null)\n\n const idsRef = useRef<{ prev: string | null; curr: string | null; next: string | null }>({\n prev: null,\n curr: null,\n next: null,\n })\n\n const updateCurr = useCallback(\n (id: string | null) => {\n if (id) {\n if (idsRef.current.prev === id) {\n idsRef.current.prev = null\n }\n if (idsRef.current.next === id) {\n idsRef.current.next = null\n }\n }\n idsRef.current.curr = id\n onUpdatePanels({ ...idsRef.current })\n },\n [onUpdatePanels],\n )\n\n const updateNext = useCallback(\n (id: string | null) => {\n if (id) {\n if (idsRef.current.prev === id) {\n idsRef.current.prev = null\n }\n if (idsRef.current.curr === id) {\n idsRef.current.curr = null\n }\n }\n idsRef.current.next = id\n onUpdatePanels({ ...idsRef.current })\n },\n [onUpdatePanels],\n )\n\n const updatePrev = useCallback(\n (id: string | null) => {\n if (id) {\n if (idsRef.current.curr === id) {\n idsRef.current.curr = null\n }\n if (idsRef.current.next === id) {\n idsRef.current.next = null\n }\n }\n idsRef.current.prev = id\n onUpdatePanels({ ...idsRef.current })\n },\n [onUpdatePanels],\n )\n\n const fetchIds = useCallback(\n async (\n startBefore: string | null,\n startAfter: string | null,\n isPrefetch: boolean,\n ): Promise<string[]> => {\n if (!user && authRequired) return []\n if (!isPrefetch) setLoading(true)\n\n try {\n const data = await fetch({ limit, startAfter, startBefore })\n if (!isPrefetch) {\n const firstId = data.ids[0]\n const secondId = data.ids[1] || null\n updateCurr(firstId)\n updateNext(secondId)\n updatePrev(startAfter)\n if (startAfter) {\n setIds(s => [s[1], data.ids, null])\n } else if (startBefore) {\n setIds(s => [null, data.ids, s[1]])\n } else {\n setIds([null, data.ids, null])\n }\n const newLastId = data.ids[data.ids.length - 1]\n if (newLastId) {\n fetchIds(null, newLastId, true)\n }\n } else if (startAfter) {\n setIds(s => [s[0], s[1], data.ids])\n } else if (startBefore) {\n setIds(s => [data.ids, s[1], s[2]])\n }\n setLoading(false)\n return data.ids || []\n } catch (err: any) {\n setError(err.message)\n toast({\n title: 'Error fetching feed',\n description: err.message,\n status: 'error',\n duration: 9000,\n isClosable: true,\n })\n }\n setLoading(false)\n return []\n },\n [fetch, toast, user, authRequired, updateCurr, updateNext, updatePrev, limit],\n )\n\n // handles prefetching of next items\n const getNextId = useCallback(\n async (currIdx: number, isPrefetch: boolean): Promise<{ id: string; idx: number } | null> => {\n const currIds = ids[1] ?? []\n const nextIds = ids[2] ?? []\n const nextIdx = currIdx + 1\n if (nextIdx < currIds.length) {\n return { id: currIds[nextIdx], idx: nextIdx }\n }\n if (nextIds[0]) {\n const newLastId = nextIds[nextIds.length - 1]\n if (!isPrefetch) {\n setIds(s => [s[1], s[2], null])\n fetchIds(null, newLastId, true)\n }\n return { id: nextIds[0], idx: 0 }\n }\n const fetchedNextIds = await fetchIds(null, currIds[currIds.length - 1], isPrefetch)\n const fetchedNextId = fetchedNextIds[0]\n return fetchedNextId ? { id: fetchedNextId, idx: 0 } : null\n },\n [ids, fetchIds],\n )\n\n const getPrevId = useCallback(\n async (currIdx: number, isPrefetch: boolean): Promise<{ id: string; idx: number } | null> => {\n const currIds = ids[1] ?? []\n const prevIds = ids[0] ?? []\n const prevIdx = currIdx - 1\n if (prevIdx >= 0) {\n return { id: currIds[prevIdx], idx: prevIdx }\n }\n if (prevIds[prevIds.length - 1]) {\n const newFirstId = prevIds[0]\n if (!isPrefetch) {\n setIds([null, ids[0], ids[1]])\n fetchIds(newFirstId, null, true)\n }\n return { id: prevIds[prevIds.length - 1], idx: prevIds.length - 1 }\n }\n const fetchedPrevIds = await fetchIds(currIds[0], null, isPrefetch)\n const fetchedPrevId = fetchedPrevIds[fetchedPrevIds.length - 1]\n return fetchedPrevId ? { id: fetchedPrevId, idx: fetchedPrevIds.length - 1 } : null\n },\n [ids, fetchIds],\n )\n\n const goNext = useCallback(async () => {\n if (itemLoading) return\n // case 1: next item ID is fetched\n const newPrev = idsRef.current.curr\n\n setItemLoading(true)\n const nextIdData = await getNextId(idIdx, false)\n setDirection('next')\n if (nextIdData) {\n const { id: nextId, idx: nextIdx } = nextIdData\n fetchingId.current = nextId\n setIdIdx(nextIdx)\n updateCurr(nextId)\n updateNext(null)\n updatePrev(newPrev)\n getNextId(nextIdx, true).then(newNextId => updateNext(newNextId?.id ?? null))\n } else {\n toast({\n title: 'No more items',\n status: 'info',\n duration: 3000,\n isClosable: true,\n })\n }\n setItemLoading(false)\n }, [idIdx, getNextId, updateCurr, updateNext, updatePrev, toast, itemLoading])\n\n const goPrev = useCallback(async () => {\n if (itemLoading) return\n // case 1: next item ID is fetched\n const newNext = idsRef.current.curr\n\n setDirection('prev')\n setItemLoading(true)\n const prevIdData = await getPrevId(idIdx, false)\n if (prevIdData) {\n const { id: prevId, idx: prevIdx } = prevIdData\n fetchingId.current = prevId\n setIdIdx(prevIdx)\n updateCurr(prevId)\n updatePrev(null)\n updateNext(newNext)\n getPrevId(prevIdx, true).then(newPrevId => updatePrev(newPrevId?.id ?? null))\n } else {\n toast({\n title: 'No more items',\n status: 'info',\n duration: 3000,\n isClosable: true,\n })\n }\n setItemLoading(false)\n }, [idIdx, getPrevId, updateCurr, updateNext, updatePrev, toast, itemLoading])\n\n const refresh = useCallback(async () => {\n setLoading(true)\n setRefreshing(true)\n setIds([null, null, null])\n updateCurr(null)\n updateNext(null)\n updatePrev(null)\n setDirection(null)\n setIdIdx(0)\n await fetchIds(null, null, false)\n setRefreshing(false)\n }, [fetchIds, updateCurr, updateNext, updatePrev])\n\n const [initFetchIds] = useState(() => fetchIds)\n useEffect(() => {\n initFetchIds(null, null, false)\n }, [initFetchIds])\n\n const canGoPrev = useMemo(() => (idIdx > 0 && !!ids[1]?.length) || !!ids[0]?.length, [ids, idIdx])\n const canGoNext = useMemo(\n () => (ids[1] && idIdx < ids[1].length) ?? !!ids[2]?.length,\n [ids, idIdx],\n )\n return useMemo(\n () => ({\n ids,\n goNext,\n goPrev,\n error,\n refresh,\n refreshing,\n loading,\n canGoNext,\n direction,\n canGoPrev,\n itemLoading,\n }),\n [\n ids,\n goNext,\n goPrev,\n loading,\n error,\n itemLoading,\n canGoNext,\n canGoPrev,\n refresh,\n refreshing,\n direction,\n ],\n )\n}\n","import { Center, CenterProps } from '@chakra-ui/react'\nimport { AnyObject, WithId } from '@chem-po/core'\nimport { useObjectUrl } from '@chem-po/react'\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\nimport { LoadingLogo } from '../loading'\nimport { GetBackgroundUrl, GetBackgroundValue } from './types'\n\nconst emptyPng =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkAAIAAAoAAv/lxKUAAAAASUVORK5CYII='\nconst FillBackground = ({\n background,\n ...props\n}: Omit<CenterProps, 'background'> & { background: string | null }) => (\n <Center\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n opacity={background ? 0.7 : 0}\n transition=\"opacity 500ms\"\n right=\"0\"\n bottom=\"0\"\n zIndex={0}\n transform=\"scale(1.075)\"\n pointerEvents=\"none\"\n backgroundImage={`url(${background ?? emptyPng})`}\n backgroundSize=\"cover\"\n backgroundPosition=\"center\"\n {...props}\n filter={props.filter ?? 'blur(15px) brightness(70%)'}\n />\n)\n\ninterface FileValueBackgroundProps<T extends AnyObject = AnyObject> {\n getBackgroundValue: GetBackgroundValue<T>\n item: WithId<T> | null\n filter?: string\n}\nconst FileValueBackground = <T extends AnyObject = AnyObject>({\n getBackgroundValue,\n item,\n filter,\n}: FileValueBackgroundProps<T>) => {\n const background = useMemo(\n () => (item ? getBackgroundValue(item) : null),\n [getBackgroundValue, item],\n )\n const { loading, url } = useObjectUrl(background)\n const usedIndex = useRef(0)\n const [index, setIndex] = useState(0)\n const [url1, setUrl1] = useState<string | null>(null)\n const [url2, setUrl2] = useState<string | null>(null)\n\n useEffect(() => {\n const usedIdx = usedIndex.current\n if (usedIdx === 0) {\n setUrl1(url)\n usedIndex.current = 1\n setIndex(0)\n } else {\n setUrl2(url)\n usedIndex.current = 0\n setIndex(1)\n }\n }, [url])\n\n return (\n <Center position=\"absolute\" top=\"0\" left=\"0\" right=\"0\" bottom=\"0\" zIndex={0}>\n <FillBackground filter={filter} opacity={index === 0 ? 1 : 0} background={url1} />\n <FillBackground filter={filter} opacity={index === 1 ? 1 : 0} background={url2} />\n <LoadingLogo isLoading={loading} />\n </Center>\n )\n}\n\nconst UrlBackground = <T extends AnyObject = AnyObject>({\n getBackgroundUrl,\n item,\n filter,\n}: {\n getBackgroundUrl: GetBackgroundUrl<T>\n item: T | null\n filter?: string\n}) => {\n const background = useMemo(() => (item ? getBackgroundUrl(item) : null), [getBackgroundUrl, item])\n const usedIndex = useRef(0)\n const [index, setIndex] = useState(0)\n const [url1, setUrl1] = useState<string | null>(null)\n const [url2, setUrl2] = useState<string | null>(null)\n\n useEffect(() => {\n if (!background) return\n if (usedIndex.current === 0) {\n setUrl1(background)\n usedIndex.current = 1\n setIndex(0)\n } else {\n setUrl2(background)\n usedIndex.current = 0\n setIndex(1)\n }\n }, [background])\n\n return (\n <Center position=\"absolute\" top=\"0\" left=\"0\" right=\"0\" bottom=\"0\" zIndex={0}>\n <FillBackground filter={filter} opacity={index === 0 ? 1 : 0} background={url1} />\n <FillBackground filter={filter} opacity={index === 1 ? 1 : 0} background={url2} />\n </Center>\n )\n}\n\ninterface MediaFeedBackgroundProps<T extends AnyObject = AnyObject> {\n getBackgroundValue?: GetBackgroundValue<T>\n getBackgroundUrl?: GetBackgroundUrl<T>\n filter?: string\n item: WithId<T> | null\n}\n\nexport const MediaFeedBackground = <T extends AnyObject = AnyObject>({\n getBackgroundValue,\n getBackgroundUrl,\n ...props\n}: MediaFeedBackgroundProps<T>) => {\n if (getBackgroundValue)\n return <FileValueBackground getBackgroundValue={getBackgroundValue} {...props} />\n if (getBackgroundUrl) return <UrlBackground getBackgroundUrl={getBackgroundUrl} {...props} />\n return null\n}\n","import { RepeatIcon } from '@chakra-ui/icons'\nimport { Center } from '@chakra-ui/react'\nimport { motion, MotionValue, useSpring, useTransform } from 'framer-motion'\nimport React, { useEffect } from 'react'\nimport { CircularProgress } from '../loading/CircularProgress'\nimport { REFRESH_THRESHOLD, SWIPE_THRESHOLD } from './constants'\n\nconst WINDOW = REFRESH_THRESHOLD - SWIPE_THRESHOLD\nexport const MediaFeedRefresh = ({\n offsetY,\n refreshing,\n canRefresh,\n}: {\n offsetY: MotionValue<number>\n refreshing: boolean\n canRefresh: boolean\n}) => {\n const progress = useTransform(offsetY, v => {\n const dist = Math.max(0, v - SWIPE_THRESHOLD)\n return dist / WINDOW\n })\n const baseY = useSpring(0)\n const isIn = useSpring(0)\n useEffect(() => {\n if (refreshing) {\n baseY.set(50)\n } else {\n baseY.set(0)\n }\n }, [refreshing, baseY])\n\n useEffect(() => {\n if (canRefresh) {\n isIn.set(1)\n } else {\n isIn.set(0)\n }\n }, [isIn, canRefresh])\n\n const y = useTransform(\n () => isIn.get() * Math.min(20, Math.max(0, baseY.get() + progress.get() ** 0.5 * 20)),\n )\n const scale = useTransform(y, v => isIn.get() * Math.min(1, Math.max(0, v / 30)))\n const rotate = useTransform(() => isIn.get() * progress.get() * 180)\n return (\n <motion.div\n style={{\n opacity: scale,\n pointerEvents: 'none',\n y,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n height: 'auto',\n scale,\n rotate,\n }}>\n <Center w=\"100%\">\n <RepeatIcon\n opacity={refreshing ? 0 : 1}\n transition={`opacity 300ms ease ${!refreshing ? 300 : 0}ms`}\n w={8}\n h={8}\n color=\"white\"\n filter=\"drop-shadow(1px 1px 3px #000000aa)\"\n />\n <CircularProgress\n size={8}\n position=\"absolute\"\n isIndeterminate\n opacity={refreshing ? 1 : 0}\n transition={`opacity 300ms ease ${refreshing ? 300 : 0}ms`}\n />\n </Center>\n </motion.div>\n )\n}\n","import { Center } from '@chakra-ui/react'\nimport { AnyObject, WithId } from '@chem-po/core'\nimport { useMobileFrame } from '@chem-po/react'\nimport { useMotionValue } from 'framer-motion'\nimport React, {\n CSSProperties,\n Dispatch,\n PropsWithChildren,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { LoadingOverlay } from '../loading'\nimport { REFRESH_THRESHOLD, SWIPE_THRESHOLD } from './constants'\nimport { MediaFeedProvider } from './context'\nimport { FeedContentPane } from './FeedContentPane'\nimport { useMediaFeed } from './hooks'\nimport { MediaFeedBackground } from './MediaFeedBackground'\nimport { MediaFeedRefresh } from './MediaFeedRefresh'\nimport { MediaBackgroundRef, MediaFeedProps, PanelData, UpdatePanelsArgs } from './types'\n\nconst useUpdatePanels = (setItems: Dispatch<React.SetStateAction<Array<PanelData>>>) =>\n useCallback(\n (data: UpdatePanelsArgs) => {\n const updated: PanelData[] = []\n if (data.prev) updated.push({ status: 'prev', id: data.prev })\n if (data.curr) {\n updated.push({\n status: 'current',\n id: data.curr,\n })\n }\n if (data.next) updated.push({ status: 'next', id: data.next })\n setItems(updated)\n },\n [setItems],\n )\n\nexport const MediaFeed = <T extends AnyObject = AnyObject>({\n fetch,\n collection: collectionPath,\n RenderItem,\n authRequired,\n getBackgroundUrl,\n getBackgroundValue,\n limit,\n defaultBackground,\n swipeDisabled,\n children,\n}: PropsWithChildren<MediaFeedProps<T>>) => {\n const { width, height } = useMobileFrame()\n\n const contentRef = useRef<HTMLDivElement>(null)\n\n const containerRef = useRef<HTMLDivElement>(null)\n // const panels = useRef<Array<FeedContentPaneRef>>([])\n const [direction, setDirection] = useState<'next' | 'prev' | null>(null)\n const [panels, setPanels] = useState<Array<PanelData>>([])\n\n const offsetY = useMotionValue(0)\n const onNewData = useUpdatePanels(setPanels)\n\n const backgroundRef = useRef<MediaBackgroundRef<T>>(null)\n\n const { goNext, goPrev, loading, canGoNext, canGoPrev, refresh, refreshing } = useMediaFeed(\n fetch,\n onNewData,\n limit,\n authRequired,\n )\n\n const pointerDown = useRef(false)\n const dragStart = useRef({ x: 0, y: 0 })\n\n const onDragStart = useCallback(\n (e: React.PointerEvent) => {\n if (swipeDisabled) return\n pointerDown.current = true\n dragStart.current = { x: e.clientX, y: e.clientY }\n const dragEndListener = (ev: PointerEvent) => {\n // const oX = Math.max(-width / 4, Math.min(width / 4, ev.clientX - dragStart.current.x))\n const maxY = canGoPrev ? SWIPE_THRESHOLD : REFRESH_THRESHOLD\n const minY = canGoNext ? -SWIPE_THRESHOLD : -REFRESH_THRESHOLD\n const oY = Math.max(minY, Math.min(maxY, ev.clientY - dragStart.current.y))\n if (contentRef.current) contentRef.current.style.setProperty('pointer-events', 'auto')\n if (canGoNext && oY < -(SWIPE_THRESHOLD - 10)) {\n setDirection('next')\n goNext()\n } else if (canGoPrev && oY > SWIPE_THRESHOLD - 10) {\n setDirection('prev')\n goPrev()\n } else if (oY > REFRESH_THRESHOLD - 10 || oY < -(REFRESH_THRESHOLD - 10)) {\n refresh()\n if (backgroundRef.current) backgroundRef.current.onNewData(null)\n }\n // else if (onSwipeUp && oY < -97) {\n // onSwipeUp()\n // }\n offsetY.set(0)\n pointerDown.current = false\n window.removeEventListener('pointerup', dragEndListener)\n }\n\n window.addEventListener('pointerup', dragEndListener)\n },\n [offsetY, goNext, goPrev, canGoNext, canGoPrev, refresh, swipeDisabled],\n )\n\n const onDragMove = useCallback(\n (e: React.PointerEvent) => {\n requestAnimationFrame(() => {\n if (pointerDown.current) {\n const oX = Math.max(-10, Math.min(10, e.clientX - dragStart.current.x))\n const maxY = canGoPrev ? SWIPE_THRESHOLD : REFRESH_THRESHOLD\n const minY = canGoNext ? -SWIPE_THRESHOLD : -REFRESH_THRESHOLD\n const oY = Math.max(minY, Math.min(maxY, e.clientY - dragStart.current.y))\n\n const dist = Math.sqrt(oX ** 2 + oY ** 2)\n if (dist > 10 && contentRef.current) {\n contentRef.current.style.setProperty('pointer-events', 'none')\n }\n // offsetX.jump(oX)\n offsetY.set(oY)\n }\n })\n },\n [offsetY, canGoNext, canGoPrev],\n )\n\n const containerStyle = useMemo<CSSProperties>(\n () => ({\n height: `${height}px`,\n width: `${width}px`,\n overflow: 'hidden',\n pointerEvents: swipeDisabled ? 'none' : 'auto',\n }),\n [width, height, swipeDisabled],\n )\n const [curr, setCurr] = useState<WithId<T> | null>(null)\n\n const handleItemLoad = useCallback(\n (data: WithId<T> | null) => {\n const isCurr = panels.find(p => p.status === 'current')?.id === data?.id\n if (isCurr) setCurr(data)\n },\n [panels],\n )\n\n return (\n <MediaFeedProvider curr={curr}>\n <Center\n background={defaultBackground ?? 'background.100'}\n style={{ touchAction: 'none' }}\n userSelect=\"none\"\n position=\"relative\"\n w=\"100%\"\n h=\"100%\"\n overflow=\"hidden\"\n onPointerDown={onDragStart}\n onPointerMove={onDragMove}>\n <MediaFeedBackground\n item={curr}\n getBackgroundValue={getBackgroundValue}\n getBackgroundUrl={getBackgroundUrl}\n />\n <div ref={containerRef} style={containerStyle}>\n <Center ref={contentRef} h=\"100%\" w=\"100%\">\n {panels.map(panel => (\n <FeedContentPane<T>\n key={panel.id}\n id={panel.id}\n collectionPath={collectionPath}\n RenderItem={RenderItem}\n onItemLoad={handleItemLoad}\n status={panel.status}\n enterStatus={direction}\n offsetY={offsetY}\n />\n ))}\n </Center>\n </div>\n <MediaFeedRefresh canRefresh={!canGoPrev} refreshing={refreshing} offsetY={offsetY} />\n {/* {onSwipeUp ? <MediaFeedSwipeUp offsetY={offsetY} /> : null} */}\n <LoadingOverlay\n inFeed\n zIndex={2}\n bg=\"transparent\"\n pointerEvents=\"none\"\n isLoading={loading}\n />\n {children ? (\n <Center position=\"absolute\" bottom=\"0\" left=\"0\" right=\"0\" zIndex={3} pointerEvents=\"none\">\n {children}\n </Center>\n ) : null}\n </Center>\n </MediaFeedProvider>\n )\n}\n","import React, { PropsWithChildren, useMemo } from 'react'\nimport { useWatch } from 'react-hook-form'\nimport { ExpandOnMount } from '../box'\n\nexport const Condition = ({\n path,\n condition,\n children,\n}: PropsWithChildren<{\n path: string\n condition: (values: any) => boolean\n}>) => {\n // const { register } = useFormContext()\n // const {\n // input: { value },\n // } = useField(path ?? '', { subscription: { value: true } })\n const value = useWatch({ exact: true, name: path })\n const isVisible = useMemo(() => condition(value), [value, condition])\n\n if (!isVisible) return null\n return (\n <ExpandOnMount py=\"3px\" animateOpacity in>\n {children}\n </ExpandOnMount>\n )\n}\n","import { Checkbox, Flex, Switch, Text } from '@chakra-ui/react'\nimport { InputRef } from '@chem-po/core'\nimport { BooleanField } from '@chem-po/react'\nimport React, { ForwardedRef, forwardRef, useImperativeHandle } from 'react'\nimport { FieldProps } from '../types'\n\nconst BaseCheckboxComponent = (\n { field, input: { onChange, value, ...input } }: FieldProps<BooleanField>,\n ref: ForwardedRef<InputRef>,\n) => {\n const { placeholder } = field\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n return (\n <Checkbox isChecked={value} onChange={e => onChange(e.target.checked)} {...input}>\n {placeholder}\n </Checkbox>\n )\n}\n\nconst CheckboxBooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(\n BaseCheckboxComponent,\n)\n\nconst BaseSwitchComponent = (\n { field, input: { onChange, value, ...input } }: FieldProps<BooleanField>,\n ref: ForwardedRef<InputRef>,\n) => {\n const { placeholder } = field\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n return (\n <Flex gap={1} align=\"center\">\n <Switch isChecked={value} onChange={e => onChange(e.target.checked)} {...input} />\n <Text fontWeight={600} opacity={value ? 0.9 : 0.6}>\n {placeholder}\n </Text>\n </Flex>\n )\n}\n\nconst SwitchBooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(BaseSwitchComponent)\n\nconst BaseBooleanComponent = (props: FieldProps<BooleanField>, ref: ForwardedRef<InputRef>) => {\n if (props.field.type === 'switch') return <SwitchBooleanComponent ref={ref} {...props} />\n return <CheckboxBooleanComponent ref={ref} {...props} />\n}\n\nexport const BooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(BaseBooleanComponent)\n","import { InputRef } from '@chem-po/core'\nimport { Ref, useImperativeHandle, useRef } from 'react'\n\nexport const useInputImperativeHandle = (\n ref: Ref<InputRef>,\n onFocus?: () => void,\n onBlur?: () => void,\n) => {\n const inputRef = useRef<HTMLInputElement>(null)\n\n useImperativeHandle(ref, () => ({\n focus: onFocus ?? (() => inputRef.current?.focus()),\n blur: onBlur ?? (() => inputRef.current?.blur()),\n }))\n return inputRef\n}\n","import { Box, BoxProps, Text, TextProps } from '@chakra-ui/react'\nimport React from 'react'\nimport './styles.css'\n\nexport const GradientText = ({\n children,\n color,\n background,\n boxProps,\n ...props\n}: TextProps & { boxProps?: BoxProps }) => (\n <Box background={background} {...boxProps}>\n <Text cursor=\"default\" className=\"gradient-text\" background={color} {...props}>\n {children}\n </Text>\n </Box>\n)\n","import {\n HStack,\n Slider,\n SliderFilledTrack,\n SliderProps,\n SliderThumb,\n SliderTrack,\n StackProps,\n Text,\n Tooltip,\n} from '@chakra-ui/react'\nimport { Gradient, gradientToCssGradientProp } from '@chem-po/core'\nimport React from 'react'\nimport { GradientText } from '../../text/GradientText'\n\nexport const InputSlider = ({\n label,\n stackProps,\n gradient,\n value,\n min,\n max,\n ...props\n}: {\n label: string\n stackProps?: StackProps\n gradient?: Gradient\n} & SliderProps) => {\n const gradientCss = gradient ? gradientToCssGradientProp(gradient) : null\n return (\n <HStack\n opacity={value !== undefined ? 1 : 0.5}\n // filter={`grayscale(${value !== undefined ? 0 : 100}%)`}\n _hover={{\n opacity: 1,\n // filter: 'grayscale(0%)',\n }}\n transition=\"all 500ms\"\n spacing={2}\n width=\"100%\"\n align=\"center\"\n {...stackProps}>\n <HStack w=\"100%\" align=\"center\">\n {min !== undefined && gradientCss ? (\n <GradientText fontSize=\"sm\" color={gradientCss}>\n {typeof min === 'number' ? min.toFixed((props?.step ?? 1) < 1 ? 2 : 0) : ''}\n </GradientText>\n ) : null}\n {min !== undefined && !gradientCss ? (\n <Text>{typeof min === 'number' ? min.toFixed((props?.step ?? 1) < 1 ? 2 : 0) : ''}</Text>\n ) : null}\n <Slider min={min} max={max} step={1} aria-label={label} flex={1} {...props}>\n <SliderTrack bg=\"gray.400\">\n <SliderFilledTrack bg={gradientCss ?? 'blackAlpha.500'} />\n </SliderTrack>\n <Tooltip\n bg=\"gray.100\"\n color=\"gray.500\"\n placement=\"top\"\n hasArrow\n label={typeof value === 'number' ? value.toFixed(0) : ''}>\n <SliderThumb width={2} height={4} />\n </Tooltip>\n </Slider>\n {max !== undefined && gradientCss ? (\n <GradientText fontSize=\"sm\" color={gradientCss}>\n {typeof max === 'number' ? max.toFixed((props?.step ?? 1) < 1 ? 2 : 0) : ''}\n </GradientText>\n ) : null}\n {max !== undefined && !gradientCss ? (\n <Text>{typeof max === 'number' ? max.toFixed((props?.step ?? 1) < 1 ? 2 : 0) : ''}</Text>\n ) : null}\n </HStack>\n </HStack>\n )\n}\n","import { Box, Center, HStack, SliderProps, StackProps, Text, VStack } from '@chakra-ui/react'\n\nimport { colorValueToHex, Gradient, gradients, InputRef } from '@chem-po/core'\nimport { ColorField } from '@chem-po/react'\nimport React, { forwardRef, useCallback, useMemo } from 'react'\nimport { useInputImperativeHandle } from '../hooks/useInputImperativeHandle'\nimport { InputSlider } from '../InputSlider'\nimport { FieldProps } from '../types'\n\nconst ColorComponentSlider = ({\n label,\n stackProps,\n gradient,\n value,\n ...props\n}: {\n label: string\n stackProps?: StackProps\n gradient: Gradient\n} & SliderProps) => (\n <InputSlider\n label={label}\n value={value}\n min={0}\n step={1}\n max={255}\n stackProps={{ width: '100%', ...stackProps }}\n gradient={gradient}\n {...props}\n />\n)\n\nexport const ColorComponent = forwardRef<InputRef, FieldProps<ColorField>>(\n ({ input: { onChange, value }, field, meta }, ref) => {\n // my colors: {r: 0, g: 0, b: 0, a: 0}\n // input colors: '#rrggbbaa'\n const { withAlpha, defaultValue } = field\n const { active } = meta || {}\n\n useInputImperativeHandle(ref)\n\n const handleChange = useCallback(\n (key: 'r' | 'g' | 'b' | 'a', val: number) => {\n if (withAlpha) {\n onChange({\n r: 0,\n g: 0,\n b: 0,\n a: 1,\n ...value,\n [key]: val,\n })\n } else {\n onChange({\n r: 0,\n g: 0,\n b: 0,\n ...value,\n [key]: val,\n })\n }\n },\n [value, onChange, withAlpha],\n )\n\n const withDefault = useMemo(() => ({ ...defaultValue, ...value }), [defaultValue, value])\n const asHex = useMemo(() => colorValueToHex(!!withAlpha, withDefault), [withDefault, withAlpha])\n return (\n <HStack w=\"100%\">\n <Box\n boxShadow=\"inset 0 0 12px rgba(255,255,255,0.4), 0 0 4px rgba(0,0,0,0.4)\"\n p={2}\n bg=\"blackAlpha.800\"\n borderRadius=\"full\">\n <Center\n transition=\"background 300ms\"\n bg={asHex}\n width=\"80px\"\n h=\"80px\"\n borderRadius=\"full\">\n <Text style={{ fontSize: '1.3rem' }}>{asHex}</Text>\n </Center>\n </Box>\n <VStack\n spacing={1}\n flex={1}\n px={2}\n align=\"flex-start\"\n borderRadius={6}\n transition=\"all 400ms\"\n boxShadow={`0 0 5px ${active ? '#ffffff' : 'transparent'}`}>\n <ColorComponentSlider\n label=\"R\"\n gradient={gradients.red}\n defaultValue={defaultValue.r}\n value={value?.r}\n onChange={updatedRed => handleChange('r', updatedRed)}\n />\n <ColorComponentSlider\n label=\"G\"\n defaultValue={defaultValue.g}\n gradient={gradients.green}\n value={value?.g}\n onChange={updatedGreen => handleChange('g', updatedGreen)}\n />\n <ColorComponentSlider\n label=\"B\"\n gradient={gradients.blue}\n defaultValue={defaultValue.b}\n value={value?.b}\n onChange={updatedBlue => handleChange('b', updatedBlue)}\n />\n {withAlpha ? (\n <ColorComponentSlider\n label=\"A\"\n gradient={gradients.midnight}\n defaultValue={1}\n value={value?.a}\n onChange={updatedAlpha => handleChange('a', updatedAlpha)}\n />\n ) : null}\n </VStack>\n </HStack>\n )\n },\n)\n","import {\n Button,\n Image,\n Popover,\n PopoverArrow,\n PopoverContent,\n PopoverTrigger,\n Portal,\n Text,\n} from '@chakra-ui/react'\nimport React, { forwardRef, useImperativeHandle, useMemo } from 'react'\nimport { DayPicker } from 'react-day-picker'\n// import 'react-day-picker/dist/style.css'\nimport { getDateString, InputRef } from '@chem-po/core'\nimport { DateField } from '@chem-po/react'\nimport { FieldProps } from '../types'\n\nconst padZeros = (n: number, digits: number) => {\n let v = `${n}`\n for (let i = v.length; i < digits; i += 1) {\n v = `0${v}`\n }\n return v\n}\nexport const parseDate = (date?: Date) =>\n date\n ? `${padZeros(date.getFullYear(), 4)}-${padZeros(date.getMonth() + 1, 2)}-${padZeros(\n date.getDate(),\n 2,\n )}`\n : undefined\nexport const DateInput = forwardRef<InputRef, FieldProps<DateField>>(\n (props: FieldProps<DateField>, ref) => {\n const {\n input,\n field: { placeholder, minDate, maxDate, optional },\n meta: { active },\n } = props\n const { onChange, value, onFocus, onBlur } = input\n const date = useMemo(() => (value ? new Date(`${value}T00:00:00.000`) : new Date()), [value])\n const disabled = useMemo(() => {\n const res: { from: Date; to: Date }[] = []\n if (minDate !== undefined) {\n res.push({\n to: minDate === 'now' ? new Date() : new Date(minDate),\n from: new Date(0),\n })\n }\n if (maxDate !== undefined) {\n res.push({\n from: maxDate === 'now' ? new Date() : new Date(maxDate),\n to: new Date(Infinity),\n })\n }\n return res\n }, [minDate, maxDate])\n\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n\n return (\n <Popover\n isOpen={active}\n onOpen={onFocus}\n onClose={onBlur}\n closeDelay={100}\n placement=\"bottom\">\n <PopoverTrigger>\n <Button\n w=\"100%\"\n fontFamily=\"Public Sans\"\n fontWeight=\"normal\"\n alignItems=\"center\"\n _hover={{ bg: '#efefef' }}\n lineHeight={1}\n variant=\"outline\">\n <Text fontSize=\"md\" height=\"16px\" align=\"left\" flex={1}>\n {value ? getDateString(value, 'short') : placeholder}\n </Text>\n <Image src=\"/svg/calendar.svg\" height=\"20px\" />\n </Button>\n </PopoverTrigger>\n <Portal>\n <PopoverContent zIndex={2} onFocus={onFocus}>\n <PopoverArrow />\n <DayPicker\n required={!optional}\n disabled={disabled}\n styles={{\n caption: {\n fontFamily: 'Public Sans',\n fontWeight: '400',\n fontSize: '0.9rem',\n color: '#555',\n },\n head: {\n fontFamily: 'Public Sans',\n },\n nav: {\n fontFamily: 'Public Sans',\n },\n }}\n modifiersStyles={{\n selected: {\n background: '#454545',\n },\n }}\n // id={name}\n mode=\"single\"\n selected={date}\n onSelect={(updated: Date | undefined) => onChange(parseDate(updated))}\n />\n </PopoverContent>\n </Portal>\n </Popover>\n )\n },\n)\n\nDateInput.displayName = 'DateInput'\n","import { Input } from '@chakra-ui/react'\nimport { InputRef } from '@chem-po/core'\nimport { TimeField } from '@chem-po/react'\nimport React, { forwardRef, useImperativeHandle } from 'react'\nimport { FieldProps } from '../types'\n// import '../input.css'\n\nexport const TimeInput = forwardRef<InputRef, FieldProps<TimeField>>(\n ({ field, input }: FieldProps<TimeField>, ref) => {\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n return (\n <Input\n fontFamily=\"Public Sans\"\n css={`\n ::-webkit-calendar-picker-indicator {\n background: url(/svg/clock.svg) center/80% no-repeat;\n color: white;\n }\n `}\n fontSize=\"md\"\n type=\"time\"\n placeholder={field.placeholder}\n {...input}\n value={input.value ?? ''}\n />\n )\n },\n)\n\nTimeInput.displayName = 'TimeInput'\n","import { HStack } from '@chakra-ui/react'\nimport { InputRef } from '@chem-po/core'\nimport { DateTimeField, FieldMeta } from '@chem-po/react'\nimport React, { forwardRef, useCallback, useImperativeHandle, useMemo, useState } from 'react'\nimport { DateInput, parseDate } from '../date'\nimport '../input.css'\nimport { TimeInput } from '../time'\nimport { FieldProps } from '../types'\n\nconst parseDateAndTime = (timestamp?: number | string) => {\n if (!timestamp) return { date: undefined, time: undefined }\n const d = new Date(timestamp)\n return { date: parseDate(d), time: d.toTimeString().substring(0, 5) }\n}\n\nexport const DateTimeInput = forwardRef<InputRef, FieldProps<DateTimeField>>(\n ({ input: { value, onBlur, onChange, onFocus } }, ref) => {\n const [{ date, time }, set] = useState<{ date?: string; time?: string }>(\n parseDateAndTime(value),\n )\n const [focusedElement, setFocused] = useState<'date' | 'time' | null>(null)\n const handleChange = useCallback(\n (type: 'date' | 'time', updated?: string) => {\n if (type === 'date') {\n set({ date: updated, time })\n if (updated && time) onChange(new Date(`${updated}T${time}`).getTime())\n } else {\n set({ time: updated, date })\n if (updated && date) {\n onChange(new Date(`${date}T${updated}:00.000`).getTime())\n }\n }\n },\n [date, time, onChange],\n )\n\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n\n const meta = useMemo<FieldMeta>(\n () => ({\n active: focusedElement === 'date',\n error: undefined,\n touched: false,\n }),\n [focusedElement],\n )\n\n return (\n <HStack w=\"100%\">\n <DateInput\n field={{ _type: 'date', placeholder: 'Date' }}\n input={{\n // name: '',\n value: date,\n onChange: (dateString: string) => {\n handleChange('date', dateString)\n },\n onBlur: () => {\n setFocused(null)\n onBlur()\n },\n onFocus: () => {\n setFocused('date')\n onFocus()\n },\n }}\n meta={meta}\n />\n <TimeInput\n field={{ _type: 'time', placeholder: 'Time' }}\n input={{\n value: time,\n onChange: e => handleChange('time', e.target.value),\n onBlur: () => {\n setFocused(null)\n onBlur()\n },\n onFocus: () => {\n setFocused('time')\n onFocus()\n },\n }}\n meta={meta}\n />\n </HStack>\n )\n },\n)\n\nDateTimeInput.displayName = 'DateTimeInput'\n","import { Playlist, SpotifyTrack, WithId } from '@chem-po/core'\nimport { MotionValue } from 'framer-motion'\nimport { Howl } from 'howler'\nimport { useMemo } from 'react'\nimport { create } from 'zustand'\n\nexport type SetMediaArgs =\n | { playlist: PlaylistInterface; media?: never }\n | { media: WithId<SpotifyTrack>; playlist?: never }\nexport interface AudioPlayerApi {\n play: () => void\n pause: () => void\n goNext: () => void\n goPrev: () => void\n canGoNext: boolean\n canGoPrev: boolean\n sound: Howl | null\n trackProgress: MotionValue<number>\n seek: (to: number) => void\n setMedia: (args: SetMediaArgs) => void\n stop: () => void\n loop: (loop: boolean) => void\n}\n\nexport interface PlaylistInterface extends Playlist {\n currentId: string | null\n}\ninterface UsePlayerData {\n isPlaying: boolean\n isLoading: boolean\n fetchingMedia: WithId<SpotifyTrack> | null\n playlist: PlaylistInterface | null\n media: WithId<SpotifyTrack> | null\n repeat: boolean\n shuffle: boolean\n api: AudioPlayerApi\n volume: number\n}\n\nexport const usePlayer = create<UsePlayerData>(() => ({\n isPlaying: false,\n media: null,\n isLoading: false,\n fetchingMedia: null,\n shuffle: false,\n playlist: null,\n volume: 0.5,\n repeat: false,\n api: {\n pause: () => {},\n play: () => {},\n canGoNext: false,\n canGoPrev: false,\n goNext: () => {},\n goPrev: () => {},\n seek: () => {},\n sound: null,\n trackProgress: new MotionValue(0),\n setMedia: () => {},\n stop: () => {},\n loop: () => {},\n },\n}))\n\nexport const useActiveMedia = () => {\n const { media, playlist } = usePlayer()\n return useMemo(() => {\n if (playlist) {\n return playlist.currentId !== null\n ? (playlist.items.find(i => i.id === playlist.currentId) ?? null)\n : null\n }\n return media\n }, [playlist, media])\n}\n","import { ButtonProps, Center, IconButton, Image } from '@chakra-ui/react'\nimport { SpotifyTrack, WithId } from '@chem-po/core'\nimport { usePlaylist } from '@chem-po/react'\nimport React from 'react'\nimport { useActiveMedia, usePlayer } from '../../store/usePlayer'\n\nexport const PlayButton = ({\n media,\n size = 50,\n opacity = 0.8,\n // withThumbnail,\n buttonProps,\n}: {\n media: WithId<SpotifyTrack> | null\n size?: number\n opacity?: number\n withThumbnail?: boolean\n buttonProps?: ButtonProps\n}) => {\n const { id: mediaId } = media ?? {}\n const { playlist } = usePlaylist()\n const api = usePlayer(s => s.api)\n const playerIsPlaying = usePlayer(s => s.isPlaying)\n const playerIsLoading = usePlayer(s => s.isLoading)\n const currentMedia = useActiveMedia()\n const isPlaying = playerIsPlaying && currentMedia?.id === mediaId\n const isFetching = playerIsLoading && currentMedia?.id === mediaId\n\n return (\n <IconButton\n boxShadow=\"md\"\n p={1}\n height={`${size}px`}\n width={`${size}px`}\n minW=\"0\"\n minH=\"0\"\n borderRadius=\"full\"\n isLoading={isFetching}\n aria-label=\"play/pause\"\n onClick={e => {\n e.stopPropagation()\n if (!media) return\n if (currentMedia?.id === mediaId) {\n if (playerIsPlaying) api.pause()\n else api.play()\n } else if (playlist) {\n api.setMedia({\n playlist: {\n ...playlist,\n currentId: mediaId ?? null,\n },\n })\n } else {\n api.setMedia({ media })\n }\n }}\n style={{ background: '#eee' }}\n {...buttonProps}\n icon={\n <Center borderRadius=\"full\" height={`${size}px`} width={`${size}px`}>\n {/* {\n media ? (\n <StorageImage\n borderRadius='full'\n position='absolute'\n objectFit='cover'\n width='100%'\n height='100%'\n storagePath={`${media.storageDir}/photoFile`}\n alt={media.title}\n />\n ) : null\n } */}\n <Image\n opacity={isPlaying ? opacity : 0}\n width=\"100%\"\n transition=\"all 0.2s ease-in-out\"\n src=\"/svg/pause.svg\"\n filter=\"invert(100%) drop-shadow(0 0 4px black)\"\n transform={`scale(${isPlaying ? 0.8 : 1})`}\n />\n <Image\n position=\"absolute\"\n width=\"100%\"\n opacity={isPlaying ? 0 : opacity}\n transition=\"all 0.2s ease-in-out\"\n filter=\"invert(100%) drop-shadow(0 0 3px black)\"\n src=\"/svg/play.svg\"\n transform={`scale(${!isPlaying ? 0.8 : 1})`}\n />\n </Center>\n }\n />\n )\n}\n","import {\n Center,\n Flex,\n HStack,\n IconButton,\n Image,\n ImageProps,\n Text,\n useColorModeValue,\n VStack,\n} from '@chakra-ui/react'\nimport React, {\n ChangeEventHandler,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport { FileValue, generateId, ImageViewOptions, InputRef, WithId } from '@chem-po/core'\nimport { FileField, useImageSize, useObjectUrl } from '@chem-po/react'\nimport { useBorderColor } from '../../../hooks'\nimport { LoadingImage } from '../../loading/LoadingImage'\nimport { PlayButton } from '../../media/PlayButton'\nimport { FieldProps } from './types'\n\nconst generateAccept = (field: FileField) => {\n if (!field.accept) return undefined\n const accept: string[] = []\n if (field.accept.includes('image')) {\n accept.push('image/jpg', 'image/jpeg', 'image/png', 'image/svg', 'image/gif')\n }\n if (field.accept.includes('pdf')) accept.push('application/pdf')\n if (field.accept.includes('audio')) {\n accept.push('audio/mp3', 'audio/wav', 'audio/x-wav', 'audio/webm', 'audio/ogg')\n }\n return accept.join(',')\n}\n\nexport const AudioFileView = ({\n hasUpload,\n value,\n noLabel,\n}: {\n value: FileValue\n noLabel?: boolean\n hasUpload?: boolean\n}) => {\n const media = useMemo<WithId<any>>(\n () => ({\n id: generateId(),\n title: value.filename || 'Uploaded file',\n artistName: '',\n artistId: '',\n storageDir: '',\n producerId: '',\n songwriterId: '',\n }),\n [value],\n )\n\n return (\n <VStack>\n <HStack spacing={4}>\n <PlayButton withThumbnail media={media} />\n {hasUpload ? (\n <IconButton\n w=\"40px\"\n h=\"40px\"\n p={2}\n borderRadius=\"full\"\n boxShadow=\"0 0 4px black\"\n aria-label=\"upload\"\n icon={<Image filter=\"invert(100%)\" src=\"/svg/upload.svg\" opacity={0.8} />}\n />\n ) : null}\n </HStack>\n {!noLabel && value.filename ? (\n <Text fontSize=\"md\">{value.filename || 'Uploaded file'}</Text>\n ) : null}\n </VStack>\n )\n}\n\nconst ImageFileView = ({\n value,\n options,\n hasUpload,\n loading: loadingProp,\n}: {\n value: FileValue\n options?: ImageViewOptions\n hasUpload?: boolean\n loading?: boolean\n}) => {\n const [loaded, setLoaded] = useState(false)\n const { url, loading } = useObjectUrl(value)\n const [imageSize, setImageSize] = useState({ width: 0, height: 0 })\n const { shape, placeholder, objectFit, withFullView, background } = options ?? {}\n const {\n src: placeholderSrc,\n opacity: placeholderOpacity,\n scale: placeholderScale,\n } = placeholder ?? {}\n\n const size = useImageSize(options, imageSize)\n const { width: optWidth, height: optHeight } = size ?? {}\n\n const opacity = useMemo(() => {\n if (loaded) return url ? 1 : (placeholderOpacity ?? 0.8)\n return 0\n }, [loaded, url, placeholderOpacity])\n\n const imageProps = useMemo<ImageProps>(() => {\n if (!url) {\n return {\n width: size ? `${size.width * (placeholderScale ?? 0.9)}px` : 'auto',\n height: size ? `${size.height * (placeholderScale ?? 0.9)}px` : '80px',\n }\n }\n return {\n objectFit: objectFit ?? (loaded && shape ? 'cover' : 'contain'),\n onLoad: e => {\n setLoaded(true)\n setImageSize({\n width: e.currentTarget.naturalWidth,\n height: e.currentTarget.naturalHeight,\n })\n },\n }\n }, [url, size, placeholderScale, loaded, shape, objectFit])\n const isLoading = !!loadingProp || loading\n const width = typeof optWidth === 'number' ? `${optWidth}px` : 'auto'\n const height = typeof optHeight === 'number' ? `${optHeight}px` : '100px'\n return (\n <LoadingImage\n width={width}\n height={height}\n withFullView={!hasUpload || withFullView}\n overflow=\"hidden\"\n borderRadius={shape === 'circle' ? 'full' : 4}\n boxShadow={shape ? '1px 1px 3px #00000066' : 'none'}\n opacity={opacity}\n background={background}\n transition=\"opacity 333ms ease\"\n loadingOverride={isLoading}\n imageProps={imageProps}\n src={url ?? placeholderSrc}\n />\n )\n}\n\nconst extensionIcons: Record<string, string> = {\n txt: '/icons/description.svg',\n pdf: '/icons/pdf.svg',\n zip: '/icons/zip.svg',\n '7z': '/icons/zip.svg',\n rar: '/icons/zip.svg',\n}\n\nconst ExtensionIcon = ({ value }: { value: FileValue | null | undefined }) => {\n const extension = useMemo(() => {\n if (!value) return ''\n const parts = value.filename.split('.')\n return parts[parts.length - 1]\n }, [value])\n const icon = extensionIcons[extension]\n const filter = useColorModeValue('invert(0)', 'invert(1)')\n if (!icon) return null\n\n return <Image filter={extension !== 'pdf' ? filter : 'none'} h=\"24px\" src={icon} />\n}\n\nconst FileViewBody = ({\n value,\n noLabel,\n imageOptions,\n loading,\n hasUpload,\n}: {\n value: FileValue\n imageOptions?: ImageViewOptions\n loading?: boolean\n noLabel?: boolean\n hasUpload?: boolean\n}) => {\n const fileType = useMemo(() => value.type?.split('/')?.[0], [value])\n switch (fileType) {\n case 'image':\n return (\n <ImageFileView\n hasUpload={hasUpload}\n loading={loading}\n options={imageOptions}\n value={value}\n />\n )\n case 'audio':\n return <AudioFileView noLabel={noLabel} value={value} hasUpload={hasUpload} />\n case 'pdf':\n return <Image src=\"/icons/pdf.svg\" />\n default:\n return (\n <Flex gap={2}>\n <ExtensionIcon value={value} />\n <Text>{value.filename}</Text>\n </Flex>\n )\n }\n}\n\nconst NoFileView = ({\n hasUpload,\n imageOptions,\n}: {\n hasUpload?: boolean\n imageOptions?: ImageViewOptions\n}) => {\n const imageSize = useImageSize(imageOptions)\n const { shape, placeholder } = imageOptions ?? {}\n const {\n src: placeholderSrc,\n scale: placeholderScale,\n opacity: placeholderOpacity,\n } = placeholder ?? {}\n const { width, height } = imageSize ?? {}\n const filter = useColorModeValue('invert(0)', 'invert(1)')\n\n const bg = useColorModeValue('whiteAlpha.500', 'whiteAlpha.100')\n const borderColor = useBorderColor()\n\n const body = imageOptions ? (\n <Center\n height={shape ? `${height}px` : 'auto'}\n width={shape ? `${width}px` : 'auto'}\n bg={shape ? bg : 'transparent'}\n borderRadius={shape === 'circle' ? 'full' : 4}\n overflow=\"hidden\"\n boxShadow={shape ? '1px 1px 4px #00000055' : 'none'}>\n <Image\n filter={filter}\n opacity={placeholderOpacity}\n height={typeof height === 'number' ? `${height * (placeholderScale ?? 0.6)}px` : '50px'}\n src={placeholderSrc ?? '/icons/image.svg'}\n />\n </Center>\n ) : (\n <Text\n border=\"1px dashed\"\n borderColor={borderColor}\n p={3}\n fontSize=\"sm\"\n textAlign=\"center\"\n w=\"100%\"\n opacity={0.8}>\n {hasUpload ? 'Click to upload or drop file here' : 'No file uploaded'}\n </Text>\n )\n return (\n <Center\n width={typeof width === 'number' ? `${width}px` : 'auto'}\n height={typeof height === 'number' ? `${height}px` : 'auto'}>\n {body}\n </Center>\n )\n}\n\nexport const FileView = ({\n value,\n hasUpload,\n noLabel,\n loading,\n imageOptions,\n}: {\n value?: FileValue | null\n hasUpload?: boolean\n noLabel?: boolean\n loading?: boolean\n imageOptions?: ImageViewOptions\n}) => {\n const { storagePath, dataUrl } = value ?? {}\n\n const missingFile = useMemo(() => !dataUrl && !storagePath, [dataUrl, storagePath])\n if (!value || missingFile) {\n return <NoFileView hasUpload={hasUpload} imageOptions={imageOptions} />\n }\n return (\n <FileViewBody\n loading={loading}\n imageOptions={imageOptions}\n noLabel={noLabel}\n hasUpload={hasUpload}\n value={value}\n />\n )\n}\nexport const FileComponent = forwardRef<InputRef, FieldProps<FileField>>(\n ({ input: { value, onChange }, field }, ref) => {\n const { imageOptions } = field || {}\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = useCallback(\n e => {\n const file = e.target.files?.[0]\n if (!file) return\n if (value?.dataUrl) URL.revokeObjectURL(value.dataUrl)\n\n onChange({\n ...value,\n dataUrl: URL.createObjectURL(file),\n type: file.type,\n filename: file.name,\n })\n },\n [onChange, value],\n )\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.click()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n const isImageField = useMemo(\n () => field.accept && field.accept.length === 1 && field.accept[0] === 'image',\n [field],\n )\n const imgOptions = useMemo<ImageViewOptions | undefined>(\n () =>\n isImageField || value?.type?.startsWith('image/') || value?.type?.startsWith('video/')\n ? {\n height: 120,\n ...imageOptions,\n objectFit: 'contain',\n }\n : undefined,\n [imageOptions, isImageField, value],\n )\n return (\n <Center\n flexFlow=\"column\"\n position=\"relative\"\n cursor=\"pointer\"\n onClick={() => inputRef.current?.click()}\n width=\"100%\">\n <Text fontSize=\"sm\" opacity={0.8} mb={1}>\n {field.placeholder}\n </Text>\n <Center\n // maxW='160px'\n width=\"100%\"\n position=\"relative\"\n p={2}\n overflow=\"hidden\">\n <FileView hasUpload imageOptions={imgOptions} value={value} />\n <input\n onChange={handleChange}\n ref={inputRef}\n accept={generateAccept(field)}\n type=\"file\"\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n height: 0.1,\n width: 0.1,\n opacity: 0,\n }}\n />\n </Center>\n </Center>\n )\n },\n)\n\nFileComponent.displayName = 'FileComponent'\n","import { InputSize } from '@chem-po/core'\nimport { useBackgroundColor, useTextColor } from '@chem-po/react'\nimport { useMemo } from 'react'\n\nconst inputStyles = {\n input: {\n width: '100%',\n fontSize: '16px',\n outline: 'none',\n },\n inputXSmall: {\n padding: '4px 6px',\n borderRadius: '3px',\n },\n inputSmall: {\n padding: '6px 9px',\n borderRadius: '4px',\n },\n inputMedium: {\n padding: '8px 12px',\n borderRadius: '6px',\n },\n inputLarge: {\n padding: '10px 14px',\n borderRadius: '8px',\n },\n inputTextSmall: {\n fontSize: '14px',\n },\n inputTextMedium: {\n fontSize: '16px',\n },\n inputTextLarge: {\n fontSize: '18px',\n },\n buttonContainer: {\n display: 'flex',\n flexDirection: 'row' as const,\n alignItems: 'center',\n },\n buttonContainerSmall: {\n gap: '6px',\n },\n buttonContainerMedium: {\n gap: '8px',\n },\n buttonContainerLarge: {\n gap: '10px',\n },\n}\n\nconst iconSizeMap = {\n sm: 16,\n md: 20,\n lg: 24,\n}\n\nconst clearButtonSizeMap = {\n sm: 12,\n md: 14,\n lg: 16,\n}\n\nconst inputSizeMap = {\n sm: inputStyles.inputSmall,\n md: inputStyles.inputMedium,\n lg: inputStyles.inputLarge,\n}\n\nconst editableInputSizeMap = {\n sm: inputStyles.inputXSmall,\n md: inputStyles.inputSmall,\n lg: inputStyles.inputMedium,\n}\n\nconst inputTextSizeMap = {\n sm: inputStyles.inputTextSmall,\n md: inputStyles.inputTextMedium,\n lg: inputStyles.inputTextLarge,\n}\n\nconst buttonContainerSizeMap = {\n sm: inputStyles.buttonContainerSmall,\n md: inputStyles.buttonContainerMedium,\n lg: inputStyles.buttonContainerLarge,\n}\n\nexport interface UseInputStyles {\n text: React.CSSProperties\n container: React.CSSProperties\n size: InputSize\n iconSize: number\n clearButtonSize: number\n buttonContainer: React.CSSProperties\n}\n\nexport const useInputStyles = (\n inEditable: boolean | undefined,\n size: InputSize | undefined,\n formSize: InputSize = 'md',\n): UseInputStyles => {\n const formElementBg = useBackgroundColor(150)\n const bg = useMemo(\n () => (inEditable ? 'transparent' : formElementBg),\n [inEditable, formElementBg],\n )\n const textColor = useTextColor()\n const usedSize = size ?? formSize\n\n return {\n text: { ...inputTextSizeMap[usedSize], color: textColor },\n container: {\n ...inputStyles.input,\n ...(inEditable ? editableInputSizeMap[usedSize] : inputSizeMap[usedSize]),\n backgroundColor: bg,\n },\n size: usedSize,\n iconSize: iconSizeMap[usedSize],\n clearButtonSize: clearButtonSizeMap[usedSize],\n buttonContainer: {\n ...inputStyles.buttonContainer,\n ...buttonContainerSizeMap[usedSize],\n },\n }\n}\n","import { Box, Button, Flex, Text, useColorMode } from '@chakra-ui/react'\nimport { InputRef, RenderSelectOptionProps } from '@chem-po/core'\nimport { MultipleSelectField } from '@chem-po/react'\nimport React, { CSSProperties, forwardRef, useImperativeHandle, useMemo } from 'react'\nimport { useInputStyles } from '../hooks/useInputStyles'\nimport { FieldProps } from '../types'\n\nexport const getRenderSelectedOptionText = (\n field: MultipleSelectField,\n textStyle: CSSProperties,\n) => {\n return (\n props: RenderSelectOptionProps<\n MultipleSelectField['options'][number]['value'],\n MultipleSelectField['options'][number]\n >,\n ) => {\n const { renderOption: RenderOption } = field\n if (typeof RenderOption === 'function') {\n return <RenderOption {...props} />\n }\n return <Text style={textStyle}>{props.option.label}</Text>\n }\n}\n\nexport const MultipleSelectComponent = forwardRef<InputRef, FieldProps<MultipleSelectField>>(\n ({ field, input, inEditable, formSize }, ref) => {\n const { options, renderOption: RenderOption } = field\n const { onChange, value, onFocus, onBlur } = input\n const { text, size } = useInputStyles(inEditable, field.size, formSize)\n const { colorMode } = useColorMode()\n useImperativeHandle(ref, () => ({\n focus: () => {\n onFocus()\n },\n blur: () => {\n onBlur()\n },\n }))\n\n const RenderSelectedOptionText = useMemo(\n () => getRenderSelectedOptionText(field, text),\n [field, text],\n )\n const body = (\n <Flex w=\"100%\" flexFlow=\"row wrap\">\n {options.map(o => (\n <Box key={o.value} p={0.5}>\n <Button\n w=\"100%\"\n minH={0}\n size=\"xs\"\n p={0}\n opacity={value?.includes(o.value) ? 1 : 0.7}\n variant=\"unstyled\"\n onClick={e => {\n e.stopPropagation()\n onChange(\n value?.includes(o.value)\n ? value.filter(v => v !== o.value)\n : [...(value ?? []), o.value],\n )\n }}\n _hover={{ opacity: 0.8 }}>\n <RenderSelectedOptionText\n value={o.value}\n size={size}\n option={o}\n colorMode={colorMode}\n isSelected\n />\n </Button>\n </Box>\n ))}\n </Flex>\n )\n\n return inEditable ? (\n <Flex py={0.5} flexFlow=\"column\" w=\"100%\">\n <Text lineHeight={1} px={2} opacity={0.8} fontSize=\"sm\" fontWeight={600}>\n {field.placeholder}\n </Text>\n {body}\n </Flex>\n ) : (\n body\n )\n },\n)\n","import { Flex } from '@chakra-ui/react'\nimport React, { CSSProperties, PropsWithChildren } from 'react'\n\nexport const InputContainer = ({\n children,\n style,\n}: PropsWithChildren<{ style: CSSProperties }>) => {\n return (\n <Flex width=\"100%\" borderRadius={4} style={style}>\n {children}\n </Flex>\n )\n}\n","import { useColorModeValue } from '@chakra-ui/react'\nimport { InputRef } from '@chem-po/core'\nimport { CurrencyAmountField, NumberField } from '@chem-po/react'\nimport React, { ForwardedRef, forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport CurrencyInput from 'react-currency-input-field'\nimport { InputSlider } from '../InputSlider'\nimport { useInputImperativeHandle } from '../hooks/useInputImperativeHandle'\nimport { useInputStyles } from '../hooks/useInputStyles'\nimport { InputContainer } from '../shared/InputContainer'\nimport { FieldProps } from '../types'\nimport './styles.css'\n\nexport const NumberComponent = forwardRef<InputRef, FieldProps<NumberField> & { prefix?: string }>(\n (\n { input: { onChange, value, ...input }, field, formSize, prefix, inEditable, ...props },\n ref,\n ) => {\n const { type, defaultValue, placeholder, size } = field\n const className = useColorModeValue('number-input', 'number-input-dark')\n const { container, text } = useInputStyles(inEditable, size, formSize)\n const inputRef = useInputImperativeHandle(ref)\n const [endsWith, setEndsWith] = useState('')\n const displayed = typeof value === 'number' && !Number.isNaN(value) ? `${value}${endsWith}` : ''\n const body =\n type === 'slider' ? (\n <InputSlider\n label={placeholder}\n onChange={onChange}\n value={value}\n defaultValue={defaultValue}\n />\n ) : (\n <CurrencyInput\n className={className}\n placeholder={field.placeholder}\n decimalsLimit={field.precision}\n allowDecimals={!!field.precision}\n prefix={prefix}\n ref={inputRef}\n onValueChange={(v, _, values) => {\n if (v?.endsWith('.')) setEndsWith('.')\n else if (v?.includes('.') && v?.endsWith('0')) setEndsWith('0')\n else setEndsWith('')\n onChange(values?.float)\n }}\n value={displayed}\n {...props}\n style={{\n background: 'none',\n // height: 'auto',\n resize: 'none',\n fontFamily: 'Encode Sans',\n boxSizing: 'border-box',\n opacity: value ? 1 : 0.7,\n width: '100%',\n borderRadius: '4px',\n border: 'none',\n outline: 'none',\n ...text,\n ...props.style,\n }}\n {...input}\n />\n )\n return <InputContainer style={container}>{body}</InputContainer>\n },\n)\nconst BaseCurrencyAmountComponent = (\n { field, ...props }: FieldProps<CurrencyAmountField>,\n ref: ForwardedRef<InputRef>,\n) => {\n const inputRef = useRef<HTMLInputElement>(null)\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n return <NumberComponent prefix=\"$\" field={{ ...field, _type: 'number' }} {...props} />\n}\n\nexport const CurrencyAmountComponent = forwardRef<InputRef, FieldProps<CurrencyAmountField>>(\n BaseCurrencyAmountComponent as any,\n)\n","import { Flex, Text } from '@chakra-ui/react'\nimport { Field } from '@chem-po/react'\nimport React, { useMemo } from 'react'\n\nexport const OptionalTag = <T extends Field>({\n value,\n field,\n}: {\n field: T\n value: T['defaultValue'] | undefined | null\n}) => {\n const top = useMemo(() => {\n if (value === '' || value === undefined || value === null) return 1\n switch (field._type) {\n case 'text':\n case 'number':\n case 'select':\n case 'date':\n case 'time':\n case 'datetime':\n return -1\n default:\n return 1\n }\n }, [value, field])\n return (\n <Flex transition=\"top 300ms\" top={top} position=\"absolute\" right={3}>\n <Text fontSize=\"xs\" opacity={0.6}>\n OPTIONAL\n </Text>\n </Flex>\n )\n}\n","import {\n Button,\n Popover,\n PopoverBody,\n PopoverContent,\n PopoverTrigger,\n Text,\n useColorMode,\n} from '@chakra-ui/react'\nimport { InputRef, RenderSelectOptionProps } from '@chem-po/core'\nimport { SelectField, useBackgroundColor } from '@chem-po/react'\nimport React, { forwardRef, useImperativeHandle, useMemo } from 'react'\nimport { useInputStyles } from '../hooks/useInputStyles'\nimport { InputContainer } from '../shared/InputContainer'\nimport { FieldProps } from '../types'\n\nexport const SelectComponent = forwardRef<InputRef, FieldProps<SelectField>>(\n ({ field, input, meta, inEditable, formSize }, ref) => {\n const { placeholder, options, renderOption: customRender } = field\n const { onChange, value, onFocus, onBlur } = input\n const { text, size, container } = useInputStyles(inEditable, field.size, formSize)\n const { active } = meta\n const selected = useMemo(() => value && options.find(o => o.value === value), [value, options])\n const { colorMode } = useColorMode()\n useImperativeHandle(ref, () => ({\n focus: () => {\n onFocus()\n },\n blur: () => {\n onBlur()\n },\n }))\n const menuBg = useBackgroundColor(150)\n\n const DefaultRenderOption = (props: RenderSelectOptionProps) => {\n return <Text style={text}>{props.option.label}</Text>\n }\n\n const RenderOption = customRender ?? DefaultRenderOption\n\n return (\n <Popover strategy=\"fixed\" placement=\"bottom\" matchWidth isOpen={active} onClose={onBlur}>\n <PopoverTrigger>\n <Button\n w=\"100%\"\n onClick={e => {\n e.stopPropagation()\n onFocus()\n }}\n variant=\"unstyled\"\n position=\"relative\">\n <InputContainer style={container}>\n {selected ? (\n <RenderOption\n size={size}\n value={selected.value}\n option={selected}\n colorMode={colorMode}\n isSelected={true}\n />\n ) : (\n <Text fontWeight={400} style={text} opacity={0.6}>\n {placeholder}\n </Text>\n )}\n </InputContainer>\n </Button>\n </PopoverTrigger>\n <PopoverContent\n w=\"100%\"\n overflowY=\"auto\"\n maxH=\"300px\"\n bg={menuBg}\n border=\"none\"\n boxShadow=\"0 0 8px rgba(0, 0, 0, 0.3)\">\n <PopoverBody p={0}>\n {options.map(o => (\n <Button\n key={o.value}\n w=\"100%\"\n variant=\"unstyled\"\n onClick={e => {\n e.stopPropagation()\n onChange(o.value)\n onBlur()\n }}\n display=\"flex\"\n justifyContent=\"flex-start\"\n alignItems=\"center\"\n px={3}\n _hover={{ bg: 'blackAlpha.100' }}\n _dark={{\n _hover: { bg: 'whiteAlpha.100' },\n }}>\n <RenderOption\n value={o.value}\n option={o}\n size={size}\n colorMode={colorMode}\n isSelected={o.value === value}\n />\n </Button>\n ))}\n </PopoverBody>\n </PopoverContent>\n </Popover>\n )\n },\n)\n","import {\n Center,\n Collapse,\n HStack,\n Image,\n Input,\n Popover,\n PopoverBody,\n PopoverContent,\n PopoverTrigger,\n Text,\n VStack,\n} from '@chakra-ui/react'\n\nimport { getHandle, InputRef, SocialMediaSites } from '@chem-po/core'\nimport { SocialMediaField } from '@chem-po/react'\nimport React, {\n FC,\n ForwardedRef,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n} from 'react'\nimport { FieldProps } from '../types'\n\nconst facebookLogo = '/icons/facebook.svg'\nconst instagramLogo = '/icons/instagram.svg'\nconst soundcloudLogo = '/icons/soundcloud.svg'\nconst twitterLogo = '/icons/twitter.svg'\nconst youtubeLogo = '/icons/youtube.svg'\n\nconst siteToIcon: Record<SocialMediaSites, any> = {\n facebook: facebookLogo,\n instagram: instagramLogo,\n twitter: twitterLogo,\n youtube: youtubeLogo,\n soundcloud: soundcloudLogo,\n}\n\nconst SocialMediaSiteInput: FC<{\n site: SocialMediaSites\n value?: string\n onChange: (v?: string) => void\n}> = ({ site, value, onChange }) => {\n const { handle, error } = useMemo(() => {\n try {\n const h = getHandle(site, value)\n return { handle: h }\n } catch (e: any) {\n return { error: e?.message ?? 'Error parsing handle' }\n }\n }, [value, site])\n const displayedText = useMemo(\n () => (handle ? `${site.toUpperCase()}: ${handle}` : site.toUpperCase()),\n [site, handle],\n )\n return (\n <Popover trigger=\"hover\">\n <PopoverTrigger>\n <Center opacity={handle ? 1 : 0.6} borderRadius=\"full\" width=\"34px\" height=\"34px\">\n <Image\n cursor=\"pointer\"\n filter={`grayscale(${handle ? 0 : 100}%)`}\n height=\"24px\"\n width=\"24px\"\n objectFit=\"contain\"\n src={siteToIcon[site]}\n />\n </Center>\n </PopoverTrigger>\n <PopoverContent w=\"auto\">\n <PopoverBody overflow=\"hidden\" borderRadius={4} p={0} w=\"auto\">\n <VStack spacing={0} p={2} w=\"300px\" align=\"flex-start\">\n <Text fontSize=\"md\">{displayedText}</Text>\n\n <Collapse in={!!error} style={{ width: '100%' }}>\n <Text px={1} bg=\"red.500\" fontSize=\"sm\" color=\"white\">\n {error}\n </Text>\n </Collapse>\n <Input\n onChange={e => onChange(e.target.value)}\n placeholder=\"Handle or URL\"\n width=\"100%\"\n value={value}\n size=\"md\"\n />\n </VStack>\n </PopoverBody>\n </PopoverContent>\n </Popover>\n )\n}\nexport const SocialMediaComponent = forwardRef<InputRef, FieldProps<SocialMediaField>>(\n (props: FieldProps<SocialMediaField>, ref: ForwardedRef<InputRef>) => {\n const {\n input: { value, onChange },\n field: { sites },\n } = props\n const handleChange = useCallback(\n (site: SocialMediaSites, v?: string) => {\n const { [site]: _curr, ...rest } = value ?? {}\n if (!v && Object.keys(rest).length === 0) {\n onChange({ target: { value: undefined } })\n }\n if (!v) onChange(rest)\n onChange({ ...rest, [site]: v })\n },\n [onChange, value],\n )\n\n useImperativeHandle(ref, () => ({\n blur: () => {},\n focus: () => {},\n }))\n\n return (\n <VStack w=\"100%\" p={1}>\n <VStack borderRadius={4} p={2} spacing={0} w=\"100%\">\n <Text fontSize=\"md\">Links</Text>\n <HStack>\n {!sites || sites.facebook ? (\n <SocialMediaSiteInput\n onChange={v => handleChange('facebook', v)}\n site=\"facebook\"\n value={value?.facebook}\n />\n ) : null}\n {!sites || sites.instagram ? (\n <SocialMediaSiteInput\n onChange={v => handleChange('instagram', v)}\n site=\"instagram\"\n value={value?.instagram}\n />\n ) : null}\n {!sites || sites.twitter ? (\n <SocialMediaSiteInput\n onChange={v => handleChange('twitter', v)}\n site=\"twitter\"\n value={value?.twitter}\n />\n ) : null}\n {!sites || sites.youtube ? (\n <SocialMediaSiteInput\n onChange={v => handleChange('youtube', v)}\n site=\"youtube\"\n value={value?.youtube}\n />\n ) : null}\n {!sites || sites.soundcloud ? (\n <SocialMediaSiteInput\n onChange={v => handleChange('soundcloud', v)}\n site=\"soundcloud\"\n value={value?.soundcloud}\n />\n ) : null}\n </HStack>\n </VStack>\n </VStack>\n )\n },\n)\n\nSocialMediaComponent.displayName = 'SocialMediaComponent'\n","import { InputRef } from '@chem-po/core'\nimport { TextField, useTextColor } from '@chem-po/react'\nimport React, { ForwardedRef, forwardRef, useImperativeHandle, useRef } from 'react'\nimport TextareaAutosize from 'react-textarea-autosize'\nimport { FieldProps } from '../types'\n\nexport const TextAreaComponent = forwardRef<InputRef, FieldProps<TextField>>(\n ({ input, field, inEditable }, ref: ForwardedRef<InputRef>) => {\n const textColor = useTextColor()\n const inputRef = useRef<HTMLTextAreaElement>(null)\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n return (\n <TextareaAutosize\n placeholder={field.placeholder}\n minRows={2}\n maxRows={5}\n ref={inputRef}\n style={{\n // height: 'auto',\n resize: 'none',\n width: '100%',\n color: textColor,\n background: 'none',\n fontFamily: 'fonts.body',\n boxSizing: 'border-box',\n borderRadius: '4px',\n border: 'none',\n outline: 'none',\n }}\n {...input}\n />\n )\n },\n)\n\nTextAreaComponent.displayName = 'TextAreaComponent'\n","import { ViewIcon, ViewOffIcon } from '@chakra-ui/icons'\nimport { IconButton, Input } from '@chakra-ui/react'\nimport { InputRef } from '@chem-po/core'\nimport { TextField } from '@chem-po/react'\nimport React, { forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport { useInputStyles } from '../hooks'\nimport { InputContainer } from '../shared/InputContainer'\nimport { FieldProps } from '../types'\nimport { TextAreaComponent } from './textarea'\n\nexport const TextComponent = forwardRef<InputRef, FieldProps<TextField>>(\n ({ input, inEditable, meta, field, formSize }, ref) => {\n const { placeholder, type } = field\n const [isHidden, setIsHidden] = useState(type === 'password')\n const { text, container } = useInputStyles(inEditable, field.size, formSize)\n const { value } = input\n const inputRef = useRef<HTMLInputElement | HTMLTextAreaElement>(null)\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n const body =\n type === 'textarea' ? (\n <TextAreaComponent inEditable={inEditable} field={field} input={input} meta={meta} />\n ) : (\n <Input\n ref={inputRef as any}\n border=\"none\"\n _dark={{\n border: 'none',\n }}\n borderRadius={0}\n background=\"transparent\"\n _focus={{\n border: 'none',\n boxShadow: 'none',\n }}\n py={0}\n px={0}\n height=\"auto\"\n outline=\"none\"\n type={isHidden ? 'password' : 'text'}\n placeholder={placeholder}\n style={text}\n {...input}\n onChange={e => {\n input.onChange({ target: { value: e.target.value } })\n }}\n value={value ?? ''}\n />\n )\n\n return (\n <InputContainer style={container}>\n {body}\n {type === 'password' && (\n <IconButton\n position=\"absolute\"\n right={2}\n onClick={() => setIsHidden(!isHidden)}\n variant=\"ghost\"\n icon={isHidden ? <ViewIcon /> : <ViewOffIcon />}\n aria-label={isHidden ? 'show' : 'hide'}\n title={isHidden ? 'Show' : 'Hide'}\n size=\"xs\"\n />\n )}\n </InputContainer>\n )\n },\n)\n\nTextComponent.displayName = 'TextComponent'\n","import { Flex, FlexProps, Text, VStack } from '@chakra-ui/react'\nimport { FieldType, InputRef } from '@chem-po/core'\nimport { Field, TypedField } from '@chem-po/react'\nimport React, { ForwardedRef, forwardRef, ForwardRefExoticComponent, useMemo } from 'react'\nimport { BooleanComponent } from './boolean'\nimport { ColorComponent } from './color'\nimport { DateInput } from './date'\nimport { DateTimeInput } from './datetime'\nimport { FileComponent } from './file'\nimport { MultipleSelectComponent } from './multipleSelect'\nimport { CurrencyAmountComponent, NumberComponent } from './number'\nimport { OptionalTag } from './OptionalTag'\nimport { SelectComponent } from './select'\nimport { SocialMediaComponent } from './socialMedia'\nimport { TextComponent } from './text'\nimport { TimeInput } from './time'\nimport { FieldProps } from './types'\n\ntype ComponentType<T extends Field> = ForwardRefExoticComponent<\n FieldProps<T> & React.RefAttributes<InputRef>\n>\n\nconst Components: { [Key in FieldType]: ComponentType<TypedField<Key>> } = {\n text: TextComponent,\n file: FileComponent,\n boolean: BooleanComponent,\n select: SelectComponent,\n multipleSelect: MultipleSelectComponent,\n currency: CurrencyAmountComponent,\n number: NumberComponent,\n date: DateInput,\n datetime: DateTimeInput,\n time: TimeInput,\n socialMedia: SocialMediaComponent,\n color: ColorComponent,\n}\n\nconst InputBase = <T extends Field>(props: FieldProps<T>, ref: ForwardedRef<InputRef>) => {\n const {\n field,\n meta: { error, active, touched },\n input,\n inEditable,\n } = props\n\n const { value } = input\n\n const color = useMemo(() => {\n if (error && touched) return '#ff7777'\n if (active) return 'rgba(0,0,0,0.7)'\n return 'rgba(0,0,0,0.3)'\n }, [error, active, touched])\n const { _type, optional, label: Label } = field\n const showPlaceholder = useMemo(\n () => _type === 'multipleSelect' || (!!value && _type !== 'file' && _type !== 'boolean'),\n [value, _type],\n )\n const styles = useMemo<FlexProps>(() => {\n if (inEditable) return {}\n switch (_type) {\n case 'text':\n case 'number':\n case 'currency':\n case 'select':\n return { boxShadow: `0 0 7px ${color}`, transition: 'all 300ms' }\n default:\n return {}\n }\n }, [_type, color, inEditable])\n const Component = useMemo(() => Components[_type] as ComponentType<T>, [_type])\n\n const pb = useMemo(() => {\n if (inEditable) return 0\n return error && touched ? 6 : 2\n }, [inEditable, error, touched])\n return (\n <VStack\n position=\"relative\"\n align=\"flex-start\"\n width=\"100%\"\n py={inEditable ? 0 : 1}\n px={1}\n spacing={0}\n pb={pb}\n transition=\"all 500ms\"\n pt={showPlaceholder && !inEditable ? 5 : 0}>\n {Label && !inEditable ? (\n typeof Label === 'string' ? (\n <Text color=\"gray.800\" fontSize=\"sm\" px={2}>\n {Label}\n </Text>\n ) : (\n <Label />\n )\n ) : null}\n <Flex width=\"100%\" borderRadius={4} overflow=\"hidden\" {...styles}>\n <Component ref={ref} {...props} />\n </Flex>\n {inEditable ? null : (\n <>\n <Text\n opacity={error && touched ? 1 : 0}\n transition={`opacity 500ms ease ${error && touched ? 250 : 0}ms`}\n position=\"absolute\"\n bottom=\"0px\"\n fontSize=\"sm\"\n px={1}\n pointerEvents=\"none\"\n color=\"red.600\">\n {error}\n </Text>\n <Text\n opacity={showPlaceholder ? 1 : 0}\n transition={`opacity 500ms ease ${showPlaceholder ? 250 : 0}ms`}\n position=\"absolute\"\n top=\"-5px\"\n pointerEvents=\"none\"\n fontSize=\"sm\"\n fontFamily=\"fonts.heading\"\n px={1}\n color=\"blackAlpha.600\"\n _dark={{\n color: 'whiteAlpha.600',\n }}>\n {field.placeholder || ''}\n </Text>\n </>\n )}\n {optional && !inEditable ? <OptionalTag field={field} value={value} /> : null}\n </VStack>\n )\n}\n\nexport const Input = forwardRef<InputRef, FieldProps<Field>>(InputBase)\n","import { InputRef } from '@chem-po/core'\nimport React, { ForwardedRef, forwardRef } from 'react'\n\nimport { Field, useField } from '@chem-po/react'\nimport { ChangeHandler, Controller } from 'react-hook-form'\nimport { Input } from './input/input'\n\nconst FieldComponentBase = (\n { field, name }: { field: Field; name: string },\n ref: ForwardedRef<InputRef>,\n) => {\n const { control, getOnChange, meta, onFocus, onBlur: fieldBlur } = useField(name, field)\n return (\n <Controller<Field['defaultValue']>\n control={control}\n name={name}\n render={({ field: { name: _, ref: _r, onBlur, ...inputProps } }) => {\n return (\n <Input\n ref={ref}\n field={field}\n input={{\n ...inputProps,\n onFocus,\n onBlur: () => {\n fieldBlur()\n onBlur()\n },\n onChange: getOnChange(inputProps.onChange as ChangeHandler),\n }}\n meta={meta}\n />\n )\n }}\n />\n )\n}\n\nexport const FieldComponent = forwardRef(FieldComponentBase)\n","import { Center, Flex, Progress, Text } from '@chakra-ui/react'\nimport { UploadsState } from '@chem-po/core'\nimport React, { useMemo } from 'react'\nimport { TransitionGroup } from 'react-transition-group'\nimport { ExpandOnMount } from '../../box'\nimport './styles.css'\n\nexport const UploadProgress = ({ uploads }: { uploads: UploadsState }) => {\n const asArr = useMemo(() => Object.values(uploads), [uploads])\n return (\n <TransitionGroup component={Flex} width=\"100%\" flexFlow=\"column\">\n {asArr.map(upload => (\n <ExpandOnMount key={upload.label}>\n <Center px={2} height=\"26px\" position=\"relative\" w=\"100%\" flexDirection=\"column\">\n <Progress\n borderRadius=\"full\"\n value={upload.percent * 100}\n mx={2}\n my={1}\n size=\"md\"\n height=\"100%\"\n width=\"100%\"\n />\n <Text\n fontFamily=\"fonts.heading\"\n textShadow=\"1px 1px 3px #000000aa\"\n color=\"white\"\n position=\"absolute\"\n fontSize=\"sm\"\n fontWeight={500}>\n {upload.label.toUpperCase()}\n </Text>\n </Center>\n </ExpandOnMount>\n ))}\n </TransitionGroup>\n )\n}\n","import { Button, ButtonProps, Collapse, Flex, HStack, Progress, Text } from '@chakra-ui/react'\nimport React from 'react'\n\nimport { FC, PropsWithChildren } from 'react'\n\nimport {\n FormProps,\n IFormElement,\n useBorderColor,\n useChempoForm,\n UseFormSubmit,\n} from '@chem-po/react'\nimport { useFormState } from 'react-hook-form'\nimport { UploadProgress } from './UploadProgress'\n\nconst CancelButton = ({ onBack, children }: PropsWithChildren<{ onBack: () => void }>) => (\n <Button\n flex={1}\n transition=\"all 500ms\"\n onClick={onBack}\n variant=\"outline\"\n border=\"1px solid #cdcdcd\"\n color=\"#777\"\n ml=\"auto\">\n {children}\n </Button>\n)\n\nexport const SubmitButton: FC<\n { onSubmitClick: () => Promise<void>; submitting: boolean } & ButtonProps\n> = ({ onSubmitClick, submitting, children, filter, opacity }) => (\n <Button\n isLoading={submitting}\n filter={filter}\n flex={1}\n transition=\"all 500ms\"\n opacity={opacity}\n onClick={() => {\n onSubmitClick()\n }}\n ml=\"auto\"\n variant=\"solid\">\n {children}\n </Button>\n)\n\nconst FormErrorView = () => {\n const { formError } = useChempoForm()\n return (\n <Collapse in={!!formError}>\n <Text color=\"red\">{formError ?? ''}</Text>\n </Collapse>\n )\n}\n\nexport const FormFooter = <F extends IFormElement>({\n renderFooter: RenderFooter,\n ...props\n}: Pick<FormProps<F>, 'renderFooter' | 'onBack' | 'buttonText'> &\n Pick<UseFormSubmit, 'uploads'> & {\n onSubmit: () => Promise<void>\n }) => {\n const { uploads, onBack, buttonText, onSubmit } = props\n const { isSubmitting: submitting, isValid: valid } = useFormState()\n const borderColor = useBorderColor()\n return (\n <Flex w=\"100%\" flexFlow=\"column\">\n <Collapse endingHeight={5} style={{ width: '100%' }} in={submitting}>\n <Progress w=\"100%\" h=\"5px\" isIndeterminate />\n </Collapse>\n <UploadProgress uploads={uploads} />\n <FormErrorView />\n {RenderFooter ? (\n <RenderFooter {...props} />\n ) : (\n <HStack py={2} borderTop=\"1px solid\" borderColor={borderColor} px={3} w=\"100%\">\n {onBack ? <CancelButton onBack={onBack}>Cancel</CancelButton> : null}\n <SubmitButton\n size=\"sm\"\n filter={`grayscale(${!valid ? 100 : 0}%)`}\n opacity={!valid ? 0.5 : 1}\n onSubmitClick={onSubmit}\n submitting={submitting}>\n {buttonText}\n </SubmitButton>\n </HStack>\n )}\n </Flex>\n )\n}\n","import { Box, Flex, Text } from '@chakra-ui/react'\nimport { ImageViewOptions } from '@chem-po/core'\nimport { FileField } from '@chem-po/react'\nimport React, { useMemo } from 'react'\nimport { ExpandOnMount } from '../../box/ExpandOnMount'\nimport { FileView } from '../input/file'\nimport { FieldViewProps } from './types'\n\nexport const FileFieldView = ({ field, value, noLabel, style }: FieldViewProps<FileField>) => {\n const { imageOptions, placeholder } = field\n const options = useMemo<ImageViewOptions>(\n () => ({\n height: 150,\n ...imageOptions,\n }),\n [imageOptions],\n )\n return (\n <Flex flexFlow={value ? 'column' : 'row'} style={style}>\n {noLabel ? null : (\n <Text pr={2} opacity={0.7} fontWeight={600}>\n {placeholder}\n </Text>\n )}\n {value ? (\n <ExpandOnMount>\n <Box p={1}>\n <FileView imageOptions={options} value={value} />\n </Box>\n </ExpandOnMount>\n ) : (\n <Text opacity={0.7}>None</Text>\n )}\n </Flex>\n )\n}\n","import { Box, Text } from '@chakra-ui/react'\n\nimport { Flex, useColorMode } from '@chakra-ui/react'\nimport { MultipleSelectField } from '@chem-po/react'\nimport React, { useMemo } from 'react'\nimport { useInputStyles } from '../input/hooks/useInputStyles'\nimport { getRenderSelectedOptionText } from '../input/multipleSelect'\nimport { FieldViewProps } from './types'\n\nexport const MultipleSelectFieldView = <F extends MultipleSelectField>({\n field,\n value,\n noLabel,\n style,\n}: FieldViewProps<F>) => {\n const { placeholder, options } = field\n const { size, text } = useInputStyles(undefined, field.size)\n const selectedOptions = useMemo(\n () => options.filter(o => value?.includes(o.value)),\n [value, options],\n )\n const RenderSelectedOptionText = useMemo(\n () => getRenderSelectedOptionText(field, text),\n [field, text],\n )\n const { colorMode } = useColorMode()\n return (\n <Flex maxW=\"100%\" flexFlow=\"row wrap\" align=\"center\" style={style}>\n {noLabel ? null : (\n <Text pr={2} opacity={0.7} fontWeight={600}>\n {placeholder}\n </Text>\n )}\n {selectedOptions.length ? (\n selectedOptions.map(o => (\n <Box key={o.value} p={0.5}>\n <RenderSelectedOptionText\n value={o.value}\n option={o}\n colorMode={colorMode}\n isSelected={true}\n size={size}\n />\n </Box>\n ))\n ) : (\n <Text opacity={0.6}>None</Text>\n )}\n </Flex>\n )\n}\n","import { Flex, Text, useColorMode } from '@chakra-ui/react'\nimport { SelectField } from '@chem-po/react'\nimport React from 'react'\nimport { useInputStyles } from '../input/hooks/useInputStyles'\nimport { FieldViewProps } from './types'\n\nconst stringifyValue = (value: any) => {\n if (typeof value === 'string') return value\n if (typeof value === 'number') return value.toString()\n if (typeof value === 'boolean') return value.toString()\n return JSON.stringify(value)\n}\nconst DefaultRenderOption = (value: any) => {\n // TODO: maybe handle non-string values more gracefully\n return <Text>{stringifyValue(value)}</Text>\n}\n\nexport const SelectFieldView = <F extends SelectField>({\n field,\n value,\n noLabel,\n style,\n size: propSize,\n}: FieldViewProps<F>) => {\n const { placeholder, renderOption: customRender } = field\n const { colorMode } = useColorMode()\n const { size } = useInputStyles(undefined, field.size, propSize)\n const selectedOption = field.options.find(o => o.value === value)\n const RenderOption = customRender ?? DefaultRenderOption\n return (\n <Flex align=\"center\" style={style}>\n {noLabel ? null : (\n <Text pr={2} opacity={0.7} fontWeight={600}>\n {placeholder}\n </Text>\n )}\n {value && selectedOption ? (\n <RenderOption\n value={value}\n option={selectedOption}\n colorMode={colorMode}\n isSelected={true}\n size={size}\n />\n ) : (\n <Text>None</Text>\n )}\n </Flex>\n )\n}\n","import { Flex, Text } from '@chakra-ui/react'\n\nimport { formatField } from '@chem-po/core'\nimport { Field, FormatField } from '@chem-po/react'\nimport React, { CSSProperties, useMemo } from 'react'\nimport { FileFieldView } from './file'\nimport { MultipleSelectFieldView } from './multipleSelect'\nimport { SelectFieldView } from './select'\nimport { FieldViewProps } from './types'\n\nconst DefaultFieldView = <F extends Field>({ field, value, noLabel, style }: FieldViewProps<F>) => {\n const { placeholder } = field\n\n const formatted = useMemo(() => {\n const format = formatField[field._type] as FormatField<F>\n if (!format) return value\n return format(field, value)\n }, [value, field])\n return (\n <Flex align=\"center\" style={style}>\n {noLabel ? null : (\n <Text pr={2} opacity={0.7} fontWeight={600}>\n {placeholder}\n </Text>\n )}\n <Text opacity={value !== undefined && value !== null ? 1 : 0.6}>{formatted ?? 'None'}</Text>\n </Flex>\n )\n}\n\nexport const FieldView = ({\n field,\n value,\n noLabel,\n style,\n}: {\n field: Field\n value: any\n noLabel?: boolean\n style?: CSSProperties\n}) => {\n switch (field._type) {\n case 'select':\n return <SelectFieldView style={style} field={field} value={value} noLabel={noLabel} />\n case 'multipleSelect':\n return <MultipleSelectFieldView style={style} field={field} value={value} noLabel={noLabel} />\n case 'file':\n return <FileFieldView style={style} field={field} value={value} noLabel={noLabel} />\n default:\n return <DefaultFieldView style={style} field={field} value={value} noLabel={noLabel} />\n }\n}\n","import { InputRef } from '@chem-po/core'\nimport { Field, useStandaloneInput } from '@chem-po/react'\nimport React, { CSSProperties, ForwardedRef, forwardRef } from 'react'\nimport { Input } from './input'\n\nconst StandaloneInputBase = (\n {\n onChange,\n value,\n field,\n onBlur,\n inEditable,\n onFocus,\n style,\n }: {\n onChange: (v?: any) => void\n value?: any\n field: Field\n onBlur?: () => void\n onFocus?: () => void\n theme?: 'basic' | 'detailed'\n inEditable?: boolean\n style?: CSSProperties\n },\n ref: ForwardedRef<InputRef>,\n) => {\n const { inputProps, meta } = useStandaloneInput(field, value, onChange, onFocus, onBlur)\n\n return (\n <Input\n ref={ref}\n field={field}\n inEditable={inEditable}\n style={style}\n input={inputProps}\n meta={meta}\n />\n )\n}\n\nexport const StandaloneInput = forwardRef(StandaloneInputBase)\n","import { CheckIcon, CloseIcon, EditIcon } from '@chakra-ui/icons'\nimport { Flex, IconButton } from '@chakra-ui/react'\nimport { palette } from '@chem-po/core'\nimport {\n CustomEditableViewProps,\n EditableProps,\n Field,\n useColorModeValue,\n useEditable,\n} from '@chem-po/react'\nimport React, { CSSProperties, useCallback, useEffect, useMemo } from 'react'\nimport { CustomInputProps } from '../../../types/forms'\nimport { LoadingOverlay } from '../../loading/Loading'\nimport { UploadProgress } from '../UploadProgress'\nimport { FieldView } from '../view'\nimport { StandaloneInput } from './StandaloneInput'\n\nexport const Editable = <T extends Field>({\n value: initValue,\n field,\n onSubmit,\n storagePath,\n style,\n onEditClose,\n onEditOpen,\n CustomInput,\n CustomView,\n containerStyle,\n size,\n}: EditableProps<CSSProperties, CSSProperties, T>) => {\n const {\n inputRef,\n setValue,\n isLoading,\n uploads,\n editHovered,\n handleEditOpen,\n handleEditClose,\n isEditing,\n value,\n setEditHovered,\n submit,\n submitValue,\n } = useEditable({\n value: initValue,\n field,\n onSubmit,\n storagePath,\n onEditOpen,\n onEditClose,\n })\n const alwaysEditing = useMemo(\n () => field && (field._type === 'file' || field._type === 'boolean'),\n [field],\n )\n useEffect(() => {\n if (isEditing) {\n inputRef.current?.focus()\n }\n }, [isEditing, inputRef])\n\n const editingBorderColor = useColorModeValue('#00000055', '#ffffff55')\n\n const RenderInput = useCallback(\n (props: CustomInputProps<T['defaultValue']>) => {\n if (CustomInput) {\n return <CustomInput {...props} />\n }\n if (!field) throw new Error('Editable component must have a field OR a CustomInput')\n return <StandaloneInput field={field} {...props} />\n },\n [CustomInput, field],\n )\n\n const RenderView = useCallback(\n (props: CustomEditableViewProps<T['defaultValue']>) => {\n if (CustomView) {\n return <CustomView {...props} />\n }\n if (!field) throw new Error('Editable component must have a field OR a CustomView')\n return <FieldView style={style} field={field} value={value} {...props} />\n },\n [CustomView, field, style, value],\n )\n\n return (\n <Flex\n borderRadius={4}\n border={`1px dashed ${editHovered && !isEditing ? editingBorderColor : 'transparent'}`}\n flexFlow=\"column\"\n w=\"100%\"\n style={containerStyle}>\n <Flex align=\"center\" px={1} position=\"relative\" w=\"100%\">\n <Flex\n opacity={isLoading ? 0 : 1}\n transition=\"all 300ms\"\n mr={1}\n border={`1px dashed ${isEditing ? editingBorderColor : 'transparent'}`}\n flex={1}\n minW=\"0\">\n {isEditing || alwaysEditing ? (\n <RenderInput\n ref={inputRef}\n value={value}\n inEditable\n style={{ padding: 0, ...style }}\n size={size}\n onChange={alwaysEditing ? v => submitValue(v) : setValue}\n inputStyle={style}\n />\n ) : (\n <RenderView inEditable size={size} value={value} />\n )}\n </Flex>\n {alwaysEditing ? null : (\n <>\n <IconButton\n aria-label=\"Edit\"\n size=\"xs\"\n icon={isEditing ? <CloseIcon width={3} /> : <EditIcon />}\n onMouseEnter={() => setEditHovered(true)}\n onMouseLeave={() => setEditHovered(false)}\n onClick={() => {\n if (isEditing) {\n setValue(value)\n handleEditClose()\n } else handleEditOpen()\n }}\n />\n <Flex\n transition=\"all 300ms\"\n justify=\"flex-end\"\n opacity={isEditing ? 1 : 0}\n overflow=\"hidden\"\n w={isEditing ? '30px' : '0px'}>\n <IconButton\n aria-label=\"Edit\"\n size=\"xs\"\n bg={palette.cyan.light}\n _dark={{ bg: palette.cyan.light, _hover: { bg: palette.cyan.lighter } }}\n _hover={{\n bg: palette.cyan.medium,\n }}\n icon={<CheckIcon filter=\"drop-shadow(1px 1px 3px #000000aa)\" />}\n onClick={() => {\n submit()\n }}\n />\n </Flex>\n </>\n )}\n <LoadingOverlay isLoading={isLoading} />\n </Flex>\n <UploadProgress uploads={uploads} />\n </Flex>\n )\n}\n","import { CloseIcon, DeleteIcon, DragHandleIcon, EditIcon } from '@chakra-ui/icons'\nimport {\n Box,\n Button,\n Flex,\n IconButton,\n Stack,\n Text,\n useColorModeValue,\n VStack,\n} from '@chakra-ui/react'\nimport { isField, isListField } from '@chem-po/core'\nimport {\n ChempoFormProvider,\n DataViewProps,\n DataViewProvider,\n Field,\n FieldFormProps,\n FieldMap,\n FieldMapFormProps,\n FormOnSubmit,\n FormProps,\n IFormElement,\n ListField,\n useDataView,\n useFormSubmit,\n UseFormSubmitProps,\n useGetItemField,\n} from '@chem-po/react'\nimport { DragDropContext, Draggable, Droppable, DropResult } from '@hello-pangea/dnd'\nimport React, { FC, useMemo, useState } from 'react'\nimport { useFieldArray, UseFieldArrayMove, useFormContext } from 'react-hook-form'\nimport { useBorderColor } from '../../hooks'\nimport { Expandable } from '../box'\nimport { ExpandOnMount } from '../box/ExpandOnMount'\nimport { DeleteButton } from '../button/DeleteButton'\nimport { Condition } from './Condition'\nimport { FieldComponent } from './Field'\nimport { FormFooter } from './FormFooter'\nimport { Editable } from './input/Editable'\nimport { FieldView } from './view'\n\nconst makeOnDragEndFunction = (move: UseFieldArrayMove) => (result: DropResult) => {\n // dropped outside the list\n if (!result.destination) {\n return\n }\n\n move(result.source.index, result.destination.index)\n}\n\nexport const ListFieldInput: FC<{ field: ListField; name: string }> = ({ field, name }) => {\n const emptyData = useMemo(() => {\n if (isField(field.itemField)) return ''\n if (isListField(field.itemField)) return []\n return {}\n }, [field])\n const draggingBg = useColorModeValue('#efefef', '#2b2b2b')\n const borderColor = useBorderColor()\n const { control } = useFormContext()\n const { fields, append, remove, move } = useFieldArray({\n control,\n name,\n })\n const onDragEnd = useMemo(() => makeOnDragEndFunction(move), [move])\n return (\n <Flex overflow=\"hidden\" gap={2} flexFlow=\"column\" w=\"100%\" px={2} py={1}>\n <Text lineHeight={1} opacity={0.7} fontSize=\"sm\">\n {field.placeholder}\n </Text>\n <DragDropContext onDragEnd={onDragEnd}>\n <Droppable droppableId=\"droppable\">\n {(droppableProvided, { draggingFromThisWith }) => (\n <Flex\n ref={droppableProvided.innerRef}\n flexFlow=\"column\"\n w=\"100%\"\n py={1}\n borderRadius={4}\n minH=\"30px\"\n align=\"flex\"\n {...droppableProvided.droppableProps}>\n {fields.length ? (\n fields.map((formField, idx) => (\n <Draggable key={formField.id} draggableId={formField.id} index={idx}>\n {({ dragHandleProps, draggableProps, innerRef }, { isDragging }) => (\n <Flex\n transition=\"all 300ms\"\n boxShadow={`2px 2px 4px #000000${isDragging ? '55' : '00'}`}\n borderRadius={4}\n pt={2}\n px={2}\n border={`1px solid ${borderColor}`}\n bg={`${draggingBg}${isDragging ? 'ff' : '00'}`}\n ref={innerRef}\n w=\"100%\"\n {...draggableProps}>\n <ExpandOnMount>\n <Flex\n opacity={draggingFromThisWith && !isDragging ? 0.5 : 1}\n gap={1}\n align=\"center\"\n w=\"100%\">\n <IconButton\n aria-label=\"drag\"\n size=\"xs\"\n opacity={0.8}\n variant=\"ghost\"\n icon={<DragHandleIcon />}\n {...dragHandleProps}\n />\n <Box minW=\"0\" flex={1}>\n <FormElement name={formField.id} field={field.itemField} />\n </Box>\n <IconButton\n aria-label=\"delete\"\n size=\"xs\"\n bg=\"red.600\"\n color=\"white\"\n icon={<DeleteIcon filter=\"drop-shadow(1px 1px 3px #00000088)\" />}\n onClick={e => {\n e.stopPropagation()\n remove(idx)\n }}\n />\n </Flex>\n </ExpandOnMount>\n </Flex>\n )}\n </Draggable>\n ))\n ) : (\n <Text fontSize=\"sm\" opacity={0.7} py={1} px={2}>\n No items\n </Text>\n )}\n {droppableProvided.placeholder}\n </Flex>\n )}\n </Droppable>\n </DragDropContext>\n <Flex>\n <Button mr=\"auto\" width=\"auto\" size=\"xs\" onClick={() => append(emptyData)}>\n + NEW\n </Button>\n </Flex>\n </Flex>\n )\n}\n\nexport const FormElement = ({\n field,\n name,\n // validate,\n}: {\n field: IFormElement\n name: string\n // validate?: boolean\n}) => {\n const fields = useMemo<Array<{ name: string; field: IFormElement }>>(() => {\n if (isField(field) || isListField(field)) return [{ name: 'value', field }]\n\n return Object.entries((field as FieldMap).children).map(([childName, childField]) => ({\n name: `${name ? `${name}.` : ''}${childName}`,\n field: childField,\n }))\n }, [field, name])\n return (\n <VStack spacing={1} w=\"100%\">\n {fields.map(f => {\n if (isListField(f.field)) {\n const b = <ListFieldInput key={f.name} name={f.name} field={f.field} />\n return f.field.condition ? (\n <Condition path={name} condition={f.field.condition} key={f.name}>\n {b}\n </Condition>\n ) : (\n b\n )\n }\n if (isField(f.field)) {\n const b = <FieldComponent key={f.name} name={f.name} field={f.field} />\n return f.field.condition ? (\n <Condition path={name} condition={f.field.condition} key={f.name}>\n {b}\n </Condition>\n ) : (\n b\n )\n }\n\n const b = <FormElement key={f.name} name={f.name} field={f.field} />\n return f.field.condition ? (\n <Condition path={name} condition={f.field.condition} key={f.name}>\n {b}\n </Condition>\n ) : (\n b\n )\n })}\n </VStack>\n )\n}\nconst ListFieldView = ({\n field,\n value,\n path,\n}: {\n field: ListField\n value: any[]\n path: string\n}) => {\n const { placeholder } = field\n const borderColor = useBorderColor()\n const getItemField = useGetItemField(field)\n return (\n <Box w=\"100%\" p={1}>\n <Expandable\n border={`1px solid ${borderColor}`}\n borderRadius={4}\n initExpanded\n header={() => <Text py={1}>{placeholder}</Text>}>\n <Flex flexFlow=\"column\" bg=\"background.200\" gap={2} px={2} py={1}>\n {value?.length ? (\n value.map((item, index) => (\n <Box\n bg=\"background.100\"\n key={`${path}.${index}`}\n border={`1px solid ${borderColor}`}\n borderRadius={3}>\n <FormElementView\n path={`${path}.${index}`}\n field={getItemField(index)}\n value={item}\n />\n </Box>\n ))\n ) : (\n <Text fontSize=\"sm\" opacity={0.7} py={1} px={2}>\n No items\n </Text>\n )}\n </Flex>\n </Expandable>\n </Box>\n )\n}\n\nconst FormElementView = ({\n field,\n value,\n path,\n storagePath,\n}: {\n field: IFormElement\n value: any\n path: string\n storagePath?: string\n}) => {\n const { updateField } = useDataView()\n if (isField(field)) {\n return updateField ? (\n <Editable\n storagePath={storagePath}\n field={field}\n value={value}\n onSubmit={v => updateField(path, v)}\n />\n ) : (\n <FieldView field={field} value={value} />\n )\n }\n if (isListField(field)) {\n return <ListFieldView path={path} field={field} value={value} />\n }\n return (\n <DataView\n storagePath={storagePath ? `${storagePath}.${path}` : undefined}\n path={path}\n field={field}\n />\n )\n}\n\nexport const DataView = ({\n field,\n value,\n onClose,\n onDelete,\n onSubmit,\n itemName,\n storagePath,\n path = '',\n}: DataViewProps & { path?: string }) => {\n const { name: fieldName, children } = field\n const [isEditing, setIsEditing] = useState(false)\n return (\n <DataViewProvider value={value} onSubmit={onSubmit}>\n <Expandable\n alwaysExpanded\n header={() => (\n <Flex align=\"center\" px={2} w=\"100%\">\n <Text py={2} fontSize=\"lg\" fontFamily=\"fonts.heading\">\n {fieldName}\n </Text>\n <Flex gap={2} align=\"center\" ml=\"auto\">\n {onDelete ? <DeleteButton onDelete={onDelete} itemName={itemName ?? 'item'} /> : null}\n {onSubmit ? (\n <IconButton\n size=\"sm\"\n borderRadius=\"full\"\n minW={0}\n w={7}\n h={7}\n ml=\"auto\"\n aria-label=\"edit\"\n icon={<EditIcon />}\n onClick={() => setIsEditing(true)}\n />\n ) : null}\n {onClose ? (\n <IconButton\n size=\"sm\"\n borderRadius=\"full\"\n minW={0}\n w={7}\n h={7}\n variant=\"ghost\"\n aria-label=\"close\"\n icon={<CloseIcon opacity={0.8} w={3} h={3} />}\n onClick={onClose}\n />\n ) : null}\n </Flex>\n </Flex>\n )}>\n {isEditing && onSubmit ? (\n <Form\n storagePath={storagePath}\n field={field}\n value={value}\n onSubmit={onSubmit}\n onBack={() => setIsEditing(false)}\n />\n ) : (\n <Flex flexFlow=\"column\" px={4} py={2}>\n {Object.entries(children).map(([key, childField]) => (\n <FormElementView\n storagePath={storagePath ? `${storagePath}/${key}` : undefined}\n path={path ? `${path}.${key}` : key}\n key={key}\n field={childField}\n value={value?.[key]}\n />\n ))}\n </Flex>\n )}\n </Expandable>\n </DataViewProvider>\n )\n}\n\nexport const FieldMapForm = <F extends FieldMap>({\n onSubmit: submit,\n onBack,\n field,\n value,\n buttonText = 'SUBMIT',\n renderFooter,\n storagePath,\n}: FieldMapFormProps<F>) => {\n const submitDataProps = useMemo<UseFormSubmitProps<F>>(\n () => ({\n field,\n value,\n submit,\n storagePath,\n }),\n [field, value, submit, storagePath],\n )\n\n const { onSubmit, uploads } = useFormSubmit(submitDataProps)\n\n return (\n <Stack w=\"100%\" spacing={3}>\n <form>\n <Box pt={1} px={2} w=\"100%\">\n <FormElement name=\"\" field={field} />\n </Box>\n <FormFooter\n uploads={uploads}\n onSubmit={onSubmit}\n renderFooter={renderFooter}\n onBack={onBack}\n buttonText={buttonText}\n />\n </form>\n </Stack>\n )\n}\n\nexport const FieldForm = <F extends Field | ListField>({\n onSubmit,\n field,\n value,\n ...props\n}: FieldFormProps<F>) => {\n const fieldMap = useMemo<FieldMap>(() => ({ children: { value: field } }), [field])\n return (\n <FieldMapForm\n field={fieldMap}\n value={{ value }}\n onSubmit={data => onSubmit(data?.value)}\n {...props}\n />\n )\n}\n\nexport const Form = <F extends IFormElement>({ field, onSubmit, ...props }: FormProps<F>) => {\n const body =\n isField(field) || isListField(field) ? (\n <FieldForm field={field} onSubmit={onSubmit as FormOnSubmit<Field | ListField>} {...props} />\n ) : (\n <FieldMapForm field={field} onSubmit={onSubmit as FormOnSubmit<FieldMap>} {...props} />\n )\n\n return <ChempoFormProvider>{body}</ChempoFormProvider>\n}\n","import { Flex, FlexProps } from '@chakra-ui/react'\nimport { useMounted } from '@chem-po/react'\nimport React from 'react'\nimport { FullSizeProvider } from '../box'\n\nexport const ListContainer = (props: FlexProps) => {\n const mounted = useMounted()\n return (\n <FullSizeProvider>\n <Flex\n overflow=\"hidden\"\n flexFlow=\"column\"\n h=\"100%\"\n w=\"100%\"\n opacity={mounted ? 1 : 0}\n transition=\"opacity 300ms\"\n {...props}\n />\n </FullSizeProvider>\n )\n}\n","import { Flex } from '@chakra-ui/react'\nimport { AnyObject, ColorMode, DBItem } from '@chem-po/core'\nimport { DataList, ListGridOptions } from '@chem-po/react'\nimport React from 'react'\nimport { GridChildComponentProps } from 'react-window'\n\nexport interface GridItemProps<T extends AnyObject> {\n list: DataList<T>\n grid: ListGridOptions<T>\n items: Array<DBItem<T>>\n colorMode: ColorMode\n numCols: number\n mobileLayout: boolean\n onSelect: (item: DBItem<T>) => void\n refetch?: (id: string) => Promise<void>\n}\nexport const ListCell = <T extends AnyObject>({\n data,\n rowIndex,\n columnIndex,\n style,\n}: GridChildComponentProps<GridItemProps<T>>) => {\n const { items, onSelect, refetch, grid, numCols, colorMode } = data || {}\n const { ItemPreview: Render } = grid\n\n const itemIdx = rowIndex * numCols + columnIndex\n const item = items[itemIdx]\n if (!item) return null\n return (\n <Flex\n display=\"flex\"\n cursor=\"pointer\"\n aria-label=\"list-item\"\n onClick={() => {\n onSelect(item)\n }}\n style={style}\n px={1}\n py={0.25}\n key={itemIdx}>\n <Render\n index={itemIdx}\n item={item}\n refetch={refetch ? () => refetch(item.id) : undefined}\n colorMode={colorMode}\n />\n </Flex>\n )\n}\n","import { Flex, Text } from '@chakra-ui/react'\nimport { toPlural } from '@chem-po/core'\nimport { useDataList, usePaginatedList } from '@chem-po/react'\nimport React, { useMemo } from 'react'\nimport { Loading } from '../loading'\n\nexport const NoItemsRow = () => {\n const {\n list,\n search: { debounced, search },\n } = useDataList()\n const {\n data: { isLoading },\n } = usePaginatedList()\n const showLoading = useMemo(\n () => isLoading || debounced !== search,\n [isLoading, debounced, search],\n )\n const { itemName, pluralItemName, noItemsMessage, searchRequired } = list\n return (\n <Flex justify=\"center\" align=\"flex-start\" w=\"100%\" h=\"100%\">\n {showLoading ? (\n <Loading text={`Loading ${pluralItemName ?? toPlural(itemName)}`} />\n ) : (\n <Text textAlign=\"center\" flex={1} p={3} fontStyle=\"italic\" opacity={0.7}>\n {!debounced && searchRequired\n ? `Search ${pluralItemName ?? toPlural(itemName)}`\n : (noItemsMessage ?? `No ${pluralItemName ?? toPlural(itemName)}`)}\n </Text>\n )}\n </Flex>\n )\n}\n","import {\n AnyObject,\n arrayOperators,\n BaseQuery,\n QueryFilter,\n SearchPath,\n stringTransforms,\n} from '@chem-po/core'\nimport { FilterPreset } from '@chem-po/react'\nimport { Query, query, where } from 'firebase/firestore'\n\nexport const getIsDynamicSize = (itemHeight: number | ((item: any) => number)) =>\n typeof itemHeight === 'function'\n\nexport const getTextSearchQuery = <T extends AnyObject>(\n baseQuery: Query<T>,\n searchQuery: string,\n searchPath: SearchPath<T>,\n) => {\n let trimmed = searchQuery.trim()\n if (!trimmed) return baseQuery\n if (searchPath.transform) trimmed = stringTransforms[searchPath.transform](trimmed)\n return query(\n baseQuery,\n where(searchPath.prop, '>=', trimmed),\n where(searchPath.prop, '<=', `${trimmed}\\uf8ff`),\n )\n}\nexport const getSearchQueries = <T extends AnyObject>(\n baseQuery: Query<T>,\n searchData: BaseQuery<T>['search'],\n): Array<Query<T>> => {\n if (!searchData) return [baseQuery]\n const { paths, query: search } = searchData\n if (!paths?.length || !search) return [baseQuery]\n return paths.map(path => getTextSearchQuery(baseQuery, search, path))\n}\nconst nativeFilterMatchesPreset = <T extends AnyObject>(\n nativeFilter: QueryFilter<T>,\n presetFilter: QueryFilter<T>,\n) => {\n if (nativeFilter.key !== presetFilter.key) return false\n if (nativeFilter.operator !== presetFilter.operator) return false\n if (arrayOperators.includes(nativeFilter.operator)) {\n const nativeValues = Array.isArray(nativeFilter.value)\n ? nativeFilter.value\n : [nativeFilter.value]\n const presetValues = Array.isArray(presetFilter.value)\n ? presetFilter.value\n : [presetFilter.value]\n if (presetValues.every(value => !nativeValues.includes(value))) return false\n return true\n }\n return nativeFilter.value === presetFilter.value\n}\n\nexport const filterMatchesPreset = <T extends AnyObject>(\n filter: QueryFilter<T>,\n { nativeFilter }: FilterPreset<T>,\n) => {\n const nativeFilters = Array.isArray(nativeFilter) ? nativeFilter : [nativeFilter]\n return nativeFilters.every(nativeFilter => nativeFilterMatchesPreset(nativeFilter, filter))\n}\n","import { AnyObject } from '@chem-po/core'\nimport { DataList, ListGridOptions, usePaginatedList } from '@chem-po/react'\nimport { useMemo } from 'react'\n\n// determine number of columns and rows based on data and grid options\n// if row height and column width are both variable, throw an error\n// if row height is variable, calculate dims based on data\n// if column width is variable, calculate dims based on data\ninterface CellDims {\n numRows: number\n numCols: number\n}\nconst getCellDims = <T extends AnyObject>(\n data: T[],\n grid: Required<DataList<T>>['grid'],\n gridWidth: number,\n): CellDims => {\n const { rowHeight, columnWidth } = grid\n if (typeof rowHeight !== 'number' && typeof columnWidth !== 'number') {\n throw new Error('Cannot have both variable row height and variable column width')\n }\n\n if (typeof columnWidth === 'function') {\n const numCols = Math.floor(gridWidth / columnWidth(data[0]))\n const numRows = Math.ceil(data.length / numCols)\n return { numRows, numCols }\n }\n const numCols = Math.max(1, Math.floor(gridWidth / columnWidth))\n const numRows = Math.ceil(data.length / numCols)\n return { numRows, numCols }\n}\n\ntype CellSize = CellDims & {\n rowHeight: number | ((idx: number) => number)\n colWidth: number | ((idx: number) => number)\n}\n\nconst getCellSize = <T extends AnyObject>(\n data: T[],\n grid: Required<DataList<T>>['grid'],\n gridWidth: number,\n): CellSize => {\n const { rowHeight: preferredHeight, columnWidth: preferredWidth } = grid\n const { numRows, numCols } = getCellDims(data, grid, gridWidth)\n\n const colWidths =\n typeof preferredWidth === 'number'\n ? gridWidth / numCols\n : Array.from({ length: numCols }, (_i, i) => {\n const col = data.filter((_j, j) => j % numCols === i)\n return col.reduce((acc, item) => {\n const itemWidth = preferredWidth(item)\n return Math.max(acc, itemWidth)\n }, 0)\n })\n\n const rowHeights =\n typeof preferredHeight === 'number'\n ? preferredHeight\n : Array.from({ length: numRows }, (_, i) => {\n const row = data.slice(i * numCols, (i + 1) * numCols)\n return row.reduce((acc, item) => {\n const itemHeight = preferredHeight(item)\n return Math.max(acc, itemHeight)\n }, 0)\n })\n\n const rowHeight = Array.isArray(rowHeights) ? (idx: number) => rowHeights[idx] : rowHeights\n const colWidth = Array.isArray(colWidths) ? (idx: number) => colWidths[idx] : colWidths\n\n return {\n rowHeight,\n colWidth,\n numCols,\n numRows,\n }\n}\n\nexport const useGridDims = <T extends AnyObject>(grid: ListGridOptions<T>, width: number) => {\n const {\n data: { data },\n } = usePaginatedList<T>()\n return useMemo(() => getCellSize(data, grid, width), [data, grid, width])\n}\n","import { useColorMode } from '@chakra-ui/react'\nimport { AnyObject, WithId } from '@chem-po/core'\nimport { ListGridOptions, useDataList, useFullSize, usePaginatedList } from '@chem-po/react'\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport {\n FixedSizeGrid,\n GridOnItemsRenderedProps,\n ListOnItemsRenderedProps,\n VariableSizeGrid,\n} from 'react-window'\nimport InfiniteLoader from 'react-window-infinite-loader'\nimport { GridItemProps, ListCell } from '../ListItem/ListCell'\nimport { ListItemProps } from '../ListItem/ListRow'\nimport { NoItemsRow } from '../NoItems'\nimport { getIsDynamicSize } from '../utils'\nimport { useGridDims } from './hooks'\n\nexport const InfiniteScrollGridBody = <T extends AnyObject>({\n height,\n options,\n}: {\n height: number\n options: ListGridOptions<T>\n}) => {\n const {\n totalCount,\n data: { data: items },\n refetchItem,\n isItemLoaded,\n goNext: fetchMoreData,\n } = usePaginatedList<T>()\n const { list, onSelectItem, mobileLayout, query } = useDataList<T>()\n const { width } = useFullSize()\n const { numCols, numRows, rowHeight, colWidth } = useGridDims<T>(options, width)\n const { previewHeight, mobile } = list\n const { colorMode } = useColorMode()\n const itemData = useMemo<GridItemProps<T>>(\n () => ({\n list,\n items,\n mobileLayout,\n grid: options,\n colorMode,\n numCols,\n onSelect: (item: WithId<T>) => onSelectItem(item.id),\n refetch: refetchItem,\n }),\n [items, list, refetchItem, onSelectItem, mobileLayout, numCols, options, colorMode],\n )\n\n const varRef = useRef<VariableSizeGrid | null>(null)\n\n const itemHeight = useMemo(\n () => (mobileLayout ? (mobile?.previewHeight ?? previewHeight) : previewHeight),\n [mobile, previewHeight, mobileLayout],\n )\n\n useEffect(() => {\n const varGrid = varRef.current\n if (varGrid) {\n varGrid.resetAfterColumnIndex(0)\n varGrid.resetAfterRowIndex(0)\n }\n }, [query])\n\n const infiniteLoaderRef = useRef<InfiniteLoader>(null)\n useEffect(() => {\n if (infiniteLoaderRef.current) {\n infiniteLoaderRef.current.resetloadMoreItemsCache(true)\n }\n }, [totalCount])\n\n const isDynamicHeight = useMemo(() => getIsDynamicSize(itemHeight), [itemHeight])\n\n const itemKey = useCallback(\n ({\n columnIndex,\n rowIndex,\n data,\n }: {\n columnIndex: number\n rowIndex: number\n data: ListItemProps<T>\n }) => {\n const index = rowIndex * numCols + columnIndex\n return data.items[index]?.id || `${index}`\n },\n [numCols],\n )\n\n const onRendered = useCallback(\n (\n {\n overscanColumnStartIndex,\n overscanColumnStopIndex,\n overscanRowStartIndex,\n overscanRowStopIndex,\n visibleColumnStartIndex,\n visibleColumnStopIndex,\n visibleRowStartIndex,\n visibleRowStopIndex,\n }: GridOnItemsRenderedProps,\n onItemsRendered: (p: ListOnItemsRenderedProps) => void,\n ) => {\n const start = visibleRowStartIndex * numCols + visibleColumnStartIndex\n const stop = visibleRowStopIndex * numCols + visibleColumnStopIndex\n const overscanStart = overscanRowStartIndex * numCols + overscanColumnStartIndex\n const overscanStop = overscanRowStopIndex * numCols + overscanColumnStopIndex\n onItemsRendered({\n overscanStartIndex: overscanStart,\n overscanStopIndex: overscanStop,\n visibleStartIndex: start,\n visibleStopIndex: stop,\n })\n },\n [numCols],\n )\n\n if (!items.length) {\n return <NoItemsRow />\n }\n\n return isDynamicHeight ? (\n <InfiniteLoader\n isItemLoaded={isItemLoaded}\n ref={infiniteLoaderRef}\n itemCount={totalCount ?? 0}\n loadMoreItems={fetchMoreData}>\n {({ onItemsRendered, ref }) => (\n <VariableSizeGrid<GridItemProps<T>>\n height={height}\n width={width}\n rowCount={numRows}\n columnCount={numCols}\n rowHeight={rowHeight as (idx: number) => number}\n columnWidth={colWidth as (idx: number) => number}\n itemData={itemData}\n style={{ overflowX: 'hidden' }}\n itemKey={itemKey}\n onItemsRendered={i => onRendered(i, onItemsRendered)}\n ref={r => {\n ref(r)\n varRef.current = r\n }}>\n {ListCell}\n </VariableSizeGrid>\n )}\n </InfiniteLoader>\n ) : (\n <InfiniteLoader\n isItemLoaded={isItemLoaded}\n itemCount={totalCount ?? 0}\n ref={infiniteLoaderRef}\n loadMoreItems={fetchMoreData}>\n {({ onItemsRendered, ref }) => (\n <FixedSizeGrid<GridItemProps<T>>\n height={height}\n width={width}\n rowCount={numRows}\n columnCount={numCols}\n rowHeight={rowHeight as number}\n columnWidth={colWidth as number}\n itemData={itemData}\n onItemsRendered={i => onRendered(i, onItemsRendered)}\n style={{\n overflowX: 'hidden',\n }}\n ref={r => {\n ref(r)\n varRef.current = null\n }}>\n {ListCell}\n </FixedSizeGrid>\n )}\n </InfiniteLoader>\n )\n}\n","import { Flex } from '@chakra-ui/react'\nimport { AnyObject, ColorMode, DBItem } from '@chem-po/core'\nimport { DataList } from '@chem-po/react'\nimport React from 'react'\nimport { ListChildComponentProps } from 'react-window'\n\nexport interface ListItemProps<T extends AnyObject = AnyObject> {\n list: DataList<T>\n items: Array<DBItem<T>>\n mobileLayout: boolean\n onSelect: (item: DBItem<T>) => void\n colorMode: ColorMode\n refetch?: (id: string) => Promise<void>\n}\nexport const ListRow = <T extends AnyObject>({\n data,\n index,\n style,\n}: ListChildComponentProps<ListItemProps<T>>) => {\n const { list, items, onSelect, refetch, mobileLayout, colorMode } = data || {}\n const { ItemPreview: RenderItem, mobile } = list\n\n const Render = mobileLayout ? (mobile?.ItemPreview ?? RenderItem) : RenderItem\n const item = items[index]\n if (!item) return null\n return (\n <Flex\n display=\"flex\"\n cursor=\"pointer\"\n aria-label=\"list-item\"\n onClick={() => {\n onSelect(items[index])\n }}\n style={style}\n key={index}>\n <Render\n index={index}\n item={item}\n refetch={refetch ? () => refetch(item.id) : undefined}\n colorMode={colorMode}\n />\n </Flex>\n )\n}\n","import { useColorMode } from '@chakra-ui/react'\nimport { AnyObject, WithId } from '@chem-po/core'\nimport { useDataList, useFullSize, usePaginatedList } from '@chem-po/react'\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { FixedSizeList, VariableSizeGrid, VariableSizeList } from 'react-window'\nimport InfiniteLoader from 'react-window-infinite-loader'\nimport { ListItemProps, ListRow } from '../ListItem/ListRow'\nimport { NoItemsRow } from '../NoItems'\nimport { getIsDynamicSize } from '../utils'\n\nexport const InfiniteScrollListBody = ({ height }: { height: number }) => {\n const {\n totalCount,\n data: { data: items },\n refetchItem,\n isItemLoaded,\n goNext: fetchMoreData,\n } = usePaginatedList()\n const { list, onSelectItem, mobileLayout, query } = useDataList()\n const { previewHeight, mobile } = list\n const { colorMode } = useColorMode()\n const { width } = useFullSize()\n const itemData = useMemo<ListItemProps>(\n () => ({\n list,\n items,\n mobileLayout,\n colorMode,\n onSelect: (item: WithId<AnyObject>) => onSelectItem(item.id),\n refetch: refetchItem,\n }),\n [items, list, refetchItem, onSelectItem, mobileLayout, colorMode],\n )\n\n const varRef = useRef<VariableSizeGrid | null>(null)\n const itemHeight = useMemo(\n () => (mobileLayout ? (mobile?.previewHeight ?? previewHeight) : previewHeight),\n [mobile, previewHeight, mobileLayout],\n )\n\n const infiniteLoaderRef = useRef<InfiniteLoader>(null)\n useEffect(() => {\n if (infiniteLoaderRef.current) {\n infiniteLoaderRef.current.resetloadMoreItemsCache(true)\n }\n }, [totalCount])\n\n useEffect(() => {\n const varGrid = varRef.current\n if (varGrid) {\n varGrid.resetAfterRowIndex(0)\n varGrid.resetAfterColumnIndex(0)\n }\n }, [query])\n\n const getItemSize = useCallback(\n (index: number) => (typeof itemHeight === 'function' ? itemHeight(items[index]) : itemHeight),\n [items, itemHeight],\n )\n\n const isDynamicHeight = useMemo(() => getIsDynamicSize(itemHeight), [itemHeight])\n\n if (!items.length) {\n return <NoItemsRow />\n }\n\n return isDynamicHeight ? (\n <InfiniteLoader\n ref={infiniteLoaderRef}\n isItemLoaded={isItemLoaded}\n itemCount={totalCount ?? 0}\n loadMoreItems={fetchMoreData}>\n {({ onItemsRendered, ref }) => (\n <VariableSizeList<ListItemProps>\n height={height}\n width={width}\n itemSize={getItemSize}\n itemCount={totalCount ?? 0}\n itemData={itemData}\n style={{ overflowX: 'hidden' }}\n itemKey={index => items[index]?.id || `${index}`}\n onItemsRendered={i => {\n onItemsRendered(i)\n }}\n ref={ref}>\n {ListRow}\n </VariableSizeList>\n )}\n </InfiniteLoader>\n ) : (\n <InfiniteLoader\n ref={infiniteLoaderRef}\n isItemLoaded={isItemLoaded}\n itemCount={totalCount ?? 0}\n loadMoreItems={fetchMoreData}>\n {({ onItemsRendered, ref }) => (\n <FixedSizeList<ListItemProps>\n height={height}\n width={width}\n itemSize={itemHeight as number}\n itemCount={totalCount ?? 0}\n itemData={itemData}\n itemKey={index => items[index]?.id || `${index}`}\n style={{\n overflowX: 'hidden',\n }}\n onItemsRendered={onItemsRendered}\n ref={ref}>\n {ListRow}\n </FixedSizeList>\n )}\n </InfiniteLoader>\n )\n}\n","import { useColorMode } from '@chakra-ui/react'\nimport { AnyObject, BaseComponent, ItemPreviewProps, ListGridOptions } from '@chem-po/core'\nimport { useDataList, useFullSize, usePaginatedList } from '@chem-po/react'\nimport React, { memo, useEffect, useMemo, useRef } from 'react'\nimport { FixedSizeGrid, VariableSizeGrid } from 'react-window'\nimport { GridItemProps, ListCell } from '../ListItem/ListCell'\nimport { NoItemsRow } from '../NoItems'\nimport { getIsDynamicSize } from '../utils'\nimport { useGridDims } from './hooks'\n\nconst BasePagedGridBody = <\n T extends AnyObject,\n ItemPreviewComponent extends BaseComponent<ItemPreviewProps<T>>,\n>({\n height,\n options,\n}: {\n height: number\n options: ListGridOptions<T, ItemPreviewComponent>\n}) => {\n const { list, onSelectItem, mobileLayout, query } = useDataList<T>()\n const {\n data: { data: items },\n pageIndex,\n } = usePaginatedList<T>()\n const variableRef = useRef<VariableSizeGrid>(null)\n const fixedRef = useRef<FixedSizeGrid>(null)\n const { width } = useFullSize()\n const { numCols, numRows, rowHeight, colWidth } = useGridDims<T>(options, width)\n const { colorMode } = useColorMode()\n const itemData = useMemo<GridItemProps<T>>(\n () => ({\n list,\n items,\n numCols,\n onSelect: item => onSelectItem(item.id),\n mobileLayout,\n colorMode,\n grid: options,\n }),\n [items, list, onSelectItem, mobileLayout, numCols, options, colorMode],\n )\n\n useEffect(() => {\n const varGrid = variableRef.current\n if (varGrid) {\n varGrid.resetAfterColumnIndex(0)\n varGrid.resetAfterRowIndex(0)\n }\n }, [query])\n\n // scroll to top when page or query changes\n useEffect(() => {\n const varGrid = variableRef.current\n const fixGrid = fixedRef.current\n if (varGrid) {\n varGrid.scrollTo({ scrollLeft: 0, scrollTop: 0 })\n }\n if (fixGrid) {\n fixGrid.scrollTo({ scrollLeft: 0, scrollTop: 0 })\n }\n }, [pageIndex, query])\n\n const isDynamicHeight = useMemo(\n () => getIsDynamicSize(options.rowHeight) || getIsDynamicSize(options.columnWidth),\n [options],\n )\n\n if (!items.length) return <NoItemsRow />\n\n return isDynamicHeight ? (\n <VariableSizeGrid<GridItemProps<T>>\n ref={variableRef}\n height={height}\n width={width}\n rowCount={numRows}\n columnCount={numCols}\n rowHeight={rowHeight as (idx: number) => number}\n columnWidth={colWidth as (idx: number) => number}\n itemData={itemData}\n style={{\n overflowX: 'hidden',\n }}>\n {ListCell}\n </VariableSizeGrid>\n ) : (\n <FixedSizeGrid<GridItemProps<T>>\n height={height}\n ref={fixedRef}\n width={width}\n rowCount={numRows}\n columnCount={numCols}\n rowHeight={rowHeight as number}\n columnWidth={colWidth as number}\n itemData={itemData}\n style={{\n overflowX: 'hidden',\n }}>\n {ListCell}\n </FixedSizeGrid>\n )\n}\n\nexport const PagedGridBody = memo(BasePagedGridBody) as typeof BasePagedGridBody\n","import { useColorMode } from '@chakra-ui/react'\nimport { useDataList, useFullSize, usePaginatedList } from '@chem-po/react'\nimport React, { memo, useCallback, useEffect, useMemo, useRef } from 'react'\nimport { FixedSizeList, VariableSizeList } from 'react-window'\nimport { ListItemProps, ListRow } from '../ListItem/ListRow'\nimport { NoItemsRow } from '../NoItems'\nimport { getIsDynamicSize } from '../utils'\n\nconst BasePagedListBody = ({ height }: { height: number }) => {\n const { list, onSelectItem, mobileLayout, query } = useDataList()\n const {\n data: { data: items },\n pageIndex,\n } = usePaginatedList()\n const { width } = useFullSize()\n const { previewHeight, mobile } = list\n const varRef = useRef<VariableSizeList>(null)\n const fixedRef = useRef<FixedSizeList>(null)\n const { colorMode } = useColorMode()\n const itemData = useMemo<ListItemProps>(\n () => ({\n list,\n colorMode,\n items,\n onSelect: item => onSelectItem(item.id),\n mobileLayout,\n }),\n [items, list, onSelectItem, mobileLayout, colorMode],\n )\n\n const itemHeight = useMemo(\n () => (mobileLayout ? (mobile?.previewHeight ?? previewHeight) : previewHeight),\n [mobile, previewHeight, mobileLayout],\n )\n\n useEffect(() => {\n const varList = varRef.current\n if (varList) {\n varList.resetAfterIndex(0)\n }\n }, [query])\n\n // scroll to top when page or query changes\n useEffect(() => {\n const varList = varRef.current\n const fixList = fixedRef.current\n if (varList) {\n varList.scrollTo(0)\n }\n if (fixList) {\n fixList.scrollTo(0)\n }\n }, [query, pageIndex])\n\n const getItemSize = useCallback(\n (index: number) => (typeof itemHeight === 'function' ? itemHeight(items[index]) : itemHeight),\n [items, itemHeight],\n )\n\n const isDynamicHeight = useMemo(() => getIsDynamicSize(itemHeight), [itemHeight])\n\n if (!items.length) return <NoItemsRow />\n return isDynamicHeight ? (\n <FixedSizeList<ListItemProps>\n ref={fixedRef}\n height={height}\n width={width}\n itemSize={itemHeight as number}\n itemCount={items.length}\n itemData={itemData}\n style={{\n overflowX: 'hidden',\n }}>\n {ListRow}\n </FixedSizeList>\n ) : (\n <VariableSizeList<ListItemProps>\n ref={varRef}\n height={height}\n width={width}\n itemSize={getItemSize}\n itemCount={items.length}\n itemData={itemData}\n style={{\n overflowX: 'hidden',\n }}>\n {ListRow}\n </VariableSizeList>\n )\n}\n\nexport const PagedListBody = memo(BasePagedListBody) as typeof BasePagedListBody\n","import { useDataList } from '@chem-po/react'\nimport React from 'react'\nimport { InfiniteScrollGridBody } from './InfiniteScrollGridBody'\nimport { InfiniteScrollListBody } from './InfiniteScrollListBody'\nimport { PagedGridBody } from './PagedGridBody'\nimport { PagedListBody } from './PagedListBody'\n\nexport const ListBody = ({ height }: { height: number }) => {\n const { infiniteScroll, gridLayout, list } = useDataList()\n const { grid } = list\n\n if (gridLayout && grid) {\n return infiniteScroll ? (\n <InfiniteScrollGridBody options={grid} height={height} />\n ) : (\n <PagedGridBody options={grid} height={height} />\n )\n }\n return infiniteScroll ? (\n <InfiniteScrollListBody height={height} />\n ) : (\n <PagedListBody height={height} />\n )\n}\n","import { Box, Modal, ModalContent, ModalOverlay } from '@chakra-ui/react'\nimport { useBackgroundColor } from '@chem-po/react'\nimport React from 'react'\nimport { DefaultModalProps } from './type'\n\nexport const DesktopModal = ({ children, isOpen, contentProps, ...props }: DefaultModalProps) => {\n const bg = useBackgroundColor(100)\n return (\n <Modal scrollBehavior=\"inside\" isCentered isOpen={isOpen} {...props}>\n <ModalOverlay />\n <ModalContent position=\"relative\" overflowY=\"auto\" bg={bg} {...contentProps}>\n <Box>{children}</Box>\n </ModalContent>\n </Modal>\n )\n}\n","import { Flex, FlexProps, Portal } from '@chakra-ui/react'\nimport { useMobileFrame } from '@chem-po/react'\nimport React from 'react'\n\nexport const MobileOverlay = (props: FlexProps) => {\n const { overlayRef } = useMobileFrame()\n\n return (\n <Portal containerRef={overlayRef}>\n <Flex\n justify=\"center\"\n align=\"center\"\n transition=\"opacity 300ms\"\n position=\"absolute\"\n left={0}\n top={0}\n height=\"100%\"\n width=\"100%\"\n {...props}\n />\n </Portal>\n )\n}\n","import { Flex, useColorModeValue } from '@chakra-ui/react'\nimport { useMobileFrame } from '@chem-po/react'\nimport React, { useEffect, useRef, useState } from 'react'\nimport { MobileOverlay } from '../overlay/MobileOverlay'\nimport { DefaultModalProps } from './type'\n\nexport const MobileOverlayBackground = ({ onClick }: { onClick?: () => void }) => (\n <Flex\n onClick={onClick}\n w=\"100%\"\n h=\"100%\"\n position=\"absolute\"\n bg=\"blackAlpha.400\"\n transition=\"opacity 300ms\"\n />\n)\n\nexport const MobileModal = ({\n isOpen,\n onClose,\n children,\n contentProps,\n onContentMounted,\n closeOnOverlayClick,\n}: DefaultModalProps) => {\n const { height, width } = useMobileFrame()\n\n const bg = useColorModeValue('gray.100', '#454545')\n\n const [isMounted, setIsMounted] = useState(false)\n const [contentMounted, setContentMounted] = useState(false)\n\n const unmountTimeout = useRef<ReturnType<typeof setTimeout> | null>(null)\n const contentMountTimeout = useRef<ReturnType<typeof setTimeout> | null>(null)\n useEffect(() => {\n if (unmountTimeout.current) {\n clearTimeout(unmountTimeout.current)\n unmountTimeout.current = null\n }\n\n if (contentMountTimeout.current) {\n clearTimeout(contentMountTimeout.current)\n contentMountTimeout.current = null\n }\n\n if (isOpen) {\n setIsMounted(true)\n contentMountTimeout.current = setTimeout(() => {\n setContentMounted(true)\n if (onContentMounted) onContentMounted(true)\n }, 50)\n } else {\n setContentMounted(false)\n if (onContentMounted) onContentMounted(false)\n unmountTimeout.current = setTimeout(() => {\n setIsMounted(false)\n }, 300)\n }\n return () => {\n if (unmountTimeout.current) {\n clearTimeout(unmountTimeout.current)\n unmountTimeout.current = null\n }\n if (contentMountTimeout.current) {\n clearTimeout(contentMountTimeout.current)\n contentMountTimeout.current = null\n }\n }\n }, [isOpen, onContentMounted])\n return isMounted ? (\n <MobileOverlay\n opacity={contentMounted ? 1 : 0}\n pointerEvents={contentMounted ? 'auto' : 'none'}>\n <MobileOverlayBackground onClick={closeOnOverlayClick !== false ? onClose : undefined} />\n <Flex\n width={`${width - 10}px`}\n maxH={`${height - 10}px`}\n overflowY=\"auto\"\n overflowX=\"hidden\"\n minH=\"100px\"\n bg={bg}\n borderRadius={6}\n position=\"relative\"\n {...contentProps}>\n {children}\n </Flex>\n </MobileOverlay>\n ) : null\n}\n","import { useScreen } from '@chem-po/react'\nimport React, { useMemo } from 'react'\nimport { DesktopModal } from './DesktopModal'\nimport { useForceMobile } from './ForceMobile'\nimport { MobileModal } from './MobileModal'\nimport { DefaultModalProps } from './type'\n\nexport const DefaultModal = (props: DefaultModalProps) => {\n const isMobile = useScreen(s => s.isMobile)\n\n const forceMobile = useForceMobile()\n const Component = useMemo(\n () => (isMobile || forceMobile ? MobileModal : DesktopModal),\n [isMobile, forceMobile],\n )\n\n return <Component {...props} />\n}\n","import { CloseIcon } from '@chakra-ui/icons'\nimport { Flex, IconButton, Text } from '@chakra-ui/react'\nimport { FieldMap, useBackendBase, useDataList, usePaginatedList } from '@chem-po/react'\nimport React, { useCallback } from 'react'\nimport { Form } from '../form'\nimport { DesktopModal } from '../modal'\n\nexport const ListCreate = ({ field }: { field: FieldMap }) => {\n const {\n list: { baseQuery, itemName },\n newItemOpen: isOpen,\n setNewItemOpen: setIsOpen,\n } = useDataList()\n const {\n adapter: { db },\n } = useBackendBase()\n const { refetch } = usePaginatedList()\n // const collectionRef = useMemo(() => collection(db, collectionPath), [collectionPath, db])\n // const newItemDoc = useMemo(() => (isOpen ? doc(collectionRef) : null), [collectionRef, isOpen])\n // const newItemStoragePath = useMemo(\n // () => (newItemDoc ? `${storagePath}/${newItemDoc.id}` : null),\n // [storagePath, newItemDoc],\n // )\n const handleSubmit = useCallback(\n async (data: object) => {\n // if (!newItemDoc) return { [FORM_ERROR]: 'No document reference' }\n // await setDoc(newItemDoc, data)\n await db.createItem(baseQuery.collection, data)\n setIsOpen(false)\n if (refetch) refetch()\n return undefined\n },\n [setIsOpen, refetch, db, baseQuery],\n )\n\n return (\n <DesktopModal isOpen={isOpen} onClose={() => setIsOpen(false)}>\n <Flex align=\"center\" pt={3} px={3} w=\"100%\">\n <Text pl={1} opacity={0.7} fontWeight={600}>\n NEW {itemName.toUpperCase()}\n </Text>\n <IconButton\n size=\"sm\"\n borderRadius=\"full\"\n ml=\"auto\"\n h={7}\n w={7}\n minW={0}\n onClick={() => setIsOpen(false)}\n aria-label=\"Close\"\n icon={<CloseIcon opacity={0.8} w={3} h={3} />}\n />\n </Flex>\n <Form field={field} onSubmit={handleSubmit} />\n </DesktopModal>\n )\n}\n","import { ChevronLeftIcon, ChevronRightIcon } from '@chakra-ui/icons'\nimport {\n Box,\n Button,\n Collapse,\n Flex,\n IconButton,\n Popover,\n PopoverBody,\n PopoverContent,\n PopoverTrigger,\n Progress,\n Text,\n Tooltip,\n useColorModeValue,\n} from '@chakra-ui/react'\nimport { toPlural } from '@chem-po/core'\nimport { useDataList, usePaginatedList } from '@chem-po/react'\nimport useResizeObserver from '@react-hook/resize-observer'\nimport React, { useCallback, useMemo, useRef } from 'react'\nimport { useBorderColor } from '../../hooks'\nimport { ExpandOnMount } from '../box'\nimport { DataListFooterProps } from './types'\n\nconst NextButton = ({\n goNext,\n canGoNext,\n mobileLayout,\n}: {\n goNext?: () => void\n canGoNext: boolean\n mobileLayout?: boolean\n}) => (\n <Button\n opacity={canGoNext ? 1 : 0.6}\n pointerEvents={canGoNext ? 'auto' : 'none'}\n borderRadius=\"full\"\n onClick={goNext}\n aria-label=\"next\"\n variant=\"ghost\"\n size={mobileLayout ? 'xs' : 'sm'}\n pl={3}\n pr={1}\n gap={1}>\n <Text>Next</Text>\n <ChevronRightIcon w={5} h={5} />\n </Button>\n)\n\nconst PrevButton = ({\n goPrev,\n canGoPrev,\n mobileLayout,\n}: {\n goPrev?: () => void\n canGoPrev: boolean\n mobileLayout?: boolean\n}) => (\n <Button\n opacity={canGoPrev ? 1 : 0.5}\n pointerEvents={canGoPrev ? 'auto' : 'none'}\n onClick={goPrev}\n borderRadius=\"full\"\n aria-label=\"back\"\n variant=\"ghost\"\n pr={3}\n pl={1}\n gap={1}\n size={mobileLayout ? 'xs' : 'sm'}>\n <ChevronLeftIcon w={5} h={5} />\n <Text>Back</Text>\n </Button>\n)\n\nconst FooterLoadingAndError = ({\n progressBg,\n borderColor,\n}: {\n progressBg: string\n borderColor: string\n}) => {\n const {\n data: { isLoading, error },\n } = usePaginatedList()\n return (\n <Box position=\"absolute\" bottom=\"100%\" w=\"100%\" left={0}>\n <Collapse style={{ width: '100%' }} in={!!error} animateOpacity>\n <Box borderTopRadius={6} bg=\"red.600\" maxW=\"100%\" p={1}>\n <Tooltip placement=\"top\" hasArrow label={error?.message ?? ''} aria-label=\"error\">\n <Text\n textShadow=\"1px 1px 3px #00000077\"\n _dark={{ textShadow: 'none' }}\n px={1}\n fontWeight={600}\n isTruncated\n maxW=\"100%\"\n fontSize=\"sm\"\n color=\"white\">\n {error?.message}\n </Text>\n </Tooltip>\n </Box>\n </Collapse>\n <ExpandOnMount in={isLoading} animateOpacity>\n <Flex\n bg={progressBg}\n borderTop=\"1px solid\"\n borderBottom=\"1px solid\"\n borderColor={borderColor}\n w=\"100%\">\n <Progress borderRadius={0} w=\"100%\" height=\"8px\" isIndeterminate={isLoading} />\n </Flex>\n </ExpandOnMount>\n </Box>\n )\n}\n\ninterface PageIndicator {\n index: number\n isActive: boolean\n}\ninterface PageIndicatorGroup {\n indicators: PageIndicator[]\n collapsed: boolean\n}\n\n/* \npage nav groups: \n0 - first group - pages 1:3 if not in current group\n1 - second group (collapsed) - pages 4:i-1 if not in current group, where i is the selected page\n2 - current group - pages i:i+2\n3 - fourth group (collapsed) - pages i+3:n-3 if not in current group, where n is the last page\n4 - last group - pages n-2:n\n*/\nconst getGroupIndex = (index: number, selected: number, numPages: number) => {\n if (Math.abs(index - selected) <= 1) return 2\n if (index < 3) return selected === 0 ? 2 : 0\n if (index > numPages - 4) return selected > numPages - 3 ? 2 : 4\n return index < selected ? 1 : 3\n}\n\nconst NAV_BUTTON_SIZE = 28\nconst MOBILE_NAV_BUTTON_SIZE = 24\n\nconst PageNavButton = ({\n index,\n isActive,\n onClick,\n borderColor,\n isLoading,\n mobileLayout,\n}: {\n index: number\n isActive: boolean\n onClick: () => void\n borderColor: string\n isLoading: boolean\n mobileLayout: boolean\n}) => {\n return (\n <Button\n key={index}\n onClick={onClick}\n variant=\"unstyled\"\n display=\"flex\"\n border=\"1px solid\"\n borderColor={isActive ? 'transparent' : borderColor}\n justifyContent=\"center\"\n alignItems=\"center\"\n width={`${mobileLayout ? MOBILE_NAV_BUTTON_SIZE : NAV_BUTTON_SIZE}px`}\n height={`${mobileLayout ? MOBILE_NAV_BUTTON_SIZE : NAV_BUTTON_SIZE}px`}\n fontFamily=\"fonts.heading\"\n lineHeight={1}\n fontWeight={600}\n minW=\"0\"\n bg={isActive ? 'accent.400' : 'transparent'}\n _hover={{\n bg: isActive ? 'accent.500' : 'whiteAlpha.500',\n }}\n color={isActive ? 'white' : borderColor}\n textShadow={isActive ? '1px 1px 3px #00000088' : 'none'}\n size=\"sm\"\n disabled={isLoading}\n aria-label={`Go to page ${index + 1}`}>\n {index + 1}\n </Button>\n )\n}\n\nconst PageNavGroup = ({\n group: { indicators, collapsed },\n mobileLayout,\n}: {\n group: PageIndicatorGroup\n mobileLayout: boolean\n}) => {\n const {\n data: { isLoading },\n goToPage,\n } = usePaginatedList()\n const borderColor = useBorderColor()\n\n if (collapsed) {\n return (\n <Popover trigger=\"hover\" gutter={1} variant=\"fixed\">\n {({ onClose }) => (\n <>\n <PopoverTrigger>\n <IconButton\n variant=\"unstyled\"\n width={`${mobileLayout ? MOBILE_NAV_BUTTON_SIZE : NAV_BUTTON_SIZE}px`}\n height={`${mobileLayout ? MOBILE_NAV_BUTTON_SIZE : NAV_BUTTON_SIZE}px`}\n minW=\"0\"\n opacity={0.7}\n _hover={{\n opacity: 1,\n }}\n aria-label=\"more pages\"\n icon={\n <Text fontSize=\"md\" position=\"relative\" bottom=\"2px\">\n ...\n </Text>\n }\n />\n </PopoverTrigger>\n <PopoverContent\n bg=\"background.200\"\n w=\"auto\"\n border=\"1px solid\"\n borderColor={borderColor}\n boxShadow=\"none\">\n <PopoverBody w=\"auto\" maxW=\"166px\" p={0.5}>\n <Flex align=\"center\" justify=\"center\" flexFlow=\"row wrap\">\n {indicators.map(({ index, isActive }) => (\n <Box key={`ind-${index}`} m={0.5}>\n <PageNavButton\n mobileLayout={mobileLayout}\n index={index}\n isActive={isActive}\n onClick={() => {\n goToPage(index)\n onClose()\n }}\n borderColor={borderColor}\n isLoading={isLoading}\n />\n </Box>\n ))}\n </Flex>\n </PopoverBody>\n </PopoverContent>\n </>\n )}\n </Popover>\n )\n }\n return (\n <>\n {indicators.map(({ index, isActive }) => (\n <PageNavButton\n mobileLayout={mobileLayout}\n key={index}\n index={index}\n isActive={isActive}\n onClick={() => goToPage(index)}\n borderColor={borderColor}\n isLoading={isLoading}\n />\n ))}\n </>\n )\n}\n\nconst PageNav = () => {\n const { pageIndex, numPages } = usePaginatedList()\n const { mobileLayout } = useDataList()\n const groups = useMemo<PageIndicatorGroup[]>(() => {\n const nPages = numPages ?? 0\n if (nPages <= 9)\n return [\n {\n indicators: Array.from({ length: nPages }, (_, i) => ({\n index: i,\n isActive: i === pageIndex,\n })),\n collapsed: false,\n },\n ]\n const g: PageIndicatorGroup[] = Array.from({ length: 5 }, (_, i) => ({\n indicators: [],\n collapsed: i % 2 === 1,\n }))\n\n for (let i = 0; i < nPages; i += 1) {\n const groupIndex = getGroupIndex(i, pageIndex, nPages)\n if (!g[groupIndex]) {\n g[groupIndex] = { indicators: [], collapsed: groupIndex !== 2 }\n }\n g[groupIndex].indicators.push({ index: i, isActive: i === pageIndex })\n }\n return g\n .filter(group => group.indicators.length)\n .map(g => ({ ...g, collapsed: g.collapsed && g.indicators.length > 1 }))\n }, [numPages, pageIndex])\n return (\n <Flex gap={1} align=\"center\">\n {groups.map((group, i) => (\n <PageNavGroup mobileLayout={mobileLayout} key={`group-${i}`} group={group} />\n ))}\n </Flex>\n )\n}\n\nconst FOOTER_TEXT_WIDTH = 120\nexport const ListFooter = ({ onResize, flexProps, noFooter }: DataListFooterProps) => {\n const borderColor = useColorModeValue('#cdcdcd', '#2d3748')\n\n const {\n list,\n mobileLayout,\n infiniteScroll,\n search: { search, debounced },\n } = useDataList()\n const {\n data: { data, isLoading },\n totalCount,\n pageIndex,\n limit,\n numFetched,\n goNext,\n goPrev,\n hasMoreData,\n } = usePaginatedList()\n const { itemName, pluralItemName, searchRequired } = list\n\n const { itemsText, pageText } = useMemo(() => {\n if (isLoading && !infiniteScroll)\n return { itemsText: mobileLayout ? 'Loading...' : '', pageText: '' }\n if (totalCount === null) return { itemsText: 'Loading...', pageText: '' }\n if (totalCount === 0 && !isLoading && search === debounced) {\n return {\n itemsText:\n !search && searchRequired\n ? `Search ${pluralItemName ?? toPlural(itemName)}`\n : `No ${pluralItemName ?? toPlural(itemName)} found`,\n pageText: '',\n }\n }\n const firstItemIndex = infiniteScroll ? 1 : (pageIndex || 0) * limit + 1\n // return `Displaying ${pluralItemName || toPlural(itemName)} ${firstItemIndex} - ${\n // infiniteScroll ? numFetched : pageIndex * limit + data.length\n // } of ${totalCount}`\n return {\n itemsText: `${firstItemIndex} - ${\n infiniteScroll ? numFetched : pageIndex * limit + data.length\n } of ${totalCount}`,\n pageText: `Page ${pageIndex + 1} of ${limit ? Math.ceil((totalCount ?? 0) / limit) : 0}`,\n }\n }, [\n totalCount,\n isLoading,\n itemName,\n pluralItemName,\n limit,\n pageIndex,\n search,\n searchRequired,\n mobileLayout,\n debounced,\n data,\n infiniteScroll,\n numFetched,\n ])\n const hasPrev = useMemo(() => !infiniteScroll && goPrev, [infiniteScroll, goPrev])\n const hasNext = useMemo(() => !infiniteScroll && goNext, [infiniteScroll, goNext])\n const progressBg = useColorModeValue('#efefef', '#212121')\n\n const ref = useRef<HTMLDivElement>(null)\n const handleResize = useCallback(\n (e: ResizeObserverEntry) => {\n const height = e.borderBoxSize[0].blockSize\n const width = e.borderBoxSize[0].inlineSize\n onResize({ height, width })\n },\n [onResize],\n )\n useResizeObserver(ref, handleResize)\n\n return (\n <Flex\n ref={ref}\n py={noFooter ? 0 : 2}\n px={noFooter ? 0 : 3}\n borderTop={`1px solid ${borderColor}`}\n position=\"relative\"\n flexFlow={mobileLayout ? 'column' : 'row'}\n gap={mobileLayout ? 1 : 0}\n w=\"100%\"\n {...flexProps}>\n {noFooter || (mobileLayout && infiniteScroll) ? null : (\n <Flex\n align=\"center\"\n justify={mobileLayout ? 'center' : 'space-between'}\n position=\"relative\"\n w=\"100%\">\n {hasPrev && !mobileLayout ? (\n <PrevButton goPrev={goPrev} canGoPrev={!isLoading && !!pageIndex} />\n ) : null}\n <Flex gap={1} align=\"center\">\n {infiniteScroll ? null : (\n <>\n {!mobileLayout ? (\n <Text\n fontFamily=\"fonts.heading\"\n whiteSpace=\"nowrap\"\n textAlign=\"center\"\n w={`${FOOTER_TEXT_WIDTH}px`}\n fontSize=\"sm\">\n {pageText}\n </Text>\n ) : null}\n <PageNav />\n </>\n )}\n {!mobileLayout ? (\n <Text\n fontFamily=\"fonts.heading\"\n textAlign=\"center\"\n w={mobileLayout || infiniteScroll ? 'auto' : `${FOOTER_TEXT_WIDTH}px`}\n whiteSpace=\"nowrap\"\n fontSize=\"sm\">\n {itemsText}\n </Text>\n ) : null}\n </Flex>\n {hasNext && !mobileLayout ? (\n <NextButton goNext={goNext} canGoNext={!isLoading && hasMoreData} />\n ) : null}\n </Flex>\n )}\n {mobileLayout && !noFooter ? (\n <Flex gap={2} w=\"100%\" justify=\"space-between\" align=\"center\">\n {hasPrev ? <PrevButton mobileLayout goPrev={goPrev} canGoPrev={!!pageIndex} /> : null}\n <Text\n fontFamily=\"fonts.heading\"\n textAlign=\"center\"\n w={mobileLayout || infiniteScroll ? 'auto' : `${FOOTER_TEXT_WIDTH}px`}\n whiteSpace=\"nowrap\"\n fontSize=\"sm\">\n {itemsText}\n </Text>\n {hasNext ? <NextButton mobileLayout goNext={goNext} canGoNext={hasMoreData} /> : null}\n </Flex>\n ) : null}\n <FooterLoadingAndError progressBg={progressBg} borderColor={borderColor} />\n </Flex>\n )\n}\n","import {\n Box,\n Button,\n Flex,\n HStack,\n IconButton,\n Image,\n Popover,\n PopoverArrow,\n PopoverBody,\n PopoverCloseButton,\n PopoverContent,\n PopoverTrigger,\n Portal,\n Text,\n useColorMode,\n useColorModeValue,\n} from '@chakra-ui/react'\n\nimport { AnyObject, isFilterGroup, QueryFilter } from '@chem-po/core'\nimport { FilterPreset, FilterPresetGroup, useDataList, useScreen } from '@chem-po/react'\nimport React, { useMemo } from 'react'\nimport { useBorderColor } from '../../hooks'\nimport { filterMatchesPreset } from './utils'\n\nconst FilterButton = <T extends AnyObject>({\n filter,\n filters,\n GroupRender,\n toggleFilter,\n}: {\n filter: FilterPreset<T>\n filters: QueryFilter<T>[]\n GroupRender?: FilterPresetGroup<T>['RenderFilter']\n toggleFilter: (toggled: FilterPreset<T>) => void\n}) => {\n const { label, Render } = filter\n const isActive = useMemo(\n () => filters.some(f => filterMatchesPreset(f, filter)),\n [filters, filter],\n )\n const { colorMode } = useColorMode()\n const borderColor = useBorderColor()\n const textColor = useColorModeValue('gray.700', 'gray.100')\n const CustomRender = Render ?? GroupRender\n return (\n <Box p={0.5}>\n <Button\n onClick={() => toggleFilter(filter)}\n variant=\"unstyled\"\n color={isActive && !CustomRender ? 'white' : textColor}\n bg={isActive && !CustomRender ? 'accent.400' : 'transparent'}\n px={CustomRender ? 0 : 2}\n py={CustomRender ? 0 : 1}\n transition=\"all 300ms\"\n border=\"none\"\n boxShadow={`0px 0px 1px 1px ${isActive ? 'transparent' : '#00000033'}`}\n w=\"auto\"\n _dark={{\n boxShadow: `0px 0px 1px 1px ${isActive ? 'transparent' : '#ffffff66'}`,\n }}\n h=\"auto\"\n minW=\"0\"\n minH=\"0\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderColor={isActive ? 'transparent' : borderColor}\n size=\"none\">\n {CustomRender ? (\n <CustomRender active={isActive} colorMode={colorMode} preset={filter} />\n ) : (\n <Text textShadow={isActive ? '0 0 3px rgba(0,0,0,0.8)' : 'none'} fontSize=\"xs\">\n {label}\n </Text>\n )}\n </Button>\n </Box>\n )\n}\n\nconst FilterGroup = <T extends AnyObject>({\n group,\n filters,\n toggleFilter,\n}: {\n group: FilterPresetGroup<T>\n filters: QueryFilter<T>[]\n toggleFilter: (toggled: FilterPreset<T>) => void\n}) => {\n const { label, filters: groupFilters } = group\n return (\n <Flex px={1} flexFlow=\"column\" w=\"100%\">\n <Text px={1} opacity={0.8} fontSize=\"sm\" fontWeight={600}>\n {label}\n </Text>\n <Flex w=\"100%\" flexFlow=\"row wrap\">\n {groupFilters.map(filter => (\n <FilterButton\n toggleFilter={toggleFilter}\n GroupRender={group.RenderFilter}\n filters={filters}\n key={filter.label}\n filter={filter}\n />\n ))}\n </Flex>\n </Flex>\n )\n}\n\nexport const PresetFilters = () => {\n const { query, list, toggleFilter } = useDataList()\n const isMobile = useScreen(s => s.isMobile)\n const { filters: currentFilters = [] } = query || {}\n const { filterPresets } = list\n const borderColor = useBorderColor()\n return filterPresets?.length ? (\n <HStack spacing={1}>\n <Popover\n // closeOnBlur={false}\n placement=\"right-start\"\n trigger={isMobile ? 'click' : 'hover'}\n // trigger=\n strategy=\"fixed\">\n <PopoverTrigger>\n <IconButton\n size=\"sm\"\n variant=\"ghost\"\n aria-label=\"Filters\"\n icon={\n <Image\n width=\"24px\"\n filter={`grayscale(${currentFilters.length ? 0 : 100}%)`}\n src=\"/icons/tune.svg\"\n />\n }\n />\n </PopoverTrigger>\n <Portal>\n <PopoverContent borderRadius={6} w=\"auto\">\n <PopoverBody w=\"240px\" p={0}>\n <Flex flexFlow=\"column\" w=\"100%\">\n <HStack\n py={1.5}\n px={2}\n w=\"100%\"\n spacing={1}\n borderBottom={`1px solid ${borderColor}`}>\n <Image width=\"18px\" filter=\"grayscale(100%)\" src=\"/icons/tune.svg\" />\n <Text opacity={0.8} fontSize=\"sm\" fontWeight={600}>\n FILTERS\n </Text>\n </HStack>\n <Flex justify=\"center\" w=\"100%\" flexFlow=\"row wrap\" py={1} px={2}>\n {filterPresets.map(filter =>\n isFilterGroup(filter) ? (\n <FilterGroup\n toggleFilter={toggleFilter}\n filters={currentFilters}\n key={filter.label}\n group={filter}\n />\n ) : (\n <FilterButton\n toggleFilter={toggleFilter}\n filters={currentFilters}\n key={filter.label}\n filter={filter}\n />\n ),\n )}\n </Flex>\n </Flex>\n </PopoverBody>\n <PopoverArrow />\n <PopoverCloseButton />\n </PopoverContent>\n </Portal>\n </Popover>\n </HStack>\n ) : null\n}\n","import { ArrowDownIcon, ArrowUpIcon } from '@chakra-ui/icons'\nimport { Button, HStack, Text, useColorMode } from '@chakra-ui/react'\nimport { SortDirection } from '@chem-po/core'\nimport { SortPreset, useDataList } from '@chem-po/react'\nimport React, { useMemo } from 'react'\nimport { CollapseHorizontal } from '../box/CollapseHorizontal'\n\nconst SortButton = ({ preset }: { preset: SortPreset }) => {\n const { setSort: setSortFromPreset, query } = useDataList()\n const { sort } = query\n const { label, key, Render } = preset\n const active = useMemo<SortDirection | null>(\n () => (sort?.key === key ? sort.direction : null),\n [sort, key],\n )\n const { colorMode } = useColorMode()\n\n const color = useMemo(() => {\n if (active) return 'white'\n return colorMode === 'light' ? 'gray.500' : 'gray.400'\n }, [active, colorMode])\n const icon = useMemo(\n () => (sort?.direction === 'asc' ? <ArrowUpIcon w={4} h={4} /> : <ArrowDownIcon w={4} h={4} />),\n [sort],\n )\n\n return (\n <Button\n size=\"xs\"\n variant=\"outline\"\n bg={active ? 'accent.400' : 'transparent'}\n transition=\"all 300ms\"\n textShadow={active ? '0 0 2px rgba(0,0,0,0.7)' : 'none'}\n boxShadow={`0px 0px 1px 1px ${active ? 'transparent' : '#00000033'}`}\n border=\"none\"\n // borderColor={active ? 'transparent' : 'blackAlpha.200'}\n _dark={{\n // borderColor: active ? 'transparent' : 'whiteAlpha.300',\n boxShadow: `0px 0px 1px 1px ${active ? 'transparent' : '#ffffff66'}`,\n color,\n textShadow: active ? '0 0 2px rgba(0,0,0,0.7)' : 'none',\n }}\n aria-label={label}\n opacity={active ? 1 : 0.8}\n height={6}\n pl={active ? 3 : 2}\n pr={2}\n _hover={{ opacity: 1 }}\n gap={0}\n color={color}\n onClick={() =>\n setSortFromPreset({\n direction: active && sort?.direction === 'asc' ? 'desc' : 'asc',\n key,\n })\n }>\n {Render ? (\n <Render active={active} colorMode={colorMode} preset={preset} />\n ) : (\n <Text fontWeight={600} fontSize=\"sm\" color={color}>\n {label}\n </Text>\n )}\n <CollapseHorizontal active={!!active} h=\"16px\" width={20}>\n {icon}\n </CollapseHorizontal>\n </Button>\n )\n}\n\nexport const ListSortView = () => {\n const {\n list: { sortPresets },\n } = useDataList()\n\n if (!sortPresets) return null\n return (\n <HStack spacing={2}>\n {sortPresets.map(preset => (\n <SortButton key={preset.label} preset={preset} />\n ))}\n </HStack>\n )\n}\n","import { AddIcon, RepeatIcon, SearchIcon } from '@chakra-ui/icons'\nimport {\n Box,\n Flex,\n IconButton,\n Image,\n Input,\n InputGroup,\n InputLeftElement,\n Tooltip,\n useColorModeValue,\n} from '@chakra-ui/react'\nimport { getHasAccess, toPlural } from '@chem-po/core'\nimport { useAuth, useDataList } from '@chem-po/react'\nimport useResizeObserver from '@react-hook/resize-observer'\nimport React, { useCallback, useMemo, useRef } from 'react'\nimport { useBorderColor } from '../../hooks/ui/useBorderColor'\nimport { Toggle, ToggleOption } from '../button/Toggle'\nimport { PresetFilters } from './ListFilters'\nimport { ListSortView } from './ListSort'\nimport { DataListHeaderProps } from './types'\n\nconst ListSearch = () => {\n const {\n list,\n search: { search, update },\n } = useDataList()\n const { searchIcon, itemName, pluralItemName } = list\n const iconFilter = useColorModeValue('invert(0)', 'invert(1)')\n\n return (\n <Flex p={1} flex={1} minW=\"0\">\n <InputGroup>\n <InputLeftElement pointerEvents=\"none\">\n {searchIcon ? (\n <Image filter={iconFilter} src={searchIcon} w=\"24px\" />\n ) : (\n <SearchIcon w=\"24px\" opacity={0.5} />\n )}\n </InputLeftElement>\n <Input\n bg=\"whiteAlpha.700\"\n pl={9}\n borderRadius={6}\n _focus={{ boxShadow: 'none', outline: 'none' }}\n border=\"none\"\n _dark={{\n bg: 'blackAlpha.400',\n color: '#cdcdcd',\n _placeholder: {\n color: '#ababab',\n },\n border: 'none',\n }}\n value={search}\n placeholder={`Search for ${pluralItemName ?? toPlural(itemName)}`}\n onChange={e => update(e.target.value)}\n />\n </InputGroup>\n </Flex>\n )\n}\n\nconst HeaderButtons = ({ refetch }: { refetch?: () => void }) => {\n const { list, setNewItemOpen } = useDataList()\n const auth = useAuth()\n const { itemName, field, access } = list\n\n const canCreate = useMemo(() => getHasAccess(auth, access?.create, null), [access, auth])\n return (\n <Flex gap={2} ml=\"auto\" align=\"center\">\n {refetch ? (\n <Tooltip placement=\"left\" hasArrow label=\"Refresh\" aria-label=\"Refresh\">\n <IconButton size=\"xs\" icon={<RepeatIcon />} aria-label=\"Refresh\" onClick={refetch} />\n </Tooltip>\n ) : null}\n {field && canCreate ? (\n <Tooltip\n placement=\"left\"\n hasArrow\n label={`Create new ${itemName}`}\n aria-label={`Create new ${itemName}`}>\n <IconButton\n size=\"xs\"\n icon={<AddIcon />}\n aria-label={`Create new ${itemName}`}\n onClick={() => setNewItemOpen(true)}\n />\n </Tooltip>\n ) : null}\n </Flex>\n )\n}\n\nconst gridToggleOptions: ToggleOption<'grid' | 'list'>[] = [\n {\n id: 'grid',\n label: 'Grid View',\n Render: selected => <Image w={5} opacity={selected ? 1 : 0.7} src=\"/icons/grid_view.svg\" />,\n },\n {\n id: 'list',\n label: 'List View',\n Render: selected => <Image w={6} opacity={selected ? 1 : 0.7} src=\"/icons/list.svg\" />,\n },\n]\n\nconst GridViewToggle = () => {\n const { toggleGridLayout, gridLayout } = useDataList()\n if (!toggleGridLayout) return null\n return (\n <Toggle\n onChange={toggleGridLayout}\n options={gridToggleOptions}\n value={gridLayout ? 'grid' : 'list'}\n />\n )\n}\n\nexport const DataListHeader = ({ onResize, refetch, boxProps }: DataListHeaderProps) => {\n const { list, mobileLayout, toggleGridLayout } = useDataList()\n const { searchPath, sortPresets, filterPresets, Header } = list\n\n const borderColor = useBorderColor()\n const ref = useRef<HTMLDivElement>(null)\n const handleResize = useCallback(\n (entry: ResizeObserverEntry) => {\n onResize({ height: entry.contentRect.height, width: entry.contentRect.width })\n },\n [onResize],\n )\n const hasSearch = useMemo(() => !!Object.keys(searchPath ?? {}).length, [searchPath])\n\n useResizeObserver(ref, handleResize)\n\n return (\n <Box\n ref={ref}\n bg=\"background.200\"\n borderBottom={`1px solid ${borderColor}`}\n w=\"100%\"\n {...boxProps}>\n <Flex px={2} align=\"center\" w=\"100%\">\n {sortPresets?.length || filterPresets?.length || hasSearch ? (\n <Flex w=\"100%\" flexFlow={mobileLayout ? 'column' : 'row'}>\n {mobileLayout && !Header ? null : (\n <Flex flex={1} px={2} py={mobileLayout ? 0 : 1} gap={1} align=\"center\">\n {mobileLayout ? null : (\n <Flex flex={1} minW=\"0\" align=\"center\" gap={2}>\n {toggleGridLayout ? <GridViewToggle /> : null}\n <PresetFilters />\n <ListSortView />\n {hasSearch ? <ListSearch /> : null}\n </Flex>\n )}\n <Flex align=\"center\" minW=\"0\" gap={3} ml=\"auto\">\n {Header ? (\n <Box minW=\"0\" flex={1}>\n <Header />\n </Box>\n ) : null}\n {mobileLayout ? null : <HeaderButtons refetch={refetch} />}\n </Flex>\n </Flex>\n )}\n {hasSearch && mobileLayout ? <ListSearch /> : null}\n {mobileLayout && (sortPresets?.length || filterPresets?.length) ? (\n <Flex pl={1} py={1} gap={1.5} align=\"center\" w=\"100%\">\n {toggleGridLayout ? <GridViewToggle /> : null}\n <PresetFilters />\n <ListSortView />\n <HeaderButtons refetch={refetch} />\n </Flex>\n ) : null}\n </Flex>\n ) : null}\n </Flex>\n </Box>\n )\n}\n","import { Text, useColorMode, useColorModeValue } from '@chakra-ui/react'\nimport { AnyObject, DBItem } from '@chem-po/core'\nimport { useDataList, usePaginatedList } from '@chem-po/react'\nimport React, { useEffect, useMemo, useState } from 'react'\nimport { DefaultModal } from '../modal'\n\nexport const ListItemView = () => {\n const { selectedItemId, deselectItem, list } = useDataList()\n const { ItemView, itemName } = list || {}\n const [contentOffset, setContentOffset] = useState({ x: 0, y: 0 })\n const {\n data: { data },\n // refetchItem,\n } = usePaginatedList()\n const item = useMemo(\n () => data.find(d => d.id === selectedItemId) ?? null,\n [data, selectedItemId],\n )\n const { colorMode } = useColorMode()\n const errorColor = useColorModeValue('red.600', 'red.300')\n const [prevItem, setPrevItem] = useState<DBItem<AnyObject> | null>(null)\n useEffect(() => {\n if (item) {\n setPrevItem(item)\n }\n }, [item])\n\n return (\n <DefaultModal\n contentProps={{\n p: 0,\n transition: 'all 300ms',\n transform: `translate(${contentOffset.x}px, ${contentOffset.y}px)`,\n }}\n scrollBehavior=\"inside\"\n onClose={deselectItem}\n isOpen={!!ItemView && !!selectedItemId}>\n {ItemView && prevItem ? (\n <ItemView\n item={prevItem}\n colorMode={colorMode}\n clearContentOffset={() => setContentOffset({ x: 0, y: 0 })}\n updateContentOffset={(x, y) => setContentOffset({ x, y })}\n // onEdited={onEdited}\n />\n ) : (\n <Text color={errorColor} p={4}>\n Error displaying {itemName}\n </Text>\n )}\n </DefaultModal>\n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { AnyObject } from '@chem-po/core'\nimport { useDataList, useFullSize, usePaginatedList } from '@chem-po/react'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { LoadingOverlay } from '../loading'\nimport { ListBody } from './Body/ListBody'\nimport { ListCreate } from './ListCreate'\nimport { ListFooter } from './ListFooter'\nimport { DataListHeader } from './ListHeader'\nimport { ListItemView } from './ListItemView'\nimport { ListContentProps } from './types'\n\nexport const ListContent = <T extends AnyObject>({\n modals,\n noFooter,\n headerProps,\n footerProps,\n}: ListContentProps<T>) => {\n const {\n data: { isLoading, data },\n } = usePaginatedList()\n const { list } = useDataList<T>()\n const { height } = useFullSize()\n\n const [headerHeight, setHeaderHeight] = useState(0)\n const [footerHeight, setFooterHeight] = useState(0)\n const bodyHeight = useMemo(\n () => height - headerHeight - footerHeight,\n [height, headerHeight, footerHeight],\n )\n const handleHeaderResize = useCallback((updated: { height: number; width: number }) => {\n setHeaderHeight(updated.height)\n }, [])\n\n const handleFooterResize = useCallback((size: { width: number; height: number }) => {\n setFooterHeight(size.height)\n }, [])\n\n const { ItemView: ItemViewComponent, field: createField } = list\n\n return (\n <>\n <DataListHeader boxProps={headerProps} onResize={handleHeaderResize} />\n <Box h={`${bodyHeight}px`} position=\"relative\" w=\"100%\">\n <ListBody height={bodyHeight} />\n {noFooter ? <LoadingOverlay isLoading={!data.length && isLoading} /> : null}\n </Box>\n <ListFooter noFooter={noFooter} flexProps={footerProps} onResize={handleFooterResize} />\n {modals ?? null}\n {ItemViewComponent ? <ListItemView /> : null}\n {createField ? <ListCreate field={createField} /> : null}\n </>\n )\n}\n","import { AnyObject } from '@chem-po/core'\nimport {\n PaginatedListProvider,\n useBackendBase,\n useDataListData,\n usePaginatedQuery,\n} from '@chem-po/react'\nimport React from 'react'\nimport { ListContainer } from './ListContainer'\nimport { ListContent } from './ListContent'\nimport { ListViewProps } from './types'\n\nexport const DataList = <T extends AnyObject>({\n list,\n // basePath,\n flexProps,\n infiniteScroll,\n ...rest\n}: ListViewProps<T>) => {\n const {\n adapter: { db },\n } = useBackendBase()\n const { baseQuery } = list\n const state = useDataListData(list, infiniteScroll)\n const data = usePaginatedQuery<T>(db, baseQuery, !!infiniteScroll)\n return (\n <PaginatedListProvider<T> state={state} data={data}>\n <ListContainer {...flexProps}>\n <ListContent {...rest} />\n </ListContainer>\n </PaginatedListProvider>\n )\n}\n","import React, { useEffect, useRef } from 'react'\n\nexport const NumberTicker = ({ value, duration = 30 }: { value: number; duration?: number }) => {\n const spanRef = useRef<HTMLSpanElement>(null)\n const helperValue = useRef(value)\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null)\n useEffect(() => {\n intervalRef.current = setInterval(() => {\n if (spanRef.current) {\n if (helperValue.current === value && intervalRef.current)\n return clearInterval(intervalRef.current)\n if (helperValue.current < value) {\n helperValue.current += 1\n spanRef.current.innerText = helperValue.current.toString()\n } else if (helperValue.current > value) {\n helperValue.current -= 1\n spanRef.current.innerText = helperValue.current.toString()\n }\n }\n return () => {}\n }, duration)\n return () => {\n if (intervalRef.current) clearInterval(intervalRef.current)\n }\n }, [value, duration])\n\n return <span ref={spanRef}>{value}</span>\n}\n","import { MoonIcon, SunIcon } from '@chakra-ui/icons'\nimport { Flex, FlexProps, IconButton, useColorMode, useColorModeValue } from '@chakra-ui/react'\nimport React from 'react'\nexport const DarkModeToggle = () => {\n const { colorMode, toggleColorMode } = useColorMode()\n const bg = useColorModeValue('gray.200', 'whiteAlpha.200')\n const color = useColorModeValue('blackAlpha.700', 'whiteAlpha.800')\n const hoverBg = useColorModeValue('gray.300', 'whiteAlpha.300')\n const hoverColor = useColorModeValue('gray.800', 'whiteAlpha.800')\n return (\n <IconButton\n aria-label=\"Toggle dark mode\"\n bg={bg}\n color={color}\n borderRadius=\"full\"\n _hover={{\n bg: hoverBg,\n color: hoverColor,\n }}\n w={8}\n h={8}\n minW={0}\n icon={\n colorMode === 'light' ? (\n <SunIcon w={4} h={4} />\n ) : (\n <MoonIcon w={4} h={4} filter=\"drop-shadow(1px 1px 2px #000000aa)\" />\n )\n }\n onClick={toggleColorMode}\n variant=\"ghost\"\n />\n )\n}\n\nexport const AbsoluteDarkModeToggle = (props: FlexProps) => (\n <Flex position=\"absolute\" bottom={3} right={3} {...props}>\n <DarkModeToggle />\n </Flex>\n)\n","import { switchAnatomy } from '@chakra-ui/anatomy'\nimport { createMultiStyleConfigHelpers, extendTheme } from '@chakra-ui/react'\nimport { cssVar } from '@chakra-ui/theme-tools'\nimport { palette } from '@chem-po/core'\n\nconst { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(\n switchAnatomy.keys,\n)\n\nconst switchBaseTheme = definePartsStyle({\n // define the part you're going to style\n track: {\n _focusVisible: {\n boxShadow: 'none',\n },\n },\n})\n\nexport const switchTheme = defineMultiStyleConfig({ baseStyle: switchBaseTheme })\nconst $arrowBg = cssVar('popper-arrow-bg')\n\nexport const headingFont = 'Encode Sans'\nexport const bodyFont = 'Noto Sans'\n\nexport const baseTheme = extendTheme({\n semanticTokens: {\n colors: {\n background: {\n // 100: mode('gray.50', palette.gray.dark)(props),\n // 200: mode('gray.100', palette.gray.medium)(props),\n // 300: mode('gray.200', palette.gray.light)(props),\n // 400: mode('gray.300', palette.gray.lighter)(props),\n 50: {\n default: 'white',\n _dark: palette.gray.darker,\n },\n 100: {\n default: 'gray.100',\n _dark: palette.gray.dark,\n },\n 200: {\n default: '#efefef',\n _dark: palette.gray.medium,\n },\n },\n accent: {\n 50: {\n default: 'blue.50',\n _dark: 'blue.900',\n },\n 100: {\n default: 'blue.100',\n _dark: 'blue.800',\n },\n 200: {\n default: 'blue.200',\n _dark: 'blue.700',\n },\n 300: {\n default: 'blue.300',\n _dark: 'blue.600',\n },\n 400: {\n default: 'blue.400',\n _dark: 'blue.500',\n },\n 500: {\n default: 'blue.500',\n _dark: 'blue.400',\n },\n 600: {\n default: 'blue.600',\n _dark: 'blue.300',\n },\n 700: {\n default: 'blue.700',\n _dark: 'blue.200',\n },\n 800: {\n default: 'blue.800',\n _dark: 'blue.100',\n },\n 900: {\n default: 'blue.900',\n _dark: 'blue.50',\n },\n },\n error: {\n default: 'red.500',\n _dark: 'red.300',\n },\n },\n fonts: {\n body: bodyFont,\n heading: headingFont,\n },\n },\n components: {\n Badge: {\n baseStyle: {\n bg: '#9a9a9a',\n textShadow: 'none',\n color: 'white',\n boxShadow: '1px 1px 3px #00000077',\n _dark: {\n bg: '#555555',\n textShadow: '1px 1px 2px #00000077',\n color: '#efefef',\n },\n },\n },\n Tooltip: {\n baseStyle: {\n bg: '#ababab',\n textShadow: '0 0 3px rgba(0,0,0,0.5)',\n color: 'white',\n [$arrowBg.variable]: '#ababab',\n _dark: {\n bg: '#777777',\n textShadow: 'none',\n color: '#efefef',\n [$arrowBg.variable]: '#777777',\n },\n },\n },\n Button: {\n baseStyle: {\n fontFamily: headingFont,\n fontWeight: 500,\n _focus: { boxShadow: 'none' },\n },\n variants: {\n link: {\n color: '#444',\n _dark: { color: 'rgba(230,230,255,0.9)' },\n },\n ghost: {\n _hover: { bg: 'blackAlpha.500' },\n },\n solid: {\n textShadow: '1px 1px 3px #00000077',\n bg: 'blackAlpha.400',\n color: 'whiteAlpha.800',\n _hover: {\n bg: 'blackAlpha.500',\n },\n _dark: {\n bg: 'whiteAlpha.300',\n color: 'whiteAlpha.800',\n _hover: {\n bg: 'whiteAlpha.400',\n },\n },\n },\n outline: {\n border: '1px solid',\n borderColor: '#ababab',\n color: '#656565',\n _hover: {\n bg: 'blackAlpha.100',\n },\n _dark: {\n border: '1px solid #999',\n color: '#999',\n _hover: {\n bg: 'whiteAlpha.300',\n },\n },\n },\n },\n },\n Tabs: {\n baseStyle: {\n tab: { _focus: { boxShadow: 'none' } },\n },\n },\n Text: {\n baseStyle: {\n fontFamily: bodyFont,\n },\n },\n Popover: {\n baseStyle: {\n root: { _focus: { boxShadow: 'none' } },\n content: {\n bg: 'background.100',\n border: 'none',\n boxShadow: '0 0 4px rgba(0,0,0,0.5)',\n [$arrowBg.variable]: 'background.100',\n _dark: {\n bg: 'background.100',\n [$arrowBg.variable]: 'background.100',\n },\n },\n },\n },\n Checkbox: {\n baseStyle: {\n control: {\n _focus: { boxShadow: 'none' },\n border: '2px solid #ababab',\n borderColor: '#ababab',\n _checked: {\n bg: '#666666',\n color: '#efefef',\n border: 'none',\n },\n _hover: { bg: '#555', border: 'none' },\n _dark: {\n _checked: {\n bg: '#efefef',\n color: '#444444',\n border: 'none',\n },\n _hover: { bg: '#555', border: 'none' },\n },\n },\n label: {\n color: '#888',\n _dark: { color: '#999999' },\n _checked: {\n color: '#444444',\n _dark: { color: '#cdcdcd' },\n },\n },\n },\n variants: {\n noBox: {\n control: {\n bg: 'transparent',\n _hover: { bg: 'none' },\n },\n },\n },\n },\n Modal: {\n baseStyle: {\n dialog: {\n bg: 'background.100',\n boxShadow: '0 0 6px rgba(0,0,0,0.5)',\n _dark: {\n bg: 'background.100',\n },\n },\n },\n },\n Input: {\n baseStyle: {\n field: {\n _focus: {\n boxShadow: 'none',\n outline: 'none',\n border: '1px solid #bcbcbc',\n },\n },\n },\n variants: {\n text: {\n field: {\n borderRadius: 6,\n border: '1px solid #dedede',\n _focus: { boxShadow: 'none', borderColor: '#bcbcbc' },\n _active: { boxShadow: 'none' },\n _placeholder: { color: '#777' },\n _dark: {\n border: '1px solid #777',\n _focus: { borderColor: '#999', boxShadow: 'none' },\n _placeholder: { color: '#777' },\n },\n },\n },\n },\n defaultProps: {\n variant: 'text',\n },\n },\n Switch: switchTheme,\n Menu: {\n baseStyle: {\n list: {\n bg: 'background.100',\n border: 'none',\n boxShadow: '0 0 6px rgba(0,0,0,0.5)',\n _dark: {\n bg: 'background.100',\n },\n },\n item: {\n _hover: {\n bg: 'rgba(0,0,0,0.3)',\n },\n _focus: {\n bg: 'rgba(0,0,0,0.2)',\n },\n },\n },\n },\n Progress: {\n baseStyle: {\n track: {\n bg: 'blackAlpha.300',\n borderRadius: 'full',\n _dark: {\n bg: 'whiteAlpha.300',\n },\n },\n filledTrack: {\n bg: 'blackAlpha.400',\n _dark: {\n bg: 'whiteAlpha.500',\n },\n },\n },\n },\n },\n})\n","import { useScreen } from '@chem-po/react'\n\nexport const initializeScreen = () => {\n if (typeof window !== 'undefined') {\n const onResize = () => {\n const width = window.innerWidth\n const height = window.innerHeight\n useScreen.setState({\n width,\n height,\n isMobile: width < 769,\n isPortrait: width < height,\n })\n window.addEventListener('resize', onResize)\n }\n onResize()\n return () => {\n window.removeEventListener('resize', onResize)\n }\n }\n return () => {}\n}\n"]}
1
+ {"version":3,"sources":["../src/components/auth/SignIn.tsx","../src/components/box/CollapseHorizontal.tsx","../src/components/box/ContentBox.tsx","../src/hooks/ui/useBorderColor.ts","../src/components/button/ViewButton.tsx","../src/components/box/Expandable.tsx","../src/components/box/ExpandOnMount.tsx","../src/components/box/FullSizeContainer.tsx","../src/contexts/view.tsx","../src/components/modal/ForceMobile.tsx","../src/components/nav/NavBar.tsx","../src/components/view/ErrorView.tsx","../src/components/loading/CircularProgress.tsx","../src/components/loading/Loading.tsx","../src/components/view/RedirectView.tsx","../src/components/box/MobileFrame/index.tsx","../src/components/button/DeleteButton.tsx","../src/components/button/Toggle.tsx","../src/components/feed/context.tsx","../src/components/overlay/ImageViewOverlay.tsx","../src/components/loading/LoadingImage.tsx","../src/components/loading/LoadingSwitch.tsx","../src/components/feed/constants.ts","../src/components/feed/FeedContentPane.tsx","../src/components/feed/hooks.ts","../src/components/feed/MediaFeedBackground.tsx","../src/components/feed/MediaFeedRefresh.tsx","../src/components/feed/MediaFeed.tsx","../src/components/form/Condition.tsx","../src/components/form/input/boolean/index.tsx","../src/components/form/input/hooks/useInputImperativeHandle.ts","../src/components/text/GradientText/index.tsx","../src/components/form/input/InputSlider.tsx","../src/components/form/input/color/index.tsx","../src/components/form/input/date/index.tsx","../src/components/form/input/time/index.tsx","../src/components/form/input/datetime/index.tsx","../src/store/usePlayer.ts","../src/components/media/PlayButton.tsx","../src/components/form/input/file.tsx","../src/components/form/input/hooks/useInputStyles.ts","../src/components/form/input/multipleSelect/index.tsx","../src/components/form/input/shared/InputContainer.tsx","../src/components/form/input/number/index.tsx","../src/components/form/input/OptionalTag.tsx","../src/components/form/input/select/index.tsx","../src/components/form/input/socialMedia/index.tsx","../src/components/form/input/text/textarea.tsx","../src/components/form/input/text/index.tsx","../src/components/form/input/input.tsx","../src/components/form/Field.tsx","../src/components/form/UploadProgress/index.tsx","../src/components/form/FormFooter.tsx","../src/components/form/view/file.tsx","../src/components/form/view/multipleSelect.tsx","../src/components/form/view/select.tsx","../src/components/form/view/index.tsx","../src/components/form/input/StandaloneInput.tsx","../src/components/form/input/Editable.tsx","../src/components/form/Form.tsx","../src/components/list/ListContainer.tsx","../src/components/list/ListItem/ListCell.tsx","../src/components/list/NoItems.tsx","../src/components/list/utils.ts","../src/components/list/Body/hooks.ts","../src/components/list/Body/InfiniteScrollGridBody.tsx","../src/components/list/ListItem/ListRow.tsx","../src/components/list/Body/InfiniteScrollListBody.tsx","../src/components/list/Body/PagedGridBody.tsx","../src/components/list/Body/PagedListBody.tsx","../src/components/list/Body/ListBody.tsx","../src/components/modal/DesktopModal.tsx","../src/components/overlay/MobileOverlay.tsx","../src/components/modal/MobileModal.tsx","../src/components/modal/DefaultModal.tsx","../src/components/list/ListCreate.tsx","../src/components/list/ListFooter.tsx","../src/components/list/ListFilters.tsx","../src/components/list/ListSort.tsx","../src/components/list/ListHeader.tsx","../src/components/list/ListItemView.tsx","../src/components/list/ListContent.tsx","../src/components/list/DataList.tsx","../src/components/text/NumberTicker.tsx","../src/components/theme/colorMode/DarkModeToggle.tsx","../src/contexts/theme.ts","../src/store/useScreen.ts"],"names":["SignIn","layout","auth","useBackendBase","user","useAuth","s","React","Flex","Button","Text","AbsoluteLogin","props","Portal","CollapseHorizontal","width","children","active","duration","Center","ContentBoxBase","ref","ContentBox","forwardRef","useBorderColor","useColorModeValue","ViewButton","viewText","hideText","onClick","isOpen","color","IconButton","ChevronUpIcon","ChevronDownIcon","e","Expandable","Header","initExpanded","nested","alwaysExpanded","headerProps","iconColor","Footer","isOpenProp","onCloseProp","onOpenProp","stackProps","onClose","onOpen","useDisclosure","handleOpenClick","useCallback","borderColor","VStack","HStack","Box","Collapse","ExpandOnMount","animateOpacity","isIn","onExited","mounted","useMounted","bodyHeight","setBodyHeight","useState","bodyRef","useRef","isAnimating","setIsAnimating","expanded","useMemo","height","handleBodyResize","useResizeObserver","animatingTimeout","useEffect","transition","FullSizeContainer","Children","setWidth","setHeight","handleResize","entry","FullSizeProvider","contextValue","FullSizeContext","ViewsContext","createContext","useViews","useContext","ViewsProvider","views","value","getUserViews","view","getViewRoutes","ForceMobileContext","ForceMobile","useForceMobile","NAV_BAR_HEIGHT","NavBarLink","absolute","paths","name","icon","iconScale","path","iconBrightness","usedBrightness","pathname","useLocation","hoverBg","body","Image","Link","NavBar","selectedView","bg","palette","defaultBorderColor","menuViews","v","isAbsolute","background","ErrorView","message","CircularProgress","Orig","LottieLoadingLogo","size","isLoading","speed","inFeed","asset","_animationData","animationData","options","style","View","pause","play","setSpeed","useLottie","SVGLoadingLogo","_svg","svg","LoadingBody","loading","useAppAssets","LoadingLogo","Loading","text","inBox","LoadingOverlay","RedirectView","timer","authLoading","navigate","useNavigate","IPHONE_12_WIDTH","IPHONE_12_HEIGHT","IPHONE_12_ASPECT","MobileFrameBody","navBarChildren","isMobile","screenHeight","screenWidth","useScreen","contentHeight","contentWidth","h","w","cappedHeight","cappedWidth","outerBg","cssGradients","location","currentOutlet","useOutlet","matchRoutes","viewKey","overlayRef","nodeRef","absoluteNavBar","contextData","MobileFrameProvider","AnimatePresence","SwitchTransition","CSSTransition","motion","ErrorBoundary","MobileFrame","defaultAlertBodyText","DeleteConfirmAlert","confirmActive","onCancel","onConfirm","actionName","actionLoading","itemName","cancelRef","AlertDialog","AlertDialogOverlay","AlertDialogContent","AlertDialogBody","DeleteButton","onDelete","noConfirm","alertBody","deleteLoading","setDeleteLoading","setConfirmActive","confirmTimer","isMounted","toast","useToast","handleDelete","err","DeleteIcon","ToggleButton","selected","Render","label","disabledMessage","Tooltip","Toggle","onChange","option","MediaFeedContext","MediaFeedProvider","curr","useMediaFeed","ImageViewOverlay","src","setLoading","imageSize","setImageSize","ratio","onLoadStart","onLoad","naturalWidth","naturalHeight","Modal","ModalOverlay","ModalContent","CloseIcon","emptyPng","LoadingImage","loadingOverride","alt","withFullView","buttonFullView","imageProps","boxProps","imageLoading","setImageLoading","imageRef","viewing","setViewing","handleImageLoad","prevSrc","setPrevSrc","fullViewButtonFilter","LoadingSwitch","setIsLoading","reportComplete","fetchedOn","buffer","Switch","springConfig","SWIPE_THRESHOLD","REFRESH_THRESHOLD","getContentScale","status","getContentX","contentSize","cWidth","getContentY","cHeight","FeedContentPane","id","collectionPath","onItemLoad","RenderItem","offsetY","enterStatus","useMobileFrame","scale","useSpring","baseY","useMotionValue","yVal","useTransform","y","docPath","item","useDocument","init","newScale","updatedX","DEFAULT_LIMIT","fetch","onUpdatePanels","limit","authRequired","ids","setIds","idIdx","setIdIdx","refreshing","setRefreshing","error","setError","itemLoading","setItemLoading","direction","setDirection","fetchingId","idsRef","updateCurr","updateNext","updatePrev","fetchIds","startBefore","startAfter","isPrefetch","data","firstId","secondId","newLastId","getNextId","currIdx","currIds","nextIds","nextIdx","fetchedNextId","getPrevId","prevIds","prevIdx","newFirstId","fetchedPrevIds","fetchedPrevId","goNext","newPrev","nextIdData","nextId","newNextId","goPrev","newNext","prevIdData","prevId","newPrevId","refresh","initFetchIds","canGoPrev","canGoNext","FillBackground","FileValueBackground","getBackgroundValue","filter","url","useObjectUrl","usedIndex","index","setIndex","url1","setUrl1","url2","setUrl2","UrlBackground","getBackgroundUrl","MediaFeedBackground","WINDOW","MediaFeedRefresh","canRefresh","progress","rotate","RepeatIcon","useUpdatePanels","setItems","updated","MediaFeed","defaultBackground","swipeDisabled","contentRef","containerRef","panels","setPanels","onNewData","backgroundRef","pointerDown","dragStart","onDragStart","dragEndListener","ev","maxY","minY","oY","onDragMove","oX","containerStyle","setCurr","handleItemLoad","p","panel","Condition","condition","useWatch","BaseCheckboxComponent","field","input","useImperativeHandle","useBooleanFieldText","Checkbox","CheckboxBooleanComponent","BaseSwitchComponent","SwitchBooleanComponent","BaseBooleanComponent","BooleanComponent","useInputImperativeHandle","onFocus","onBlur","inputRef","GradientText","InputSlider","gradient","min","max","gradientCss","gradientToCssGradientProp","Slider","SliderTrack","SliderFilledTrack","SliderThumb","ColorComponentSlider","ColorComponent","meta","withAlpha","defaultValue","handleChange","key","val","withDefault","asHex","colorValueToHex","gradients","updatedRed","updatedGreen","updatedBlue","updatedAlpha","padZeros","n","digits","i","parseDate","date","DateInput","placeholder","minDate","maxDate","optional","disabled","res","Popover","PopoverTrigger","getDateString","PopoverContent","PopoverArrow","DayPicker","TimeInput","Input","parseDateAndTime","timestamp","d","DateTimeInput","time","set","focusedElement","setFocused","type","dateString","usePlayer","create","MotionValue","useActiveMedia","media","playlist","PlayButton","opacity","buttonProps","mediaId","usePlaylist","api","playerIsPlaying","playerIsLoading","currentMedia","isPlaying","isFetching","generateAccept","accept","AudioFileView","hasUpload","noLabel","generateId","ImageFileView","loadingProp","loaded","setLoaded","shape","objectFit","placeholderSrc","placeholderOpacity","placeholderScale","useImageSize","optWidth","optHeight","extensionIcons","ExtensionIcon","extension","parts","FileViewBody","imageOptions","NoFileView","FileView","storagePath","dataUrl","missingFile","FileComponent","file","isImageField","imgOptions","inputStyles","iconSizeMap","clearButtonSizeMap","inputSizeMap","editableInputSizeMap","inputTextSizeMap","buttonContainerSizeMap","useInputStyles","inEditable","formSize","formElementBg","useBackgroundColor","textColor","useTextColor","usedSize","getRenderSelectedOptionText","textStyle","RenderOption","MultipleSelectComponent","colorMode","useColorMode","RenderSelectedOptionText","o","InputContainer","NumberComponent","prefix","className","container","endsWith","setEndsWith","displayed","CurrencyInput","_","values","BaseCurrencyAmountComponent","CurrencyAmountComponent","OptionalTag","top","SelectComponent","customRender","menuBg","PopoverBody","facebookLogo","instagramLogo","soundcloudLogo","twitterLogo","youtubeLogo","siteToIcon","SocialMediaSiteInput","site","handle","getHandle","displayedText","SocialMediaComponent","sites","_curr","rest","TextAreaComponent","TextareaAutosize","TextComponent","isHidden","setIsHidden","ViewIcon","ViewOffIcon","Components","InputBase","touched","_type","Label","showPlaceholder","styles","Component","pb","FieldComponentBase","control","getOnChange","fieldBlur","useField","Controller","_r","inputProps","FieldComponent","UploadProgress","uploads","asArr","TransitionGroup","upload","Progress","CancelButton","onBack","SubmitButton","onSubmitClick","submitting","FormErrorView","formError","useChempoForm","FormFooter","RenderFooter","buttonText","onSubmit","valid","useFormState","FileFieldView","MultipleSelectFieldView","selectedOptions","stringifyValue","DefaultRenderOption","SelectFieldView","propSize","selectedOption","DefaultFieldView","formatted","format","formatField","FieldView","StandaloneInputBase","useStandaloneInput","StandaloneInput","Editable","initValue","onEditClose","onEditOpen","CustomInput","CustomView","editHovered","handleEditOpen","handleEditClose","isEditing","setEditHovered","shouldSubmitOnChange","submit","submitValue","useEditable","editingBorderColor","RenderInput","RenderView","EditIcon","CheckIcon","makeOnDragEndFunction","move","result","ListFieldInput","emptyData","isField","isListField","draggingBg","useFormContext","fields","append","remove","useFieldArray","onDragEnd","DragDropContext","Droppable","droppableProvided","draggingFromThisWith","formField","idx","Draggable","dragHandleProps","draggableProps","innerRef","isDragging","DragHandleIcon","FormElement","childName","childField","f","b","ListFieldView","getItemField","useGetItemField","FormElementView","updateField","useDataView","DataView","fieldName","setIsEditing","DataViewProvider","Form","FieldMapForm","renderFooter","submitDataProps","useFormSubmit","Stack","FieldForm","fieldMap","ChempoFormProvider","ListContainer","ListCell","rowIndex","columnIndex","items","onSelect","refetch","grid","numCols","itemIdx","NoItemsRow","list","debounced","search","useDataList","usePaginatedList","showLoading","pluralItemName","noItemsMessage","searchRequired","toPlural","getIsDynamicSize","itemHeight","nativeFilterMatchesPreset","nativeFilter","presetFilter","arrayOperators","nativeValues","filterMatchesPreset","getCellDims","gridWidth","rowHeight","columnWidth","getCellSize","preferredHeight","preferredWidth","numRows","colWidths","_i","_j","j","acc","itemWidth","rowHeights","colWidth","useGridDims","InfiniteScrollGridBody","totalCount","refetchItem","isItemLoaded","fetchMoreData","onSelectItem","mobileLayout","query","useFullSize","previewHeight","mobile","itemData","varRef","varGrid","infiniteLoaderRef","isDynamicHeight","itemKey","onRendered","overscanColumnStartIndex","overscanColumnStopIndex","overscanRowStartIndex","overscanRowStopIndex","visibleColumnStartIndex","visibleColumnStopIndex","visibleRowStartIndex","visibleRowStopIndex","onItemsRendered","start","stop","overscanStart","overscanStop","InfiniteLoader","VariableSizeGrid","r","FixedSizeGrid","ListRow","InfiniteScrollListBody","getItemSize","VariableSizeList","FixedSizeList","BasePagedGridBody","pageIndex","variableRef","fixedRef","fixGrid","PagedGridBody","memo","BasePagedListBody","varList","fixList","PagedListBody","ListBody","infiniteScroll","gridLayout","DesktopModal","contentProps","MobileOverlay","MobileOverlayBackground","MobileModal","onContentMounted","closeOnOverlayClick","setIsMounted","contentMounted","setContentMounted","unmountTimeout","contentMountTimeout","DefaultModal","forceMobile","ListCreate","baseQuery","setIsOpen","db","handleSubmit","NextButton","ChevronRightIcon","PrevButton","ChevronLeftIcon","FooterLoadingAndError","progressBg","getGroupIndex","numPages","NAV_BUTTON_SIZE","MOBILE_NAV_BUTTON_SIZE","PageNavButton","isActive","PageNavGroup","indicators","collapsed","goToPage","PageNav","groups","nPages","g","groupIndex","group","FOOTER_TEXT_WIDTH","ListFooter","onResize","flexProps","noFooter","numFetched","hasMoreData","itemsText","pageText","hasPrev","hasNext","FilterButton","filters","GroupRender","toggleFilter","CustomRender","FilterGroup","groupFilters","PresetFilters","currentFilters","filterPresets","isFilterGroup","PopoverCloseButton","SortButton","preset","setSortFromPreset","sort","ArrowUpIcon","ArrowDownIcon","ListSortView","sortPresets","ListSearch","update","searchIcon","iconFilter","InputGroup","InputLeftElement","SearchIcon","HeaderButtons","setNewItemOpen","access","canCreate","getHasAccess","AddIcon","gridToggleOptions","GridViewToggle","toggleGridLayout","DataListHeader","searchPath","hasSearch","ListItemView","selectedItemId","deselectItem","ItemView","contentOffset","setContentOffset","errorColor","prevItem","setPrevItem","x","ListContent","modals","footerProps","headerHeight","setHeaderHeight","footerHeight","setFooterHeight","handleHeaderResize","handleFooterResize","ItemViewComponent","createField","DataList","state","useDataListData","usePaginatedQuery","PaginatedListProvider","NumberTicker","spanRef","helperValue","intervalRef","DarkModeToggle","toggleColorMode","hoverColor","SunIcon","MoonIcon","AbsoluteDarkModeToggle","definePartsStyle","defineMultiStyleConfig","createMultiStyleConfigHelpers","switchAnatomy","switchBaseTheme","switchTheme","$arrowBg","cssVar","headingFont","bodyFont","baseTheme","extendTheme","initializeScreen"],"mappings":"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","file":"index.cjs","sourcesContent":["import { Button, Flex, Portal, Text } from '@chakra-ui/react'\nimport { useAuth, useBackendBase } from '@chem-po/react'\nimport React from 'react'\ninterface SignInProps {\n // authProviders: Array<AuthProviderData<FC<{ noText?: boolean }>>>\n layout?: 'row' | 'column'\n}\n\nexport const SignIn = ({ layout = 'row' }: SignInProps) => {\n const {\n adapter: { auth },\n } = useBackendBase()\n\n const user = useAuth(s => s.user)\n return (\n <Flex gap={[1, 1, 2]} align=\"center\" flexFlow={['column', 'column', 'row']}>\n {user ? (\n <Button\n size=\"sm\"\n onClick={() => {\n auth.logout()\n }}>\n SIGN OUT\n </Button>\n ) : (\n <>\n <Text whiteSpace=\"nowrap\" textAlign=\"center\" opacity={0.8} fontWeight={600} fontSize=\"sm\">\n SIGN IN\n </Text>\n <Flex flexFlow={layout} gap={2} w=\"100%\"></Flex>\n </>\n )}\n </Flex>\n )\n}\n\nexport const AbsoluteLogin = (props: SignInProps) => (\n <Portal>\n <Flex position=\"fixed\" bottom={4} left={4}>\n <SignIn {...props} />\n </Flex>\n </Portal>\n)\n","import { Center, CenterProps } from '@chakra-ui/react'\nimport React from 'react'\n\nexport const CollapseHorizontal = ({\n width,\n children,\n active,\n duration = 400,\n ...props\n}: CenterProps & { width: number; active: boolean; duration?: number }) => (\n <Center\n width={`${active ? width : 0}px`}\n opacity={active ? 1 : 0}\n transition={`all ${duration}ms ease-in-out`}\n overflow=\"hidden\"\n {...props}>\n {children}\n </Center>\n)\n","import { Flex, FlexProps } from '@chakra-ui/react'\nimport React, { ForwardedRef, forwardRef } from 'react'\n\nconst ContentBoxBase = (props: FlexProps, ref: ForwardedRef<HTMLDivElement>) => {\n return (\n <Flex\n ref={ref}\n bg=\"background.100\"\n p={3}\n borderRadius={6}\n boxShadow=\"1px 1px 4px #00000066\"\n {...props}\n />\n )\n}\n\nexport const ContentBox = forwardRef<HTMLDivElement, FlexProps>(ContentBoxBase)\n","import { useColorModeValue } from '@chakra-ui/react'\n\n// TODO: these need to be updated to use chakra theme\nexport const useBorderColor = () => useColorModeValue('#00000033', '#ffffff33')\n","import { ChevronDownIcon, ChevronUpIcon } from '@chakra-ui/icons'\nimport { IconButton } from '@chakra-ui/react'\nimport React, { FC, MouseEvent } from 'react'\n\nexport const ViewButton: FC<{\n onClick: (e: MouseEvent) => void\n isOpen: boolean\n viewText?: string\n hideText?: string\n color?: string\n}> = ({ viewText = 'View', hideText = 'Hide', onClick, isOpen, color }) => (\n <IconButton\n icon={\n isOpen ? <ChevronUpIcon width={5} height={5} /> : <ChevronDownIcon width={5} height={5} />\n }\n aria-label={isOpen ? hideText : viewText}\n variant=\"ghost\"\n p=\"2px\"\n ml=\"auto\"\n size=\"xs\"\n fontSize=\"xs\"\n borderRadius=\"full\"\n _hover={{ bg: 'blackAlpha.200' }}\n color={color ?? '#777'}\n onClick={e => {\n e.stopPropagation()\n onClick(e)\n }}\n />\n)\n","import {\n Box,\n Collapse,\n Flex,\n HStack,\n StackProps,\n Text,\n useDisclosure,\n VStack,\n} from '@chakra-ui/react'\nimport React, { FC, PropsWithChildren, useCallback } from 'react'\nimport { useBorderColor } from '../../hooks/ui/useBorderColor'\nimport { ViewButton } from '../button/ViewButton'\n\nexport const Expandable = ({\n header: Header,\n children,\n initExpanded = false,\n nested,\n alwaysExpanded,\n headerProps,\n iconColor,\n footer: Footer,\n isOpen: isOpenProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...stackProps\n}: PropsWithChildren<\n StackProps & {\n header: string | FC<{ isOpen: boolean; onClose: () => void }>\n footer?: FC<{ isOpen: boolean; onClose: () => void }>\n headerProps?: StackProps\n nested?: boolean\n alwaysExpanded?: boolean\n initExpanded?: boolean\n isOpen?: boolean\n onClose?: () => void\n iconColor?: string\n onOpen?: () => void\n }\n>) => {\n const { isOpen, onClose, onOpen } = useDisclosure({\n defaultIsOpen: alwaysExpanded ?? initExpanded,\n isOpen: isOpenProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n\n const handleOpenClick = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation()\n if (alwaysExpanded) return\n if (isOpen) {\n onClose()\n return\n }\n onOpen()\n },\n [alwaysExpanded, onOpen, onClose, isOpen],\n )\n const borderColor = useBorderColor()\n return (\n <VStack spacing={0} borderColor={borderColor} w=\"100%\" {...stackProps}>\n <HStack\n borderBottom={isOpen ? `1px solid ${borderColor}` : undefined}\n px={2}\n spacing={0}\n w=\"100%\"\n {...headerProps}>\n <Flex\n onClick={handleOpenClick}\n cursor=\"pointer\"\n aria-label=\"expand/hide\"\n align=\"center\"\n flex={1}>\n {typeof Header === 'string' ? (\n <Text fontWeight={600} color=\"gray.500\" flex={1}>\n {Header}\n </Text>\n ) : (\n <Header isOpen={isOpen} onClose={onClose} />\n )}\n </Flex>\n {alwaysExpanded ? null : (\n <ViewButton color={iconColor} onClick={handleOpenClick} isOpen={isOpen} />\n )}\n </HStack>\n <Box w=\"100%\" borderLeft={nested ? '4px solid #00000033' : undefined}>\n <Collapse unmountOnExit style={{ width: '100%' }} in={isOpen}>\n {children as any}\n </Collapse>\n </Box>\n {Footer ? <Footer isOpen={isOpen} onClose={onClose} /> : null}\n </VStack>\n )\n}\n","import { Box, BoxProps } from '@chakra-ui/react'\nimport { useMounted } from '@chem-po/react'\nimport useResizeObserver from '@react-hook/resize-observer'\nimport React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nexport const ExpandOnMount: FC<\n BoxProps & { in?: boolean; animateOpacity?: boolean; duration?: number; onExited?: () => void }\n> = ({ animateOpacity, duration = 300, children, in: isIn = true, onExited, ...props }) => {\n const mounted = useMounted()\n\n const [bodyHeight, setBodyHeight] = useState<number>(0)\n const bodyRef = useRef<HTMLDivElement | null>(null)\n\n const [isAnimating, setIsAnimating] = useState(false)\n const expanded = useMemo(() => mounted && isIn, [isIn, mounted])\n const height = useMemo(() => (expanded ? bodyHeight : 0), [bodyHeight, expanded])\n const handleBodyResize = useCallback((e: ResizeObserverEntry) => {\n setBodyHeight(e.target.scrollHeight)\n }, [])\n\n useResizeObserver(bodyRef, handleBodyResize)\n\n const animatingTimeout = useRef<ReturnType<typeof setTimeout> | null>(null)\n useEffect(() => {\n if (animatingTimeout.current) {\n clearTimeout(animatingTimeout.current)\n animatingTimeout.current = null\n }\n setIsAnimating(true)\n animatingTimeout.current = setTimeout(() => {\n setIsAnimating(false)\n if (onExited && !expanded) onExited()\n }, duration)\n }, [expanded, duration, onExited])\n const transition = useMemo(() => {\n if (!isAnimating && expanded) return 'height 0ms'\n if (!animateOpacity) return `height ${duration}ms`\n return `height ${duration}ms, opacity ${duration}ms ease ${expanded ? duration : 0}ms`\n }, [animateOpacity, duration, expanded, isAnimating])\n\n return (\n <Box overflow=\"hidden\" w=\"100%\" transition={transition} height={`${height}px`} {...props}>\n <Box ref={bodyRef} w=\"100%\" {...props}>\n {children}\n </Box>\n </Box>\n )\n}\n","import { Box, BoxProps } from '@chakra-ui/react'\nimport { FullSizeContext } from '@chem-po/react'\nimport useResizeObserver from '@react-hook/resize-observer'\nimport React, { FC, useCallback, useMemo, useRef, useState } from 'react'\n\nexport const FullSizeContainer = ({\n children: Children,\n ...props\n}: Omit<BoxProps, 'children'> & { children: FC<{ width: number; height: number }> }) => {\n const [width, setWidth] = useState(0)\n const [height, setHeight] = useState(0)\n\n const ref = useRef<HTMLDivElement>(null)\n const handleResize = useCallback((entry: ResizeObserverEntry) => {\n // const rect = entry.target.getBoundingClientRect()\n setWidth(entry.target.scrollWidth)\n setHeight(entry.target.scrollHeight)\n }, [])\n\n useResizeObserver(ref, handleResize)\n\n return (\n <Box ref={ref} {...props} width=\"100%\" height=\"100%\">\n <Children width={width} height={height} />\n </Box>\n )\n}\n\n// same as FullSizeContainer, but provides the width and height in a context instead of a render prop\nexport const FullSizeProvider = ({ children, ...props }: BoxProps) => {\n const [width, setWidth] = useState(0)\n const [height, setHeight] = useState(0)\n\n const ref = useRef<HTMLDivElement>(null)\n const handleResize = useCallback((entry: ResizeObserverEntry) => {\n // const rect = entry.target.getBoundingClientRect()\n setWidth(entry.target.scrollWidth)\n setHeight(entry.target.scrollHeight)\n }, [])\n\n useResizeObserver(ref, handleResize)\n\n const contextValue = useMemo(() => ({ width, height }), [width, height])\n\n return (\n <Box ref={ref} {...props} width=\"100%\" height=\"100%\">\n <FullSizeContext.Provider value={contextValue}>{children}</FullSizeContext.Provider>\n </Box>\n )\n}\n","import { BaseUserData, getUserViews, getViewRoutes, View } from '@chem-po/core'\nimport { useAuth } from '@chem-po/react'\nimport React, { createContext, FC, PropsWithChildren, useContext, useMemo } from 'react'\nimport { RouteObject } from 'react-router'\n\nexport const ViewsContext = createContext<\n Array<{ view: View<FC, BaseUserData>; routes: RouteObject[] }>\n>([])\n\nexport const useViews = () => useContext(ViewsContext)\n\nexport const ViewsProvider = ({\n children,\n views,\n}: PropsWithChildren & { views: Array<View<FC, BaseUserData>> }) => {\n const user = useAuth(s => s.user)\n const value = useMemo(\n () =>\n getUserViews(views, user).map(view => ({\n view,\n routes: getViewRoutes(view),\n })),\n [user, views],\n )\n return <ViewsContext.Provider value={value}>{children}</ViewsContext.Provider>\n}\n","import React, { PropsWithChildren, useContext } from 'react'\n\nconst ForceMobileContext = React.createContext(false)\nexport const ForceMobile = ({ children }: PropsWithChildren) => (\n <ForceMobileContext.Provider value={true}>{children}</ForceMobileContext.Provider>\n)\nexport const useForceMobile = () => useContext(ForceMobileContext)\n","import { Button, Flex, Image, useColorModeValue } from '@chakra-ui/react'\nimport { palette } from '@chem-po/core'\nimport { View } from '@chem-po/react'\nimport React, { PropsWithChildren, useMemo } from 'react'\nimport { Link, useLocation } from 'react-router-dom'\nimport { useViews } from '../../contexts/view'\n\nexport const NAV_BAR_HEIGHT = 50\n\nconst NavBarLink = ({ view, absolute }: { view: View; absolute: boolean }) => {\n const { path: paths, name, icon, iconScale } = view\n const path = Array.isArray(paths) ? paths[0] : paths\n\n // const hoverBg = useColorModeValue('#00000033', '#f7f7f777')\n // const textColor = useColorModeValue('#777', '#cdcdcd')\n const iconBrightness = useColorModeValue(1, 1.8)\n const usedBrightness = useMemo(\n () => (absolute ? 2.4 : iconBrightness),\n [absolute, iconBrightness],\n )\n const { pathname } = useLocation()\n const hoverBg = useColorModeValue('#ffffff33', '#00000033')\n const body = (\n <Button\n pointerEvents={pathname === path ? 'none' : 'auto'}\n opacity={pathname === path ? 1 : 0.7}\n width=\"100%\"\n height=\"100%\"\n borderRadius={0}\n flexFlow=\"column\"\n _hover={{\n bg: hoverBg,\n }}\n variant=\"unstyled\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\">\n <Image\n height={`${34 * (iconScale ?? 1)}px`}\n filter={`brightness(${usedBrightness})${\n absolute ? ' drop-shadow(1px 1px 3px #00000099 )' : ''\n }`}\n src={icon}\n alt={name}\n />\n {/* <Text color={textColor} lineHeight={1} fontWeight={400} fontSize='xs'>\n {name}\n </Text> */}\n </Button>\n )\n return pathname === path ? (\n <Flex key={path} flex={1} h=\"100%\" justify=\"center\">\n {body}\n </Flex>\n ) : (\n <Link\n key={path}\n style={{\n flex: 1,\n display: 'flex',\n height: '100%',\n justifyContent: 'center',\n }}\n to={path}>\n {body}\n </Link>\n )\n}\n\nexport const NavBar = ({\n selectedView,\n children,\n}: PropsWithChildren<{ selectedView?: View | null }>) => {\n const bg = useColorModeValue('#dedede', palette.gray.dark)\n const defaultBorderColor = useColorModeValue('#00000022', '#ffffff33')\n const views = useViews()\n const menuViews = useMemo(() => views.filter(v => !!v.view.icon), [views])\n const isAbsolute = useMemo(() => !!selectedView?.navBar?.absolute, [selectedView])\n const background = useMemo(() => selectedView?.navBar?.backgroundColor ?? bg, [bg, selectedView])\n const borderColor = useMemo(() => {\n if (selectedView?.navBar?.borderColor) return !!selectedView?.navBar?.borderColor\n return isAbsolute ? '#ffffff33' : defaultBorderColor\n }, [defaultBorderColor, selectedView, isAbsolute])\n return (\n <Flex\n position=\"absolute\"\n bottom={0}\n left={0}\n bg={background}\n w=\"100%\"\n transition=\"all 500ms\"\n h={`${NAV_BAR_HEIGHT}px`}\n borderTop={`1px solid ${borderColor}`}>\n <Flex position=\"relative\" w=\"100%\" justify=\"space-around\" align=\"center\">\n {menuViews.map(({ view }) => (\n <NavBarLink absolute={isAbsolute} key={view.name} view={view} />\n ))}\n {children}\n </Flex>\n </Flex>\n )\n}\n","import { Flex, Text, useColorModeValue } from '@chakra-ui/react'\nimport React from 'react'\nimport { ContentBox } from '../box/ContentBox'\n\nexport const ErrorView = ({ message }: { message?: string }) => {\n const color = useColorModeValue('gray.600', 'gray.100')\n return (\n <Flex pt={4}>\n <ContentBox>\n <Text color={color}>{message ?? 'Sorry, something went wrong.'}</Text>\n </ContentBox>\n </Flex>\n )\n}\n","import {\n CircularProgressProps,\n CircularProgress as Orig,\n useColorModeValue,\n} from '@chakra-ui/react'\nimport React from 'react'\n\nexport const CircularProgress = (props: CircularProgressProps) => {\n const color = useColorModeValue('gray.400', 'gray.400')\n const bg = useColorModeValue('gray.300', 'gray.600')\n return <Orig isIndeterminate trackColor={bg} color={color} {...props} />\n}\n","import { Center, CenterProps, HStack, StackProps, Text, useColorModeValue } from '@chakra-ui/react'\nimport { ThemedAsset, useAppAssets } from '@chem-po/react'\nimport { LottieOptions, useLottie } from 'lottie-react'\nimport React, { useEffect, useMemo } from 'react'\nimport { ContentBox } from '../box/ContentBox'\n// import loadingAnimation from './circles_loading.json'\n// import loadingAnimationLight from './circles_loading_light.json'\n\nexport const LottieLoadingLogo = ({\n size = 30,\n isLoading,\n speed = 2,\n inFeed,\n asset,\n}: {\n size?: number | string\n color?: string\n isLoading: boolean\n asset: ThemedAsset\n inFeed?: boolean\n speed?: number\n}) => {\n const _animationData = useColorModeValue(asset.default, asset.dark ?? asset.default)\n const animationData = useMemo(\n () => (inFeed ? (asset.dark ?? asset.default) : _animationData),\n [_animationData, asset, inFeed],\n )\n const options = useMemo<LottieOptions>(\n () => ({\n // animationData: getLoaderJson(propColor || defaultColor),\n animationData,\n loop: true,\n }),\n [animationData],\n )\n const style = useMemo(\n () => ({\n width: size,\n height: size,\n opacity: isLoading ? 0.85 : 0,\n transition: 'opacity 300ms ease-in-out',\n }),\n [size, isLoading],\n )\n const { View, pause, play, setSpeed } = useLottie(options, style)\n useEffect(() => {\n setSpeed(speed)\n }, [setSpeed, speed])\n useEffect(() => {\n if (isLoading) {\n play()\n } else pause()\n }, [isLoading, play, pause])\n\n return <>{View}</>\n}\n\nconst SVGLoadingLogo = ({\n size = 30,\n isLoading,\n asset,\n inFeed,\n}: {\n size?: number | string\n isLoading: boolean\n asset: ThemedAsset\n inFeed?: boolean\n}) => {\n const _svg = useColorModeValue(asset.default, asset.dark ?? asset.default)\n const svg = useMemo(() => (inFeed ? (asset.dark ?? asset.default) : _svg), [_svg, asset, inFeed])\n const style = useMemo(\n () => ({\n width: size,\n height: size,\n opacity: isLoading ? 0.85 : 0,\n transition: 'opacity 300ms ease-in-out',\n }),\n [size, isLoading],\n )\n return <img src={svg} style={style} alt=\"loading\" />\n}\n\nconst LoadingBody = ({ isLoading, size }: { isLoading: boolean; size?: number | string }) => {\n const { loading } = useAppAssets()\n if (loading.lottieJson)\n return <LottieLoadingLogo isLoading={isLoading} size={size} asset={loading.lottieJson} />\n if (loading.svg) return <SVGLoadingLogo isLoading={isLoading} size={size} asset={loading.svg} />\n return null\n}\n\nexport const LoadingLogo = ({\n isLoading,\n size,\n inFeed,\n}: {\n isLoading: boolean\n size?: number | string\n inFeed?: boolean\n}) => {\n const { loading } = useAppAssets()\n if (loading.lottieJson)\n return (\n <LottieLoadingLogo\n inFeed={inFeed}\n isLoading={isLoading}\n size={size}\n asset={loading.lottieJson}\n />\n )\n if (loading.svg)\n return <SVGLoadingLogo inFeed={inFeed} isLoading={isLoading} size={size} asset={loading.svg} />\n return <Text color=\"red\">ERROR: No loading animation found</Text>\n}\n\nexport const Loading = ({\n text = 'Loading...',\n inBox,\n stackProps,\n}: {\n text?: string\n inBox?: boolean\n stackProps?: StackProps\n}) => {\n const body = (\n <HStack p={2} {...stackProps}>\n <LoadingBody isLoading />\n <Text opacity={0.8} fontSize=\"sm\">\n {text}\n </Text>\n </HStack>\n )\n return inBox ? <ContentBox>{body}</ContentBox> : body\n}\n\nexport const LoadingOverlay = ({\n isLoading,\n text,\n inFeed,\n ...props\n}: { isLoading: boolean; text?: string; inFeed?: boolean } & CenterProps) => {\n const bg = useColorModeValue('#ffffffaa', '#00000088')\n return (\n <Center\n pos={'absolute'}\n top={0}\n left={0}\n right={0}\n bottom={0}\n bg={bg}\n pointerEvents={isLoading ? 'auto' : 'none'}\n opacity={isLoading ? 1 : 0}\n {...props}>\n {!text ? (\n <LoadingLogo inFeed={inFeed} size={100} isLoading={isLoading} />\n ) : (\n <Loading text={text} />\n )}\n </Center>\n )\n}\n","import { Center, HStack, Text, VStack } from '@chakra-ui/react'\nimport { useAuth } from '@chem-po/react'\nimport React, { useEffect, useRef } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { ContentBox } from '../box/ContentBox'\nimport { CircularProgress } from '../loading/CircularProgress'\nimport { Loading } from '../loading/Loading'\n\nexport const RedirectView: React.FC<{ loading?: boolean }> = ({ loading }) => {\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null)\n const authLoading = useAuth(s => s.signInLoading)\n const multiFactorLoading = useAuth(s => s.multiFactorLoading)\n\n const navigate = useNavigate()\n useEffect(() => {\n if (!loading && !authLoading) {\n timer.current = setTimeout(() => {\n navigate('/')\n }, 1500)\n }\n return () => {\n if (timer.current) clearTimeout(timer.current)\n }\n }, [loading, navigate, authLoading])\n\n return !loading && !authLoading ? (\n <Center minH=\"100%\" w=\"100%\">\n <ContentBox maxW=\"500px\">\n <HStack spacing={3}>\n <CircularProgress size={6} />\n <VStack spacing={0} align=\"flex-start\">\n <Text>404</Text>\n <Text fontSize=\"sm\" opacity={0.7}>\n Page not found - redirecting to Home...\n </Text>\n </VStack>\n </HStack>\n </ContentBox>\n </Center>\n ) : (\n <Loading />\n )\n}\n","import { Box, Center, Flex, useColorModeValue } from '@chakra-ui/react'\nimport { cssGradients } from '@chem-po/core'\nimport { MobileFrameProvider, useScreen, View } from '@chem-po/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport React, { PropsWithChildren, ReactNode, useMemo, useRef } from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { matchRoutes, useLocation, useOutlet } from 'react-router-dom'\nimport { CSSTransition, SwitchTransition } from 'react-transition-group'\nimport { useViews, ViewsProvider } from '../../../contexts/view'\nimport { ForceMobile } from '../../modal/ForceMobile'\nimport { NAV_BAR_HEIGHT, NavBar } from '../../nav/NavBar'\nimport { ErrorView } from '../../view/ErrorView'\nimport { RedirectView } from '../../view/RedirectView'\nimport './styles.css'\n\nconst IPHONE_12_WIDTH = 390\nconst IPHONE_12_HEIGHT = 844\nconst IPHONE_12_ASPECT = IPHONE_12_WIDTH / IPHONE_12_HEIGHT\n\nconst MobileFrameBody = ({\n children,\n navBarChildren,\n}: PropsWithChildren<{ navBarChildren?: ReactNode }>) => {\n const { isMobile, height: screenHeight, width: screenWidth } = useScreen()\n\n // const contentHeight = useMemo(() => (isMobile ? screenHeight : IPHONE_12_HEIGHT), [isMobile, screenHeight])\n // const contentWidth = useMemo(() => (isMobile ? screenWidth : IPHONE_12_WIDTH), [isMobile, screenWidth])\n // should be constrained to the screen size\n const { contentHeight, contentWidth } = useMemo(() => {\n let h = isMobile ? screenHeight : IPHONE_12_HEIGHT\n let w = isMobile ? screenWidth : IPHONE_12_WIDTH\n if (isMobile) return { contentHeight: h, contentWidth: w }\n const cappedHeight = Math.floor(screenHeight * 0.9)\n const cappedWidth = Math.floor(screenWidth * 0.9)\n if (h > cappedHeight) {\n w = Math.floor(cappedHeight * IPHONE_12_ASPECT)\n h = cappedHeight\n } else if (w > cappedWidth) {\n h = Math.floor(cappedWidth / IPHONE_12_ASPECT)\n w = cappedWidth\n }\n return { contentHeight: h, contentWidth: w }\n }, [isMobile, screenHeight, screenWidth])\n\n const outerBg = useColorModeValue(cssGradients.accentGray, cssGradients.darkGray)\n const location = useLocation()\n const currentOutlet = useOutlet()\n const views = useViews()\n const view = useMemo(() => views.find(v => !!matchRoutes(v.routes, location)), [views, location])\n const viewKey = useMemo(() => {\n if (!view) return '404'\n return typeof view.view.path === 'string' ? view.view.path : view.view.path[0]\n }, [view])\n const overlayRef = useRef<HTMLDivElement>(null)\n const nodeRef = useRef<HTMLDivElement>(null)\n const absoluteNavBar = useMemo(() => !!view?.view?.navBar?.absolute, [view])\n const bodyHeight = useMemo(\n () => contentHeight - (absoluteNavBar ? 0 : NAV_BAR_HEIGHT),\n [contentHeight, absoluteNavBar],\n )\n const contextData = useMemo(\n () => ({\n overlayRef,\n height: contentHeight,\n width: contentWidth,\n absoluteNavBar,\n bodyHeight,\n }),\n [overlayRef, contentHeight, contentWidth, absoluteNavBar, bodyHeight],\n )\n return (\n <ForceMobile>\n <MobileFrameProvider value={contextData}>\n <Center position=\"relative\" bg={outerBg} w=\"100%\" height=\"100%\">\n <Flex\n bg=\"background.100\"\n // ref={frameRef}\n position=\"relative\"\n style={{ height: `${contentHeight}px`, width: `${contentWidth}px` }}\n boxShadow={isMobile ? 'none' : '1px 1px 4px rgba(0,0,0,0.4)'}\n borderRadius={isMobile ? 0 : 10}\n overflow=\"hidden\"\n direction=\"column\"\n maxH={contentHeight}>\n <AnimatePresence>\n <SwitchTransition>\n <CSSTransition\n key={viewKey}\n nodeRef={nodeRef}\n unmountOnExit\n classNames=\"page\"\n timeout={300}>\n {() => (\n <motion.div\n style={{\n position: 'relative',\n width: '100%',\n overflow: 'hidden',\n }}\n animate={{\n height: bodyHeight,\n opacity: 1,\n dur: 0.5,\n scale: 1,\n }}\n initial={{ opacity: 0, scale: 0.9, height: bodyHeight }}\n exit={{ opacity: 0 }}>\n <ErrorBoundary FallbackComponent={() => <ErrorView />}>\n {view ? currentOutlet : <RedirectView />}\n </ErrorBoundary>\n {children ? (\n <Box\n height=\"100%\"\n w=\"100%\"\n position=\"absolute\"\n top={0}\n left={0}\n pointerEvents=\"none\">\n {children}\n </Box>\n ) : null}\n </motion.div>\n )}\n </CSSTransition>\n </SwitchTransition>\n </AnimatePresence>\n <NavBar selectedView={view?.view}>{navBarChildren}</NavBar>\n <Flex pos=\"absolute\" pointerEvents=\"none\" bottom={0} w=\"100%\" h=\"100%\">\n <Flex ref={overlayRef} w=\"100%\" h=\"100%\" pos=\"relative\" />\n </Flex>\n </Flex>\n </Center>\n </MobileFrameProvider>\n </ForceMobile>\n )\n}\n\nexport const MobileFrame = ({\n children,\n navBarChildren,\n views,\n}: PropsWithChildren<{ views: View[]; navBarChildren?: ReactNode }>) => (\n <ViewsProvider views={views}>\n <MobileFrameBody navBarChildren={navBarChildren}>{children}</MobileFrameBody>\n </ViewsProvider>\n)\n","import { DeleteIcon } from '@chakra-ui/icons'\nimport {\n AlertDialog,\n AlertDialogBody,\n AlertDialogContent,\n AlertDialogOverlay,\n Button,\n Flex,\n HStack,\n IconButton,\n IconButtonProps,\n Text,\n useToast,\n VStack,\n} from '@chakra-ui/react'\nimport React, { ReactNode, useCallback, useEffect, useRef, useState } from 'react'\n\nconst defaultAlertBodyText = \"Are you sure? You can't undo this action afterwards.\"\nexport const DeleteConfirmAlert = ({\n confirmActive,\n onCancel,\n onConfirm,\n body = defaultAlertBodyText,\n actionName = 'Delete',\n actionLoading,\n itemName,\n}: {\n confirmActive: boolean\n onCancel: () => void\n onConfirm: () => void\n body?: string | ReactNode\n actionLoading?: boolean\n actionName?: string\n itemName: string\n}) => {\n const cancelRef = useRef<HTMLButtonElement>(null)\n return (\n <AlertDialog\n isCentered\n isOpen={confirmActive}\n leastDestructiveRef={cancelRef}\n onClose={() => onCancel()}>\n <AlertDialogOverlay>\n <AlertDialogContent gap={0}>\n <AlertDialogBody>\n <VStack align=\"flex-start\" py={1}>\n <Text fontSize=\"lg\" fontWeight={500}>\n {actionName} {itemName}?\n </Text>\n {typeof body === 'string' ? <Text fontSize=\"md\">{body}</Text> : body}\n <HStack justify=\"flex-end\" w=\"100%\">\n <Button size=\"sm\" ref={cancelRef} onClick={onCancel}>\n Cancel\n </Button>\n <Button\n size=\"sm\"\n isLoading={actionLoading}\n color=\"white\"\n textShadow=\"1px 1px 3px #00000077\"\n bg=\"red.500\"\n _dark={{\n bg: 'red.500',\n }}\n onClick={onConfirm}>\n {actionName}\n </Button>\n </HStack>\n </VStack>\n </AlertDialogBody>\n </AlertDialogContent>\n </AlertDialogOverlay>\n </AlertDialog>\n )\n}\n\nexport const DeleteButton: React.FC<\n Partial<IconButtonProps> & {\n onDelete: (() => Promise<any>) | (() => void)\n itemName: string\n actionName?: string\n noConfirm?: boolean\n text?: string\n alertBody?: string | ReactNode\n }\n> = ({ onDelete, itemName, noConfirm, alertBody, text, actionName = 'Delete', ...props }) => {\n const [deleteLoading, setDeleteLoading] = useState(false)\n const [confirmActive, setConfirmActive] = useState(false)\n const confirmTimer = useRef<ReturnType<typeof setTimeout> | null>(null)\n const isMounted = useRef(true)\n useEffect(() => {\n isMounted.current = true\n\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const toast = useToast()\n const handleDelete = useCallback(async () => {\n if (confirmTimer.current) clearTimeout(confirmTimer.current)\n setConfirmActive(false)\n if (onDelete) {\n setDeleteLoading(true)\n try {\n await onDelete()\n } catch (err: any) {\n console.error(err)\n toast({\n title: 'Error',\n description: err.message ?? 'An error occurred',\n status: 'error',\n duration: 5000,\n isClosable: true,\n })\n }\n if (isMounted.current) {\n setDeleteLoading(false)\n }\n } else {\n console.error('No delete function')\n }\n }, [onDelete, toast])\n\n return (\n <>\n {text ? (\n <Button\n variant=\"ghost\"\n size={props.size ?? 'md'}\n aria-label=\"delete\"\n _hover={{ color: 'red.600', bg: 'red.200' }}\n color=\"red.600\"\n onClick={e => {\n e.stopPropagation()\n if (noConfirm) handleDelete()\n else setConfirmActive(true)\n }}\n isLoading={deleteLoading}\n {...props}>\n <Flex align=\"center\" gap={1}>\n <DeleteIcon />\n <Text>{text}</Text>\n </Flex>\n </Button>\n ) : (\n <IconButton\n variant=\"ghost\"\n size={props.size ?? 'sm'}\n aria-label={actionName}\n _hover={{ color: 'red.600', bg: 'red.200' }}\n color=\"red.500\"\n borderRadius=\"full\"\n icon={<DeleteIcon />}\n onClick={e => {\n e.stopPropagation()\n if (noConfirm) handleDelete()\n else setConfirmActive(true)\n }}\n isLoading={deleteLoading}\n {...props}\n />\n )}\n {noConfirm ? null : (\n <DeleteConfirmAlert\n confirmActive={confirmActive}\n onCancel={() => setConfirmActive(false)}\n actionLoading={deleteLoading}\n onConfirm={() => {\n handleDelete()\n }}\n actionName={actionName}\n body={alertBody}\n itemName={itemName}\n />\n )}\n </>\n )\n}\n","import { Box, Flex, IconButton, IconButtonProps, Tooltip } from '@chakra-ui/react'\nimport React, { JSX } from 'react'\nimport { useBorderColor } from '../../hooks'\n\nexport interface ToggleOption<Option extends string = string> {\n id: Option\n label: string\n disabledMessage?: string\n Render: (selected: boolean) => JSX.Element\n}\nexport interface ToggleProps<Option extends string> {\n options: ToggleOption<Option>[]\n value: Option\n size?: number\n onChange: (value: Option) => Promise<void> | void\n}\n\nconst ToggleButton = <Option extends string>({\n selected,\n option: { Render, label, disabledMessage },\n size,\n ...props\n}: Omit<IconButtonProps, 'children' | 'aria-label' | 'size'> & {\n option: ToggleOption<Option>\n size: number\n selected: boolean\n}) => {\n const body = (\n <Box>\n <IconButton\n variant=\"unstyled\"\n w={`${size}px`}\n h={`${size}px`}\n minW={0}\n borderRadius={0}\n outline=\"none\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n opacity={!disabledMessage ? 1 : 0.6}\n filter={!disabledMessage ? 'none' : 'grayscale(1)'}\n bg={selected ? 'whiteAlpha.500' : 'blackAlpha.100'}\n _dark={{ bg: selected ? 'blackAlpha.500' : 'whiteAlpha.200' }}\n icon={Render(selected)}\n pointerEvents={selected ? 'none' : 'auto'}\n aria-label={label}\n {...props}\n />\n </Box>\n )\n\n return (\n <Tooltip label={disabledMessage ?? label} aria-label={label}>\n {body}\n </Tooltip>\n )\n}\n\nexport const Toggle = <Option extends string>({\n value,\n onChange,\n size = 28,\n options,\n}: ToggleProps<Option>) => {\n const borderColor = useBorderColor()\n return (\n <Flex\n bg=\"whiteAlpha.300\"\n _dark={{ bg: 'blackAlpha.300' }}\n border={`1px solid ${borderColor}`}\n borderRadius={3}>\n {options.map((option, i) => (\n <ToggleButton<Option>\n key={option.id}\n onClick={() => {\n onChange(option.id)\n }}\n option={option}\n size={size}\n borderLeftRadius={i ? 0 : 3}\n borderRightRadius={i === options.length - 1 ? 3 : 0}\n selected={option.id === value}\n borderLeft={i ? `1px solid ${borderColor}` : 'none'}\n />\n ))}\n </Flex>\n )\n}\n","import { AnyObject, WithId } from '@chem-po/core'\nimport React, { createContext, PropsWithChildren, useContext, useMemo } from 'react'\n\ninterface MediaFeedContextValue<T extends AnyObject = AnyObject> {\n curr: WithId<T> | null\n}\nexport const MediaFeedContext = createContext<MediaFeedContextValue<any>>(\n {} as MediaFeedContextValue<any>,\n)\n\nexport const MediaFeedProvider = <T extends AnyObject = AnyObject>({\n curr,\n children,\n}: PropsWithChildren<{ curr: WithId<T> | null }>) => {\n const contextData = useMemo(() => ({ curr }), [curr])\n return <MediaFeedContext.Provider value={contextData}>{children}</MediaFeedContext.Provider>\n}\nexport const useMediaFeed = <T extends AnyObject = AnyObject>() =>\n useContext(MediaFeedContext) as MediaFeedContextValue<T>\n","import { CloseIcon } from '@chakra-ui/icons'\nimport { Center, IconButton, Image, Modal, ModalContent, ModalOverlay } from '@chakra-ui/react'\nimport { useScreen } from '@chem-po/react'\nimport React, { SyntheticEvent, useCallback, useMemo, useState } from 'react'\nimport { LoadingLogo } from '../loading/Loading'\n\nexport const ImageViewOverlay = ({ src, onClose }: { src: string; onClose: () => void }) => {\n const [loading, setLoading] = useState(true)\n const screenWidth = useScreen(s => s.width)\n const screenHeight = useScreen(s => s.height)\n const [imageSize, setImageSize] = useState({ width: screenWidth / 2, height: screenHeight / 2 })\n\n const { height, width } = useMemo(() => {\n if (loading) return imageSize\n const ratio = imageSize.width / imageSize.height\n let h = Math.min(imageSize.height, screenHeight * 0.9)\n let w = h * ratio\n if (w > screenWidth * 0.9) {\n w = Math.min(imageSize.width, screenWidth * 0.9)\n h = w / ratio\n }\n return { height: h, width: w }\n }, [screenHeight, screenWidth, imageSize, loading])\n\n const onLoadStart = useCallback(() => setLoading(true), [])\n const onLoad = useCallback((e: SyntheticEvent<HTMLImageElement>) => {\n const { naturalWidth, naturalHeight } = e.currentTarget\n setImageSize({ width: naturalWidth, height: naturalHeight })\n setLoading(false)\n }, [])\n return (\n <Modal size=\"full\" isOpen onClose={onClose}>\n <ModalOverlay bg=\"blackAlpha.700\" />\n <ModalContent\n style={{ background: 'transparent' }}\n pointerEvents=\"none\"\n width=\"100%\"\n height=\"100%\">\n <Center\n pointerEvents=\"none\"\n position=\"fixed\"\n p={[4, 6, 8]}\n top={0}\n left={0}\n right={0}\n bottom={0}\n zIndex={4}>\n <Center\n opacity={loading ? 0 : 1}\n transition=\"all 500ms\"\n overflow=\"hidden\"\n w={`${width}px`}\n height={`${height}px`}>\n <Image\n onLoadStart={onLoadStart}\n onLoad={onLoad}\n transition=\"opacity 300ms\"\n height=\"100%\"\n objectFit=\"contain\"\n borderRadius={4}\n src={src}\n />\n </Center>\n <IconButton\n borderRadius=\"full\"\n position=\"absolute\"\n top={4}\n right={4}\n aria-label=\"close\"\n icon={<CloseIcon />}\n onClick={onClose}\n />\n </Center>\n <Center\n position=\"absolute\"\n top={0}\n left={0}\n right={0}\n bottom={0}\n pointerEvents=\"none\"\n opacity={loading ? 1 : 0}\n transition=\"opacity 300ms\">\n <LoadingLogo isLoading={loading} size={70} />\n </Center>\n </ModalContent>\n </Modal>\n )\n}\n","import { BoxProps, Center, IconButton, Image, ImageProps } from '@chakra-ui/react'\nimport { useColorModeValue, useMounted } from '@chem-po/react'\nimport React, { SyntheticEvent, useCallback, useEffect, useRef, useState } from 'react'\nimport { ImageViewOverlay } from '../overlay/ImageViewOverlay'\nimport { LoadingLogo } from './Loading'\n\nexport interface LoadingImageProps {\n src?: string | null\n loadingOverride?: boolean\n onLoad?: ImageProps['onLoad']\n alt?: string\n withFullView?: boolean\n buttonFullView?: boolean\n imageProps?: Omit<ImageProps, 'onLoad'>\n}\n\nconst emptyPng =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkAAIAAAoAAv/lxKUAAAAASUVORK5CYII='\nexport const LoadingImage = ({\n src,\n loadingOverride,\n alt,\n onLoad,\n width,\n height,\n withFullView,\n buttonFullView,\n imageProps,\n ...boxProps\n}: LoadingImageProps & Omit<BoxProps, 'onLoad'>) => {\n const [imageLoading, setImageLoading] = useState(!!src)\n const imageRef = useRef<HTMLImageElement>(null)\n\n const [viewing, setViewing] = useState(false)\n const mounted = useMounted(100)\n useEffect(() => {\n if (imageRef.current?.complete) {\n setImageLoading(true)\n }\n }, [imageRef])\n\n const handleImageLoad = useCallback(\n (e: SyntheticEvent<HTMLImageElement>) => {\n setImageLoading(false)\n if (onLoad) onLoad(e)\n },\n [onLoad],\n )\n\n const [prevSrc, setPrevSrc] = useState(src)\n useEffect(() => {\n if (src) setPrevSrc(src)\n }, [src, prevSrc])\n\n const fullViewButtonFilter = useColorModeValue(\n 'none',\n 'brightness(300%) drop-shadow(1px 1px 3px #00000066)',\n )\n\n const loading = imageLoading || !!loadingOverride\n return (\n <Center\n opacity={mounted ? 1 : 0}\n transition=\"opacity 333ms\"\n w={width ?? '100%'}\n h={height ?? '100%'}\n overflow=\"hidden\"\n position=\"relative\"\n {...boxProps}>\n <Image\n src={src ?? emptyPng}\n alt={alt}\n onClick={!withFullView || buttonFullView ? undefined : () => setViewing(true)}\n onLoad={handleImageLoad}\n onLoadStart={() => setImageLoading(true)}\n top={0}\n left={0}\n cursor={!withFullView || buttonFullView ? 'default' : 'pointer'}\n draggable={false}\n opacity={src && !loading ? 1 : 0}\n transition=\"opacity 300ms ease-in-out\"\n w=\"100%\"\n h=\"100%\"\n objectFit={src ? 'cover' : 'contain'}\n zIndex={0}\n {...imageProps}\n />\n {buttonFullView ? (\n <IconButton\n pos=\"absolute\"\n top={2}\n right={2}\n zIndex={1}\n w={7}\n minW={0}\n borderRadius={10}\n h={7}\n size=\"sm\"\n aria-label=\"View Image\"\n icon={\n <Image\n height=\"20px\"\n src=\"/icons/open_in_full.svg\"\n opacity={0.8}\n filter={fullViewButtonFilter}\n />\n }\n onClick={() => setViewing(true)}\n />\n ) : null}\n <Center\n pos=\"absolute\"\n top={0}\n left={0}\n zIndex={2}\n pointerEvents=\"none\"\n transition=\"opacity 0.5s ease-in-out\"\n opacity={loading || !src ? 1 : 0}\n w=\"100%\"\n h=\"100%\">\n <LoadingLogo isLoading={loading} size=\"60%\" />\n </Center>\n {viewing ? (\n <ImageViewOverlay src={src ?? emptyPng} onClose={() => setViewing(false)} />\n ) : null}\n </Center>\n )\n}\n","import { Center, Flex, Switch, Text, useToast } from '@chakra-ui/react'\nimport React, { useCallback, useState } from 'react'\nimport { Loading } from './Loading'\n\nexport const LoadingSwitch = ({\n value,\n label,\n onChange,\n}: {\n value: boolean\n label: string\n onChange: (updated: boolean) => Promise<void>\n}) => {\n const toast = useToast()\n const [isLoading, setIsLoading] = useState(false)\n\n const reportComplete = useCallback((fetchedOn: number) => {\n const buffer = Math.max(0, 1000 - (Date.now() - fetchedOn))\n setTimeout(() => {\n setIsLoading(false)\n }, buffer)\n }, [])\n\n return (\n <Flex\n py={1}\n pr={2}\n pl={3}\n bg=\"gray.700\"\n borderRadius={12}\n boxShadow=\"0 0 4px black\"\n pos=\"relative\"\n align=\"center\">\n <Flex\n opacity={isLoading ? 0 : 1}\n transition={`opacity 300ms ${isLoading ? 'ease-out' : 'ease-in'}`}\n pointerEvents={isLoading ? 'none' : 'auto'}\n align=\"center\"\n gap={2}>\n <Text style={{ fontSize: '1.2rem', height: '24px' }}>{label}</Text>\n <Switch\n size=\"md\"\n isChecked={value}\n onChange={e => {\n setIsLoading(true)\n const fetchedOn = Date.now()\n onChange(e.target.checked).catch(err => {\n console.error(err)\n toast({\n title: 'Error',\n description: err?.message ?? 'Error occurred',\n status: 'error',\n duration: 5000,\n isClosable: true,\n })\n })\n\n reportComplete(fetchedOn)\n }}\n />\n </Flex>\n <Center\n opacity={isLoading ? 1 : 0}\n transition={`opacity 300ms ${!isLoading ? 'ease-out' : 'ease-in'}`}\n pointerEvents={isLoading ? 'auto' : 'none'}\n pos=\"absolute\"\n top=\"-10%\"\n left=\"-10%\"\n w=\"120%\"\n borderRadius={8}\n p={1}\n gap={2}\n h=\"120%\">\n <Loading />\n </Center>\n </Flex>\n )\n}\n","import { SpringOptions } from 'framer-motion'\n\nexport const springConfig: SpringOptions = {\n damping: 25,\n stiffness: 200,\n bounce: 0.5,\n // restSpeed: 0.1,\n}\n\nexport const SWIPE_THRESHOLD = 75\nexport const REFRESH_THRESHOLD = 100\n","import { AnyObject, WithId } from '@chem-po/core'\nimport { MobileFrameContextData, useDocument, useMobileFrame } from '@chem-po/react'\nimport { motion, MotionValue, useMotionValue, useSpring, useTransform } from 'framer-motion'\nimport React, { JSX, useEffect, useMemo, useRef } from 'react'\nimport { springConfig } from './constants'\nimport { PanelStatus } from './types'\n\nconst getContentScale = (status: PanelStatus) => {\n // if (status === 'current') return 1\n if (status === 'current') return 1\n return 0\n}\nconst getContentX = (status: PanelStatus, contentSize: { width: number; height: number }) => {\n const { width: cWidth } = contentSize\n if (status === 'current') return 0\n if (status === 'next') return cWidth\n if (status === 'prev') return -cWidth\n return 0\n}\n\nconst getContentY = (status: PanelStatus, contentSize: { width: number; height: number }) => {\n const { height: cHeight } = contentSize\n if (status === 'current') return 0\n if (status === 'next') return cHeight * 1.1\n if (status === 'prev') return -cHeight * 1.1\n return 0\n}\n\ninterface FeedContentPaneProps<T extends AnyObject = AnyObject> {\n id: string\n collectionPath: string\n RenderItem: (i: WithId<T>) => JSX.Element\n onItemLoad: (data: WithId<T> | null) => void\n status: PanelStatus\n enterStatus?: PanelStatus | null\n offsetY: MotionValue<number>\n}\n\nexport const FeedContentPane = <T extends AnyObject = AnyObject>({\n id,\n collectionPath,\n onItemLoad,\n RenderItem,\n status,\n offsetY,\n enterStatus,\n}: FeedContentPaneProps<T>) => {\n const contentSize = useMobileFrame()\n const scale = useSpring(0, springConfig)\n const baseY = useMotionValue(getContentY(enterStatus ?? 'next', contentSize))\n const yVal = useTransform(() => baseY.get() + offsetY.get())\n const y = useSpring(yVal, springConfig)\n\n const docPath = useMemo(() => `${collectionPath}/${id}`, [collectionPath, id])\n const { data: item } = useDocument<T>(docPath, onItemLoad)\n\n const init = useRef<{\n status: PanelStatus\n contentSize: MobileFrameContextData\n y: number\n scale: number\n }>({\n contentSize,\n status: enterStatus ?? status,\n // x: getContentX(fromStatus || status, contentSize),\n y: getContentY(enterStatus ?? status, contentSize),\n scale: getContentScale(enterStatus ?? status),\n })\n\n useEffect(() => {\n const newScale = getContentScale(status)\n const updatedX = getContentX(status, contentSize)\n baseY.set(updatedX)\n scale.set(newScale)\n }, [status, baseY, scale, contentSize])\n\n return (\n // <AnimatePresence>\n <motion.div\n initial={{\n x: 0,\n y: init.current.y,\n scale: init.current.scale,\n }}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n touchAction: 'none',\n userSelect: 'none',\n height: '100%',\n y,\n scale,\n opacity: scale,\n width: '100%',\n }}\n exit={{\n opacity: 0,\n scale: 0,\n // x: getContentX(fromStatus || status, contentSize),\n x: 0,\n y: getContentY(enterStatus === 'next' ? 'prev' : 'next', contentSize),\n }}>\n {item ? RenderItem(item) : null}\n </motion.div>\n // </AnimatePresence>\n )\n}\n","import { useToast } from '@chakra-ui/react'\nimport { FetchFeedFunction } from '@chem-po/core'\nimport { useAuth } from '@chem-po/react'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { UpdatePanelsArgs } from './types'\n\nconst DEFAULT_LIMIT = 10\nexport const useMediaFeed = (\n fetch: FetchFeedFunction,\n onUpdatePanels: (items: UpdatePanelsArgs) => void,\n limit: number = DEFAULT_LIMIT,\n authRequired = false,\n) => {\n // first element is prev ids, second element is curr ids, third element is next ids\n const [ids, setIds] = useState<[string[] | null, string[] | null, string[] | null]>([\n null,\n null,\n null,\n ])\n const [idIdx, setIdIdx] = useState<number>(0)\n const user = useAuth(s => s.user)\n\n const [loading, setLoading] = useState(false)\n const [refreshing, setRefreshing] = useState(false)\n const [error, setError] = useState<string | null>(null)\n const [itemLoading, setItemLoading] = useState(false)\n const [direction, setDirection] = useState<'next' | 'prev' | null>(null)\n\n const toast = useToast()\n\n const fetchingId = useRef<string | null>(null)\n\n const idsRef = useRef<{ prev: string | null; curr: string | null; next: string | null }>({\n prev: null,\n curr: null,\n next: null,\n })\n\n const updateCurr = useCallback(\n (id: string | null) => {\n if (id) {\n if (idsRef.current.prev === id) {\n idsRef.current.prev = null\n }\n if (idsRef.current.next === id) {\n idsRef.current.next = null\n }\n }\n idsRef.current.curr = id\n onUpdatePanels({ ...idsRef.current })\n },\n [onUpdatePanels],\n )\n\n const updateNext = useCallback(\n (id: string | null) => {\n if (id) {\n if (idsRef.current.prev === id) {\n idsRef.current.prev = null\n }\n if (idsRef.current.curr === id) {\n idsRef.current.curr = null\n }\n }\n idsRef.current.next = id\n onUpdatePanels({ ...idsRef.current })\n },\n [onUpdatePanels],\n )\n\n const updatePrev = useCallback(\n (id: string | null) => {\n if (id) {\n if (idsRef.current.curr === id) {\n idsRef.current.curr = null\n }\n if (idsRef.current.next === id) {\n idsRef.current.next = null\n }\n }\n idsRef.current.prev = id\n onUpdatePanels({ ...idsRef.current })\n },\n [onUpdatePanels],\n )\n\n const fetchIds = useCallback(\n async (\n startBefore: string | null,\n startAfter: string | null,\n isPrefetch: boolean,\n ): Promise<string[]> => {\n if (!user && authRequired) return []\n if (!isPrefetch) setLoading(true)\n\n try {\n const data = await fetch({ limit, startAfter, startBefore })\n if (!isPrefetch) {\n const firstId = data.ids[0]\n const secondId = data.ids[1] || null\n updateCurr(firstId)\n updateNext(secondId)\n updatePrev(startAfter)\n if (startAfter) {\n setIds(s => [s[1], data.ids, null])\n } else if (startBefore) {\n setIds(s => [null, data.ids, s[1]])\n } else {\n setIds([null, data.ids, null])\n }\n const newLastId = data.ids[data.ids.length - 1]\n if (newLastId) {\n fetchIds(null, newLastId, true)\n }\n } else if (startAfter) {\n setIds(s => [s[0], s[1], data.ids])\n } else if (startBefore) {\n setIds(s => [data.ids, s[1], s[2]])\n }\n setLoading(false)\n return data.ids || []\n } catch (err: any) {\n setError(err.message)\n toast({\n title: 'Error fetching feed',\n description: err.message,\n status: 'error',\n duration: 9000,\n isClosable: true,\n })\n }\n setLoading(false)\n return []\n },\n [fetch, toast, user, authRequired, updateCurr, updateNext, updatePrev, limit],\n )\n\n // handles prefetching of next items\n const getNextId = useCallback(\n async (currIdx: number, isPrefetch: boolean): Promise<{ id: string; idx: number } | null> => {\n const currIds = ids[1] ?? []\n const nextIds = ids[2] ?? []\n const nextIdx = currIdx + 1\n if (nextIdx < currIds.length) {\n return { id: currIds[nextIdx], idx: nextIdx }\n }\n if (nextIds[0]) {\n const newLastId = nextIds[nextIds.length - 1]\n if (!isPrefetch) {\n setIds(s => [s[1], s[2], null])\n fetchIds(null, newLastId, true)\n }\n return { id: nextIds[0], idx: 0 }\n }\n const fetchedNextIds = await fetchIds(null, currIds[currIds.length - 1], isPrefetch)\n const fetchedNextId = fetchedNextIds[0]\n return fetchedNextId ? { id: fetchedNextId, idx: 0 } : null\n },\n [ids, fetchIds],\n )\n\n const getPrevId = useCallback(\n async (currIdx: number, isPrefetch: boolean): Promise<{ id: string; idx: number } | null> => {\n const currIds = ids[1] ?? []\n const prevIds = ids[0] ?? []\n const prevIdx = currIdx - 1\n if (prevIdx >= 0) {\n return { id: currIds[prevIdx], idx: prevIdx }\n }\n if (prevIds[prevIds.length - 1]) {\n const newFirstId = prevIds[0]\n if (!isPrefetch) {\n setIds([null, ids[0], ids[1]])\n fetchIds(newFirstId, null, true)\n }\n return { id: prevIds[prevIds.length - 1], idx: prevIds.length - 1 }\n }\n const fetchedPrevIds = await fetchIds(currIds[0], null, isPrefetch)\n const fetchedPrevId = fetchedPrevIds[fetchedPrevIds.length - 1]\n return fetchedPrevId ? { id: fetchedPrevId, idx: fetchedPrevIds.length - 1 } : null\n },\n [ids, fetchIds],\n )\n\n const goNext = useCallback(async () => {\n if (itemLoading) return\n // case 1: next item ID is fetched\n const newPrev = idsRef.current.curr\n\n setItemLoading(true)\n const nextIdData = await getNextId(idIdx, false)\n setDirection('next')\n if (nextIdData) {\n const { id: nextId, idx: nextIdx } = nextIdData\n fetchingId.current = nextId\n setIdIdx(nextIdx)\n updateCurr(nextId)\n updateNext(null)\n updatePrev(newPrev)\n getNextId(nextIdx, true).then(newNextId => updateNext(newNextId?.id ?? null))\n } else {\n toast({\n title: 'No more items',\n status: 'info',\n duration: 3000,\n isClosable: true,\n })\n }\n setItemLoading(false)\n }, [idIdx, getNextId, updateCurr, updateNext, updatePrev, toast, itemLoading])\n\n const goPrev = useCallback(async () => {\n if (itemLoading) return\n // case 1: next item ID is fetched\n const newNext = idsRef.current.curr\n\n setDirection('prev')\n setItemLoading(true)\n const prevIdData = await getPrevId(idIdx, false)\n if (prevIdData) {\n const { id: prevId, idx: prevIdx } = prevIdData\n fetchingId.current = prevId\n setIdIdx(prevIdx)\n updateCurr(prevId)\n updatePrev(null)\n updateNext(newNext)\n getPrevId(prevIdx, true).then(newPrevId => updatePrev(newPrevId?.id ?? null))\n } else {\n toast({\n title: 'No more items',\n status: 'info',\n duration: 3000,\n isClosable: true,\n })\n }\n setItemLoading(false)\n }, [idIdx, getPrevId, updateCurr, updateNext, updatePrev, toast, itemLoading])\n\n const refresh = useCallback(async () => {\n setLoading(true)\n setRefreshing(true)\n setIds([null, null, null])\n updateCurr(null)\n updateNext(null)\n updatePrev(null)\n setDirection(null)\n setIdIdx(0)\n await fetchIds(null, null, false)\n setRefreshing(false)\n }, [fetchIds, updateCurr, updateNext, updatePrev])\n\n const [initFetchIds] = useState(() => fetchIds)\n useEffect(() => {\n initFetchIds(null, null, false)\n }, [initFetchIds])\n\n const canGoPrev = useMemo(() => (idIdx > 0 && !!ids[1]?.length) || !!ids[0]?.length, [ids, idIdx])\n const canGoNext = useMemo(\n () => (ids[1] && idIdx < ids[1].length) ?? !!ids[2]?.length,\n [ids, idIdx],\n )\n return useMemo(\n () => ({\n ids,\n goNext,\n goPrev,\n error,\n refresh,\n refreshing,\n loading,\n canGoNext,\n direction,\n canGoPrev,\n itemLoading,\n }),\n [\n ids,\n goNext,\n goPrev,\n loading,\n error,\n itemLoading,\n canGoNext,\n canGoPrev,\n refresh,\n refreshing,\n direction,\n ],\n )\n}\n","import { Center, CenterProps } from '@chakra-ui/react'\nimport { AnyObject, WithId } from '@chem-po/core'\nimport { useObjectUrl } from '@chem-po/react'\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\nimport { LoadingLogo } from '../loading'\nimport { GetBackgroundUrl, GetBackgroundValue } from './types'\n\nconst emptyPng =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkAAIAAAoAAv/lxKUAAAAASUVORK5CYII='\nconst FillBackground = ({\n background,\n ...props\n}: Omit<CenterProps, 'background'> & { background: string | null }) => (\n <Center\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n opacity={background ? 0.7 : 0}\n transition=\"opacity 500ms\"\n right=\"0\"\n bottom=\"0\"\n zIndex={0}\n transform=\"scale(1.075)\"\n pointerEvents=\"none\"\n backgroundImage={`url(${background ?? emptyPng})`}\n backgroundSize=\"cover\"\n backgroundPosition=\"center\"\n {...props}\n filter={props.filter ?? 'blur(15px) brightness(70%)'}\n />\n)\n\ninterface FileValueBackgroundProps<T extends AnyObject = AnyObject> {\n getBackgroundValue: GetBackgroundValue<T>\n item: WithId<T> | null\n filter?: string\n}\nconst FileValueBackground = <T extends AnyObject = AnyObject>({\n getBackgroundValue,\n item,\n filter,\n}: FileValueBackgroundProps<T>) => {\n const background = useMemo(\n () => (item ? getBackgroundValue(item) : null),\n [getBackgroundValue, item],\n )\n const { loading, url } = useObjectUrl(background)\n const usedIndex = useRef(0)\n const [index, setIndex] = useState(0)\n const [url1, setUrl1] = useState<string | null>(null)\n const [url2, setUrl2] = useState<string | null>(null)\n\n useEffect(() => {\n const usedIdx = usedIndex.current\n if (usedIdx === 0) {\n setUrl1(url)\n usedIndex.current = 1\n setIndex(0)\n } else {\n setUrl2(url)\n usedIndex.current = 0\n setIndex(1)\n }\n }, [url])\n\n return (\n <Center position=\"absolute\" top=\"0\" left=\"0\" right=\"0\" bottom=\"0\" zIndex={0}>\n <FillBackground filter={filter} opacity={index === 0 ? 1 : 0} background={url1} />\n <FillBackground filter={filter} opacity={index === 1 ? 1 : 0} background={url2} />\n <LoadingLogo isLoading={loading} />\n </Center>\n )\n}\n\nconst UrlBackground = <T extends AnyObject = AnyObject>({\n getBackgroundUrl,\n item,\n filter,\n}: {\n getBackgroundUrl: GetBackgroundUrl<T>\n item: T | null\n filter?: string\n}) => {\n const background = useMemo(() => (item ? getBackgroundUrl(item) : null), [getBackgroundUrl, item])\n const usedIndex = useRef(0)\n const [index, setIndex] = useState(0)\n const [url1, setUrl1] = useState<string | null>(null)\n const [url2, setUrl2] = useState<string | null>(null)\n\n useEffect(() => {\n if (!background) return\n if (usedIndex.current === 0) {\n setUrl1(background)\n usedIndex.current = 1\n setIndex(0)\n } else {\n setUrl2(background)\n usedIndex.current = 0\n setIndex(1)\n }\n }, [background])\n\n return (\n <Center position=\"absolute\" top=\"0\" left=\"0\" right=\"0\" bottom=\"0\" zIndex={0}>\n <FillBackground filter={filter} opacity={index === 0 ? 1 : 0} background={url1} />\n <FillBackground filter={filter} opacity={index === 1 ? 1 : 0} background={url2} />\n </Center>\n )\n}\n\ninterface MediaFeedBackgroundProps<T extends AnyObject = AnyObject> {\n getBackgroundValue?: GetBackgroundValue<T>\n getBackgroundUrl?: GetBackgroundUrl<T>\n filter?: string\n item: WithId<T> | null\n}\n\nexport const MediaFeedBackground = <T extends AnyObject = AnyObject>({\n getBackgroundValue,\n getBackgroundUrl,\n ...props\n}: MediaFeedBackgroundProps<T>) => {\n if (getBackgroundValue)\n return <FileValueBackground getBackgroundValue={getBackgroundValue} {...props} />\n if (getBackgroundUrl) return <UrlBackground getBackgroundUrl={getBackgroundUrl} {...props} />\n return null\n}\n","import { RepeatIcon } from '@chakra-ui/icons'\nimport { Center } from '@chakra-ui/react'\nimport { motion, MotionValue, useSpring, useTransform } from 'framer-motion'\nimport React, { useEffect } from 'react'\nimport { CircularProgress } from '../loading/CircularProgress'\nimport { REFRESH_THRESHOLD, SWIPE_THRESHOLD } from './constants'\n\nconst WINDOW = REFRESH_THRESHOLD - SWIPE_THRESHOLD\nexport const MediaFeedRefresh = ({\n offsetY,\n refreshing,\n canRefresh,\n}: {\n offsetY: MotionValue<number>\n refreshing: boolean\n canRefresh: boolean\n}) => {\n const progress = useTransform(offsetY, v => {\n const dist = Math.max(0, v - SWIPE_THRESHOLD)\n return dist / WINDOW\n })\n const baseY = useSpring(0)\n const isIn = useSpring(0)\n useEffect(() => {\n if (refreshing) {\n baseY.set(50)\n } else {\n baseY.set(0)\n }\n }, [refreshing, baseY])\n\n useEffect(() => {\n if (canRefresh) {\n isIn.set(1)\n } else {\n isIn.set(0)\n }\n }, [isIn, canRefresh])\n\n const y = useTransform(\n () => isIn.get() * Math.min(20, Math.max(0, baseY.get() + progress.get() ** 0.5 * 20)),\n )\n const scale = useTransform(y, v => isIn.get() * Math.min(1, Math.max(0, v / 30)))\n const rotate = useTransform(() => isIn.get() * progress.get() * 180)\n return (\n <motion.div\n style={{\n opacity: scale,\n pointerEvents: 'none',\n y,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n height: 'auto',\n scale,\n rotate,\n }}>\n <Center w=\"100%\">\n <RepeatIcon\n opacity={refreshing ? 0 : 1}\n transition={`opacity 300ms ease ${!refreshing ? 300 : 0}ms`}\n w={8}\n h={8}\n color=\"white\"\n filter=\"drop-shadow(1px 1px 3px #000000aa)\"\n />\n <CircularProgress\n size={8}\n position=\"absolute\"\n isIndeterminate\n opacity={refreshing ? 1 : 0}\n transition={`opacity 300ms ease ${refreshing ? 300 : 0}ms`}\n />\n </Center>\n </motion.div>\n )\n}\n","import { Center } from '@chakra-ui/react'\nimport { AnyObject, WithId } from '@chem-po/core'\nimport { useMobileFrame } from '@chem-po/react'\nimport { useMotionValue } from 'framer-motion'\nimport React, {\n CSSProperties,\n Dispatch,\n PropsWithChildren,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { LoadingOverlay } from '../loading'\nimport { REFRESH_THRESHOLD, SWIPE_THRESHOLD } from './constants'\nimport { MediaFeedProvider } from './context'\nimport { FeedContentPane } from './FeedContentPane'\nimport { useMediaFeed } from './hooks'\nimport { MediaFeedBackground } from './MediaFeedBackground'\nimport { MediaFeedRefresh } from './MediaFeedRefresh'\nimport { MediaBackgroundRef, MediaFeedProps, PanelData, UpdatePanelsArgs } from './types'\n\nconst useUpdatePanels = (setItems: Dispatch<React.SetStateAction<Array<PanelData>>>) =>\n useCallback(\n (data: UpdatePanelsArgs) => {\n const updated: PanelData[] = []\n if (data.prev) updated.push({ status: 'prev', id: data.prev })\n if (data.curr) {\n updated.push({\n status: 'current',\n id: data.curr,\n })\n }\n if (data.next) updated.push({ status: 'next', id: data.next })\n setItems(updated)\n },\n [setItems],\n )\n\nexport const MediaFeed = <T extends AnyObject = AnyObject>({\n fetch,\n collection: collectionPath,\n RenderItem,\n authRequired,\n getBackgroundUrl,\n getBackgroundValue,\n limit,\n defaultBackground,\n swipeDisabled,\n children,\n}: PropsWithChildren<MediaFeedProps<T>>) => {\n const { width, height } = useMobileFrame()\n\n const contentRef = useRef<HTMLDivElement>(null)\n\n const containerRef = useRef<HTMLDivElement>(null)\n // const panels = useRef<Array<FeedContentPaneRef>>([])\n const [direction, setDirection] = useState<'next' | 'prev' | null>(null)\n const [panels, setPanels] = useState<Array<PanelData>>([])\n\n const offsetY = useMotionValue(0)\n const onNewData = useUpdatePanels(setPanels)\n\n const backgroundRef = useRef<MediaBackgroundRef<T>>(null)\n\n const { goNext, goPrev, loading, canGoNext, canGoPrev, refresh, refreshing } = useMediaFeed(\n fetch,\n onNewData,\n limit,\n authRequired,\n )\n\n const pointerDown = useRef(false)\n const dragStart = useRef({ x: 0, y: 0 })\n\n const onDragStart = useCallback(\n (e: React.PointerEvent) => {\n if (swipeDisabled) return\n pointerDown.current = true\n dragStart.current = { x: e.clientX, y: e.clientY }\n const dragEndListener = (ev: PointerEvent) => {\n // const oX = Math.max(-width / 4, Math.min(width / 4, ev.clientX - dragStart.current.x))\n const maxY = canGoPrev ? SWIPE_THRESHOLD : REFRESH_THRESHOLD\n const minY = canGoNext ? -SWIPE_THRESHOLD : -REFRESH_THRESHOLD\n const oY = Math.max(minY, Math.min(maxY, ev.clientY - dragStart.current.y))\n if (contentRef.current) contentRef.current.style.setProperty('pointer-events', 'auto')\n if (canGoNext && oY < -(SWIPE_THRESHOLD - 10)) {\n setDirection('next')\n goNext()\n } else if (canGoPrev && oY > SWIPE_THRESHOLD - 10) {\n setDirection('prev')\n goPrev()\n } else if (oY > REFRESH_THRESHOLD - 10 || oY < -(REFRESH_THRESHOLD - 10)) {\n refresh()\n if (backgroundRef.current) backgroundRef.current.onNewData(null)\n }\n // else if (onSwipeUp && oY < -97) {\n // onSwipeUp()\n // }\n offsetY.set(0)\n pointerDown.current = false\n window.removeEventListener('pointerup', dragEndListener)\n }\n\n window.addEventListener('pointerup', dragEndListener)\n },\n [offsetY, goNext, goPrev, canGoNext, canGoPrev, refresh, swipeDisabled],\n )\n\n const onDragMove = useCallback(\n (e: React.PointerEvent) => {\n requestAnimationFrame(() => {\n if (pointerDown.current) {\n const oX = Math.max(-10, Math.min(10, e.clientX - dragStart.current.x))\n const maxY = canGoPrev ? SWIPE_THRESHOLD : REFRESH_THRESHOLD\n const minY = canGoNext ? -SWIPE_THRESHOLD : -REFRESH_THRESHOLD\n const oY = Math.max(minY, Math.min(maxY, e.clientY - dragStart.current.y))\n\n const dist = Math.sqrt(oX ** 2 + oY ** 2)\n if (dist > 10 && contentRef.current) {\n contentRef.current.style.setProperty('pointer-events', 'none')\n }\n // offsetX.jump(oX)\n offsetY.set(oY)\n }\n })\n },\n [offsetY, canGoNext, canGoPrev],\n )\n\n const containerStyle = useMemo<CSSProperties>(\n () => ({\n height: `${height}px`,\n width: `${width}px`,\n overflow: 'hidden',\n pointerEvents: swipeDisabled ? 'none' : 'auto',\n }),\n [width, height, swipeDisabled],\n )\n const [curr, setCurr] = useState<WithId<T> | null>(null)\n\n const handleItemLoad = useCallback(\n (data: WithId<T> | null) => {\n const isCurr = panels.find(p => p.status === 'current')?.id === data?.id\n if (isCurr) setCurr(data)\n },\n [panels],\n )\n\n return (\n <MediaFeedProvider curr={curr}>\n <Center\n background={defaultBackground ?? 'background.100'}\n style={{ touchAction: 'none' }}\n userSelect=\"none\"\n position=\"relative\"\n w=\"100%\"\n h=\"100%\"\n overflow=\"hidden\"\n onPointerDown={onDragStart}\n onPointerMove={onDragMove}>\n <MediaFeedBackground\n item={curr}\n getBackgroundValue={getBackgroundValue}\n getBackgroundUrl={getBackgroundUrl}\n />\n <div ref={containerRef} style={containerStyle}>\n <Center ref={contentRef} h=\"100%\" w=\"100%\">\n {panels.map(panel => (\n <FeedContentPane<T>\n key={panel.id}\n id={panel.id}\n collectionPath={collectionPath}\n RenderItem={RenderItem}\n onItemLoad={handleItemLoad}\n status={panel.status}\n enterStatus={direction}\n offsetY={offsetY}\n />\n ))}\n </Center>\n </div>\n <MediaFeedRefresh canRefresh={!canGoPrev} refreshing={refreshing} offsetY={offsetY} />\n {/* {onSwipeUp ? <MediaFeedSwipeUp offsetY={offsetY} /> : null} */}\n <LoadingOverlay\n inFeed\n zIndex={2}\n bg=\"transparent\"\n pointerEvents=\"none\"\n isLoading={loading}\n />\n {children ? (\n <Center position=\"absolute\" bottom=\"0\" left=\"0\" right=\"0\" zIndex={3} pointerEvents=\"none\">\n {children}\n </Center>\n ) : null}\n </Center>\n </MediaFeedProvider>\n )\n}\n","import React, { PropsWithChildren, useMemo } from 'react'\nimport { useWatch } from 'react-hook-form'\nimport { ExpandOnMount } from '../box'\n\nexport const Condition = ({\n path,\n condition,\n children,\n}: PropsWithChildren<{\n path: string\n condition: (values: any) => boolean\n}>) => {\n // const { register } = useFormContext()\n // const {\n // input: { value },\n // } = useField(path ?? '', { subscription: { value: true } })\n const value = useWatch({ exact: true, name: path })\n const isVisible = useMemo(() => condition(value), [value, condition])\n\n if (!isVisible) return null\n return (\n <ExpandOnMount py=\"3px\" animateOpacity in>\n {children}\n </ExpandOnMount>\n )\n}\n","import { Checkbox, Flex, Switch, Text } from '@chakra-ui/react'\nimport { InputRef } from '@chem-po/core'\nimport { BooleanField, useBooleanFieldText } from '@chem-po/react'\nimport React, { ForwardedRef, forwardRef, useImperativeHandle } from 'react'\nimport { FieldProps } from '../types'\n\nconst BaseCheckboxComponent = (\n { field, input: { onChange, value, ...input } }: FieldProps<BooleanField>,\n ref: ForwardedRef<InputRef>,\n) => {\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n const text = useBooleanFieldText(field, value)\n return (\n <Checkbox isChecked={value} onChange={e => onChange(e.target.checked)} {...input}>\n {text}\n </Checkbox>\n )\n}\n\nconst CheckboxBooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(\n BaseCheckboxComponent,\n)\n\nconst BaseSwitchComponent = (\n { field, input: { onChange, value, ...input } }: FieldProps<BooleanField>,\n ref: ForwardedRef<InputRef>,\n) => {\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n const text = useBooleanFieldText(field, value)\n return (\n <Flex gap={1} align=\"center\">\n <Switch isChecked={value} onChange={e => onChange(e.target.checked)} {...input} />\n <Text fontWeight={600} opacity={value ? 0.9 : 0.6}>\n {text}\n </Text>\n </Flex>\n )\n}\n\nconst SwitchBooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(BaseSwitchComponent)\n\nconst BaseBooleanComponent = (props: FieldProps<BooleanField>, ref: ForwardedRef<InputRef>) => {\n if (props.field.type === 'switch') return <SwitchBooleanComponent ref={ref} {...props} />\n return <CheckboxBooleanComponent ref={ref} {...props} />\n}\n\nexport const BooleanComponent = forwardRef<InputRef, FieldProps<BooleanField>>(BaseBooleanComponent)\n","import { InputRef } from '@chem-po/core'\nimport { Ref, useImperativeHandle, useRef } from 'react'\n\nexport const useInputImperativeHandle = (\n ref: Ref<InputRef>,\n onFocus?: () => void,\n onBlur?: () => void,\n) => {\n const inputRef = useRef<HTMLInputElement>(null)\n\n useImperativeHandle(ref, () => ({\n focus: onFocus ?? (() => inputRef.current?.focus()),\n blur: onBlur ?? (() => inputRef.current?.blur()),\n }))\n return inputRef\n}\n","import { Box, BoxProps, Text, TextProps } from '@chakra-ui/react'\nimport React from 'react'\nimport './styles.css'\n\nexport const GradientText = ({\n children,\n color,\n background,\n boxProps,\n ...props\n}: TextProps & { boxProps?: BoxProps }) => (\n <Box background={background} {...boxProps}>\n <Text cursor=\"default\" className=\"gradient-text\" background={color} {...props}>\n {children}\n </Text>\n </Box>\n)\n","import {\n HStack,\n Slider,\n SliderFilledTrack,\n SliderProps,\n SliderThumb,\n SliderTrack,\n StackProps,\n Text,\n Tooltip,\n} from '@chakra-ui/react'\nimport { Gradient, gradientToCssGradientProp } from '@chem-po/core'\nimport React from 'react'\nimport { GradientText } from '../../text/GradientText'\n\nexport const InputSlider = ({\n label,\n stackProps,\n gradient,\n value,\n min,\n max,\n ...props\n}: {\n label: string\n stackProps?: StackProps\n gradient?: Gradient\n} & SliderProps) => {\n const gradientCss = gradient ? gradientToCssGradientProp(gradient) : null\n return (\n <HStack\n opacity={value !== undefined ? 1 : 0.5}\n // filter={`grayscale(${value !== undefined ? 0 : 100}%)`}\n _hover={{\n opacity: 1,\n // filter: 'grayscale(0%)',\n }}\n transition=\"all 500ms\"\n spacing={2}\n width=\"100%\"\n align=\"center\"\n {...stackProps}>\n <HStack w=\"100%\" align=\"center\">\n {min !== undefined && gradientCss ? (\n <GradientText fontSize=\"sm\" color={gradientCss}>\n {typeof min === 'number' ? min.toFixed((props?.step ?? 1) < 1 ? 2 : 0) : ''}\n </GradientText>\n ) : null}\n {min !== undefined && !gradientCss ? (\n <Text>{typeof min === 'number' ? min.toFixed((props?.step ?? 1) < 1 ? 2 : 0) : ''}</Text>\n ) : null}\n <Slider min={min} max={max} step={1} aria-label={label} flex={1} {...props}>\n <SliderTrack bg=\"gray.400\">\n <SliderFilledTrack bg={gradientCss ?? 'blackAlpha.500'} />\n </SliderTrack>\n <Tooltip\n bg=\"gray.100\"\n color=\"gray.500\"\n placement=\"top\"\n hasArrow\n label={typeof value === 'number' ? value.toFixed(0) : ''}>\n <SliderThumb width={2} height={4} />\n </Tooltip>\n </Slider>\n {max !== undefined && gradientCss ? (\n <GradientText fontSize=\"sm\" color={gradientCss}>\n {typeof max === 'number' ? max.toFixed((props?.step ?? 1) < 1 ? 2 : 0) : ''}\n </GradientText>\n ) : null}\n {max !== undefined && !gradientCss ? (\n <Text>{typeof max === 'number' ? max.toFixed((props?.step ?? 1) < 1 ? 2 : 0) : ''}</Text>\n ) : null}\n </HStack>\n </HStack>\n )\n}\n","import { Box, Center, HStack, SliderProps, StackProps, Text, VStack } from '@chakra-ui/react'\n\nimport { colorValueToHex, Gradient, gradients, InputRef } from '@chem-po/core'\nimport { ColorField } from '@chem-po/react'\nimport React, { forwardRef, useCallback, useMemo } from 'react'\nimport { useInputImperativeHandle } from '../hooks/useInputImperativeHandle'\nimport { InputSlider } from '../InputSlider'\nimport { FieldProps } from '../types'\n\nconst ColorComponentSlider = ({\n label,\n stackProps,\n gradient,\n value,\n ...props\n}: {\n label: string\n stackProps?: StackProps\n gradient: Gradient\n} & SliderProps) => (\n <InputSlider\n label={label}\n value={value}\n min={0}\n step={1}\n max={255}\n stackProps={{ width: '100%', ...stackProps }}\n gradient={gradient}\n {...props}\n />\n)\n\nexport const ColorComponent = forwardRef<InputRef, FieldProps<ColorField>>(\n ({ input: { onChange, value }, field, meta }, ref) => {\n // my colors: {r: 0, g: 0, b: 0, a: 0}\n // input colors: '#rrggbbaa'\n const { withAlpha, defaultValue } = field\n const { active } = meta || {}\n\n useInputImperativeHandle(ref)\n\n const handleChange = useCallback(\n (key: 'r' | 'g' | 'b' | 'a', val: number) => {\n if (withAlpha) {\n onChange({\n r: 0,\n g: 0,\n b: 0,\n a: 1,\n ...value,\n [key]: val,\n })\n } else {\n onChange({\n r: 0,\n g: 0,\n b: 0,\n ...value,\n [key]: val,\n })\n }\n },\n [value, onChange, withAlpha],\n )\n\n const withDefault = useMemo(() => ({ ...defaultValue, ...value }), [defaultValue, value])\n const asHex = useMemo(() => colorValueToHex(!!withAlpha, withDefault), [withDefault, withAlpha])\n return (\n <HStack w=\"100%\">\n <Box\n boxShadow=\"inset 0 0 12px rgba(255,255,255,0.4), 0 0 4px rgba(0,0,0,0.4)\"\n p={2}\n bg=\"blackAlpha.800\"\n borderRadius=\"full\">\n <Center\n transition=\"background 300ms\"\n bg={asHex}\n width=\"80px\"\n h=\"80px\"\n borderRadius=\"full\">\n <Text style={{ fontSize: '1.3rem' }}>{asHex}</Text>\n </Center>\n </Box>\n <VStack\n spacing={1}\n flex={1}\n px={2}\n align=\"flex-start\"\n borderRadius={6}\n transition=\"all 400ms\"\n boxShadow={`0 0 5px ${active ? '#ffffff' : 'transparent'}`}>\n <ColorComponentSlider\n label=\"R\"\n gradient={gradients.red}\n defaultValue={defaultValue.r}\n value={value?.r}\n onChange={updatedRed => handleChange('r', updatedRed)}\n />\n <ColorComponentSlider\n label=\"G\"\n defaultValue={defaultValue.g}\n gradient={gradients.green}\n value={value?.g}\n onChange={updatedGreen => handleChange('g', updatedGreen)}\n />\n <ColorComponentSlider\n label=\"B\"\n gradient={gradients.blue}\n defaultValue={defaultValue.b}\n value={value?.b}\n onChange={updatedBlue => handleChange('b', updatedBlue)}\n />\n {withAlpha ? (\n <ColorComponentSlider\n label=\"A\"\n gradient={gradients.midnight}\n defaultValue={1}\n value={value?.a}\n onChange={updatedAlpha => handleChange('a', updatedAlpha)}\n />\n ) : null}\n </VStack>\n </HStack>\n )\n },\n)\n","import {\n Button,\n Image,\n Popover,\n PopoverArrow,\n PopoverContent,\n PopoverTrigger,\n Portal,\n Text,\n} from '@chakra-ui/react'\nimport React, { forwardRef, useImperativeHandle, useMemo } from 'react'\nimport { DayPicker } from 'react-day-picker'\n// import 'react-day-picker/dist/style.css'\nimport { getDateString, InputRef } from '@chem-po/core'\nimport { DateField } from '@chem-po/react'\nimport { FieldProps } from '../types'\n\nconst padZeros = (n: number, digits: number) => {\n let v = `${n}`\n for (let i = v.length; i < digits; i += 1) {\n v = `0${v}`\n }\n return v\n}\nexport const parseDate = (date?: Date) =>\n date\n ? `${padZeros(date.getFullYear(), 4)}-${padZeros(date.getMonth() + 1, 2)}-${padZeros(\n date.getDate(),\n 2,\n )}`\n : undefined\nexport const DateInput = forwardRef<InputRef, FieldProps<DateField>>(\n (props: FieldProps<DateField>, ref) => {\n const {\n input,\n field: { placeholder, minDate, maxDate, optional },\n meta: { active },\n } = props\n const { onChange, value, onFocus, onBlur } = input\n const date = useMemo(() => (value ? new Date(`${value}T00:00:00.000`) : new Date()), [value])\n const disabled = useMemo(() => {\n const res: { from: Date; to: Date }[] = []\n if (minDate !== undefined) {\n res.push({\n to: minDate === 'now' ? new Date() : new Date(minDate),\n from: new Date(0),\n })\n }\n if (maxDate !== undefined) {\n res.push({\n from: maxDate === 'now' ? new Date() : new Date(maxDate),\n to: new Date(Infinity),\n })\n }\n return res\n }, [minDate, maxDate])\n\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n\n return (\n <Popover\n isOpen={active}\n onOpen={onFocus}\n onClose={onBlur}\n closeDelay={100}\n placement=\"bottom\">\n <PopoverTrigger>\n <Button\n w=\"100%\"\n fontFamily=\"Public Sans\"\n fontWeight=\"normal\"\n alignItems=\"center\"\n _hover={{ bg: '#efefef' }}\n lineHeight={1}\n variant=\"outline\">\n <Text fontSize=\"md\" height=\"16px\" align=\"left\" flex={1}>\n {value ? getDateString(value, 'short') : placeholder}\n </Text>\n <Image src=\"/svg/calendar.svg\" height=\"20px\" />\n </Button>\n </PopoverTrigger>\n <Portal>\n <PopoverContent zIndex={2} onFocus={onFocus}>\n <PopoverArrow />\n <DayPicker\n required={!optional}\n disabled={disabled}\n styles={{\n caption: {\n fontFamily: 'Public Sans',\n fontWeight: '400',\n fontSize: '0.9rem',\n color: '#555',\n },\n head: {\n fontFamily: 'Public Sans',\n },\n nav: {\n fontFamily: 'Public Sans',\n },\n }}\n modifiersStyles={{\n selected: {\n background: '#454545',\n },\n }}\n // id={name}\n mode=\"single\"\n selected={date}\n onSelect={(updated: Date | undefined) => onChange(parseDate(updated))}\n />\n </PopoverContent>\n </Portal>\n </Popover>\n )\n },\n)\n\nDateInput.displayName = 'DateInput'\n","import { Input } from '@chakra-ui/react'\nimport { InputRef } from '@chem-po/core'\nimport { TimeField } from '@chem-po/react'\nimport React, { forwardRef, useImperativeHandle } from 'react'\nimport { FieldProps } from '../types'\n// import '../input.css'\n\nexport const TimeInput = forwardRef<InputRef, FieldProps<TimeField>>(\n ({ field, input }: FieldProps<TimeField>, ref) => {\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n return (\n <Input\n fontFamily=\"Public Sans\"\n css={`\n ::-webkit-calendar-picker-indicator {\n background: url(/svg/clock.svg) center/80% no-repeat;\n color: white;\n }\n `}\n fontSize=\"md\"\n type=\"time\"\n placeholder={field.placeholder}\n {...input}\n value={input.value ?? ''}\n />\n )\n },\n)\n\nTimeInput.displayName = 'TimeInput'\n","import { HStack } from '@chakra-ui/react'\nimport { InputRef } from '@chem-po/core'\nimport { DateTimeField, FieldMeta } from '@chem-po/react'\nimport React, { forwardRef, useCallback, useImperativeHandle, useMemo, useState } from 'react'\nimport { DateInput, parseDate } from '../date'\nimport '../input.css'\nimport { TimeInput } from '../time'\nimport { FieldProps } from '../types'\n\nconst parseDateAndTime = (timestamp?: number | string) => {\n if (!timestamp) return { date: undefined, time: undefined }\n const d = new Date(timestamp)\n return { date: parseDate(d), time: d.toTimeString().substring(0, 5) }\n}\n\nexport const DateTimeInput = forwardRef<InputRef, FieldProps<DateTimeField>>(\n ({ input: { value, onBlur, onChange, onFocus } }, ref) => {\n const [{ date, time }, set] = useState<{ date?: string; time?: string }>(\n parseDateAndTime(value),\n )\n const [focusedElement, setFocused] = useState<'date' | 'time' | null>(null)\n const handleChange = useCallback(\n (type: 'date' | 'time', updated?: string) => {\n if (type === 'date') {\n set({ date: updated, time })\n if (updated && time) onChange(new Date(`${updated}T${time}`).getTime())\n } else {\n set({ time: updated, date })\n if (updated && date) {\n onChange(new Date(`${date}T${updated}:00.000`).getTime())\n }\n }\n },\n [date, time, onChange],\n )\n\n useImperativeHandle(ref, () => ({\n focus: () => {},\n blur: () => {},\n }))\n\n const meta = useMemo<FieldMeta>(\n () => ({\n active: focusedElement === 'date',\n error: undefined,\n touched: false,\n }),\n [focusedElement],\n )\n\n return (\n <HStack w=\"100%\">\n <DateInput\n field={{ _type: 'date', placeholder: 'Date' }}\n input={{\n // name: '',\n value: date,\n onChange: (dateString: string) => {\n handleChange('date', dateString)\n },\n onBlur: () => {\n setFocused(null)\n onBlur()\n },\n onFocus: () => {\n setFocused('date')\n onFocus()\n },\n }}\n meta={meta}\n />\n <TimeInput\n field={{ _type: 'time', placeholder: 'Time' }}\n input={{\n value: time,\n onChange: e => handleChange('time', e.target.value),\n onBlur: () => {\n setFocused(null)\n onBlur()\n },\n onFocus: () => {\n setFocused('time')\n onFocus()\n },\n }}\n meta={meta}\n />\n </HStack>\n )\n },\n)\n\nDateTimeInput.displayName = 'DateTimeInput'\n","import { Playlist, SpotifyTrack, WithId } from '@chem-po/core'\nimport { MotionValue } from 'framer-motion'\nimport { Howl } from 'howler'\nimport { useMemo } from 'react'\nimport { create } from 'zustand'\n\nexport type SetMediaArgs =\n | { playlist: PlaylistInterface; media?: never }\n | { media: WithId<SpotifyTrack>; playlist?: never }\nexport interface AudioPlayerApi {\n play: () => void\n pause: () => void\n goNext: () => void\n goPrev: () => void\n canGoNext: boolean\n canGoPrev: boolean\n sound: Howl | null\n trackProgress: MotionValue<number>\n seek: (to: number) => void\n setMedia: (args: SetMediaArgs) => void\n stop: () => void\n loop: (loop: boolean) => void\n}\n\nexport interface PlaylistInterface extends Playlist {\n currentId: string | null\n}\ninterface UsePlayerData {\n isPlaying: boolean\n isLoading: boolean\n fetchingMedia: WithId<SpotifyTrack> | null\n playlist: PlaylistInterface | null\n media: WithId<SpotifyTrack> | null\n repeat: boolean\n shuffle: boolean\n api: AudioPlayerApi\n volume: number\n}\n\nexport const usePlayer = create<UsePlayerData>(() => ({\n isPlaying: false,\n media: null,\n isLoading: false,\n fetchingMedia: null,\n shuffle: false,\n playlist: null,\n volume: 0.5,\n repeat: false,\n api: {\n pause: () => {},\n play: () => {},\n canGoNext: false,\n canGoPrev: false,\n goNext: () => {},\n goPrev: () => {},\n seek: () => {},\n sound: null,\n trackProgress: new MotionValue(0),\n setMedia: () => {},\n stop: () => {},\n loop: () => {},\n },\n}))\n\nexport const useActiveMedia = () => {\n const { media, playlist } = usePlayer()\n return useMemo(() => {\n if (playlist) {\n return playlist.currentId !== null\n ? (playlist.items.find(i => i.id === playlist.currentId) ?? null)\n : null\n }\n return media\n }, [playlist, media])\n}\n","import { ButtonProps, Center, IconButton, Image } from '@chakra-ui/react'\nimport { SpotifyTrack, WithId } from '@chem-po/core'\nimport { usePlaylist } from '@chem-po/react'\nimport React from 'react'\nimport { useActiveMedia, usePlayer } from '../../store/usePlayer'\n\nexport const PlayButton = ({\n media,\n size = 50,\n opacity = 0.8,\n // withThumbnail,\n buttonProps,\n}: {\n media: WithId<SpotifyTrack> | null\n size?: number\n opacity?: number\n withThumbnail?: boolean\n buttonProps?: ButtonProps\n}) => {\n const { id: mediaId } = media ?? {}\n const { playlist } = usePlaylist()\n const api = usePlayer(s => s.api)\n const playerIsPlaying = usePlayer(s => s.isPlaying)\n const playerIsLoading = usePlayer(s => s.isLoading)\n const currentMedia = useActiveMedia()\n const isPlaying = playerIsPlaying && currentMedia?.id === mediaId\n const isFetching = playerIsLoading && currentMedia?.id === mediaId\n\n return (\n <IconButton\n boxShadow=\"md\"\n p={1}\n height={`${size}px`}\n width={`${size}px`}\n minW=\"0\"\n minH=\"0\"\n borderRadius=\"full\"\n isLoading={isFetching}\n aria-label=\"play/pause\"\n onClick={e => {\n e.stopPropagation()\n if (!media) return\n if (currentMedia?.id === mediaId) {\n if (playerIsPlaying) api.pause()\n else api.play()\n } else if (playlist) {\n api.setMedia({\n playlist: {\n ...playlist,\n currentId: mediaId ?? null,\n },\n })\n } else {\n api.setMedia({ media })\n }\n }}\n style={{ background: '#eee' }}\n {...buttonProps}\n icon={\n <Center borderRadius=\"full\" height={`${size}px`} width={`${size}px`}>\n {/* {\n media ? (\n <StorageImage\n borderRadius='full'\n position='absolute'\n objectFit='cover'\n width='100%'\n height='100%'\n storagePath={`${media.storageDir}/photoFile`}\n alt={media.title}\n />\n ) : null\n } */}\n <Image\n opacity={isPlaying ? opacity : 0}\n width=\"100%\"\n transition=\"all 0.2s ease-in-out\"\n src=\"/svg/pause.svg\"\n filter=\"invert(100%) drop-shadow(0 0 4px black)\"\n transform={`scale(${isPlaying ? 0.8 : 1})`}\n />\n <Image\n position=\"absolute\"\n width=\"100%\"\n opacity={isPlaying ? 0 : opacity}\n transition=\"all 0.2s ease-in-out\"\n filter=\"invert(100%) drop-shadow(0 0 3px black)\"\n src=\"/svg/play.svg\"\n transform={`scale(${!isPlaying ? 0.8 : 1})`}\n />\n </Center>\n }\n />\n )\n}\n","import {\n Center,\n Flex,\n HStack,\n IconButton,\n Image,\n ImageProps,\n Text,\n useColorModeValue,\n VStack,\n} from '@chakra-ui/react'\nimport React, {\n ChangeEventHandler,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport { FileValue, generateId, ImageViewOptions, InputRef, WithId } from '@chem-po/core'\nimport { FileField, useImageSize, useObjectUrl } from '@chem-po/react'\nimport { useBorderColor } from '../../../hooks'\nimport { LoadingImage } from '../../loading/LoadingImage'\nimport { PlayButton } from '../../media/PlayButton'\nimport { FieldProps } from './types'\n\nconst generateAccept = (field: FileField) => {\n if (!field.accept) return undefined\n const accept: string[] = []\n if (field.accept.includes('image')) {\n accept.push('image/jpg', 'image/jpeg', 'image/png', 'image/svg', 'image/gif')\n }\n if (field.accept.includes('pdf')) accept.push('application/pdf')\n if (field.accept.includes('audio')) {\n accept.push('audio/mp3', 'audio/wav', 'audio/x-wav', 'audio/webm', 'audio/ogg')\n }\n return accept.join(',')\n}\n\nexport const AudioFileView = ({\n hasUpload,\n value,\n noLabel,\n}: {\n value: FileValue\n noLabel?: boolean\n hasUpload?: boolean\n}) => {\n const media = useMemo<WithId<any>>(\n () => ({\n id: generateId(),\n title: value.filename || 'Uploaded file',\n artistName: '',\n artistId: '',\n storageDir: '',\n producerId: '',\n songwriterId: '',\n }),\n [value],\n )\n\n return (\n <VStack>\n <HStack spacing={4}>\n <PlayButton withThumbnail media={media} />\n {hasUpload ? (\n <IconButton\n w=\"40px\"\n h=\"40px\"\n p={2}\n borderRadius=\"full\"\n boxShadow=\"0 0 4px black\"\n aria-label=\"upload\"\n icon={<Image filter=\"invert(100%)\" src=\"/svg/upload.svg\" opacity={0.8} />}\n />\n ) : null}\n </HStack>\n {!noLabel && value.filename ? (\n <Text fontSize=\"md\">{value.filename || 'Uploaded file'}</Text>\n ) : null}\n </VStack>\n )\n}\n\nconst ImageFileView = ({\n value,\n options,\n hasUpload,\n loading: loadingProp,\n}: {\n value: FileValue\n options?: ImageViewOptions\n hasUpload?: boolean\n loading?: boolean\n}) => {\n const [loaded, setLoaded] = useState(false)\n const { url, loading } = useObjectUrl(value)\n const [imageSize, setImageSize] = useState({ width: 0, height: 0 })\n const { shape, placeholder, objectFit, withFullView, background } = options ?? {}\n const {\n src: placeholderSrc,\n opacity: placeholderOpacity,\n scale: placeholderScale,\n } = placeholder ?? {}\n\n const size = useImageSize(options, imageSize)\n const { width: optWidth, height: optHeight } = size ?? {}\n\n const opacity = useMemo(() => {\n if (loaded) return url ? 1 : (placeholderOpacity ?? 0.8)\n return 0\n }, [loaded, url, placeholderOpacity])\n\n const imageProps = useMemo<ImageProps>(() => {\n if (!url) {\n return {\n width: size ? `${size.width * (placeholderScale ?? 0.9)}px` : 'auto',\n height: size ? `${size.height * (placeholderScale ?? 0.9)}px` : '80px',\n }\n }\n return {\n objectFit: objectFit ?? (loaded && shape ? 'cover' : 'contain'),\n onLoad: e => {\n setLoaded(true)\n setImageSize({\n width: e.currentTarget.naturalWidth,\n height: e.currentTarget.naturalHeight,\n })\n },\n }\n }, [url, size, placeholderScale, loaded, shape, objectFit])\n const isLoading = !!loadingProp || loading\n const width = typeof optWidth === 'number' ? `${optWidth}px` : 'auto'\n const height = typeof optHeight === 'number' ? `${optHeight}px` : '100px'\n return (\n <LoadingImage\n width={width}\n height={height}\n withFullView={!hasUpload || withFullView}\n overflow=\"hidden\"\n borderRadius={shape === 'circle' ? 'full' : 4}\n boxShadow={shape ? '1px 1px 3px #00000066' : 'none'}\n opacity={opacity}\n background={background}\n transition=\"opacity 333ms ease\"\n loadingOverride={isLoading}\n imageProps={imageProps}\n src={url ?? placeholderSrc}\n />\n )\n}\n\nconst extensionIcons: Record<string, string> = {\n txt: '/icons/description.svg',\n pdf: '/icons/pdf.svg',\n zip: '/icons/zip.svg',\n '7z': '/icons/zip.svg',\n rar: '/icons/zip.svg',\n}\n\nconst ExtensionIcon = ({ value }: { value: FileValue | null | undefined }) => {\n const extension = useMemo(() => {\n if (!value) return ''\n const parts = value.filename.split('.')\n return parts[parts.length - 1]\n }, [value])\n const icon = extensionIcons[extension]\n const filter = useColorModeValue('invert(0)', 'invert(1)')\n if (!icon) return null\n\n return <Image filter={extension !== 'pdf' ? filter : 'none'} h=\"24px\" src={icon} />\n}\n\nconst FileViewBody = ({\n value,\n noLabel,\n imageOptions,\n loading,\n hasUpload,\n}: {\n value: FileValue\n imageOptions?: ImageViewOptions\n loading?: boolean\n noLabel?: boolean\n hasUpload?: boolean\n}) => {\n const fileType = useMemo(() => value.type?.split('/')?.[0], [value])\n switch (fileType) {\n case 'image':\n return (\n <ImageFileView\n hasUpload={hasUpload}\n loading={loading}\n options={imageOptions}\n value={value}\n />\n )\n case 'audio':\n return <AudioFileView noLabel={noLabel} value={value} hasUpload={hasUpload} />\n case 'pdf':\n return <Image src=\"/icons/pdf.svg\" />\n default:\n return (\n <Flex gap={2}>\n <ExtensionIcon value={value} />\n <Text>{value.filename}</Text>\n </Flex>\n )\n }\n}\n\nconst NoFileView = ({\n hasUpload,\n imageOptions,\n}: {\n hasUpload?: boolean\n imageOptions?: ImageViewOptions\n}) => {\n const imageSize = useImageSize(imageOptions)\n const { shape, placeholder } = imageOptions ?? {}\n const {\n src: placeholderSrc,\n scale: placeholderScale,\n opacity: placeholderOpacity,\n } = placeholder ?? {}\n const { width, height } = imageSize ?? {}\n const filter = useColorModeValue('invert(0)', 'invert(1)')\n\n const bg = useColorModeValue('whiteAlpha.500', 'whiteAlpha.100')\n const borderColor = useBorderColor()\n\n const body = imageOptions ? (\n <Center\n height={shape ? `${height}px` : 'auto'}\n width={shape ? `${width}px` : 'auto'}\n bg={shape ? bg : 'transparent'}\n borderRadius={shape === 'circle' ? 'full' : 4}\n overflow=\"hidden\"\n boxShadow={shape ? '1px 1px 4px #00000055' : 'none'}>\n <Image\n filter={filter}\n opacity={placeholderOpacity}\n height={typeof height === 'number' ? `${height * (placeholderScale ?? 0.6)}px` : '50px'}\n src={placeholderSrc ?? '/icons/image.svg'}\n />\n </Center>\n ) : (\n <Text\n border=\"1px dashed\"\n borderColor={borderColor}\n p={3}\n fontSize=\"sm\"\n textAlign=\"center\"\n w=\"100%\"\n opacity={0.8}>\n {hasUpload ? 'Click to upload or drop file here' : 'No file uploaded'}\n </Text>\n )\n return (\n <Center\n width={typeof width === 'number' ? `${width}px` : 'auto'}\n height={typeof height === 'number' ? `${height}px` : 'auto'}>\n {body}\n </Center>\n )\n}\n\nexport const FileView = ({\n value,\n hasUpload,\n noLabel,\n loading,\n imageOptions,\n}: {\n value?: FileValue | null\n hasUpload?: boolean\n noLabel?: boolean\n loading?: boolean\n imageOptions?: ImageViewOptions\n}) => {\n const { storagePath, dataUrl } = value ?? {}\n\n const missingFile = useMemo(() => !dataUrl && !storagePath, [dataUrl, storagePath])\n if (!value || missingFile) {\n return <NoFileView hasUpload={hasUpload} imageOptions={imageOptions} />\n }\n return (\n <FileViewBody\n loading={loading}\n imageOptions={imageOptions}\n noLabel={noLabel}\n hasUpload={hasUpload}\n value={value}\n />\n )\n}\nexport const FileComponent = forwardRef<InputRef, FieldProps<FileField>>(\n ({ input: { value, onChange }, field }, ref) => {\n const { imageOptions } = field || {}\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = useCallback(\n e => {\n const file = e.target.files?.[0]\n if (!file) return\n if (value?.dataUrl) URL.revokeObjectURL(value.dataUrl)\n\n onChange({\n ...value,\n dataUrl: URL.createObjectURL(file),\n type: file.type,\n filename: file.name,\n })\n },\n [onChange, value],\n )\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.click()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n const isImageField = useMemo(\n () => field.accept && field.accept.length === 1 && field.accept[0] === 'image',\n [field],\n )\n const imgOptions = useMemo<ImageViewOptions | undefined>(\n () =>\n isImageField || value?.type?.startsWith('image/') || value?.type?.startsWith('video/')\n ? {\n height: 120,\n ...imageOptions,\n objectFit: 'contain',\n }\n : undefined,\n [imageOptions, isImageField, value],\n )\n return (\n <Center\n flexFlow=\"column\"\n position=\"relative\"\n cursor=\"pointer\"\n onClick={() => inputRef.current?.click()}\n width=\"100%\">\n <Text fontSize=\"sm\" opacity={0.8} mb={1}>\n {field.placeholder}\n </Text>\n <Center\n // maxW='160px'\n width=\"100%\"\n position=\"relative\"\n p={2}\n overflow=\"hidden\">\n <FileView hasUpload imageOptions={imgOptions} value={value} />\n <input\n onChange={handleChange}\n ref={inputRef}\n accept={generateAccept(field)}\n type=\"file\"\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n height: 0.1,\n width: 0.1,\n opacity: 0,\n }}\n />\n </Center>\n </Center>\n )\n },\n)\n\nFileComponent.displayName = 'FileComponent'\n","import { InputSize } from '@chem-po/core'\nimport { useBackgroundColor, useTextColor } from '@chem-po/react'\nimport { useMemo } from 'react'\n\nconst inputStyles = {\n input: {\n width: '100%',\n fontSize: '16px',\n outline: 'none',\n },\n inputXSmall: {\n padding: '4px 6px',\n borderRadius: '3px',\n },\n inputSmall: {\n padding: '6px 9px',\n borderRadius: '4px',\n },\n inputMedium: {\n padding: '8px 12px',\n borderRadius: '6px',\n },\n inputLarge: {\n padding: '10px 14px',\n borderRadius: '8px',\n },\n inputTextSmall: {\n fontSize: '14px',\n },\n inputTextMedium: {\n fontSize: '16px',\n },\n inputTextLarge: {\n fontSize: '18px',\n },\n buttonContainer: {\n display: 'flex',\n flexDirection: 'row' as const,\n alignItems: 'center',\n },\n buttonContainerSmall: {\n gap: '6px',\n },\n buttonContainerMedium: {\n gap: '8px',\n },\n buttonContainerLarge: {\n gap: '10px',\n },\n}\n\nconst iconSizeMap = {\n sm: 16,\n md: 20,\n lg: 24,\n}\n\nconst clearButtonSizeMap = {\n sm: 12,\n md: 14,\n lg: 16,\n}\n\nconst inputSizeMap = {\n sm: inputStyles.inputSmall,\n md: inputStyles.inputMedium,\n lg: inputStyles.inputLarge,\n}\n\nconst editableInputSizeMap = {\n sm: inputStyles.inputXSmall,\n md: inputStyles.inputSmall,\n lg: inputStyles.inputMedium,\n}\n\nconst inputTextSizeMap = {\n sm: inputStyles.inputTextSmall,\n md: inputStyles.inputTextMedium,\n lg: inputStyles.inputTextLarge,\n}\n\nconst buttonContainerSizeMap = {\n sm: inputStyles.buttonContainerSmall,\n md: inputStyles.buttonContainerMedium,\n lg: inputStyles.buttonContainerLarge,\n}\n\nexport interface UseInputStyles {\n text: React.CSSProperties\n container: React.CSSProperties\n size: InputSize\n iconSize: number\n clearButtonSize: number\n buttonContainer: React.CSSProperties\n}\n\nexport const useInputStyles = (\n inEditable: boolean | undefined,\n size: InputSize | undefined,\n formSize: InputSize = 'md',\n): UseInputStyles => {\n const formElementBg = useBackgroundColor(150)\n const bg = useMemo(\n () => (inEditable ? 'transparent' : formElementBg),\n [inEditable, formElementBg],\n )\n const textColor = useTextColor()\n const usedSize = size ?? formSize\n\n return {\n text: { ...inputTextSizeMap[usedSize], color: textColor },\n container: {\n ...inputStyles.input,\n ...(inEditable ? editableInputSizeMap[usedSize] : inputSizeMap[usedSize]),\n backgroundColor: bg,\n },\n size: usedSize,\n iconSize: iconSizeMap[usedSize],\n clearButtonSize: clearButtonSizeMap[usedSize],\n buttonContainer: {\n ...inputStyles.buttonContainer,\n ...buttonContainerSizeMap[usedSize],\n },\n }\n}\n","import { Box, Button, Flex, Text, useColorMode } from '@chakra-ui/react'\nimport { InputRef, RenderSelectOptionProps } from '@chem-po/core'\nimport { MultipleSelectField } from '@chem-po/react'\nimport React, { CSSProperties, forwardRef, useImperativeHandle, useMemo } from 'react'\nimport { useInputStyles } from '../hooks/useInputStyles'\nimport { FieldProps } from '../types'\n\nexport const getRenderSelectedOptionText = (\n field: MultipleSelectField,\n textStyle: CSSProperties,\n) => {\n return (\n props: RenderSelectOptionProps<\n MultipleSelectField['options'][number]['value'],\n MultipleSelectField['options'][number]\n >,\n ) => {\n const { renderOption: RenderOption } = field\n if (typeof RenderOption === 'function') {\n return <RenderOption {...props} />\n }\n return <Text style={textStyle}>{props.option.label}</Text>\n }\n}\n\nexport const MultipleSelectComponent = forwardRef<InputRef, FieldProps<MultipleSelectField>>(\n ({ field, input, inEditable, formSize }, ref) => {\n const { options, renderOption: RenderOption } = field\n const { onChange, value, onFocus, onBlur } = input\n const { text, size } = useInputStyles(inEditable, field.size, formSize)\n const { colorMode } = useColorMode()\n useImperativeHandle(ref, () => ({\n focus: () => {\n onFocus()\n },\n blur: () => {\n onBlur()\n },\n }))\n\n const RenderSelectedOptionText = useMemo(\n () => getRenderSelectedOptionText(field, text),\n [field, text],\n )\n const body = (\n <Flex w=\"100%\" flexFlow=\"row wrap\">\n {options.map(o => (\n <Box key={o.value} p={0.5}>\n <Button\n w=\"100%\"\n minH={0}\n size=\"xs\"\n p={0}\n opacity={value?.includes(o.value) ? 1 : 0.7}\n variant=\"unstyled\"\n onClick={e => {\n e.stopPropagation()\n onChange(\n value?.includes(o.value)\n ? value.filter(v => v !== o.value)\n : [...(value ?? []), o.value],\n )\n }}\n _hover={{ opacity: 0.8 }}>\n <RenderSelectedOptionText\n value={o.value}\n size={size}\n option={o}\n colorMode={colorMode}\n isSelected\n />\n </Button>\n </Box>\n ))}\n </Flex>\n )\n\n return inEditable ? (\n <Flex py={0.5} flexFlow=\"column\" w=\"100%\">\n <Text lineHeight={1} px={2} opacity={0.8} fontSize=\"sm\" fontWeight={600}>\n {field.placeholder}\n </Text>\n {body}\n </Flex>\n ) : (\n body\n )\n },\n)\n","import { Flex } from '@chakra-ui/react'\nimport React, { CSSProperties, PropsWithChildren } from 'react'\n\nexport const InputContainer = ({\n children,\n style,\n}: PropsWithChildren<{ style: CSSProperties }>) => {\n return (\n <Flex width=\"100%\" borderRadius={4} style={style}>\n {children}\n </Flex>\n )\n}\n","import { useColorModeValue } from '@chakra-ui/react'\nimport { InputRef } from '@chem-po/core'\nimport { CurrencyAmountField, NumberField } from '@chem-po/react'\nimport React, { ForwardedRef, forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport CurrencyInput from 'react-currency-input-field'\nimport { InputSlider } from '../InputSlider'\nimport { useInputImperativeHandle } from '../hooks/useInputImperativeHandle'\nimport { useInputStyles } from '../hooks/useInputStyles'\nimport { InputContainer } from '../shared/InputContainer'\nimport { FieldProps } from '../types'\nimport './styles.css'\n\nexport const NumberComponent = forwardRef<InputRef, FieldProps<NumberField> & { prefix?: string }>(\n (\n { input: { onChange, value, ...input }, field, formSize, prefix, inEditable, ...props },\n ref,\n ) => {\n const { type, defaultValue, placeholder, size } = field\n const className = useColorModeValue('number-input', 'number-input-dark')\n const { container, text } = useInputStyles(inEditable, size, formSize)\n const inputRef = useInputImperativeHandle(ref)\n const [endsWith, setEndsWith] = useState('')\n const displayed = typeof value === 'number' && !Number.isNaN(value) ? `${value}${endsWith}` : ''\n const body =\n type === 'slider' ? (\n <InputSlider\n label={placeholder}\n onChange={onChange}\n value={value}\n defaultValue={defaultValue}\n />\n ) : (\n <CurrencyInput\n className={className}\n placeholder={field.placeholder}\n decimalsLimit={field.precision}\n allowDecimals={!!field.precision}\n prefix={prefix}\n ref={inputRef}\n onValueChange={(v, _, values) => {\n if (v?.endsWith('.')) setEndsWith('.')\n else if (v?.includes('.') && v?.endsWith('0')) setEndsWith('0')\n else setEndsWith('')\n onChange(values?.float)\n }}\n value={displayed}\n {...props}\n style={{\n background: 'none',\n // height: 'auto',\n resize: 'none',\n fontFamily: 'Encode Sans',\n boxSizing: 'border-box',\n opacity: value ? 1 : 0.7,\n width: '100%',\n borderRadius: '4px',\n border: 'none',\n outline: 'none',\n ...text,\n ...props.style,\n }}\n {...input}\n />\n )\n return <InputContainer style={container}>{body}</InputContainer>\n },\n)\nconst BaseCurrencyAmountComponent = (\n { field, ...props }: FieldProps<CurrencyAmountField>,\n ref: ForwardedRef<InputRef>,\n) => {\n const inputRef = useRef<HTMLInputElement>(null)\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n return <NumberComponent prefix=\"$\" field={{ ...field, _type: 'number' }} {...props} />\n}\n\nexport const CurrencyAmountComponent = forwardRef<InputRef, FieldProps<CurrencyAmountField>>(\n BaseCurrencyAmountComponent as any,\n)\n","import { Flex, Text } from '@chakra-ui/react'\nimport { Field } from '@chem-po/react'\nimport React, { useMemo } from 'react'\n\nexport const OptionalTag = <T extends Field>({\n value,\n field,\n}: {\n field: T\n value: T['defaultValue'] | undefined | null\n}) => {\n const top = useMemo(() => {\n if (value === '' || value === undefined || value === null) return 1\n switch (field._type) {\n case 'text':\n case 'number':\n case 'select':\n case 'date':\n case 'time':\n case 'datetime':\n return -1\n default:\n return 1\n }\n }, [value, field])\n return (\n <Flex transition=\"top 300ms\" top={top} position=\"absolute\" right={3}>\n <Text fontSize=\"xs\" opacity={0.6}>\n OPTIONAL\n </Text>\n </Flex>\n )\n}\n","import {\n Button,\n Popover,\n PopoverBody,\n PopoverContent,\n PopoverTrigger,\n Text,\n useColorMode,\n} from '@chakra-ui/react'\nimport { InputRef, RenderSelectOptionProps } from '@chem-po/core'\nimport { SelectField, useBackgroundColor } from '@chem-po/react'\nimport React, { forwardRef, useImperativeHandle, useMemo } from 'react'\nimport { useInputStyles } from '../hooks/useInputStyles'\nimport { InputContainer } from '../shared/InputContainer'\nimport { FieldProps } from '../types'\n\nexport const SelectComponent = forwardRef<InputRef, FieldProps<SelectField>>(\n ({ field, input, meta, inEditable, formSize }, ref) => {\n const { placeholder, options, renderOption: customRender } = field\n const { onChange, value, onFocus, onBlur } = input\n const { text, size, container } = useInputStyles(inEditable, field.size, formSize)\n const { active } = meta\n const selected = useMemo(() => value && options.find(o => o.value === value), [value, options])\n const { colorMode } = useColorMode()\n useImperativeHandle(ref, () => ({\n focus: () => {\n onFocus()\n },\n blur: () => {\n onBlur()\n },\n }))\n const menuBg = useBackgroundColor(150)\n\n const DefaultRenderOption = (props: RenderSelectOptionProps) => {\n return <Text style={text}>{props.option.label}</Text>\n }\n\n const RenderOption = customRender ?? DefaultRenderOption\n\n return (\n <Popover strategy=\"fixed\" placement=\"bottom\" matchWidth isOpen={active} onClose={onBlur}>\n <PopoverTrigger>\n <Button\n w=\"100%\"\n onClick={e => {\n e.stopPropagation()\n onFocus()\n }}\n variant=\"unstyled\"\n position=\"relative\">\n <InputContainer style={container}>\n {selected ? (\n <RenderOption\n size={size}\n value={selected.value}\n option={selected}\n colorMode={colorMode}\n isSelected={true}\n />\n ) : (\n <Text fontWeight={400} style={text} opacity={0.6}>\n {placeholder}\n </Text>\n )}\n </InputContainer>\n </Button>\n </PopoverTrigger>\n <PopoverContent\n w=\"100%\"\n overflowY=\"auto\"\n maxH=\"300px\"\n bg={menuBg}\n border=\"none\"\n boxShadow=\"0 0 8px rgba(0, 0, 0, 0.3)\">\n <PopoverBody p={0}>\n {options.map(o => (\n <Button\n key={o.value}\n w=\"100%\"\n variant=\"unstyled\"\n onClick={e => {\n e.stopPropagation()\n onChange(o.value)\n onBlur()\n }}\n display=\"flex\"\n justifyContent=\"flex-start\"\n alignItems=\"center\"\n px={3}\n _hover={{ bg: 'blackAlpha.100' }}\n _dark={{\n _hover: { bg: 'whiteAlpha.100' },\n }}>\n <RenderOption\n value={o.value}\n option={o}\n size={size}\n colorMode={colorMode}\n isSelected={o.value === value}\n />\n </Button>\n ))}\n </PopoverBody>\n </PopoverContent>\n </Popover>\n )\n },\n)\n","import {\n Center,\n Collapse,\n HStack,\n Image,\n Input,\n Popover,\n PopoverBody,\n PopoverContent,\n PopoverTrigger,\n Text,\n VStack,\n} from '@chakra-ui/react'\n\nimport { getHandle, InputRef, SocialMediaSites } from '@chem-po/core'\nimport { SocialMediaField } from '@chem-po/react'\nimport React, {\n FC,\n ForwardedRef,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useMemo,\n} from 'react'\nimport { FieldProps } from '../types'\n\nconst facebookLogo = '/icons/facebook.svg'\nconst instagramLogo = '/icons/instagram.svg'\nconst soundcloudLogo = '/icons/soundcloud.svg'\nconst twitterLogo = '/icons/twitter.svg'\nconst youtubeLogo = '/icons/youtube.svg'\n\nconst siteToIcon: Record<SocialMediaSites, any> = {\n facebook: facebookLogo,\n instagram: instagramLogo,\n twitter: twitterLogo,\n youtube: youtubeLogo,\n soundcloud: soundcloudLogo,\n}\n\nconst SocialMediaSiteInput: FC<{\n site: SocialMediaSites\n value?: string\n onChange: (v?: string) => void\n}> = ({ site, value, onChange }) => {\n const { handle, error } = useMemo(() => {\n try {\n const h = getHandle(site, value)\n return { handle: h }\n } catch (e: any) {\n return { error: e?.message ?? 'Error parsing handle' }\n }\n }, [value, site])\n const displayedText = useMemo(\n () => (handle ? `${site.toUpperCase()}: ${handle}` : site.toUpperCase()),\n [site, handle],\n )\n return (\n <Popover trigger=\"hover\">\n <PopoverTrigger>\n <Center opacity={handle ? 1 : 0.6} borderRadius=\"full\" width=\"34px\" height=\"34px\">\n <Image\n cursor=\"pointer\"\n filter={`grayscale(${handle ? 0 : 100}%)`}\n height=\"24px\"\n width=\"24px\"\n objectFit=\"contain\"\n src={siteToIcon[site]}\n />\n </Center>\n </PopoverTrigger>\n <PopoverContent w=\"auto\">\n <PopoverBody overflow=\"hidden\" borderRadius={4} p={0} w=\"auto\">\n <VStack spacing={0} p={2} w=\"300px\" align=\"flex-start\">\n <Text fontSize=\"md\">{displayedText}</Text>\n\n <Collapse in={!!error} style={{ width: '100%' }}>\n <Text px={1} bg=\"red.500\" fontSize=\"sm\" color=\"white\">\n {error}\n </Text>\n </Collapse>\n <Input\n onChange={e => onChange(e.target.value)}\n placeholder=\"Handle or URL\"\n width=\"100%\"\n value={value}\n size=\"md\"\n />\n </VStack>\n </PopoverBody>\n </PopoverContent>\n </Popover>\n )\n}\nexport const SocialMediaComponent = forwardRef<InputRef, FieldProps<SocialMediaField>>(\n (props: FieldProps<SocialMediaField>, ref: ForwardedRef<InputRef>) => {\n const {\n input: { value, onChange },\n field: { sites },\n } = props\n const handleChange = useCallback(\n (site: SocialMediaSites, v?: string) => {\n const { [site]: _curr, ...rest } = value ?? {}\n if (!v && Object.keys(rest).length === 0) {\n onChange({ target: { value: undefined } })\n }\n if (!v) onChange(rest)\n onChange({ ...rest, [site]: v })\n },\n [onChange, value],\n )\n\n useImperativeHandle(ref, () => ({\n blur: () => {},\n focus: () => {},\n }))\n\n return (\n <VStack w=\"100%\" p={1}>\n <VStack borderRadius={4} p={2} spacing={0} w=\"100%\">\n <Text fontSize=\"md\">Links</Text>\n <HStack>\n {!sites || sites.facebook ? (\n <SocialMediaSiteInput\n onChange={v => handleChange('facebook', v)}\n site=\"facebook\"\n value={value?.facebook}\n />\n ) : null}\n {!sites || sites.instagram ? (\n <SocialMediaSiteInput\n onChange={v => handleChange('instagram', v)}\n site=\"instagram\"\n value={value?.instagram}\n />\n ) : null}\n {!sites || sites.twitter ? (\n <SocialMediaSiteInput\n onChange={v => handleChange('twitter', v)}\n site=\"twitter\"\n value={value?.twitter}\n />\n ) : null}\n {!sites || sites.youtube ? (\n <SocialMediaSiteInput\n onChange={v => handleChange('youtube', v)}\n site=\"youtube\"\n value={value?.youtube}\n />\n ) : null}\n {!sites || sites.soundcloud ? (\n <SocialMediaSiteInput\n onChange={v => handleChange('soundcloud', v)}\n site=\"soundcloud\"\n value={value?.soundcloud}\n />\n ) : null}\n </HStack>\n </VStack>\n </VStack>\n )\n },\n)\n\nSocialMediaComponent.displayName = 'SocialMediaComponent'\n","import { InputRef } from '@chem-po/core'\nimport { TextField, useTextColor } from '@chem-po/react'\nimport React, { ForwardedRef, forwardRef, useImperativeHandle, useRef } from 'react'\nimport TextareaAutosize from 'react-textarea-autosize'\nimport { FieldProps } from '../types'\n\nexport const TextAreaComponent = forwardRef<InputRef, FieldProps<TextField>>(\n ({ input, field, inEditable }, ref: ForwardedRef<InputRef>) => {\n const textColor = useTextColor()\n const inputRef = useRef<HTMLTextAreaElement>(null)\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n return (\n <TextareaAutosize\n placeholder={field.placeholder}\n minRows={2}\n maxRows={5}\n ref={inputRef}\n style={{\n // height: 'auto',\n resize: 'none',\n width: '100%',\n color: textColor,\n background: 'none',\n fontFamily: 'fonts.body',\n boxSizing: 'border-box',\n borderRadius: '4px',\n border: 'none',\n outline: 'none',\n }}\n {...input}\n />\n )\n },\n)\n\nTextAreaComponent.displayName = 'TextAreaComponent'\n","import { ViewIcon, ViewOffIcon } from '@chakra-ui/icons'\nimport { IconButton, Input } from '@chakra-ui/react'\nimport { InputRef } from '@chem-po/core'\nimport { TextField } from '@chem-po/react'\nimport React, { forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport { useInputStyles } from '../hooks'\nimport { InputContainer } from '../shared/InputContainer'\nimport { FieldProps } from '../types'\nimport { TextAreaComponent } from './textarea'\n\nexport const TextComponent = forwardRef<InputRef, FieldProps<TextField>>(\n ({ input, inEditable, meta, field, formSize }, ref) => {\n const { placeholder, type } = field\n const [isHidden, setIsHidden] = useState(type === 'password')\n const { text, container } = useInputStyles(inEditable, field.size, formSize)\n const { value } = input\n const inputRef = useRef<HTMLInputElement | HTMLTextAreaElement>(null)\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n blur: () => {\n inputRef.current?.blur()\n },\n }))\n const body =\n type === 'textarea' ? (\n <TextAreaComponent inEditable={inEditable} field={field} input={input} meta={meta} />\n ) : (\n <Input\n ref={inputRef as any}\n border=\"none\"\n _dark={{\n border: 'none',\n }}\n borderRadius={0}\n background=\"transparent\"\n _focus={{\n border: 'none',\n boxShadow: 'none',\n }}\n py={0}\n px={0}\n height=\"auto\"\n outline=\"none\"\n type={isHidden ? 'password' : 'text'}\n placeholder={placeholder}\n style={text}\n {...input}\n onChange={e => {\n input.onChange({ target: { value: e.target.value } })\n }}\n value={value ?? ''}\n />\n )\n\n return (\n <InputContainer style={container}>\n {body}\n {type === 'password' && (\n <IconButton\n position=\"absolute\"\n right={2}\n onClick={() => setIsHidden(!isHidden)}\n variant=\"ghost\"\n icon={isHidden ? <ViewIcon /> : <ViewOffIcon />}\n aria-label={isHidden ? 'show' : 'hide'}\n title={isHidden ? 'Show' : 'Hide'}\n size=\"xs\"\n />\n )}\n </InputContainer>\n )\n },\n)\n\nTextComponent.displayName = 'TextComponent'\n","import { Flex, FlexProps, Text, VStack } from '@chakra-ui/react'\nimport { FieldType, InputRef } from '@chem-po/core'\nimport { Field, TypedField } from '@chem-po/react'\nimport React, { ForwardedRef, forwardRef, ForwardRefExoticComponent, useMemo } from 'react'\nimport { BooleanComponent } from './boolean'\nimport { ColorComponent } from './color'\nimport { DateInput } from './date'\nimport { DateTimeInput } from './datetime'\nimport { FileComponent } from './file'\nimport { MultipleSelectComponent } from './multipleSelect'\nimport { CurrencyAmountComponent, NumberComponent } from './number'\nimport { OptionalTag } from './OptionalTag'\nimport { SelectComponent } from './select'\nimport { SocialMediaComponent } from './socialMedia'\nimport { TextComponent } from './text'\nimport { TimeInput } from './time'\nimport { FieldProps } from './types'\n\ntype ComponentType<T extends Field> = ForwardRefExoticComponent<\n FieldProps<T> & React.RefAttributes<InputRef>\n>\n\nconst Components: { [Key in FieldType]: ComponentType<TypedField<Key>> } = {\n text: TextComponent,\n file: FileComponent,\n boolean: BooleanComponent,\n select: SelectComponent,\n multipleSelect: MultipleSelectComponent,\n currency: CurrencyAmountComponent,\n number: NumberComponent,\n date: DateInput,\n datetime: DateTimeInput,\n time: TimeInput,\n socialMedia: SocialMediaComponent,\n color: ColorComponent,\n}\n\nconst InputBase = <T extends Field>(props: FieldProps<T>, ref: ForwardedRef<InputRef>) => {\n const {\n field,\n meta: { error, active, touched },\n input,\n inEditable,\n } = props\n\n const { value } = input\n\n const color = useMemo(() => {\n if (error && touched) return '#ff7777'\n if (active) return 'rgba(0,0,0,0.7)'\n return 'rgba(0,0,0,0.3)'\n }, [error, active, touched])\n const { _type, optional, label: Label } = field\n const showPlaceholder = useMemo(\n () => _type === 'multipleSelect' || (!!value && _type !== 'file' && _type !== 'boolean'),\n [value, _type],\n )\n const styles = useMemo<FlexProps>(() => {\n if (inEditable) return {}\n switch (_type) {\n case 'text':\n case 'number':\n case 'currency':\n case 'select':\n return { boxShadow: `0 0 7px ${color}`, transition: 'all 300ms' }\n default:\n return {}\n }\n }, [_type, color, inEditable])\n const Component = useMemo(() => Components[_type] as ComponentType<T>, [_type])\n\n const pb = useMemo(() => {\n if (inEditable) return 0\n return error && touched ? 6 : 2\n }, [inEditable, error, touched])\n return (\n <VStack\n position=\"relative\"\n align=\"flex-start\"\n width=\"100%\"\n py={inEditable ? 0 : 1}\n px={1}\n spacing={0}\n pb={pb}\n transition=\"all 500ms\"\n pt={showPlaceholder && !inEditable ? 5 : 0}>\n {Label && !inEditable ? (\n typeof Label === 'string' ? (\n <Text color=\"gray.800\" fontSize=\"sm\" px={2}>\n {Label}\n </Text>\n ) : (\n <Label />\n )\n ) : null}\n <Flex width=\"100%\" borderRadius={4} overflow=\"hidden\" {...styles}>\n <Component ref={ref} {...props} />\n </Flex>\n {inEditable ? null : (\n <>\n <Text\n opacity={error && touched ? 1 : 0}\n transition={`opacity 500ms ease ${error && touched ? 250 : 0}ms`}\n position=\"absolute\"\n bottom=\"0px\"\n fontSize=\"sm\"\n px={1}\n pointerEvents=\"none\"\n color=\"red.600\">\n {error}\n </Text>\n <Text\n opacity={showPlaceholder ? 1 : 0}\n transition={`opacity 500ms ease ${showPlaceholder ? 250 : 0}ms`}\n position=\"absolute\"\n top=\"-5px\"\n pointerEvents=\"none\"\n fontSize=\"sm\"\n fontFamily=\"fonts.heading\"\n px={1}\n color=\"blackAlpha.600\"\n _dark={{\n color: 'whiteAlpha.600',\n }}>\n {field.placeholder || ''}\n </Text>\n </>\n )}\n {optional && !inEditable ? <OptionalTag field={field} value={value} /> : null}\n </VStack>\n )\n}\n\nexport const Input = forwardRef<InputRef, FieldProps<Field>>(InputBase)\n","import { InputRef } from '@chem-po/core'\nimport React, { ForwardedRef, forwardRef } from 'react'\n\nimport { Field, useField } from '@chem-po/react'\nimport { ChangeHandler, Controller } from 'react-hook-form'\nimport { Input } from './input/input'\n\nconst FieldComponentBase = (\n { field, name }: { field: Field; name: string },\n ref: ForwardedRef<InputRef>,\n) => {\n const { control, getOnChange, meta, onFocus, onBlur: fieldBlur } = useField(name, field)\n return (\n <Controller<Field['defaultValue']>\n control={control}\n name={name}\n render={({ field: { name: _, ref: _r, onBlur, ...inputProps } }) => {\n return (\n <Input\n ref={ref}\n field={field}\n input={{\n ...inputProps,\n onFocus,\n onBlur: () => {\n fieldBlur()\n onBlur()\n },\n onChange: getOnChange(inputProps.onChange as ChangeHandler),\n }}\n meta={meta}\n />\n )\n }}\n />\n )\n}\n\nexport const FieldComponent = forwardRef(FieldComponentBase)\n","import { Center, Flex, Progress, Text } from '@chakra-ui/react'\nimport { UploadsState } from '@chem-po/core'\nimport React, { useMemo } from 'react'\nimport { TransitionGroup } from 'react-transition-group'\nimport { ExpandOnMount } from '../../box'\nimport './styles.css'\n\nexport const UploadProgress = ({ uploads }: { uploads: UploadsState }) => {\n const asArr = useMemo(() => Object.values(uploads), [uploads])\n return (\n <TransitionGroup component={Flex} width=\"100%\" flexFlow=\"column\">\n {asArr.map(upload => (\n <ExpandOnMount key={upload.label}>\n <Center px={2} height=\"26px\" position=\"relative\" w=\"100%\" flexDirection=\"column\">\n <Progress\n borderRadius=\"full\"\n value={upload.percent * 100}\n mx={2}\n my={1}\n size=\"md\"\n height=\"100%\"\n width=\"100%\"\n />\n <Text\n fontFamily=\"fonts.heading\"\n textShadow=\"1px 1px 3px #000000aa\"\n color=\"white\"\n position=\"absolute\"\n fontSize=\"sm\"\n fontWeight={500}>\n {upload.label.toUpperCase()}\n </Text>\n </Center>\n </ExpandOnMount>\n ))}\n </TransitionGroup>\n )\n}\n","import { Button, ButtonProps, Collapse, Flex, HStack, Progress, Text } from '@chakra-ui/react'\nimport React from 'react'\n\nimport { FC, PropsWithChildren } from 'react'\n\nimport {\n FormProps,\n IFormElement,\n useBorderColor,\n useChempoForm,\n UseFormSubmit,\n} from '@chem-po/react'\nimport { useFormState } from 'react-hook-form'\nimport { UploadProgress } from './UploadProgress'\n\nconst CancelButton = ({ onBack, children }: PropsWithChildren<{ onBack: () => void }>) => (\n <Button\n flex={1}\n transition=\"all 500ms\"\n onClick={onBack}\n variant=\"outline\"\n border=\"1px solid #cdcdcd\"\n color=\"#777\"\n ml=\"auto\">\n {children}\n </Button>\n)\n\nexport const SubmitButton: FC<\n { onSubmitClick: () => Promise<void>; submitting: boolean } & ButtonProps\n> = ({ onSubmitClick, submitting, children, filter, opacity }) => (\n <Button\n isLoading={submitting}\n filter={filter}\n flex={1}\n transition=\"all 500ms\"\n opacity={opacity}\n onClick={() => {\n onSubmitClick()\n }}\n ml=\"auto\"\n variant=\"solid\">\n {children}\n </Button>\n)\n\nconst FormErrorView = () => {\n const { formError } = useChempoForm()\n return (\n <Collapse in={!!formError}>\n <Text color=\"red\">{formError ?? ''}</Text>\n </Collapse>\n )\n}\n\nexport const FormFooter = <F extends IFormElement>({\n renderFooter: RenderFooter,\n ...props\n}: Pick<FormProps<F>, 'renderFooter' | 'onBack' | 'buttonText'> &\n Pick<UseFormSubmit, 'uploads'> & {\n onSubmit: () => Promise<void>\n }) => {\n const { uploads, onBack, buttonText, onSubmit } = props\n const { isSubmitting: submitting, isValid: valid } = useFormState()\n const borderColor = useBorderColor()\n return (\n <Flex w=\"100%\" flexFlow=\"column\">\n <Collapse endingHeight={5} style={{ width: '100%' }} in={submitting}>\n <Progress w=\"100%\" h=\"5px\" isIndeterminate />\n </Collapse>\n <UploadProgress uploads={uploads} />\n <FormErrorView />\n {RenderFooter ? (\n <RenderFooter {...props} />\n ) : (\n <HStack py={2} borderTop=\"1px solid\" borderColor={borderColor} px={3} w=\"100%\">\n {onBack ? <CancelButton onBack={onBack}>Cancel</CancelButton> : null}\n <SubmitButton\n size=\"sm\"\n filter={`grayscale(${!valid ? 100 : 0}%)`}\n opacity={!valid ? 0.5 : 1}\n onSubmitClick={onSubmit}\n submitting={submitting}>\n {buttonText}\n </SubmitButton>\n </HStack>\n )}\n </Flex>\n )\n}\n","import { Box, Flex, Text } from '@chakra-ui/react'\nimport { ImageViewOptions } from '@chem-po/core'\nimport { FileField } from '@chem-po/react'\nimport React, { useMemo } from 'react'\nimport { ExpandOnMount } from '../../box/ExpandOnMount'\nimport { FileView } from '../input/file'\nimport { FieldViewProps } from './types'\n\nexport const FileFieldView = ({ field, value, noLabel, style }: FieldViewProps<FileField>) => {\n const { imageOptions, placeholder } = field\n const options = useMemo<ImageViewOptions>(\n () => ({\n height: 150,\n ...imageOptions,\n }),\n [imageOptions],\n )\n return (\n <Flex flexFlow={value ? 'column' : 'row'} style={style}>\n {noLabel ? null : (\n <Text pr={2} opacity={0.7} fontWeight={600}>\n {placeholder}\n </Text>\n )}\n {value ? (\n <ExpandOnMount>\n <Box p={1}>\n <FileView imageOptions={options} value={value} />\n </Box>\n </ExpandOnMount>\n ) : (\n <Text opacity={0.7}>None</Text>\n )}\n </Flex>\n )\n}\n","import { Box, Text } from '@chakra-ui/react'\n\nimport { Flex, useColorMode } from '@chakra-ui/react'\nimport { MultipleSelectField } from '@chem-po/react'\nimport React, { useMemo } from 'react'\nimport { useInputStyles } from '../input/hooks/useInputStyles'\nimport { getRenderSelectedOptionText } from '../input/multipleSelect'\nimport { FieldViewProps } from './types'\n\nexport const MultipleSelectFieldView = <F extends MultipleSelectField>({\n field,\n value,\n noLabel,\n style,\n}: FieldViewProps<F>) => {\n const { placeholder, options } = field\n const { size, text } = useInputStyles(undefined, field.size)\n const selectedOptions = useMemo(\n () => options.filter(o => value?.includes(o.value)),\n [value, options],\n )\n const RenderSelectedOptionText = useMemo(\n () => getRenderSelectedOptionText(field, text),\n [field, text],\n )\n const { colorMode } = useColorMode()\n return (\n <Flex maxW=\"100%\" flexFlow=\"row wrap\" align=\"center\" style={style}>\n {noLabel ? null : (\n <Text pr={2} opacity={0.7} fontWeight={600}>\n {placeholder}\n </Text>\n )}\n {selectedOptions.length ? (\n selectedOptions.map(o => (\n <Box key={o.value} p={0.5}>\n <RenderSelectedOptionText\n value={o.value}\n option={o}\n colorMode={colorMode}\n isSelected={true}\n size={size}\n />\n </Box>\n ))\n ) : (\n <Text opacity={0.6}>None</Text>\n )}\n </Flex>\n )\n}\n","import { Flex, Text, useColorMode } from '@chakra-ui/react'\nimport { SelectField } from '@chem-po/react'\nimport React from 'react'\nimport { useInputStyles } from '../input/hooks/useInputStyles'\nimport { FieldViewProps } from './types'\n\nconst stringifyValue = (value: any) => {\n if (typeof value === 'string') return value\n if (typeof value === 'number') return value.toString()\n if (typeof value === 'boolean') return value.toString()\n return JSON.stringify(value)\n}\nconst DefaultRenderOption = (value: any) => {\n // TODO: maybe handle non-string values more gracefully\n return <Text>{stringifyValue(value)}</Text>\n}\n\nexport const SelectFieldView = <F extends SelectField>({\n field,\n value,\n noLabel,\n style,\n size: propSize,\n}: FieldViewProps<F>) => {\n const { placeholder, renderOption: customRender } = field\n const { colorMode } = useColorMode()\n const { size } = useInputStyles(undefined, field.size, propSize)\n const selectedOption = field.options.find(o => o.value === value)\n const RenderOption = customRender ?? DefaultRenderOption\n return (\n <Flex align=\"center\" style={style}>\n {noLabel ? null : (\n <Text pr={2} opacity={0.7} fontWeight={600}>\n {placeholder}\n </Text>\n )}\n {value && selectedOption ? (\n <RenderOption\n value={value}\n option={selectedOption}\n colorMode={colorMode}\n isSelected={true}\n size={size}\n />\n ) : (\n <Text>None</Text>\n )}\n </Flex>\n )\n}\n","import { Flex, Text } from '@chakra-ui/react'\n\nimport { formatField } from '@chem-po/core'\nimport { Field, FormatField } from '@chem-po/react'\nimport React, { CSSProperties, useMemo } from 'react'\nimport { FileFieldView } from './file'\nimport { MultipleSelectFieldView } from './multipleSelect'\nimport { SelectFieldView } from './select'\nimport { FieldViewProps } from './types'\n\nconst DefaultFieldView = <F extends Field>({ field, value, noLabel, style }: FieldViewProps<F>) => {\n const { placeholder } = field\n\n const formatted = useMemo(() => {\n const format = formatField[field._type] as FormatField<F>\n if (!format) return value\n return format(field, value)\n }, [value, field])\n return (\n <Flex align=\"center\" style={style}>\n {noLabel ? null : (\n <Text pr={2} opacity={0.7} fontWeight={600}>\n {placeholder}\n </Text>\n )}\n <Text opacity={value !== undefined && value !== null ? 1 : 0.6}>{formatted ?? 'None'}</Text>\n </Flex>\n )\n}\n\nexport const FieldView = ({\n field,\n value,\n noLabel,\n style,\n}: {\n field: Field\n value: any\n noLabel?: boolean\n style?: CSSProperties\n}) => {\n switch (field._type) {\n case 'select':\n return <SelectFieldView style={style} field={field} value={value} noLabel={noLabel} />\n case 'multipleSelect':\n return <MultipleSelectFieldView style={style} field={field} value={value} noLabel={noLabel} />\n case 'file':\n return <FileFieldView style={style} field={field} value={value} noLabel={noLabel} />\n default:\n return <DefaultFieldView style={style} field={field} value={value} noLabel={noLabel} />\n }\n}\n","import { InputRef } from '@chem-po/core'\nimport { Field, useStandaloneInput } from '@chem-po/react'\nimport React, { CSSProperties, ForwardedRef, forwardRef } from 'react'\nimport { Input } from './input'\n\nconst StandaloneInputBase = (\n {\n onChange,\n value,\n field,\n onBlur,\n inEditable,\n onFocus,\n style,\n }: {\n onChange: (v?: any) => void\n value?: any\n field: Field\n onBlur?: () => void\n onFocus?: () => void\n theme?: 'basic' | 'detailed'\n inEditable?: boolean\n style?: CSSProperties\n },\n ref: ForwardedRef<InputRef>,\n) => {\n const { inputProps, meta } = useStandaloneInput(field, value, onChange, onFocus, onBlur)\n\n return (\n <Input\n ref={ref}\n field={field}\n inEditable={inEditable}\n style={style}\n input={inputProps}\n meta={meta}\n />\n )\n}\n\nexport const StandaloneInput = forwardRef(StandaloneInputBase)\n","import { CheckIcon, CloseIcon, EditIcon } from '@chakra-ui/icons'\nimport { Flex, IconButton } from '@chakra-ui/react'\nimport { palette } from '@chem-po/core'\nimport {\n CustomEditableViewProps,\n EditableProps,\n Field,\n useColorModeValue,\n useEditable,\n} from '@chem-po/react'\nimport React, { CSSProperties, useCallback, useEffect } from 'react'\nimport { CustomInputProps } from '../../../types/forms'\nimport { LoadingOverlay } from '../../loading/Loading'\nimport { UploadProgress } from '../UploadProgress'\nimport { FieldView } from '../view'\nimport { StandaloneInput } from './StandaloneInput'\n\nexport const Editable = <T extends Field>({\n value: initValue,\n field,\n onSubmit,\n storagePath,\n style,\n onEditClose,\n onEditOpen,\n CustomInput,\n CustomView,\n containerStyle,\n size,\n}: EditableProps<CSSProperties, CSSProperties, T>) => {\n const {\n inputRef,\n onChange,\n isLoading,\n uploads,\n editHovered,\n handleEditOpen,\n handleEditClose,\n isEditing,\n value,\n setEditHovered,\n shouldSubmitOnChange,\n submit,\n submitValue,\n } = useEditable({\n value: initValue,\n field,\n onSubmit,\n storagePath,\n onEditOpen,\n onEditClose,\n })\n\n useEffect(() => {\n if (isEditing) {\n inputRef.current?.focus()\n }\n }, [isEditing, inputRef])\n\n const editingBorderColor = useColorModeValue('#00000055', '#ffffff55')\n\n const RenderInput = useCallback(\n (props: CustomInputProps<T['defaultValue']>) => {\n if (CustomInput) {\n return <CustomInput {...props} />\n }\n if (!field) throw new Error('Editable component must have a field OR a CustomInput')\n return <StandaloneInput field={field} {...props} />\n },\n [CustomInput, field],\n )\n\n const RenderView = useCallback(\n (props: CustomEditableViewProps<T['defaultValue']>) => {\n if (CustomView) {\n return <CustomView {...props} />\n }\n if (!field) throw new Error('Editable component must have a field OR a CustomView')\n return <FieldView style={style} field={field} value={value} {...props} />\n },\n [CustomView, field, style, value],\n )\n\n return (\n <Flex\n borderRadius={4}\n border={`1px dashed ${editHovered && !isEditing ? editingBorderColor : 'transparent'}`}\n flexFlow=\"column\"\n w=\"100%\"\n style={containerStyle}>\n <Flex align=\"center\" px={1} position=\"relative\" w=\"100%\">\n <Flex\n opacity={isLoading ? 0 : 1}\n transition=\"all 300ms\"\n mr={1}\n border={`1px dashed ${isEditing ? editingBorderColor : 'transparent'}`}\n flex={1}\n minW=\"0\">\n {isEditing || shouldSubmitOnChange ? (\n <RenderInput\n ref={inputRef}\n value={value}\n inEditable\n style={{ padding: 0, ...style }}\n size={size}\n onChange={shouldSubmitOnChange ? v => void submitValue(v) : onChange}\n inputStyle={style}\n />\n ) : (\n <RenderView inEditable size={size} value={value} />\n )}\n </Flex>\n {shouldSubmitOnChange ? null : (\n <>\n <IconButton\n aria-label=\"Edit\"\n size=\"xs\"\n icon={isEditing ? <CloseIcon width={3} /> : <EditIcon />}\n onMouseEnter={() => setEditHovered(true)}\n onMouseLeave={() => setEditHovered(false)}\n onClick={() => {\n if (isEditing) {\n onChange(value)\n handleEditClose()\n } else handleEditOpen()\n }}\n />\n <Flex\n transition=\"all 300ms\"\n justify=\"flex-end\"\n opacity={isEditing ? 1 : 0}\n overflow=\"hidden\"\n w={isEditing ? '30px' : '0px'}>\n <IconButton\n aria-label=\"Edit\"\n size=\"xs\"\n bg={palette.cyan.light}\n _dark={{ bg: palette.cyan.light, _hover: { bg: palette.cyan.lighter } }}\n _hover={{\n bg: palette.cyan.medium,\n }}\n icon={<CheckIcon filter=\"drop-shadow(1px 1px 3px #000000aa)\" />}\n onClick={() => {\n submit()\n }}\n />\n </Flex>\n </>\n )}\n <LoadingOverlay isLoading={isLoading} />\n </Flex>\n <UploadProgress uploads={uploads} />\n </Flex>\n )\n}\n","import { CloseIcon, DeleteIcon, DragHandleIcon, EditIcon } from '@chakra-ui/icons'\nimport {\n Box,\n Button,\n Flex,\n IconButton,\n Stack,\n Text,\n useColorModeValue,\n VStack,\n} from '@chakra-ui/react'\nimport { isField, isListField } from '@chem-po/core'\nimport {\n ChempoFormProvider,\n DataViewProps,\n DataViewProvider,\n Field,\n FieldFormProps,\n FieldMap,\n FieldMapFormProps,\n FormOnSubmit,\n FormProps,\n IFormElement,\n ListField,\n useDataView,\n useFormSubmit,\n UseFormSubmitProps,\n useGetItemField,\n} from '@chem-po/react'\nimport { DragDropContext, Draggable, Droppable, DropResult } from '@hello-pangea/dnd'\nimport React, { FC, useMemo, useState } from 'react'\nimport { useFieldArray, UseFieldArrayMove, useFormContext } from 'react-hook-form'\nimport { useBorderColor } from '../../hooks'\nimport { Expandable } from '../box'\nimport { ExpandOnMount } from '../box/ExpandOnMount'\nimport { DeleteButton } from '../button/DeleteButton'\nimport { Condition } from './Condition'\nimport { FieldComponent } from './Field'\nimport { FormFooter } from './FormFooter'\nimport { Editable } from './input/Editable'\nimport { FieldView } from './view'\n\nconst makeOnDragEndFunction = (move: UseFieldArrayMove) => (result: DropResult) => {\n // dropped outside the list\n if (!result.destination) {\n return\n }\n\n move(result.source.index, result.destination.index)\n}\n\nexport const ListFieldInput: FC<{ field: ListField; name: string }> = ({ field, name }) => {\n const emptyData = useMemo(() => {\n if (isField(field.itemField)) return ''\n if (isListField(field.itemField)) return []\n return {}\n }, [field])\n const draggingBg = useColorModeValue('#efefef', '#2b2b2b')\n const borderColor = useBorderColor()\n const { control } = useFormContext()\n const { fields, append, remove, move } = useFieldArray({\n control,\n name,\n })\n const onDragEnd = useMemo(() => makeOnDragEndFunction(move), [move])\n return (\n <Flex overflow=\"hidden\" gap={2} flexFlow=\"column\" w=\"100%\" px={2} py={1}>\n <Text lineHeight={1} opacity={0.7} fontSize=\"sm\">\n {field.placeholder}\n </Text>\n <DragDropContext onDragEnd={onDragEnd}>\n <Droppable droppableId=\"droppable\">\n {(droppableProvided, { draggingFromThisWith }) => (\n <Flex\n ref={droppableProvided.innerRef}\n flexFlow=\"column\"\n w=\"100%\"\n py={1}\n borderRadius={4}\n minH=\"30px\"\n align=\"flex\"\n {...droppableProvided.droppableProps}>\n {fields.length ? (\n fields.map((formField, idx) => (\n <Draggable key={formField.id} draggableId={formField.id} index={idx}>\n {({ dragHandleProps, draggableProps, innerRef }, { isDragging }) => (\n <Flex\n transition=\"all 300ms\"\n boxShadow={`2px 2px 4px #000000${isDragging ? '55' : '00'}`}\n borderRadius={4}\n pt={2}\n px={2}\n border={`1px solid ${borderColor}`}\n bg={`${draggingBg}${isDragging ? 'ff' : '00'}`}\n ref={innerRef}\n w=\"100%\"\n {...draggableProps}>\n <ExpandOnMount>\n <Flex\n opacity={draggingFromThisWith && !isDragging ? 0.5 : 1}\n gap={1}\n align=\"center\"\n w=\"100%\">\n <IconButton\n aria-label=\"drag\"\n size=\"xs\"\n opacity={0.8}\n variant=\"ghost\"\n icon={<DragHandleIcon />}\n {...dragHandleProps}\n />\n <Box minW=\"0\" flex={1}>\n <FormElement name={formField.id} field={field.itemField} />\n </Box>\n <IconButton\n aria-label=\"delete\"\n size=\"xs\"\n bg=\"red.600\"\n color=\"white\"\n icon={<DeleteIcon filter=\"drop-shadow(1px 1px 3px #00000088)\" />}\n onClick={e => {\n e.stopPropagation()\n remove(idx)\n }}\n />\n </Flex>\n </ExpandOnMount>\n </Flex>\n )}\n </Draggable>\n ))\n ) : (\n <Text fontSize=\"sm\" opacity={0.7} py={1} px={2}>\n No items\n </Text>\n )}\n {droppableProvided.placeholder}\n </Flex>\n )}\n </Droppable>\n </DragDropContext>\n <Flex>\n <Button mr=\"auto\" width=\"auto\" size=\"xs\" onClick={() => append(emptyData)}>\n + NEW\n </Button>\n </Flex>\n </Flex>\n )\n}\n\nexport const FormElement = ({\n field,\n name,\n // validate,\n}: {\n field: IFormElement\n name: string\n // validate?: boolean\n}) => {\n const fields = useMemo<Array<{ name: string; field: IFormElement }>>(() => {\n if (isField(field) || isListField(field)) return [{ name: 'value', field }]\n\n return Object.entries((field as FieldMap).children).map(([childName, childField]) => ({\n name: `${name ? `${name}.` : ''}${childName}`,\n field: childField,\n }))\n }, [field, name])\n return (\n <VStack spacing={1} w=\"100%\">\n {fields.map(f => {\n if (isListField(f.field)) {\n const b = <ListFieldInput key={f.name} name={f.name} field={f.field} />\n return f.field.condition ? (\n <Condition path={name} condition={f.field.condition} key={f.name}>\n {b}\n </Condition>\n ) : (\n b\n )\n }\n if (isField(f.field)) {\n const b = <FieldComponent key={f.name} name={f.name} field={f.field} />\n return f.field.condition ? (\n <Condition path={name} condition={f.field.condition} key={f.name}>\n {b}\n </Condition>\n ) : (\n b\n )\n }\n\n const b = <FormElement key={f.name} name={f.name} field={f.field} />\n return f.field.condition ? (\n <Condition path={name} condition={f.field.condition} key={f.name}>\n {b}\n </Condition>\n ) : (\n b\n )\n })}\n </VStack>\n )\n}\nconst ListFieldView = ({\n field,\n value,\n path,\n}: {\n field: ListField\n value: any[]\n path: string\n}) => {\n const { placeholder } = field\n const borderColor = useBorderColor()\n const getItemField = useGetItemField(field)\n return (\n <Box w=\"100%\" p={1}>\n <Expandable\n border={`1px solid ${borderColor}`}\n borderRadius={4}\n initExpanded\n header={() => <Text py={1}>{placeholder}</Text>}>\n <Flex flexFlow=\"column\" bg=\"background.200\" gap={2} px={2} py={1}>\n {value?.length ? (\n value.map((item, index) => (\n <Box\n bg=\"background.100\"\n key={`${path}.${index}`}\n border={`1px solid ${borderColor}`}\n borderRadius={3}>\n <FormElementView\n path={`${path}.${index}`}\n field={getItemField(index)}\n value={item}\n />\n </Box>\n ))\n ) : (\n <Text fontSize=\"sm\" opacity={0.7} py={1} px={2}>\n No items\n </Text>\n )}\n </Flex>\n </Expandable>\n </Box>\n )\n}\n\nconst FormElementView = ({\n field,\n value,\n path,\n storagePath,\n}: {\n field: IFormElement\n value: any\n path: string\n storagePath?: string\n}) => {\n const { updateField } = useDataView()\n if (isField(field)) {\n return updateField ? (\n <Editable\n storagePath={storagePath}\n field={field}\n value={value}\n onSubmit={v => updateField(path, v)}\n />\n ) : (\n <FieldView field={field} value={value} />\n )\n }\n if (isListField(field)) {\n return <ListFieldView path={path} field={field} value={value} />\n }\n return (\n <DataView\n storagePath={storagePath ? `${storagePath}.${path}` : undefined}\n path={path}\n field={field}\n />\n )\n}\n\nexport const DataView = ({\n field,\n value,\n onClose,\n onDelete,\n onSubmit,\n itemName,\n storagePath,\n path = '',\n}: DataViewProps & { path?: string }) => {\n const { name: fieldName, children } = field\n const [isEditing, setIsEditing] = useState(false)\n return (\n <DataViewProvider value={value} onSubmit={onSubmit}>\n <Expandable\n alwaysExpanded\n header={() => (\n <Flex align=\"center\" px={2} w=\"100%\">\n <Text py={2} fontSize=\"lg\" fontFamily=\"fonts.heading\">\n {fieldName}\n </Text>\n <Flex gap={2} align=\"center\" ml=\"auto\">\n {onDelete ? <DeleteButton onDelete={onDelete} itemName={itemName ?? 'item'} /> : null}\n {onSubmit ? (\n <IconButton\n size=\"sm\"\n borderRadius=\"full\"\n minW={0}\n w={7}\n h={7}\n ml=\"auto\"\n aria-label=\"edit\"\n icon={<EditIcon />}\n onClick={() => setIsEditing(true)}\n />\n ) : null}\n {onClose ? (\n <IconButton\n size=\"sm\"\n borderRadius=\"full\"\n minW={0}\n w={7}\n h={7}\n variant=\"ghost\"\n aria-label=\"close\"\n icon={<CloseIcon opacity={0.8} w={3} h={3} />}\n onClick={onClose}\n />\n ) : null}\n </Flex>\n </Flex>\n )}>\n {isEditing && onSubmit ? (\n <Form\n storagePath={storagePath}\n field={field}\n value={value}\n onSubmit={onSubmit}\n onBack={() => setIsEditing(false)}\n />\n ) : (\n <Flex flexFlow=\"column\" px={4} py={2}>\n {Object.entries(children).map(([key, childField]) => (\n <FormElementView\n storagePath={storagePath ? `${storagePath}/${key}` : undefined}\n path={path ? `${path}.${key}` : key}\n key={key}\n field={childField}\n value={value?.[key]}\n />\n ))}\n </Flex>\n )}\n </Expandable>\n </DataViewProvider>\n )\n}\n\nexport const FieldMapForm = <F extends FieldMap>({\n onSubmit: submit,\n onBack,\n field,\n value,\n buttonText = 'SUBMIT',\n renderFooter,\n storagePath,\n}: FieldMapFormProps<F>) => {\n const submitDataProps = useMemo<UseFormSubmitProps<F>>(\n () => ({\n field,\n value,\n submit,\n storagePath,\n }),\n [field, value, submit, storagePath],\n )\n\n const { onSubmit, uploads } = useFormSubmit(submitDataProps)\n\n return (\n <Stack w=\"100%\" spacing={3}>\n <form>\n <Box pt={1} px={2} w=\"100%\">\n <FormElement name=\"\" field={field} />\n </Box>\n <FormFooter\n uploads={uploads}\n onSubmit={onSubmit}\n renderFooter={renderFooter}\n onBack={onBack}\n buttonText={buttonText}\n />\n </form>\n </Stack>\n )\n}\n\nexport const FieldForm = <F extends Field | ListField>({\n onSubmit,\n field,\n value,\n ...props\n}: FieldFormProps<F>) => {\n const fieldMap = useMemo<FieldMap>(() => ({ children: { value: field } }), [field])\n return (\n <FieldMapForm\n field={fieldMap}\n value={{ value }}\n onSubmit={data => onSubmit(data?.value)}\n {...props}\n />\n )\n}\n\nexport const Form = <F extends IFormElement>({ field, onSubmit, ...props }: FormProps<F>) => {\n const body =\n isField(field) || isListField(field) ? (\n <FieldForm field={field} onSubmit={onSubmit as FormOnSubmit<Field | ListField>} {...props} />\n ) : (\n <FieldMapForm field={field} onSubmit={onSubmit as FormOnSubmit<FieldMap>} {...props} />\n )\n\n return <ChempoFormProvider>{body}</ChempoFormProvider>\n}\n","import { Flex, FlexProps } from '@chakra-ui/react'\nimport { useMounted } from '@chem-po/react'\nimport React from 'react'\nimport { FullSizeProvider } from '../box'\n\nexport const ListContainer = (props: FlexProps) => {\n const mounted = useMounted()\n return (\n <FullSizeProvider>\n <Flex\n overflow=\"hidden\"\n flexFlow=\"column\"\n h=\"100%\"\n w=\"100%\"\n opacity={mounted ? 1 : 0}\n transition=\"opacity 300ms\"\n {...props}\n />\n </FullSizeProvider>\n )\n}\n","import { Flex } from '@chakra-ui/react'\nimport { AnyObject, ColorMode, DBItem } from '@chem-po/core'\nimport { DataList, ListGridOptions } from '@chem-po/react'\nimport React from 'react'\nimport { GridChildComponentProps } from 'react-window'\n\nexport interface GridItemProps<T extends AnyObject> {\n list: DataList<T>\n grid: ListGridOptions<T>\n items: Array<DBItem<T>>\n colorMode: ColorMode\n numCols: number\n mobileLayout: boolean\n onSelect: (item: DBItem<T>) => void\n refetch?: (id: string) => Promise<void>\n}\nexport const ListCell = <T extends AnyObject>({\n data,\n rowIndex,\n columnIndex,\n style,\n}: GridChildComponentProps<GridItemProps<T>>) => {\n const { items, onSelect, refetch, grid, numCols, colorMode } = data || {}\n const { ItemPreview: Render } = grid\n\n const itemIdx = rowIndex * numCols + columnIndex\n const item = items[itemIdx]\n if (!item) return null\n return (\n <Flex\n display=\"flex\"\n cursor=\"pointer\"\n aria-label=\"list-item\"\n onClick={() => {\n onSelect(item)\n }}\n style={style}\n px={1}\n py={0.25}\n key={itemIdx}>\n <Render\n index={itemIdx}\n item={item}\n refetch={refetch ? () => refetch(item.id) : undefined}\n colorMode={colorMode}\n />\n </Flex>\n )\n}\n","import { Flex, Text } from '@chakra-ui/react'\nimport { toPlural } from '@chem-po/core'\nimport { useDataList, usePaginatedList } from '@chem-po/react'\nimport React, { useMemo } from 'react'\nimport { Loading } from '../loading'\n\nexport const NoItemsRow = () => {\n const {\n list,\n search: { debounced, search },\n } = useDataList()\n const {\n data: { isLoading },\n } = usePaginatedList()\n const showLoading = useMemo(\n () => isLoading || debounced !== search,\n [isLoading, debounced, search],\n )\n const { itemName, pluralItemName, noItemsMessage, searchRequired } = list\n return (\n <Flex justify=\"center\" align=\"flex-start\" w=\"100%\" h=\"100%\">\n {showLoading ? (\n <Loading text={`Loading ${pluralItemName ?? toPlural(itemName)}`} />\n ) : (\n <Text textAlign=\"center\" flex={1} p={3} fontStyle=\"italic\" opacity={0.7}>\n {!debounced && searchRequired\n ? `Search ${pluralItemName ?? toPlural(itemName)}`\n : (noItemsMessage ?? `No ${pluralItemName ?? toPlural(itemName)}`)}\n </Text>\n )}\n </Flex>\n )\n}\n","import {\n AnyObject,\n arrayOperators,\n BaseQuery,\n QueryFilter,\n SearchPath,\n stringTransforms,\n} from '@chem-po/core'\nimport { FilterPreset } from '@chem-po/react'\nimport { Query, query, where } from 'firebase/firestore'\n\nexport const getIsDynamicSize = (itemHeight: number | ((item: any) => number)) =>\n typeof itemHeight === 'function'\n\nexport const getTextSearchQuery = <T extends AnyObject>(\n baseQuery: Query<T>,\n searchQuery: string,\n searchPath: SearchPath<T>,\n) => {\n let trimmed = searchQuery.trim()\n if (!trimmed) return baseQuery\n if (searchPath.transform) trimmed = stringTransforms[searchPath.transform](trimmed)\n return query(\n baseQuery,\n where(searchPath.prop, '>=', trimmed),\n where(searchPath.prop, '<=', `${trimmed}\\uf8ff`),\n )\n}\nexport const getSearchQueries = <T extends AnyObject>(\n baseQuery: Query<T>,\n searchData: BaseQuery<T>['search'],\n): Array<Query<T>> => {\n if (!searchData) return [baseQuery]\n const { paths, query: search } = searchData\n if (!paths?.length || !search) return [baseQuery]\n return paths.map(path => getTextSearchQuery(baseQuery, search, path))\n}\nconst nativeFilterMatchesPreset = <T extends AnyObject>(\n nativeFilter: QueryFilter<T>,\n presetFilter: QueryFilter<T>,\n) => {\n if (nativeFilter.key !== presetFilter.key) return false\n if (nativeFilter.operator !== presetFilter.operator) return false\n if (arrayOperators.includes(nativeFilter.operator)) {\n const nativeValues = Array.isArray(nativeFilter.value)\n ? nativeFilter.value\n : [nativeFilter.value]\n const presetValues = Array.isArray(presetFilter.value)\n ? presetFilter.value\n : [presetFilter.value]\n if (presetValues.every(value => !nativeValues.includes(value))) return false\n return true\n }\n return nativeFilter.value === presetFilter.value\n}\n\nexport const filterMatchesPreset = <T extends AnyObject>(\n filter: QueryFilter<T>,\n { nativeFilter }: FilterPreset<T>,\n) => {\n const nativeFilters = Array.isArray(nativeFilter) ? nativeFilter : [nativeFilter]\n return nativeFilters.every(nativeFilter => nativeFilterMatchesPreset(nativeFilter, filter))\n}\n","import { AnyObject } from '@chem-po/core'\nimport { DataList, ListGridOptions, usePaginatedList } from '@chem-po/react'\nimport { useMemo } from 'react'\n\n// determine number of columns and rows based on data and grid options\n// if row height and column width are both variable, throw an error\n// if row height is variable, calculate dims based on data\n// if column width is variable, calculate dims based on data\ninterface CellDims {\n numRows: number\n numCols: number\n}\nconst getCellDims = <T extends AnyObject>(\n data: T[],\n grid: Required<DataList<T>>['grid'],\n gridWidth: number,\n): CellDims => {\n const { rowHeight, columnWidth } = grid\n if (typeof rowHeight !== 'number' && typeof columnWidth !== 'number') {\n throw new Error('Cannot have both variable row height and variable column width')\n }\n\n if (typeof columnWidth === 'function') {\n const numCols = Math.floor(gridWidth / columnWidth(data[0]))\n const numRows = Math.ceil(data.length / numCols)\n return { numRows, numCols }\n }\n const numCols = Math.max(1, Math.floor(gridWidth / columnWidth))\n const numRows = Math.ceil(data.length / numCols)\n return { numRows, numCols }\n}\n\ntype CellSize = CellDims & {\n rowHeight: number | ((idx: number) => number)\n colWidth: number | ((idx: number) => number)\n}\n\nconst getCellSize = <T extends AnyObject>(\n data: T[],\n grid: Required<DataList<T>>['grid'],\n gridWidth: number,\n): CellSize => {\n const { rowHeight: preferredHeight, columnWidth: preferredWidth } = grid\n const { numRows, numCols } = getCellDims(data, grid, gridWidth)\n\n const colWidths =\n typeof preferredWidth === 'number'\n ? gridWidth / numCols\n : Array.from({ length: numCols }, (_i, i) => {\n const col = data.filter((_j, j) => j % numCols === i)\n return col.reduce((acc, item) => {\n const itemWidth = preferredWidth(item)\n return Math.max(acc, itemWidth)\n }, 0)\n })\n\n const rowHeights =\n typeof preferredHeight === 'number'\n ? preferredHeight\n : Array.from({ length: numRows }, (_, i) => {\n const row = data.slice(i * numCols, (i + 1) * numCols)\n return row.reduce((acc, item) => {\n const itemHeight = preferredHeight(item)\n return Math.max(acc, itemHeight)\n }, 0)\n })\n\n const rowHeight = Array.isArray(rowHeights) ? (idx: number) => rowHeights[idx] : rowHeights\n const colWidth = Array.isArray(colWidths) ? (idx: number) => colWidths[idx] : colWidths\n\n return {\n rowHeight,\n colWidth,\n numCols,\n numRows,\n }\n}\n\nexport const useGridDims = <T extends AnyObject>(grid: ListGridOptions<T>, width: number) => {\n const {\n data: { data },\n } = usePaginatedList<T>()\n return useMemo(() => getCellSize(data, grid, width), [data, grid, width])\n}\n","import { useColorMode } from '@chakra-ui/react'\nimport { AnyObject, WithId } from '@chem-po/core'\nimport { ListGridOptions, useDataList, useFullSize, usePaginatedList } from '@chem-po/react'\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport {\n FixedSizeGrid,\n GridOnItemsRenderedProps,\n ListOnItemsRenderedProps,\n VariableSizeGrid,\n} from 'react-window'\nimport InfiniteLoader from 'react-window-infinite-loader'\nimport { GridItemProps, ListCell } from '../ListItem/ListCell'\nimport { ListItemProps } from '../ListItem/ListRow'\nimport { NoItemsRow } from '../NoItems'\nimport { getIsDynamicSize } from '../utils'\nimport { useGridDims } from './hooks'\n\nexport const InfiniteScrollGridBody = <T extends AnyObject>({\n height,\n options,\n}: {\n height: number\n options: ListGridOptions<T>\n}) => {\n const {\n totalCount,\n data: { data: items },\n refetchItem,\n isItemLoaded,\n goNext: fetchMoreData,\n } = usePaginatedList<T>()\n const { list, onSelectItem, mobileLayout, query } = useDataList<T>()\n const { width } = useFullSize()\n const { numCols, numRows, rowHeight, colWidth } = useGridDims<T>(options, width)\n const { previewHeight, mobile } = list\n const { colorMode } = useColorMode()\n const itemData = useMemo<GridItemProps<T>>(\n () => ({\n list,\n items,\n mobileLayout,\n grid: options,\n colorMode,\n numCols,\n onSelect: (item: WithId<T>) => onSelectItem(item.id),\n refetch: refetchItem,\n }),\n [items, list, refetchItem, onSelectItem, mobileLayout, numCols, options, colorMode],\n )\n\n const varRef = useRef<VariableSizeGrid | null>(null)\n\n const itemHeight = useMemo(\n () => (mobileLayout ? (mobile?.previewHeight ?? previewHeight) : previewHeight),\n [mobile, previewHeight, mobileLayout],\n )\n\n useEffect(() => {\n const varGrid = varRef.current\n if (varGrid) {\n varGrid.resetAfterColumnIndex(0)\n varGrid.resetAfterRowIndex(0)\n }\n }, [query])\n\n const infiniteLoaderRef = useRef<InfiniteLoader>(null)\n useEffect(() => {\n if (infiniteLoaderRef.current) {\n infiniteLoaderRef.current.resetloadMoreItemsCache(true)\n }\n }, [totalCount])\n\n const isDynamicHeight = useMemo(() => getIsDynamicSize(itemHeight), [itemHeight])\n\n const itemKey = useCallback(\n ({\n columnIndex,\n rowIndex,\n data,\n }: {\n columnIndex: number\n rowIndex: number\n data: ListItemProps<T>\n }) => {\n const index = rowIndex * numCols + columnIndex\n return data.items[index]?.id || `${index}`\n },\n [numCols],\n )\n\n const onRendered = useCallback(\n (\n {\n overscanColumnStartIndex,\n overscanColumnStopIndex,\n overscanRowStartIndex,\n overscanRowStopIndex,\n visibleColumnStartIndex,\n visibleColumnStopIndex,\n visibleRowStartIndex,\n visibleRowStopIndex,\n }: GridOnItemsRenderedProps,\n onItemsRendered: (p: ListOnItemsRenderedProps) => void,\n ) => {\n const start = visibleRowStartIndex * numCols + visibleColumnStartIndex\n const stop = visibleRowStopIndex * numCols + visibleColumnStopIndex\n const overscanStart = overscanRowStartIndex * numCols + overscanColumnStartIndex\n const overscanStop = overscanRowStopIndex * numCols + overscanColumnStopIndex\n onItemsRendered({\n overscanStartIndex: overscanStart,\n overscanStopIndex: overscanStop,\n visibleStartIndex: start,\n visibleStopIndex: stop,\n })\n },\n [numCols],\n )\n\n if (!items.length) {\n return <NoItemsRow />\n }\n\n return isDynamicHeight ? (\n <InfiniteLoader\n isItemLoaded={isItemLoaded}\n ref={infiniteLoaderRef}\n itemCount={totalCount ?? 0}\n loadMoreItems={fetchMoreData}>\n {({ onItemsRendered, ref }) => (\n <VariableSizeGrid<GridItemProps<T>>\n height={height}\n width={width}\n rowCount={numRows}\n columnCount={numCols}\n rowHeight={rowHeight as (idx: number) => number}\n columnWidth={colWidth as (idx: number) => number}\n itemData={itemData}\n style={{ overflowX: 'hidden' }}\n itemKey={itemKey}\n onItemsRendered={i => onRendered(i, onItemsRendered)}\n ref={r => {\n ref(r)\n varRef.current = r\n }}>\n {ListCell}\n </VariableSizeGrid>\n )}\n </InfiniteLoader>\n ) : (\n <InfiniteLoader\n isItemLoaded={isItemLoaded}\n itemCount={totalCount ?? 0}\n ref={infiniteLoaderRef}\n loadMoreItems={fetchMoreData}>\n {({ onItemsRendered, ref }) => (\n <FixedSizeGrid<GridItemProps<T>>\n height={height}\n width={width}\n rowCount={numRows}\n columnCount={numCols}\n rowHeight={rowHeight as number}\n columnWidth={colWidth as number}\n itemData={itemData}\n onItemsRendered={i => onRendered(i, onItemsRendered)}\n style={{\n overflowX: 'hidden',\n }}\n ref={r => {\n ref(r)\n varRef.current = null\n }}>\n {ListCell}\n </FixedSizeGrid>\n )}\n </InfiniteLoader>\n )\n}\n","import { Flex } from '@chakra-ui/react'\nimport { AnyObject, ColorMode, DBItem } from '@chem-po/core'\nimport { DataList } from '@chem-po/react'\nimport React from 'react'\nimport { ListChildComponentProps } from 'react-window'\n\nexport interface ListItemProps<T extends AnyObject = AnyObject> {\n list: DataList<T>\n items: Array<DBItem<T>>\n mobileLayout: boolean\n onSelect: (item: DBItem<T>) => void\n colorMode: ColorMode\n refetch?: (id: string) => Promise<void>\n}\nexport const ListRow = <T extends AnyObject>({\n data,\n index,\n style,\n}: ListChildComponentProps<ListItemProps<T>>) => {\n const { list, items, onSelect, refetch, mobileLayout, colorMode } = data || {}\n const { ItemPreview: RenderItem, mobile } = list\n\n const Render = mobileLayout ? (mobile?.ItemPreview ?? RenderItem) : RenderItem\n const item = items[index]\n if (!item) return null\n return (\n <Flex\n display=\"flex\"\n cursor=\"pointer\"\n aria-label=\"list-item\"\n onClick={() => {\n onSelect(items[index])\n }}\n style={style}\n key={index}>\n <Render\n index={index}\n item={item}\n refetch={refetch ? () => refetch(item.id) : undefined}\n colorMode={colorMode}\n />\n </Flex>\n )\n}\n","import { useColorMode } from '@chakra-ui/react'\nimport { AnyObject, WithId } from '@chem-po/core'\nimport { useDataList, useFullSize, usePaginatedList } from '@chem-po/react'\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { FixedSizeList, VariableSizeGrid, VariableSizeList } from 'react-window'\nimport InfiniteLoader from 'react-window-infinite-loader'\nimport { ListItemProps, ListRow } from '../ListItem/ListRow'\nimport { NoItemsRow } from '../NoItems'\nimport { getIsDynamicSize } from '../utils'\n\nexport const InfiniteScrollListBody = ({ height }: { height: number }) => {\n const {\n totalCount,\n data: { data: items },\n refetchItem,\n isItemLoaded,\n goNext: fetchMoreData,\n } = usePaginatedList()\n const { list, onSelectItem, mobileLayout, query } = useDataList()\n const { previewHeight, mobile } = list\n const { colorMode } = useColorMode()\n const { width } = useFullSize()\n const itemData = useMemo<ListItemProps>(\n () => ({\n list,\n items,\n mobileLayout,\n colorMode,\n onSelect: (item: WithId<AnyObject>) => onSelectItem(item.id),\n refetch: refetchItem,\n }),\n [items, list, refetchItem, onSelectItem, mobileLayout, colorMode],\n )\n\n const varRef = useRef<VariableSizeGrid | null>(null)\n const itemHeight = useMemo(\n () => (mobileLayout ? (mobile?.previewHeight ?? previewHeight) : previewHeight),\n [mobile, previewHeight, mobileLayout],\n )\n\n const infiniteLoaderRef = useRef<InfiniteLoader>(null)\n useEffect(() => {\n if (infiniteLoaderRef.current) {\n infiniteLoaderRef.current.resetloadMoreItemsCache(true)\n }\n }, [totalCount])\n\n useEffect(() => {\n const varGrid = varRef.current\n if (varGrid) {\n varGrid.resetAfterRowIndex(0)\n varGrid.resetAfterColumnIndex(0)\n }\n }, [query])\n\n const getItemSize = useCallback(\n (index: number) => (typeof itemHeight === 'function' ? itemHeight(items[index]) : itemHeight),\n [items, itemHeight],\n )\n\n const isDynamicHeight = useMemo(() => getIsDynamicSize(itemHeight), [itemHeight])\n\n if (!items.length) {\n return <NoItemsRow />\n }\n\n return isDynamicHeight ? (\n <InfiniteLoader\n ref={infiniteLoaderRef}\n isItemLoaded={isItemLoaded}\n itemCount={totalCount ?? 0}\n loadMoreItems={fetchMoreData}>\n {({ onItemsRendered, ref }) => (\n <VariableSizeList<ListItemProps>\n height={height}\n width={width}\n itemSize={getItemSize}\n itemCount={totalCount ?? 0}\n itemData={itemData}\n style={{ overflowX: 'hidden' }}\n itemKey={index => items[index]?.id || `${index}`}\n onItemsRendered={i => {\n onItemsRendered(i)\n }}\n ref={ref}>\n {ListRow}\n </VariableSizeList>\n )}\n </InfiniteLoader>\n ) : (\n <InfiniteLoader\n ref={infiniteLoaderRef}\n isItemLoaded={isItemLoaded}\n itemCount={totalCount ?? 0}\n loadMoreItems={fetchMoreData}>\n {({ onItemsRendered, ref }) => (\n <FixedSizeList<ListItemProps>\n height={height}\n width={width}\n itemSize={itemHeight as number}\n itemCount={totalCount ?? 0}\n itemData={itemData}\n itemKey={index => items[index]?.id || `${index}`}\n style={{\n overflowX: 'hidden',\n }}\n onItemsRendered={onItemsRendered}\n ref={ref}>\n {ListRow}\n </FixedSizeList>\n )}\n </InfiniteLoader>\n )\n}\n","import { useColorMode } from '@chakra-ui/react'\nimport { AnyObject, BaseComponent, ItemPreviewProps, ListGridOptions } from '@chem-po/core'\nimport { useDataList, useFullSize, usePaginatedList } from '@chem-po/react'\nimport React, { memo, useEffect, useMemo, useRef } from 'react'\nimport { FixedSizeGrid, VariableSizeGrid } from 'react-window'\nimport { GridItemProps, ListCell } from '../ListItem/ListCell'\nimport { NoItemsRow } from '../NoItems'\nimport { getIsDynamicSize } from '../utils'\nimport { useGridDims } from './hooks'\n\nconst BasePagedGridBody = <\n T extends AnyObject,\n ItemPreviewComponent extends BaseComponent<ItemPreviewProps<T>>,\n>({\n height,\n options,\n}: {\n height: number\n options: ListGridOptions<T, ItemPreviewComponent>\n}) => {\n const { list, onSelectItem, mobileLayout, query } = useDataList<T>()\n const {\n data: { data: items },\n pageIndex,\n } = usePaginatedList<T>()\n const variableRef = useRef<VariableSizeGrid>(null)\n const fixedRef = useRef<FixedSizeGrid>(null)\n const { width } = useFullSize()\n const { numCols, numRows, rowHeight, colWidth } = useGridDims<T>(options, width)\n const { colorMode } = useColorMode()\n const itemData = useMemo<GridItemProps<T>>(\n () => ({\n list,\n items,\n numCols,\n onSelect: item => onSelectItem(item.id),\n mobileLayout,\n colorMode,\n grid: options,\n }),\n [items, list, onSelectItem, mobileLayout, numCols, options, colorMode],\n )\n\n useEffect(() => {\n const varGrid = variableRef.current\n if (varGrid) {\n varGrid.resetAfterColumnIndex(0)\n varGrid.resetAfterRowIndex(0)\n }\n }, [query])\n\n // scroll to top when page or query changes\n useEffect(() => {\n const varGrid = variableRef.current\n const fixGrid = fixedRef.current\n if (varGrid) {\n varGrid.scrollTo({ scrollLeft: 0, scrollTop: 0 })\n }\n if (fixGrid) {\n fixGrid.scrollTo({ scrollLeft: 0, scrollTop: 0 })\n }\n }, [pageIndex, query])\n\n const isDynamicHeight = useMemo(\n () => getIsDynamicSize(options.rowHeight) || getIsDynamicSize(options.columnWidth),\n [options],\n )\n\n if (!items.length) return <NoItemsRow />\n\n return isDynamicHeight ? (\n <VariableSizeGrid<GridItemProps<T>>\n ref={variableRef}\n height={height}\n width={width}\n rowCount={numRows}\n columnCount={numCols}\n rowHeight={rowHeight as (idx: number) => number}\n columnWidth={colWidth as (idx: number) => number}\n itemData={itemData}\n style={{\n overflowX: 'hidden',\n }}>\n {ListCell}\n </VariableSizeGrid>\n ) : (\n <FixedSizeGrid<GridItemProps<T>>\n height={height}\n ref={fixedRef}\n width={width}\n rowCount={numRows}\n columnCount={numCols}\n rowHeight={rowHeight as number}\n columnWidth={colWidth as number}\n itemData={itemData}\n style={{\n overflowX: 'hidden',\n }}>\n {ListCell}\n </FixedSizeGrid>\n )\n}\n\nexport const PagedGridBody = memo(BasePagedGridBody) as typeof BasePagedGridBody\n","import { useColorMode } from '@chakra-ui/react'\nimport { useDataList, useFullSize, usePaginatedList } from '@chem-po/react'\nimport React, { memo, useCallback, useEffect, useMemo, useRef } from 'react'\nimport { FixedSizeList, VariableSizeList } from 'react-window'\nimport { ListItemProps, ListRow } from '../ListItem/ListRow'\nimport { NoItemsRow } from '../NoItems'\nimport { getIsDynamicSize } from '../utils'\n\nconst BasePagedListBody = ({ height }: { height: number }) => {\n const { list, onSelectItem, mobileLayout, query } = useDataList()\n const {\n data: { data: items },\n pageIndex,\n } = usePaginatedList()\n const { width } = useFullSize()\n const { previewHeight, mobile } = list\n const varRef = useRef<VariableSizeList>(null)\n const fixedRef = useRef<FixedSizeList>(null)\n const { colorMode } = useColorMode()\n const itemData = useMemo<ListItemProps>(\n () => ({\n list,\n colorMode,\n items,\n onSelect: item => onSelectItem(item.id),\n mobileLayout,\n }),\n [items, list, onSelectItem, mobileLayout, colorMode],\n )\n\n const itemHeight = useMemo(\n () => (mobileLayout ? (mobile?.previewHeight ?? previewHeight) : previewHeight),\n [mobile, previewHeight, mobileLayout],\n )\n\n useEffect(() => {\n const varList = varRef.current\n if (varList) {\n varList.resetAfterIndex(0)\n }\n }, [query])\n\n // scroll to top when page or query changes\n useEffect(() => {\n const varList = varRef.current\n const fixList = fixedRef.current\n if (varList) {\n varList.scrollTo(0)\n }\n if (fixList) {\n fixList.scrollTo(0)\n }\n }, [query, pageIndex])\n\n const getItemSize = useCallback(\n (index: number) => (typeof itemHeight === 'function' ? itemHeight(items[index]) : itemHeight),\n [items, itemHeight],\n )\n\n const isDynamicHeight = useMemo(() => getIsDynamicSize(itemHeight), [itemHeight])\n\n if (!items.length) return <NoItemsRow />\n return isDynamicHeight ? (\n <FixedSizeList<ListItemProps>\n ref={fixedRef}\n height={height}\n width={width}\n itemSize={itemHeight as number}\n itemCount={items.length}\n itemData={itemData}\n style={{\n overflowX: 'hidden',\n }}>\n {ListRow}\n </FixedSizeList>\n ) : (\n <VariableSizeList<ListItemProps>\n ref={varRef}\n height={height}\n width={width}\n itemSize={getItemSize}\n itemCount={items.length}\n itemData={itemData}\n style={{\n overflowX: 'hidden',\n }}>\n {ListRow}\n </VariableSizeList>\n )\n}\n\nexport const PagedListBody = memo(BasePagedListBody) as typeof BasePagedListBody\n","import { useDataList } from '@chem-po/react'\nimport React from 'react'\nimport { InfiniteScrollGridBody } from './InfiniteScrollGridBody'\nimport { InfiniteScrollListBody } from './InfiniteScrollListBody'\nimport { PagedGridBody } from './PagedGridBody'\nimport { PagedListBody } from './PagedListBody'\n\nexport const ListBody = ({ height }: { height: number }) => {\n const { infiniteScroll, gridLayout, list } = useDataList()\n const { grid } = list\n\n if (gridLayout && grid) {\n return infiniteScroll ? (\n <InfiniteScrollGridBody options={grid} height={height} />\n ) : (\n <PagedGridBody options={grid} height={height} />\n )\n }\n return infiniteScroll ? (\n <InfiniteScrollListBody height={height} />\n ) : (\n <PagedListBody height={height} />\n )\n}\n","import { Box, Modal, ModalContent, ModalOverlay } from '@chakra-ui/react'\nimport { useBackgroundColor } from '@chem-po/react'\nimport React from 'react'\nimport { DefaultModalProps } from './type'\n\nexport const DesktopModal = ({ children, isOpen, contentProps, ...props }: DefaultModalProps) => {\n const bg = useBackgroundColor(100)\n return (\n <Modal scrollBehavior=\"inside\" isCentered isOpen={isOpen} {...props}>\n <ModalOverlay />\n <ModalContent position=\"relative\" overflowY=\"auto\" bg={bg} {...contentProps}>\n <Box>{children}</Box>\n </ModalContent>\n </Modal>\n )\n}\n","import { Flex, FlexProps, Portal } from '@chakra-ui/react'\nimport { useMobileFrame } from '@chem-po/react'\nimport React from 'react'\n\nexport const MobileOverlay = (props: FlexProps) => {\n const { overlayRef } = useMobileFrame()\n\n return (\n <Portal containerRef={overlayRef}>\n <Flex\n justify=\"center\"\n align=\"center\"\n transition=\"opacity 300ms\"\n position=\"absolute\"\n left={0}\n top={0}\n height=\"100%\"\n width=\"100%\"\n {...props}\n />\n </Portal>\n )\n}\n","import { Flex, useColorModeValue } from '@chakra-ui/react'\nimport { useMobileFrame } from '@chem-po/react'\nimport React, { useEffect, useRef, useState } from 'react'\nimport { MobileOverlay } from '../overlay/MobileOverlay'\nimport { DefaultModalProps } from './type'\n\nexport const MobileOverlayBackground = ({ onClick }: { onClick?: () => void }) => (\n <Flex\n onClick={onClick}\n w=\"100%\"\n h=\"100%\"\n position=\"absolute\"\n bg=\"blackAlpha.400\"\n transition=\"opacity 300ms\"\n />\n)\n\nexport const MobileModal = ({\n isOpen,\n onClose,\n children,\n contentProps,\n onContentMounted,\n closeOnOverlayClick,\n}: DefaultModalProps) => {\n const { height, width } = useMobileFrame()\n\n const bg = useColorModeValue('gray.100', '#454545')\n\n const [isMounted, setIsMounted] = useState(false)\n const [contentMounted, setContentMounted] = useState(false)\n\n const unmountTimeout = useRef<ReturnType<typeof setTimeout> | null>(null)\n const contentMountTimeout = useRef<ReturnType<typeof setTimeout> | null>(null)\n useEffect(() => {\n if (unmountTimeout.current) {\n clearTimeout(unmountTimeout.current)\n unmountTimeout.current = null\n }\n\n if (contentMountTimeout.current) {\n clearTimeout(contentMountTimeout.current)\n contentMountTimeout.current = null\n }\n\n if (isOpen) {\n setIsMounted(true)\n contentMountTimeout.current = setTimeout(() => {\n setContentMounted(true)\n if (onContentMounted) onContentMounted(true)\n }, 50)\n } else {\n setContentMounted(false)\n if (onContentMounted) onContentMounted(false)\n unmountTimeout.current = setTimeout(() => {\n setIsMounted(false)\n }, 300)\n }\n return () => {\n if (unmountTimeout.current) {\n clearTimeout(unmountTimeout.current)\n unmountTimeout.current = null\n }\n if (contentMountTimeout.current) {\n clearTimeout(contentMountTimeout.current)\n contentMountTimeout.current = null\n }\n }\n }, [isOpen, onContentMounted])\n return isMounted ? (\n <MobileOverlay\n opacity={contentMounted ? 1 : 0}\n pointerEvents={contentMounted ? 'auto' : 'none'}>\n <MobileOverlayBackground onClick={closeOnOverlayClick !== false ? onClose : undefined} />\n <Flex\n width={`${width - 10}px`}\n maxH={`${height - 10}px`}\n overflowY=\"auto\"\n overflowX=\"hidden\"\n minH=\"100px\"\n bg={bg}\n borderRadius={6}\n position=\"relative\"\n {...contentProps}>\n {children}\n </Flex>\n </MobileOverlay>\n ) : null\n}\n","import { useScreen } from '@chem-po/react'\nimport React, { useMemo } from 'react'\nimport { DesktopModal } from './DesktopModal'\nimport { useForceMobile } from './ForceMobile'\nimport { MobileModal } from './MobileModal'\nimport { DefaultModalProps } from './type'\n\nexport const DefaultModal = (props: DefaultModalProps) => {\n const isMobile = useScreen(s => s.isMobile)\n\n const forceMobile = useForceMobile()\n const Component = useMemo(\n () => (isMobile || forceMobile ? MobileModal : DesktopModal),\n [isMobile, forceMobile],\n )\n\n return <Component {...props} />\n}\n","import { CloseIcon } from '@chakra-ui/icons'\nimport { Flex, IconButton, Text } from '@chakra-ui/react'\nimport { FieldMap, useBackendBase, useDataList, usePaginatedList } from '@chem-po/react'\nimport React, { useCallback } from 'react'\nimport { Form } from '../form'\nimport { DesktopModal } from '../modal'\n\nexport const ListCreate = ({ field }: { field: FieldMap }) => {\n const {\n list: { baseQuery, itemName },\n newItemOpen: isOpen,\n setNewItemOpen: setIsOpen,\n } = useDataList()\n const {\n adapter: { db },\n } = useBackendBase()\n const { refetch } = usePaginatedList()\n // const collectionRef = useMemo(() => collection(db, collectionPath), [collectionPath, db])\n // const newItemDoc = useMemo(() => (isOpen ? doc(collectionRef) : null), [collectionRef, isOpen])\n // const newItemStoragePath = useMemo(\n // () => (newItemDoc ? `${storagePath}/${newItemDoc.id}` : null),\n // [storagePath, newItemDoc],\n // )\n const handleSubmit = useCallback(\n async (data: object) => {\n // if (!newItemDoc) return { [FORM_ERROR]: 'No document reference' }\n // await setDoc(newItemDoc, data)\n await db.createItem(baseQuery.collection, data)\n setIsOpen(false)\n if (refetch) refetch()\n return undefined\n },\n [setIsOpen, refetch, db, baseQuery],\n )\n\n return (\n <DesktopModal isOpen={isOpen} onClose={() => setIsOpen(false)}>\n <Flex align=\"center\" pt={3} px={3} w=\"100%\">\n <Text pl={1} opacity={0.7} fontWeight={600}>\n NEW {itemName.toUpperCase()}\n </Text>\n <IconButton\n size=\"sm\"\n borderRadius=\"full\"\n ml=\"auto\"\n h={7}\n w={7}\n minW={0}\n onClick={() => setIsOpen(false)}\n aria-label=\"Close\"\n icon={<CloseIcon opacity={0.8} w={3} h={3} />}\n />\n </Flex>\n <Form field={field} onSubmit={handleSubmit} />\n </DesktopModal>\n )\n}\n","import { ChevronLeftIcon, ChevronRightIcon } from '@chakra-ui/icons'\nimport {\n Box,\n Button,\n Collapse,\n Flex,\n IconButton,\n Popover,\n PopoverBody,\n PopoverContent,\n PopoverTrigger,\n Progress,\n Text,\n Tooltip,\n useColorModeValue,\n} from '@chakra-ui/react'\nimport { toPlural } from '@chem-po/core'\nimport { useDataList, usePaginatedList } from '@chem-po/react'\nimport useResizeObserver from '@react-hook/resize-observer'\nimport React, { useCallback, useMemo, useRef } from 'react'\nimport { useBorderColor } from '../../hooks'\nimport { ExpandOnMount } from '../box'\nimport { DataListFooterProps } from './types'\n\nconst NextButton = ({\n goNext,\n canGoNext,\n mobileLayout,\n}: {\n goNext?: () => void\n canGoNext: boolean\n mobileLayout?: boolean\n}) => (\n <Button\n opacity={canGoNext ? 1 : 0.6}\n pointerEvents={canGoNext ? 'auto' : 'none'}\n borderRadius=\"full\"\n onClick={goNext}\n aria-label=\"next\"\n variant=\"ghost\"\n size={mobileLayout ? 'xs' : 'sm'}\n pl={3}\n pr={1}\n gap={1}>\n <Text>Next</Text>\n <ChevronRightIcon w={5} h={5} />\n </Button>\n)\n\nconst PrevButton = ({\n goPrev,\n canGoPrev,\n mobileLayout,\n}: {\n goPrev?: () => void\n canGoPrev: boolean\n mobileLayout?: boolean\n}) => (\n <Button\n opacity={canGoPrev ? 1 : 0.5}\n pointerEvents={canGoPrev ? 'auto' : 'none'}\n onClick={goPrev}\n borderRadius=\"full\"\n aria-label=\"back\"\n variant=\"ghost\"\n pr={3}\n pl={1}\n gap={1}\n size={mobileLayout ? 'xs' : 'sm'}>\n <ChevronLeftIcon w={5} h={5} />\n <Text>Back</Text>\n </Button>\n)\n\nconst FooterLoadingAndError = ({\n progressBg,\n borderColor,\n}: {\n progressBg: string\n borderColor: string\n}) => {\n const {\n data: { isLoading, error },\n } = usePaginatedList()\n return (\n <Box position=\"absolute\" bottom=\"100%\" w=\"100%\" left={0}>\n <Collapse style={{ width: '100%' }} in={!!error} animateOpacity>\n <Box borderTopRadius={6} bg=\"red.600\" maxW=\"100%\" p={1}>\n <Tooltip placement=\"top\" hasArrow label={error?.message ?? ''} aria-label=\"error\">\n <Text\n textShadow=\"1px 1px 3px #00000077\"\n _dark={{ textShadow: 'none' }}\n px={1}\n fontWeight={600}\n isTruncated\n maxW=\"100%\"\n fontSize=\"sm\"\n color=\"white\">\n {error?.message}\n </Text>\n </Tooltip>\n </Box>\n </Collapse>\n <ExpandOnMount in={isLoading} animateOpacity>\n <Flex\n bg={progressBg}\n borderTop=\"1px solid\"\n borderBottom=\"1px solid\"\n borderColor={borderColor}\n w=\"100%\">\n <Progress borderRadius={0} w=\"100%\" height=\"8px\" isIndeterminate={isLoading} />\n </Flex>\n </ExpandOnMount>\n </Box>\n )\n}\n\ninterface PageIndicator {\n index: number\n isActive: boolean\n}\ninterface PageIndicatorGroup {\n indicators: PageIndicator[]\n collapsed: boolean\n}\n\n/* \npage nav groups: \n0 - first group - pages 1:3 if not in current group\n1 - second group (collapsed) - pages 4:i-1 if not in current group, where i is the selected page\n2 - current group - pages i:i+2\n3 - fourth group (collapsed) - pages i+3:n-3 if not in current group, where n is the last page\n4 - last group - pages n-2:n\n*/\nconst getGroupIndex = (index: number, selected: number, numPages: number) => {\n if (Math.abs(index - selected) <= 1) return 2\n if (index < 3) return selected === 0 ? 2 : 0\n if (index > numPages - 4) return selected > numPages - 3 ? 2 : 4\n return index < selected ? 1 : 3\n}\n\nconst NAV_BUTTON_SIZE = 28\nconst MOBILE_NAV_BUTTON_SIZE = 24\n\nconst PageNavButton = ({\n index,\n isActive,\n onClick,\n borderColor,\n isLoading,\n mobileLayout,\n}: {\n index: number\n isActive: boolean\n onClick: () => void\n borderColor: string\n isLoading: boolean\n mobileLayout: boolean\n}) => {\n return (\n <Button\n key={index}\n onClick={onClick}\n variant=\"unstyled\"\n display=\"flex\"\n border=\"1px solid\"\n borderColor={isActive ? 'transparent' : borderColor}\n justifyContent=\"center\"\n alignItems=\"center\"\n width={`${mobileLayout ? MOBILE_NAV_BUTTON_SIZE : NAV_BUTTON_SIZE}px`}\n height={`${mobileLayout ? MOBILE_NAV_BUTTON_SIZE : NAV_BUTTON_SIZE}px`}\n fontFamily=\"fonts.heading\"\n lineHeight={1}\n fontWeight={600}\n minW=\"0\"\n bg={isActive ? 'accent.400' : 'transparent'}\n _hover={{\n bg: isActive ? 'accent.500' : 'whiteAlpha.500',\n }}\n color={isActive ? 'white' : borderColor}\n textShadow={isActive ? '1px 1px 3px #00000088' : 'none'}\n size=\"sm\"\n disabled={isLoading}\n aria-label={`Go to page ${index + 1}`}>\n {index + 1}\n </Button>\n )\n}\n\nconst PageNavGroup = ({\n group: { indicators, collapsed },\n mobileLayout,\n}: {\n group: PageIndicatorGroup\n mobileLayout: boolean\n}) => {\n const {\n data: { isLoading },\n goToPage,\n } = usePaginatedList()\n const borderColor = useBorderColor()\n\n if (collapsed) {\n return (\n <Popover trigger=\"hover\" gutter={1} variant=\"fixed\">\n {({ onClose }) => (\n <>\n <PopoverTrigger>\n <IconButton\n variant=\"unstyled\"\n width={`${mobileLayout ? MOBILE_NAV_BUTTON_SIZE : NAV_BUTTON_SIZE}px`}\n height={`${mobileLayout ? MOBILE_NAV_BUTTON_SIZE : NAV_BUTTON_SIZE}px`}\n minW=\"0\"\n opacity={0.7}\n _hover={{\n opacity: 1,\n }}\n aria-label=\"more pages\"\n icon={\n <Text fontSize=\"md\" position=\"relative\" bottom=\"2px\">\n ...\n </Text>\n }\n />\n </PopoverTrigger>\n <PopoverContent\n bg=\"background.200\"\n w=\"auto\"\n border=\"1px solid\"\n borderColor={borderColor}\n boxShadow=\"none\">\n <PopoverBody w=\"auto\" maxW=\"166px\" p={0.5}>\n <Flex align=\"center\" justify=\"center\" flexFlow=\"row wrap\">\n {indicators.map(({ index, isActive }) => (\n <Box key={`ind-${index}`} m={0.5}>\n <PageNavButton\n mobileLayout={mobileLayout}\n index={index}\n isActive={isActive}\n onClick={() => {\n goToPage(index)\n onClose()\n }}\n borderColor={borderColor}\n isLoading={isLoading}\n />\n </Box>\n ))}\n </Flex>\n </PopoverBody>\n </PopoverContent>\n </>\n )}\n </Popover>\n )\n }\n return (\n <>\n {indicators.map(({ index, isActive }) => (\n <PageNavButton\n mobileLayout={mobileLayout}\n key={index}\n index={index}\n isActive={isActive}\n onClick={() => goToPage(index)}\n borderColor={borderColor}\n isLoading={isLoading}\n />\n ))}\n </>\n )\n}\n\nconst PageNav = () => {\n const { pageIndex, numPages } = usePaginatedList()\n const { mobileLayout } = useDataList()\n const groups = useMemo<PageIndicatorGroup[]>(() => {\n const nPages = numPages ?? 0\n if (nPages <= 9)\n return [\n {\n indicators: Array.from({ length: nPages }, (_, i) => ({\n index: i,\n isActive: i === pageIndex,\n })),\n collapsed: false,\n },\n ]\n const g: PageIndicatorGroup[] = Array.from({ length: 5 }, (_, i) => ({\n indicators: [],\n collapsed: i % 2 === 1,\n }))\n\n for (let i = 0; i < nPages; i += 1) {\n const groupIndex = getGroupIndex(i, pageIndex, nPages)\n if (!g[groupIndex]) {\n g[groupIndex] = { indicators: [], collapsed: groupIndex !== 2 }\n }\n g[groupIndex].indicators.push({ index: i, isActive: i === pageIndex })\n }\n return g\n .filter(group => group.indicators.length)\n .map(g => ({ ...g, collapsed: g.collapsed && g.indicators.length > 1 }))\n }, [numPages, pageIndex])\n return (\n <Flex gap={1} align=\"center\">\n {groups.map((group, i) => (\n <PageNavGroup mobileLayout={mobileLayout} key={`group-${i}`} group={group} />\n ))}\n </Flex>\n )\n}\n\nconst FOOTER_TEXT_WIDTH = 120\nexport const ListFooter = ({ onResize, flexProps, noFooter }: DataListFooterProps) => {\n const borderColor = useColorModeValue('#cdcdcd', '#2d3748')\n\n const {\n list,\n mobileLayout,\n infiniteScroll,\n search: { search, debounced },\n } = useDataList()\n const {\n data: { data, isLoading },\n totalCount,\n pageIndex,\n limit,\n numFetched,\n goNext,\n goPrev,\n hasMoreData,\n } = usePaginatedList()\n const { itemName, pluralItemName, searchRequired } = list\n\n const { itemsText, pageText } = useMemo(() => {\n if (isLoading && !infiniteScroll)\n return { itemsText: mobileLayout ? 'Loading...' : '', pageText: '' }\n if (totalCount === null) return { itemsText: 'Loading...', pageText: '' }\n if (totalCount === 0 && !isLoading && search === debounced) {\n return {\n itemsText:\n !search && searchRequired\n ? `Search ${pluralItemName ?? toPlural(itemName)}`\n : `No ${pluralItemName ?? toPlural(itemName)} found`,\n pageText: '',\n }\n }\n const firstItemIndex = infiniteScroll ? 1 : (pageIndex || 0) * limit + 1\n // return `Displaying ${pluralItemName || toPlural(itemName)} ${firstItemIndex} - ${\n // infiniteScroll ? numFetched : pageIndex * limit + data.length\n // } of ${totalCount}`\n return {\n itemsText: `${firstItemIndex} - ${\n infiniteScroll ? numFetched : pageIndex * limit + data.length\n } of ${totalCount}`,\n pageText: `Page ${pageIndex + 1} of ${limit ? Math.ceil((totalCount ?? 0) / limit) : 0}`,\n }\n }, [\n totalCount,\n isLoading,\n itemName,\n pluralItemName,\n limit,\n pageIndex,\n search,\n searchRequired,\n mobileLayout,\n debounced,\n data,\n infiniteScroll,\n numFetched,\n ])\n const hasPrev = useMemo(() => !infiniteScroll && goPrev, [infiniteScroll, goPrev])\n const hasNext = useMemo(() => !infiniteScroll && goNext, [infiniteScroll, goNext])\n const progressBg = useColorModeValue('#efefef', '#212121')\n\n const ref = useRef<HTMLDivElement>(null)\n const handleResize = useCallback(\n (e: ResizeObserverEntry) => {\n const height = e.borderBoxSize[0].blockSize\n const width = e.borderBoxSize[0].inlineSize\n onResize({ height, width })\n },\n [onResize],\n )\n useResizeObserver(ref, handleResize)\n\n return (\n <Flex\n ref={ref}\n py={noFooter ? 0 : 2}\n px={noFooter ? 0 : 3}\n borderTop={`1px solid ${borderColor}`}\n position=\"relative\"\n flexFlow={mobileLayout ? 'column' : 'row'}\n gap={mobileLayout ? 1 : 0}\n w=\"100%\"\n {...flexProps}>\n {noFooter || (mobileLayout && infiniteScroll) ? null : (\n <Flex\n align=\"center\"\n justify={mobileLayout ? 'center' : 'space-between'}\n position=\"relative\"\n w=\"100%\">\n {hasPrev && !mobileLayout ? (\n <PrevButton goPrev={goPrev} canGoPrev={!isLoading && !!pageIndex} />\n ) : null}\n <Flex gap={1} align=\"center\">\n {infiniteScroll ? null : (\n <>\n {!mobileLayout ? (\n <Text\n fontFamily=\"fonts.heading\"\n whiteSpace=\"nowrap\"\n textAlign=\"center\"\n w={`${FOOTER_TEXT_WIDTH}px`}\n fontSize=\"sm\">\n {pageText}\n </Text>\n ) : null}\n <PageNav />\n </>\n )}\n {!mobileLayout ? (\n <Text\n fontFamily=\"fonts.heading\"\n textAlign=\"center\"\n w={mobileLayout || infiniteScroll ? 'auto' : `${FOOTER_TEXT_WIDTH}px`}\n whiteSpace=\"nowrap\"\n fontSize=\"sm\">\n {itemsText}\n </Text>\n ) : null}\n </Flex>\n {hasNext && !mobileLayout ? (\n <NextButton goNext={goNext} canGoNext={!isLoading && hasMoreData} />\n ) : null}\n </Flex>\n )}\n {mobileLayout && !noFooter ? (\n <Flex gap={2} w=\"100%\" justify=\"space-between\" align=\"center\">\n {hasPrev ? <PrevButton mobileLayout goPrev={goPrev} canGoPrev={!!pageIndex} /> : null}\n <Text\n fontFamily=\"fonts.heading\"\n textAlign=\"center\"\n w={mobileLayout || infiniteScroll ? 'auto' : `${FOOTER_TEXT_WIDTH}px`}\n whiteSpace=\"nowrap\"\n fontSize=\"sm\">\n {itemsText}\n </Text>\n {hasNext ? <NextButton mobileLayout goNext={goNext} canGoNext={hasMoreData} /> : null}\n </Flex>\n ) : null}\n <FooterLoadingAndError progressBg={progressBg} borderColor={borderColor} />\n </Flex>\n )\n}\n","import {\n Box,\n Button,\n Flex,\n HStack,\n IconButton,\n Image,\n Popover,\n PopoverArrow,\n PopoverBody,\n PopoverCloseButton,\n PopoverContent,\n PopoverTrigger,\n Portal,\n Text,\n useColorMode,\n useColorModeValue,\n} from '@chakra-ui/react'\n\nimport { AnyObject, isFilterGroup, QueryFilter } from '@chem-po/core'\nimport { FilterPreset, FilterPresetGroup, useDataList, useScreen } from '@chem-po/react'\nimport React, { useMemo } from 'react'\nimport { useBorderColor } from '../../hooks'\nimport { filterMatchesPreset } from './utils'\n\nconst FilterButton = <T extends AnyObject>({\n filter,\n filters,\n GroupRender,\n toggleFilter,\n}: {\n filter: FilterPreset<T>\n filters: QueryFilter<T>[]\n GroupRender?: FilterPresetGroup<T>['RenderFilter']\n toggleFilter: (toggled: FilterPreset<T>) => void\n}) => {\n const { label, Render } = filter\n const isActive = useMemo(\n () => filters.some(f => filterMatchesPreset(f, filter)),\n [filters, filter],\n )\n const { colorMode } = useColorMode()\n const borderColor = useBorderColor()\n const textColor = useColorModeValue('gray.700', 'gray.100')\n const CustomRender = Render ?? GroupRender\n return (\n <Box p={0.5}>\n <Button\n onClick={() => toggleFilter(filter)}\n variant=\"unstyled\"\n color={isActive && !CustomRender ? 'white' : textColor}\n bg={isActive && !CustomRender ? 'accent.400' : 'transparent'}\n px={CustomRender ? 0 : 2}\n py={CustomRender ? 0 : 1}\n transition=\"all 300ms\"\n border=\"none\"\n boxShadow={`0px 0px 1px 1px ${isActive ? 'transparent' : '#00000033'}`}\n w=\"auto\"\n _dark={{\n boxShadow: `0px 0px 1px 1px ${isActive ? 'transparent' : '#ffffff66'}`,\n }}\n h=\"auto\"\n minW=\"0\"\n minH=\"0\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderColor={isActive ? 'transparent' : borderColor}\n size=\"none\">\n {CustomRender ? (\n <CustomRender active={isActive} colorMode={colorMode} preset={filter} />\n ) : (\n <Text textShadow={isActive ? '0 0 3px rgba(0,0,0,0.8)' : 'none'} fontSize=\"xs\">\n {label}\n </Text>\n )}\n </Button>\n </Box>\n )\n}\n\nconst FilterGroup = <T extends AnyObject>({\n group,\n filters,\n toggleFilter,\n}: {\n group: FilterPresetGroup<T>\n filters: QueryFilter<T>[]\n toggleFilter: (toggled: FilterPreset<T>) => void\n}) => {\n const { label, filters: groupFilters } = group\n return (\n <Flex px={1} flexFlow=\"column\" w=\"100%\">\n <Text px={1} opacity={0.8} fontSize=\"sm\" fontWeight={600}>\n {label}\n </Text>\n <Flex w=\"100%\" flexFlow=\"row wrap\">\n {groupFilters.map(filter => (\n <FilterButton\n toggleFilter={toggleFilter}\n GroupRender={group.RenderFilter}\n filters={filters}\n key={filter.label}\n filter={filter}\n />\n ))}\n </Flex>\n </Flex>\n )\n}\n\nexport const PresetFilters = () => {\n const { query, list, toggleFilter } = useDataList()\n const isMobile = useScreen(s => s.isMobile)\n const { filters: currentFilters = [] } = query || {}\n const { filterPresets } = list\n const borderColor = useBorderColor()\n return filterPresets?.length ? (\n <HStack spacing={1}>\n <Popover\n // closeOnBlur={false}\n placement=\"right-start\"\n trigger={isMobile ? 'click' : 'hover'}\n // trigger=\n strategy=\"fixed\">\n <PopoverTrigger>\n <IconButton\n size=\"sm\"\n variant=\"ghost\"\n aria-label=\"Filters\"\n icon={\n <Image\n width=\"24px\"\n filter={`grayscale(${currentFilters.length ? 0 : 100}%)`}\n src=\"/icons/tune.svg\"\n />\n }\n />\n </PopoverTrigger>\n <Portal>\n <PopoverContent borderRadius={6} w=\"auto\">\n <PopoverBody w=\"240px\" p={0}>\n <Flex flexFlow=\"column\" w=\"100%\">\n <HStack\n py={1.5}\n px={2}\n w=\"100%\"\n spacing={1}\n borderBottom={`1px solid ${borderColor}`}>\n <Image width=\"18px\" filter=\"grayscale(100%)\" src=\"/icons/tune.svg\" />\n <Text opacity={0.8} fontSize=\"sm\" fontWeight={600}>\n FILTERS\n </Text>\n </HStack>\n <Flex justify=\"center\" w=\"100%\" flexFlow=\"row wrap\" py={1} px={2}>\n {filterPresets.map(filter =>\n isFilterGroup(filter) ? (\n <FilterGroup\n toggleFilter={toggleFilter}\n filters={currentFilters}\n key={filter.label}\n group={filter}\n />\n ) : (\n <FilterButton\n toggleFilter={toggleFilter}\n filters={currentFilters}\n key={filter.label}\n filter={filter}\n />\n ),\n )}\n </Flex>\n </Flex>\n </PopoverBody>\n <PopoverArrow />\n <PopoverCloseButton />\n </PopoverContent>\n </Portal>\n </Popover>\n </HStack>\n ) : null\n}\n","import { ArrowDownIcon, ArrowUpIcon } from '@chakra-ui/icons'\nimport { Button, HStack, Text, useColorMode } from '@chakra-ui/react'\nimport { SortDirection } from '@chem-po/core'\nimport { SortPreset, useDataList } from '@chem-po/react'\nimport React, { useMemo } from 'react'\nimport { CollapseHorizontal } from '../box/CollapseHorizontal'\n\nconst SortButton = ({ preset }: { preset: SortPreset }) => {\n const { setSort: setSortFromPreset, query } = useDataList()\n const { sort } = query\n const { label, key, Render } = preset\n const active = useMemo<SortDirection | null>(\n () => (sort?.key === key ? sort.direction : null),\n [sort, key],\n )\n const { colorMode } = useColorMode()\n\n const color = useMemo(() => {\n if (active) return 'white'\n return colorMode === 'light' ? 'gray.500' : 'gray.400'\n }, [active, colorMode])\n const icon = useMemo(\n () => (sort?.direction === 'asc' ? <ArrowUpIcon w={4} h={4} /> : <ArrowDownIcon w={4} h={4} />),\n [sort],\n )\n\n return (\n <Button\n size=\"xs\"\n variant=\"outline\"\n bg={active ? 'accent.400' : 'transparent'}\n transition=\"all 300ms\"\n textShadow={active ? '0 0 2px rgba(0,0,0,0.7)' : 'none'}\n boxShadow={`0px 0px 1px 1px ${active ? 'transparent' : '#00000033'}`}\n border=\"none\"\n // borderColor={active ? 'transparent' : 'blackAlpha.200'}\n _dark={{\n // borderColor: active ? 'transparent' : 'whiteAlpha.300',\n boxShadow: `0px 0px 1px 1px ${active ? 'transparent' : '#ffffff66'}`,\n color,\n textShadow: active ? '0 0 2px rgba(0,0,0,0.7)' : 'none',\n }}\n aria-label={label}\n opacity={active ? 1 : 0.8}\n height={6}\n pl={active ? 3 : 2}\n pr={2}\n _hover={{ opacity: 1 }}\n gap={0}\n color={color}\n onClick={() =>\n setSortFromPreset({\n direction: active && sort?.direction === 'asc' ? 'desc' : 'asc',\n key,\n })\n }>\n {Render ? (\n <Render active={active} colorMode={colorMode} preset={preset} />\n ) : (\n <Text fontWeight={600} fontSize=\"sm\" color={color}>\n {label}\n </Text>\n )}\n <CollapseHorizontal active={!!active} h=\"16px\" width={20}>\n {icon}\n </CollapseHorizontal>\n </Button>\n )\n}\n\nexport const ListSortView = () => {\n const {\n list: { sortPresets },\n } = useDataList()\n\n if (!sortPresets) return null\n return (\n <HStack spacing={2}>\n {sortPresets.map(preset => (\n <SortButton key={preset.label} preset={preset} />\n ))}\n </HStack>\n )\n}\n","import { AddIcon, RepeatIcon, SearchIcon } from '@chakra-ui/icons'\nimport {\n Box,\n Flex,\n IconButton,\n Image,\n Input,\n InputGroup,\n InputLeftElement,\n Tooltip,\n useColorModeValue,\n} from '@chakra-ui/react'\nimport { getHasAccess, toPlural } from '@chem-po/core'\nimport { useAuth, useDataList } from '@chem-po/react'\nimport useResizeObserver from '@react-hook/resize-observer'\nimport React, { useCallback, useMemo, useRef } from 'react'\nimport { useBorderColor } from '../../hooks/ui/useBorderColor'\nimport { Toggle, ToggleOption } from '../button/Toggle'\nimport { PresetFilters } from './ListFilters'\nimport { ListSortView } from './ListSort'\nimport { DataListHeaderProps } from './types'\n\nconst ListSearch = () => {\n const {\n list,\n search: { search, update },\n } = useDataList()\n const { searchIcon, itemName, pluralItemName } = list\n const iconFilter = useColorModeValue('invert(0)', 'invert(1)')\n\n return (\n <Flex p={1} flex={1} minW=\"0\">\n <InputGroup>\n <InputLeftElement pointerEvents=\"none\">\n {searchIcon ? (\n <Image filter={iconFilter} src={searchIcon} w=\"24px\" />\n ) : (\n <SearchIcon w=\"24px\" opacity={0.5} />\n )}\n </InputLeftElement>\n <Input\n bg=\"whiteAlpha.700\"\n pl={9}\n borderRadius={6}\n _focus={{ boxShadow: 'none', outline: 'none' }}\n border=\"none\"\n _dark={{\n bg: 'blackAlpha.400',\n color: '#cdcdcd',\n _placeholder: {\n color: '#ababab',\n },\n border: 'none',\n }}\n value={search}\n placeholder={`Search for ${pluralItemName ?? toPlural(itemName)}`}\n onChange={e => update(e.target.value)}\n />\n </InputGroup>\n </Flex>\n )\n}\n\nconst HeaderButtons = ({ refetch }: { refetch?: () => void }) => {\n const { list, setNewItemOpen } = useDataList()\n const auth = useAuth()\n const { itemName, field, access } = list\n\n const canCreate = useMemo(() => getHasAccess(auth, access?.create, null), [access, auth])\n return (\n <Flex gap={2} ml=\"auto\" align=\"center\">\n {refetch ? (\n <Tooltip placement=\"left\" hasArrow label=\"Refresh\" aria-label=\"Refresh\">\n <IconButton size=\"xs\" icon={<RepeatIcon />} aria-label=\"Refresh\" onClick={refetch} />\n </Tooltip>\n ) : null}\n {field && canCreate ? (\n <Tooltip\n placement=\"left\"\n hasArrow\n label={`Create new ${itemName}`}\n aria-label={`Create new ${itemName}`}>\n <IconButton\n size=\"xs\"\n icon={<AddIcon />}\n aria-label={`Create new ${itemName}`}\n onClick={() => setNewItemOpen(true)}\n />\n </Tooltip>\n ) : null}\n </Flex>\n )\n}\n\nconst gridToggleOptions: ToggleOption<'grid' | 'list'>[] = [\n {\n id: 'grid',\n label: 'Grid View',\n Render: selected => <Image w={5} opacity={selected ? 1 : 0.7} src=\"/icons/grid_view.svg\" />,\n },\n {\n id: 'list',\n label: 'List View',\n Render: selected => <Image w={6} opacity={selected ? 1 : 0.7} src=\"/icons/list.svg\" />,\n },\n]\n\nconst GridViewToggle = () => {\n const { toggleGridLayout, gridLayout } = useDataList()\n if (!toggleGridLayout) return null\n return (\n <Toggle\n onChange={toggleGridLayout}\n options={gridToggleOptions}\n value={gridLayout ? 'grid' : 'list'}\n />\n )\n}\n\nexport const DataListHeader = ({ onResize, refetch, boxProps }: DataListHeaderProps) => {\n const { list, mobileLayout, toggleGridLayout } = useDataList()\n const { searchPath, sortPresets, filterPresets, Header } = list\n\n const borderColor = useBorderColor()\n const ref = useRef<HTMLDivElement>(null)\n const handleResize = useCallback(\n (entry: ResizeObserverEntry) => {\n onResize({ height: entry.contentRect.height, width: entry.contentRect.width })\n },\n [onResize],\n )\n const hasSearch = useMemo(() => !!Object.keys(searchPath ?? {}).length, [searchPath])\n\n useResizeObserver(ref, handleResize)\n\n return (\n <Box\n ref={ref}\n bg=\"background.200\"\n borderBottom={`1px solid ${borderColor}`}\n w=\"100%\"\n {...boxProps}>\n <Flex px={2} align=\"center\" w=\"100%\">\n {sortPresets?.length || filterPresets?.length || hasSearch ? (\n <Flex w=\"100%\" flexFlow={mobileLayout ? 'column' : 'row'}>\n {mobileLayout && !Header ? null : (\n <Flex flex={1} px={2} py={mobileLayout ? 0 : 1} gap={1} align=\"center\">\n {mobileLayout ? null : (\n <Flex flex={1} minW=\"0\" align=\"center\" gap={2}>\n {toggleGridLayout ? <GridViewToggle /> : null}\n <PresetFilters />\n <ListSortView />\n {hasSearch ? <ListSearch /> : null}\n </Flex>\n )}\n <Flex align=\"center\" minW=\"0\" gap={3} ml=\"auto\">\n {Header ? (\n <Box minW=\"0\" flex={1}>\n <Header />\n </Box>\n ) : null}\n {mobileLayout ? null : <HeaderButtons refetch={refetch} />}\n </Flex>\n </Flex>\n )}\n {hasSearch && mobileLayout ? <ListSearch /> : null}\n {mobileLayout && (sortPresets?.length || filterPresets?.length) ? (\n <Flex pl={1} py={1} gap={1.5} align=\"center\" w=\"100%\">\n {toggleGridLayout ? <GridViewToggle /> : null}\n <PresetFilters />\n <ListSortView />\n <HeaderButtons refetch={refetch} />\n </Flex>\n ) : null}\n </Flex>\n ) : null}\n </Flex>\n </Box>\n )\n}\n","import { Text, useColorMode, useColorModeValue } from '@chakra-ui/react'\nimport { AnyObject, DBItem } from '@chem-po/core'\nimport { useDataList, usePaginatedList } from '@chem-po/react'\nimport React, { useEffect, useMemo, useState } from 'react'\nimport { DefaultModal } from '../modal'\n\nexport const ListItemView = () => {\n const { selectedItemId, deselectItem, list } = useDataList()\n const { ItemView, itemName } = list || {}\n const [contentOffset, setContentOffset] = useState({ x: 0, y: 0 })\n const {\n data: { data },\n // refetchItem,\n } = usePaginatedList()\n const item = useMemo(\n () => data.find(d => d.id === selectedItemId) ?? null,\n [data, selectedItemId],\n )\n const { colorMode } = useColorMode()\n const errorColor = useColorModeValue('red.600', 'red.300')\n const [prevItem, setPrevItem] = useState<DBItem<AnyObject> | null>(null)\n useEffect(() => {\n if (item) {\n setPrevItem(item)\n }\n }, [item])\n\n return (\n <DefaultModal\n contentProps={{\n p: 0,\n transition: 'all 300ms',\n transform: `translate(${contentOffset.x}px, ${contentOffset.y}px)`,\n }}\n scrollBehavior=\"inside\"\n onClose={deselectItem}\n isOpen={!!ItemView && !!selectedItemId}>\n {ItemView && prevItem ? (\n <ItemView\n item={prevItem}\n colorMode={colorMode}\n clearContentOffset={() => setContentOffset({ x: 0, y: 0 })}\n updateContentOffset={(x, y) => setContentOffset({ x, y })}\n // onEdited={onEdited}\n />\n ) : (\n <Text color={errorColor} p={4}>\n Error displaying {itemName}\n </Text>\n )}\n </DefaultModal>\n )\n}\n","import { Box } from '@chakra-ui/react'\nimport { AnyObject } from '@chem-po/core'\nimport { useDataList, useFullSize, usePaginatedList } from '@chem-po/react'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { LoadingOverlay } from '../loading'\nimport { ListBody } from './Body/ListBody'\nimport { ListCreate } from './ListCreate'\nimport { ListFooter } from './ListFooter'\nimport { DataListHeader } from './ListHeader'\nimport { ListItemView } from './ListItemView'\nimport { ListContentProps } from './types'\n\nexport const ListContent = <T extends AnyObject>({\n modals,\n noFooter,\n headerProps,\n footerProps,\n}: ListContentProps<T>) => {\n const {\n data: { isLoading, data },\n } = usePaginatedList()\n const { list } = useDataList<T>()\n const { height } = useFullSize()\n\n const [headerHeight, setHeaderHeight] = useState(0)\n const [footerHeight, setFooterHeight] = useState(0)\n const bodyHeight = useMemo(\n () => height - headerHeight - footerHeight,\n [height, headerHeight, footerHeight],\n )\n const handleHeaderResize = useCallback((updated: { height: number; width: number }) => {\n setHeaderHeight(updated.height)\n }, [])\n\n const handleFooterResize = useCallback((size: { width: number; height: number }) => {\n setFooterHeight(size.height)\n }, [])\n\n const { ItemView: ItemViewComponent, field: createField } = list\n\n return (\n <>\n <DataListHeader boxProps={headerProps} onResize={handleHeaderResize} />\n <Box h={`${bodyHeight}px`} position=\"relative\" w=\"100%\">\n <ListBody height={bodyHeight} />\n {noFooter ? <LoadingOverlay isLoading={!data.length && isLoading} /> : null}\n </Box>\n <ListFooter noFooter={noFooter} flexProps={footerProps} onResize={handleFooterResize} />\n {modals ?? null}\n {ItemViewComponent ? <ListItemView /> : null}\n {createField ? <ListCreate field={createField} /> : null}\n </>\n )\n}\n","import { AnyObject } from '@chem-po/core'\nimport {\n PaginatedListProvider,\n useBackendBase,\n useDataListData,\n usePaginatedQuery,\n} from '@chem-po/react'\nimport React from 'react'\nimport { ListContainer } from './ListContainer'\nimport { ListContent } from './ListContent'\nimport { ListViewProps } from './types'\n\nexport const DataList = <T extends AnyObject>({\n list,\n // basePath,\n flexProps,\n infiniteScroll,\n ...rest\n}: ListViewProps<T>) => {\n const {\n adapter: { db },\n } = useBackendBase()\n const { baseQuery } = list\n const state = useDataListData(list, infiniteScroll)\n const data = usePaginatedQuery<T>(db, baseQuery, !!infiniteScroll)\n return (\n <PaginatedListProvider<T> state={state} data={data}>\n <ListContainer {...flexProps}>\n <ListContent {...rest} />\n </ListContainer>\n </PaginatedListProvider>\n )\n}\n","import React, { useEffect, useRef } from 'react'\n\nexport const NumberTicker = ({ value, duration = 30 }: { value: number; duration?: number }) => {\n const spanRef = useRef<HTMLSpanElement>(null)\n const helperValue = useRef(value)\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null)\n useEffect(() => {\n intervalRef.current = setInterval(() => {\n if (spanRef.current) {\n if (helperValue.current === value && intervalRef.current)\n return clearInterval(intervalRef.current)\n if (helperValue.current < value) {\n helperValue.current += 1\n spanRef.current.innerText = helperValue.current.toString()\n } else if (helperValue.current > value) {\n helperValue.current -= 1\n spanRef.current.innerText = helperValue.current.toString()\n }\n }\n return () => {}\n }, duration)\n return () => {\n if (intervalRef.current) clearInterval(intervalRef.current)\n }\n }, [value, duration])\n\n return <span ref={spanRef}>{value}</span>\n}\n","import { MoonIcon, SunIcon } from '@chakra-ui/icons'\nimport { Flex, FlexProps, IconButton, useColorMode, useColorModeValue } from '@chakra-ui/react'\nimport React from 'react'\nexport const DarkModeToggle = () => {\n const { colorMode, toggleColorMode } = useColorMode()\n const bg = useColorModeValue('gray.200', 'whiteAlpha.200')\n const color = useColorModeValue('blackAlpha.700', 'whiteAlpha.800')\n const hoverBg = useColorModeValue('gray.300', 'whiteAlpha.300')\n const hoverColor = useColorModeValue('gray.800', 'whiteAlpha.800')\n return (\n <IconButton\n aria-label=\"Toggle dark mode\"\n bg={bg}\n color={color}\n borderRadius=\"full\"\n _hover={{\n bg: hoverBg,\n color: hoverColor,\n }}\n w={8}\n h={8}\n minW={0}\n icon={\n colorMode === 'light' ? (\n <SunIcon w={4} h={4} />\n ) : (\n <MoonIcon w={4} h={4} filter=\"drop-shadow(1px 1px 2px #000000aa)\" />\n )\n }\n onClick={toggleColorMode}\n variant=\"ghost\"\n />\n )\n}\n\nexport const AbsoluteDarkModeToggle = (props: FlexProps) => (\n <Flex position=\"absolute\" bottom={3} right={3} {...props}>\n <DarkModeToggle />\n </Flex>\n)\n","import { switchAnatomy } from '@chakra-ui/anatomy'\nimport { createMultiStyleConfigHelpers, extendTheme } from '@chakra-ui/react'\nimport { cssVar } from '@chakra-ui/theme-tools'\nimport { palette } from '@chem-po/core'\n\nconst { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(\n switchAnatomy.keys,\n)\n\nconst switchBaseTheme = definePartsStyle({\n // define the part you're going to style\n track: {\n _focusVisible: {\n boxShadow: 'none',\n },\n },\n})\n\nexport const switchTheme = defineMultiStyleConfig({ baseStyle: switchBaseTheme })\nconst $arrowBg = cssVar('popper-arrow-bg')\n\nexport const headingFont = 'Encode Sans'\nexport const bodyFont = 'Noto Sans'\n\nexport const baseTheme = extendTheme({\n semanticTokens: {\n colors: {\n background: {\n // 100: mode('gray.50', palette.gray.dark)(props),\n // 200: mode('gray.100', palette.gray.medium)(props),\n // 300: mode('gray.200', palette.gray.light)(props),\n // 400: mode('gray.300', palette.gray.lighter)(props),\n 50: {\n default: 'white',\n _dark: palette.gray.darker,\n },\n 100: {\n default: 'gray.100',\n _dark: palette.gray.dark,\n },\n 200: {\n default: '#efefef',\n _dark: palette.gray.medium,\n },\n },\n accent: {\n 50: {\n default: 'blue.50',\n _dark: 'blue.900',\n },\n 100: {\n default: 'blue.100',\n _dark: 'blue.800',\n },\n 200: {\n default: 'blue.200',\n _dark: 'blue.700',\n },\n 300: {\n default: 'blue.300',\n _dark: 'blue.600',\n },\n 400: {\n default: 'blue.400',\n _dark: 'blue.500',\n },\n 500: {\n default: 'blue.500',\n _dark: 'blue.400',\n },\n 600: {\n default: 'blue.600',\n _dark: 'blue.300',\n },\n 700: {\n default: 'blue.700',\n _dark: 'blue.200',\n },\n 800: {\n default: 'blue.800',\n _dark: 'blue.100',\n },\n 900: {\n default: 'blue.900',\n _dark: 'blue.50',\n },\n },\n error: {\n default: 'red.500',\n _dark: 'red.300',\n },\n },\n fonts: {\n body: bodyFont,\n heading: headingFont,\n },\n },\n components: {\n Badge: {\n baseStyle: {\n bg: '#9a9a9a',\n textShadow: 'none',\n color: 'white',\n boxShadow: '1px 1px 3px #00000077',\n _dark: {\n bg: '#555555',\n textShadow: '1px 1px 2px #00000077',\n color: '#efefef',\n },\n },\n },\n Tooltip: {\n baseStyle: {\n bg: '#ababab',\n textShadow: '0 0 3px rgba(0,0,0,0.5)',\n color: 'white',\n [$arrowBg.variable]: '#ababab',\n _dark: {\n bg: '#777777',\n textShadow: 'none',\n color: '#efefef',\n [$arrowBg.variable]: '#777777',\n },\n },\n },\n Button: {\n baseStyle: {\n fontFamily: headingFont,\n fontWeight: 500,\n _focus: { boxShadow: 'none' },\n },\n variants: {\n link: {\n color: '#444',\n _dark: { color: 'rgba(230,230,255,0.9)' },\n },\n ghost: {\n _hover: { bg: 'blackAlpha.500' },\n },\n solid: {\n textShadow: '1px 1px 3px #00000077',\n bg: 'blackAlpha.400',\n color: 'whiteAlpha.800',\n _hover: {\n bg: 'blackAlpha.500',\n },\n _dark: {\n bg: 'whiteAlpha.300',\n color: 'whiteAlpha.800',\n _hover: {\n bg: 'whiteAlpha.400',\n },\n },\n },\n outline: {\n border: '1px solid',\n borderColor: '#ababab',\n color: '#656565',\n _hover: {\n bg: 'blackAlpha.100',\n },\n _dark: {\n border: '1px solid #999',\n color: '#999',\n _hover: {\n bg: 'whiteAlpha.300',\n },\n },\n },\n },\n },\n Tabs: {\n baseStyle: {\n tab: { _focus: { boxShadow: 'none' } },\n },\n },\n Text: {\n baseStyle: {\n fontFamily: bodyFont,\n },\n },\n Popover: {\n baseStyle: {\n root: { _focus: { boxShadow: 'none' } },\n content: {\n bg: 'background.100',\n border: 'none',\n boxShadow: '0 0 4px rgba(0,0,0,0.5)',\n [$arrowBg.variable]: 'background.100',\n _dark: {\n bg: 'background.100',\n [$arrowBg.variable]: 'background.100',\n },\n },\n },\n },\n Checkbox: {\n baseStyle: {\n control: {\n _focus: { boxShadow: 'none' },\n border: '2px solid #ababab',\n borderColor: '#ababab',\n _checked: {\n bg: '#666666',\n color: '#efefef',\n border: 'none',\n },\n _hover: { bg: '#555', border: 'none' },\n _dark: {\n _checked: {\n bg: '#efefef',\n color: '#444444',\n border: 'none',\n },\n _hover: { bg: '#555', border: 'none' },\n },\n },\n label: {\n color: '#888',\n _dark: { color: '#999999' },\n _checked: {\n color: '#444444',\n _dark: { color: '#cdcdcd' },\n },\n },\n },\n variants: {\n noBox: {\n control: {\n bg: 'transparent',\n _hover: { bg: 'none' },\n },\n },\n },\n },\n Modal: {\n baseStyle: {\n dialog: {\n bg: 'background.100',\n boxShadow: '0 0 6px rgba(0,0,0,0.5)',\n _dark: {\n bg: 'background.100',\n },\n },\n },\n },\n Input: {\n baseStyle: {\n field: {\n _focus: {\n boxShadow: 'none',\n outline: 'none',\n border: '1px solid #bcbcbc',\n },\n },\n },\n variants: {\n text: {\n field: {\n borderRadius: 6,\n border: '1px solid #dedede',\n _focus: { boxShadow: 'none', borderColor: '#bcbcbc' },\n _active: { boxShadow: 'none' },\n _placeholder: { color: '#777' },\n _dark: {\n border: '1px solid #777',\n _focus: { borderColor: '#999', boxShadow: 'none' },\n _placeholder: { color: '#777' },\n },\n },\n },\n },\n defaultProps: {\n variant: 'text',\n },\n },\n Switch: switchTheme,\n Menu: {\n baseStyle: {\n list: {\n bg: 'background.100',\n border: 'none',\n boxShadow: '0 0 6px rgba(0,0,0,0.5)',\n _dark: {\n bg: 'background.100',\n },\n },\n item: {\n _hover: {\n bg: 'rgba(0,0,0,0.3)',\n },\n _focus: {\n bg: 'rgba(0,0,0,0.2)',\n },\n },\n },\n },\n Progress: {\n baseStyle: {\n track: {\n bg: 'blackAlpha.300',\n borderRadius: 'full',\n _dark: {\n bg: 'whiteAlpha.300',\n },\n },\n filledTrack: {\n bg: 'blackAlpha.400',\n _dark: {\n bg: 'whiteAlpha.500',\n },\n },\n },\n },\n },\n})\n","import { useScreen } from '@chem-po/react'\n\nexport const initializeScreen = () => {\n if (typeof window !== 'undefined') {\n const onResize = () => {\n const width = window.innerWidth\n const height = window.innerHeight\n useScreen.setState({\n width,\n height,\n isMobile: width < 769,\n isPortrait: width < height,\n })\n window.addEventListener('resize', onResize)\n }\n onResize()\n return () => {\n window.removeEventListener('resize', onResize)\n }\n }\n return () => {}\n}\n"]}