@marktiderman/genesis-ui 2.12.2 → 2.13.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.
@@ -69,49 +69,7 @@ var Stack = React.forwardRef(
69
69
  )
70
70
  );
71
71
  Stack.displayName = "Stack";
72
- var containerVariants = cva("mx-auto w-full", {
73
- variants: {
74
- // A deliberately short list. Named widths are a shared decision — five
75
- // of them means two pages can't be 4px apart for no reason, which is
76
- // exactly what happens once `max-w-[1180px]` is on the table.
77
- size: {
78
- /** Forms, settings, single-column detail. */
79
- sm: "max-w-3xl",
80
- /** Standard content pages. */
81
- md: "max-w-5xl",
82
- /** Application pages — the default. */
83
- lg: "max-w-7xl",
84
- /** Dashboards and wide tables: gutters, no ceiling. */
85
- full: "max-w-none",
86
- /** Long-form reading, capped by character count rather than width. */
87
- prose: "max-w-prose"
88
- },
89
- // The three steps are the design system's own page spacing token
90
- // (`spacing.page` = 1rem / 1.5rem / 2rem) expressed as utilities.
91
- gutter: {
92
- true: "px-4 sm:px-6 lg:px-8",
93
- false: "px-0"
94
- }
95
- },
96
- defaultVariants: {
97
- size: "lg",
98
- gutter: true
99
- }
100
- });
101
- var Container = React.forwardRef(
102
- ({ className, size, gutter, testID, ...props }, ref) => /* @__PURE__ */ jsx(
103
- "div",
104
- {
105
- ref,
106
- "data-slot": "container",
107
- "data-testid": testID,
108
- className: cn(containerVariants({ size, gutter }), className),
109
- ...props
110
- }
111
- )
112
- );
113
- Container.displayName = "Container";
114
72
 
