@forumone/throughline-reference-ds 0.2.0 → 0.3.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @forumone/throughline-reference-ds
2
2
 
3
+ ## 0.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [24bd325]
8
+ - @forumone/throughline-design-contract@0.3.0
9
+
10
+ ## 0.3.0
11
+
12
+ ### Minor Changes
13
+
14
+ - e994176: Add layout tokens and a Storybook "Foundations" section.
15
+
16
+ New `layout` tokens (container max-widths, gutter, page margin, breakpoints) emit as `--layout-*` CSS custom properties, filling the previous gap where the DS had no container/breakpoint scale. New Foundations stories — Colors, Typography, Spacing, Radii, Elevation, and **Layout & Containers** — document the tokens visually in Storybook.
17
+
3
18
  ## 0.2.0
4
19
 
5
20
  ### Minor Changes
@@ -0,0 +1,16 @@
1
+ import type { ReactNode } from 'react';
2
+ /** Shared layout chrome for every Foundations page. */
3
+ export declare function FoundationPage({ title, intro, children, }: {
4
+ title: string;
5
+ intro?: string;
6
+ children: ReactNode;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ /** A simple token reference table: name, resolved value, and a preview cell. */
9
+ export declare function TokenTable({ rows, }: {
10
+ rows: Array<{
11
+ name: string;
12
+ value: string;
13
+ preview?: ReactNode;
14
+ }>;
15
+ }): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=_helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_helpers.d.ts","sourceRoot":"","sources":["../../src/foundations/_helpers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAErD,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,SAAS,CAAA;CACpB,2CA6BA;AASD,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,EACzB,IAAI,GACL,EAAE;IACD,IAAI,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;CAClE,2CA2BA"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /** Shared layout chrome for every Foundations page. */
3
+ export function FoundationPage({ title, intro, children, }) {
4
+ return (_jsxs("div", { style: {
5
+ fontFamily: 'var(--font-family-sans)',
6
+ color: 'var(--color-text-primary)',
7
+ background: 'var(--color-bg-primary)',
8
+ padding: '2rem',
9
+ maxWidth: '64rem',
10
+ }, children: [_jsx("h1", { style: { fontSize: 'var(--font-size-4xl)', margin: '0 0 0.5rem', lineHeight: 1.15 }, children: title }), intro ? (_jsx("p", { style: {
11
+ color: 'var(--color-text-secondary)',
12
+ margin: '0 0 2rem',
13
+ maxWidth: '42rem',
14
+ lineHeight: 'var(--line-height-relaxed)',
15
+ }, children: intro })) : null, children] }));
16
+ }
17
+ const cell = {
18
+ textAlign: 'left',
19
+ padding: '0.5rem 0.75rem',
20
+ borderBottom: '1px solid var(--color-border-default)',
21
+ verticalAlign: 'middle',
22
+ };
23
+ /** A simple token reference table: name, resolved value, and a preview cell. */
24
+ export function TokenTable({ rows, }) {
25
+ return (_jsxs("table", { style: {
26
+ borderCollapse: 'collapse',
27
+ width: '100%',
28
+ fontSize: 'var(--font-size-sm)',
29
+ }, children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { style: { ...cell, color: 'var(--color-text-muted)', fontWeight: 600 }, children: "Token" }), _jsx("th", { style: { ...cell, color: 'var(--color-text-muted)', fontWeight: 600 }, children: "Value" }), _jsx("th", { style: { ...cell, color: 'var(--color-text-muted)', fontWeight: 600 }, children: "Preview" })] }) }), _jsx("tbody", { children: rows.map((row) => (_jsxs("tr", { children: [_jsx("td", { style: { ...cell, fontFamily: 'var(--font-family-mono)' }, children: row.name }), _jsx("td", { style: { ...cell, color: 'var(--color-text-secondary)' }, children: row.value }), _jsx("td", { style: cell, children: row.preview })] }, row.name))) })] }));
30
+ }
31
+ //# sourceMappingURL=_helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_helpers.js","sourceRoot":"","sources":["../../src/foundations/_helpers.tsx"],"names":[],"mappings":";AAEA,uDAAuD;AACvD,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,KAAK,EACL,QAAQ,GAKT;IACC,OAAO,CACL,eACE,KAAK,EAAE;YACL,UAAU,EAAE,yBAAyB;YACrC,KAAK,EAAE,2BAA2B;YAClC,UAAU,EAAE,yBAAyB;YACrC,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,OAAO;SAClB,aAED,aAAI,KAAK,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,YACpF,KAAK,GACH,EACJ,KAAK,CAAC,CAAC,CAAC,CACP,YACE,KAAK,EAAE;oBACL,KAAK,EAAE,6BAA6B;oBACpC,MAAM,EAAE,UAAU;oBAClB,QAAQ,EAAE,OAAO;oBACjB,UAAU,EAAE,4BAA4B;iBACzC,YAEA,KAAK,GACJ,CACL,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,IACL,CACP,CAAA;AACH,CAAC;AAED,MAAM,IAAI,GAAkB;IAC1B,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,gBAAgB;IACzB,YAAY,EAAE,uCAAuC;IACrD,aAAa,EAAE,QAAQ;CACxB,CAAA;AAED,gFAAgF;AAChF,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,GAGL;IACC,OAAO,CACL,iBACE,KAAK,EAAE;YACL,cAAc,EAAE,UAAU;YAC1B,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,qBAAqB;SAChC,aAED,0BACE,yBACE,aAAI,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,GAAG,EAAE,sBAAY,EACrF,aAAI,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,GAAG,EAAE,sBAAY,EACrF,aAAI,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,GAAG,EAAE,wBAAc,IACpF,GACC,EACR,0BACG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjB,yBACE,aAAI,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,yBAAyB,EAAE,YAAG,GAAG,CAAC,IAAI,GAAM,EAC9E,aAAI,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,6BAA6B,EAAE,YAAG,GAAG,CAAC,KAAK,GAAM,EAC9E,aAAI,KAAK,EAAE,IAAI,YAAG,GAAG,CAAC,OAAO,GAAM,KAH5B,GAAG,CAAC,IAAI,CAIZ,CACN,CAAC,GACI,IACF,CACT,CAAA;AACH,CAAC"}
@@ -2,7 +2,7 @@
2
2
  "contractVersion": "1.0.0",
