@toptal/picasso-page 5.2.1 → 5.2.3-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.1

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.
Files changed (34) hide show
  1. package/LICENSE +20 -0
  2. package/dist-package/src/PageCompound/index.d.ts +1 -0
  3. package/dist-package/src/PageCompound/index.d.ts.map +1 -1
  4. package/dist-package/src/PageCompound/index.js +2 -0
  5. package/dist-package/src/PageCompound/index.js.map +1 -1
  6. package/dist-package/src/PageTopBarLoader/PageTopBarLoader.d.ts +7 -0
  7. package/dist-package/src/PageTopBarLoader/PageTopBarLoader.d.ts.map +1 -0
  8. package/dist-package/src/PageTopBarLoader/PageTopBarLoader.js +34 -0
  9. package/dist-package/src/PageTopBarLoader/PageTopBarLoader.js.map +1 -0
  10. package/dist-package/src/PageTopBarLoader/index.d.ts +5 -0
  11. package/dist-package/src/PageTopBarLoader/index.d.ts.map +1 -0
  12. package/dist-package/src/PageTopBarLoader/index.js +2 -0
  13. package/dist-package/src/PageTopBarLoader/index.js.map +1 -0
  14. package/dist-package/src/PageTopBarLoader/styles.d.ts +3 -0
  15. package/dist-package/src/PageTopBarLoader/styles.d.ts.map +1 -0
  16. package/dist-package/src/PageTopBarLoader/styles.js +10 -0
  17. package/dist-package/src/PageTopBarLoader/styles.js.map +1 -0
  18. package/dist-package/src/SidebarMenu/SidebarMenu.d.ts.map +1 -1
  19. package/dist-package/src/SidebarMenu/SidebarMenu.js +2 -5
  20. package/dist-package/src/SidebarMenu/SidebarMenu.js.map +1 -1
  21. package/dist-package/src/index.d.ts +1 -0
  22. package/dist-package/src/index.d.ts.map +1 -1
  23. package/dist-package/src/index.js +1 -0
  24. package/dist-package/src/index.js.map +1 -1
  25. package/package.json +27 -26
  26. package/src/Page/story/index.jsx +4 -0
  27. package/src/PageCompound/index.ts +2 -0
  28. package/src/PageTopBarLoader/PageTopBarLoader.tsx +62 -0
  29. package/src/PageTopBarLoader/index.ts +6 -0
  30. package/src/PageTopBarLoader/story/Default.example.tsx +10 -0
  31. package/src/PageTopBarLoader/story/index.jsx +25 -0
  32. package/src/PageTopBarLoader/styles.ts +13 -0
  33. package/src/SidebarMenu/SidebarMenu.tsx +4 -6
  34. package/src/index.ts +1 -0
package/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021-2022 Toptal, LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the “Software”), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -27,5 +27,6 @@ export declare const PageCompound: import("react").ForwardRefExoticComponent<imp
27
27
  };
28
28
  };
29
29
  Article: import("packages/shared/dist-package/src").OverridableComponent<import("../PageArticle/PageArticle").Props>;
30
+ TopBarLoader: import("packages/shared/dist-package/src").OverridableComponent<import("../PageTopBarLoader/PageTopBarLoader").Props>;
30
31
  };
31
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/PageCompound/index.ts"],"names":[],"mappings":";AAWA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUvB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/PageCompound/index.ts"],"names":[],"mappings":";AAYA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWvB,CAAA"}
@@ -8,6 +8,7 @@ import { PageContent } from '../PageContent';
8
8
  import { PageBanner } from '../PageBanner';
9
9
  import { PageAutocomplete } from '../PageAutocomplete';
10
10
  import { PageArticle } from '../PageArticle';
