@snokam/ui 6.4.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/dist/components/fullscreen/index.d.ts +10 -0
- package/dist/components/fullscreen/index.d.ts.map +1 -0
- package/dist/components/fullscreen/index.js +12 -0
- package/dist/components/fullscreen/index.js.map +1 -0
- package/dist/components/fullscreen/styles.d.ts +5 -0
- package/dist/components/fullscreen/styles.d.ts.map +1 -0
- package/dist/components/fullscreen/styles.js +21 -0
- package/dist/components/fullscreen/styles.js.map +1 -0
- package/dist/components/fullscreen/useFullscreen.d.ts +6 -0
- package/dist/components/fullscreen/useFullscreen.d.ts.map +1 -0
- package/dist/components/fullscreen/useFullscreen.js +25 -0
- package/dist/components/fullscreen/useFullscreen.js.map +1 -0
- package/dist/components/layout/PageHeader.d.ts +2 -5
- package/dist/components/layout/PageHeader.d.ts.map +1 -1
- package/dist/components/layout/PageHeader.js +4 -13
- package/dist/components/layout/PageHeader.js.map +1 -1
- package/dist/components/layout/PageHeader.styled.d.ts +13 -2
- package/dist/components/layout/PageHeader.styled.d.ts.map +1 -1
- package/dist/components/layout/PageHeader.styled.js +55 -5
- package/dist/components/layout/PageHeader.styled.js.map +1 -1
- package/dist/components/layout/styled.js +1 -1
- package/package.json +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,33 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [7.0.0](https://github.com/snokam/components/compare/@snokam/ui@6.4.1...@snokam/ui@7.0.0) (2026-10-31)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **ui:** tighter page header spacing on mobile ([6404202](https://github.com/snokam/components/commit/640420241906d5e50236c6e8c9e906b2de266d96))
|
|
11
|
+
|
|
12
|
+
- feat(ui)!: compact page header, review fixes for shared packages ([2be4532](https://github.com/snokam/components/commit/2be453241302b8c5d275a8aeeaadfd4aee106f88))
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
- **my-page:** oversikt sections, faster hero, page header on mine oppgaver ([a961284](https://github.com/snokam/components/commit/a9612847a22d8ac961c2f64d1750df914239ca50))
|
|
17
|
+
- **ui:** expandable boards with olaf, standard page setup on salg/cv ([f5c2f23](https://github.com/snokam/components/commit/f5c2f23f016bf5982f44dd70ea7362f89cdcdc3a))
|
|
18
|
+
- **ui:** shared compact page header across apps ([cde9265](https://github.com/snokam/components/commit/cde926585f87b8d6fbc24d4b818bde136bf81e51))
|
|
19
|
+
|
|
20
|
+
### BREAKING CHANGES
|
|
21
|
+
|
|
22
|
+
- PageHeader no longer takes tone or transitions; it is
|
|
23
|
+
always the compact dark header with a wave and optional breadcrumbs.
|
|
24
|
+
|
|
25
|
+
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
26
|
+
|
|
27
|
+
## [6.4.1](https://github.com/snokam/components/compare/@snokam/ui@6.4.0...@snokam/ui@6.4.1) (2026-10-23)
|
|
28
|
+
|
|
29
|
+
### Bug Fixes
|
|
30
|
+
|
|
31
|
+
- **ui:** let page columns shrink so shell pages scroll again ([#3021](https://github.com/snokam/components/issues/3021)) ([5519393](https://github.com/snokam/components/commit/55193937a7e83c11fc0083f720c6bc9ed10fe48c))
|
|
32
|
+
|
|
6
33
|
# [6.4.0](https://github.com/snokam/components/compare/@snokam/ui@6.3.0...@snokam/ui@6.4.0) (2026-10-22)
|
|
7
34
|
|
|
8
35
|
### Features
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { useFullscreen } from "./useFullscreen";
|
|
2
|
+
export { FullscreenArea } from "./styles";
|
|
3
|
+
interface Props {
|
|
4
|
+
active: boolean;
|
|
5
|
+
onToggle: () => void;
|
|
6
|
+
openLabel: string;
|
|
7
|
+
closeLabel: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function FullscreenButton({ active, onToggle, openLabel, closeLabel, }: Props): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/fullscreen/index.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,UAAU,KAAK;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,SAAS,EACT,UAAU,GACX,EAAE,KAAK,+BAkBP"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { CloseFullscreen, OpenInFull } from "@mui/icons-material";
|
|
4
|
+
import { IconButton } from "@mui/material";
|
|
5
|
+
import { Tooltip } from "../tooltip";
|
|
6
|
+
export { useFullscreen } from "./useFullscreen";
|
|
7
|
+
export { FullscreenArea } from "./styles";
|
|
8
|
+
export function FullscreenButton({ active, onToggle, openLabel, closeLabel, }) {
|
|
9
|
+
const label = active ? closeLabel : openLabel;
|
|
10
|
+
return (_jsx(Tooltip, { title: label, children: _jsx(IconButton, { size: "small", "aria-label": label, "aria-expanded": active, onClick: onToggle, children: active ? (_jsx(CloseFullscreen, { fontSize: "small" })) : (_jsx(OpenInFull, { fontSize: "small" })) }) }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/fullscreen/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAS1C,MAAM,UAAU,gBAAgB,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,SAAS,EACT,UAAU,GACJ;IACN,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9C,OAAO,CACL,KAAC,OAAO,IAAC,KAAK,EAAE,KAAK,YACnB,KAAC,UAAU,IACT,IAAI,EAAC,OAAO,gBACA,KAAK,mBACF,MAAM,EACrB,OAAO,EAAE,QAAQ,YAEhB,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,eAAe,IAAC,QAAQ,EAAC,OAAO,GAAG,CACrC,CAAC,CAAC,CAAC,CACF,KAAC,UAAU,IAAC,QAAQ,EAAC,OAAO,GAAG,CAChC,GACU,GACL,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const FullscreenArea: import("@emotion/styled").StyledComponent<{
|
|
2
|
+
theme?: import("@emotion/react").Theme;
|
|
3
|
+
as?: React.ElementType;
|
|
4
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
5
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/components/fullscreen/styles.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc;;;yGAiB1B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import styled from "@emotion/styled";
|
|
3
|
+
export const FullscreenArea = styled.div `
|
|
4
|
+
min-width: 0;
|
|
5
|
+
|
|
6
|
+
&[data-expanded="true"] {
|
|
7
|
+
position: fixed;
|
|
8
|
+
top: calc(
|
|
9
|
+
var(--impersonation-banner-height, 0px) + var(--admin-topbar-height, 64px)
|
|
10
|
+
);
|
|
11
|
+
right: var(--olaf-panel-width, 0px);
|
|
12
|
+
bottom: 0;
|
|
13
|
+
left: 0;
|
|
14
|
+
z-index: 1250;
|
|
15
|
+
overflow: auto;
|
|
16
|
+
padding: 1.5rem 2rem;
|
|
17
|
+
background: var(--admin-shell-bg, var(--o-band-light-bg));
|
|
18
|
+
color: var(--o-text);
|
|
19
|
+
}
|
|
20
|
+
`;
|
|
21
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/fullscreen/styles.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;CAiBvC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFullscreen.d.ts","sourceRoot":"","sources":["../../../src/components/fullscreen/useFullscreen.ts"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW;;;;EAqBlD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
3
|
+
export function useFullscreen() {
|
|
4
|
+
const ref = useRef(null);
|
|
5
|
+
const [active, setActive] = useState(false);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
if (ref.current)
|
|
8
|
+
ref.current.dataset.expanded = String(active);
|
|
9
|
+
if (!active)
|
|
10
|
+
return;
|
|
11
|
+
document.documentElement.setAttribute("data-board-expanded", "");
|
|
12
|
+
const onKey = (event) => {
|
|
13
|
+
if (event.key === "Escape" && !event.defaultPrevented)
|
|
14
|
+
setActive(false);
|
|
15
|
+
};
|
|
16
|
+
document.addEventListener("keydown", onKey);
|
|
17
|
+
return () => {
|
|
18
|
+
document.removeEventListener("keydown", onKey);
|
|
19
|
+
document.documentElement.removeAttribute("data-board-expanded");
|
|
20
|
+
};
|
|
21
|
+
}, [active]);
|
|
22
|
+
const toggle = useCallback(() => setActive((current) => !current), []);
|
|
23
|
+
return { ref, active, toggle };
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=useFullscreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFullscreen.js","sourceRoot":"","sources":["../../../src/components/fullscreen/useFullscreen.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAI,IAAI,CAAC,CAAC;IAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,CAAC,OAAO;YAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,CAAC,KAAoB,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,gBAAgB;gBAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/C,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { ReactNode } from "react";
|
|
2
|
-
import { LayoutTheme, Transitions } from "./types";
|
|
3
2
|
interface PageHeaderProps {
|
|
4
3
|
title: string;
|
|
5
|
-
subtitle?: string;
|
|
6
|
-
tone?: LayoutTheme;
|
|
7
|
-
transitions?: Transitions;
|
|
8
4
|
breadcrumbs?: ReactNode;
|
|
5
|
+
subtitle?: ReactNode;
|
|
9
6
|
actions?: ReactNode;
|
|
10
7
|
children?: ReactNode;
|
|
11
8
|
}
|
|
12
|
-
export declare const PageHeader: ({ title,
|
|
9
|
+
export declare const PageHeader: ({ title, breadcrumbs, subtitle, actions, children, }: PageHeaderProps) => import("react").JSX.Element;
|
|
13
10
|
export {};
|
|
14
11
|
//# sourceMappingURL=PageHeader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../../src/components/layout/PageHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../../src/components/layout/PageHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAalC,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,GAAI,sDAMxB,eAAe,gCAqBjB,CAAC"}
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import
|
|
3
|
+
import { ThemeScope } from "@snokam/ui/theme";
|
|
4
4
|
import Styled from "./styled";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
const
|
|
8
|
-
bottom: { type: TransitionType.Wave, flipX: true },
|
|
9
|
-
};
|
|
10
|
-
export const PageHeader = ({ title, subtitle, tone = LayoutTheme.Dark, transitions = defaultTransitions, breadcrumbs, actions, children, }) => {
|
|
11
|
-
const Content = transitions.bottom ? Styled.Content : FlushContent;
|
|
12
|
-
return (_jsx(Container, { theme: tone, transitions: transitions, children: _jsx(Content, { children: _jsxs(Styled.Section, { stretchItems: true, padding: {
|
|
13
|
-
top: Padding.Large,
|
|
14
|
-
bottom: transitions.bottom ? Padding.Large : Padding.None,
|
|
15
|
-
}, children: [breadcrumbs, _jsxs(TitleRow, { children: [_jsxs("div", { children: [_jsx("h1", { children: title }), subtitle && _jsx(Subtitle, { children: subtitle })] }), actions] }), children] }) }) }));
|
|
16
|
-
};
|
|
5
|
+
import { Padding, TransitionType } from "./types";
|
|
6
|
+
import { HeaderActions, HeaderBand, HeaderContent, HeaderRow, HeaderText, Subtitle, } from "./PageHeader.styled";
|
|
7
|
+
export const PageHeader = ({ title, breadcrumbs, subtitle, actions, children, }) => (_jsx(HeaderBand, { transitions: { bottom: { type: TransitionType.Wave, flipX: true } }, children: _jsx(HeaderContent, { children: _jsx(Styled.Section, { stretchItems: true, padding: { top: Padding.None, bottom: Padding.None }, children: _jsxs(ThemeScope, { theme: "dark", as: HeaderRow, children: [_jsxs(HeaderText, { children: [breadcrumbs, _jsx("h1", { children: title }), subtitle && _jsx(Subtitle, { children: subtitle }), children] }), actions && _jsx(HeaderActions, { children: actions })] }) }) }) }));
|
|
17
8
|
//# sourceMappingURL=PageHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageHeader.js","sourceRoot":"","sources":["../../../src/components/layout/PageHeader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,
|
|
1
|
+
{"version":3,"file":"PageHeader.js","sourceRoot":"","sources":["../../../src/components/layout/PageHeader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EACL,aAAa,EACb,UAAU,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAU7B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,OAAO,EACP,QAAQ,GACQ,EAAE,EAAE,CAAC,CACrB,KAAC,UAAU,IACT,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,YAEnE,KAAC,aAAa,cACZ,KAAC,MAAM,CAAC,OAAO,IACb,YAAY,QACZ,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,YAEpD,MAAC,UAAU,IAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAE,SAAS,aACpC,MAAC,UAAU,eACR,WAAW,EACZ,uBAAK,KAAK,GAAM,EACf,QAAQ,IAAI,KAAC,QAAQ,cAAE,QAAQ,GAAY,EAC3C,QAAQ,IACE,EACZ,OAAO,IAAI,KAAC,aAAa,cAAE,OAAO,GAAiB,IACzC,GACE,GACH,GACL,CACd,CAAC"}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const HeaderBand: import("@emotion/styled").StyledComponent<import("./types").ContainerProps & {
|
|
2
|
+
theme?: import("@emotion/react").Theme;
|
|
3
|
+
}, {}, {}>;
|
|
4
|
+
export declare const HeaderContent: import("@emotion/styled").StyledComponent<{
|
|
2
5
|
theme?: import("@emotion/react").Theme;
|
|
3
6
|
as?: React.ElementType;
|
|
4
7
|
} & import("./types").ContentProps & import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & {
|
|
5
8
|
theme?: import("@emotion/react").Theme;
|
|
6
9
|
}, {}, {}>;
|
|
7
|
-
export declare const
|
|
10
|
+
export declare const HeaderRow: import("@emotion/styled").StyledComponent<{
|
|
11
|
+
theme?: import("@emotion/react").Theme;
|
|
12
|
+
as?: React.ElementType;
|
|
13
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {}>;
|
|
14
|
+
export declare const HeaderText: import("@emotion/styled").StyledComponent<{
|
|
15
|
+
theme?: import("@emotion/react").Theme;
|
|
16
|
+
as?: React.ElementType;
|
|
17
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
18
|
+
export declare const HeaderActions: import("@emotion/styled").StyledComponent<{
|
|
8
19
|
theme?: import("@emotion/react").Theme;
|
|
9
20
|
as?: React.ElementType;
|
|
10
21
|
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageHeader.styled.d.ts","sourceRoot":"","sources":["../../../src/components/layout/PageHeader.styled.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PageHeader.styled.d.ts","sourceRoot":"","sources":["../../../src/components/layout/PageHeader.styled.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,UAAU;;UAMtB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;UAQzB,CAAC;AAEF,eAAO,MAAM,SAAS;;;mGAcrB,CAAC;AAEF,eAAO,MAAM,UAAU;;;yGAsBtB,CAAC;AAEF,eAAO,MAAM,aAAa;;;yGAKzB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;qHAMpB,CAAC"}
|
|
@@ -1,22 +1,72 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import styled from "@emotion/styled";
|
|
3
|
+
import Container from "./container";
|
|
3
4
|
import Styled from "./styled";
|
|
4
|
-
|
|
5
|
+
import { WAVE_OVERLAP_PX } from "./types";
|
|
6
|
+
const TEXT_TO_WAVE = 24;
|
|
7
|
+
const BELOW_WAVE = WAVE_OVERLAP_PX / 2;
|
|
8
|
+
export const HeaderBand = styled(Container) `
|
|
9
|
+
margin-bottom: ${BELOW_WAVE}px;
|
|
10
|
+
|
|
11
|
+
@media (max-width: 600px) {
|
|
12
|
+
margin-bottom: 0;
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
export const HeaderContent = styled(Styled.Content) `
|
|
16
|
+
padding-top: 0;
|
|
5
17
|
padding-bottom: 0;
|
|
6
18
|
|
|
7
19
|
@media only screen and (min-width: 576px) {
|
|
20
|
+
padding-top: 0;
|
|
8
21
|
padding-bottom: 0;
|
|
9
22
|
}
|
|
10
23
|
`;
|
|
11
|
-
export const
|
|
24
|
+
export const HeaderRow = styled.header `
|
|
25
|
+
position: relative;
|
|
26
|
+
z-index: 1;
|
|
12
27
|
display: flex;
|
|
13
28
|
flex-wrap: wrap;
|
|
14
|
-
align-items: flex-
|
|
29
|
+
align-items: flex-end;
|
|
15
30
|
justify-content: space-between;
|
|
16
|
-
gap: 1rem;
|
|
31
|
+
gap: 1rem 1.5rem;
|
|
32
|
+
width: 100%;
|
|
33
|
+
padding: 3rem 0 ${WAVE_OVERLAP_PX + TEXT_TO_WAVE}px;
|
|
34
|
+
|
|
35
|
+
@media (max-width: 600px) {
|
|
36
|
+
padding: 1.25rem 0 ${WAVE_OVERLAP_PX / 2}px;
|
|
37
|
+
}
|
|
38
|
+
`;
|
|
39
|
+
export const HeaderText = styled.div `
|
|
40
|
+
flex: 1 1 24rem;
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-direction: column;
|
|
43
|
+
gap: 0.35rem;
|
|
44
|
+
min-width: 0;
|
|
45
|
+
|
|
46
|
+
& > nav {
|
|
47
|
+
margin-bottom: 0.25rem;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
& > nav a {
|
|
51
|
+
font-size: 0.95rem;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
& > p + * {
|
|
55
|
+
margin-top: 1.25rem;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
& > h1 {
|
|
59
|
+
margin: 0;
|
|
60
|
+
}
|
|
61
|
+
`;
|
|
62
|
+
export const HeaderActions = styled.div `
|
|
63
|
+
display: flex;
|
|
64
|
+
flex-wrap: wrap;
|
|
65
|
+
align-items: center;
|
|
66
|
+
gap: 0.75rem;
|
|
17
67
|
`;
|
|
18
68
|
export const Subtitle = styled.p `
|
|
19
|
-
margin:
|
|
69
|
+
margin: 0;
|
|
20
70
|
max-width: 60ch;
|
|
21
71
|
color: inherit;
|
|
22
72
|
opacity: 0.85;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageHeader.styled.js","sourceRoot":"","sources":["../../../src/components/layout/PageHeader.styled.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,MAAM,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"PageHeader.styled.js","sourceRoot":"","sources":["../../../src/components/layout/PageHeader.styled.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,UAAU,GAAG,eAAe,GAAG,CAAC,CAAC;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;mBACxB,UAAU;;;;;CAK5B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;;;;;;;;CAQlD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;;oBASlB,eAAe,GAAG,YAAY;;;yBAGzB,eAAe,GAAG,CAAC;;CAE3C,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;CAsBnC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKtC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAA;;;;;;CAM/B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@snokam/ui",
|
|
3
3
|
"description": "Snøkam UI library — the single MUI seam. Apps import from here, never from @mui directly.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "7.0.0",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"types": "src/index.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -176,6 +176,10 @@
|
|
|
176
176
|
"types": "./dist/components/feedback/index.d.ts",
|
|
177
177
|
"default": "./dist/components/feedback/index.js"
|
|
178
178
|
},
|
|
179
|
+
"./fullscreen": {
|
|
180
|
+
"types": "./dist/components/fullscreen/index.d.ts",
|
|
181
|
+
"default": "./dist/components/fullscreen/index.js"
|
|
182
|
+
},
|
|
179
183
|
"./form": {
|
|
180
184
|
"types": "./dist/components/form/index.d.ts",
|
|
181
185
|
"default": "./dist/components/form/index.js"
|