@nswds/app 1.61.0 → 1.61.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/dist/index.js CHANGED
@@ -13,20 +13,12 @@ import { RiArrowLeftSLine, RiArrowRightSLine } from '@remixicon/react';
13
13
  import * as RechartsPrimitive from 'recharts';
14
14
  import { ResponsiveContainer, AreaChart as AreaChart$1, CartesianGrid, XAxis, Label, YAxis, Tooltip, Legend as Legend$1, Area, Dot, Line, BarChart as BarChart$1, Bar, ComposedChart, PieChart, Pie, LineChart as LineChart$1, Sector } from 'recharts';
15
15
  import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
16
- import { createClient } from '@libsql/client';
17
- import { drizzle } from 'drizzle-orm/libsql';
18
- import { sqliteTable, text, integer, primaryKey } from 'drizzle-orm/sqlite-core';
19
- import { DrizzleAdapter } from '@auth/drizzle-adapter';
20
- import { and, eq } from 'drizzle-orm';
21
- import NextAuth from 'next-auth';
22
- import MicrosoftEntraID from 'next-auth/providers/microsoft-entra-id';
23
16
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
24
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
25
- import { DropdownMenuTrigger as DropdownMenuTrigger$1 } from '@radix-ui/react-dropdown-menu';
26
- import { useSession } from 'next-auth/react';
27
17
  import * as culori from 'culori';
28
18
  import { Slot } from '@radix-ui/react-slot';
29
19
  import { usePathname, useRouter, useSearchParams } from 'next/navigation';
20
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
21
+ import { DropdownMenuTrigger as DropdownMenuTrigger$1 } from '@radix-ui/react-dropdown-menu';
30
22
  import { getDefaultClassNames, DayPicker } from 'react-day-picker';
31
23
  import useEmblaCarousel from 'embla-carousel-react';
32
24
  import { ArrowLeft, ArrowRight, CircleIcon, MinusIcon, Layers, Hash } from 'lucide-react';
@@ -71,17 +63,12 @@ import { slugifyWithCounter } from '@sindresorhus/slugify';
71
63
  import { create } from 'zustand';
72
64
  import { persist, createJSONStorage } from 'zustand/middleware';
73
65
 
74
- var __defProp = Object.defineProperty;
75
66
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
76
67
  get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
77
68
  }) : x)(function(x) {
78
69
  if (typeof require !== "undefined") return require.apply(this, arguments);
79
70
  throw Error('Dynamic require of "' + x + '" is not supported');
80
71
  });