3
3
  "designSystem": {
4
4
  "name": "@forumone/throughline-reference-ds",
5
- "version": "0.2.0",
5
+ "version": "0.3.1",
6
6
  "description": "A brand-neutral reference design system demonstrating contract compliance for Throughline."
7
7
  },
8
8
  "tokens": [
@@ -405,6 +405,51 @@
405
405
  "name": "radius.full",
406
406
  "value": "9999px",
407
407
  "category": "radius"
408
+ },
409
+ {
410
+ "name": "layout.container.sm",
411
+ "value": "40rem",
412
+ "category": "layout"
413
+ },
414
+ {
415
+ "name": "layout.container.md",
416
+ "value": "64rem",
417
+ "category": "layout"
418
+ },
419
+ {
420
+ "name": "layout.container.lg",
421
+ "value": "80rem",
422
+ "category": "layout"
423
+ },
424
+ {
425
+ "name": "layout.gutter",
426
+ "value": "1.5rem",
427
+ "category": "layout"
428
+ },
429
+ {
430
+ "name": "layout.margin",
431
+ "value": "1rem",
432
+ "category": "layout"
433
+ },
434
+ {
435
+ "name": "layout.breakpoint.sm",
436
+ "value": "40rem",
437
+ "category": "layout"
438
+ },
439
+ {
440
+ "name": "layout.breakpoint.md",
441
+ "value": "48rem",
442
+ "category": "layout"
443
+ },
444
+ {
445
+ "name": "layout.breakpoint.lg",
446
+ "value": "64rem",
447
+ "category": "layout"
448
+ },
449
+ {
450
+ "name": "layout.breakpoint.xl",
451
+ "value": "80rem",
452
+ "category": "layout"
408
453
  }