11
+ import { PageTopBarLoader } from '../PageTopBarLoader';
11
12
  export const PageCompound = Object.assign(Page, {
12
13
  TopBar: PageTopBar,
13
14
  TopBarMenu: PageTopBarMenu,
@@ -18,5 +19,6 @@ export const PageCompound = Object.assign(Page, {
18
19
  Helmet: PageHelmet,
19
20
  Autocomplete: PageAutocomplete,
20
21
  Article: PageArticle,
22
+ TopBarLoader: PageTopBarLoader,
21
23
  });
22
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/PageCompound/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;IAC9C,MAAM,EAAE,UAAU;IAClB,UAAU,EAAE,cAAc;IAC1B,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,YAAY,EAAE,gBAAgB;IAC9B,OAAO,EAAE,WAAW;CACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/PageCompound/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;IAC9C,MAAM,EAAE,UAAU;IAClB,UAAU,EAAE,cAAc;IAC1B,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,YAAY,EAAE,gBAAgB;IAC9B,OAAO,EAAE,WAAW;IACpB,YAAY,EAAE,gBAAgB;CAC/B,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ import type { BaseProps, OverridableComponent } from '@toptal/picasso-shared';
3
+ export interface Props extends BaseProps, HTMLAttributes<HTMLDivElement> {
4
+ }
5
+ export declare const PageTopBarLoader: OverridableComponent<Props>;
6
+ export default PageTopBarLoader;
7
+ //# sourceMappingURL=PageTopBarLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageTopBarLoader.d.ts","sourceRoot":"","sources":["../../../src/PageTopBarLoader/PageTopBarLoader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAQ7E,MAAM,WAAW,KAAM,SAAQ,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC;CAAG;AAE3E,eAAO,MAAM,gBAAgB,EAAE,oBAAoB,CAAC,KAAK,CA6CvD,CAAA;AAIF,eAAe,gBAAgB,CAAA"}
@@ -0,0 +1,34 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React, { forwardRef, useContext } from 'react';
13
+ import { SkeletonLoader } from '@toptal/picasso-skeleton-loader';
14
+ import { twMerge } from '@toptal/picasso-tailwind-merge';
15
+ import { PageContext } from '../Page';
16
+ import { getMaxWidthClass } from './styles';
17
+ export const PageTopBarLoader = forwardRef(function PageTopBarLoader(props, ref) {
18
+ const { className, style } = props, rest = __rest(props, ["className", "style"]);
19
+ const { width, fullWidth } = useContext(PageContext);
20
+ const innerClassName = twMerge('flex items-center justify-between h-[var(--header-height,3.5rem)] px-4 md:px-8', getMaxWidthClass({ fullWidth, width }));
21
+ return (React.createElement("div", Object.assign({}, rest, { ref: ref, className: twMerge('fixed top-0 left-0 right-0 w-full bg-gray-100 z-[1200] border border-gray-400', className), style: style }),
22
+ React.createElement("div", { className: innerClassName },
23
+ React.createElement("div", { className: 'flex items-center gap-4' },
24
+ React.createElement(SkeletonLoader.Media, { variant: 'image', width: '2rem', height: '2rem', circle: true }),
25
+ React.createElement("div", { className: 'flex flex-col items-center gap-2' },
26
+ React.createElement(SkeletonLoader.Header, { className: 'w-32 h-4' }),
27
+ React.createElement(SkeletonLoader.Header, { className: 'w-24 h-4' }))),
28
+ React.createElement("div", { className: 'flex flex-col items-center gap-2' },
29
+ React.createElement(SkeletonLoader.Header, { className: 'w-32 h-4' }),
30
+ React.createElement(SkeletonLoader.Header, { className: 'w-24 h-4' })))));
31
+ });
32
+ PageTopBarLoader.displayName = 'PageTopBarLoader';
33
+ export default PageTopBarLoader;
34
+ //# sourceMappingURL=PageTopBarLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageTopBarLoader.js","sourceRoot":"","sources":["../../../src/PageTopBarLoader/PageTopBarLoader.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAI3C,MAAM,CAAC,MAAM,gBAAgB,GAAgC,UAAU,CAGrE,SAAS,gBAAgB,CAAC,KAAK,EAAE,GAAG;IACpC,MAAM,EAAE,SAAS,EAAE,KAAK,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAArC,sBAA6B,CAAQ,CAAA;IAC3C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,CAAmB,WAAW,CAAC,CAAA;IAEtE,MAAM,cAAc,GAAG,OAAO,CAC5B,gFAAgF,EAChF,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CACvC,CAAA;IAED,OAAO,CACL,6CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,CAChB,+EAA+E,EAC/E,SAAS,CACV,EACD,KAAK,EAAE,KAAK;QAEZ,6BAAK,SAAS,EAAE,cAAc;YAE5B,6BAAK,SAAS,EAAC,yBAAyB;gBACtC,oBAAC,cAAc,CAAC,KAAK,IACnB,OAAO,EAAC,OAAO,EACf,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,MAAM,SACN;gBACF,6BAAK,SAAS,EAAC,kCAAkC;oBAC/C,oBAAC,cAAc,CAAC,MAAM,IAAC,SAAS,EAAC,UAAU,GAAG;oBAC9C,oBAAC,cAAc,CAAC,MAAM,IAAC,SAAS,EAAC,UAAU,GAAG,CAC1C,CACF;YAGN,6BAAK,SAAS,EAAC,kCAAkC;gBAC/C,oBAAC,cAAc,CAAC,MAAM,IAAC,SAAS,EAAC,UAAU,GAAG;gBAC9C,oBAAC,cAAc,CAAC,MAAM,IAAC,SAAS,EAAC,UAAU,GAAG,CAC1C,CACF,CACF,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAA;AAEjD,eAAe,gBAAgB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { OmitInternalProps } from '@toptal/picasso-shared';
2
+ import type { Props } from './PageTopBarLoader';
3
+ export { default as PageTopBarLoader } from './PageTopBarLoader';
4
+ export declare type PageTopBarLoaderProps = OmitInternalProps<Props>;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/PageTopBarLoader/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAChE,oBAAY,qBAAqB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { default as PageTopBarLoader } from './PageTopBarLoader';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/PageTopBarLoader/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { PageContextProps } from '../Page/types';
2
+ export declare const getMaxWidthClass: ({ fullWidth, width }: PageContextProps) => "max-w-full" | "max-w-[90em]" | "max-w-[75em]";
3
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/PageTopBarLoader/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,eAAO,MAAM,gBAAgB,yBAA0B,gBAAgB,mDAUtE,CAAA"}
@@ -0,0 +1,10 @@
1
+ export const getMaxWidthClass = ({ fullWidth, width }) => {
2
+ if (fullWidth || width === 'full') {
3
+ return 'max-w-full';
4
+ }
5
+ if (width === 'wide') {
6
+ return 'max-w-[90em]';
7
+ }
8
+ return 'max-w-[75em]';
9
+ };
10
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/PageTopBarLoader/styles.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAoB,EAAE,EAAE;IACzE,IAAI,SAAS,IAAI,KAAK,KAAK,MAAM,EAAE;QACjC,OAAO,YAAY,CAAA;KACpB;IAED,IAAI,KAAK,KAAK,MAAM,EAAE;QACpB,OAAO,cAAc,CAAA;KACtB;IAED,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarMenu.d.ts","sourceRoot":"","sources":["../../../src/SidebarMenu/SidebarMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAA6C,MAAM,OAAO,CAAA;AAOjE,MAAM,WAAW,KAAM,SAAQ,SAAS,EAAE,cAAc,CAAC,gBAAgB,CAAC;IACxE,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,eAAO,MAAM,WAAW,gFAuEvB,CAAA;AAQD,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"SidebarMenu.d.ts","sourceRoot":"","sources":["../../../src/SidebarMenu/SidebarMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAA6C,MAAM,OAAO,CAAA;AAOjE,MAAM,WAAW,KAAM,SAAQ,SAAS,EAAE,cAAc,CAAC,gBAAgB,CAAC;IACxE,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,eAAO,MAAM,WAAW,gFAqEvB,CAAA;AAQD,eAAe,WAAW,CAAA"}
@@ -9,7 +9,7 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import cx from 'classnames';
12
+ import { twMerge } from '@toptal/picasso-tailwind-merge';
13
13
  import React, { forwardRef, useCallback, useEffect } from 'react';
14
14
  import { Menu } from '@toptal/picasso-menu';
15
15
  import { useSidebarContext } from '../PageSidebar/SidebarContextProvider';
@@ -44,10 +44,7 @@ export const SidebarMenu = forwardRef(function SidebarMenu(props, ref) {
44
44
  }
45
45
  return child;
46
46
  });
47
- return (React.createElement(Menu, Object.assign({}, rest, { allowNestedNavigation: false, ref: ref, style: style, className: cx('shadow-0 order-1 [&_&]:flex-1 flex-grow-0 flex-shrink-1 max-w-full', {
48
- ['order-[99]']: bottom,
49
- ['p-2']: parentMenu === null || parentMenu === void 0 ? void 0 : parentMenu.compact,
50
- }, className) }), items));
47
+ return (React.createElement(Menu, Object.assign({}, rest, { allowNestedNavigation: false, ref: ref, style: style, className: twMerge('shadow-0 order-1 [&_&]:flex-1 flex-grow-0 flex-shrink-1 max-w-full', bottom && 'order-[99]', (parentMenu === null || parentMenu === void 0 ? void 0 : parentMenu.compact) && 'p-2', className) }), items));
51
48
  });
