@techzyapp/ui-library 1.0.9 → 1.0.11
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/dist/AuthLayout-DGCe90w0.js +43 -0
- package/dist/AuthLayout-DGCe90w0.js.map +1 -0
- package/dist/AuthLayout-pvqB9w-B.cjs +2 -0
- package/dist/AuthLayout-pvqB9w-B.cjs.map +1 -0
- package/dist/auth/AuthGuard.d.cts +23 -0
- package/dist/auth/AuthGuard.d.ts +23 -0
- package/dist/auth/authLayoutRoute.d.cts +26 -0
- package/dist/auth/authLayoutRoute.d.ts +26 -0
- package/dist/authLayoutRoute-CkR9IANN.cjs +2 -0
- package/dist/authLayoutRoute-CkR9IANN.cjs.map +1 -0
- package/dist/authLayoutRoute-DEYvuYxM.js +13 -0
- package/dist/authLayoutRoute-DEYvuYxM.js.map +1 -0
- package/dist/components/AuthLayout/AuthLayout.d.cts +39 -0
- package/dist/components/AuthLayout/AuthLayout.d.ts +39 -0
- package/dist/components/AuthLayout/index.cjs +2 -0
- package/dist/components/AuthLayout/index.cjs.map +1 -0
- package/dist/components/AuthLayout/index.d.cts +2 -0
- package/dist/components/AuthLayout/index.d.ts +2 -0
- package/dist/components/AuthLayout/index.js +6 -0
- package/dist/components/AuthLayout/index.js.map +1 -0
- package/dist/components/index.d.cts +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/entries/auth.cjs +2 -0
- package/dist/entries/auth.cjs.map +1 -0
- package/dist/entries/auth.d.cts +4 -0
- package/dist/entries/auth.d.ts +4 -0
- package/dist/entries/auth.js +6 -0
- package/dist/entries/auth.js.map +1 -0
- package/dist/entries/components.cjs +1 -1
- package/dist/entries/components.js +146 -144
- package/dist/entries/components.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +177 -172
- package/dist/index.js.map +1 -1
- package/package.json +11 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsxs as r, jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as f } from "react";
|
|
3
|
+
import { clsx as j } from "clsx";
|
|
4
|
+
import { A as p } from "./Avatar-BJVCdo-K.js";
|
|
5
|
+
import { T as d } from "./Typography-Cta6Rg4L.js";
|
|
6
|
+
const v = "_authLayout_sejs6_3", g = "_logo_sejs6_20", N = "_card_sejs6_36", L = "_icon_sejs6_50", A = "_header_sejs6_55", x = "_body_sejs6_62", b = "_footer_sejs6_68", o = {
|
|
7
|
+
authLayout: v,
|
|
8
|
+
logo: g,
|
|
9
|
+
card: N,
|
|
10
|
+
icon: L,
|
|
11
|
+
header: A,
|
|
12
|
+
body: x,
|
|
13
|
+
footer: b
|
|
14
|
+
}, B = f(function({
|
|
15
|
+
title: s,
|
|
16
|
+
subtitle: e,
|
|
17
|
+
logo: c,
|
|
18
|
+
icon: n,
|
|
19
|
+
footer: l,
|
|
20
|
+
color: i = "accent",
|
|
21
|
+
maxWidth: u = 400,
|
|
22
|
+
className: _,
|
|
23
|
+
style: h,
|
|
24
|
+
children: t,
|
|
25
|
+
...m
|
|
26
|
+
}, y) {
|
|
27
|
+
return /* @__PURE__ */ r("div", { ref: y, className: j(o.authLayout, _), style: h, ...m, children: [
|
|
28
|
+
c != null && /* @__PURE__ */ a("div", { className: o.logo, children: c }),
|
|
29
|
+
/* @__PURE__ */ r("div", { className: o.card, style: { maxWidth: u }, children: [
|
|
30
|
+
n != null && /* @__PURE__ */ a(p, { className: o.icon, icon: n, color: i, size: "lg", "aria-hidden": !0 }),
|
|
31
|
+
(s != null || e != null) && /* @__PURE__ */ r("div", { className: o.header, children: [
|
|
32
|
+
s != null && /* @__PURE__ */ a(d, { variant: "h2", align: "center", children: s }),
|
|
33
|
+
e != null && /* @__PURE__ */ a(d, { color: "muted", align: "center", children: e })
|
|
34
|
+
] }),
|
|
35
|
+
t != null && /* @__PURE__ */ a("div", { className: o.body, children: t }),
|
|
36
|
+
l != null && /* @__PURE__ */ a("div", { className: o.footer, children: l })
|
|
37
|
+
] })
|
|
38
|
+
] });
|
|
39
|
+
});
|
|
40
|
+
export {
|
|
41
|
+
B as A
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=AuthLayout-DGCe90w0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthLayout-DGCe90w0.js","sources":["../src/components/AuthLayout/AuthLayout.tsx"],"sourcesContent":["import { forwardRef, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { Avatar } from '../Avatar'\nimport { Typography } from '../Typography'\nimport type { IconName } from '../../icons/names'\nimport styles from './AuthLayout.module.css'\n\nexport interface AuthLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Heading — the page name (e.g. `\"Login\"`, `\"Forgot Password\"`, `\"Verify Code\"`). */\n title?: ReactNode\n /** Muted line under the title (e.g. `\"Enter your email to receive a reset link\"`). */\n subtitle?: ReactNode\n /**\n * Brand slot centered on the canvas, above the card (a logo `<img>` / `<svg>` / any node). The slot\n * is the constraint box (capped width + height) — an `<img>`/`<svg>` inside fills it 100% (aspect\n * kept), so you can pass an unsized logo and it's sized/centered for you.\n */\n logo?: ReactNode\n /** Optional glyph in a soft tinted circle above the title — an `IconName` or any node. */\n icon?: IconName | ReactNode\n /** Bottom slot under the form — e.g. a \"Back to login\" / \"Sign up\" link row. */\n footer?: ReactNode\n /** Theme token that tints the `icon` circle. Defaults to `accent`. */\n color?: ThemeColor\n /** Max width of the centered card in px. Defaults to `400`. */\n maxWidth?: number\n /** The auth form (fields + submit) — usually a `<Form>`. */\n children?: ReactNode\n}\n\n/**\n * A ready-made, centered page frame for **authentication pages** (login, forgot-password,\n * reset-password, OTP, …) — so each page just supplies its `title` + form instead of hand-building the\n * layout. Fills the viewport (`100dvh`) with the app `background` canvas and vertically centers a\n * `logo` (on the canvas, above the card) + an elevated `surface` card, as a group. The card stacks: an\n * optional `icon` (in a soft tinted `Avatar` circle), the `title` + `subtitle` (centered), the\n * `children` (your form), and an optional `footer` (link row). Token-only styling; responsive.\n *\n * @example\n * <AuthLayout title=\"Login\" subtitle=\"Welcome back\" logo={<Logo />}>\n * <Form form={form}>…</Form>\n * </AuthLayout>\n */\nexport const AuthLayout = forwardRef<HTMLDivElement, AuthLayoutProps>(function AuthLayout(\n {\n title,\n subtitle,\n logo,\n icon,\n footer,\n color = 'accent',\n maxWidth = 400,\n className,\n style,\n children,\n ...props\n },\n ref,\n) {\n return (\n <div ref={ref} className={clsx(styles.authLayout, className)} style={style} {...props}>\n {logo != null && <div className={styles.logo}>{logo}</div>}\n <div className={styles.card} style={{ maxWidth } as CSSProperties}>\n {icon != null && (\n <Avatar className={styles.icon} icon={icon} color={color} size=\"lg\" aria-hidden />\n )}\n {(title != null || subtitle != null) && (\n <div className={styles.header}>\n {title != null && (\n <Typography variant=\"h2\" align=\"center\">\n {title}\n </Typography>\n )}\n {subtitle != null && (\n <Typography color=\"muted\" align=\"center\">\n {subtitle}\n </Typography>\n )}\n </div>\n )}\n {children != null && <div className={styles.body}>{children}</div>}\n {footer != null && <div className={styles.footer}>{footer}</div>}\n </div>\n </div>\n )\n})\n"],"names":["AuthLayout","forwardRef","title","subtitle","logo","icon","footer","color","maxWidth","className","style","children","props","ref","jsxs","clsx","styles","jsx","Avatar","Typography"],"mappings":";;;;;;;;;;;;;GA4CaA,IAAaC,EAA4C,SACpE;AAAA,EACE,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,UAAAC,IAAW;AAAA,EACX,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,SACE,gBAAAC,EAAC,OAAA,EAAI,KAAAD,GAAU,WAAWE,EAAKC,EAAO,YAAYP,CAAS,GAAG,OAAAC,GAAe,GAAGE,GAC7E,UAAA;AAAA,IAAAR,KAAQ,QAAQ,gBAAAa,EAAC,OAAA,EAAI,WAAWD,EAAO,MAAO,UAAAZ,GAAK;AAAA,IACpD,gBAAAU,EAAC,SAAI,WAAWE,EAAO,MAAM,OAAO,EAAE,UAAAR,KACnC,UAAA;AAAA,MAAAH,KAAQ,QACP,gBAAAY,EAACC,GAAA,EAAO,WAAWF,EAAO,MAAM,MAAAX,GAAY,OAAAE,GAAc,MAAK,MAAK,eAAW,GAAA,CAAC;AAAA,OAEhFL,KAAS,QAAQC,KAAY,2BAC5B,OAAA,EAAI,WAAWa,EAAO,QACpB,UAAA;AAAA,QAAAd,KAAS,QACR,gBAAAe,EAACE,GAAA,EAAW,SAAQ,MAAK,OAAM,UAC5B,UAAAjB,EAAA,CACH;AAAA,QAEDC,KAAY,QACX,gBAAAc,EAACE,GAAA,EAAW,OAAM,SAAQ,OAAM,UAC7B,UAAAhB,EAAA,CACH;AAAA,MAAA,GAEJ;AAAA,MAEDQ,KAAY,QAAQ,gBAAAM,EAAC,SAAI,WAAWD,EAAO,MAAO,UAAAL,GAAS;AAAA,MAC3DL,KAAU,QAAQ,gBAAAW,EAAC,SAAI,WAAWD,EAAO,QAAS,UAAAV,EAAA,CAAO;AAAA,IAAA,EAAA,CAC5D;AAAA,EAAA,GACF;AAEJ,CAAC;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const s=require("react/jsx-runtime"),j=require("react"),x=require("clsx"),g=require("./Avatar-_ufXh3AY.cjs"),l=require("./Typography-BFatE1_A.cjs"),m="_authLayout_sejs6_3",v="_logo_sejs6_20",L="_card_sejs6_36",N="_icon_sejs6_50",f="_header_sejs6_55",p="_body_sejs6_62",q="_footer_sejs6_68",e={authLayout:m,logo:v,card:L,icon:N,header:f,body:p,footer:q},A=j.forwardRef(function({title:a,subtitle:o,logo:c,icon:r,footer:n,color:u="accent",maxWidth:d=400,className:i,style:h,children:t,..._},y){return s.jsxs("div",{ref:y,className:x.clsx(e.authLayout,i),style:h,..._,children:[c!=null&&s.jsx("div",{className:e.logo,children:c}),s.jsxs("div",{className:e.card,style:{maxWidth:d},children:[r!=null&&s.jsx(g.Avatar,{className:e.icon,icon:r,color:u,size:"lg","aria-hidden":!0}),(a!=null||o!=null)&&s.jsxs("div",{className:e.header,children:[a!=null&&s.jsx(l.Typography,{variant:"h2",align:"center",children:a}),o!=null&&s.jsx(l.Typography,{color:"muted",align:"center",children:o})]}),t!=null&&s.jsx("div",{className:e.body,children:t}),n!=null&&s.jsx("div",{className:e.footer,children:n})]})]})});exports.AuthLayout=A;
|
|
2
|
+
//# sourceMappingURL=AuthLayout-pvqB9w-B.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthLayout-pvqB9w-B.cjs","sources":["../src/components/AuthLayout/AuthLayout.tsx"],"sourcesContent":["import { forwardRef, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { Avatar } from '../Avatar'\nimport { Typography } from '../Typography'\nimport type { IconName } from '../../icons/names'\nimport styles from './AuthLayout.module.css'\n\nexport interface AuthLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Heading — the page name (e.g. `\"Login\"`, `\"Forgot Password\"`, `\"Verify Code\"`). */\n title?: ReactNode\n /** Muted line under the title (e.g. `\"Enter your email to receive a reset link\"`). */\n subtitle?: ReactNode\n /**\n * Brand slot centered on the canvas, above the card (a logo `<img>` / `<svg>` / any node). The slot\n * is the constraint box (capped width + height) — an `<img>`/`<svg>` inside fills it 100% (aspect\n * kept), so you can pass an unsized logo and it's sized/centered for you.\n */\n logo?: ReactNode\n /** Optional glyph in a soft tinted circle above the title — an `IconName` or any node. */\n icon?: IconName | ReactNode\n /** Bottom slot under the form — e.g. a \"Back to login\" / \"Sign up\" link row. */\n footer?: ReactNode\n /** Theme token that tints the `icon` circle. Defaults to `accent`. */\n color?: ThemeColor\n /** Max width of the centered card in px. Defaults to `400`. */\n maxWidth?: number\n /** The auth form (fields + submit) — usually a `<Form>`. */\n children?: ReactNode\n}\n\n/**\n * A ready-made, centered page frame for **authentication pages** (login, forgot-password,\n * reset-password, OTP, …) — so each page just supplies its `title` + form instead of hand-building the\n * layout. Fills the viewport (`100dvh`) with the app `background` canvas and vertically centers a\n * `logo` (on the canvas, above the card) + an elevated `surface` card, as a group. The card stacks: an\n * optional `icon` (in a soft tinted `Avatar` circle), the `title` + `subtitle` (centered), the\n * `children` (your form), and an optional `footer` (link row). Token-only styling; responsive.\n *\n * @example\n * <AuthLayout title=\"Login\" subtitle=\"Welcome back\" logo={<Logo />}>\n * <Form form={form}>…</Form>\n * </AuthLayout>\n */\nexport const AuthLayout = forwardRef<HTMLDivElement, AuthLayoutProps>(function AuthLayout(\n {\n title,\n subtitle,\n logo,\n icon,\n footer,\n color = 'accent',\n maxWidth = 400,\n className,\n style,\n children,\n ...props\n },\n ref,\n) {\n return (\n <div ref={ref} className={clsx(styles.authLayout, className)} style={style} {...props}>\n {logo != null && <div className={styles.logo}>{logo}</div>}\n <div className={styles.card} style={{ maxWidth } as CSSProperties}>\n {icon != null && (\n <Avatar className={styles.icon} icon={icon} color={color} size=\"lg\" aria-hidden />\n )}\n {(title != null || subtitle != null) && (\n <div className={styles.header}>\n {title != null && (\n <Typography variant=\"h2\" align=\"center\">\n {title}\n </Typography>\n )}\n {subtitle != null && (\n <Typography color=\"muted\" align=\"center\">\n {subtitle}\n </Typography>\n )}\n </div>\n )}\n {children != null && <div className={styles.body}>{children}</div>}\n {footer != null && <div className={styles.footer}>{footer}</div>}\n </div>\n </div>\n )\n})\n"],"names":["AuthLayout","forwardRef","title","subtitle","logo","icon","footer","color","maxWidth","className","style","children","props","ref","jsxs","clsx","styles","jsx","Avatar","Typography"],"mappings":"8WA4CaA,EAAaC,EAAAA,WAA4C,SACpE,CACE,MAAAC,EACA,SAAAC,EACA,KAAAC,EACA,KAAAC,EACA,OAAAC,EACA,MAAAC,EAAQ,SACR,SAAAC,EAAW,IACX,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,OACEC,EAAAA,KAAC,MAAA,CAAI,IAAAD,EAAU,UAAWE,EAAAA,KAAKC,EAAO,WAAYP,CAAS,EAAG,MAAAC,EAAe,GAAGE,EAC7E,SAAA,CAAAR,GAAQ,MAAQa,EAAAA,IAAC,MAAA,CAAI,UAAWD,EAAO,KAAO,SAAAZ,EAAK,EACpDU,OAAC,OAAI,UAAWE,EAAO,KAAM,MAAO,CAAE,SAAAR,GACnC,SAAA,CAAAH,GAAQ,MACPY,EAAAA,IAACC,EAAAA,OAAA,CAAO,UAAWF,EAAO,KAAM,KAAAX,EAAY,MAAAE,EAAc,KAAK,KAAK,cAAW,EAAA,CAAC,GAEhFL,GAAS,MAAQC,GAAY,cAC5B,MAAA,CAAI,UAAWa,EAAO,OACpB,SAAA,CAAAd,GAAS,MACRe,MAACE,EAAAA,WAAA,CAAW,QAAQ,KAAK,MAAM,SAC5B,SAAAjB,CAAA,CACH,EAEDC,GAAY,MACXc,MAACE,EAAAA,WAAA,CAAW,MAAM,QAAQ,MAAM,SAC7B,SAAAhB,CAAA,CACH,CAAA,EAEJ,EAEDQ,GAAY,MAAQM,EAAAA,IAAC,OAAI,UAAWD,EAAO,KAAO,SAAAL,EAAS,EAC3DL,GAAU,MAAQW,EAAAA,IAAC,OAAI,UAAWD,EAAO,OAAS,SAAAV,CAAA,CAAO,CAAA,CAAA,CAC5D,CAAA,EACF,CAEJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface AuthGuardProps {
|
|
3
|
+
/** Session check — a boolean, or a function that returns one (evaluated on render). */
|
|
4
|
+
isAuthenticated: boolean | (() => boolean);
|
|
5
|
+
/** Where to send an unauthenticated visitor. Defaults to `'/login'`. */
|
|
6
|
+
redirectTo?: string;
|
|
7
|
+
/** The protected content, rendered only when authenticated. */
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Component-level auth guard: renders `children` only when authenticated, otherwise redirects to
|
|
12
|
+
* `redirectTo` via `<Navigate>`. Wrap the authenticated area (a page or a subtree) with it.
|
|
13
|
+
*
|
|
14
|
+
* Requires a `@tanstack/react-router` context (it renders `<Navigate>`), so use it inside a routed
|
|
15
|
+
* tree. `redirectTo` is a plain string — the library can't know the app's typed route tree, so it's
|
|
16
|
+
* cast loosely to the router's `to` type.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* <AuthGuard isAuthenticated={session.isAuthenticated} redirectTo="/login">
|
|
20
|
+
* <Dashboard />
|
|
21
|
+
* </AuthGuard>
|
|
22
|
+
*/
|
|
23
|
+
export declare const AuthGuard: ({ isAuthenticated, redirectTo, children }: AuthGuardProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface AuthGuardProps {
|
|
3
|
+
/** Session check — a boolean, or a function that returns one (evaluated on render). */
|
|
4
|
+
isAuthenticated: boolean | (() => boolean);
|
|
5
|
+
/** Where to send an unauthenticated visitor. Defaults to `'/login'`. */
|
|
6
|
+
redirectTo?: string;
|
|
7
|
+
/** The protected content, rendered only when authenticated. */
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Component-level auth guard: renders `children` only when authenticated, otherwise redirects to
|
|
12
|
+
* `redirectTo` via `<Navigate>`. Wrap the authenticated area (a page or a subtree) with it.
|
|
13
|
+
*
|
|
14
|
+
* Requires a `@tanstack/react-router` context (it renders `<Navigate>`), so use it inside a routed
|
|
15
|
+
* tree. `redirectTo` is a plain string — the library can't know the app's typed route tree, so it's
|
|
16
|
+
* cast loosely to the router's `to` type.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* <AuthGuard isAuthenticated={session.isAuthenticated} redirectTo="/login">
|
|
20
|
+
* <Dashboard />
|
|
21
|
+
* </AuthGuard>
|
|
22
|
+
*/
|
|
23
|
+
export declare const AuthGuard: ({ isAuthenticated, redirectTo, children }: AuthGuardProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface AuthLayoutRouteOptions {
|
|
2
|
+
/** Session check — returns whether the visitor is already signed in. */
|
|
3
|
+
isAuthenticated: () => boolean;
|
|
4
|
+
/** Where to send an **already signed-in** visitor. Defaults to `'/'`. */
|
|
5
|
+
redirectTo?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Route options for the pathless `_auth` layout that groups the public auth pages (login,
|
|
9
|
+
* forgot-password, reset-password, otp, …). In `beforeLoad` it bounces an already signed-in visitor to
|
|
10
|
+
* `redirectTo`; otherwise it renders its children standalone (`component: Outlet`).
|
|
11
|
+
*
|
|
12
|
+
* Returns only the route **options** (`beforeLoad` + `component`) — not a whole route — because the
|
|
13
|
+
* router plugin needs the literal path in the file. Compose it with `createFileRoute('/_auth')`.
|
|
14
|
+
* `redirectTo` is a plain string, cast loosely to the router's `to` type (the library can't know the
|
|
15
|
+
* app's typed route tree).
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // routes/_auth.tsx
|
|
19
|
+
* export const Route = createFileRoute('/_auth')(
|
|
20
|
+
* authLayoutRoute({ isAuthenticated: session.isAuthenticated }),
|
|
21
|
+
* )
|
|
22
|
+
*/
|
|
23
|
+
export declare const authLayoutRoute: ({ isAuthenticated, redirectTo }: AuthLayoutRouteOptions) => {
|
|
24
|
+
beforeLoad: () => void;
|
|
25
|
+
component: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element | null>;
|
|
26
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface AuthLayoutRouteOptions {
|
|
2
|
+
/** Session check — returns whether the visitor is already signed in. */
|
|
3
|
+
isAuthenticated: () => boolean;
|
|
4
|
+
/** Where to send an **already signed-in** visitor. Defaults to `'/'`. */
|
|
5
|
+
redirectTo?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Route options for the pathless `_auth` layout that groups the public auth pages (login,
|
|
9
|
+
* forgot-password, reset-password, otp, …). In `beforeLoad` it bounces an already signed-in visitor to
|
|
10
|
+
* `redirectTo`; otherwise it renders its children standalone (`component: Outlet`).
|
|
11
|
+
*
|
|
12
|
+
* Returns only the route **options** (`beforeLoad` + `component`) — not a whole route — because the
|
|
13
|
+
* router plugin needs the literal path in the file. Compose it with `createFileRoute('/_auth')`.
|
|
14
|
+
* `redirectTo` is a plain string, cast loosely to the router's `to` type (the library can't know the
|
|
15
|
+
* app's typed route tree).
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // routes/_auth.tsx
|
|
19
|
+
* export const Route = createFileRoute('/_auth')(
|
|
20
|
+
* authLayoutRoute({ isAuthenticated: session.isAuthenticated }),
|
|
21
|
+
* )
|
|
22
|
+
*/
|
|
23
|
+
export declare const authLayoutRoute: ({ isAuthenticated, redirectTo }: AuthLayoutRouteOptions) => {
|
|
24
|
+
beforeLoad: () => void;
|
|
25
|
+
component: import("react").MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element | null>;
|
|
26
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),r=require("@tanstack/react-router"),n=({isAuthenticated:t,redirectTo:o="/login",children:u})=>(typeof t=="function"?t():t)?e.jsx(e.Fragment,{children:u}):e.jsx(r.Navigate,{to:o}),a=({isAuthenticated:t,redirectTo:o="/"})=>({beforeLoad:()=>{if(t())throw r.redirect({to:o})},component:r.Outlet});exports.AuthGuard=n;exports.authLayoutRoute=a;
|
|
2
|
+
//# sourceMappingURL=authLayoutRoute-CkR9IANN.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authLayoutRoute-CkR9IANN.cjs","sources":["../src/auth/AuthGuard.tsx","../src/auth/authLayoutRoute.ts"],"sourcesContent":["import { Navigate, type LinkProps } from '@tanstack/react-router'\nimport type { ReactNode } from 'react'\n\nexport interface AuthGuardProps {\n /** Session check — a boolean, or a function that returns one (evaluated on render). */\n isAuthenticated: boolean | (() => boolean)\n /** Where to send an unauthenticated visitor. Defaults to `'/login'`. */\n redirectTo?: string\n /** The protected content, rendered only when authenticated. */\n children: ReactNode\n}\n\n/**\n * Component-level auth guard: renders `children` only when authenticated, otherwise redirects to\n * `redirectTo` via `<Navigate>`. Wrap the authenticated area (a page or a subtree) with it.\n *\n * Requires a `@tanstack/react-router` context (it renders `<Navigate>`), so use it inside a routed\n * tree. `redirectTo` is a plain string — the library can't know the app's typed route tree, so it's\n * cast loosely to the router's `to` type.\n *\n * @example\n * <AuthGuard isAuthenticated={session.isAuthenticated} redirectTo=\"/login\">\n * <Dashboard />\n * </AuthGuard>\n */\nexport const AuthGuard = ({ isAuthenticated, redirectTo = '/login', children }: AuthGuardProps) => {\n const ok = typeof isAuthenticated === 'function' ? isAuthenticated() : isAuthenticated\n return ok ? <>{children}</> : <Navigate to={redirectTo as LinkProps['to']} />\n}\n","import { Outlet, redirect, type LinkProps } from '@tanstack/react-router'\n\nexport interface AuthLayoutRouteOptions {\n /** Session check — returns whether the visitor is already signed in. */\n isAuthenticated: () => boolean\n /** Where to send an **already signed-in** visitor. Defaults to `'/'`. */\n redirectTo?: string\n}\n\n/**\n * Route options for the pathless `_auth` layout that groups the public auth pages (login,\n * forgot-password, reset-password, otp, …). In `beforeLoad` it bounces an already signed-in visitor to\n * `redirectTo`; otherwise it renders its children standalone (`component: Outlet`).\n *\n * Returns only the route **options** (`beforeLoad` + `component`) — not a whole route — because the\n * router plugin needs the literal path in the file. Compose it with `createFileRoute('/_auth')`.\n * `redirectTo` is a plain string, cast loosely to the router's `to` type (the library can't know the\n * app's typed route tree).\n *\n * @example\n * // routes/_auth.tsx\n * export const Route = createFileRoute('/_auth')(\n * authLayoutRoute({ isAuthenticated: session.isAuthenticated }),\n * )\n */\nexport const authLayoutRoute = ({ isAuthenticated, redirectTo = '/' }: AuthLayoutRouteOptions) => ({\n beforeLoad: () => {\n if (isAuthenticated()) throw redirect({ to: redirectTo as LinkProps['to'] })\n },\n component: Outlet,\n})\n"],"names":["AuthGuard","isAuthenticated","redirectTo","children","jsx","Fragment","Navigate","authLayoutRoute","redirect","Outlet"],"mappings":"sFAyBaA,EAAY,CAAC,CAAE,gBAAAC,EAAiB,WAAAC,EAAa,SAAU,SAAAC,MACvD,OAAOF,GAAoB,WAAaA,IAAoBA,GAC3DG,EAAAA,IAAAC,EAAAA,SAAA,CAAG,SAAAF,CAAA,CAAS,EAAMC,EAAAA,IAACE,EAAAA,SAAA,CAAS,GAAIJ,CAAA,CAA+B,ECFhEK,EAAkB,CAAC,CAAE,gBAAAN,EAAiB,WAAAC,EAAa,QAAmC,CACjG,WAAY,IAAM,CAChB,GAAID,IAAmB,MAAMO,EAAAA,SAAS,CAAE,GAAIN,EAA+B,CAC7E,EACA,UAAWO,EAAAA,MACb"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as r, Fragment as e } from "react/jsx-runtime";
|
|
2
|
+
import { Navigate as n, Outlet as f, redirect as m } from "@tanstack/react-router";
|
|
3
|
+
const s = ({ isAuthenticated: o, redirectTo: t = "/login", children: a }) => (typeof o == "function" ? o() : o) ? /* @__PURE__ */ r(e, { children: a }) : /* @__PURE__ */ r(n, { to: t }), g = ({ isAuthenticated: o, redirectTo: t = "/" }) => ({
|
|
4
|
+
beforeLoad: () => {
|
|
5
|
+
if (o()) throw m({ to: t });
|
|
6
|
+
},
|
|
7
|
+
component: f
|
|
8
|
+
});
|
|
9
|
+
export {
|
|
10
|
+
s as A,
|
|
11
|
+
g as a
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=authLayoutRoute-DEYvuYxM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authLayoutRoute-DEYvuYxM.js","sources":["../src/auth/AuthGuard.tsx","../src/auth/authLayoutRoute.ts"],"sourcesContent":["import { Navigate, type LinkProps } from '@tanstack/react-router'\nimport type { ReactNode } from 'react'\n\nexport interface AuthGuardProps {\n /** Session check — a boolean, or a function that returns one (evaluated on render). */\n isAuthenticated: boolean | (() => boolean)\n /** Where to send an unauthenticated visitor. Defaults to `'/login'`. */\n redirectTo?: string\n /** The protected content, rendered only when authenticated. */\n children: ReactNode\n}\n\n/**\n * Component-level auth guard: renders `children` only when authenticated, otherwise redirects to\n * `redirectTo` via `<Navigate>`. Wrap the authenticated area (a page or a subtree) with it.\n *\n * Requires a `@tanstack/react-router` context (it renders `<Navigate>`), so use it inside a routed\n * tree. `redirectTo` is a plain string — the library can't know the app's typed route tree, so it's\n * cast loosely to the router's `to` type.\n *\n * @example\n * <AuthGuard isAuthenticated={session.isAuthenticated} redirectTo=\"/login\">\n * <Dashboard />\n * </AuthGuard>\n */\nexport const AuthGuard = ({ isAuthenticated, redirectTo = '/login', children }: AuthGuardProps) => {\n const ok = typeof isAuthenticated === 'function' ? isAuthenticated() : isAuthenticated\n return ok ? <>{children}</> : <Navigate to={redirectTo as LinkProps['to']} />\n}\n","import { Outlet, redirect, type LinkProps } from '@tanstack/react-router'\n\nexport interface AuthLayoutRouteOptions {\n /** Session check — returns whether the visitor is already signed in. */\n isAuthenticated: () => boolean\n /** Where to send an **already signed-in** visitor. Defaults to `'/'`. */\n redirectTo?: string\n}\n\n/**\n * Route options for the pathless `_auth` layout that groups the public auth pages (login,\n * forgot-password, reset-password, otp, …). In `beforeLoad` it bounces an already signed-in visitor to\n * `redirectTo`; otherwise it renders its children standalone (`component: Outlet`).\n *\n * Returns only the route **options** (`beforeLoad` + `component`) — not a whole route — because the\n * router plugin needs the literal path in the file. Compose it with `createFileRoute('/_auth')`.\n * `redirectTo` is a plain string, cast loosely to the router's `to` type (the library can't know the\n * app's typed route tree).\n *\n * @example\n * // routes/_auth.tsx\n * export const Route = createFileRoute('/_auth')(\n * authLayoutRoute({ isAuthenticated: session.isAuthenticated }),\n * )\n */\nexport const authLayoutRoute = ({ isAuthenticated, redirectTo = '/' }: AuthLayoutRouteOptions) => ({\n beforeLoad: () => {\n if (isAuthenticated()) throw redirect({ to: redirectTo as LinkProps['to'] })\n },\n component: Outlet,\n})\n"],"names":["AuthGuard","isAuthenticated","redirectTo","children","jsx","Fragment","Navigate","authLayoutRoute","redirect","Outlet"],"mappings":";;AAyBO,MAAMA,IAAY,CAAC,EAAE,iBAAAC,GAAiB,YAAAC,IAAa,UAAU,UAAAC,SACvD,OAAOF,KAAoB,aAAaA,MAAoBA,KAC3D,gBAAAG,EAAAC,GAAA,EAAG,UAAAF,EAAA,CAAS,IAAM,gBAAAC,EAACE,GAAA,EAAS,IAAIJ,EAAA,CAA+B,GCFhEK,IAAkB,CAAC,EAAE,iBAAAN,GAAiB,YAAAC,IAAa,WAAmC;AAAA,EACjG,YAAY,MAAM;AAChB,QAAID,IAAmB,OAAMO,EAAS,EAAE,IAAIN,GAA+B;AAAA,EAC7E;AAAA,EACA,WAAWO;AACb;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import type { ThemeColor } from '../../theme';
|
|
3
|
+
import type { IconName } from '../../icons/names';
|
|
4
|
+
export interface AuthLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
5
|
+
/** Heading — the page name (e.g. `"Login"`, `"Forgot Password"`, `"Verify Code"`). */
|
|
6
|
+
title?: ReactNode;
|
|
7
|
+
/** Muted line under the title (e.g. `"Enter your email to receive a reset link"`). */
|
|
8
|
+
subtitle?: ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Brand slot centered on the canvas, above the card (a logo `<img>` / `<svg>` / any node). The slot
|
|
11
|
+
* is the constraint box (capped width + height) — an `<img>`/`<svg>` inside fills it 100% (aspect
|
|
12
|
+
* kept), so you can pass an unsized logo and it's sized/centered for you.
|
|
13
|
+
*/
|
|
14
|
+
logo?: ReactNode;
|
|
15
|
+
/** Optional glyph in a soft tinted circle above the title — an `IconName` or any node. */
|
|
16
|
+
icon?: IconName | ReactNode;
|
|
17
|
+
/** Bottom slot under the form — e.g. a "Back to login" / "Sign up" link row. */
|
|
18
|
+
footer?: ReactNode;
|
|
19
|
+
/** Theme token that tints the `icon` circle. Defaults to `accent`. */
|
|
20
|
+
color?: ThemeColor;
|
|
21
|
+
/** Max width of the centered card in px. Defaults to `400`. */
|
|
22
|
+
maxWidth?: number;
|
|
23
|
+
/** The auth form (fields + submit) — usually a `<Form>`. */
|
|
24
|
+
children?: ReactNode;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A ready-made, centered page frame for **authentication pages** (login, forgot-password,
|
|
28
|
+
* reset-password, OTP, …) — so each page just supplies its `title` + form instead of hand-building the
|
|
29
|
+
* layout. Fills the viewport (`100dvh`) with the app `background` canvas and vertically centers a
|
|
30
|
+
* `logo` (on the canvas, above the card) + an elevated `surface` card, as a group. The card stacks: an
|
|
31
|
+
* optional `icon` (in a soft tinted `Avatar` circle), the `title` + `subtitle` (centered), the
|
|
32
|
+
* `children` (your form), and an optional `footer` (link row). Token-only styling; responsive.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* <AuthLayout title="Login" subtitle="Welcome back" logo={<Logo />}>
|
|
36
|
+
* <Form form={form}>…</Form>
|
|
37
|
+
* </AuthLayout>
|
|
38
|
+
*/
|
|
39
|
+
export declare const AuthLayout: import("react").ForwardRefExoticComponent<AuthLayoutProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import type { ThemeColor } from '../../theme';
|
|
3
|
+
import type { IconName } from '../../icons/names';
|
|
4
|
+
export interface AuthLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
5
|
+
/** Heading — the page name (e.g. `"Login"`, `"Forgot Password"`, `"Verify Code"`). */
|
|
6
|
+
title?: ReactNode;
|
|
7
|
+
/** Muted line under the title (e.g. `"Enter your email to receive a reset link"`). */
|
|
8
|
+
subtitle?: ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Brand slot centered on the canvas, above the card (a logo `<img>` / `<svg>` / any node). The slot
|
|
11
|
+
* is the constraint box (capped width + height) — an `<img>`/`<svg>` inside fills it 100% (aspect
|
|
12
|
+
* kept), so you can pass an unsized logo and it's sized/centered for you.
|
|
13
|
+
*/
|
|
14
|
+
logo?: ReactNode;
|
|
15
|
+
/** Optional glyph in a soft tinted circle above the title — an `IconName` or any node. */
|
|
16
|
+
icon?: IconName | ReactNode;
|
|
17
|
+
/** Bottom slot under the form — e.g. a "Back to login" / "Sign up" link row. */
|
|
18
|
+
footer?: ReactNode;
|
|
19
|
+
/** Theme token that tints the `icon` circle. Defaults to `accent`. */
|
|
20
|
+
color?: ThemeColor;
|
|
21
|
+
/** Max width of the centered card in px. Defaults to `400`. */
|
|
22
|
+
maxWidth?: number;
|
|
23
|
+
/** The auth form (fields + submit) — usually a `<Form>`. */
|
|
24
|
+
children?: ReactNode;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A ready-made, centered page frame for **authentication pages** (login, forgot-password,
|
|
28
|
+
* reset-password, OTP, …) — so each page just supplies its `title` + form instead of hand-building the
|
|
29
|
+
* layout. Fills the viewport (`100dvh`) with the app `background` canvas and vertically centers a
|
|
30
|
+
* `logo` (on the canvas, above the card) + an elevated `surface` card, as a group. The card stacks: an
|
|
31
|
+
* optional `icon` (in a soft tinted `Avatar` circle), the `title` + `subtitle` (centered), the
|
|
32
|
+
* `children` (your form), and an optional `footer` (link row). Token-only styling; responsive.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* <AuthLayout title="Login" subtitle="Welcome back" logo={<Logo />}>
|
|
36
|
+
* <Form form={form}>…</Form>
|
|
37
|
+
* </AuthLayout>
|
|
38
|
+
*/
|
|
39
|
+
export declare const AuthLayout: import("react").ForwardRefExoticComponent<AuthLayoutProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../Form-Bz2xgkEm.cjs"),e=require("../Accordion-Dy_dM79Y.cjs"),l=require("../Alert-D99G0StL.cjs"),d=require("../Avatar-_ufXh3AY.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../Form-Bz2xgkEm.cjs"),e=require("../Accordion-Dy_dM79Y.cjs"),l=require("../Alert-D99G0StL.cjs"),d=require("../AuthLayout-pvqB9w-B.cjs"),q=require("../Avatar-_ufXh3AY.cjs"),T=require("../AvatarGroup-TW1pt4tj.cjs"),p=require("../Badge-BQpr2Jee.cjs"),g=require("../Blockquote-CxHwOecc.cjs"),C=require("../Breadcrumbs-BnxhmyK5.cjs"),F=require("../Button-Cj6pckNl.cjs"),m=require("../Card-DD9SWHzZ.cjs"),S=require("../Checkbox-DXOzYIAz.cjs"),h=require("../Chip-B2lY4TJ0.cjs"),r=require("../ChoiceCardGroup-6eFM1eL0.cjs"),B=require("../Code-CUdpWlY5.cjs"),P=require("../CodeBlock-EhB7v9-R.cjs"),o=require("../Col-BdQeyKEX.cjs"),y=require("../ColorPicker-Dc1y9Zuu.cjs"),k=require("../CopyButton-D_DCLHhb.cjs"),D=require("../DashedButton-q7AOqKUE.cjs"),A=require("../DatePicker-CEczjGZy.cjs"),b=require("../DateTimePicker-CDyGxUBX.cjs"),R=require("../Divider-CzbhdCiD.cjs"),L=require("../Dropdown-Ui7h2TGd.cjs"),I=require("../EmptyState-B77utgEn.cjs"),v=require("../FileCard-CsGW2sxE.cjs"),x=require("../FileUploader-DDi_uzIx.cjs"),t=require("../Sidebar-CT_NUo_7.cjs"),G=require("../Flag-BJLWKB9J.cjs"),M=require("../Flex-C6tHC8n7.cjs"),N=require("../FullscreenToggle-MCxGzAEe.cjs"),w=require("../Grid-frN0D9lR.cjs"),i=require("../names-C2Yj1p3u.cjs"),O=require("../Icon-CXTl_QAP.cjs"),E=require("../IconButton-BoY2y_pV.cjs"),U=require("../List-ChXO0Hz-.cjs"),_=require("../ListItem-DWQorRxG.cjs"),f=require("../Loader-Cwb1bOHj.cjs"),j=require("../Masonry-9LrJKlhI.cjs"),z=require("../Modal-CO3c3sGY.cjs"),H=require("../MultiSelect-DVOVHuIm.cjs"),J=require("../MultilineTextField-Dz6Fg8RJ.cjs"),K=require("../NumberField-BH237Vt2.cjs"),Q=require("../OtpField-CXP59zM2.cjs"),V=require("../PageLayout-CuVuZEbR.cjs"),W=require("../PageNotFound-CxLUFoJa.cjs"),X=require("../Pagination-Dcs_Znx3.cjs"),Y=require("../Popover-CBI1icIM.cjs"),c=require("../RadioGroup-C8u7eNBS.cjs"),Z=require("../RemoveDialog-Cwtq9wAt.cjs"),$=require("../RichTextEditor-GxbnzLRe.cjs"),ee=require("../RootLayout-4GV6dfdB.cjs"),re=require("../Select-DjMZec8c.cjs"),oe=require("../Slider-dxYVXRev.cjs"),u=require("../SpeedDial-CyiPagdu.cjs"),te=require("../Stepper-PW7c45PV.cjs"),ie=require("../SwatchPicker-DbAU9-ux.cjs"),ce=require("../Switch-DRkZ6kHJ.cjs"),ue=require("../Table-C_Ov-kvK.cjs"),ne=require("../Tabs-CaHTJ99w.cjs"),ae=require("../TagsField-BQIwSX5m.cjs"),se=require("../TextField-fmt7aacg.cjs"),le=require("../ThemeToggle-Cz5I2-DL.cjs"),de=require("../TimePicker-B-c6uIaY.cjs"),n=require("../Timeline-CoxW0Ia_.cjs"),qe=require("../Toaster-qdS8Urgy.cjs"),a=require("../ToggleButtonGroup-DYRLwKKh.cjs"),Te=require("../Tooltip-Ao7az09p.cjs"),pe=require("../TranslatedFields-C30ww45c.cjs"),ge=require("../Typography-BFatE1_A.cjs"),Ce=require("../UserCard-C8rC_gzD.cjs"),Fe=require("../toastStore-B4Tk2Xk7.cjs");exports.Form=s.Form;exports.Accordion=e.Accordion;exports.AccordionItem=e.AccordionItem;exports.Alert=l.Alert;exports.AuthLayout=d.AuthLayout;exports.Avatar=q.Avatar;exports.AvatarGroup=T.AvatarGroup;exports.Badge=p.Badge;exports.Blockquote=g.Blockquote;exports.Breadcrumbs=C.Breadcrumbs;exports.Button=F.Button;exports.Card=m.Card;exports.Checkbox=S.Checkbox;exports.Chip=h.Chip;exports.ChoiceCard=r.ChoiceCard;exports.ChoiceCardGroup=r.ChoiceCardGroup;exports.Code=B.Code;exports.CodeBlock=P.CodeBlock;exports.Col=o.Col;exports.Row=o.Row;exports.ColorPicker=y.ColorPicker;exports.CopyButton=k.CopyButton;exports.DashedButton=D.DashedButton;exports.DatePicker=A.DatePicker;exports.DateTimePicker=b.DateTimePicker;exports.Divider=R.Divider;exports.Dropdown=L.Dropdown;exports.EmptyState=I.EmptyState;exports.FileCard=v.FileCard;exports.FileUploader=x.FileUploader;exports.FirstRouteRedirect=t.FirstRouteRedirect;exports.Sidebar=t.Sidebar;exports.Flag=G.Flag;exports.Flex=M.Flex;exports.FullscreenToggle=N.FullscreenToggle;exports.Grid=w.Grid;exports.ICON_COUNT=i.ICON_COUNT;exports.ICON_NAMES=i.ICON_NAMES;exports.Icon=O.Icon;exports.IconButton=E.IconButton;exports.List=U.List;exports.ListItem=_.ListItem;exports.Loader=f.Loader;exports.Masonry=j.Masonry;exports.Modal=z.Modal;exports.MultiSelect=H.MultiSelect;exports.MultilineTextField=J.MultilineTextField;exports.NumberField=K.NumberField;exports.OtpField=Q.OtpField;exports.PageLayout=V.PageLayout;exports.PageNotFound=W.PageNotFound;exports.Pagination=X.Pagination;exports.Popover=Y.Popover;exports.Radio=c.Radio;exports.RadioGroup=c.RadioGroup;exports.RemoveDialog=Z.RemoveDialog;exports.RichTextEditor=$.RichTextEditor;exports.RootLayout=ee.RootLayout;exports.Select=re.Select;exports.Slider=oe.Slider;exports.SpeedDial=u.SpeedDial;exports.SpeedDialAction=u.SpeedDialAction;exports.Stepper=te.Stepper;exports.SwatchPicker=ie.SwatchPicker;exports.Switch=ce.Switch;exports.Table=ue.Table;exports.Tabs=ne.Tabs;exports.TagsField=ae.TagsField;exports.TextField=se.TextField;exports.ThemeToggle=le.ThemeToggle;exports.TimePicker=de.TimePicker;exports.Timeline=n.Timeline;exports.TimelineItem=n.TimelineItem;exports.Toaster=qe.Toaster;exports.ToggleButton=a.ToggleButton;exports.ToggleButtonGroup=a.ToggleButtonGroup;exports.Tooltip=Te.Tooltip;exports.TranslatedFields=pe.TranslatedFields;exports.Typography=ge.Typography;exports.UserCard=Ce.UserCard;exports.toast=Fe.toast;
|
|
2
2
|
//# sourceMappingURL=components.cjs.map
|