@cascivo/react 0.6.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -53,9 +53,18 @@ Components ship with `'use client'` preserved in the bundle, so they work inside
53
53
  RSC without any extra wrapper.
54
54
 
55
55
  > **No bundler? (CDN, import maps, plain `<link>`)** Import the aggregate sheet
56
- > `@cascivo/react/styles.css` — it contains every component's CSS in one file.
57
- > With a bundler you don't need it; import it only if you prefer one explicit
58
- > stylesheet over per-component tree-shaking.
56
+ > `@cascivo/react/styles.css` — every component's CSS in one file (~273 KB /
57
+ > ~37 KB gzip, not tree-shaken). With a bundler (CSR) you don't need it; import it
58
+ > only if you prefer one explicit stylesheet over per-component tree-shaking, or
59
+ > for Vite SSR (below), where it is required.
60
+
61
+ > **Vite SSR / TanStack Start / Remix / workerd?** Those per-component `.css`
62
+ > imports need a bundler to resolve them; a bare server-side ESM loader throws
63
+ > `Unknown file extension ".css"`. Add `ssr: { noExternal: [/^@cascivo\//] }` (or
64
+ > the `cascivoSsr()` plugin from `@cascivo/vite-plugin`) and import
65
+ > `@cascivo/react/styles.css` once in your root entry. Full recipe:
66
+ > [USING-WITH-VITE-SSR.md](https://github.com/cascivo/cascivo/blob/main/docs/USING-WITH-VITE-SSR.md).
67
+ > Next.js App Router needs none of this.
59
68
 
60
69
  ## Use
61
70
 
@@ -116,6 +125,48 @@ aliases are documented in
116
125
  All components are client components (`'use client'` is preserved in the
117
126
  bundle), so the package works in Next.js App Router projects out of the box.
118
127
 
128
+ ## Using with AI tools (v0, Cursor, Claude Code, Gemini)
129
+
130
+ cascivo is AI-first, but a model can only build with it if the knowledge reaches
131
+ the tool. cascivo has no training-data footprint yet, so **don't rely on a tool
132
+ fetching cascivo.com** — that channel is the least reliable one. Use the channels
133
+ that travel with the package instead:
134
+
135
+ - **One file, one fetch — paste or link this into any chat/agent:**
136
+ [`https://cascivo.com/llms-full.txt`](https://cascivo.com/llms-full.txt). It is
137
+ the entire library — setup, the signals/CSS-layer rules, and every component's
138
+ props/examples/a11y — inlined, so a single successful fetch is enough. The
139
+ shorter index is [`llms.txt`](https://cascivo.com/llms.txt).
140
+ - **v0 / shadcn CLI** — components install straight from the
141
+ [shadcn-compatible registry](https://cascivo.com/r/shadcn/registry.json):
142
+
143
+ ```sh
144
+ npx shadcn@latest add https://cascivo.com/r/shadcn/button.json
145
+ ```
146
+
147
+ Each item inlines its own source and points its dependencies at absolute
148
+ `https://cascivo.com/r/shadcn/<name>.json` URLs, so the CLI resolves them
149
+ transitively. Register the whole namespace in `components.json` to use short
150
+ names (`npx shadcn add @cascivo/button`):
151
+
152
+ ```json
153
+ { "registries": { "@cascivo": "https://cascivo.com/r/shadcn/{name}.json" } }
154
+ ```
155
+
156
+ - **MCP-capable agents** (Claude Code, Cursor, Gemini CLI, Windsurf) — point the
157
+ client at the [`@cascivo/mcp`](https://www.npmjs.com/package/@cascivo/mcp)
158
+ server so it can query components with no web fetch at all:
159
+
160
+ ```json
161
+ { "mcpServers": { "cascivo": { "command": "npx", "args": ["-y", "@cascivo/mcp"] } } }
162
+ ```
163
+
164
+ **One rule to give the model:** cascivo is signal-driven — use `useSignal` /
165
+ `useComputed` / `useSignalEffect` from `@cascivo/core`, never `useState` /
166
+ `useEffect`, and in any app without the Babel signals transform a component that
167
+ reads `signal.value` in render must call `useSignals()` first or it won't
168
+ re-render. `llms-full.txt` carries the full contract.
169
+
119
170
  ## Guides
120
171
 
121
172
  - [Theming & branding](https://github.com/cascivo/cascivo/blob/main/docs/THEMING.md) — match a brand by overriding tokens (layer cascade, the `data-theme` specificity footgun, per-role radius/control-height tokens, a starter theme).
@@ -311,7 +362,7 @@ routing break after adding one of these, check that the import resolves to
311
362
  - **DashboardLayout** — Dashboard page layout with stats strip, main content area, and optional aside.
312
363
  - **FeatureGrid** — Feature section — AutoGrid of items with optional title, description, and icon slots. Icons are optional; the grid works text-only. Replace demo content before shipping.
313
364
  - **Flex** — Flex layout primitive for vertical or horizontal stacking with gap control.
314
- - **Grid** — CSS grid layout primitive with responsive column collapsing.
365
+ - **Grid** — CSS grid layout primitive with responsive column collapsing. Establishes its own containment, so responsive `cols` adapt to the grid’s own slot width with no wrapper or container ancestor required.
315
366
  - **Hero** — Page hero section — centered or split layout with eyebrow, title, description, actions and media slots. Replace demo content before shipping.
316
367
  - **Indicator** — Positions an overlay element (badge, dot, count) at a corner of its child
317
368
  - **Join** — Groups adjacent children into a seamless joined element by removing interior borders and radii
@@ -1,28 +1,28 @@
1
1
  "use client";
2
2
 
3
3
  import e from "./breadcrumb.module.js";
4
- import { cn as t, useSignals as n } from "@cascivo/core";
5
- import { builtin as r, t as i } from "@cascivo/i18n";
6
- import { jsx as a } from "react/jsx-runtime";
4
+ import { cn as t, getLinkComponent as n, useSignals as r } from "@cascivo/core";
5
+ import { builtin as i, t as a } from "@cascivo/i18n";
6
+ import { jsx as o } from "react/jsx-runtime";
7
7
  //#region ../components/src/breadcrumb/breadcrumb.tsx
8
- function o({ items: o, maxVisible: s, className: c, ariaLabel: l }) {
9
- n();
10
- let u = l ?? i(r.breadcrumb.nav), d = o, f = o[0];
11
- return f !== void 0 && s !== void 0 && o.length > s && (d = [
12
- f,
8
+ function s({ items: s, maxVisible: c, className: l, ariaLabel: u }) {
9
+ r();
10
+ let d = n(), f = u ?? a(i.breadcrumb.nav), p = s, m = s[0];
11
+ return m !== void 0 && c !== void 0 && s.length > c && (p = [
12
+ m,
13
13
  { label: "…" },
14
- ...o.slice(o.length - (s - 2))
15
- ]), /* @__PURE__ */ a("nav", {
16
- "aria-label": u,
17
- className: t(e.breadcrumb, c),
18
- children: /* @__PURE__ */ a("ol", { children: d.map((e, t) => /* @__PURE__ */ a("li", { children: t === d.length - 1 ? /* @__PURE__ */ a("span", {
14
+ ...s.slice(s.length - (c - 2))
15
+ ]), /* @__PURE__ */ o("nav", {
16
+ "aria-label": f,
17
+ className: t(e.breadcrumb, l),
18
+ children: /* @__PURE__ */ o("ol", { children: p.map((e, t) => /* @__PURE__ */ o("li", { children: t === p.length - 1 ? /* @__PURE__ */ o("span", {
19
19
  "aria-current": "page",
20
20
  children: e.label
21
- }) : e.href === void 0 ? /* @__PURE__ */ a("span", { children: e.label }) : /* @__PURE__ */ a("a", {
21
+ }) : e.href === void 0 ? /* @__PURE__ */ o("span", { children: e.label }) : /* @__PURE__ */ o(d, {
22
22
  href: e.href,
23
23
  children: e.label
24
24
  }) }, `${t}-${e.label}`)) })
25
25
  });
26
26
  }
27
27
  //#endregion
28
- export { o as Breadcrumb };
28
+ export { s as Breadcrumb };
@@ -1 +1 @@
1
- @layer cascivo.component{._card_hb4jd_2{background-color:var(--cascivo-color-surface);border-radius:var(--cascivo-radius-surface);padding:var(--_card-p,0);overflow:hidden}._card_hb4jd_2[data-padding=none]{--_card-p:0}._card_hb4jd_2[data-padding=sm]{--_card-p:var(--cascivo-space-4)}._card_hb4jd_2[data-padding=md]{--_card-p:var(--cascivo-space-6)}._card_hb4jd_2[data-padding=lg]{--_card-p:var(--cascivo-space-8)}._card_hb4jd_2[data-variant=default]{border:1px solid var(--cascivo-color-border)}._card_hb4jd_2[data-variant=outlined]{border:1.5px solid var(--cascivo-color-border-strong)}._card_hb4jd_2[data-variant=elevated]{box-shadow:var(--cascivo-shadow-md);border:none}._header_hb4jd_35{padding:var(--_card-p,var(--cascivo-space-6));gap:var(--cascivo-space-1);flex-direction:column;padding-block-end:0;display:flex}._title_hb4jd_43{font-family:var(--cascivo-font-sans);font-size:var(--cascivo-text-lg);font-weight:var(--cascivo-font-semibold);color:var(--cascivo-color-text);line-height:var(--cascivo-leading-tight);margin:0}._content_hb4jd_52{padding:var(--_card-p,var(--cascivo-space-6));color:var(--cascivo-color-text-subtle);font-family:var(--cascivo-font-sans);font-size:var(--cascivo-text-sm);line-height:var(--cascivo-leading-relaxed)}._footer_hb4jd_60{padding:var(--_card-p,var(--cascivo-space-6));align-items:center;gap:var(--cascivo-space-2);padding-block-start:0;display:flex}}
1
+ @layer cascivo.component{._card_16415_2{background-color:var(--cascivo-color-surface);border-radius:var(--cascivo-radius-surface);padding:var(--_card-p,0);overflow:hidden}._card_16415_2[data-padding=none]{--_card-p:0}._card_16415_2[data-padding=sm]{--_card-p:var(--cascivo-space-4)}._card_16415_2[data-padding=md]{--_card-p:var(--cascivo-space-6)}._card_16415_2[data-padding=lg]{--_card-p:var(--cascivo-space-8)}._card_16415_2[data-variant=default]{border:1px solid var(--cascivo-color-border)}._card_16415_2[data-variant=outlined]{border:1.5px solid var(--cascivo-color-border-strong)}._card_16415_2[data-variant=elevated]{box-shadow:var(--cascivo-shadow-md);border:none}._header_16415_35{padding:var(--_card-p,var(--cascivo-space-6));gap:var(--cascivo-space-1);flex-direction:column;min-inline-size:0;padding-block-end:0;display:flex}._title_16415_46{font-family:var(--cascivo-font-sans);font-size:var(--cascivo-text-lg);font-weight:var(--cascivo-font-semibold);color:var(--cascivo-color-text);line-height:var(--cascivo-leading-tight);margin:0}._content_16415_55{padding:var(--_card-p,var(--cascivo-space-6));color:var(--cascivo-color-text-subtle);font-family:var(--cascivo-font-sans);font-size:var(--cascivo-text-sm);line-height:var(--cascivo-leading-relaxed)}._footer_16415_63{padding:var(--_card-p,var(--cascivo-space-6));align-items:center;gap:var(--cascivo-space-2);min-inline-size:0;padding-block-start:0;display:flex}._footer_16415_63>*{min-inline-size:0}}
@@ -2,11 +2,11 @@
2
2
 
3
3
  import './card.css';
4
4
  var e = {
5
- card: "_card_hb4jd_2",
6
- header: "_header_hb4jd_35",
7
- title: "_title_hb4jd_43",
8
- content: "_content_hb4jd_52",
9
- footer: "_footer_hb4jd_60"
5
+ card: "_card_16415_2",
6
+ header: "_header_16415_35",
7
+ title: "_title_16415_46",
8
+ content: "_content_16415_55",
9
+ footer: "_footer_16415_63"
10
10
  };
11
11
  //#endregion
12
12
  export { e as default };
package/dist/dock/dock.js CHANGED
@@ -1,34 +1,34 @@
1
1
  "use client";
2
2
 
3
3
  import e from "./dock.module.js";
4
- import { useSignals as t } from "@cascivo/core";
5
- import { builtin as n, t as r } from "@cascivo/i18n";
6
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
4
+ import { getLinkComponent as t, useSignals as n } from "@cascivo/core";
5
+ import { builtin as r, t as i } from "@cascivo/i18n";
6
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
7
  //#region ../components/src/dock/dock.tsx
8
- function o({ items: o, activeIndex: s, className: c, ariaLabel: l }) {
9
- return t(), /* @__PURE__ */ i("nav", {
10
- "aria-label": l ?? r(n.dock.nav),
11
- className: [e.dock, c].filter(Boolean).join(" "),
12
- children: o.map((t, n) => {
13
- let r = n === s;
14
- return /* @__PURE__ */ a(t.href ? "a" : "button", {
8
+ function s({ items: s, activeIndex: c, className: l, ariaLabel: u }) {
9
+ return n(), /* @__PURE__ */ a("nav", {
10
+ "aria-label": u ?? i(r.dock.nav),
11
+ className: [e.dock, l].filter(Boolean).join(" "),
12
+ children: s.map((n, r) => {
13
+ let i = r === c;
14
+ return /* @__PURE__ */ o(n.href ? t() : "button", {
15
15
  className: e.item,
16
- "data-active": r || void 0,
17
- "aria-current": r ? "page" : void 0,
18
- ...t.href ? { href: t.href } : {},
19
- type: t.href ? void 0 : "button",
20
- onClick: t.onClick,
21
- children: [/* @__PURE__ */ i("span", {
16
+ "data-active": i || void 0,
17
+ "aria-current": i ? "page" : void 0,
18
+ ...n.href ? { href: n.href } : {},
19
+ type: n.href ? void 0 : "button",
20
+ onClick: n.onClick,
21
+ children: [/* @__PURE__ */ a("span", {
22
22
  className: e.icon,
23
23
  "aria-hidden": "true",
24
- children: t.icon
25
- }), /* @__PURE__ */ i("span", {
24
+ children: n.icon
25
+ }), /* @__PURE__ */ a("span", {
26
26
  className: e.label,
27
- children: t.label
27
+ children: n.label
28
28
  })]
29
- }, n);
29
+ }, r);
30
30
  })
31
31
  });
32
32
  }
33
33
  //#endregion
34
- export { o as Dock };
34
+ export { s as Dock };
@@ -1,29 +1,29 @@
1
1
  "use client";
2
2
 
3
3
  import e from "./header.module.js";
4
- import { cn as t, useSignals as n } from "@cascivo/core";
5
- import { builtin as r, t as i } from "@cascivo/i18n";
6
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
4
+ import { cn as t, getLinkComponent as n, useSignals as r } from "@cascivo/core";
5
+ import { builtin as i, t as a } from "@cascivo/i18n";
6
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
7
7
  //#region ../components/src/header/header.tsx
8
- function s({ brand: s, links: c, actions: l, sticky: u = !1, labels: d, className: f, ...p }) {
9
- n();
10
- let m = d?.nav ?? i(r.header.nav);
11
- return /* @__PURE__ */ o("header", {
8
+ function c({ brand: c, links: l, actions: u, sticky: d = !1, labels: f, className: p, ...m }) {
9
+ r();
10
+ let h = n(), g = f?.nav ?? a(i.header.nav);
11
+ return /* @__PURE__ */ s("header", {
12
12
  role: "banner",
13
- "data-sticky": u || void 0,
14
- className: t(e.header, f),
15
- ...p,
13
+ "data-sticky": d || void 0,
14
+ className: t(e.header, p),
15
+ ...m,
16
16
  children: [
17
- s && /* @__PURE__ */ a("div", {
17
+ c && /* @__PURE__ */ o("div", {
18
18
  className: e.brand,
19
- children: s
19
+ children: c
20
20
  }),
21
- c && c.length > 0 && /* @__PURE__ */ a("nav", {
22
- "aria-label": m,
21
+ l && l.length > 0 && /* @__PURE__ */ o("nav", {
22
+ "aria-label": g,
23
23
  className: e.nav,
24
- children: /* @__PURE__ */ a("ul", {
24
+ children: /* @__PURE__ */ o("ul", {
25
25
  className: e.list,
26
- children: c.map((t, n) => /* @__PURE__ */ a("li", { children: /* @__PURE__ */ a("a", {
26
+ children: l.map((t, n) => /* @__PURE__ */ o("li", { children: /* @__PURE__ */ o(h, {
27
27
  href: t.href,
28
28
  "aria-current": t.active ? "page" : void 0,
29
29
  "data-state": t.active ? "active" : void 0,
@@ -32,13 +32,13 @@ function s({ brand: s, links: c, actions: l, sticky: u = !1, labels: d, classNam
32
32
  }) }, t.id ?? `${n}-${t.href}`))
33
33
  })
34
34
  }),
35
- /* @__PURE__ */ a("div", { className: e.spacer }),
36
- l && /* @__PURE__ */ a("div", {
35
+ /* @__PURE__ */ o("div", { className: e.spacer }),
36
+ u && /* @__PURE__ */ o("div", {
37
37
  className: e.actions,
38
- children: l
38
+ children: u
39
39
  })
40
40
  ]
41
41
  });
42
42
  }
43
43
  //#endregion
44
- export { s as Header };
44
+ export { c as Header };
package/dist/index.d.ts CHANGED
@@ -634,6 +634,22 @@ declare function Header({
634
634
  ...props
635
635
  }: HeaderProps): import("react").JSX.Element;
636
636
  type SideNavTone = 'default' | 'danger' | 'warning' | 'success';
637
+ /**
638
+ * The anchor props cascivo computes for a nav item — the exact bag it spreads onto
639
+ * the link element. Passed to a `render` hatch so a custom link (e.g. a router
640
+ * `<Link>`) can carry the same active-state and accessibility attributes.
641
+ */
642
+ interface SideNavLinkProps {
643
+ href?: string | undefined;
644
+ className?: string | undefined;
645
+ 'aria-current'?: 'page' | undefined;
646
+ 'aria-label'?: string | undefined;
647
+ 'aria-disabled'?: boolean | undefined;
648
+ 'data-state'?: 'active' | undefined;
649
+ 'data-tone'?: Exclude<SideNavTone, 'default'> | undefined;
650
+ tabIndex?: number | undefined;
651
+ onClick: (e: MouseEvent<HTMLAnchorElement>) => void;
652
+ }
637
653
  /** A selectable/navigable sub-item (link when `href` is set, action when `onSelect` is set). */
638
654
  interface SideNavLinkSubItem {
639
655
  /** Stable React key. Provide when `label`/`href` may repeat (e.g. placeholder `#` links). */
@@ -672,9 +688,17 @@ interface SideNavItem {
672
688
  /**
673
689
  * Escape hatch: render arbitrary content inside the item's shell so it inherits
674
690
  * alignment and the collapse context. When set, the item's own fields are ignored.
691
+ *
692
+ * `children` is the computed icon + label + trailing node (so a custom link keeps
693
+ * the default layout), and `linkProps` is the anchor prop bag cascivo would spread
694
+ * onto the `<a>` (including active-state and a11y attributes) — spread it onto your
695
+ * router `<Link>` to preserve them. For a global router integration prefer
696
+ * `setLinkComponent` from `@cascivo/core` over a per-item hatch.
675
697
  */
676
698
  render?: (ctx: {
677
699
  collapsed: boolean;
700
+ children: ReactNode;
701
+ linkProps: SideNavLinkProps;
678
702
  }) => ReactNode;
679
703
  }
680
704
  interface SideNavGroup {
@@ -3280,6 +3304,7 @@ declare function Columns({
3280
3304
  gap,
3281
3305
  className,
3282
3306
  style,
3307
+ children,
3283
3308
  ...props
3284
3309
  }: ColumnsProps): import("react").JSX.Element;
3285
3310
  interface CenterProps extends HTMLAttributes<HTMLDivElement> {
@@ -3395,4 +3420,4 @@ declare function themePreloadScript(options?: {
3395
3420
  attribute?: string;
3396
3421
  defaultTheme?: string;
3397
3422
  }): string;
3398
- export { Accordion, AccordionContent, AccordionItem, AccordionItemProps, AccordionProps, AccordionTrigger, ActionSheet, ActionSheetAction, ActionSheetProps, Alert, AlertDialog, AlertDialogLabels, AlertDialogProps, AlertProps, AppShell, AppShellProps, AspectRatio, AspectRatioProps, AutoGrid, AutoGridProps, Avatar, AvatarGroup, AvatarGroupLabels, AvatarGroupProps, AvatarProps, Badge, BadgeProps, Blockquote, BlockquoteProps, BottomSheet, BottomSheetProps, Breadcrumb, BreadcrumbItem, BreadcrumbProps, Button, ButtonGroup, ButtonGroupProps, ButtonProps, Calendar, CalendarLabels, CalendarProps, Card, CardContent, CardContentProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardTitle, CardTitleProps, Carousel, CarouselLabels, CarouselProps, Center, CenterProps, ChatBubble, ChatBubbleProps, ChatBubbleSide, Checkbox, CheckboxCard, CheckboxCardProps, CheckboxProps, Code, type CodeLang, CodeProps, CodeSnippet, CodeSnippetProps, Collapsible, CollapsibleProps, ColorPicker, ColorPickerLabels, ColorPickerProps, Column, Columns, ColumnsProps, Combobox, ComboboxLabels, ComboboxOption, ComboboxProps, CommandAction, CommandGroup, CommandItem, CommandMenu, CommandMenuProps, CommandPage, CommandScope, CommandStatus, Comparison, ComparisonProps, ContainedList, ContainedListItem, ContainedListItemProps, ContainedListProps, ContextMenu, ContextMenuItem, ContextMenuItemProps, ContextMenuProps, CopyButton, CopyButtonProps, DataList, DataListItem, DataListProps, DataTable, DataTableLabels, DataTableProps, DatePicker, DatePickerLabels, DatePickerProps, DateRange, DateRangePicker, DateRangePickerLabels, DateRangePickerProps, DateRangePreset, Dock, DockItem, DockProps, Drawer, DrawerProps, Dropdown, DropdownItem, DropdownProps, Editable, EditableProps, EmptyState, EmptyStateProps, ErrorBoundary, Fab, FabAction, FabProps, Field, FieldProps, FileUploader, FileUploaderLabels, FileUploaderProps, Filter, FilterOption, FilterProps, FilterVariant, Flex, FlexProps, FocusScope, Form, FormConfig, FormProps, FormStore, FuzzyMatch, Grid, GridAlign, GridItem, GridItemProps, GridProps, Header, HeaderLabels, HeaderLink, HeaderPanel, HeaderPanelLabels, HeaderPanelProps, HeaderProps, Heading, HeadingLevel, HeadingProps, HeadingSize, HoverCard, HoverCardContent, HoverCardContentProps, HoverCardProps, HoverCardTrigger, HoverCardTriggerProps, IconButton, IconButtonProps, Image, ImageProps, Indicator, IndicatorPlacement, IndicatorProps, InlineLoading, InlineLoadingProps, InlineLoadingStatus, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, type InputGroupProps, InputProps, Item, ItemActions, ItemActionsProps, ItemContent, ItemContentProps, ItemDescription, ItemDescriptionProps, ItemMedia, ItemMediaProps, ItemProps, ItemTitle, ItemTitleProps, Join, JoinOrientation, JoinProps, Kbd, KbdProps, Label, LabelProps, Link, LinkProps, List, ListItem, ListItemProps, ListProps, LogLevel, LogLine, LogViewer, LogViewerLabels, LogViewerProps, Menu, MenuButton, MenuButtonItem, MenuButtonProps, MenuItem, MenuItemProps, MenuProps, MenuSeparator, MenuTrigger, MenuTriggerProps, Menubar, MenubarItem, MenubarMenu, MenubarProps, Modal, ModalProps, MultiSelect, MultiSelectLabels, MultiSelectOption, MultiSelectProps, NativeSelect, NativeSelectOption, NativeSelectProps, NavigationMenu, NavigationMenuItem, NavigationMenuProps, Notification, NotificationProps, NotificationVariant, NumberInput, NumberInputProps, OtpInput, OtpInputProps, OverflowMenu, OverflowMenuItem, OverflowMenuProps, Pagination, PaginationLabels, PaginationProps, PasswordInput, PasswordInputLabels, PasswordInputProps, Popover, PopoverContent, PopoverContentProps, PopoverProps, PopoverTrigger, PopoverTriggerProps, Portal, Progress, ProgressBar, ProgressBarProps, ProgressCircle, ProgressCircleProps, ProgressIndicator, ProgressIndicatorProps, ProgressProps, ProgressSize, ProgressStep, ProgressVariant, Prose, ProseProps, PullToRefresh, PullToRefreshProps, QrCode, QrCodeProps, RadialProgress, RadialProgressProps, RadialProgressSize, RadialProgressVariant, Radio, RadioCard, RadioCardGroup, RadioCardGroupProps, RadioCardProps, RadioGroup, RadioGroupProps, RadioProps, RatingGroup, RatingGroupLabels, RatingGroupProps, RelativeTime, RelativeTimeProps, Resizable, ResizableProps, Responsive, ScrollArea, ScrollAreaProps, Search, SearchProps, SegmentedControl, SegmentedControlOption, SegmentedControlProps, Select, SelectOption, SelectProps, Separator, SeparatorProps, Sheet, SheetProps, ShellHeader, ShellHeaderAction, ShellHeaderBrand, ShellHeaderLabels, ShellHeaderNavItem, ShellHeaderNavLink, ShellHeaderNavMenu, ShellHeaderNavMenuItem, ShellHeaderProps, SideNav, SideNavGroup, SideNavItem, SideNavLinkSubItem, SideNavProps, SideNavSubItem, SideNavTone, Skeleton, SkeletonProps, SkipNavLink, SkipNavLinkProps, SkipNavTarget, SkipNavTargetProps, Slider, SliderProps, SortDirection, SortState, Spacer, SpacerProps, Spinner, SpinnerProps, Stack, StackProps, type StandardSchemaV1, Stat, StatProps, Status, StatusProps, Step, StepState, Steps, StepsProps, StructuredList, StructuredListItem, StructuredListProps, SuspenseBoundary, Swap, SwapMode, SwapProps, SwipeAction, SwipeItem, SwipeItemProps, Switcher, SwitcherEntry, SwitcherLink, SwitcherProps, Tabs, TabsContent, TabsContentProps, TabsList, TabsProps, TabsTrigger, TabsTriggerProps, Tag$1 as Tag, TagProps, TagsInput, TagsInputProps, Text, TextProps, Textarea, TextareaProps, ThemeProvider, type ThemeProviderProps, Tile, TileProps, TimePicker, TimePickerProps, Timeline, TimelineItem, TimelineProps, ToastOptions, ToastProvider, ToastVariant, Toc, TocItem, TocProps, Toggle, ToggleGroup, ToggleGroupItem, ToggleGroupProps, ToggleProps, Toggletip, ToggletipPlacement, ToggletipProps, Tooltip, TooltipProps, TreeNode, TreeView, TreeViewProps, UploaderFile, type UsePopoverOptions, type UsePopoverReturn, type UseTocFromRegionOptions, User, UserProps, VisuallyHidden, VisuallyHiddenProps, createForm, dismissAllToasts, fuzzyMatch, fuzzyScore, setTheme, themePreloadScript, treeViewMessages, useForm, usePopover, useTheme, useToast, useTocFromRegion };
3423
+ export { Accordion, AccordionContent, AccordionItem, AccordionItemProps, AccordionProps, AccordionTrigger, ActionSheet, ActionSheetAction, ActionSheetProps, Alert, AlertDialog, AlertDialogLabels, AlertDialogProps, AlertProps, AppShell, AppShellProps, AspectRatio, AspectRatioProps, AutoGrid, AutoGridProps, Avatar, AvatarGroup, AvatarGroupLabels, AvatarGroupProps, AvatarProps, Badge, BadgeProps, Blockquote, BlockquoteProps, BottomSheet, BottomSheetProps, Breadcrumb, BreadcrumbItem, BreadcrumbProps, Button, ButtonGroup, ButtonGroupProps, ButtonProps, Calendar, CalendarLabels, CalendarProps, Card, CardContent, CardContentProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardTitle, CardTitleProps, Carousel, CarouselLabels, CarouselProps, Center, CenterProps, ChatBubble, ChatBubbleProps, ChatBubbleSide, Checkbox, CheckboxCard, CheckboxCardProps, CheckboxProps, Code, type CodeLang, CodeProps, CodeSnippet, CodeSnippetProps, Collapsible, CollapsibleProps, ColorPicker, ColorPickerLabels, ColorPickerProps, Column, Columns, ColumnsProps, Combobox, ComboboxLabels, ComboboxOption, ComboboxProps, CommandAction, CommandGroup, CommandItem, CommandMenu, CommandMenuProps, CommandPage, CommandScope, CommandStatus, Comparison, ComparisonProps, ContainedList, ContainedListItem, ContainedListItemProps, ContainedListProps, ContextMenu, ContextMenuItem, ContextMenuItemProps, ContextMenuProps, CopyButton, CopyButtonProps, DataList, DataListItem, DataListProps, DataTable, DataTableLabels, DataTableProps, DatePicker, DatePickerLabels, DatePickerProps, DateRange, DateRangePicker, DateRangePickerLabels, DateRangePickerProps, DateRangePreset, Dock, DockItem, DockProps, Drawer, DrawerProps, Dropdown, DropdownItem, DropdownProps, Editable, EditableProps, EmptyState, EmptyStateProps, ErrorBoundary, Fab, FabAction, FabProps, Field, FieldProps, FileUploader, FileUploaderLabels, FileUploaderProps, Filter, FilterOption, FilterProps, FilterVariant, Flex, FlexProps, FocusScope, Form, FormConfig, FormProps, FormStore, FuzzyMatch, Grid, GridAlign, GridItem, GridItemProps, GridProps, Header, HeaderLabels, HeaderLink, HeaderPanel, HeaderPanelLabels, HeaderPanelProps, HeaderProps, Heading, HeadingLevel, HeadingProps, HeadingSize, HoverCard, HoverCardContent, HoverCardContentProps, HoverCardProps, HoverCardTrigger, HoverCardTriggerProps, IconButton, IconButtonProps, Image, ImageProps, Indicator, IndicatorPlacement, IndicatorProps, InlineLoading, InlineLoadingProps, InlineLoadingStatus, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, type InputGroupProps, InputProps, Item, ItemActions, ItemActionsProps, ItemContent, ItemContentProps, ItemDescription, ItemDescriptionProps, ItemMedia, ItemMediaProps, ItemProps, ItemTitle, ItemTitleProps, Join, JoinOrientation, JoinProps, Kbd, KbdProps, Label, LabelProps, Link, LinkProps, List, ListItem, ListItemProps, ListProps, LogLevel, LogLine, LogViewer, LogViewerLabels, LogViewerProps, Menu, MenuButton, MenuButtonItem, MenuButtonProps, MenuItem, MenuItemProps, MenuProps, MenuSeparator, MenuTrigger, MenuTriggerProps, Menubar, MenubarItem, MenubarMenu, MenubarProps, Modal, ModalProps, MultiSelect, MultiSelectLabels, MultiSelectOption, MultiSelectProps, NativeSelect, NativeSelectOption, NativeSelectProps, NavigationMenu, NavigationMenuItem, NavigationMenuProps, Notification, NotificationProps, NotificationVariant, NumberInput, NumberInputProps, OtpInput, OtpInputProps, OverflowMenu, OverflowMenuItem, OverflowMenuProps, Pagination, PaginationLabels, PaginationProps, PasswordInput, PasswordInputLabels, PasswordInputProps, Popover, PopoverContent, PopoverContentProps, PopoverProps, PopoverTrigger, PopoverTriggerProps, Portal, Progress, ProgressBar, ProgressBarProps, ProgressCircle, ProgressCircleProps, ProgressIndicator, ProgressIndicatorProps, ProgressProps, ProgressSize, ProgressStep, ProgressVariant, Prose, ProseProps, PullToRefresh, PullToRefreshProps, QrCode, QrCodeProps, RadialProgress, RadialProgressProps, RadialProgressSize, RadialProgressVariant, Radio, RadioCard, RadioCardGroup, RadioCardGroupProps, RadioCardProps, RadioGroup, RadioGroupProps, RadioProps, RatingGroup, RatingGroupLabels, RatingGroupProps, RelativeTime, RelativeTimeProps, Resizable, ResizableProps, Responsive, ScrollArea, ScrollAreaProps, Search, SearchProps, SegmentedControl, SegmentedControlOption, SegmentedControlProps, Select, SelectOption, SelectProps, Separator, SeparatorProps, Sheet, SheetProps, ShellHeader, ShellHeaderAction, ShellHeaderBrand, ShellHeaderLabels, ShellHeaderNavItem, ShellHeaderNavLink, ShellHeaderNavMenu, ShellHeaderNavMenuItem, ShellHeaderProps, SideNav, SideNavGroup, SideNavItem, SideNavLinkProps, SideNavLinkSubItem, SideNavProps, SideNavSubItem, SideNavTone, Skeleton, SkeletonProps, SkipNavLink, SkipNavLinkProps, SkipNavTarget, SkipNavTargetProps, Slider, SliderProps, SortDirection, SortState, Spacer, SpacerProps, Spinner, SpinnerProps, Stack, StackProps, type StandardSchemaV1, Stat, StatProps, Status, StatusProps, Step, StepState, Steps, StepsProps, StructuredList, StructuredListItem, StructuredListProps, SuspenseBoundary, Swap, SwapMode, SwapProps, SwipeAction, SwipeItem, SwipeItemProps, Switcher, SwitcherEntry, SwitcherLink, SwitcherProps, Tabs, TabsContent, TabsContentProps, TabsList, TabsProps, TabsTrigger, TabsTriggerProps, Tag$1 as Tag, TagProps, TagsInput, TagsInputProps, Text, TextProps, Textarea, TextareaProps, ThemeProvider, type ThemeProviderProps, Tile, TileProps, TimePicker, TimePickerProps, Timeline, TimelineItem, TimelineProps, ToastOptions, ToastProvider, ToastVariant, Toc, TocItem, TocProps, Toggle, ToggleGroup, ToggleGroupItem, ToggleGroupProps, ToggleProps, Toggletip, ToggletipPlacement, ToggletipProps, Tooltip, TooltipProps, TreeNode, TreeView, TreeViewProps, UploaderFile, type UsePopoverOptions, type UsePopoverReturn, type UseTocFromRegionOptions, User, UserProps, VisuallyHidden, VisuallyHiddenProps, createForm, dismissAllToasts, fuzzyMatch, fuzzyScore, setTheme, themePreloadScript, treeViewMessages, useForm, usePopover, useTheme, useToast, useTocFromRegion };
@@ -1 +1 @@
1
- @layer cascivo.component{._columns_yqrkk_2{grid-template-columns:repeat(var(--_cols,2), minmax(0, 1fr));gap:var(--_gap,var(--cascivo-space-4));display:grid;container-type:inline-size}@container (width<=40rem){._columns_yqrkk_2{grid-template-columns:1fr}}}
1
+ @layer cascivo.component{._columns-container_1efih_2{display:grid;container-type:inline-size}._columns_1efih_2{grid-template-columns:repeat(var(--_cols,2), minmax(0, 1fr));gap:var(--_gap,var(--cascivo-space-4));min-inline-size:0;display:grid}@container (width<=40rem){._columns_1efih_2{grid-template-columns:1fr}}}
@@ -4,15 +4,19 @@ import e from "./columns.module.js";
4
4
  import { cn as t } from "@cascivo/core";
5
5
  import { jsx as n } from "react/jsx-runtime";
6
6
  //#region ../layouts/src/columns/columns.tsx
7
- function r({ count: r = 2, gap: i = 4, className: a, style: o, ...s }) {
7
+ function r({ count: r = 2, gap: i = 4, className: a, style: o, children: s, ...c }) {
8
8
  return /* @__PURE__ */ n("div", {
9
- className: t(e.columns, a),
9
+ className: t(e["columns-container"], a),
10
10
  style: {
11
11
  "--_cols": String(r),
12
12
  "--_gap": `var(--cascivo-space-${i})`,
13
13
  ...o
14
14
  },
15
- ...s
15
+ ...c,
16
+ children: /* @__PURE__ */ n("div", {
17
+ className: e.columns,
18
+ children: s
19
+ })
16
20
  });
17
21
  }
18
22
  //#endregion
@@ -1,6 +1,9 @@
1
1
  "use client";
2
2
 
3
3
  import './columns.css';
4
- var e = { columns: "_columns_yqrkk_2" };
4
+ var e = {
5
+ "columns-container": "_columns-container_1efih_2",
6
+ columns: "_columns_1efih_2"
7
+ };
5
8
  //#endregion
6
9
  export { e as default };
@@ -1 +1 @@
1
- @layer cascivo.component{._grid_1awa2_2{grid-template-columns:repeat(var(--_grid-cols,12), minmax(0, 1fr));gap:var(--_grid-gap,var(--cascivo-space-4));align-items:var(--_grid-align,stretch);justify-items:var(--_grid-justify,stretch);display:grid;container-type:inline-size}@container (width<=40rem){._grid_1awa2_2:not([data-responsive]){grid-template-columns:1fr}}@container (width>=30rem){._grid_1awa2_2[data-responsive]{grid-template-columns:repeat(var(--_grid-cols-sm,var(--_grid-cols,12)), minmax(0, 1fr))}}@container (width>=40rem){._grid_1awa2_2[data-responsive]{grid-template-columns:repeat(var(--_grid-cols-md,var(--_grid-cols-sm,var(--_grid-cols,12))), minmax(0, 1fr))}}@container (width>=64rem){._grid_1awa2_2[data-responsive]{grid-template-columns:repeat(var(--_grid-cols-lg,var(--_grid-cols-md,var(--_grid-cols-sm,var(--_grid-cols,12)))), minmax(0, 1fr))}}@container (width>=80rem){._grid_1awa2_2[data-responsive]{grid-template-columns:repeat(var(--_grid-cols-xl,var(--_grid-cols-lg,var(--_grid-cols-md,var(--_grid-cols-sm,var(--_grid-cols,12))))), minmax(0, 1fr))}}._grid-item_1awa2_46{grid-column:span var(--_span,1)}@container (width>=30rem){._grid-item_1awa2_46[data-responsive]{grid-column:span var(--_span-sm,var(--_span,1))}}@container (width>=40rem){._grid-item_1awa2_46[data-responsive]{grid-column:span var(--_span-md,var(--_span-sm,var(--_span,1)))}}@container (width>=64rem){._grid-item_1awa2_46[data-responsive]{grid-column:span var(--_span-lg,var(--_span-md,var(--_span-sm,var(--_span,1))))}}@container (width>=80rem){._grid-item_1awa2_46[data-responsive]{grid-column:span var(--_span-xl,var(--_span-lg,var(--_span-md,var(--_span-sm,var(--_span,1)))))}}}
1
+ @layer cascivo.component{._grid-container_qly9o_5{display:grid;container-type:inline-size}._grid_qly9o_2{grid-template-columns:repeat(var(--_grid-cols,12), minmax(0, 1fr));gap:var(--_grid-gap,var(--cascivo-space-4));align-items:var(--_grid-align,stretch);justify-items:var(--_grid-justify,stretch);min-inline-size:0;display:grid;container-type:inline-size}@container (width<=40rem){._grid_qly9o_2:not([data-responsive]){grid-template-columns:1fr}}@container (width>=30rem){._grid_qly9o_2[data-responsive]{grid-template-columns:repeat(var(--_grid-cols-sm,var(--_grid-cols,12)), minmax(0, 1fr))}}@container (width>=40rem){._grid_qly9o_2[data-responsive]{grid-template-columns:repeat(var(--_grid-cols-md,var(--_grid-cols-sm,var(--_grid-cols,12))), minmax(0, 1fr))}}@container (width>=64rem){._grid_qly9o_2[data-responsive]{grid-template-columns:repeat(var(--_grid-cols-lg,var(--_grid-cols-md,var(--_grid-cols-sm,var(--_grid-cols,12)))), minmax(0, 1fr))}}@container (width>=80rem){._grid_qly9o_2[data-responsive]{grid-template-columns:repeat(var(--_grid-cols-xl,var(--_grid-cols-lg,var(--_grid-cols-md,var(--_grid-cols-sm,var(--_grid-cols,12))))), minmax(0, 1fr))}}._grid-item_qly9o_55{grid-column:span var(--_span,1)}@container (width>=30rem){._grid-item_qly9o_55[data-responsive]{grid-column:span var(--_span-sm,var(--_span,1))}}@container (width>=40rem){._grid-item_qly9o_55[data-responsive]{grid-column:span var(--_span-md,var(--_span-sm,var(--_span,1)))}}@container (width>=64rem){._grid-item_qly9o_55[data-responsive]{grid-column:span var(--_span-lg,var(--_span-md,var(--_span-sm,var(--_span,1))))}}@container (width>=80rem){._grid-item_qly9o_55[data-responsive]{grid-column:span var(--_span-xl,var(--_span-lg,var(--_span-md,var(--_span-sm,var(--_span,1)))))}}}
@@ -25,8 +25,7 @@ function i(e, t) {
25
25
  }
26
26
  function a({ cols: a = 12, gap: o = 4, align: s, justify: c, className: l, style: u, children: d, ...f }) {
27
27
  return /* @__PURE__ */ n("div", {
28
- className: t(e.grid, l),
29
- "data-responsive": r(a) ? "" : void 0,
28
+ className: t(e["grid-container"], l),
30
29
  style: {
31
30
  ...i("--_grid-cols", a),
32
31
  "--_grid-gap": `var(--cascivo-space-${o})`,
@@ -35,7 +34,11 @@ function a({ cols: a = 12, gap: o = 4, align: s, justify: c, className: l, style
35
34
  ...u
36
35
  },
37
36
  ...f,
38
- children: d
37
+ children: /* @__PURE__ */ n("div", {
38
+ className: e.grid,
39
+ "data-responsive": r(a) ? "" : void 0,
40
+ children: d
41
+ })
39
42
  });
40
43
  }
41
44
  function o({ span: a, className: o, style: s, ...c }) {
@@ -2,8 +2,9 @@
2
2
 
3
3
  import './grid.css';
4
4
  var e = {
5
- grid: "_grid_1awa2_2",
6
- "grid-item": "_grid-item_1awa2_46"
5
+ "grid-container": "_grid-container_qly9o_5",
6
+ grid: "_grid_qly9o_2",
7
+ "grid-item": "_grid-item_qly9o_55"
7
8
  };
8
9
  //#endregion
9
10
  export { e as default };
@@ -1,88 +1,92 @@
1
1
  "use client";
2
2
 
3
3
  import e from "./navigation-menu.module.js";
4
- import { DismissableLayer as t, Presence as n, cn as r, useAnchorPosition as i, useRovingFocus as a, useSignal as o, useSignals as s } from "@cascivo/core";
5
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
6
- import { useId as u, useRef as d } from "react";
4
+ import { DismissableLayer as t, Presence as n, cn as r, getLinkComponent as i, useAnchorPosition as a, useRovingFocus as o, useSignal as s, useSignals as c } from "@cascivo/core";
5
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
6
+ import { useId as d, useRef as f } from "react";
7
7
  //#region ../components/src/navigation-menu/navigation-menu.tsx
8
- function f({ items: t, "aria-label": n, orientation: i = "horizontal", className: l }) {
9
- s();
10
- let d = u(), f = o(null), m = a({
8
+ function p({ items: t, "aria-label": n, orientation: i = "horizontal", className: a }) {
9
+ c();
10
+ let u = d(), f = s(null), p = o({
11
11
  orientation: i,
12
12
  loop: !0
13
13
  });
14
- return /* @__PURE__ */ c("nav", {
14
+ return /* @__PURE__ */ l("nav", {
15
15
  "aria-label": n,
16
- className: r(e.nav, l),
16
+ className: r(e.nav, a),
17
17
  "data-orientation": i,
18
- children: /* @__PURE__ */ c("ul", {
18
+ children: /* @__PURE__ */ l("ul", {
19
19
  role: "list",
20
20
  className: e.list,
21
- children: t.map((e, t) => /* @__PURE__ */ c(p, {
21
+ children: t.map((e, t) => /* @__PURE__ */ l(m, {
22
22
  item: e,
23
- baseId: d,
23
+ baseId: u,
24
24
  openId: f,
25
- itemProps: m.getItemProps(t)
25
+ itemProps: p.getItemProps(t)
26
26
  }, e.id))
27
27
  })
28
28
  });
29
29
  }
30
- function p({ item: t, baseId: r, openId: a, itemProps: o }) {
31
- s();
32
- let u = d(null), f = d(null), p = t.content != null, h = a.value === t.id, g = `${r}-panel-${t.id}`, { anchorStyle: _, floatingStyle: v } = i({
33
- anchorRef: u,
34
- floatingRef: f,
30
+ function m({ item: t, baseId: r, openId: o, itemProps: s }) {
31
+ c();
32
+ let d = f(null), p = f(null), m = t.content != null, g = o.value === t.id, _ = `${r}-panel-${t.id}`, { anchorStyle: v, floatingStyle: y } = a({
33
+ anchorRef: d,
34
+ floatingRef: p,
35
35
  placement: "bottom-start",
36
- enabled: h
37
- }), { ref: y, onKeyDown: b, ...x } = o;
38
- return p ? /* @__PURE__ */ l("li", {
36
+ enabled: g
37
+ }), { ref: b, onKeyDown: x, ...S } = s;
38
+ if (!m) {
39
+ let n = i();
40
+ return /* @__PURE__ */ l("li", {
41
+ className: e.item,
42
+ children: /* @__PURE__ */ l(n, {
43
+ ref: (e) => b(e),
44
+ href: t.href,
45
+ className: e.link,
46
+ onKeyDown: x,
47
+ ...S,
48
+ children: t.label
49
+ })
50
+ });
51
+ }
52
+ return /* @__PURE__ */ u("li", {
39
53
  className: e.item,
40
- children: [/* @__PURE__ */ c("button", {
54
+ children: [/* @__PURE__ */ l("button", {
41
55
  ref: (e) => {
42
- u.current = e, y(e);
56
+ d.current = e, b(e);
43
57
  },
44
58
  type: "button",
45
- "aria-expanded": h,
46
- "aria-controls": g,
47
- "data-state": h ? "open" : "closed",
59
+ "aria-expanded": g,
60
+ "aria-controls": _,
61
+ "data-state": g ? "open" : "closed",
48
62
  className: e.trigger,
49
- style: _,
63
+ style: v,
50
64
  onClick: () => {
51
- a.value = h ? null : t.id;
65
+ o.value = g ? null : t.id;
52
66
  },
53
67
  onKeyDown: (e) => {
54
- b(e), !e.defaultPrevented && e.key === "Escape" && (a.value = null);
68
+ x(e), !e.defaultPrevented && e.key === "Escape" && (o.value = null);
55
69
  },
56
- ...x,
70
+ ...S,
57
71
  children: t.label
58
- }), /* @__PURE__ */ c(n, {
59
- present: h,
60
- children: /* @__PURE__ */ c(m, {
61
- panelId: g,
62
- floatingRef: f,
63
- floatingStyle: v,
72
+ }), /* @__PURE__ */ l(n, {
73
+ present: g,
74
+ children: /* @__PURE__ */ l(h, {
75
+ panelId: _,
76
+ floatingRef: p,
77
+ floatingStyle: y,
64
78
  onClose: () => {
65
- a.value = null, u.current?.focus();
79
+ o.value = null, d.current?.focus();
66
80
  },
67
81
  children: t.content
68
82
  })
69
83
  })]
70
- }) : /* @__PURE__ */ c("li", {
71
- className: e.item,
72
- children: /* @__PURE__ */ c("a", {
73
- ref: (e) => y(e),
74
- href: t.href,
75
- className: e.link,
76
- onKeyDown: b,
77
- ...x,
78
- children: t.label
79
- })
80
84
  });
81
85
  }
82
- function m({ panelId: n, floatingRef: r, floatingStyle: i, onClose: a, children: o }) {
83
- return /* @__PURE__ */ c(t, {
86
+ function h({ panelId: n, floatingRef: r, floatingStyle: i, onClose: a, children: o }) {
87
+ return /* @__PURE__ */ l(t, {
84
88
  onDismiss: a,
85
- children: /* @__PURE__ */ c("div", {
89
+ children: /* @__PURE__ */ l("div", {
86
90
  ref: r,
87
91
  id: n,
88
92
  className: e.panel,
@@ -92,4 +96,4 @@ function m({ panelId: n, floatingRef: r, floatingStyle: i, onClose: a, children:
92
96
  });
93
97
  }
94
98
  //#endregion
95
- export { f as NavigationMenu };
99
+ export { p as NavigationMenu };
@@ -43,7 +43,7 @@ function _({ date: c, sync: l = !0, now: u, format: d, className: f, ...p }) {
43
43
  i();
44
44
  let m = g(c), _ = u !== void 0, v = n(u ?? Date.now());
45
45
  _ && (v.value = u), r(() => {
46
- if (!l || _ || typeof window > "u") return;
46
+ if (_ || typeof window > "u" || (v.value = Date.now(), !l)) return;
47
47
  let { nextUpdateMs: e } = h(m - v.value), t = window.setInterval(() => {
48
48
  v.value = Date.now();
49
49
  }, e);
@@ -57,6 +57,7 @@ function _({ date: c, sync: l = !0, now: u, format: d, className: f, ...p }) {
57
57
  timeStyle: "short"
58
58
  }),
59
59
  className: t(e.relativeTime, f),
60
+ suppressHydrationWarning: !0,
60
61
  ...p,
61
62
  children: x
62
63
  });
@@ -1 +1 @@
1
- @layer cascivo.component{._root_22xq7_2{align-items:center;inline-size:100%;display:inline-flex;position:relative}._root_22xq7_2[data-size=sm]{--_search-height:2rem;--_search-font:var(--cascivo-text-sm);--_search-px:var(--cascivo-space-3)}._root_22xq7_2[data-size=md]{--_search-height:2.5rem;--_search-font:var(--cascivo-text-sm);--_search-px:var(--cascivo-space-4)}._root_22xq7_2[data-size=lg]{--_search-height:3rem;--_search-font:var(--cascivo-text-base);--_search-px:var(--cascivo-space-4)}._label_22xq7_28{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}._icon_22xq7_41{color:var(--cascivo-color-text-muted);pointer-events:none;align-items:center;display:inline-flex;position:absolute;inset-inline-start:var(--_search-px,var(--cascivo-space-4))}._input_22xq7_50{inline-size:100%;block-size:var(--_search-height,2.5rem);font-family:var(--cascivo-font-sans);font-size:var(--_search-font,var(--cascivo-text-sm));color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface);border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-field);transition:border-color var(--cascivo-duration-150) var(--cascivo-ease-out), box-shadow var(--cascivo-duration-150) var(--cascivo-ease-out);outline:none;padding-inline-start:calc(var(--_search-px,var(--cascivo-space-4)) + 1rem + var(--cascivo-space-2));padding-inline-end:calc(var(--_search-px,var(--cascivo-space-4)) + 1.5rem)}._input_22xq7_50::-webkit-search-cancel-button{appearance:none;display:none}._input_22xq7_50::-webkit-search-decoration{appearance:none;display:none}._input_22xq7_50::placeholder{color:var(--cascivo-color-text-muted)}._input_22xq7_50:hover:not(:disabled):not(:focus){border-color:var(--cascivo-color-border-strong)}._input_22xq7_50:focus{border-color:var(--cascivo-color-accent);box-shadow:var(--cascivo-focus-ring)}._input_22xq7_50:disabled{opacity:.5;cursor:not-allowed;background-color:var(--cascivo-color-bg-subtle)}._clear_22xq7_96{block-size:1.5rem;inline-size:1.5rem;font-size:var(--cascivo-text-sm);line-height:var(--cascivo-leading-none);color:var(--cascivo-color-text-muted);border-radius:var(--cascivo-radius-control);cursor:pointer;transition:background-color var(--cascivo-duration-150) var(--cascivo-ease-out), color var(--cascivo-duration-150) var(--cascivo-ease-out);background-color:#0000;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;inset-inline-end:var(--cascivo-space-2)}._clear_22xq7_96:hover:not(:disabled){color:var(--cascivo-color-text);background-color:var(--cascivo-color-bg-subtle)}._clear_22xq7_96:focus-visible{box-shadow:var(--cascivo-focus-ring);outline:none}._clear_22xq7_96:disabled{cursor:not-allowed}}
1
+ @layer cascivo.component{._root_1m8s8_2{inline-size:var(--cascivo-search-width,100%);align-items:center;display:inline-flex;position:relative}._root_1m8s8_2[data-size=sm]{--_search-height:2rem;--_search-font:var(--cascivo-text-sm);--_search-px:var(--cascivo-space-3)}._root_1m8s8_2[data-size=md]{--_search-height:2.5rem;--_search-font:var(--cascivo-text-sm);--_search-px:var(--cascivo-space-4)}._root_1m8s8_2[data-size=lg]{--_search-height:3rem;--_search-font:var(--cascivo-text-base);--_search-px:var(--cascivo-space-4)}._label_1m8s8_31{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}._icon_1m8s8_44{color:var(--cascivo-color-text-muted);pointer-events:none;align-items:center;display:inline-flex;position:absolute;inset-inline-start:var(--_search-px,var(--cascivo-space-4))}._input_1m8s8_53{inline-size:100%;block-size:var(--_search-height,2.5rem);font-family:var(--cascivo-font-sans);font-size:var(--_search-font,var(--cascivo-text-sm));color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface);border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-field);transition:border-color var(--cascivo-duration-150) var(--cascivo-ease-out), box-shadow var(--cascivo-duration-150) var(--cascivo-ease-out);outline:none;padding-inline-start:calc(var(--_search-px,var(--cascivo-space-4)) + 1rem + var(--cascivo-space-2));padding-inline-end:calc(var(--_search-px,var(--cascivo-space-4)) + 1.5rem)}._input_1m8s8_53::-webkit-search-cancel-button{appearance:none;display:none}._input_1m8s8_53::-webkit-search-decoration{appearance:none;display:none}._input_1m8s8_53::placeholder{color:var(--cascivo-color-text-muted)}._input_1m8s8_53:hover:not(:disabled):not(:focus){border-color:var(--cascivo-color-border-strong)}._input_1m8s8_53:focus{border-color:var(--cascivo-color-accent);box-shadow:var(--cascivo-focus-ring)}._input_1m8s8_53:disabled{opacity:.5;cursor:not-allowed;background-color:var(--cascivo-color-bg-subtle)}._clear_1m8s8_99{block-size:1.5rem;inline-size:1.5rem;font-size:var(--cascivo-text-sm);line-height:var(--cascivo-leading-none);color:var(--cascivo-color-text-muted);border-radius:var(--cascivo-radius-control);cursor:pointer;transition:background-color var(--cascivo-duration-150) var(--cascivo-ease-out), color var(--cascivo-duration-150) var(--cascivo-ease-out);background-color:#0000;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;inset-inline-end:var(--cascivo-space-2)}._clear_1m8s8_99:hover:not(:disabled){color:var(--cascivo-color-text);background-color:var(--cascivo-color-bg-subtle)}._clear_1m8s8_99:focus-visible{box-shadow:var(--cascivo-focus-ring);outline:none}._clear_1m8s8_99:disabled{cursor:not-allowed}}