52
49
  SidebarMenu.defaultProps = {
53
50
  bottom: false,
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarMenu.js","sourceRoot":"","sources":["../../../src/SidebarMenu/SidebarMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAOlD,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACnC,SAAS,WAAW,CAAC,KAAK,EAAE,GAAG;IAC7B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAAvD,4CAA+C,CAAQ,CAAA;IAC7D,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,UAAU,EAAE,GACrD,iBAAiB,EAAE,CAAA;IAErB,MAAM,EACJ,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,WAAW,EAAE,kBAAkB,GAChC,GAAG,iBAAiB,EAAE,CAAA;IAEvB,MAAM,iBAAiB,GAAG,WAAW,CAAC,kBAAkB,EAAE;QACxD,kBAAkB;KACnB,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC3D,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAC7D,CAAA;QAED,IAAI,eAAe,IAAI,sBAAsB,KAAK,SAAS,EAAE;YAC3D,kBAAkB,CAAC,sBAAsB,CAAC,CAAA;SAC3C;IACH,CAAC,EAAE,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE1D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1D,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAC/B,MAAM,SAAS,GAA8B;gBAC3C,OAAO;gBACP,SAAS;gBACT,OAAO,EAAE,kBAAkB,IAAI,CAAC,SAAS;aAC1C,CAAA;YAED,MAAM,eAAe,GAA8B;gBACjD,KAAK;gBACL,MAAM,EAAE,iBAAiB;gBACzB,UAAU,EAAE,eAAe,KAAK,KAAK;aACtC,CAAA;YAED,MAAM,QAAQ,mCACT,SAAS,GACT,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CACpD,CAAA;YAED,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;SAC3C;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,OAAO,CACL,oBAAC,IAAI,oBACC,IAAI,IACR,qBAAqB,EAAE,KAAK,EAC5B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CACX,oEAAoE,EACpE;YACE,CAAC,YAAY,CAAC,EAAE,MAAM;YACtB,CAAC,KAAK,CAAC,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO;SAC7B,EACD,SAAS,CACV,KAEA,KAAK,CACD,CACR,CAAA;AACH,CAAC,CACF,CAAA;AAED,WAAW,CAAC,YAAY,GAAG;IACzB,MAAM,EAAE,KAAK;CACd,CAAA;AAED,WAAW,CAAC,WAAW,GAAG,aAAa,CAAA;AAEvC,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"SidebarMenu.js","sourceRoot":"","sources":["../../../src/SidebarMenu/SidebarMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAExD,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAA;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAOlD,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACnC,SAAS,WAAW,CAAC,KAAK,EAAE,GAAG;IAC7B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAAvD,4CAA+C,CAAQ,CAAA;IAC7D,MAAM,EAAE,sBAAsB,EAAE,SAAS,EAAE,UAAU,EAAE,GACrD,iBAAiB,EAAE,CAAA;IAErB,MAAM,EACJ,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,WAAW,EAAE,kBAAkB,GAChC,GAAG,iBAAiB,EAAE,CAAA;IAEvB,MAAM,iBAAiB,GAAG,WAAW,CAAC,kBAAkB,EAAE;QACxD,kBAAkB;KACnB,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC3D,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAC7D,CAAA;QAED,IAAI,eAAe,IAAI,sBAAsB,KAAK,SAAS,EAAE;YAC3D,kBAAkB,CAAC,sBAAsB,CAAC,CAAA;SAC3C;IACH,CAAC,EAAE,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE1D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1D,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAC/B,MAAM,SAAS,GAA8B;gBAC3C,OAAO;gBACP,SAAS;gBACT,OAAO,EAAE,kBAAkB,IAAI,CAAC,SAAS;aAC1C,CAAA;YAED,MAAM,eAAe,GAA8B;gBACjD,KAAK;gBACL,MAAM,EAAE,iBAAiB;gBACzB,UAAU,EAAE,eAAe,KAAK,KAAK;aACtC,CAAA;YAED,MAAM,QAAQ,mCACT,SAAS,GACT,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CACpD,CAAA;YAED,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;SAC3C;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,OAAO,CACL,oBAAC,IAAI,oBACC,IAAI,IACR,qBAAqB,EAAE,KAAK,EAC5B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,OAAO,CAChB,oEAAoE,EACpE,MAAM,IAAI,YAAY,EACtB,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,KAAI,KAAK,EAC5B,SAAS,CACV,KAEA,KAAK,CACD,CACR,CAAA;AACH,CAAC,CACF,CAAA;AAED,WAAW,CAAC,YAAY,GAAG;IACzB,MAAM,EAAE,KAAK;CACd,CAAA;AAED,WAAW,CAAC,WAAW,GAAG,aAAa,CAAA;AAEvC,eAAe,WAAW,CAAA"}
@@ -14,6 +14,7 @@ export * from './SidebarItemContent';
14
14
  export * from './PageTopBar';
15
15
  export * from './PageTopBarCompound';
16
16
  export * from './PageTopBarMenu';
17
+ export * from './PageTopBarLoader';
17
18
  export * from './TopBarItem';
18
19
  export * from './TopBarMenu';
19
20
  export * from './PageHamburger';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
@@ -14,6 +14,7 @@ export * from './SidebarItemContent';
14
14
  export * from './PageTopBar';
15
15
  export * from './PageTopBarCompound';
16
16
  export * from './PageTopBarMenu';
17
+ export * from './PageTopBarLoader';
17
18
  export * from './TopBarItem';
18
19
  export * from './TopBarMenu';
19
20
  export * from './PageHamburger';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toptal/picasso-page",
3
- "version": "5.2.1",
3
+ "version": "5.2.3-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.1+8a4e44342",
4
4
  "description": "Toptal UI components library - Page",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -22,23 +22,23 @@
22
22
  },
