@teambit/compositions 1.0.957 → 1.0.959
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/compositions.module.scss +232 -13
- package/compositions.tsx +85 -11
- package/dist/compositions.js +107 -3
- package/dist/compositions.js.map +1 -1
- package/dist/compositions.module.scss +232 -13
- package/dist/{preview-1776705141733.js → preview-1776776950183.js} +2 -2
- package/dist/ui/compositions-panel/compositions-panel.d.ts +0 -15
- package/dist/ui/compositions-panel/compositions-panel.js +10 -59
- package/dist/ui/compositions-panel/compositions-panel.js.map +1 -1
- package/dist/ui/compositions-panel/compositions-panel.module.scss +71 -119
- package/dist/ui/compositions-panel/live-control-input.module.scss +79 -22
- package/dist/ui/compositions-panel/live-control-panel.module.scss +29 -7
- package/dist/ui/compositions-panel/live-controls-diff-panel.module.scss +34 -34
- package/dist/ui/compositions-panel/overlay.module.scss +4 -2
- package/package.json +15 -16
- package/ui/compositions-panel/compositions-panel.module.scss +71 -119
- package/ui/compositions-panel/compositions-panel.tsx +40 -86
- package/ui/compositions-panel/live-control-input.module.scss +79 -22
- package/ui/compositions-panel/live-control-panel.module.scss +29 -7
- package/ui/compositions-panel/live-controls-diff-panel.module.scss +34 -34
- package/ui/compositions-panel/overlay.module.scss +4 -2
package/dist/compositions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_lodash","_interopRequireDefault","_queryString","_documenterTheme","_baseUiSurfacesSplitPane","_baseUiSurfacesSplitPane2","_component","_documenterUi","_panels","_docsUiQueries","_uiFoundationUiButtons","_designUi","_previewUi","_uiFoundationUiHooks","_compositionsUi","_compositionsUiHooks","_mdxUi","_designUi2","_documenterUi2","_designUi3","_baseReactNavigation","_designUiInput","_designUiSurfaces","_designUi4","_compositionsModule","_ui","_compositionsPanel","_useDefaultControlsSchemaResponder","_excluded","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","ownKeys","keys","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Link","BaseLink","Compositions","menuBarWidgets","emptyState","usePreviewSandboxSlot","enableLiveControls","component","useContext","ComponentContext","componentIdStr","id","toString","searchParams","useSearchParams","params","useParams","versionFromQueryParams","navigate","useNavigate","location","useLocation","currentCompositionName","currentComposition","compositions","find","composition","identifier","toLowerCase","head","sandboxValue","setSandboxValue","useState","selectedRef","useRef","current","useDefaultControlsSchemaResponder","properties","useDocs","previewSandboxHooks","values","isMobile","useIsMobile","showSidebar","isSidebarOpen","setSidebarOpenness","sidebarOpenness","Layout","row","left","compositionUrl","toPreviewUrl","isScaling","preview","includesEnvTemplates","includesEnvTemplate","useNameParam","compositionIdentifierParam","currentCompositionFullUrl","compositionParams","setCompositionParams","fullscreen","livecontrols","queryParams","useMemo","queryString","stringify","useEffect","next","createElement","CompositionContextProvider","setQueryParams","SplitPane","layout","size","className","styles","compositionsPage","Pane","CompositionsMenuBar","menuBar","Tooltip","content","placement","external","href","openInNewTab","OptionButton","icon","SandboxPermissionsAggregator","hooks","onSandboxChange","CompositionContent","compositionPanel","selected","sandbox","HoverSplitter","splitter","Collapser","isOpen","onMouseDown","stopPropagation","onClick","x","tooltipContent","collapser","right","ThemeContext","TabContainer","tabsContainer","TabList","tabs","Tab","TabPanel","tabContent","CompositionsPanel","onSelectComposition","selectedCompositionFromUrl","pathSegments","pathname","split","urlParams","URLSearchParams","newPath","join","url","active","PropTable","rows","showListView","_ref","componentCompositionProps","env","environment","EmptyStateTemplate","host","noCompositionsPage","H1","title","Separator","isPresentational","separator","AlertCard","level","MDXLayout","buildStatus","StatusMessageCard","buildStatusMessage","status","EmptyBox","linkText","link","ComponentComposition","compositionsIframe","viewport","forceHeight","fullContentHeight","pubsub"],"sources":["compositions.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useContext, useEffect, useState, useMemo, useRef } from 'react';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport head from 'lodash.head';\nimport queryString from 'query-string';\nimport { ThemeContext } from '@teambit/documenter.theme.theme-context';\nimport { SplitPane, Pane, Layout } from '@teambit/base-ui.surfaces.split-pane.split-pane';\nimport { HoverSplitter } from '@teambit/base-ui.surfaces.split-pane.hover-splitter';\nimport type { ComponentModel } from '@teambit/component';\nimport { ComponentContext } from '@teambit/component';\nimport { PropTable } from '@teambit/documenter.ui.property-table';\nimport { Tab, TabContainer, TabList, TabPanel } from '@teambit/panels';\nimport { useDocs } from '@teambit/docs.ui.queries.get-docs';\nimport { Collapser } from '@teambit/ui-foundation.ui.buttons.collapser';\nimport { EmptyBox } from '@teambit/design.ui.empty-box';\nimport { SandboxPermissionsAggregator, toPreviewUrl } from '@teambit/preview.ui.component-preview';\nimport { useIsMobile } from '@teambit/ui-foundation.ui.hooks.use-is-mobile';\nimport { CompositionsMenuBar } from '@teambit/compositions.ui.compositions-menu-bar';\nimport { CompositionContextProvider } from '@teambit/compositions.ui.hooks.use-composition';\nimport { MDXLayout } from '@teambit/mdx.ui.mdx-layout';\nimport { Separator } from '@teambit/design.ui.separator';\nimport { H1 } from '@teambit/documenter.ui.heading';\nimport { AlertCard } from '@teambit/design.ui.alert-card';\nimport { Link as BaseLink, useNavigate, useLocation } from '@teambit/base-react.navigation.link';\nimport { OptionButton } from '@teambit/design.ui.input.option-button';\nimport { StatusMessageCard } from '@teambit/design.ui.surfaces.status-message-card';\nimport { Tooltip } from '@teambit/design.ui.tooltip';\nimport type { EmptyStateSlot, CompositionsMenuSlot, UsePreviewSandboxSlot } from './compositions.ui.runtime';\nimport type { Composition } from './composition';\nimport styles from './compositions.module.scss';\nimport { ComponentComposition } from './ui';\nimport { CompositionsPanel } from './ui/compositions-panel/compositions-panel';\nimport type { ComponentCompositionProps } from './ui/composition-preview';\nimport { useDefaultControlsSchemaResponder } from './use-default-controls-schema-responder';\n\n// @todo - this will be fixed as part of the @teambit/base-react.navigation.link upgrade to latest\nconst Link = BaseLink as any;\n\nexport type MenuBarWidget = {\n location: 'start' | 'end';\n content: ReactNode;\n};\nexport type CompositionsProp = {\n menuBarWidgets?: CompositionsMenuSlot;\n emptyState?: EmptyStateSlot;\n usePreviewSandboxSlot?: UsePreviewSandboxSlot;\n enableLiveControls?: boolean;\n};\n\nexport function Compositions({\n menuBarWidgets,\n emptyState,\n usePreviewSandboxSlot,\n enableLiveControls = true,\n}: CompositionsProp) {\n const component = useContext(ComponentContext);\n const componentIdStr = component.id.toString();\n const [searchParams] = useSearchParams();\n const params = useParams();\n const versionFromQueryParams = searchParams.get('version');\n const navigate = useNavigate();\n const location = useLocation();\n const currentCompositionName = params['*'];\n const currentComposition =\n component.compositions.find((composition) => composition.identifier.toLowerCase() === currentCompositionName) ||\n head(component.compositions);\n const [sandboxValue, setSandboxValue] = useState('');\n const selectedRef = useRef(currentComposition);\n selectedRef.current = currentComposition;\n useDefaultControlsSchemaResponder(componentIdStr, enableLiveControls);\n\n const properties = useDocs(component.id);\n const previewSandboxHooks = usePreviewSandboxSlot?.values() ?? [];\n const isMobile = useIsMobile();\n const showSidebar = !isMobile && component.compositions.length > 0;\n const [isSidebarOpen, setSidebarOpenness] = useState(showSidebar);\n\n const sidebarOpenness = isSidebarOpen ? Layout.row : Layout.left;\n\n const compositionUrl = toPreviewUrl(component, 'compositions');\n const isScaling = component?.preview?.isScaling;\n const includesEnvTemplates = component?.preview?.includesEnvTemplate;\n const useNameParam = component?.preview?.useNameParam;\n const compositionIdentifierParam =\n useNameParam || (isScaling && includesEnvTemplates === false)\n ? `name=${currentComposition?.identifier}`\n : currentComposition?.identifier;\n\n const currentCompositionFullUrl = toPreviewUrl(component, 'compositions', compositionIdentifierParam);\n\n const [compositionParams, setCompositionParams] = useState<Record<string, any>>(() =>\n enableLiveControls ? { fullscreen: true, livecontrols: true } : { fullscreen: true }\n );\n\n const queryParams = useMemo(() => queryString.stringify(compositionParams), [compositionParams]);\n\n // collapse sidebar when empty, reopen when not\n useEffect(() => setSidebarOpenness(showSidebar), [showSidebar]);\n useEffect(() => {\n if (enableLiveControls) {\n setCompositionParams((current) => {\n if (current.livecontrols === true) return current;\n return { ...current, livecontrols: true };\n });\n return;\n }\n\n setCompositionParams((current) => {\n if (!('livecontrols' in current)) return current;\n const next = { ...current };\n delete next.livecontrols;\n return next;\n });\n }, [enableLiveControls]);\n\n return (\n <CompositionContextProvider queryParams={compositionParams} setQueryParams={setCompositionParams}>\n <SplitPane layout={sidebarOpenness} size=\"80%\" className={styles.compositionsPage}>\n <Pane className={styles.left}>\n <CompositionsMenuBar menuBarWidgets={menuBarWidgets} className={styles.menuBar}>\n <Tooltip content={'Open in new tab'} placement=\"right\">\n <Link external href={currentCompositionFullUrl} className={styles.openInNewTab}>\n <OptionButton icon=\"open-tab\" />\n </Link>\n </Tooltip>\n </CompositionsMenuBar>\n <SandboxPermissionsAggregator\n hooks={previewSandboxHooks}\n onSandboxChange={setSandboxValue}\n component={component}\n />\n <CompositionContent\n className={styles.compositionPanel}\n emptyState={emptyState}\n component={component}\n selected={currentComposition}\n queryParams={queryParams}\n sandbox={sandboxValue}\n />\n </Pane>\n <HoverSplitter className={styles.splitter}>\n <Collapser\n placement=\"left\"\n isOpen={isSidebarOpen}\n onMouseDown={(e) => e.stopPropagation()} // avoid split-pane drag\n onClick={() => setSidebarOpenness((x) => !x)}\n tooltipContent={`${isSidebarOpen ? 'Hide' : 'Show'} side compositions`}\n className={styles.collapser}\n />\n </HoverSplitter>\n <Pane className={styles.right}>\n <ThemeContext>\n <TabContainer className={styles.tabsContainer}>\n <TabList className={styles.tabs}>\n <Tab>compositions</Tab>\n <Tab>properties</Tab>\n </TabList>\n <TabPanel className={styles.tabContent}>\n <CompositionsPanel\n isScaling={isScaling}\n useNameParam={useNameParam}\n includesEnvTemplate={component.preview?.includesEnvTemplate}\n onSelectComposition={(composition) => {\n if (!currentComposition || !location) return;\n const selectedCompositionFromUrl = params['*'];\n\n const pathSegments = location.pathname.split('/').filter((x) => x);\n\n if (!selectedCompositionFromUrl) {\n pathSegments.push(composition.identifier.toLowerCase());\n } else {\n pathSegments[pathSegments.length - 1] = composition.identifier.toLowerCase();\n }\n\n const urlParams = new URLSearchParams(searchParams);\n if (versionFromQueryParams) {\n urlParams.set('version', versionFromQueryParams);\n }\n const newPath = pathSegments.join('/');\n navigate(`/${newPath}?${urlParams.toString()}`);\n }}\n url={compositionUrl}\n compositions={component.compositions}\n active={currentComposition}\n />\n </TabPanel>\n <TabPanel className={styles.tabContent}>\n {properties && properties.length > 0 ? <PropTable rows={properties} showListView /> : <div />}\n </TabPanel>\n </TabContainer>\n </ThemeContext>\n </Pane>\n </SplitPane>\n </CompositionContextProvider>\n );\n}\n\nexport type CompositionContentProps = {\n component: ComponentModel;\n selected?: Composition;\n queryParams?: string | string[];\n emptyState?: EmptyStateSlot;\n} & ComponentCompositionProps;\n\nexport function CompositionContent({\n component,\n selected,\n queryParams,\n emptyState,\n sandbox,\n ...componentCompositionProps\n}: CompositionContentProps) {\n const env = component.environment?.id;\n const EmptyStateTemplate = emptyState?.get(env || ''); // || defaultTemplate;\n\n if (component.compositions.length === 0 && component.host === 'teambit.workspace/workspace' && EmptyStateTemplate) {\n return (\n <div className={styles.noCompositionsPage}>\n <div>\n <H1 className={styles.title}>Compositions</H1>\n <Separator isPresentational className={styles.separator} />\n <AlertCard\n level=\"info\"\n title=\"There are no\n compositions for this Component. Learn how to add compositions:\"\n >\n <MDXLayout>\n <EmptyStateTemplate />\n </MDXLayout>\n </AlertCard>\n </div>\n </div>\n );\n }\n\n if (component?.buildStatus === 'pending' && component?.host === 'teambit.scope/scope')\n return (\n <StatusMessageCard className={styles.buildStatusMessage} status=\"PROCESSING\" title=\"component preview pending\">\n this might take some time\n </StatusMessageCard>\n );\n if (component?.buildStatus === 'failed' && component?.host === 'teambit.scope/scope')\n return (\n <StatusMessageCard\n className={styles.buildStatusMessage}\n status=\"FAILURE\"\n title=\"failed to get component preview \"\n ></StatusMessageCard>\n );\n\n // TODO: get the docs domain from the community aspect and pass it here as a prop\n if (component.compositions.length === 0) {\n return (\n <EmptyBox\n title=\"There are no compositions for this component.\"\n linkText=\"Learn how to create compositions\"\n link={`https://bit.dev/reference/dev-services-overview/compositions/compositions-overview`}\n />\n );\n }\n\n return (\n <ComponentComposition\n className={styles.compositionsIframe}\n // TODO: Oded to add control for viewport.\n viewport={null}\n component={component}\n forceHeight=\"100%\"\n composition={selected}\n fullContentHeight\n pubsub={true}\n queryParams={queryParams}\n sandbox={sandbox}\n {...componentCompositionProps}\n />\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_lodash","_interopRequireDefault","_queryString","_documenterTheme","_baseUiSurfacesSplitPane","_baseUiSurfacesSplitPane2","_component","_documenterUi","_panels","_docsUiQueries","_uiFoundationUiButtons","_designUi","_previewUi","_uiFoundationUiHooks","_compositionsUi","_compositionsUiHooks","_mdxUi","_designUi2","_documenterUi2","_designUi3","_baseReactNavigation","_designUiInput","_designUiSurfaces","_designUi4","_evangelistElements","_compositionsUi2","_compositionsModule","_ui","_compositionsPanel","_liveControlPanel","_useDefaultControlsSchemaResponder","_excluded","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","ownKeys","keys","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Link","BaseLink","Compositions","menuBarWidgets","emptyState","usePreviewSandboxSlot","enableLiveControls","component","useContext","ComponentContext","componentIdStr","id","toString","searchParams","useSearchParams","params","useParams","versionFromQueryParams","navigate","useNavigate","location","useLocation","currentCompositionName","currentComposition","compositions","find","composition","identifier","toLowerCase","head","sandboxValue","setSandboxValue","useState","selectedRef","useRef","current","useDefaultControlsSchemaResponder","properties","useDocs","previewSandboxHooks","values","isMobile","useIsMobile","showSidebar","isSidebarOpen","setSidebarOpenness","sidebarOpenness","Layout","row","left","compositionUrl","toPreviewUrl","isScaling","preview","includesEnvTemplates","includesEnvTemplate","useNameParam","compositionIdentifierParam","currentCompositionFullUrl","compositionParams","setCompositionParams","fullscreen","livecontrols","queryParams","useMemo","queryString","stringify","controlsTrayOpen","setControlsTrayOpen","isDraggingTray","setIsDraggingTray","trayRef","trayHeightRef","ready","defs","onChange","useLiveControls","onTrayDragStart","useCallback","preventDefault","startY","clientY","startHeight","document","body","style","cursor","userSelect","onMove","ev","next","Math","max","min","height","onUp","removeEventListener","addEventListener","useEffect","currentCompositionHasControls","showControlsTray","createElement","CompositionContextProvider","setQueryParams","SplitPane","layout","size","className","styles","compositionsPage","Pane","CompositionsMenuBar","menuBar","Tooltip","content","placement","external","href","toolbarButton","OptionButton","icon","toolbarButtonActive","onClick","Icon","of","SandboxPermissionsAggregator","hooks","onSandboxChange","previewArea","dragOverlay","CompositionContent","compositionPanel","selected","sandbox","ref","controlsTray","trayDragHandle","onMouseDown","trayDragBar","trayHeader","trayTitleRow","trayIcon","trayTitle","trayBadge","trayClose","trayBody","LiveControls","trayEmpty","HoverSplitter","splitter","Collapser","isOpen","stopPropagation","x","tooltipContent","collapser","right","ThemeContext","TabContainer","tabsContainer","TabList","tabs","Tab","TabPanel","tabContent","CompositionsPanel","onSelectComposition","selectedCompositionFromUrl","pathSegments","pathname","split","urlParams","URLSearchParams","newPath","join","url","active","PropTable","rows","showListView","_ref","componentCompositionProps","env","environment","EmptyStateTemplate","host","noCompositionsPage","H1","title","Separator","isPresentational","separator","AlertCard","level","MDXLayout","buildStatus","StatusMessageCard","buildStatusMessage","status","EmptyBox","linkText","link","ComponentComposition","compositionsIframe","viewport","forceHeight","fullContentHeight","pubsub"],"sources":["compositions.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useContext, useEffect, useState, useMemo, useRef, useCallback } from 'react';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport head from 'lodash.head';\nimport queryString from 'query-string';\nimport { ThemeContext } from '@teambit/documenter.theme.theme-context';\nimport { SplitPane, Pane, Layout } from '@teambit/base-ui.surfaces.split-pane.split-pane';\nimport { HoverSplitter } from '@teambit/base-ui.surfaces.split-pane.hover-splitter';\nimport type { ComponentModel } from '@teambit/component';\nimport { ComponentContext } from '@teambit/component';\nimport { PropTable } from '@teambit/documenter.ui.property-table';\nimport { Tab, TabContainer, TabList, TabPanel } from '@teambit/panels';\nimport { useDocs } from '@teambit/docs.ui.queries.get-docs';\nimport { Collapser } from '@teambit/ui-foundation.ui.buttons.collapser';\nimport { EmptyBox } from '@teambit/design.ui.empty-box';\nimport { SandboxPermissionsAggregator, toPreviewUrl } from '@teambit/preview.ui.component-preview';\nimport { useIsMobile } from '@teambit/ui-foundation.ui.hooks.use-is-mobile';\nimport { CompositionsMenuBar } from '@teambit/compositions.ui.compositions-menu-bar';\nimport { CompositionContextProvider } from '@teambit/compositions.ui.hooks.use-composition';\nimport { MDXLayout } from '@teambit/mdx.ui.mdx-layout';\nimport { Separator } from '@teambit/design.ui.separator';\nimport { H1 } from '@teambit/documenter.ui.heading';\nimport { AlertCard } from '@teambit/design.ui.alert-card';\nimport { Link as BaseLink, useNavigate, useLocation } from '@teambit/base-react.navigation.link';\nimport { OptionButton } from '@teambit/design.ui.input.option-button';\nimport { StatusMessageCard } from '@teambit/design.ui.surfaces.status-message-card';\nimport { Tooltip } from '@teambit/design.ui.tooltip';\nimport { Icon } from '@teambit/evangelist.elements.icon';\nimport { useLiveControls } from '@teambit/compositions.ui.composition-live-controls';\nimport type { EmptyStateSlot, CompositionsMenuSlot, UsePreviewSandboxSlot } from './compositions.ui.runtime';\nimport type { Composition } from './composition';\nimport styles from './compositions.module.scss';\nimport { ComponentComposition } from './ui';\nimport { CompositionsPanel } from './ui/compositions-panel/compositions-panel';\nimport { LiveControls } from './ui/compositions-panel/live-control-panel';\nimport type { ComponentCompositionProps } from './ui/composition-preview';\nimport { useDefaultControlsSchemaResponder } from './use-default-controls-schema-responder';\n\n// @todo - this will be fixed as part of the @teambit/base-react.navigation.link upgrade to latest\nconst Link = BaseLink as any;\n\nexport type MenuBarWidget = {\n location: 'start' | 'end';\n content: ReactNode;\n};\nexport type CompositionsProp = {\n menuBarWidgets?: CompositionsMenuSlot;\n emptyState?: EmptyStateSlot;\n usePreviewSandboxSlot?: UsePreviewSandboxSlot;\n enableLiveControls?: boolean;\n};\n\nexport function Compositions({\n menuBarWidgets,\n emptyState,\n usePreviewSandboxSlot,\n enableLiveControls = true,\n}: CompositionsProp) {\n const component = useContext(ComponentContext);\n const componentIdStr = component.id.toString();\n const [searchParams] = useSearchParams();\n const params = useParams();\n const versionFromQueryParams = searchParams.get('version');\n const navigate = useNavigate();\n const location = useLocation();\n const currentCompositionName = params['*'];\n const currentComposition =\n component.compositions.find((composition) => composition.identifier.toLowerCase() === currentCompositionName) ||\n head(component.compositions);\n const [sandboxValue, setSandboxValue] = useState('');\n const selectedRef = useRef(currentComposition);\n selectedRef.current = currentComposition;\n useDefaultControlsSchemaResponder(componentIdStr, enableLiveControls);\n\n const properties = useDocs(component.id);\n const previewSandboxHooks = usePreviewSandboxSlot?.values() ?? [];\n const isMobile = useIsMobile();\n const showSidebar = !isMobile && component.compositions.length > 0;\n const [isSidebarOpen, setSidebarOpenness] = useState(showSidebar);\n\n const sidebarOpenness = isSidebarOpen ? Layout.row : Layout.left;\n\n const compositionUrl = toPreviewUrl(component, 'compositions');\n const isScaling = component?.preview?.isScaling;\n const includesEnvTemplates = component?.preview?.includesEnvTemplate;\n const useNameParam = component?.preview?.useNameParam;\n const compositionIdentifierParam =\n useNameParam || (isScaling && includesEnvTemplates === false)\n ? `name=${currentComposition?.identifier}`\n : currentComposition?.identifier;\n\n const currentCompositionFullUrl = toPreviewUrl(component, 'compositions', compositionIdentifierParam);\n\n const [compositionParams, setCompositionParams] = useState<Record<string, any>>(() =>\n enableLiveControls ? { fullscreen: true, livecontrols: true } : { fullscreen: true }\n );\n\n const queryParams = useMemo(() => queryString.stringify(compositionParams), [compositionParams]);\n\n const [controlsTrayOpen, setControlsTrayOpen] = useState(true);\n const [isDraggingTray, setIsDraggingTray] = useState(false);\n const trayRef = useRef<HTMLDivElement>(null);\n const trayHeightRef = useRef(260);\n const { ready, defs, values, onChange } = useLiveControls();\n\n const onTrayDragStart = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n const startY = e.clientY;\n const startHeight = trayHeightRef.current;\n setIsDraggingTray(true);\n document.body.style.cursor = 'ns-resize';\n document.body.style.userSelect = 'none';\n const onMove = (ev: MouseEvent) => {\n const next = Math.max(120, Math.min(600, startHeight + (startY - ev.clientY)));\n trayHeightRef.current = next;\n if (trayRef.current) {\n trayRef.current.style.height = `${next}px`;\n }\n };\n const onUp = () => {\n setIsDraggingTray(false);\n document.body.style.cursor = '';\n document.body.style.userSelect = '';\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n };\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n }, []);\n\n // collapse sidebar when empty, reopen when not\n useEffect(() => setSidebarOpenness(showSidebar), [showSidebar]);\n useEffect(() => {\n if (enableLiveControls) {\n setCompositionParams((current) => {\n if (current.livecontrols === true) return current;\n return { ...current, livecontrols: true };\n });\n return;\n }\n\n setCompositionParams((current) => {\n if (!('livecontrols' in current)) return current;\n const next = { ...current };\n delete next.livecontrols;\n return next;\n });\n }, [enableLiveControls]);\n\n const currentCompositionHasControls = ready && defs.length > 0;\n const showControlsTray = currentCompositionHasControls && controlsTrayOpen;\n\n return (\n <CompositionContextProvider queryParams={compositionParams} setQueryParams={setCompositionParams}>\n <SplitPane layout={sidebarOpenness} size=\"80%\" className={styles.compositionsPage}>\n <Pane className={styles.left}>\n <CompositionsMenuBar menuBarWidgets={menuBarWidgets} className={styles.menuBar}>\n <Tooltip content={'Open in new tab'} placement=\"bottom\">\n <Link external href={currentCompositionFullUrl} className={styles.toolbarButton}>\n <OptionButton icon=\"open-tab\" />\n </Link>\n </Tooltip>\n {currentCompositionHasControls && (\n <Tooltip content={controlsTrayOpen ? 'Hide controls' : 'Show controls'} placement=\"bottom\">\n <button\n className={`${styles.toolbarButton} ${controlsTrayOpen ? styles.toolbarButtonActive : ''}`}\n onClick={() => setControlsTrayOpen((o) => !o)}\n >\n <Icon of=\"settings\" />\n </button>\n </Tooltip>\n )}\n </CompositionsMenuBar>\n <SandboxPermissionsAggregator\n hooks={previewSandboxHooks}\n onSandboxChange={setSandboxValue}\n component={component}\n />\n <div className={styles.previewArea}>\n {isDraggingTray && <div className={styles.dragOverlay} />}\n <CompositionContent\n className={styles.compositionPanel}\n emptyState={emptyState}\n component={component}\n selected={currentComposition}\n queryParams={queryParams}\n sandbox={sandboxValue}\n />\n {showControlsTray && (\n <div ref={trayRef} className={styles.controlsTray} style={{ height: trayHeightRef.current }}>\n <div className={styles.trayDragHandle} onMouseDown={onTrayDragStart}>\n <div className={styles.trayDragBar} />\n </div>\n <div className={styles.trayHeader}>\n <div className={styles.trayTitleRow}>\n <Icon of=\"settings\" className={styles.trayIcon} />\n <span className={styles.trayTitle}>Live Controls</span>\n {ready && defs.length > 0 && <span className={styles.trayBadge}>{defs.length}</span>}\n </div>\n <button className={styles.trayClose} onClick={() => setControlsTrayOpen(false)}>\n <Icon of=\"x\" />\n </button>\n </div>\n <div className={styles.trayBody}>\n {ready ? (\n <LiveControls defs={defs} values={values} onChange={onChange} />\n ) : (\n <div className={styles.trayEmpty}>No live controls available for this composition</div>\n )}\n </div>\n </div>\n )}\n </div>\n </Pane>\n <HoverSplitter className={styles.splitter}>\n <Collapser\n placement=\"left\"\n isOpen={isSidebarOpen}\n onMouseDown={(e) => e.stopPropagation()} // avoid split-pane drag\n onClick={() => setSidebarOpenness((x) => !x)}\n tooltipContent={`${isSidebarOpen ? 'Hide' : 'Show'} side compositions`}\n className={styles.collapser}\n />\n </HoverSplitter>\n <Pane className={styles.right}>\n <ThemeContext>\n <TabContainer className={styles.tabsContainer}>\n <TabList className={styles.tabs}>\n <Tab>compositions</Tab>\n <Tab>properties</Tab>\n </TabList>\n <TabPanel className={styles.tabContent}>\n <CompositionsPanel\n isScaling={isScaling}\n useNameParam={useNameParam}\n includesEnvTemplate={component.preview?.includesEnvTemplate}\n onSelectComposition={(composition) => {\n if (!currentComposition || !location) return;\n const selectedCompositionFromUrl = params['*'];\n\n const pathSegments = location.pathname.split('/').filter((x) => x);\n\n if (!selectedCompositionFromUrl) {\n pathSegments.push(composition.identifier.toLowerCase());\n } else {\n pathSegments[pathSegments.length - 1] = composition.identifier.toLowerCase();\n }\n\n const urlParams = new URLSearchParams(searchParams);\n if (versionFromQueryParams) {\n urlParams.set('version', versionFromQueryParams);\n }\n const newPath = pathSegments.join('/');\n navigate(`/${newPath}?${urlParams.toString()}`);\n }}\n url={compositionUrl}\n compositions={component.compositions}\n active={currentComposition}\n />\n </TabPanel>\n <TabPanel className={styles.tabContent}>\n {properties && properties.length > 0 ? <PropTable rows={properties} showListView /> : <div />}\n </TabPanel>\n </TabContainer>\n </ThemeContext>\n </Pane>\n </SplitPane>\n </CompositionContextProvider>\n );\n}\n\nexport type CompositionContentProps = {\n component: ComponentModel;\n selected?: Composition;\n queryParams?: string | string[];\n emptyState?: EmptyStateSlot;\n} & ComponentCompositionProps;\n\nexport function CompositionContent({\n component,\n selected,\n queryParams,\n emptyState,\n sandbox,\n ...componentCompositionProps\n}: CompositionContentProps) {\n const env = component.environment?.id;\n const EmptyStateTemplate = emptyState?.get(env || ''); // || defaultTemplate;\n\n if (component.compositions.length === 0 && component.host === 'teambit.workspace/workspace' && EmptyStateTemplate) {\n return (\n <div className={styles.noCompositionsPage}>\n <div>\n <H1 className={styles.title}>Compositions</H1>\n <Separator isPresentational className={styles.separator} />\n <AlertCard\n level=\"info\"\n title=\"There are no\n compositions for this Component. Learn how to add compositions:\"\n >\n <MDXLayout>\n <EmptyStateTemplate />\n </MDXLayout>\n </AlertCard>\n </div>\n </div>\n );\n }\n\n if (component?.buildStatus === 'pending' && component?.host === 'teambit.scope/scope')\n return (\n <StatusMessageCard className={styles.buildStatusMessage} status=\"PROCESSING\" title=\"component preview pending\">\n this might take some time\n </StatusMessageCard>\n );\n if (component?.buildStatus === 'failed' && component?.host === 'teambit.scope/scope')\n return (\n <StatusMessageCard\n className={styles.buildStatusMessage}\n status=\"FAILURE\"\n title=\"failed to get component preview \"\n ></StatusMessageCard>\n );\n\n // TODO: get the docs domain from the community aspect and pass it here as a prop\n if (component.compositions.length === 0) {\n return (\n <EmptyBox\n title=\"There are no compositions for this component.\"\n linkText=\"Learn how to create compositions\"\n link={`https://bit.dev/reference/dev-services-overview/compositions/compositions-overview`}\n />\n );\n }\n\n return (\n <ComponentComposition\n className={styles.compositionsIframe}\n // TODO: Oded to add control for viewport.\n viewport={null}\n component={component}\n forceHeight=\"100%\"\n composition={selected}\n fullContentHeight\n pubsub={true}\n queryParams={queryParams}\n sandbox={sandbox}\n {...componentCompositionProps}\n />\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
@import '@teambit/ui-foundation.ui.constants.z-indexes/z-indexes.module.scss';
|
|
2
|
-
$panelBg: #fafafa;
|
|
3
2
|
|
|
4
3
|
.compositionsPage {
|
|
5
4
|
height: 100%;
|
|
@@ -13,27 +12,250 @@ $panelBg: #fafafa;
|
|
|
13
12
|
|
|
14
13
|
.left {
|
|
15
14
|
min-width: 200px;
|
|
16
|
-
|
|
17
|
-
//cannot assign max-width directly to right side
|
|
18
15
|
max-width: calc(100% - 200px);
|
|
19
|
-
|
|
20
16
|
display: flex;
|
|
21
|
-
overflow
|
|
17
|
+
overflow: hidden;
|
|
22
18
|
flex-direction: column;
|
|
19
|
+
background: var(--bit-bg-color, #ffffff);
|
|
23
20
|
}
|
|
24
21
|
|
|
25
22
|
.right {
|
|
26
|
-
background: var(--
|
|
23
|
+
background: var(--compositions-panel-bg, #f7f7f8);
|
|
27
24
|
overflow-y: auto;
|
|
28
|
-
// this is to fix the right panel when it gets too big or too small
|
|
29
25
|
min-width: 200px;
|
|
30
26
|
max-width: calc(100% - 200px);
|
|
27
|
+
border-left: 1px solid var(--bit-border-color-lightest, #eaeaec);
|
|
31
28
|
}
|
|
32
29
|
|
|
33
30
|
.menuBar {
|
|
34
|
-
border-bottom: 1px solid var(--bit-border-color-lightest, #
|
|
31
|
+
border-bottom: 1px solid var(--bit-border-color-lightest, #eaeaec);
|
|
32
|
+
background: var(--bit-bg-color, #ffffff);
|
|
33
|
+
flex-shrink: 0;
|
|
34
|
+
|
|
35
|
+
> div {
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
gap: 2px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// normalize all OptionButton instances to match our toolbar style
|
|
42
|
+
:global([class*='optionButton']) {
|
|
43
|
+
width: 30px;
|
|
44
|
+
height: 30px;
|
|
45
|
+
padding: 0;
|
|
46
|
+
border-radius: 6px;
|
|
47
|
+
font-size: 14px;
|
|
48
|
+
display: inline-flex;
|
|
49
|
+
align-items: center;
|
|
50
|
+
justify-content: center;
|
|
51
|
+
background: transparent;
|
|
52
|
+
color: var(--bit-text-color-light, #8b8d98);
|
|
53
|
+
border: none;
|
|
54
|
+
cursor: pointer;
|
|
55
|
+
transition: all 140ms ease;
|
|
56
|
+
|
|
57
|
+
&:hover {
|
|
58
|
+
background: var(--surface-hover-color, #f0f0f2) !important;
|
|
59
|
+
color: var(--bit-text-color-heavy, #1c2024);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&:active {
|
|
63
|
+
transform: scale(0.95);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&:global(.active),
|
|
67
|
+
&[class*='active'] {
|
|
68
|
+
background: rgba(108, 92, 231, 0.1) !important;
|
|
69
|
+
color: var(--bit-accent-color, #6c5ce7) !important;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
35
72
|
}
|
|
36
73
|
|
|
74
|
+
// ─── Toolbar ────────────────────────────────────────────────────────────
|
|
75
|
+
.toolbar {
|
|
76
|
+
display: flex;
|
|
77
|
+
align-items: center;
|
|
78
|
+
gap: 2px;
|
|
79
|
+
padding: 0 4px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.toolbarButton {
|
|
83
|
+
display: flex;
|
|
84
|
+
align-items: center;
|
|
85
|
+
justify-content: center;
|
|
86
|
+
width: 30px;
|
|
87
|
+
height: 30px;
|
|
88
|
+
border-radius: 6px;
|
|
89
|
+
border: none;
|
|
90
|
+
background: transparent;
|
|
91
|
+
color: var(--bit-text-color-light, #8b8d98);
|
|
92
|
+
cursor: pointer;
|
|
93
|
+
transition: all 140ms ease;
|
|
94
|
+
text-decoration: none;
|
|
95
|
+
font-size: 14px;
|
|
96
|
+
padding: 0;
|
|
97
|
+
|
|
98
|
+
&:hover {
|
|
99
|
+
background: var(--surface-hover-color, #f0f0f2);
|
|
100
|
+
color: var(--bit-text-color-heavy, #1c2024);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
&:active {
|
|
104
|
+
background: var(--bit-border-color-lightest, #eaeaec);
|
|
105
|
+
transform: scale(0.95);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.toolbarButtonActive {
|
|
110
|
+
background: rgba(108, 92, 231, 0.1);
|
|
111
|
+
color: var(--bit-accent-color, #6c5ce7);
|
|
112
|
+
|
|
113
|
+
&:hover {
|
|
114
|
+
background: rgba(108, 92, 231, 0.15);
|
|
115
|
+
color: var(--bit-accent-color, #6c5ce7);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// ─── Preview + Controls Tray area ───────────────────────────────────────
|
|
120
|
+
.previewArea {
|
|
121
|
+
position: relative;
|
|
122
|
+
display: flex;
|
|
123
|
+
flex-direction: column;
|
|
124
|
+
flex: 1;
|
|
125
|
+
min-height: 0;
|
|
126
|
+
overflow: hidden;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.compositionPanel {
|
|
130
|
+
display: flex;
|
|
131
|
+
flex: 1;
|
|
132
|
+
min-height: 0;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.dragOverlay {
|
|
136
|
+
position: absolute;
|
|
137
|
+
inset: 0;
|
|
138
|
+
z-index: 10;
|
|
139
|
+
cursor: ns-resize;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// ─── Controls Tray (bottom panel, like DevTools) ────────────────────────
|
|
143
|
+
.controlsTray {
|
|
144
|
+
flex-shrink: 0;
|
|
145
|
+
display: flex;
|
|
146
|
+
flex-direction: column;
|
|
147
|
+
border-top: 1px solid var(--bit-border-color-lightest, #eaeaec);
|
|
148
|
+
background: var(--compositions-panel-bg, #f7f7f8);
|
|
149
|
+
overflow: hidden;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.trayDragHandle {
|
|
153
|
+
flex-shrink: 0;
|
|
154
|
+
height: 8px;
|
|
155
|
+
display: flex;
|
|
156
|
+
align-items: center;
|
|
157
|
+
justify-content: center;
|
|
158
|
+
cursor: ns-resize;
|
|
159
|
+
background: transparent;
|
|
160
|
+
transition: background 120ms ease;
|
|
161
|
+
|
|
162
|
+
&:hover {
|
|
163
|
+
background: rgba(0, 0, 0, 0.03);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
&:hover .trayDragBar {
|
|
167
|
+
background: var(--bit-text-color-light, #8b8d98);
|
|
168
|
+
width: 48px;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.trayDragBar {
|
|
173
|
+
width: 32px;
|
|
174
|
+
height: 3px;
|
|
175
|
+
border-radius: 2px;
|
|
176
|
+
background: var(--bit-border-color-lightest, #d0d0d3);
|
|
177
|
+
transition: all 140ms ease;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.trayHeader {
|
|
181
|
+
flex-shrink: 0;
|
|
182
|
+
display: flex;
|
|
183
|
+
align-items: center;
|
|
184
|
+
justify-content: space-between;
|
|
185
|
+
padding: 4px 14px 8px;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.trayTitleRow {
|
|
189
|
+
display: flex;
|
|
190
|
+
align-items: center;
|
|
191
|
+
gap: 8px;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.trayIcon {
|
|
195
|
+
font-size: 13px;
|
|
196
|
+
color: var(--bit-accent-color, #6c5ce7);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.trayTitle {
|
|
200
|
+
font-size: 11px;
|
|
201
|
+
font-weight: 600;
|
|
202
|
+
letter-spacing: 0.5px;
|
|
203
|
+
text-transform: uppercase;
|
|
204
|
+
color: var(--bit-text-color-light, #8b8d98);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.trayBadge {
|
|
208
|
+
display: inline-flex;
|
|
209
|
+
align-items: center;
|
|
210
|
+
justify-content: center;
|
|
211
|
+
min-width: 18px;
|
|
212
|
+
height: 18px;
|
|
213
|
+
padding: 0 5px;
|
|
214
|
+
border-radius: 9px;
|
|
215
|
+
font-size: 10px;
|
|
216
|
+
font-weight: 600;
|
|
217
|
+
background: var(--bit-accent-color, #6c5ce7);
|
|
218
|
+
color: #ffffff;
|
|
219
|
+
line-height: 1;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.trayClose {
|
|
223
|
+
display: flex;
|
|
224
|
+
align-items: center;
|
|
225
|
+
justify-content: center;
|
|
226
|
+
width: 24px;
|
|
227
|
+
height: 24px;
|
|
228
|
+
border-radius: 4px;
|
|
229
|
+
border: none;
|
|
230
|
+
background: transparent;
|
|
231
|
+
color: var(--bit-text-color-light, #8b8d98);
|
|
232
|
+
cursor: pointer;
|
|
233
|
+
font-size: 12px;
|
|
234
|
+
padding: 0;
|
|
235
|
+
transition: all 120ms ease;
|
|
236
|
+
|
|
237
|
+
&:hover {
|
|
238
|
+
background: rgba(0, 0, 0, 0.06);
|
|
239
|
+
color: var(--bit-text-color-heavy, #1c2024);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.trayBody {
|
|
244
|
+
flex: 1;
|
|
245
|
+
overflow-y: auto;
|
|
246
|
+
overflow-x: hidden;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.trayEmpty {
|
|
250
|
+
display: flex;
|
|
251
|
+
align-items: center;
|
|
252
|
+
justify-content: center;
|
|
253
|
+
padding: 24px 16px;
|
|
254
|
+
font-size: 12px;
|
|
255
|
+
color: var(--bit-text-color-light, #8b8d98);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// ─── Splitter ───────────────────────────────────────────────────────────
|
|
37
259
|
.splitter {
|
|
38
260
|
position: relative;
|
|
39
261
|
|
|
@@ -47,6 +269,7 @@ $panelBg: #fafafa;
|
|
|
47
269
|
right: 0;
|
|
48
270
|
}
|
|
49
271
|
|
|
272
|
+
// ─── Tabs ───────────────────────────────────────────────────────────────
|
|
50
273
|
.tabsContainer {
|
|
51
274
|
display: flex;
|
|
52
275
|
flex-direction: column;
|
|
@@ -78,6 +301,7 @@ $panelBg: #fafafa;
|
|
|
78
301
|
}
|
|
79
302
|
}
|
|
80
303
|
|
|
304
|
+
// ─── Empty / error states ───────────────────────────────────────────────
|
|
81
305
|
.noCompositionsPage {
|
|
82
306
|
padding: 50px 40px 100px 40px;
|
|
83
307
|
width: 100%;
|
|
@@ -97,8 +321,3 @@ $panelBg: #fafafa;
|
|
|
97
321
|
.buildStatusMessage {
|
|
98
322
|
margin: auto;
|
|
99
323
|
}
|
|
100
|
-
|
|
101
|
-
.compositionPanel {
|
|
102
|
-
display: flex;
|
|
103
|
-
flex: 1;
|
|
104
|
-
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.compositions_compositions@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.compositions_compositions@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.compositions_compositions@1.0.959/dist/compositions.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.compositions_compositions@1.0.959/dist/compositions.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -1,25 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { Composition } from '../../composition';
|
|
3
3
|
export type CompositionsPanelProps = {
|
|
4
|
-
/**
|
|
5
|
-
* list of compositions
|
|
6
|
-
*/
|
|
7
4
|
compositions: Composition[];
|
|
8
|
-
/**
|
|
9
|
-
* select composition to display
|
|
10
|
-
*/
|
|
11
5
|
onSelectComposition: (composition: Composition) => void;
|
|
12
|
-
/**
|
|
13
|
-
* the currently active composition
|
|
14
|
-
*/
|
|
15
6
|
active?: Composition;
|
|
16
|
-
/**
|
|
17
|
-
* the url to the base composition. doesntc contain the current composition params
|
|
18
|
-
*/
|
|
19
7
|
url: string;
|
|
20
|
-
/**
|
|
21
|
-
* checks if a component is using the new preview api. if false, doesnt scale to support new preview
|
|
22
|
-
*/
|
|
23
8
|
isScaling?: boolean;
|
|
24
9
|
includesEnvTemplate?: boolean;
|
|
25
10
|
useNameParam?: boolean;
|
|
@@ -32,13 +32,6 @@ function _react() {
|
|
|
32
32
|
};
|
|
33
33
|
return data;
|
|
34
34
|
}
|
|
35
|
-
function _uiFoundationUiTree() {
|
|
36
|
-
const data = require("@teambit/ui-foundation.ui.tree.drawer");
|
|
37
|
-
_uiFoundationUiTree = function () {
|
|
38
|
-
return data;
|
|
39
|
-
};
|
|
40
|
-
return data;
|
|
41
|
-
}
|
|
42
35
|
function _uiFoundationUi() {
|
|
43
36
|
const data = require("@teambit/ui-foundation.ui.menu-widget-icon");
|
|
44
37
|
_uiFoundationUi = function () {
|
|
@@ -74,13 +67,6 @@ function _compositionsPanelModule() {
|
|
|
74
67
|
};
|
|
75
68
|
return data;
|
|
76
69
|
}
|
|
77
|
-
function _liveControlPanel() {
|
|
78
|
-
const data = require("./live-control-panel");
|
|
79
|
-
_liveControlPanel = function () {
|
|
80
|
-
return data;
|
|
81
|
-
};
|
|
82
|
-
return data;
|
|
83
|
-
}
|
|
84
70
|
const _excluded = ["url", "compositions", "isScaling", "onSelectComposition", "active", "includesEnvTemplate", "useNameParam", "className"];
|
|
85
71
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
86
72
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -99,34 +85,14 @@ function CompositionsPanel(_ref) {
|
|
|
99
85
|
className
|
|
100
86
|
} = _ref,
|
|
101
87
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
102
|
-
const [openDrawerList, onToggleDrawer] = (0, _react().useState)(['COMPOSITIONS', 'LIVE_CONTROLS']);
|
|
103
88
|
const {
|
|
104
|
-
hasLiveControls,
|
|
105
|
-
ready,
|
|
106
|
-
defs,
|
|
107
|
-
values,
|
|
108
|
-
onChange,
|
|
109
89
|
setTimestamp
|
|
110
90
|
} = (0, _compositionsUi().useLiveControls)();
|
|
111
|
-
const handleDrawerToggle = id => {
|
|
112
|
-
const isDrawerOpen = openDrawerList.includes(id);
|
|
113
|
-
if (isDrawerOpen) {
|
|
114
|
-
onToggleDrawer(list => list.filter(drawer => drawer !== id));
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
onToggleDrawer(list => list.concat(id));
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
// setup from props
|
|
121
91
|
const shouldAddNameParam = useNameParam || isScaling && includesEnvTemplate === false;
|
|
122
|
-
|
|
123
|
-
// current composition state
|
|
124
92
|
const location = (0, _baseReactNavigation().useLocation)();
|
|
125
93
|
const [searchParams] = (0, _reactRouterDom().useSearchParams)();
|
|
126
94
|
const versionFromQueryParams = searchParams.get('version');
|
|
127
95
|
const navigate = (0, _baseReactNavigation().useNavigate)();
|
|
128
|
-
|
|
129
|
-
// composition navigation action
|
|
130
96
|
const handleSelect = (0, _react().useCallback)(selected => {
|
|
131
97
|
onSelect && onSelect(selected);
|
|
132
98
|
if (selected === active) return;
|
|
@@ -143,55 +109,40 @@ function CompositionsPanel(_ref) {
|
|
|
143
109
|
navigate(`${basePath}/~code/${composition.filepath}?${queryParams.toString()}#search=${composition.identifier}`);
|
|
144
110
|
}, [location?.pathname, navigate, setTimestamp, versionFromQueryParams]);
|
|
145
111
|
return /*#__PURE__*/_react().default.createElement("div", {
|
|
146
|
-
className:
|
|
147
|
-
}, /*#__PURE__*/_react().default.createElement(_uiFoundationUiTree().DrawerUI, {
|
|
148
|
-
isOpen: openDrawerList.includes('COMPOSITIONS'),
|
|
149
|
-
onToggle: () => handleDrawerToggle('COMPOSITIONS'),
|
|
150
|
-
name: "COMPOSITIONS",
|
|
151
|
-
className: (0, _classnames().default)(_compositionsPanelModule().default.tab)
|
|
112
|
+
className: _compositionsPanelModule().default.container
|
|
152
113
|
}, /*#__PURE__*/_react().default.createElement("ul", _extends({}, rest, {
|
|
153
|
-
className: (0, _classnames().default)(className)
|
|
114
|
+
className: (0, _classnames().default)(_compositionsPanelModule().default.compositionsList, className)
|
|
154
115
|
}), compositions.map(composition => {
|
|
155
116
|
const href = shouldAddNameParam ? `${url}&name=${composition.identifier}` : `${url}&${composition.identifier}`;
|
|
156
117
|
return /*#__PURE__*/_react().default.createElement("li", {
|
|
157
118
|
key: composition.identifier,
|
|
158
|
-
className: (0, _classnames().default)(_compositionsPanelModule().default.
|
|
119
|
+
className: (0, _classnames().default)(_compositionsPanelModule().default.compositionItem, composition === active && _compositionsPanelModule().default.active)
|
|
159
120
|
}, /*#__PURE__*/_react().default.createElement("a", {
|
|
160
121
|
className: _compositionsPanelModule().default.panelLink,
|
|
161
122
|
onClick: () => handleSelect(composition)
|
|
162
123
|
}, /*#__PURE__*/_react().default.createElement("span", {
|
|
124
|
+
className: _compositionsPanelModule().default.compositionDot
|
|
125
|
+
}), /*#__PURE__*/_react().default.createElement("span", {
|
|
163
126
|
className: _compositionsPanelModule().default.name
|
|
164
127
|
}, composition.displayName)), /*#__PURE__*/_react().default.createElement("div", {
|
|
165
|
-
className: _compositionsPanelModule().default.
|
|
128
|
+
className: _compositionsPanelModule().default.itemActions
|
|
166
129
|
}, /*#__PURE__*/_react().default.createElement(_uiFoundationUi().MenuWidgetIcon, {
|
|
167
|
-
className: _compositionsPanelModule().default.
|
|
130
|
+
className: _compositionsPanelModule().default.actionIcon,
|
|
168
131
|
icon: "Code",
|
|
169
|
-
tooltipContent: "
|
|
132
|
+
tooltipContent: "View source",
|
|
170
133
|
onClick: onCompositionCodeClicked(composition)
|
|
171
134
|
}), /*#__PURE__*/_react().default.createElement(_designUi().Tooltip, {
|
|
172
135
|
content: "Open in new tab",
|
|
173
136
|
placement: "bottom"
|
|
174
137
|
}, /*#__PURE__*/_react().default.createElement("a", {
|
|
175
|
-
className: _compositionsPanelModule().default.iconLink,
|
|
138
|
+
className: (0, _classnames().default)(_compositionsPanelModule().default.actionIcon, _compositionsPanelModule().default.iconLink),
|
|
176
139
|
target: "_blank",
|
|
177
140
|
rel: "noopener noreferrer",
|
|
178
141
|
href: href
|
|
179
142
|
}, /*#__PURE__*/_react().default.createElement(_evangelistElements().Icon, {
|
|
180
|
-
className: _compositionsPanelModule().default.icon,
|
|
181
143
|
of: "open-tab"
|
|
182
144
|
})))));
|
|
183
|
-
})))
|
|
184
|
-
name: "LIVE CONTROLS",
|
|
185
|
-
className: (0, _classnames().default)(_compositionsPanelModule().default.tab, className),
|
|
186
|
-
isOpen: openDrawerList.includes('LIVE_CONTROLS'),
|
|
187
|
-
onToggle: () => handleDrawerToggle('LIVE_CONTROLS')
|
|
188
|
-
}, ready ? /*#__PURE__*/_react().default.createElement(_liveControlPanel().LiveControls, {
|
|
189
|
-
defs: defs,
|
|
190
|
-
values: values,
|
|
191
|
-
onChange: onChange
|
|
192
|
-
}) : /*#__PURE__*/_react().default.createElement("div", {
|
|
193
|
-
className: _compositionsPanelModule().default.noLiveControls
|
|
194
|
-
}, "No live controls available for this composition")) : null);
|
|
145
|
+
})));
|
|
195
146
|
}
|
|
196
147
|
|
|
197
148
|
//# sourceMappingURL=compositions-panel.js.map
|