@guardian/stand 0.0.34 → 0.0.36

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 (64) hide show
  1. package/dist/components/grid/Grid.cjs +37 -0
  2. package/dist/components/grid/Grid.js +14 -0
  3. package/dist/components/grid/styles.cjs +106 -0
  4. package/dist/components/grid/styles.js +98 -0
  5. package/dist/components/layout/Layout.cjs +114 -0
  6. package/dist/components/layout/Layout.js +83 -0
  7. package/dist/components/layout/styles.cjs +92 -0
  8. package/dist/components/layout/styles.js +83 -0
  9. package/dist/grid.cjs +10 -0
  10. package/dist/grid.js +2 -0
  11. package/dist/index.cjs +4 -0
  12. package/dist/index.js +2 -0
  13. package/dist/layout.cjs +10 -0
  14. package/dist/layout.js +2 -0
  15. package/dist/styleD/build/css/base/typography.css +2 -2
  16. package/dist/styleD/build/css/component/TopBar.css +2 -2
  17. package/dist/styleD/build/css/component/alertBanner.css +1 -1
  18. package/dist/styleD/build/css/component/autocomplete.css +1 -1
  19. package/dist/styleD/build/css/component/avatar.css +1 -1
  20. package/dist/styleD/build/css/component/button.css +3 -3
  21. package/dist/styleD/build/css/component/checkbox.css +2 -2
  22. package/dist/styleD/build/css/component/favicon.css +1 -1
  23. package/dist/styleD/build/css/component/form.css +1 -1
  24. package/dist/styleD/build/css/component/grid.css +14 -0
  25. package/dist/styleD/build/css/component/inlineMessage.css +1 -1
  26. package/dist/styleD/build/css/component/layout.css +30 -0
  27. package/dist/styleD/build/css/component/link.css +1 -1
  28. package/dist/styleD/build/css/component/menu.css +3 -3
  29. package/dist/styleD/build/css/component/radioGroup.css +3 -3
  30. package/dist/styleD/build/css/component/select.css +2 -2
  31. package/dist/styleD/build/css/component/tagTable.css +1 -1
  32. package/dist/styleD/build/css/component/textArea.css +2 -2
  33. package/dist/styleD/build/css/component/textInput.css +2 -2
  34. package/dist/styleD/build/css/component/userMenu.css +6 -6
  35. package/dist/styleD/build/css/semantic/breakpoints.css +3 -12
  36. package/dist/styleD/build/css/semantic/typography.css +61 -61
  37. package/dist/styleD/build/typescript/component/grid.cjs +16 -0
  38. package/dist/styleD/build/typescript/component/grid.js +14 -0
  39. package/dist/styleD/build/typescript/component/layout.cjs +48 -0
  40. package/dist/styleD/build/typescript/component/layout.js +46 -0
  41. package/dist/styleD/build/typescript/component/link.cjs +1 -1
  42. package/dist/styleD/build/typescript/component/link.js +1 -1
  43. package/dist/styleD/build/typescript/semantic/breakpoints.cjs +3 -24
  44. package/dist/styleD/build/typescript/semantic/breakpoints.js +3 -24
  45. package/dist/styleD/utils/semantic/mq.cjs +4 -4
  46. package/dist/styleD/utils/semantic/mq.js +4 -4
  47. package/dist/types/components/grid/Grid.d.ts +3 -0
  48. package/dist/types/components/grid/sandbox.d.ts +5 -0
  49. package/dist/types/components/grid/styles.d.ts +11 -0
  50. package/dist/types/components/grid/styles.test.d.ts +1 -0
  51. package/dist/types/components/grid/types.d.ts +25 -0
  52. package/dist/types/components/layout/Layout.d.ts +19 -0
  53. package/dist/types/components/layout/sandbox.d.ts +5 -0
  54. package/dist/types/components/layout/styles.d.ts +16 -0
  55. package/dist/types/components/layout/types.d.ts +20 -0
  56. package/dist/types/components/topbar/styles.d.ts +2 -2
  57. package/dist/types/grid.d.ts +20 -0
  58. package/dist/types/index.d.ts +4 -0
  59. package/dist/types/layout.d.ts +20 -0
  60. package/dist/types/styleD/build/typescript/component/grid.d.ts +16 -0
  61. package/dist/types/styleD/build/typescript/component/layout.d.ts +48 -0
  62. package/dist/types/styleD/build/typescript/semantic/breakpoints.d.ts +3 -24
  63. package/dist/types/styleD/utils/semantic/mq.d.ts +5 -14
  64. package/package.json +21 -2