409
454
  ],
410
455
  "components": {
@@ -2008,7 +2053,7 @@
2008
2053
  }
2009
2054
  },
2010
2055
  "build": {
2011
- "timestamp": "2026-04-22T21:15:56.355Z",
2056
+ "timestamp": "2026-08-24T20:11:13.861Z",
2012
2057
  "source": "scripts/build-manifest.ts"
2013
2058
  }
2014
2059
  }
@@ -139,6 +139,17 @@ video {
139
139
  --radius-xl: 0.75rem;
140
140
  --radius-2xl: 1rem;
141
141
  --radius-full: 9999px;
142
+
143
+ /* Layout & Containers */
144
+ --layout-container-sm: 40rem;
145
+ --layout-container-md: 64rem;
146
+ --layout-container-lg: 80rem;
147
+ --layout-gutter: 1.5rem;
148
+ --layout-margin: 1rem;
149
+ --layout-breakpoint-sm: 40rem;
150
+ --layout-breakpoint-md: 48rem;
151
+ --layout-breakpoint-lg: 64rem;
152
+ --layout-breakpoint-xl: 80rem;
142
153
  }
143
154
 
144
155
  @media (prefers-color-scheme: dark) {
@@ -88,6 +88,17 @@
88
88
  --radius-xl: 0.75rem;
89
89
  --radius-2xl: 1rem;
90
90
  --radius-full: 9999px;
91
+
92
+ /* Layout & Containers */
93
+ --layout-container-sm: 40rem;
94
+ --layout-container-md: 64rem;
95
+ --layout-container-lg: 80rem;
96
+ --layout-gutter: 1.5rem;
97
+ --layout-margin: 1rem;
98
+ --layout-breakpoint-sm: 40rem;
99
+ --layout-breakpoint-md: 48rem;
100
+ --layout-breakpoint-lg: 64rem;
101
+ --layout-breakpoint-xl: 80rem;
91
102
  }
92
103
 
