@postenbring/hedwig-react 0.0.67 → 0.0.69

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 (51) hide show
  1. package/dist/_tsup-dts-rollup.d.mts +135 -0
  2. package/dist/_tsup-dts-rollup.d.ts +135 -0
  3. package/dist/chunk-25R7DBK6.mjs +59 -0
  4. package/dist/chunk-25R7DBK6.mjs.map +1 -0
  5. package/dist/chunk-BVG5VSZK.mjs +1 -0
  6. package/dist/chunk-JDXYRFLJ.mjs +13 -0
  7. package/dist/chunk-JDXYRFLJ.mjs.map +1 -0
  8. package/dist/{chunk-QGZU7Z2W.mjs → chunk-VVPJOVFP.mjs} +27 -3
  9. package/dist/chunk-VVPJOVFP.mjs.map +1 -0
  10. package/dist/chunk-ZQHLYAJU.mjs +1 -0
  11. package/dist/chunk-ZQHLYAJU.mjs.map +1 -0
  12. package/dist/footer/footer.mjs +1 -1
  13. package/dist/footer/index.mjs +1 -1
  14. package/dist/index-no-css.d.mts +5 -1
  15. package/dist/index-no-css.d.ts +5 -1
  16. package/dist/index-no-css.js +270 -196
  17. package/dist/index-no-css.js.map +1 -1
  18. package/dist/index-no-css.mjs +30 -21
  19. package/dist/index.d.mts +5 -1
  20. package/dist/index.d.ts +5 -1
  21. package/dist/index.js +270 -196
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.mjs +30 -21
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/layout/grid/grid.d.mts +4 -0
  26. package/dist/layout/grid/grid.d.ts +4 -0
  27. package/dist/layout/grid/grid.js +122 -0
  28. package/dist/layout/grid/grid.js.map +1 -0
  29. package/dist/layout/grid/grid.mjs +12 -0
  30. package/dist/layout/grid/grid.mjs.map +1 -0
  31. package/dist/layout/grid/index.d.mts +4 -0
  32. package/dist/layout/grid/index.d.ts +4 -0
  33. package/dist/layout/grid/index.js +128 -0
  34. package/dist/layout/grid/index.js.map +1 -0
  35. package/dist/layout/grid/index.mjs +14 -0
  36. package/dist/layout/grid/index.mjs.map +1 -0
  37. package/dist/layout/index.d.mts +5 -1
  38. package/dist/layout/index.d.ts +5 -1
  39. package/dist/layout/index.js +91 -17
  40. package/dist/layout/index.js.map +1 -1
  41. package/dist/layout/index.mjs +13 -4
  42. package/dist/layout/stack/index.js +26 -2
  43. package/dist/layout/stack/index.js.map +1 -1
  44. package/dist/layout/stack/index.mjs +2 -1
  45. package/dist/layout/stack/stack.js +26 -2
  46. package/dist/layout/stack/stack.js.map +1 -1
  47. package/dist/layout/stack/stack.mjs +1 -1
  48. package/package.json +2 -2
  49. package/dist/chunk-L4GQJETB.mjs +0 -1
  50. package/dist/chunk-QGZU7Z2W.mjs.map +0 -1
  51. /package/dist/{chunk-L4GQJETB.mjs.map → chunk-BVG5VSZK.mjs.map} +0 -0
package/dist/index.mjs CHANGED
@@ -54,15 +54,22 @@ import {
54
54
  NavbarLogoAndServiceText,
55
55
  NavbarNavigation
56
56
  } from "./chunk-625SVQEP.mjs";
57
- import "./chunk-L4GQJETB.mjs";
57
+ import "./chunk-BVG5VSZK.mjs";
58
58
  import {
59
- Container
60
- } from "./chunk-I6GDRDYD.mjs";
59
+ GridComponent
60
+ } from "./chunk-JDXYRFLJ.mjs";
61
+ import "./chunk-ZQHLYAJU.mjs";
61
62
  import {
62
63
  HStack,
63
64
  Stack,
64
65
  VStack
65
- } from "./chunk-QGZU7Z2W.mjs";
66
+ } from "./chunk-VVPJOVFP.mjs";
67
+ import {
68
+ Container
69
+ } from "./chunk-I6GDRDYD.mjs";
70
+ import {
71
+ GridItem
72
+ } from "./chunk-25R7DBK6.mjs";
66
73
  import "./chunk-XLLYMQLW.mjs";
67
74
  import {
68
75
  Link
@@ -149,16 +156,19 @@ import {
149
156
  import {
150
157
  AccordionComponent
151
158
  } from "./chunk-XYIY6FHW.mjs";
159
+ import "./chunk-K6PP3ACJ.mjs";
152
160
  import {
153
- AccordionContent
154
- } from "./chunk-GUB3UCXO.mjs";
161
+ Badge,
162
+ DarkBadge,
163
+ WarningBadge,
164
+ WhiteBadge
165
+ } from "./chunk-W3D4VR4Y.mjs";
155
166
  import {
156
- AccordionHeader
157
- } from "./chunk-YXHXRUFX.mjs";
167
+ BoxComponent
168
+ } from "./chunk-NMMFIRLZ.mjs";
158
169
  import {
159
- AccordionItem
160
- } from "./chunk-62F4I3MQ.mjs";
161
- import "./chunk-VRIY65P5.mjs";
170
+ BoxCloseButton
171
+ } from "./chunk-EGXM575K.mjs";
162
172
  import "./chunk-ZOCMUEOX.mjs";
163
173
  import {
164
174
  Breadcrumbs
@@ -169,19 +179,16 @@ import {
169
179
  } from "./chunk-OUHO4LGN.mjs";
170
180
  import "./chunk-KQITCS3U.mjs";
171
181
  import "./chunk-DZNH5JHY.mjs";
172
- import "./chunk-K6PP3ACJ.mjs";
173
182
  import {
174
- Badge,
175
- DarkBadge,
176
- WarningBadge,
177
- WhiteBadge
178
- } from "./chunk-W3D4VR4Y.mjs";
183
+ AccordionContent
184
+ } from "./chunk-GUB3UCXO.mjs";
179
185
  import {
180
- BoxComponent
181
- } from "./chunk-NMMFIRLZ.mjs";
186
+ AccordionHeader
187
+ } from "./chunk-YXHXRUFX.mjs";
182
188
  import {
183
- BoxCloseButton
184
- } from "./chunk-EGXM575K.mjs";
189
+ AccordionItem
190
+ } from "./chunk-62F4I3MQ.mjs";
191
+ import "./chunk-VRIY65P5.mjs";
185
192
  import "./chunk-ZL56N4UK.mjs";