115
- export { Container, Stack, containerVariants, stackVariants };
116
- //# sourceMappingURL=chunk-4CQHPWJD.js.map
117
- //# sourceMappingURL=chunk-4CQHPWJD.js.map
73
+ export { Stack, stackVariants };
74
+ //# sourceMappingURL=chunk-ORCI5SVM.js.map
75
+ //# sourceMappingURL=chunk-ORCI5SVM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/layout/stack.tsx"],"names":[],"mappings":";;;;;;AAKA,IAAM,aAAA,GAAgB,IAAI,MAAA,EAAQ;AAAA,EAChC,QAAA,EAAU;AAAA,IACR,SAAA,EAAW;AAAA,MACT,GAAA,EAAK,UAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,GAAA,EAAK,WAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWL,KAAA,EAAO;AAAA,MACL,KAAA,EAAO,aAAA;AAAA,MACP,MAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAK,WAAA;AAAA,MACL,OAAA,EAAS;AAAA,KACX;AAAA,IACA,OAAA,EAAS;AAAA,MACP,KAAA,EAAO,eAAA;AAAA,MACP,MAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAK,aAAA;AAAA,MACL,OAAA,EAAS,iBAAA;AAAA,MACT,MAAA,EAAQ;AAAA,KACV;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,IAAA,EAAM,WAAA;AAAA;AAAA;AAAA;AAAA,MAIN,KAAA,EAAO;AAAA;AACT,GACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAAA,EAAiB;AAAA,IACf,SAAA,EAAW,QAAA;AAAA,IACX,GAAA,EAAK,IAAA;AAAA,IACL,IAAA,EAAM;AAAA;AAEV,CAAC;AA6CM,IAAM,KAAA,GAAc,KAAA,CAAA,UAAA;AAAA,EACzB,CACE,EAAE,SAAA,EAAW,SAAA,EAAW,GAAA,EAAK,KAAA,EAAO,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,GAAG,KAAA,EAAM,EACpE,GAAA,qBAEA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,OAAA;AAAA,MACV,aAAA,EAAa,MAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,cAAc,EAAE,SAAA,EAAW,KAAK,KAAA,EAAO,OAAA,EAAS,MAAM,CAAA;AAAA,QACtD;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA,KAAA,CAAM,WAAA,GAAc,OAAA","file":"chunk-ORCI5SVM.js","sourcesContent":["import * as React from \"react\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\nimport { GAP_CLASSES } from \"./spacing\";\n\nconst stackVariants = cva(\"flex\", {\n variants: {\n direction: {\n row: \"flex-row\",\n column: \"flex-col\",\n },\n gap: GAP_CLASSES,\n // Exactly `@marktiderman/genesis-ui-native`'s `FlexAlign` / `FlexJustify`\n // — see `./spacing` for why the two surfaces share one vocabulary.\n // Web flexbox also supports `baseline` and `space-evenly`, and an\n // earlier draft offered both; they are deliberately NOT here, because\n // native's Yoga vocabulary has neither, so a spec written against them\n // could not be applied to the native surface. Since `align`/`justify`\n // emit nothing when unset, `className=\"items-baseline\"` reaches them\n // with no class to fight. Widening is additive and can happen later on\n // BOTH surfaces at once; shipping them here first and withdrawing them\n // to restore parity would be a breaking change.\n align: {\n start: \"items-start\",\n center: \"items-center\",\n end: \"items-end\",\n stretch: \"items-stretch\",\n },\n justify: {\n start: \"justify-start\",\n center: \"justify-center\",\n end: \"justify-end\",\n between: \"justify-between\",\n around: \"justify-around\",\n },\n wrap: {\n true: \"flex-wrap\",\n // Empty, not `flex-nowrap`: nowrap is already flexbox's initial value,\n // so emitting it would only add noise. Same reasoning as the\n // undefaulted `align`/`justify` below.\n false: \"\",\n },\n },\n // `align` and `justify` have NO default on purpose. Defaulting them would\n // emit `items-stretch`/`justify-start` on every Stack ever rendered — the\n // browser's own initial values — which is noise in the DOM and, worse,\n // beats a consumer's `className` at equal specificity for anyone not\n // going through `cn()`. Unset means \"whatever flexbox already does\".\n defaultVariants: {\n direction: \"column\",\n gap: \"md\",\n wrap: false,\n },\n});\n\nexport interface StackProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof stackVariants> {\n /** Stable test/automation selector (emitted as `data-testid`). */\n testID?: string;\n}\n\n/**\n * Stack — one-dimensional flow. The single most-repeated shape in any\n * application: a run of things in a line, evenly spaced.\n *\n * It replaces the `flex flex-col gap-4` / `flex items-center gap-2` strings\n * that otherwise get retyped in every file, and it is the reason `gap`\n * stays on the shared `SpaceToken` scale (see `./spacing`) instead of\n * drifting per page.\n *\n * ```tsx\n * <Stack gap=\"lg\">\n * <Card />\n * <Card />\n * </Stack>\n *\n * <Stack direction=\"row\" align=\"center\" justify=\"between\" gap=\"sm\">\n * <h2>Members</h2>\n * <Button>Invite</Button>\n * </Stack>\n * ```\n *\n * Deliberately NOT here: responsive per-breakpoint directions. A layout\n * that changes axis at a breakpoint is a `Split`, which owns that idea and\n * names the breakpoint explicitly.\n *\n * Note for consumers of both surfaces: `@marktiderman/genesis-ui-native`\n * splits this shape into two components, `Stack` (column) and `Inline`\n * (row). On web they are one component with a `direction` prop, which is\n * the established web idiom. The `gap` / `align` / `justify` vocabulary is\n * identical either way — deliberately, and enforced by a test that reads\n * the native definitions directly — so a spec written once still reads the\n * same on both. That means the web unions are the SHARED vocabulary, not\n * everything web flexbox can do; see the note on `align` below.\n *\n * @stability Beta\n */\nexport const Stack = React.forwardRef<HTMLDivElement, StackProps>(\n (\n { className, direction, gap, align, justify, wrap, testID, ...props },\n ref\n ) => (\n <div\n ref={ref}\n data-slot=\"stack\"\n data-testid={testID}\n className={cn(\n stackVariants({ direction, gap, align, justify, wrap }),\n className\n )}\n {...props}\n />\n )\n);\nStack.displayName = \"Stack\";\n\nexport { stackVariants };\n"]}
@@ -0,0 +1,130 @@
1
+ import { cn } from './chunk-NZ5WBA4R.js';
2
+ import * as React2 from 'react';
3
+ import { cva } from 'class-variance-authority';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var containerVariants = cva("mx-auto w-full", {
7
+ variants: {
8
+ // A deliberately short list. Named widths are a shared decision — five
9
+ // of them means two pages can't be 4px apart for no reason, which is
10
+ // exactly what happens once `max-w-[1180px]` is on the table.
11
+ size: {
12
+ /** Forms, settings, single-column detail. */
13
+ sm: "max-w-3xl",
14
+ /** Standard content pages. */
15
+ md: "max-w-5xl",
16
+ /** Application pages — the default. */
17
+ lg: "max-w-7xl",
18
+ /** Dashboards and wide tables: gutters, no ceiling. */
19
+ full: "max-w-none",
20
+ /** Long-form reading, capped by character count rather than width. */
21
+ prose: "max-w-prose"
22
+ },
23
+ // The three steps are the design system's own page spacing token
24
+ // (`spacing.page` = 1rem / 1.5rem / 2rem) expressed as utilities.
25
+ gutter: {
26
+ true: "px-4 sm:px-6 lg:px-8",
27
+ false: "px-0"
28
+ }
29
+ },
30
+ defaultVariants: {
31
+ size: "lg",
32
+ gutter: true
33
+ }
34
+ });
35
+ var Container = React2.forwardRef(
36
+ ({ className, size, gutter, testID, ...props }, ref) => /* @__PURE__ */ jsx(
37
+ "div",
38
+ {
39
+ ref,
40
+ "data-slot": "container",
41
+ "data-testid": testID,
42
+ className: cn(containerVariants({ size, gutter }), className),
43
+ ...props
44
+ }
45
+ )
46
+ );
47
+ Container.displayName = "Container";
48
+ var bandVariants = cva("relative w-full", {
49
+ variants: {
50
+ surface: {
51
+ base: "bg-background text-foreground",
52
+ muted: "bg-muted text-foreground",
53
+ accent: "bg-primary text-primary-foreground",
54
+ inverse: "bg-foreground text-background"
55
+ },
56
+ // Vertical rhythm, mobile first: a band breathes more on a wide screen.
57
+ spacing: {
58
+ none: "py-0",
59
+ sm: "py-8 sm:py-10",
60
+ md: "py-12 sm:py-16 lg:py-20",
61
+ lg: "py-16 sm:py-24 lg:py-32"
62
+ }
63
+ },
64
+ defaultVariants: {
65
+ surface: "base",
66
+ spacing: "md"
67
+ }
68
+ });
69
+ var Band = React2.forwardRef(
70
+ ({ as: Tag = "section", surface, spacing, width = "lg", className, innerClassName, testID, children, ...props }, ref) => /* @__PURE__ */ jsx(
71
+ Tag,
72
+ {
73
+ ref,
74
+ "data-slot": "band",
75
+ "data-surface": surface ?? "base",
76
+ "data-testid": testID,
77
+ className: cn(bandVariants({ surface, spacing }), className),
78
+ ...props,
79
+ children: /* @__PURE__ */ jsx("div", { "data-slot": "band-inner", className: cn(containerVariants({ size: width, gutter: true }), innerClassName), children })
80
+ }
81
+ )
82
+ );
83
+ Band.displayName = "Band";
84
+ var displayVariants = cva("font-display font-bold tracking-tight text-balance", {
85
+ variants: {
86
+ size: {
87
+ /** A hero headline. */
88
+ xl: "text-4xl leading-[1.1] sm:text-5xl lg:text-6xl",
89
+ /** A section headline. */
90
+ lg: "text-3xl leading-tight sm:text-4xl",
91
+ /** A card or column title in a band. */
92
+ md: "text-2xl leading-snug sm:text-3xl",
93
+ /** A small title, such as a pricing tier's name. */
94
+ sm: "text-xl leading-snug"
95
+ }
96
+ },
97
+ defaultVariants: {
98
+ size: "lg"
99
+ }
100
+ });
101
+ var Display = React2.forwardRef(
102
+ ({ as: Tag = "h2", size, className, testID, ...props }, ref) => /* @__PURE__ */ jsx(
103
+ Tag,
104
+ {
105
+ ref,
106
+ "data-slot": "display",
107
+ "data-testid": testID,
108
+ className: cn(displayVariants({ size }), className),
109
+ ...props
110
+ }
111
+ )
112
+ );
113
+ Display.displayName = "Display";
114
+ var leadVariants = cva("text-lg leading-relaxed sm:text-xl text-pretty", {
115
+ variants: {
116
+ tone: {
117
+ muted: "text-muted-foreground",
118
+ inherit: "text-current"
119
+ }
120
+ },
121
+ defaultVariants: { tone: "muted" }
122
+ });
123
+ var BandLead = React2.forwardRef(
124
+ ({ tone, className, testID, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, "data-slot": "band-lead", "data-testid": testID, className: cn(leadVariants({ tone }), className), ...props })
125
+ );
126
+ BandLead.displayName = "BandLead";
127
+
128
+ export { Band, BandLead, Container, Display, bandVariants, containerVariants, displayVariants, leadVariants };
129
+ //# sourceMappingURL=chunk-ZHCP2RZP.js.map
130
+ //# sourceMappingURL=chunk-ZHCP2RZP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/layout/container.tsx","../src/components/layout/band.tsx"],"names":["React","cva","jsx"],"mappings":"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","file":"chunk-ZHCP2RZP.js","sourcesContent":["import * as React from \"react\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\n\nconst containerVariants = cva(\"mx-auto w-full\", {\n variants: {\n // A deliberately short list. Named widths are a shared decision — five\n // of them means two pages can't be 4px apart for no reason, which is\n // exactly what happens once `max-w-[1180px]` is on the table.\n size: {\n /** Forms, settings, single-column detail. */\n sm: \"max-w-3xl\",\n /** Standard content pages. */\n md: \"max-w-5xl\",\n /** Application pages — the default. */\n lg: \"max-w-7xl\",\n /** Dashboards and wide tables: gutters, no ceiling. */\n full: \"max-w-none\",\n /** Long-form reading, capped by character count rather than width. */\n prose: \"max-w-prose\",\n },\n // The three steps are the design system's own page spacing token\n // (`spacing.page` = 1rem / 1.5rem / 2rem) expressed as utilities.\n gutter: {\n true: \"px-4 sm:px-6 lg:px-8\",\n false: \"px-0\",\n },\n },\n defaultVariants: {\n size: \"lg\",\n gutter: true,\n },\n});\n\nexport interface ContainerProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof containerVariants> {\n /** Stable test/automation selector (emitted as `data-testid`). */\n testID?: string;\n}\n\n/**\n * Container — the page gutter: a centered column with a named maximum\n * width and responsive side padding.\n *\n * ```tsx\n * <Container>\n * <Section title=\"Overview\">{…}</Section>\n * </Container>\n *\n * <Container size=\"sm\">\n * <SettingsForm />\n * </Container>\n *\n * <Container size=\"full\" gutter={false}>\n * <FullBleedMap />\n * </Container>\n * ```\n *\n * `gutter` is a real prop rather than a `className` override because the\n * padding is responsive: passing `px-0` would only cancel the base step\n * and leave `sm:px-6` and `lg:px-8` intact, so the escape hatch that looks\n * like it should work silently doesn't.\n *\n * @stability Beta\n */\nexport const Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n ({ className, size, gutter, testID, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"container\"\n data-testid={testID}\n className={cn(containerVariants({ size, gutter }), className)}\n {...props}\n />\n )\n);\nContainer.displayName = \"Container\";\n\nexport { containerVariants };\n","import * as React from \"react\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { cn } from \"../../utils\";\nimport { containerVariants } from \"./container\";\n\n/**\n * The surfaces a band can sit on. Each pairs a background with the\n * foreground made for it, so text on a band always uses the colour designed\n * against that background:\n *\n * - `base`: the page (`background` / `foreground`).\n * - `muted`: a quiet alternate band (`muted` / `foreground`), for rhythm.\n * - `accent`: the brand's primary (`primary` / `primary-foreground`), for a call to action.\n * - `inverse`: the page's colours swapped (`foreground` / `background`), for a footer or a dark band.\n */\nconst bandVariants = cva(\"relative w-full\", {\n variants: {\n surface: {\n base: \"bg-background text-foreground\",\n muted: \"bg-muted text-foreground\",\n accent: \"bg-primary text-primary-foreground\",\n inverse: \"bg-foreground text-background\",\n },\n // Vertical rhythm, mobile first: a band breathes more on a wide screen.\n spacing: {\n none: \"py-0\",\n sm: \"py-8 sm:py-10\",\n md: \"py-12 sm:py-16 lg:py-20\",\n lg: \"py-16 sm:py-24 lg:py-32\",\n },\n },\n defaultVariants: {\n surface: \"base\",\n spacing: \"md\",\n },\n});\n\nexport interface BandProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof bandVariants> {\n /**\n * The element to render. `section` (default) for a region of the page,\n * `header` / `footer` for the site's banner and footer, `div` for a band\n * that is not a region of its own.\n */\n as?: \"section\" | \"header\" | \"footer\" | \"div\" | \"aside\";\n /** The inner column's width (Container's named widths). Default `lg`. */\n width?: \"sm\" | \"md\" | \"lg\" | \"full\" | \"prose\";\n /** Classes for the inner column, after the width and gutter. */\n innerClassName?: string;\n /** Stable test/automation selector (emitted as `data-testid`). */\n testID?: string;\n}\n\n/**\n * Band: a full-bleed, full-width marketing section. The background runs\n * edge to edge; the content sits in a centered column with the page gutter.\n * It is what a landing page is made of: a hero, a features band, a call to\n * action, a footer.\n *\n * ```tsx\n * <Band surface=\"accent\" spacing=\"lg\" aria-labelledby=\"cta-title\">\n * <Display as=\"h2\" id=\"cta-title\" size=\"lg\">Start today</Display>\n * </Band>\n * ```\n *\n * Unlike `Section` (a titled region inside an app page), a band carries no\n * heading of its own: a marketing page decides its heading levels per page\n * (one `h1`, then `h2`s), so the caller places a `Display` and names the\n * region with `aria-labelledby`. Server-safe: no state, no effects.\n *\n * @stability Beta\n */\nexport const Band = React.forwardRef<HTMLElement, BandProps>(\n ({ as: Tag = \"section\", surface, spacing, width = \"lg\", className, innerClassName, testID, children, ...props }, ref) => (\n <Tag\n ref={ref as React.Ref<HTMLElement & HTMLDivElement>}\n data-slot=\"band\"\n data-surface={surface ?? \"base\"}\n data-testid={testID}\n className={cn(bandVariants({ surface, spacing }), className)}\n {...props}\n >\n <div data-slot=\"band-inner\" className={cn(containerVariants({ size: width, gutter: true }), innerClassName)}>\n {children}\n </div>\n </Tag>\n )\n);\nBand.displayName = \"Band\";\n\n/**\n * The marketing (display) type scale: larger than the app scale and\n * responsive, mobile first, so a headline fits a phone and fills a desktop.\n * Size is independent of the heading level: a page has one `h1` whatever\n * size it is drawn at.\n */\nconst displayVariants = cva(\"font-display font-bold tracking-tight text-balance\", {\n variants: {\n size: {\n /** A hero headline. */\n xl: \"text-4xl leading-[1.1] sm:text-5xl lg:text-6xl\",\n /** A section headline. */\n lg: \"text-3xl leading-tight sm:text-4xl\",\n /** A card or column title in a band. */\n md: \"text-2xl leading-snug sm:text-3xl\",\n /** A small title, such as a pricing tier's name. */\n sm: \"text-xl leading-snug\",\n },\n },\n defaultVariants: {\n size: \"lg\",\n },\n});\n\nexport interface DisplayProps\n extends React.HTMLAttributes<HTMLHeadingElement>,\n VariantProps<typeof displayVariants> {\n /** The heading level: document structure, not a size. Default `h2`. */\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"p\";\n /** Stable test/automation selector (emitted as `data-testid`). */\n testID?: string;\n}\n\n/**\n * Display: a heading in the marketing type scale (`displayVariants`).\n *\n * ```tsx\n * <Display as=\"h1\" size=\"xl\">Train with people who know your name</Display>\n * ```\n *\n * @stability Beta\n */\nexport const Display = React.forwardRef<HTMLHeadingElement, DisplayProps>(\n ({ as: Tag = \"h2\", size, className, testID, ...props }, ref) => (\n <Tag\n ref={ref}\n data-slot=\"display\"\n data-testid={testID}\n className={cn(displayVariants({ size }), className)}\n {...props}\n />\n )\n);\nDisplay.displayName = \"Display\";\n\n/**\n * Lead copy under a display heading: one size up from body text, in the\n * muted foreground on the page (`tone=\"muted\"`), or the band's own\n * foreground on an accent or inverse band (`tone=\"inherit\"`).\n */\nconst leadVariants = cva(\"text-lg leading-relaxed sm:text-xl text-pretty\", {\n variants: {\n tone: {\n muted: \"text-muted-foreground\",\n inherit: \"text-current\",\n },\n },\n defaultVariants: { tone: \"muted\" },\n});\n\nexport interface BandLeadProps\n extends React.HTMLAttributes<HTMLParagraphElement>,\n VariantProps<typeof leadVariants> {\n testID?: string;\n}\n\n/** @stability Beta */\nexport const BandLead = React.forwardRef<HTMLParagraphElement, BandLeadProps>(\n ({ tone, className, testID, ...props }, ref) => (\n <p ref={ref} data-slot=\"band-lead\" data-testid={testID} className={cn(leadVariants({ tone }), className)} {...props} />\n )\n);\nBandLead.displayName = \"BandLead\";\n\nexport { bandVariants, displayVariants, leadVariants };\n"]}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { AppShell, PageHeader } from '../../chunk-MLZEKXV2.js';
2
+ import { AppShell, PageHeader } from '../../chunk-5OFA2CQR.js';
3
3
  export { ViewSettings, ViewToggle } from '../../chunk-46TZGMFW.js';