93
104
  @media (prefers-color-scheme: dark) {
@@ -2,12 +2,23 @@ import { colors, darkOverrides } from './colors.js';
2
2
  import { typography } from './typography.js';
3
3
  import { spacing } from './spacing.js';
4
4
  import { radii } from './radii.js';
5
- export { colors, darkOverrides, typography, spacing, radii };
5
+ import { layout } from './layout.js';
6
+ export { colors, darkOverrides, typography, spacing, radii, layout };
6
7
  export type { ColorToken } from './colors.js';
7
8
  export type { TypographyToken } from './typography.js';
8
9
  export type { SpacingToken } from './spacing.js';
9
10
  export type { RadiusToken } from './radii.js';
11
+ export type { LayoutToken } from './layout.js';
10
12
  export declare const allTokens: {
13
+ readonly 'layout.container.sm': "40rem";
14
+ readonly 'layout.container.md': "64rem";
15
+ readonly 'layout.container.lg': "80rem";
16
+ readonly 'layout.gutter': "1.5rem";
17
+ readonly 'layout.margin': "1rem";
18
+ readonly 'layout.breakpoint.sm': "40rem";
19
+ readonly 'layout.breakpoint.md': "48rem";
20
+ readonly 'layout.breakpoint.lg': "64rem";
21
+ readonly 'layout.breakpoint.xl': "80rem";
11
22
  readonly 'radius.none': "0";
12
23
  readonly 'radius.sm': "0.25rem";
13
24
  readonly 'radius.md': "0.375rem";
@@ -93,7 +104,7 @@ export type TokenName = keyof typeof allTokens;
93
104
  /** Returns every token in the shape the design-contract manifest expects. */
94
105
  export declare function getTokenList(): {
95
106
  name: string;
96
- value: "0" | "#FFFFFF" | "#FAFAFA" | "#F4F4F5" | "#E4E4E7" | "#D4D4D8" | "#A1A1AA" | "#71717A" | "#52525B" | "#3F3F46" | "#27272A" | "#18181B" | "#000000" | "#2563EB" | "#1D4ED8" | "#0891B2" | "#16A34A" | "#CA8A04" | "#DC2626" | "Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif" | "ui-monospace, \"SF Mono\", Monaco, Consolas, monospace" | "0.75rem" | "0.875rem" | "1rem" | "1.125rem" | "1.25rem" | "1.5rem" | "1.875rem" | "2.25rem" | "3rem" | "3.75rem" | "400" | "500" | "600" | "700" | "1.15" | "1.3" | "1.5" | "1.65" | "1.8" | "-0.025em" | "0.025em" | "1px" | "0.125rem" | "0.25rem" | "0.5rem" | "2rem" | "2.5rem" | "4rem" | "5rem" | "6rem" | "8rem" | "10rem" | "12rem" | "0.375rem" | "9999px";
107
+ value: "0" | "#FFFFFF" | "#FAFAFA" | "#F4F4F5" | "#E4E4E7" | "#D4D4D8" | "#A1A1AA" | "#71717A" | "#52525B" | "#3F3F46" | "#27272A" | "#18181B" | "#000000" | "#2563EB" | "#1D4ED8" | "#0891B2" | "#16A34A" | "#CA8A04" | "#DC2626" | "Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif" | "ui-monospace, \"SF Mono\", Monaco, Consolas, monospace" | "0.75rem" | "0.875rem" | "1rem" | "1.125rem" | "1.25rem" | "1.5rem" | "1.875rem" | "2.25rem" | "3rem" | "3.75rem" | "400" | "500" | "600" | "700" | "1.15" | "1.3" | "1.5" | "1.65" | "1.8" | "-0.025em" | "0.025em" | "1px" | "0.125rem" | "0.25rem" | "0.5rem" | "2rem" | "2.5rem" | "4rem" | "5rem" | "6rem" | "8rem" | "10rem" | "12rem" | "0.375rem" | "9999px" | "40rem" | "64rem" | "80rem" | "48rem";
97
108
  category: string;
98
109
  }[];
99
110
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAC5D,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKZ,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,SAAS,CAAA;AAE9C,6EAA6E;AAC7E,wBAAgB,YAAY;;;;IAO3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AACpE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMZ,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,SAAS,CAAA;AAE9C,6EAA6E;AAC7E,wBAAgB,YAAY;;;;IAO3B"}
@@ -2,12 +2,14 @@ import { colors, darkOverrides } from './colors.js';
2
2
  import { typography } from './typography.js';
3
3
  import { spacing } from './spacing.js';
4
4
  import { radii } from './radii.js';
5
- export { colors, darkOverrides, typography, spacing, radii };
5
+ import { layout } from './layout.js';
6
+ export { colors, darkOverrides, typography, spacing, radii, layout };
6
7
  export const allTokens = {
7
8
  ...colors,
8
9
  ...typography,
9
10
  ...spacing,
10
11
  ...radii,
12
+ ...layout,
11
13
  };
12
14
  /** Returns every token in the shape the design-contract manifest expects. */
13
15
  export function getTokenList() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAM5D,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,MAAM;IACT,GAAG,UAAU;IACb,GAAG,OAAO;IACV,GAAG,KAAK;CACA,CAAA;AAIV,6EAA6E;AAC7E,MAAM,UAAU,YAAY;IAC1B,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAA;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI;QACJ,KAAK;QACL,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAOpE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,MAAM;IACT,GAAG,UAAU;IACb,GAAG,OAAO;IACV,GAAG,KAAK;IACR,GAAG,MAAM;CACD,CAAA;AAIV,6EAA6E;AAC7E,MAAM,UAAU,YAAY;IAC1B,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAA;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI;QACJ,KAAK;QACL,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC,CAAA;AACL,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Layout & container tokens: the max-widths a page constrains to, the
3
+ * horizontal gutter/margins, and the responsive breakpoints. These are the
4
+ * values the "Layout & Containers" foundation documents. Brand projects
5
+ * override them (e.g. Forum One uses constrain 800/1440/2200, gutter 40,
6
+ * breakpoints 320–1400); the reference DS ships neutral defaults.
7
+ */
8
+ export declare const layout: {
9
+ /** Container max-widths the page content constrains to. */
10
+ readonly 'layout.container.sm': "40rem";
11
+ readonly 'layout.container.md': "64rem";
12
+ readonly 'layout.container.lg': "80rem";
13
+ /** Horizontal gutter between grid columns. */
14
+ readonly 'layout.gutter': "1.5rem";
15
+ /** Page side margins (inside the viewport, outside the container). */
16
+ readonly 'layout.margin': "1rem";
17
+ /** Responsive breakpoints (min-width). */
18
+ readonly 'layout.breakpoint.sm': "40rem";
19
+ readonly 'layout.breakpoint.md': "48rem";
20
+ readonly 'layout.breakpoint.lg': "64rem";
21
+ readonly 'layout.breakpoint.xl': "80rem";
22
+ };
23
+ export type LayoutToken = keyof typeof layout;
24
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/tokens/layout.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,MAAM;IACjB,2DAA2D;;;;IAK3D,8CAA8C;;IAE9C,sEAAsE;;IAGtE,0CAA0C;;;;;CAKlC,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,MAAM,CAAA"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Layout & container tokens: the max-widths a page constrains to, the
3
+ * horizontal gutter/margins, and the responsive breakpoints. These are the
4
+ * values the "Layout & Containers" foundation documents. Brand projects
5
+ * override them (e.g. Forum One uses constrain 800/1440/2200, gutter 40,
6
+ * breakpoints 320–1400); the reference DS ships neutral defaults.
7
+ */
8
+ export const layout = {
9
+ /** Container max-widths the page content constrains to. */
10
+ 'layout.container.sm': '40rem', // 640px — narrow prose
11
+ 'layout.container.md': '64rem', // 1024px — default content width
12
+ 'layout.container.lg': '80rem', // 1280px — wide / full-bleed sections
13
+ /** Horizontal gutter between grid columns. */
14
+ 'layout.gutter': '1.5rem', // 24px
15
+ /** Page side margins (inside the viewport, outside the container). */
16
+ 'layout.margin': '1rem', // 16px
17
+ /** Responsive breakpoints (min-width). */
18
+ 'layout.breakpoint.sm': '40rem', // 640px
19
+ 'layout.breakpoint.md': '48rem', // 768px
20
+ 'layout.breakpoint.lg': '64rem', // 1024px
21
+ 'layout.breakpoint.xl': '80rem', // 1280px
22
+ };
23
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/tokens/layout.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,2DAA2D;IAC3D,qBAAqB,EAAE,OAAO,EAAE,uBAAuB;IACvD,qBAAqB,EAAE,OAAO,EAAE,iCAAiC;IACjE,qBAAqB,EAAE,OAAO,EAAE,sCAAsC;IAEtE,8CAA8C;IAC9C,eAAe,EAAE,QAAQ,EAAE,OAAO;IAClC,sEAAsE;IACtE,eAAe,EAAE,MAAM,EAAE,OAAO;IAEhC,0CAA0C;IAC1C,sBAAsB,EAAE,OAAO,EAAE,QAAQ;IACzC,sBAAsB,EAAE,OAAO,EAAE,QAAQ;IACzC,sBAAsB,EAAE,OAAO,EAAE,SAAS;IAC1C,sBAAsB,EAAE,OAAO,EAAE,SAAS;CAClC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forumone/throughline-reference-ds",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "A competent, brand-neutral reference design system demonstrating contract compliance for Throughline.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -51,7 +51,7 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "clsx": "^2.1.1",
54
- "@forumone/throughline-design-contract": "0.2.0"
54
+ "@forumone/throughline-design-contract": "0.3.0"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@storybook/addon-a11y": "^10.3.5",