186
193
  import "./chunk-V3PAFMK5.mjs";
187
194
  import "./chunk-F4STR6SD.mjs";
@@ -237,6 +244,8 @@ export {
237
244
  FooterLinkSection,
238
245
  FooterLinkSections,
239
246
  FooterLogo,
247
+ GridComponent as Grid,
248
+ GridItem,
240
249
  HStack,
241
250
  Input,
242
251
  Link,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx"],"sourcesContent":["/**\n * Import the hedwig css file, so the consumers don't have to. Plug and play.\n *\n * NOTE: Importing the full path, not just the package name.\n * For some reason vite did not include the css during development when this file only imported the package name.\n *\n * Consumers using the `@postenbring/hedwig-css` package directly should only need to import the package without a path.\n */\nimport \"@postenbring/hedwig-css/dist/index.css\";\n\nexport * from \"./index-no-css\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,OAAO;","names":[]}
1
+ {"version":3,"sources":["../src/index.tsx"],"sourcesContent":["/**\n * Import the hedwig css file, so the consumers don't have to. Plug and play.\n *\n * NOTE: Importing the full path, not just the package name.\n * For some reason vite did not include the css during development when this file only imported the package name.\n *\n * Consumers using the `@postenbring/hedwig-css` package directly should only need to import the package without a path.\n */\nimport \"@postenbring/hedwig-css/dist/index.css\";\n\nexport * from \"./index-no-css\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,OAAO;","names":[]}
@@ -0,0 +1,4 @@
1
+ export { GridProps_alias_3 as GridProps } from '../../_tsup-dts-rollup';
2
+ export { Grid_alias_3 as Grid } from '../../_tsup-dts-rollup';
3
+ export { GridItemProps_alias_3 as GridItemProps } from '../../_tsup-dts-rollup';
4
+ export { GridItem_alias_3 as GridItem } from '../../_tsup-dts-rollup';
@@ -0,0 +1,4 @@
1
+ export { GridProps_alias_3 as GridProps } from '../../_tsup-dts-rollup';
2
+ export { Grid_alias_3 as Grid } from '../../_tsup-dts-rollup';
3
+ export { GridItemProps_alias_3 as GridItemProps } from '../../_tsup-dts-rollup';
4
+ export { GridItem_alias_3 as GridItem } from '../../_tsup-dts-rollup';
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
+ var __objRest = (source, exclude) => {
24
+ var target = {};
25
+ for (var prop in source)
26
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
27
+ target[prop] = source[prop];
28
+ if (source != null && __getOwnPropSymbols)
29
+ for (var prop of __getOwnPropSymbols(source)) {
30
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
31
+ target[prop] = source[prop];
32
+ }
33
+ return target;
34
+ };
35
+ var __export = (target, all) => {
36
+ for (var name in all)
37
+ __defProp(target, name, { get: all[name], enumerable: true });
38
+ };
39
+ var __copyProps = (to, from, except, desc) => {
40
+ if (from && typeof from === "object" || typeof from === "function") {
41
+ for (let key of __getOwnPropNames(from))
42
+ if (!__hasOwnProp.call(to, key) && key !== except)
43
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
44
+ }
45
+ return to;
46
+ };
47
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
48
+
49
+ // src/layout/grid/grid.tsx
50
+ var grid_exports = {};
51
+ __export(grid_exports, {
52
+ Grid: () => Grid,
53
+ GridItem: () => GridItem
54
+ });
55
+ module.exports = __toCommonJS(grid_exports);
56
+ var import_typed_classname = require("@postenbring/hedwig-css/typed-classname");
57
+ var import_react_slot = require("@radix-ui/react-slot");
58
+ var import_react = require("react");
59
+
60
+ // src/layout/responsive.ts
61
+ function getResponsiveProps(variable, inputValues, valueTransformer = (value) => String(value)) {
62
+ if (!inputValues)
63
+ return {};
64
+ if (typeof inputValues !== "object") {
65
+ return { [`${variable}-initial`]: valueTransformer(inputValues) };
66
+ }
67
+ const result = {};
68
+ for (const [key, value] of Object.entries(inputValues)) {
69
+ result[`${variable}-${key}`] = valueTransformer(value);
70
+ }
71
+ return result;
72
+ }
73
+
74
+ // src/layout/spacing.ts
75
+ function getSpacingVariable(size) {
76
+ return `var(--hds-spacing-${size})`;
77
+ }
78
+
79
+ // src/layout/grid/grid.tsx
80
+ var import_jsx_runtime = require("react/jsx-runtime");
81
+ var Grid = (0, import_react.forwardRef)(
82
+ (_a, ref) => {
83
+ var _b = _a, { children, asChild, className, span, center, style: _style, gap, gapX, gapY } = _b, rest = __objRest(_b, ["children", "asChild", "className", "span", "center", "style", "gap", "gapX", "gapY"]);
84
+ const Component = asChild ? import_react_slot.Slot : "div";
85
+ const style = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, _style), getResponsiveProps("--hds-grid-gap", gap, getSpacingVariable)), getResponsiveProps("--hds-grid-gap-x", gapX, getSpacingVariable)), getResponsiveProps("--hds-grid-gap-y", gapY, getSpacingVariable)), getResponsiveProps("--hds-grid-span", span)), getResponsiveProps("--hds-grid-center", center, (value) => value ? "1" : "0"));
86
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
87
+ Component,
88
+ __spreadProps(__spreadValues({
89
+ style,
90
+ className: (0, import_typed_classname.clsx)("hds-grid", className),
91
+ ref
92
+ }, rest), {
93
+ children
94
+ })
95
+ );
96
+ }
97
+ );
98
+ Grid.displayName = "Grid";
99
+ var GridItem = (0, import_react.forwardRef)(
100
+ (_a, ref) => {
101
+ var _b = _a, { children, asChild, className, span, center, style: _style } = _b, rest = __objRest(_b, ["children", "asChild", "className", "span", "center", "style"]);
102
+ const Component = asChild ? import_react_slot.Slot : "div";
103
+ const style = __spreadValues(__spreadValues(__spreadValues({}, _style), getResponsiveProps("--hds-grid-item-span", span)), getResponsiveProps("--hds-grid-item-center", center, (value) => value ? "1" : "0"));
104
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
105
+ Component,
106
+ __spreadProps(__spreadValues({
107
+ style,
108
+ className: (0, import_typed_classname.clsx)("hds-grid__item", className),
109
+ ref
110
+ }, rest), {
111
+ children
112
+ })
113
+ );
114
+ }
115
+ );
116
+ GridItem.displayName = "Grid.Item";
117
+ // Annotate the CommonJS export names for ESM import in node:
118
+ 0 && (module.exports = {
119
+ Grid,
120
+ GridItem
121
+ });
122
+ //# sourceMappingURL=grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/layout/grid/grid.tsx","../../../src/layout/responsive.ts","../../../src/layout/spacing.ts"],"sourcesContent":["import { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { forwardRef } from \"react\";\nimport { getResponsiveProps, type ResponsiveProp } from \"../responsive\";\nimport { type SpacingSizes, type ResponsiveSpacingSizes, getSpacingVariable } from \"../spacing\";\n\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n\n /**\n * Space between grid items. Both horizontal and vertical.\n *\n * Use the responsive shorthand `12-16` to jump a level at the `large` breakpoint.\n *\n * Or use the responsive object `{ initial: 40, large: 64 }` to set different values at different breakpoints.\n *\n * Use `gapX` and `gapY` to set different values for horizontal and vertical spacing.\n */\n gap?: ResponsiveProp<SpacingSizes> | ResponsiveSpacingSizes;\n\n /**\n * Space between grid items horizontally\n */\n gapX?: ResponsiveProp<SpacingSizes> | ResponsiveSpacingSizes;\n\n /**\n * Space between grid items vertically\n */\n gapY?: ResponsiveProp<SpacingSizes> | ResponsiveSpacingSizes;\n\n /**\n * Column span for the grid items\n *\n * `default` is `12`\n */\n span?: ResponsiveProp<1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12>;\n\n /**\n * Center grid items horizontally\n *\n * Offsets the start position of the grid items relative to their span so that it appears centered.\n *\n * assumes a span of 2, 4, 6, 8, or 10\n *\n * a span of `12` is 100% width and centering has no effect\n *\n * `default` is `false`\n */\n center?: ResponsiveProp<boolean>;\n\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean;\n}\n\n/**\n * 🚧 A simple opionated abstraction over CSS Grid.\n *\n * The grid is always a 12 column grid.\n *\n * example\n * ```tsx\n * <Grid gap=\"12-16\" span={{ small: 6 }}>\n * <div>6/12</div>\n * <div>6/12</div>\n * <Grid.Item span={{ small: 12 }}>12/12</Grid.Item>\n * <div>6/12</div>\n * <div>6/12</div>\n * </Grid>\n * ```\n */\nexport const Grid = forwardRef<HTMLDivElement, GridProps>(\n (\n { children, asChild, className, span, center, style: _style, gap, gapX, gapY, ...rest },\n ref,\n ) => {\n const Component = asChild ? Slot : \"div\";\n const style: React.CSSProperties = {\n ..._style,\n ...getResponsiveProps(\"--hds-grid-gap\", gap, getSpacingVariable),\n ...getResponsiveProps(\"--hds-grid-gap-x\", gapX, getSpacingVariable),\n ...getResponsiveProps(\"--hds-grid-gap-y\", gapY, getSpacingVariable),\n ...getResponsiveProps(\"--hds-grid-span\", span),\n ...getResponsiveProps(\"--hds-grid-center\", center, (value) => (value ? \"1\" : \"0\")),\n };\n return (\n <Component\n style={style}\n className={clsx(\"hds-grid\", className as undefined)}\n ref={ref}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\nGrid.displayName = \"Grid\";\n\nexport interface GridItemProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n\n /**\n * Column span for the grid item\n *\n * `default` is `12`\n */\n span?: ResponsiveProp<1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12>;\n\n /**\n * Center the grid item horizontally\n *\n * Offsets the start position of the grid item relative to it's span so that it appears centered.\n *\n * assumes a span of 2, 4, 6, 8, or 10\n *\n * a span of `12` is 100% width and centering has no effect\n *\n * `default` is `false`\n */\n center?: ResponsiveProp<boolean>;\n\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean;\n}\n\n/**\n * 🚧 Grid.Item\n *\n * Use as the direct child of a `Grid` to override `span` and `center` for individual items.\n */\nexport const GridItem = forwardRef<HTMLDivElement, GridItemProps>(\n ({ children, asChild, className, span, center, style: _style, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n const style: React.CSSProperties = {\n ..._style,\n ...getResponsiveProps(\"--hds-grid-item-span\", span),\n ...getResponsiveProps(\"--hds-grid-item-center\", center, (value) => (value ? \"1\" : \"0\")),\n };\n return (\n <Component\n style={style}\n className={clsx(\"hds-grid__item\", className as undefined)}\n ref={ref}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\nGridItem.displayName = \"Grid.Item\";\n","type Breakpoints = \"initial\" | \"small\" | \"medium\" | \"large\" | \"xlarge\";\n\ntype ResponsiveValues<T> = {\n [Breakpoint in Breakpoints]?: T;\n};\n\nexport type ResponsiveProp<T> = T | ResponsiveValues<T>;\n\nexport function getResponsiveProps<T>(\n variable: `--hds-${string}`,\n inputValues?: ResponsiveProp<T>,\n valueTransformer: (value: T) => string = (value) => String(value),\n) {\n if (!inputValues) return {};\n\n if (typeof inputValues !== \"object\") {\n return { [`${variable}-initial`]: valueTransformer(inputValues) };\n }\n\n const result: Record<string, string> = {};\n for (const [key, value] of Object.entries(inputValues as ResponsiveValues<T>)) {\n result[`${variable}-${key}`] = valueTransformer(value);\n }\n\n return result;\n}\n","// TODO: Get from tokens package\n// For now it's fine, since it's still in this monorepo\nconst spacingSizes = {\n \"4\": \"4\",\n \"8\": \"8\",\n \"12\": \"12\",\n \"16\": \"16\",\n \"20\": \"20\",\n \"24\": \"24\",\n \"32\": \"32\",\n \"40\": \"40\",\n \"48\": \"48\",\n \"64\": \"64\",\n \"80\": \"80\",\n \"120\": \"120\",\n} as const;\nexport type SpacingSizes = keyof typeof spacingSizes;\n\nconst responsiveSpacingSizes = {\n \"4-8\": \"4-8\",\n \"8-12\": \"8-12\",\n \"12-16\": \"12-16\",\n \"16-20\": \"16-20\",\n \"20-24\": \"20-24\",\n \"24-32\": \"24-32\",\n \"32-40\": \"32-40\",\n \"40-48\": \"40-48\",\n \"48-64\": \"48-64\",\n \"64-80\": \"64-80\",\n \"80-120\": \"80-120\",\n \"120-160\": \"120-160\",\n} as const;\nexport type ResponsiveSpacingSizes = keyof typeof responsiveSpacingSizes;\n\nexport function getSpacingVariable(size: SpacingSizes | ResponsiveSpacingSizes) {\n return `var(--hds-spacing-${size})`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAqB;AACrB,wBAAqB;AACrB,mBAA2B;;;ACMpB,SAAS,mBACd,UACA,aACA,mBAAyC,CAAC,UAAU,OAAO,KAAK,GAChE;AACA,MAAI,CAAC;AAAa,WAAO,CAAC;AAE1B,MAAI,OAAO,gBAAgB,UAAU;AACnC,WAAO,EAAE,CAAC,GAAG,QAAQ,UAAU,GAAG,iBAAiB,WAAW,EAAE;AAAA,EAClE;AAEA,QAAM,SAAiC,CAAC;AACxC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,WAAkC,GAAG;AAC7E,WAAO,GAAG,QAAQ,IAAI,GAAG,EAAE,IAAI,iBAAiB,KAAK;AAAA,EACvD;AAEA,SAAO;AACT;;;ACSO,SAAS,mBAAmB,MAA6C;AAC9E,SAAO,qBAAqB,IAAI;AAClC;;;AFmDM;AAfC,IAAM,WAAO;AAAA,EAClB,CACE,IACA,QACG;AAFH,iBAAE,YAAU,SAAS,WAAW,MAAM,QAAQ,OAAO,QAAQ,KAAK,MAAM,KA1E5E,IA0EI,IAAiF,iBAAjF,IAAiF,CAA/E,YAAU,WAAS,aAAW,QAAM,UAAQ,SAAe,OAAK,QAAM;AAGxE,UAAM,YAAY,UAAU,yBAAO;AACnC,UAAM,QAA6B,8FAC9B,SACA,mBAAmB,kBAAkB,KAAK,kBAAkB,IAC5D,mBAAmB,oBAAoB,MAAM,kBAAkB,IAC/D,mBAAmB,oBAAoB,MAAM,kBAAkB,IAC/D,mBAAmB,mBAAmB,IAAI,IAC1C,mBAAmB,qBAAqB,QAAQ,CAAC,UAAW,QAAQ,MAAM,GAAI;AAEnF,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW,6BAAK,YAAY,SAAsB;AAAA,QAClD;AAAA,SACI,OAJL;AAAA,QAME;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,KAAK,cAAc;AAoCZ,IAAM,eAAW;AAAA,EACtB,CAAC,IAAwE,QAAQ;AAAhF,iBAAE,YAAU,SAAS,WAAW,MAAM,QAAQ,OAAO,OAvIxD,IAuIG,IAAgE,iBAAhE,IAAgE,CAA9D,YAAU,WAAS,aAAW,QAAM,UAAQ;AAC7C,UAAM,YAAY,UAAU,yBAAO;AACnC,UAAM,QAA6B,iDAC9B,SACA,mBAAmB,wBAAwB,IAAI,IAC/C,mBAAmB,0BAA0B,QAAQ,CAAC,UAAW,QAAQ,MAAM,GAAI;AAExF,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW,6BAAK,kBAAkB,SAAsB;AAAA,QACxD;AAAA,SACI,OAJL;AAAA,QAME;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;","names":[]}
@@ -0,0 +1,12 @@
1
+ import {
2
+ Grid,
3
+ GridItem
4
+ } from "../../chunk-25R7DBK6.mjs";
5
+ import "../../chunk-F4STR6SD.mjs";
6
+ import "../../chunk-NE6W2PCD.mjs";
7
+ import "../../chunk-R4SQKVDQ.mjs";
8
+ export {
9
+ Grid,
10
+ GridItem
11
+ };
12
+ //# sourceMappingURL=grid.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,4 @@
1
+ export { Grid_alias_4 as Grid } from '../../_tsup-dts-rollup';
2
+ export { GridItem_alias_4 as GridItem } from '../../_tsup-dts-rollup';
3
+ export { GridProps_alias_4 as GridProps } from '../../_tsup-dts-rollup';
4
+ export { GridItemProps_alias_4 as GridItemProps } from '../../_tsup-dts-rollup';
@@ -0,0 +1,4 @@
1
+ export { Grid_alias_4 as Grid } from '../../_tsup-dts-rollup';
2
+ export { GridItem_alias_4 as GridItem } from '../../_tsup-dts-rollup';
3
+ export { GridProps_alias_4 as GridProps } from '../../_tsup-dts-rollup';
4
+ export { GridItemProps_alias_4 as GridItemProps } from '../../_tsup-dts-rollup';
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
+ var __objRest = (source, exclude) => {
24
+ var target = {};
25
+ for (var prop in source)
26
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
27
+ target[prop] = source[prop];
28
+ if (source != null && __getOwnPropSymbols)
29
+ for (var prop of __getOwnPropSymbols(source)) {
30
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
31
+ target[prop] = source[prop];
32
+ }
33
+ return target;
34
+ };
35
+ var __export = (target, all) => {
36
+ for (var name in all)
37
+ __defProp(target, name, { get: all[name], enumerable: true });
38
+ };
39
+ var __copyProps = (to, from, except, desc) => {
40
+ if (from && typeof from === "object" || typeof from === "function") {
41
+ for (let key of __getOwnPropNames(from))
42
+ if (!__hasOwnProp.call(to, key) && key !== except)
43
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
44
+ }
45
+ return to;
46
+ };
47
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
48
+
49
+ // src/layout/grid/index.tsx
50
+ var grid_exports = {};
51
+ __export(grid_exports, {
52
+ Grid: () => GridComponent,
53
+ GridItem: () => GridItem
54
+ });
55
+ module.exports = __toCommonJS(grid_exports);
56
+
57
+ // src/layout/grid/grid.tsx
58
+ var import_typed_classname = require("@postenbring/hedwig-css/typed-classname");
59
+ var import_react_slot = require("@radix-ui/react-slot");
60
+ var import_react = require("react");
61
+
62
+ // src/layout/responsive.ts
63
+ function getResponsiveProps(variable, inputValues, valueTransformer = (value) => String(value)) {
64
+ if (!inputValues)
65
+ return {};
66
+ if (typeof inputValues !== "object") {
67
+ return { [`${variable}-initial`]: valueTransformer(inputValues) };
68
+ }
69
+ const result = {};
70
+ for (const [key, value] of Object.entries(inputValues)) {
71
+ result[`${variable}-${key}`] = valueTransformer(value);
72
+ }
73
+ return result;
74
+ }
75
+
76
+ // src/layout/spacing.ts
77
+ function getSpacingVariable(size) {
78
+ return `var(--hds-spacing-${size})`;
79
+ }
80
+
81
+ // src/layout/grid/grid.tsx
82
+ var import_jsx_runtime = require("react/jsx-runtime");
83
+ var Grid = (0, import_react.forwardRef)(
84
+ (_a, ref) => {
85
+ var _b = _a, { children, asChild, className, span, center, style: _style, gap, gapX, gapY } = _b, rest = __objRest(_b, ["children", "asChild", "className", "span", "center", "style", "gap", "gapX", "gapY"]);
86
+ const Component = asChild ? import_react_slot.Slot : "div";
87
+ const style = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, _style), getResponsiveProps("--hds-grid-gap", gap, getSpacingVariable)), getResponsiveProps("--hds-grid-gap-x", gapX, getSpacingVariable)), getResponsiveProps("--hds-grid-gap-y", gapY, getSpacingVariable)), getResponsiveProps("--hds-grid-span", span)), getResponsiveProps("--hds-grid-center", center, (value) => value ? "1" : "0"));
88
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
89
+ Component,
90
+ __spreadProps(__spreadValues({
91
+ style,
92
+ className: (0, import_typed_classname.clsx)("hds-grid", className),
93
+ ref
94
+ }, rest), {
95
+ children
96
+ })
97
+ );
98
+ }
99
+ );
100
+ Grid.displayName = "Grid";
101
+ var GridItem = (0, import_react.forwardRef)(
102
+ (_a, ref) => {
103
+ var _b = _a, { children, asChild, className, span, center, style: _style } = _b, rest = __objRest(_b, ["children", "asChild", "className", "span", "center", "style"]);
104
+ const Component = asChild ? import_react_slot.Slot : "div";
105
+ const style = __spreadValues(__spreadValues(__spreadValues({}, _style), getResponsiveProps("--hds-grid-item-span", span)), getResponsiveProps("--hds-grid-item-center", center, (value) => value ? "1" : "0"));
106
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
107
+ Component,
108
+ __spreadProps(__spreadValues({
109
+ style,
110
+ className: (0, import_typed_classname.clsx)("hds-grid__item", className),
111
+ ref
112
+ }, rest), {
113
+ children
114
+ })
115
+ );
116
+ }
117
+ );
118
+ GridItem.displayName = "Grid.Item";
119
+
120
+ // src/layout/grid/index.tsx
121
+ var GridComponent = Grid;
122
+ GridComponent.Item = GridItem;
123
+ // Annotate the CommonJS export names for ESM import in node:
124
+ 0 && (module.exports = {
125
+ Grid,
126
+ GridItem
127
+ });
128
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/layout/grid/index.tsx","../../../src/layout/grid/grid.tsx","../../../src/layout/responsive.ts","../../../src/layout/spacing.ts"],"sourcesContent":["import { Grid, GridItem } from \"./grid\";\n\nconst GridComponent = Grid as typeof Grid & {\n Item: typeof GridItem;\n};\n\nGridComponent.Item = GridItem;\n\nexport { GridComponent as Grid, GridItem };\n\nexport type * from \"./grid\";\n","import { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { forwardRef } from \"react\";\nimport { getResponsiveProps, type ResponsiveProp } from \"../responsive\";\nimport { type SpacingSizes, type ResponsiveSpacingSizes, getSpacingVariable } from \"../spacing\";\n\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n\n /**\n * Space between grid items. Both horizontal and vertical.\n *\n * Use the responsive shorthand `12-16` to jump a level at the `large` breakpoint.\n *\n * Or use the responsive object `{ initial: 40, large: 64 }` to set different values at different breakpoints.\n *\n * Use `gapX` and `gapY` to set different values for horizontal and vertical spacing.\n */\n gap?: ResponsiveProp<SpacingSizes> | ResponsiveSpacingSizes;\n\n /**\n * Space between grid items horizontally\n */\n gapX?: ResponsiveProp<SpacingSizes> | ResponsiveSpacingSizes;\n\n /**\n * Space between grid items vertically\n */\n gapY?: ResponsiveProp<SpacingSizes> | ResponsiveSpacingSizes;\n\n /**\n * Column span for the grid items\n *\n * `default` is `12`\n */\n span?: ResponsiveProp<1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12>;\n\n /**\n * Center grid items horizontally\n *\n * Offsets the start position of the grid items relative to their span so that it appears centered.\n *\n * assumes a span of 2, 4, 6, 8, or 10\n *\n * a span of `12` is 100% width and centering has no effect\n *\n * `default` is `false`\n */\n center?: ResponsiveProp<boolean>;\n\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean;\n}\n\n/**\n * 🚧 A simple opionated abstraction over CSS Grid.\n *\n * The grid is always a 12 column grid.\n *\n * example\n * ```tsx\n * <Grid gap=\"12-16\" span={{ small: 6 }}>\n * <div>6/12</div>\n * <div>6/12</div>\n * <Grid.Item span={{ small: 12 }}>12/12</Grid.Item>\n * <div>6/12</div>\n * <div>6/12</div>\n * </Grid>\n * ```\n */\nexport const Grid = forwardRef<HTMLDivElement, GridProps>(\n (\n { children, asChild, className, span, center, style: _style, gap, gapX, gapY, ...rest },\n ref,\n ) => {\n const Component = asChild ? Slot : \"div\";\n const style: React.CSSProperties = {\n ..._style,\n ...getResponsiveProps(\"--hds-grid-gap\", gap, getSpacingVariable),\n ...getResponsiveProps(\"--hds-grid-gap-x\", gapX, getSpacingVariable),\n ...getResponsiveProps(\"--hds-grid-gap-y\", gapY, getSpacingVariable),\n ...getResponsiveProps(\"--hds-grid-span\", span),\n ...getResponsiveProps(\"--hds-grid-center\", center, (value) => (value ? \"1\" : \"0\")),\n };\n return (\n <Component\n style={style}\n className={clsx(\"hds-grid\", className as undefined)}\n ref={ref}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\nGrid.displayName = \"Grid\";\n\nexport interface GridItemProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n\n /**\n * Column span for the grid item\n *\n * `default` is `12`\n */\n span?: ResponsiveProp<1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12>;\n\n /**\n * Center the grid item horizontally\n *\n * Offsets the start position of the grid item relative to it's span so that it appears centered.\n *\n * assumes a span of 2, 4, 6, 8, or 10\n *\n * a span of `12` is 100% width and centering has no effect\n *\n * `default` is `false`\n */\n center?: ResponsiveProp<boolean>;\n\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean;\n}\n\n/**\n * 🚧 Grid.Item\n *\n * Use as the direct child of a `Grid` to override `span` and `center` for individual items.\n */\nexport const GridItem = forwardRef<HTMLDivElement, GridItemProps>(\n ({ children, asChild, className, span, center, style: _style, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n const style: React.CSSProperties = {\n ..._style,\n ...getResponsiveProps(\"--hds-grid-item-span\", span),\n ...getResponsiveProps(\"--hds-grid-item-center\", center, (value) => (value ? \"1\" : \"0\")),\n };\n return (\n <Component\n style={style}\n className={clsx(\"hds-grid__item\", className as undefined)}\n ref={ref}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\nGridItem.displayName = \"Grid.Item\";\n","type Breakpoints = \"initial\" | \"small\" | \"medium\" | \"large\" | \"xlarge\";\n\ntype ResponsiveValues<T> = {\n [Breakpoint in Breakpoints]?: T;\n};\n\nexport type ResponsiveProp<T> = T | ResponsiveValues<T>;\n\nexport function getResponsiveProps<T>(\n variable: `--hds-${string}`,\n inputValues?: ResponsiveProp<T>,\n valueTransformer: (value: T) => string = (value) => String(value),\n) {\n if (!inputValues) return {};\n\n if (typeof inputValues !== \"object\") {\n return { [`${variable}-initial`]: valueTransformer(inputValues) };\n }\n\n const result: Record<string, string> = {};\n for (const [key, value] of Object.entries(inputValues as ResponsiveValues<T>)) {\n result[`${variable}-${key}`] = valueTransformer(value);\n }\n\n return result;\n}\n","// TODO: Get from tokens package\n// For now it's fine, since it's still in this monorepo\nconst spacingSizes = {\n \"4\": \"4\",\n \"8\": \"8\",\n \"12\": \"12\",\n \"16\": \"16\",\n \"20\": \"20\",\n \"24\": \"24\",\n \"32\": \"32\",\n \"40\": \"40\",\n \"48\": \"48\",\n \"64\": \"64\",\n \"80\": \"80\",\n \"120\": \"120\",\n} as const;\nexport type SpacingSizes = keyof typeof spacingSizes;\n\nconst responsiveSpacingSizes = {\n \"4-8\": \"4-8\",\n \"8-12\": \"8-12\",\n \"12-16\": \"12-16\",\n \"16-20\": \"16-20\",\n \"20-24\": \"20-24\",\n \"24-32\": \"24-32\",\n \"32-40\": \"32-40\",\n \"40-48\": \"40-48\",\n \"48-64\": \"48-64\",\n \"64-80\": \"64-80\",\n \"80-120\": \"80-120\",\n \"120-160\": \"120-160\",\n} as const;\nexport type ResponsiveSpacingSizes = keyof typeof responsiveSpacingSizes;\n\nexport function getSpacingVariable(size: SpacingSizes | ResponsiveSpacingSizes) {\n return `var(--hds-spacing-${size})`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,6BAAqB;AACrB,wBAAqB;AACrB,mBAA2B;;;ACMpB,SAAS,mBACd,UACA,aACA,mBAAyC,CAAC,UAAU,OAAO,KAAK,GAChE;AACA,MAAI,CAAC;AAAa,WAAO,CAAC;AAE1B,MAAI,OAAO,gBAAgB,UAAU;AACnC,WAAO,EAAE,CAAC,GAAG,QAAQ,UAAU,GAAG,iBAAiB,WAAW,EAAE;AAAA,EAClE;AAEA,QAAM,SAAiC,CAAC;AACxC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,WAAkC,GAAG;AAC7E,WAAO,GAAG,QAAQ,IAAI,GAAG,EAAE,IAAI,iBAAiB,KAAK;AAAA,EACvD;AAEA,SAAO;AACT;;;ACSO,SAAS,mBAAmB,MAA6C;AAC9E,SAAO,qBAAqB,IAAI;AAClC;;;AFmDM;AAfC,IAAM,WAAO;AAAA,EAClB,CACE,IACA,QACG;AAFH,iBAAE,YAAU,SAAS,WAAW,MAAM,QAAQ,OAAO,QAAQ,KAAK,MAAM,KA1E5E,IA0EI,IAAiF,iBAAjF,IAAiF,CAA/E,YAAU,WAAS,aAAW,QAAM,UAAQ,SAAe,OAAK,QAAM;AAGxE,UAAM,YAAY,UAAU,yBAAO;AACnC,UAAM,QAA6B,8FAC9B,SACA,mBAAmB,kBAAkB,KAAK,kBAAkB,IAC5D,mBAAmB,oBAAoB,MAAM,kBAAkB,IAC/D,mBAAmB,oBAAoB,MAAM,kBAAkB,IAC/D,mBAAmB,mBAAmB,IAAI,IAC1C,mBAAmB,qBAAqB,QAAQ,CAAC,UAAW,QAAQ,MAAM,GAAI;AAEnF,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW,6BAAK,YAAY,SAAsB;AAAA,QAClD;AAAA,SACI,OAJL;AAAA,QAME;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,KAAK,cAAc;AAoCZ,IAAM,eAAW;AAAA,EACtB,CAAC,IAAwE,QAAQ;AAAhF,iBAAE,YAAU,SAAS,WAAW,MAAM,QAAQ,OAAO,OAvIxD,IAuIG,IAAgE,iBAAhE,IAAgE,CAA9D,YAAU,WAAS,aAAW,QAAM,UAAQ;AAC7C,UAAM,YAAY,UAAU,yBAAO;AACnC,UAAM,QAA6B,iDAC9B,SACA,mBAAmB,wBAAwB,IAAI,IAC/C,mBAAmB,0BAA0B,QAAQ,CAAC,UAAW,QAAQ,MAAM,GAAI;AAExF,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW,6BAAK,kBAAkB,SAAsB;AAAA,QACxD;AAAA,SACI,OAJL;AAAA,QAME;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;;;ADxJvB,IAAM,gBAAgB;AAItB,cAAc,OAAO;","names":[]}
@@ -0,0 +1,14 @@
1
+ import {
2
+ GridComponent
3
+ } from "../../chunk-JDXYRFLJ.mjs";
4
+ import {
5
+ GridItem
6
+ } from "../../chunk-25R7DBK6.mjs";
7
+ import "../../chunk-F4STR6SD.mjs";
8
+ import "../../chunk-NE6W2PCD.mjs";
9
+ import "../../chunk-R4SQKVDQ.mjs";
10
+ export {
11
+ GridComponent as Grid,
12
+ GridItem
13
+ };
14
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,6 +1,10 @@
1
1
  export { ContainerProps_alias_2 as ContainerProps } from '../_tsup-dts-rollup';