@@ -0,0 +1,37 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
4
+ var mergeDeep = require('../../util/mergeDeep.cjs');
5
+ var styles = require('./styles.cjs');
6
+
7
+ function Grid({
8
+ children,
9
+ theme = {},
10
+ cssOverrides,
11
+ as: Component = "div",
12
+ ...props
13
+ }) {
14
+ const mergedTheme = mergeDeep.mergeDeep(styles.defaultGridTheme, theme);
15
+ return /* @__PURE__ */ jsxRuntime.jsx(Component, { css: [styles.gridStyles(mergedTheme), cssOverrides], ...props, children });
16
+ }
17
+ function Item({
18
+ children,
19
+ theme = {},
20
+ cssOverrides,
21
+ size,
22
+ offset,
23
+ ...props
24
+ }) {
25
+ const mergedTheme = mergeDeep.mergeDeep(styles.defaultGridTheme, theme);
26
+ return /* @__PURE__ */ jsxRuntime.jsx(
27
+ "div",
28
+ {
29
+ css: [styles.itemStyles(mergedTheme, { size, offset }), cssOverrides],
30
+ ...props,
31
+ children
32
+ }
33
+ );
34
+ }
35
+
36
+ exports.Grid = Grid;
37
+ exports.Item = Item;
@@ -0,0 +1,14 @@
1
+ import { jsx } from '@emotion/react/jsx-runtime';
2
+ import { mergeDeep } from '../../util/mergeDeep.js';
3
+ import { gridStyles, itemStyles, defaultGridTheme } from './styles.js';
4
+
5
+ function Grid({ children, theme = {}, cssOverrides, as: Component = "div", ...props }) {
6
+ const mergedTheme = mergeDeep(defaultGridTheme, theme);
7
+ return jsx(Component, { css: [gridStyles(mergedTheme), cssOverrides], ...props, children });
8
+ }
9
+ function Item({ children, theme = {}, cssOverrides, size, offset, ...props }) {
10
+ const mergedTheme = mergeDeep(defaultGridTheme, theme);
11
+ return jsx("div", { css: [itemStyles(mergedTheme, { size, offset }), cssOverrides], ...props, children });
12
+ }
13
+
14
+ export { Grid, Item };
@@ -0,0 +1,106 @@
1
+ 'use strict';
2
+
3
+ var react = require('@emotion/react');
4
+ var grid = require('../../styleD/build/typescript/component/grid.cjs');
5
+ var mq = require('../../styleD/utils/semantic/mq.cjs');
6
+
7
+ const defaultGridTheme = grid.componentGrid;
8
+ const isResponsiveGridSize = (size) => typeof size === "object";
9
+ const isResponsiveOffset = (offset) => typeof offset === "object";
10
+ const clampToColumns = (value, columns) => Math.max(0, Math.min(value, columns));
11
+ const numericOffsetMargin = (offset, theme) => `calc(((100% - (${theme.shared.columns} - 1) * ${theme.shared.gap}) * ${offset} / ${theme.shared.columns}) + ${offset} * ${theme.shared.gap})`;
12
+ const numericSizeWidth = (size, theme) => `calc(((100% - (${theme.shared.columns} - 1) * ${theme.shared.gap}) * ${size} / ${theme.shared.columns}) + (${size} - 1) * ${theme.shared.gap})`;
13
+ const fixedSizeStyles = (size, theme) => {
14
+ if (size === "grow") {
15
+ return react.css`
16
+ flex-basis: 0;
17
+ flex-grow: 1;
18
+ max-width: 100%;
19
+ `;
20
+ }
21
+ if (size === "auto") {
22
+ return react.css`
23
+ flex-basis: auto;
24
+ flex-grow: 0;
25
+ flex-shrink: 0;
26
+ width: auto;
27
+ max-width: none;
28
+ `;
29
+ }
30
+ const clampedSize = clampToColumns(size, theme.shared.columns);
31
+ const width = numericSizeWidth(clampedSize, theme);
32
+ return react.css`
33
+ flex-basis: ${width};
34
+ flex-grow: 0;
35
+ width: ${width};
36
+ max-width: ${width};
37
+ `;
38
+ };
39
+ const fixedOffsetStyles = (offset, theme) => {
40
+ if (offset === "auto") {
41
+ return react.css`
42
+ margin-left: auto;
43
+ `;
44
+ }
45
+ const clampedOffset = clampToColumns(offset, theme.shared.columns);
46
+ return react.css`
47
+ margin-left: ${numericOffsetMargin(clampedOffset, theme)};
48
+ `;
49
+ };
50
+ const offsetStyles = (offset, theme) => {
51
+ if (typeof offset === "undefined") {
52
+ return react.css``;
53
+ }
54
+ if (!isResponsiveOffset(offset)) {
55
+ return fixedOffsetStyles(offset, theme);
56
+ }
57
+ return react.css`
58
+ ${Object.entries(offset).map(
59
+ ([breakpoint, breakpointOffset]) => react.css`
60
+ ${mq.from[breakpoint]} {
61
+ ${fixedOffsetStyles(breakpointOffset, theme)}
62
+ }
63
+ `
64
+ )}
65
+ `;
66
+ };
67
+ const sizeStyles = (size, theme) => {
68
+ if (typeof size === "undefined") {
69
+ return fixedSizeStyles(theme.shared.columns, theme);
70
+ }
71
+ if (!isResponsiveGridSize(size)) {
72
+ return fixedSizeStyles(size, theme);
73
+ }
74
+ return react.css`
75
+ ${Object.entries(size).map(
76
+ ([breakpoint, breakpointSize]) => react.css`
77
+ ${mq.from[breakpoint]} {
78
+ ${fixedSizeStyles(breakpointSize, theme)}
79
+ }
80
+ `
81
+ )}
82
+ `;
83
+ };
84
+ const gridStyles = (theme) => {
85
+ return react.css`
86
+ display: ${theme.shared.display};
87
+ width: ${theme.shared.width};
88
+ flex-direction: ${theme.shared.direction};
89
+ flex-wrap: ${theme.shared.wrap};
90
+ padding: 0 ${theme.shared.gap};
91
+ gap: ${theme.shared.gap};
92
+ justify-content: ${theme.shared.justifyContent};
93
+ align-items: ${theme.shared.alignItems};
94
+ `;
95
+ };
96
+ const itemStyles = (theme, { size, offset }) => {
97
+ return react.css`
98
+ min-width: 0;
99
+ ${sizeStyles(size, theme)}
100
+ ${offsetStyles(offset, theme)}
101
+ `;
102
+ };
103
+
104
+ exports.defaultGridTheme = defaultGridTheme;
105
+ exports.gridStyles = gridStyles;
106
+ exports.itemStyles = itemStyles;
@@ -0,0 +1,98 @@
1
+ import { css } from '@emotion/react';
2
+ import { componentGrid } from '../../styleD/build/typescript/component/grid.js';
3
+ import { from } from '../../styleD/utils/semantic/mq.js';
4
+
5
+ const defaultGridTheme = componentGrid;
6
+ const isResponsiveGridSize = (size) => typeof size === "object";
7
+ const isResponsiveOffset = (offset) => typeof offset === "object";
8
+ const clampToColumns = (value, columns) => Math.max(0, Math.min(value, columns));
9
+ const numericOffsetMargin = (offset, theme) => `calc(((100% - (${theme.shared.columns} - 1) * ${theme.shared.gap}) * ${offset} / ${theme.shared.columns}) + ${offset} * ${theme.shared.gap})`;
10
+ const numericSizeWidth = (size, theme) => `calc(((100% - (${theme.shared.columns} - 1) * ${theme.shared.gap}) * ${size} / ${theme.shared.columns}) + (${size} - 1) * ${theme.shared.gap})`;
11
+ const fixedSizeStyles = (size, theme) => {
12
+ if (size === "grow") {
13
+ return css`
14
+ flex-basis: 0;
15
+ flex-grow: 1;
16
+ max-width: 100%;
17
+ `;
18
+ }
19
+ if (size === "auto") {
20
+ return css`
21
+ flex-basis: auto;
22
+ flex-grow: 0;
23
+ flex-shrink: 0;
24
+ width: auto;
25
+ max-width: none;
26
+ `;
27
+ }
28
+ const clampedSize = clampToColumns(size, theme.shared.columns);
29
+ const width = numericSizeWidth(clampedSize, theme);
30
+ return css`
31
+ flex-basis: ${width};
32
+ flex-grow: 0;
33
+ width: ${width};
34
+ max-width: ${width};
35
+ `;
36
+ };
37
+ const fixedOffsetStyles = (offset, theme) => {
38
+ if (offset === "auto") {
39
+ return css`
40
+ margin-left: auto;
41
+ `;
42
+ }
43
+ const clampedOffset = clampToColumns(offset, theme.shared.columns);
44
+ return css`
45
+ margin-left: ${numericOffsetMargin(clampedOffset, theme)};
46
+ `;
47
+ };
48
+ const offsetStyles = (offset, theme) => {
49
+ if (typeof offset === "undefined") {
50
+ return css``;
51
+ }
52
+ if (!isResponsiveOffset(offset)) {
53
+ return fixedOffsetStyles(offset, theme);
54
+ }
55
+ return css`
56
+ ${Object.entries(offset).map(([breakpoint, breakpointOffset]) => css`
57
+ ${from[breakpoint]} {
58
+ ${fixedOffsetStyles(breakpointOffset, theme)}
59
+ }
60
+ `)}
61
+ `;
62
+ };
63
+ const sizeStyles = (size, theme) => {
64
+ if (typeof size === "undefined") {
65
+ return fixedSizeStyles(theme.shared.columns, theme);
66
+ }
67
+ if (!isResponsiveGridSize(size)) {
68
+ return fixedSizeStyles(size, theme);
69
+ }
70
+ return css`
71
+ ${Object.entries(size).map(([breakpoint, breakpointSize]) => css`
72
+ ${from[breakpoint]} {
73
+ ${fixedSizeStyles(breakpointSize, theme)}
74
+ }
75
+ `)}
76
+ `;
77
+ };
78
+ const gridStyles = (theme) => {
79
+ return css`
80
+ display: ${theme.shared.display};
81
+ width: ${theme.shared.width};
82
+ flex-direction: ${theme.shared.direction};
83
+ flex-wrap: ${theme.shared.wrap};
84
+ padding: 0 ${theme.shared.gap};
85
+ gap: ${theme.shared.gap};
86
+ justify-content: ${theme.shared.justifyContent};
87
+ align-items: ${theme.shared.alignItems};
88
+ `;
89
+ };
90
+ const itemStyles = (theme, { size, offset }) => {
91
+ return css`
92
+ min-width: 0;
93
+ ${sizeStyles(size, theme)}
94
+ ${offsetStyles(offset, theme)}
95
+ `;
96
+ };
97
+
98
+ export { defaultGridTheme, gridStyles, itemStyles };
@@ -0,0 +1,114 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
4
+ var react = require('@emotion/react');
5
+ var React = require('react');
6
+ var mergeDeep = require('../../util/mergeDeep.cjs');
7
+ var AlertBanner = require('../alert-banner/AlertBanner.cjs');
8
+ var Grid = require('../grid/Grid.cjs');
9
+ var TopBar = require('../topbar/TopBar.cjs');
10
+ var styles = require('./styles.cjs');
11
+
12
+ function Sidebar({
13
+ children,
14
+ layoutSmBreakpoint = "hidden",
15
+ theme = {},
16
+ cssOverrides,
17
+ ...props
18
+ }) {
19
+ const mergedTheme = mergeDeep.mergeDeep(styles.defaultSidebarTheme, theme);
20
+ return /* @__PURE__ */ jsxRuntime.jsx(
21
+ "aside",
22
+ {
23
+ css: [styles.sidebarStyles(mergedTheme, { layoutSmBreakpoint }), cssOverrides],
24
+ ...props,
25
+ children
26
+ }
27
+ );
28
+ }
29
+ function Layout({
30
+ children,
31
+ fluid = true,
32
+ theme = {},
33
+ cssOverrides,
34
+ ...props
35
+ }) {
36
+ const mergedTheme = mergeDeep.mergeDeep(styles.defaultLayoutTheme, theme);
37
+ let alertBanner = null;
38
+ let topBar = null;
39
+ let sidebar = null;
40
+ let main = null;
41
+ React.Children.forEach(children, (child) => {
42
+ if (!React.isValidElement(child)) {
43
+ return;
44
+ }
45
+ if (child.type === AlertBanner.AlertBanner) {
46
+ const alertBannerChild = child;
47
+ const alertBannerCssOverrides = Array.isArray(
48
+ alertBannerChild.props.cssOverrides
49
+ ) ? alertBannerChild.props.cssOverrides : alertBannerChild.props.cssOverrides ? [alertBannerChild.props.cssOverrides] : [];
50
+ alertBanner ?? (alertBanner = React.cloneElement(alertBannerChild, {
51
+ cssOverrides: [styles.alertBannerLayoutStyles(), ...alertBannerCssOverrides]
52
+ }));
53
+ return;
54
+ }
55
+ if (child.type === TopBar.TopBar) {
56
+ const topBarChild = child;
57
+ const topBarCssOverrides = Array.isArray(topBarChild.props.cssOverrides) ? topBarChild.props.cssOverrides : topBarChild.props.cssOverrides ? [topBarChild.props.cssOverrides] : [];
58
+ topBar ?? (topBar = React.cloneElement(topBarChild, {
59
+ cssOverrides: [styles.topBarLayoutStyles(), ...topBarCssOverrides]
60
+ }));
61
+ return;
62
+ }
63
+ if (child.type === Sidebar) {
64
+ const sidebarChild = child;
65
+ const sidebarCssOverrides = Array.isArray(sidebarChild.props.cssOverrides) ? sidebarChild.props.cssOverrides : sidebarChild.props.cssOverrides ? [sidebarChild.props.cssOverrides] : [];
66
+ sidebar ?? (sidebar = React.cloneElement(sidebarChild, {
67
+ cssOverrides: [styles.sidebarLayoutStyles(), ...sidebarCssOverrides]
68
+ }));
69
+ return;
70
+ }
71
+ if (child.type === Grid.Grid) {
72
+ const gridChild = child;
73
+ const gridCssOverrides = Array.isArray(gridChild.props.cssOverrides) ? gridChild.props.cssOverrides : gridChild.props.cssOverrides ? [gridChild.props.cssOverrides] : [];
74
+ main ?? (main = React.cloneElement(gridChild, {
75
+ as: "main",
76
+ cssOverrides: [
77
+ styles.mainLayoutStyles(mergedTheme, { fluid }),
78
+ ...gridCssOverrides
79
+ ]
80
+ }));
81
+ return;
82
+ }
83
+ if (!main) {
84
+ const childWithProps = child;
85
+ if ("cssOverrides" in childWithProps.props) {
86
+ const childCssOverrides = Array.isArray(
87
+ childWithProps.props.cssOverrides
88
+ ) ? childWithProps.props.cssOverrides : [childWithProps.props.cssOverrides ?? react.css``];
89
+ main ?? (main = React.cloneElement(childWithProps, {
90
+ cssOverrides: [
91
+ styles.mainLayoutStyles(mergedTheme, { fluid }),
92
+ ...childCssOverrides
93
+ ]
94
+ }));
95
+ } else {
96
+ main ?? (main = React.cloneElement(childWithProps, {
97
+ css: [
98
+ styles.mainLayoutStyles(mergedTheme, { fluid }),
99
+ childWithProps.props.css
100
+ ]
101
+ }));
102
+ }
103
+ }
104
+ });
105
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { css: [styles.layoutStyles(mergedTheme), cssOverrides], ...props, children: [
106
+ alertBanner,
107
+ topBar,
108
+ sidebar,
109
+ main
110
+ ] });
111
+ }
112
+
113
+ exports.Layout = Layout;
114
+ exports.Sidebar = Sidebar;
@@ -0,0 +1,83 @@
1
+ import { jsxs, jsx } from '@emotion/react/jsx-runtime';
2
+ import { css } from '@emotion/react';
3
+ import React from 'react';
4
+ import { mergeDeep } from '../../util/mergeDeep.js';
5
+ import { AlertBanner } from '../alert-banner/AlertBanner.js';
6
+ import { Grid } from '../grid/Grid.js';
7
+ import { TopBar } from '../topbar/TopBar.js';
8
+ import { alertBannerLayoutStyles, topBarLayoutStyles, sidebarLayoutStyles, mainLayoutStyles, layoutStyles, sidebarStyles, defaultSidebarTheme, defaultLayoutTheme } from './styles.js';
9
+
10
+ function Sidebar({ children, layoutSmBreakpoint = "hidden", theme = {}, cssOverrides, ...props }) {
11
+ const mergedTheme = mergeDeep(defaultSidebarTheme, theme);
12
+ return jsx("aside", { css: [sidebarStyles(mergedTheme, { layoutSmBreakpoint }), cssOverrides], ...props, children });
13
+ }
14
+ function Layout({ children, fluid = true, theme = {}, cssOverrides, ...props }) {
15
+ const mergedTheme = mergeDeep(defaultLayoutTheme, theme);
16
+ let alertBanner = null;
17
+ let topBar = null;
18
+ let sidebar = null;
19
+ let main = null;
20
+ React.Children.forEach(children, (child) => {
21
+ if (!React.isValidElement(child)) {
22
+ return;
23
+ }
24
+ if (child.type === AlertBanner) {
25
+ const alertBannerChild = child;
26
+ const alertBannerCssOverrides = Array.isArray(alertBannerChild.props.cssOverrides) ? alertBannerChild.props.cssOverrides : alertBannerChild.props.cssOverrides ? [alertBannerChild.props.cssOverrides] : [];
27
+ alertBanner ?? (alertBanner = React.cloneElement(alertBannerChild, {
28
+ cssOverrides: [alertBannerLayoutStyles(), ...alertBannerCssOverrides]
29
+ }));
30
+ return;
31
+ }
32
+ if (child.type === TopBar) {
33
+ const topBarChild = child;
34
+ const topBarCssOverrides = Array.isArray(topBarChild.props.cssOverrides) ? topBarChild.props.cssOverrides : topBarChild.props.cssOverrides ? [topBarChild.props.cssOverrides] : [];
35
+ topBar ?? (topBar = React.cloneElement(topBarChild, {
36
+ cssOverrides: [topBarLayoutStyles(), ...topBarCssOverrides]
37
+ }));
38
+ return;
39
+ }
40
+ if (child.type === Sidebar) {
41
+ const sidebarChild = child;
42
+ const sidebarCssOverrides = Array.isArray(sidebarChild.props.cssOverrides) ? sidebarChild.props.cssOverrides : sidebarChild.props.cssOverrides ? [sidebarChild.props.cssOverrides] : [];
43
+ sidebar ?? (sidebar = React.cloneElement(sidebarChild, {
44
+ cssOverrides: [sidebarLayoutStyles(), ...sidebarCssOverrides]
45
+ }));
46
+ return;
47
+ }
48
+ if (child.type === Grid) {
49
+ const gridChild = child;
50
+ const gridCssOverrides = Array.isArray(gridChild.props.cssOverrides) ? gridChild.props.cssOverrides : gridChild.props.cssOverrides ? [gridChild.props.cssOverrides] : [];
51
+ main ?? (main = React.cloneElement(gridChild, {
52
+ as: "main",
53
+ cssOverrides: [
54
+ mainLayoutStyles(mergedTheme, { fluid }),
55
+ ...gridCssOverrides
56
+ ]
57
+ }));
58
+ return;
59
+ }
60
+ if (!main) {
61
+ const childWithProps = child;
62
+ if ("cssOverrides" in childWithProps.props) {
63
+ const childCssOverrides = Array.isArray(childWithProps.props.cssOverrides) ? childWithProps.props.cssOverrides : [childWithProps.props.cssOverrides ?? css``];
64
+ main ?? (main = React.cloneElement(childWithProps, {
65
+ cssOverrides: [
66
+ mainLayoutStyles(mergedTheme, { fluid }),
67
+ ...childCssOverrides
68
+ ]
69
+ }));
70
+ } else {
71
+ main ?? (main = React.cloneElement(childWithProps, {
72
+ css: [
73
+ mainLayoutStyles(mergedTheme, { fluid }),
74
+ childWithProps.props.css
75
+ ]
76
+ }));
77
+ }
78
+ }
79
+ });
80
+ return jsxs("div", { css: [layoutStyles(mergedTheme), cssOverrides], ...props, children: [alertBanner, topBar, sidebar, main] });
81
+ }
82
+
83
+ export { Layout, Sidebar };
@@ -0,0 +1,92 @@
1
+ 'use strict';
2
+
3
+ var react = require('@emotion/react');
4
+ var layout = require('../../styleD/build/typescript/component/layout.cjs');
5
+ var mq = require('../../styleD/utils/semantic/mq.cjs');
6
+
7
+ const defaultLayoutTheme = layout.componentLayout["layout"];
8
+ const defaultSidebarTheme = layout.componentLayout["sidebar"];
9
+ const alertBannerLayoutStyles = () => {
10
+ return react.css`
11
+ grid-area: alertbanner;
12
+ `;
13
+ };
14
+ const topBarLayoutStyles = () => {
15
+ return react.css`
16
+ grid-area: topbar;
17
+ `;
18
+ };
19
+ const sidebarLayoutStyles = () => {
20
+ return react.css`
21
+ grid-area: sidebar;
22
+ `;
23
+ };
24
+ const mainLayoutStyles = (theme, { fluid }) => {
25
+ return react.css`
26
+ grid-area: main;
27
+ ${fluid ? "" : react.css`
28
+ max-width: ${theme.shared["max-width"]};
29
+ margin-left: ${theme.shared["margin-left"]};
30
+ margin-right: ${theme.shared["margin-right"]};
31
+ `}
32
+ `;
33
+ };
34
+ const layoutStyles = (theme) => {
35
+ return react.css`
36
+ display: ${theme.shared.display};
37
+ min-height: ${theme.shared.minHeight};
38
+ width: ${theme.shared.width};
39
+
40
+ grid-template-areas: ${theme.sm.gridTemplateAreas};
41
+ grid-template-columns: ${theme.sm.gridTemplateColumns};
42
+ grid-template-rows: ${theme.sm.gridTemplateRows};
43
+
44
+ ${mq.from.md} {
45
+ grid-template-areas: ${theme.md.gridTemplateAreas};
46
+ grid-template-columns: ${theme.md.gridTemplateColumns};
47
+ grid-template-rows: ${theme.md.gridTemplateRows};
48
+ }
49
+
50
+ ${mq.from.lg} {
51
+ grid-template-areas: ${theme.lg.gridTemplateAreas};
52
+ grid-template-columns: ${theme.lg.gridTemplateColumns};
53
+ grid-template-rows: ${theme.lg.gridTemplateRows};
54
+ }
55
+ `;
56
+ };
57
+ const sidebarStyles = (theme, { layoutSmBreakpoint }) => {
58
+ return react.css`
59
+ ${mq.from.sm} {
60
+ ${(() => {
61
+ switch (layoutSmBreakpoint) {
62
+ case "above-grid":
63
+ return react.css`
64
+ display: ${theme.sm.aboveGrid.display};
65
+ `;
66
+ case "hidden":
67
+ return react.css`
68
+ display: ${theme.sm.hidden.display};
69
+ `;
70
+ }
71
+ })()}
72
+ }
73
+
74
+ ${mq.from.md} {
75
+ display: ${theme.md.display};
76
+ width: ${theme.md.width};
77
+ }
78
+
79
+ ${mq.from.lg} {
80
+ width: ${theme.lg.width};
81
+ }
82
+ `;
83
+ };
84
+
85
+ exports.alertBannerLayoutStyles = alertBannerLayoutStyles;
86
+ exports.defaultLayoutTheme = defaultLayoutTheme;
87
+ exports.defaultSidebarTheme = defaultSidebarTheme;
88
+ exports.layoutStyles = layoutStyles;
89
+ exports.mainLayoutStyles = mainLayoutStyles;
90
+ exports.sidebarLayoutStyles = sidebarLayoutStyles;
91
+ exports.sidebarStyles = sidebarStyles;
92
+ exports.topBarLayoutStyles = topBarLayoutStyles;
@@ -0,0 +1,83 @@
1
+ import { css } from '@emotion/react';
2
+ import { componentLayout } from '../../styleD/build/typescript/component/layout.js';
3
+ import { from } from '../../styleD/utils/semantic/mq.js';
4
+
5
+ const defaultLayoutTheme = componentLayout["layout"];
6
+ const defaultSidebarTheme = componentLayout["sidebar"];
7
+ const alertBannerLayoutStyles = () => {
8
+ return css`
9
+ grid-area: alertbanner;
10
+ `;
11
+ };
12
+ const topBarLayoutStyles = () => {
13
+ return css`
14
+ grid-area: topbar;
15
+ `;
16
+ };
17
+ const sidebarLayoutStyles = () => {
18
+ return css`
19
+ grid-area: sidebar;
20
+ `;
21
+ };
22
+ const mainLayoutStyles = (theme, { fluid }) => {
23
+ return css`
24
+ grid-area: main;
25
+ ${fluid ? "" : css`
26
+ max-width: ${theme.shared["max-width"]};
27
+ margin-left: ${theme.shared["margin-left"]};
28
+ margin-right: ${theme.shared["margin-right"]};
29
+ `}
30
+ `;
31
+ };
32
+ const layoutStyles = (theme) => {
33
+ return css`
34
+ display: ${theme.shared.display};
35
+ min-height: ${theme.shared.minHeight};
36
+ width: ${theme.shared.width};
37
+
38
+ grid-template-areas: ${theme.sm.gridTemplateAreas};
39
+ grid-template-columns: ${theme.sm.gridTemplateColumns};
40
+ grid-template-rows: ${theme.sm.gridTemplateRows};
41
+
42
+ ${from.md} {
43
+ grid-template-areas: ${theme.md.gridTemplateAreas};
44
+ grid-template-columns: ${theme.md.gridTemplateColumns};
45
+ grid-template-rows: ${theme.md.gridTemplateRows};
46
+ }
47
+
48
+ ${from.lg} {
49
+ grid-template-areas: ${theme.lg.gridTemplateAreas};
50
+ grid-template-columns: ${theme.lg.gridTemplateColumns};
51
+ grid-template-rows: ${theme.lg.gridTemplateRows};
52
+ }
53
+ `;
54
+ };
55
+ const sidebarStyles = (theme, { layoutSmBreakpoint }) => {
56
+ return css`
57
+ ${from.sm} {
58
+ ${(() => {
59
+ switch (layoutSmBreakpoint) {
60
+ case "above-grid":
61
+ return css`
62
+ display: ${theme.sm.aboveGrid.display};
63
+ `;
64
+ case "hidden":
65
+ return css`
66
+ display: ${theme.sm.hidden.display};
67
+ `;
68
+ }
69
+ })()}
70
+ }
71
+
72
+ ${from.md} {
73
+ display: ${theme.md.display};
74
+ width: ${theme.md.width};
75
+ }
76
+
77
+ ${from.lg} {
78
+ width: ${theme.lg.width};
79
+ }
80
+ `;
81
+ };
82
+
83
+ export { alertBannerLayoutStyles, defaultLayoutTheme, defaultSidebarTheme, layoutStyles, mainLayoutStyles, sidebarLayoutStyles, sidebarStyles, topBarLayoutStyles };
package/dist/grid.cjs ADDED
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var Grid = require('./components/grid/Grid.cjs');
4
+ var grid = require('./styleD/build/typescript/component/grid.cjs');
5
+
6
+
7
+
8
+ exports.Grid = Grid.Grid;
9
+ exports.Item = Grid.Item;
10
+ exports.componentGrid = grid.componentGrid;
package/dist/grid.js ADDED
@@ -0,0 +1,2 @@
1
+ export { Grid, Item } from './components/grid/Grid.js';
2
+ export { componentGrid } from './styleD/build/typescript/component/grid.js';
package/dist/index.cjs CHANGED
@@ -10,10 +10,12 @@ var button = require('./styleD/build/typescript/component/button.cjs');
10
10
  var checkbox = require('./styleD/build/typescript/component/checkbox.cjs');