23
23
  "homepage": "https://github.com/toptal/picasso/tree/master/packages/picasso#readme",
24
24
  "dependencies": {
25
- "@toptal/picasso-accordion": "3.0.17",
26
- "@toptal/picasso-autocomplete": "5.1.0",
27
- "@toptal/picasso-avatar": "6.1.8",
28
- "@toptal/picasso-badge": "3.0.3",
29
- "@toptal/picasso-button": "4.0.18",
30
- "@toptal/picasso-container": "3.1.1",
31
- "@toptal/picasso-dropdown": "4.2.1",
32
- "@toptal/picasso-icons": "1.11.0",
33
- "@toptal/picasso-logo": "2.0.7",
34
- "@toptal/picasso-menu": "3.0.13",
35
- "@toptal/picasso-notification": "4.0.18",
36
- "@toptal/picasso-shared": "15.0.0",
37
- "@toptal/picasso-tag": "4.0.8",
38
- "@toptal/picasso-tooltip": "2.0.1",
39
- "@toptal/picasso-typography": "4.0.2",
40
- "@toptal/picasso-user-badge": "5.1.9",
41
- "@toptal/picasso-utils": "3.0.0",
25
+ "@toptal/picasso-accordion": "3.0.18-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.25+8a4e44342",
26
+ "@toptal/picasso-autocomplete": "5.1.1-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.8+8a4e44342",
27
+ "@toptal/picasso-avatar": "6.1.9-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.41+8a4e44342",
28
+ "@toptal/picasso-badge": "3.0.4-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.65+8a4e44342",
29
+ "@toptal/picasso-button": "4.0.19-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.25+8a4e44342",
30
+ "@toptal/picasso-container": "3.1.2-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.65+8a4e44342",
31
+ "@toptal/picasso-dropdown": "4.2.2-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.65+8a4e44342",
32
+ "@toptal/picasso-icons": "1.11.1-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.41+8a4e44342",
33
+ "@toptal/picasso-logo": "2.0.8-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.41+8a4e44342",
34
+ "@toptal/picasso-menu": "3.0.14-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.41+8a4e44342",
35
+ "@toptal/picasso-notification": "4.0.19-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.25+8a4e44342",
36
+ "@toptal/picasso-shared": "15.0.1-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.318+8a4e44342",
37
+ "@toptal/picasso-tag": "4.0.9-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.41+8a4e44342",
38
+ "@toptal/picasso-tooltip": "2.0.2-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.65+8a4e44342",
39
+ "@toptal/picasso-typography": "4.0.3-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.65+8a4e44342",
40
+ "@toptal/picasso-user-badge": "5.1.10-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.41+8a4e44342",
41
+ "@toptal/picasso-utils": "3.0.1-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.65+8a4e44342",
42
42
  "classnames": "^2.5.1"
43
43
  },