2
2
  export { Container_alias_2 as Container } from '../_tsup-dts-rollup';
3
- export { StackProps_alias_2 as StackProps } from '../_tsup-dts-rollup';
3
+ export { Grid_alias_2 as Grid } from '../_tsup-dts-rollup';
4
+ export { GridItem_alias_2 as GridItem } from '../_tsup-dts-rollup';
5
+ export { GridProps_alias_2 as GridProps } from '../_tsup-dts-rollup';
6
+ export { GridItemProps_alias_2 as GridItemProps } from '../_tsup-dts-rollup';
4
7
  export { Stack_alias_2 as Stack } from '../_tsup-dts-rollup';
5
8
  export { HStack_alias_2 as HStack } from '../_tsup-dts-rollup';
6
9
  export { VStack_alias_2 as VStack } from '../_tsup-dts-rollup';
10
+ export { StackProps_alias_2 as StackProps } from '../_tsup-dts-rollup';
@@ -1,6 +1,10 @@
1
1
  export { ContainerProps_alias_2 as ContainerProps } from '../_tsup-dts-rollup';
2
2
  export { Container_alias_2 as Container } from '../_tsup-dts-rollup';
3
- export { StackProps_alias_2 as StackProps } from '../_tsup-dts-rollup';
3
+ export { Grid_alias_2 as Grid } from '../_tsup-dts-rollup';
4
+ export { GridItem_alias_2 as GridItem } from '../_tsup-dts-rollup';
5
+ export { GridProps_alias_2 as GridProps } from '../_tsup-dts-rollup';
6
+ export { GridItemProps_alias_2 as GridItemProps } from '../_tsup-dts-rollup';
4
7
  export { Stack_alias_2 as Stack } from '../_tsup-dts-rollup';