11
11
  var favicon = require('./styleD/build/typescript/component/favicon.cjs');
12
12
  var datePicker = require('./styleD/build/typescript/component/datePicker.cjs');
13
+ var grid = require('./styleD/build/typescript/component/grid.cjs');
13
14
  var form = require('./styleD/build/typescript/component/form.cjs');
14
15
  var icon = require('./styleD/build/typescript/component/icon.cjs');
15
16
  var inlineMessage = require('./styleD/build/typescript/component/inlineMessage.cjs');
16
17
  var menu = require('./styleD/build/typescript/component/menu.cjs');
18
+ var layout = require('./styleD/build/typescript/component/layout.cjs');
17
19
  var link = require('./styleD/build/typescript/component/link.cjs');
18
20
  var alertBanner = require('./styleD/build/typescript/component/alertBanner.cjs');
19
21
  var radioGroup = require('./styleD/build/typescript/component/radioGroup.cjs');
@@ -45,10 +47,12 @@ exports.componentButton = button.componentButton;
45
47
  exports.componentCheckbox = checkbox.componentCheckbox;
46
48
  exports.componentFavicon = favicon.componentFavicon;
47
49
  exports.componentDatePicker = datePicker.componentDatePicker;
50
+ exports.componentGrid = grid.componentGrid;
48
51
  exports.componentForm = form.componentForm;