44
44
  "sideEffects": [
@@ -46,18 +46,18 @@
46
46
  "**/styles.js"
47
47
  ],
48
48
  "peerDependencies": {
49
- "@toptal/picasso-tailwind-merge": "^2.0.0",
50
49
  "@material-ui/core": "4.12.4",
51
50
  "@toptal/picasso-provider": "*",
52
- "react-dom": "^18.2.0",
53
- "@toptal/picasso-tailwind": ">=2.7",
54
51
  "@toptal/picasso-skeleton-loader": "^1.0.37",
55
- "react": ">=16.12.0 < 19.0.0"
52
+ "@toptal/picasso-tailwind": ">=2.7",
53
+ "@toptal/picasso-tailwind-merge": "^2.0.0",
54
+ "react": ">=16.12.0 < 19.0.0",
55
+ "react-dom": "^18.2.0"
56
56
  },
57
57
  "devDependencies": {
58
- "@toptal/picasso-tailwind-merge": "2.0.2",
59
- "@toptal/picasso-provider": "5.0.0",
60
- "@toptal/picasso-test-utils": "1.1.1",
58
+ "@toptal/picasso-provider": "5.0.1-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.239+8a4e44342",
59
+ "@toptal/picasso-tailwind-merge": "2.0.3-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.65+8a4e44342",
60
+ "@toptal/picasso-test-utils": "1.1.2-alpha-cps-1671-create-page-topbar-loading-component-8a4e44342.318+8a4e44342",
61
61
  "react-dom": "^18.2.0",
62
62
  "styled-components": "^6.1.1"
63
63
  },
