sanity-plugin-workspace-home 1.1.2 → 1.1.3

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/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  # sanity-plugin-workspace-home
2
2
 
3
- > This is a **Sanity Studio v3** plugin.
4
-
5
3
  This plugin adds a "Home" Tool to your Studio with a listing of all available workspaces. Useful as the first page of your Studio to quickly navigate to the workspace of your choice.
6
4
 
7
5
  ![plugin inside sanity studio showing workspaces](https://user-images.githubusercontent.com/9684022/227136123-ec1908dd-fc60-4832-9079-6f5ed5892923.png)
@@ -69,4 +67,4 @@ on how to run this plugin with hotreload in the studio.
69
67
  Run ["CI & Release" workflow](TODO/actions/workflows/main.yml).
70
68
  Make sure to select the main branch and check "Release new version".
71
69
 
72
- Semantic release will only release on configured branches, so it is safe to run release on any branch.
70
+ Semantic release will only release on configured branches, so it is safe to run release on any branch.
package/dist/index.esm.js CHANGED
@@ -3,7 +3,7 @@ import { useActiveWorkspace, useWorkspaces, definePlugin } from "sanity";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { Card, Grid, Stack, Button, Flex, Box, Text, Hotkeys, Container, Heading, TextInput } from "@sanity/ui";
5
5
  import { useMemo, createElement, isValidElement, useState, useRef, useCallback, useEffect } from "react";
6
- import styled from "styled-components";
6
+ import { styled } from "styled-components";
7
7
  var reactIs = { exports: {} }, reactIs_production_min = {};
8
8
  /**
9
9
  * @license React
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../src/components/WorkspacePreview.tsx","../src/components/WorkspaceHome.tsx","../src/tool/index.ts","../src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import {DatabaseIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Grid, Hotkeys, Stack, Text} from '@sanity/ui'\nimport React, {createElement, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useActiveWorkspace, WorkspaceSummary} from 'sanity'\nimport styled from 'styled-components'\n\nconst createIcon = (icon: React.ComponentType | React.ReactNode) => {\n if (isValidElementType(icon)) return createElement(icon)\n if (isValidElement(icon)) return icon\n return undefined\n}\n\nexport const MediaCard = styled(Card)`\n width: 35px;\n height: 35px;\n\n svg {\n width: 100%;\n height: 100%;\n }\n`\n\nexport type WorkspacePreviewProps = {\n workspace: WorkspaceSummary\n index: number\n query: string\n}\n\nexport default function WorkspacePreview(props: WorkspacePreviewProps) {\n const {workspace, index, query} = props\n const {icon, title, name, subtitle, dataset} = workspace\n\n const {setActiveWorkspace} = useActiveWorkspace()\n const iconComponent = useMemo(() => createIcon(icon), [icon])\n\n // TODO: Favorites feature\n // get favorite workspace name from localStorage\n // const favoriteWorkspace = localStorage.getItem('favoriteWorkspace')\n // save local state to force re-render\n // const [isFavourite, setIsFavourite] = React.useState(favoriteWorkspace === name)\n\n // set favorite workspace name to localStorage\n // const setFavoriteWorkspace = useCallback(() => {\n // localStorage.setItem('favoriteWorkspace', name)\n // }, [name])\n\n const hotKeyIndex = index + 1 === 10 ? 0 : index + 1\n\n return (\n <Card borderTop={Boolean(index)} tone=\"default\">\n <Grid columns={5} gap={[2, 3, 4, 4]} paddingY={1}>\n <Card columnStart={1} columnEnd={4}>\n <Stack>\n <Button\n mode=\"bleed\"\n tone=\"default\"\n onClick={() => setActiveWorkspace(name)}\n >\n <Flex align=\"center\" gap={[2, 3, 4, 4]}>\n {iconComponent ? (\n <MediaCard>{createIcon(iconComponent)}</MediaCard>\n ) : null}\n <Box flex={1}>\n <Stack space={[1, 2, 3, 3]}>\n <Text size={3} weight=\"semibold\" textOverflow=\"ellipsis\">\n {title || name}\n </Text>\n {subtitle ? <Text muted>{subtitle}</Text> : null}\n </Stack>\n </Box>\n </Flex>\n </Button>\n </Stack>\n </Card>\n <Card columnStart={4} columnEnd={5}>\n <Flex height=\"fill\" align=\"center\" gap={2}>\n <Text size={1} weight=\"semibold\">\n <DatabaseIcon />\n </Text>\n <Text size={1} weight=\"semibold\" textOverflow=\"ellipsis\">\n {dataset}\n </Text>\n </Flex>\n </Card>\n <Card paddingRight={[2, 3, 3, 3]}>\n <Flex height=\"fill\" align=\"center\" justify=\"flex-end\">\n {!query && hotKeyIndex < 10 ? (\n <Hotkeys keys={[String(hotKeyIndex)]} padding={2} />\n ) : null}\n </Flex>\n </Card>\n {/* <Button\n mode={isFavourite ? 'default' : 'bleed'}\n tone={isFavourite ? 'primary' : 'default'}\n icon={StarIcon}\n title=\"Favorite\"\n onClick={() => {\n setIsFavourite(!isFavourite)\n setFavoriteWorkspace()\n }}\n /> */}\n </Grid>\n </Card>\n )\n}\n","import {\n Box,\n Card,\n Container,\n Flex,\n Heading,\n Stack,\n Text,\n TextInput,\n} from '@sanity/ui'\nimport React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useActiveWorkspace, useWorkspaces} from 'sanity'\nimport styled from 'styled-components'\n\nimport WorkspacePreview from './WorkspacePreview'\n\nexport const TallCard = styled(Card)`\n min-height: 100%;\n`\n\nexport default function WorkspaceHome() {\n const [, ...workspaces] = useWorkspaces()\n const {setActiveWorkspace} = useActiveWorkspace()\n\n // Handle search query\n const [query, setQuery] = useState('')\n const searchInput = useRef(null)\n const handleQuery = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQuery(e.target.value)\n },\n [setQuery]\n )\n\n // filter workspaces if name, dataset or title matches query\n const filteredWorkspaces = useMemo(() => {\n return workspaces.filter((workspace) => {\n return (\n workspace.name.toLowerCase().includes(query.toLowerCase()) ||\n workspace.dataset.toLowerCase().includes(query.toLowerCase()) ||\n workspace.title.toLowerCase().includes(query.toLowerCase())\n )\n })\n }, [workspaces, query])\n\n // Listen to keypress of workspace index\n useEffect(() => {\n const handleKeypress = (event: KeyboardEvent) => {\n // Ignore if search query exists or search input is focused\n if (query || searchInput.current === document.activeElement) {\n return\n }\n\n const index = parseInt(event.key, 10) - 1\n if (index >= 0 && index < workspaces.length) {\n setActiveWorkspace(workspaces[index].name)\n }\n }\n\n window.addEventListener('keypress', handleKeypress)\n\n return () => {\n window.removeEventListener('keypress', handleKeypress)\n }\n }, [query, workspaces, setActiveWorkspace])\n\n return (\n <TallCard tone=\"transparent\">\n <Flex direction=\"column\" padding={[4, 5, 6, 6]}>\n <Container>\n <Stack space={4}>\n <Heading>Workspaces</Heading>\n <Card padding={[2, 3, 4, 4]} radius={3} shadow={2}>\n <Stack space={3}>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n Search\n </Text>\n <TextInput\n ref={searchInput}\n value={query}\n onChange={handleQuery}\n />\n </Stack>\n <Box>\n {filteredWorkspaces.map((workspace, index) => (\n <WorkspacePreview\n key={workspace.name}\n workspace={workspace}\n index={index}\n query={query}\n />\n ))}\n </Box>\n </Stack>\n </Card>\n </Stack>\n </Container>\n </Flex>\n </TallCard>\n )\n}\n","import {HomeIcon} from '@sanity/icons'\n\nimport WorkspaceHome from '../components/WorkspaceHome'\n\nexport const workspaceHomeTool = {\n title: 'Workspace Home',\n name: 'workspace-home',\n icon: HomeIcon,\n component: WorkspaceHome,\n}\n","import {HomeIcon} from '@sanity/icons'\nimport {definePlugin, WorkspaceOptions} from 'sanity'\n\nimport {workspaceHomeTool} from './tool'\n\nexport const workspaceHome = definePlugin(() => {\n return {\n name: 'sanity-plugin-workspace-home',\n tools: [workspaceHomeTool],\n }\n})\n\ntype WorkspaceHomeConfigProps = {\n projectId: string\n dataset: string\n}\n\nexport const workspaceHomeConfig = ({\n projectId = ``,\n dataset = ``,\n}: WorkspaceHomeConfigProps): WorkspaceOptions => ({\n name: 'home',\n title: 'Home',\n basePath: '/home',\n projectId,\n dataset,\n icon: HomeIcon,\n plugins: [workspaceHome()],\n})\n"],"names":["reactIsModule","require$$0","require$$1","isValidElementType"],"mappings":";;;;;;;;;;;;;;;;;;;;;AASa,MAAI,IAAE,OAAO,IAAI,eAAe,GAAE,IAAE,OAAO,IAAI,cAAc,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,mBAAmB,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,eAAe,GAAE,IAAE,OAAO,IAAI,sBAAsB,GAAE,IAAE,OAAO,IAAI,mBAAmB,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,qBAAqB,GAAE,IAAE,OAAO,IAAI,YAAY,GAAE,IAAE,OAAO,IAAI,YAAY,GAAE,IAAE,OAAO,IAAI,iBAAiB,GAAE;AAAE,MAAE,OAAO,IAAI,wBAAwB;AAChf,WAAS,EAAE,GAAE;AAAC,QAAc,OAAO,KAAlB,YAA4B,MAAP,MAAS;AAAC,UAAI,IAAE,EAAE;AAAS,cAAO,GAAC;AAAA,QAAE,KAAK;AAAE,kBAAO,IAAE,EAAE,MAAK;YAAG,KAAK;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAE,qBAAO;AAAA,YAAE;AAAQ,sBAAO,IAAE,KAAG,EAAE,UAAS,GAAG;AAAA,gBAAA,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO;AAAA,gBAAE;AAAQ,yBAAO;AAAA,cAAC;AAAA,UAAC;AAAA,QAAC,KAAK;AAAE,iBAAO;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC,gCAAuB,kBAAC,GAAE,yCAAwB,GAAE,uBAAA,UAAgB,GAAE,uBAAA,aAAmB,GAAE,uBAAgB,WAAC,GAAE,uBAAY,OAAC,GAAE,uBAAA,OAAa,GAAE,uBAAA,SAAe,GAAE,uBAAgB,WAAC,GAAE,oCAAmB,GAAE,uBAAA,WAAiB,GAChe,uBAAA,eAAqB,GAAE,uBAAA,cAAoB,WAAU;AAAC,WAAM;AAAA,EAAE,GAAE,0CAAyB,WAAU;AAAC,WAAM;AAAA,EAAE,GAAE,uBAAyB,oBAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAyB,oBAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAiB,YAAC,SAAS,GAAE;AAAC,WAAiB,OAAO,KAAlB,YAA4B,MAAP,QAAU,EAAE,aAAW;AAAA,EAAC,GAAE,uBAAoB,eAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAkB,aAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAc,SAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAc,SAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GACve,uBAAA,WAAiB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,oCAAmB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAoB,eAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAA,aAAmB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAsB,iBAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GACxN,uBAAA,qBAAC,SAAS,GAAE;AAAC,WAAiB,OAAO,KAAlB,YAAkC,OAAO,KAApB,cAAuB,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAc,OAAO,KAAlB,YAA4B,MAAP,SAAW,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAY,EAAE,gBAAX;AAAA,EAA6B,GAAE,uBAAc,SAAC;;;;;;;;;;;;;;gFCD7S,QAAQ,IAAI,aAAa,gBAC1B,WAAW;AAOd,QAAI,qBAAqB,OAAO,IAAI,eAAe,GAC/C,oBAAoB,OAAO,IAAI,cAAc,GAC7C,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,yBAAyB,OAAO,IAAI,mBAAmB,GACvD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,qBAAqB,OAAO,IAAI,eAAe,GAC/C,4BAA4B,OAAO,IAAI,sBAAsB,GAC7D,yBAAyB,OAAO,IAAI,mBAAmB,GACvD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,2BAA2B,OAAO,IAAI,qBAAqB,GAC3D,kBAAkB,OAAO,IAAI,YAAY,GACzC,kBAAkB,OAAO,IAAI,YAAY,GACzC,uBAAuB,OAAO,IAAI,iBAAiB,GAInD,iBAAiB,IACjB,qBAAqB,IACrB,0BAA0B,IAE1B,qBAAqB,IAIrB,qBAAqB,IAErB;AAGF,6BAAyB,OAAO,IAAI,wBAAwB;AAG9D,aAAS,mBAAmB,MAAM;AAUhC,aATI,UAAO,QAAS,YAAY,OAAO,QAAS,cAK5C,SAAS,uBAAuB,SAAS,uBAAuB,sBAAuB,SAAS,0BAA0B,SAAS,uBAAuB,SAAS,4BAA4B,sBAAuB,SAAS,wBAAwB,kBAAmB,sBAAuB,2BAIjS,OAAO,QAAS,YAAY,SAAS,SACnC,KAAK,aAAa,mBAAmB,KAAK,aAAa,mBAAmB,KAAK,aAAa,uBAAuB,KAAK,aAAa,sBAAsB,KAAK,aAAa;AAAA;AAAA;AAAA;AAAA,MAIjL,KAAK,aAAa,0BAA0B,KAAK,gBAAgB;AAAA,IAMrE;AAEA,aAAS,OAAO,QAAQ;AACtB,UAAI,OAAO,UAAW,YAAY,WAAW,MAAM;AACjD,YAAI,WAAW,OAAO;AAEtB,gBAAQ,UAAQ;AAAA,UACd,KAAK;AACH,gBAAI,OAAO,OAAO;AAElB,oBAAQ,MAAI;AAAA,cACV,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,uBAAO;AAAA,cAET;AACE,oBAAI,eAAe,QAAQ,KAAK;AAEhC,wBAAQ,cAAY;AAAA,kBAClB,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AACH,2BAAO;AAAA,kBAET;AACE,2BAAO;AAAA,gBACvB;AAAA,YAEA;AAAA,UAEM,KAAK;AACH,mBAAO;AAAA,QACf;AAAA,MACA;AAAA,IAGA;AACA,QAAI,kBAAkB,oBAClB,kBAAkB,qBAClB,UAAU,oBACV,aAAa,wBACb,WAAW,qBACX,OAAO,iBACP,OAAO,iBACP,SAAS,mBACT,WAAW,qBACX,aAAa,wBACb,WAAW,qBACX,eAAe,0BACf,sCAAsC,IACtC,2CAA2C;AAE/C,aAAS,YAAY,QAAQ;AAEzB,aAAK,wCACH,sCAAsC,IAEtC,QAAQ,KAAQ,wFAA6F,IAI1G;AAAA,IACT;AACA,aAAS,iBAAiB,QAAQ;AAE9B,aAAK,6CACH,2CAA2C,IAE3C,QAAQ,KAAQ,6FAAkG,IAI/G;AAAA,IACT;AACA,aAAS,kBAAkB,QAAQ;AACjC,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,kBAAkB,QAAQ;AACjC,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,UAAU,QAAQ;AACzB,aAAO,OAAO,UAAW,YAAY,WAAW,QAAQ,OAAO,aAAa;AAAA,IAC9E;AACA,aAAS,aAAa,QAAQ;AAC5B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,WAAW,QAAQ;AAC1B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,OAAO,QAAQ;AACtB,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,OAAO,QAAQ;AACtB,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,SAAS,QAAQ;AACxB,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,WAAW,QAAQ;AAC1B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,aAAa,QAAQ;AAC5B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,WAAW,QAAQ;AAC1B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,eAAe,QAAQ;AAC9B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AAEA,wBAAA,kBAA0B,iBAC1B,oBAAA,kBAA0B,iBAC1B,oBAAA,UAAkB,SAClB,oBAAA,aAAqB,YACrB,oBAAA,WAAmB,UACnB,oBAAA,OAAe,MACf,oBAAA,OAAe,MACf,oBAAA,SAAiB,QACjB,oBAAA,WAAmB,UACnB,oBAAA,aAAqB,YACrB,oBAAA,WAAmB,UACnB,oBAAA,eAAuB,cACvB,oBAAA,cAAsB,aACtB,oBAAA,mBAA2B,kBAC3B,oBAAA,oBAA4B,mBAC5B,oBAAA,oBAA4B,mBAC5B,oBAAA,YAAoB,WACpB,oBAAA,eAAuB,cACvB,oBAAA,aAAqB,YACrB,oBAAA,SAAiB,QACjB,oBAAA,SAAiB,QACjB,oBAAA,WAAmB,UACnB,oBAAA,aAAqB,YACrB,oBAAA,eAAuB,cACvB,oBAAA,aAAqB,YACrB,oBAAA,iBAAyB,gBACzB,oBAAA,qBAA6B,oBAC7B,oBAAA,SAAiB;AAAA,EACjB;;ACzNI,QAAQ,IAAI,aAAa,eAC3BA,QAAA,UAAiBC,kCAEjBD,QAAA,UAAiBE;;ACEnB,MAAM,aAAa,CAAC,SAAgD;AAClE,MAAIC,eAAAA,mBAAmB,IAAI;AAAG,WAAO,cAAc,IAAI;AACvD,MAAI,eAAe,IAAI;AAAU,WAAA;AAEnC,GAEa,YAAY,OAAO,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBpC,SAAwB,iBAAiB,OAA8B;AACrE,QAAM,EAAC,WAAW,OAAO,MAAA,IAAS,OAC5B,EAAC,MAAM,OAAO,MAAM,UAAU,QAAA,IAAW,WAEzC,EAAC,mBAAkB,IAAI,mBAAmB,GAC1C,gBAAgB,QAAQ,MAAM,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,GAatD,cAAc,QAAQ,MAAM,KAAK,IAAI,QAAQ;AAEnD,6BACG,MAAK,EAAA,WAAW,EAAQ,OAAQ,MAAK,WACpC,UAAC,qBAAA,MAAA,EAAK,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,UAAU,GAC7C,UAAA;AAAA,IAAA,oBAAC,QAAK,aAAa,GAAG,WAAW,GAC/B,8BAAC,OACC,EAAA,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,MAAK;AAAA,QACL,SAAS,MAAM,mBAAmB,IAAI;AAAA,QAEtC,UAAA,qBAAC,MAAK,EAAA,OAAM,UAAS,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAClC,UAAA;AAAA,UAAA,gBACE,oBAAA,WAAA,EAAW,UAAW,WAAA,aAAa,EAAE,CAAA,IACpC;AAAA,UACH,oBAAA,KAAA,EAAI,MAAM,GACT,UAAC,qBAAA,OAAA,EAAM,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GACvB,UAAA;AAAA,YAAC,oBAAA,MAAA,EAAK,MAAM,GAAG,QAAO,YAAW,cAAa,YAC3C,mBAAS,KACZ,CAAA;AAAA,YACC,WAAY,oBAAA,MAAA,EAAK,OAAK,IAAE,mBAAS,CAAA,IAAU;AAAA,UAAA,EAAA,CAC9C,EACF,CAAA;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,OAEJ,EACF,CAAA;AAAA,IACC,oBAAA,MAAA,EAAK,aAAa,GAAG,WAAW,GAC/B,UAAC,qBAAA,MAAA,EAAK,QAAO,QAAO,OAAM,UAAS,KAAK,GACtC,UAAA;AAAA,MAAA,oBAAC,QAAK,MAAM,GAAG,QAAO,YACpB,UAAA,oBAAC,gBAAa,EAChB,CAAA;AAAA,MACA,oBAAC,QAAK,MAAM,GAAG,QAAO,YAAW,cAAa,YAC3C,UACH,QAAA,CAAA;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,IACC,oBAAA,MAAA,EAAK,cAAc,CAAC,GAAG,GAAG,GAAG,CAAC,GAC7B,UAAC,oBAAA,MAAA,EAAK,QAAO,QAAO,OAAM,UAAS,SAAQ,YACxC,UAAA,CAAC,SAAS,cAAc,KACvB,oBAAC,WAAQ,MAAM,CAAC,OAAO,WAAW,CAAC,GAAG,SAAS,EAAG,CAAA,IAChD,KACN,CAAA,GACF;AAAA,EAAA,EAWF,CAAA,EACF,CAAA;AAEJ;ACzFa,MAAA,WAAW,OAAO,IAAI;AAAA;AAAA;AAInC,SAAwB,gBAAgB;AAChC,QAAA,CAAG,EAAA,GAAG,UAAU,IAAI,cAAc,GAClC,EAAC,mBAAsB,IAAA,mBAAA,GAGvB,CAAC,OAAO,QAAQ,IAAI,SAAS,EAAE,GAC/B,cAAc,OAAO,IAAI,GACzB,cAAc;AAAA,IAClB,CAAC,MAA2C;AACjC,eAAA,EAAE,OAAO,KAAK;AAAA,IACzB;AAAA,IACA,CAAC,QAAQ;AAAA,EAAA,GAIL,qBAAqB,QAAQ,MAC1B,WAAW,OAAO,CAAC,cAEtB,UAAU,KAAK,cAAc,SAAS,MAAM,YAAa,CAAA,KACzD,UAAU,QAAQ,YAAY,EAAE,SAAS,MAAM,YAAa,CAAA,KAC5D,UAAU,MAAM,YAAY,EAAE,SAAS,MAAM,aAAa,CAE7D,GACA,CAAC,YAAY,KAAK,CAAC;AAGtB,SAAA,UAAU,MAAM;AACR,UAAA,iBAAiB,CAAC,UAAyB;AAE3C,UAAA,SAAS,YAAY,YAAY,SAAS;AAC5C;AAGF,YAAM,QAAQ,SAAS,MAAM,KAAK,EAAE,IAAI;AACpC,eAAS,KAAK,QAAQ,WAAW,UACnC,mBAAmB,WAAW,KAAK,EAAE,IAAI;AAAA,IAAA;AAI7C,WAAA,OAAO,iBAAiB,YAAY,cAAc,GAE3C,MAAM;AACJ,aAAA,oBAAoB,YAAY,cAAc;AAAA,IAAA;AAAA,EACvD,GACC,CAAC,OAAO,YAAY,kBAAkB,CAAC,GAGvC,oBAAA,UAAA,EAAS,MAAK,eACb,UAAC,oBAAA,MAAA,EAAK,WAAU,UAAS,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,GAC3C,UAAA,oBAAC,WACC,EAAA,UAAA,qBAAC,OAAM,EAAA,OAAO,GACZ,UAAA;AAAA,IAAA,oBAAC,WAAQ,UAAU,aAAA,CAAA;AAAA,wBAClB,MAAK,EAAA,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,QAAQ,GAAG,QAAQ,GAC9C,UAAC,qBAAA,OAAA,EAAM,OAAO,GACZ,UAAA;AAAA,MAAC,qBAAA,OAAA,EAAM,OAAO,GACZ,UAAA;AAAA,QAAA,oBAAC,MAAK,EAAA,MAAM,GAAG,QAAO,YAAW,UAEjC,UAAA;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,OAAO;AAAA,YACP,UAAU;AAAA,UAAA;AAAA,QACZ;AAAA,MAAA,GACF;AAAA,0BACC,KACE,EAAA,UAAA,mBAAmB,IAAI,CAAC,WAAW,UAClC;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAHK,UAAU;AAAA,MAKlB,CAAA,GACH;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,EACF,EAAA,CAAA,EACF,CAAA,GACF,EACF,CAAA;AAEJ;ACjGO,MAAM,oBAAoB;AAAA,EAC/B,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,WAAW;AACb,GCJa,gBAAgB,aAAa,OACjC;AAAA,EACL,MAAM;AAAA,EACN,OAAO,CAAC,iBAAiB;AAC3B,EACD,GAOY,sBAAsB,CAAC;AAAA,EAClC,YAAY;AAAA,EACZ,UAAU;AACZ,OAAmD;AAAA,EACjD,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN,SAAS,CAAC,eAAe;AAC3B;","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"index.esm.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../src/components/WorkspacePreview.tsx","../src/components/WorkspaceHome.tsx","../src/tool/index.ts","../src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import {DatabaseIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Grid, Hotkeys, Stack, Text} from '@sanity/ui'\nimport React, {createElement, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useActiveWorkspace, WorkspaceSummary} from 'sanity'\nimport {styled} from 'styled-components'\n\nconst createIcon = (icon: React.ComponentType | React.ReactNode) => {\n if (isValidElementType(icon)) return createElement(icon)\n if (isValidElement(icon)) return icon\n return undefined\n}\n\nexport const MediaCard = styled(Card)`\n width: 35px;\n height: 35px;\n\n svg {\n width: 100%;\n height: 100%;\n }\n`\n\nexport type WorkspacePreviewProps = {\n workspace: WorkspaceSummary\n index: number\n query: string\n}\n\nexport default function WorkspacePreview(props: WorkspacePreviewProps) {\n const {workspace, index, query} = props\n const {icon, title, name, subtitle, dataset} = workspace\n\n const {setActiveWorkspace} = useActiveWorkspace()\n const iconComponent = useMemo(() => createIcon(icon), [icon])\n\n // TODO: Favorites feature\n // get favorite workspace name from localStorage\n // const favoriteWorkspace = localStorage.getItem('favoriteWorkspace')\n // save local state to force re-render\n // const [isFavourite, setIsFavourite] = React.useState(favoriteWorkspace === name)\n\n // set favorite workspace name to localStorage\n // const setFavoriteWorkspace = useCallback(() => {\n // localStorage.setItem('favoriteWorkspace', name)\n // }, [name])\n\n const hotKeyIndex = index + 1 === 10 ? 0 : index + 1\n\n return (\n <Card borderTop={Boolean(index)} tone=\"default\">\n <Grid columns={5} gap={[2, 3, 4, 4]} paddingY={1}>\n <Card columnStart={1} columnEnd={4}>\n <Stack>\n <Button\n mode=\"bleed\"\n tone=\"default\"\n onClick={() => setActiveWorkspace(name)}\n >\n <Flex align=\"center\" gap={[2, 3, 4, 4]}>\n {iconComponent ? (\n <MediaCard>{createIcon(iconComponent)}</MediaCard>\n ) : null}\n <Box flex={1}>\n <Stack space={[1, 2, 3, 3]}>\n <Text size={3} weight=\"semibold\" textOverflow=\"ellipsis\">\n {title || name}\n </Text>\n {subtitle ? <Text muted>{subtitle}</Text> : null}\n </Stack>\n </Box>\n </Flex>\n </Button>\n </Stack>\n </Card>\n <Card columnStart={4} columnEnd={5}>\n <Flex height=\"fill\" align=\"center\" gap={2}>\n <Text size={1} weight=\"semibold\">\n <DatabaseIcon />\n </Text>\n <Text size={1} weight=\"semibold\" textOverflow=\"ellipsis\">\n {dataset}\n </Text>\n </Flex>\n </Card>\n <Card paddingRight={[2, 3, 3, 3]}>\n <Flex height=\"fill\" align=\"center\" justify=\"flex-end\">\n {!query && hotKeyIndex < 10 ? (\n <Hotkeys keys={[String(hotKeyIndex)]} padding={2} />\n ) : null}\n </Flex>\n </Card>\n {/* <Button\n mode={isFavourite ? 'default' : 'bleed'}\n tone={isFavourite ? 'primary' : 'default'}\n icon={StarIcon}\n title=\"Favorite\"\n onClick={() => {\n setIsFavourite(!isFavourite)\n setFavoriteWorkspace()\n }}\n /> */}\n </Grid>\n </Card>\n )\n}\n","import {\n Box,\n Card,\n Container,\n Flex,\n Heading,\n Stack,\n Text,\n TextInput,\n} from '@sanity/ui'\nimport React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useActiveWorkspace, useWorkspaces} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport WorkspacePreview from './WorkspacePreview'\n\nexport const TallCard = styled(Card)`\n min-height: 100%;\n`\n\nexport default function WorkspaceHome() {\n const [, ...workspaces] = useWorkspaces()\n const {setActiveWorkspace} = useActiveWorkspace()\n\n // Handle search query\n const [query, setQuery] = useState('')\n const searchInput = useRef(null)\n const handleQuery = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQuery(e.target.value)\n },\n [setQuery]\n )\n\n // filter workspaces if name, dataset or title matches query\n const filteredWorkspaces = useMemo(() => {\n return workspaces.filter((workspace) => {\n return (\n workspace.name.toLowerCase().includes(query.toLowerCase()) ||\n workspace.dataset.toLowerCase().includes(query.toLowerCase()) ||\n workspace.title.toLowerCase().includes(query.toLowerCase())\n )\n })\n }, [workspaces, query])\n\n // Listen to keypress of workspace index\n useEffect(() => {\n const handleKeypress = (event: KeyboardEvent) => {\n // Ignore if search query exists or search input is focused\n if (query || searchInput.current === document.activeElement) {\n return\n }\n\n const index = parseInt(event.key, 10) - 1\n if (index >= 0 && index < workspaces.length) {\n setActiveWorkspace(workspaces[index].name)\n }\n }\n\n window.addEventListener('keypress', handleKeypress)\n\n return () => {\n window.removeEventListener('keypress', handleKeypress)\n }\n }, [query, workspaces, setActiveWorkspace])\n\n return (\n <TallCard tone=\"transparent\">\n <Flex direction=\"column\" padding={[4, 5, 6, 6]}>\n <Container>\n <Stack space={4}>\n <Heading>Workspaces</Heading>\n <Card padding={[2, 3, 4, 4]} radius={3} shadow={2}>\n <Stack space={3}>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n Search\n </Text>\n <TextInput\n ref={searchInput}\n value={query}\n onChange={handleQuery}\n />\n </Stack>\n <Box>\n {filteredWorkspaces.map((workspace, index) => (\n <WorkspacePreview\n key={workspace.name}\n workspace={workspace}\n index={index}\n query={query}\n />\n ))}\n </Box>\n </Stack>\n </Card>\n </Stack>\n </Container>\n </Flex>\n </TallCard>\n )\n}\n","import {HomeIcon} from '@sanity/icons'\n\nimport WorkspaceHome from '../components/WorkspaceHome'\n\nexport const workspaceHomeTool = {\n title: 'Workspace Home',\n name: 'workspace-home',\n icon: HomeIcon,\n component: WorkspaceHome,\n}\n","import {HomeIcon} from '@sanity/icons'\nimport {definePlugin, WorkspaceOptions} from 'sanity'\n\nimport {workspaceHomeTool} from './tool'\n\nexport const workspaceHome = definePlugin(() => {\n return {\n name: 'sanity-plugin-workspace-home',\n tools: [workspaceHomeTool],\n }\n})\n\ntype WorkspaceHomeConfigProps = {\n projectId: string\n dataset: string\n}\n\nexport const workspaceHomeConfig = ({\n projectId = ``,\n dataset = ``,\n}: WorkspaceHomeConfigProps): WorkspaceOptions => ({\n name: 'home',\n title: 'Home',\n basePath: '/home',\n projectId,\n dataset,\n icon: HomeIcon,\n plugins: [workspaceHome()],\n})\n"],"names":["reactIsModule","require$$0","require$$1","isValidElementType"],"mappings":"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","x_google_ignoreList":[0,1,2]}
package/dist/index.js CHANGED
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: !0 });
3
- var icons = require("@sanity/icons"), sanity = require("sanity"), jsxRuntime = require("react/jsx-runtime"), ui = require("@sanity/ui"), react = require("react"), styled = require("styled-components");
4
- function _interopDefaultCompat(e) {
5
- return e && typeof e == "object" && "default" in e ? e : { default: e };
6
- }
7
- var styled__default = /* @__PURE__ */ _interopDefaultCompat(styled), reactIs = { exports: {} }, reactIs_production_min = {};
3
+ var icons = require("@sanity/icons"), sanity = require("sanity"), jsxRuntime = require("react/jsx-runtime"), ui = require("@sanity/ui"), react = require("react"), styledComponents = require("styled-components"), reactIs = { exports: {} }, reactIs_production_min = {};
8
4
  /**
9
5
  * @license React
10
6
  * react-is.production.min.js
@@ -190,7 +186,7 @@ const createIcon = (icon) => {
190
186
  return react.createElement(icon);
191
187
  if (react.isValidElement(icon))
192
188
  return icon;
193
- }, MediaCard = styled__default.default(ui.Card)`
189
+ }, MediaCard = styledComponents.styled(ui.Card)`
194
190
  width: 35px;
195
191
  height: 35px;
196
192
 
@@ -224,7 +220,7 @@ function WorkspacePreview(props) {
224
220
  /* @__PURE__ */ jsxRuntime.jsx(ui.Card, { paddingRight: [2, 3, 3, 3], children: /* @__PURE__ */ jsxRuntime.jsx(ui.Flex, { height: "fill", align: "center", justify: "flex-end", children: !query && hotKeyIndex < 10 ? /* @__PURE__ */ jsxRuntime.jsx(ui.Hotkeys, { keys: [String(hotKeyIndex)], padding: 2 }) : null }) })
