sanity-plugin-shopify-assets 1.2.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +3 -3
- package/dist/index.d.ts +49 -61
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +477 -713
- package/dist/index.js.map +1 -1
- package/package.json +38 -69
- package/dist/index.esm.js +0 -859
- package/dist/index.esm.js.map +0 -1
- package/sanity.json +0 -8
- package/src/components/AssetDiff.tsx +0 -59
- package/src/components/AssetPreview.tsx +0 -75
- package/src/components/DialogHeader.tsx +0 -44
- package/src/components/File.styled.tsx +0 -60
- package/src/components/File.tsx +0 -54
- package/src/components/ShopifyAssetInput.styled.tsx +0 -13
- package/src/components/ShopifyAssetInput.tsx +0 -84
- package/src/components/ShopifyAssetPicker.tsx +0 -207
- package/src/components/ShopifyIcon.tsx +0 -22
- package/src/components/VideoPlayer.tsx +0 -50
- package/src/datastores/shopify.ts +0 -93
- package/src/index.ts +0 -33
- package/src/sanity-ui.d.ts +0 -6
- package/src/schema/shopifyAssetMetadataSchema.ts +0 -34
- package/src/schema/shopifyAssetPreviewSchema.ts +0 -24
- package/src/schema/shopifyAssetSchema.ts +0 -88
- package/src/types.ts +0 -54
- package/src/utils/helpers.ts +0 -1
- package/v2-incompatible.js +0 -11
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/File.styled.tsx","../src/components/VideoPlayer.tsx","../src/components/AssetPreview.tsx","../src/datastores/shopify.ts","../src/components/DialogHeader.tsx","../src/utils/helpers.ts","../src/components/File.tsx","../src/components/ShopifyAssetInput.styled.tsx","../src/components/ShopifyAssetPicker.tsx","../src/components/ShopifyIcon.tsx","../src/components/ShopifyAssetInput.tsx","../src/components/AssetDiff.tsx","../src/schema/shopifyAssetSchema.ts","../src/schema/shopifyAssetPreviewSchema.ts","../src/schema/shopifyAssetMetadataSchema.ts","../src/index.ts"],"sourcesContent":["import {Card} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nexport const Root = styled.div`\n overflow: hidden;\n background-origin: content-box;\n background-repeat: no-repeat;\n background-clip: border-box;\n background-size: cover;\n background-color: ${({theme}) => theme.sanity.color.card.enabled.bg2};\n position: relative;\n outline: none !important;\n border: ${({theme}) => `1px solid ${theme.sanity.color.card.enabled.border}`};\n box-sizing: content-box;\n user-drag: none;\n\n &:hover {\n opacity: 0.85;\n }\n\n &:focus,\n &:active {\n border: 1px solid var(--input-border-color-focus);\n box-shadow: inset 0 0 0 3px var(--input-border-color-focus);\n }\n`\n\nexport const InfoLine = styled(Card)`\n ${({theme}) => `\n --infoline-fg: ${theme.sanity.color.card.enabled.fg};\n --infoline-bg: ${theme.sanity.color.card.enabled.bg};\n `};\n user-drag: none;\n position: absolute;\n background-color: var(--infoline-bg);\n top: 0;\n left: 0;\n max-width: 65%;\n overflow-wrap: break-word;\n\n [data-ui='Text'] {\n color: var(--infoline-fg);\n }\n`\n\nexport const DurationLine = styled(Card)`\n ${({theme}) => `\n --durationline-fg: ${theme.sanity.color.card.enabled.bg};\n --durationline-bg: ${theme.sanity.color.card.enabled.fg};\n `};\n user-drag: none;\n position: absolute;\n background-color: var(--durationline-bg);\n top: 0;\n right: 0;\n\n [data-ui='Text'] {\n color: var(--durationline-fg);\n }\n`\n","import React, {type CSSProperties, type MouseEvent, useCallback, useEffect} from 'react'\nimport videojs, {type VideoJsPlayer} from 'video.js'\n\ntype PlayerKind = 'player' | 'diff'\n\ninterface VideoProps {\n src: string\n kind: PlayerKind\n}\n\nconst VideoPlayer = ({src, kind}: VideoProps) => {\n const videoNode = React.useRef<HTMLVideoElement>(null)\n const player = React.useRef<VideoJsPlayer>()\n\n useEffect(() => {\n player.current = videojs(videoNode.current ?? '', {\n sources: [{src}],\n controls: true,\n })\n\n player.current.src({src})\n }, [src])\n\n const stopPropagation = useCallback((event: MouseEvent) => {\n event.stopPropagation()\n }, [])\n\n const className: Record<PlayerKind, string> = {\n player: 'video-js vjs-16-9 vjs-big-play-centered',\n diff: 'video-js vjs-layout-tiny vjs-fluid',\n }\n\n const style: CSSProperties = {position: 'relative'}\n\n return (\n <div>\n <link href=\"https://vjs.zencdn.net/7.8.4/video-js.css\" rel=\"stylesheet\" />\n <div data-vjs-player>\n <video\n onClick={stopPropagation}\n style={kind === 'diff' ? style : {}}\n className={className[kind]}\n ref={videoNode}\n />\n </div>\n </div>\n )\n}\n\nexport default VideoPlayer\n","import React from 'react'\nimport prettyBytes from 'pretty-bytes'\nimport prettyMilliseconds from 'pretty-ms'\nimport {styled} from 'styled-components'\nimport {Box, Flex, Text} from '@sanity/ui'\n\nimport {Asset} from '../types'\nimport {DurationLine, InfoLine} from './File.styled'\nimport VideoPlayer from './VideoPlayer'\n\ninterface ComponentProps {\n value: Asset\n}\n\nexport const StyledBox = styled(Box)`\n background-color: ${({theme}) => theme.sanity.color?.card?.enabled?.bg2};\n border: ${({theme}) => `1px solid ${theme.sanity?.color?.card?.enabled?.border}`};\n display: flex;\n justify-content: center;\n margin-bottom: ${({theme}) => theme.sanity.space[4]};\n position: relative;\n`\n\nconst RenderAsset = ({value, url}: {value: Asset; url: string}) => {\n switch (value.type) {\n case 'video':\n return <VideoPlayer src={url} kind=\"player\" />\n default:\n return (\n <Flex justify=\"center\">\n <img\n alt=\"preview\"\n src={value?.preview?.url}\n style={{\n maxWidth: '100%',\n height: 'auto',\n display: 'block',\n maxHeight: '30vh',\n }}\n />\n </Flex>\n )\n }\n}\n\nconst AssetPreview = ({value}: ComponentProps) => {\n const url = value && value.url\n\n if (!value || !url) {\n return null\n }\n\n const {filename, meta} = value\n const {fileSize, duration} = meta\n\n return (\n <StyledBox marginBottom={2}>\n <RenderAsset value={value} url={url} />\n <InfoLine padding={2} radius={2} margin={2}>\n <Text size={1} title={`Select ${filename}`}>\n {filename} {fileSize && `(${prettyBytes(fileSize)})`}\n </Text>\n </InfoLine>\n {duration && (\n <DurationLine padding={2} radius={2} margin={2}>\n <Text size={1} title={`Video duration: ${filename}`}>\n {prettyMilliseconds(duration, {colonNotation: true, secondsDecimalDigits: 0})}\n </Text>\n </DurationLine>\n )}\n </StyledBox>\n )\n}\n\nexport default AssetPreview\n","import {BehaviorSubject, Observable, concat, defer} from 'rxjs'\nimport {debounceTime, distinctUntilChanged, map, switchMap, withLatestFrom} from 'rxjs/operators'\n\nimport axios from 'axios'\n\ntype SearchSubject = BehaviorSubject<string>\ntype CursorSubject = BehaviorSubject<any>\n\ninterface fetchProps {\n projectId: string\n dataset: string\n shop: string\n query: SearchSubject\n cursor: CursorSubject\n resultsPerPage: number\n token?: string\n}\n\ninterface searchProps extends Omit<fetchProps, 'query' | 'cursor'> {\n query: string\n cursor: string\n}\ninterface listProps extends Omit<fetchProps, 'query' | 'cursor'> {\n cursor: string\n}\n\nconst fetchSearch = (props: searchProps): Observable<any> => {\n const {projectId, dataset, shop, query, cursor, resultsPerPage, token} = props\n\n return defer(() => {\n return axios.get(\n `https://${projectId}.api.sanity.io/v1/shopify/assets/${dataset}?shop=${shop}&query=${encodeURIComponent(\n query\n )}${cursor && `&cursor=${cursor}`}&limit=${resultsPerPage}`,\n {\n withCredentials: true,\n method: 'GET',\n headers: token\n ? {\n Authorization: `Bearer ${token}`,\n }\n : {},\n }\n )\n }).pipe(map((result) => result.data))\n}\n\nconst fetchList = (props: listProps): Observable<any> => {\n const {projectId, dataset, shop, cursor, resultsPerPage, token} = props\n\n return defer(() =>\n axios.get(\n `https://${projectId}.api.sanity.io/v1/shopify/assets/${dataset}?shop=${shop}${\n cursor && `&cursor=${cursor}`\n }&limit=${resultsPerPage}`,\n {\n withCredentials: true,\n method: 'GET',\n headers: token\n ? {\n Authorization: `Bearer ${token}`,\n }\n : {},\n }\n )\n ).pipe(map((result) => result.data))\n}\n\nexport const search = (props: fetchProps): Observable<any> => {\n const {projectId, dataset, shop, query, cursor, resultsPerPage, token} = props\n\n return concat(\n query.pipe(\n withLatestFrom(cursor),\n debounceTime(500),\n distinctUntilChanged(),\n switchMap(([q, c]) => {\n if (q) {\n return fetchSearch({\n projectId,\n dataset,\n shop,\n query: q,\n cursor: c,\n resultsPerPage,\n token,\n }).pipe(distinctUntilChanged())\n }\n return fetchList({projectId, dataset, shop, cursor: c, resultsPerPage, token})\n })\n )\n )\n}\n","import React, {useCallback} from 'react'\nimport {Box, Flex, Button} from '@sanity/ui'\nimport {LaunchIcon} from '@sanity/icons'\n\ninterface Props {\n title: string\n shopifyDomain: string\n}\n\nconst DialogHeader = (props: Props) => {\n const {title, shopifyDomain} = props\n\n const handleOpenInNewTab = useCallback(() => {\n window.open(`https://${shopifyDomain}/admin/content/files`, '_blank')\n }, [shopifyDomain])\n\n return (\n <Flex align=\"center\">\n {title}\n {/*\n HACK: Sanity UI will attempt to focus the first 'focusable' descendant of any dialog.\n Typically this is fine, but since our first focusable element is a button with a tooltip, this\n default behaviour causes the tooltip to appear whenever the dialog is opened, which we don't want!\n\n To get around this, we include a pseudo-hidden input to ensure our tooltip-enabled button remains\n unfocused on initial mount.\n */}\n <input style={{opacity: 0}} tabIndex={-1} type=\"button\" />\n <Box style={{position: 'absolute', right: '-1.5em'}}>\n <Box className=\"button-large\">\n <Button\n fontSize={1}\n icon={LaunchIcon}\n mode=\"bleed\"\n onClick={handleOpenInNewTab}\n text=\"Add New\"\n />\n </Box>\n </Box>\n </Flex>\n )\n}\n\nexport default DialogHeader\n","export const extractName = (name: string): string => name?.split('/')?.pop()?.split('?')[0] ?? ''\n","import React, {useCallback, useRef} from 'react'\nimport {Text} from '@sanity/ui'\nimport prettyBytes from 'pretty-bytes'\nimport prettyMilliseconds from 'pretty-ms'\n\nimport {extractName} from '../utils/helpers'\nimport {Asset, ShopifyFile} from '../types'\nimport {DurationLine, InfoLine, Root} from './File.styled'\n\ntype Props = {\n data: ShopifyFile\n width: number\n height: number\n onClick: (file: Asset) => void\n}\n\nexport default function File(props: Props) {\n const {onClick, data, width, height} = props\n const rootElm = useRef<HTMLDivElement>(null)\n\n const {preview, meta} = data\n const filename = extractName(data.url)\n\n const handleClick = useCallback(() => {\n onClick({...data, filename})\n }, [onClick, data, filename])\n\n return (\n <Root\n ref={rootElm}\n title={`${filename}`}\n tabIndex={0}\n style={{\n width: `${width}px`,\n height: `${height}px`,\n backgroundImage: `url(\"${preview?.url}\")`,\n }}\n onClick={handleClick}\n >\n <InfoLine padding={2} radius={2} margin={2}>\n <Text size={1} title={`Select ${filename}`}>\n {filename} {meta.fileSize && `(${prettyBytes(meta.fileSize)})`}\n </Text>\n </InfoLine>\n {meta.duration && (\n <DurationLine padding={2} radius={2} margin={2}>\n <Text size={1} title={`Video duration: ${filename}`}>\n {prettyMilliseconds(meta.duration, {colonNotation: true, secondsDecimalDigits: 0})}\n </Text>\n </DurationLine>\n )}\n </Root>\n )\n}\n","import {Stack} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nexport const Search = styled(Stack)`\n position: sticky;\n top: 0;\n z-index: 1;\n`\n\nexport const Scroller = styled.div`\n overflow-y: auto;\n max-height: 80vh;\n`\n","import {BehaviorSubject, Subscription} from 'rxjs'\nimport {ErrorOutlineIcon} from '@sanity/icons'\nimport {Card, Dialog, Flex, Inline, Spinner, Stack, Text, TextInput} from '@sanity/ui'\nimport {PatchEvent, set, useProjectId, ObjectInputProps, useDataset, useClient} from 'sanity'\nimport React, {useCallback, useEffect, useMemo, useState} from 'react'\nimport PhotoAlbum from 'react-photo-album'\nimport InfiniteScroll from 'react-infinite-scroll-component'\n\nimport {search} from '../datastores/shopify'\nimport type {Asset, PageInfo, ShopifyAPIResponse, ShopifyFile} from '../types'\nimport DialogHeader from './DialogHeader'\nimport File from './File'\nimport {Search} from './ShopifyAssetInput.styled'\n\nconst RESULTS_PER_PAGE = 42\nconst PHOTO_SPACING = 2\nconst PHOTO_PADDING = 1\n\nexport interface AssetPickerProps extends ObjectInputProps<Asset> {\n shopifyDomain: string\n isOpen: boolean\n onClose: () => void\n}\n\nexport default function ShopifyAssetPicker(props: AssetPickerProps) {\n const {isOpen, onClose, shopifyDomain, onChange, schemaType, value} = props\n const projectId = useProjectId()\n const dataset = useDataset()\n const client = useClient({apiVersion: '2021-06-07'})\n const token = client.config().token\n\n const [error, setError] = useState('')\n const [query, setQuery] = useState('')\n const [searchResults, setSearchResults] = useState<any[]>([])\n const [pageInfo, setPageInfo] = useState<PageInfo>()\n const [isLoading, setIsLoading] = useState(true)\n\n const searchSubject$ = useMemo(() => new BehaviorSubject(''), [])\n const cursorSubject$ = useMemo(() => new BehaviorSubject(''), [])\n\n useEffect(() => {\n if (!shopifyDomain) setError('Please configure your Shopify domain in the plugin config')\n }, [shopifyDomain])\n\n useEffect(() => {\n const searchSubscription: Subscription = search({\n projectId,\n dataset,\n shop: shopifyDomain,\n query: searchSubject$,\n cursor: cursorSubject$,\n resultsPerPage: RESULTS_PER_PAGE,\n token,\n }).subscribe({\n next: (results: ShopifyAPIResponse) => {\n setSearchResults((prevResults) => [...prevResults, ...results.assets])\n setPageInfo(results.pageInfo)\n setIsLoading(false)\n },\n error: (err) => {\n setError(\n `${\n err.response?.data?.message || err.message || 'An error occurred'\n } - check plugin configuration`\n )\n },\n })\n\n return () => searchSubscription.unsubscribe()\n }, [searchSubject$, cursorSubject$, shopifyDomain, projectId, dataset, token])\n\n const handleSearchTermChanged = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const newQuery = event.currentTarget.value\n setQuery(newQuery)\n setSearchResults([])\n setPageInfo(undefined)\n setIsLoading(true)\n\n cursorSubject$.next('')\n searchSubject$.next(newQuery)\n },\n [cursorSubject$, searchSubject$]\n )\n\n const handleScollerLoadMore = useCallback(() => {\n setIsLoading(true)\n if (pageInfo) cursorSubject$.next(pageInfo.cursor)\n searchSubject$.next(query)\n }, [cursorSubject$, pageInfo, searchSubject$, query])\n\n const handleSelect = useCallback(\n (file: Asset) => {\n file._key = value?._key\n file._type = schemaType.name\n onChange(PatchEvent.from([set(file)]))\n onClose()\n },\n [onChange, onClose, schemaType.name, value?._key]\n )\n\n const renderFile = useCallback(\n (fileProps: any) => {\n const {photo, layout} = fileProps\n return (\n <File\n onClick={handleSelect}\n data={photo.data}\n width={layout.width}\n height={layout.height}\n />\n )\n },\n [handleSelect]\n )\n\n const handleWidth = useCallback((width: number) => {\n if (width < 300) return 150\n else if (width < 600) return 200\n return 300\n }, [])\n\n return (\n <Dialog\n id=\"shopify-asset-source\"\n header={<DialogHeader title=\"Shopify Assets\" shopifyDomain={shopifyDomain} />}\n onClose={onClose}\n open={isOpen}\n width={4}\n >\n <Stack space={3} padding={4}>\n {error ? (\n <Card overflow=\"hidden\" padding={4} radius={2} shadow={1} tone=\"critical\">\n <Flex align=\"center\" gap={3}>\n <Text size={2}>\n <ErrorOutlineIcon />\n </Text>\n <Inline space={2}>\n <Text size={1}>{error}</Text>\n </Inline>\n </Flex>\n </Card>\n ) : (\n <>\n <Card>\n <Search space={3}>\n <Text size={1} weight=\"semibold\">\n Search Shopify for assets\n </Text>\n <TextInput\n label=\"Search Images\"\n placeholder=\"filename.jpg\"\n value={query}\n onChange={handleSearchTermChanged}\n />\n </Search>\n </Card>\n {!isLoading && searchResults.length === 0 && (\n <Text size={1} muted>\n No results found\n </Text>\n )}\n <InfiniteScroll\n dataLength={searchResults.length} // This is important field to render the next data\n next={handleScollerLoadMore}\n hasMore={pageInfo ? pageInfo?.hasNextPage : true}\n scrollThreshold={0.99}\n height=\"60vh\"\n loader={\n <Flex align=\"center\" justify=\"center\" padding={3}>\n <Spinner muted />\n </Flex>\n }\n endMessage={\n <Flex align=\"center\" justify=\"center\" padding={3}>\n <Text size={1} muted>\n No more results\n </Text>\n </Flex>\n }\n >\n {searchResults && (\n <PhotoAlbum\n layout=\"rows\"\n spacing={PHOTO_SPACING}\n padding={PHOTO_PADDING}\n targetRowHeight={handleWidth}\n photos={searchResults.map((file: ShopifyFile) => ({\n src: file?.preview?.url,\n width: file?.preview?.width || 2048,\n height: file?.preview?.height || 2048,\n key: file.id,\n data: file,\n }))}\n renderPhoto={renderFile}\n componentsProps={{\n containerProps: {style: {marginBottom: `${PHOTO_SPACING}px`}},\n }}\n />\n )}\n </InfiniteScroll>\n </>\n )}\n </Stack>\n </Dialog>\n )\n}\n","import React from 'react'\n\nconst ShopifyIcon = () => {\n return (\n <svg width=\"18\" height=\"20\" viewBox=\"0 0 18 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M15.3269 3.85113C15.3132 3.75015 15.2258 3.69411 15.1531 3.688C15.081 3.6819 13.6693 3.66026 13.6693 3.66026C13.6693 3.66026 12.4887 2.50392 12.3722 2.38628C12.2555 2.26865 12.0277 2.30417 11.9392 2.3308C11.9381 2.33135 11.7175 2.40016 11.3461 2.51612C11.2839 2.31304 11.1927 2.06335 11.0622 1.81255C10.6419 1.00356 10.0263 0.575752 9.2825 0.574642C9.28142 0.574642 9.28092 0.574642 9.27975 0.574642C9.22808 0.574642 9.17692 0.579636 9.12517 0.584074C9.10317 0.557441 9.08117 0.531362 9.05808 0.505838C8.73408 0.156272 8.31869 -0.0140727 7.82082 0.000908712C6.86027 0.0286521 5.90357 0.72834 5.12787 1.97124C4.58212 2.84572 4.16677 3.94435 4.04904 4.79497C2.94601 5.13953 2.17471 5.38035 2.15766 5.3859C1.60091 5.56235 1.58331 5.57955 1.51069 6.10889C1.45677 6.50895 0 17.8704 0 17.8704L12.2082 20L17.4994 18.6733C17.4994 18.6733 15.3407 3.95212 15.3269 3.85113ZM10.7349 2.707C10.4537 2.79467 10.1342 2.89454 9.78758 3.00274C9.78042 2.51224 9.72267 1.82975 9.496 1.23992C10.2249 1.3792 10.5836 2.21095 10.7349 2.707ZM9.14883 3.20249C8.509 3.40225 7.81091 3.62031 7.11058 3.83892C7.30753 3.0782 7.68107 2.32081 8.13989 1.8242C8.31044 1.63943 8.54917 1.43358 8.832 1.31594C9.09767 1.87525 9.15542 2.66705 9.14883 3.20249ZM7.84007 0.645665C8.06562 0.640671 8.25542 0.690609 8.41775 0.798253C8.15805 0.9342 7.90718 1.12951 7.67172 1.38419C7.06162 2.04448 6.594 3.06932 6.4075 4.0581C5.826 4.23954 5.25715 4.41766 4.73342 4.58078C5.06405 3.02438 6.35743 0.688944 7.84007 0.645665Z\"\n fill=\"#95BF47\"\n />\n <path\n d=\"M9.276 6.43238L8.66142 8.75117C8.66142 8.75117 7.97598 8.43658 7.16342 8.48817C5.97181 8.56417 5.95916 9.32217 5.97126 9.51242C6.03618 10.5495 8.74125 10.7759 8.89308 13.2051C9.01242 15.1161 7.88796 16.4233 6.26779 16.5265C4.32303 16.6502 3.25246 15.4933 3.25246 15.4933L3.66452 13.7256C3.66452 13.7256 4.74224 14.5457 5.60487 14.4907C6.16821 14.4547 6.36957 13.9924 6.34921 13.6657C6.26448 12.3128 4.06172 12.3927 3.92253 10.17C3.80536 8.29951 5.02337 6.40408 7.71081 6.23318C8.74617 6.16604 9.276 6.43238 9.276 6.43238Z\"\n fill=\"white\"\n />\n <path\n d=\"M15.1536 3.68853C15.0815 3.68243 13.6698 3.66078 13.6698 3.66078C13.6698 3.66078 12.4893 2.50444 12.3726 2.38681C12.3292 2.34298 12.2703 2.32023 12.2087 2.31079L12.2093 19.9994L17.4999 18.6733C17.4999 18.6733 15.3412 3.95264 15.3274 3.85166C15.3137 3.75068 15.2257 3.69463 15.1536 3.68853Z\"\n fill=\"#5E8E3E\"\n />\n </svg>\n )\n}\n\nexport default ShopifyIcon\n","import React from 'react'\nimport {ErrorOutlineIcon} from '@sanity/icons'\nimport {Button, Card, Flex, Grid, Inline, Stack, Text} from '@sanity/ui'\nimport {ObjectInputProps, PatchEvent, unset} from 'sanity'\nimport {useCallback, useState} from 'react'\n\nimport {Asset} from '../types'\nimport AssetPreview from './AssetPreview'\nimport ShopifyAssetPicker from './ShopifyAssetPicker'\nimport ShopifyIcon from './ShopifyIcon'\n\nexport default function ShopifyAssetInput(props: ObjectInputProps) {\n const {onChange, readOnly, value, schemaType} = props\n const {options} = schemaType\n const {shopifyDomain} = options\n\n const [dialogOpen, setDialogOpen] = useState(false)\n\n const removeValue = useCallback(() => {\n onChange(PatchEvent.from([unset()]))\n }, [onChange])\n\n const onOpen = useCallback(() => {\n setDialogOpen(true)\n }, [setDialogOpen])\n\n const onClose = useCallback(() => {\n setDialogOpen(false)\n }, [setDialogOpen])\n\n if (!shopifyDomain) {\n return (\n <Card overflow=\"hidden\" padding={4} radius={2} shadow={1} tone=\"critical\">\n <Flex align=\"center\" gap={3}>\n <Text size={2}>\n <ErrorOutlineIcon />\n </Text>\n <Inline space={2}>\n <Text size={1}>\n You need to configure your *.myshopify.com domain in the plugin / field options to\n enable Shopify Assets.\n </Text>\n </Inline>\n </Flex>\n </Card>\n )\n }\n\n return (\n <>\n {dialogOpen && (\n <ShopifyAssetPicker\n {...props}\n shopifyDomain={shopifyDomain}\n isOpen={dialogOpen}\n onClose={onClose}\n value={value as Asset}\n />\n )}\n <Stack>\n <AssetPreview value={value as Asset} />\n\n <Grid gap={1} style={{gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))'}}>\n <Button\n disabled={readOnly}\n mode=\"ghost\"\n icon={ShopifyIcon}\n title=\"Select an asset\"\n onClick={onOpen}\n text=\"Select…\"\n />\n <Button\n disabled={readOnly || !value}\n tone=\"critical\"\n mode=\"ghost\"\n title=\"Remove asset\"\n text=\"Remove\"\n onClick={removeValue}\n />\n </Grid>\n </Stack>\n </>\n )\n}\n","import React from 'react'\nimport {DiffFromTo} from 'sanity'\nimport {Flex, Text, Stack} from '@sanity/ui'\n\nimport type {Asset} from '../types'\n\ntype Props = {\n value: Asset | undefined\n}\n\nconst CloudinaryDiffPreview = ({value}: Props) => {\n if (!value) {\n return null\n }\n\n if (value?.preview?.url) {\n return (\n <Flex justify=\"center\" align=\"center\" height=\"fill\" width=\"fill\">\n <Stack space={2}>\n <img\n alt=\"preview\"\n src={value?.preview?.url}\n style={{\n objectFit: 'contain',\n margin: 'auto',\n maxWidth: '100%',\n maxHeight: '100%',\n }}\n />\n <Text size={1}>{value.type.charAt(0).toUpperCase() + value.type.slice(1)}</Text>\n </Stack>\n </Flex>\n )\n }\n\n return (\n <Flex justify=\"center\" align=\"center\" height=\"fill\" width=\"fill\">\n <div>(no image)</div>\n </Flex>\n )\n}\n\ntype DiffProps = {\n diff: any\n schemaType: any\n}\n\nconst AssetDiff = ({diff, schemaType}: DiffProps) => {\n return (\n <DiffFromTo\n diff={diff}\n schemaType={schemaType}\n previewComponent={CloudinaryDiffPreview}\n layout={'grid'}\n />\n )\n}\n\nexport default AssetDiff\n","/* eslint-disable */\nimport ShopifyAssetInput from '../components/ShopifyAssetInput'\nimport AssetDiff from '../components/AssetDiff'\nimport AssetPreview from '../components/AssetPreview'\nimport {defineField, defineType} from 'sanity'\n\ninterface ObjectConfig {\n shopifyDomain: string\n}\n\ndeclare module 'sanity' {\n interface ObjectOptions {\n shopifyDomain?: string\n }\n}\n\nexport const shopifyAssetSchema = (config: ObjectConfig) => {\n const {shopifyDomain} = config\n\n return defineType({\n type: 'object',\n name: 'shopify.asset',\n title: 'Shopify Asset',\n options: {\n shopifyDomain,\n },\n fields: [\n defineField({\n type: 'string',\n name: 'filename',\n title: 'Filename',\n }),\n defineField({\n type: 'string',\n name: 'id',\n title: 'ID',\n }),\n defineField({\n type: 'shopify.assetMetadata',\n name: 'meta',\n title: 'Metadata',\n }),\n defineField({\n type: 'shopify.assetPreview',\n name: 'preview',\n title: 'Preview',\n }),\n defineField({\n type: 'string',\n name: 'type',\n title: 'Type',\n }),\n defineField({\n type: 'url',\n name: 'url',\n title: 'URL',\n }),\n ],\n ...({\n components: {\n input: ShopifyAssetInput,\n diff: AssetDiff,\n preview: AssetPreview,\n },\n } as {}),\n preview: {\n select: {\n meta: 'meta',\n preview: 'preview',\n url: 'url',\n filename: 'filename',\n type: 'type',\n },\n prepare({url, meta, preview, filename, type}) {\n return {\n title: filename,\n subtitle: type,\n value: {\n url,\n meta,\n preview,\n filename,\n },\n }\n },\n },\n })\n}\n","import {defineField, defineType} from 'sanity'\n\nexport const shopifyAssetPreviewSchema = defineType({\n type: 'object',\n name: 'shopify.assetPreview',\n title: 'Asset preview',\n fields: [\n defineField({\n type: 'number',\n name: 'height',\n title: 'Height',\n }),\n defineField({\n type: 'number',\n name: 'width',\n title: 'Width',\n }),\n defineField({\n type: 'url',\n name: 'url',\n title: 'URL',\n }),\n ],\n})\n","import {defineField, defineType} from 'sanity'\n\nexport const shopifyAssetMetadataSchema = defineType({\n type: 'object',\n name: 'shopify.assetMetadata',\n title: 'Asset metadata',\n fields: [\n defineField({\n type: 'string',\n name: 'alt',\n title: 'Alternative text',\n }),\n defineField({\n type: 'number',\n name: 'duration',\n title: 'Duration',\n }),\n defineField({\n type: 'number',\n name: 'fileSize',\n title: 'File size',\n }),\n defineField({\n type: 'number',\n name: 'height',\n title: 'Height',\n }),\n defineField({\n type: 'number',\n name: 'width',\n title: 'Width',\n }),\n ],\n})\n","import {definePlugin, type ObjectDefinition} from 'sanity'\nimport {shopifyAssetSchema} from './schema/shopifyAssetSchema'\nimport {shopifyAssetPreviewSchema} from './schema/shopifyAssetPreviewSchema'\nimport {shopifyAssetMetadataSchema} from './schema/shopifyAssetMetadataSchema'\nimport type {PluginConfig} from './types'\n\nexport * from './types'\n\n// enables autocompletion and validation of document options\ndeclare module 'sanity' {\n export namespace Schema {\n // here we type up our custom schema definition\n export type ShopifyAssetTypeDef = Omit<ObjectDefinition, 'type' | 'fields'> & {\n type: 'shopify.asset'\n options: {\n shopifyDomain: string\n }\n }\n // Adds 'extension-type' as an intrinsic type\n export interface IntrinsicTypeDefinition {\n 'shopify.asset': ShopifyAssetTypeDef\n }\n }\n}\n\nexport const shopifyAssets = definePlugin<PluginConfig>((config) => {\n return {\n name: 'shopify-asset-schema',\n schema: {\n types: [shopifyAssetPreviewSchema, shopifyAssetMetadataSchema, shopifyAssetSchema(config)],\n },\n }\n})\n"],"names":["Root","styled","div","_ref","theme","sanity","color","card","enabled","bg2","_ref2","border","InfoLine","Card","_ref3","fg","bg","DurationLine","_ref4","VideoPlayer","_ref5","src","kind","videoNode","React","useRef","player","useEffect","current","videojs","sources","controls","stopPropagation","useCallback","event","className","diff","style","position","children","jsx","href","rel","onClick","ref","StyledBox","Box","_ref6","_ref7","_ref8","space","RenderAsset","_ref9","value","url","type","Flex","justify","alt","preview","maxWidth","height","display","maxHeight","AssetPreview","_ref0","filename","meta","fileSize","duration","jsxs","marginBottom","padding","radius","margin","Text","size","title","prettyBytes","default","prettyMilliseconds","colonNotation","secondsDecimalDigits","fetchSearch","props","projectId","dataset","shop","query","cursor","resultsPerPage","token","defer","axios","get","encodeURIComponent","withCredentials","method","headers","Authorization","pipe","map","result","data","fetchList","search","concat","withLatestFrom","debounceTime","distinctUntilChanged","switchMap","_ref1","q","c","DialogHeader","shopifyDomain","handleOpenInNewTab","window","open","align","opacity","tabIndex","right","Button","fontSize","icon","LaunchIcon","mode","text","extractName","name","split","pop","File","width","rootElm","handleClick","backgroundImage","Search","Stack","RESULTS_PER_PAGE","PHOTO_SPACING","PHOTO_PADDING","ShopifyAssetPicker","isOpen","onClose","onChange","schemaType","useProjectId","useDataset","client","useClient","apiVersion","config","error","setError","useState","setQuery","searchResults","setSearchResults","pageInfo","setPageInfo","isLoading","setIsLoading","searchSubject$","useMemo","BehaviorSubject","cursorSubject$","searchSubscription","subscribe","next","results","prevResults","assets","err","response","message","unsubscribe","handleSearchTermChanged","newQuery","currentTarget","handleScollerLoadMore","handleSelect","file","_key","_type","PatchEvent","from","set","renderFile","fileProps","photo","layout","handleWidth","Dialog","id","header","overflow","shadow","tone","gap","ErrorOutlineIcon","Inline","Fragment","weight","TextInput","label","placeholder","length","muted","InfiniteScroll","dataLength","hasMore","hasNextPage","scrollThreshold","loader","Spinner","endMessage","PhotoAlbum","spacing","targetRowHeight","photos","key","renderPhoto","componentsProps","containerProps","ShopifyIcon","viewBox","fill","xmlns","d","ShopifyAssetInput","readOnly","options","dialogOpen","setDialogOpen","removeValue","unset","onOpen","Grid","gridTemplateColumns","disabled","CloudinaryDiffPreview","_ref10","objectFit","charAt","toUpperCase","slice","AssetDiff","_ref11","DiffFromTo","previewComponent","shopifyAssetSchema","defineType","fields","defineField","components","input","select","prepare","_ref12","subtitle","shopifyAssetPreviewSchema","shopifyAssetMetadataSchema","shopifyAssets","definePlugin","schema","types"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/schema/shopifyAssetMetadataSchema.ts","../src/schema/shopifyAssetPreviewSchema.ts","../src/components/AssetDiff.tsx","../src/components/File.styled.tsx","../src/components/VideoPlayer.tsx","../src/components/AssetPreview.tsx","../src/datastores/shopify.ts","../src/components/DialogHeader.tsx","../src/utils/helpers.ts","../src/components/File.tsx","../src/components/ShopifyAssetInput.styled.tsx","../src/components/ShopifyAssetPicker.tsx","../src/components/ShopifyIcon.tsx","../src/components/ShopifyAssetInput.tsx","../src/schema/shopifyAssetSchema.ts","../src/index.ts"],"sourcesContent":["import {defineField, defineType} from 'sanity'\n\nexport const shopifyAssetMetadataSchema = defineType({\n type: 'object',\n name: 'shopify.assetMetadata',\n title: 'Asset metadata',\n fields: [\n defineField({\n type: 'string',\n name: 'alt',\n title: 'Alternative text',\n }),\n defineField({\n type: 'number',\n name: 'duration',\n title: 'Duration',\n }),\n defineField({\n type: 'number',\n name: 'fileSize',\n title: 'File size',\n }),\n defineField({\n type: 'number',\n name: 'height',\n title: 'Height',\n }),\n defineField({\n type: 'number',\n name: 'width',\n title: 'Width',\n }),\n ],\n})\n","import {defineField, defineType} from 'sanity'\n\nexport const shopifyAssetPreviewSchema = defineType({\n type: 'object',\n name: 'shopify.assetPreview',\n title: 'Asset preview',\n fields: [\n defineField({\n type: 'number',\n name: 'height',\n title: 'Height',\n }),\n defineField({\n type: 'number',\n name: 'width',\n title: 'Width',\n }),\n defineField({\n type: 'url',\n name: 'url',\n title: 'URL',\n }),\n ],\n})\n","import {Flex, Stack, Text} from '@sanity/ui'\nimport {DiffFromTo} from 'sanity'\n\nimport type {Asset} from '../types'\n\ntype Props = {\n value: Asset | undefined\n}\n\nconst ShopifyAssetDiffPreview = ({value}: Props) => {\n if (!value) {\n return null\n }\n\n if (value?.preview?.url) {\n return (\n <Flex justify=\"center\" align=\"center\" height=\"fill\" width=\"fill\">\n <Stack gap={2}>\n <img\n alt=\"preview\"\n src={value?.preview?.url}\n style={{\n objectFit: 'contain',\n margin: 'auto',\n maxWidth: '100%',\n maxHeight: '100%',\n }}\n />\n <Text size={1}>{value.type.charAt(0).toUpperCase() + value.type.slice(1)}</Text>\n </Stack>\n </Flex>\n )\n }\n\n return (\n <Flex justify=\"center\" align=\"center\" height=\"fill\" width=\"fill\">\n <div>(no image)</div>\n </Flex>\n )\n}\n\ntype DiffProps = {\n diff: any\n schemaType: any\n}\n\nconst AssetDiff = ({diff, schemaType}: DiffProps) => {\n return (\n <DiffFromTo\n diff={diff}\n schemaType={schemaType}\n previewComponent={ShopifyAssetDiffPreview}\n layout={'grid'}\n />\n )\n}\n\nexport default AssetDiff\n","import {Card} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport {styled} from 'styled-components'\n\nexport const Root = styled.div`\n ${({theme}) => {\n const v2 = getTheme_v2({sanity: theme.sanity})\n return `\n background-color: ${v2.color.muted.bg};\n border: 1px solid ${v2.color.border};\n `\n }};\n overflow: hidden;\n background-origin: content-box;\n background-repeat: no-repeat;\n background-clip: border-box;\n background-size: cover;\n position: relative;\n outline: none !important;\n box-sizing: content-box;\n user-drag: none;\n\n &:hover {\n opacity: 0.85;\n }\n\n &:focus,\n &:active {\n border: 1px solid var(--input-border-color-focus);\n box-shadow: inset 0 0 0 3px var(--input-border-color-focus);\n }\n`\n\nexport const InfoLine = styled(Card)`\n ${({theme}) => {\n const v2 = getTheme_v2({sanity: theme.sanity})\n return `\n --infoline-fg: ${v2.color.fg};\n --infoline-bg: ${v2.color.bg};\n `\n }};\n user-drag: none;\n position: absolute;\n background-color: var(--infoline-bg);\n top: 0;\n left: 0;\n max-width: 65%;\n overflow-wrap: break-word;\n\n [data-ui='Text'] {\n color: var(--infoline-fg);\n }\n`\n\nexport const DurationLine = styled(Card)`\n ${({theme}) => {\n const v2 = getTheme_v2({sanity: theme.sanity})\n return `\n --durationline-fg: ${v2.color.bg};\n --durationline-bg: ${v2.color.fg};\n `\n }};\n user-drag: none;\n position: absolute;\n background-color: var(--durationline-bg);\n top: 0;\n right: 0;\n\n [data-ui='Text'] {\n color: var(--durationline-fg);\n }\n`\n","import {type CSSProperties, type MouseEvent, useCallback, useEffect, useRef} from 'react'\nimport videojs, {type VideoJsPlayer} from 'video.js'\n\ntype PlayerKind = 'player' | 'diff'\n\ninterface VideoProps {\n src: string\n kind: PlayerKind\n}\n\nconst VideoPlayer = ({src, kind}: VideoProps) => {\n const videoNode = useRef<HTMLVideoElement>(null)\n const player = useRef<VideoJsPlayer | undefined>(undefined)\n\n useEffect(() => {\n player.current = videojs(videoNode.current ?? '', {\n sources: [{src}],\n controls: true,\n })\n\n player.current.src({src})\n }, [src])\n\n const stopPropagation = useCallback((event: MouseEvent) => {\n event.stopPropagation()\n }, [])\n\n const className: Record<PlayerKind, string> = {\n player: 'video-js vjs-16-9 vjs-big-play-centered',\n diff: 'video-js vjs-layout-tiny vjs-fluid',\n }\n\n const style: CSSProperties = {position: 'relative'}\n\n return (\n <div>\n <link href=\"https://vjs.zencdn.net/7.8.4/video-js.css\" rel=\"stylesheet\" />\n <div data-vjs-player>\n {/* Shopify assets do not provide caption tracks */}\n {/* oxlint-disable-next-line jsx-a11y/media-has-caption */}\n <video\n aria-label=\"Video preview\"\n onClick={stopPropagation}\n style={kind === 'diff' ? style : {}}\n className={className[kind]}\n ref={videoNode}\n />\n </div>\n </div>\n )\n}\n\nexport default VideoPlayer\n","import {Box, Flex, Text} from '@sanity/ui'\nimport {getTheme_v2} from '@sanity/ui/theme'\nimport prettyBytes from 'pretty-bytes'\nimport prettyMilliseconds from 'pretty-ms'\nimport {styled} from 'styled-components'\n\nimport type {Asset} from '../types'\nimport {DurationLine, InfoLine} from './File.styled'\nimport VideoPlayer from './VideoPlayer'\n\ninterface ComponentProps {\n value: Asset | undefined\n}\n\nconst StyledBox = styled(Box)`\n ${({theme}) => {\n const v2 = getTheme_v2({sanity: theme.sanity})\n return `\n background-color: ${v2.color.muted.bg};\n border: 1px solid ${v2.color.border};\n `\n }};\n display: flex;\n justify-content: center;\n position: relative;\n`\n\nconst RenderAsset = ({value, url}: {value: Asset; url: string}) => {\n switch (value.type) {\n case 'video':\n return <VideoPlayer src={url} kind=\"player\" />\n default:\n return (\n <Flex justify=\"center\">\n <img\n alt=\"preview\"\n src={value?.preview?.url}\n style={{\n maxWidth: '100%',\n height: 'auto',\n display: 'block',\n maxHeight: '30vh',\n }}\n />\n </Flex>\n )\n }\n}\n\nconst AssetPreview = ({value}: ComponentProps) => {\n const url = value && value.url\n\n if (!value || !url) {\n return null\n }\n\n const {filename, meta} = value\n const {fileSize, duration} = meta\n\n return (\n <StyledBox marginBottom={2}>\n <RenderAsset value={value} url={url} />\n <InfoLine padding={2} radius={2} margin={2}>\n <Text size={1} title={`Select ${filename}`}>\n {filename} {fileSize && `(${prettyBytes(fileSize)})`}\n </Text>\n </InfoLine>\n {duration && (\n <DurationLine padding={2} radius={2} margin={2}>\n <Text size={1} title={`Video duration: ${filename}`}>\n {prettyMilliseconds(duration, {colonNotation: true, secondsDecimalDigits: 0})}\n </Text>\n </DurationLine>\n )}\n </StyledBox>\n )\n}\n\nexport default AssetPreview\n","import axios from 'axios'\nimport {BehaviorSubject, Observable, concat, defer} from 'rxjs'\nimport {debounceTime, distinctUntilChanged, map, switchMap, withLatestFrom} from 'rxjs/operators'\n\ntype SearchSubject = BehaviorSubject<string>\ntype CursorSubject = BehaviorSubject<any>\n\ninterface fetchProps {\n projectId: string\n dataset: string\n shop: string\n query: SearchSubject\n cursor: CursorSubject\n resultsPerPage: number\n token?: string\n}\n\ninterface searchProps extends Omit<fetchProps, 'query' | 'cursor'> {\n query: string\n cursor: string\n}\ninterface listProps extends Omit<fetchProps, 'query' | 'cursor'> {\n cursor: string\n}\n\nconst fetchSearch = (props: searchProps): Observable<any> => {\n const {projectId, dataset, shop, query, cursor, resultsPerPage, token} = props\n\n return defer(() => {\n return axios.get(\n `https://${projectId}.api.sanity.io/v1/shopify/assets/${dataset}?shop=${shop}&query=${encodeURIComponent(\n query,\n )}${cursor && `&cursor=${cursor}`}&limit=${resultsPerPage}`,\n {\n withCredentials: true,\n method: 'GET',\n headers: token\n ? {\n Authorization: `Bearer ${token}`,\n }\n : {},\n },\n )\n }).pipe(map((result) => result.data))\n}\n\nconst fetchList = (props: listProps): Observable<any> => {\n const {projectId, dataset, shop, cursor, resultsPerPage, token} = props\n\n return defer(() =>\n axios.get(\n `https://${projectId}.api.sanity.io/v1/shopify/assets/${dataset}?shop=${shop}${\n cursor && `&cursor=${cursor}`\n }&limit=${resultsPerPage}`,\n {\n withCredentials: true,\n method: 'GET',\n headers: token\n ? {\n Authorization: `Bearer ${token}`,\n }\n : {},\n },\n ),\n ).pipe(map((result) => result.data))\n}\n\nexport const search = (props: fetchProps): Observable<any> => {\n const {projectId, dataset, shop, query, cursor, resultsPerPage, token} = props\n\n return concat(\n query.pipe(\n withLatestFrom(cursor),\n debounceTime(500),\n distinctUntilChanged(),\n switchMap(([q, c]) => {\n if (q) {\n return fetchSearch({\n projectId,\n dataset,\n shop,\n query: q,\n cursor: c,\n resultsPerPage,\n token,\n }).pipe(distinctUntilChanged())\n }\n return fetchList({projectId, dataset, shop, cursor: c, resultsPerPage, token})\n }),\n ),\n )\n}\n","import {LaunchIcon} from '@sanity/icons'\nimport {Box, Button, Flex} from '@sanity/ui'\nimport {useCallback} from 'react'\n\ninterface Props {\n title: string\n shopifyDomain: string\n}\n\nconst DialogHeader = (props: Props) => {\n const {title, shopifyDomain} = props\n\n const handleOpenInNewTab = useCallback(() => {\n window.open(`https://${shopifyDomain}/admin/content/files`, '_blank')\n }, [shopifyDomain])\n\n return (\n <Flex align=\"center\">\n {title}\n {/*\n HACK: Sanity UI will attempt to focus the first 'focusable' descendant of any dialog.\n Typically this is fine, but since our first focusable element is a button with a tooltip, this\n default behaviour causes the tooltip to appear whenever the dialog is opened, which we don't want!\n\n To get around this, we include a pseudo-hidden input to ensure our tooltip-enabled button remains\n unfocused on initial mount.\n */}\n <input\n aria-hidden=\"true\"\n aria-label=\"Focus trap\"\n style={{opacity: 0}}\n tabIndex={-1}\n type=\"button\"\n />\n <Box style={{position: 'absolute', right: '-1.5em'}}>\n <Box className=\"button-large\">\n <Button\n fontSize={1}\n icon={LaunchIcon}\n mode=\"bleed\"\n onClick={handleOpenInNewTab}\n text=\"Add New\"\n />\n </Box>\n </Box>\n </Flex>\n )\n}\n\nexport default DialogHeader\n","export const extractName = (name: string): string => name?.split('/')?.pop()?.split('?')[0] ?? ''\n","import {Text} from '@sanity/ui'\nimport prettyBytes from 'pretty-bytes'\nimport prettyMilliseconds from 'pretty-ms'\nimport {useCallback, useRef} from 'react'\n\nimport type {Asset, ShopifyFile} from '../types'\nimport {extractName} from '../utils/helpers'\nimport {DurationLine, InfoLine, Root} from './File.styled'\n\ntype Props = {\n data: ShopifyFile\n width: number\n height: number\n onClick: (file: Asset) => void\n}\n\nexport default function File(props: Props) {\n const {onClick, data, width, height} = props\n const rootElm = useRef<HTMLDivElement>(null)\n\n const {preview, meta} = data\n const filename = extractName(data.url)\n\n const handleClick = useCallback(() => {\n onClick({...data, filename})\n }, [onClick, data, filename])\n\n return (\n <Root\n ref={rootElm}\n title={filename}\n tabIndex={0}\n style={{\n width: `${width}px`,\n height: `${height}px`,\n backgroundImage: `url(\"${preview?.url}\")`,\n }}\n onClick={handleClick}\n >\n <InfoLine padding={2} radius={2} margin={2}>\n <Text size={1} title={`Select ${filename}`}>\n {filename} {meta.fileSize && `(${prettyBytes(meta.fileSize)})`}\n </Text>\n </InfoLine>\n {meta.duration && (\n <DurationLine padding={2} radius={2} margin={2}>\n <Text size={1} title={`Video duration: ${filename}`}>\n {prettyMilliseconds(meta.duration, {colonNotation: true, secondsDecimalDigits: 0})}\n </Text>\n </DurationLine>\n )}\n </Root>\n )\n}\n","import {Stack} from '@sanity/ui'\nimport {styled} from 'styled-components'\n\nexport const Search = styled(Stack)`\n position: sticky;\n top: 0;\n z-index: 1;\n`\n","import {ErrorOutlineIcon} from '@sanity/icons'\nimport {Card, Dialog, Flex, Inline, Spinner, Stack, Text, TextInput} from '@sanity/ui'\nimport {type ChangeEvent, useCallback, useEffect, useMemo, useState} from 'react'\nimport InfiniteScroll from 'react-infinite-scroll-component'\nimport {PhotoAlbum} from 'react-photo-album'\nimport {BehaviorSubject, type Subscription} from 'rxjs'\nimport {type ObjectInputProps, PatchEvent, set, useClient, useDataset, useProjectId} from 'sanity'\n\nimport {search} from '../datastores/shopify'\nimport type {Asset, PageInfo, ShopifyAPIResponse, ShopifyFile} from '../types'\nimport DialogHeader from './DialogHeader'\nimport File from './File'\nimport {Search} from './ShopifyAssetInput.styled'\n\nconst RESULTS_PER_PAGE = 42\nconst PHOTO_SPACING = 2\nconst PHOTO_PADDING = 1\n\nexport interface AssetPickerProps extends ObjectInputProps<Asset> {\n shopifyDomain: string\n isOpen: boolean\n onClose: () => void\n}\n\nexport default function ShopifyAssetPicker(props: AssetPickerProps) {\n const {isOpen, onClose, shopifyDomain, onChange, schemaType, value} = props\n const projectId = useProjectId()\n const dataset = useDataset()\n const client = useClient({apiVersion: '2021-06-07'})\n const token = client.config().token\n\n const [apiError, setApiError] = useState('')\n const [query, setQuery] = useState('')\n const [searchResults, setSearchResults] = useState<ShopifyFile[]>([])\n const [pageInfo, setPageInfo] = useState<PageInfo>()\n const [isLoading, setIsLoading] = useState(true)\n\n const error = shopifyDomain\n ? apiError\n : 'Please configure your Shopify domain in the plugin config'\n\n const searchSubject$ = useMemo(() => new BehaviorSubject(''), [])\n const cursorSubject$ = useMemo(() => new BehaviorSubject(''), [])\n\n useEffect(() => {\n const searchSubscription: Subscription = search({\n projectId,\n dataset,\n shop: shopifyDomain,\n query: searchSubject$,\n cursor: cursorSubject$,\n resultsPerPage: RESULTS_PER_PAGE,\n token,\n }).subscribe({\n next: (results: ShopifyAPIResponse) => {\n setSearchResults((prevResults) => [...prevResults, ...results.assets])\n setPageInfo(results.pageInfo)\n setIsLoading(false)\n },\n error: (err) => {\n setApiError(\n `${\n err.response?.data?.message || err.message || 'An error occurred'\n } - check plugin configuration`,\n )\n },\n })\n\n return () => searchSubscription.unsubscribe()\n }, [searchSubject$, cursorSubject$, shopifyDomain, projectId, dataset, token])\n\n const handleSearchTermChanged = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const newQuery = event.currentTarget.value\n setQuery(newQuery)\n setSearchResults([])\n setPageInfo(undefined)\n setIsLoading(true)\n\n cursorSubject$.next('')\n searchSubject$.next(newQuery)\n },\n [cursorSubject$, searchSubject$],\n )\n\n const handleScollerLoadMore = useCallback(() => {\n setIsLoading(true)\n if (pageInfo) cursorSubject$.next(pageInfo.cursor)\n searchSubject$.next(query)\n }, [cursorSubject$, pageInfo, searchSubject$, query])\n\n const handleSelect = useCallback(\n (file: Asset) => {\n file._key = value?._key\n file._type = schemaType.name\n onChange(PatchEvent.from([set(file)]))\n onClose()\n },\n [onChange, onClose, schemaType.name, value?._key],\n )\n\n const renderFile = useCallback(\n (fileProps: any) => {\n const {photo, layout} = fileProps\n return (\n <File\n onClick={handleSelect}\n data={photo.data}\n width={layout.width}\n height={layout.height}\n />\n )\n },\n [handleSelect],\n )\n\n const handleWidth = useCallback((width: number) => {\n if (width < 300) return 150\n else if (width < 600) return 200\n return 300\n }, [])\n\n return (\n <Dialog\n id=\"shopify-asset-source\"\n header={<DialogHeader title=\"Shopify Assets\" shopifyDomain={shopifyDomain} />}\n onClose={onClose}\n open={isOpen}\n width={4}\n >\n <Stack gap={3} padding={4}>\n {error ? (\n <Card overflow=\"hidden\" padding={4} radius={2} shadow={1} tone=\"critical\">\n <Flex align=\"center\" gap={3}>\n <Text size={2}>\n <ErrorOutlineIcon />\n </Text>\n <Inline gap={2}>\n <Text size={1}>{error}</Text>\n </Inline>\n </Flex>\n </Card>\n ) : (\n <>\n <Card>\n <Search gap={3}>\n <Text size={1} weight=\"semibold\">\n Search Shopify for assets\n </Text>\n <TextInput\n label=\"Search Images\"\n placeholder=\"filename.jpg\"\n value={query}\n onChange={handleSearchTermChanged}\n />\n </Search>\n </Card>\n {!isLoading && searchResults.length === 0 && (\n <Text size={1} muted>\n No results found\n </Text>\n )}\n <InfiniteScroll\n dataLength={searchResults.length} // This is important field to render the next data\n next={handleScollerLoadMore}\n hasMore={pageInfo ? pageInfo?.hasNextPage : true}\n scrollThreshold={0.99}\n height=\"60vh\"\n loader={\n <Flex align=\"center\" justify=\"center\" padding={3}>\n <Spinner muted />\n </Flex>\n }\n endMessage={\n <Flex align=\"center\" justify=\"center\" padding={3}>\n <Text size={1} muted>\n No more results\n </Text>\n </Flex>\n }\n >\n {searchResults && (\n <PhotoAlbum\n layout=\"rows\"\n spacing={PHOTO_SPACING}\n padding={PHOTO_PADDING}\n targetRowHeight={handleWidth}\n photos={searchResults.map((file: ShopifyFile) => ({\n src: file?.preview?.url,\n width: file?.preview?.width || 2048,\n height: file?.preview?.height || 2048,\n key: file.id,\n data: file,\n }))}\n renderPhoto={renderFile}\n componentsProps={{\n containerProps: {style: {marginBottom: `${PHOTO_SPACING}px`}},\n }}\n />\n )}\n </InfiniteScroll>\n </>\n )}\n </Stack>\n </Dialog>\n )\n}\n","const ShopifyIcon = () => {\n return (\n <svg width=\"18\" height=\"20\" viewBox=\"0 0 18 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M15.3269 3.85113C15.3132 3.75015 15.2258 3.69411 15.1531 3.688C15.081 3.6819 13.6693 3.66026 13.6693 3.66026C13.6693 3.66026 12.4887 2.50392 12.3722 2.38628C12.2555 2.26865 12.0277 2.30417 11.9392 2.3308C11.9381 2.33135 11.7175 2.40016 11.3461 2.51612C11.2839 2.31304 11.1927 2.06335 11.0622 1.81255C10.6419 1.00356 10.0263 0.575752 9.2825 0.574642C9.28142 0.574642 9.28092 0.574642 9.27975 0.574642C9.22808 0.574642 9.17692 0.579636 9.12517 0.584074C9.10317 0.557441 9.08117 0.531362 9.05808 0.505838C8.73408 0.156272 8.31869 -0.0140727 7.82082 0.000908712C6.86027 0.0286521 5.90357 0.72834 5.12787 1.97124C4.58212 2.84572 4.16677 3.94435 4.04904 4.79497C2.94601 5.13953 2.17471 5.38035 2.15766 5.3859C1.60091 5.56235 1.58331 5.57955 1.51069 6.10889C1.45677 6.50895 0 17.8704 0 17.8704L12.2082 20L17.4994 18.6733C17.4994 18.6733 15.3407 3.95212 15.3269 3.85113ZM10.7349 2.707C10.4537 2.79467 10.1342 2.89454 9.78758 3.00274C9.78042 2.51224 9.72267 1.82975 9.496 1.23992C10.2249 1.3792 10.5836 2.21095 10.7349 2.707ZM9.14883 3.20249C8.509 3.40225 7.81091 3.62031 7.11058 3.83892C7.30753 3.0782 7.68107 2.32081 8.13989 1.8242C8.31044 1.63943 8.54917 1.43358 8.832 1.31594C9.09767 1.87525 9.15542 2.66705 9.14883 3.20249ZM7.84007 0.645665C8.06562 0.640671 8.25542 0.690609 8.41775 0.798253C8.15805 0.9342 7.90718 1.12951 7.67172 1.38419C7.06162 2.04448 6.594 3.06932 6.4075 4.0581C5.826 4.23954 5.25715 4.41766 4.73342 4.58078C5.06405 3.02438 6.35743 0.688944 7.84007 0.645665Z\"\n fill=\"#95BF47\"\n />\n <path\n d=\"M9.276 6.43238L8.66142 8.75117C8.66142 8.75117 7.97598 8.43658 7.16342 8.48817C5.97181 8.56417 5.95916 9.32217 5.97126 9.51242C6.03618 10.5495 8.74125 10.7759 8.89308 13.2051C9.01242 15.1161 7.88796 16.4233 6.26779 16.5265C4.32303 16.6502 3.25246 15.4933 3.25246 15.4933L3.66452 13.7256C3.66452 13.7256 4.74224 14.5457 5.60487 14.4907C6.16821 14.4547 6.36957 13.9924 6.34921 13.6657C6.26448 12.3128 4.06172 12.3927 3.92253 10.17C3.80536 8.29951 5.02337 6.40408 7.71081 6.23318C8.74617 6.16604 9.276 6.43238 9.276 6.43238Z\"\n fill=\"white\"\n />\n <path\n d=\"M15.1536 3.68853C15.0815 3.68243 13.6698 3.66078 13.6698 3.66078C13.6698 3.66078 12.4893 2.50444 12.3726 2.38681C12.3292 2.34298 12.2703 2.32023 12.2087 2.31079L12.2093 19.9994L17.4999 18.6733C17.4999 18.6733 15.3412 3.95264 15.3274 3.85166C15.3137 3.75068 15.2257 3.69463 15.1536 3.68853Z\"\n fill=\"#5E8E3E\"\n />\n </svg>\n )\n}\n\nexport default ShopifyIcon\n","import {ErrorOutlineIcon} from '@sanity/icons'\nimport {Button, Card, Flex, Grid, Inline, Stack, Text} from '@sanity/ui'\nimport {useCallback, useState} from 'react'\nimport {type ObjectInputProps, PatchEvent, unset} from 'sanity'\n\nimport type {Asset} from '../types'\nimport AssetPreview from './AssetPreview'\nimport ShopifyAssetPicker from './ShopifyAssetPicker'\nimport ShopifyIcon from './ShopifyIcon'\n\nexport default function ShopifyAssetInput(props: ObjectInputProps<Asset>) {\n const {onChange, readOnly, value, schemaType} = props\n const {options} = schemaType\n const {shopifyDomain} = options\n\n const [dialogOpen, setDialogOpen] = useState(false)\n\n const removeValue = useCallback(() => {\n onChange(PatchEvent.from([unset()]))\n }, [onChange])\n\n const onOpen = useCallback(() => {\n setDialogOpen(true)\n }, [setDialogOpen])\n\n const onClose = useCallback(() => {\n setDialogOpen(false)\n }, [setDialogOpen])\n\n if (!shopifyDomain) {\n return (\n <Card overflow=\"hidden\" padding={4} radius={2} shadow={1} tone=\"critical\">\n <Flex align=\"center\" gap={3}>\n <Text size={2}>\n <ErrorOutlineIcon />\n </Text>\n <Inline gap={2}>\n <Text size={1}>\n You need to configure your *.myshopify.com domain in the plugin / field options to\n enable Shopify Assets.\n </Text>\n </Inline>\n </Flex>\n </Card>\n )\n }\n\n return (\n <>\n {dialogOpen && (\n <ShopifyAssetPicker\n {...props}\n shopifyDomain={shopifyDomain}\n isOpen={dialogOpen}\n onClose={onClose}\n value={value}\n />\n )}\n <Stack>\n <AssetPreview value={value} />\n\n <Grid gap={1} style={{gridTemplateColumns: 'repeat(auto-fit, minmax(100px, 1fr))'}}>\n <Button\n disabled={readOnly}\n mode=\"ghost\"\n icon={ShopifyIcon}\n title=\"Select an asset\"\n onClick={onOpen}\n text=\"Select…\"\n />\n <Button\n disabled={readOnly || !value}\n tone=\"critical\"\n mode=\"ghost\"\n title=\"Remove asset\"\n text=\"Remove\"\n onClick={removeValue}\n />\n </Grid>\n </Stack>\n </>\n )\n}\n","import {defineField, defineType} from 'sanity'\n\nimport AssetDiff from '../components/AssetDiff'\nimport AssetPreview from '../components/AssetPreview'\nimport ShopifyAssetInput from '../components/ShopifyAssetInput'\n\ninterface ObjectConfig {\n shopifyDomain: string\n}\n\ndeclare module 'sanity' {\n interface ObjectOptions {\n shopifyDomain?: string\n }\n}\n\nexport const shopifyAssetSchema = (config: ObjectConfig) => {\n const {shopifyDomain} = config\n\n return defineType({\n type: 'object',\n name: 'shopify.asset',\n title: 'Shopify Asset',\n options: {\n shopifyDomain,\n },\n fields: [\n defineField({\n type: 'string',\n name: 'filename',\n title: 'Filename',\n }),\n defineField({\n type: 'string',\n name: 'id',\n title: 'ID',\n }),\n defineField({\n type: 'shopify.assetMetadata',\n name: 'meta',\n title: 'Metadata',\n }),\n defineField({\n type: 'shopify.assetPreview',\n name: 'preview',\n title: 'Preview',\n }),\n defineField({\n type: 'string',\n name: 'type',\n title: 'Type',\n }),\n defineField({\n type: 'url',\n name: 'url',\n title: 'URL',\n }),\n ],\n ...({\n components: {\n input: ShopifyAssetInput,\n diff: AssetDiff,\n preview: AssetPreview,\n },\n } as {}),\n preview: {\n select: {\n meta: 'meta',\n preview: 'preview',\n url: 'url',\n filename: 'filename',\n type: 'type',\n },\n prepare({url, meta, preview, filename, type}) {\n return {\n title: filename,\n subtitle: type,\n value: {\n url,\n meta,\n preview,\n filename,\n },\n }\n },\n },\n })\n}\n","import {definePlugin, type ObjectDefinition} from 'sanity'\n\nimport {shopifyAssetMetadataSchema} from './schema/shopifyAssetMetadataSchema'\nimport {shopifyAssetPreviewSchema} from './schema/shopifyAssetPreviewSchema'\nimport {shopifyAssetSchema} from './schema/shopifyAssetSchema'\nimport type {PluginConfig} from './types'\n\nexport * from './types'\n\n// enables autocompletion and validation of document options\ndeclare module 'sanity' {\n export namespace Schema {\n // here we type up our custom schema definition\n // options are optional on fields: the plugin-level config provides the default domain\n export type ShopifyAssetTypeDef = Omit<ObjectDefinition, 'type' | 'fields'> & {\n type: 'shopify.asset'\n options?: {\n shopifyDomain?: string\n }\n }\n // Adds 'extension-type' as an intrinsic type\n export interface IntrinsicTypeDefinition {\n 'shopify.asset': ShopifyAssetTypeDef\n }\n }\n}\n\nexport const shopifyAssets = definePlugin<PluginConfig>((config) => {\n return {\n name: 'shopify-asset-schema',\n schema: {\n types: [shopifyAssetPreviewSchema, shopifyAssetMetadataSchema, shopifyAssetSchema(config)],\n },\n }\n})\n"],"names":["shopifyAssetMetadataSchema","defineType","type","name","title","fields","defineField","shopifyAssetPreviewSchema","ShopifyAssetDiffPreview","t0","$","_c","value","preview","url","t1","t2","for","objectFit","margin","maxWidth","maxHeight","t3","t4","charAt","toUpperCase","t5","slice","t6","t7","Symbol","AssetDiff","diff","schemaType","Root","styled","div","withConfig","displayName","componentId","theme","v2","getTheme_v2","sanity","color","muted","bg","border","InfoLine","Card","fg","DurationLine","VideoPlayer","src","kind","videoNode","useRef","player","undefined","current","videojs","sources","controls","useEffect","stopPropagation","_temp","className","position","style","t8","event","StyledBox","Box","RenderAsset","height","display","AssetPreview","filename","meta","fileSize","duration","prettyBytes","prettyMilliseconds","colonNotation","secondsDecimalDigits","fetchSearch","props","projectId","dataset","shop","query","cursor","resultsPerPage","token","defer","axios","get","encodeURIComponent","withCredentials","method","headers","Authorization","pipe","map","result","data","fetchList","search","concat","withLatestFrom","debounceTime","distinctUntilChanged","switchMap","q","c","DialogHeader","shopifyDomain","window","open","handleOpenInNewTab","opacity","right","LaunchIcon","extractName","split","pop","File","onClick","width","rootElm","handleClick","backgroundImage","t9","t10","Search","Stack","RESULTS_PER_PAGE","PHOTO_SPACING","PHOTO_PADDING","ShopifyAssetPicker","isOpen","onClose","onChange","useProjectId","useDataset","apiVersion","client","useClient","config","apiError","setApiError","useState","setQuery","searchResults","setSearchResults","pageInfo","setPageInfo","isLoading","setIsLoading","error","BehaviorSubject","searchSubject$","cursorSubject$","searchSubscription","subscribe","next","results","prevResults","assets","err","response","message","unsubscribe","newQuery","currentTarget","handleSearchTermChanged","handleScollerLoadMore","_key","file","_type","PatchEvent","from","set","handleSelect","fileProps","photo","layout","renderFile","handleWidth","t11","t12","length","hasNextPage","_temp2","containerProps","marginBottom","t13","file_0","key","id","ShopifyIcon","ShopifyAssetInput","readOnly","options","dialogOpen","setDialogOpen","unset","removeValue","onOpen","gridTemplateColumns","shopifyAssetSchema","components","input","select","prepare","subtitle","shopifyAssets","definePlugin","schema","types"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,101 +1,70 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sanity-plugin-shopify-assets",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Choose assets from your Shopify store in your Sanity Studio",
|
|
5
5
|
"keywords": [
|
|
6
|
+
"assets",
|
|
7
|
+
"images",
|
|
6
8
|
"sanity",
|
|
7
9
|
"sanity-plugin",
|
|
8
|
-
"images",
|
|
9
10
|
"shopify",
|
|
10
|
-
"assets",
|
|
11
11
|
"source"
|
|
12
12
|
],
|
|
13
|
-
"homepage": "https://github.com/sanity-io/sanity-plugin-shopify-assets#readme",
|
|
13
|
+
"homepage": "https://github.com/sanity-io/plugins/tree/main/plugins/sanity-plugin-shopify-assets#readme",
|
|
14
14
|
"bugs": {
|
|
15
|
-
"url": "https://github.com/sanity-io/
|
|
16
|
-
},
|
|
17
|
-
"repository": {
|
|
18
|
-
"type": "git",
|
|
19
|
-
"url": "git@github.com:sanity-io/sanity-plugin-shopify-assets.git"
|
|
15
|
+
"url": "https://github.com/sanity-io/plugins/issues"
|
|
20
16
|
},
|
|
21
17
|
"license": "MIT",
|
|
22
18
|
"author": "Sanity.io <hello@sanity.io>",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"require": "./dist/index.js",
|
|
28
|
-
"import": "./dist/index.esm.js",
|
|
29
|
-
"default": "./dist/index.esm.js"
|
|
30
|
-
},
|
|
31
|
-
"./package.json": "./package.json"
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git+ssh://git@github.com/sanity-io/plugins.git",
|
|
22
|
+
"directory": "plugins/sanity-plugin-shopify-assets"
|
|
32
23
|
},
|
|
33
|
-
"main": "./dist/index.js",
|
|
34
|
-
"module": "./dist/index.esm.js",
|
|
35
|
-
"source": "./src/index.ts",
|
|
36
|
-
"types": "./dist/index.d.ts",
|
|
37
24
|
"files": [
|
|
38
|
-
"dist"
|
|
39
|
-
"sanity.json",
|
|
40
|
-
"src",
|
|
41
|
-
"v2-incompatible.js"
|
|
25
|
+
"dist"
|
|
42
26
|
],
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"lint": "eslint .",
|
|
49
|
-
"prepublishOnly": "run-s build",
|
|
50
|
-
"watch": "pkg-utils watch --strict"
|
|
27
|
+
"type": "module",
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"exports": {
|
|
30
|
+
".": "./dist/index.js",
|
|
31
|
+
"./package.json": "./package.json"
|
|
51
32
|
},
|
|
52
33
|
"dependencies": {
|
|
53
34
|
"@sanity/icons": "^3.7.0",
|
|
54
|
-
"@sanity/
|
|
55
|
-
"@sanity/ui": "^2.15.2",
|
|
35
|
+
"@sanity/ui": "^3.2.0",
|
|
56
36
|
"axios": "^1.2.2",
|
|
57
37
|
"pretty-bytes": "^6.0.0",
|
|
58
38
|
"pretty-ms": "^8.0.0",
|
|
59
39
|
"react-infinite-scroll-component": "^6.1.0",
|
|
60
40
|
"react-photo-album": "^2.0.0",
|
|
61
|
-
"rxjs": "^7.8.
|
|
41
|
+
"rxjs": "^7.8.2",
|
|
62
42
|
"video.js": "^7.20.3"
|
|
63
43
|
},
|
|
64
44
|
"devDependencies": {
|
|
65
|
-
"@
|
|
66
|
-
"@
|
|
67
|
-
"@
|
|
68
|
-
"@
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"eslint-plugin-prettier": "^4.2.1",
|
|
78
|
-
"eslint-plugin-react": "^7.32.0",
|
|
79
|
-
"eslint-plugin-react-hooks": "^4.6.0",
|
|
80
|
-
"husky": "^8.0.3",
|
|
81
|
-
"lint-staged": "^13.1.0",
|
|
82
|
-
"npm-run-all": "^4.1.5",
|
|
83
|
-
"prettier": "^2.8.2",
|
|
84
|
-
"prettier-plugin-packagejson": "^2.3.0",
|
|
85
|
-
"react": "^18.2.0",
|
|
86
|
-
"react-dom": "^18.2.0",
|
|
87
|
-
"react-is": "^18.2.0",
|
|
88
|
-
"rimraf": "^4.0.4",
|
|
89
|
-
"sanity": "^3.2.3",
|
|
90
|
-
"styled-components": "^6.1.15",
|
|
91
|
-
"typescript": "^5.8.3"
|
|
45
|
+
"@sanity/pkg-utils": "^10.5.7",
|
|
46
|
+
"@types/react": "^19.2.17",
|
|
47
|
+
"@types/react-dom": "^19.2.3",
|
|
48
|
+
"@types/video.js": "^7.3.58",
|
|
49
|
+
"babel-plugin-react-compiler": "^1.0.0",
|
|
50
|
+
"babel-plugin-styled-components": "^2.3.0",
|
|
51
|
+
"react": "^19.2.7",
|
|
52
|
+
"react-dom": "^19.2.7",
|
|
53
|
+
"sanity": "^6.1.0",
|
|
54
|
+
"styled-components": "^6.4.2",
|
|
55
|
+
"@repo/package.config": "0.0.0",
|
|
56
|
+
"@repo/tsconfig": "0.0.0"
|
|
92
57
|
},
|
|
93
58
|
"peerDependencies": {
|
|
94
|
-
"react": "^
|
|
95
|
-
"
|
|
96
|
-
"
|
|
59
|
+
"react": "^19.2",
|
|
60
|
+
"react-dom": "^19.2",
|
|
61
|
+
"sanity": "^5 || ^6.0.0-0",
|
|
62
|
+
"styled-components": "^6.1"
|
|
97
63
|
},
|
|
98
64
|
"engines": {
|
|
99
|
-
"node": ">=
|
|
65
|
+
"node": ">=20.19 <22 || >=22.12"
|
|
66
|
+
},
|
|
67
|
+
"scripts": {
|
|
68
|
+
"build": "pkg build --strict --check --clean"
|
|
100
69
|
}
|
|
101
|
-
}
|
|
70
|
+
}
|