@gridui/grid 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/primitives/responsive.ts", "../src/frame/boundary/boundary.tsx", "../src/frame/decoration/decoration.tsx", "../src/frame/style.ts", "../src/frame/chrome/style.ts", "../src/frame/chrome/chrome.tsx", "../src/frame/rail/style.ts", "../src/frame/rail/rail.tsx", "../src/frame/page/style.ts", "../src/frame/page/page.tsx", "../src/frame/texture/texture.tsx", "../src/frame/section.tsx", "../src/primitives/container/style.ts", "../src/primitives/container/container.tsx", "../src/primitives/grid/style.ts", "../src/primitives/grid/grid-item.tsx", "../src/primitives/grid/tracks.ts", "../src/primitives/grid/grid.tsx", "../src/primitives/row/style.ts", "../src/primitives/row/row.tsx", "../src/primitives/stack/style.ts", "../src/primitives/stack/stack.tsx"],
4
+ "sourcesContent": ["/**\n * @author WMXPY\n * @package Grid\n * @namespace Primitives\n * @description Responsive\n */\n\nimport type { CSSProperties } from \"react\";\n\nexport type Space = 0 | 4 | 8 | 16 | 24 | 32 | 48 | 64;\nexport type Columns = 1 | 2 | 3 | 4 | 6 | 12;\nexport type GridTrack = \"1fr\" | \"auto\";\nexport type GridColumns = Columns | readonly [GridTrack, ...GridTrack[]];\nexport type Span = Columns | 5 | 7 | 8 | 9 | 10 | 11 | \"full\";\nexport type Responsive<T extends string | number | readonly string[]> = T | {\n readonly base: T;\n readonly md?: T;\n readonly lg?: T;\n};\n\nexport const resolveResponsive = <T extends string | number | readonly string[]>(value: Responsive<T>,\n): {\n base: T;\n md: T;\n lg: T;\n} => {\n if (typeof value !== \"object\" || !(\"base\" in value)) {\n return {\n base: value,\n md: value,\n lg: value,\n };\n }\n return {\n base: value.base,\n md: value.md ?? value.base,\n lg: value.lg ?? value.md ?? value.base,\n };\n};\n\nexport const spaceValue = (value: Space): string => {\n return `var(--gridui-space-${value})`;\n};\n\nexport const spanValue = (value: Span): string => {\n return value === \"full\" ? \"1 / -1\" : `span ${value} / span ${value}`;\n};\n\nexport const spacingStyle = (name: string, value: Responsive<Space>): CSSProperties & {\n [key: `--gridui-${string}`]: string | number;\n} => {\n const sizes = resolveResponsive(value);\n return {\n [`--gridui-${name}`]: spaceValue(sizes.base),\n [`--gridui-${name}-md`]: spaceValue(sizes.md),\n [`--gridui-${name}-lg`]: spaceValue(sizes.lg),\n };\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Frame_Boundary\n * @description Boundary\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport type { FC } from \"react\";\n\nexport type FrameBoundaryStyle = \"none\" | \"line\" | \"band\" | \"stripe\" | \"space\";\n\nexport type FrameBoundaryProps = {\n readonly boundary: FrameBoundaryStyle;\n};\n\nexport const FrameBoundary: FC<FrameBoundaryProps> = (props: FrameBoundaryProps) => {\n const { boundary } = props;\n return boundary === \"none\" ? null : (<div\n className={cn(\n \"gridui-frame-boundary\",\n (boundary === \"band\" || boundary === \"stripe\") && \"gridui-frame-divider\",\n boundary === \"stripe\" && \"gridui-frame-stripe\",\n boundary === \"space\" && \"gridui-frame-space\",\n )}\n aria-hidden=\"true\"\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Frame_Decoration\n * @description Decoration\n */\n\nimport type { FrameBoundaryStyle } from \"../boundary/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};\n\nexport const FrameDecoration: FC<FrameDecorationProps> = (props: FrameDecorationProps) => {\n const { decoration } = props;\n return decoration === \"none\" ? null : (<div\n className=\"gridui-frame-decoration\"\n data-decoration={decoration}\n aria-hidden=\"true\"\n inert\n />);\n};\n", "/**\n * @author WMXPY\n * @package Grid\n * @namespace Frame\n * @description 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 Frame_Chrome\n * @description Style\n */\n\nimport { cn } from \"@gridui/style-utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport const frameChromeStyles = cva(cn(\n \"gridui-frame-chrome\",\n \"flex flex-wrap items-center justify-between gap-gridui-16\",\n));\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 Frame_Chrome\n * @description Chrome\n */\n\nimport type { Responsive, Space } from \"../../primitives/responsive\";\nimport { resolveResponsive, spaceValue } from \"../../primitives/responsive\";\nimport type { FrameBoundaryStyle } from \"../boundary/boundary\";\nimport { FrameBoundary } from \"../boundary/boundary\";\nimport type { FrameDecorationStyle } from \"../decoration/decoration\";\nimport { FrameDecoration, resolveFrameDecoration } from \"../decoration/decoration\";\nimport type { FrameTone } from \"../style\";\nimport { frameContentStyles, frameToneStyles } from \"../style\";\nimport { frameChromeStyles, frameSignatureCroppedStyles, frameSignatureStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { ComponentPropsWithRef, CSSProperties, FC, ReactNode } from \"react\";\n\nexport type ChromeProps = {\n readonly padding?: Responsive<Space>;\n};\n\nconst 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\nexport type FrameHeaderProps = ComponentPropsWithRef<\"header\"> & ChromeProps & {\n readonly wrap?: boolean;\n readonly gap?: Space;\n};\n\nexport const FrameHeader: FC<FrameHeaderProps> = (props: FrameHeaderProps) => {\n const { padding = {\n base: 16,\n md: 24,\n }, wrap = true, gap = 16, 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 style={{\n ...chromeStyle(padding),\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n gap: spaceValue(gap),\n }}\n >\n {children}\n </div>\n </header>);\n};\n\nexport type FrameFooterProps = ComponentPropsWithRef<\"footer\"> & ChromeProps & {\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 }, 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 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 Frame_Rail\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 Frame_Rail\n * @description Rail\n */\n\nimport type { Responsive, Space } from \"../../primitives/responsive\";\nimport { resolveResponsive, spaceValue } from \"../../primitives/responsive\";\nimport { frameRailContentStyles, frameRailStickyBottomStyles, frameRailStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { ComponentPropsWithRef, CSSProperties, FC, ReactNode } 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\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 Frame_Page\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 Frame_Page\n * @description Page\n */\n\nimport type { ContainerProps } from \"../../primitives/container/container\";\nimport type { Responsive, Space } from \"../../primitives/responsive\";\nimport { spacingStyle } from \"../../primitives/responsive\";\nimport type { FrameRailGroupProps } from \"../rail/rail\";\nimport { FrameRailGroup } from \"../rail/rail\";\nimport { frameContentStyles } from \"../style\";\nimport { pageFrameVariants } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { ComponentPropsWithRef, 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 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\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 : spacingStyle(\"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 Frame_Texture\n * @description Texture\n */\n\nimport type { FC } from \"react\";\n\nexport type FrameTextureStyle = \"none\" | \"grid\" | \"dots\" | \"lines\";\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 Frame\n * @description Section\n */\n\nimport type { FrameBoundaryStyle } from \"./boundary/boundary\";\nimport { FrameBoundary } from \"./boundary/boundary\";\nimport type { FrameDecorationStyle } from \"./decoration/decoration\";\nimport { FrameDecoration, resolveFrameDecoration } from \"./decoration/decoration\";\nimport type { FrameTone } from \"./style\";\nimport { frameContentStyles, frameToneStyles } from \"./style\";\nimport type { FrameTextureStyle } from \"./texture/texture\";\nimport { FrameTexture } from \"./texture/texture\";\nimport { cn } from \"@gridui/style-utils\";\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};\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 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 >\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 Primitives_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 Primitives_Container\n * @description Container\n */\n\nimport type { ElementProps } from \"../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 Primitives_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 gridItemStyles = cva(cn(\n \"gridui-grid-item\",\n \"min-w-0 wrap-anywhere\",\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 Primitives_Grid\n * @description Grid Item\n */\n\nimport type { Responsive, Space, Span } from \"../responsive\";\nimport { resolveResponsive, spaceValue, spanValue } from \"../responsive\";\nimport type { ElementProps, LayoutStyle } from \"../types\";\nimport { gridItemStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\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 Primitives_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 Primitives_Grid\n * @description Grid\n */\n\nimport type { GridColumns, Responsive, Space } from \"../responsive\";\nimport { resolveResponsive, spaceValue } from \"../responsive\";\nimport type { ElementProps, LayoutStyle } from \"../types\";\nimport type { GridItemProps } from \"./grid-item\";\nimport { GridItem } from \"./grid-item\";\nimport { gridVariants } from \"./style\";\nimport { fillGridRowSpans, gridColumnCount, gridTemplate } from \"./tracks\";\nimport { cn } from \"@gridui/style-utils\";\nimport type { FC } from \"react\";\nimport { Children, cloneElement, 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 Primitives_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 Primitives_Row\n * @description Row\n */\n\nimport type { Space } from \"../responsive\";\nimport { spaceValue } from \"../responsive\";\nimport { rowStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\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 Primitives_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 Primitives_Stack\n * @description Stack\n */\n\nimport type { Responsive, Space } from \"../responsive\";\nimport { resolveResponsive, spaceValue } from \"../responsive\";\nimport type { ElementProps, LayoutStyle } from \"../types\";\nimport { stackStyles } from \"./style\";\nimport { cn } from \"@gridui/style-utils\";\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", "cn", "cn", "cva", "cn", "jsx", "cva", "cn", "jsx", "jsxs", "cva", "cn", "jsx", "jsxs", "jsx", "cn", "jsx", "jsxs", "cva", "cn", "jsx", "cn", "cva", "cn", "jsx", "cn", "jsx", "cn", "cva", "cn", "jsx", "cn", "cva", "cn", "jsx"]
7
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives_Container
5
+ * @description Container
6
+ */
7
+ import type { ElementProps } from "../types";
8
+ import type { FC } from "react";
9
+ export type ContainerProps = ElementProps & {
10
+ readonly width?: "narrow" | "standard" | "wide";
11
+ };
12
+ export declare const Container: FC<ContainerProps>;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives_Container
5
+ * @description Style
6
+ */
7
+ export declare const containerVariants: (props?: ({
8
+ width?: "standard" | "narrow" | "wide" | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives
5
+ * @description Export
6
+ */
7
+ export type { ContainerProps } from "./container/container";
8
+ export { Container } from "./container/container";
9
+ export type { GridProps } from "./grid/grid";
10
+ export { Grid } from "./grid/grid";
11
+ export type { GridItemProps } from "./grid/grid-item";
12
+ export { GridItem } from "./grid/grid-item";
13
+ export type { Columns, GridColumns, GridTrack, Responsive, Space, Span } from "./responsive";
14
+ export { spacingStyle } from "./responsive";
15
+ export type { RowProps } from "./row/row";
16
+ export { Row } from "./row/row";
17
+ export type { StackProps } from "./stack/stack";
18
+ export { Stack } from "./stack/stack";
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives_Grid
5
+ * @description Grid Item
6
+ */
7
+ import type { Responsive, Space, Span } from "../responsive";
8
+ import type { ElementProps } from "../types";
9
+ import type { FC } from "react";
10
+ export type GridItemProps = ElementProps & {
11
+ readonly asChild?: boolean;
12
+ readonly span?: Responsive<Span>;
13
+ readonly padding?: Responsive<Space>;
14
+ readonly align?: "end" | "center";
15
+ };
16
+ export declare const GridItem: FC<GridItemProps>;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives_Grid
5
+ * @description Grid
6
+ */
7
+ import type { GridColumns, Responsive, Space } from "../responsive";
8
+ import type { ElementProps } from "../types";
9
+ import type { FC } from "react";
10
+ export type GridProps = ElementProps & {
11
+ readonly columns?: Responsive<GridColumns>;
12
+ readonly fillLastRow?: boolean;
13
+ } & ({
14
+ readonly frame?: "none";
15
+ readonly gap?: Responsive<Space>;
16
+ } | {
17
+ readonly frame: "cells" | "internal";
18
+ readonly gap?: never;
19
+ });
20
+ export declare const Grid: FC<GridProps>;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives_Grid
5
+ * @description Style
6
+ */
7
+ export declare const gridStyles: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
8
+ export declare const gridCellsStyles: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
9
+ export declare const gridItemStyles: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
10
+ export declare const gridInternalStyles: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
11
+ export declare const gridVariants: (props?: ({
12
+ frame?: "none" | "cells" | "internal" | null | undefined;
13
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives_Grid
5
+ * @description Tracks
6
+ */
7
+ import type { GridColumns } from "../responsive";
8
+ export declare const gridColumnCount: (columns: GridColumns) => number;
9
+ export declare const gridTemplate: (columns: GridColumns) => string;
10
+ export declare const fillGridRowSpans: (columns: number, spans: readonly number[]) => number[];
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives
5
+ * @description Responsive
6
+ */
7
+ import type { CSSProperties } from "react";
8
+ export type Space = 0 | 4 | 8 | 16 | 24 | 32 | 48 | 64;
9
+ export type Columns = 1 | 2 | 3 | 4 | 6 | 12;
10
+ export type GridTrack = "1fr" | "auto";
11
+ export type GridColumns = Columns | readonly [GridTrack, ...GridTrack[]];
12
+ export type Span = Columns | 5 | 7 | 8 | 9 | 10 | 11 | "full";
13
+ export type Responsive<T extends string | number | readonly string[]> = T | {
14
+ readonly base: T;
15
+ readonly md?: T;
16
+ readonly lg?: T;
17
+ };
18
+ export declare const resolveResponsive: <T extends string | number | readonly string[]>(value: Responsive<T>) => {
19
+ base: T;
20
+ md: T;
21
+ lg: T;
22
+ };
23
+ export declare const spaceValue: (value: Space) => string;
24
+ export declare const spanValue: (value: Span) => string;
25
+ export declare const spacingStyle: (name: string, value: Responsive<Space>) => CSSProperties & {
26
+ [key: `--gridui-${string}`]: string | number;
27
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives_Row
5
+ * @description Row
6
+ */
7
+ import type { Space } from "../responsive";
8
+ import type { ComponentPropsWithRef, FC } from "react";
9
+ export type RowProps = ComponentPropsWithRef<"div"> & {
10
+ readonly gap?: Space;
11
+ readonly rowGap?: Space;
12
+ readonly align?: "stretch" | "center" | "baseline" | "end";
13
+ readonly justify?: "start" | "between";
14
+ readonly wrap?: boolean;
15
+ readonly inline?: boolean;
16
+ };
17
+ export declare const Row: FC<RowProps>;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives_Row
5
+ * @description Style
6
+ */
7
+ export declare const rowStyles: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives_Stack
5
+ * @description Stack
6
+ */
7
+ import type { Responsive, Space } from "../responsive";
8
+ import type { ElementProps } from "../types";
9
+ import type { CSSProperties, FC } from "react";
10
+ export type StackProps = ElementProps & {
11
+ readonly gap?: Responsive<Space>;
12
+ readonly width?: "full";
13
+ readonly maxWidth?: CSSProperties["maxWidth"];
14
+ readonly paddingStart?: Space;
15
+ };
16
+ export declare const Stack: FC<StackProps>;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives_Stack
5
+ * @description Style
6
+ */
7
+ export declare const stackStyles: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @author WMXPY
3
+ * @package Grid
4
+ * @namespace Primitives
5
+ * @description Types
6
+ */
7
+ import type { ComponentPropsWithRef, CSSProperties } from "react";
8
+ export type LayoutStyle = CSSProperties & {
9
+ [key: `--gridui-${string}`]: string | number;
10
+ };
11
+ export type ElementProps = ComponentPropsWithRef<"div">;