4
4
  import { slots_exports } from '../../chunk-WALJMVEF.js';
5
5
  import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from '../../chunk-N2ZFNOOT.js';
@@ -10,26 +10,26 @@ import { Skeleton } from '../../chunk-QFM4Z2SS.js';
10
10
  import { Progress } from '../../chunk-W5Y3LG5K.js';
11
11
  import { Checkbox } from '../../chunk-SEBU6JCK.js';
12
12
  import { Card, CardContent, CardHeader, CardTitle } from '../../chunk-FN3FZVUR.js';
13
+ import { Input } from '../../chunk-QSXVL5UB.js';
13
14
  import { AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction } from '../../chunk-4C4ESW6O.js';
14
15
  import { PageLoading } from '../../chunk-YRYQXU3G.js';
15
16
  import { Spinner } from '../../chunk-OVU3Z2MT.js';
16
17
  import { useAnnouncer } from '../../chunk-I4NBE2KL.js';
17
- import { Input } from '../../chunk-QSXVL5UB.js';
18
+ import { FormField, FormLabel, FormError, FormDescription } from '../../chunk-R7QFP6EL.js';
18
19
  import '../../chunk-B2GIBUQD.js';
19
20
  import { Badge } from '../../chunk-NPNADZHM.js';
21
+ import '../../chunk-G5YKBPBF.js';
20
22
  import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from '../../chunk-FK42ZGGV.js';