5
8
  export { HStack_alias_2 as HStack } from '../_tsup-dts-rollup';
6
9
  export { VStack_alias_2 as VStack } from '../_tsup-dts-rollup';
10
+ export { StackProps_alias_2 as StackProps } from '../_tsup-dts-rollup';
@@ -50,6 +50,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
50
50
  var layout_exports = {};
51
51
  __export(layout_exports, {
52
52
  Container: () => Container,
53
+ Grid: () => GridComponent,
54
+ GridItem: () => GridItem,
53
55
  HStack: () => HStack,
54
56
  Stack: () => Stack,
55
57
  VStack: () => VStack
@@ -79,16 +81,10 @@ var Container = (0, import_react.forwardRef)(
79
81
  );
80
82
  Container.displayName = "Container";
81
83
 
82
- // src/layout/stack/stack.tsx
83
- var React = require("react");
84
+ // src/layout/grid/grid.tsx
84
85
  var import_typed_classname2 = require("@postenbring/hedwig-css/typed-classname");
85
- var import_react2 = require("react");
86
86
  var import_react_slot = require("@radix-ui/react-slot");
87
-
88
- // src/layout/spacing.ts
89
- function getSpacingVariable(size) {
90
- return `var(--hds-spacing-${size})`;
91
- }
87
+ var import_react2 = require("react");
92
88
 
93
89
  // src/layout/responsive.ts
94
90
  function getResponsiveProps(variable, inputValues, valueTransformer = (value) => String(value)) {
@@ -104,18 +100,94 @@ function getResponsiveProps(variable, inputValues, valueTransformer = (value) =>
104
100
  return result;
105
101
  }
106
102
 
107
- // src/layout/stack/stack.tsx
103
+ // src/layout/spacing.ts
104
+ function getSpacingVariable(size) {
105
+ return `var(--hds-spacing-${size})`;
106
+ }
107
+
108
+ // src/layout/grid/grid.tsx
108
109
  var import_jsx_runtime2 = require("react/jsx-runtime");
109
- var Stack = (0, import_react2.forwardRef)(
110
+ var Grid = (0, import_react2.forwardRef)(
110
111
  (_a, ref) => {
111
- var _b = _a, { children, asChild, className, style: _style, gap, direction, wrap, align, justify } = _b, rest = __objRest(_b, ["children", "asChild", "className", "style", "gap", "direction", "wrap", "align", "justify"]);
112
+ var _b = _a, { children, asChild, className, span, center, style: _style, gap, gapX, gapY } = _b, rest = __objRest(_b, ["children", "asChild", "className", "span", "center", "style", "gap", "gapX", "gapY"]);
112
113
  const Component = asChild ? import_react_slot.Slot : "div";
113
- const style = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, _style), getResponsiveProps("--hds-stack-gap", gap, getSpacingVariable)), getResponsiveProps("--hds-stack-direction", direction)), getResponsiveProps("--hds-stack-wrap", wrap, (value) => value ? "wrap" : "nowrap")), getResponsiveProps("--hds-stack-align", align)), getResponsiveProps("--hds-stack-justify", justify));
114
+ const style = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, _style), getResponsiveProps("--hds-grid-gap", gap, getSpacingVariable)), getResponsiveProps("--hds-grid-gap-x", gapX, getSpacingVariable)), getResponsiveProps("--hds-grid-gap-y", gapY, getSpacingVariable)), getResponsiveProps("--hds-grid-span", span)), getResponsiveProps("--hds-grid-center", center, (value) => value ? "1" : "0"));
114
115
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
115
116
  Component,
