@teambit/component 1.0.1117 → 1.0.1126

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,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.1117/dist/component.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.1117/dist/component.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.1126/dist/component.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_component@1.0.1126/dist/component.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -207,7 +207,7 @@ function ComponentMenu({
207
207
  return /*#__PURE__*/_react().default.createElement(_reactRouterDom().Routes, null, /*#__PURE__*/_react().default.createElement(_reactRouterDom().Route, {
208
208
  path: `${resolvedComponentIdStr}/*`,
209
209
  element: /*#__PURE__*/_react().default.createElement("div", {
210
- className: (0, _classnames().default)(_menuModule().default.topBar, className)
210
+ className: (0, _classnames().default)(_menuModule().default.topBar, isMinimal && _menuModule().default.topBarMinimal, className)
211
211
  }, /*#__PURE__*/_react().default.createElement("div", {
212
212
  className: _menuModule().default.leftSide
213
213
  }, /*#__PURE__*/_react().default.createElement(_menuNav().CollapsibleMenuNav, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_classnames","_interopRequireDefault","_uiFoundationUiReactRouter","_lodash","semver","_componentUi","_uiFoundationUi","_componentId","_baseReactNavigation","_uiFoundationUiUseBox","_lanesHooks","_uiFoundationUiUseBox2","_workspaceUi","_useComponent","_menuNav","_useComponentFromLocation","_topBarNav","_menuModule","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","getComponentIdStr","componentIdStr","isFunction","ComponentMenu","navigationSlot","widgetSlot","className","host","hostFromProps","menuItemSlot","consumeMethodSlot","rightSideMenuSlot","skipRightSide","RightNode","useComponent","path","useComponentFilters","authToken","pinnedWidgetSlot","isMinimal","useWorkspaceMode","idFromLocation","useIdFromLocation","componentIdStrWithScopeFromLocation","undefined","_componentIdStr","componentId","ComponentID","fromString","resolvedComponentIdStr","mainMenuItems","useMemo","groupBy","flatten","values","rightSideItems","orderBy","pinnedWidgets","toArray","sort","sortFn","map","pinnedWidget","componentFilters","query","useQuery","componentVersion","useComponentVersions","defaultLoadVersions","toString","RightSide","createElement","styles","rightSide","Fragment","VersionRelatedDropdowns","consumeMethods","item","MainDropdown","hideOnMobile","menuItems","Routes","Route","element","classnames","topBar","leftSide","CollapsibleMenuNav","PinnedWidgetComponent","key","order","props","loadingFromProps","React","useCallback","_props","skip","initialLoad","fetchOptions","logFilters","log","limit","customUseComponent","component","loading","loadingComponent","componentLogs","useComponentQuery","logs","snaps","tag","snap","version","hash","tags","tagLookup","Map","compact","reverse","id","packageName","latestVersion","latest","currentVersion","buildStatus","defaultLoadCurrentVersion","_version","isTag","valid","find","exports","updatedPropsWithDefaults","useLanes","defaultUseLanes","dropdownOptions","showVersionDetails","loadVersion","_currentVersion","location","useLocation","lanesModel","lanes","getLanesByComponentId","lane","isDefault","viewedLane","isWorkspace","isNew","localVersion","isViewingCurrentLane","search","includes","consumeMethodProps","options","disableInstall","methods","useConsumeMethods","hasMethods","UseBoxDropdown","position","useBox","dropClass","useBoxContainer","Menu","componentName","name","VersionDropdown","hasMoreVersions","useCurrentVersionLog","currentLane","versionDropdown","menuClassName","componentVersionMenuWorkspace","componentVersionMenu","getActiveTabIndex","consumePluginProps","method","x","Component","Title","first","second","menuItemProps","TopBarNav","style","height","children"],"sources":["menu.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useMemo } from 'react';\nimport { Routes, Route } from 'react-router-dom';\nimport classnames from 'classnames';\nimport { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';\nimport { compact, flatten, groupBy, isFunction, orderBy } from 'lodash';\nimport * as semver from 'semver';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport type { DropdownComponentVersion, GetActiveTabIndex } from '@teambit/component.ui.version-dropdown';\nimport { VersionDropdown } from '@teambit/component.ui.version-dropdown';\nimport type { MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { MainDropdown } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { ComponentID } from '@teambit/component-id';\nimport type { ConsumeMethod } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { useLocation } from '@teambit/base-react.navigation.link';\nimport { UseBoxDropdown } from '@teambit/ui-foundation.ui.use-box.dropdown';\nimport { useLanes as defaultUseLanes } from '@teambit/lanes.hooks.use-lanes';\nimport type { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { Menu as ConsumeMethodsMenu } from '@teambit/ui-foundation.ui.use-box.menu';\nimport type { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport type { UseComponentType, Filters } from '../use-component';\nimport { useComponent as useComponentQuery } from '../use-component';\nimport { CollapsibleMenuNav } from './menu-nav';\nimport type {\n OrderedNavigationSlot,\n ConsumeMethodSlot,\n ConsumePluginProps,\n NavPlugin,\n NavPluginProps,\n} from './nav-plugin';\nimport { useIdFromLocation } from '../use-component-from-location';\nimport { TopBarNav } from '../top-bar-nav';\n\nimport styles from './menu.module.scss';\n\nexport type RightSideMenuItem = { item: ReactNode; order: number };\nexport type RightSideMenuSlot = SlotRegistry<RightSideMenuItem[]>;\n\nexport type MenuProps = {\n className?: string;\n /**\n * skip the right side.\n */\n skipRightSide?: boolean;\n /**\n * custom render the right side\n */\n RightNode?: React.ReactNode;\n /**\n * slot for top bar menu nav items\n */\n navigationSlot: OrderedNavigationSlot;\n /**\n * right side navigation menu item slot\n */\n widgetSlot: OrderedNavigationSlot;\n /**\n * pinned widgets slots - right side of the widget slot\n */\n pinnedWidgetSlot: OrderedNavigationSlot;\n /**\n * right side menu item slot\n */\n rightSideMenuSlot: RightSideMenuSlot;\n /**\n * workspace or scope\n */\n host: string;\n /**\n * main dropdown item slot\n */\n menuItemSlot: MenuItemSlot;\n\n consumeMethodSlot: ConsumeMethodSlot;\n\n componentIdStr?: string | (() => string | undefined);\n\n useComponent?: UseComponentType;\n\n useComponentFilters?: () => Filters;\n\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n\n path?: string;\n\n authToken?: string;\n};\nfunction getComponentIdStr(componentIdStr?: string | (() => string | undefined)): string | undefined {\n if (isFunction(componentIdStr)) return componentIdStr();\n return componentIdStr;\n}\n/**\n * top bar menu.\n */\nexport function ComponentMenu({\n navigationSlot,\n widgetSlot,\n className,\n host: hostFromProps,\n menuItemSlot,\n consumeMethodSlot,\n rightSideMenuSlot,\n componentIdStr,\n skipRightSide,\n RightNode,\n useComponent,\n path,\n useComponentFilters,\n authToken,\n pinnedWidgetSlot,\n}: MenuProps) {\n const { isMinimal } = useWorkspaceMode();\n const idFromLocation = useIdFromLocation();\n const componentIdStrWithScopeFromLocation = useIdFromLocation(undefined, true);\n const _componentIdStr = getComponentIdStr(componentIdStr);\n const componentId = _componentIdStr ? ComponentID.fromString(_componentIdStr) : undefined;\n const resolvedComponentIdStr = path || idFromLocation;\n const mainMenuItems = useMemo(() => groupBy(flatten(menuItemSlot.values()), 'category'), [menuItemSlot]);\n const rightSideItems = useMemo(() => orderBy(flatten(rightSideMenuSlot.values()), 'order'), [rightSideMenuSlot]);\n const pinnedWidgets = useMemo(\n () =>\n flatten(\n pinnedWidgetSlot\n .toArray()\n .sort(sortFn)\n .map(([, pinnedWidget]) => pinnedWidget)\n ),\n [pinnedWidgetSlot]\n );\n const componentFilters = useComponentFilters?.() || {};\n const query = useQuery();\n const componentVersion = query.get('version');\n const host = componentVersion ? 'teambit.scope/scope' : hostFromProps;\n\n const useComponentVersions = defaultLoadVersions(\n host,\n componentId?.toString() || componentIdStrWithScopeFromLocation,\n componentFilters,\n useComponent\n );\n\n const RightSide = (\n <div className={styles.rightSide}>\n {RightNode || (\n <>\n <VersionRelatedDropdowns\n host={hostFromProps}\n consumeMethods={consumeMethodSlot}\n componentId={componentId?.toString() || idFromLocation}\n useComponent={useComponentVersions}\n componentFilters={componentFilters}\n authToken={authToken}\n // loading={loading}\n />\n {rightSideItems.map(({ item }) => item)}\n {!isMinimal && <MainDropdown className={styles.hideOnMobile} menuItems={mainMenuItems} />}\n </>\n )}\n </div>\n );\n\n return (\n <Routes>\n <Route\n path={`${resolvedComponentIdStr}/*`}\n element={\n <div className={classnames(styles.topBar, className)}>\n <div className={styles.leftSide}>\n <CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />\n </div>\n {isMinimal &&\n pinnedWidgets.map((pinnedWidget) => (\n <PinnedWidgetComponent key={`key-${pinnedWidget.order}`} {...pinnedWidget.props} />\n ))}\n {!skipRightSide && <div className={styles.rightSide}>{RightSide}</div>}\n </div>\n }\n />\n </Routes>\n );\n}\n\nexport type VersionRelatedDropdownsProps = {\n componentId?: string;\n consumeMethods?: ConsumeMethodSlot;\n componentFilters?: Filters;\n useComponent?: UseComponentVersions;\n className?: string;\n loading?: boolean;\n host: string;\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n dropdownOptions?: {\n showVersionDetails?: boolean;\n getActiveTabIndex?: GetActiveTabIndex;\n };\n authToken?: string;\n};\nexport type UseComponentVersionsProps = {\n skip?: boolean;\n id?: string;\n initialLoad?: boolean;\n};\nexport type UseComponentVersionProps = {\n skip?: boolean;\n version?: string;\n};\nexport type UseComponentVersions = (props?: UseComponentVersionsProps) => UseComponentVersionsResult;\nexport type UseComponentVersion = (props?: UseComponentVersionProps) => DropdownComponentVersion | undefined;\nexport type UseComponentVersionsResult = {\n tags?: DropdownComponentVersion[];\n snaps?: DropdownComponentVersion[];\n id?: ComponentID;\n packageName?: string;\n latest?: string;\n currentVersion?: string;\n loading?: boolean;\n};\n\nexport function defaultLoadVersions(\n host: string,\n componentId?: string,\n componentFilters: Filters = {},\n useComponent?: UseComponentType,\n loadingFromProps?: boolean\n): UseComponentVersions {\n return React.useCallback(\n (_props) => {\n const { skip, initialLoad } = _props || {};\n const fetchOptions = {\n logFilters: {\n ...componentFilters,\n log: {\n ...componentFilters.log,\n limit: initialLoad ? 3 : undefined,\n },\n },\n skip: loadingFromProps || skip,\n customUseComponent: useComponent,\n };\n const {\n component,\n loading: loadingComponent,\n componentLogs = {},\n } = useComponentQuery(host, componentId, fetchOptions);\n const logs = componentLogs?.logs;\n const loading = React.useMemo(\n () => loadingComponent || loadingFromProps || componentLogs.loading,\n [loadingComponent, loadingFromProps, componentLogs.loading]\n );\n\n const snaps = useMemo(() => {\n return (logs || []).filter((log) => !log.tag).map((snap) => ({ ...snap, version: snap.hash }));\n }, [logs]);\n\n const tags = useMemo(() => {\n const tagLookup = new Map<string, LegacyComponentLog>();\n (logs || [])\n .filter((log) => log.tag)\n .forEach((tag) => {\n tagLookup.set(tag?.tag as string, tag);\n });\n return compact(\n (component?.tags?.toArray() || []).reverse().map((tag) => tagLookup.get(tag.version.version))\n ).map((tag) => ({ ...tag, version: tag.tag as string }));\n }, [logs]);\n\n return {\n loading,\n id: component?.id,\n packageName: component?.packageName,\n latestVersion: component?.latest,\n currentVersion: component?.version,\n snaps,\n tags,\n buildStatus: component?.buildStatus,\n };\n },\n [componentId, loadingFromProps, componentFilters, host]\n );\n}\n\nexport const defaultLoadCurrentVersion: (props: VersionRelatedDropdownsProps) => UseComponentVersion = (props) => {\n return (_props) => {\n const { skip, version: _version } = _props || {};\n const { snaps, tags, currentVersion, loading } = props.useComponent?.({ skip, id: props.componentId }) ?? {};\n const version = _version ?? currentVersion;\n const isTag = React.useMemo(() => semver.valid(version), [loading, version]);\n if (isTag) {\n return React.useMemo(() => tags?.find((tag) => tag.tag === version), [loading, tags?.length, version]);\n }\n return React.useMemo(() => snaps?.find((snap) => snap.version === version), [loading, snaps?.length, version]);\n };\n};\n\nexport function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps) {\n const updatedPropsWithDefaults = {\n ...props,\n useLanes: props.useLanes ?? defaultUseLanes,\n dropdownOptions: {\n ...props.dropdownOptions,\n showVersionDetails: props?.dropdownOptions?.showVersionDetails ?? true,\n },\n };\n\n const loadVersion = defaultLoadCurrentVersion(updatedPropsWithDefaults);\n\n const { useLanes, consumeMethods, className, dropdownOptions, host } = updatedPropsWithDefaults;\n const {\n loading,\n id,\n tags,\n snaps,\n latest,\n packageName,\n currentVersion: _currentVersion,\n } = props.useComponent?.({ initialLoad: true }) || {};\n const location = useLocation();\n const { lanesModel } = useLanes();\n const lanes = id ? lanesModel?.getLanesByComponentId(id as any)?.filter((lane) => !lane.id.isDefault()) || [] : [];\n const viewedLane =\n lanesModel?.viewedLane?.id && !lanesModel?.viewedLane?.id.isDefault() ? lanesModel.viewedLane : undefined;\n\n const isWorkspace = host === 'teambit.workspace/workspace';\n\n const isNew = tags?.length === 0 && snaps?.length === 0;\n\n const localVersion = isWorkspace && !isNew && (!viewedLane || lanesModel?.isViewingCurrentLane());\n\n const currentVersion =\n isWorkspace && !isNew && !location?.search.includes('version') ? 'workspace' : (_currentVersion ?? '');\n\n const authToken = props.authToken;\n\n const consumeMethodProps: ConsumePluginProps | undefined = React.useMemo(() => {\n return id\n ? {\n id,\n packageName: packageName ?? '',\n latest,\n options: { viewedLane, disableInstall: !packageName },\n authToken,\n }\n : undefined;\n }, [id, packageName, latest, viewedLane, authToken]);\n const methods = useConsumeMethods(consumeMethods, consumeMethodProps);\n const hasMethods = methods?.length > 0;\n\n return (\n <>\n {consumeMethods && id && hasMethods && (\n <UseBoxDropdown\n position=\"bottom-end\"\n className={classnames(styles.useBox, styles.hideOnMobile)}\n dropClass={styles.useBoxContainer}\n Menu={<ConsumeMethodsMenu methods={methods} componentName={id.name} />}\n />\n )}\n <VersionDropdown\n lanes={lanes}\n loading={loading}\n useComponentVersions={props.useComponent}\n hasMoreVersions={!isNew}\n useCurrentVersionLog={loadVersion}\n localVersion={localVersion}\n currentVersion={currentVersion}\n latestVersion={latest}\n currentLane={viewedLane}\n className={classnames(styles.versionDropdown, className)}\n menuClassName={isWorkspace ? styles.componentVersionMenuWorkspace : styles.componentVersionMenu}\n getActiveTabIndex={dropdownOptions?.getActiveTabIndex}\n showVersionDetails={dropdownOptions?.showVersionDetails}\n />\n </>\n );\n}\n\nfunction useConsumeMethods(\n consumeMethods?: ConsumeMethodSlot,\n consumePluginProps?: ConsumePluginProps\n): ConsumeMethod[] {\n return useMemo(\n () =>\n flatten(consumeMethods?.values())\n .map((method) => {\n if (!consumePluginProps) return undefined;\n return method?.(consumePluginProps);\n })\n .filter((x) => !!x && x.Component && x.Title) as ConsumeMethod[],\n [consumeMethods, consumePluginProps]\n );\n}\n\nfunction sortFn([, { order: first }]: [string, NavPlugin], [, { order: second }]: [string, NavPlugin]) {\n return (first ?? 0) - (second ?? 0);\n}\n\nfunction PinnedWidgetComponent(menuItemProps: NavPluginProps) {\n return (\n <TopBarNav\n {...menuItemProps}\n style={{ ...menuItemProps.style, height: '100%' }}\n className={classnames(menuItemProps?.className)}\n >\n {menuItemProps?.children}\n </TopBarNav>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_classnames","_interopRequireDefault","_uiFoundationUiReactRouter","_lodash","semver","_componentUi","_uiFoundationUi","_componentId","_baseReactNavigation","_uiFoundationUiUseBox","_lanesHooks","_uiFoundationUiUseBox2","_workspaceUi","_useComponent","_menuNav","_useComponentFromLocation","_topBarNav","_menuModule","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_extends","assign","bind","getComponentIdStr","componentIdStr","isFunction","ComponentMenu","navigationSlot","widgetSlot","className","host","hostFromProps","menuItemSlot","consumeMethodSlot","rightSideMenuSlot","skipRightSide","RightNode","useComponent","path","useComponentFilters","authToken","pinnedWidgetSlot","isMinimal","useWorkspaceMode","idFromLocation","useIdFromLocation","componentIdStrWithScopeFromLocation","undefined","_componentIdStr","componentId","ComponentID","fromString","resolvedComponentIdStr","mainMenuItems","useMemo","groupBy","flatten","values","rightSideItems","orderBy","pinnedWidgets","toArray","sort","sortFn","map","pinnedWidget","componentFilters","query","useQuery","componentVersion","useComponentVersions","defaultLoadVersions","toString","RightSide","createElement","styles","rightSide","Fragment","VersionRelatedDropdowns","consumeMethods","item","MainDropdown","hideOnMobile","menuItems","Routes","Route","element","classnames","topBar","topBarMinimal","leftSide","CollapsibleMenuNav","PinnedWidgetComponent","key","order","props","loadingFromProps","React","useCallback","_props","skip","initialLoad","fetchOptions","logFilters","log","limit","customUseComponent","component","loading","loadingComponent","componentLogs","useComponentQuery","logs","snaps","tag","snap","version","hash","tags","tagLookup","Map","compact","reverse","id","packageName","latestVersion","latest","currentVersion","buildStatus","defaultLoadCurrentVersion","_version","isTag","valid","find","exports","updatedPropsWithDefaults","useLanes","defaultUseLanes","dropdownOptions","showVersionDetails","loadVersion","_currentVersion","location","useLocation","lanesModel","lanes","getLanesByComponentId","lane","isDefault","viewedLane","isWorkspace","isNew","localVersion","isViewingCurrentLane","search","includes","consumeMethodProps","options","disableInstall","methods","useConsumeMethods","hasMethods","UseBoxDropdown","position","useBox","dropClass","useBoxContainer","Menu","componentName","name","VersionDropdown","hasMoreVersions","useCurrentVersionLog","currentLane","versionDropdown","menuClassName","componentVersionMenuWorkspace","componentVersionMenu","getActiveTabIndex","consumePluginProps","method","x","Component","Title","first","second","menuItemProps","TopBarNav","style","height","children"],"sources":["menu.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useMemo } from 'react';\nimport { Routes, Route } from 'react-router-dom';\nimport classnames from 'classnames';\nimport { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';\nimport { compact, flatten, groupBy, isFunction, orderBy } from 'lodash';\nimport * as semver from 'semver';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport type { DropdownComponentVersion, GetActiveTabIndex } from '@teambit/component.ui.version-dropdown';\nimport { VersionDropdown } from '@teambit/component.ui.version-dropdown';\nimport type { MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { MainDropdown } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { ComponentID } from '@teambit/component-id';\nimport type { ConsumeMethod } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { useLocation } from '@teambit/base-react.navigation.link';\nimport { UseBoxDropdown } from '@teambit/ui-foundation.ui.use-box.dropdown';\nimport { useLanes as defaultUseLanes } from '@teambit/lanes.hooks.use-lanes';\nimport type { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { Menu as ConsumeMethodsMenu } from '@teambit/ui-foundation.ui.use-box.menu';\nimport type { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport type { UseComponentType, Filters } from '../use-component';\nimport { useComponent as useComponentQuery } from '../use-component';\nimport { CollapsibleMenuNav } from './menu-nav';\nimport type {\n OrderedNavigationSlot,\n ConsumeMethodSlot,\n ConsumePluginProps,\n NavPlugin,\n NavPluginProps,\n} from './nav-plugin';\nimport { useIdFromLocation } from '../use-component-from-location';\nimport { TopBarNav } from '../top-bar-nav';\n\nimport styles from './menu.module.scss';\n\nexport type RightSideMenuItem = { item: ReactNode; order: number };\nexport type RightSideMenuSlot = SlotRegistry<RightSideMenuItem[]>;\n\nexport type MenuProps = {\n className?: string;\n /**\n * skip the right side.\n */\n skipRightSide?: boolean;\n /**\n * custom render the right side\n */\n RightNode?: React.ReactNode;\n /**\n * slot for top bar menu nav items\n */\n navigationSlot: OrderedNavigationSlot;\n /**\n * right side navigation menu item slot\n */\n widgetSlot: OrderedNavigationSlot;\n /**\n * pinned widgets slots - right side of the widget slot\n */\n pinnedWidgetSlot: OrderedNavigationSlot;\n /**\n * right side menu item slot\n */\n rightSideMenuSlot: RightSideMenuSlot;\n /**\n * workspace or scope\n */\n host: string;\n /**\n * main dropdown item slot\n */\n menuItemSlot: MenuItemSlot;\n\n consumeMethodSlot: ConsumeMethodSlot;\n\n componentIdStr?: string | (() => string | undefined);\n\n useComponent?: UseComponentType;\n\n useComponentFilters?: () => Filters;\n\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n\n path?: string;\n\n authToken?: string;\n};\nfunction getComponentIdStr(componentIdStr?: string | (() => string | undefined)): string | undefined {\n if (isFunction(componentIdStr)) return componentIdStr();\n return componentIdStr;\n}\n/**\n * top bar menu.\n */\nexport function ComponentMenu({\n navigationSlot,\n widgetSlot,\n className,\n host: hostFromProps,\n menuItemSlot,\n consumeMethodSlot,\n rightSideMenuSlot,\n componentIdStr,\n skipRightSide,\n RightNode,\n useComponent,\n path,\n useComponentFilters,\n authToken,\n pinnedWidgetSlot,\n}: MenuProps) {\n const { isMinimal } = useWorkspaceMode();\n const idFromLocation = useIdFromLocation();\n const componentIdStrWithScopeFromLocation = useIdFromLocation(undefined, true);\n const _componentIdStr = getComponentIdStr(componentIdStr);\n const componentId = _componentIdStr ? ComponentID.fromString(_componentIdStr) : undefined;\n const resolvedComponentIdStr = path || idFromLocation;\n const mainMenuItems = useMemo(() => groupBy(flatten(menuItemSlot.values()), 'category'), [menuItemSlot]);\n const rightSideItems = useMemo(() => orderBy(flatten(rightSideMenuSlot.values()), 'order'), [rightSideMenuSlot]);\n const pinnedWidgets = useMemo(\n () =>\n flatten(\n pinnedWidgetSlot\n .toArray()\n .sort(sortFn)\n .map(([, pinnedWidget]) => pinnedWidget)\n ),\n [pinnedWidgetSlot]\n );\n const componentFilters = useComponentFilters?.() || {};\n const query = useQuery();\n const componentVersion = query.get('version');\n const host = componentVersion ? 'teambit.scope/scope' : hostFromProps;\n\n const useComponentVersions = defaultLoadVersions(\n host,\n componentId?.toString() || componentIdStrWithScopeFromLocation,\n componentFilters,\n useComponent\n );\n\n const RightSide = (\n <div className={styles.rightSide}>\n {RightNode || (\n <>\n <VersionRelatedDropdowns\n host={hostFromProps}\n consumeMethods={consumeMethodSlot}\n componentId={componentId?.toString() || idFromLocation}\n useComponent={useComponentVersions}\n componentFilters={componentFilters}\n authToken={authToken}\n // loading={loading}\n />\n {rightSideItems.map(({ item }) => item)}\n {!isMinimal && <MainDropdown className={styles.hideOnMobile} menuItems={mainMenuItems} />}\n </>\n )}\n </div>\n );\n\n return (\n <Routes>\n <Route\n path={`${resolvedComponentIdStr}/*`}\n element={\n <div className={classnames(styles.topBar, isMinimal && styles.topBarMinimal, className)}>\n <div className={styles.leftSide}>\n <CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />\n </div>\n {isMinimal &&\n pinnedWidgets.map((pinnedWidget) => (\n <PinnedWidgetComponent key={`key-${pinnedWidget.order}`} {...pinnedWidget.props} />\n ))}\n {!skipRightSide && <div className={styles.rightSide}>{RightSide}</div>}\n </div>\n }\n />\n </Routes>\n );\n}\n\nexport type VersionRelatedDropdownsProps = {\n componentId?: string;\n consumeMethods?: ConsumeMethodSlot;\n componentFilters?: Filters;\n useComponent?: UseComponentVersions;\n className?: string;\n loading?: boolean;\n host: string;\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n dropdownOptions?: {\n showVersionDetails?: boolean;\n getActiveTabIndex?: GetActiveTabIndex;\n };\n authToken?: string;\n};\nexport type UseComponentVersionsProps = {\n skip?: boolean;\n id?: string;\n initialLoad?: boolean;\n};\nexport type UseComponentVersionProps = {\n skip?: boolean;\n version?: string;\n};\nexport type UseComponentVersions = (props?: UseComponentVersionsProps) => UseComponentVersionsResult;\nexport type UseComponentVersion = (props?: UseComponentVersionProps) => DropdownComponentVersion | undefined;\nexport type UseComponentVersionsResult = {\n tags?: DropdownComponentVersion[];\n snaps?: DropdownComponentVersion[];\n id?: ComponentID;\n packageName?: string;\n latest?: string;\n currentVersion?: string;\n loading?: boolean;\n};\n\nexport function defaultLoadVersions(\n host: string,\n componentId?: string,\n componentFilters: Filters = {},\n useComponent?: UseComponentType,\n loadingFromProps?: boolean\n): UseComponentVersions {\n return React.useCallback(\n (_props) => {\n const { skip, initialLoad } = _props || {};\n const fetchOptions = {\n logFilters: {\n ...componentFilters,\n log: {\n ...componentFilters.log,\n limit: initialLoad ? 3 : undefined,\n },\n },\n skip: loadingFromProps || skip,\n customUseComponent: useComponent,\n };\n const {\n component,\n loading: loadingComponent,\n componentLogs = {},\n } = useComponentQuery(host, componentId, fetchOptions);\n const logs = componentLogs?.logs;\n const loading = React.useMemo(\n () => loadingComponent || loadingFromProps || componentLogs.loading,\n [loadingComponent, loadingFromProps, componentLogs.loading]\n );\n\n const snaps = useMemo(() => {\n return (logs || []).filter((log) => !log.tag).map((snap) => ({ ...snap, version: snap.hash }));\n }, [logs]);\n\n const tags = useMemo(() => {\n const tagLookup = new Map<string, LegacyComponentLog>();\n (logs || [])\n .filter((log) => log.tag)\n .forEach((tag) => {\n tagLookup.set(tag?.tag as string, tag);\n });\n return compact(\n (component?.tags?.toArray() || []).reverse().map((tag) => tagLookup.get(tag.version.version))\n ).map((tag) => ({ ...tag, version: tag.tag as string }));\n }, [logs]);\n\n return {\n loading,\n id: component?.id,\n packageName: component?.packageName,\n latestVersion: component?.latest,\n currentVersion: component?.version,\n snaps,\n tags,\n buildStatus: component?.buildStatus,\n };\n },\n [componentId, loadingFromProps, componentFilters, host]\n );\n}\n\nexport const defaultLoadCurrentVersion: (props: VersionRelatedDropdownsProps) => UseComponentVersion = (props) => {\n return (_props) => {\n const { skip, version: _version } = _props || {};\n const { snaps, tags, currentVersion, loading } = props.useComponent?.({ skip, id: props.componentId }) ?? {};\n const version = _version ?? currentVersion;\n const isTag = React.useMemo(() => semver.valid(version), [loading, version]);\n if (isTag) {\n return React.useMemo(() => tags?.find((tag) => tag.tag === version), [loading, tags?.length, version]);\n }\n return React.useMemo(() => snaps?.find((snap) => snap.version === version), [loading, snaps?.length, version]);\n };\n};\n\nexport function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps) {\n const updatedPropsWithDefaults = {\n ...props,\n useLanes: props.useLanes ?? defaultUseLanes,\n dropdownOptions: {\n ...props.dropdownOptions,\n showVersionDetails: props?.dropdownOptions?.showVersionDetails ?? true,\n },\n };\n\n const loadVersion = defaultLoadCurrentVersion(updatedPropsWithDefaults);\n\n const { useLanes, consumeMethods, className, dropdownOptions, host } = updatedPropsWithDefaults;\n const {\n loading,\n id,\n tags,\n snaps,\n latest,\n packageName,\n currentVersion: _currentVersion,\n } = props.useComponent?.({ initialLoad: true }) || {};\n const location = useLocation();\n const { lanesModel } = useLanes();\n const lanes = id ? lanesModel?.getLanesByComponentId(id as any)?.filter((lane) => !lane.id.isDefault()) || [] : [];\n const viewedLane =\n lanesModel?.viewedLane?.id && !lanesModel?.viewedLane?.id.isDefault() ? lanesModel.viewedLane : undefined;\n\n const isWorkspace = host === 'teambit.workspace/workspace';\n\n const isNew = tags?.length === 0 && snaps?.length === 0;\n\n const localVersion = isWorkspace && !isNew && (!viewedLane || lanesModel?.isViewingCurrentLane());\n\n const currentVersion =\n isWorkspace && !isNew && !location?.search.includes('version') ? 'workspace' : (_currentVersion ?? '');\n\n const authToken = props.authToken;\n\n const consumeMethodProps: ConsumePluginProps | undefined = React.useMemo(() => {\n return id\n ? {\n id,\n packageName: packageName ?? '',\n latest,\n options: { viewedLane, disableInstall: !packageName },\n authToken,\n }\n : undefined;\n }, [id, packageName, latest, viewedLane, authToken]);\n const methods = useConsumeMethods(consumeMethods, consumeMethodProps);\n const hasMethods = methods?.length > 0;\n\n return (\n <>\n {consumeMethods && id && hasMethods && (\n <UseBoxDropdown\n position=\"bottom-end\"\n className={classnames(styles.useBox, styles.hideOnMobile)}\n dropClass={styles.useBoxContainer}\n Menu={<ConsumeMethodsMenu methods={methods} componentName={id.name} />}\n />\n )}\n <VersionDropdown\n lanes={lanes}\n loading={loading}\n useComponentVersions={props.useComponent}\n hasMoreVersions={!isNew}\n useCurrentVersionLog={loadVersion}\n localVersion={localVersion}\n currentVersion={currentVersion}\n latestVersion={latest}\n currentLane={viewedLane}\n className={classnames(styles.versionDropdown, className)}\n menuClassName={isWorkspace ? styles.componentVersionMenuWorkspace : styles.componentVersionMenu}\n getActiveTabIndex={dropdownOptions?.getActiveTabIndex}\n showVersionDetails={dropdownOptions?.showVersionDetails}\n />\n </>\n );\n}\n\nfunction useConsumeMethods(\n consumeMethods?: ConsumeMethodSlot,\n consumePluginProps?: ConsumePluginProps\n): ConsumeMethod[] {\n return useMemo(\n () =>\n flatten(consumeMethods?.values())\n .map((method) => {\n if (!consumePluginProps) return undefined;\n return method?.(consumePluginProps);\n })\n .filter((x) => !!x && x.Component && x.Title) as ConsumeMethod[],\n [consumeMethods, consumePluginProps]\n );\n}\n\nfunction sortFn([, { order: first }]: [string, NavPlugin], [, { order: second }]: [string, NavPlugin]) {\n return (first ?? 0) - (second ?? 0);\n}\n\nfunction PinnedWidgetComponent(menuItemProps: NavPluginProps) {\n return (\n <TopBarNav\n {...menuItemProps}\n style={{ ...menuItemProps.style, height: '100%' }}\n className={classnames(menuItemProps?.className)}\n >\n {menuItemProps?.children}\n </TopBarNav>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -17,6 +17,51 @@
17
17
  min-width: 0;
18
18
  }
19
19
 
20
+ // Minimal mode, mobile: one 46px row can't fit breadcrumb + nav tabs + pinned widgets +
21
+ // version dropdown, and since only the nav can shrink, ResponsiveNavbar collapses every tab
22
+ // (Overview / Preview) into an overflow dropdown that itself gets clipped — leaving no way to
23
+ // reach the preview. `display: contents` promotes this bar's children into the workspace
24
+ // top bar's wrapping flex row (see workspace.module.scss), producing two rows:
25
+ // back + breadcrumb + pinned widgets + right-side actions, then the nav tabs at full width.
26
+ .topBarMinimal {
27
+ @media screen and (max-width: $br-md) {
28
+ display: contents;
29
+
30
+ > .leftSide {
31
+ order: 10;
32
+ flex: 1 0 100%;
33
+ box-sizing: border-box;
34
+ height: 40px;
35
+ overflow-x: auto;
36
+ padding: 0 8px 0 4px;
37
+
38
+ // ResponsiveNavbar hides any tab that doesn't fit its container and reserves extra room
39
+ // for its "…" overflow button. Sizing the nav to its content makes the width check always
40
+ // pass (the row scrolls instead), and the now-useless overflow button is dropped so its
41
+ // reserved width can't hide the last tab.
42
+ nav {
43
+ min-width: max-content;
44
+
45
+ > div:last-child {
46
+ display: none;
47
+ }
48
+ }
49
+ }
50
+
51
+ // the pinned widgets carry an inline `height: 100%`, which in the wrapped two-row bar
52
+ // resolves against the full (two-row) height and inflates the first row until the nav row
53
+ // is pushed outside the bar, over the page content — pin every first-row item to the bar
54
+ // height instead
55
+ > :not(.leftSide) {
56
+ height: 46px !important;
57
+ }
58
+
59
+ > .rightSide {
60
+ margin-left: auto;
61
+ }
62
+ }
63
+ }
64
+
20
65
  .navigation {
21
66
  list-style: none;
22
67
  height: 100%;
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component",
3
- "version": "1.0.1117",
3
+ "version": "1.0.1126",
4
4
  "homepage": "https://bit.cloud/teambit/component/component",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "component",
9
- "version": "1.0.1117"
9
+ "version": "1.0.1126"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/any-fs": "0.0.5",
@@ -36,6 +36,9 @@
36
36
  "@teambit/toolbox.string.capitalize": "0.0.513",
37
37
  "@teambit/harmony": "0.4.12",
38
38
  "@teambit/toolbox.path.path": "0.0.21",
39
+ "@teambit/cli": "0.0.1375",
40
+ "@teambit/express": "0.0.1474",
41
+ "@teambit/logger": "0.0.1468",
39
42
  "@teambit/bit-error": "0.0.404",
40
43
  "@teambit/legacy.constants": "0.0.41",
41
44
  "@teambit/component-package-version": "0.0.460",
@@ -77,21 +80,18 @@
77
80
  "@teambit/lanes.hooks.use-lanes": "0.0.294",
78
81
  "@teambit/lanes.ui.models.lanes-model": "0.0.233",
79
82
  "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.151",
80
- "@teambit/aspect-loader": "1.0.1117",
81
- "@teambit/dependency-resolver": "1.0.1117",
82
- "@teambit/objects": "0.0.624",
83
- "@teambit/graphql": "1.0.1117",
84
- "@teambit/cli": "0.0.1375",
85
- "@teambit/express": "0.0.1474",
86
- "@teambit/logger": "0.0.1468",
87
- "@teambit/command-bar": "1.0.1117",
88
- "@teambit/preview": "1.0.1117",
89
- "@teambit/pubsub": "1.0.1117",
90
- "@teambit/react-router": "1.0.1117",
91
- "@teambit/ui": "1.0.1117",
92
- "@teambit/compositions": "1.0.1117",
93
- "@teambit/deprecation": "1.0.1117",
94
- "@teambit/envs": "1.0.1117"
83
+ "@teambit/aspect-loader": "1.0.1126",
84
+ "@teambit/dependency-resolver": "1.0.1126",
85
+ "@teambit/objects": "0.0.633",
86
+ "@teambit/graphql": "1.0.1126",
87
+ "@teambit/command-bar": "1.0.1126",
88
+ "@teambit/preview": "1.0.1126",
89
+ "@teambit/pubsub": "1.0.1126",
90
+ "@teambit/react-router": "1.0.1126",
91
+ "@teambit/ui": "1.0.1126",
92
+ "@teambit/compositions": "1.0.1126",
93
+ "@teambit/deprecation": "1.0.1126",
94
+ "@teambit/envs": "1.0.1126"
95
95
  },
96
96
  "devDependencies": {
97
97
  "@types/lodash": "4.14.165",
@@ -17,6 +17,51 @@
17
17
  min-width: 0;
18
18
  }
19
19
 
20
+ // Minimal mode, mobile: one 46px row can't fit breadcrumb + nav tabs + pinned widgets +
21
+ // version dropdown, and since only the nav can shrink, ResponsiveNavbar collapses every tab
22
+ // (Overview / Preview) into an overflow dropdown that itself gets clipped — leaving no way to
23
+ // reach the preview. `display: contents` promotes this bar's children into the workspace
24
+ // top bar's wrapping flex row (see workspace.module.scss), producing two rows:
25
+ // back + breadcrumb + pinned widgets + right-side actions, then the nav tabs at full width.
26
+ .topBarMinimal {
27
+ @media screen and (max-width: $br-md) {
28
+ display: contents;
29
+
30
+ > .leftSide {
31
+ order: 10;
32
+ flex: 1 0 100%;
33
+ box-sizing: border-box;
34
+ height: 40px;
35
+ overflow-x: auto;
36
+ padding: 0 8px 0 4px;
37
+
38
+ // ResponsiveNavbar hides any tab that doesn't fit its container and reserves extra room
39
+ // for its "…" overflow button. Sizing the nav to its content makes the width check always
40
+ // pass (the row scrolls instead), and the now-useless overflow button is dropped so its
41
+ // reserved width can't hide the last tab.
42
+ nav {
43
+ min-width: max-content;
44
+
45
+ > div:last-child {
46
+ display: none;
47
+ }
48
+ }
49
+ }
50
+
51
+ // the pinned widgets carry an inline `height: 100%`, which in the wrapped two-row bar
52
+ // resolves against the full (two-row) height and inflates the first row until the nav row
53
+ // is pushed outside the bar, over the page content — pin every first-row item to the bar
54
+ // height instead
55
+ > :not(.leftSide) {
56
+ height: 46px !important;
57
+ }
58
+
59
+ > .rightSide {
60
+ margin-left: auto;
61
+ }
62
+ }
63
+ }
64
+
20
65
  .navigation {
21
66
  list-style: none;
22
67
  height: 100%;
package/ui/menu/menu.tsx CHANGED
@@ -168,7 +168,7 @@ export function ComponentMenu({
168
168
  <Route
169
169
  path={`${resolvedComponentIdStr}/*`}
170
170
  element={
171
- <div className={classnames(styles.topBar, className)}>
171
+ <div className={classnames(styles.topBar, isMinimal && styles.topBarMinimal, className)}>
172
172
  <div className={styles.leftSide}>
173
173
  <CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />
174
174
  </div>