81
- var __export = (target, all) => {
82
- for (var name in all)
83
- __defProp(target, name, { get: all[name], enumerable: true });
84
- };
85
72
  var Icons = {
86
73
  account_circle: (props) => /* @__PURE__ */ jsx("svg", { fill: "currentColor", "data-slot": "icon", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx("path", { d: "M234-276q51-39 114-61.5T480-360q69 0 132 22.5T726-276q35-41 54.5-93T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 59 19.5 111t54.5 93Zm246-164q-59 0-99.5-40.5T340-580q0-59 40.5-99.5T480-720q59 0 99.5 40.5T620-580q0 59-40.5 99.5T480-440Zm0 360q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q53 0 100-15.5t86-44.5q-39-29-86-44.5T480-280q-53 0-100 15.5T294-220q39 29 86 44.5T480-160Zm0-360q26 0 43-17t17-43q0-26-17-43t-43-17q-26 0-43 17t-17 43q0 26 17 43t43 17Zm0-60Zm0 360Z" }) }),
87
74
  add_circle: (props) => /* @__PURE__ */ jsx("svg", { fill: "currentColor", "data-slot": "icon", viewBox: "0 -960 960 960", ...props, children: /* @__PURE__ */ jsx("path", { d: "M440-440v120q0 17 11.5 28.5T480-280q17 0 28.5-11.5T520-320v-120h120q17 0 28.5-11.5T680-480q0-17-11.5-28.5T640-520H520v-120q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640v120H320q-17 0-28.5 11.5T280-480q0 17 11.5 28.5T320-440h120Zm40 360q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" }) }),
@@ -207,11 +194,11 @@ var Icons = {
207
194
  function cn(...inputs) {
208
195
  return twMerge(clsx(inputs));
209
196
  }
210
- function truncate(text4, maxLength) {
211
- if (text4.length <= maxLength) {
212
- return text4;
197
+ function truncate(text, maxLength) {
198
+ if (text.length <= maxLength) {
199
+ return text;
213
200
  }
214
- return text4.slice(0, maxLength) + "...";
201
+ return text.slice(0, maxLength) + "...";
215
202
  }
216
203
  function kebabCase(str) {
217
204
  return str.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[\s_]+/g, "-").toLowerCase();
@@ -1622,162 +1609,8 @@ AreaChart.displayName = "AreaChart";
1622
1609
  function AspectRatio({ ...props }) {
1623
1610
  return /* @__PURE__ */ jsx(AspectRatioPrimitive.Root, { "data-slot": "aspect-ratio", ...props });
1624
1611
  }
1625
-
1626
- // src/db/schema/accounts.ts
1627
- var accounts_exports = {};
1628
- __export(accounts_exports, {
1629
- accounts: () => accounts
1630
- });
1631
-
1632
- // src/db/schema/users.ts
1633
- var users_exports = {};
1634
- __export(users_exports, {
1635
- users: () => users
1636
- });
1637
- var users = sqliteTable("user", {
1638
- id: text("id").primaryKey().$defaultFn(() => crypto.randomUUID()),
1639
- name: text("name"),
1640
- email: text("email").unique(),
1641
- emailVerified: integer("emailVerified", { mode: "timestamp_ms" }),
1642
- image: text("image"),
1643
- role: text("role", { enum: ["ADMIN", "USER"] }).default("USER")
1644
- });
1645
-
1646
- // src/db/schema/accounts.ts
1647
- var accounts = sqliteTable(
1648
- "account",
1649
- {
1650
- userId: text("userId").notNull().references(() => users.id, { onDelete: "cascade" }),
1651
- type: text("type").$type().notNull(),
1652
- provider: text("provider").notNull(),
1653
- providerAccountId: text("providerAccountId").notNull(),
1654
- refresh_token: text("refresh_token"),
1655
- access_token: text("access_token"),
1656
- expires_at: integer("expires_at"),
1657
- token_type: text("token_type"),
1658
- scope: text("scope"),
1659
- id_token: text("id_token"),
1660
- session_state: text("session_state")
1661
- },
1662
- (table) => [
1663
- primaryKey({
1664
- columns: [table.provider, table.providerAccountId],
1665
- name: "accounts_pk"
1666
- })
1667
- ]
1668
- );
1669
-
1670
- // src/db/schema/sessions.ts
1671
- var sessions_exports = {};
1672
- __export(sessions_exports, {
1673
- sessions: () => sessions
1674
- });
1675
- var sessions = sqliteTable("session", {
1676
- sessionToken: text("sessionToken").primaryKey(),
1677
- userId: text("userId").notNull().references(() => users.id, { onDelete: "cascade" }),
1678
- expires: integer("expires", { mode: "timestamp_ms" }).notNull()
1679
- });
1680
-
1681
- // src/db/index.ts
1682
- var client = createClient({
1683
- url: process.env.TURSO_DATABASE_URL,
1684
- authToken: process.env.TURSO_AUTH_TOKEN
1685
- });
1686
- var db = drizzle(client, {
1687
- schema: {
1688
- ...users_exports,
1689
- ...accounts_exports,
1690
- ...sessions_exports
1691
- }
1692
- });
1693
- var { handlers, signIn, signOut, auth } = NextAuth({
1694
- adapter: DrizzleAdapter(db),
1695
- pages: {
1696
- signIn: "/api/auth/signin-microsoft"
1697
- },
1698
- providers: [
1699
- MicrosoftEntraID({
1700
- clientId: process.env.AUTH_MICROSOFT_ENTRA_ID_ID,
1701
- clientSecret: process.env.AUTH_MICROSOFT_ENTRA_ID_SECRET,
1702
- issuer: process.env.AUTH_MICROSOFT_ENTRA_ID_ISSUER,
1703
- authorization: {
1704
- params: {
1705
- scope: "openid profile email User.Read offline_access",
1706
- tenant: process.env.AUTH_MICROSOFT_ENTRA_ID_TENANT_ID
1707
- }
1708
- }
1709
- })
1710
- ],
1711
- callbacks: {
1712
- authorized: async ({ auth: auth2, request }) => {
1713
- const nonPublicPaths = ["/tests", "/dashboard"];
1714
- const path = request.nextUrl.pathname;
1715
- const isNonPublic = nonPublicPaths.some((prefix) => path.startsWith(prefix));
1716
- if (isNonPublic) {
1717
- return !!auth2;
1718
- }
1719
- return true;
1720
- },
1721
- jwt({ token, user }) {
1722
- if (user) {
1723
- token.id = user.id;
1724
- }
1725
- return token;
1726
- },
1727
- async session({ session, user }) {
1728
- session.user.id = user.id;
1729
- const [microsoftAccount] = await db.select().from(accounts).where(and(eq(accounts.userId, user.id), eq(accounts.provider, "microsoft-entra-id"))).limit(1);
1730
- if (microsoftAccount && microsoftAccount.expires_at && microsoftAccount.expires_at * 1e3 < Date.now()) {
1731
- try {
1732
- const tokenEndpoint = `https://login.microsoftonline.com/${process.env.AUTH_MICROSOFT_ENTRA_ID_TENANT_ID}/oauth2/v2.0/token`;
1733
- const response = await fetch(tokenEndpoint, {
1734
- method: "POST",
1735
- headers: {
1736
- "Content-Type": "application/x-www-form-urlencoded"
1737
- },
1738
- body: new URLSearchParams({
1739
- client_id: process.env.AUTH_MICROSOFT_ENTRA_ID_ID,
1740
- client_secret: process.env.AUTH_MICROSOFT_ENTRA_ID_SECRET,
1741
- grant_type: "refresh_token",
1742
- refresh_token: microsoftAccount.refresh_token,
1743
- scope: "openid profile email offline_access"
1744
- })
1745
- });
1746
- const tokensOrError = await response.json();
1747
- if (!response.ok) throw tokensOrError;
1748
- const newTokens = tokensOrError;
1749
- await db.update(accounts).set({
1750
- access_token: newTokens.access_token,
1751
- expires_at: Math.floor(Date.now() / 1e3 + newTokens.expires_in),
1752
- refresh_token: newTokens.refresh_token ?? microsoftAccount.refresh_token,
1753
- id_token: newTokens.id_token ?? microsoftAccount.id_token
1754
- }).where(
1755
- and(
1756
- eq(accounts.provider, "microsoft-entra-id"),
1757
- eq(accounts.providerAccountId, microsoftAccount.providerAccountId)
1758
- )
1759
- );
1760
- } catch (error) {
1761
- console.error("Error refreshing access_token", error);
1762
- session.error = "RefreshTokenError";
1763
- }
1764
- }
1765
- return session;
1766
- }
1767
- }
1768
- });
1769
-
1770
- // src/actions/auth-actions.ts
1771
- async function signInWithEntra(formData) {
1772
- const redirect = formData.get("redirect")?.toString() || "/dashboard";
1773
- await signIn("microsoft-entra-id", { redirectTo: redirect });
1774
- }
1775
- async function signInGeneric(formData) {
1776
- const redirect = formData.get("redirect")?.toString() || "/dashboard";
1777
- await signIn(void 0, { redirectTo: redirect });
1778
- }
1779
- async function signOutAction() {
1780
- await signOut();
1612
+ function AuthLayout({ children }) {
1613
+ return /* @__PURE__ */ jsx("main", { className: "flex min-h-dvh flex-col p-2", children: /* @__PURE__ */ jsx("div", { className: "flex grow items-center justify-center p-6 lg:rounded-sm lg:bg-white lg:p-10 lg:shadow-xs lg:ring-1 lg:ring-grey-950/5 dark:lg:bg-grey-900 dark:lg:ring-white/10", children }) });
1781
1614
  }
1782
1615
  function Avatar({ className, ...props }) {
1783
1616
  return /* @__PURE__ */ jsx(
@@ -1812,254 +1645,6 @@ function AvatarFallback({
1812
1645
  }
1813
1646
  );
1814
1647
  }
1815
- function DropdownMenu({ ...props }) {
1816
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
1817
- }
1818
- function DropdownMenuPortal({
1819
- ...props
1820
- }) {
1821
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
1822
- }
1823
- function DropdownMenuTrigger({
1824
- ...props
1825
- }) {
1826
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
1827
- }
1828
- function DropdownMenuContent({
1829
- className,
1830
- sideOffset = 4,
1831
- ...props
1832
- }) {
1833
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
1834
- DropdownMenuPrimitive.Content,
1835
- {
1836
- "data-slot": "dropdown-menu-content",
1837
- sideOffset,
1838
- className: cn(
1839
- [
1840
- // Base
1841
- "z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-sm border bg-background p-1 text-foreground shadow-md",
1842
- // Open
1843
- "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
1844
- // Closed
1845
- "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
1846
- // Side
1847
- "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
1848
- // Hover
1849
- "",
1850
- // Focus
1851
- "",
1852
- // Active
1853
- ""
1854
- ],
1855
- className
1856
- ),
1857
- ...props
1858
- }
1859
- ) });
1860
- }
1861
- function DropdownMenuGroup({ ...props }) {
1862
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props });
1863
- }
1864
- function DropdownMenuItem({
1865
- className,
1866
- inset,
1867
- variant = "default",
1868
- ...props
1869
- }) {
1870
- return /* @__PURE__ */ jsx(
1871
- DropdownMenuPrimitive.Item,
1872
- {
1873
- "data-slot": "dropdown-menu-item",
1874
- "data-inset": inset,
1875
- "data-variant": variant,
1876
- className: cn(
1877
- [
1878
- // Base
1879
- ""
1880
- ],
1881
- "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-primary-800/10 focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:!text-destructive",
1882
- className
1883
- ),
1884
- ...props
1885
- }
1886
- );
1887
- }
1888
- function DropdownMenuCheckboxItem({
1889
- className,
1890
- children,
1891
- checked,
1892
- ...props
1893
- }) {
1894
- return /* @__PURE__ */ jsxs(
1895
- DropdownMenuPrimitive.CheckboxItem,
1896
- {
1897
- "data-slot": "dropdown-menu-checkbox-item",
1898
- className: cn(
1899
- [
1900
- // Base
1901
- ""
1902
- ],
1903
- "relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-primary-800/10 focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1904
- className
1905
- ),
1906
- checked,
1907
- ...props,
1908
- children: [
1909
- /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Icons.check, { className: "size-4" }) }) }),
1910
- children
1911
- ]
1912
- }
1913
- );
1914
- }
1915
- function DropdownMenuRadioGroup({
1916
- ...props
1917
- }) {
1918
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.RadioGroup, { "data-slot": "dropdown-menu-radio-group", ...props });
1919
- }
1920
- function DropdownMenuRadioItem({
1921
- className,
1922
- children,
1923
- ...props
1924
- }) {
1925
- return /* @__PURE__ */ jsxs(
1926
- DropdownMenuPrimitive.RadioItem,
1927
- {
1928
- "data-slot": "dropdown-menu-radio-item",
1929
- className: cn(
1930
- [
1931
- // Base
1932
- ""
1933
- ],
1934
- "relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-primary-800/10 focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1935
- className
1936
- ),
1937
- ...props,
1938
- children: [
1939
- /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Icons.circle, { className: "size-2 fill-current" }) }) }),
1940
- children
1941
- ]
1942
- }
1943
- );
1944
- }
1945
- function DropdownMenuLabel({
1946
- className,
1947
- inset,
1948
- ...props
1949
- }) {
1950
- return /* @__PURE__ */ jsx(
1951
- DropdownMenuPrimitive.Label,
1952
- {
1953
- "data-slot": "dropdown-menu-label",
1954
- "data-inset": inset,
1955
- className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className),
1956
- ...props
1957
- }
1958
- );
1959
- }
1960
- function DropdownMenuSeparator({
1961
- className,
1962
- ...props
1963
- }) {
1964
- return /* @__PURE__ */ jsx(
1965
- DropdownMenuPrimitive.Separator,
1966
- {
1967
- "data-slot": "dropdown-menu-separator",
1968
- className: cn("-mx-1 my-1 h-px bg-border", className),
1969
- ...props
1970
- }
1971
- );
1972
- }
1973
- function DropdownMenuShortcut({ className, ...props }) {
1974
- return /* @__PURE__ */ jsx(
1975
- "span",
1976
- {
1977
- "data-slot": "dropdown-menu-shortcut",
1978
- className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className),
1979
- ...props
1980
- }
1981
- );
1982
- }
1983
- function DropdownMenuSub({ ...props }) {
1984
- return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
1985
- }
1986
- function DropdownMenuSubTrigger({
1987
- className,
1988
- inset,
1989
- children,
1990
- ...props
1991
- }) {
1992
- return /* @__PURE__ */ jsxs(
1993
- DropdownMenuPrimitive.SubTrigger,
1994
- {
1995
- "data-slot": "dropdown-menu-sub-trigger",
1996
- "data-inset": inset,
1997
- className: cn(
1998
- [
1999
- // Base
2000
- ""
2001
- ],
2002
- "flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-primary-800/10 focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-primary-800/10 data-[state=open]:text-accent-foreground",
2003
- className
2004
- ),
2005
- ...props,
2006
- children: [
2007
- children,
2008
- /* @__PURE__ */ jsx(Icons.chevron_right, { className: "ml-auto size-4" })
2009
- ]
2010
- }
2011
- );
2012
- }
2013
- function DropdownMenuSubContent({
2014
- className,
2015
- ...props
2016
- }) {
2017
- return /* @__PURE__ */ jsx(
2018
- DropdownMenuPrimitive.SubContent,
2019
- {
2020
- "data-slot": "dropdown-menu-sub-content",
2021
- className: cn(
2022
- [
2023
- // Base
2024
- ""
2025
- ],
2026
- "z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
2027
- className
2028
- ),
2029
- ...props
2030
- }
2031
- );
2032
- }
2033
- function AuthButton({ user, children }) {
2034
- if (!user) {
2035
- return /* @__PURE__ */ jsx("form", { action: signInWithEntra, children: /* @__PURE__ */ jsx(Button2, { type: "submit", variant: "surface", color: "light", children: "Sign In" }) });
2036
- }
2037
- return /* @__PURE__ */ jsxs(DropdownMenu, { children: [
2038
- /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button2, { variant: "surface", color: "light", className: "flex items-center gap-2", children: [
2039
- /* @__PURE__ */ jsxs(Avatar, { className: "h-5 w-5", children: [
2040
- user.image && /* @__PURE__ */ jsx(AvatarImage, { src: user.image, alt: user.name || "User" }),
2041
- /* @__PURE__ */ jsx(AvatarFallback, { className: "text-xs", children: user.name?.split(" ").map((n) => n[0]).join("") || "U" })
2042
- ] }),
2043
- /* @__PURE__ */ jsx("div", { className: "flex flex-col items-start text-sm", children: /* @__PURE__ */ jsx("span", { className: "font-medium", children: user.name }) }),
2044
- /* @__PURE__ */ jsx(Icons.chevron_down, { className: "h-4 w-4 opacity-70" })
2045
- ] }) }),
2046
- /* @__PURE__ */ jsxs(DropdownMenuContent, { className: "w-56", align: "start", children: [
2047
- children,
2048
- /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
2049
- /* @__PURE__ */ jsx(DropdownMenuItem, { asChild: true, className: "cursor-pointer", children: /* @__PURE__ */ jsx("form", { action: signOutAction, className: "w-full", children: /* @__PURE__ */ jsxs("button", { type: "submit", className: "flex w-full cursor-pointer items-center", children: [
2050
- /* @__PURE__ */ jsx(Icons.logout, { className: "mr-2 h-4 w-4" }),
2051
- /* @__PURE__ */ jsx("span", { children: "Sign out" })
2052
- ] }) }) })
2053
- ] })
2054
- ] });
2055
- }
2056
- function AuthButtonWrapper() {
2057
- const { data: session } = useSession();
2058
- return /* @__PURE__ */ jsx(AuthButton, { user: session?.user });
2059
- }
2060
- function AuthLayout({ children }) {
2061
- return /* @__PURE__ */ jsx("main", { className: "flex min-h-dvh flex-col p-2", children: /* @__PURE__ */ jsx("div", { className: "flex grow items-center justify-center p-6 lg:rounded-sm lg:bg-white lg:p-10 lg:shadow-xs lg:ring-1 lg:ring-grey-950/5 dark:lg:bg-grey-900 dark:lg:ring-white/10", children }) });
2062
- }
2063
1648
  var focusOutline = {
2064
1649
  "primary/grey": [
2065
1650
  // Base
@@ -3716,6 +3301,224 @@ function BreadcrumbEllipsis({ className, ...props }) {
3716
3301
  }
3717
3302
  );
3718
3303
  }