23
+ import { Popover, PopoverTrigger, PopoverContent } from '../../chunk-22XB3Q6H.js';
21
24
  import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuCheckboxItem, DropdownMenuSeparator, DropdownMenuItem, DropdownMenuLabel } from '../../chunk-QJ6P2DW6.js';
22
25
  import { Switch } from '../../chunk-27ELYTGE.js';
23
- import '../../chunk-G5YKBPBF.js';
24
- import { Popover, PopoverTrigger, PopoverContent } from '../../chunk-22XB3Q6H.js';
26
+ import '../../chunk-F47U5KNW.js';
25
27
  import { DetailPage } from '../../chunk-AFZ76Q26.js';
26
28
  import '../../chunk-D2LIXA2Y.js';
27
29
  import '../../chunk-AVFZ4P4B.js';
28
30
  import { EmptyState } from '../../chunk-65SPT7EA.js';
29
31
  export { EmptyState } from '../../chunk-65SPT7EA.js';
30
32
  import { Button } from '../../chunk-NWSCYLPT.js';
31
- import { FormField, FormLabel, FormError, FormDescription } from '../../chunk-R7QFP6EL.js';
32
- import '../../chunk-F47U5KNW.js';
33
33
  import { showUndoToast, showWriteErrorToast, useResourceTableModel } from '../../chunk-STZVZUYO.js';
34
34
  export { showUndoToast, showWriteErrorToast, useResourceTable } from '../../chunk-STZVZUYO.js';
35
35
  import { titleCase } from '../../chunk-RKPS7ERS.js';