@@ -68,5 +68,6 @@
68
68
  "dist-package/**",
69
69
  "!dist-package/tsconfig.tsbuildinfo",
70
70
  "src"
71
- ]
71
+ ],
72
+ "gitHead": "8a4e44342537e5b9c9ec60f73edbec73d01fa728"
72
73
  }
@@ -4,6 +4,7 @@ import pageFooterStory from '../../PageFooter/story'
4
4
  import pageBannerStory from '../../PageBanner/story'
5
5
  import pageAutocompleteStory from '../../PageAutocomplete/story'
6
6
  import pageArticleStory from '../../PageArticle/story'
7
+ import pageTopBarLoaderStory from '../../PageTopBarLoader/story'
7
8
  import { Page } from '../Page'
8
9
  import PicassoBook from '~/.storybook/components/PicassoBook'
9
10
 
@@ -24,6 +25,7 @@ page
24
25
  .addComponentDocs(pageFooterStory.componentDocs)
25
26
  .addComponentDocs(pageBannerStory.componentDocs)
26
27
  .addComponentDocs(pageAutocompleteStory.componentDocs)
28
+ .addComponentDocs(pageTopBarLoaderStory.componentDocs)
27
29
 
28
30
  page
29
31
  .createChapter()
@@ -90,3 +92,5 @@ page.connect(pageFooterStory.chapter)
90
92
  page.connect(pageBannerStory.chapter)