3304
+ function DropdownMenu({ ...props }) {
3305
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
3306
+ }
3307
+ function DropdownMenuPortal({
3308
+ ...props
3309
+ }) {
3310
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
3311
+ }
3312
+ function DropdownMenuTrigger({
3313
+ ...props
3314
+ }) {
3315
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
3316
+ }
3317
+ function DropdownMenuContent({
3318
+ className,
3319
+ sideOffset = 4,
3320
+ ...props
3321
+ }) {
3322
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
3323
+ DropdownMenuPrimitive.Content,
3324
+ {
3325
+ "data-slot": "dropdown-menu-content",
3326
+ sideOffset,
3327
+ className: cn(
3328
+ [
3329
+ // Base
3330
+ "z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-sm border bg-background p-1 text-foreground shadow-md",
3331
+ // Open
3332
+ "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
3333
+ // Closed
3334
+ "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
3335
+ // Side
3336
+ "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3337
+ // Hover
3338
+ "",
3339
+ // Focus
3340
+ "",
3341
+ // Active
3342
+ ""
3343
+ ],
3344
+ className
3345
+ ),
3346
+ ...props
3347
+ }
3348
+ ) });
3349
+ }
3350
+ function DropdownMenuGroup({ ...props }) {
3351
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props });
3352
+ }
3353
+ function DropdownMenuItem({
3354
+ className,
3355
+ inset,
3356
+ variant = "default",
3357
+ ...props
3358
+ }) {
3359
+ return /* @__PURE__ */ jsx(
3360
+ DropdownMenuPrimitive.Item,
3361
+ {
3362
+ "data-slot": "dropdown-menu-item",
3363
+ "data-inset": inset,
3364
+ "data-variant": variant,
3365
+ className: cn(
3366
+ [
3367
+ // Base
3368
+ ""
3369
+ ],
3370
+ "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-primary-800/10 focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:!text-destructive",
3371
+ className
3372
+ ),
3373
+ ...props
3374
+ }
3375
+ );
3376
+ }
3377
+ function DropdownMenuCheckboxItem({
3378
+ className,
3379
+ children,
3380
+ checked,
3381
+ ...props
3382
+ }) {
3383
+ return /* @__PURE__ */ jsxs(
3384
+ DropdownMenuPrimitive.CheckboxItem,
3385
+ {
3386
+ "data-slot": "dropdown-menu-checkbox-item",
3387
+ className: cn(
3388
+ [
3389
+ // Base
3390
+ ""
3391
+ ],
3392
+ "relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-primary-800/10 focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3393
+ className
3394
+ ),
3395
+ checked,
3396
+ ...props,
3397
+ children: [
3398
+ /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Icons.check, { className: "size-4" }) }) }),
3399
+ children
3400
+ ]
3401
+ }
3402
+ );
3403
+ }
3404
+ function DropdownMenuRadioGroup({
3405
+ ...props
3406
+ }) {
3407
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.RadioGroup, { "data-slot": "dropdown-menu-radio-group", ...props });
3408
+ }
3409
+ function DropdownMenuRadioItem({
3410
+ className,
3411
+ children,
3412
+ ...props
3413
+ }) {
3414
+ return /* @__PURE__ */ jsxs(
3415
+ DropdownMenuPrimitive.RadioItem,
3416
+ {
3417
+ "data-slot": "dropdown-menu-radio-item",
3418
+ className: cn(
3419
+ [
3420
+ // Base
3421
+ ""
3422
+ ],
3423
+ "relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-primary-800/10 focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3424
+ className
3425
+ ),
3426
+ ...props,
3427
+ children: [
3428
+ /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Icons.circle, { className: "size-2 fill-current" }) }) }),
3429
+ children
3430
+ ]
3431
+ }
3432
+ );
3433
+ }
3434
+ function DropdownMenuLabel({
3435
+ className,
3436
+ inset,
3437
+ ...props
3438
+ }) {
3439
+ return /* @__PURE__ */ jsx(
3440
+ DropdownMenuPrimitive.Label,
3441
+ {
3442
+ "data-slot": "dropdown-menu-label",
3443
+ "data-inset": inset,
3444
+ className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className),
3445
+ ...props
3446
+ }
3447
+ );
3448
+ }
3449
+ function DropdownMenuSeparator({
3450
+ className,
3451
+ ...props
3452
+ }) {
3453
+ return /* @__PURE__ */ jsx(
3454
+ DropdownMenuPrimitive.Separator,
3455
+ {
3456
+ "data-slot": "dropdown-menu-separator",
3457
+ className: cn("-mx-1 my-1 h-px bg-border", className),
3458
+ ...props
3459
+ }
3460
+ );
3461
+ }
3462
+ function DropdownMenuShortcut({ className, ...props }) {
3463
+ return /* @__PURE__ */ jsx(
3464
+ "span",
3465
+ {
3466
+ "data-slot": "dropdown-menu-shortcut",
3467
+ className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className),
3468
+ ...props
3469
+ }
3470
+ );
3471
+ }
3472
+ function DropdownMenuSub({ ...props }) {
3473
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
3474
+ }
3475
+ function DropdownMenuSubTrigger({
3476
+ className,
3477
+ inset,
3478
+ children,
3479
+ ...props
3480
+ }) {
3481
+ return /* @__PURE__ */ jsxs(
3482
+ DropdownMenuPrimitive.SubTrigger,
3483
+ {
3484
+ "data-slot": "dropdown-menu-sub-trigger",
3485
+ "data-inset": inset,
3486
+ className: cn(
3487
+ [
3488
+ // Base
3489
+ ""
3490
+ ],
3491
+ "flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-primary-800/10 focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-primary-800/10 data-[state=open]:text-accent-foreground",
3492
+ className
3493
+ ),
3494
+ ...props,
3495
+ children: [
3496
+ children,
3497
+ /* @__PURE__ */ jsx(Icons.chevron_right, { className: "ml-auto size-4" })
3498
+ ]
3499
+ }
3500
+ );
3501
+ }
3502
+ function DropdownMenuSubContent({
3503
+ className,
3504
+ ...props
3505
+ }) {
3506
+ return /* @__PURE__ */ jsx(
3507
+ DropdownMenuPrimitive.SubContent,
3508
+ {
3509
+ "data-slot": "dropdown-menu-sub-content",
3510
+ className: cn(
3511
+ [
3512
+ // Base
3513
+ ""
3514
+ ],
3515
+ "z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
3516
+ className
3517
+ ),
3518
+ ...props
3519
+ }
3520
+ );
3521
+ }
3719
3522
  function Breadcrumbs({
3720
3523
  homeLabel = "Home",
3721
3524
  pathLabels = {},
@@ -12125,7 +11928,7 @@ function FormatToggle({ format, setFormat }) {
12125
11928
 
12126
11929
  // package.json
12127
11930
  var package_default = {
12128
- version: "1.60.0"};
11931
+ version: "1.61.0"};
12129
11932
  function Heading({
12130
11933
  className,
12131
11934
  trim = "normal",
@@ -18873,7 +18676,7 @@ function distance2D(a, b) {
18873
18676
 
18874
18677
  // node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs
18875
18678
  var PanSession = class {
18876
- constructor(event, handlers2, { transformPagePoint, contextWindow = window, dragSnapToOrigin = false, distanceThreshold = 3 } = {}) {
18679
+ constructor(event, handlers, { transformPagePoint, contextWindow = window, dragSnapToOrigin = false, distanceThreshold = 3 } = {}) {
18877
18680
  this.startEvent = null;
18878
18681
  this.lastMoveEvent = null;
18879
18682
  this.lastMoveEventInfo = null;
@@ -18918,7 +18721,7 @@ var PanSession = class {
18918
18721
  if (!isPrimaryPointer(event))
18919
18722
  return;
18920
18723
  this.dragSnapToOrigin = dragSnapToOrigin;
18921
- this.handlers = handlers2;
18724
+ this.handlers = handlers;
18922
18725
  this.transformPagePoint = transformPagePoint;
18923
18726
  this.distanceThreshold = distanceThreshold;
18924
18727
  this.contextWindow = contextWindow || window;
@@ -18927,12 +18730,12 @@ var PanSession = class {
18927
18730
  const { point } = initialInfo;
18928
18731
  const { timestamp } = frameData;
18929
18732
  this.history = [{ ...point, timestamp }];
18930
- const { onSessionStart } = handlers2;
18733
+ const { onSessionStart } = handlers;
18931
18734
  onSessionStart && onSessionStart(event, getPanInfo(initialInfo, this.history));
18932
18735
  this.removeListeners = pipe(addPointerEvent(this.contextWindow, "pointermove", this.handlePointerMove), addPointerEvent(this.contextWindow, "pointerup", this.handlePointerUp), addPointerEvent(this.contextWindow, "pointercancel", this.handlePointerUp));
18933
18736
  }
18934
- updateHandlers(handlers2) {
18935
- this.handlers = handlers2;
18737
+ updateHandlers(handlers) {
18738
+ this.handlers = handlers;
18936
18739
  }
18937
18740
  end() {
18938
18741
  this.removeListeners && this.removeListeners();
@@ -24798,15 +24601,6 @@ var Tracker = React5__default.forwardRef(
24798
24601
  }
24799
24602
  );
24800
24603
  Tracker.displayName = "Tracker";
24801
- function SignInButton() {
24802
- return /* @__PURE__ */ jsx("form", { action: signInGeneric, children: /* @__PURE__ */ jsx(Button2, { type: "submit", variant: "outline", children: "Sign in" }) });
24803
- }
24804
- function SignInWithEntraButton() {
24805
- return /* @__PURE__ */ jsx("form", { action: signInWithEntra, children: /* @__PURE__ */ jsx(Button2, { type: "submit", children: "Sign in with Entra" }) });
24806
- }
24807
- function SignOutButton() {
24808
- return /* @__PURE__ */ jsx("form", { action: signOutAction, children: /* @__PURE__ */ jsx(Button2, { type: "submit", color: "danger", children: "Sign Out" }) });
24809
- }
24810
24604
  var useIsomorphicLayoutEffect2 = typeof window !== "undefined" ? useLayoutEffect : useEffect;
24811
24605
  function useDisableToc() {
24812
24606
  const { setToc } = useToc();
@@ -24823,15 +24617,15 @@ function useDisableToc() {
24823
24617
  }, [setToc]);
24824
24618
  }
24825
24619
  function getNodeText(node) {
24826
- let text4 = "";
24620
+ let text = "";
24827
24621
  for (const child of node.children ?? []) {
24828
24622
  if ("type" in child && child.type === "text") {
24829
- text4 += child.attributes?.content ?? "";
24623
+ text += child.attributes?.content ?? "";
24830
24624
  } else if (child instanceof HTMLElement) {
24831
- text4 += getNodeText(child);
24625
+ text += getNodeText(child);
24832
24626
  }
24833
24627
  }
24834
- return text4;
24628
+ return text;
24835
24629
  }
24836
24630
  function domToSimple(node) {
24837
24631
  if (node.nodeType === Node.TEXT_NODE) {
@@ -24946,6 +24740,6 @@ var languages = [
24946
24740
  "html"
24947
24741
  ];
24948
24742
 
24949
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AreaChart, AspectRatio, AuthButton, AuthButtonWrapper, AuthLayout, AvailableChartColors, Avatar, AvatarFallback, AvatarImage, Badge, BadgeButton, BarChart, BarList, BaseColorSwatches, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Breadcrumbs, Button2 as Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CategoryBar, ChartContainer, ChartLegend3 as ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip3 as ChartTooltip, ChartTooltipContent, Checkbox, CheckboxSmall, Code, CodeDemo, CodeHighlight, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorCard, ColorSwatches, ColourScale, ComboChart, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DataTable, DataTableColumnHeader, DataTableFacetedFilter, DataTablePagination, DataTableToolbar, DataTableViewOptions, Description4 as Description, DescriptionDetails, DescriptionList, DescriptionTerm, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DonutChart, 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, DynamicFavicon, ErrorMessage, ExpandableSearch, ExpandableSearchField, Field2 as Field, FieldGroup, FieldLabel, Fieldset2 as Fieldset, Footer, FooterAcknowledgement, FooterLegalLinks, FooterSmallPrint, FooterSocialLink, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormatToggle, GenerateInterpolatedColors, Header2 as Header, Heading, HoverCard, HoverCardContent, HoverCardTrigger, Icons, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label5 as Label, Legend6 as Legend, LineChart, Link, _List as List, Listbox2 as Listbox, ListboxDescription, ListboxLabel, ListboxOption2 as ListboxOption, Logo, MainNavigation, Masthead, MegaMenu, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MobileHeader, MobileSearch, MultiLevelPushMenu, Navbar, NavbarDivider, NavbarItem, NavbarLabel, NavbarSection, NavbarSpacer, Navigation, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, PageHeading, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PreWithCopy, PrevNextLinks, PrevNextLinksPageLink, Progress, ProgressBar, ProgressCircle, Prose, RadioGroup2 as RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator4 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLink, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarNavigation, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SignInButton, SignInWithEntraButton, SignOutButton, SiteSearch, Skeleton, Slider, Social, SparkAreaChart, SparkBarChart, SparkLineChart, Spinner, StepIndicator, StepNavigation, Strong, SubmitButton, Switch2 as Switch, SwitchField, SwitchGroup, TabNavigation, TabNavigationLink, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, TableRow, Tabs2 as Tabs, TabsContent, TabsList, TabsTrigger, Text, TextLink, Textarea, ThemeColorPalette, ThemeProvider, ThemeSelector, ThemeSwitcher, Toaster, TocContext, TocProvider, Toggle, ToggleGroup, ToggleGroupItem, Tooltip5 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopLevel, TouchTarget, Tracker, Tooltip3 as TremorTooltip, ViewToggle, Wrapper, aboriginal, addStartStopToColorArray, allPalettes, badgeVariants, brand, buttonVariants, camelCase, chartColors, cn, colorDataArray, colorThemes, colors, constructCategoryColors, createColorArray, createColorData, createFormStore, darkenColor, domToSimple, focusInput, focusRing, generateColorThemes, getColorClassName, getColorValue, getHeadings, getNodeText, getSurroundingColors, getYAxisDomain, hasErrorInput, hasOnlyOneValueForKey, humaniseVariant, interpolateColors, isLightColor, kebabCase, languages, lightenColor, navigationMenuTriggerStyle, oklchConverter, progressBarVariants, renderColorOutput, renderColorOutputToDTFM, semantic, shades, themeIndices, themeTokens, toggleVariants, truncate, useActiveSectionObserver, useDisableToc, useFormField, useIsMobile, useOnWindowResize, usePageHeadings, useSelectorHeight, useSidebar, useToc };
24743
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AreaChart, AspectRatio, AuthLayout, AvailableChartColors, Avatar, AvatarFallback, AvatarImage, Badge, BadgeButton, BarChart, BarList, BaseColorSwatches, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Breadcrumbs, Button2 as Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CategoryBar, ChartContainer, ChartLegend3 as ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip3 as ChartTooltip, ChartTooltipContent, Checkbox, CheckboxSmall, Code, CodeDemo, CodeHighlight, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorCard, ColorSwatches, ColourScale, ComboChart, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DataTable, DataTableColumnHeader, DataTableFacetedFilter, DataTablePagination, DataTableToolbar, DataTableViewOptions, Description4 as Description, DescriptionDetails, DescriptionList, DescriptionTerm, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DonutChart, 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, DynamicFavicon, ErrorMessage, ExpandableSearch, ExpandableSearchField, Field2 as Field, FieldGroup, FieldLabel, Fieldset2 as Fieldset, Footer, FooterAcknowledgement, FooterLegalLinks, FooterSmallPrint, FooterSocialLink, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormatToggle, GenerateInterpolatedColors, Header2 as Header, Heading, HoverCard, HoverCardContent, HoverCardTrigger, Icons, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label5 as Label, Legend6 as Legend, LineChart, Link, _List as List, Listbox2 as Listbox, ListboxDescription, ListboxLabel, ListboxOption2 as ListboxOption, Logo, MainNavigation, Masthead, MegaMenu, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MobileHeader, MobileSearch, MultiLevelPushMenu, Navbar, NavbarDivider, NavbarItem, NavbarLabel, NavbarSection, NavbarSpacer, Navigation, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, PageHeading, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PreWithCopy, PrevNextLinks, PrevNextLinksPageLink, Progress, ProgressBar, ProgressCircle, Prose, RadioGroup2 as RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator4 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLink, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarNavigation, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SiteSearch, Skeleton, Slider, Social, SparkAreaChart, SparkBarChart, SparkLineChart, Spinner, StepIndicator, StepNavigation, Strong, SubmitButton, Switch2 as Switch, SwitchField, SwitchGroup, TabNavigation, TabNavigationLink, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, TableRow, Tabs2 as Tabs, TabsContent, TabsList, TabsTrigger, Text, TextLink, Textarea, ThemeColorPalette, ThemeProvider, ThemeSelector, ThemeSwitcher, Toaster, TocContext, TocProvider, Toggle, ToggleGroup, ToggleGroupItem, Tooltip5 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopLevel, TouchTarget, Tracker, Tooltip3 as TremorTooltip, ViewToggle, Wrapper, aboriginal, addStartStopToColorArray, allPalettes, badgeVariants, brand, buttonVariants, camelCase, chartColors, cn, colorDataArray, colorThemes, colors, constructCategoryColors, createColorArray, createColorData, createFormStore, darkenColor, domToSimple, focusInput, focusRing, generateColorThemes, getColorClassName, getColorValue, getHeadings, getNodeText, getSurroundingColors, getYAxisDomain, hasErrorInput, hasOnlyOneValueForKey, humaniseVariant, interpolateColors, isLightColor, kebabCase, languages, lightenColor, navigationMenuTriggerStyle, oklchConverter, progressBarVariants, renderColorOutput, renderColorOutputToDTFM, semantic, shades, themeIndices, themeTokens, toggleVariants, truncate, useActiveSectionObserver, useDisableToc, useFormField, useIsMobile, useOnWindowResize, usePageHeadings, useSelectorHeight, useSidebar, useToc };
24950
24744
  //# sourceMappingURL=index.js.map
24951
24745
  //# sourceMappingURL=index.js.map