116
117
  __spreadProps(__spreadValues({
117
118
  style,
118
- className: (0, import_typed_classname2.clsx)("hds-stack", className),
119
+ className: (0, import_typed_classname2.clsx)("hds-grid", className),
120
+ ref
121
+ }, rest), {
122
+ children
123
+ })
124
+ );
125
+ }
126
+ );
127
+ Grid.displayName = "Grid";
128
+ var GridItem = (0, import_react2.forwardRef)(
129
+ (_a, ref) => {
130
+ var _b = _a, { children, asChild, className, span, center, style: _style } = _b, rest = __objRest(_b, ["children", "asChild", "className", "span", "center", "style"]);
131
+ const Component = asChild ? import_react_slot.Slot : "div";
132
+ const style = __spreadValues(__spreadValues(__spreadValues({}, _style), getResponsiveProps("--hds-grid-item-span", span)), getResponsiveProps("--hds-grid-item-center", center, (value) => value ? "1" : "0"));
133
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
134
+ Component,
135
+ __spreadProps(__spreadValues({
136
+ style,
137
+ className: (0, import_typed_classname2.clsx)("hds-grid__item", className),
138
+ ref
139
+ }, rest), {
140
+ children
141
+ })
142
+ );
143
+ }
144
+ );
145
+ GridItem.displayName = "Grid.Item";
146
+
147
+ // src/layout/grid/index.tsx
148
+ var GridComponent = Grid;
149
+ GridComponent.Item = GridItem;
150
+
151
+ // src/layout/stack/stack.tsx
152
+ var React = require("react");
153
+ var import_typed_classname3 = require("@postenbring/hedwig-css/typed-classname");
154
+ var import_react3 = require("react");
155
+ var import_react_slot2 = require("@radix-ui/react-slot");
156
+ var import_jsx_runtime3 = require("react/jsx-runtime");
157
+ var Stack = (0, import_react3.forwardRef)(
158
+ (_a, ref) => {
159
+ var _b = _a, {
160
+ children,
161
+ asChild,
162
+ className,
163
+ style: _style,
164
+ gap,
165
+ gapX,
166
+ gapY,
167
+ direction,
168
+ wrap,
169
+ align,
170
+ justify
171
+ } = _b, rest = __objRest(_b, [
172
+ "children",
173
+ "asChild",
174
+ "className",
175
+ "style",
176
+ "gap",
177
+ "gapX",
178
+ "gapY",
179
+ "direction",
180
+ "wrap",
181
+ "align",
182
+ "justify"
183
+ ]);
184
+ const Component = asChild ? import_react_slot2.Slot : "div";
185
+ const style = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, _style), getResponsiveProps("--hds-stack-gap", gap, getSpacingVariable)), getResponsiveProps("--hds-stack-gap-x", gapX, getSpacingVariable)), getResponsiveProps("--hds-stack-gap-y", gapY, getSpacingVariable)), getResponsiveProps("--hds-stack-direction", direction)), getResponsiveProps("--hds-stack-wrap", wrap, (value) => value ? "wrap" : "nowrap")), getResponsiveProps("--hds-stack-align", align)), getResponsiveProps("--hds-stack-justify", justify));
186
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
187
+ Component,
188
+ __spreadProps(__spreadValues({
189
+ style,
190
+ className: (0, import_typed_classname3.clsx)("hds-stack", className),
119
191
  ref
120
192
  }, rest), {
121
193
  children
@@ -124,17 +196,19 @@ var Stack = (0, import_react2.forwardRef)(
124
196
  }
125
197
  );
126
198
  Stack.displayName = "Stack";
127
- var HStack = (0, import_react2.forwardRef)((props, ref) => {
128
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Stack, __spreadProps(__spreadValues({ ref }, props), { direction: "row" }));
199
+ var HStack = (0, import_react3.forwardRef)((props, ref) => {
200
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Stack, __spreadProps(__spreadValues({ ref }, props), { direction: "row" }));
129
201
  });
130
202
  HStack.displayName = "HStack";
131
- var VStack = (0, import_react2.forwardRef)((props, ref) => {
132
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Stack, __spreadProps(__spreadValues({ ref }, props), { direction: "column" }));
203
+ var VStack = (0, import_react3.forwardRef)((props, ref) => {
204
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Stack, __spreadProps(__spreadValues({ ref }, props), { direction: "column" }));
133
205
  });
134
206
  VStack.displayName = "VStack";
135
207
  // Annotate the CommonJS export names for ESM import in node:
136
208
  0 && (module.exports = {
137
209
  Container,
210
+ Grid,
211
+ GridItem,
138
212
  HStack,
139
213
  Stack,
140
214
  VStack