@@ -0,0 +1,92 @@
1
+ import * as class_variance_authority_types from 'class-variance-authority/types';
2
+ import * as React from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+
5
+ /**
6
+ * The surfaces a band can sit on. Each pairs a background with the
7
+ * foreground made for it, so text on a band always uses the colour designed
8
+ * against that background:
9
+ *
10
+ * - `base`: the page (`background` / `foreground`).
11
+ * - `muted`: a quiet alternate band (`muted` / `foreground`), for rhythm.
12
+ * - `accent`: the brand's primary (`primary` / `primary-foreground`), for a call to action.
13
+ * - `inverse`: the page's colours swapped (`foreground` / `background`), for a footer or a dark band.
14
+ */
15
+ declare const bandVariants: (props?: ({
16
+ surface?: "muted" | "base" | "accent" | "inverse" | null | undefined;
17
+ spacing?: "sm" | "lg" | "none" | "md" | null | undefined;
18
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
19
+ interface BandProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof bandVariants> {
20
+ /**
21
+ * The element to render. `section` (default) for a region of the page,
22
+ * `header` / `footer` for the site's banner and footer, `div` for a band
23
+ * that is not a region of its own.
24
+ */
25
+ as?: "section" | "header" | "footer" | "div" | "aside";
26
+ /** The inner column's width (Container's named widths). Default `lg`. */
27
+ width?: "sm" | "md" | "lg" | "full" | "prose";
28
+ /** Classes for the inner column, after the width and gutter. */
29
+ innerClassName?: string;
30
+ /** Stable test/automation selector (emitted as `data-testid`). */
31
+ testID?: string;
32
+ }
33
+ /**
34
+ * Band: a full-bleed, full-width marketing section. The background runs
35
+ * edge to edge; the content sits in a centered column with the page gutter.
36
+ * It is what a landing page is made of: a hero, a features band, a call to
37
+ * action, a footer.
38
+ *
39
+ * ```tsx
40
+ * <Band surface="accent" spacing="lg" aria-labelledby="cta-title">
41
+ * <Display as="h2" id="cta-title" size="lg">Start today</Display>
42
+ * </Band>
43
+ * ```
44
+ *
45
+ * Unlike `Section` (a titled region inside an app page), a band carries no
46
+ * heading of its own: a marketing page decides its heading levels per page
47
+ * (one `h1`, then `h2`s), so the caller places a `Display` and names the
48
+ * region with `aria-labelledby`. Server-safe: no state, no effects.
49
+ *
50
+ * @stability Beta
51
+ */
52
+ declare const Band: React.ForwardRefExoticComponent<BandProps & React.RefAttributes<HTMLElement>>;
53
+ /**
54
+ * The marketing (display) type scale: larger than the app scale and
55
+ * responsive, mobile first, so a headline fits a phone and fills a desktop.
56
+ * Size is independent of the heading level: a page has one `h1` whatever
57
+ * size it is drawn at.
58
+ */
59
+ declare const displayVariants: (props?: ({
60
+ size?: "sm" | "lg" | "md" | "xl" | null | undefined;
61
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
62
+ interface DisplayProps extends React.HTMLAttributes<HTMLHeadingElement>, VariantProps<typeof displayVariants> {
63
+ /** The heading level: document structure, not a size. Default `h2`. */
64
+ as?: "h1" | "h2" | "h3" | "h4" | "p";
65
+ /** Stable test/automation selector (emitted as `data-testid`). */
66
+ testID?: string;
67
+ }
68
+ /**
69
+ * Display: a heading in the marketing type scale (`displayVariants`).
70
+ *
71
+ * ```tsx
72
+ * <Display as="h1" size="xl">Train with people who know your name</Display>
73
+ * ```
74
+ *
75
+ * @stability Beta
76
+ */
77
+ declare const Display: React.ForwardRefExoticComponent<DisplayProps & React.RefAttributes<HTMLHeadingElement>>;
78
+ /**
79
+ * Lead copy under a display heading: one size up from body text, in the
80
+ * muted foreground on the page (`tone="muted"`), or the band's own
81
+ * foreground on an accent or inverse band (`tone="inherit"`).
82
+ */
83
+ declare const leadVariants: (props?: ({
84
+ tone?: "inherit" | "muted" | null | undefined;
85
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
86
+ interface BandLeadProps extends React.HTMLAttributes<HTMLParagraphElement>, VariantProps<typeof leadVariants> {
87
+ testID?: string;
88
+ }
89
+ /** @stability Beta */
90
+ declare const BandLead: React.ForwardRefExoticComponent<BandLeadProps & React.RefAttributes<HTMLParagraphElement>>;
91
+
92
+ export { Band, BandLead, type BandLeadProps, type BandProps, Display, type DisplayProps, bandVariants, displayVariants, leadVariants };
@@ -0,0 +1,5 @@
1
+ export { Band, BandLead, Display, bandVariants, displayVariants, leadVariants } from '../../chunk-ZHCP2RZP.js';
2
+ import '../../chunk-NZ5WBA4R.js';
3
+ import '../../chunk-424PT5DM.js';
4
+ //# sourceMappingURL=band.js.map
5
+ //# sourceMappingURL=band.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"band.js"}
@@ -7,6 +7,7 @@ export { D as DashboardPage, a as DashboardPageProps, G as Grid, b as GridProps,
7
7
  export { SettingsPage, SettingsPageProps, SettingsPageSection } from './settings-page.js';
8
8
  export { C as Container, a as ContainerProps, G as GAP_CLASSES, S as Section, b as SectionProps, c as SpaceToken, d as Stack, e as StackProps, f as containerVariants, s as sectionHeadingVariants, g as spaceScale, h as stackVariants } from '../../spacing-BS6qECD4.js';
9
9
  export { S as Split, a as SplitBreakpoint, b as SplitProps, c as SplitRatio, s as splitVariants } from '../../split-Dk9f4Mi0.js';
10
+ export { Band, BandLead, BandLeadProps, BandProps, Display, DisplayProps, bandVariants, displayVariants, leadVariants } from './band.js';
10
11
  export { NavigationNode, ResolvedNavigation, resolveNavigation } from '@marktiderman/genesis-core/navigation';
11
12
  import 'react';
12
13
  import 'lucide-react';
@@ -1,13 +1,15 @@
1
- export { AppShell, AppShellPageHeader, AppShellSubNavEnd, PageHeader, SubNavTabs, useAppShellSubNav } from '../../chunk-MLZEKXV2.js';
1
+ export { AppShell, AppShellPageHeader, AppShellSubNavEnd, PageHeader, SubNavTabs, useAppShellSubNav } from '../../chunk-5OFA2CQR.js';
2
2
  import '../../chunk-46TZGMFW.js';
3
- export { Container, Stack, containerVariants, stackVariants } from '../../chunk-4CQHPWJD.js';
3
+ export { Stack, stackVariants } from '../../chunk-ORCI5SVM.js';
4
4
  import '../../chunk-B2GIBUQD.js';
5
5
  import '../../chunk-NPNADZHM.js';
6
+ import '../../chunk-G5YKBPBF.js';
6
7
  import '../../chunk-FK42ZGGV.js';
8
+ import '../../chunk-22XB3Q6H.js';
7
9
  import '../../chunk-QJ6P2DW6.js';
8
10
  import '../../chunk-27ELYTGE.js';
9
- import '../../chunk-G5YKBPBF.js';
10
- import '../../chunk-22XB3Q6H.js';
11
+ import '../../chunk-F47U5KNW.js';
12
+ export { Band, BandLead, Container, Display, bandVariants, containerVariants, displayVariants, leadVariants } from '../../chunk-ZHCP2RZP.js';
11
13
  export { DashboardPage, Grid, gridVariants } from '../../chunk-ARJI2JUV.js';
12
14
  export { DetailPage } from '../../chunk-AFZ76Q26.js';
13
15
  export { FormPage } from '../../chunk-MPI33I4K.js';
@@ -16,7 +18,6 @@ export { Section, SettingsPage, sectionHeadingVariants } from '../../chunk-P64MF
16
18
  export { Split, splitVariants } from '../../chunk-D2LIXA2Y.js';
17
19
  export { GAP_CLASSES, spaceScale } from '../../chunk-AVFZ4P4B.js';
18
20
  import '../../chunk-NWSCYLPT.js';
19
- import '../../chunk-F47U5KNW.js';
20
21
  import '../../chunk-NZ5WBA4R.js';
21
22
  export { resolveNavigation } from '../../chunk-J45FHL7D.js';
22
23
  import '../../chunk-424PT5DM.js';
@@ -8,14 +8,14 @@ import '../../chunk-LNFF2RBD.js';
8
8
  export { PageLoading, pageLoadingVariants } from '../../chunk-YRYQXU3G.js';
9
9
  import '../../chunk-OVU3Z2MT.js';
10
10
  import '../../chunk-I4NBE2KL.js';
11
+ export { FormDescription, FormError, FormField, FormLabel } from '../../chunk-R7QFP6EL.js';
11
12
  import '../../chunk-FK42ZGGV.js';
13
+ import '../../chunk-22XB3Q6H.js';
12
14
  import '../../chunk-QJ6P2DW6.js';
13
15
  import '../../chunk-27ELYTGE.js';
14
- import '../../chunk-22XB3Q6H.js';
16
+ import '../../chunk-F47U5KNW.js';
15
17
  export { EmptyState, NoFeaturesFound, NoFeedbackFound, NoSearchResults } from '../../chunk-65SPT7EA.js';
16
18
  import '../../chunk-NWSCYLPT.js';
17
- export { FormDescription, FormError, FormField, FormLabel } from '../../chunk-R7QFP6EL.js';
18
- import '../../chunk-F47U5KNW.js';
19
19
  import '../../chunk-NZ5WBA4R.js';
20
20
  import '../../chunk-424PT5DM.js';
21
21
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  export { ToggleRow } from '../../chunk-6M4NHHKG.js';
2
2
  import '../../chunk-A7AHVDG7.js';
3
- import '../../chunk-27ELYTGE.js';
4
3
  import '../../chunk-R7QFP6EL.js';
4
+ import '../../chunk-27ELYTGE.js';
5
5
  import '../../chunk-F47U5KNW.js';
6
6
  import '../../chunk-NZ5WBA4R.js';
7
7
  import '../../chunk-424PT5DM.js';
@@ -6,8 +6,8 @@ import { Kbd } from '../../chunk-FFSDFQQN.js';
6
6
  import { Input } from '../../chunk-QSXVL5UB.js';
7
7
  import { Tooltip } from '../../chunk-G5YKBPBF.js';
8
8
  import { Popover, PopoverTrigger, PopoverContent } from '../../chunk-22XB3Q6H.js';
9
- import { Button } from '../../chunk-NWSCYLPT.js';
10
9
  import { Label } from '../../chunk-F47U5KNW.js';
10
+ import { Button } from '../../chunk-NWSCYLPT.js';
11
11
  import { cn } from '../../chunk-NZ5WBA4R.js';
12
12
  import '../../chunk-424PT5DM.js';
13
13
  import * as React from 'react';
package/dist/index.d.ts CHANGED
@@ -64,6 +64,7 @@ export { PasswordToggleField, PasswordToggleFieldIcon, PasswordToggleFieldIconPr
64
64
  export { C as Container, a as ContainerProps, G as GAP_CLASSES, S as Section, b as SectionProps, c as SpaceToken, d as Stack, e as StackProps, f as containerVariants, s as sectionHeadingVariants, g as spaceScale, h as stackVariants } from './spacing-BS6qECD4.js';
65
65
  export { D as DashboardPage, a as DashboardPageProps, G as Grid, b as GridProps, g as gridVariants } from './dashboard-page-C0TihRl5.js';
66
66
  export { S as Split, a as SplitBreakpoint, b as SplitProps, c as SplitRatio, s as splitVariants } from './split-Dk9f4Mi0.js';
67
+ export { Band, BandLead, BandLeadProps, BandProps, Display, DisplayProps, bandVariants, displayVariants, leadVariants } from './components/layout/band.js';
67
68
  export { DetailPage, DetailPageProps } from './components/layout/detail-page.js';
68
69
  export { FormPage, FormPageProps } from './components/layout/form-page.js';
69
70
  export { SettingsPage, SettingsPageProps, SettingsPageSection } from './components/layout/settings-page.js';
package/dist/index.js CHANGED
@@ -1,13 +1,17 @@
1
+ import { Small, P, Muted, Lead, Large, H4, H3, H2, H1 } from './chunk-HVQCZFJ7.js';
2
+ export { H1, H2, H3, H4, Large, Lead, Muted, P, Small } from './chunk-HVQCZFJ7.js';
1
3
  import { VisuallyHidden } from './chunk-SY62XJFA.js';
2
4
  export { VisuallyHidden } from './chunk-SY62XJFA.js';
3
5
  import { TabsTrigger, TabsList, TabsContent, Tabs } from './chunk-VXFYETRK.js';
4
6
  export { Tabs, TabsContent, TabsList, TabsTrigger } from './chunk-VXFYETRK.js';
5
7
  import { ToggleGroupItem, ToggleGroup } from './chunk-NUXW6NPP.js';
6
8
  export { ToggleGroup, ToggleGroupItem } from './chunk-NUXW6NPP.js';
7
- import { Small, P, Muted, Lead, Large, H4, H3, H2, H1 } from './chunk-HVQCZFJ7.js';
8
- export { H1, H2, H3, H4, Large, Lead, Muted, P, Small } from './chunk-HVQCZFJ7.js';
9
+ import { ScrollArea } from './chunk-6KHY647C.js';
10
+ export { ScrollArea } from './chunk-6KHY647C.js';
9
11
  import { Slider } from './chunk-PSR47JRA.js';
10
12
  export { Slider } from './chunk-PSR47JRA.js';
13
+ import { MenubarTrigger, MenubarSubTrigger, MenubarSubContent, MenubarSub, MenubarShortcut, MenubarSeparator, MenubarRadioItem, MenubarRadioGroup, MenubarPortal, MenubarMenu, MenubarLabel, MenubarItem, MenubarGroup, MenubarContent, MenubarCheckboxItem, Menubar } from './chunk-AL5TMEZQ.js';
14
+ export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger } from './chunk-AL5TMEZQ.js';
11
15
  import { navigationMenuTriggerStyle, NavigationMenuViewport, NavigationMenuTrigger, NavigationMenuList, NavigationMenuLink, NavigationMenuItem, NavigationMenuIndicator, NavigationMenuContent, NavigationMenu } from './chunk-THD3YOOZ.js';
12
16
  export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle } from './chunk-THD3YOOZ.js';
13
17
  import { PaginationPrevious, PaginationNext, PaginationLink, PaginationItem, PaginationEllipsis, PaginationContent, Pagination } from './chunk-IJCT5IJD.js';
@@ -18,22 +22,20 @@ import { RadioGroupItem, RadioGroup } from './chunk-ZZ7H7VVX.js';
18
22
  export { RadioGroup, RadioGroupItem } from './chunk-ZZ7H7VVX.js';
19
23
  import { ResizablePanelGroup, ResizablePanel, ResizableHandle } from './chunk-TAP3PBQT.js';
20
24
  export { ResizableHandle, ResizablePanel, ResizablePanelGroup } from './chunk-TAP3PBQT.js';
21
- import { ScrollArea } from './chunk-6KHY647C.js';
22
- export { ScrollArea } from './chunk-6KHY647C.js';
25
+ import { DrawerTrigger, DrawerTitle, DrawerPortal, DrawerOverlay, DrawerHeader, DrawerFooter, DrawerDescription, DrawerContent, DrawerClose, Drawer } from './chunk-JYPENH7T.js';
26
+ export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './chunk-JYPENH7T.js';
23
27
  import { HoverCardTrigger, HoverCardContent, HoverCard } from './chunk-P3ZL6FGR.js';
24
28
  export { HoverCard, HoverCardContent, HoverCardTrigger } from './chunk-P3ZL6FGR.js';
25
29
  import { InputGroupSuffix, InputGroupPrefix, InputGroupInput, InputGroup } from './chunk-GJ6XSCNF.js';
26
30
  export { InputGroup, InputGroupInput, InputGroupPrefix, InputGroupSuffix } from './chunk-GJ6XSCNF.js';
27
31
  import { InputOTPSlot, InputOTPSeparator, InputOTPGroup, InputOTP } from './chunk-K23AQNOM.js';
28
32
  export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from './chunk-K23AQNOM.js';
29
- import { MenubarTrigger, MenubarSubTrigger, MenubarSubContent, MenubarSub, MenubarShortcut, MenubarSeparator, MenubarRadioItem, MenubarRadioGroup, MenubarPortal, MenubarMenu, MenubarLabel, MenubarItem, MenubarGroup, MenubarContent, MenubarCheckboxItem, Menubar } from './chunk-AL5TMEZQ.js';
30
- export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger } from './chunk-AL5TMEZQ.js';
33
+ import { ChartTooltipContent, ChartTooltip, ChartStyle, ChartLegendContent, ChartLegend, ChartContainer } from './chunk-QCJAASJT.js';
34
+ export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent } from './chunk-QCJAASJT.js';
31
35
  import { ContextMenuTrigger, ContextMenuSubTrigger, ContextMenuSubContent, ContextMenuSub, ContextMenuShortcut, ContextMenuSeparator, ContextMenuRadioItem, ContextMenuRadioGroup, ContextMenuPortal, ContextMenuLabel, ContextMenuItem, ContextMenuGroup, ContextMenuContent, ContextMenuCheckboxItem, ContextMenu } from './chunk-6TVMQH6M.js';
32
36
  export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from './chunk-6TVMQH6M.js';
33
37
  import { DatePicker } from './chunk-6XPMU65K.js';
34
38
  export { DatePicker } from './chunk-6XPMU65K.js';
35
- import { DrawerTrigger, DrawerTitle, DrawerPortal, DrawerOverlay, DrawerHeader, DrawerFooter, DrawerDescription, DrawerContent, DrawerClose, Drawer } from './chunk-JYPENH7T.js';
36
- export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './chunk-JYPENH7T.js';
37
39
  import { BreadcrumbSeparator, BreadcrumbPage, BreadcrumbList, BreadcrumbLink, BreadcrumbItem, BreadcrumbEllipsis, Breadcrumb } from './chunk-2MQKBZBJ.js';
38
40
  export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from './chunk-2MQKBZBJ.js';
39
41
  import { ButtonGroup } from './chunk-K4YLKVMX.js';
@@ -42,8 +44,12 @@ import { CalendarDayButton, Calendar } from './chunk-J6FBA7PH.js';
42
44
  export { Calendar, CalendarDayButton } from './chunk-J6FBA7PH.js';
43
45
  import { CarouselPrevious, CarouselNext, CarouselItem, CarouselContent, Carousel } from './chunk-AOZGQM6W.js';
44
46
  export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from './chunk-AOZGQM6W.js';
45
- import { ChartTooltipContent, ChartTooltip, ChartStyle, ChartLegendContent, ChartLegend, ChartContainer } from './chunk-QCJAASJT.js';
46
- export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent } from './chunk-QCJAASJT.js';
47
+ import { toolbarVariants, ToolbarToggleItem, ToolbarToggleGroup, ToolbarSeparator, ToolbarLink, ToolbarButton, Toolbar } from './chunk-YYEGAFUE.js';
48
+ export { Toolbar, ToolbarButton, ToolbarLink, ToolbarSeparator, ToolbarToggleGroup, ToolbarToggleItem, toolbarVariants } from './chunk-YYEGAFUE.js';
49
+ import { toggleVariants, Toggle } from './chunk-C46ITXE4.js';
50
+ export { Toggle, toggleVariants } from './chunk-C46ITXE4.js';
51
+ import { Kbd } from './chunk-FFSDFQQN.js';
52
+ export { Kbd } from './chunk-FFSDFQQN.js';
47
53
  import { AccessibleIcon } from './chunk-JAMLFMDS.js';
48
54
  export { AccessibleIcon } from './chunk-JAMLFMDS.js';
49
55
  import { AccordionTrigger, AccordionItem, AccordionContent, Accordion } from './chunk-YWFPMND7.js';
@@ -62,12 +68,6 @@ import { userAvatarVariants, UserAvatar } from './chunk-XBX6QMR5.js';
62
68
  export { UserAvatar, userAvatarVariants } from './chunk-XBX6QMR5.js';
63
69
  import { AvatarImage, AvatarFallback, Avatar } from './chunk-LNFF2RBD.js';
64
70
  export { Avatar, AvatarFallback, AvatarImage } from './chunk-LNFF2RBD.js';
65
- import { toolbarVariants, ToolbarToggleItem, ToolbarToggleGroup, ToolbarSeparator, ToolbarLink, ToolbarButton, Toolbar } from './chunk-YYEGAFUE.js';
66
- export { Toolbar, ToolbarButton, ToolbarLink, ToolbarSeparator, ToolbarToggleGroup, ToolbarToggleItem, toolbarVariants } from './chunk-YYEGAFUE.js';
67
- import { toggleVariants, Toggle } from './chunk-C46ITXE4.js';
68
- export { Toggle, toggleVariants } from './chunk-C46ITXE4.js';
69
- import { Kbd } from './chunk-FFSDFQQN.js';
70
- export { Kbd } from './chunk-FFSDFQQN.js';
71
71
  import { slots_exports } from './chunk-WALJMVEF.js';
72
72
  import { TableRow, TableHeader, TableHead, TableFooter, TableCell, TableCaption, TableBody, Table } from './chunk-N2ZFNOOT.js';
73
73
  export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './chunk-N2ZFNOOT.js';
@@ -85,6 +85,8 @@ import { Checkbox } from './chunk-SEBU6JCK.js';
85
85
  export { Checkbox } from './chunk-SEBU6JCK.js';
86
86
  import { CardTitle, CardHeader, CardFooter, CardDescription, CardContent, Card } from './chunk-FN3FZVUR.js';
87
87
  export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-FN3FZVUR.js';
88
+ import { Input } from './chunk-QSXVL5UB.js';
89
+ export { Input } from './chunk-QSXVL5UB.js';
88
90
  import { AlertDialogTrigger, AlertDialogTitle, AlertDialogPortal, AlertDialogOverlay, AlertDialogHeader, AlertDialogFooter, AlertDialogDescription, AlertDialogContent, AlertDialogCancel, AlertDialogAction, AlertDialog } from './chunk-4C4ESW6O.js';
89
91
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './chunk-4C4ESW6O.js';
90
92
  import { pageLoadingVariants, PageLoading } from './chunk-YRYQXU3G.js';
@@ -92,24 +94,28 @@ export { PageLoading, pageLoadingVariants } from './chunk-YRYQXU3G.js';
92
94
  import { Spinner } from './chunk-OVU3Z2MT.js';
93
95
  export { Spinner } from './chunk-OVU3Z2MT.js';
94
96
  import './chunk-I4NBE2KL.js';
95
- import { Input } from './chunk-QSXVL5UB.js';
96
- export { Input } from './chunk-QSXVL5UB.js';
97
- import { stackVariants, containerVariants, Stack, Container } from './chunk-4CQHPWJD.js';
98
- export { Container, Stack, containerVariants, stackVariants } from './chunk-4CQHPWJD.js';
97
+ import { FormLabel, FormField, FormError, FormDescription } from './chunk-R7QFP6EL.js';
98
+ export { FormDescription, FormError, FormField, FormLabel } from './chunk-R7QFP6EL.js';
99
+ import { stackVariants, Stack } from './chunk-ORCI5SVM.js';
100
+ export { Stack, stackVariants } from './chunk-ORCI5SVM.js';
99
101
  import { CollapsibleTrigger, CollapsibleContent, Collapsible } from './chunk-B2GIBUQD.js';
100
102
  export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './chunk-B2GIBUQD.js';
101
103
  import { Badge } from './chunk-NPNADZHM.js';
102
104
  export { Badge } from './chunk-NPNADZHM.js';
105
+ import { Tooltip } from './chunk-G5YKBPBF.js';
106
+ export { Tooltip } from './chunk-G5YKBPBF.js';
103
107
  import { SelectValue, SelectTrigger, SelectScrollUpButton, SelectScrollDownButton, SelectItem, SelectGroup, SelectContent, Select } from './chunk-FK42ZGGV.js';
104
108
  export { Select, SelectContent, SelectGroup, SelectItem, SelectScrollDownButton, SelectScrollUpButton, SelectTrigger, SelectValue } from './chunk-FK42ZGGV.js';
109
+ import { PopoverTrigger, PopoverContent, Popover } from './chunk-22XB3Q6H.js';
110
+ export { Popover, PopoverContent, PopoverTrigger } from './chunk-22XB3Q6H.js';
105
111
  import { DropdownMenuTrigger, DropdownMenuSubTrigger, DropdownMenuSubContent, DropdownMenuSub, DropdownMenuShortcut, DropdownMenuSeparator, DropdownMenuRadioItem, DropdownMenuRadioGroup, DropdownMenuPortal, DropdownMenuLabel, DropdownMenuItem, DropdownMenuGroup, DropdownMenuContent, DropdownMenuCheckboxItem, DropdownMenu } from './chunk-QJ6P2DW6.js';
106
112
  export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './chunk-QJ6P2DW6.js';
107
113
  import { Switch } from './chunk-27ELYTGE.js';
108
114
  export { Switch } from './chunk-27ELYTGE.js';
109
- import { Tooltip } from './chunk-G5YKBPBF.js';
110
- export { Tooltip } from './chunk-G5YKBPBF.js';
111
- import { PopoverTrigger, PopoverContent, Popover } from './chunk-22XB3Q6H.js';
112
- export { Popover, PopoverContent, PopoverTrigger } from './chunk-22XB3Q6H.js';
115
+ import { Label } from './chunk-F47U5KNW.js';
116
+ export { Label } from './chunk-F47U5KNW.js';
117
+ import { leadVariants, displayVariants, containerVariants, bandVariants, Display, Container, BandLead, Band } from './chunk-ZHCP2RZP.js';
118
+ export { Band, BandLead, Container, Display, bandVariants, containerVariants, displayVariants, leadVariants } from './chunk-ZHCP2RZP.js';
113
119
  import { gridVariants, Grid, DashboardPage } from './chunk-ARJI2JUV.js';
114
120
  export { DashboardPage, Grid, gridVariants } from './chunk-ARJI2JUV.js';
115
121
  import { DetailPage } from './chunk-AFZ76Q26.js';
@@ -128,10 +134,6 @@ import { NoSearchResults, NoFeedbackFound, NoFeaturesFound, EmptyState } from '.
128
134
  export { EmptyState, NoFeaturesFound, NoFeedbackFound, NoSearchResults } from './chunk-65SPT7EA.js';
129
135
  import { Button } from './chunk-NWSCYLPT.js';
130
136
  export { Button } from './chunk-NWSCYLPT.js';
131
- import { FormLabel, FormField, FormError, FormDescription } from './chunk-R7QFP6EL.js';
132
- export { FormDescription, FormError, FormField, FormLabel } from './chunk-R7QFP6EL.js';
133
- import { Label } from './chunk-F47U5KNW.js';
134
- export { Label } from './chunk-F47U5KNW.js';
135
137
  import { toast, Toaster } from './chunk-4RAZJ6LL.js';
136
138
  export { Toaster, toast } from './chunk-4RAZJ6LL.js';
137
139
  import { useCommandPaletteHotkey, CommandPalette } from './chunk-CNTWQSUT.js';
@@ -173,6 +175,8 @@ __export(index_exports, {
173
175
  AvatarFallback: () => AvatarFallback,
174
176
  AvatarImage: () => AvatarImage,
175
177
  Badge: () => Badge,
178
+ Band: () => Band,
179
+ BandLead: () => BandLead,
176
180
  Breadcrumb: () => Breadcrumb,
177
181
  BreadcrumbEllipsis: () => BreadcrumbEllipsis,
178
182
  BreadcrumbItem: () => BreadcrumbItem,
@@ -245,6 +249,7 @@ __export(index_exports, {
245
249
  DialogPortal: () => DialogPortal,
246
250
  DialogTitle: () => DialogTitle,
247
251
  DialogTrigger: () => DialogTrigger,
252
+ Display: () => Display,
248
253
  Drawer: () => Drawer,
249
254
  DrawerClose: () => DrawerClose,
250
255
  DrawerContent: () => DrawerContent,
@@ -409,11 +414,14 @@ __export(index_exports, {
409
414
  UserAvatar: () => UserAvatar,
410
415
  VisuallyHidden: () => VisuallyHidden,
411
416
  alertVariants: () => alertVariants,
417
+ bandVariants: () => bandVariants,
412
418
  cn: () => cn,
413
419
  containerVariants: () => containerVariants,
414
420
  defaultNavigate: () => defaultNavigate,
421
+ displayVariants: () => displayVariants,
415
422
  gridVariants: () => gridVariants,
416
423
  isPathActive: () => isPathActive,
424
+ leadVariants: () => leadVariants,
417
425
  navigationMenuTriggerStyle: () => navigationMenuTriggerStyle,
418
426
  pageLoadingVariants: () => pageLoadingVariants,
419
427
  resolveNavigation: () => resolveNavigation,