@lessly/ui 0.12.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -6
- package/dist/index.d.ts +270 -1
- package/dist/index.js +1316 -275
- package/dist/styles.css +25 -6
- package/package.json +11 -4
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ it is published to the public npm registry (npmjs.com).
|
|
|
16
16
|
- **Components:** shadcn/radix primitives themed by Lessly tokens (Button,
|
|
17
17
|
Dialog, Select, Tabs, …) plus layout: `Grid` / `Col` (the adaptive 4 / 8 / 12
|
|
18
18
|
column grid) and `GridOverlay` (a design-aid overlay). The full catalog lives
|
|
19
|
-
in Storybook at [ui.lessly.com](https://ui.lessly.com).
|
|
19
|
+
in Storybook at [ui.lessly.com/storybook](https://ui.lessly.com/storybook).
|
|
20
20
|
- **Theme:** `useTheme` hook + `ThemeToggle` (toggles the `light` class on
|
|
21
21
|
`<html>`; `:root` is dark, `.light` is light).
|
|
22
22
|
- **Tokens:** the `tailwind-preset` re-exports the token vocabulary from
|
|
@@ -73,17 +73,22 @@ The Storybook toolbar has a global Dark/Light toggle driven by the package's own
|
|
|
73
73
|
|
|
74
74
|
## Deployment (ui.lessly.com)
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
`
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
`ui.lessly.com` is served by a Lessly platform service that builds the repo's root
|
|
77
|
+
`Dockerfile` from `main`. The image runs the zero-dependency `site/server.mjs`, which
|
|
78
|
+
serves the landing page (`site/`) at `/`, the built Storybook (`storybook-static/`) at
|
|
79
|
+
`/storybook`, and a health check at `/healthz`. The Docker build runs `pnpm build`,
|
|
80
|
+
`pnpm build-storybook`, and `pnpm build-site` in turn.
|
|
81
|
+
|
|
82
|
+
The npm package build is `pnpm build` (tsup → `dist/`), which the release flow uses; the
|
|
83
|
+
npm package published to npmjs always contains the package, never the site or Storybook.
|
|
80
84
|
|
|
81
85
|
## Scripts
|
|
82
86
|
|
|
83
87
|
| Script | Description |
|
|
84
88
|
| --- | --- |
|
|
85
89
|
| `pnpm build` | tsup package build → `dist/` (+ assembles `styles.css` from the @lessly/tokens theme, deprecated `--color-*` aliases, ui-local pieces, and the animation layer) — the npm package published to npmjs |
|
|
86
|
-
| `pnpm build-storybook` | Storybook static site → `storybook-static/` —
|
|
90
|
+
| `pnpm build-storybook` | Storybook static site → `storybook-static/` — served at `ui.lessly.com/storybook` by `site/server.mjs` |
|
|
91
|
+
| `pnpm build-site` | Landing app (`site/`) → `site/dist/` — served at `ui.lessly.com/` by `site/server.mjs` |
|
|
87
92
|
| `pnpm storybook` | Storybook dev server on `http://localhost:6006` |
|
|
88
93
|
| `pnpm test` | Vitest |
|
|
89
94
|
| `pnpm type-check` | `tsc --noEmit` |
|
package/dist/index.d.ts
CHANGED
|
@@ -615,6 +615,61 @@ interface EmptyStateProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, '
|
|
|
615
615
|
}
|
|
616
616
|
declare const EmptyState: React$1.ForwardRefExoticComponent<EmptyStateProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
617
617
|
|
|
618
|
+
/**
|
|
619
|
+
* The pre-auth states every internal Google-Workspace-SSO app needs. This is the
|
|
620
|
+
* gate shown BEFORE the app chrome — the post-auth shell is `AppShell`.
|
|
621
|
+
*
|
|
622
|
+
* - `login` — brand, headline, "Continue with Google", domain-restriction note
|
|
623
|
+
* - `forbidden` — signed in, but not in the allowed group (a warning callout)
|
|
624
|
+
* - `error` — load/auth failure with a message + optional retry
|
|
625
|
+
* - `loading` — chromeless brand + spinner
|
|
626
|
+
*/
|
|
627
|
+
type SignInScreenState = 'login' | 'forbidden' | 'error' | 'loading';
|
|
628
|
+
interface SignInScreenProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
629
|
+
/** Which pre-auth state to render. Defaults to `login`. */
|
|
630
|
+
state?: SignInScreenState;
|
|
631
|
+
/** Brand mark shown at the top of the card (and centered in `loading`). Apps pass
|
|
632
|
+
* their own — e.g. a wordmark. */
|
|
633
|
+
brand: React$1.ReactNode;
|
|
634
|
+
/** Small uppercase eyebrow above the headline. Rendered on `login` only, where it
|
|
635
|
+
* orients without cluttering the error/forbidden headers. */
|
|
636
|
+
eyebrow?: React$1.ReactNode;
|
|
637
|
+
/** Headline. Falls back to a per-state default ("Sign in" / "Access restricted" /
|
|
638
|
+
* "Couldn't load"). */
|
|
639
|
+
title?: React$1.ReactNode;
|
|
640
|
+
/** One-line sub under the headline. Falls back to a per-state default. */
|
|
641
|
+
description?: React$1.ReactNode;
|
|
642
|
+
/** Google button label. Default "Continue with Google". */
|
|
643
|
+
googleLabel?: React$1.ReactNode;
|
|
644
|
+
/** Handler for the Google button (`login` state). */
|
|
645
|
+
onGoogle?: () => void;
|
|
646
|
+
/** Busy: disables the Google button and swaps it for a spinner + `signingInLabel`. */
|
|
647
|
+
signingIn?: boolean;
|
|
648
|
+
/** Label shown while `signingIn`. Default "Signing you in…". */
|
|
649
|
+
signingInLabel?: React$1.ReactNode;
|
|
650
|
+
/** Domain-restriction lock note (shown on `login` + `forbidden`). Pass the inner
|
|
651
|
+
* content — the lock icon is supplied. A `<code>` inside is styled as a chip. */
|
|
652
|
+
restriction?: React$1.ReactNode;
|
|
653
|
+
/** Body of the `forbidden` warning callout. */
|
|
654
|
+
forbidden?: React$1.ReactNode;
|
|
655
|
+
/** Body of the `error` danger callout. Falls back to a generic message. */
|
|
656
|
+
error?: React$1.ReactNode;
|
|
657
|
+
/** Retry handler shown as a button on the `error` state. Omit to hide the button. */
|
|
658
|
+
onRetry?: () => void;
|
|
659
|
+
/** Retry button label. Default "Try again". */
|
|
660
|
+
retryLabel?: React$1.ReactNode;
|
|
661
|
+
/** Label for the `loading` state. Default "Loading…". */
|
|
662
|
+
loadingLabel?: React$1.ReactNode;
|
|
663
|
+
/** Muted footer signature. Default "Supercharged by Lessly"; pass `null` to hide. */
|
|
664
|
+
footer?: React$1.ReactNode;
|
|
665
|
+
}
|
|
666
|
+
/**
|
|
667
|
+
* Full-screen pre-auth gate for internal Google Workspace SSO apps. Renders no app
|
|
668
|
+
* chrome. Theme-aware via kit tokens (dark leans on a border + glow ground, light on
|
|
669
|
+
* an elevation shadow); the glow/card treatment tokens live in the kit's styles.css.
|
|
670
|
+
*/
|
|
671
|
+
declare const SignInScreen: React$1.ForwardRefExoticComponent<SignInScreenProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
672
|
+
|
|
618
673
|
interface CopyButtonProps extends Omit<ButtonProps, 'value'> {
|
|
619
674
|
value: string;
|
|
620
675
|
label?: string;
|
|
@@ -885,6 +940,51 @@ type SidebarProductHeaderProps = SidebarProductHeaderOwnProps & Omit<React$1.Com
|
|
|
885
940
|
* which anchors a `MenuPopup` at left:12 with the default sideOffset, no alignOffset. */
|
|
886
941
|
declare const SidebarProductHeader: React$1.ForwardRefExoticComponent<SidebarProductHeaderProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
887
942
|
|
|
943
|
+
interface OrgProductSwitcherItem {
|
|
944
|
+
id: string;
|
|
945
|
+
name: string;
|
|
946
|
+
/** Optional leading mark. Falls back to a lettered tile built from `name`. */
|
|
947
|
+
icon?: React$1.ReactNode;
|
|
948
|
+
}
|
|
949
|
+
/** A row in the menu's footer action group — e.g. Create product, Product settings, Org
|
|
950
|
+
* settings. `href` renders a link (right-click / new-tab work); otherwise `onSelect` fires. */
|
|
951
|
+
interface OrgProductSwitcherAction {
|
|
952
|
+
id: string;
|
|
953
|
+
label: string;
|
|
954
|
+
icon?: React$1.ReactNode;
|
|
955
|
+
onSelect?: () => void;
|
|
956
|
+
href?: string;
|
|
957
|
+
}
|
|
958
|
+
interface OrgProductSwitcherProps {
|
|
959
|
+
/** All organizations the user can switch to. */
|
|
960
|
+
organizations: OrgProductSwitcherItem[];
|
|
961
|
+
activeOrgId: string;
|
|
962
|
+
onOrgSelect: (id: string) => void;
|
|
963
|
+
/** Products for the ACTIVE org. The consumer re-supplies these when the org changes. */
|
|
964
|
+
products: OrgProductSwitcherItem[];
|
|
965
|
+
activeProductId: string;
|
|
966
|
+
onProductSelect: (id: string) => void;
|
|
967
|
+
/** Footer actions below the products (Create product, Product settings, …). The group and
|
|
968
|
+
* its divider render only when this is non-empty — the consumer owns which rows appear. */
|
|
969
|
+
actions?: OrgProductSwitcherAction[];
|
|
970
|
+
/** Accessible name for the trigger. Defaults to `"<org> / <product>"`. */
|
|
971
|
+
'aria-label'?: string;
|
|
972
|
+
className?: string;
|
|
973
|
+
}
|
|
974
|
+
/**
|
|
975
|
+
* Compound organization·product switcher for the sidebar header (#81): a single control that
|
|
976
|
+
* shows the current **org** as a label above the current **product**, and opens one menu to
|
|
977
|
+
* switch either — Organizations, then the active org's Products.
|
|
978
|
+
*
|
|
979
|
+
* Presentational: the consumer owns selection state and re-supplies `products` +
|
|
980
|
+
* `activeProductId` for the newly-selected org. Wiring org/product switches to routing is the
|
|
981
|
+
* consumer's job.
|
|
982
|
+
*/
|
|
983
|
+
declare function OrgProductSwitcher({ organizations, activeOrgId, onOrgSelect, products, activeProductId, onProductSelect, actions, className, ...props }: OrgProductSwitcherProps): React$1.JSX.Element;
|
|
984
|
+
declare namespace OrgProductSwitcher {
|
|
985
|
+
var displayName: string;
|
|
986
|
+
}
|
|
987
|
+
|
|
888
988
|
/** A slot's native attributes plus an explicit `data-*` index, so an object literal like
|
|
889
989
|
* `{ 'data-testid': 'drill-back' }` passes excess-property checking — plain
|
|
890
990
|
* `React.HTMLAttributes` does not declare `data-*` as a named property. */
|
|
@@ -993,6 +1093,29 @@ interface ColProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
993
1093
|
}
|
|
994
1094
|
declare const Col: React$1.ForwardRefExoticComponent<ColProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
995
1095
|
|
|
1096
|
+
/**
|
|
1097
|
+
* Dependency-free syntax highlighter for docs/consumer code snippets. A single
|
|
1098
|
+
* ordered-alternation regex per language tokenizes the source into typed runs;
|
|
1099
|
+
* no prism/shiki. Fidelity is "good enough for short snippets", and the public
|
|
1100
|
+
* API is stable so the engine can be swapped later. Generalized from the
|
|
1101
|
+
* landing page's local highlighter (ui.lessly.com #62).
|
|
1102
|
+
*/
|
|
1103
|
+
type CodeLang = 'tsx' | 'ts' | 'bash' | 'json' | 'css';
|
|
1104
|
+
interface CodeBlockProps extends React$1.HTMLAttributes<HTMLPreElement> {
|
|
1105
|
+
code: string;
|
|
1106
|
+
lang?: CodeLang;
|
|
1107
|
+
/** Show a copy button in the header (frames the block). */
|
|
1108
|
+
copy?: boolean;
|
|
1109
|
+
/** Optional filename caption in the header (frames the block). */
|
|
1110
|
+
filename?: string;
|
|
1111
|
+
/** Scroll long lines instead of wrapping (default: wrap). */
|
|
1112
|
+
scroll?: boolean;
|
|
1113
|
+
}
|
|
1114
|
+
declare const CodeBlock: React$1.ForwardRefExoticComponent<CodeBlockProps & React$1.RefAttributes<HTMLPreElement>>;
|
|
1115
|
+
type CodeProps = React$1.HTMLAttributes<HTMLElement>;
|
|
1116
|
+
/** Inline code — a styled `<code>` for prose (`<Code>@lessly/ui</Code>`). */
|
|
1117
|
+
declare const Code: React$1.ForwardRefExoticComponent<CodeProps & React$1.RefAttributes<HTMLElement>>;
|
|
1118
|
+
|
|
996
1119
|
interface GridOverlayProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
997
1120
|
/** Number of columns to paint (e.g. 4, 8 or 12). Fixed, viewport-independent. */
|
|
998
1121
|
columns: number;
|
|
@@ -1159,4 +1282,150 @@ interface CreateProductWindowProps {
|
|
|
1159
1282
|
}
|
|
1160
1283
|
declare function CreateProductWindow({ organizations, selectedOrgId, products, productsLoading, submitting, error, onOrganizationChange, onEnterProduct, onSubmit, }: CreateProductWindowProps): React$1.JSX.Element;
|
|
1161
1284
|
|
|
1162
|
-
|
|
1285
|
+
/** FYI / Important / Critical — the one severity vocabulary. */
|
|
1286
|
+
type NotificationSeverity = 'critical' | 'important' | 'fyi';
|
|
1287
|
+
/**
|
|
1288
|
+
* How the item behaves, not how loud it is. `informational` settles when read,
|
|
1289
|
+
* `actionable` waits on a decision, `ephemeral` is ambient progress and never
|
|
1290
|
+
* settles.
|
|
1291
|
+
*/
|
|
1292
|
+
type NotificationClass = 'informational' | 'actionable' | 'ephemeral';
|
|
1293
|
+
/**
|
|
1294
|
+
* Short aliases. The prefixed names above are primary — `Severity` on its own is
|
|
1295
|
+
* too generic for a package-root export to own — but both spellings are public.
|
|
1296
|
+
*/
|
|
1297
|
+
type Severity = NotificationSeverity;
|
|
1298
|
+
type NotifClass = NotificationClass;
|
|
1299
|
+
interface NotificationAction {
|
|
1300
|
+
id: string;
|
|
1301
|
+
label: string;
|
|
1302
|
+
/**
|
|
1303
|
+
* `primary` and `destructive` render as chips — they are the deliberate
|
|
1304
|
+
* decision pair. Everything else is flush text. Default `link`.
|
|
1305
|
+
*/
|
|
1306
|
+
variant?: 'primary' | 'destructive' | 'link';
|
|
1307
|
+
}
|
|
1308
|
+
/** A durable destination. Survives into the archive after the row settles. */
|
|
1309
|
+
interface NotificationDeepLink {
|
|
1310
|
+
label: string;
|
|
1311
|
+
href?: string;
|
|
1312
|
+
}
|
|
1313
|
+
interface NotificationItem {
|
|
1314
|
+
id: string;
|
|
1315
|
+
title: string;
|
|
1316
|
+
/** Provenance — the module that raised it, e.g. "Ship". Renders as the eyebrow. */
|
|
1317
|
+
source: string;
|
|
1318
|
+
severity: NotificationSeverity;
|
|
1319
|
+
body?: string;
|
|
1320
|
+
/** Default `informational`. */
|
|
1321
|
+
cls?: NotificationClass;
|
|
1322
|
+
read?: boolean;
|
|
1323
|
+
/**
|
|
1324
|
+
* The receipt for a handled item, e.g. "Approved by artur". Its presence is
|
|
1325
|
+
* what makes a row settled: the row dims and one-time actions drop off.
|
|
1326
|
+
*/
|
|
1327
|
+
receipt?: string;
|
|
1328
|
+
createdAt?: string | Date;
|
|
1329
|
+
deepLink?: NotificationDeepLink;
|
|
1330
|
+
/** One-time actions. Dropped once settled — the receipt replaces them. */
|
|
1331
|
+
actions?: NotificationAction[];
|
|
1332
|
+
/** Optional grouping key for the centre's product filter. */
|
|
1333
|
+
product?: string;
|
|
1334
|
+
}
|
|
1335
|
+
type NotificationThreshold = 'everything' | 'important' | 'critical only';
|
|
1336
|
+
interface NotificationSubscription {
|
|
1337
|
+
id: string;
|
|
1338
|
+
name: string;
|
|
1339
|
+
scope: 'org' | 'product';
|
|
1340
|
+
}
|
|
1341
|
+
interface NotificationPreferences {
|
|
1342
|
+
thresholds: Record<string, NotificationThreshold>;
|
|
1343
|
+
}
|
|
1344
|
+
interface NotificationMute {
|
|
1345
|
+
source: string;
|
|
1346
|
+
/** Pre-formatted, e.g. "42m left". Counting down is a timer — not our job. */
|
|
1347
|
+
label: string;
|
|
1348
|
+
}
|
|
1349
|
+
interface NotificationProduct {
|
|
1350
|
+
id: string;
|
|
1351
|
+
label: string;
|
|
1352
|
+
}
|
|
1353
|
+
declare const severityLabels: Record<NotificationSeverity, string>;
|
|
1354
|
+
declare function severityBadgeVariant(severity: NotificationSeverity): 'destructive' | 'warning' | 'secondary';
|
|
1355
|
+
/**
|
|
1356
|
+
* Reads a stamp as a relative age. `now` is injectable so the components stay
|
|
1357
|
+
* testable and consumers can substitute an absolute or localized formatter; the
|
|
1358
|
+
* default reads the clock once during render, which is not a timer.
|
|
1359
|
+
*/
|
|
1360
|
+
declare function formatRelativeAge(createdAt: string | Date, now?: Date): string;
|
|
1361
|
+
/**
|
|
1362
|
+
* A settled item is one that has been dealt with: it dims, keeps its deep link
|
|
1363
|
+
* and drops its one-time actions. Ephemeral items are ambient progress — they
|
|
1364
|
+
* are never "handled", so they never settle.
|
|
1365
|
+
*/
|
|
1366
|
+
declare function isNotificationSettled(item: NotificationItem): boolean;
|
|
1367
|
+
|
|
1368
|
+
interface NotificationBellProps {
|
|
1369
|
+
items: NotificationItem[];
|
|
1370
|
+
/** Defaults to the count of unread, non-ephemeral items. */
|
|
1371
|
+
unreadCount?: number;
|
|
1372
|
+
/** Rows shown in the popover. Default 5. */
|
|
1373
|
+
maxItems?: number;
|
|
1374
|
+
/**
|
|
1375
|
+
* Reported when the consumer's own row affordance marks a single item read.
|
|
1376
|
+
* The default row surfaces the item through `onItemClick`; this exists so a
|
|
1377
|
+
* host that renders its own control has the callback the model expects.
|
|
1378
|
+
*/
|
|
1379
|
+
onMarkRead?(id: string): void;
|
|
1380
|
+
onMarkAllRead?(): void;
|
|
1381
|
+
onItemClick?(item: NotificationItem): void;
|
|
1382
|
+
onActionClick?(item: NotificationItem, action: NotificationAction): void;
|
|
1383
|
+
/** Header gear. Rendered only when supplied. */
|
|
1384
|
+
onOpenSettings?(): void;
|
|
1385
|
+
/** Footer link. Rendered only when supplied and there is at least one item. */
|
|
1386
|
+
onOpenArchive?(): void;
|
|
1387
|
+
open?: boolean;
|
|
1388
|
+
onOpenChange?(open: boolean): void;
|
|
1389
|
+
/** Override the default relative-age label. */
|
|
1390
|
+
formatAge?(createdAt: Date): string;
|
|
1391
|
+
className?: string;
|
|
1392
|
+
}
|
|
1393
|
+
declare const NotificationBell: React$1.ForwardRefExoticComponent<NotificationBellProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1394
|
+
|
|
1395
|
+
interface NotificationCenterProps {
|
|
1396
|
+
items: NotificationItem[];
|
|
1397
|
+
title?: string;
|
|
1398
|
+
description?: React$1.ReactNode;
|
|
1399
|
+
/** Source filter chips. Derived from `items` when omitted. */
|
|
1400
|
+
sources?: string[];
|
|
1401
|
+
/** Product filter chips. Rendered only when supplied. */
|
|
1402
|
+
products?: NotificationProduct[];
|
|
1403
|
+
searchable?: boolean;
|
|
1404
|
+
pageSize?: number;
|
|
1405
|
+
onItemClick?(item: NotificationItem): void;
|
|
1406
|
+
onDeepLinkClick?(item: NotificationItem): void;
|
|
1407
|
+
/** "Read all". Rendered only when supplied. */
|
|
1408
|
+
onMarkAllRead?(): void;
|
|
1409
|
+
/** Override the default relative-age label. */
|
|
1410
|
+
formatAge?(createdAt: Date): string;
|
|
1411
|
+
className?: string;
|
|
1412
|
+
}
|
|
1413
|
+
declare const NotificationCenter: React$1.ForwardRefExoticComponent<NotificationCenterProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1414
|
+
|
|
1415
|
+
interface NotificationSettingsProps {
|
|
1416
|
+
subscriptions: NotificationSubscription[];
|
|
1417
|
+
/** Keyed by product id, plus the required `default` key. */
|
|
1418
|
+
value: Record<string, NotificationPreferences>;
|
|
1419
|
+
onChange(next: Record<string, NotificationPreferences>): void;
|
|
1420
|
+
products?: NotificationProduct[];
|
|
1421
|
+
soundEnabled?: boolean;
|
|
1422
|
+
onSoundEnabledChange?(v: boolean): void;
|
|
1423
|
+
mutes?: NotificationMute[];
|
|
1424
|
+
onUnmute?(source: string): void;
|
|
1425
|
+
/** The "Push to" area. Falls back to the not-connected notice. */
|
|
1426
|
+
pushSlot?: React$1.ReactNode;
|
|
1427
|
+
className?: string;
|
|
1428
|
+
}
|
|
1429
|
+
declare const NotificationSettings: React$1.ForwardRefExoticComponent<NotificationSettingsProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1430
|
+
|
|
1431
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AppShell, type AppShellProps, AppSidebar, type AppSidebarProps, AspectRatio, AuthenticatedLayout, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonProps, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, type CarouselContextProps, CarouselItem, CarouselNext, type CarouselOptions, type CarouselPlugin, CarouselPrevious, type CarouselProps, Checkbox, Code, CodeBlock, type CodeBlockProps, type CodeLang, type CodeProps, Col, type ColProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, type ConfirmDialogProps, type ConnectionAuth, ConnectionCard, type ConnectionCardProps, type ConnectionScope, type ConnectionStatus, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, type CopyButtonProps, type CreateProductSubmit, CreateProductWindow, type CreateProductWindowOrganization, type CreateProductWindowProduct, type CreateProductWindowProps, DatePicker, type DatePickerProps, type DeltaDirection, type DeltaTone, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DocsLink, type DocsLinkProps, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, ExtensionIcon, type ExtensionIconProps, ExtensionLink, type ExtensionLinkProps, type ExtensionLinkUiMode, FeedbackButton, type FeedbackButtonLabels, type FeedbackButtonProps, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Grid, GridOverlay, type GridOverlayProps, type GridProps, HoverCard, HoverCardContent, HoverCardTrigger, InlineError, type InlineErrorProps, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Label, MenuDivider, MenuPopup, type MenuPopupProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, type NavItem, type NavLinkComponent, NavRow, type NavRowProps, type NavRowVariant, NavSectionLabel, type NavSectionLabelProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, type NotifClass, type NotificationAction, NotificationBell, type NotificationBellProps, NotificationCenter, type NotificationCenterProps, type NotificationClass, type NotificationDeepLink, type NotificationItem, type NotificationMute, type NotificationPreferences, type NotificationProduct, NotificationSettings, type NotificationSettingsProps, type NotificationSeverity, type NotificationSubscription, type NotificationThreshold, OrgProductSwitcher, type OrgProductSwitcherAction, type OrgProductSwitcherItem, type OrgProductSwitcherProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, type PaginationLinkProps, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, RequestRow, type RequestRowProps, type RequestState, type RequestSurface, type ResolvedTheme, type Responsive, ScrollArea, ScrollBar, SectionIntro, type SectionIntroProps, SegmentChip, type SegmentChipProps, Select, type SelectOption, type SelectProps, Separator, type Severity, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SidebarBackHeader, type SidebarBackHeaderProps, SidebarNav, SidebarNavLink, type SidebarNavLinkProps, type SidebarNavProps, SidebarProductHeader, type SidebarProductHeaderProps, SignInScreen, type SignInScreenProps, type SignInScreenState, Skeleton, Slider, StatCard, type StatCardProps, StatusDot, type StatusDotProps, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, type Theme, ThemeToggle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type UseSidebarOptions, type UseSidebarResult, UserMenu, type UserMenuItem, type UserMenuProps, type UserMenuUser, alertVariants, badgeVariants, buttonVariants, cn, formatRelativeAge, isKnownExtensionIcon, isNotificationSettled, navigationMenuTriggerStyle, segmentChipVariants, severityBadgeVariant, severityLabels, statusDotVariants, toggleVariants, useCarousel, useFormField, useIsMobile, useSidebar, useTheme };
|