@nexub/patterns 7.1.0 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
  import {
3
3
  NotificationItem
4
- } from "./chunk-RQARH2AX.js";
4
+ } from "./chunk-QC4TMG73.js";
5
5
 
6
6
  // src/components/NotificationCenter/NotificationCenter.tsx
7
7
  import * as React from "react";
8
- import { Button, IconButton, Popover, cn, useNexubMessages } from "@nexub/react";
8
+ import { Button, IconButton, Popover, cn, safeHref, useNexubMessages } from "@nexub/react";
9
9
  import { Bell } from "@nexub/icons";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
11
  function NotificationCenter({
@@ -53,7 +53,7 @@ function NotificationCenter({
53
53
  timestamp: n.timestamp,
54
54
  read: n.read,
55
55
  icon: n.icon,
56
- href: n.href,
56
+ href: safeHref(n.href),
57
57
  onSelect: onOpen ? () => onOpen(n.id) : void 0,
58
58
  onDismiss: onDismiss ? () => onDismiss(n.id) : void 0
59
59
  }
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  AppLauncher
4
- } from "./chunk-BDCVWAH7.js";
4
+ } from "./chunk-TUJJWHQT.js";
5
5
 
6
6
  // src/components/AppHeader/AppHeader.tsx
7
7
  import * as React from "react";
@@ -15,7 +15,8 @@ import {
15
15
  TopNav,
16
16
  cn,
17
17
  useNexubMessages,
18
- useTheme
18
+ useTheme,
19
+ safeHref
19
20
  } from "@nexub/react";
20
21
  import { Building2, ChevronDown, Moon, Search, Sun } from "@nexub/icons";
21
22
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -220,7 +221,7 @@ function AccountMenu({
220
221
  setOpen(false);
221
222
  });
222
223
  };
