@teambit/compositions 1.0.956 → 1.0.958

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"names":["_evangelistElements","data","require","_classnames","_interopRequireDefault","_reactRouterDom","_react","_interopRequireWildcard","_uiFoundationUiTree","_uiFoundationUi","_designUi","_baseReactNavigation","_compositionsUi","_compositionsPanelModule","_liveControlPanel","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","CompositionsPanel","_ref","url","compositions","isScaling","onSelectComposition","onSelect","active","includesEnvTemplate","useNameParam","className","rest","openDrawerList","onToggleDrawer","useState","hasLiveControls","ready","defs","values","onChange","setTimestamp","useLiveControls","handleDrawerToggle","id","isDrawerOpen","includes","list","filter","drawer","concat","shouldAddNameParam","location","useLocation","searchParams","useSearchParams","versionFromQueryParams","navigate","useNavigate","handleSelect","useCallback","selected","onCompositionCodeClicked","composition","preventDefault","queryParams","URLSearchParams","basePath","pathname","split","filepath","toString","identifier","createElement","classNames","styles","container","DrawerUI","isOpen","onToggle","name","tab","map","href","key","linkWrapper","panelLink","onClick","displayName","right","MenuWidgetIcon","codeLink","icon","tooltipContent","Tooltip","content","placement","iconLink","target","rel","Icon","of","LiveControls","noLiveControls"],"sources":["compositions-panel.tsx"],"sourcesContent":["import { Icon } from '@teambit/evangelist.elements.icon';\nimport classNames from 'classnames';\nimport { useSearchParams } from 'react-router-dom';\nimport React, { useCallback, useState } from 'react';\nimport { DrawerUI } from '@teambit/ui-foundation.ui.tree.drawer';\nimport { MenuWidgetIcon } from '@teambit/ui-foundation.ui.menu-widget-icon';\nimport { Tooltip } from '@teambit/design.ui.tooltip';\nimport { useNavigate, useLocation } from '@teambit/base-react.navigation.link';\nimport { useLiveControls } from '@teambit/compositions.ui.composition-live-controls';\nimport styles from './compositions-panel.module.scss';\nimport type { Composition } from '../../composition';\nimport { LiveControls } from './live-control-panel';\n\nexport type CompositionsPanelProps = {\n /**\n * list of compositions\n */\n compositions: Composition[];\n /**\n * select composition to display\n */\n onSelectComposition: (composition: Composition) => void;\n /**\n * the currently active composition\n */\n active?: Composition;\n /**\n * the url to the base composition. doesntc contain the current composition params\n */\n url: string;\n /**\n * checks if a component is using the new preview api. if false, doesnt scale to support new preview\n */\n isScaling?: boolean;\n\n includesEnvTemplate?: boolean;\n\n useNameParam?: boolean;\n} & React.HTMLAttributes<HTMLUListElement>;\n\nexport function CompositionsPanel({\n url,\n compositions,\n isScaling,\n onSelectComposition: onSelect,\n active,\n includesEnvTemplate,\n useNameParam,\n className,\n ...rest\n}: CompositionsPanelProps) {\n const [openDrawerList, onToggleDrawer] = useState(['COMPOSITIONS', 'LIVE_CONTROLS']);\n const { hasLiveControls, ready, defs, values, onChange, setTimestamp } = useLiveControls();\n const handleDrawerToggle = (id: string) => {\n const isDrawerOpen = openDrawerList.includes(id);\n if (isDrawerOpen) {\n onToggleDrawer((list) => list.filter((drawer) => drawer !== id));\n return;\n }\n onToggleDrawer((list) => list.concat(id));\n };\n\n // setup from props\n const shouldAddNameParam = useNameParam || (isScaling && includesEnvTemplate === false);\n\n // current composition state\n const location = useLocation();\n const [searchParams] = useSearchParams();\n const versionFromQueryParams = searchParams.get('version');\n const navigate = useNavigate();\n\n // composition navigation action\n const handleSelect = useCallback(\n (selected: Composition) => {\n onSelect && onSelect(selected);\n if (selected === active) return;\n setTimestamp(0);\n },\n [onSelect, active, setTimestamp]\n );\n const onCompositionCodeClicked = useCallback(\n (composition: Composition) => (e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n setTimestamp(0);\n const queryParams = new URLSearchParams();\n if (versionFromQueryParams) {\n queryParams.set('version', versionFromQueryParams);\n }\n const basePath = location?.pathname.split('/~compositions')[0];\n navigate(`${basePath}/~code/${composition.filepath}?${queryParams.toString()}#search=${composition.identifier}`);\n },\n [location?.pathname, navigate, setTimestamp, versionFromQueryParams]\n );\n\n return (\n <div className={classNames(styles.container)}>\n <DrawerUI\n isOpen={openDrawerList.includes('COMPOSITIONS')}\n onToggle={() => handleDrawerToggle('COMPOSITIONS')}\n name=\"COMPOSITIONS\"\n className={classNames(styles.tab)}\n >\n <ul {...rest} className={classNames(className)}>\n {compositions.map((composition) => {\n const href = shouldAddNameParam\n ? `${url}&name=${composition.identifier}`\n : `${url}&${composition.identifier}`;\n return (\n <li\n key={composition.identifier}\n className={classNames(styles.linkWrapper, composition === active && styles.active)}\n >\n <a className={styles.panelLink} onClick={() => handleSelect(composition)}>\n <span className={styles.name}>{composition.displayName}</span>\n </a>\n <div className={styles.right}>\n <MenuWidgetIcon\n className={styles.codeLink}\n icon=\"Code\"\n tooltipContent=\"Code\"\n onClick={onCompositionCodeClicked(composition)}\n />\n <Tooltip content=\"Open in new tab\" placement=\"bottom\">\n <a className={styles.iconLink} target=\"_blank\" rel=\"noopener noreferrer\" href={href}>\n <Icon className={styles.icon} of=\"open-tab\" />\n </a>\n </Tooltip>\n </div>\n </li>\n );\n })}\n </ul>\n </DrawerUI>\n {hasLiveControls ? (\n <DrawerUI\n name=\"LIVE CONTROLS\"\n className={classNames(styles.tab, className)}\n isOpen={openDrawerList.includes('LIVE_CONTROLS')}\n onToggle={() => handleDrawerToggle('LIVE_CONTROLS')}\n >\n {ready ? (\n <LiveControls defs={defs} values={values} onChange={onChange} />\n ) : (\n <div className={styles.noLiveControls}>No live controls available for this composition</div>\n )}\n </DrawerUI>\n ) : null}\n </div>\n );\n}\n"],"mappings":";;;;;;AAAA,SAAAA,oBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,mBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,YAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,gBAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,eAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,OAAA;EAAA,MAAAL,IAAA,GAAAM,uBAAA,CAAAL,OAAA;EAAAI,MAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,oBAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,mBAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,gBAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,eAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,UAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,SAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,qBAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,oBAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,gBAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,eAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,yBAAA;EAAA,MAAAZ,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAW,wBAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAa,kBAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,iBAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAoD,MAAAc,SAAA;AAAA,SAAAR,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAb,uBAAAY,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;AAAA,SAAAmB,SAAA,WAAAA,QAAA,GAAAH,MAAA,CAAAI,MAAA,GAAAJ,MAAA,CAAAI,MAAA,CAAAC,IAAA,eAAAjB,CAAA,aAAAJ,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAC,CAAA,GAAAqB,SAAA,CAAAtB,CAAA,YAAAG,CAAA,IAAAF,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAE,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAF,CAAA,CAAAE,CAAA,aAAAC,CAAA,KAAAe,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAAA,SAAAG,yBAAAzB,CAAA,EAAAC,CAAA,gBAAAD,CAAA,iBAAAM,CAAA,EAAAH,CAAA,EAAAI,CAAA,GAAAmB,6BAAA,CAAA1B,CAAA,EAAAC,CAAA,OAAAe,MAAA,CAAAW,qBAAA,QAAAvB,CAAA,GAAAY,MAAA,CAAAW,qBAAA,CAAA3B,CAAA,QAAAG,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAmB,MAAA,EAAApB,CAAA,IAAAG,CAAA,GAAAF,CAAA,CAAAD,CAAA,UAAAF,CAAA,CAAA2B,OAAA,CAAAtB,CAAA,QAAAuB,oBAAA,CAAAd,IAAA,CAAAf,CAAA,EAAAM,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAN,CAAA,CAAAM,CAAA,aAAAC,CAAA;AAAA,SAAAmB,8BAAAvB,CAAA,EAAAH,CAAA,gBAAAG,CAAA,iBAAAF,CAAA,gBAAAG,CAAA,IAAAD,CAAA,SAAAW,cAAA,CAAAC,IAAA,CAAAZ,CAAA,EAAAC,CAAA,gBAAAJ,CAAA,CAAA4B,OAAA,CAAAxB,CAAA,aAAAH,CAAA,CAAAG,CAAA,IAAAD,CAAA,CAAAC,CAAA,YAAAH,CAAA;AA6B7C,SAAS6B,iBAAiBA,CAAAC,IAAA,EAUN;EAAA,IAVO;MAChCC,GAAG;MACHC,YAAY;MACZC,SAAS;MACTC,mBAAmB,EAAEC,QAAQ;MAC7BC,MAAM;MACNC,mBAAmB;MACnBC,YAAY;MACZC;IAEsB,CAAC,GAAAT,IAAA;IADpBU,IAAI,GAAAhB,wBAAA,CAAAM,IAAA,EAAAhC,SAAA;EAEP,MAAM,CAAC2C,cAAc,EAAEC,cAAc,CAAC,GAAG,IAAAC,iBAAQ,EAAC,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;EACpF,MAAM;IAAEC,eAAe;IAAEC,KAAK;IAAEC,IAAI;IAAEC,MAAM;IAAEC,QAAQ;IAAEC;EAAa,CAAC,GAAG,IAAAC,iCAAe,EAAC,CAAC;EAC1F,MAAMC,kBAAkB,GAAIC,EAAU,IAAK;IACzC,MAAMC,YAAY,GAAGZ,cAAc,CAACa,QAAQ,CAACF,EAAE,CAAC;IAChD,IAAIC,YAAY,EAAE;MAChBX,cAAc,CAAEa,IAAI,IAAKA,IAAI,CAACC,MAAM,CAAEC,MAAM,IAAKA,MAAM,KAAKL,EAAE,CAAC,CAAC;MAChE;IACF;IACAV,cAAc,CAAEa,IAAI,IAAKA,IAAI,CAACG,MAAM,CAACN,EAAE,CAAC,CAAC;EAC3C,CAAC;;EAED;EACA,MAAMO,kBAAkB,GAAGrB,YAAY,IAAKL,SAAS,IAAII,mBAAmB,KAAK,KAAM;;EAEvF;EACA,MAAMuB,QAAQ,GAAG,IAAAC,kCAAW,EAAC,CAAC;EAC9B,MAAM,CAACC,YAAY,CAAC,GAAG,IAAAC,iCAAe,EAAC,CAAC;EACxC,MAAMC,sBAAsB,GAAGF,YAAY,CAACnD,GAAG,CAAC,SAAS,CAAC;EAC1D,MAAMsD,QAAQ,GAAG,IAAAC,kCAAW,EAAC,CAAC;;EAE9B;EACA,MAAMC,YAAY,GAAG,IAAAC,oBAAW,EAC7BC,QAAqB,IAAK;IACzBlC,QAAQ,IAAIA,QAAQ,CAACkC,QAAQ,CAAC;IAC9B,IAAIA,QAAQ,KAAKjC,MAAM,EAAE;IACzBa,YAAY,CAAC,CAAC,CAAC;EACjB,CAAC,EACD,CAACd,QAAQ,EAAEC,MAAM,EAAEa,YAAY,CACjC,CAAC;EACD,MAAMqB,wBAAwB,GAAG,IAAAF,oBAAW,EACzCG,WAAwB,IAAMxE,CAAmC,IAAK;IACrEA,CAAC,CAACyE,cAAc,CAAC,CAAC;IAClBvB,YAAY,CAAC,CAAC,CAAC;IACf,MAAMwB,WAAW,GAAG,IAAIC,eAAe,CAAC,CAAC;IACzC,IAAIV,sBAAsB,EAAE;MAC1BS,WAAW,CAAC7D,GAAG,CAAC,SAAS,EAAEoD,sBAAsB,CAAC;IACpD;IACA,MAAMW,QAAQ,GAAGf,QAAQ,EAAEgB,QAAQ,CAACC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC9DZ,QAAQ,CAAC,GAAGU,QAAQ,UAAUJ,WAAW,CAACO,QAAQ,IAAIL,WAAW,CAACM,QAAQ,CAAC,CAAC,WAAWR,WAAW,CAACS,UAAU,EAAE,CAAC;EAClH,CAAC,EACD,CAACpB,QAAQ,EAAEgB,QAAQ,EAAEX,QAAQ,EAAEhB,YAAY,EAAEe,sBAAsB,CACrE,CAAC;EAED,oBACE3E,MAAA,GAAAoB,OAAA,CAAAwE,aAAA;IAAK1C,SAAS,EAAE,IAAA2C,qBAAU,EAACC,kCAAM,CAACC,SAAS;EAAE,gBAC3C/F,MAAA,GAAAoB,OAAA,CAAAwE,aAAA,CAAC1F,mBAAA,GAAA8F,QAAQ;IACPC,MAAM,EAAE7C,cAAc,CAACa,QAAQ,CAAC,cAAc,CAAE;IAChDiC,QAAQ,EAAEA,CAAA,KAAMpC,kBAAkB,CAAC,cAAc,CAAE;IACnDqC,IAAI,EAAC,cAAc;IACnBjD,SAAS,EAAE,IAAA2C,qBAAU,EAACC,kCAAM,CAACM,GAAG;EAAE,gBAElCpG,MAAA,GAAAoB,OAAA,CAAAwE,aAAA,OAAA/D,QAAA,KAAQsB,IAAI;IAAED,SAAS,EAAE,IAAA2C,qBAAU,EAAC3C,SAAS;EAAE,IAC5CP,YAAY,CAAC0D,GAAG,CAAEnB,WAAW,IAAK;IACjC,MAAMoB,IAAI,GAAGhC,kBAAkB,GAC3B,GAAG5B,GAAG,SAASwC,WAAW,CAACS,UAAU,EAAE,GACvC,GAAGjD,GAAG,IAAIwC,WAAW,CAACS,UAAU,EAAE;IACtC,oBACE3F,MAAA,GAAAoB,OAAA,CAAAwE,aAAA;MACEW,GAAG,EAAErB,WAAW,CAACS,UAAW;MAC5BzC,SAAS,EAAE,IAAA2C,qBAAU,EAACC,kCAAM,CAACU,WAAW,EAAEtB,WAAW,KAAKnC,MAAM,IAAI+C,kCAAM,CAAC/C,MAAM;IAAE,gBAEnF/C,MAAA,GAAAoB,OAAA,CAAAwE,aAAA;MAAG1C,SAAS,EAAE4C,kCAAM,CAACW,SAAU;MAACC,OAAO,EAAEA,CAAA,KAAM5B,YAAY,CAACI,WAAW;IAAE,gBACvElF,MAAA,GAAAoB,OAAA,CAAAwE,aAAA;MAAM1C,SAAS,EAAE4C,kCAAM,CAACK;IAAK,GAAEjB,WAAW,CAACyB,WAAkB,CAC5D,CAAC,eACJ3G,MAAA,GAAAoB,OAAA,CAAAwE,aAAA;MAAK1C,SAAS,EAAE4C,kCAAM,CAACc;IAAM,gBAC3B5G,MAAA,GAAAoB,OAAA,CAAAwE,aAAA,CAACzF,eAAA,GAAA0G,cAAc;MACb3D,SAAS,EAAE4C,kCAAM,CAACgB,QAAS;MAC3BC,IAAI,EAAC,MAAM;MACXC,cAAc,EAAC,MAAM;MACrBN,OAAO,EAAEzB,wBAAwB,CAACC,WAAW;IAAE,CAChD,CAAC,eACFlF,MAAA,GAAAoB,OAAA,CAAAwE,aAAA,CAACxF,SAAA,GAAA6G,OAAO;MAACC,OAAO,EAAC,iBAAiB;MAACC,SAAS,EAAC;IAAQ,gBACnDnH,MAAA,GAAAoB,OAAA,CAAAwE,aAAA;MAAG1C,SAAS,EAAE4C,kCAAM,CAACsB,QAAS;MAACC,MAAM,EAAC,QAAQ;MAACC,GAAG,EAAC,qBAAqB;MAAChB,IAAI,EAAEA;IAAK,gBAClFtG,MAAA,GAAAoB,OAAA,CAAAwE,aAAA,CAAClG,mBAAA,GAAA6H,IAAI;MAACrE,SAAS,EAAE4C,kCAAM,CAACiB,IAAK;MAACS,EAAE,EAAC;IAAU,CAAE,CAC5C,CACI,CACN,CACH,CAAC;EAET,CAAC,CACC,CACI,CAAC,EACVjE,eAAe,gBACdvD,MAAA,GAAAoB,OAAA,CAAAwE,aAAA,CAAC1F,mBAAA,GAAA8F,QAAQ;IACPG,IAAI,EAAC,eAAe;IACpBjD,SAAS,EAAE,IAAA2C,qBAAU,EAACC,kCAAM,CAACM,GAAG,EAAElD,SAAS,CAAE;IAC7C+C,MAAM,EAAE7C,cAAc,CAACa,QAAQ,CAAC,eAAe,CAAE;IACjDiC,QAAQ,EAAEA,CAAA,KAAMpC,kBAAkB,CAAC,eAAe;EAAE,GAEnDN,KAAK,gBACJxD,MAAA,GAAAoB,OAAA,CAAAwE,aAAA,CAACpF,iBAAA,GAAAiH,YAAY;IAAChE,IAAI,EAAEA,IAAK;IAACC,MAAM,EAAEA,MAAO;IAACC,QAAQ,EAAEA;EAAS,CAAE,CAAC,gBAEhE3D,MAAA,GAAAoB,OAAA,CAAAwE,aAAA;IAAK1C,SAAS,EAAE4C,kCAAM,CAAC4B;EAAe,GAAC,iDAAoD,CAErF,CAAC,GACT,IACD,CAAC;AAEV","ignoreList":[]}
1
+ {"version":3,"names":["_evangelistElements","data","require","_classnames","_interopRequireDefault","_reactRouterDom","_react","_interopRequireWildcard","_uiFoundationUi","_designUi","_baseReactNavigation","_compositionsUi","_compositionsPanelModule","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","indexOf","propertyIsEnumerable","CompositionsPanel","_ref","url","compositions","isScaling","onSelectComposition","onSelect","active","includesEnvTemplate","useNameParam","className","rest","setTimestamp","useLiveControls","shouldAddNameParam","location","useLocation","searchParams","useSearchParams","versionFromQueryParams","navigate","useNavigate","handleSelect","useCallback","selected","onCompositionCodeClicked","composition","preventDefault","queryParams","URLSearchParams","basePath","pathname","split","filepath","toString","identifier","createElement","styles","container","classNames","compositionsList","map","href","key","compositionItem","panelLink","onClick","compositionDot","name","displayName","itemActions","MenuWidgetIcon","actionIcon","icon","tooltipContent","Tooltip","content","placement","iconLink","target","rel","Icon","of"],"sources":["compositions-panel.tsx"],"sourcesContent":["import { Icon } from '@teambit/evangelist.elements.icon';\nimport classNames from 'classnames';\nimport { useSearchParams } from 'react-router-dom';\nimport React, { useCallback } from 'react';\nimport { MenuWidgetIcon } from '@teambit/ui-foundation.ui.menu-widget-icon';\nimport { Tooltip } from '@teambit/design.ui.tooltip';\nimport { useNavigate, useLocation } from '@teambit/base-react.navigation.link';\nimport { useLiveControls } from '@teambit/compositions.ui.composition-live-controls';\nimport styles from './compositions-panel.module.scss';\nimport type { Composition } from '../../composition';\n\nexport type CompositionsPanelProps = {\n compositions: Composition[];\n onSelectComposition: (composition: Composition) => void;\n active?: Composition;\n url: string;\n isScaling?: boolean;\n includesEnvTemplate?: boolean;\n useNameParam?: boolean;\n} & React.HTMLAttributes<HTMLUListElement>;\n\nexport function CompositionsPanel({\n url,\n compositions,\n isScaling,\n onSelectComposition: onSelect,\n active,\n includesEnvTemplate,\n useNameParam,\n className,\n ...rest\n}: CompositionsPanelProps) {\n const { setTimestamp } = useLiveControls();\n const shouldAddNameParam = useNameParam || (isScaling && includesEnvTemplate === false);\n\n const location = useLocation();\n const [searchParams] = useSearchParams();\n const versionFromQueryParams = searchParams.get('version');\n const navigate = useNavigate();\n\n const handleSelect = useCallback(\n (selected: Composition) => {\n onSelect && onSelect(selected);\n if (selected === active) return;\n setTimestamp(0);\n },\n [onSelect, active, setTimestamp]\n );\n\n const onCompositionCodeClicked = useCallback(\n (composition: Composition) => (e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n setTimestamp(0);\n const queryParams = new URLSearchParams();\n if (versionFromQueryParams) {\n queryParams.set('version', versionFromQueryParams);\n }\n const basePath = location?.pathname.split('/~compositions')[0];\n navigate(`${basePath}/~code/${composition.filepath}?${queryParams.toString()}#search=${composition.identifier}`);\n },\n [location?.pathname, navigate, setTimestamp, versionFromQueryParams]\n );\n\n return (\n <div className={styles.container}>\n <ul {...rest} className={classNames(styles.compositionsList, className)}>\n {compositions.map((composition) => {\n const href = shouldAddNameParam\n ? `${url}&name=${composition.identifier}`\n : `${url}&${composition.identifier}`;\n return (\n <li\n key={composition.identifier}\n className={classNames(styles.compositionItem, composition === active && styles.active)}\n >\n <a className={styles.panelLink} onClick={() => handleSelect(composition)}>\n <span className={styles.compositionDot} />\n <span className={styles.name}>{composition.displayName}</span>\n </a>\n <div className={styles.itemActions}>\n <MenuWidgetIcon\n className={styles.actionIcon}\n icon=\"Code\"\n tooltipContent=\"View source\"\n onClick={onCompositionCodeClicked(composition)}\n />\n <Tooltip content=\"Open in new tab\" placement=\"bottom\">\n <a\n className={classNames(styles.actionIcon, styles.iconLink)}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={href}\n >\n <Icon of=\"open-tab\" />\n </a>\n </Tooltip>\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,130 +6,74 @@
6
6
  height: 100%;
7
7
  }
8
8
 
9
- .tab {
10
- color: var(--on-background-color);
11
-
12
- > div:first-child {
13
- border: none;
14
- border-bottom: 1px solid var(--bit-border-color-lightest, #ededed);
15
-
16
- &:hover {
17
- background: var(--surface-hover-color, #f6f6f6);
18
- }
19
- }
20
-
21
- > div:last-child {
22
- border-bottom: 1px solid var(--bit-border-color-lightest, #ededed);
23
- }
9
+ // ─── Compositions list ──────────────────────────────────────────────────
10
+ .compositionsList {
11
+ flex: 1 1 auto;
12
+ overflow-y: auto;
13
+ padding: 4px 0;
24
14
  }
25
15
 
26
- .linkWrapper {
27
- padding: 0 12px;
16
+ .compositionItem {
17
+ padding: 0 6px;
18
+ margin: 1px 6px;
28
19
  display: flex;
29
20
  align-items: center;
30
21
  justify-content: space-between;
31
- height: 40px;
32
- font-size: var(--bit-p-xs);
33
- transition: all 300ms ease-in-out;
34
- color: var(--on-background-color);
22
+ height: 34px;
23
+ border-radius: 6px;
24
+ font-size: 13px;
25
+ transition: all 140ms ease;
26
+ color: var(--on-background-color, #1c2024);
35
27
  position: relative;
36
28
 
37
29
  &:hover {
38
- background-color: var(--border-medium-color, #ededed);
39
- // border-radius: 8px;
40
- transition: background-color 300ms ease-in-out;
30
+ background: var(--surface-hover-color, rgba(0, 0, 0, 0.04));
41
31
 
42
32
  .panelLink {
43
33
  padding-right: 40px;
44
34
  }
45
35
 
46
- .right {
36
+ .itemActions {
47
37
  visibility: visible;
48
38
  opacity: 1;
49
- color: var(--bit-text-color-light, #6c707c);
50
- transition: opacity 100ms ease-in-out;
51
-
52
- .icon {
53
- &:hover {
54
- color: var(--bit-text-color-heavy);
55
- }
56
- }
57
39
  }
58
40
  }
59
41
 
60
42
  &.active {
61
- display: flex;
62
- align-items: center;
63
- background-color: var(--bit-accent-color, #6c5ce7);
64
- color: var(--bit-bg-color, #ffffff);
43
+ background: var(--bit-accent-color, #6c5ce7);
44
+ color: #ffffff;
45
+ font-weight: 500;
65
46
 
66
- // overrides
67
47
  &:hover {
68
- background-color: #5d4aec;
69
- }
70
-
71
- .box {
72
- background-color: var(--bit-bg-color, #ffffff);
48
+ background: color-mix(in srgb, var(--bit-accent-color, #6c5ce7) 88%, #000);
73
49
  }
74
50
 
75
- .right {
76
- // visibility: unset;
51
+ .itemActions {
77
52
  opacity: 1;
78
- color: var(--bit-accent-bg, #eceaff);
53
+ visibility: visible;
54
+ color: rgba(255, 255, 255, 0.7);
79
55
 
80
- .icon {
81
- &:hover {
82
- color: var(--bit-bg-color, #ffffff);
83
- }
56
+ .actionIcon:hover {
57
+ color: #ffffff;
84
58
  }
85
59
  }
86
- }
87
60
 
88
- .right {
89
- position: absolute;
90
- right: 12px;
91
- top: 50%;
92
- transform: translateY(-50%);
93
- display: flex;
94
- gap: 12px;
95
- align-items: center;
96
- justify-content: center;
97
- opacity: 0;
98
- visibility: hidden;
99
- font-size: 13px;
100
- transition:
101
- opacity 100ms ease-in-out,
102
- visibility 0s linear 100ms;
103
- }
104
-
105
- .codeLink {
106
- cursor: pointer;
61
+ .compositionDot {
62
+ background: rgba(255, 255, 255, 0.5);
63
+ }
107
64
  }
108
65
  }
109
66
 
110
- .box {
111
- width: 10px;
112
- height: 10px;
67
+ .compositionDot {
68
+ width: 5px;
69
+ height: 5px;
70
+ border-radius: 50%;
71
+ background: var(--bit-accent-color, #6c5ce7);
72
+ opacity: 0.4;
113
73
  flex-shrink: 0;
114
- background-color: var(--bit-text-color-heavy);
115
- margin-right: 11px;
116
- border-radius: 1px;
117
- }
118
-
119
- .name {
120
- overflow: hidden;
121
- text-overflow: ellipsis;
122
- white-space: nowrap;
123
74
  margin-right: 8px;
124
75
  }
125
76
 
126
- .iconLink {
127
- display: flex;
128
- align-items: center;
129
- color: inherit;
130
- text-decoration: none;
131
- }
132
-
133
77
  .panelLink {
134
78
  display: flex;
135
79
  align-items: center;
@@ -140,51 +84,59 @@
140
84
  text-decoration: none;
141
85
  color: inherit;
142
86
  min-width: 0;
143
- transition: padding-right 200ms ease-in-out;
87
+ transition: padding-right 140ms ease;
144
88
 
145
89
  &:active {
146
90
  color: inherit;
147
91
  }
148
92
  }
149
93
 
150
- .noLiveControls {
151
- padding: 12px;
94
+ .name {
95
+ overflow: hidden;
96
+ text-overflow: ellipsis;
97
+ white-space: nowrap;
152
98
  }
153
99
 
154
- .tabs {
100
+ .itemActions {
101
+ position: absolute;
102
+ right: 8px;
103
+ top: 50%;
104
+ transform: translateY(-50%);
155
105
  display: flex;
106
+ gap: 6px;
156
107
  align-items: center;
157
- margin-bottom: 17px;
158
-
159
- > div {
160
- position: relative;
161
- padding: 8px;
162
- text-transform: uppercase;
163
- font-size: 12px;
164
- font-weight: bold;
108
+ opacity: 0;
109
+ visibility: hidden;
110
+ transition: opacity 100ms ease;
111
+ }
165
112
 
166
- &:not(:first-child) {
167
- color: #878c9a;
168
- }
113
+ .actionIcon {
114
+ display: flex;
115
+ align-items: center;
116
+ justify-content: center;
117
+ width: 22px;
118
+ height: 22px;
119
+ border-radius: 4px;
120
+ color: var(--bit-text-color-light, #8b8d98);
121
+ cursor: pointer;
122
+ transition: all 100ms ease;
123
+ text-decoration: none;
124
+ font-size: 12px;
169
125
 
170
- &:first-child {
171
- &:before {
172
- content: '';
173
- position: absolute;
174
- top: 0;
175
- left: 0;
176
- right: 0;
177
- background-color: var(--bit-accent-color, #6c5ce7);
178
- height: 3px;
179
- border-radius: 10px;
180
- transition:
181
- background-color 300ms,
182
- height 300ms;
183
- }
184
- }
126
+ &:hover {
127
+ color: var(--bit-text-color-heavy, #1c2024);
128
+ background: rgba(0, 0, 0, 0.06);
185
129
  }
186
130
  }
187
131
 
132
+ .iconLink {
133
+ display: flex;
134
+ align-items: center;
135
+ color: inherit;
136
+ text-decoration: none;
137
+ }
138
+
139
+ // ─── Legacy compat ──────────────────────────────────────────────────────
188
140
  .liveControlsSkeleton {
189
141
  padding: 12px 16px;
190
142
  display: flex;
@@ -30,13 +30,26 @@
30
30
  .wrapper :global(textarea) {
31
31
  min-height: 78px;
32
32
  resize: vertical;
33
+ border-radius: 6px;
34
+ border: 1px solid var(--bit-border-color-lightest, #dcdde1);
35
+ font-size: 13px;
36
+ padding: 8px 10px;
37
+ transition:
38
+ border-color 140ms ease,
39
+ box-shadow 140ms ease;
40
+
41
+ &:focus {
42
+ outline: none;
43
+ border-color: var(--bit-accent-color, #6c5ce7);
44
+ box-shadow: 0 0 0 2px rgba(108, 92, 231, 0.12);
45
+ }
33
46
  }
34
47
 
35
48
  .toggleWrapper {
36
49
  display: flex;
37
50
  align-items: center;
38
51
  justify-content: flex-start;
39
- min-height: 36px;
52
+ min-height: 34px;
40
53
  }
41
54
 
42
55
  .toggleControl {
@@ -51,53 +64,87 @@
51
64
 
52
65
  .rangeWrapper {
53
66
  display: flex;
54
- flex-direction: column;
55
- gap: 6px;
56
- padding-top: 4px;
67
+ align-items: center;
68
+ gap: 10px;
69
+ padding: 2px 0;
57
70
  }
58
71
 
59
72
  .rangeInput {
60
- width: 100%;
73
+ flex: 1;
61
74
  margin: 0;
62
- accent-color: var(--primary-color, #6a57fd);
75
+ height: 4px;
76
+ accent-color: var(--bit-accent-color, #6c5ce7);
77
+ cursor: pointer;
78
+
79
+ &::-webkit-slider-runnable-track {
80
+ height: 4px;
81
+ border-radius: 2px;
82
+ background: var(--bit-border-color-lightest, #dcdde1);
83
+ }
84
+
85
+ &::-webkit-slider-thumb {
86
+ width: 14px;
87
+ height: 14px;
88
+ border-radius: 50%;
89
+ background: var(--bit-accent-color, #6c5ce7);
90
+ border: 2px solid white;
91
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
92
+ margin-top: -5px;
93
+ -webkit-appearance: none;
94
+ cursor: pointer;
95
+ transition: transform 100ms ease;
96
+ }
97
+
98
+ &::-webkit-slider-thumb:hover {
99
+ transform: scale(1.15);
100
+ }
63
101
  }
64
102
 
65
103
  .rangeValue {
66
- font-size: var(--bit-p-xs, 13px);
67
- line-height: 1.2;
68
- color: var(--on-background-color, #222222);
69
- opacity: 0.85;
104
+ font-size: 12px;
105
+ font-weight: 600;
106
+ color: var(--on-background-color, #1c2024);
107
+ min-width: 32px;
108
+ text-align: right;
109
+ font-variant-numeric: tabular-nums;
110
+ background: var(--bit-border-color-lightest, rgba(0, 0, 0, 0.04));
111
+ padding: 2px 6px;
112
+ border-radius: 4px;
70
113
  }
71
114
 
72
115
  .multiSelect {
73
116
  width: 100%;
74
- min-height: 112px;
117
+ min-height: 80px;
75
118
  padding: 6px 8px;
76
- border: 1px solid var(--border-medium-color, rgba(0, 0, 0, 0.16));
77
- border-radius: 8px;
119
+ border: 1px solid var(--bit-border-color-lightest, #dcdde1);
120
+ border-radius: 6px;
78
121
  background: var(--surface-neutral-color, #ffffff);
79
- color: var(--on-background-color, #222222);
122
+ color: var(--on-background-color, #1c2024);
80
123
  font: inherit;
81
- line-height: 1.35;
124
+ font-size: 13px;
125
+ line-height: 1.5;
82
126
  box-sizing: border-box;
83
- scrollbar-gutter: stable;
127
+ transition:
128
+ border-color 140ms ease,
129
+ box-shadow 140ms ease;
84
130
  }
85
131
 
86
132
  .multiSelect:focus {
87
133
  outline: none;
88
- border-color: var(--primary-color, #6a57fd);
89
- box-shadow: 0 0 0 2px rgba(106, 87, 253, 0.18);
134
+ border-color: var(--bit-accent-color, #6c5ce7);
135
+ box-shadow: 0 0 0 2px rgba(108, 92, 231, 0.12);
90
136
  }
91
137
 
92
138
  .multiSelect option {
93
139
  padding: 4px 6px;
94
- color: var(--on-background-color, #222222);
140
+ border-radius: 4px;
141
+ color: var(--on-background-color, #1c2024);
95
142
  }
96
143
 
97
144
  .multiSelect option:checked,
98
145
  .multiSelect option:hover {
99
- background: var(--surface-hover-color, #edebfc);
100
- color: var(--on-surface-color, #2b2b2b);
146
+ background: rgba(108, 92, 231, 0.08);
147
+ color: var(--on-surface-color, #1c2024);
101
148
  }
102
149
 
103
150
  .portalMenu {
@@ -113,9 +160,19 @@
113
160
 
114
161
  .portalMenuItem {
115
162
  cursor: pointer;
116
- font-family: 'CircularPro', 'Gill Sans', 'Gill Sans MT', 'Helvetica Neue', Helvetica, Arial, sans-serif;
163
+ font-size: 13px;
117
164
  }
118
165
 
119
166
  .inputText {
120
167
  padding-top: 0px !important;
168
+ border-radius: 6px !important;
169
+ font-size: 13px !important;
170
+ transition:
171
+ border-color 140ms ease,
172
+ box-shadow 140ms ease !important;
173
+
174
+ &:focus {
175
+ border-color: var(--bit-accent-color, #6c5ce7) !important;
176
+ box-shadow: 0 0 0 2px rgba(108, 92, 231, 0.12) !important;
177
+ }
121
178
  }
@@ -1,16 +1,38 @@
1
1
  .container {
2
- display: flex;
3
- flex-direction: column;
4
- font-size: 12px;
5
- padding: 8px 0;
2
+ display: grid;
3
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
4
+ gap: 2px 0;
5
+ font-size: 13px;
6
+ padding: 0;
6
7
  width: 100%;
7
8
  }
8
9
 
9
10
  .item {
10
- padding: 4px 8px;
11
+ padding: 8px 14px;
12
+ border-right: 1px solid var(--bit-border-color-lightest, rgba(0, 0, 0, 0.05));
13
+ border-bottom: 1px solid var(--bit-border-color-lightest, rgba(0, 0, 0, 0.05));
14
+ transition: background 120ms ease;
15
+ min-width: 0;
16
+
17
+ &:hover {
18
+ background: rgba(0, 0, 0, 0.015);
19
+ }
11
20
  }
12
21
 
13
22
  .label {
14
- font-weight: bold;
15
- color: var(--on-background-color);
23
+ display: flex;
24
+ align-items: center;
25
+ gap: 6px;
26
+ margin-bottom: 6px;
27
+
28
+ label {
29
+ font-size: 11px;
30
+ font-weight: 600;
31
+ letter-spacing: 0.3px;
32
+ text-transform: uppercase;
33
+ color: var(--bit-text-color-light, #8b8d98);
34
+ overflow: hidden;
35
+ text-overflow: ellipsis;
36
+ white-space: nowrap;
37
+ }
16
38
  }
@@ -30,21 +30,20 @@
30
30
  }
31
31
 
32
32
  .columnHeader {
33
- font-size: var(--bit-p-xxs, 12px);
33
+ font-size: 11px;
34
34
  font-weight: 600;
35
35
  text-transform: uppercase;
36
36
  letter-spacing: 0.5px;
37
37
  line-height: 1.3;
38
- color: var(--on-background-color, #222222);
39
- opacity: 0.5;
38
+ color: var(--bit-text-color-light, #8b8d98);
40
39
  margin-bottom: 12px;
41
40
  padding-bottom: 8px;
42
- border-bottom: 1px solid var(--border-color, rgba(0, 0, 0, 0.08));
41
+ border-bottom: 1px solid var(--bit-border-color-lightest, rgba(0, 0, 0, 0.06));
43
42
  }
44
43
 
45
44
  .columnDivider {
46
45
  width: 1px;
47
- background: var(--border-medium-color, rgba(0, 0, 0, 0.14));
46
+ background: var(--bit-border-color-lightest, rgba(0, 0, 0, 0.08));
48
47
  flex-shrink: 0;
49
48
  margin: 0 8px;
50
49
  }
@@ -54,7 +53,7 @@
54
53
  margin: 0;
55
54
  padding: 0;
56
55
  display: grid;
57
- grid-template-columns: repeat(2, minmax(0, 1fr));
56
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
58
57
  gap: 14px 12px;
59
58
  align-items: start;
60
59
  }
@@ -72,9 +71,9 @@
72
71
 
73
72
  .controlMain {
74
73
  display: grid;
75
- grid-template-rows: auto minmax(36px, auto);
74
+ grid-template-rows: auto minmax(34px, auto);
76
75
  align-content: start;
77
- row-gap: 8px;
76
+ row-gap: 6px;
78
77
  flex: 1;
79
78
  min-width: 0;
80
79
  }
@@ -91,33 +90,35 @@
91
90
  min-height: 20px;
92
91
 
93
92
  label {
94
- font-size: var(--bit-p-xs, 13px);
95
- font-weight: 500;
96
- color: var(--on-background-color, #222222);
93
+ font-size: 11px;
94
+ font-weight: 600;
95
+ letter-spacing: 0.3px;
96
+ text-transform: uppercase;
97
+ color: var(--bit-text-color-light, #8b8d98);
97
98
  }
98
99
  }
99
100
 
100
101
  .sourceTag {
101
102
  font-size: 10px;
102
103
  line-height: 14px;
103
- padding: 0 5px;
104
- border-radius: 999px;
104
+ padding: 1px 5px;
105
+ border-radius: 3px;
105
106
  text-transform: capitalize;
106
107
  font-weight: 500;
107
108
  }
108
109
 
109
110
  .tagCommon {
110
- background: rgba(106, 87, 253, 0.12);
111
- color: var(--primary-color, #6a57fd);
111
+ background: rgba(108, 92, 231, 0.08);
112
+ color: var(--bit-accent-color, #6c5ce7);
112
113
  }
113
114
 
114
115
  .tagBase {
115
- background: rgba(255, 152, 0, 0.12);
116
+ background: rgba(255, 152, 0, 0.08);
116
117
  color: #e65100;
117
118
  }
118
119
 
119
120
  .tagCompare {
120
- background: rgba(33, 150, 243, 0.12);
121
+ background: rgba(33, 150, 243, 0.08);
121
122
  color: #1565c0;
122
123
  }
123
124
 
@@ -129,9 +130,9 @@
129
130
  color: var(--skeleton-color, #e0e0e0);
130
131
  }
131
132
 
132
- @media (max-width: 1200px) {
133
+ @media (max-width: 900px) {
133
134
  .column {
134
- min-width: 280px;
135
+ min-width: 240px;
135
136
  }
136
137
 
137
138
  .controlsList {
@@ -142,19 +143,18 @@
142
143
 
143
144
  .emptyState {
144
145
  display: flex;
146
+ flex-direction: column;
145
147
  align-items: center;
146
- gap: 12px;
147
- padding: 12px;
148
- border: 1px dashed var(--border-medium-color, rgba(0, 0, 0, 0.12));
149
- border-radius: 8px;
150
- background: var(--background-color, #ffffff);
148
+ gap: 8px;
149
+ padding: 32px 16px;
150
+ text-align: center;
151
151
  }
152
152
 
153
153
  .emptyStateIconWrap {
154
- width: 32px;
155
- height: 32px;
156
- border-radius: 8px;
157
- background: rgba(0, 0, 0, 0.04);
154
+ width: 36px;
155
+ height: 36px;
156
+ border-radius: 10px;
157
+ background: var(--bit-border-color-lightest, rgba(0, 0, 0, 0.04));
158
158
  display: flex;
159
159
  align-items: center;
160
160
  justify-content: center;
@@ -163,7 +163,7 @@
163
163
  .emptyStateIcon {
164
164
  width: 18px;
165
165
  height: 18px;
166
- opacity: 0.7;
166
+ color: var(--bit-text-color-light, #8b8d98);
167
167
  }
168
168
 
169
169
  .emptyStateText {
@@ -173,13 +173,13 @@
173
173
  }
174
174
 
175
175
  .emptyStateTitle {
176
- font-size: var(--bit-p-xs, 13px);
176
+ font-size: 12px;
177
177
  font-weight: 600;
178
- color: var(--on-background-color, #222222);
178
+ color: var(--on-background-color, #1c2024);
179
179
  }
180
180
 
181
181
  .emptyStateSubtitle {
182
- font-size: var(--bit-p-xxs, 12px);
183
- color: var(--on-background-color, #222222);
184
- opacity: 0.7;
182
+ font-size: 12px;
183
+ color: var(--bit-text-color-light, #8b8d98);
184
+ line-height: 1.5;
185
185
  }