@fpkit/acss 3.1.0 → 3.2.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/libs/{chunk-2NRIP6RB.cjs → chunk-2C3YLBWP.cjs} +3 -3
- package/libs/{chunk-NWJDAHP6.cjs → chunk-2GJHKWEK.cjs} +3 -3
- package/libs/{chunk-FVROL3V5.js → chunk-2JCDEC32.js} +3 -3
- package/libs/{chunk-IRLFZ3OL.js → chunk-3XJC4XUG.js} +2 -2
- package/libs/{chunk-23ANBDCR.js → chunk-4I5MF54P.js} +3 -3
- package/libs/chunk-4I5MF54P.js.map +1 -0
- package/libs/chunk-5CJPTDK3.cjs +31 -0
- package/libs/chunk-5CJPTDK3.cjs.map +1 -0
- package/libs/{chunk-E4OSROCA.cjs → chunk-5QSNJQVH.cjs} +3 -3
- package/libs/{chunk-O3JIHC5M.cjs → chunk-6BUJZ4DJ.cjs} +3 -3
- package/libs/{chunk-WXBFBWYF.cjs → chunk-AFINOD2L.cjs} +3 -3
- package/libs/{chunk-HRRHPLER.js → chunk-AWZLSWDO.js} +2 -2
- package/libs/chunk-DDSXKOUB.js +7 -0
- package/libs/chunk-DDSXKOUB.js.map +1 -0
- package/libs/{chunk-CWRNJA4P.js → chunk-DIJBIOFE.js} +3 -3
- package/libs/chunk-EJ6KYBFE.cjs +13 -0
- package/libs/chunk-EJ6KYBFE.cjs.map +1 -0
- package/libs/{chunk-GUJSMQ3V.cjs → chunk-EKJYOCLY.cjs} +3 -3
- package/libs/{chunk-X5RKCLDC.cjs → chunk-F64GE6RG.cjs} +4 -4
- package/libs/chunk-FMIM3332.js +8 -0
- package/libs/chunk-FMIM3332.js.map +1 -0
- package/libs/{chunk-5RAWNUVD.js → chunk-IBUTNPTQ.js} +2 -2
- package/libs/chunk-IWP4VJEP.cjs +18 -0
- package/libs/chunk-IWP4VJEP.cjs.map +1 -0
- package/libs/{chunk-ZFJ4U45S.js → chunk-KDMX3FAW.js} +2 -2
- package/libs/{chunk-DYFAUAB7.cjs → chunk-LXODKKA3.cjs} +4 -4
- package/libs/chunk-M7JLT62Q.js +9 -0
- package/libs/chunk-M7JLT62Q.js.map +1 -0
- package/libs/{chunk-IQ76HGVP.js → chunk-MBWI67UT.js} +2 -2
- package/libs/{chunk-O5XAJ7BY.cjs → chunk-NCGVF2QS.cjs} +4 -4
- package/libs/{chunk-W2UIN7EV.cjs → chunk-NPWHQVYB.cjs} +3 -3
- package/libs/{chunk-G55UJ53G.cjs → chunk-NZVSXRTB.cjs} +3 -3
- package/libs/chunk-NZVSXRTB.cjs.map +1 -0
- package/libs/{chunk-43TK2ICH.js → chunk-PMWL5XZ4.js} +3 -3
- package/libs/{chunk-KVKQLRJG.js → chunk-TF3GQKOY.js} +2 -2
- package/libs/chunk-TNEJXNZA.cjs +22 -0
- package/libs/chunk-TNEJXNZA.cjs.map +1 -0
- package/libs/{chunk-IEB64SWY.js → chunk-U5VA34SU.js} +2 -2
- package/libs/chunk-UGMP72J2.js +8 -0
- package/libs/chunk-UGMP72J2.js.map +1 -0
- package/libs/{chunk-MGPWZRBX.cjs → chunk-URBGDUFN.cjs} +6 -6
- package/libs/{chunk-QKHPHMG2.js → chunk-ZF6Y7W57.js} +5 -5
- package/libs/component-props-50e69975.d.ts +66 -0
- package/libs/components/box/box.css +1 -0
- package/libs/components/box/box.css.map +1 -0
- package/libs/components/box/box.min.css +3 -0
- package/libs/components/breadcrumbs/breadcrumb.cjs +6 -6
- package/libs/components/breadcrumbs/breadcrumb.js +3 -3
- package/libs/components/button.cjs +4 -4
- package/libs/components/button.d.cts +10 -3
- package/libs/components/button.d.ts +10 -3
- package/libs/components/button.js +2 -2
- package/libs/components/card.cjs +7 -7
- package/libs/components/card.d.cts +13 -85
- package/libs/components/card.d.ts +13 -85
- package/libs/components/card.js +2 -2
- package/libs/components/cards/card.css +1 -1
- package/libs/components/cards/card.css.map +1 -1
- package/libs/components/cards/card.min.css +2 -2
- package/libs/components/cluster/cluster.css +1 -0
- package/libs/components/cluster/cluster.css.map +1 -0
- package/libs/components/cluster/cluster.min.css +3 -0
- package/libs/components/dialog/dialog.cjs +7 -7
- package/libs/components/dialog/dialog.js +5 -5
- package/libs/components/form/fields.cjs +4 -4
- package/libs/components/form/fields.js +2 -2
- package/libs/components/form/textarea.cjs +4 -4
- package/libs/components/form/textarea.js +2 -2
- package/libs/components/grid/grid.css +1 -0
- package/libs/components/grid/grid.css.map +1 -0
- package/libs/components/grid/grid.min.css +3 -0
- package/libs/components/heading/heading.cjs +3 -3
- package/libs/components/heading/heading.js +2 -2
- package/libs/components/icons/icon.cjs +4 -4
- package/libs/components/icons/icon.d.cts +2 -2
- package/libs/components/icons/icon.d.ts +2 -2
- package/libs/components/icons/icon.js +2 -2
- package/libs/components/link/link.cjs +6 -6
- package/libs/components/link/link.js +2 -2
- package/libs/components/list/list.cjs +5 -5
- package/libs/components/list/list.js +2 -2
- package/libs/components/modal.cjs +4 -4
- package/libs/components/modal.d.cts +1 -1
- package/libs/components/modal.d.ts +1 -1
- package/libs/components/modal.js +3 -3
- package/libs/components/nav/nav.cjs +7 -7
- package/libs/components/nav/nav.js +3 -3
- package/libs/components/popover/popover.cjs +4 -4
- package/libs/components/popover/popover.d.cts +1 -1
- package/libs/components/popover/popover.d.ts +1 -1
- package/libs/components/popover/popover.js +1 -1
- package/libs/components/stack/stack.css +1 -0
- package/libs/components/stack/stack.css.map +1 -0
- package/libs/components/stack/stack.min.css +3 -0
- package/libs/components/tables/table.cjs +4 -4
- package/libs/components/tables/table.d.cts +2 -2
- package/libs/components/tables/table.d.ts +2 -2
- package/libs/components/tables/table.js +1 -1
- package/libs/components/text/text.cjs +5 -5
- package/libs/components/text/text.js +2 -2
- package/libs/hooks.cjs +4 -4
- package/libs/hooks.js +3 -3
- package/libs/{icons-287fce3a.d.ts → icons-df8e744f.d.ts} +1 -1
- package/libs/icons.cjs +3 -3
- package/libs/icons.d.cts +2 -2
- package/libs/icons.d.ts +2 -2
- package/libs/icons.js +2 -2
- package/libs/index.cjs +74 -73
- package/libs/index.cjs.map +1 -1
- package/libs/index.css +1 -1
- package/libs/index.css.map +1 -1
- package/libs/index.d.cts +925 -6
- package/libs/index.d.ts +925 -6
- package/libs/index.js +30 -30
- package/libs/index.js.map +1 -1
- package/package.json +2 -2
- package/src/App.tsx +1 -3
- package/src/components/alert/STYLES.mdx +790 -0
- package/src/components/badge/STYLES.mdx +610 -0
- package/src/components/box/README.mdx +401 -0
- package/src/components/box/STYLES.mdx +360 -0
- package/src/components/box/box.scss +245 -0
- package/src/components/box/box.stories.tsx +395 -0
- package/src/components/box/box.test.tsx +425 -0
- package/src/components/box/box.tsx +170 -0
- package/src/components/box/box.types.ts +166 -0
- package/src/components/breadcrumbs/STYLES.mdx +99 -0
- package/src/components/breadcrumbs/bc-item.tsx +0 -1
- package/src/components/buttons/STYLES.mdx +766 -0
- package/src/components/cards/STYLES.mdx +835 -0
- package/src/components/cards/card.scss +29 -21
- package/src/components/cards/card.tsx +13 -3
- package/src/components/cards/card.types.ts +13 -0
- package/src/components/cluster/README.mdx +595 -0
- package/src/components/cluster/STYLES.mdx +626 -0
- package/src/components/cluster/cluster.scss +86 -0
- package/src/components/cluster/cluster.stories.tsx +385 -0
- package/src/components/cluster/cluster.test.tsx +655 -0
- package/src/components/cluster/cluster.tsx +94 -0
- package/src/components/cluster/cluster.types.ts +75 -0
- package/src/components/details/STYLES.mdx +445 -0
- package/src/components/dialog/STYLES.mdx +888 -0
- package/src/components/flexbox/STYLES.mdx +857 -0
- package/src/components/flexbox/flex.stories.tsx +842 -141
- package/src/components/flexbox/flex.types.ts +25 -6
- package/src/components/form/STYLES.mdx +821 -0
- package/src/components/grid/README.mdx +709 -0
- package/src/components/grid/STYLES.mdx +785 -0
- package/src/components/grid/grid.scss +287 -0
- package/src/components/grid/grid.stories.tsx +486 -0
- package/src/components/grid/grid.test.tsx +981 -0
- package/src/components/grid/grid.tsx +222 -0
- package/src/components/grid/grid.types.ts +344 -0
- package/src/components/icons/STYLES.mdx +56 -0
- package/src/components/icons/components/arrow-right.tsx +0 -5
- package/src/components/images/STYLES.mdx +75 -0
- package/src/components/kit.tsx +8 -4
- package/src/components/layout/STYLES.mdx +556 -0
- package/src/components/link/STYLES.mdx +75 -0
- package/src/components/list/STYLES.mdx +631 -0
- package/src/components/nav/STYLES.mdx +460 -0
- package/src/components/popover/popover.tsx +1 -1
- package/src/components/progress/STYLES.mdx +64 -0
- package/src/components/stack/README.mdx +400 -0
- package/src/components/stack/STYLES.mdx +414 -0
- package/src/components/stack/stack.scss +109 -0
- package/src/components/stack/stack.stories.tsx +559 -0
- package/src/components/stack/stack.test.tsx +426 -0
- package/src/components/stack/stack.tsx +141 -0
- package/src/components/stack/stack.types.ts +133 -0
- package/src/components/tables/table-elements.tsx +1 -1
- package/src/components/tables/table.tsx +2 -2
- package/src/components/tag/STYLES.mdx +105 -0
- package/src/components/text-to-speech/STYLES.mdx +80 -0
- package/src/components/text-to-speech/TextToSpeech.tsx +0 -4
- package/src/components/text-to-speech/useTextToSpeech.tsx +2 -6
- package/src/components/ui.tsx +3 -3
- package/src/decorators/instructions.tsx +22 -18
- package/src/hooks/popover/popover.tsx +1 -1
- package/src/index.scss +5 -1
- package/src/index.ts +305 -12
- package/src/sass/GLOBALS-STYLES.md +631 -0
- package/src/sass/_globals.scss +45 -24
- package/src/styles/box/box.css +220 -0
- package/src/styles/box/box.css.map +1 -0
- package/src/styles/cards/card.css +22 -17
- package/src/styles/cards/card.css.map +1 -1
- package/src/styles/cluster/cluster.css +71 -0
- package/src/styles/cluster/cluster.css.map +1 -0
- package/src/styles/grid/grid.css +238 -0
- package/src/styles/grid/grid.css.map +1 -0
- package/src/styles/index.css +667 -49
- package/src/styles/index.css.map +1 -1
- package/src/styles/stack/stack.css +86 -0
- package/src/styles/stack/stack.css.map +1 -0
- package/src/types/component-props.ts +42 -13
- package/src/types/layout-primitives.ts +48 -0
- package/src/types/shared.ts +10 -26
- package/libs/chunk-23ANBDCR.js.map +0 -1
- package/libs/chunk-5QD3DWFI.js +0 -9
- package/libs/chunk-5QD3DWFI.js.map +0 -1
- package/libs/chunk-6WTC4JXH.cjs +0 -31
- package/libs/chunk-6WTC4JXH.cjs.map +0 -1
- package/libs/chunk-ENTCUJ3A.cjs +0 -13
- package/libs/chunk-ENTCUJ3A.cjs.map +0 -1
- package/libs/chunk-G55UJ53G.cjs.map +0 -1
- package/libs/chunk-HHLNOC5T.js +0 -7
- package/libs/chunk-HHLNOC5T.js.map +0 -1
- package/libs/chunk-KK47SYZI.js +0 -8
- package/libs/chunk-KK47SYZI.js.map +0 -1
- package/libs/chunk-US2I5GI7.cjs +0 -22
- package/libs/chunk-US2I5GI7.cjs.map +0 -1
- package/libs/chunk-W5TKWBFC.cjs +0 -18
- package/libs/chunk-W5TKWBFC.cjs.map +0 -1
- package/libs/chunk-Y2PFDELK.js +0 -8
- package/libs/chunk-Y2PFDELK.js.map +0 -1
- package/libs/component-props-67d978a2.d.ts +0 -38
- /package/libs/{chunk-2NRIP6RB.cjs.map → chunk-2C3YLBWP.cjs.map} +0 -0
- /package/libs/{chunk-NWJDAHP6.cjs.map → chunk-2GJHKWEK.cjs.map} +0 -0
- /package/libs/{chunk-FVROL3V5.js.map → chunk-2JCDEC32.js.map} +0 -0
- /package/libs/{chunk-IRLFZ3OL.js.map → chunk-3XJC4XUG.js.map} +0 -0
- /package/libs/{chunk-E4OSROCA.cjs.map → chunk-5QSNJQVH.cjs.map} +0 -0
- /package/libs/{chunk-O3JIHC5M.cjs.map → chunk-6BUJZ4DJ.cjs.map} +0 -0
- /package/libs/{chunk-WXBFBWYF.cjs.map → chunk-AFINOD2L.cjs.map} +0 -0
- /package/libs/{chunk-HRRHPLER.js.map → chunk-AWZLSWDO.js.map} +0 -0
- /package/libs/{chunk-CWRNJA4P.js.map → chunk-DIJBIOFE.js.map} +0 -0
- /package/libs/{chunk-GUJSMQ3V.cjs.map → chunk-EKJYOCLY.cjs.map} +0 -0
- /package/libs/{chunk-X5RKCLDC.cjs.map → chunk-F64GE6RG.cjs.map} +0 -0
- /package/libs/{chunk-5RAWNUVD.js.map → chunk-IBUTNPTQ.js.map} +0 -0
- /package/libs/{chunk-ZFJ4U45S.js.map → chunk-KDMX3FAW.js.map} +0 -0
- /package/libs/{chunk-DYFAUAB7.cjs.map → chunk-LXODKKA3.cjs.map} +0 -0
- /package/libs/{chunk-IQ76HGVP.js.map → chunk-MBWI67UT.js.map} +0 -0
- /package/libs/{chunk-O5XAJ7BY.cjs.map → chunk-NCGVF2QS.cjs.map} +0 -0
- /package/libs/{chunk-W2UIN7EV.cjs.map → chunk-NPWHQVYB.cjs.map} +0 -0
- /package/libs/{chunk-43TK2ICH.js.map → chunk-PMWL5XZ4.js.map} +0 -0
- /package/libs/{chunk-KVKQLRJG.js.map → chunk-TF3GQKOY.js.map} +0 -0
- /package/libs/{chunk-IEB64SWY.js.map → chunk-U5VA34SU.js.map} +0 -0
- /package/libs/{chunk-MGPWZRBX.cjs.map → chunk-URBGDUFN.cjs.map} +0 -0
- /package/libs/{chunk-QKHPHMG2.js.map → chunk-ZF6Y7W57.js.map} +0 -0
package/libs/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { Button, ButtonProps } from './components/button.js';
|
|
2
2
|
export { Card, Content as CardContent, Footer as CardFooter, CardProps, Title as CardTitle } from './components/card.js';
|
|
3
3
|
import React$1, { ReactNode } from 'react';
|
|
4
|
-
import { I as IconProps } from './icons-
|
|
5
|
-
export { a as Icon, b as IconProps } from './icons-
|
|
4
|
+
import { I as IconProps } from './icons-df8e744f.js';
|
|
5
|
+
export { a as Icon, b as IconProps } from './icons-df8e744f.js';
|
|
6
6
|
export { default as Field, FieldProps } from './components/form/fields.js';
|
|
7
7
|
export { default as Input } from './components/form/inputs.js';
|
|
8
8
|
export { _ as Link, L as LinkProps, _ as To } from './link-59ad884f.js';
|
|
@@ -12,11 +12,11 @@ export { default as Popover, PopoverProps } from './components/popover/popover.j
|
|
|
12
12
|
export { RenderTable as TBL, TableProps } from './components/tables/table.js';
|
|
13
13
|
export { Dialog } from './components/dialog/dialog.js';
|
|
14
14
|
import { U as UI } from './ui-d01b50d4.js';
|
|
15
|
+
import { C as ComponentProps$1 } from './component-props-50e69975.js';
|
|
15
16
|
export { Nav, NavComponent, NavItem, NavItemProps, NavList, NavListProps, NavProps } from './components/nav/nav.js';
|
|
16
17
|
export { default as Text, TextProps } from './components/text/text.js';
|
|
17
18
|
export { b as Heading, H as HeadingLevel, T as Title, a as TitleProps } from './heading-7446cb46.js';
|
|
18
19
|
export { default as Textarea } from './components/form/textarea.js';
|
|
19
|
-
import { C as ComponentProps$1 } from './component-props-67d978a2.js';
|
|
20
20
|
export { default as Breadcrumb, BreadcrumbProps, CustomRoute, useBreadcrumbSegments } from './components/breadcrumbs/breadcrumb.js';
|
|
21
21
|
export { I as InputProps, T as TextareaProps } from './form.types-d25ebfac.js';
|
|
22
22
|
export { L as ListItemProps, a as ListProps } from './list.types-d26de310.js';
|
|
@@ -577,6 +577,925 @@ declare const Section: ({ id, children, styles, classes, ...props }: ComponentPr
|
|
|
577
577
|
*/
|
|
578
578
|
declare const Article: ({ id, children, styles, classes, ...props }: ComponentProps) => React$1.JSX.Element;
|
|
579
579
|
|
|
580
|
+
/**
|
|
581
|
+
* Shared types for layout primitive components (Box, Stack, Cluster, Grid)
|
|
582
|
+
*/
|
|
583
|
+
/**
|
|
584
|
+
* Spacing scale values for padding, margin, and gap properties
|
|
585
|
+
* Maps to CSS custom properties (--spacing-*)
|
|
586
|
+
* - '0': No spacing
|
|
587
|
+
* - 'xs': Extra small (clamp 4-8px)
|
|
588
|
+
* - 'sm': Small (clamp 8-12px)
|
|
589
|
+
* - 'md': Medium (clamp 12-18px)
|
|
590
|
+
* - 'lg': Large (clamp 16-24px)
|
|
591
|
+
* - 'xl': Extra large (clamp 24-32px)
|
|
592
|
+
*/
|
|
593
|
+
type SpacingScale = "0" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
594
|
+
/**
|
|
595
|
+
* Semantic HTML element types for Box component
|
|
596
|
+
*/
|
|
597
|
+
type BoxElement = "div" | "section" | "article" | "aside" | "main" | "header" | "footer" | "nav";
|
|
598
|
+
/**
|
|
599
|
+
* Semantic HTML element types for Stack component
|
|
600
|
+
*/
|
|
601
|
+
type StackElement = "div" | "section" | "article" | "ul" | "ol" | "nav";
|
|
602
|
+
/**
|
|
603
|
+
* Semantic HTML element types for Cluster component
|
|
604
|
+
*/
|
|
605
|
+
type ClusterElement = "div" | "ul" | "ol" | "nav" | "section";
|
|
606
|
+
/**
|
|
607
|
+
* Semantic HTML element types for Grid component
|
|
608
|
+
*/
|
|
609
|
+
type GridElement = "div" | "section" | "article" | "ul" | "ol";
|
|
610
|
+
/**
|
|
611
|
+
* Semantic HTML element types for Grid.Item sub-component
|
|
612
|
+
*/
|
|
613
|
+
type GridItemElement = "div" | "section" | "article" | "li";
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* Props for the Box component - a fundamental container primitive for spacing and sizing control.
|
|
617
|
+
*
|
|
618
|
+
* The Box component provides a flexible, semantic container with comprehensive spacing, sizing,
|
|
619
|
+
* and visual customization options. All spacing values use the unified spacing scale with
|
|
620
|
+
* fluid responsive values via CSS clamp().
|
|
621
|
+
*
|
|
622
|
+
* ## Design Principles
|
|
623
|
+
* - **Logical Properties**: Uses `padding-inline`/`padding-block` for better i18n support
|
|
624
|
+
* - **Fluid Spacing**: All spacing scales responsively without media queries
|
|
625
|
+
* - **Semantic HTML**: Defaults to `div` but supports semantic elements via `as` prop
|
|
626
|
+
* - **CSS Custom Properties**: All values customizable via CSS variables
|
|
627
|
+
*
|
|
628
|
+
* @example
|
|
629
|
+
* // Basic container with padding
|
|
630
|
+
* <Box padding="md">
|
|
631
|
+
* <h1>Content</h1>
|
|
632
|
+
* </Box>
|
|
633
|
+
*
|
|
634
|
+
* @example
|
|
635
|
+
* // Centered container with max width
|
|
636
|
+
* <Box
|
|
637
|
+
* padding="lg"
|
|
638
|
+
* maxWidth="container"
|
|
639
|
+
* style={{ marginInline: 'auto' }}
|
|
640
|
+
* >
|
|
641
|
+
* <article>Centered content</article>
|
|
642
|
+
* </Box>
|
|
643
|
+
*
|
|
644
|
+
* @example
|
|
645
|
+
* // Card-like box with radius
|
|
646
|
+
* <Box
|
|
647
|
+
* padding="lg"
|
|
648
|
+
* radius="md"
|
|
649
|
+
* as="article"
|
|
650
|
+
* styles={{
|
|
651
|
+
* '--box-bg': '#fff',
|
|
652
|
+
* boxShadow: '0 1px 3px rgba(0,0,0,0.1)'
|
|
653
|
+
* }}
|
|
654
|
+
* >
|
|
655
|
+
* <h2>Card Title</h2>
|
|
656
|
+
* <p>Card content</p>
|
|
657
|
+
* </Box>
|
|
658
|
+
*/
|
|
659
|
+
interface BoxProps extends Partial<ComponentProps$1>, Omit<React$1.HTMLAttributes<HTMLElement>, "className"> {
|
|
660
|
+
/**
|
|
661
|
+
* Padding on all sides.
|
|
662
|
+
* Uses unified spacing scale: '0' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
663
|
+
* Maps to CSS custom properties (--spacing-*)
|
|
664
|
+
* @example
|
|
665
|
+
* <Box padding="md">Content</Box>
|
|
666
|
+
*/
|
|
667
|
+
padding?: SpacingScale;
|
|
668
|
+
/**
|
|
669
|
+
* Padding on inline axis (left/right in LTR, right/left in RTL).
|
|
670
|
+
* Uses logical property `padding-inline` for better internationalization.
|
|
671
|
+
* @example
|
|
672
|
+
* <Box paddingInline="xl">Wide horizontal padding</Box>
|
|
673
|
+
*/
|
|
674
|
+
paddingInline?: SpacingScale;
|
|
675
|
+
/**
|
|
676
|
+
* Padding on block axis (top/bottom).
|
|
677
|
+
* Uses logical property `padding-block` for consistency.
|
|
678
|
+
* @example
|
|
679
|
+
* <Box paddingBlock="md">Vertical padding</Box>
|
|
680
|
+
*/
|
|
681
|
+
paddingBlock?: SpacingScale;
|
|
682
|
+
/**
|
|
683
|
+
* Margin on all sides.
|
|
684
|
+
* Uses unified spacing scale: '0' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
685
|
+
* @example
|
|
686
|
+
* <Box margin="lg">Content with margin</Box>
|
|
687
|
+
*/
|
|
688
|
+
margin?: SpacingScale;
|
|
689
|
+
/**
|
|
690
|
+
* Margin on inline axis (left/right in LTR).
|
|
691
|
+
* For centering, use inline styles: `style={{ marginInline: 'auto' }}`
|
|
692
|
+
* @example
|
|
693
|
+
* <Box marginInline="md">Horizontal margin</Box>
|
|
694
|
+
*/
|
|
695
|
+
marginInline?: SpacingScale;
|
|
696
|
+
/**
|
|
697
|
+
* Margin on block axis (top/bottom).
|
|
698
|
+
* @example
|
|
699
|
+
* <Box marginBlock="lg">Vertical margin</Box>
|
|
700
|
+
*/
|
|
701
|
+
marginBlock?: SpacingScale;
|
|
702
|
+
/**
|
|
703
|
+
* Width behavior control.
|
|
704
|
+
* - 'auto': Natural width (default)
|
|
705
|
+
* - 'full': 100% width
|
|
706
|
+
* - 'fit': Width fits content (fit-content)
|
|
707
|
+
* - 'max': Width determined by widest content (max-content)
|
|
708
|
+
* @default 'auto'
|
|
709
|
+
* @example
|
|
710
|
+
* <Box width="full">Full width box</Box>
|
|
711
|
+
*/
|
|
712
|
+
width?: "auto" | "full" | "fit" | "max";
|
|
713
|
+
/**
|
|
714
|
+
* Maximum width constraint.
|
|
715
|
+
* Useful for readable text widths and responsive containers.
|
|
716
|
+
* Sizes map to: xs(480px), sm(640px), md(768px), lg(1024px), xl(1280px), container(1200px)
|
|
717
|
+
* @example
|
|
718
|
+
* <Box maxWidth="container" style={{ marginInline: 'auto' }}>
|
|
719
|
+
* Centered container with max width
|
|
720
|
+
* </Box>
|
|
721
|
+
*/
|
|
722
|
+
maxWidth?: "xs" | "sm" | "md" | "lg" | "xl" | "container";
|
|
723
|
+
/**
|
|
724
|
+
* Border radius for rounded corners.
|
|
725
|
+
* - 'xs' through 'xl': Increasing radii (2px - 12px)
|
|
726
|
+
* - 'full': Fully rounded (9999px) for pills/circles
|
|
727
|
+
* @example
|
|
728
|
+
* <Box radius="md">Slightly rounded box</Box>
|
|
729
|
+
* @example
|
|
730
|
+
* <Box radius="full" width="fit" padding="md">
|
|
731
|
+
* <Avatar />
|
|
732
|
+
* </Box>
|
|
733
|
+
*/
|
|
734
|
+
radius?: SpacingScale | "full";
|
|
735
|
+
/**
|
|
736
|
+
* Polymorphic element type to render.
|
|
737
|
+
* Defaults to 'div' but supports semantic HTML elements.
|
|
738
|
+
* Choose semantic elements for better accessibility:
|
|
739
|
+
* - 'section' for thematic groupings
|
|
740
|
+
* - 'article' for self-contained content
|
|
741
|
+
* - 'aside' for tangentially related content
|
|
742
|
+
* - 'main' for primary page content
|
|
743
|
+
* - 'header'/'footer' for page/section headers/footers
|
|
744
|
+
* - 'nav' for navigation landmarks
|
|
745
|
+
* @default 'div'
|
|
746
|
+
* @example
|
|
747
|
+
* <Box as="section" padding="lg">
|
|
748
|
+
* <h2>Section Content</h2>
|
|
749
|
+
* </Box>
|
|
750
|
+
*/
|
|
751
|
+
as?: BoxElement;
|
|
752
|
+
/**
|
|
753
|
+
* Additional CSS classes to apply.
|
|
754
|
+
* Merged with generated utility classes.
|
|
755
|
+
* @example
|
|
756
|
+
* <Box classes="my-custom-class" padding="md">Content</Box>
|
|
757
|
+
*/
|
|
758
|
+
className?: string;
|
|
759
|
+
/**
|
|
760
|
+
* Children elements to render inside the Box.
|
|
761
|
+
*/
|
|
762
|
+
children?: React$1.ReactNode;
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
/**
|
|
766
|
+
* Box - A fundamental container primitive for spacing and sizing control.
|
|
767
|
+
*
|
|
768
|
+
* The Box component is the foundational layout primitive in fpkit, providing a flexible,
|
|
769
|
+
* semantic container with comprehensive control over spacing (padding/margin), sizing,
|
|
770
|
+
* and visual appearance. It uses utility classes generated from props, ensuring consistent
|
|
771
|
+
* styling across the application.
|
|
772
|
+
*
|
|
773
|
+
* ## Key Features
|
|
774
|
+
* - **Unified Spacing Scale**: Fluid responsive spacing using CSS clamp()
|
|
775
|
+
* - **Logical Properties**: `padding-inline`/`padding-block` for i18n support
|
|
776
|
+
* - **Polymorphic Rendering**: Render as any semantic HTML element via `as` prop
|
|
777
|
+
* - **CSS Custom Properties**: All values customizable for theming
|
|
778
|
+
* - **Type-Safe**: Full TypeScript support with IntelliSense
|
|
779
|
+
*
|
|
780
|
+
* ## Accessibility
|
|
781
|
+
* - Uses semantic HTML elements by default
|
|
782
|
+
* - Supports ARIA attributes via spread props
|
|
783
|
+
* - Encourages semantic elements via `as` prop
|
|
784
|
+
* - All props forwarded to underlying element
|
|
785
|
+
*
|
|
786
|
+
* ## Use Cases
|
|
787
|
+
* - Container with padding/margin
|
|
788
|
+
* - Centered layouts with max-width
|
|
789
|
+
* - Card-like components
|
|
790
|
+
* - Spacing between sections
|
|
791
|
+
* - Semantic landmarks
|
|
792
|
+
*
|
|
793
|
+
* @example
|
|
794
|
+
* // Basic container with padding
|
|
795
|
+
* <Box padding="md">
|
|
796
|
+
* <h1>Content</h1>
|
|
797
|
+
* </Box>
|
|
798
|
+
*
|
|
799
|
+
* @example
|
|
800
|
+
* // Centered container with max width
|
|
801
|
+
* <Box
|
|
802
|
+
* padding="lg"
|
|
803
|
+
* maxWidth="container"
|
|
804
|
+
* style={{ marginInline: 'auto' }}
|
|
805
|
+
* >
|
|
806
|
+
* <article>Centered content</article>
|
|
807
|
+
* </Box>
|
|
808
|
+
*
|
|
809
|
+
* @example
|
|
810
|
+
* // Card-like box with radius
|
|
811
|
+
* <Box
|
|
812
|
+
* padding="lg"
|
|
813
|
+
* radius="md"
|
|
814
|
+
* as="article"
|
|
815
|
+
* styles={{
|
|
816
|
+
* backgroundColor: '#fff',
|
|
817
|
+
* boxShadow: '0 1px 3px rgba(0,0,0,0.1)'
|
|
818
|
+
* }}
|
|
819
|
+
* >
|
|
820
|
+
* <h2>Card Title</h2>
|
|
821
|
+
* <p>Card content</p>
|
|
822
|
+
* </Box>
|
|
823
|
+
*
|
|
824
|
+
* @example
|
|
825
|
+
* // Asymmetric spacing with logical properties
|
|
826
|
+
* <Box
|
|
827
|
+
* paddingInline="xl"
|
|
828
|
+
* paddingBlock="md"
|
|
829
|
+
* as="section"
|
|
830
|
+
* >
|
|
831
|
+
* <p>Wide horizontal padding, narrow vertical</p>
|
|
832
|
+
* </Box>
|
|
833
|
+
*
|
|
834
|
+
* @example
|
|
835
|
+
* // Semantic section with spacing
|
|
836
|
+
* <Box as="section" padding="xl" margin="lg">
|
|
837
|
+
* <h2>Section Title</h2>
|
|
838
|
+
* <p>Section content...</p>
|
|
839
|
+
* </Box>
|
|
840
|
+
*
|
|
841
|
+
* @see {@link BoxProps} for complete props documentation
|
|
842
|
+
*/
|
|
843
|
+
declare const Box: React$1.ForwardRefExoticComponent<BoxProps & React$1.RefAttributes<HTMLElement>>;
|
|
844
|
+
|
|
845
|
+
/**
|
|
846
|
+
* Props for the Stack component - a simplified layout primitive for vertical or horizontal spacing.
|
|
847
|
+
*
|
|
848
|
+
* Stack provides an easy-to-use flexbox-based layout for creating vertical or horizontal arrangements
|
|
849
|
+
* with consistent spacing between children. It's simpler than the full Flex component, ideal for
|
|
850
|
+
* common stacking patterns.
|
|
851
|
+
*
|
|
852
|
+
* ## Design Principles
|
|
853
|
+
* - **Simplified API**: Fewer props than Flex for common use cases
|
|
854
|
+
* - **Fluid Spacing**: Uses unified spacing scale with responsive values
|
|
855
|
+
* - **Flexbox-Based**: Built on CSS flexbox for reliable layouts
|
|
856
|
+
* - **Semantic HTML**: Defaults to `div` but supports semantic elements
|
|
857
|
+
*
|
|
858
|
+
* @example
|
|
859
|
+
* // Vertical stack (default)
|
|
860
|
+
* <Stack gap="md">
|
|
861
|
+
* <h1>Title</h1>
|
|
862
|
+
* <p>Paragraph 1</p>
|
|
863
|
+
* <p>Paragraph 2</p>
|
|
864
|
+
* </Stack>
|
|
865
|
+
*
|
|
866
|
+
* @example
|
|
867
|
+
* // Horizontal stack for buttons
|
|
868
|
+
* <Stack direction="horizontal" gap="sm">
|
|
869
|
+
* <Button>Cancel</Button>
|
|
870
|
+
* <Button variant="primary">Submit</Button>
|
|
871
|
+
* </Stack>
|
|
872
|
+
*
|
|
873
|
+
* @example
|
|
874
|
+
* // Centered vertical stack
|
|
875
|
+
* <Stack
|
|
876
|
+
* gap="lg"
|
|
877
|
+
* align="center"
|
|
878
|
+
* justify="center"
|
|
879
|
+
* style={{ minHeight: '100vh' }}
|
|
880
|
+
* >
|
|
881
|
+
* <Logo />
|
|
882
|
+
* <h1>Welcome</h1>
|
|
883
|
+
* </Stack>
|
|
884
|
+
*/
|
|
885
|
+
interface StackProps extends Partial<ComponentProps$1>, Omit<React$1.HTMLAttributes<HTMLElement>, "className"> {
|
|
886
|
+
/**
|
|
887
|
+
* Gap between children.
|
|
888
|
+
* Uses unified spacing scale: '0' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
889
|
+
* Maps to CSS custom properties (--spacing-*)
|
|
890
|
+
* @default 'md'
|
|
891
|
+
* @example
|
|
892
|
+
* <Stack gap="lg">Content</Stack>
|
|
893
|
+
*/
|
|
894
|
+
gap?: SpacingScale;
|
|
895
|
+
/**
|
|
896
|
+
* Layout direction.
|
|
897
|
+
* - 'vertical': Stack children vertically (column)
|
|
898
|
+
* - 'horizontal': Stack children horizontally (row)
|
|
899
|
+
* @default 'vertical'
|
|
900
|
+
* @example
|
|
901
|
+
* <Stack direction="horizontal" gap="sm">
|
|
902
|
+
* <Button>Cancel</Button>
|
|
903
|
+
* <Button>Submit</Button>
|
|
904
|
+
* </Stack>
|
|
905
|
+
*/
|
|
906
|
+
direction?: "vertical" | "horizontal";
|
|
907
|
+
/**
|
|
908
|
+
* Alignment on cross axis.
|
|
909
|
+
* - 'start': Align items to start (left in horizontal, top in vertical)
|
|
910
|
+
* - 'center': Center items
|
|
911
|
+
* - 'end': Align items to end (right in horizontal, bottom in vertical)
|
|
912
|
+
* - 'stretch': Stretch items to fill cross axis
|
|
913
|
+
* @default 'stretch'
|
|
914
|
+
* @example
|
|
915
|
+
* <Stack align="center">Centered items</Stack>
|
|
916
|
+
*/
|
|
917
|
+
align?: "start" | "center" | "end" | "stretch";
|
|
918
|
+
/**
|
|
919
|
+
* Alignment on main axis.
|
|
920
|
+
* - 'start': Items at start
|
|
921
|
+
* - 'center': Items centered
|
|
922
|
+
* - 'end': Items at end
|
|
923
|
+
* - 'between': Space between items
|
|
924
|
+
* @example
|
|
925
|
+
* <Stack justify="between">
|
|
926
|
+
* <Header />
|
|
927
|
+
* <Footer />
|
|
928
|
+
* </Stack>
|
|
929
|
+
*/
|
|
930
|
+
justify?: "start" | "center" | "end" | "between";
|
|
931
|
+
/**
|
|
932
|
+
* Allow items to wrap to next line/column.
|
|
933
|
+
* - 'wrap': Items wrap when they exceed container
|
|
934
|
+
* - 'nowrap': Items stay on single line/column (default)
|
|
935
|
+
* @default 'nowrap'
|
|
936
|
+
* @example
|
|
937
|
+
* <Stack direction="horizontal" wrap="wrap">
|
|
938
|
+
* {items.map(item => <Item key={item.id} />)}
|
|
939
|
+
* </Stack>
|
|
940
|
+
*/
|
|
941
|
+
wrap?: "wrap" | "nowrap";
|
|
942
|
+
/**
|
|
943
|
+
* Polymorphic element type to render.
|
|
944
|
+
* Defaults to 'div' but supports semantic HTML elements.
|
|
945
|
+
* @default 'div'
|
|
946
|
+
* @example
|
|
947
|
+
* <Stack as="nav" direction="horizontal" gap="md">
|
|
948
|
+
* <a href="/">Home</a>
|
|
949
|
+
* <a href="/about">About</a>
|
|
950
|
+
* </Stack>
|
|
951
|
+
*/
|
|
952
|
+
as?: StackElement;
|
|
953
|
+
/**
|
|
954
|
+
* Additional CSS classes to apply.
|
|
955
|
+
* Merged with generated utility classes.
|
|
956
|
+
* @example
|
|
957
|
+
* <Stack className="custom-stack" gap="md">Content</Stack>
|
|
958
|
+
*/
|
|
959
|
+
className?: string;
|
|
960
|
+
/**
|
|
961
|
+
* Children elements to render inside the Stack.
|
|
962
|
+
*/
|
|
963
|
+
children?: React$1.ReactNode;
|
|
964
|
+
}
|
|
965
|
+
|
|
966
|
+
/**
|
|
967
|
+
* Stack - A simplified layout primitive for vertical or horizontal spacing between children.
|
|
968
|
+
*
|
|
969
|
+
* The Stack component provides an easy-to-use flexbox-based layout for creating vertical or
|
|
970
|
+
* horizontal arrangements with consistent gap spacing. It's designed to be simpler than the
|
|
971
|
+
* full Flex component, focusing on the most common stacking patterns.
|
|
972
|
+
*
|
|
973
|
+
* ## Key Features
|
|
974
|
+
* - **Simple API**: Fewer props than Flex for common use cases
|
|
975
|
+
* - **Fluid Spacing**: Responsive gap using CSS clamp()
|
|
976
|
+
* - **Flexbox-Based**: Reliable cross-browser layout
|
|
977
|
+
* - **Polymorphic**: Render as any semantic HTML element
|
|
978
|
+
* - **Type-Safe**: Full TypeScript support
|
|
979
|
+
*
|
|
980
|
+
* ## Accessibility
|
|
981
|
+
* - Uses semantic HTML elements when appropriate via `as` prop
|
|
982
|
+
* - Supports all ARIA attributes via spread props
|
|
983
|
+
* - Proper focus order maintained (visual order matches DOM order)
|
|
984
|
+
*
|
|
985
|
+
* ## Use Cases
|
|
986
|
+
* - Vertical spacing between content sections
|
|
987
|
+
* - Horizontal button groups
|
|
988
|
+
* - Navigation menus
|
|
989
|
+
* - Form layouts
|
|
990
|
+
* - Centered content (vertical/horizontal)
|
|
991
|
+
*
|
|
992
|
+
* @example
|
|
993
|
+
* // Vertical stack with medium gap (default)
|
|
994
|
+
* <Stack gap="md">
|
|
995
|
+
* <h1>Title</h1>
|
|
996
|
+
* <p>Paragraph 1</p>
|
|
997
|
+
* <p>Paragraph 2</p>
|
|
998
|
+
* </Stack>
|
|
999
|
+
*
|
|
1000
|
+
* @example
|
|
1001
|
+
* // Horizontal button group
|
|
1002
|
+
* <Stack direction="horizontal" gap="sm">
|
|
1003
|
+
* <Button>Cancel</Button>
|
|
1004
|
+
* <Button variant="primary">Submit</Button>
|
|
1005
|
+
* </Stack>
|
|
1006
|
+
*
|
|
1007
|
+
* @example
|
|
1008
|
+
* // Centered vertical stack
|
|
1009
|
+
* <Stack
|
|
1010
|
+
* gap="lg"
|
|
1011
|
+
* align="center"
|
|
1012
|
+
* justify="center"
|
|
1013
|
+
* style={{ minHeight: '100vh' }}
|
|
1014
|
+
* >
|
|
1015
|
+
* <Logo />
|
|
1016
|
+
* <h1>Welcome</h1>
|
|
1017
|
+
* <Button>Get Started</Button>
|
|
1018
|
+
* </Stack>
|
|
1019
|
+
*
|
|
1020
|
+
* @example
|
|
1021
|
+
* // Navigation with horizontal layout
|
|
1022
|
+
* <Stack
|
|
1023
|
+
* as="nav"
|
|
1024
|
+
* direction="horizontal"
|
|
1025
|
+
* gap="md"
|
|
1026
|
+
* justify="between"
|
|
1027
|
+
* align="center"
|
|
1028
|
+
* >
|
|
1029
|
+
* <Logo />
|
|
1030
|
+
* <Stack direction="horizontal" gap="sm">
|
|
1031
|
+
* <a href="/about">About</a>
|
|
1032
|
+
* <a href="/contact">Contact</a>
|
|
1033
|
+
* </Stack>
|
|
1034
|
+
* </Stack>
|
|
1035
|
+
*
|
|
1036
|
+
* @see {@link StackProps} for complete props documentation
|
|
1037
|
+
*/
|
|
1038
|
+
declare const Stack: React$1.ForwardRefExoticComponent<StackProps & React$1.RefAttributes<HTMLElement>>;
|
|
1039
|
+
|
|
1040
|
+
/**
|
|
1041
|
+
* Props for the Cluster component - a wrapping flex layout for inline groups.
|
|
1042
|
+
*
|
|
1043
|
+
* Cluster provides a flexible layout for inline content that needs to wrap naturally,
|
|
1044
|
+
* such as tags, badges, button groups, or navigation links. Items wrap to the next line
|
|
1045
|
+
* when they exceed the container width.
|
|
1046
|
+
*
|
|
1047
|
+
* @example
|
|
1048
|
+
* // Tag cloud
|
|
1049
|
+
* <Cluster gap="sm">
|
|
1050
|
+
* <Tag>React</Tag>
|
|
1051
|
+
* <Tag>TypeScript</Tag>
|
|
1052
|
+
* <Tag>CSS</Tag>
|
|
1053
|
+
* </Cluster>
|
|
1054
|
+
*
|
|
1055
|
+
* @example
|
|
1056
|
+
* // Button group
|
|
1057
|
+
* <Cluster gap="md" justify="center">
|
|
1058
|
+
* <Button>Action 1</Button>
|
|
1059
|
+
* <Button>Action 2</Button>
|
|
1060
|
+
* <Button>Action 3</Button>
|
|
1061
|
+
* </Cluster>
|
|
1062
|
+
*/
|
|
1063
|
+
interface ClusterProps extends Partial<ComponentProps$1>, Omit<React$1.HTMLAttributes<HTMLElement>, "className"> {
|
|
1064
|
+
/**
|
|
1065
|
+
* Gap between items.
|
|
1066
|
+
* Uses unified spacing scale: '0' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
1067
|
+
* @default 'sm'
|
|
1068
|
+
*/
|
|
1069
|
+
gap?: SpacingScale;
|
|
1070
|
+
/**
|
|
1071
|
+
* Horizontal alignment of items.
|
|
1072
|
+
* - 'start': Items at start (left in LTR)
|
|
1073
|
+
* - 'center': Items centered
|
|
1074
|
+
* - 'end': Items at end (right in LTR)
|
|
1075
|
+
* - 'between': Space evenly between items
|
|
1076
|
+
* @example
|
|
1077
|
+
* <Cluster justify="center">Centered items</Cluster>
|
|
1078
|
+
*/
|
|
1079
|
+
justify?: "start" | "center" | "end" | "between";
|
|
1080
|
+
/**
|
|
1081
|
+
* Vertical alignment of items.
|
|
1082
|
+
* - 'start': Align to top
|
|
1083
|
+
* - 'center': Vertically centered
|
|
1084
|
+
* - 'end': Align to bottom
|
|
1085
|
+
* - 'baseline': Align baselines (good for text)
|
|
1086
|
+
* @example
|
|
1087
|
+
* <Cluster align="baseline">Baseline-aligned text</Cluster>
|
|
1088
|
+
*/
|
|
1089
|
+
align?: "start" | "center" | "end" | "baseline";
|
|
1090
|
+
/**
|
|
1091
|
+
* Polymorphic element type to render.
|
|
1092
|
+
* @default 'div'
|
|
1093
|
+
*/
|
|
1094
|
+
as?: ClusterElement;
|
|
1095
|
+
/**
|
|
1096
|
+
* Additional CSS classes to apply.
|
|
1097
|
+
*/
|
|
1098
|
+
className?: string;
|
|
1099
|
+
/**
|
|
1100
|
+
* Children elements to render inside the Cluster.
|
|
1101
|
+
*/
|
|
1102
|
+
children?: React$1.ReactNode;
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
/**
|
|
1106
|
+
* Cluster - A wrapping flex layout primitive for inline groups.
|
|
1107
|
+
*
|
|
1108
|
+
* Cluster provides a flexible layout for inline content that wraps naturally,
|
|
1109
|
+
* perfect for tags, badges, button groups, navigation links, or any inline
|
|
1110
|
+
* content that needs to flow and wrap responsively.
|
|
1111
|
+
*
|
|
1112
|
+
* ## Key Features
|
|
1113
|
+
* - **Auto-Wrapping**: Items wrap to next line when container is full
|
|
1114
|
+
* - **Fluid Spacing**: Responsive gap using CSS clamp()
|
|
1115
|
+
* - **Semantic Naming**: Clear intent for inline grouped content
|
|
1116
|
+
* - **Polymorphic**: Render as any semantic HTML element
|
|
1117
|
+
* - **Type-Safe**: Full TypeScript support
|
|
1118
|
+
*
|
|
1119
|
+
* ## Use Cases
|
|
1120
|
+
* - Tag clouds and keyword lists
|
|
1121
|
+
* - Button groups with wrapping
|
|
1122
|
+
* - Navigation breadcrumbs
|
|
1123
|
+
* - Badge clusters
|
|
1124
|
+
* - Inline action groups
|
|
1125
|
+
*
|
|
1126
|
+
* @example
|
|
1127
|
+
* // Tag cloud
|
|
1128
|
+
* <Cluster gap="sm" justify="center">
|
|
1129
|
+
* <Tag>React</Tag>
|
|
1130
|
+
* <Tag>TypeScript</Tag>
|
|
1131
|
+
* <Tag>CSS</Tag>
|
|
1132
|
+
* </Cluster>
|
|
1133
|
+
*
|
|
1134
|
+
* @example
|
|
1135
|
+
* // Button group
|
|
1136
|
+
* <Cluster gap="md">
|
|
1137
|
+
* <Button>Action 1</Button>
|
|
1138
|
+
* <Button>Action 2</Button>
|
|
1139
|
+
* <Button>Action 3</Button>
|
|
1140
|
+
* </Cluster>
|
|
1141
|
+
*
|
|
1142
|
+
* @see {@link ClusterProps} for complete props documentation
|
|
1143
|
+
*/
|
|
1144
|
+
declare const Cluster: React$1.ForwardRefExoticComponent<ClusterProps & React$1.RefAttributes<HTMLElement>>;
|
|
1145
|
+
|
|
1146
|
+
/**
|
|
1147
|
+
* Number of columns in the grid (1-12)
|
|
1148
|
+
*/
|
|
1149
|
+
type GridColumns = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
1150
|
+
/**
|
|
1151
|
+
* Grid auto-fit/auto-fill behavior
|
|
1152
|
+
*/
|
|
1153
|
+
type GridAuto = "fit" | "fill";
|
|
1154
|
+
/**
|
|
1155
|
+
* Props for the Grid component
|
|
1156
|
+
*
|
|
1157
|
+
* Grid provides a CSS Grid-based layout primitive for responsive multi-column layouts.
|
|
1158
|
+
* Supports explicit column counts, auto-fit/auto-fill, gap spacing, and alignment control.
|
|
1159
|
+
*
|
|
1160
|
+
* @example
|
|
1161
|
+
* ```tsx
|
|
1162
|
+
* // 3-column grid
|
|
1163
|
+
* <Grid columns={3} gap="md">
|
|
1164
|
+
* <Grid.Item>Card 1</Grid.Item>
|
|
1165
|
+
* <Grid.Item>Card 2</Grid.Item>
|
|
1166
|
+
* <Grid.Item>Card 3</Grid.Item>
|
|
1167
|
+
* </Grid>
|
|
1168
|
+
* ```
|
|
1169
|
+
*
|
|
1170
|
+
* @example
|
|
1171
|
+
* ```tsx
|
|
1172
|
+
* // Auto-fit grid with minimum column width
|
|
1173
|
+
* <Grid auto="fit" minColumnWidth="15rem" gap="lg">
|
|
1174
|
+
* <Grid.Item>Card 1</Grid.Item>
|
|
1175
|
+
* <Grid.Item>Card 2</Grid.Item>
|
|
1176
|
+
* </Grid>
|
|
1177
|
+
* ```
|
|
1178
|
+
*
|
|
1179
|
+
* @example
|
|
1180
|
+
* ```tsx
|
|
1181
|
+
* // Grid with custom column spans
|
|
1182
|
+
* <Grid columns={12} gap="md">
|
|
1183
|
+
* <Grid.Item span={8}>Main content</Grid.Item>
|
|
1184
|
+
* <Grid.Item span={4}>Sidebar</Grid.Item>
|
|
1185
|
+
* </Grid>
|
|
1186
|
+
* ```
|
|
1187
|
+
*/
|
|
1188
|
+
interface GridProps extends Partial<ComponentProps$1>, Omit<React.HTMLAttributes<HTMLElement>, "className"> {
|
|
1189
|
+
/**
|
|
1190
|
+
* Number of columns in the grid (1-12)
|
|
1191
|
+
*
|
|
1192
|
+
* Creates an explicit column layout with equal-width columns.
|
|
1193
|
+
* Mutually exclusive with `auto` prop.
|
|
1194
|
+
*
|
|
1195
|
+
* @default 1
|
|
1196
|
+
*
|
|
1197
|
+
* @example
|
|
1198
|
+
* ```tsx
|
|
1199
|
+
* <Grid columns={3}>
|
|
1200
|
+
* <div>Column 1</div>
|
|
1201
|
+
* <div>Column 2</div>
|
|
1202
|
+
* <div>Column 3</div>
|
|
1203
|
+
* </Grid>
|
|
1204
|
+
* ```
|
|
1205
|
+
*/
|
|
1206
|
+
columns?: GridColumns;
|
|
1207
|
+
/**
|
|
1208
|
+
* Auto-fit or auto-fill behavior
|
|
1209
|
+
*
|
|
1210
|
+
* - `fit`: Columns expand to fill available space (grid-template-columns: repeat(auto-fit, ...))
|
|
1211
|
+
* - `fill`: Creates as many columns as fit, even if empty (repeat(auto-fill, ...))
|
|
1212
|
+
*
|
|
1213
|
+
* Requires `minColumnWidth` to be set. Mutually exclusive with `columns` prop.
|
|
1214
|
+
*
|
|
1215
|
+
* @example
|
|
1216
|
+
* ```tsx
|
|
1217
|
+
* <Grid auto="fit" minColumnWidth="15rem" gap="md">
|
|
1218
|
+
* <div>Item 1</div>
|
|
1219
|
+
* <div>Item 2</div>
|
|
1220
|
+
* <div>Item 3</div>
|
|
1221
|
+
* </Grid>
|
|
1222
|
+
* ```
|
|
1223
|
+
*/
|
|
1224
|
+
auto?: GridAuto;
|
|
1225
|
+
/**
|
|
1226
|
+
* Minimum column width for auto-fit/auto-fill grids
|
|
1227
|
+
*
|
|
1228
|
+
* Must be specified in rem units (e.g., "15rem", "20rem").
|
|
1229
|
+
* Used with `auto` prop to create responsive grids without media queries.
|
|
1230
|
+
*
|
|
1231
|
+
* @example
|
|
1232
|
+
* ```tsx
|
|
1233
|
+
* <Grid auto="fit" minColumnWidth="15rem">
|
|
1234
|
+
* <div>Card</div>
|
|
1235
|
+
* </Grid>
|
|
1236
|
+
* ```
|
|
1237
|
+
*/
|
|
1238
|
+
minColumnWidth?: string;
|
|
1239
|
+
/**
|
|
1240
|
+
* Gap spacing between grid items
|
|
1241
|
+
*
|
|
1242
|
+
* Uses the unified spacing scale from globals.
|
|
1243
|
+
*
|
|
1244
|
+
* @default undefined (uses default `.grid` gap)
|
|
1245
|
+
*
|
|
1246
|
+
* @example
|
|
1247
|
+
* ```tsx
|
|
1248
|
+
* <Grid columns={3} gap="md">
|
|
1249
|
+
* <div>Item 1</div>
|
|
1250
|
+
* <div>Item 2</div>
|
|
1251
|
+
* </Grid>
|
|
1252
|
+
* ```
|
|
1253
|
+
*/
|
|
1254
|
+
gap?: SpacingScale;
|
|
1255
|
+
/**
|
|
1256
|
+
* Horizontal gap spacing (column gap)
|
|
1257
|
+
*
|
|
1258
|
+
* Overrides `gap` for horizontal spacing only.
|
|
1259
|
+
* Uses the unified spacing scale.
|
|
1260
|
+
*
|
|
1261
|
+
* @example
|
|
1262
|
+
* ```tsx
|
|
1263
|
+
* <Grid columns={3} gapX="lg" gapY="sm">
|
|
1264
|
+
* <div>Item 1</div>
|
|
1265
|
+
* <div>Item 2</div>
|
|
1266
|
+
* </Grid>
|
|
1267
|
+
* ```
|
|
1268
|
+
*/
|
|
1269
|
+
gapX?: SpacingScale;
|
|
1270
|
+
/**
|
|
1271
|
+
* Vertical gap spacing (row gap)
|
|
1272
|
+
*
|
|
1273
|
+
* Overrides `gap` for vertical spacing only.
|
|
1274
|
+
* Uses the unified spacing scale.
|
|
1275
|
+
*
|
|
1276
|
+
* @example
|
|
1277
|
+
* ```tsx
|
|
1278
|
+
* <Grid columns={3} gapX="lg" gapY="sm">
|
|
1279
|
+
* <div>Item 1</div>
|
|
1280
|
+
* <div>Item 2</div>
|
|
1281
|
+
* </Grid>
|
|
1282
|
+
* ```
|
|
1283
|
+
*/
|
|
1284
|
+
gapY?: SpacingScale;
|
|
1285
|
+
/**
|
|
1286
|
+
* Horizontal alignment of grid items (justify-items)
|
|
1287
|
+
*
|
|
1288
|
+
* Controls horizontal alignment of items within their grid cells.
|
|
1289
|
+
*
|
|
1290
|
+
* @example
|
|
1291
|
+
* ```tsx
|
|
1292
|
+
* <Grid columns={3} justifyItems="center">
|
|
1293
|
+
* <div>Centered item</div>
|
|
1294
|
+
* </Grid>
|
|
1295
|
+
* ```
|
|
1296
|
+
*/
|
|
1297
|
+
justifyItems?: "start" | "center" | "end" | "stretch";
|
|
1298
|
+
/**
|
|
1299
|
+
* Vertical alignment of grid items (align-items)
|
|
1300
|
+
*
|
|
1301
|
+
* Controls vertical alignment of items within their grid cells.
|
|
1302
|
+
*
|
|
1303
|
+
* @example
|
|
1304
|
+
* ```tsx
|
|
1305
|
+
* <Grid columns={3} alignItems="center">
|
|
1306
|
+
* <div>Vertically centered</div>
|
|
1307
|
+
* </Grid>
|
|
1308
|
+
* ```
|
|
1309
|
+
*/
|
|
1310
|
+
alignItems?: "start" | "center" | "end" | "stretch";
|
|
1311
|
+
/**
|
|
1312
|
+
* HTML element to render as
|
|
1313
|
+
*
|
|
1314
|
+
* @default "div"
|
|
1315
|
+
*
|
|
1316
|
+
* @example
|
|
1317
|
+
* ```tsx
|
|
1318
|
+
* <Grid as="section" columns={2}>
|
|
1319
|
+
* <article>Post 1</article>
|
|
1320
|
+
* <article>Post 2</article>
|
|
1321
|
+
* </Grid>
|
|
1322
|
+
* ```
|
|
1323
|
+
*/
|
|
1324
|
+
as?: GridElement;
|
|
1325
|
+
/**
|
|
1326
|
+
* Additional CSS class name(s)
|
|
1327
|
+
*
|
|
1328
|
+
* @example
|
|
1329
|
+
* ```tsx
|
|
1330
|
+
* <Grid className="custom-grid" columns={3}>
|
|
1331
|
+
* <div>Item</div>
|
|
1332
|
+
* </Grid>
|
|
1333
|
+
* ```
|
|
1334
|
+
*/
|
|
1335
|
+
className?: string;
|
|
1336
|
+
/**
|
|
1337
|
+
* Additional CSS class name(s) (alternative to className)
|
|
1338
|
+
*
|
|
1339
|
+
* @example
|
|
1340
|
+
* ```tsx
|
|
1341
|
+
* <Grid classes="utility-class" columns={3}>
|
|
1342
|
+
* <div>Item</div>
|
|
1343
|
+
* </Grid>
|
|
1344
|
+
* ```
|
|
1345
|
+
*/
|
|
1346
|
+
classes?: string;
|
|
1347
|
+
/**
|
|
1348
|
+
* Children elements (typically Grid.Item components)
|
|
1349
|
+
*
|
|
1350
|
+
* @example
|
|
1351
|
+
* ```tsx
|
|
1352
|
+
* <Grid columns={3}>
|
|
1353
|
+
* <Grid.Item>Item 1</Grid.Item>
|
|
1354
|
+
* <Grid.Item span={2}>Item 2 (2 columns wide)</Grid.Item>
|
|
1355
|
+
* </Grid>
|
|
1356
|
+
* ```
|
|
1357
|
+
*/
|
|
1358
|
+
children?: React.ReactNode;
|
|
1359
|
+
}
|
|
1360
|
+
/**
|
|
1361
|
+
* Props for the Grid.Item component
|
|
1362
|
+
*
|
|
1363
|
+
* Grid.Item represents a single item within a Grid layout.
|
|
1364
|
+
* Supports column span control for flexible grid layouts.
|
|
1365
|
+
*
|
|
1366
|
+
* @example
|
|
1367
|
+
* ```tsx
|
|
1368
|
+
* <Grid columns={12}>
|
|
1369
|
+
* <Grid.Item span={8}>Main content (8/12)</Grid.Item>
|
|
1370
|
+
* <Grid.Item span={4}>Sidebar (4/12)</Grid.Item>
|
|
1371
|
+
* </Grid>
|
|
1372
|
+
* ```
|
|
1373
|
+
*
|
|
1374
|
+
* @example
|
|
1375
|
+
* ```tsx
|
|
1376
|
+
* <Grid columns={4}>
|
|
1377
|
+
* <Grid.Item>1 column</Grid.Item>
|
|
1378
|
+
* <Grid.Item span={2}>2 columns</Grid.Item>
|
|
1379
|
+
* <Grid.Item>1 column</Grid.Item>
|
|
1380
|
+
* </Grid>
|
|
1381
|
+
* ```
|
|
1382
|
+
*/
|
|
1383
|
+
interface GridItemProps extends Partial<ComponentProps$1>, Omit<React.HTMLAttributes<HTMLElement>, "className"> {
|
|
1384
|
+
/**
|
|
1385
|
+
* Number of columns this item should span (1-12)
|
|
1386
|
+
*
|
|
1387
|
+
* Determines the width of the grid item relative to the parent grid's columns.
|
|
1388
|
+
*
|
|
1389
|
+
* @default 1
|
|
1390
|
+
*
|
|
1391
|
+
* @example
|
|
1392
|
+
* ```tsx
|
|
1393
|
+
* <Grid columns={12}>
|
|
1394
|
+
* <Grid.Item span={6}>Half width</Grid.Item>
|
|
1395
|
+
* <Grid.Item span={6}>Half width</Grid.Item>
|
|
1396
|
+
* </Grid>
|
|
1397
|
+
* ```
|
|
1398
|
+
*/
|
|
1399
|
+
span?: GridColumns;
|
|
1400
|
+
/**
|
|
1401
|
+
* Row span for the grid item
|
|
1402
|
+
*
|
|
1403
|
+
* Determines how many rows this item should span.
|
|
1404
|
+
*
|
|
1405
|
+
* @example
|
|
1406
|
+
* ```tsx
|
|
1407
|
+
* <Grid columns={3}>
|
|
1408
|
+
* <Grid.Item rowSpan={2}>Tall item</Grid.Item>
|
|
1409
|
+
* <Grid.Item>Normal</Grid.Item>
|
|
1410
|
+
* <Grid.Item>Normal</Grid.Item>
|
|
1411
|
+
* </Grid>
|
|
1412
|
+
* ```
|
|
1413
|
+
*/
|
|
1414
|
+
rowSpan?: number;
|
|
1415
|
+
/**
|
|
1416
|
+
* HTML element to render as
|
|
1417
|
+
*
|
|
1418
|
+
* @default "div"
|
|
1419
|
+
*
|
|
1420
|
+
* @example
|
|
1421
|
+
* ```tsx
|
|
1422
|
+
* <Grid as="ul" columns={3}>
|
|
1423
|
+
* <Grid.Item as="li">List item 1</Grid.Item>
|
|
1424
|
+
* <Grid.Item as="li">List item 2</Grid.Item>
|
|
1425
|
+
* </Grid>
|
|
1426
|
+
* ```
|
|
1427
|
+
*/
|
|
1428
|
+
as?: GridItemElement;
|
|
1429
|
+
/**
|
|
1430
|
+
* Additional CSS class name(s)
|
|
1431
|
+
*
|
|
1432
|
+
* @example
|
|
1433
|
+
* ```tsx
|
|
1434
|
+
* <Grid.Item className="featured" span={2}>
|
|
1435
|
+
* Featured content
|
|
1436
|
+
* </Grid.Item>
|
|
1437
|
+
* ```
|
|
1438
|
+
*/
|
|
1439
|
+
className?: string;
|
|
1440
|
+
/**
|
|
1441
|
+
* Additional CSS class name(s) (alternative to className)
|
|
1442
|
+
*
|
|
1443
|
+
* @example
|
|
1444
|
+
* ```tsx
|
|
1445
|
+
* <Grid.Item classes="utility-class" span={3}>
|
|
1446
|
+
* Content
|
|
1447
|
+
* </Grid.Item>
|
|
1448
|
+
* ```
|
|
1449
|
+
*/
|
|
1450
|
+
classes?: string;
|
|
1451
|
+
/**
|
|
1452
|
+
* Children elements
|
|
1453
|
+
*
|
|
1454
|
+
* @example
|
|
1455
|
+
* ```tsx
|
|
1456
|
+
* <Grid.Item span={2}>
|
|
1457
|
+
* <h2>Title</h2>
|
|
1458
|
+
* <p>Content</p>
|
|
1459
|
+
* </Grid.Item>
|
|
1460
|
+
* ```
|
|
1461
|
+
*/
|
|
1462
|
+
children?: React.ReactNode;
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1465
|
+
/**
|
|
1466
|
+
* Grid.Item - A grid item component with column and row span control.
|
|
1467
|
+
*
|
|
1468
|
+
* Grid.Item represents a single item within a Grid layout. It supports
|
|
1469
|
+
* column spanning (1-12 columns) and row spanning for flexible grid layouts.
|
|
1470
|
+
*
|
|
1471
|
+
* ## Key Features
|
|
1472
|
+
* - **Column Span**: Span 1-12 columns
|
|
1473
|
+
* - **Row Span**: Span multiple rows
|
|
1474
|
+
* - **Polymorphic**: Render as any semantic HTML element
|
|
1475
|
+
* - **Type-Safe**: Full TypeScript support
|
|
1476
|
+
*
|
|
1477
|
+
* @example
|
|
1478
|
+
* // Span 2 columns
|
|
1479
|
+
* <Grid.Item span={2}>Wide item</Grid.Item>
|
|
1480
|
+
*
|
|
1481
|
+
* @example
|
|
1482
|
+
* // Span 2 rows
|
|
1483
|
+
* <Grid.Item rowSpan={2}>Tall item</Grid.Item>
|
|
1484
|
+
*
|
|
1485
|
+
* @example
|
|
1486
|
+
* // Main content + sidebar layout
|
|
1487
|
+
* <Grid columns={12} gap="md">
|
|
1488
|
+
* <Grid.Item span={8}>Main content</Grid.Item>
|
|
1489
|
+
* <Grid.Item span={4}>Sidebar</Grid.Item>
|
|
1490
|
+
* </Grid>
|
|
1491
|
+
*
|
|
1492
|
+
* @see {@link GridItemProps} for complete props documentation
|
|
1493
|
+
*/
|
|
1494
|
+
declare const GridItem: React$1.ForwardRefExoticComponent<GridItemProps & React$1.RefAttributes<HTMLElement>>;
|
|
1495
|
+
declare const GridWithItem: React$1.ForwardRefExoticComponent<GridProps & React$1.RefAttributes<HTMLElement>> & {
|
|
1496
|
+
Item: typeof GridItem;
|
|
1497
|
+
};
|
|
1498
|
+
|
|
580
1499
|
/**
|
|
581
1500
|
* Type definitions for Flex container components
|
|
582
1501
|
* Supports responsive flexbox layouts with CSS custom properties
|
|
@@ -585,7 +1504,7 @@ declare const Article: ({ id, children, styles, classes, ...props }: ComponentPr
|
|
|
585
1504
|
* Valid HTML elements for Flex container
|
|
586
1505
|
* Restricted to semantic container elements only
|
|
587
1506
|
*/
|
|
588
|
-
type FlexContainerElement = "div" | "section" | "article" | "aside" | "main" | "header" | "footer" | "nav" | "ul" | "ol" | "dl" | "form" | "fieldset";
|
|
1507
|
+
type FlexContainerElement = "div" | "section" | "article" | "aside" | "main" | "header" | "footer" | "nav" | "ul" | "ol" | "dl" | "li" | "form" | "fieldset";
|
|
589
1508
|
/**
|
|
590
1509
|
* Valid HTML elements for Flex.Item
|
|
591
1510
|
* Includes list item elements in addition to container elements
|
|
@@ -1076,7 +1995,7 @@ declare const Td: {
|
|
|
1076
1995
|
displayName: string;
|
|
1077
1996
|
};
|
|
1078
1997
|
declare const Table: {
|
|
1079
|
-
({ id,
|
|
1998
|
+
({ id, children, ...props }: ComponentProps$1): React$1.JSX.Element;
|
|
1080
1999
|
displayName: string;
|
|
1081
2000
|
};
|
|
1082
2001
|
|
|
@@ -1302,4 +2221,4 @@ type FPComponent = {
|
|
|
1302
2221
|
*/
|
|
1303
2222
|
declare const FP: FPComponent;
|
|
1304
2223
|
|
|
1305
|
-
export { Alert, AlertProps, Article, Aside, Badge, BadgeProps,
|
|
2224
|
+
export { Alert, AlertProps, Article, Aside, Badge, BadgeProps, Box, BoxProps, Caption, Cluster, ClusterProps, ComponentProps$1 as ComponentProps, Details, FP, Flex, FlexAlign, FlexAlignContent, FlexAlignSelf, FlexContainerElement, FlexDirection, FlexGap, FlexItemElement, FlexItemProps, FlexJustify, FlexProps, FlexSpacerProps, FlexVariant, FlexWrap, Footer, GridWithItem as Grid, GridItem, GridItemProps, GridProps, Header, Img, ImgProps, Landmarks, Main, ResponsiveFlexProps, Section, Stack, StackProps, Table, Tag, TagProps, TagVariant, Tbody, Td, TextToSpeech, Thead, Tr, UI };
|