223
- const link = (href, label) => /* @__PURE__ */ jsx(DropdownMenu.Item, { asChild: true, children: /* @__PURE__ */ jsx("a", { href, children: label }) });
224
+ const link = (href, label) => /* @__PURE__ */ jsx(DropdownMenu.Item, { asChild: true, children: /* @__PURE__ */ jsx("a", { href: safeHref(href), children: label }) });
224
225
  const legal = (privacyHref || termsHref) && /* @__PURE__ */ jsxs(Fragment, { children: [
225
226
  privacyHref && link(privacyHref, t.privacyPolicy),
226
227
  termsHref && link(termsHref, t.termsOfService)
@@ -297,7 +298,7 @@ var AppHeader = React.forwardRef(
297
298
  /* @__PURE__ */ jsx(
298
299
  "a",
299
300
  {
300
- href: homeHref,
301
+ href: safeHref(homeHref),
301
302
  onClick: (e) => {
302
303
  if (onNavigate && isPlainClick(e)) {
303
304
  e.preventDefault();
@@ -6,7 +6,7 @@ import {
6
6
 
7
7
  // src/components/SettingsPage/SettingsPage.tsx
8
8
  import * as React from "react";
9
- import { cn } from "@nexub/react";
9
+ import { cn, safeHref } from "@nexub/react";
10
10
  import { ChevronRight } from "@nexub/icons";
11
11
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
12
12
  function Row({ item }) {
@@ -30,7 +30,7 @@ function Row({ item }) {
30
30
  ] });
31
31
  const row = "flex min-h-[56px] w-full items-center gap-3 px-4 py-3";
32
32
  if (item.href)
33
- return /* @__PURE__ */ jsx("a", { href: item.href, onClick: item.onSelect && ((e) => {
33
+ return /* @__PURE__ */ jsx("a", { href: safeHref(item.href), onClick: item.onSelect && ((e) => {
34
34
  e.preventDefault();
35
35
  item.onSelect?.();
36
36
  }), className: cn(row, "nx-state-layer"), children: content });
@@ -2,7 +2,7 @@
2
2
 
3
3
  // src/components/PlanCard/PlanCard.tsx
4
4
  import * as React from "react";
5
- import { cn, Badge, Button } from "@nexub/react";
5
+ import { cn, Badge, Button, safeHref } from "@nexub/react";
6
6
  import { Check } from "@nexub/icons";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  var PlanCard = React.forwardRef(
@@ -57,7 +57,7 @@ var PlanCard = React.forwardRef(
57
57
  className: "mt-auto w-full",
58
58
  onClick: onSelect,
59
59
  asChild: Boolean(ctaHref),
60
- children: ctaHref ? /* @__PURE__ */ jsx("a", { href: ctaHref, children: cta }) : cta
60
+ children: ctaHref ? /* @__PURE__ */ jsx("a", { href: safeHref(ctaHref), children: cta }) : cta
61
61
  }
62
62
  )
63
63
  ]
@@ -2,7 +2,7 @@
2
2
 
3
3
  // src/components/SettingsLayout/SettingsLayout.tsx
4
4
  import * as React from "react";
5
- import { Card, IconButton, Sheet, Sidebar, TopNav, cn } from "@nexub/react";
5
+ import { Card, IconButton, Sheet, Sidebar, TopNav, cn, safeHref } from "@nexub/react";
6
6
  import { Menu } from "@nexub/icons";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  var isPlainClick = (e) => e.button === 0 && !e.metaKey && !e.ctrlKey && !e.shiftKey && !e.altKey;
@@ -18,7 +18,7 @@ function SectionNav({
18
18
  /* @__PURE__ */ jsx(Sidebar.Group, { children: items.map((item) => /* @__PURE__ */ jsx(
19
19
  Sidebar.Item,
20
20
  {
21
- href: item.href,
21
+ href: safeHref(item.href),
22
22
  icon: item.icon,
23
23
  active: item.id === activeId,
24
24
  onClick: (e) => onChoose(e, item),
@@ -2,7 +2,7 @@
2
2
 
3
3
  // src/components/NotificationItem/NotificationItem.tsx
4
4
  import * as React from "react";
5
- import { cn, useNexubMessages } from "@nexub/react";
5
+ import { cn, safeHref, useNexubMessages } from "@nexub/react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  var stretched = "outline-none after:absolute after:inset-0 after:rounded-shape-container focus-visible:after:outline focus-visible:after:outline-2 focus-visible:after:outline-[var(--color-primary)]";
8
8
  var NotificationItem = React.forwardRef(
@@ -29,7 +29,7 @@ var NotificationItem = React.forwardRef(
29
29
  ),
30
30
  icon && /* @__PURE__ */ jsx("div", { className: "shrink-0 mt-0.5", children: icon }),
31
31
  /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
32
- /* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-[var(--color-on-surface)] truncate", children: href ? /* @__PURE__ */ jsx("a", { href, onClick: onSelect, className: stretched, children: title }) : onSelect ? /* @__PURE__ */ jsx("button", { type: "button", onClick: onSelect, className: cn("text-start", stretched), children: title }) : title }),
32
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-[var(--color-on-surface)] truncate", children: href ? /* @__PURE__ */ jsx("a", { href: safeHref(href), onClick: onSelect, className: stretched, children: title }) : onSelect ? /* @__PURE__ */ jsx("button", { type: "button", onClick: onSelect, className: cn("text-start", stretched), children: title }) : title }),
33
33
  description && /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--color-on-surface-muted)] mt-0.5 line-clamp-2", children: description }),
34
34
  timestamp && /* @__PURE__ */ jsx("time", { className: "text-xs text-[var(--color-on-surface-muted)] mt-1 block", children: timestamp })
35
35
  ] }),
@@ -2,7 +2,7 @@
2
2
 
3
3
  // src/components/AppLauncher/AppLauncher.tsx
4
4
  import * as React from "react";
5
- import { Avatar, IconButton, Popover, cn } from "@nexub/react";
5
+ import { Avatar, IconButton, Popover, cn, safeHref, safeSrc } from "@nexub/react";
6
6
  import { Apps } from "@nexub/icons";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  var COLUMNS = 3;
@@ -26,7 +26,7 @@ function AppIcon({ app }) {
26
26
  return /* @__PURE__ */ jsx(
27
27
  "img",
28
28
  {
29
- src: app.icon,
29
+ src: safeSrc(app.icon),
30
30
  alt: "",
31
31
  width: 40,
32
32
  height: 40,
@@ -94,7 +94,7 @@ var AppLauncher = React.forwardRef(
94
94
  /* @__PURE__ */ jsx("ul", { className: "grid grid-cols-3 gap-1", "aria-label": group, children: items.map((app, n) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
95
95
  "a",
96
96
  {
97
- href: app.href,
97
+ href: safeHref(app.href),
98
98
  "aria-current": app.current ? "page" : void 0,
99
99
  "data-row": firstRow + Math.floor(n / COLUMNS),
100
100
  "data-col": n % COLUMNS,
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import {
3
3
  AppHeader
4
- } from "../../chunk-2WKGBINE.js";
5
- import "../../chunk-BDCVWAH7.js";
4
+ } from "../../chunk-BDT2EEOK.js";
5
+ import "../../chunk-TUJJWHQT.js";
6
6
  export {
7
7
  AppHeader
8
8
  };
@@ -2,7 +2,7 @@
2
2
  import "../../chunk-VYMTTYPR.js";
3
3
  import {
4
4
  AppLauncher
5
- } from "../../chunk-BDCVWAH7.js";
5
+ } from "../../chunk-TUJJWHQT.js";
6
6
  export {
7
7
  AppLauncher
8
8
  };
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import {
3
3
  NotificationCenter
4
- } from "../../chunk-464UFQKG.js";
5
- import "../../chunk-RQARH2AX.js";
4
+ } from "../../chunk-4MD5VRPS.js";
5
+ import "../../chunk-QC4TMG73.js";
6
6
  export {
7
7
  NotificationCenter
8
8
  };
@@ -2,7 +2,7 @@
2
2
  import "../../chunk-EQQOVRRM.js";
3
3
  import {
4
4
  NotificationItem
5
- } from "../../chunk-RQARH2AX.js";
5
+ } from "../../chunk-QC4TMG73.js";
6
6
  export {
7
7
  NotificationItem
8
8
  };
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  PlanCard
4
- } from "../../chunk-LKN2CK6M.js";
4
+ } from "../../chunk-DI4EBNP7.js";
5
5
  export {
6
6
  PlanCard
7
7
  };
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  SettingsLayout,
4
4
  SettingsRow
5
- } from "../../chunk-Z4FCC42C.js";
5
+ } from "../../chunk-KJ4QGNXD.js";
6
6
  export {
7
7
  SettingsLayout,
8
8
  SettingsRow
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  SettingsPage
4
- } from "../../chunk-27N33TGN.js";
4
+ } from "../../chunk-CSC2TFWA.js";
5
5
  import "../../chunk-7QCJC2DV.js";
6
6
  export {
7
7
  SettingsPage
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  import {
3
3
  SignInPage
4
- } from "../../chunk-UNQD426H.js";
5
- import "../../chunk-HMJRSNJD.js";
4
+ } from "../../chunk-YDOVEHZK.js";
6
5
  import "../../chunk-7QCJC2DV.js";
6
+ import "../../chunk-HMJRSNJD.js";
7
7
  export {
8
8
  SignInPage
9
9
  };
package/dist/index.js CHANGED
@@ -12,20 +12,23 @@ import {
12
12
  } from "./chunk-M3OHX4F4.js";
13
13
  import {
14
14
  PlanCard
15
- } from "./chunk-LKN2CK6M.js";
15
+ } from "./chunk-DI4EBNP7.js";
16
16
  import {
17
17
  SettingsLayout,
18
18
  SettingsRow
19
- } from "./chunk-Z4FCC42C.js";
19
+ } from "./chunk-KJ4QGNXD.js";
20
20
  import {
21
21
  SettingsPage
22
- } from "./chunk-27N33TGN.js";
22
+ } from "./chunk-CSC2TFWA.js";
23
23
  import {
24
24
  SettingsSection
25
25
  } from "./chunk-U3FT7XAU.js";
26
26
  import {
27
27
  SignInPage
28
- } from "./chunk-UNQD426H.js";
28
+ } from "./chunk-YDOVEHZK.js";
29
+ import {
30
+ CheckoutPage
31
+ } from "./chunk-CZR6NZDH.js";
29
32
  import {
30
33
  DashboardPage
31
34
  } from "./chunk-33Z2ZPO7.js";
@@ -39,9 +42,6 @@ import {
39
42
  import {
40
43
  FilterBar
41
44
  } from "./chunk-SNONOBAE.js";
42
- import {
43
- CheckoutPage
44
- } from "./chunk-CZR6NZDH.js";
45
45
  import {
46
46
  InfoList
47
47
  } from "./chunk-WPNT5JOU.js";
@@ -50,10 +50,10 @@ import {
50
50
  } from "./chunk-5JU6HUVJ.js";
51
51
  import {
52
52
  NotificationCenter
53
- } from "./chunk-464UFQKG.js";
53
+ } from "./chunk-4MD5VRPS.js";
54
54
  import {
55
55
  NotificationItem
56
- } from "./chunk-RQARH2AX.js";
56
+ } from "./chunk-QC4TMG73.js";
57
57
  import {
58
58
  ActivityFeed
59
59
  } from "./chunk-GHOBXWUA.js";
@@ -64,14 +64,11 @@ import {
64
64
  } from "./chunk-OC4XY3US.js";
65
65
  import {
66
66
  AppHeader
67
- } from "./chunk-2WKGBINE.js";
67
+ } from "./chunk-BDT2EEOK.js";
68
68
  import "./chunk-VYMTTYPR.js";
69
69
  import {
70
70
  AppLauncher
71
- } from "./chunk-BDCVWAH7.js";
72
- import {
73
- AuthCard
74
- } from "./chunk-HMJRSNJD.js";
71
+ } from "./chunk-TUJJWHQT.js";
75
72
  import {
76
73
  BentoGrid,
77
74
  BentoTile
@@ -88,6 +85,9 @@ import {
88
85
  groupByDay,
89
86
  usePageMessages
90
87
  } from "./chunk-7QCJC2DV.js";
88
+ import {
89
+ AuthCard
90
+ } from "./chunk-HMJRSNJD.js";
91
91
  export {
92
92
  ActivityFeed,
93
93
  ActivityPage,
package/dist/styles.css CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--spacing:.25rem;--container-3xl:48rem;--container-6xl:72rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base,components;@layer utilities{.\[container-type\:inline-size\]{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-x-0{inset-inline:var(--spacing-0)}.-end-0\.5{inset-inline-end:calc(var(--spacing) * -.5)}.-top-0\.5{top:calc(var(--spacing) * -.5)}.-top-3{top:calc(var(--spacing-3) * -1)}.top-0{top:var(--spacing-0)}.top-\[var\(--app-header-height\,64px\)\]{top:var(--app-header-height,64px)}.bottom-4{bottom:var(--spacing-4)}.left-1\/2{left:50%}.z-\[1\]{z-index:1}.row-span-2{grid-row:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:var(--spacing-0)}.mx-auto{margin-inline:auto}.-ms-2{margin-inline-start:calc(var(--spacing-2) * -1)}.ms-1{margin-inline-start:var(--spacing-1)}.ms-auto{margin-inline-start:auto}.me-1{margin-inline-end:var(--spacing-1)}.me-2{margin-inline-end:var(--spacing-2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing-1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:var(--spacing-2)}.mt-auto{margin-top:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:var(--spacing-2)}.h-4{height:var(--spacing-4)}.h-9{height:var(--spacing-9)}.h-10{height:var(--spacing-10)}.h-20{height:var(--spacing-20)}.h-\[calc\(100vh-var\(--app-header-height\,64px\)\)\]{height:calc(100vh - var(--app-header-height,64px))}.h-\[var\(--app-header-height\,64px\)\]{height:var(--app-header-height,64px)}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-\[min\(28rem\,70vh\)\]{max-height:min(28rem,70vh)}.min-h-0{min-height:var(--spacing-0)}.min-h-\[56px\]{min-height:56px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:var(--spacing-2)}.w-10{width:var(--spacing-10)}.w-20{width:var(--spacing-20)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[6rem\]{max-width:6rem}.max-w-\[400px\]{max-width:400px}.max-w-\[480px\]{max-width:480px}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-xl{max-width:36rem}.min-w-0{min-width:var(--spacing-0)}.min-w-4{min-width:var(--spacing-4)}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.list-none{list-style-type:none}.grid-flow-row-dense{grid-auto-flow:dense}.auto-rows-\[minmax\(10rem\,auto\)\]{grid-auto-rows:minmax(10rem,auto)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing-1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-\[var\(--color-outline-variant\)\]>:not(:last-child)){border-color:var(--color-outline-variant)}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[8px\]{border-radius:8px}.rounded-\[12px\]{border-radius:12px}.rounded-full{border-radius:var(--radius-full)}.rounded-shape-container{border-radius:var(--shape-container)}.rounded-shape-control{border-radius:var(--shape-control)}.rounded-shape-field{border-radius:var(--shape-field)}.rounded-shape-min{border-radius:var(--shape-min)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-s-4{border-inline-start-style:var(--tw-border-style);border-inline-start-width:4px}.border-e-0{border-inline-end-style:var(--tw-border-style);border-inline-end-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\[color-mix\(in_srgb\,var\(--color-outline-variant\)_60\%\,transparent\)\]{border-color:var(--color-outline-variant)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--color-outline-variant\)_60\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-outline-variant) 60%,transparent)}}.border-\[var\(--color-outline-variant\)\]{border-color:var(--color-outline-variant)}.border-\[var\(--color-primary\)\]{border-color:var(--color-primary)}.border-s-\[var\(--color-error\)\]{border-inline-start-color:var(--color-error)}.bg-\[var\(--color-error\)\]{background-color:var(--color-error)}.bg-\[var\(--color-error-container\)\]{background-color:var(--color-error-container)}.bg-\[var\(--color-primary\)\]{background-color:var(--color-primary)}.bg-\[var\(--color-success-container\)\]{background-color:var(--color-success-container)}.bg-\[var\(--color-surface\)\]{background-color:var(--color-surface)}.bg-\[var\(--color-surface-container-low\)\]{background-color:var(--color-surface-container-low)}.bg-\[var\(--color-surface-elevated\)\]{background-color:var(--color-surface-elevated)}.bg-current{background-color:currentColor}.\[mask-image\:linear-gradient\(to_bottom\,black_calc\(100\%-24px\)\,transparent\)\]{-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),#0000);mask-image:linear-gradient(#000 calc(100% - 24px),#0000)}.object-cover{object-fit:cover}.p-0{padding:var(--spacing-0)}.p-1{padding:var(--spacing-1)}.p-2{padding:var(--spacing-2)}.p-3{padding:var(--spacing-3)}.p-4{padding:var(--spacing-4)}.p-6{padding:var(--spacing-6)}.px-0{padding-inline:var(--spacing-0)}.px-1{padding-inline:var(--spacing-1)}.px-2{padding-inline:var(--spacing-2)}.px-3{padding-inline:var(--spacing-3)}.px-4{padding-inline:var(--spacing-4)}.px-5{padding-inline:var(--spacing-5)}.py-1{padding-block:var(--spacing-1)}.py-2{padding-block:var(--spacing-2)}.py-3{padding-block:var(--spacing-3)}.py-4{padding-block:var(--spacing-4)}.py-6{padding-block:var(--spacing-6)}.py-8{padding-block:var(--spacing-8)}.py-10{padding-block:var(--spacing-10)}.py-16{padding-block:var(--spacing-16)}.ps-3{padding-inline-start:var(--spacing-3)}.pe-2{padding-inline-end:var(--spacing-2)}.pt-4{padding-top:var(--spacing-4)}.pt-5{padding-top:var(--spacing-5)}.pt-6{padding-top:var(--spacing-6)}.pb-2{padding-bottom:var(--spacing-2)}.pb-4{padding-bottom:var(--spacing-4)}.pb-8{padding-bottom:var(--spacing-8)}.text-center{text-align:center}.text-end{text-align:end}.text-start{text-align:start}.text-body-md{font-size:var(--type-body-md-size);line-height:var(--tw-leading,var(--type-body-md-lineHeight));letter-spacing:var(--tw-tracking,var(--type-body-md-letterSpacing));font-weight:var(--tw-font-weight,var(--type-body-md-weight))}.text-body-sm{font-size:var(--type-body-sm-size);line-height:var(--tw-leading,var(--type-body-sm-lineHeight));letter-spacing:var(--tw-tracking,var(--type-body-sm-letterSpacing));font-weight:var(--tw-font-weight,var(--type-body-sm-weight))}.text-headline-sm{font-size:var(--type-headline-sm-size);line-height:var(--tw-leading,var(--type-headline-sm-lineHeight));letter-spacing:var(--tw-tracking,var(--type-headline-sm-letterSpacing));font-weight:var(--tw-font-weight,var(--type-headline-sm-weight))}.text-label-lg{font-size:var(--type-label-lg-size);line-height:var(--tw-leading,var(--type-label-lg-lineHeight));letter-spacing:var(--tw-tracking,var(--type-label-lg-letterSpacing));font-weight:var(--tw-font-weight,var(--type-label-lg-weight))}.text-label-md{font-size:var(--type-label-md-size);line-height:var(--tw-leading,var(--type-label-md-lineHeight));letter-spacing:var(--tw-tracking,var(--type-label-md-letterSpacing));font-weight:var(--tw-font-weight,var(--type-label-md-weight))}.text-label-sm{font-size:var(--type-label-sm-size);line-height:var(--tw-leading,var(--type-label-sm-lineHeight));letter-spacing:var(--tw-tracking,var(--type-label-sm-letterSpacing));font-weight:var(--tw-font-weight,var(--type-label-sm-weight))}.text-title-lg{font-size:var(--type-title-lg-size);line-height:var(--tw-leading,var(--type-title-lg-lineHeight));letter-spacing:var(--tw-tracking,var(--type-title-lg-letterSpacing));font-weight:var(--tw-font-weight,var(--type-title-lg-weight))}.text-title-md{font-size:var(--type-title-md-size);line-height:var(--tw-leading,var(--type-title-md-lineHeight));letter-spacing:var(--tw-tracking,var(--type-title-md-letterSpacing));font-weight:var(--tw-font-weight,var(--type-title-md-weight))}.text-title-sm{font-size:var(--type-title-sm-size);line-height:var(--tw-leading,var(--type-title-sm-lineHeight));letter-spacing:var(--tw-tracking,var(--type-title-sm-letterSpacing));font-weight:var(--tw-font-weight,var(--type-title-sm-weight))}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,2rem)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,2.25rem)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,1.5rem)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,1.25rem)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,1rem)}.text-\[10px\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.text-\[var\(--color-error\)\]{color:var(--color-error)}.text-\[var\(--color-on-error\)\]{color:var(--color-on-error)}.text-\[var\(--color-on-error-container\)\]{color:var(--color-on-error-container)}.text-\[var\(--color-on-surface\)\]{color:var(--color-on-surface)}.text-\[var\(--color-on-surface-muted\)\]{color:var(--color-on-surface-muted)}.text-\[var\(--color-on-surface-variant\)\]{color:var(--color-on-surface-variant)}.text-\[var\(--color-success\)\]{color:var(--color-success)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-\[0\.2em\]{text-underline-offset:.2em}.shadow-elevation-1{--tw-shadow:var(--elevation-1);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-elevation-2{--tw-shadow:var(--elevation-2);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.\[-webkit-mask-image\:linear-gradient\(to_bottom\,black_calc\(100\%-24px\)\,transparent\)\]{-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),#0000)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:var(--spacing-0)}.after\:rounded-shape-container:after{content:var(--tw-content);border-radius:var(--shape-container)}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}@media (hover:hover){.hover\:bg-\[color-mix\(in_srgb\,var\(--color-on-surface\)_8\%\,transparent\)\]:hover{background-color:var(--color-on-surface)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_srgb\,var\(--color-on-surface\)_8\%\,transparent\)\]:hover{background-color:color-mix(in srgb,var(--color-on-surface) 8%,transparent)}}.hover\:text-\[var\(--color-on-surface\)\]:hover{color:var(--color-on-surface)}}.focus-visible\:after\:outline:focus-visible:after{content:var(--tw-content);outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:after\:outline-2:focus-visible:after{content:var(--tw-content);outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:after\:outline-\[var\(--color-primary\)\]:focus-visible:after{content:var(--tw-content);outline-color:var(--color-primary)}@media (min-width:40rem){.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:w-1\/3{width:33.3333%}.sm\:w-64{width:var(--spacing-64)}.sm\:max-w-\[8rem\]{max-width:8rem}.sm\:shrink{flex-shrink:1}.sm\:shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:gap-1{gap:var(--spacing-1)}.sm\:gap-2{gap:var(--spacing-2)}.sm\:gap-4{gap:var(--spacing-4)}.sm\:px-4{padding-inline:var(--spacing-4)}.sm\:px-6{padding-inline:var(--spacing-6)}}@media (min-width:48rem){.md\:ms-0{margin-inline-start:var(--spacing-0)}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/3{width:33.3333%}.md\:min-w-0{min-width:var(--spacing-0)}.md\:flex-1{flex:1}.md\:flex-row{flex-direction:row}.md\:justify-center{justify-content:center}.md\:gap-8{gap:var(--spacing-8)}.md\:px-2{padding-inline:var(--spacing-2)}.md\:px-8{padding-inline:var(--spacing-8)}.md\:py-10{padding-block:var(--spacing-10)}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:px-4{padding-inline:var(--spacing-4)}.lg\:py-10{padding-block:var(--spacing-10)}}@media (min-width:80rem){.xl\:max-w-\[12rem\]{max-width:12rem}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.rtl\:-scale-x-100:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-scale-x:calc(100% * -1);scale:var(--tw-scale-x) var(--tw-scale-y)}@container (min-width:480px){.\[\@container\(min-width\:480px\)\]\:col-span-2{grid-column:span 2/span 2}.\[\@container\(min-width\:480px\)\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width:720px){.\[\@container\(min-width\:720px\)\]\:flex{display:flex}.\[\@container\(min-width\:720px\)\]\:hidden{display:none}.\[\@container\(min-width\:720px\)\]\:w-72{width:calc(var(--spacing) * 72)}.\[\@container\(min-width\:720px\)\]\:w-80{width:calc(var(--spacing) * 80)}.\[\@container\(min-width\:720px\)\]\:w-\[400px\]{width:400px}.\[\@container\(min-width\:720px\)\]\:border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.\[\@container\(min-width\:720px\)\]\:border-\[var\(--color-outline-variant\)\]{border-color:var(--color-outline-variant)}}@container (min-width:768px){.\[\@container\(min-width\:768px\)\]\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--spacing:.25rem;--container-3xl:48rem;--container-6xl:72rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em}}@layer base,components;@layer utilities{.\[container-type\:inline-size\]{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-x-0{inset-inline:var(--spacing-0)}.-end-0\.5{inset-inline-end:calc(var(--spacing) * -.5)}.-top-0\.5{top:calc(var(--spacing) * -.5)}.-top-3{top:calc(var(--spacing-3) * -1)}.top-0{top:var(--spacing-0)}.top-\[var\(--app-header-height\,64px\)\]{top:var(--app-header-height,64px)}.bottom-4{bottom:var(--spacing-4)}.left-1\/2{left:50%}.z-\[1\]{z-index:1}.row-span-2{grid-row:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:var(--spacing-0)}.mx-auto{margin-inline:auto}.-ms-2{margin-inline-start:calc(var(--spacing-2) * -1)}.ms-1{margin-inline-start:var(--spacing-1)}.ms-auto{margin-inline-start:auto}.me-1{margin-inline-end:var(--spacing-1)}.me-2{margin-inline-end:var(--spacing-2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing-1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:var(--spacing-2)}.mt-auto{margin-top:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:var(--spacing-2)}.h-4{height:var(--spacing-4)}.h-9{height:var(--spacing-9)}.h-10{height:var(--spacing-10)}.h-20{height:var(--spacing-20)}.h-\[calc\(100vh-var\(--app-header-height\,64px\)\)\]{height:calc(100vh - var(--app-header-height,64px))}.h-\[var\(--app-header-height\,64px\)\]{height:var(--app-header-height,64px)}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-\[min\(28rem\,70vh\)\]{max-height:min(28rem,70vh)}.min-h-0{min-height:var(--spacing-0)}.min-h-\[56px\]{min-height:56px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:var(--spacing-2)}.w-10{width:var(--spacing-10)}.w-20{width:var(--spacing-20)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[6rem\]{max-width:6rem}.max-w-\[400px\]{max-width:400px}.max-w-\[480px\]{max-width:480px}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-xl{max-width:36rem}.min-w-0{min-width:var(--spacing-0)}.min-w-4{min-width:var(--spacing-4)}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.list-none{list-style-type:none}.grid-flow-row-dense{grid-auto-flow:dense}.auto-rows-\[minmax\(10rem\,auto\)\]{grid-auto-rows:minmax(10rem,auto)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing-1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-\[var\(--color-outline-variant\)\]>:not(:last-child)){border-color:var(--color-outline-variant)}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[8px\]{border-radius:8px}.rounded-\[12px\]{border-radius:12px}.rounded-full{border-radius:var(--radius-full)}.rounded-shape-container{border-radius:var(--shape-container)}.rounded-shape-control{border-radius:var(--shape-control)}.rounded-shape-field{border-radius:var(--shape-field)}.rounded-shape-min{border-radius:var(--shape-min)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-s-4{border-inline-start-style:var(--tw-border-style);border-inline-start-width:4px}.border-e-0{border-inline-end-style:var(--tw-border-style);border-inline-end-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\[color-mix\(in_srgb\,var\(--color-outline-variant\)_60\%\,transparent\)\]{border-color:var(--color-outline-variant)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--color-outline-variant\)_60\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-outline-variant) 60%,transparent)}}.border-\[var\(--color-outline-variant\)\]{border-color:var(--color-outline-variant)}.border-\[var\(--color-primary\)\]{border-color:var(--color-primary)}.border-s-\[var\(--color-error\)\]{border-inline-start-color:var(--color-error)}.bg-\[var\(--color-error\)\]{background-color:var(--color-error)}.bg-\[var\(--color-error-container\)\]{background-color:var(--color-error-container)}.bg-\[var\(--color-primary\)\]{background-color:var(--color-primary)}.bg-\[var\(--color-success-container\)\]{background-color:var(--color-success-container)}.bg-\[var\(--color-surface\)\]{background-color:var(--color-surface)}.bg-\[var\(--color-surface-container-low\)\]{background-color:var(--color-surface-container-low)}.bg-\[var\(--color-surface-elevated\)\]{background-color:var(--color-surface-elevated)}.bg-current{background-color:currentColor}.\[mask-image\:linear-gradient\(to_bottom\,black_calc\(100\%-24px\)\,transparent\)\]{-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),#0000);mask-image:linear-gradient(#000 calc(100% - 24px),#0000)}.object-cover{object-fit:cover}.p-0{padding:var(--spacing-0)}.p-1{padding:var(--spacing-1)}.p-2{padding:var(--spacing-2)}.p-3{padding:var(--spacing-3)}.p-4{padding:var(--spacing-4)}.p-6{padding:var(--spacing-6)}.px-0{padding-inline:var(--spacing-0)}.px-1{padding-inline:var(--spacing-1)}.px-2{padding-inline:var(--spacing-2)}.px-3{padding-inline:var(--spacing-3)}.px-4{padding-inline:var(--spacing-4)}.px-5{padding-inline:var(--spacing-5)}.py-1{padding-block:var(--spacing-1)}.py-2{padding-block:var(--spacing-2)}.py-3{padding-block:var(--spacing-3)}.py-4{padding-block:var(--spacing-4)}.py-6{padding-block:var(--spacing-6)}.py-8{padding-block:var(--spacing-8)}.py-10{padding-block:var(--spacing-10)}.py-16{padding-block:var(--spacing-16)}.ps-3{padding-inline-start:var(--spacing-3)}.pe-2{padding-inline-end:var(--spacing-2)}.pt-4{padding-top:var(--spacing-4)}.pt-5{padding-top:var(--spacing-5)}.pt-6{padding-top:var(--spacing-6)}.pb-2{padding-bottom:var(--spacing-2)}.pb-4{padding-bottom:var(--spacing-4)}.pb-8{padding-bottom:var(--spacing-8)}.text-center{text-align:center}.text-end{text-align:end}.text-start{text-align:start}.text-body-md{font-size:var(--type-body-md-size);line-height:var(--tw-leading,var(--type-body-md-lineHeight));letter-spacing:var(--tw-tracking,var(--type-body-md-letterSpacing));font-weight:var(--tw-font-weight,var(--type-body-md-weight))}.text-body-sm{font-size:var(--type-body-sm-size);line-height:var(--tw-leading,var(--type-body-sm-lineHeight));letter-spacing:var(--tw-tracking,var(--type-body-sm-letterSpacing));font-weight:var(--tw-font-weight,var(--type-body-sm-weight))}.text-headline-sm{font-size:var(--type-headline-sm-size);line-height:var(--tw-leading,var(--type-headline-sm-lineHeight));letter-spacing:var(--tw-tracking,var(--type-headline-sm-letterSpacing));font-weight:var(--tw-font-weight,var(--type-headline-sm-weight))}.text-label-lg{font-size:var(--type-label-lg-size);line-height:var(--tw-leading,var(--type-label-lg-lineHeight));letter-spacing:var(--tw-tracking,var(--type-label-lg-letterSpacing));font-weight:var(--tw-font-weight,var(--type-label-lg-weight))}.text-label-md{font-size:var(--type-label-md-size);line-height:var(--tw-leading,var(--type-label-md-lineHeight));letter-spacing:var(--tw-tracking,var(--type-label-md-letterSpacing));font-weight:var(--tw-font-weight,var(--type-label-md-weight))}.text-label-sm{font-size:var(--type-label-sm-size);line-height:var(--tw-leading,var(--type-label-sm-lineHeight));letter-spacing:var(--tw-tracking,var(--type-label-sm-letterSpacing));font-weight:var(--tw-font-weight,var(--type-label-sm-weight))}.text-title-lg{font-size:var(--type-title-lg-size);line-height:var(--tw-leading,var(--type-title-lg-lineHeight));letter-spacing:var(--tw-tracking,var(--type-title-lg-letterSpacing));font-weight:var(--tw-font-weight,var(--type-title-lg-weight))}.text-title-md{font-size:var(--type-title-md-size);line-height:var(--tw-leading,var(--type-title-md-lineHeight));letter-spacing:var(--tw-tracking,var(--type-title-md-letterSpacing));font-weight:var(--tw-font-weight,var(--type-title-md-weight))}.text-title-sm{font-size:var(--type-title-sm-size);line-height:var(--tw-leading,var(--type-title-sm-lineHeight));letter-spacing:var(--tw-tracking,var(--type-title-sm-letterSpacing));font-weight:var(--tw-font-weight,var(--type-title-sm-weight))}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,2rem)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,2.25rem)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,1.5rem)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,1.25rem)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,1rem)}.text-\[10px\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.text-\[var\(--color-error\)\]{color:var(--color-error)}.text-\[var\(--color-on-error\)\]{color:var(--color-on-error)}.text-\[var\(--color-on-error-container\)\]{color:var(--color-on-error-container)}.text-\[var\(--color-on-surface\)\]{color:var(--color-on-surface)}.text-\[var\(--color-on-surface-muted\)\]{color:var(--color-on-surface-muted)}.text-\[var\(--color-on-surface-variant\)\]{color:var(--color-on-surface-variant)}.text-\[var\(--color-success\)\]{color:var(--color-success)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-\[0\.2em\]{text-underline-offset:.2em}.shadow-elevation-1{--tw-shadow:var(--elevation-1);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-elevation-2{--tw-shadow:var(--elevation-2);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--motion-spring-effects-default-easing));transition-duration:var(--tw-duration,var(--motion-spring-effects-default-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.\[-webkit-mask-image\:linear-gradient\(to_bottom\,black_calc\(100\%-24px\)\,transparent\)\]{-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),#0000)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:var(--spacing-0)}.after\:rounded-shape-container:after{content:var(--tw-content);border-radius:var(--shape-container)}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}@media (hover:hover){.hover\:bg-\[color-mix\(in_srgb\,var\(--color-on-surface\)_8\%\,transparent\)\]:hover{background-color:var(--color-on-surface)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_srgb\,var\(--color-on-surface\)_8\%\,transparent\)\]:hover{background-color:color-mix(in srgb,var(--color-on-surface) 8%,transparent)}}.hover\:text-\[var\(--color-on-surface\)\]:hover{color:var(--color-on-surface)}}.focus-visible\:after\:outline:focus-visible:after{content:var(--tw-content);outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:after\:outline-2:focus-visible:after{content:var(--tw-content);outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:after\:outline-\[var\(--color-primary\)\]:focus-visible:after{content:var(--tw-content);outline-color:var(--color-primary)}@media (min-width:40rem){.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:w-1\/3{width:33.3333%}.sm\:w-64{width:var(--spacing-64)}.sm\:max-w-\[8rem\]{max-width:8rem}.sm\:shrink{flex-shrink:1}.sm\:shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:gap-1{gap:var(--spacing-1)}.sm\:gap-2{gap:var(--spacing-2)}.sm\:gap-4{gap:var(--spacing-4)}.sm\:px-4{padding-inline:var(--spacing-4)}.sm\:px-6{padding-inline:var(--spacing-6)}}@media (min-width:48rem){.md\:ms-0{margin-inline-start:var(--spacing-0)}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/3{width:33.3333%}.md\:min-w-0{min-width:var(--spacing-0)}.md\:flex-1{flex:1}.md\:flex-row{flex-direction:row}.md\:justify-center{justify-content:center}.md\:gap-8{gap:var(--spacing-8)}.md\:px-2{padding-inline:var(--spacing-2)}.md\:px-8{padding-inline:var(--spacing-8)}.md\:py-10{padding-block:var(--spacing-10)}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:px-4{padding-inline:var(--spacing-4)}.lg\:py-10{padding-block:var(--spacing-10)}}@media (min-width:80rem){.xl\:max-w-\[12rem\]{max-width:12rem}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.rtl\:-scale-x-100:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-scale-x:calc(100% * -1);scale:var(--tw-scale-x) var(--tw-scale-y)}@container (min-width:480px){.\[\@container\(min-width\:480px\)\]\:col-span-2{grid-column:span 2/span 2}.\[\@container\(min-width\:480px\)\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width:720px){.\[\@container\(min-width\:720px\)\]\:flex{display:flex}.\[\@container\(min-width\:720px\)\]\:hidden{display:none}.\[\@container\(min-width\:720px\)\]\:w-72{width:calc(var(--spacing) * 72)}.\[\@container\(min-width\:720px\)\]\:w-80{width:calc(var(--spacing) * 80)}.\[\@container\(min-width\:720px\)\]\:w-\[400px\]{width:400px}.\[\@container\(min-width\:720px\)\]\:border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.\[\@container\(min-width\:720px\)\]\:border-\[var\(--color-outline-variant\)\]{border-color:var(--color-outline-variant)}}@container (min-width:768px){.\[\@container\(min-width\:768px\)\]\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexub/patterns",
3
- "version": "7.1.0",
3
+ "version": "7.3.0",
4
4
  "description": "Composite UI patterns for Nexub Design System — pre-built, production-ready layouts and widgets built on @nexub/react.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -39,9 +39,9 @@
39
39
  "peerDependencies": {
40
40
  "react": ">=19 <20",
41
41
  "react-dom": ">=19 <20",
42
- "@nexub/icons": "^7.1.0",
43
- "@nexub/react": "^7.1.0",
44
- "@nexub/tokens": "^7.1.0"
42
+ "@nexub/icons": "^7.3.0",
43
+ "@nexub/react": "^7.3.0",
44
+ "@nexub/tokens": "^7.3.0"
45
45
  },
46
46
  "peerDependenciesMeta": {
47
47
  "@nexub/icons": {
@@ -64,9 +64,9 @@
64
64
  "typescript": "~6.0.3",
65
65
  "vite": "^8.3.5",
66
66
  "vitest": "^5.0.5",
67
- "@nexub/icons": "7.1.0",
68
- "@nexub/react": "7.1.0",
69
- "@nexub/tokens": "7.1.0"
67
+ "@nexub/icons": "7.3.0",
68
+ "@nexub/react": "7.3.0",
69
+ "@nexub/tokens": "7.3.0"
70
70
  },
71
71
  "scripts": {
72
72
  "build": "tsup && tailwindcss -i src/styles.css -o dist/styles.css --minify",
@@ -1,10 +1,10 @@
1
1
  'use client';
2
- import {
3
- AuthCard
4
- } from "./chunk-HMJRSNJD.js";
5
2
  import {
6
3
  usePageMessages
7
4
  } from "./chunk-7QCJC2DV.js";
5
+ import {
6
+ AuthCard
7
+ } from "./chunk-HMJRSNJD.js";
8
8
 
9
9
  // src/components/SignInPage/SignInPage.tsx
10
10
  import * as React from "react";