49
52
  exports.componentIcon = icon.componentIcon;
50
53
  exports.componentInlineMessage = inlineMessage.componentInlineMessage;
51
54
  exports.componentMenu = menu.componentMenu;
55
+ exports.componentLayout = layout.componentLayout;
52
56
  exports.componentLink = link.componentLink;
53
57
  exports.componentAlertBanner = alertBanner.componentAlertBanner;
54
58
  exports.componentRadioGroup = radioGroup.componentRadioGroup;
package/dist/index.js CHANGED
@@ -8,10 +8,12 @@ export { componentButton } from './styleD/build/typescript/component/button.js';
8
8
  export { componentCheckbox } from './styleD/build/typescript/component/checkbox.js';
9
9
  export { componentFavicon } from './styleD/build/typescript/component/favicon.js';
10
10
  export { componentDatePicker } from './styleD/build/typescript/component/datePicker.js';
11
+ export { componentGrid } from './styleD/build/typescript/component/grid.js';
11
12
  export { componentForm } from './styleD/build/typescript/component/form.js';
12
13
  export { componentIcon } from './styleD/build/typescript/component/icon.js';
13
14
  export { componentInlineMessage } from './styleD/build/typescript/component/inlineMessage.js';
14
15
  export { componentMenu } from './styleD/build/typescript/component/menu.js';
16
+ export { componentLayout } from './styleD/build/typescript/component/layout.js';
15
17
  export { componentLink } from './styleD/build/typescript/component/link.js';
16
18
  export { componentAlertBanner } from './styleD/build/typescript/component/alertBanner.js';
17
19
  export { componentRadioGroup } from './styleD/build/typescript/component/radioGroup.js';