91
93
 
92
94
  page.connect(pageAutocompleteStory.chapter)
95
+
96
+ page.connect(pageTopBarLoaderStory.chapter)
@@ -8,6 +8,7 @@ import { PageContent } from '../PageContent'
8
8
  import { PageBanner } from '../PageBanner'
9
9
  import { PageAutocomplete } from '../PageAutocomplete'
10
10
  import { PageArticle } from '../PageArticle'
11
+ import { PageTopBarLoader } from '../PageTopBarLoader'
11
12
 
12
13
  export const PageCompound = Object.assign(Page, {
13
14
  TopBar: PageTopBar,
@@ -19,4 +20,5 @@ export const PageCompound = Object.assign(Page, {
19
20
  Helmet: PageHelmet,
20
21
  Autocomplete: PageAutocomplete,
21
22
  Article: PageArticle,
23
+ TopBarLoader: PageTopBarLoader,
22
24
  })
@@ -0,0 +1,62 @@
1
+ import type { HTMLAttributes } from 'react'
2
+ import React, { forwardRef, useContext } from 'react'
3
+ import type { BaseProps, OverridableComponent } from '@toptal/picasso-shared'
4
+ import { SkeletonLoader } from '@toptal/picasso-skeleton-loader'
5
+ import { twMerge } from '@toptal/picasso-tailwind-merge'
6
+
7
+ import { PageContext } from '../Page'
8
+ import type { PageContextProps } from '../Page'
9
+ import { getMaxWidthClass } from './styles'
10
+
11
+ export interface Props extends BaseProps, HTMLAttributes<HTMLDivElement> {}
12
+
13
+ export const PageTopBarLoader: OverridableComponent<Props> = forwardRef<
14
+ HTMLDivElement,
15
+ Props
16
+ >(function PageTopBarLoader(props, ref) {
17
+ const { className, style, ...rest } = props
18
+ const { width, fullWidth } = useContext<PageContextProps>(PageContext)
19
+
20
+ const innerClassName = twMerge(
21
+ 'flex items-center justify-between h-[var(--header-height,3.5rem)] px-4 md:px-8',
22
+ getMaxWidthClass({ fullWidth, width })
23
+ )
24
+
25
+ return (
26
+ <div
27
+ {...rest}
28
+ ref={ref}
29
+ className={twMerge(
30
+ 'fixed top-0 left-0 right-0 w-full bg-gray-100 z-[1200] border border-gray-400',
31
+ className
32
+ )}
33
+ style={style}
34
+ >
35
+ <div className={innerClassName}>
36
+ {/* Left part: Media and Headers */}
37
+ <div className='flex items-center gap-4'>
38
+ <SkeletonLoader.Media
39
+ variant='image'
40
+ width='2rem'
41
+ height='2rem'
42
+ circle
43
+ />
44
+ <div className='flex flex-col items-center gap-2'>
45
+ <SkeletonLoader.Header className='w-32 h-4' />
46
+ <SkeletonLoader.Header className='w-24 h-4' />
47
+ </div>
48
+ </div>
49
+
50
+ {/* Right part: Headers */}
51
+ <div className='flex flex-col items-center gap-2'>
52
+ <SkeletonLoader.Header className='w-32 h-4' />
53
+ <SkeletonLoader.Header className='w-24 h-4' />
54
+ </div>
55
+ </div>
56
+ </div>
57
+ )
58
+ })
59
+
60
+ PageTopBarLoader.displayName = 'PageTopBarLoader'
61
+
62
+ export default PageTopBarLoader
@@ -0,0 +1,6 @@
1
+ import type { OmitInternalProps } from '@toptal/picasso-shared'
2
+
3
+ import type { Props } from './PageTopBarLoader'
4
+
5
+ export { default as PageTopBarLoader } from './PageTopBarLoader'
6
+ export type PageTopBarLoaderProps = OmitInternalProps<Props>
@@ -0,0 +1,10 @@
1
+ import React from 'react'
2
+ import { Page } from '@toptal/picasso'
3
+
4
+ const Example = () => (
5
+ <div style={{ height: '4.5rem' }}>
6
+ <Page.TopBarLoader />
7
+ </div>
8
+ )
9
+
10
+ export default Example
@@ -0,0 +1,25 @@
1
+ import { PageTopBarLoader } from '../PageTopBarLoader'
2
+ import PicassoBook from '~/.storybook/components/PicassoBook'
3
+
4
+ const chapter = PicassoBook.connectToPage(page =>
5
+ page
6
+ .createChapter('Page.TopBarLoader', 'Use as a page content container')
7
+ .addExample(
8
+ 'PageTopBarLoader/story/Default.example.tsx',
9
+ {
10
+ title: 'Default',
11
+ screenshotBreakpoints: true,
12
+ },
13
+ 'base/Page'
14
+ )
15
+ )
16
+
17
+ const componentDocs = PicassoBook.createComponentDocs(
18
+ PageTopBarLoader,
19
+ 'Page.TopBarLoader'
20
+ )
21
+
22
+ export default {
23
+ chapter,
24
+ componentDocs,
25
+ }
@@ -0,0 +1,13 @@
1
+ import type { PageContextProps } from '../Page/types'
2
+
3
+ export const getMaxWidthClass = ({ fullWidth, width }: PageContextProps) => {
4
+ if (fullWidth || width === 'full') {
5
+ return 'max-w-full'
6
+ }
7
+
8
+ if (width === 'wide') {
9
+ return 'max-w-[90em]'
10
+ }
11
+
12
+ return 'max-w-[75em]'
13
+ }
@@ -1,5 +1,5 @@
1
1
  import type { BaseProps } from '@toptal/picasso-shared'
2
- import cx from 'classnames'
2
+ import { twMerge } from '@toptal/picasso-tailwind-merge'
3
3
  import type { HTMLAttributes } from 'react'
4
4
  import React, { forwardRef, useCallback, useEffect } from 'react'
5
5
  import { Menu } from '@toptal/picasso-menu'
@@ -71,12 +71,10 @@ export const SidebarMenu = forwardRef<HTMLUListElement, Props>(
71
71
  allowNestedNavigation={false}
72
72
  ref={ref}
73
73
  style={style}
74
- className={cx(
74
+ className={twMerge(
75
75
  'shadow-0 order-1 [&_&]:flex-1 flex-grow-0 flex-shrink-1 max-w-full',
76
- {
77
- ['order-[99]']: bottom,
78
- ['p-2']: parentMenu?.compact,
79
- },
76
+ bottom && 'order-[99]',
77
+ parentMenu?.compact && 'p-2',
80
78
  className
81
79
  )}
82
80
  >
package/src/index.ts CHANGED
@@ -14,6 +14,7 @@ export * from './SidebarItemContent'
14
14
  export * from './PageTopBar'
15
15
  export * from './PageTopBarCompound'
16
16
  export * from './PageTopBarMenu'
17
+ export * from './PageTopBarLoader'
17
18
  export * from './TopBarItem'
18
19
  export * from './TopBarMenu'
19
20
  export * from './PageHamburger'