@gridui/grid 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -18,9 +18,13 @@ controls and tables inside those regions so their own borders remain intact.
18
18
  See [linear regions](docs/README.md#linear-regions) for the full contract.
19
19
 
20
20
  FrameSection and FrameFooter accept `tone="neutral" | "brand" | "warning" | "danger"`.
21
- Non-neutral tones scope background, foreground, muted text, borders, controls,
22
- and focus colors to that region. Theme owns the paired light/dark tokens;
23
- Grid owns their inherited application. Nested non-neutral tones establish their own palette; neutral inherits its surroundings.
21
+ Non-neutral tones reuse Theme's public `paletteClass` contract for background,
22
+ foreground, muted text, borders, controls, and focus colors. Theme owns both
23
+ palette values and their scoped semantic mapping; Grid owns region geometry.
24
+ Nested non-neutral tones establish their own palette; `tone="neutral"` continues
25
+ to inherit its surroundings. Use `paletteClass("neutral")` from `@gridui/theme`
26
+ on a native content surface for an explicit reset to registered application
27
+ neutral colors without adding a section or boundary.
24
28
 
25
29
  FrameSection owns its leading separator and inline frame edges. Use
26
30
  `boundary="none"` and `edges="none"` when an enclosing region owns them.
@@ -52,7 +56,12 @@ the final section's tone for its leading line.
52
56
  Grid `frame="cells"` owns outer and cell edges; `frame="internal"` owns seams
53
57
  inside an existing frame. Use `fillLastRow` with direct GridItem children to
54
58
  fill incomplete rows at every breakpoint. Explicit gaps are disallowed in
55
- framed grids. Hover/focus outlines paint above neighboring seams and page lines.
59
+ framed grids. For wrapping lists with a container-driven track count, use
60
+ `columns="auto"` with `minItemWidth` and optional responsive gap. The minimum is
61
+ capped to available space. `Grid asChild` and `GridItem asChild` preserve native
62
+ ul/ol/li hosts without wrapper elements. Adaptive mode excludes frames and
63
+ `fillLastRow`; root `asChild` also excludes `fillLastRow`, preserving the fixed
64
+ planner's direct-item contract. Hover/focus outlines paint above neighboring seams and page lines.
56
65
  Table cell lines belong to Table; functional control borders belong to their Core families.
57
66
 
58
67
  See the [Grid contract](docs/README.md#grid-foundation) for geometry and API.
@@ -7,15 +7,31 @@
7
7
  import type { ElementProps } from "../shared/types";
8
8
  import type { GridColumns } from "./responsive";
9
9
  import { type Responsive, type Space } from "@gridui/style-utils/responsive";
10
- import { type FC } from "react";
11
- export type GridProps = ElementProps & {
12
- readonly columns?: Responsive<GridColumns>;
13
- readonly fillLastRow?: boolean;
14
- } & ({
10
+ import { type FC, type ReactElement } from "react";
11
+ type GridFrameOptions = {
15
12
  readonly frame?: "none";
16
13
  readonly gap?: Responsive<Space>;
17
14
  } | {
18
- readonly frame: "cells" | "internal";
15
+ readonly frame: "none" | "cells" | "internal";
19
16
  readonly gap?: never;
17
+ };
18
+ type GridLayoutOptions = ({
19
+ readonly columns?: Responsive<GridColumns>;
20
+ readonly minItemWidth?: never;
21
+ } & GridFrameOptions) | {
22
+ readonly columns: "auto";
23
+ readonly minItemWidth: Responsive<string | number>;
24
+ readonly frame?: "none";
25
+ readonly gap?: Responsive<Space>;
26
+ readonly fillLastRow?: false;
27
+ };
28
+ export type GridProps = ElementProps & GridLayoutOptions & ({
29
+ readonly asChild?: false;
30
+ readonly fillLastRow?: boolean;
31
+ } | {
32
+ readonly asChild: true;
33
+ readonly children: ReactElement;
34
+ readonly fillLastRow?: false;
20
35
  });
21
36
  export declare const Grid: FC<GridProps>;
37
+ export {};
@@ -7,4 +7,5 @@
7
7
  import type { GridColumns } from "./responsive";
8
8
  export declare const gridColumnCount: (columns: GridColumns) => number;
9
9
  export declare const gridTemplate: (columns: GridColumns) => string;
10
+ export declare const adaptiveGridTemplate: (minItemWidth: string | number) => string;
10
11
  export declare const fillGridRowSpans: (columns: number, spans: readonly number[]) => number[];
package/dist/index.js CHANGED
@@ -205,17 +205,12 @@ var frameChromeStyles = cva4("gridui-frame-chrome");
205
205
 
206
206
  // src/shared/frame-style.ts
207
207
  import { cn as cn4 } from "@gridui/style-utils";
208
+ import { paletteClass } from "@gridui/theme";
208
209
  import { cva as cva5 } from "class-variance-authority";
209
- var frameToneStyles = cva5("", {
210
- variants: {
211
- tone: {
212
- neutral: "",
213
- brand: "gridui-frame-brand",
214
- warning: "gridui-frame-warning",
215
- danger: "gridui-frame-danger"
216
- }
217
- }
218
- });
210
+ var frameToneStyles = (options = {}) => {
211
+ const { tone = "neutral" } = options;
212
+ return tone === "neutral" ? "" : `gridui-frame-${tone} ${paletteClass(tone)}`;
213
+ };
219
214
  var frameContentStyles = cva5(cn4(
220
215
  "gridui-frame-content",
221
216
  "border-x border-solid border-border wrap-anywhere"
@@ -610,6 +605,13 @@ var gridTemplate = (columns) => {
610
605
  return track === "1fr" ? "minmax(0, 1fr)" : track;
611
606
  }).join(" ");
612
607
  };
608
+ var adaptiveGridTemplate = (minItemWidth) => {
609
+ if (typeof minItemWidth === "number" && (!Number.isFinite(minItemWidth) || minItemWidth <= 0) || typeof minItemWidth === "string" && !minItemWidth.trim()) {
610
+ throw new RangeError("Adaptive Grid minItemWidth must be a positive number or a nonempty CSS length.");
611
+ }
612
+ const minimum = typeof minItemWidth === "number" ? `${minItemWidth}px` : minItemWidth;
613
+ return `repeat(auto-fit, minmax(min(100%, ${minimum}), 1fr))`;
614
+ };
613
615
  var fillGridRowSpans = (columns, spans) => {
614
616
  let occupied = 0;
615
617
  return spans.map((span, index) => {
@@ -636,11 +638,14 @@ var fillGridRowSpans = (columns, spans) => {
636
638
  // src/grid/grid.tsx
637
639
  import { cn as cn17 } from "@gridui/style-utils";
638
640
  import { resolveResponsive as resolveResponsive4, spaceValue as spaceValue5 } from "@gridui/style-utils/responsive";
639
- import { Children, cloneElement, isValidElement } from "react";
641
+ import { Slot as Slot4 } from "@radix-ui/react-slot";
642
+ import { Children, cloneElement, Fragment as Fragment2, isValidElement } from "react";
640
643
  import { jsx as jsx15 } from "react/jsx-runtime";
641
644
  var Grid = (props) => {
642
645
  const {
643
646
  columns = 1,
647
+ minItemWidth,
648
+ asChild = false,
644
649
  frame = "none",
645
650
  gap = 16,
646
651
  fillLastRow = false,
@@ -649,27 +654,56 @@ var Grid = (props) => {
649
654
  children,
650
655
  ...restProps
651
656
  } = props;
652
- const tracks = resolveResponsive4(columns);
653
- const count = {
654
- base: gridColumnCount(tracks.base),
655
- md: gridColumnCount(tracks.md),
656
- lg: gridColumnCount(tracks.lg)
657
- };
657
+ if (fillLastRow && (asChild || columns === "auto")) {
658
+ throw new TypeError("Grid fillLastRow requires fixed columns and direct GridItem children, without asChild.");
659
+ }
660
+ if (columns === "auto" && frame !== "none") {
661
+ throw new TypeError("Adaptive Grid does not support framed cells.");
662
+ }
663
+ if (asChild && (!isValidElement(children) || children.type === Fragment2)) {
664
+ throw new TypeError("Grid asChild requires one element that forwards props and refs to its root.");
665
+ }
666
+ let geometry;
667
+ let count = null;
668
+ if (columns === "auto") {
669
+ if (minItemWidth === void 0) {
670
+ throw new TypeError("Adaptive Grid requires minItemWidth.");
671
+ }
672
+ const minimum = resolveResponsive4(minItemWidth);
673
+ geometry = {
674
+ "--gridui-grid-template": adaptiveGridTemplate(minimum.base),
675
+ "--gridui-grid-template-md": adaptiveGridTemplate(minimum.md),
676
+ "--gridui-grid-template-lg": adaptiveGridTemplate(minimum.lg)
677
+ };
678
+ } else {
679
+ if (minItemWidth !== void 0) {
680
+ throw new TypeError("Grid minItemWidth requires columns=auto.");
681
+ }
682
+ const tracks = resolveResponsive4(columns);
683
+ count = {
684
+ base: gridColumnCount(tracks.base),
685
+ md: gridColumnCount(tracks.md),
686
+ lg: gridColumnCount(tracks.lg)
687
+ };
688
+ geometry = {
689
+ "--gridui-columns": count.base,
690
+ "--gridui-columns-md": count.md,
691
+ "--gridui-columns-lg": count.lg,
692
+ "--gridui-grid-template": gridTemplate(tracks.base),
693
+ "--gridui-grid-template-md": gridTemplate(tracks.md),
694
+ "--gridui-grid-template-lg": gridTemplate(tracks.lg)
695
+ };
696
+ }
658
697
  const spacing = resolveResponsive4(frame === "none" ? gap : 0);
659
698
  const layoutStyle = {
660
- "--gridui-columns": count.base,
661
- "--gridui-columns-md": count.md,
662
- "--gridui-columns-lg": count.lg,
663
- "--gridui-grid-template": gridTemplate(tracks.base),
664
- "--gridui-grid-template-md": gridTemplate(tracks.md),
665
- "--gridui-grid-template-lg": gridTemplate(tracks.lg),
699
+ ...geometry,
666
700
  "--gridui-gap": frame === "internal" ? "1px" : spaceValue5(spacing.base),
667
701
  "--gridui-gap-md": frame === "internal" ? "1px" : spaceValue5(spacing.md),
668
702
  "--gridui-gap-lg": frame === "internal" ? "1px" : spaceValue5(spacing.lg),
669
703
  ...style
670
704
  };
671
705
  let content = children;
672
- if (fillLastRow) {
706
+ if (fillLastRow && count) {
673
707
  const items = Children.toArray(children).map((child) => {
674
708
  if (!isValidElement(child) || child.type !== GridItem) {
675
709
  throw new TypeError("Grid fillLastRow requires direct GridItem children.");
@@ -702,8 +736,9 @@ var Grid = (props) => {
702
736
  });
703
737
  });
704
738
  }
739
+ const Component = asChild ? Slot4 : "div";
705
740
  return /* @__PURE__ */ jsx15(
706
- "div",
741
+ Component,
707
742
  {
708
743
  ...restProps,
709
744
  className: cn17(gridVariants({ frame }), className),
@@ -729,7 +764,7 @@ var pageFrameVariants = cva10("gridui-page-frame min-h-svh", {
729
764
  // src/page-frame/page-frame.tsx
730
765
  import { cn as cn18 } from "@gridui/style-utils";
731
766
  import { spacingVariables as spacingVariables2 } from "@gridui/style-utils/responsive";
732
- import { Fragment as Fragment2, jsx as jsx16, jsxs as jsxs6 } from "react/jsx-runtime";
767
+ import { Fragment as Fragment3, jsx as jsx16, jsxs as jsxs6 } from "react/jsx-runtime";
733
768
  var PageFrame = (props) => {
734
769
  const {
735
770
  width = "standard",
@@ -744,7 +779,7 @@ var PageFrame = (props) => {
744
779
  ...restProps
745
780
  } = props;
746
781
  const railOptions = railWidth === void 0 ? {} : { railWidth };
747
- const content = /* @__PURE__ */ jsxs6(Fragment2, { children: [
782
+ const content = /* @__PURE__ */ jsxs6(Fragment3, { children: [
748
783
  /* @__PURE__ */ jsx16(FrameSections, { children }),
749
784
  /* @__PURE__ */ jsx16(
750
785
  "div",
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/container/style.ts", "../src/container/container.tsx", "../src/shared/decoration.tsx", "../src/dashboard-frame/style.ts", "../src/dashboard-frame/dashboard-frame.tsx", "../src/frame-boundary/style.ts", "../src/frame-boundary/frame-boundary.tsx", "../src/shared/chrome.ts", "../src/shared/chrome-style.ts", "../src/shared/frame-style.ts", "../src/frame-footer/style.ts", "../src/frame-footer/frame-footer.tsx", "../src/frame-header/frame-header.tsx", "../src/frame-rail/style.ts", "../src/frame-rail/frame-rail.tsx", "../src/frame-rail-group/frame-rail-group.tsx", "../src/frame-region/frame-region.tsx", "../src/frame-region-row/frame-region-row.tsx", "../src/frame-texture/frame-texture.tsx", "../src/frame-section/frame-section.tsx", "../src/frame-sections/frame-sections.tsx", "../src/grid-item/responsive.ts", "../src/grid-item/style.ts", "../src/grid-item/grid-item.tsx", "../src/grid/style.ts", "../src/grid/tracks.ts", "../src/grid/grid.tsx", "../src/page-frame/style.ts", "../src/page-frame/page-frame.tsx", "../src/row/style.ts", "../src/row/row.tsx", "../src/split/split.tsx", "../src/stack/style.ts", "../src/stack/stack.tsx"],
4
- "sourcesContent": ["/**\n * @author WMXPY\n * @package Grid\n * @namespace Container\n * @description Style\n */\n\nimport { cva } from \"class-variance-authority\";\n\nexport const containerVariants = cva(\"gridui-container\", {\n variants: {\n width: {\n narrow: \"gridui-container-narrow\",\n standard: \"gridui-container-standard\",\n wide: \"gridui-container-wide\",\n },\n },\n defaultVariants: { width: \"standard\" },\n});\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Container\n * @description Container\n */\n\nimport type { ElementProps } from \"../shared/types\";\nimport { containerVariants } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { FC } from \"react\";\n\nexport type ContainerProps = ElementProps & {\n readonly width?: \"narrow\" | \"standard\" | \"wide\";\n};\n\nexport const Container: FC<ContainerProps> = (props: ContainerProps) => {\n const { width = \"standard\", className, ...restProps } = props;\n return (<div\n {...restProps}\n className={cn(containerVariants({ width }), className)}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Shared\n * @description Decoration\n */\n\nimport type { FrameBoundaryStyle } from \"../frame-boundary/frame-boundary\";\nimport type { FC } from \"react\";\n\nexport type FrameDecorationStyle = \"none\" | \"nodes\" | \"marks\" | \"corners\" | \"ticks\";\n\nexport const resolveFrameDecoration = (\n boundary: FrameBoundaryStyle,\n decoration?: FrameDecorationStyle,\n): FrameDecorationStyle => {\n return decoration ?? (boundary === \"band\" ? \"nodes\" : \"none\");\n};\n\nexport type FrameDecorationProps = {\n readonly decoration: FrameDecorationStyle;\n readonly side?: \"start\" | \"end\";\n};\n\nexport const FrameDecoration: FC<FrameDecorationProps> = (props: FrameDecorationProps) => {\n const { decoration, side } = props;\n if (decoration === \"none\") {\n return null;\n }\n if (!side) {\n return (<>\n <FrameDecoration\n decoration={decoration}\n side=\"start\"\n />\n <FrameDecoration\n decoration={decoration}\n side=\"end\"\n />\n </>);\n }\n return (<div\n className=\"gridui-frame-decoration\"\n data-decoration={decoration}\n data-side={side}\n aria-hidden=\"true\"\n inert\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace DashboardFrame\n * @description Style\n */\n\nimport { cva } from \"class-variance-authority\";\n\nexport const dashboardFrameVariants = cva(\"gridui-dashboard-frame\", {\n variants: {\n startSize: {\n none: \"[--gridui-dashboard-start:0px] [--gridui-dashboard-start-minimum:0px]\",\n small: \"[--gridui-dashboard-start:var(--gridui-space-8)]\",\n medium: \"[--gridui-dashboard-start:var(--gridui-space-16)]\",\n large: \"[--gridui-dashboard-start:var(--gridui-space-24)]\",\n },\n endSize: {\n none: \"[--gridui-dashboard-end:0px] [--gridui-dashboard-end-minimum:0px]\",\n small: \"[--gridui-dashboard-end:var(--gridui-space-8)]\",\n medium: \"[--gridui-dashboard-end:var(--gridui-space-16)]\",\n large: \"[--gridui-dashboard-end:var(--gridui-space-24)]\",\n },\n compactStartSize: {\n none: \"[--gridui-dashboard-compact-start:0px] [--gridui-dashboard-compact-start-minimum:0px]\",\n small: \"[--gridui-dashboard-compact-start:var(--gridui-space-8)]\",\n medium: \"[--gridui-dashboard-compact-start:var(--gridui-space-16)]\",\n large: \"[--gridui-dashboard-compact-start:var(--gridui-space-24)]\",\n },\n compactEndSize: {\n none: \"[--gridui-dashboard-compact-end:0px] [--gridui-dashboard-compact-end-minimum:0px]\",\n small: \"[--gridui-dashboard-compact-end:var(--gridui-space-8)]\",\n medium: \"[--gridui-dashboard-compact-end:var(--gridui-space-16)]\",\n large: \"[--gridui-dashboard-compact-end:var(--gridui-space-24)]\",\n },\n },\n defaultVariants: {\n startSize: \"medium\",\n endSize: \"medium\",\n compactStartSize: \"small\",\n compactEndSize: \"small\",\n },\n});\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace DashboardFrame\n * @description Dashboard Frame\n */\n\nimport { FrameDecoration, type FrameDecorationStyle } from \"../shared/decoration\";\nimport { dashboardFrameVariants } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type DashboardFrameSize = NonNullable<VariantProps<typeof dashboardFrameVariants>[\"startSize\"]>;\n\nexport type DashboardFrameProps = ComponentPropsWithRef<\"div\"> & {\n readonly decoration?: FrameDecorationStyle;\n readonly startDecoration?: FrameDecorationStyle;\n readonly endDecoration?: FrameDecorationStyle;\n readonly startSize?: DashboardFrameSize;\n readonly endSize?: DashboardFrameSize;\n readonly compactStartSize?: DashboardFrameSize;\n readonly compactEndSize?: DashboardFrameSize;\n};\n\nexport const DashboardFrame: FC<DashboardFrameProps> = (props: DashboardFrameProps) => {\n const {\n startSize,\n endSize,\n compactStartSize,\n compactEndSize,\n decoration = \"none\",\n startDecoration = decoration,\n endDecoration = decoration,\n children,\n className,\n ...restProps\n } = props;\n\n return (<div\n {...restProps}\n className={cn(dashboardFrameVariants({\n startSize,\n endSize,\n compactStartSize,\n compactEndSize,\n }), className)}\n >\n <div\n className=\"gridui-dashboard-frame-body\"\n >\n {children}\n <FrameDecoration\n decoration={startDecoration}\n side=\"start\"\n />\n <FrameDecoration\n decoration={endDecoration}\n side=\"end\"\n />\n </div>\n </div>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameBoundary\n * @description Style\n */\n\nimport { cva } from \"class-variance-authority\";\n\nexport const frameBoundaryStyles = cva(\"gridui-frame-boundary\", {\n variants: {\n boundary: {\n none: \"\",\n line: \"\",\n band: \"gridui-frame-divider\",\n stripe: \"gridui-frame-divider gridui-frame-stripe\",\n space: \"gridui-frame-space\",\n },\n },\n defaultVariants: { boundary: \"line\" },\n});\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameBoundary\n * @description Frame Boundary\n */\n\nimport { frameBoundaryStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type FrameBoundaryStyle = NonNullable<VariantProps<typeof frameBoundaryStyles>[\"boundary\"]>;\n\nexport type FrameBoundaryProps = Omit<ComponentPropsWithRef<\"div\">, \"children\"> & {\n readonly boundary?: FrameBoundaryStyle;\n readonly extent?: \"content\" | \"frame\";\n};\n\nexport const FrameBoundary: FC<FrameBoundaryProps> = (props: FrameBoundaryProps) => {\n const { boundary = \"line\", extent = \"content\", className, ...restProps } = props;\n return boundary === \"none\" ? null : (<div\n {...restProps}\n className={cn(frameBoundaryStyles({ boundary }), className)}\n data-boundary={boundary}\n data-boundary-extent={extent}\n aria-hidden=\"true\"\n inert\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Shared\n * @description Chrome\n */\n\nimport { resolveResponsive, type Responsive, type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport type { CSSProperties } from \"react\";\n\nexport type ChromeProps = {\n readonly padding?: Responsive<Space>;\n};\n\nexport const chromeStyle = (padding: Responsive<Space>): CSSProperties & {\n \"--gridui-chrome-padding\": string;\n \"--gridui-chrome-padding-md\": string;\n \"--gridui-chrome-padding-lg\": string;\n} => {\n const values = resolveResponsive(padding);\n return {\n \"--gridui-chrome-padding\": spaceValue(values.base),\n \"--gridui-chrome-padding-md\": spaceValue(values.md),\n \"--gridui-chrome-padding-lg\": spaceValue(values.lg),\n };\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Shared\n * @description Chrome Style\n */\n\nimport { cva } from \"class-variance-authority\";\n\nexport const frameChromeStyles = cva(\"gridui-frame-chrome\");\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Shared\n * @description Frame Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport type FrameTone = \"neutral\" | \"brand\" | \"warning\" | \"danger\";\n\nexport const frameToneStyles = cva(\"\", {\n variants: {\n tone: {\n neutral: \"\",\n brand: \"gridui-frame-brand\",\n warning: \"gridui-frame-warning\",\n danger: \"gridui-frame-danger\",\n },\n },\n});\n\nexport const frameContentStyles = cva(cn(\n \"gridui-frame-content\",\n \"border-x border-solid border-border wrap-anywhere\",\n));\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameFooter\n * @description Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport const frameSignatureStyles = cva(cn(\n \"gridui-frame-signature flex min-w-0 items-center justify-center gap-gridui-24 py-gridui-32 px-gridui-24 overflow-hidden border-t border-solid border-border bg-transparent\",\n \"[&>svg]:h-auto [&>svg]:opacity-30 [&>span]:font-display [&>span]:leading-none [&>span]:text-transparent\",\n));\n\nexport const frameSignatureCroppedStyles = cva(\"gridui-frame-signature-cropped block pb-0 @container [&>span]:block [&>span]:text-center [&>span]:whitespace-nowrap\");\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameFooter\n * @description Frame Footer\n */\n\nimport { FrameBoundary, type FrameBoundaryStyle } from \"../frame-boundary/frame-boundary\";\nimport { type ChromeProps, chromeStyle } from \"../shared/chrome\";\nimport { frameChromeStyles } from \"../shared/chrome-style\";\nimport { FrameDecoration, type FrameDecorationStyle, resolveFrameDecoration } from \"../shared/decoration\";\nimport { frameContentStyles, type FrameTone, frameToneStyles } from \"../shared/frame-style\";\nimport { frameSignatureCroppedStyles, frameSignatureStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { ComponentPropsWithRef, FC, ReactNode } from \"react\";\n\nexport type FrameFooterProps = ComponentPropsWithRef<\"footer\"> & ChromeProps & {\n readonly contentLayout?: \"flex\" | \"block\";\n readonly tone?: FrameTone;\n readonly boundary?: FrameBoundaryStyle;\n readonly decoration?: FrameDecorationStyle;\n readonly signature?: ReactNode;\n readonly signatureAppearance?: \"standard\" | \"cropped\";\n};\n\nexport const FrameFooter: FC<FrameFooterProps> = (props: FrameFooterProps) => {\n const { padding = {\n base: 16,\n md: 24,\n }, contentLayout = \"flex\", tone = \"neutral\", boundary = \"line\", decoration, signature, signatureAppearance = \"standard\", className, children, ...restProps } = props;\n return (<footer\n {...restProps}\n className={cn(\"gridui-container gridui-frame-footer\", frameToneStyles({\n tone,\n }), className)}\n >\n <FrameBoundary\n boundary={boundary}\n />\n <div\n className={cn(frameContentStyles(), frameChromeStyles(), \"gridui-frame-surface\")}\n data-content-layout={contentLayout}\n style={chromeStyle(padding)}\n >\n {children}\n <FrameDecoration\n decoration={resolveFrameDecoration(boundary, decoration)}\n />\n </div>\n {signature ? (<div\n className={cn(frameContentStyles(), frameSignatureStyles(), signatureAppearance === \"cropped\" && frameSignatureCroppedStyles())}\n aria-hidden=\"true\"\n inert\n >\n {signature}\n </div>) : null}\n </footer>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameHeader\n * @description Frame Header\n */\n\nimport { type ChromeProps, chromeStyle } from \"../shared/chrome\";\nimport { frameChromeStyles } from \"../shared/chrome-style\";\nimport { frameContentStyles } from \"../shared/frame-style\";\nimport { cn } from \"@gridui/style-utils\";\nimport { type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type FrameHeaderProps = ComponentPropsWithRef<\"header\"> & ChromeProps & {\n readonly wrap?: boolean;\n readonly gap?: Space;\n readonly justify?: \"start\" | \"between\";\n};\n\nexport const FrameHeader: FC<FrameHeaderProps> = (props: FrameHeaderProps) => {\n const { padding = {\n base: 16,\n md: 24,\n }, wrap = true, gap = 16, justify = \"between\", className, children, ...restProps } = props;\n return (<header\n {...restProps}\n className={cn(\"gridui-container gridui-frame-header\", className)}\n >\n <div\n className={cn(frameContentStyles(), frameChromeStyles())}\n data-justify={justify}\n style={{\n ...chromeStyle(padding),\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n gap: spaceValue(gap),\n }}\n >\n {children}\n </div>\n </header>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameRail\n * @description Style\n */\n\nimport { cva } from \"class-variance-authority\";\n\nexport const frameRailStyles = cva(\"gridui-frame-rail flex h-full box-border flex-col py-gridui-24 text-muted\");\n\nexport const frameRailContentStyles = cva(\"gridui-frame-rail-content relative z-(--gridui-z-interaction) min-w-0 type-eyebrow bg-inherit\");\n\nexport const frameRailStickyBottomStyles = cva(\"gridui-frame-rail-sticky-bottom justify-end [&>.gridui-frame-rail-content]:sticky\");\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameRail\n * @description Frame Rail\n */\n\nimport { frameRailContentStyles, frameRailStickyBottomStyles, frameRailStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type FrameRailProps = ComponentPropsWithRef<\"div\"> & {\n readonly placement?: \"start\" | \"sticky-bottom\";\n};\n\nexport const FrameRail: FC<FrameRailProps> = (props: FrameRailProps) => {\n const {\n placement = \"start\",\n children,\n className,\n ...restProps\n } = props;\n return (<div\n {...restProps}\n className={cn(frameRailStyles(), placement === \"sticky-bottom\" && frameRailStickyBottomStyles(), className)}\n >\n <div\n className={frameRailContentStyles()}\n >\n {children}\n </div>\n </div>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameRailGroup\n * @description Frame Rail Group\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { resolveResponsive, type Responsive, type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport type { ComponentPropsWithRef, CSSProperties, FC, ReactNode } from \"react\";\n\nexport type FrameRailGroupProps = ComponentPropsWithRef<\"div\"> & {\n readonly rail?: ReactNode;\n readonly railWidth?: Responsive<Space>;\n};\n\nexport const FrameRailGroup: FC<FrameRailGroupProps> = (props: FrameRailGroupProps) => {\n const { rail, railWidth = {\n base: 0,\n md: 32,\n }, children, className, style, ...restProps } = props;\n const hasRail = rail !== undefined && rail !== null && rail !== false;\n const width = resolveResponsive(hasRail ? railWidth : 0);\n const layoutStyle: CSSProperties & {\n [key: `--gridui-${string}`]: string | number;\n } = {\n \"--gridui-rail-width-base\": spaceValue(width.base),\n \"--gridui-rail-width-md\": spaceValue(width.md),\n \"--gridui-rail-width-lg\": spaceValue(width.lg),\n \"--gridui-rail-display-base\": width.base === 0 ? \"none\" : \"block\",\n \"--gridui-rail-display-md\": width.md === 0 ? \"none\" : \"block\",\n \"--gridui-rail-display-lg\": width.lg === 0 ? \"none\" : \"block\",\n ...style,\n };\n return (<div\n {...restProps}\n className={cn(\"gridui-frame-rail-group\", className)}\n style={layoutStyle}\n >\n {hasRail ? (<div\n className=\"gridui-frame-rail-track\"\n >\n {rail}\n </div>) : null}\n <div\n className=\"gridui-frame-rail-body\"\n >\n {children}\n </div>\n </div>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameRegion\n * @description Frame Region\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type FrameRegionProps = ComponentPropsWithRef<\"div\"> & {\n readonly asChild?: boolean;\n readonly edge?: \"none\" | \"left\" | \"right\" | \"both\";\n};\n\nexport const FrameRegion: FC<FrameRegionProps> = (props: FrameRegionProps) => {\n const { asChild = false, edge = \"none\", className, ...restProps } = props;\n const Component = asChild ? Slot : \"div\";\n return (<Component\n {...restProps}\n className={cn(\"gridui-frame-region\", className)}\n data-frame-edge={edge}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameRegionRow\n * @description Frame Region Row\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport type { ComponentPropsWithRef, CSSProperties, FC } from \"react\";\n\nexport type FrameRegionRowProps = ComponentPropsWithRef<\"div\"> & {\n readonly asChild?: boolean;\n readonly contentInset?: number | string;\n};\n\nexport const FrameRegionRow: FC<FrameRegionRowProps> = (props: FrameRegionRowProps) => {\n const { asChild = false, contentInset = 0, className, style, ...restProps } = props;\n const Component = asChild ? Slot : \"div\";\n return (<Component\n {...restProps}\n className={cn(\"gridui-frame-region-row\", className)}\n style={{\n \"--gridui-frame-region-inset\": typeof contentInset === \"number\" ? `${contentInset}px` : contentInset,\n ...style,\n } as CSSProperties}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameTexture\n * @description Frame Texture\n */\n\nimport type { FrameTextureStyle } from \"../shared/texture-types\";\nimport type { FC } from \"react\";\n\nexport type FrameTextureProps = {\n readonly texture: FrameTextureStyle;\n};\n\nexport const FrameTexture: FC<FrameTextureProps> = (props: FrameTextureProps) => {\n const { texture } = props;\n return texture === \"none\" ? null : (<div\n className=\"gridui-frame-texture\"\n data-texture={texture}\n aria-hidden=\"true\"\n inert\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameSection\n * @description Frame Section\n */\n\nimport { FrameBoundary, type FrameBoundaryStyle } from \"../frame-boundary/frame-boundary\";\nimport { FrameTexture } from \"../frame-texture/frame-texture\";\nimport { FrameDecoration, type FrameDecorationStyle, resolveFrameDecoration } from \"../shared/decoration\";\nimport { frameContentStyles, type FrameTone, frameToneStyles } from \"../shared/frame-style\";\nimport type { FrameTextureStyle } from \"../shared/texture-types\";\nimport { cn } from \"@gridui/style-utils\";\nimport { type Responsive, type Space, spacingVariables } from \"@gridui/style-utils/responsive\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type FrameSectionProps = ComponentPropsWithRef<\"section\"> & {\n readonly tone?: FrameTone;\n readonly boundary?: FrameBoundaryStyle;\n readonly decoration?: FrameDecorationStyle;\n readonly texture?: FrameTextureStyle;\n readonly edges?: \"frame\" | \"none\";\n readonly paddingInline?: Responsive<Space>;\n readonly paddingBlock?: Responsive<Space>;\n};\n\nexport const FrameSection: FC<FrameSectionProps> = (props: FrameSectionProps) => {\n const {\n tone = \"neutral\",\n boundary = \"line\",\n decoration,\n texture = \"none\",\n edges = \"frame\",\n paddingInline = 0,\n paddingBlock = 0,\n className,\n children,\n ...restProps\n } = props;\n return (<section\n {...restProps}\n className={cn(\"gridui-container gridui-frame-section\", frameToneStyles({ tone }), className)}\n data-edges={edges}\n >\n <FrameBoundary\n boundary={boundary}\n />\n <div\n className={cn(frameContentStyles(), \"gridui-frame-surface\", edges === \"none\" && \"border-x-0\")}\n style={{\n ...spacingVariables(\"section-padding-inline\", paddingInline),\n ...spacingVariables(\"section-padding-block\", paddingBlock),\n }}\n >\n <FrameTexture\n texture={texture}\n />\n {children}\n <FrameDecoration\n decoration={resolveFrameDecoration(boundary, decoration)}\n />\n </div>\n </section>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameSections\n * @description Frame Sections\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type FrameSectionsProps = ComponentPropsWithRef<\"div\">;\n\nexport const FrameSections: FC<FrameSectionsProps> = (props: FrameSectionsProps) => {\n const { className, ...restProps } = props;\n return (<div\n {...restProps}\n className={cn(\"gridui-frame-sections\", className)}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace GridItem\n * @description Responsive\n */\n\nimport type { Span } from \"../shared/responsive-types\";\n\nexport const spanValue = (value: Span): string => {\n return value === \"full\" ? \"1 / -1\" : `span ${value} / span ${value}`;\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace GridItem\n * @description Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport const gridItemStyles = cva(cn(\n \"gridui-grid-item\",\n \"min-w-0 wrap-anywhere\",\n));\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace GridItem\n * @description Grid Item\n */\n\nimport type { Span } from \"../shared/responsive-types\";\nimport type { ElementProps, LayoutStyle } from \"../shared/types\";\nimport { spanValue } from \"./responsive\";\nimport { gridItemStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport { resolveResponsive, type Responsive, type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport type { FC } from \"react\";\n\nexport type GridItemProps = ElementProps & {\n readonly asChild?: boolean;\n readonly span?: Responsive<Span>;\n readonly padding?: Responsive<Space>;\n readonly align?: \"end\" | \"center\";\n};\n\nexport const GridItem: FC<GridItemProps> = (props: GridItemProps) => {\n const {\n asChild = false,\n span = 1,\n padding = 0,\n align,\n className,\n style,\n ...restProps\n } = props;\n const size = resolveResponsive(span);\n const inset = resolveResponsive(padding);\n const layoutStyle: LayoutStyle = {\n \"--gridui-span\": spanValue(size.base),\n \"--gridui-span-md\": spanValue(size.md),\n \"--gridui-span-lg\": spanValue(size.lg),\n \"--gridui-padding\": spaceValue(inset.base),\n \"--gridui-padding-md\": spaceValue(inset.md),\n \"--gridui-padding-lg\": spaceValue(inset.lg),\n ...(align ? {\n display: \"flex\",\n alignItems: align,\n } : {}),\n ...style,\n };\n\n const Component = asChild ? Slot : \"div\";\n return (<Component\n {...restProps}\n className={cn(gridItemStyles(), className)}\n style={layoutStyle}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Grid\n * @description Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport const gridStyles = cva(cn(\n \"gridui-grid\",\n \"grid min-w-0\",\n));\n\nexport const gridCellsStyles = cva(cn(\n \"gridui-grid-cells\",\n \"border-t border-solid border-border border-l border-solid border-border\",\n));\n\nexport const gridInternalStyles = cva(cn(\n \"gridui-grid-internal\",\n \"bg-border\",\n));\n\nexport const gridVariants = cva(gridStyles(), {\n variants: {\n frame: {\n none: \"\",\n cells: gridCellsStyles(),\n internal: gridInternalStyles(),\n },\n },\n defaultVariants: { frame: \"none\" },\n});\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Grid\n * @description Tracks\n */\n\nimport type { GridColumns } from \"./responsive\";\n\nexport const gridColumnCount = (columns: GridColumns): number => {\n return typeof columns === \"number\" ? columns : columns.length;\n};\n\nexport const gridTemplate = (columns: GridColumns): string => {\n if (typeof columns === \"number\") {\n return `repeat(${columns}, minmax(0, 1fr))`;\n }\n return columns.map((track) => {\n return track === \"1fr\" ? \"minmax(0, 1fr)\" : track;\n }).join(\" \");\n};\n\n// Fill incomplete rows before the next item wraps or starts a full-width row.\nexport const fillGridRowSpans = (columns: number, spans: readonly number[]): number[] => {\n let occupied = 0;\n return spans.map((span, index) => {\n if (span < 1 || span > columns) {\n throw new RangeError(\"Grid item spans must fit within the grid columns.\");\n }\n if (occupied + span > columns) {\n occupied = 0;\n }\n occupied += span;\n const next = spans[index + 1];\n if (next === undefined || occupied + next > columns) {\n const filled = span + columns - occupied;\n occupied = 0;\n return filled;\n }\n if (occupied === columns) {\n occupied = 0;\n }\n return span;\n });\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Grid\n * @description Grid\n */\n\nimport { GridItem, type GridItemProps } from \"../grid-item/grid-item\";\nimport type { ElementProps, LayoutStyle } from \"../shared/types\";\nimport type { GridColumns } from \"./responsive\";\nimport { gridVariants } from \"./style\";\nimport { fillGridRowSpans, gridColumnCount, gridTemplate } from \"./tracks\";\nimport { cn } from \"@gridui/style-utils\";\nimport { resolveResponsive, type Responsive, type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport { Children, cloneElement, type FC, isValidElement } from \"react\";\n\nexport type GridProps = ElementProps & {\n readonly columns?: Responsive<GridColumns>;\n readonly fillLastRow?: boolean;\n} & ({\n readonly frame?: \"none\";\n readonly gap?: Responsive<Space>;\n} | {\n readonly frame: \"cells\" | \"internal\";\n readonly gap?: never;\n});\n\nexport const Grid: FC<GridProps> = (props: GridProps) => {\n const {\n columns = 1,\n frame = \"none\",\n gap = 16,\n fillLastRow = false,\n className,\n style,\n children,\n ...restProps\n } = props;\n const tracks = resolveResponsive(columns);\n const count = {\n base: gridColumnCount(tracks.base),\n md: gridColumnCount(tracks.md),\n lg: gridColumnCount(tracks.lg),\n };\n const spacing = resolveResponsive(frame === \"none\" ? gap : 0);\n const layoutStyle: LayoutStyle = {\n \"--gridui-columns\": count.base,\n \"--gridui-columns-md\": count.md,\n \"--gridui-columns-lg\": count.lg,\n \"--gridui-grid-template\": gridTemplate(tracks.base),\n \"--gridui-grid-template-md\": gridTemplate(tracks.md),\n \"--gridui-grid-template-lg\": gridTemplate(tracks.lg),\n \"--gridui-gap\": frame === \"internal\" ? \"1px\" : spaceValue(spacing.base),\n \"--gridui-gap-md\": frame === \"internal\" ? \"1px\" : spaceValue(spacing.md),\n \"--gridui-gap-lg\": frame === \"internal\" ? \"1px\" : spaceValue(spacing.lg),\n ...style,\n };\n let content = children;\n if (fillLastRow) {\n const items = Children.toArray(children).map((child) => {\n if (!isValidElement<GridItemProps>(child) || child.type !== GridItem) {\n throw new TypeError(\"Grid fillLastRow requires direct GridItem children.\");\n }\n return child;\n });\n const spans = items.map((item) => {\n return resolveResponsive(item.props.span ?? 1);\n });\n const filled = {\n base: fillGridRowSpans(count.base, spans.map((span) => {\n return span.base === \"full\" ? count.base : span.base;\n })),\n md: fillGridRowSpans(count.md, spans.map((span) => {\n return span.md === \"full\" ? count.md : span.md;\n })),\n lg: fillGridRowSpans(count.lg, spans.map((span) => {\n return span.lg === \"full\" ? count.lg : span.lg;\n })),\n };\n content = items.map((item, index) => {\n const itemStyle: LayoutStyle = {\n \"--gridui-span\": `span ${filled.base[index]} / span ${filled.base[index]}`,\n \"--gridui-span-md\": `span ${filled.md[index]} / span ${filled.md[index]}`,\n \"--gridui-span-lg\": `span ${filled.lg[index]} / span ${filled.lg[index]}`,\n ...item.props.style,\n };\n return cloneElement(item, {\n style: itemStyle,\n });\n });\n }\n return (<div\n {...restProps}\n className={cn(gridVariants({ frame }), className)}\n style={layoutStyle}\n >\n {content}\n </div>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace PageFrame\n * @description Style\n */\n\nimport { cva } from \"class-variance-authority\";\n\nexport const pageFrameVariants = cva(\"gridui-page-frame min-h-svh\", {\n variants: {\n width: {\n narrow: \"gridui-container-narrow\",\n standard: \"gridui-container-standard\",\n wide: \"gridui-container-wide\",\n },\n },\n defaultVariants: { width: \"standard\" },\n});\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace PageFrame\n * @description Page Frame\n */\n\nimport type { ContainerProps } from \"../container/container\";\nimport { FrameRailGroup, type FrameRailGroupProps } from \"../frame-rail-group/frame-rail-group\";\nimport { FrameSections } from \"../frame-sections/frame-sections\";\nimport { frameContentStyles } from \"../shared/frame-style\";\nimport { pageFrameVariants } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport { type Responsive, type Space, spacingVariables } from \"@gridui/style-utils/responsive\";\nimport type { FC, ReactNode } from \"react\";\n\nexport type PageFrameProps = FrameRailGroupProps & {\n readonly width?: ContainerProps[\"width\"];\n readonly header?: ReactNode;\n readonly footer?: ReactNode;\n readonly railScope?: \"page\" | \"main\";\n readonly mainGutterStart?: Responsive<Space>;\n};\n\nexport const PageFrame: FC<PageFrameProps> = (props: PageFrameProps) => {\n const {\n width = \"standard\",\n header,\n footer,\n rail,\n railWidth,\n railScope = \"page\",\n mainGutterStart,\n children,\n className,\n ...restProps\n } = props;\n const railOptions = railWidth === undefined ? {} : { railWidth };\n const content = (<>\n <FrameSections>\n {children}\n </FrameSections>\n <div\n className=\"gridui-container gridui-frame-fill\"\n aria-hidden=\"true\"\n >\n <div\n className={cn(frameContentStyles())}\n />\n </div>\n </>);\n return (<FrameRailGroup\n {...restProps}\n rail={railScope === \"page\" ? rail : undefined}\n {...railOptions}\n className={cn(pageFrameVariants({ width }), className)}\n >\n {header ? (<div\n className=\"gridui-frame-page-header\"\n >\n {header}\n </div>) : null}\n <main\n className=\"gridui-frame-main\"\n style={mainGutterStart === undefined ? undefined : spacingVariables(\"main-gutter-start\", mainGutterStart)}\n >\n {railScope === \"main\" && rail !== undefined && rail !== null && rail !== false ? (<FrameRailGroup\n rail={rail}\n {...railOptions}\n className=\"gridui-frame-main-rail-group\"\n >\n {content}\n </FrameRailGroup>) : content}\n </main>\n {footer ? (<div\n className=\"gridui-frame-page-footer\"\n >\n {footer}\n </div>) : null}\n </FrameRailGroup>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Row\n * @description Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport const rowStyles = cva(cn(\n \"gridui-row\",\n \"min-w-0\",\n));\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Row\n * @description Row\n */\n\nimport { rowStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport { type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type RowProps = ComponentPropsWithRef<\"div\"> & {\n readonly gap?: Space;\n readonly rowGap?: Space;\n readonly align?: \"stretch\" | \"center\" | \"baseline\" | \"end\";\n readonly justify?: \"start\" | \"between\";\n readonly wrap?: boolean;\n readonly inline?: boolean;\n};\n\nexport const Row: FC<RowProps> = (props: RowProps) => {\n const {\n gap = 16,\n rowGap = gap,\n align = \"stretch\",\n justify = \"start\",\n wrap = true,\n inline = false,\n className,\n style,\n ...restProps\n } = props;\n return (<div\n {...restProps}\n className={cn(rowStyles(), className)}\n data-inline={inline}\n style={{\n display: inline ? \"inline-flex\" : \"flex\",\n alignItems: align,\n justifyContent: justify === \"between\" ? \"space-between\" : \"flex-start\",\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n gap: `${spaceValue(rowGap)} ${spaceValue(gap)}`,\n ...style,\n }}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Split\n * @description Split\n */\n\nimport type { ElementProps } from \"../shared/types\";\nimport { cn } from \"@gridui/style-utils\";\nimport { resolveResponsive, type Responsive } from \"@gridui/style-utils/responsive\";\nimport type { FC } from \"react\";\n\nexport type SplitDirection = \"row\" | \"column\" | \"row-reverse\" | \"column-reverse\";\n\nexport type SplitProps = ElementProps & {\n readonly direction?: Responsive<SplitDirection>;\n readonly order?: \"logical\" | \"physical\";\n readonly seam?: Responsive<\"line\" | \"none\">;\n};\n\nexport const Split: FC<SplitProps> = (props: SplitProps) => {\n const { direction = \"row\", order = \"logical\", seam = \"line\", className, ...restProps } = props;\n const directions = resolveResponsive(direction);\n const seams = resolveResponsive(seam);\n return (<div\n {...restProps}\n className={cn(\"gridui-split\", className)}\n data-order={order}\n data-direction={directions.base}\n data-direction-md={directions.md}\n data-direction-lg={directions.lg}\n data-seam={seams.base}\n data-seam-md={seams.md}\n data-seam-lg={seams.lg}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Stack\n * @description Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport const stackStyles = cva(cn(\n \"gridui-stack\",\n \"flex min-w-0 flex-col\",\n));\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Stack\n * @description Stack\n */\n\nimport type { ElementProps, LayoutStyle } from \"../shared/types\";\nimport { stackStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport { resolveResponsive, type Responsive, type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport type { CSSProperties, FC } from \"react\";\n\nexport type StackProps = ElementProps & {\n readonly gap?: Responsive<Space>;\n readonly width?: \"full\";\n readonly maxWidth?: CSSProperties[\"maxWidth\"];\n readonly paddingStart?: Space;\n};\n\nexport const Stack: FC<StackProps> = (props: StackProps) => {\n const {\n gap = 16,\n width,\n maxWidth,\n paddingStart,\n className,\n style,\n ...restProps\n } = props;\n const spacing = resolveResponsive(gap);\n const layoutStyle: LayoutStyle = {\n \"--gridui-gap\": spaceValue(spacing.base),\n \"--gridui-gap-md\": spaceValue(spacing.md),\n \"--gridui-gap-lg\": spaceValue(spacing.lg),\n width: width === \"full\" ? \"100%\" : undefined,\n maxWidth,\n paddingTop: paddingStart === undefined ? undefined : spaceValue(paddingStart),\n ...style,\n };\n return (<div\n {...restProps}\n className={cn(stackStyles(), className)}\n style={layoutStyle}\n />);\n};\n"],
5
- "mappings": "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",
6
- "names": ["jsx", "cva", "cn", "jsx", "jsxs", "cva", "cn", "jsx", "cva", "cn", "cva", "cn", "cva", "cn", "jsx", "jsxs", "cn", "spaceValue", "jsx", "cva", "cn", "jsx", "cn", "resolveResponsive", "spaceValue", "jsx", "jsxs", "cn", "jsx", "cn", "Slot", "jsx", "jsx", "cn", "jsx", "jsxs", "cn", "jsx", "cn", "cva", "cn", "resolveResponsive", "spaceValue", "Slot", "jsx", "cn", "cva", "cn", "resolveResponsive", "spaceValue", "jsx", "cva", "cn", "spacingVariables", "Fragment", "jsx", "jsxs", "cn", "cva", "cn", "spaceValue", "jsx", "cn", "resolveResponsive", "jsx", "cn", "cva", "cn", "resolveResponsive", "spaceValue", "jsx"]
4
+ "sourcesContent": ["/**\n * @author WMXPY\n * @package Grid\n * @namespace Container\n * @description Style\n */\n\nimport { cva } from \"class-variance-authority\";\n\nexport const containerVariants = cva(\"gridui-container\", {\n variants: {\n width: {\n narrow: \"gridui-container-narrow\",\n standard: \"gridui-container-standard\",\n wide: \"gridui-container-wide\",\n },\n },\n defaultVariants: { width: \"standard\" },\n});\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Container\n * @description Container\n */\n\nimport type { ElementProps } from \"../shared/types\";\nimport { containerVariants } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { FC } from \"react\";\n\nexport type ContainerProps = ElementProps & {\n readonly width?: \"narrow\" | \"standard\" | \"wide\";\n};\n\nexport const Container: FC<ContainerProps> = (props: ContainerProps) => {\n const { width = \"standard\", className, ...restProps } = props;\n return (<div\n {...restProps}\n className={cn(containerVariants({ width }), className)}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Shared\n * @description Decoration\n */\n\nimport type { FrameBoundaryStyle } from \"../frame-boundary/frame-boundary\";\nimport type { FC } from \"react\";\n\nexport type FrameDecorationStyle = \"none\" | \"nodes\" | \"marks\" | \"corners\" | \"ticks\";\n\nexport const resolveFrameDecoration = (\n boundary: FrameBoundaryStyle,\n decoration?: FrameDecorationStyle,\n): FrameDecorationStyle => {\n return decoration ?? (boundary === \"band\" ? \"nodes\" : \"none\");\n};\n\nexport type FrameDecorationProps = {\n readonly decoration: FrameDecorationStyle;\n readonly side?: \"start\" | \"end\";\n};\n\nexport const FrameDecoration: FC<FrameDecorationProps> = (props: FrameDecorationProps) => {\n const { decoration, side } = props;\n if (decoration === \"none\") {\n return null;\n }\n if (!side) {\n return (<>\n <FrameDecoration\n decoration={decoration}\n side=\"start\"\n />\n <FrameDecoration\n decoration={decoration}\n side=\"end\"\n />\n </>);\n }\n return (<div\n className=\"gridui-frame-decoration\"\n data-decoration={decoration}\n data-side={side}\n aria-hidden=\"true\"\n inert\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace DashboardFrame\n * @description Style\n */\n\nimport { cva } from \"class-variance-authority\";\n\nexport const dashboardFrameVariants = cva(\"gridui-dashboard-frame\", {\n variants: {\n startSize: {\n none: \"[--gridui-dashboard-start:0px] [--gridui-dashboard-start-minimum:0px]\",\n small: \"[--gridui-dashboard-start:var(--gridui-space-8)]\",\n medium: \"[--gridui-dashboard-start:var(--gridui-space-16)]\",\n large: \"[--gridui-dashboard-start:var(--gridui-space-24)]\",\n },\n endSize: {\n none: \"[--gridui-dashboard-end:0px] [--gridui-dashboard-end-minimum:0px]\",\n small: \"[--gridui-dashboard-end:var(--gridui-space-8)]\",\n medium: \"[--gridui-dashboard-end:var(--gridui-space-16)]\",\n large: \"[--gridui-dashboard-end:var(--gridui-space-24)]\",\n },\n compactStartSize: {\n none: \"[--gridui-dashboard-compact-start:0px] [--gridui-dashboard-compact-start-minimum:0px]\",\n small: \"[--gridui-dashboard-compact-start:var(--gridui-space-8)]\",\n medium: \"[--gridui-dashboard-compact-start:var(--gridui-space-16)]\",\n large: \"[--gridui-dashboard-compact-start:var(--gridui-space-24)]\",\n },\n compactEndSize: {\n none: \"[--gridui-dashboard-compact-end:0px] [--gridui-dashboard-compact-end-minimum:0px]\",\n small: \"[--gridui-dashboard-compact-end:var(--gridui-space-8)]\",\n medium: \"[--gridui-dashboard-compact-end:var(--gridui-space-16)]\",\n large: \"[--gridui-dashboard-compact-end:var(--gridui-space-24)]\",\n },\n },\n defaultVariants: {\n startSize: \"medium\",\n endSize: \"medium\",\n compactStartSize: \"small\",\n compactEndSize: \"small\",\n },\n});\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace DashboardFrame\n * @description Dashboard Frame\n */\n\nimport { FrameDecoration, type FrameDecorationStyle } from \"../shared/decoration\";\nimport { dashboardFrameVariants } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type DashboardFrameSize = NonNullable<VariantProps<typeof dashboardFrameVariants>[\"startSize\"]>;\n\nexport type DashboardFrameProps = ComponentPropsWithRef<\"div\"> & {\n readonly decoration?: FrameDecorationStyle;\n readonly startDecoration?: FrameDecorationStyle;\n readonly endDecoration?: FrameDecorationStyle;\n readonly startSize?: DashboardFrameSize;\n readonly endSize?: DashboardFrameSize;\n readonly compactStartSize?: DashboardFrameSize;\n readonly compactEndSize?: DashboardFrameSize;\n};\n\nexport const DashboardFrame: FC<DashboardFrameProps> = (props: DashboardFrameProps) => {\n const {\n startSize,\n endSize,\n compactStartSize,\n compactEndSize,\n decoration = \"none\",\n startDecoration = decoration,\n endDecoration = decoration,\n children,\n className,\n ...restProps\n } = props;\n\n return (<div\n {...restProps}\n className={cn(dashboardFrameVariants({\n startSize,\n endSize,\n compactStartSize,\n compactEndSize,\n }), className)}\n >\n <div\n className=\"gridui-dashboard-frame-body\"\n >\n {children}\n <FrameDecoration\n decoration={startDecoration}\n side=\"start\"\n />\n <FrameDecoration\n decoration={endDecoration}\n side=\"end\"\n />\n </div>\n </div>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameBoundary\n * @description Style\n */\n\nimport { cva } from \"class-variance-authority\";\n\nexport const frameBoundaryStyles = cva(\"gridui-frame-boundary\", {\n variants: {\n boundary: {\n none: \"\",\n line: \"\",\n band: \"gridui-frame-divider\",\n stripe: \"gridui-frame-divider gridui-frame-stripe\",\n space: \"gridui-frame-space\",\n },\n },\n defaultVariants: { boundary: \"line\" },\n});\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameBoundary\n * @description Frame Boundary\n */\n\nimport { frameBoundaryStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type FrameBoundaryStyle = NonNullable<VariantProps<typeof frameBoundaryStyles>[\"boundary\"]>;\n\nexport type FrameBoundaryProps = Omit<ComponentPropsWithRef<\"div\">, \"children\"> & {\n readonly boundary?: FrameBoundaryStyle;\n readonly extent?: \"content\" | \"frame\";\n};\n\nexport const FrameBoundary: FC<FrameBoundaryProps> = (props: FrameBoundaryProps) => {\n const { boundary = \"line\", extent = \"content\", className, ...restProps } = props;\n return boundary === \"none\" ? null : (<div\n {...restProps}\n className={cn(frameBoundaryStyles({ boundary }), className)}\n data-boundary={boundary}\n data-boundary-extent={extent}\n aria-hidden=\"true\"\n inert\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Shared\n * @description Chrome\n */\n\nimport { resolveResponsive, type Responsive, type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport type { CSSProperties } from \"react\";\n\nexport type ChromeProps = {\n readonly padding?: Responsive<Space>;\n};\n\nexport const chromeStyle = (padding: Responsive<Space>): CSSProperties & {\n \"--gridui-chrome-padding\": string;\n \"--gridui-chrome-padding-md\": string;\n \"--gridui-chrome-padding-lg\": string;\n} => {\n const values = resolveResponsive(padding);\n return {\n \"--gridui-chrome-padding\": spaceValue(values.base),\n \"--gridui-chrome-padding-md\": spaceValue(values.md),\n \"--gridui-chrome-padding-lg\": spaceValue(values.lg),\n };\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Shared\n * @description Chrome Style\n */\n\nimport { cva } from \"class-variance-authority\";\n\nexport const frameChromeStyles = cva(\"gridui-frame-chrome\");\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Shared\n * @description Frame Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { paletteClass } from \"@gridui/theme\";\nimport { cva } from \"class-variance-authority\";\n\nexport type FrameTone = \"neutral\" | \"brand\" | \"warning\" | \"danger\";\n\nexport const frameToneStyles = (options: {\n readonly tone?: FrameTone;\n} = {}): string => {\n const { tone = \"neutral\" } = options;\n return tone === \"neutral\" ? \"\" : `gridui-frame-${tone} ${paletteClass(tone)}`;\n};\n\nexport const frameContentStyles = cva(cn(\n \"gridui-frame-content\",\n \"border-x border-solid border-border wrap-anywhere\",\n));\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameFooter\n * @description Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport const frameSignatureStyles = cva(cn(\n \"gridui-frame-signature flex min-w-0 items-center justify-center gap-gridui-24 py-gridui-32 px-gridui-24 overflow-hidden border-t border-solid border-border bg-transparent\",\n \"[&>svg]:h-auto [&>svg]:opacity-30 [&>span]:font-display [&>span]:leading-none [&>span]:text-transparent\",\n));\n\nexport const frameSignatureCroppedStyles = cva(\"gridui-frame-signature-cropped block pb-0 @container [&>span]:block [&>span]:text-center [&>span]:whitespace-nowrap\");\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameFooter\n * @description Frame Footer\n */\n\nimport { FrameBoundary, type FrameBoundaryStyle } from \"../frame-boundary/frame-boundary\";\nimport { type ChromeProps, chromeStyle } from \"../shared/chrome\";\nimport { frameChromeStyles } from \"../shared/chrome-style\";\nimport { FrameDecoration, type FrameDecorationStyle, resolveFrameDecoration } from \"../shared/decoration\";\nimport { frameContentStyles, type FrameTone, frameToneStyles } from \"../shared/frame-style\";\nimport { frameSignatureCroppedStyles, frameSignatureStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { ComponentPropsWithRef, FC, ReactNode } from \"react\";\n\nexport type FrameFooterProps = ComponentPropsWithRef<\"footer\"> & ChromeProps & {\n readonly contentLayout?: \"flex\" | \"block\";\n readonly tone?: FrameTone;\n readonly boundary?: FrameBoundaryStyle;\n readonly decoration?: FrameDecorationStyle;\n readonly signature?: ReactNode;\n readonly signatureAppearance?: \"standard\" | \"cropped\";\n};\n\nexport const FrameFooter: FC<FrameFooterProps> = (props: FrameFooterProps) => {\n const { padding = {\n base: 16,\n md: 24,\n }, contentLayout = \"flex\", tone = \"neutral\", boundary = \"line\", decoration, signature, signatureAppearance = \"standard\", className, children, ...restProps } = props;\n return (<footer\n {...restProps}\n className={cn(\"gridui-container gridui-frame-footer\", frameToneStyles({\n tone,\n }), className)}\n >\n <FrameBoundary\n boundary={boundary}\n />\n <div\n className={cn(frameContentStyles(), frameChromeStyles(), \"gridui-frame-surface\")}\n data-content-layout={contentLayout}\n style={chromeStyle(padding)}\n >\n {children}\n <FrameDecoration\n decoration={resolveFrameDecoration(boundary, decoration)}\n />\n </div>\n {signature ? (<div\n className={cn(frameContentStyles(), frameSignatureStyles(), signatureAppearance === \"cropped\" && frameSignatureCroppedStyles())}\n aria-hidden=\"true\"\n inert\n >\n {signature}\n </div>) : null}\n </footer>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameHeader\n * @description Frame Header\n */\n\nimport { type ChromeProps, chromeStyle } from \"../shared/chrome\";\nimport { frameChromeStyles } from \"../shared/chrome-style\";\nimport { frameContentStyles } from \"../shared/frame-style\";\nimport { cn } from \"@gridui/style-utils\";\nimport { type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type FrameHeaderProps = ComponentPropsWithRef<\"header\"> & ChromeProps & {\n readonly wrap?: boolean;\n readonly gap?: Space;\n readonly justify?: \"start\" | \"between\";\n};\n\nexport const FrameHeader: FC<FrameHeaderProps> = (props: FrameHeaderProps) => {\n const { padding = {\n base: 16,\n md: 24,\n }, wrap = true, gap = 16, justify = \"between\", className, children, ...restProps } = props;\n return (<header\n {...restProps}\n className={cn(\"gridui-container gridui-frame-header\", className)}\n >\n <div\n className={cn(frameContentStyles(), frameChromeStyles())}\n data-justify={justify}\n style={{\n ...chromeStyle(padding),\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n gap: spaceValue(gap),\n }}\n >\n {children}\n </div>\n </header>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameRail\n * @description Style\n */\n\nimport { cva } from \"class-variance-authority\";\n\nexport const frameRailStyles = cva(\"gridui-frame-rail flex h-full box-border flex-col py-gridui-24 text-muted\");\n\nexport const frameRailContentStyles = cva(\"gridui-frame-rail-content relative z-(--gridui-z-interaction) min-w-0 type-eyebrow bg-inherit\");\n\nexport const frameRailStickyBottomStyles = cva(\"gridui-frame-rail-sticky-bottom justify-end [&>.gridui-frame-rail-content]:sticky\");\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameRail\n * @description Frame Rail\n */\n\nimport { frameRailContentStyles, frameRailStickyBottomStyles, frameRailStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type FrameRailProps = ComponentPropsWithRef<\"div\"> & {\n readonly placement?: \"start\" | \"sticky-bottom\";\n};\n\nexport const FrameRail: FC<FrameRailProps> = (props: FrameRailProps) => {\n const {\n placement = \"start\",\n children,\n className,\n ...restProps\n } = props;\n return (<div\n {...restProps}\n className={cn(frameRailStyles(), placement === \"sticky-bottom\" && frameRailStickyBottomStyles(), className)}\n >\n <div\n className={frameRailContentStyles()}\n >\n {children}\n </div>\n </div>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameRailGroup\n * @description Frame Rail Group\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { resolveResponsive, type Responsive, type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport type { ComponentPropsWithRef, CSSProperties, FC, ReactNode } from \"react\";\n\nexport type FrameRailGroupProps = ComponentPropsWithRef<\"div\"> & {\n readonly rail?: ReactNode;\n readonly railWidth?: Responsive<Space>;\n};\n\nexport const FrameRailGroup: FC<FrameRailGroupProps> = (props: FrameRailGroupProps) => {\n const { rail, railWidth = {\n base: 0,\n md: 32,\n }, children, className, style, ...restProps } = props;\n const hasRail = rail !== undefined && rail !== null && rail !== false;\n const width = resolveResponsive(hasRail ? railWidth : 0);\n const layoutStyle: CSSProperties & {\n [key: `--gridui-${string}`]: string | number;\n } = {\n \"--gridui-rail-width-base\": spaceValue(width.base),\n \"--gridui-rail-width-md\": spaceValue(width.md),\n \"--gridui-rail-width-lg\": spaceValue(width.lg),\n \"--gridui-rail-display-base\": width.base === 0 ? \"none\" : \"block\",\n \"--gridui-rail-display-md\": width.md === 0 ? \"none\" : \"block\",\n \"--gridui-rail-display-lg\": width.lg === 0 ? \"none\" : \"block\",\n ...style,\n };\n return (<div\n {...restProps}\n className={cn(\"gridui-frame-rail-group\", className)}\n style={layoutStyle}\n >\n {hasRail ? (<div\n className=\"gridui-frame-rail-track\"\n >\n {rail}\n </div>) : null}\n <div\n className=\"gridui-frame-rail-body\"\n >\n {children}\n </div>\n </div>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameRegion\n * @description Frame Region\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type FrameRegionProps = ComponentPropsWithRef<\"div\"> & {\n readonly asChild?: boolean;\n readonly edge?: \"none\" | \"left\" | \"right\" | \"both\";\n};\n\nexport const FrameRegion: FC<FrameRegionProps> = (props: FrameRegionProps) => {\n const { asChild = false, edge = \"none\", className, ...restProps } = props;\n const Component = asChild ? Slot : \"div\";\n return (<Component\n {...restProps}\n className={cn(\"gridui-frame-region\", className)}\n data-frame-edge={edge}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameRegionRow\n * @description Frame Region Row\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport type { ComponentPropsWithRef, CSSProperties, FC } from \"react\";\n\nexport type FrameRegionRowProps = ComponentPropsWithRef<\"div\"> & {\n readonly asChild?: boolean;\n readonly contentInset?: number | string;\n};\n\nexport const FrameRegionRow: FC<FrameRegionRowProps> = (props: FrameRegionRowProps) => {\n const { asChild = false, contentInset = 0, className, style, ...restProps } = props;\n const Component = asChild ? Slot : \"div\";\n return (<Component\n {...restProps}\n className={cn(\"gridui-frame-region-row\", className)}\n style={{\n \"--gridui-frame-region-inset\": typeof contentInset === \"number\" ? `${contentInset}px` : contentInset,\n ...style,\n } as CSSProperties}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameTexture\n * @description Frame Texture\n */\n\nimport type { FrameTextureStyle } from \"../shared/texture-types\";\nimport type { FC } from \"react\";\n\nexport type FrameTextureProps = {\n readonly texture: FrameTextureStyle;\n};\n\nexport const FrameTexture: FC<FrameTextureProps> = (props: FrameTextureProps) => {\n const { texture } = props;\n return texture === \"none\" ? null : (<div\n className=\"gridui-frame-texture\"\n data-texture={texture}\n aria-hidden=\"true\"\n inert\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameSection\n * @description Frame Section\n */\n\nimport { FrameBoundary, type FrameBoundaryStyle } from \"../frame-boundary/frame-boundary\";\nimport { FrameTexture } from \"../frame-texture/frame-texture\";\nimport { FrameDecoration, type FrameDecorationStyle, resolveFrameDecoration } from \"../shared/decoration\";\nimport { frameContentStyles, type FrameTone, frameToneStyles } from \"../shared/frame-style\";\nimport type { FrameTextureStyle } from \"../shared/texture-types\";\nimport { cn } from \"@gridui/style-utils\";\nimport { type Responsive, type Space, spacingVariables } from \"@gridui/style-utils/responsive\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type FrameSectionProps = ComponentPropsWithRef<\"section\"> & {\n readonly tone?: FrameTone;\n readonly boundary?: FrameBoundaryStyle;\n readonly decoration?: FrameDecorationStyle;\n readonly texture?: FrameTextureStyle;\n readonly edges?: \"frame\" | \"none\";\n readonly paddingInline?: Responsive<Space>;\n readonly paddingBlock?: Responsive<Space>;\n};\n\nexport const FrameSection: FC<FrameSectionProps> = (props: FrameSectionProps) => {\n const {\n tone = \"neutral\",\n boundary = \"line\",\n decoration,\n texture = \"none\",\n edges = \"frame\",\n paddingInline = 0,\n paddingBlock = 0,\n className,\n children,\n ...restProps\n } = props;\n return (<section\n {...restProps}\n className={cn(\"gridui-container gridui-frame-section\", frameToneStyles({ tone }), className)}\n data-edges={edges}\n >\n <FrameBoundary\n boundary={boundary}\n />\n <div\n className={cn(frameContentStyles(), \"gridui-frame-surface\", edges === \"none\" && \"border-x-0\")}\n style={{\n ...spacingVariables(\"section-padding-inline\", paddingInline),\n ...spacingVariables(\"section-padding-block\", paddingBlock),\n }}\n >\n <FrameTexture\n texture={texture}\n />\n {children}\n <FrameDecoration\n decoration={resolveFrameDecoration(boundary, decoration)}\n />\n </div>\n </section>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace FrameSections\n * @description Frame Sections\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type FrameSectionsProps = ComponentPropsWithRef<\"div\">;\n\nexport const FrameSections: FC<FrameSectionsProps> = (props: FrameSectionsProps) => {\n const { className, ...restProps } = props;\n return (<div\n {...restProps}\n className={cn(\"gridui-frame-sections\", className)}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace GridItem\n * @description Responsive\n */\n\nimport type { Span } from \"../shared/responsive-types\";\n\nexport const spanValue = (value: Span): string => {\n return value === \"full\" ? \"1 / -1\" : `span ${value} / span ${value}`;\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace GridItem\n * @description Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport const gridItemStyles = cva(cn(\n \"gridui-grid-item\",\n \"min-w-0 wrap-anywhere\",\n));\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace GridItem\n * @description Grid Item\n */\n\nimport type { Span } from \"../shared/responsive-types\";\nimport type { ElementProps, LayoutStyle } from \"../shared/types\";\nimport { spanValue } from \"./responsive\";\nimport { gridItemStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport { resolveResponsive, type Responsive, type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport type { FC } from \"react\";\n\nexport type GridItemProps = ElementProps & {\n readonly asChild?: boolean;\n readonly span?: Responsive<Span>;\n readonly padding?: Responsive<Space>;\n readonly align?: \"end\" | \"center\";\n};\n\nexport const GridItem: FC<GridItemProps> = (props: GridItemProps) => {\n const {\n asChild = false,\n span = 1,\n padding = 0,\n align,\n className,\n style,\n ...restProps\n } = props;\n const size = resolveResponsive(span);\n const inset = resolveResponsive(padding);\n const layoutStyle: LayoutStyle = {\n \"--gridui-span\": spanValue(size.base),\n \"--gridui-span-md\": spanValue(size.md),\n \"--gridui-span-lg\": spanValue(size.lg),\n \"--gridui-padding\": spaceValue(inset.base),\n \"--gridui-padding-md\": spaceValue(inset.md),\n \"--gridui-padding-lg\": spaceValue(inset.lg),\n ...(align ? {\n display: \"flex\",\n alignItems: align,\n } : {}),\n ...style,\n };\n\n const Component = asChild ? Slot : \"div\";\n return (<Component\n {...restProps}\n className={cn(gridItemStyles(), className)}\n style={layoutStyle}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Grid\n * @description Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport const gridStyles = cva(cn(\n \"gridui-grid\",\n \"grid min-w-0\",\n));\n\nexport const gridCellsStyles = cva(cn(\n \"gridui-grid-cells\",\n \"border-t border-solid border-border border-l border-solid border-border\",\n));\n\nexport const gridInternalStyles = cva(cn(\n \"gridui-grid-internal\",\n \"bg-border\",\n));\n\nexport const gridVariants = cva(gridStyles(), {\n variants: {\n frame: {\n none: \"\",\n cells: gridCellsStyles(),\n internal: gridInternalStyles(),\n },\n },\n defaultVariants: { frame: \"none\" },\n});\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Grid\n * @description Tracks\n */\n\nimport type { GridColumns } from \"./responsive\";\n\nexport const gridColumnCount = (columns: GridColumns): number => {\n return typeof columns === \"number\" ? columns : columns.length;\n};\n\nexport const gridTemplate = (columns: GridColumns): string => {\n if (typeof columns === \"number\") {\n return `repeat(${columns}, minmax(0, 1fr))`;\n }\n return columns.map((track) => {\n return track === \"1fr\" ? \"minmax(0, 1fr)\" : track;\n }).join(\" \");\n};\n\nexport const adaptiveGridTemplate = (minItemWidth: string | number): string => {\n if ((typeof minItemWidth === \"number\" && (!Number.isFinite(minItemWidth) || minItemWidth <= 0))\n || (typeof minItemWidth === \"string\" && !minItemWidth.trim())) {\n throw new RangeError(\"Adaptive Grid minItemWidth must be a positive number or a nonempty CSS length.\");\n }\n const minimum = typeof minItemWidth === \"number\" ? `${minItemWidth}px` : minItemWidth;\n return `repeat(auto-fit, minmax(min(100%, ${minimum}), 1fr))`;\n};\n\n// Fill incomplete rows before the next item wraps or starts a full-width row.\nexport const fillGridRowSpans = (columns: number, spans: readonly number[]): number[] => {\n let occupied = 0;\n return spans.map((span, index) => {\n if (span < 1 || span > columns) {\n throw new RangeError(\"Grid item spans must fit within the grid columns.\");\n }\n if (occupied + span > columns) {\n occupied = 0;\n }\n occupied += span;\n const next = spans[index + 1];\n if (next === undefined || occupied + next > columns) {\n const filled = span + columns - occupied;\n occupied = 0;\n return filled;\n }\n if (occupied === columns) {\n occupied = 0;\n }\n return span;\n });\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Grid\n * @description Grid\n */\n\nimport { GridItem, type GridItemProps } from \"../grid-item/grid-item\";\nimport type { ElementProps, LayoutStyle } from \"../shared/types\";\nimport type { GridColumns } from \"./responsive\";\nimport { gridVariants } from \"./style\";\nimport { adaptiveGridTemplate, fillGridRowSpans, gridColumnCount, gridTemplate } from \"./tracks\";\nimport { cn } from \"@gridui/style-utils\";\nimport { resolveResponsive, type Responsive, type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Children, cloneElement, type FC, Fragment, isValidElement, type ReactElement } from \"react\";\n\ntype GridFrameOptions = {\n readonly frame?: \"none\";\n readonly gap?: Responsive<Space>;\n} | {\n readonly frame: \"none\" | \"cells\" | \"internal\";\n readonly gap?: never;\n};\n\ntype GridLayoutOptions = ({\n readonly columns?: Responsive<GridColumns>;\n readonly minItemWidth?: never;\n} & GridFrameOptions) | {\n readonly columns: \"auto\";\n readonly minItemWidth: Responsive<string | number>;\n readonly frame?: \"none\";\n readonly gap?: Responsive<Space>;\n readonly fillLastRow?: false;\n};\n\nexport type GridProps = ElementProps & GridLayoutOptions & ({\n readonly asChild?: false;\n readonly fillLastRow?: boolean;\n} | {\n readonly asChild: true;\n readonly children: ReactElement;\n readonly fillLastRow?: false;\n});\n\nexport const Grid: FC<GridProps> = (props: GridProps) => {\n const {\n columns = 1,\n minItemWidth,\n asChild = false,\n frame = \"none\",\n gap = 16,\n fillLastRow = false,\n className,\n style,\n children,\n ...restProps\n } = props;\n if (fillLastRow && (asChild || columns === \"auto\")) {\n throw new TypeError(\"Grid fillLastRow requires fixed columns and direct GridItem children, without asChild.\");\n }\n if (columns === \"auto\" && frame !== \"none\") {\n throw new TypeError(\"Adaptive Grid does not support framed cells.\");\n }\n if (asChild && (!isValidElement(children) || children.type === Fragment)) {\n throw new TypeError(\"Grid asChild requires one element that forwards props and refs to its root.\");\n }\n let geometry: LayoutStyle;\n let count: {\n base: number;\n md: number;\n lg: number;\n } | null = null;\n if (columns === \"auto\") {\n if (minItemWidth === undefined) {\n throw new TypeError(\"Adaptive Grid requires minItemWidth.\");\n }\n const minimum = resolveResponsive(minItemWidth);\n geometry = {\n \"--gridui-grid-template\": adaptiveGridTemplate(minimum.base),\n \"--gridui-grid-template-md\": adaptiveGridTemplate(minimum.md),\n \"--gridui-grid-template-lg\": adaptiveGridTemplate(minimum.lg),\n };\n } else {\n if (minItemWidth !== undefined) {\n throw new TypeError(\"Grid minItemWidth requires columns=auto.\");\n }\n const tracks = resolveResponsive(columns);\n count = {\n base: gridColumnCount(tracks.base),\n md: gridColumnCount(tracks.md),\n lg: gridColumnCount(tracks.lg),\n };\n geometry = {\n \"--gridui-columns\": count.base,\n \"--gridui-columns-md\": count.md,\n \"--gridui-columns-lg\": count.lg,\n \"--gridui-grid-template\": gridTemplate(tracks.base),\n \"--gridui-grid-template-md\": gridTemplate(tracks.md),\n \"--gridui-grid-template-lg\": gridTemplate(tracks.lg),\n };\n }\n const spacing = resolveResponsive(frame === \"none\" ? gap : 0);\n const layoutStyle: LayoutStyle = {\n ...geometry,\n \"--gridui-gap\": frame === \"internal\" ? \"1px\" : spaceValue(spacing.base),\n \"--gridui-gap-md\": frame === \"internal\" ? \"1px\" : spaceValue(spacing.md),\n \"--gridui-gap-lg\": frame === \"internal\" ? \"1px\" : spaceValue(spacing.lg),\n ...style,\n };\n let content = children;\n if (fillLastRow && count) {\n const items = Children.toArray(children).map((child) => {\n if (!isValidElement<GridItemProps>(child) || child.type !== GridItem) {\n throw new TypeError(\"Grid fillLastRow requires direct GridItem children.\");\n }\n return child;\n });\n const spans = items.map((item) => {\n return resolveResponsive(item.props.span ?? 1);\n });\n const filled = {\n base: fillGridRowSpans(count.base, spans.map((span) => {\n return span.base === \"full\" ? count.base : span.base;\n })),\n md: fillGridRowSpans(count.md, spans.map((span) => {\n return span.md === \"full\" ? count.md : span.md;\n })),\n lg: fillGridRowSpans(count.lg, spans.map((span) => {\n return span.lg === \"full\" ? count.lg : span.lg;\n })),\n };\n content = items.map((item, index) => {\n const itemStyle: LayoutStyle = {\n \"--gridui-span\": `span ${filled.base[index]} / span ${filled.base[index]}`,\n \"--gridui-span-md\": `span ${filled.md[index]} / span ${filled.md[index]}`,\n \"--gridui-span-lg\": `span ${filled.lg[index]} / span ${filled.lg[index]}`,\n ...item.props.style,\n };\n return cloneElement(item, {\n style: itemStyle,\n });\n });\n }\n const Component = asChild ? Slot : \"div\";\n return (<Component\n {...restProps}\n className={cn(gridVariants({ frame }), className)}\n style={layoutStyle}\n >\n {content}\n </Component>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace PageFrame\n * @description Style\n */\n\nimport { cva } from \"class-variance-authority\";\n\nexport const pageFrameVariants = cva(\"gridui-page-frame min-h-svh\", {\n variants: {\n width: {\n narrow: \"gridui-container-narrow\",\n standard: \"gridui-container-standard\",\n wide: \"gridui-container-wide\",\n },\n },\n defaultVariants: { width: \"standard\" },\n});\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace PageFrame\n * @description Page Frame\n */\n\nimport type { ContainerProps } from \"../container/container\";\nimport { FrameRailGroup, type FrameRailGroupProps } from \"../frame-rail-group/frame-rail-group\";\nimport { FrameSections } from \"../frame-sections/frame-sections\";\nimport { frameContentStyles } from \"../shared/frame-style\";\nimport { pageFrameVariants } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport { type Responsive, type Space, spacingVariables } from \"@gridui/style-utils/responsive\";\nimport type { FC, ReactNode } from \"react\";\n\nexport type PageFrameProps = FrameRailGroupProps & {\n readonly width?: ContainerProps[\"width\"];\n readonly header?: ReactNode;\n readonly footer?: ReactNode;\n readonly railScope?: \"page\" | \"main\";\n readonly mainGutterStart?: Responsive<Space>;\n};\n\nexport const PageFrame: FC<PageFrameProps> = (props: PageFrameProps) => {\n const {\n width = \"standard\",\n header,\n footer,\n rail,\n railWidth,\n railScope = \"page\",\n mainGutterStart,\n children,\n className,\n ...restProps\n } = props;\n const railOptions = railWidth === undefined ? {} : { railWidth };\n const content = (<>\n <FrameSections>\n {children}\n </FrameSections>\n <div\n className=\"gridui-container gridui-frame-fill\"\n aria-hidden=\"true\"\n >\n <div\n className={cn(frameContentStyles())}\n />\n </div>\n </>);\n return (<FrameRailGroup\n {...restProps}\n rail={railScope === \"page\" ? rail : undefined}\n {...railOptions}\n className={cn(pageFrameVariants({ width }), className)}\n >\n {header ? (<div\n className=\"gridui-frame-page-header\"\n >\n {header}\n </div>) : null}\n <main\n className=\"gridui-frame-main\"\n style={mainGutterStart === undefined ? undefined : spacingVariables(\"main-gutter-start\", mainGutterStart)}\n >\n {railScope === \"main\" && rail !== undefined && rail !== null && rail !== false ? (<FrameRailGroup\n rail={rail}\n {...railOptions}\n className=\"gridui-frame-main-rail-group\"\n >\n {content}\n </FrameRailGroup>) : content}\n </main>\n {footer ? (<div\n className=\"gridui-frame-page-footer\"\n >\n {footer}\n </div>) : null}\n </FrameRailGroup>);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Row\n * @description Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport const rowStyles = cva(cn(\n \"gridui-row\",\n \"min-w-0\",\n));\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Row\n * @description Row\n */\n\nimport { rowStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport { type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport type { ComponentPropsWithRef, FC } from \"react\";\n\nexport type RowProps = ComponentPropsWithRef<\"div\"> & {\n readonly gap?: Space;\n readonly rowGap?: Space;\n readonly align?: \"stretch\" | \"center\" | \"baseline\" | \"end\";\n readonly justify?: \"start\" | \"between\";\n readonly wrap?: boolean;\n readonly inline?: boolean;\n};\n\nexport const Row: FC<RowProps> = (props: RowProps) => {\n const {\n gap = 16,\n rowGap = gap,\n align = \"stretch\",\n justify = \"start\",\n wrap = true,\n inline = false,\n className,\n style,\n ...restProps\n } = props;\n return (<div\n {...restProps}\n className={cn(rowStyles(), className)}\n data-inline={inline}\n style={{\n display: inline ? \"inline-flex\" : \"flex\",\n alignItems: align,\n justifyContent: justify === \"between\" ? \"space-between\" : \"flex-start\",\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n gap: `${spaceValue(rowGap)} ${spaceValue(gap)}`,\n ...style,\n }}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Split\n * @description Split\n */\n\nimport type { ElementProps } from \"../shared/types\";\nimport { cn } from \"@gridui/style-utils\";\nimport { resolveResponsive, type Responsive } from \"@gridui/style-utils/responsive\";\nimport type { FC } from \"react\";\n\nexport type SplitDirection = \"row\" | \"column\" | \"row-reverse\" | \"column-reverse\";\n\nexport type SplitProps = ElementProps & {\n readonly direction?: Responsive<SplitDirection>;\n readonly order?: \"logical\" | \"physical\";\n readonly seam?: Responsive<\"line\" | \"none\">;\n};\n\nexport const Split: FC<SplitProps> = (props: SplitProps) => {\n const { direction = \"row\", order = \"logical\", seam = \"line\", className, ...restProps } = props;\n const directions = resolveResponsive(direction);\n const seams = resolveResponsive(seam);\n return (<div\n {...restProps}\n className={cn(\"gridui-split\", className)}\n data-order={order}\n data-direction={directions.base}\n data-direction-md={directions.md}\n data-direction-lg={directions.lg}\n data-seam={seams.base}\n data-seam-md={seams.md}\n data-seam-lg={seams.lg}\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Stack\n * @description Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport const stackStyles = cva(cn(\n \"gridui-stack\",\n \"flex min-w-0 flex-col\",\n));\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Stack\n * @description Stack\n */\n\nimport type { ElementProps, LayoutStyle } from \"../shared/types\";\nimport { stackStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport { resolveResponsive, type Responsive, type Space, spaceValue } from \"@gridui/style-utils/responsive\";\nimport type { CSSProperties, FC } from \"react\";\n\nexport type StackProps = ElementProps & {\n readonly gap?: Responsive<Space>;\n readonly width?: \"full\";\n readonly maxWidth?: CSSProperties[\"maxWidth\"];\n readonly paddingStart?: Space;\n};\n\nexport const Stack: FC<StackProps> = (props: StackProps) => {\n const {\n gap = 16,\n width,\n maxWidth,\n paddingStart,\n className,\n style,\n ...restProps\n } = props;\n const spacing = resolveResponsive(gap);\n const layoutStyle: LayoutStyle = {\n \"--gridui-gap\": spaceValue(spacing.base),\n \"--gridui-gap-md\": spaceValue(spacing.md),\n \"--gridui-gap-lg\": spaceValue(spacing.lg),\n width: width === \"full\" ? \"100%\" : undefined,\n maxWidth,\n paddingTop: paddingStart === undefined ? undefined : spaceValue(paddingStart),\n ...style,\n };\n return (<div\n {...restProps}\n className={cn(stackStyles(), className)}\n style={layoutStyle}\n />);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["jsx", "cva", "cn", "jsx", "jsxs", "cva", "cn", "jsx", "cva", "cn", "cva", "cn", "cva", "cn", "jsx", "jsxs", "cn", "spaceValue", "jsx", "cva", "cn", "jsx", "cn", "resolveResponsive", "spaceValue", "jsx", "jsxs", "cn", "jsx", "cn", "Slot", "jsx", "jsx", "cn", "jsx", "jsxs", "cn", "jsx", "cn", "cva", "cn", "resolveResponsive", "spaceValue", "Slot", "jsx", "cn", "cva", "cn", "resolveResponsive", "spaceValue", "Slot", "Fragment", "jsx", "cva", "cn", "spacingVariables", "Fragment", "jsx", "jsxs", "cn", "cva", "cn", "spaceValue", "jsx", "cn", "resolveResponsive", "jsx", "cn", "cva", "cn", "resolveResponsive", "spaceValue", "jsx"]
7
7
  }
@@ -5,7 +5,7 @@
5
5
  * @description Frame Style
6
6
  */
7
7
  export type FrameTone = "neutral" | "brand" | "warning" | "danger";
8
- export declare const frameToneStyles: (props?: ({
9
- tone?: "neutral" | "brand" | "warning" | "danger" | null | undefined;
10
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export declare const frameToneStyles: (options?: {
9
+ readonly tone?: FrameTone;
10
+ }) => string;
11
11
  export declare const frameContentStyles: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
package/dist/styles.css CHANGED
@@ -5,6 +5,9 @@
5
5
  .\@container {
6
6
  container-type: inline-size;
7
7
  }
8
+ .fixed {
9
+ position: fixed;
10
+ }
8
11
  .relative {
9
12
  position: relative;
10
13
  }
@@ -603,55 +606,8 @@
603
606
  padding: var(--gridui-chrome-padding-lg);
604
607
  }
605
608
  }
606
- .gridui-frame-brand {
607
- --gridui-background: var(--gridui-brand-background);
608
- --gridui-foreground: var(--gridui-brand-foreground);
609
- --gridui-muted: var(--gridui-brand-muted);
610
- --gridui-border: var(--gridui-brand-border);
611
- --gridui-link: var(--gridui-brand-link);
612
- --gridui-accent-background: var(--gridui-brand-accent-background);
613
- --gridui-accent-foreground: var(--gridui-brand-accent-foreground);
614
- }
615
- .gridui-frame-warning {
616
- --gridui-background: var(--gridui-warning-background);
617
- --gridui-foreground: var(--gridui-warning-foreground);
618
- --gridui-muted: var(--gridui-warning-muted);
619
- --gridui-border: var(--gridui-warning-border);
620
- --gridui-link: var(--gridui-warning-link);
621
- --gridui-accent-background: var(--gridui-warning-accent-background);
622
- --gridui-accent-foreground: var(--gridui-warning-accent-foreground);
623
- }
624
- .gridui-frame-danger {
625
- --gridui-background: var(--gridui-danger-background);
626
- --gridui-foreground: var(--gridui-danger-foreground);
627
- --gridui-muted: var(--gridui-danger-muted);
628
- --gridui-border: var(--gridui-danger-border);
629
- --gridui-link: var(--gridui-danger-link);
630
- --gridui-accent-background: var(--gridui-danger-accent-background);
631
- --gridui-accent-foreground: var(--gridui-danger-accent-foreground);
632
- }
633
609
  .gridui-frame-brand, .gridui-frame-warning, .gridui-frame-danger {
634
610
  --gridui-frame-previous-border: initial;
635
- --gridui-control-border: var(--gridui-foreground);
636
- --gridui-focus-color: var(--gridui-foreground);
637
- --gridui-decoration: var(--gridui-foreground);
638
- @supports (color: color-mix(in lab, red, red)) {
639
- --gridui-decoration: color-mix(in srgb, var(--gridui-foreground) 9%, transparent);
640
- }
641
- --gridui-brand-tint: var(--gridui-foreground);
642
- @supports (color: color-mix(in lab, red, red)) {
643
- --gridui-brand-tint: color-mix(in srgb, var(--gridui-foreground) 8%, transparent);
644
- }
645
- --gridui-surface: var(--gridui-foreground);
646
- @supports (color: color-mix(in lab, red, red)) {
647
- --gridui-surface: color-mix(in srgb, var(--gridui-foreground) 8%, var(--gridui-background));
648
- }
649
- --gridui-surface-hover: var(--gridui-foreground);
650
- @supports (color: color-mix(in lab, red, red)) {
651
- --gridui-surface-hover: color-mix(in srgb, var(--gridui-foreground) 12%, var(--gridui-background));
652
- }
653
- color: var(--gridui-foreground);
654
- background: var(--gridui-background);
655
611
  }
656
612
  .gridui-split {
657
613
  display: flex;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gridui/grid",
3
- "version": "2.2.1",
3
+ "version": "2.3.0",
4
4
  "description": "GridUI React grid",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@gridui/style-utils": "^2.1.3",
26
- "@gridui/theme": "^2.2.1",
26
+ "@gridui/theme": "^2.3.0",
27
27
  "@radix-ui/react-slot": "1.5.0",
28
28
  "class-variance-authority": "0.7.1"
29
29
  },