225
221
  ] }) });
226
222
  }
227
- const TallCard = styled__default.default(ui.Card)`
223
+ const TallCard = styledComponents.styled(ui.Card)`
228
224
  min-height: 100%;
229
225
  `;
230
226
  function WorkspaceHome() {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../src/components/WorkspacePreview.tsx","../src/components/WorkspaceHome.tsx","../src/tool/index.ts","../src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import {DatabaseIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Grid, Hotkeys, Stack, Text} from '@sanity/ui'\nimport React, {createElement, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useActiveWorkspace, WorkspaceSummary} from 'sanity'\nimport styled from 'styled-components'\n\nconst createIcon = (icon: React.ComponentType | React.ReactNode) => {\n if (isValidElementType(icon)) return createElement(icon)\n if (isValidElement(icon)) return icon\n return undefined\n}\n\nexport const MediaCard = styled(Card)`\n width: 35px;\n height: 35px;\n\n svg {\n width: 100%;\n height: 100%;\n }\n`\n\nexport type WorkspacePreviewProps = {\n workspace: WorkspaceSummary\n index: number\n query: string\n}\n\nexport default function WorkspacePreview(props: WorkspacePreviewProps) {\n const {workspace, index, query} = props\n const {icon, title, name, subtitle, dataset} = workspace\n\n const {setActiveWorkspace} = useActiveWorkspace()\n const iconComponent = useMemo(() => createIcon(icon), [icon])\n\n // TODO: Favorites feature\n // get favorite workspace name from localStorage\n // const favoriteWorkspace = localStorage.getItem('favoriteWorkspace')\n // save local state to force re-render\n // const [isFavourite, setIsFavourite] = React.useState(favoriteWorkspace === name)\n\n // set favorite workspace name to localStorage\n // const setFavoriteWorkspace = useCallback(() => {\n // localStorage.setItem('favoriteWorkspace', name)\n // }, [name])\n\n const hotKeyIndex = index + 1 === 10 ? 0 : index + 1\n\n return (\n <Card borderTop={Boolean(index)} tone=\"default\">\n <Grid columns={5} gap={[2, 3, 4, 4]} paddingY={1}>\n <Card columnStart={1} columnEnd={4}>\n <Stack>\n <Button\n mode=\"bleed\"\n tone=\"default\"\n onClick={() => setActiveWorkspace(name)}\n >\n <Flex align=\"center\" gap={[2, 3, 4, 4]}>\n {iconComponent ? (\n <MediaCard>{createIcon(iconComponent)}</MediaCard>\n ) : null}\n <Box flex={1}>\n <Stack space={[1, 2, 3, 3]}>\n <Text size={3} weight=\"semibold\" textOverflow=\"ellipsis\">\n {title || name}\n </Text>\n {subtitle ? <Text muted>{subtitle}</Text> : null}\n </Stack>\n </Box>\n </Flex>\n </Button>\n </Stack>\n </Card>\n <Card columnStart={4} columnEnd={5}>\n <Flex height=\"fill\" align=\"center\" gap={2}>\n <Text size={1} weight=\"semibold\">\n <DatabaseIcon />\n </Text>\n <Text size={1} weight=\"semibold\" textOverflow=\"ellipsis\">\n {dataset}\n </Text>\n </Flex>\n </Card>\n <Card paddingRight={[2, 3, 3, 3]}>\n <Flex height=\"fill\" align=\"center\" justify=\"flex-end\">\n {!query && hotKeyIndex < 10 ? (\n <Hotkeys keys={[String(hotKeyIndex)]} padding={2} />\n ) : null}\n </Flex>\n </Card>\n {/* <Button\n mode={isFavourite ? 'default' : 'bleed'}\n tone={isFavourite ? 'primary' : 'default'}\n icon={StarIcon}\n title=\"Favorite\"\n onClick={() => {\n setIsFavourite(!isFavourite)\n setFavoriteWorkspace()\n }}\n /> */}\n </Grid>\n </Card>\n )\n}\n","import {\n Box,\n Card,\n Container,\n Flex,\n Heading,\n Stack,\n Text,\n TextInput,\n} from '@sanity/ui'\nimport React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useActiveWorkspace, useWorkspaces} from 'sanity'\nimport styled from 'styled-components'\n\nimport WorkspacePreview from './WorkspacePreview'\n\nexport const TallCard = styled(Card)`\n min-height: 100%;\n`\n\nexport default function WorkspaceHome() {\n const [, ...workspaces] = useWorkspaces()\n const {setActiveWorkspace} = useActiveWorkspace()\n\n // Handle search query\n const [query, setQuery] = useState('')\n const searchInput = useRef(null)\n const handleQuery = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQuery(e.target.value)\n },\n [setQuery]\n )\n\n // filter workspaces if name, dataset or title matches query\n const filteredWorkspaces = useMemo(() => {\n return workspaces.filter((workspace) => {\n return (\n workspace.name.toLowerCase().includes(query.toLowerCase()) ||\n workspace.dataset.toLowerCase().includes(query.toLowerCase()) ||\n workspace.title.toLowerCase().includes(query.toLowerCase())\n )\n })\n }, [workspaces, query])\n\n // Listen to keypress of workspace index\n useEffect(() => {\n const handleKeypress = (event: KeyboardEvent) => {\n // Ignore if search query exists or search input is focused\n if (query || searchInput.current === document.activeElement) {\n return\n }\n\n const index = parseInt(event.key, 10) - 1\n if (index >= 0 && index < workspaces.length) {\n setActiveWorkspace(workspaces[index].name)\n }\n }\n\n window.addEventListener('keypress', handleKeypress)\n\n return () => {\n window.removeEventListener('keypress', handleKeypress)\n }\n }, [query, workspaces, setActiveWorkspace])\n\n return (\n <TallCard tone=\"transparent\">\n <Flex direction=\"column\" padding={[4, 5, 6, 6]}>\n <Container>\n <Stack space={4}>\n <Heading>Workspaces</Heading>\n <Card padding={[2, 3, 4, 4]} radius={3} shadow={2}>\n <Stack space={3}>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n Search\n </Text>\n <TextInput\n ref={searchInput}\n value={query}\n onChange={handleQuery}\n />\n </Stack>\n <Box>\n {filteredWorkspaces.map((workspace, index) => (\n <WorkspacePreview\n key={workspace.name}\n workspace={workspace}\n index={index}\n query={query}\n />\n ))}\n </Box>\n </Stack>\n </Card>\n </Stack>\n </Container>\n </Flex>\n </TallCard>\n )\n}\n","import {HomeIcon} from '@sanity/icons'\n\nimport WorkspaceHome from '../components/WorkspaceHome'\n\nexport const workspaceHomeTool = {\n title: 'Workspace Home',\n name: 'workspace-home',\n icon: HomeIcon,\n component: WorkspaceHome,\n}\n","import {HomeIcon} from '@sanity/icons'\nimport {definePlugin, WorkspaceOptions} from 'sanity'\n\nimport {workspaceHomeTool} from './tool'\n\nexport const workspaceHome = definePlugin(() => {\n return {\n name: 'sanity-plugin-workspace-home',\n tools: [workspaceHomeTool],\n }\n})\n\ntype WorkspaceHomeConfigProps = {\n projectId: string\n dataset: string\n}\n\nexport const workspaceHomeConfig = ({\n projectId = ``,\n dataset = ``,\n}: WorkspaceHomeConfigProps): WorkspaceOptions => ({\n name: 'home',\n title: 'Home',\n basePath: '/home',\n projectId,\n dataset,\n icon: HomeIcon,\n plugins: [workspaceHome()],\n})\n"],"names":["reactIsModule","require$$0","require$$1","isValidElementType","createElement","isValidElement","styled","Card","useActiveWorkspace","useMemo","jsxs","Grid","jsx","Stack","Button","Flex","Box","Text","DatabaseIcon","Hotkeys","useWorkspaces","useState","useRef","useCallback","useEffect","Container","Heading","TextInput","HomeIcon","definePlugin"],"mappings":";;;;;;;;;;;;;;;;;;;;;AASa,MAAI,IAAE,OAAO,IAAI,eAAe,GAAE,IAAE,OAAO,IAAI,cAAc,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,mBAAmB,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,eAAe,GAAE,IAAE,OAAO,IAAI,sBAAsB,GAAE,IAAE,OAAO,IAAI,mBAAmB,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,qBAAqB,GAAE,IAAE,OAAO,IAAI,YAAY,GAAE,IAAE,OAAO,IAAI,YAAY,GAAE,IAAE,OAAO,IAAI,iBAAiB,GAAE;AAAE,MAAE,OAAO,IAAI,wBAAwB;AAChf,WAAS,EAAE,GAAE;AAAC,QAAc,OAAO,KAAlB,YAA4B,MAAP,MAAS;AAAC,UAAI,IAAE,EAAE;AAAS,cAAO,GAAC;AAAA,QAAE,KAAK;AAAE,kBAAO,IAAE,EAAE,MAAK;YAAG,KAAK;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAE,qBAAO;AAAA,YAAE;AAAQ,sBAAO,IAAE,KAAG,EAAE,UAAS,GAAG;AAAA,gBAAA,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO;AAAA,gBAAE;AAAQ,yBAAO;AAAA,cAAC;AAAA,UAAC;AAAA,QAAC,KAAK;AAAE,iBAAO;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC,gCAAuB,kBAAC,GAAE,yCAAwB,GAAE,uBAAA,UAAgB,GAAE,uBAAA,aAAmB,GAAE,uBAAgB,WAAC,GAAE,uBAAY,OAAC,GAAE,uBAAA,OAAa,GAAE,uBAAA,SAAe,GAAE,uBAAgB,WAAC,GAAE,oCAAmB,GAAE,uBAAA,WAAiB,GAChe,uBAAA,eAAqB,GAAE,uBAAA,cAAoB,WAAU;AAAC,WAAM;AAAA,EAAE,GAAE,0CAAyB,WAAU;AAAC,WAAM;AAAA,EAAE,GAAE,uBAAyB,oBAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAyB,oBAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAiB,YAAC,SAAS,GAAE;AAAC,WAAiB,OAAO,KAAlB,YAA4B,MAAP,QAAU,EAAE,aAAW;AAAA,EAAC,GAAE,uBAAoB,eAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAkB,aAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAc,SAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAc,SAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GACve,uBAAA,WAAiB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,oCAAmB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAoB,eAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAA,aAAmB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAsB,iBAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GACxN,uBAAA,qBAAC,SAAS,GAAE;AAAC,WAAiB,OAAO,KAAlB,YAAkC,OAAO,KAApB,cAAuB,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAc,OAAO,KAAlB,YAA4B,MAAP,SAAW,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAY,EAAE,gBAAX;AAAA,EAA6B,GAAE,uBAAc,SAAC;;;;;;;;;;;;;;gFCD7S,QAAQ,IAAI,aAAa,gBAC1B,WAAW;AAOd,QAAI,qBAAqB,OAAO,IAAI,eAAe,GAC/C,oBAAoB,OAAO,IAAI,cAAc,GAC7C,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,yBAAyB,OAAO,IAAI,mBAAmB,GACvD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,qBAAqB,OAAO,IAAI,eAAe,GAC/C,4BAA4B,OAAO,IAAI,sBAAsB,GAC7D,yBAAyB,OAAO,IAAI,mBAAmB,GACvD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,2BAA2B,OAAO,IAAI,qBAAqB,GAC3D,kBAAkB,OAAO,IAAI,YAAY,GACzC,kBAAkB,OAAO,IAAI,YAAY,GACzC,uBAAuB,OAAO,IAAI,iBAAiB,GAInD,iBAAiB,IACjB,qBAAqB,IACrB,0BAA0B,IAE1B,qBAAqB,IAIrB,qBAAqB,IAErB;AAGF,6BAAyB,OAAO,IAAI,wBAAwB;AAG9D,aAAS,mBAAmB,MAAM;AAUhC,aATI,UAAO,QAAS,YAAY,OAAO,QAAS,cAK5C,SAAS,uBAAuB,SAAS,uBAAuB,sBAAuB,SAAS,0BAA0B,SAAS,uBAAuB,SAAS,4BAA4B,sBAAuB,SAAS,wBAAwB,kBAAmB,sBAAuB,2BAIjS,OAAO,QAAS,YAAY,SAAS,SACnC,KAAK,aAAa,mBAAmB,KAAK,aAAa,mBAAmB,KAAK,aAAa,uBAAuB,KAAK,aAAa,sBAAsB,KAAK,aAAa;AAAA;AAAA;AAAA;AAAA,MAIjL,KAAK,aAAa,0BAA0B,KAAK,gBAAgB;AAAA,IAMrE;AAEA,aAAS,OAAO,QAAQ;AACtB,UAAI,OAAO,UAAW,YAAY,WAAW,MAAM;AACjD,YAAI,WAAW,OAAO;AAEtB,gBAAQ,UAAQ;AAAA,UACd,KAAK;AACH,gBAAI,OAAO,OAAO;AAElB,oBAAQ,MAAI;AAAA,cACV,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,uBAAO;AAAA,cAET;AACE,oBAAI,eAAe,QAAQ,KAAK;AAEhC,wBAAQ,cAAY;AAAA,kBAClB,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AACH,2BAAO;AAAA,kBAET;AACE,2BAAO;AAAA,gBACvB;AAAA,YAEA;AAAA,UAEM,KAAK;AACH,mBAAO;AAAA,QACf;AAAA,MACA;AAAA,IAGA;AACA,QAAI,kBAAkB,oBAClB,kBAAkB,qBAClB,UAAU,oBACV,aAAa,wBACb,WAAW,qBACX,OAAO,iBACP,OAAO,iBACP,SAAS,mBACT,WAAW,qBACX,aAAa,wBACb,WAAW,qBACX,eAAe,0BACf,sCAAsC,IACtC,2CAA2C;AAE/C,aAAS,YAAY,QAAQ;AAEzB,aAAK,wCACH,sCAAsC,IAEtC,QAAQ,KAAQ,wFAA6F,IAI1G;AAAA,IACT;AACA,aAAS,iBAAiB,QAAQ;AAE9B,aAAK,6CACH,2CAA2C,IAE3C,QAAQ,KAAQ,6FAAkG,IAI/G;AAAA,IACT;AACA,aAAS,kBAAkB,QAAQ;AACjC,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,kBAAkB,QAAQ;AACjC,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,UAAU,QAAQ;AACzB,aAAO,OAAO,UAAW,YAAY,WAAW,QAAQ,OAAO,aAAa;AAAA,IAC9E;AACA,aAAS,aAAa,QAAQ;AAC5B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,WAAW,QAAQ;AAC1B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,OAAO,QAAQ;AACtB,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,OAAO,QAAQ;AACtB,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,SAAS,QAAQ;AACxB,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,WAAW,QAAQ;AAC1B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,aAAa,QAAQ;AAC5B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,WAAW,QAAQ;AAC1B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,eAAe,QAAQ;AAC9B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AAEA,wBAAA,kBAA0B,iBAC1B,oBAAA,kBAA0B,iBAC1B,oBAAA,UAAkB,SAClB,oBAAA,aAAqB,YACrB,oBAAA,WAAmB,UACnB,oBAAA,OAAe,MACf,oBAAA,OAAe,MACf,oBAAA,SAAiB,QACjB,oBAAA,WAAmB,UACnB,oBAAA,aAAqB,YACrB,oBAAA,WAAmB,UACnB,oBAAA,eAAuB,cACvB,oBAAA,cAAsB,aACtB,oBAAA,mBAA2B,kBAC3B,oBAAA,oBAA4B,mBAC5B,oBAAA,oBAA4B,mBAC5B,oBAAA,YAAoB,WACpB,oBAAA,eAAuB,cACvB,oBAAA,aAAqB,YACrB,oBAAA,SAAiB,QACjB,oBAAA,SAAiB,QACjB,oBAAA,WAAmB,UACnB,oBAAA,aAAqB,YACrB,oBAAA,eAAuB,cACvB,oBAAA,aAAqB,YACrB,oBAAA,iBAAyB,gBACzB,oBAAA,qBAA6B,oBAC7B,oBAAA,SAAiB;AAAA,EACjB;;ACzNI,QAAQ,IAAI,aAAa,eAC3BA,QAAA,UAAiBC,kCAEjBD,QAAA,UAAiBE;;ACEnB,MAAM,aAAa,CAAC,SAAgD;AAClE,MAAIC,eAAAA,mBAAmB,IAAI;AAAG,WAAOC,MAAAA,cAAc,IAAI;AACvD,MAAIC,MAAAA,eAAe,IAAI;AAAU,WAAA;AAEnC,GAEa,YAAYC,gBAAAA,QAAOC,GAAAA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBpC,SAAwB,iBAAiB,OAA8B;AACrE,QAAM,EAAC,WAAW,OAAO,MAAA,IAAS,OAC5B,EAAC,MAAM,OAAO,MAAM,UAAU,QAAA,IAAW,WAEzC,EAAC,mBAAkB,IAAIC,OAAAA,mBAAmB,GAC1C,gBAAgBC,MAAA,QAAQ,MAAM,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,GAatD,cAAc,QAAQ,MAAM,KAAK,IAAI,QAAQ;AAEnD,wCACGF,GAAAA,MAAK,EAAA,WAAW,EAAQ,OAAQ,MAAK,WACpC,UAACG,2BAAAA,KAAAC,GAAA,MAAA,EAAK,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,UAAU,GAC7C,UAAA;AAAA,IAAAC,2BAAAA,IAACL,WAAK,aAAa,GAAG,WAAW,GAC/B,yCAACM,UACC,EAAA,UAAAD,2BAAA;AAAA,MAACE,GAAA;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,MAAK;AAAA,QACL,SAAS,MAAM,mBAAmB,IAAI;AAAA,QAEtC,UAAAJ,2BAAAA,KAACK,GAAAA,MAAK,EAAA,OAAM,UAAS,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAClC,UAAA;AAAA,UAAA,gBACEH,2BAAAA,IAAA,WAAA,EAAW,UAAW,WAAA,aAAa,EAAE,CAAA,IACpC;AAAA,UACHA,2BAAA,IAAAI,GAAA,KAAA,EAAI,MAAM,GACT,UAACN,2BAAAA,KAAAG,GAAAA,OAAA,EAAM,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GACvB,UAAA;AAAA,YAACD,2BAAAA,IAAAK,GAAA,MAAA,EAAK,MAAM,GAAG,QAAO,YAAW,cAAa,YAC3C,mBAAS,KACZ,CAAA;AAAA,YACC,WAAYL,2BAAAA,IAAAK,GAAA,MAAA,EAAK,OAAK,IAAE,mBAAS,CAAA,IAAU;AAAA,UAAA,EAAA,CAC9C,EACF,CAAA;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,OAEJ,EACF,CAAA;AAAA,IACCL,2BAAA,IAAAL,GAAA,MAAA,EAAK,aAAa,GAAG,WAAW,GAC/B,UAACG,2BAAAA,KAAAK,GAAAA,MAAA,EAAK,QAAO,QAAO,OAAM,UAAS,KAAK,GACtC,UAAA;AAAA,MAAAH,2BAAAA,IAACK,WAAK,MAAM,GAAG,QAAO,YACpB,UAAAL,2BAAA,IAACM,sBAAa,EAChB,CAAA;AAAA,MACAN,2BAAAA,IAACK,WAAK,MAAM,GAAG,QAAO,YAAW,cAAa,YAC3C,UACH,QAAA,CAAA;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,IACCL,2BAAA,IAAAL,GAAA,MAAA,EAAK,cAAc,CAAC,GAAG,GAAG,GAAG,CAAC,GAC7B,UAACK,2BAAAA,IAAAG,GAAAA,MAAA,EAAK,QAAO,QAAO,OAAM,UAAS,SAAQ,YACxC,UAAA,CAAC,SAAS,cAAc,KACvBH,2BAAA,IAACO,cAAQ,MAAM,CAAC,OAAO,WAAW,CAAC,GAAG,SAAS,EAAG,CAAA,IAChD,KACN,CAAA,GACF;AAAA,EAAA,EAWF,CAAA,EACF,CAAA;AAEJ;ACzFa,MAAA,WAAWb,gBAAAA,QAAOC,GAAAA,IAAI;AAAA;AAAA;AAInC,SAAwB,gBAAgB;AAChC,QAAA,CAAG,EAAA,GAAG,UAAU,IAAIa,OAAc,cAAA,GAClC,EAAC,mBAAsB,IAAAZ,OAAA,mBAAA,GAGvB,CAAC,OAAO,QAAQ,IAAIa,MAAAA,SAAS,EAAE,GAC/B,cAAcC,MAAAA,OAAO,IAAI,GACzB,cAAcC,MAAA;AAAA,IAClB,CAAC,MAA2C;AACjC,eAAA,EAAE,OAAO,KAAK;AAAA,IACzB;AAAA,IACA,CAAC,QAAQ;AAAA,EAAA,GAIL,qBAAqBd,MAAAA,QAAQ,MAC1B,WAAW,OAAO,CAAC,cAEtB,UAAU,KAAK,cAAc,SAAS,MAAM,YAAa,CAAA,KACzD,UAAU,QAAQ,YAAY,EAAE,SAAS,MAAM,YAAa,CAAA,KAC5D,UAAU,MAAM,YAAY,EAAE,SAAS,MAAM,aAAa,CAE7D,GACA,CAAC,YAAY,KAAK,CAAC;AAGtB,SAAAe,MAAA,UAAU,MAAM;AACR,UAAA,iBAAiB,CAAC,UAAyB;AAE3C,UAAA,SAAS,YAAY,YAAY,SAAS;AAC5C;AAGF,YAAM,QAAQ,SAAS,MAAM,KAAK,EAAE,IAAI;AACpC,eAAS,KAAK,QAAQ,WAAW,UACnC,mBAAmB,WAAW,KAAK,EAAE,IAAI;AAAA,IAAA;AAI7C,WAAA,OAAO,iBAAiB,YAAY,cAAc,GAE3C,MAAM;AACJ,aAAA,oBAAoB,YAAY,cAAc;AAAA,IAAA;AAAA,EACvD,GACC,CAAC,OAAO,YAAY,kBAAkB,CAAC,GAGvCZ,2BAAA,IAAA,UAAA,EAAS,MAAK,eACb,UAACA,2BAAAA,IAAAG,GAAAA,MAAA,EAAK,WAAU,UAAS,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,GAC3C,UAAAH,2BAAA,IAACa,GACC,WAAA,EAAA,UAAAf,2BAAAA,KAACG,GAAAA,OAAM,EAAA,OAAO,GACZ,UAAA;AAAA,IAAAD,2BAAAA,IAACc,cAAQ,UAAU,aAAA,CAAA;AAAA,mCAClBnB,GAAAA,MAAK,EAAA,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,QAAQ,GAAG,QAAQ,GAC9C,UAACG,2BAAAA,KAAAG,GAAAA,OAAA,EAAM,OAAO,GACZ,UAAA;AAAA,MAACH,2BAAAA,KAAAG,GAAAA,OAAA,EAAM,OAAO,GACZ,UAAA;AAAA,QAAAD,+BAACK,GAAAA,MAAK,EAAA,MAAM,GAAG,QAAO,YAAW,UAEjC,UAAA;AAAA,QACAL,2BAAA;AAAA,UAACe,GAAA;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,OAAO;AAAA,YACP,UAAU;AAAA,UAAA;AAAA,QACZ;AAAA,MAAA,GACF;AAAA,qCACCX,GAAAA,KACE,EAAA,UAAA,mBAAmB,IAAI,CAAC,WAAW,UAClCJ,2BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAHK,UAAU;AAAA,MAKlB,CAAA,GACH;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,EACF,EAAA,CAAA,EACF,CAAA,GACF,EACF,CAAA;AAEJ;ACjGO,MAAM,oBAAoB;AAAA,EAC/B,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAMgB,MAAA;AAAA,EACN,WAAW;AACb,GCJa,gBAAgBC,oBAAa,OACjC;AAAA,EACL,MAAM;AAAA,EACN,OAAO,CAAC,iBAAiB;AAC3B,EACD,GAOY,sBAAsB,CAAC;AAAA,EAClC,YAAY;AAAA,EACZ,UAAU;AACZ,OAAmD;AAAA,EACjD,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,MAAMD,MAAA;AAAA,EACN,SAAS,CAAC,eAAe;AAC3B;;;","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../src/components/WorkspacePreview.tsx","../src/components/WorkspaceHome.tsx","../src/tool/index.ts","../src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import {DatabaseIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Grid, Hotkeys, Stack, Text} from '@sanity/ui'\nimport React, {createElement, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useActiveWorkspace, WorkspaceSummary} from 'sanity'\nimport {styled} from 'styled-components'\n\nconst createIcon = (icon: React.ComponentType | React.ReactNode) => {\n if (isValidElementType(icon)) return createElement(icon)\n if (isValidElement(icon)) return icon\n return undefined\n}\n\nexport const MediaCard = styled(Card)`\n width: 35px;\n height: 35px;\n\n svg {\n width: 100%;\n height: 100%;\n }\n`\n\nexport type WorkspacePreviewProps = {\n workspace: WorkspaceSummary\n index: number\n query: string\n}\n\nexport default function WorkspacePreview(props: WorkspacePreviewProps) {\n const {workspace, index, query} = props\n const {icon, title, name, subtitle, dataset} = workspace\n\n const {setActiveWorkspace} = useActiveWorkspace()\n const iconComponent = useMemo(() => createIcon(icon), [icon])\n\n // TODO: Favorites feature\n // get favorite workspace name from localStorage\n // const favoriteWorkspace = localStorage.getItem('favoriteWorkspace')\n // save local state to force re-render\n // const [isFavourite, setIsFavourite] = React.useState(favoriteWorkspace === name)\n\n // set favorite workspace name to localStorage\n // const setFavoriteWorkspace = useCallback(() => {\n // localStorage.setItem('favoriteWorkspace', name)\n // }, [name])\n\n const hotKeyIndex = index + 1 === 10 ? 0 : index + 1\n\n return (\n <Card borderTop={Boolean(index)} tone=\"default\">\n <Grid columns={5} gap={[2, 3, 4, 4]} paddingY={1}>\n <Card columnStart={1} columnEnd={4}>\n <Stack>\n <Button\n mode=\"bleed\"\n tone=\"default\"\n onClick={() => setActiveWorkspace(name)}\n >\n <Flex align=\"center\" gap={[2, 3, 4, 4]}>\n {iconComponent ? (\n <MediaCard>{createIcon(iconComponent)}</MediaCard>\n ) : null}\n <Box flex={1}>\n <Stack space={[1, 2, 3, 3]}>\n <Text size={3} weight=\"semibold\" textOverflow=\"ellipsis\">\n {title || name}\n </Text>\n {subtitle ? <Text muted>{subtitle}</Text> : null}\n </Stack>\n </Box>\n </Flex>\n </Button>\n </Stack>\n </Card>\n <Card columnStart={4} columnEnd={5}>\n <Flex height=\"fill\" align=\"center\" gap={2}>\n <Text size={1} weight=\"semibold\">\n <DatabaseIcon />\n </Text>\n <Text size={1} weight=\"semibold\" textOverflow=\"ellipsis\">\n {dataset}\n </Text>\n </Flex>\n </Card>\n <Card paddingRight={[2, 3, 3, 3]}>\n <Flex height=\"fill\" align=\"center\" justify=\"flex-end\">\n {!query && hotKeyIndex < 10 ? (\n <Hotkeys keys={[String(hotKeyIndex)]} padding={2} />\n ) : null}\n </Flex>\n </Card>\n {/* <Button\n mode={isFavourite ? 'default' : 'bleed'}\n tone={isFavourite ? 'primary' : 'default'}\n icon={StarIcon}\n title=\"Favorite\"\n onClick={() => {\n setIsFavourite(!isFavourite)\n setFavoriteWorkspace()\n }}\n /> */}\n </Grid>\n </Card>\n )\n}\n","import {\n Box,\n Card,\n Container,\n Flex,\n Heading,\n Stack,\n Text,\n TextInput,\n} from '@sanity/ui'\nimport React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useActiveWorkspace, useWorkspaces} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport WorkspacePreview from './WorkspacePreview'\n\nexport const TallCard = styled(Card)`\n min-height: 100%;\n`\n\nexport default function WorkspaceHome() {\n const [, ...workspaces] = useWorkspaces()\n const {setActiveWorkspace} = useActiveWorkspace()\n\n // Handle search query\n const [query, setQuery] = useState('')\n const searchInput = useRef(null)\n const handleQuery = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQuery(e.target.value)\n },\n [setQuery]\n )\n\n // filter workspaces if name, dataset or title matches query\n const filteredWorkspaces = useMemo(() => {\n return workspaces.filter((workspace) => {\n return (\n workspace.name.toLowerCase().includes(query.toLowerCase()) ||\n workspace.dataset.toLowerCase().includes(query.toLowerCase()) ||\n workspace.title.toLowerCase().includes(query.toLowerCase())\n )\n })\n }, [workspaces, query])\n\n // Listen to keypress of workspace index\n useEffect(() => {\n const handleKeypress = (event: KeyboardEvent) => {\n // Ignore if search query exists or search input is focused\n if (query || searchInput.current === document.activeElement) {\n return\n }\n\n const index = parseInt(event.key, 10) - 1\n if (index >= 0 && index < workspaces.length) {\n setActiveWorkspace(workspaces[index].name)\n }\n }\n\n window.addEventListener('keypress', handleKeypress)\n\n return () => {\n window.removeEventListener('keypress', handleKeypress)\n }\n }, [query, workspaces, setActiveWorkspace])\n\n return (\n <TallCard tone=\"transparent\">\n <Flex direction=\"column\" padding={[4, 5, 6, 6]}>\n <Container>\n <Stack space={4}>\n <Heading>Workspaces</Heading>\n <Card padding={[2, 3, 4, 4]} radius={3} shadow={2}>\n <Stack space={3}>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n Search\n </Text>\n <TextInput\n ref={searchInput}\n value={query}\n onChange={handleQuery}\n />\n </Stack>\n <Box>\n {filteredWorkspaces.map((workspace, index) => (\n <WorkspacePreview\n key={workspace.name}\n workspace={workspace}\n index={index}\n query={query}\n />\n ))}\n </Box>\n </Stack>\n </Card>\n </Stack>\n </Container>\n </Flex>\n </TallCard>\n )\n}\n","import {HomeIcon} from '@sanity/icons'\n\nimport WorkspaceHome from '../components/WorkspaceHome'\n\nexport const workspaceHomeTool = {\n title: 'Workspace Home',\n name: 'workspace-home',\n icon: HomeIcon,\n component: WorkspaceHome,\n}\n","import {HomeIcon} from '@sanity/icons'\nimport {definePlugin, WorkspaceOptions} from 'sanity'\n\nimport {workspaceHomeTool} from './tool'\n\nexport const workspaceHome = definePlugin(() => {\n return {\n name: 'sanity-plugin-workspace-home',\n tools: [workspaceHomeTool],\n }\n})\n\ntype WorkspaceHomeConfigProps = {\n projectId: string\n dataset: string\n}\n\nexport const workspaceHomeConfig = ({\n projectId = ``,\n dataset = ``,\n}: WorkspaceHomeConfigProps): WorkspaceOptions => ({\n name: 'home',\n title: 'Home',\n basePath: '/home',\n projectId,\n dataset,\n icon: HomeIcon,\n plugins: [workspaceHome()],\n})\n"],"names":["reactIsModule","require$$0","require$$1","isValidElementType","createElement","isValidElement","styled","Card","useActiveWorkspace","useMemo","jsxs","Grid","jsx","Stack","Button","Flex","Box","Text","DatabaseIcon","Hotkeys","useWorkspaces","useState","useRef","useCallback","useEffect","Container","Heading","TextInput","HomeIcon","definePlugin"],"mappings":";;;;;;;;;;;;;;;;;AASa,MAAI,IAAE,OAAO,IAAI,eAAe,GAAE,IAAE,OAAO,IAAI,cAAc,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,mBAAmB,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,eAAe,GAAE,IAAE,OAAO,IAAI,sBAAsB,GAAE,IAAE,OAAO,IAAI,mBAAmB,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,qBAAqB,GAAE,IAAE,OAAO,IAAI,YAAY,GAAE,IAAE,OAAO,IAAI,YAAY,GAAE,IAAE,OAAO,IAAI,iBAAiB,GAAE;AAAE,MAAE,OAAO,IAAI,wBAAwB;AAChf,WAAS,EAAE,GAAE;AAAC,QAAc,OAAO,KAAlB,YAA4B,MAAP,MAAS;AAAC,UAAI,IAAE,EAAE;AAAS,cAAO,GAAC;AAAA,QAAE,KAAK;AAAE,kBAAO,IAAE,EAAE,MAAK;YAAG,KAAK;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAE,qBAAO;AAAA,YAAE;AAAQ,sBAAO,IAAE,KAAG,EAAE,UAAS,GAAG;AAAA,gBAAA,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO;AAAA,gBAAE;AAAQ,yBAAO;AAAA,cAAC;AAAA,UAAC;AAAA,QAAC,KAAK;AAAE,iBAAO;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC,gCAAuB,kBAAC,GAAE,yCAAwB,GAAE,uBAAA,UAAgB,GAAE,uBAAA,aAAmB,GAAE,uBAAgB,WAAC,GAAE,uBAAY,OAAC,GAAE,uBAAA,OAAa,GAAE,uBAAA,SAAe,GAAE,uBAAgB,WAAC,GAAE,oCAAmB,GAAE,uBAAA,WAAiB,GAChe,uBAAA,eAAqB,GAAE,uBAAA,cAAoB,WAAU;AAAC,WAAM;AAAA,EAAE,GAAE,0CAAyB,WAAU;AAAC,WAAM;AAAA,EAAE,GAAE,uBAAyB,oBAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAyB,oBAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAiB,YAAC,SAAS,GAAE;AAAC,WAAiB,OAAO,KAAlB,YAA4B,MAAP,QAAU,EAAE,aAAW;AAAA,EAAC,GAAE,uBAAoB,eAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAkB,aAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAc,SAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAc,SAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GACve,uBAAA,WAAiB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,oCAAmB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAoB,eAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAA,aAAmB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GAAE,uBAAsB,iBAAC,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC,GACxN,uBAAA,qBAAC,SAAS,GAAE;AAAC,WAAiB,OAAO,KAAlB,YAAkC,OAAO,KAApB,cAAuB,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAc,OAAO,KAAlB,YAA4B,MAAP,SAAW,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAY,EAAE,gBAAX;AAAA,EAA6B,GAAE,uBAAc,SAAC;;;;;;;;;;;;;;gFCD7S,QAAQ,IAAI,aAAa,gBAC1B,WAAW;AAOd,QAAI,qBAAqB,OAAO,IAAI,eAAe,GAC/C,oBAAoB,OAAO,IAAI,cAAc,GAC7C,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,yBAAyB,OAAO,IAAI,mBAAmB,GACvD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,qBAAqB,OAAO,IAAI,eAAe,GAC/C,4BAA4B,OAAO,IAAI,sBAAsB,GAC7D,yBAAyB,OAAO,IAAI,mBAAmB,GACvD,sBAAsB,OAAO,IAAI,gBAAgB,GACjD,2BAA2B,OAAO,IAAI,qBAAqB,GAC3D,kBAAkB,OAAO,IAAI,YAAY,GACzC,kBAAkB,OAAO,IAAI,YAAY,GACzC,uBAAuB,OAAO,IAAI,iBAAiB,GAInD,iBAAiB,IACjB,qBAAqB,IACrB,0BAA0B,IAE1B,qBAAqB,IAIrB,qBAAqB,IAErB;AAGF,6BAAyB,OAAO,IAAI,wBAAwB;AAG9D,aAAS,mBAAmB,MAAM;AAUhC,aATI,UAAO,QAAS,YAAY,OAAO,QAAS,cAK5C,SAAS,uBAAuB,SAAS,uBAAuB,sBAAuB,SAAS,0BAA0B,SAAS,uBAAuB,SAAS,4BAA4B,sBAAuB,SAAS,wBAAwB,kBAAmB,sBAAuB,2BAIjS,OAAO,QAAS,YAAY,SAAS,SACnC,KAAK,aAAa,mBAAmB,KAAK,aAAa,mBAAmB,KAAK,aAAa,uBAAuB,KAAK,aAAa,sBAAsB,KAAK,aAAa;AAAA;AAAA;AAAA;AAAA,MAIjL,KAAK,aAAa,0BAA0B,KAAK,gBAAgB;AAAA,IAMrE;AAEA,aAAS,OAAO,QAAQ;AACtB,UAAI,OAAO,UAAW,YAAY,WAAW,MAAM;AACjD,YAAI,WAAW,OAAO;AAEtB,gBAAQ,UAAQ;AAAA,UACd,KAAK;AACH,gBAAI,OAAO,OAAO;AAElB,oBAAQ,MAAI;AAAA,cACV,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AAAA,cACL,KAAK;AACH,uBAAO;AAAA,cAET;AACE,oBAAI,eAAe,QAAQ,KAAK;AAEhC,wBAAQ,cAAY;AAAA,kBAClB,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AACH,2BAAO;AAAA,kBAET;AACE,2BAAO;AAAA,gBACvB;AAAA,YAEA;AAAA,UAEM,KAAK;AACH,mBAAO;AAAA,QACf;AAAA,MACA;AAAA,IAGA;AACA,QAAI,kBAAkB,oBAClB,kBAAkB,qBAClB,UAAU,oBACV,aAAa,wBACb,WAAW,qBACX,OAAO,iBACP,OAAO,iBACP,SAAS,mBACT,WAAW,qBACX,aAAa,wBACb,WAAW,qBACX,eAAe,0BACf,sCAAsC,IACtC,2CAA2C;AAE/C,aAAS,YAAY,QAAQ;AAEzB,aAAK,wCACH,sCAAsC,IAEtC,QAAQ,KAAQ,wFAA6F,IAI1G;AAAA,IACT;AACA,aAAS,iBAAiB,QAAQ;AAE9B,aAAK,6CACH,2CAA2C,IAE3C,QAAQ,KAAQ,6FAAkG,IAI/G;AAAA,IACT;AACA,aAAS,kBAAkB,QAAQ;AACjC,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,kBAAkB,QAAQ;AACjC,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,UAAU,QAAQ;AACzB,aAAO,OAAO,UAAW,YAAY,WAAW,QAAQ,OAAO,aAAa;AAAA,IAC9E;AACA,aAAS,aAAa,QAAQ;AAC5B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,WAAW,QAAQ;AAC1B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,OAAO,QAAQ;AACtB,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,OAAO,QAAQ;AACtB,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,SAAS,QAAQ;AACxB,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,WAAW,QAAQ;AAC1B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,aAAa,QAAQ;AAC5B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,WAAW,QAAQ;AAC1B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AACA,aAAS,eAAe,QAAQ;AAC9B,aAAO,OAAO,MAAM,MAAM;AAAA,IAC5B;AAEA,wBAAA,kBAA0B,iBAC1B,oBAAA,kBAA0B,iBAC1B,oBAAA,UAAkB,SAClB,oBAAA,aAAqB,YACrB,oBAAA,WAAmB,UACnB,oBAAA,OAAe,MACf,oBAAA,OAAe,MACf,oBAAA,SAAiB,QACjB,oBAAA,WAAmB,UACnB,oBAAA,aAAqB,YACrB,oBAAA,WAAmB,UACnB,oBAAA,eAAuB,cACvB,oBAAA,cAAsB,aACtB,oBAAA,mBAA2B,kBAC3B,oBAAA,oBAA4B,mBAC5B,oBAAA,oBAA4B,mBAC5B,oBAAA,YAAoB,WACpB,oBAAA,eAAuB,cACvB,oBAAA,aAAqB,YACrB,oBAAA,SAAiB,QACjB,oBAAA,SAAiB,QACjB,oBAAA,WAAmB,UACnB,oBAAA,aAAqB,YACrB,oBAAA,eAAuB,cACvB,oBAAA,aAAqB,YACrB,oBAAA,iBAAyB,gBACzB,oBAAA,qBAA6B,oBAC7B,oBAAA,SAAiB;AAAA,EACjB;;ACzNI,QAAQ,IAAI,aAAa,eAC3BA,QAAA,UAAiBC,kCAEjBD,QAAA,UAAiBE;;ACEnB,MAAM,aAAa,CAAC,SAAgD;AAClE,MAAIC,eAAAA,mBAAmB,IAAI;AAAG,WAAOC,MAAAA,cAAc,IAAI;AACvD,MAAIC,MAAAA,eAAe,IAAI;AAAU,WAAA;AAEnC,GAEa,YAAYC,iBAAAA,OAAOC,GAAAA,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBpC,SAAwB,iBAAiB,OAA8B;AACrE,QAAM,EAAC,WAAW,OAAO,MAAA,IAAS,OAC5B,EAAC,MAAM,OAAO,MAAM,UAAU,QAAA,IAAW,WAEzC,EAAC,mBAAkB,IAAIC,OAAAA,mBAAmB,GAC1C,gBAAgBC,MAAA,QAAQ,MAAM,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,GAatD,cAAc,QAAQ,MAAM,KAAK,IAAI,QAAQ;AAEnD,wCACGF,GAAAA,MAAK,EAAA,WAAW,EAAQ,OAAQ,MAAK,WACpC,UAACG,2BAAAA,KAAAC,GAAA,MAAA,EAAK,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,UAAU,GAC7C,UAAA;AAAA,IAAAC,2BAAAA,IAACL,WAAK,aAAa,GAAG,WAAW,GAC/B,yCAACM,UACC,EAAA,UAAAD,2BAAA;AAAA,MAACE,GAAA;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,MAAK;AAAA,QACL,SAAS,MAAM,mBAAmB,IAAI;AAAA,QAEtC,UAAAJ,2BAAAA,KAACK,GAAAA,MAAK,EAAA,OAAM,UAAS,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAClC,UAAA;AAAA,UAAA,gBACEH,2BAAAA,IAAA,WAAA,EAAW,UAAW,WAAA,aAAa,EAAE,CAAA,IACpC;AAAA,UACHA,2BAAA,IAAAI,GAAA,KAAA,EAAI,MAAM,GACT,UAACN,2BAAAA,KAAAG,GAAAA,OAAA,EAAM,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,GACvB,UAAA;AAAA,YAACD,2BAAAA,IAAAK,GAAA,MAAA,EAAK,MAAM,GAAG,QAAO,YAAW,cAAa,YAC3C,mBAAS,KACZ,CAAA;AAAA,YACC,WAAYL,2BAAAA,IAAAK,GAAA,MAAA,EAAK,OAAK,IAAE,mBAAS,CAAA,IAAU;AAAA,UAAA,EAAA,CAC9C,EACF,CAAA;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,OAEJ,EACF,CAAA;AAAA,IACCL,2BAAA,IAAAL,GAAA,MAAA,EAAK,aAAa,GAAG,WAAW,GAC/B,UAACG,2BAAAA,KAAAK,GAAAA,MAAA,EAAK,QAAO,QAAO,OAAM,UAAS,KAAK,GACtC,UAAA;AAAA,MAAAH,2BAAAA,IAACK,WAAK,MAAM,GAAG,QAAO,YACpB,UAAAL,2BAAA,IAACM,sBAAa,EAChB,CAAA;AAAA,MACAN,2BAAAA,IAACK,WAAK,MAAM,GAAG,QAAO,YAAW,cAAa,YAC3C,UACH,QAAA,CAAA;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,IACCL,2BAAA,IAAAL,GAAA,MAAA,EAAK,cAAc,CAAC,GAAG,GAAG,GAAG,CAAC,GAC7B,UAACK,2BAAAA,IAAAG,GAAAA,MAAA,EAAK,QAAO,QAAO,OAAM,UAAS,SAAQ,YACxC,UAAA,CAAC,SAAS,cAAc,KACvBH,2BAAA,IAACO,cAAQ,MAAM,CAAC,OAAO,WAAW,CAAC,GAAG,SAAS,EAAG,CAAA,IAChD,KACN,CAAA,GACF;AAAA,EAAA,EAWF,CAAA,EACF,CAAA;AAEJ;ACzFa,MAAA,WAAWb,iBAAAA,OAAOC,GAAAA,IAAI;AAAA;AAAA;AAInC,SAAwB,gBAAgB;AAChC,QAAA,CAAG,EAAA,GAAG,UAAU,IAAIa,OAAc,cAAA,GAClC,EAAC,mBAAsB,IAAAZ,OAAA,mBAAA,GAGvB,CAAC,OAAO,QAAQ,IAAIa,MAAAA,SAAS,EAAE,GAC/B,cAAcC,MAAAA,OAAO,IAAI,GACzB,cAAcC,MAAA;AAAA,IAClB,CAAC,MAA2C;AACjC,eAAA,EAAE,OAAO,KAAK;AAAA,IACzB;AAAA,IACA,CAAC,QAAQ;AAAA,EAAA,GAIL,qBAAqBd,MAAAA,QAAQ,MAC1B,WAAW,OAAO,CAAC,cAEtB,UAAU,KAAK,cAAc,SAAS,MAAM,YAAa,CAAA,KACzD,UAAU,QAAQ,YAAY,EAAE,SAAS,MAAM,YAAa,CAAA,KAC5D,UAAU,MAAM,YAAY,EAAE,SAAS,MAAM,aAAa,CAE7D,GACA,CAAC,YAAY,KAAK,CAAC;AAGtB,SAAAe,MAAA,UAAU,MAAM;AACR,UAAA,iBAAiB,CAAC,UAAyB;AAE3C,UAAA,SAAS,YAAY,YAAY,SAAS;AAC5C;AAGF,YAAM,QAAQ,SAAS,MAAM,KAAK,EAAE,IAAI;AACpC,eAAS,KAAK,QAAQ,WAAW,UACnC,mBAAmB,WAAW,KAAK,EAAE,IAAI;AAAA,IAAA;AAI7C,WAAA,OAAO,iBAAiB,YAAY,cAAc,GAE3C,MAAM;AACJ,aAAA,oBAAoB,YAAY,cAAc;AAAA,IAAA;AAAA,EACvD,GACC,CAAC,OAAO,YAAY,kBAAkB,CAAC,GAGvCZ,2BAAA,IAAA,UAAA,EAAS,MAAK,eACb,UAACA,2BAAAA,IAAAG,GAAAA,MAAA,EAAK,WAAU,UAAS,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,GAC3C,UAAAH,2BAAA,IAACa,GACC,WAAA,EAAA,UAAAf,2BAAAA,KAACG,GAAAA,OAAM,EAAA,OAAO,GACZ,UAAA;AAAA,IAAAD,2BAAAA,IAACc,cAAQ,UAAU,aAAA,CAAA;AAAA,mCAClBnB,GAAAA,MAAK,EAAA,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,QAAQ,GAAG,QAAQ,GAC9C,UAACG,2BAAAA,KAAAG,GAAAA,OAAA,EAAM,OAAO,GACZ,UAAA;AAAA,MAACH,2BAAAA,KAAAG,GAAAA,OAAA,EAAM,OAAO,GACZ,UAAA;AAAA,QAAAD,+BAACK,GAAAA,MAAK,EAAA,MAAM,GAAG,QAAO,YAAW,UAEjC,UAAA;AAAA,QACAL,2BAAA;AAAA,UAACe,GAAA;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,OAAO;AAAA,YACP,UAAU;AAAA,UAAA;AAAA,QACZ;AAAA,MAAA,GACF;AAAA,qCACCX,GAAAA,KACE,EAAA,UAAA,mBAAmB,IAAI,CAAC,WAAW,UAClCJ,2BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAHK,UAAU;AAAA,MAKlB,CAAA,GACH;AAAA,IAAA,EAAA,CACF,EACF,CAAA;AAAA,EACF,EAAA,CAAA,EACF,CAAA,GACF,EACF,CAAA;AAEJ;ACjGO,MAAM,oBAAoB;AAAA,EAC/B,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAMgB,MAAA;AAAA,EACN,WAAW;AACb,GCJa,gBAAgBC,oBAAa,OACjC;AAAA,EACL,MAAM;AAAA,EACN,OAAO,CAAC,iBAAiB;AAC3B,EACD,GAOY,sBAAsB,CAAC;AAAA,EAClC,YAAY;AAAA,EACZ,UAAU;AACZ,OAAmD;AAAA,EACjD,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,MAAMD,MAAA;AAAA,EACN,SAAS,CAAC,eAAe;AAC3B;;;","x_google_ignoreList":[0,1,2]}
package/dist/index.mjs CHANGED
@@ -3,7 +3,7 @@ import { useActiveWorkspace, useWorkspaces, definePlugin } from "sanity";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { Card, Grid, Stack, Button, Flex, Box, Text, Hotkeys, Container, Heading, TextInput } from "@sanity/ui";
5
5
  import { useMemo, createElement, isValidElement, useState, useRef, useCallback, useEffect } from "react";
6
- import styled from "styled-components";
6
+ import { styled } from "styled-components";
7
7
  var reactIs = { exports: {} }, reactIs_production_min = {};
8
8
  /**
9
9
  * @license React
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../src/components/WorkspacePreview.tsx","../src/components/WorkspaceHome.tsx","../src/tool/index.ts","../src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import {DatabaseIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Grid, Hotkeys, Stack, Text} from '@sanity/ui'\nimport React, {createElement, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useActiveWorkspace, WorkspaceSummary} from 'sanity'\nimport styled from 'styled-components'\n\nconst createIcon = (icon: React.ComponentType | React.ReactNode) => {\n if (isValidElementType(icon)) return createElement(icon)\n if (isValidElement(icon)) return icon\n return undefined\n}\n\nexport const MediaCard = styled(Card)`\n width: 35px;\n height: 35px;\n\n svg {\n width: 100%;\n height: 100%;\n }\n`\n\nexport type WorkspacePreviewProps = {\n workspace: WorkspaceSummary\n index: number\n query: string\n}\n\nexport default function WorkspacePreview(props: WorkspacePreviewProps) {\n const {workspace, index, query} = props\n const {icon, title, name, subtitle, dataset} = workspace\n\n const {setActiveWorkspace} = useActiveWorkspace()\n const iconComponent = useMemo(() => createIcon(icon), [icon])\n\n // TODO: Favorites feature\n // get favorite workspace name from localStorage\n // const favoriteWorkspace = localStorage.getItem('favoriteWorkspace')\n // save local state to force re-render\n // const [isFavourite, setIsFavourite] = React.useState(favoriteWorkspace === name)\n\n // set favorite workspace name to localStorage\n // const setFavoriteWorkspace = useCallback(() => {\n // localStorage.setItem('favoriteWorkspace', name)\n // }, [name])\n\n const hotKeyIndex = index + 1 === 10 ? 0 : index + 1\n\n return (\n <Card borderTop={Boolean(index)} tone=\"default\">\n <Grid columns={5} gap={[2, 3, 4, 4]} paddingY={1}>\n <Card columnStart={1} columnEnd={4}>\n <Stack>\n <Button\n mode=\"bleed\"\n tone=\"default\"\n onClick={() => setActiveWorkspace(name)}\n >\n <Flex align=\"center\" gap={[2, 3, 4, 4]}>\n {iconComponent ? (\n <MediaCard>{createIcon(iconComponent)}</MediaCard>\n ) : null}\n <Box flex={1}>\n <Stack space={[1, 2, 3, 3]}>\n <Text size={3} weight=\"semibold\" textOverflow=\"ellipsis\">\n {title || name}\n </Text>\n {subtitle ? <Text muted>{subtitle}</Text> : null}\n </Stack>\n </Box>\n </Flex>\n </Button>\n </Stack>\n </Card>\n <Card columnStart={4} columnEnd={5}>\n <Flex height=\"fill\" align=\"center\" gap={2}>\n <Text size={1} weight=\"semibold\">\n <DatabaseIcon />\n </Text>\n <Text size={1} weight=\"semibold\" textOverflow=\"ellipsis\">\n {dataset}\n </Text>\n </Flex>\n </Card>\n <Card paddingRight={[2, 3, 3, 3]}>\n <Flex height=\"fill\" align=\"center\" justify=\"flex-end\">\n {!query && hotKeyIndex < 10 ? (\n <Hotkeys keys={[String(hotKeyIndex)]} padding={2} />\n ) : null}\n </Flex>\n </Card>\n {/* <Button\n mode={isFavourite ? 'default' : 'bleed'}\n tone={isFavourite ? 'primary' : 'default'}\n icon={StarIcon}\n title=\"Favorite\"\n onClick={() => {\n setIsFavourite(!isFavourite)\n setFavoriteWorkspace()\n }}\n /> */}\n </Grid>\n </Card>\n )\n}\n","import {\n Box,\n Card,\n Container,\n Flex,\n Heading,\n Stack,\n Text,\n TextInput,\n} from '@sanity/ui'\nimport React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useActiveWorkspace, useWorkspaces} from 'sanity'\nimport styled from 'styled-components'\n\nimport WorkspacePreview from './WorkspacePreview'\n\nexport const TallCard = styled(Card)`\n min-height: 100%;\n`\n\nexport default function WorkspaceHome() {\n const [, ...workspaces] = useWorkspaces()\n const {setActiveWorkspace} = useActiveWorkspace()\n\n // Handle search query\n const [query, setQuery] = useState('')\n const searchInput = useRef(null)\n const handleQuery = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQuery(e.target.value)\n },\n [setQuery]\n )\n\n // filter workspaces if name, dataset or title matches query\n const filteredWorkspaces = useMemo(() => {\n return workspaces.filter((workspace) => {\n return (\n workspace.name.toLowerCase().includes(query.toLowerCase()) ||\n workspace.dataset.toLowerCase().includes(query.toLowerCase()) ||\n workspace.title.toLowerCase().includes(query.toLowerCase())\n )\n })\n }, [workspaces, query])\n\n // Listen to keypress of workspace index\n useEffect(() => {\n const handleKeypress = (event: KeyboardEvent) => {\n // Ignore if search query exists or search input is focused\n if (query || searchInput.current === document.activeElement) {\n return\n }\n\n const index = parseInt(event.key, 10) - 1\n if (index >= 0 && index < workspaces.length) {\n setActiveWorkspace(workspaces[index].name)\n }\n }\n\n window.addEventListener('keypress', handleKeypress)\n\n return () => {\n window.removeEventListener('keypress', handleKeypress)\n }\n }, [query, workspaces, setActiveWorkspace])\n\n return (\n <TallCard tone=\"transparent\">\n <Flex direction=\"column\" padding={[4, 5, 6, 6]}>\n <Container>\n <Stack space={4}>\n <Heading>Workspaces</Heading>\n <Card padding={[2, 3, 4, 4]} radius={3} shadow={2}>\n <Stack space={3}>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n Search\n </Text>\n <TextInput\n ref={searchInput}\n value={query}\n onChange={handleQuery}\n />\n </Stack>\n <Box>\n {filteredWorkspaces.map((workspace, index) => (\n <WorkspacePreview\n key={workspace.name}\n workspace={workspace}\n index={index}\n query={query}\n />\n ))}\n </Box>\n </Stack>\n </Card>\n </Stack>\n </Container>\n </Flex>\n </TallCard>\n )\n}\n","import {HomeIcon} from '@sanity/icons'\n\nimport WorkspaceHome from '../components/WorkspaceHome'\n\nexport const workspaceHomeTool = {\n title: 'Workspace Home',\n name: 'workspace-home',\n icon: HomeIcon,\n component: WorkspaceHome,\n}\n","import {HomeIcon} from '@sanity/icons'\nimport {definePlugin, WorkspaceOptions} from 'sanity'\n\nimport {workspaceHomeTool} from './tool'\n\nexport const workspaceHome = definePlugin(() => {\n return {\n name: 'sanity-plugin-workspace-home',\n tools: [workspaceHomeTool],\n }\n})\n\ntype WorkspaceHomeConfigProps = {\n projectId: string\n dataset: string\n}\n\nexport const workspaceHomeConfig = ({\n projectId = ``,\n dataset = ``,\n}: WorkspaceHomeConfigProps): WorkspaceOptions => ({\n name: 'home',\n title: 'Home',\n basePath: '/home',\n projectId,\n dataset,\n icon: HomeIcon,\n plugins: [workspaceHome()],\n})\n"],"names":["reactIsModule","require$$0","require$$1","isValidElementType"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"index.mjs","sources":["../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../src/components/WorkspacePreview.tsx","../src/components/WorkspaceHome.tsx","../src/tool/index.ts","../src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import {DatabaseIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Grid, Hotkeys, Stack, Text} from '@sanity/ui'\nimport React, {createElement, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useActiveWorkspace, WorkspaceSummary} from 'sanity'\nimport {styled} from 'styled-components'\n\nconst createIcon = (icon: React.ComponentType | React.ReactNode) => {\n if (isValidElementType(icon)) return createElement(icon)\n if (isValidElement(icon)) return icon\n return undefined\n}\n\nexport const MediaCard = styled(Card)`\n width: 35px;\n height: 35px;\n\n svg {\n width: 100%;\n height: 100%;\n }\n`\n\nexport type WorkspacePreviewProps = {\n workspace: WorkspaceSummary\n index: number\n query: string\n}\n\nexport default function WorkspacePreview(props: WorkspacePreviewProps) {\n const {workspace, index, query} = props\n const {icon, title, name, subtitle, dataset} = workspace\n\n const {setActiveWorkspace} = useActiveWorkspace()\n const iconComponent = useMemo(() => createIcon(icon), [icon])\n\n // TODO: Favorites feature\n // get favorite workspace name from localStorage\n // const favoriteWorkspace = localStorage.getItem('favoriteWorkspace')\n // save local state to force re-render\n // const [isFavourite, setIsFavourite] = React.useState(favoriteWorkspace === name)\n\n // set favorite workspace name to localStorage\n // const setFavoriteWorkspace = useCallback(() => {\n // localStorage.setItem('favoriteWorkspace', name)\n // }, [name])\n\n const hotKeyIndex = index + 1 === 10 ? 0 : index + 1\n\n return (\n <Card borderTop={Boolean(index)} tone=\"default\">\n <Grid columns={5} gap={[2, 3, 4, 4]} paddingY={1}>\n <Card columnStart={1} columnEnd={4}>\n <Stack>\n <Button\n mode=\"bleed\"\n tone=\"default\"\n onClick={() => setActiveWorkspace(name)}\n >\n <Flex align=\"center\" gap={[2, 3, 4, 4]}>\n {iconComponent ? (\n <MediaCard>{createIcon(iconComponent)}</MediaCard>\n ) : null}\n <Box flex={1}>\n <Stack space={[1, 2, 3, 3]}>\n <Text size={3} weight=\"semibold\" textOverflow=\"ellipsis\">\n {title || name}\n </Text>\n {subtitle ? <Text muted>{subtitle}</Text> : null}\n </Stack>\n </Box>\n </Flex>\n </Button>\n </Stack>\n </Card>\n <Card columnStart={4} columnEnd={5}>\n <Flex height=\"fill\" align=\"center\" gap={2}>\n <Text size={1} weight=\"semibold\">\n <DatabaseIcon />\n </Text>\n <Text size={1} weight=\"semibold\" textOverflow=\"ellipsis\">\n {dataset}\n </Text>\n </Flex>\n </Card>\n <Card paddingRight={[2, 3, 3, 3]}>\n <Flex height=\"fill\" align=\"center\" justify=\"flex-end\">\n {!query && hotKeyIndex < 10 ? (\n <Hotkeys keys={[String(hotKeyIndex)]} padding={2} />\n ) : null}\n </Flex>\n </Card>\n {/* <Button\n mode={isFavourite ? 'default' : 'bleed'}\n tone={isFavourite ? 'primary' : 'default'}\n icon={StarIcon}\n title=\"Favorite\"\n onClick={() => {\n setIsFavourite(!isFavourite)\n setFavoriteWorkspace()\n }}\n /> */}\n </Grid>\n </Card>\n )\n}\n","import {\n Box,\n Card,\n Container,\n Flex,\n Heading,\n Stack,\n Text,\n TextInput,\n} from '@sanity/ui'\nimport React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useActiveWorkspace, useWorkspaces} from 'sanity'\nimport {styled} from 'styled-components'\n\nimport WorkspacePreview from './WorkspacePreview'\n\nexport const TallCard = styled(Card)`\n min-height: 100%;\n`\n\nexport default function WorkspaceHome() {\n const [, ...workspaces] = useWorkspaces()\n const {setActiveWorkspace} = useActiveWorkspace()\n\n // Handle search query\n const [query, setQuery] = useState('')\n const searchInput = useRef(null)\n const handleQuery = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setQuery(e.target.value)\n },\n [setQuery]\n )\n\n // filter workspaces if name, dataset or title matches query\n const filteredWorkspaces = useMemo(() => {\n return workspaces.filter((workspace) => {\n return (\n workspace.name.toLowerCase().includes(query.toLowerCase()) ||\n workspace.dataset.toLowerCase().includes(query.toLowerCase()) ||\n workspace.title.toLowerCase().includes(query.toLowerCase())\n )\n })\n }, [workspaces, query])\n\n // Listen to keypress of workspace index\n useEffect(() => {\n const handleKeypress = (event: KeyboardEvent) => {\n // Ignore if search query exists or search input is focused\n if (query || searchInput.current === document.activeElement) {\n return\n }\n\n const index = parseInt(event.key, 10) - 1\n if (index >= 0 && index < workspaces.length) {\n setActiveWorkspace(workspaces[index].name)\n }\n }\n\n window.addEventListener('keypress', handleKeypress)\n\n return () => {\n window.removeEventListener('keypress', handleKeypress)\n }\n }, [query, workspaces, setActiveWorkspace])\n\n return (\n <TallCard tone=\"transparent\">\n <Flex direction=\"column\" padding={[4, 5, 6, 6]}>\n <Container>\n <Stack space={4}>\n <Heading>Workspaces</Heading>\n <Card padding={[2, 3, 4, 4]} radius={3} shadow={2}>\n <Stack space={3}>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n Search\n </Text>\n <TextInput\n ref={searchInput}\n value={query}\n onChange={handleQuery}\n />\n </Stack>\n <Box>\n {filteredWorkspaces.map((workspace, index) => (\n <WorkspacePreview\n key={workspace.name}\n workspace={workspace}\n index={index}\n query={query}\n />\n ))}\n </Box>\n </Stack>\n </Card>\n </Stack>\n </Container>\n </Flex>\n </TallCard>\n )\n}\n","import {HomeIcon} from '@sanity/icons'\n\nimport WorkspaceHome from '../components/WorkspaceHome'\n\nexport const workspaceHomeTool = {\n title: 'Workspace Home',\n name: 'workspace-home',\n icon: HomeIcon,\n component: WorkspaceHome,\n}\n","import {HomeIcon} from '@sanity/icons'\nimport {definePlugin, WorkspaceOptions} from 'sanity'\n\nimport {workspaceHomeTool} from './tool'\n\nexport const workspaceHome = definePlugin(() => {\n return {\n name: 'sanity-plugin-workspace-home',\n tools: [workspaceHomeTool],\n }\n})\n\ntype WorkspaceHomeConfigProps = {\n projectId: string\n dataset: string\n}\n\nexport const workspaceHomeConfig = ({\n projectId = ``,\n dataset = ``,\n}: WorkspaceHomeConfigProps): WorkspaceOptions => ({\n name: 'home',\n title: 'Home',\n basePath: '/home',\n projectId,\n dataset,\n icon: HomeIcon,\n plugins: [workspaceHome()],\n})\n"],"names":["reactIsModule","require$$0","require$$1","isValidElementType"],"mappings":"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","x_google_ignoreList":[0,1,2]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sanity-plugin-workspace-home",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "A home screen for your multi-workspace Sanity Studio",
5
5
  "keywords": [
6
6
  "sanity",
@@ -10,7 +10,7 @@ import {
10
10
  } from '@sanity/ui'
11
11
  import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'
12
12
  import {useActiveWorkspace, useWorkspaces} from 'sanity'
13
- import styled from 'styled-components'
13
+ import {styled} from 'styled-components'
14
14
 
15
15
  import WorkspacePreview from './WorkspacePreview'
16
16
 
@@ -3,7 +3,7 @@ import {Box, Button, Card, Flex, Grid, Hotkeys, Stack, Text} from '@sanity/ui'
3
3
  import React, {createElement, isValidElement, useMemo} from 'react'
4
4
  import {isValidElementType} from 'react-is'
5
5
  import {useActiveWorkspace, WorkspaceSummary} from 'sanity'
6
- import styled from 'styled-components'
6
+ import {styled} from 'styled-components'
7
7
 
8
8
  const createIcon = (icon: React.ComponentType | React.ReactNode) => {
9
9
  if (isValidElementType(icon)) return createElement(icon)